某企业在成生产环境中使用8台Esxi5.1物理服务器和1台vCenter5.1物理服务器组虚拟化平台,拓扑如下图所示,为了验证平台故障发生时的高可用性,计划分别对2台Esxi物理主机采取拔电源线和拔网线的方式模拟主机和网络故障,由于vCenter是物理主机,所以不用考虑vCenter与集群中Master主机同时挂掉的情况,且主机断电故障情景简单(vmware HA细节可参考文章),本处只讨论网络故障时vmware HA的场景
二、准备工作
1.在模拟故障发生前首先确认集群HA功能是否启用,否则高可用就是空谈
2.在要进行模拟故障的目标Esxi物理主机上确认主机监控已开启,否则故障发生时不会进行切换
3.确认目标Esxi物理主机上的VM虚拟机已受到vSphere HA保护
三、网络故障场景详细介绍
vSphere 5以后的版本HA的判断除了需要共享存储外,还需要网络心跳(管理网络)、隔离网关和存储心跳(存储网络)。本次由于没有详细说明模拟网络故障具体切断的网络,所以需要将每种情况都考虑进去,于是网络层面故障造成的结果就分为:主机分区(管理网络故障)和主机隔离(管理网络和隔离网关同时故障)
1.主机分区
集群中部分host主机无法通过管理网络与Master通信,但隔离网关(host主机通过管理网络与隔离网关通信)和存储心跳通信正常,此时就会触发主机分区。这种场景下被分区的host主机和位于其上的VM虚拟机此时对外仍然正常提供服务,HA不会做任何操作。此时集群会变为下图所示的这种情况:
这并不代表该故障不重要,官方的解释为:虚拟机保护:vCenter允许虚拟机打开电源,但仅当虚拟机与负责它的首选主机在相同的分区中运行时,才能对其进行保护
集群管理:vCenter只能与群集中的部分host主机进行通信,且只能连接到一台首选主机。因此,只有在解决分区之后,配置中影响 vSphere HA的更改才能生效。此故障可能会导致其中一个分区在旧配置下操作,而另一个分区使用新的设置
2.主机隔离
集群中部分host主机丢失网络心跳和隔离网关,只与存储网络通信正常,此时就会触发主机隔离。此时集群会变为下图所示的这种情况:
被隔离的host主机和位于其上的VM虚拟机此时对外无法正常提供服务,HA会按照预先设置好的策略执行,每个VM虚拟机还可以自定义各自的启动优先级和隔离响应策略
以下对这两个策略进行详细介绍:
重启优先级:定义了当故障发生时,VM虚拟机重启的先后顺序,策略由低到高分为 禁用——低——中等——高 4个选项,缺省的配置重启优先级为中等
主机隔离相应:定义了当VM虚拟机所在的host主机被隔离时,位于其上的VM虚拟机所执行的操作,有保持电源打开、关闭电源和关机三个选择,缺省的主机隔离响应策略为保持电源打开
四、故障切换测试
针对主机隔离响应和虚拟机重启优先级这两个策略产生的不同结果如下所示:
场景1:该场景下不进行故障切换,虚拟机会一直等待网络恢复正常,此时只是host主机无法与Master主机和隔离网关进行通信,业务网络可能是正常的,即VM虚拟机可以正常对外提供服务,不必要因为网络的故障而重启虚拟机
名称
虚拟机重启优先级 主机隔离响应状态
低/中等/高
保持打开电源