ESXi主机的群集
一高可用性的介绍
二 vsphere high availability(HA)
1群集中的主机均会受到监控,如果发生故障,故障主机上的虚拟机将在备用主机上重新启动
2通过持续监控虚拟机(通过vmware tools实现主机向虚拟机发送检测信号)并在检测到故障时对其进行重新设置(重启)
可以将 vSphere HA 与 vSphere Distributed Resource Scheduler (DRS) 结合使用以防止出现故障,以及在群集内的主机之间提供负载平衡(实现每台主机中的虚拟机数量平衡)
三 vSphere Fault Tolerance
・vSphere Fault Tolerance 提供连续可用性
vSphere HA 通过在主机出现故障时重新启动虚拟机来为虚拟机提供基本级别的保护。因此它的缺点就是存在宕机时间,可能是几分钟也可能是十几分钟。
可以为虚拟机启用 vSphere Fault Tolerance,以获得比 vSphere HA 所提供的级别更高的可用性和数据保护,从而确保业务连续性
・使用方法
可以为大多数任务关键虚拟机启用 Fault Tolerance。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步(vLockstep)方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护
如下图所示:Fault Tolerance 对中的主虚拟机和辅助虚拟机
・Fault Tolerance 不支持的 vSphere 功能
容错虚拟机不支持以下 vSphere 功能。
1 快照。在虚拟机上启用 Fault Tolerance 前,必须移除快照。此外,不可能对已启用 Fault Tolerance的虚拟机执行快照。
2 Storage vMotion。不能为已启用 Fault Tolerance 的虚拟机调用 Storage vMotion。要迁移存储器,应当先暂时关闭 Fault Tolerance,然后再执行 Storage vMotion 操作。在完成迁移之后,可以重新打开 Fault Tolerance。
3 链接克隆。不能在为链接克隆的虚拟机上启用 Fault Tolerance,也不能从启用了 Fault Tolerance 的虚拟机创建链接克隆。
4 虚拟机备份。不能使用 Storage API for Data Protection、VMware Data Recovery 或需要使用虚拟机快照(如 ESXi 所执行的那样)的类似备份产品来备份启用了 FT 的虚拟机。要以这种方式备份容错虚拟机,首先必须禁用 FT,然后在执行备份后重新启用 FT。基于存储阵列的快照不影响 FT
・Fault Tolerance 的群集要求:
在使用 Fault Tolerance 之前,必须满足以下群集要求。
1 主机证书检查功能已启用。稍后会讲到如何查看。
2 至少有两台通过 FT 认证的主机运行相同的 Fault Tolerance 版本号或主机内部版本号(即相同版本的ESXi包括补丁程序)。Fault Tolerance 版本号显示在 vSphere Client 中主机的摘要选项卡上。
3 ESXi 主机可以访问相同的虚拟机数据存储(SAN、NAS、ISCSI)和网络。请参考后面的讲课资料
4 配置了 Fault Tolerance 日志记录和 vMotion 网络。请参考后面的讲课资料
5 vSphere HA 群集已创建并启用。请参见 "创建 vSphere HA 群集"。打开要容错虚拟机电源或者将主机添加到已支持容错虚拟机的群集之前,必须启用 vSphere HA。
・Fault Tolerance 的主机要求:
在使用 Fault Tolerance 之前,必须满足以下主机要求。
1 主机上的处理器必须来自与 FT 兼容的处理器组。此外,强烈建议主机的处理器之间也相互兼容。有关受支持处理器的信息,网址为 http://kb.vmware.com/kb/1008027。
2 在配置每台主机时,都必须在 BIOS 中启用硬件虚拟化 (HV)。
注意:当主机无法支持 Fault Tolerance 时,可在 vSphere Client 中主机的摘要选项卡上查看原因。单击已配置 FT 的主机字段旁边的蓝色标题图标,查看主机不符合的 Fault Tolerance 要求的列表。
・Fault Tolerance 的虚拟机要求
在使用 Fault Tolerance 之前,必须满足以下虚拟机要求。
1 虚拟机必须存储在虚拟 RDM 或厚置备的虚拟机磁盘 (VMDK) 文件中。如果虚拟机存储在精简置备的 VMDK文件中,则在尝试启用 Fault Tolerance 时将会出现一则指示必须转换 VMDK 文件的消息。要执行该转换,必须关闭虚拟机电源。
2 虚拟机文件必须存储在共享存储器上。可接受共享的存储解决方案包括光纤通道、(硬件和软件)iSCSI、NFS 和 NAS。
3 只有带有单个 vCPU 的虚拟机才能与 Fault Tolerance 功能兼容。
四 主机群集
1创建 vSphere HA 群集时,可以选择使用单个主机作为首选主机(master)以与 vCenter Server 通信并监控其他主机、从属主机(slave)及其虚拟机的状况
2如果为群集启用了 vSphere HA,则所有活动主机(未处于待机或维护模式的主机或未断开连接的主机)都将参与选举以选择群集的首选主机;挂载最多数量的数据存储的主机在选举中具有优势;先开机的主机也有优先选举权;每个群集只存在一台首选主机,其他所有主机都是从属主机。如果首选主机出现故障、关机或从群集中移除,则会进行新的选举
1 监控从属主机的状况。如果从属主机发生故障或无法访问,首选主机将确定需要重新启动的虚拟机。
2 监控所有受保护虚拟机的电源状况。如果有一台虚拟机出现故障,首选主机可确保重新启动该虚拟机。使用本地放置引擎,首选主机还可确定执行重新启动的位置。
3 首选主机管理群集主机和受保护的虚拟机列表并对添加或删除cluster内部的主机进行管理即首选主机维护着群集内的清单。
4 首选主机管理被保护的虚拟机清单,在用户每次发起开关机操作时,更新这个清单。vcenter server会要求保护或不保护某些虚拟机。即当虚拟机打开电源,则该虚拟机要受保护,一旦主机出现故障就会在其他主机上重新启动虚拟机。当虚拟机关闭电源,就没有必要再保护它了
5 首选主机缓存cluster的配置,master主机通知和提醒slave主机,cluster配置的修改。
6 master主机发送心跳信息给slave主机,让slave主机知道master的存在。如果slave主机接收不到心跳信息,则重新选举出新的首选主机。
7 master报告状态信息给vcenter,vcenter正常情况只与master主机通信
1 slave主机监视本地运行的虚拟机的状态,把这些虚拟机运行状态的显著变化发给master主机。
2 slave主机监视master主机的健康状态,如果master主机出现故障,slave主机参与master的选举。
3 slave运用vSphere HA 接入控制vSphere HA特性,这些特性不需要master的协调。这些特性包括VM Health Monitoring
五主机故障类型和检测
vSphere HA 群集的首选主机负责检测从属主机的故障。根据检测到的故障类型,在主机上运行的虚拟机可能需要进行故障切换。
vSphere HA使用管理网络和存储设备来联系。当master通过管理网络联系不到slave时,master就会使用存储网络(heartbeat datastores)来检查slave是否存活
1 主机停止运行(即发生故障)
2 主机与网络隔离:一个或多个slave丢失了所有的管理网络连接,这样的slave既不能联系到master也不能联系到其他ESXi hosts。这种情况下,slave主机通过存储网络来通知master,它已经是隔离状态
3 主机失去与首选主机的网络连接(网络分区):一个或多个slave通过管理网络联系不到master,即使它们的网络连接没有问题,这种情况下,vSphere HA能够了使用存储网络来检测分离的主机(上面的slaves)是否存活以及否要保护它们里面的虚拟机
注意:如果你确保网络基础结构具有足够的冗余度且至少有一个网络路径始终可用,则主机网络隔离应该在极少数情况下才出现
在 vSphere HA 群集发生管理网络故障时,该群集中的部分主机可能无法通过管理网络与其他主机进行通信。一个群集中可能会出现多个分区。
已分区的群集会导致虚拟机保护和群集管理功能降级
1 虚拟机保护。vCenter Server 允许虚拟机打开电源,但仅当虚拟机与负责它的首选主机在相同的分区中运行时,才会对其进行保护。
2 群集管理。vCenter Server 只能与群集中的部分主机进行通信,且只能连接到一台首选主机。因此,只有在解决分区之后,配置中影响 vSphere HA 的更改才能生效。此故障可能会导致其中一个分区在旧配置下操作,而另一个分区使用新的设置
六接入控制策略
vCenter Server 使用接入控制来确保群集内具有足够的资源,以便提供故障切换保护;即如果不满足这个策略,即使有主机故障,也不进行转移(因为内存或CPU资源不足)
当故障数目大于允许的故障数目时,不进行转移
主机故障数目的计算方式:虚拟机数要小于群集中主机的插槽数的总和;如果一台主机上的插槽数大于等于虚拟机数,则允许故障数目为主机数减1,如果两台主机上的插槽和大于等于虚拟机数,则允许故障数目为主机数减2
插槽数的计算方式:一个主机的插槽数可以理解为最大运行的主机数;使用这个主机的预留CPU和内存分别除以插槽大小,取最小的整数
插槽大小的计算方式:插槽大小由两个组件(CPU 和内存)组成;插槽大小是选择所有虚拟机中最大的预留CPU和预留内存
示例:
1 比较虚拟机的 CPU 和内存要求,然后选择最大值,从而计算出插槽大小。
最大 CPU 要求(由 VM1 和 VM2 共享)为 2 GHz,而最大内存要求(针对 VM3)为 2 GB。根据上述情况,插槽大小为 2 GHz CPU 和 2 GB 内存。
2 由此可确定每台主机可以支持的最大插槽数目。
H1 可以支持四个插槽。H2 可以支持三个插槽(取 9GHz/2GHz 和 6GB/2GB 中较小的一个),H3 也可以支持三个插槽。
3 计算出当前故障切换容量。
最大的主机是 H1,如果它发生故障,群集内还有六个插槽,足够供所有五个已打开电源的虚拟机使用。如果 H1 和 H2 都发生故障,群集内将仅剩下三个插槽,这是不够用的。因此,当前故障切换容量为 1。
群集内可用插槽的数目为 1(H2 和 H3 上的六个插槽减去五个已使用的插槽)
建议最好不使用"群集允许的主机故障数目"策略的接入控制,因为如果群集内部的主机硬件性能不一时,就不好确定故障数目了。除非群集内部的主机硬件性能一致时可以使用此策略
设置一个资源百分比,低于百分比时,讲不进行转移;百分比的大小为主机数分之一
群集资源百分比的计算方式:即包括"当前的CPU故障切换容量"和当前内存故障切换容量;使用主机资源总量减去虚拟机资源总量再除以主机资源总量
主机资源总量的计算方式:将所有开机的主机的预留资源加起来
虚拟机资源总量计算方式:将所有开机的虚拟机的预留资源加起来
示例:
已打开电源的虚拟机的总资源要求为 7 GHz CPU 和 6 GB 内存。可用于虚拟机的主机资源总数为 24 GHz CPU和 21 GB 内存。
根据上述情况,"当前的 CPU 故障切换容量"为 70% ((24GHz - 7GHz)/24GHz)。同样,"当前的内存故障切换容量"为 71% ((21GB-6GB)/21GB);
配置的故障切换容量为1/3;假如H1故障,故障百分比为8/15和6/12,在允许范围内
直接指定一个主机来进行故障转移;这种方法基本不用;DRS 不会对故障切换主机进行负载平衡
1 绿色。主机处于连接状态、未进入维护模式且没有 vSphere HA 错误。主机上没有任何已打开电源的虚拟机。
2 黄色。主机处于连接状态、未进入维护模式且没有 vSphere HA 错误。但是,主机上驻留了已打开电源的虚拟机。
3 红色。主机已断开连接、处于维护模式或存在 vSphere HA 错误