共计 2197 个字符,预计需要花费 6 分钟才能阅读完成。
一、背景介绍
某企业在成生产环境中使用 8 台 Esxi5.1 物理服务器和 1 台 vCenter5.1 物理服务器组虚拟化平台,拓扑如下图所示,为了验证平台故障发生时的高可用性,计划分别对 2 台 Esxi 物理主机采取拔电源线和拔网线的方式模拟主机和网络故障,由于 vCenter 是物理主机,所以不用考虑 vCenter 与集群中 Master 主机同时挂掉的情况,且主机断电故障情景简单(vmware HA 细节可参考文章 http://www.linuxidc.com/Linux/2017-03/142355.htm),本处只讨论网络故障时 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 虚拟机可以正常对外提供服务,不必要因为网络的故障而重启虚拟机
名称 | 虚拟机重启优先级 | 主机隔离响应 |
状态 | 低 / 中等 / 高 | 保持打开电源 |
场景 2:该场景下不会进行故障切换,虚拟机 一直保持打开电源状态,即使主机隔离响应选择的是关机或关闭电源。如果选择“禁用”,则会为虚拟机禁用 vSphere HA,这 意味着当其主机出现故障时不会在其他 ESXi 主机上重新启动虚拟机
名称 | 虚拟机重启优先级 | 主机隔离响应 |
状态 | 禁用 | 保持打开电源 / 关机 / 关闭电源 |
场景 3:该场景下被隔离主机上承载的虚拟机会进行关机操作,并在集群内其他未隔离的物理主机上重启,继续对外提供服务。要求 VM 虚拟机必须安装 vmware tools(经测试未安装的 VM 虚拟机也可以完成关机,但还是按照官方解释为准)
名称 | 虚拟机重启优先级 | 主机隔离响应 |
状态 | 低 / 中等 / 高 | 关机 |
场景 4:该场景下被隔离主机上承载的虚拟机会进行关闭电源操作,并在集群内其他未隔离的物理主机上重启,继续对外提供服务。与关机不同处在于,关机操作会先将内存中的数据写入硬盘,而关闭电源相当于直接拔掉电源,内存中的数据会丢失
名称 | 虚拟机重启优先级 | 主机隔离响应 |
状态 | 低 / 中等 / 高 | 关闭电源 |
五、补充说明
1. 裂脑情况的产生
如果主机禁用其隔离响应(即隔离时使虚拟机处于打开电源状态)且无法访问管理和存储网络,则可能发生“裂 脑”情况。在这种情况下,即使虚拟机的原始实例仍在独立主机上运行,独立主机也会丢失磁盘锁且虚拟机会 故障切换至另一主机。主机能够重新访问虚拟机的数据存储时,将会有两个虚拟机副本,但原来独立主机上的 副本无权访问 vmdk 文件,这样便避免了数据损坏(实际测试中没有出现裂脑的情况,不确定可能的几率有多大)
2. 虚拟机和应用程序监控
vSphereHA 的虚拟机 / 应用程序监控功 能会忽略虚拟机重启优先级中“已禁用”设置,因为该功能可保护虚拟机免受操作系统级别故障而不是虚拟机故障。当出现操作系 统级别故障时,vSphereHA 将重新引导操作系统,而虚拟机则在同一台主机上继续运行
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142356.htm