一、相关概念
1.1、HA 工作原理
当我们将主机添加到 vSphere HA 群集(启用HA后)时,代理将上载安装到主机上,并配置为与群集内的其他主机上的代理通信。集群中会选出一台主机作为【首选主机】,其余主机作为【从属主机】。群集启用了 vSphere HA,所有活动主机(未处于待机或维护模式的主机或未断开连接的主机)都将参与竞选群集的首选主机。挂载最多数量的数据存储的主机在选举中具有优势。每个群集通常只存在一台首选主机,如果首选主机出现故障、关机或处于待机模式或者从群集中移除,则HA集群会进行新的首选主机选举。
首选主机监控群集中辅助主机的活跃度。此通信通过每秒交换一次网络检测信号来进行。当首选主机停止从辅助主机接收这些检测信号时,它会在声明该主机出现故障之前检查主机活跃, 确定辅助主机是否在与数据存储之一交换检测信号。而且,首选主机还将检查辅助主机是否对发送至其管理 IP 地址的 ICMP ping 进行响应。当辅助主机仍在运行但无法再监视来自管理网络上 vSphere HA 代理的流量时,会发生主机网络隔离。如果主机停止监视此流量,则它会尝试 ping 群集隔离地址。如果此 ping 也失败,主机会声明它已与网络隔离。
VMware vCenter 会选择一组首选数据存储集用于检测信号。这种选择会使有权访问检测信号数据存储的主机数最大,即集群中这些主机都可以访问该存储集,也就意味着该存储集是分布式存储或者外部共享存储,但vSAN 数据存储无法用于数据存储检测信号,VSAN集群无法使用任何检测信号数据存储。可以使用高级选项 das.heartbeatdsperhost 来更改 vCenter为每个主机选择的检测信号数据存储的数量。默认值为 2,最大有效值为 5。
HA 将在用于数据存储检测信号和存储受保护的虚拟机集的每个数据存储上的 root 目录下创建一个 .vSphere-HA目录,请勿删除或修改存储在此目录中的文件,否则会影响HA正常运行和vm的切换。另多个群集可能共同使用一个数据存储,这会将针对每个群集创建该目录的子目录,只有root用户可以读写这些目录和文件。HA 使用数据存储增加的开销很小,并且不会对其他数据存储操作的性能产生任何影响。
vSphere HA 在配置文件中会限制可在单个数据存储中的虚拟机数量。如果某一数据存储中,将超过该数量的虚拟机置于并打开其电源,则 vSphere HA 只保护该上限数量的虚拟机。
【HA健康监控过程总结】:
1)首选主机-----被动接受辅助主机agent报告-------来自辅助主机上HA代理
2)如未收到上报----首选主机检查辅助主机【活跃度】------检测:辅助主机与数据存储之间是否有【交换检测信号】,否则主机故障,其上vm在其他主机上重启
3)如辅助主机与数据存储之间有【检测信号】----------首选主机ping检测辅助主机个管理IP,看是否响应
4)如辅助主机未响应管理网络的ping检测---------首选主机则声明辅助主机处于网络分区/网络隔离
5)辅助主机ping【集群隔离管理IP(网关)】----------如ping失败,则声明主机已与管理网络隔离。首选主机会继续监控隔离主机上正在运行的虚拟机。
6)如ping成功,则声明主机已处于网络分区。
如果首选主机无法直接与辅助主机上的代理通信,则辅助主机不会响应 ICMP ping。如果代理未发出检测信号,则被视为出现故障。会在备用主机上重新启动该主机上的虚拟机。如果此类辅助主机正在与数据存储交换检测信号,首选主机会假设辅助主机在网络分区中或已与首选主机管理网络隔离。因此,首选主机会继续监控该主机及其虚拟机。在 vSphere HA 群集中,有检测到三种类型的主机故障:
故障: 主机停止运行。
隔离:主机出现网络隔离。
分区:主机失去与首选主机的网络连接。
【 虚拟机监控敏感度】:
-
故障时间间隔(30S):如果在30S的时间间隔内未收到主机与虚拟机间的检测信号,vSphere HA会重新启动虚拟机。
-
最短正常运行时间(120S):发现故障后,不会立即重启虚拟机,先进行120S的和存储I/O的信息监测,以免故障误判。das.iostatsinterval
-
每个虚拟机的最大重置次数(3次)
为了避免因非瞬态错误而反复重置虚拟机,默认情况下,在某个可配置的时间间隔内将对虚拟机仅重置三次,在对虚拟机执行过三次重置后,指定的时间结束之前,vSphere HA 不会在后续故障出现后进一步尝试重置虚拟机,可以使用每个虚拟机的最大重置次数自定义设置来配置重置次数。 -
最大重置时间段(1小时)
1.2、首选主机:master
1)监控辅助主机的状况:检测辅助主机的故障,监控群集中辅助主机的活跃度,每秒交换一次网络检测信号。如果辅助主机发生故障或无法访问,首选主机将确定必须重新启动哪些虚拟机。
2)监控所有受保护虚拟机的电源状况,协调受保护虚拟机的重新启动。如果有一台虚拟机出现故障,首选主机可确保重新启动该虚拟机。首选主机还可使用本地放置引擎确定进行重新启动的位置。还可监控虚拟机和应用程序;
3)管理群集主机和受保护的虚拟机列表。首选主机会将受保护虚拟机的列表保留在群集的数据存储中。首选主机失败后,新选的首选主机使用此信息来确定要保护哪些虚拟机。
4)充当群集的 vCenter Server 管理界面并报告群集运行状况。在 vCenter Server 观察到用户操作响应后,某虚拟机的电源状况由关闭电源变为打开电源之后,该虚拟机会就受到首选主机的保护。
1.3、 从属主机
1)辅助主机主要通过在本地运行虚拟机、监控其运行时状况并向首选主机报告状况更新,来对群集提供支持。
1.4、Master/Slave选举机制
1)Master/Slave主机的选举是存储最多的ESXi主机,如果ESXi主机的存储相同时,会使用MOID(Managed Objective ID,数值大的为Master,)来进行选举。当Master主机产生后,会通告给其他Slave主机。当选举产生的Master主机故障时,会重新选举产生新的Master主机
2). Master主机监控所有Slave主机,当Slave主机出现故障时重启启动虚拟机
3). Master主机监控所有被保护虚拟机的电源状态,如果被保护的虚拟机出现故障,将重启虚拟机
4). Master主机发送心跳信息给Slave主机,让Slave主机知道Master的存在
5). Master主机执行状态信息给vCenter Server,vCenter Server正常情况下只和Master主机通信
6). Slave主机监视本地运行的虚拟机状态,把这些虚拟机运行状态的显著变化发送给Master主机
7). Slave主机监控Master主机的健康状态,如果Master主机出现故障,Slave主机将参与与Master主机的选举