HA的基本工作过程
VI3的HA为处于同一个HA Cluster中的ESX服务器提供互相检测的功能.
一旦一台ESX服务器被确认为故障. 则剩余正常的ESX服务器会启动原来在故障ESX上运行的VM, 从而提供VM一级的高可用性.
ESX之间互相检测是由心跳(heartbeat)来完成的.
心跳的传输在Service Console Network上进行. 当一台ESX没有接收到来自其他服务器的心跳信号, 有两种可能性:
1. 是其它ESX服务器发生了故障,
2. 是本机的网络连接 (指Service Console Network) 发生故障, 也称为被孤立(Isolation) 为了区分这两种情形, ESX会试图PING一个网络地址, 并以能否收到应答来确定本机是否被孤立. 这个网络地址一般默认为SC的网关. 你也可以在HA的高级选项中重新设定(加选项: das.isolationaddress). 如果ESX认为自己被孤立, 默认的动作是它Power-Off(不是安全Shutdown)在该ESX上运行的所有VM.
这样做的目的是释放对那些VM的盘文件的锁定, 以便其他正常的ESX服务器可以接管对这些VM的控制. 如果ESX认为是其他的ESX故障, 它则会启动原来在故障ESX上运行的VM.
这个过程中有几个比较重要的时序 (有的用户找到一些更详细的数据, 但未经VMWARE证实): 在ESX停止接受到心跳的12秒后, 如果它认自己已被孤立, 既POWER-OFF自己的VM.
正常ESX在停止接到故障ESX的15秒后, 开始启动原来在故障ESX上运行的VM.
这个时间差有可能导致混乱: 比如发生网络故障的ESX在第12秒POWER-OFF VM.
如果网络在15秒之前恢复, 正常运行的ESX并不启动在曾经发生网络故障的ESX上的VM,
尽管故障ESX已将那些VM POWER-OFF了. 还有一种称为脑裂的情况, 在两节点的CLUSTER中很常见:
假设ESX1崩溃, ESX2失去来自ESX1的心跳. 这时候它并不知道是被孤立了还是ESX1出现故障,
于是它要靠PING指定的网络地址来做判断. 如果该网络地址设置的不好. PING 失败的话,
ESX2会以为自己是被孤立了, 这时候它不但不启动原来在ESX1上的VM,
而且还可能按默认设置将自己的VM也POWER-OFF.
建国大业 发表于: 2009-09-28
我要回答相关推荐
-
Dell md 3200连接两台esxi主机做HA,从机存储连接老是非活动,大家帮忙下,谢了。
-
请问一下,为什么我的HA里面3台服务器,就有一台总待机
-
xenserver下在配置HA时,我的物理服务器是3台,再全局下有个故障服务器书,设置1和2台会有啥区别呢?
-
VC在物理机上,SQL在HA的虚拟机里,现在想把SQL弄出来,不要放到HA里面,请问有什么办法?
有个问题想请教一下,我VC和SQL是分开安装,VC是在物理机上,SQL是HA的虚拟机里,现在想把SQL弄出来, […]
-
HA环境 如何设置某个虚拟机固定在一台虚拟主机运行,禁止迁移