以下所述“群集”都是基于HA群集,区另于“DRS群集”。
(一)节点状态更新
当Sec节点发现出现变更时,群集中的Sec需要向Pri发送节点状态更新数据,当变更发生时,会在一秒内发送,默认情况下节点状态更新的发送时间为,vSphere 4.1后是10秒,之前的版本为每秒发送一次。
状态更新,例如:主机资源使用情况,当vCenter不可用时,Pri节点总是拥有最近的资源消耗情况,以便当故障转移发生需要。
间隔时间配置在HA高级配置选项中,das.sensorPollingFreq默认值为10秒,最大为30秒,虽然降低此值可更快速进行群集状态更新,但ESX之间会带来其他额外的流量,不建议降低。
(二)HA心跳检测
HA心跳检测用于发现节点失效或是节点隔离,当某个节点无法接收到其它节点的心跳时,他会认为自己变隔离了。这些都必须依赖于节点间的心跳检测,默认情况下节点间每一秒发送一次心跳,可通过HA高级配置中的das.failuredetectioninterval选项变更发送间隔,但不建议更改此值。
(三)节点类型
查看群集中的Primary\Secondary:
1、vCenter 为4.1后的版本,可以群集概要标签中找到Cluster Operational Status页。
2、
- /aam-installation/opt/vmware/aam/bin#.cat /var/log/vmware/aam/aam_config_util_listnodes.log
3、
- /aam-installation/opt/vmware/aam/bin#./Cli
- aam>ln
4、使用PowerCLI
- Power-CLI code:Get-Cluster | Get-HAPrimaryVMHost
默认情况下群集中的前5个节点为Primary,5个节点限制只是软限制,可通过命令将任意Secondary节点提升为Primary。以下命令可将Sec节点提升为Pri节点,或将Pri节点降级为Sec节点。
- /aam-installation/opt/vmware/aam/bin#./Cli
-
-
aam>promoteNode esx3
-
-
aam>demoteNode esx3
提升Secondary成为Primary,只在下列情况才出现:
Primary节点进入维护模式;
Primary从群集中断开;
Primary从群集中移除;
在任意ESX\ESXI上点击“重新配置HA”;
注意:当Primary节点失效时,是不会发生节点提升的。
所以当一个任意节点失效时,建议使其进入维护模式或是将其从群集中断开、移除。
当群集中5个Pri同时宕机时,群集将无Pri可用于控制虚拟机重启\HA初始化的节点,所以在配置HA群集接入控制策略时,选择“主机故障(host failures)”时,数量最多只能选择4个。
(四)failover coordinator(故障恢复协调)
failover coordinator角色被随机分配到某个Primary节点中,用于控制群集中的虚拟机重启
也可称为"active Primary"。
在4.1之前failover coordinator角色在决定虚拟机重启时,需检查哪个主机拥有高百分比的未使用或未分配的内存和CPU,并此主机上重新启动这个虚拟机。HA在决定放置虚拟机到哪个主机时并不与DRS进行协调,但HA依赖于DRS进行群集资源调度,当虚拟机重新启动后,DRS再将视情况对虚拟机进行重定位。
4.1之后虚拟机将在各主机中均匀分布,以减轻hostd服务的压力并快速启动。
failover coordinator可以在同一时间重启32台虚拟机,默认值可从高级配置das.perHostConcurrentFailoversLimit选项进行配置。调高此值虽然可以同时重启更多虚拟机和减少整体虚拟机的恢复时间,但恢复单个虚拟机的平均等待时间可能会增加。
在刀片环境中,特别重要的的设计是针对Pri节点跟failover coordinator,当所有的Pri节点位于同一刀箱,刀箱出现故障后,虚拟机将不会重启因为没有failover coordinator角色可以初始化并重启虚拟机。最佳实践:在刀片环境中,从所有刀箱中分开主机,并使用其在同一群集中不包含超过4台刀片服务器,以免所有的Pri节点都位于同一刀箱中。
(五)优先Primary
vSphere 4.1 高级设置中的新选项,但这一选项是不被支持的,不建议在任何生产环境中使用,可以在测试环境中使用。
使用das.preferredPrimaries = hostname1,hostname2,hostname3或是das.preferredPrimaries = 192.168.1.1 192.168.1.2 192.168.1.3。
可以手动使节点成Pri节点,可以设置少于或等于5个主机。
(六)HA设计
HA配置的两个主要设计点是:
1、隔离响应(Isolation Response)
2、接入控制(Admission Control)
以上两点对可用性有重大影响,如果不能很好的理解这两个概念,很容易增加宕机时间而不是减少宕机时间。
Power off:当网络隔离发生时,所有虚拟机Power off,相当于断电,硬关机。
Shut down:当网络隔离发生时,所有虚拟机通过VMware Tools进行Shut down,即正常关机,如果不成功,5分钟后,执行Power off,时间值可通过群集高级配置中的das.isolationShutdownTimeout选项进行调整。如果虚拟机没有安装VMware Tools,则虚拟机将立即执行Power off。这是安装VMware tools的重点之一。
Leave powered on:当网络隔离发生时,虚拟机状态不作更改。
HA会尝试在受影响群集上的其它主机启动虚拟机,如果不成功,重启计数器加1,下一次重启时间将是2分钟后,直到群集高级配置选项中的das.maxvmrestartcount所设置的次数, 重启时间如下:
T 0 – Restart
T 2 – Restart retry 1
T 4 – Restart retry 2
T 8 – Restart retry 3
T 8 – Restart retry 4
T 8 – Restart retry 5
脑裂(Split-Brain)
当使用iSCSI阵列或NFS存储,且群集隔离响应选择默认的“Leave powered on”时,会导致脑裂情况出现。当存储网络不可用时,VMDK文件锁定超时也会发生脑裂,在这种情况下,虚拟机在原注册的主机上保持开机,未能关机并释放VMDK文件,而此时其它的主机正尝试重新启动此虚拟机。这样可能会导致vCenter出现不一致的状态,两个相同UUID的虚拟机,在不同的主机上运行。这样会致使虚拟机在两台主机之间不停地跳动,两主机一直尝试接管虚拟机文件,进入死循环状态(PING-PONG:原作者引用乒乓球来解释这一现象),在3.5版本时,本人亲身经历过这种情况。
这种情况在ESX 4.0 Update2后出现相应的解决办法,默认情况下,需要直接连接到ESX上,在虚拟机的摘要中出现一个对话框,将为出现脑残情况的虚拟机关机,并在另一台ESX主机上重新启动。注意:4.0 U2后会自动应答为YES,之前的版本则需手动确认。
为了避免出现脑裂的情况,建议在存储网络所在的虚拟交换机上建立第二个服务控制台或管理网络(ES),同时升级到4.0 U2以后的版本,隔离响应选择“关机”或“断电”。
(未完待续。。。。。。)
如
阅读(1628) | 评论(0) | 转发(0) |