了解仲裁对系统行为的影响

ALSR系统中的仲裁服务器会改变系统的可用性和恢复行为。要了解仲裁对系统行为的影响,您首先需要了解系统在没有仲裁服务器时的行为。

先决条件首先阅读创建ALSR配置并按照其说明操作,计划和创建 ALSR 配置(如果尚未这样做)。

ztC Edge系统旨在为一个或多个客人 VM 提供高可用性,这可使这些 VM 即使在发生将导致应用程序停机的故障期间也能继续运行。例如,即使在失去单个网络连接、一块硬盘甚至整个计算机的情况下,ztC Edge系统也能够继续运行客人 VM。

但如果发生更多灾难性故障(例如,所有可能的网络路径均中断),ztC Edge系统将尝试确定整个系统的整体状态。然后,系统会采取必要的行动来保护客人 VM 的完整性。

以下示例说明了在灾难性故障期间系统的过程。

示例 1:无仲裁服务器的系统遇到脑裂情况

在这个 ALSR示例中,ztC Edge 系统包含 node0 和 node1,但不包含仲裁服务器。操作正常;当前没有检测到任何故障。这两个节点通过 A-Link 连接传达它们的状态和可用性,就像它们在正常(无故障)操作期间那样。下图显示了正常连接。

灾难性故障

一个粗心的叉车操作员将墙撞穿了,切断了所有网络连接(业务和 A-Link),同时供电仍未中断并且系统正在运行。下图显示了故障情况。

故障处理

这两个节点按照以下方式处理故障:

从应用程序客户端或外部观察者的角度来看,这些客人 VM 均处于活动状态,并且生成具有相同返回地址的网络消息。这两个客人 VM 均生成数据并看到不同数量的通信故障。这些客人 VM 的状态随时间而变得更加不同。

恢复和修复

一段时间后,网络连接恢复:修好了墙壁并更换了网络电缆。

当 AX 对的每个 AX 均意识到其配对节点重新联机时,具有故障处理程序规则的 AX 对选择继续处于活动状态的 AX。该选择是不可预测的,并且对于在脑裂情况下哪个节点的性能更准确没有任何考虑。

活动节点的重新同步覆盖了从(现在)备用节点生成的数据,因此(现在)备用节点上的数据永久丢失。

在脑裂情况下,系统需要几分钟的时间进行重新同步,这取决于需要将多少磁盘活动发送到备用节点。如果多个客人 VM 正在使用不同的活动节点运行,则可能在两个方向上发生同步流量。

注意在某些情况下,ztC Edge系统可能无法确定在发生灾难性故障后继续运行的最佳方式。在这种情况下需要恢复系统。建议的恢复方法是使用ztC Console来关闭并重启一个节点,而另一个节点继续运行。此方法一般会强制正在运行的节点成为主节点,并且该节点上的 AX 变为活动状态。当正在运行的节点变为主节点后,可启动另一个节点。 如果重新同步已经在进行,不要关闭任何一个节点。

示例 2:具有仲裁服务器的ALSR系统可避免脑裂情况

在这个 ALSR示例中,ztC Edge 系统包含 node0 和 node1,它们的连接与示例 1 中系统的连接相同。此外,示例 2 中的系统还包含仲裁服务器。下图显示了这些连接。

灾难性故障

那个粗心的叉车操作员又将墙撞穿了,切断了所有网络连接,同时供电仍未中断并且系统正在运行。下图显示了故障情况。

故障处理

这两个节点按照以下方式处理故障:

注意如果 node1 AX 先前未处于活动状态,并且客人 VM 是 HA VM,则 node1 上的客人 VM 可能需要从 node1 的硬盘驱动器启动。在这种情况下,当客人 VM 启动时,应用程序会经历短暂的停机。(FT VM 继续运行。)

从应用程序客户端或外部观察者的角度来看,node1 上的客人 VM 保持活动状态,并且在 node0 上的 VM 关闭时生成数据。不存在脑裂情况。

恢复和修复

一段时间后,网络连接恢复:修好了墙壁并更换了网络电缆。

当 node1 AX 意识到其配对节点重新联机时,node0 AX 变为备用节点。由于 node0 先前未运行,因此从 node1 开始将数据同步到 node0。

由于没有发生脑裂情况,因此数据未丢失。

系统需要几分钟进行重新同步,这取决于需要将多少磁盘活动发送到备用节点。

示例 2,已修改:在灾难性故障期间仲裁服务器不可及

在具有仲裁服务器的ALSR系统中,当灾难性故障切断所有网络连接时,仲裁服务器可能脱机或不可及,但供电仍未中断且系统仍在运行。下图显示了仲裁服务器为脱机状态的这种情况下的系统。

故障处理类似于示例 2 的故障处理,对于 node1 而言有一个重要区别:

node1 AX 也检测到两个 A-Link 中断,但 ibiz0 仍可用。node1 AX 尝试联系仲裁服务器,但通信失败。此 AX 终止了客人 VM。

在这种情况下,客人 VM 在 node0 和 node1 上均关闭,从而防止发生脑裂。折衷方法是在恢复与 node0 或仲裁服务器的连接前,客人 VM 不可用。

在这种情况下,确定您不想运行的节点并将其关闭。然后,强制启动您想要运行的节点,之后强制启动 VM。有关关闭 VM 然后启动它的信息,请参阅管理虚拟机的运行。)

示例 2,已修改:在无灾难性故障时仲裁服务器不可及

在某些情况下,即使没有发生灾难性的物理故障,仲裁服务器也可能不可及。一个示例是当重启仲裁计算机进行例行维护时,例如应用 OS 补丁。在这些情况下,AX 检测到仲裁服务无响应,因此 AX 会暂停同步流量,直至恢复与仲裁服务器的连接为止。当连接中断时,客人 VM 继续在处于活动状态的节点上运行。但由于可能会发生其他故障,此客人 VM 不移到备用节点。恢复仲裁服务后,只要保持与仲裁服务器的连接,AX 就会继续进行同步和正常故障处理。

从电源故障中恢复

如果在断电或系统关闭后重启系统,ztC Edge系统将在启动任何客人 VM 前无限期等待其配对系统启动并在做出响应。如果先前处于活动状态的 AX 能够联系仲裁服务器,则该 AX 会立即启动客人 VM,不等待其配对节点启动。如果先前备用的 AX 首先启动,则它会等待其配对节点。

如果系统收到来自配对节点或仲裁服务器的响应,则系统将继续正常运行,并且 VM 将启动,这需要遵守在其他情况下适用的相同故障处理程序规则。

如果系统未收到来自仲裁服务器的响应,或者系统没有仲裁服务器,则必须强制启动客人 VM,这会覆盖 AX 或故障处理程序做出的任何决定。您必须确保两个人没有在 node0 和 node1 上强制启动同一客人 VM。无意中这样做会导致脑裂情况。