3.9 vSphere HA
VSAN群集完全支持vSphere HA,以为群集中部署的虚拟机提供额外的可用性。然而,对于vSphere HA我们做出了很多显著的变化来确保和VSAN之间的良好的互操作性。理解这些变化将如何影响vSphere HA的配置是非常重要的。
3.9.1 vSphere HA通信网络
在非VSAN部署中,vSphere HA代理的通信是通过管理网络进行的;在VSAN环境中,vSphere HA代理的通信是通过VSAN网络进行的。背后的原因是我们希望当网络故障发生时,vSphere HA主机和VSAN主机是位于同一分区(partition)中的,这就避免了故障时因vSphere HA和VSAN判断的分区不同而造成拥有的存储组件和对象集不同所造成的可能的冲突。
在VSAN环境下的vSphere HA在默认情况下仍然将管理网络的默认网关用作隔离检测(isolation detection)。我们估计大多数VSAN环境的管理网络和VSAN网络很可能是使用同一个物理网络基础架构的(尤其是在万兆网络情况下)。但是,如果VSAN网络和管理网络是位于不同的物理网络基础架构,建议将默认的vSphere HA隔离检测地址从管理网络变更为VSAN网络。如前所述,默认情况下隔离地址是管理网络的默认网关。VMware建议在VSAN上的vSphere HA使用VSAN网络上的某个IP地址作为隔离地址。要使用VSAN网络上的某个IP地址而不是管理网络的默认网关作为隔离检测地址,下列的vSphere HA高级设置中的配置需要进行变更:
das.useDefaultIsolationAddress=false
das.isolationAddress0=
不过,如果VSAN网络里面没有合适的隔离地址,那么也可以如默认设定那样保留管理网络中的隔离地址。
另一个显著的区别和网络重配置有关。vSphere HA不会自动探测到在VSAN层面就VSAN网络执行的变化,因此,为了探测到这些变化,vSphere管理员必须手动触发vSphere HA群集的重配置。
3.9.2 vSphere HA心跳数据存储
VSAN上的vSphere HA的另一个显著不同是VSAN数据存储不能用作数据存储心跳(datastore heartbeat)。当在传统的SAN或者NAS数据存储上的vSphere HA群集发生了分区故障事件时,心跳对于决定虚拟机的归属扮演着非常重要的角色。这个功能对于部署在传统共享存储环境(NAS/SAN)下的vSphere HA是非常有帮助的,因为它允许分区在同一层面上进行协调。vSphere HA不将VSAN数据存储用于心跳也不允许用户把它指定为一个心跳数据存储,VSAN使用网络群集服务来取而代之,它允许非常快速的故障检测。主要的原因是VSAN通常和vSphere HA一样使用同一个网络接口并在切换时和vSphere HA同步,因此数据存储心跳和网络心跳是完全一样的。
注意:参与到VSAN群集的ESXi主机如果同时也接入到共享存储,不管是VMFS还是NFS,这些传统的数据存储会被用于vSphere HA心跳。
3.9.3 vSphere HA接入控制
这是讨论vSphere HA和VSAN互操作性时另一个需要考虑的因素。在配置vSphere HA时另外一个需要做出的决定就是接入控制(Admission Control)。接入控制保证了vSphere HA可以预留出部分资源,这样在故障发生时还具有足够的资源来重新部署并重启虚拟机。
提起故障恢复,请注意,VSAN不是接入控制感知型的(admission control-aware),无法做到预先留出一部分空闲资源来保证过量分配(overcommitment)不会发生。
如果发生了一个故障,VSAN会试图使用群集中剩余节点的所有剩余的空间,使得虚拟机可以保持在合规状态。对于开启了vSphere HA的VSAN来说,谨慎而细致的规划是非常必要的,因为在资源过度分配时,VSAN群集中的多个故障会导致所有可用空间都被占满。
在规划和设计VSAN环境时,建议将“重建容量”(Rebuild Capacity)作为考虑因素之一。你将会在第9章学习如何实现这一点。出于简单性的考量,建议将VSAN(手动)的接入控制和所选的vSphere HA的接入控制配置成一样的设置。请特别注意,在Web客户端的健康检查页面的确会显示群集的当前状态,还会显示一整台主机故障之后的状态。
3.9.4 vSphere HA隔离响应
当一个启用了vSphere HA的VSAN群集上发生主机隔离事件时,vSphere HA会执行已配置过的隔离响应措施。就vSphere HA,你可以选择以下三种不同类型的隔离响应:
Leave power on(保持打开电源)
Power off,then fail over(关闭电源,然后故障切换)
Shut down,then fail over(关机,然后故障切换)
当主机隔离事件发生时,推荐的做法是让vSphere HA自动关闭运行在该主机上的虚拟机电源(Power Off)。也就是说,隔离响应应该选择“Power off,then failover”(关闭电源,然后故障切换),而不是默认选项Leave power on(保持打开电源)。
注意,“Power off,then failover”(关闭电源,然后故障切换)类似于对物理主机直接拔掉电源线的操作,虚拟机进程会被直接打断——这不是一次干净的关机。然而,在出现隔离事件的情况下,这种操作使得虚拟机不可能继续写入隔离主机上的磁盘中,因此关闭电源的做法是我们推荐的选择。此外,如果ESXi主机被分区了,虚拟机也不可能访问到存储对象的仲裁组件。
3.9.5 vSphere HA组件保护
在传统环境中,高可用(HA)是可以对APD(全路径异常,all path down)和PDL(永久设备丢失,permanent device loss)的情况来配置一种响应动作的。这是vSphere 6.0起引入的新功能之一,叫做虚拟机组件保护(VM component protection)。在当前版本中,这个功能不受VSAN支持,所以对于APD以及PDL的响应,是不需要对一个VSAN群集的vSphere HA进行配置的。
现在我们已经知道vSphere HA有了哪些变化,接下来我们一起看看VSAN的一些核心结构。