gpt4 book ai didi

language-agnostic - 网络服务器是否可以确定它是否是 HA 故障转移系统的事件节点,而无需在服务器本身上硬编码任何内容?

转载 作者:行者123 更新时间:2023-12-04 07:46:30 25 4
gpt4 key购买 nike

我能想到一些使用 ping、框名称和 HA 共享名称的黑客攻击,但我认为它们会导致数据泄露。

盒子是否应该知道它属于 HA 集群的一部分,或者该集群的名称是什么?这更多是 DNS 的功能吗?是否有一些 API 供 box 加入 HA 集群并请求当前事件节点的 id?

我想在运行程序的警报机制中区分非事件节点和事件节点。如果事件节点正在发出警报,我想打一个寻呼机,在非事件节点上我想发送一封电子邮件。将确定插入警报层会将同样的问题转移到其他地方。

简单的解决方案:从通过网络连接的外部代理轮询服务器使得任何关于谁是事件节点的 shell 游戏都没有实际意义。为了澄清这一点,唯一会传呼的是监视真实的远程代理。每个盒子都可以整天发送电子邮件,我在乎。

最佳答案

这实际上取决于您使用的 HA 系统。

例如,如果您的系统使用共享 IP 并且流量由某个硬件盒子管理,那么就很难确定某个盒子是主设备还是从设备。这真的取决于具体的解决方案......只要你可以向主管添加自定义脚本,你应该没问题 - 例如 Controller 可以每秒 ping 主服务器上的守护进程。在警报脚本中,只需检查最后一次 ping 的时间是否 < 2 秒...

如果您的系统没有主管/ Controller 节点,但每个节点都尝试自行确定状态,那么您可能会遇到更多问题。如果发生脑裂,您可能会同时拥有两个奴隶或两个主人,因此在这两种情况下您的警报软件都会出错。可以确保只有一个事件节点(STONITH 和其他节点)的小工具可能会有所帮助。

另一方面,在第二种情况下,如果 HA 软件在两台主机上都正常工作,您应该能够直接从中获取主/从信息。它必须随时知道自己的状态,因为这是它的主要功能之一。在大多数 HA 解决方案中,您应该能够获取当前状态,或者添加一些代码以在状态更改时运行。 Heartbeat 提供两者。

不过,我不会担心像裂脑这样的边缘情况。几乎所有集群节点之间失去连接的情况都比单独节点上发生的事情更重要:)

如果您真正关心的只是日志记录/警报,那么理想情况下,您可以有一个单独的记录器框来获取有关当前网络/集群状态的所有信息。外部盒子可能会更好地了解如何处理这种情况。如果您的集群被拒绝/与网络断开连接/断电,您将不会收到任何警报。一对冗余的独立显示器可以避免这种情况。

我不确定您为什么提到 DNS - 由于它的刷新时间,它不应该是任何“实时”集群信息的来源。

关于language-agnostic - 网络服务器是否可以确定它是否是 HA 故障转移系统的事件节点,而无需在服务器本身上硬编码任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/695715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com