群集池

群集提供使用 GFS2 SR 的资源池所需的额外功能。有关 GFS2 的详细信息,请参阅配置存储

群集是指与非群集池相比连接性和协调性更加紧密的 XenServer 主机的池。群集中的主机负责维护选定网络中的主机相互之间的持续通信。群集中的所有主机都能够识别群集中每个主机的状态。这一主机协调功能使群集能够控制对 GFS2 SR 的内容的访问。

仲裁

群集中的每个主机都必须始终至少与群集中的一半主机(包括群集本身)进行通信。此状态称为主机具有仲裁功能。

奇数池的仲裁值为群集中的总主机数加 1 的和再除以 2,即 (n+1)/2。奇数池的仲裁值为群集中的总主机数除以 2,即 n/2。

对于偶数池,正在运行的群集可以正好对半拆分。正在运行的群集决定哪部分群集进行自主防护以及哪部分群集具有仲裁功能。当偶数群集池从冷启动打开电源时,(n/2)+1 个主机必须可用,主机才能具有仲裁功能。主机具有仲裁功能后,该群集将变为活动状态。

如果主机没有仲裁功能,该主机将进行自主防护。

自主防护

如果主机检测到自身没有仲裁功能,则会在几秒钟内进行自主防护。当某个主机进行自主防护时,将立即重新启动。由于主机将执行硬关闭,因此,主机上运行的所有 VM 都将终止。在使用高可用性功能的群集池中,XenServer 根据其他池成员上的重新启动配置来重新启动 VM。自主防护的主机将重新启动并尝试重新加入群集。

如果群集中处于活动状态的主机数量低于仲裁值,剩余的所有主机将失去仲裁功能。

在理想情况下,群集池中包含的处于活动状态的主机数将始终高于仲裁功能所需的主机数,并且 XenServer 从不进行防护。要使此情形出现的可能性更高,请在设置群集池时考虑以下建议:

  • 确保您具有良好的硬件冗余。

  • 使用专用的绑定网络作为群集网络。确保绑定的 NIC 位于同一个 L2 段中。有关详细信息,请参阅网络连接

  • 在池与 GFS2 SR 之间配置存储多路径。有关详细信息,请参阅存储多路径

  • 在群集池上配置高可用性。在群集池中,检测信号 SR 必须是 GFS2 SR。有关详细信息,请参阅高可用性

创建群集池

开始操作之前,请确保满足以下必备条件:

  • 群集池中的所有 XenServer 主机都必须至少具有 2 GiB 的控制域内存。
  • 群集中的所有主机都必须使用群集网络的静态 IP 地址。
  • Citrix 建议您仅在至少包含三个主机的池中使用群集,因为包含两个主机的池对自主防护整个池非常敏感。
  • 如果在池中的主机之间设置了防火墙,请确保主机能够使用以下端口在群集网络中进行通信:
    • TCP:8892、21064
    • UDP:5404、5405

    有关详细信息,请参阅 Citrix 技术使用的通信端口

  • 如果要对现有池进行群集操作,请务必禁用高可用性。启用群集功能后,可以重新启用高可用性。

可以使用 XenCenter 在池中设置群集功能。有关详细信息,请参阅 XenCenter 帮助。

要使用 xe CLI 创建群集池,请执行以下操作:

  1. 创建资源池。

    有关详细信息,请参阅主机和资源池

  2. 创建绑定网络或选择现有绑定网络以用作群集网络。

    有关详细信息,请参阅网络连接

  3. 在池中的 XenServer 主机上打开控制台。

  4. 对于属于此网络的每个 PIF,请设置 disallow-unplug=true

    xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
    
  5. 在您的池上启用群集功能:

    xe cluster-pool-create network-uuid=<network_uuid>
    

管理群集池

管理群集池时,以下做法可以降低丢失仲裁功能的池的风险。

确保主机彻底关闭

主机彻底关闭时,将暂时从群集中移除,直至再次将其启动。主机关闭时,不计入群集的仲裁值。主机缺乏不会导致其他主机丢失仲裁功能。

但是,如果主机被强制关闭或意外关闭,则在进入脱机状态之前不会从群集中移除。此主机将计入群集的仲裁值。关闭此主机会导致其他主机丢失仲裁功能。

使用维护模式

在可能会导致主机丢失仲裁功能的主机上执行操作之前,请将该主机置于维护模式。主机处于维护模式时,正在运行的 VM 会将其迁移到池中的另一台主机。此外,如果该主机属于池主服务器,该角色将传递到池中的其他主机。如果您的操作会导致处于维护模式的主机进行自主防护,则不会丢失任何 VM,或者 XenCenter 断开与池的连接。

处于维护模式的主机仍计入群集的仲裁值。

主机处于维护模式时,只能更改作为群集池的一部分的主机的 IP 地址。更改主机的 IP 地址会导致主机离开群集。成功更改 IP 地址后,主机将重新加入群集。主机重新加入群集后,可以使其退出维护模式。

恢复进行自主防护或处于脱机状态的主机

请务必恢复进行自主防护的主机。这些群集成员处于脱机状态时,将计入群集的仲裁数,并且会降低可访问的群集成员的数量。这种情况会增加后续主机出现故障导致群集失去仲裁功能并彻底关闭的风险。

群集中包含处于脱机状态的主机还会阻止您执行某些操作。在群集池中,池的每个成员都必须同意每次对池成员身份所做的更改,这些更改才能成功。如果群集成员不可访问,XenServer 将阻止执行更改群集成员身份的操作(例如添加主机或删除主机)。

将主机标记为死机

如果无法恢复处于脱机状态的一个或多个主机,则可以将其标记为对群集死机。将主机标记为死机会将其从群集中永久删除。将主机标记为死机后,将不再计入仲裁值。

限制

  • 群集池最多仅支持每个池包含 16 个主机。
  • 如果网络已同时用于管理和群集操作,则不能分离管理网络而不重新创建群集。
  • 强烈建议您不要使用 DHCP,因为处于活动状态的群集上的动态 IP 地址发生变化会使主机极少有机会丢失数据。
  • 通过使用 XenCenter 更改群集网络的 IP 地址要求暂时禁用群集功能和 GFS2。
  • 群集处于活动状态并且具有正在运行的 VM 时,请勿更改群集网络的绑定。此操作会导致群集进行防护。

群集池