聚集池

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

集群是一个由Citrix Hypervisor主机组成的池,这些主机之间的连接和协调比非集群池更紧密。集群中的主机之间在选定的网络中保持恒定的通信。集群中的所有主机都知道集群中所有主机的状态。这种主机协调使集群能够控制对GFS2 SR内容的访问。

法定人数

集群中的每个主机必须始终与集群中至少一半的主机(包括集群本身)保持通信。这种状态称为具有quorum的主机。

奇数池仲裁值为1 +集群总主机数的二分之一(n+1)/2。偶数池仲裁值为集群中主机总数的一半:n/2。

对于偶数池,可以将正在运行的集群精确分割为两半。正在运行的集群决定集群的哪一半自围栏,以及集群的哪一半具有仲裁。当偶数集群池从冷启动启动时,(n/2)+1个主机必须在主机具有仲裁之前可用。主机进行仲裁后,集群变为活动状态。

如果主机没有quorum,则该主机自围墙。

在可能的情况下,建议在集群池中使用奇数数量的主机,因为这确保主机总是能够确定它们是否有一个配额集。

自我击剑

如果主机检测到它没有quorum,它会在几秒钟内自我隔离。当主机自我防御时,它会立即重启。主机硬关机,导致主机上运行的虚拟机全部关闭。在使用高可用性的集群池中,Citrix Hypervisor会根据其他池成员上的重启配置重启虚拟机。自我防护的主机重新启动并试图重新加入集群。

如果群集中的实时主机的数量少于仲裁值,则所有剩余的主机都会丢失仲裁。

在理想的场景中,集群池的活动主机数量总是超过仲裁所需的数量,而且Citrix Hypervisor从不设置限制。为了使这种情况更有可能发生,在设置集群池时考虑以下建议:

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

  • 集群网络使用专用的绑定网络。绑定网卡必须在L2网段。有关更多信息,请参见网络

  • 配置存储池与GFS2 SR.之间的存储多路径,更多信息请参见存储多路径

  • 在集群池上配置高可用性。在集群池中,心跳SR必须是GFS2 SR高可用性

创建群集池

开始操作前,请先满足以下前提条件:

  • 集群池中的所有Citrix虚拟机管理程序必须具有至少2个GIB的控制域内存。

  • 群集中的所有主机都必须使用群集网络的静态IP地址。

  • 我们建议您仅在包含至少三个主机的池中使用群集,因为两个主机的池对自我击剑整个池敏感。

  • 如果池中的主机之间有防火墙,请确保集群网络中的主机可以通过以下端口进行通信:
    • TCP: 8892、21064
    • UDP: 5404、5405

    有关更多信息,请参见Citrix技术使用的通信端口

  • 如果您正在集群一个现有池,请确保禁用高可用性。启用集群后,可以重新启用高可用性。

如果您愿意,您可以使用XenCenter在池中设置群集。有关更多信息,请参阅XenCenter产品文档

要使用XE CLI创建群集池:

  1. 创建绑定网络作为集群网络。在需要成为池主的Citrix Hypervisor服务器上,执行以下操作:

    1. 在Citrix Hypervisor服务器上打开控制台。

    2. 使用以下命令命名资源池:

      XE Pool-param-set name-label =“新池”uuid = 
    3. 使用以下命令创建用于绑定NIC的网络:

      XE网络 - 创建名称 - 标签= BOND0

      返回新网络的UUID。

    4. 使用以下命令查找绑定中使用的pif的uuid:

      xe pif-list
    5. 在active-active模式、active-passive模式或LACP模式中创建绑定网络。根据你想使用的绑定模式,完成以下动作之一:

      • 如果配置为双活模式(默认),请使用bond-create命令,创建绑定。参数之间用“,”隔开,指定新创建的网络UUID和待绑定pif的UUID:

        XE Bond-Create Network-uuid =  / pif-uuids = 

        当您绑定四个NIC时,当您绑定两个NIC和四个UUID时,键入两个UUID。运行命令后返回键的UUID。

      • 如果需要配置主被动或LACP模式的绑定,请使用相同的语法,增加可选配置模式参数,并指定LACP.主动式备用系统

        XE Bond-Create Network-uuid =  pif-uuids = ,/  / mode = analeal-slb |主动备份|LACP.

    在池主服务器上创建绑定网络后,当将其他Citrix Hypervisor服务器加入池时,网络和绑定信息将自动复制到加入服务器。

    有关更多信息,请参见网络

  2. 创建至少三个Citrix虚拟机管理程序的资源池。

    在每个Citrix虚拟机管理程序服务器上重复以下步骤,即(非主)池成员:

    1. 在Citrix Hypervisor服务器上打开控制台。
    2. 使用以下命令将Citrix HyperVisor服务器连接到池主机上的池:

      XE池加入主地址= Master_Address Master-Username = Administrators_Username Master-Password =密码

      价值主地址参数必须设置为pool master的Citrix Hypervisor服务器的全域名。的密码必须是安装池主服务器时设置的管理员密码。

    有关更多信息,请参见主机和资源池

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

    1. 使用以下命令查找属于网络的PIF的UUID:

      xe pif-list
    2. 在资源池中的Citrix Hypervisor服务器上执行以下命令:

      xe pif-param-set disallow-unplug = true uuid = 
  4. 在您的池上启用集群。在资源池中的Citrix Hypervisor服务器上执行以下命令:

    XE Cluster-Pool-Create Network-uuid = 

    提供您在上一步中创建的绑定网络的UUID。

摧毁集群池

您可以销毁群集池。销毁群集池后,池继续存在,但不再群集,并且无法再使用GFS2 SRS。

要销毁群集池,请运行以下命令:

xe cluster-pool-destroy cluster-uuid = < uuid >

管理群集池

在管理集群池时,以下实践可以降低池丢失仲裁的风险。

确保主机干净地关闭

清理关闭主机时,主机会被暂时从集群中移除,直到主机重新启动。当主机关闭时,它不计入集群的仲裁值。主机缺席不会导致其他主机失去仲裁。

但是,如果主机强行或意外关闭,则在脱机之前不会从群集中删除。此主机确实计数群集的仲裁值。其关机可能导致其他主机失去法定人数。

使用维护模式

在主机上执行可能导致该主机失去仲裁的操作之前,请将主机设置为维护模式。主机处于维护模式时,运行中的虚拟机会从该主机下迁移到该主机下的其他主机上。此外,如果该主机是池的主主机,则该角色将传递给池中的另一个主机。如果您的操作导致处于维护模式的主机处于自隔离状态,则不会丢失任何虚拟机,也不会失去XenCenter与池的连接。

维护模式中的主机仍然达到群集的仲裁值。

当集群池中的主机处于维护模式时,才能修改该主机的IP地址。修改主机IP地址将导致该主机退出集群。IP地址修改成功后,主机重新加入集群。主机加入集群后,可以退出维护模式。

恢复自隔离或离线的主机

重要的是恢复具有自我保护的主机。当这些集群成员处于脱机状态时,它们将计入集群的法定人数,并减少可联系的集群成员的数量。这种情况增加了后续主机故障导致集群失去仲裁并完全关闭的风险。

在集群中拥有脱机主机还会阻止您执行某些操作。在集群池中,池的每个成员必须同意池成员的每次更改,然后更改才能成功。当集群成员无法联系时,Citrix Hypervisor会阻止修改集群成员的操作(如添加主机、移除主机等)。

马克已经死了

当一个或多个主机离线无法恢复时,可以将其标记为“死主机”。将主机标记为死主机将使它们永久地从集群中删除。主机被标记为死亡后,它们将不再计入quorum值。

约束

  • 集群池每个池最多支持16个主机。
  • 对于集群流量,您必须使用一个绑定网络,至少使用两个不同的网络交换机。请勿将此网络用于任何其他目的。
  • 通过XenCenter修改集群网络的IP地址时,需要暂时关闭集群和GFS2。
  • 当集群处于活动状态并有运行的虚拟机时,不要更改集群网络的绑定。此操作可能导致集群隔离。
  • 如果您在群集网络上有IP地址冲突(具有相同IP地址的多个主机),则涉及启用群集的至少一个主机,主机不围栏。要解决此问题,请解决IP地址冲突。
聚集池