最近有人在问2台xenserver组成的resources pool 开启HA后存在啥样的问题?

先看下xenserver管理员手册上写的:

Citrix 建议您仅对至少包含 3 个 XenServer 主机的池启用高可用性。有关在池中两个 主机之间的检测信号丢失时高可用×××将如何响应的详细信息,请参阅 Citrix 知识 库文章 CTX129721。 

OK,很明显官方不推荐2台情况下开启HA,HA机制在2台下面肯定是有所不同的。

先分析3台以上xenserver开启HA后主机的保护机制:

  • 存储心跳正常,但是管理口通信异常。此时,网络正常和网络异常的主机基本分为两组,数量较少的一组将self-fence。

  • 存储心跳异常,但是管理口通信正常。此时,hosts将在pool中检查各主机之间通信是否正常,如果全部OK,那么xenserver认为是心跳存储异常。

如果HA的以上两种检测机制中有任何一种机制异常,能够在资源池中分出两组数量不同的主机来,此时,主机数较少的一组将会重启。

如果是2台xenserver呢?

      大家可以去查下KB:CTX129721,有此种场景的详细说明。

此时,XenServer会比较两台主机的UUID,UUID较大的一台主机讲会Host fencing,从而重启,不管VM是否运行在该主机上。

因为这种机制,如果VM运行在UUID较大的一台主机上,而发生故障的是UUID较小的主机时候,就会由于UUID较大主机的重启,从而导致业务的中断,所以为了尽可能的避免该情况,推荐资源池中主机的数量至少为3台,从而避免主机由于UUID的大小而导致错误的进入重启流程。

测试场景:2台xenserver组成的资源池,开启HA后,拔掉一台的网线(网络心跳丢失),另外一台会自动重启。此时就不正常了。