目录
第5步:使用相同的步骤为esxi2.lab.net主机添加VMkernel端口
[第6步:验证 "分开虚拟机"规则类型](#第6步:验证 “分开虚拟机”规则类型)
[第5步:了解实施vSphere HA的条件](#第5步:了解实施vSphere HA的条件)
[第1步:开始编辑vSphere HA](#第1步:开始编辑vSphere HA)
一、使用模板批量部署虚拟机
如果需要在一个虚拟化架构中创建多个具有相同操作系统的虚拟机(如创建多个操作系统为Windows Server 2008 R2的虚拟机),使用模板可大大减少工作量。模板是一个预先配置好的虚拟机的备份,也就是说,模板是由现有的虚拟机创建出来的。
要使用虚拟机模板,需要首先使用操作系统光盘ISO文件安装好一个虚拟机。虚拟机操作系统安装完成后,安装VMware Tools,同时可以安装必要的软件,然后将虚拟机转换或克隆为模板,将来可以随时使用此模板部署新的虚拟机。从一个模板创建出来的虚拟机具有与原始虚拟机相同的网卡类型和驱动程序,但是会拥有不同的MAC地址。
如果需要使用模板部署多台加入同一个活动目录域的Windows虚拟机,每个虚拟机的操作系统必须具有不同的SID(Security Identifier,安全标识符)。SID是Windows操作系统用来标识用户、组和计算机账户的唯一号码。Windows操作系统会在安装时自动生成唯一的SID。在从模板部署虚拟机时,vCenter Server支持使用sysprep工具为虚拟机操作系统创建新的SID。
第1步:将虚拟机转换为模板
下面将把虚拟机Windows Server 2008 R2转换成模板。
(1)关闭虚拟机Windows Server 2008 R2,在虚拟机名称处右击,选择"所有vCenter操作"->"转换成模板"命令

(2)虚拟机转换成模板之后,在"主机和群集"中就看不到原始虚拟机了,在VC-> "虚拟机和模板"中可以看到转换后的虚拟机模板

第2步:创建自定义规范
下面将为Windows Server 2008 R2操作系统创建新的自定义规范,当使用模板部署虚拟机时,可以调用此自定义规范。
(1)在"主页"的"规则和配置文件"中,选择"自定义规范管理器",单击"创建新规范"图标

(2)选择目标虚拟机操作系统为Windows,输入自定义规范名称为Windows Server 2008 R2

(3)设置客户机操作系统的名称和单位

(4)设置计算机名称,在这里使用"在克隆/部署向导中输入名称"

(5)输入Windows产品密钥

(6)设置管理员Administrator的密码

(7)设置时区为"(GMT+0800)北京,重庆,香港特别行政区,乌鲁木齐"

(8)设置用户首次登录系统时运行的命令,这里不运行任何命令

(9)配置网络,这里选择"手动选择自定义设置",选中"网卡1",单击"编辑"图标

(10)选择"当使用规范时,提示用户输入地址",输入子网掩码为255.255.255.0、默认网关为192.168.0.1、首选DNS服务器为运营商的服务器202.102.128.68

(11)设置工作组或域,这里使用默认的工作组WORKGROUP

(12)选中"生成新的安全ID (SID)"

第3步:从模板部署新的虚拟机
下面将从虚拟机模板WindowsServer2008R2部署一个新的虚拟机Web Server,调用刚创建的自定义规范,并进行自定义。
( 1)在vCenter->"虚拟机和模板"中,右击虚拟机模板"WindowsServer2008R2",选择"从此模板部署虚拟机"命令

(2)输入虚拟机名称为Web Server,选择虚拟机保存位置为Datacenter


(4)选择虚拟磁盘格式为Thin Provision(精简配置),选择存储为iSCSI-Starwind

(5)选择克隆选项,选中"自定义操作系统"和"创建后打开虚拟机电源"

(6)选中之前创建的自定义规范Windows Server 2008 R2

(7)输入虚拟机的NetBIOS名称为WebServer,网卡1的IP地址为192.168.0.101

(8)完成从模板部署虚拟机。
(9)在近期任务中,可以看到正在克隆新的虚拟机,部署完成后,新的虚拟机会自动启动,可以登录进入操作系统,检查新虚拟机的IP地址、主机名等信息是否正确

第4步:将模板转换为虚拟机
在进行后面的内容之前,在这里先把模板WindowsServer2008R2转换回虚拟机。
(1)在模板WindowsServer2008R2的右键快捷菜单中选择"转换为虚拟机"命令

(2)选择计算资源为esxi1.lab.net,完成将模板转换成虚拟机。
(3)在虚拟机设置中,将虚拟机名称改为Database Server

(4)以下为在"主机和群集"中显示的两个虚拟机,如图5-25所示。这两个虚拟机将在【任务二】、【任务三】、【任务四】中使用

第5步:批量部署CentOS虚拟机
以上介绍了使用模板批量部署Windows虚拟机的方法,对于CentOS/RHEL/Fedora虚拟机,必须在将虚拟机转换为模板之前对操作系统进行一系列修改,否则系统会将网卡识别为eth1(假设原始虚拟机配置了一块网卡eth0),导致应用无法使用。这是因为Linux操作系统重新封装的过程与Windows不同,当通过模板部署新的虚拟机时,系统会为虚拟机分配新的MAC地址,与操作系统记录的原始MAC地址不相同。 注意:在安装CentOS时,必须使用标准分区,不能使用LVM分区。查询硬盘分区方式的命令为【fdisk --l】。在将CentOS虚拟机转换为模板之前,必须进行以下操作,删除相关的配置文件。
(1)使用root用户登录CentOS,输入命令:
- 【rm -rf/etc/udev/rules.d/*persistent*.rules】删除网卡设备相关配置文件。
- 【 Is /etc/udev/rules.d】确认文件是否删除,保留如下三个文件即可。 60-raw.rules 99-fuse.rules 99-vmware-scsi-udev.rules
(2)编辑网卡配置文件,将MAC地址信息删除。
- 输入命令vi /etc/sysconfig/network_scripts/ifcfg_eth0编辑网卡配置文件,将HWADDR这一行删除。
(3)输入命令:
- 【rm -rf/etc/ssh/moduli/etc/ssh/ssh_host_*】删除SSH相关文件。
- 【Is /etc/ssh】确认文件是否删除,只看到以下文件即可 ssh_config sshd_config
(4)输入命令vi /etc/sysconfig/network编辑网络配置文件,将"HOSTNAME"这一行删除。
(5)配置文件删除完成后,输入【shutdown -h now】关闭虚拟机,这时可以将虚拟机转换为模板了。
(6)创建针对Linux操作系统的自定义规范,然后从模板部署新的CentOS虚拟机即可。 至此,便完成了Windows与Linux两种版本的虚拟机模板批量部署,此任务结束
二、在线迁移虚拟机(vMotion)
迁移是指将虚拟机从一个主机或存储位置移至另一个主机或存储位置的过程,虚拟机的迁移包括关机状态的迁移和开机状态的迁移。为了维持业务不中断,通常需要在开机状态迁移虚拟机,vSphere vMotion能够实现虚拟机在开机状态的迁移。在虚拟化架构中,虚拟机的硬盘和配置信息是以文件方式存储的,这使得虚拟机的复制和迁移非常好很方便。
vSphere vMotion是vSphere虚拟化架构的高级特性之一。vMotion允许管理员将一台正在运行的虚拟机从一台物理主机迁移到另一台物理主机,而不需要关闭虚拟机,如图所示。

要使vMotion正常工作,必须在执行vMotion的两台ESXi主机上添加支持vMotion的VMkernel端口。 vMotion需要使用千兆以太网卡,但这块网卡不一定专供vMotion使用。在设计ESXi主机时,尽量为vMotion分配一块网卡。这样可以减少vMotion对网络带宽的争用,vMotion操作可以更快、更高效。
当虚拟机在两台物理主机之间迁移时,虚拟机仍在正常运行,不会中断虚拟机的网络连接。vMotion具有适合现代数据中心且被广泛使用的强大特性。VMware虚拟化架构中的vSphere DRS等高级特性必须依赖vMotion才能实现。
假设有一台物理主机遇到了非致命性硬件故障需要修复,管理员可以使用vMotion将正在运行的虚拟机迁移到另一台正常运行的物理主机中,然后就可以进行修复工作了。当修复工作完成后,管理员可以使用vMotion将虚拟机再迁移到原来的物理主机。另外,当一台物理主机盼硬件资源占用过高时,使用vMotion可以将这台物理主机中的部分虚拟机迁移到其他物理主机,以平衡主机间的资源占用。
vMotion实时迁移对ESXi主机的要求如下:
源和目标ESXi主机必须都能够访问保存虚拟机文件的共享存储(FC、FCoE或iSCSI);源和目标ESXi主机必须具备千兆以太网卡或更快的网卡;源和目标ESXi主机上必须有支持vMotion的VMkernel端口;源和目标ESXi主机必须有相同的标准虚拟交换机,如果使用vSphere分布式交换机,源和目标ESXi主机必须参与同一台vSphere分布式交换机;待迁移虚拟机连接到的所有虚拟机端口组在源和目标ESXi主机上都必须存在。端口组名称区分大小写,所以要在两台ESXi主机上创建相同的虚拟机端口组,以确保它们连接到相同的物理网络或VLAN;源和目标ESXi主机的处理器必须兼容。
vMotion实时迁移对虚拟机的要求如下:
虚拟机禁止连接到只有其中一台ESXi主机能够物理访问的设备,包括磁盘存储、CD/DVD驱动器、软盘驱动器、串口、并口。如果要迁移的虚拟机连接了其中任何一个设备,要在违规设备上取消选中"已连接"复选框;虚拟机禁止连接到只在主机内部使用的虚拟交换机;虚拟机禁止设置CPU亲和性;虚拟机必须将全部磁盘、配置、日志、NVRAM文件存储在源和目标ESXi主机都能访问的共享存储上。
第1步:打开添加网络向导
在vCenter->"主机和群集"->esxi1.lab.net->"管理"->"网络"->"虚拟交换机"中单击"添加主机网络",选择"VMkernel网络适配器",选择"新建标准交换机",将vmnic3网卡添加到活动适配器,如图5-27所示。

第2步:配置端口属性
输入网络标签vMotion,在"启用服务"中选中"vMotion流量",如图5-28所示。

第3步:设置端口IP地址
输入VMkernel端口的IP地址为192.168.2.11,子网掩码为255.255.255.0,如图5-29所示。

完成创建VMkernel端口。
第4步:查看摘要信息
在esxi1.lab.net主机的摘要信息中,可以看到vMotion已启用,如图5-30所示。

第5步:使用相同的步骤为esxi2.lab.net主机添加VMkernel端口
使用相同的步骤为esxi2.lab.net主机添加支持vMotion的VMkernel端口,同样绑定到vmnic3网卡,IP地址为192.168.2.12,如图5-31所示。

至此,此子任务结束。
下面将把正在运行的虚拟机Web Server从一台ESXi主机迁移到另一台ESXi主机,通过持续ping虚拟机的IP地址,测试虚拟机能否在迁移的过程中对外提供服务。
第1步:设置防火墙规则
在虚拟机Web Server的"高级安全Windows防火墙"的入站规则中启用规则"文件和打印机共享(回显请求-ICMPv4 In)"

第2步:持续ping服务器
在本机打开命令行,输入"ping 192.168.0.101 -t"持续ping服务器Web Server

第3步:打开迁移虚拟机向导
在Web Server的右键快捷菜单中选择"迁移"命令


第4步:选择目标主机
选择目标资源为主机esxi1 .lab.net。
第5步:选择优先级
vMotion优先级选择默认的"为最优vMotion性能预留CPU(建议)"

第6步:开始迁移虚拟机
单击"完成"按钮开始迁移客户机,在近期任务中可以看到正在迁移虚拟机

等待一段时间,虚拟机Web Server已经迁移到主机esxi1.lab.net上

在迁移期间,虚拟机一直在响应ping,中间只有一个数据包的请求超时

也就是说,在使用vMotion迁移正在运行中的虚拟机时,虚拟机一直在正常运行,其上所提供的服务几乎一直处于可用状态,只在迁移将要完成之前中断很短的时间,最终用户感觉不到服务所在的虚拟机已经发生了迁移。
三、配置分布式资源调度(DRS)
分布式资源调度(Distributed Resource Scheduler,DRS)是vCenter Server在群集中的一项功能,用来跨越多台ESXi主机进行负载均衡,vSphere DRS有以下两个方面的作用。
(1)当虚拟机启动时,DRS会将虚拟机放置在最适合运行该虚拟机的主机上。
(2)当虚拟机运行时,DRS会为虚拟机提供所需要的硬件资源,同时尽量减小虚拟机之间的资源争夺。当一台主机的资源占用率过高时,DRS会使用一个内部算法将一些虚拟机移动到其他主机。DRS会利用前面介绍的vMotion动态迁移功能,在不引起虚拟机停机和网络中断的前提下快速执行这些迁移操作。
要使用vSphere DRS,多台ESXi主机必须加入到一个群集中。群集是ESXi主机的管理分组,一个ESXi群集聚集了群集中所有主机的CPU和内存资源。一旦将ESXi主机加入到群集中,就可以使用vSphere的一些高级特性,包括vSphere DRS和vSphere HA等。
注意:如果一个DRS群集中包含两台具有64GB内存的ESXI主机,那么这个群集对外显示共有128GB的内存,但是任何一台虚拟机在任何时候都只能使用不超过64GB的内存。
默认情况下,DRS每5min执行一次检查,查看群集的工作负载是否均衡。群集内的某些操作也会调用DRS,例如,添加或移除ESXi主机或者修改虚拟机的资源设置。
DRS有以下3种自动化级别:
(1)手工:当虚拟机打开电源时以及ESXi主机负载过重需要迁移虚拟机时,vCenter都将给出建议,必须由管理员确认后才能执行操作。
(2)半自动:虚拟机打开电源时将自动置于最合适的ESXi主机上。当ESXi主机负载过重需要迁移虚拟机时,vCenter将给出迁移建议,必须由管理员确认后才能执行操作。
(3)全自动:虚拟机打开电源时将自动置于最合适的ESXi主机上,并且将自动从一台ESXi主机迁移到另一台ESXi主机,以优化资源使用情况。
由于生产环境中ESXi主机的型号可能不同,在使用vSphere DRS时需要注意,硬件配置较低的ESXi主机中运行的虚拟机自动迁移到硬件配置较高的ESXi主机上是没有问题的,但是反过来可能会由于ESXi主机硬件配置问题导致虚拟机迁移后不能运行,针对这种情况建议选择"手动"或"半自动"级别。
在生产环境中,如果群集中所有ESXi主机的型号都相同,建议选择"全自动"级别。管理员不需要关心虚拟机究竟在哪台ESXi主机中运行,只需要做好日常监控工作就可以了。
DRS会使用vMotion实现虚拟机的自动迁移,但是一个虚拟化架构在运行多年后,很可能会采购新的服务器,这些服务器会配置最新的CPU型号。而vMotion有一些相当严格的CPU要求。具体来说,CPU必须来自同一厂商,必须属于同一系列,必须共享一套公共的CPU指令集和功能。因此,在新的服务器加入到原有的vSphere虚拟化架构后,管理员将可能无法执行vMotion。VMware使用称为EVC (Enhanced vMotion Compatibility,增强的vMotion兼容性)的功能来解决这个问题。
EVC在群集层次上启用,可防止因CPU不兼容而导致的vMotion迁移失败。EVC使用CPU基准来配置启用了EVC功能的群集中包含的所有处理器,基准是群集中每台主机均支持的一个CPU功能集。
要使用EVC,群集中的所有ESXi主机都必须使用来自同一厂商(Intel或AMD)的CPU、EVC包含以下3种模式。
(1)禁用EVC。即不使用CPU兼容性特性。如果群集内所有ESXi主机的CPU型号完全相同,可以禁用EVC。
(2)为AMD主机启用EVC。适用于AMD CPU,只允许使用AMD公司CPU的ESXi主机加入群集。如果群集内所有ESXi主机的CPU都是AMD公司的产品,但是属于不同的年代,则需要使用这种EVC模式。
(3)为Intel主机启用EVC。适用于Intel CPU,只允许使用Intel公司CPU的ESXi主机加入群集。如果群集内所有ESXi主机的CPU都是Intel公司的产品,但是属于不同的年代,则需要使用这种EVC模式。
下面将在vCenter中创建vSphere群集,配置EVC等群榘参数,并且将两台ESXi主机都加入到群集中。
第1步:打开创建群集向导
在vCenter->"主机和群集"->Datacenter的右键快捷菜单中选择"新建群集"命令

第2步:输入群集名称
输入群集名称为vSphere,如图5-41所示。在创建群集时,可以选择是否启用vSphere DRS和vSphere HA等功能,在这里暂不启用。

第3步:设置EVC
选中群集vSphere,单击"管理"->"设置"->VMware EVC,在这里VMware EVC的状态为"已禁用",如图5-42所示。由于在本实验环境中,两台ESXi主机都是通过VMware Workstation模拟出来的,硬件配置(特别是CPU)完全相同,所以可以不启用VMware EVC。

在生产环境中,如果ESXi主机的CPU是来自同一厂商不同年代的产品,例如所有ESXi主机的CPU都是Intel公司Ivy Bridge系列、Haswell系列的产品,则需要将EVC模式配置为 "为Intel主机启用EVC",然后选择"Intel®"Merom"Generation",如图5-43所示。

第4步:拖动主机esxi1.lab.net到群集
选中主机esxi1.lab.net,将其拖动到群集vSphere中

第5步:拖动主机esxi2.lab.net到群集
可以使用相同的方法将主机esxi2.lab.net也加入到群集中,或者在群集的右键快捷菜单中选择"将主机移入群集"命令

第6步:查看摘要信息
两台ESXi主机都已经加入群集vSphere,如图5-46所示,在群集的"摘要"选项卡中可以查看群集的基本信息。群集中包含两台主机,群集的CPU、内存和存储资源是群集中所有ESXi主机的CPU、内存和存储资源之和。

第1步:编辑DRS
选中群集vSphere,单击"管理"->"设置"->"vSphere DRS",单击"编辑"按钮,如图5-47所示。

第2步:调整自动化级别
选中"打开vSphere DRS",将自动化级别修改为"手动",如图5-48所示。

第3步:选择虚拟机运行的主机
打开虚拟机Database Server的电源,vCenter Server会给出虚拟机运行在哪台主机的建议。在这里选择将虚拟机Database Server置于主机esxi1.lab.net上,如图5-49所示。

第4步:选择另外虚拟机运行的主机
打开虚拟机Web Server的电源,由于主机esxi1.lab.net的可用资源小于主机esxi2.lab.net,因此vCenter Server建议将虚拟机Web Server置于主机esxi2.labnet上,如图5-50所示。

为了进一步针对特定环境自定义vSphere DRS的行为,vSphere提供了DRS规则功能,使某些虚拟机始终运行在同一台ESXi主机上(亲和性规则),或使某些虚拟机始终运行在不同的ESXi主机上(反亲和性规则),或始终在特定的主机上运行特定的虚拟机(主机亲和性)。
(1)聚集虚拟机:允许实施虚拟机亲和性。这个选项确保使用DRS迂移虚拟机时,某些特定的虚拟机始终在同一台ESXi主机上运行。同一台ESXi主机上的虚拟机之间的通信速度非常快,因为这种通信只发生在ESXi主机内部(不需要通过外部网络)。假设有一个多层应用程序,包括一个Web应用服务器和一个后端数据库服务器,两台服务器之间需要频繁通信。在这种情况下,可以定义一条亲和性规则聚集这两个虚拟机,使这两个虚拟机在群集内始终在一台ESXi主机内运行。
(2)分开虚拟机:允许实施虚拟机反亲和性。这个选项确保某些虚拟机始终位于不同的ESXi主机上。这种配置主要用于操作系统层面的高可用性场合(如使用微软的Windows Server Failover Cluster),使用这种规则,多个虚拟机分别位于不同的ESXi主机上,若一个虚拟机所在的ESXi主机损坏,可以确保应用仍然运行在另一台ESXi主机的虚拟机上。
(3)虚拟机到主机:允许利用主机亲和性,将指定的虚拟机放在指定的ESXi主机上,这样可以微调群集中虚拟机和ESXi主机之间的关系。 如果想在启用vSphere DRS的情况下,让Web Server和Database Server运行在同一台ESXi主机上,则需要按照以下步骤配置DRS规则。
第1步:打开添加规则向导
选中群集vSphere,选择"管理"->"设置"->"DRS规则",单击"添加"按钮,如图5-51所示。

第2步:设置规则名称与类型
设置名称为Web&Database Servers Together,规则类型为"聚集虚拟机",单击"添加"按钮,如图5-52所示。

第3步:选择适用的虚拟机
选中Database Server和Web Server两个虚拟机,如图5-53所示。

以下为已经配置的DRS规则,两个虚拟机Database Server和Web Server将在同一台主机上运行,如图5-54所示。

第4步:选择运行虚拟机的主机
启动虚拟机Database Server,选择在主机esxi1.lab.net上运行,如图5-55所示。

第5步:查看规则
当启动虚拟机Web Server时,vCenter Server 仍然建议将虚拟机Web Server 置于主机esxi1.lab.net 上,如图5-56所示。这是因为DRS规则在起作用。

第6步:验证 "分开虚拟机"规则类型
将原有的DRS规则删除,添加新的规则,设置名称为Separate Web Server&Database Server,规则类型为"分开虚拟机",选中Database Server和Web Server两个虚拟机,如图5-57所示。此规则会使虚拟机Web Server和Database Server在不同的ESXi主机上运行。

第7步:设置特别虚拟机禁用规则
虽然多数虚拟机都应该允许使用DRS的负载均衡行为,但是管理员可能需要特定的关键虚拟机不使用DRS,然而这些虚拟机应该留在群集内,以利用vSphere HA提供的高可用性功能。比如,要配置虚拟机Database Server不使用DRS,始终在一台ESXi主机上运行,则将之前创建的与该虚拟机有关的DRS规则删除,然后在群集vSphere的"管理"->"设置"->"虚拟机替代项"中单击"添加"按钮。单击"选择虚拟机",选中Database Server,将"自动化级别"设置为"已禁用"即可,如图5-58所示。

至此,本子任务结束。
四、启用虚拟机高可用性(HA)
高可用性(High Availability,HA)通常描述一个系统为了减少停工时间,经过专门的设计,从而保持其服务的高度可用性。
当ESXi主机出现故障时,vSphere HA能够让该主机内的虚拟机在其他ESXi主机上重新启动,与vSphere DRS不同,vSphere HA没有使用vMotion技术作为迁移手段。
第1步:了解高可用性实现的四种级别
应用程序级别:应用程序级别的高可用性技术包括Oracle Real Application Clusters( RAC)等。 操作系统级别:在操作系统级别,使用操作系统群集技术实现高可用性,如Windows Server的故障转移群集等。 虚拟化级别:VMware vSphere虚拟化架构在虚拟化级别提供vSphere IIA和vSphere FT功能,以实现虚拟化级别的高可用性。 物理级别:物理级别的高可用性主要体现在冗余的硬件组件,如多个网卡、多个HBA卡、SAN多路径冗余、存储阵列上的多个控制器以及多电源供电等。
第2步:了解vSphereHA的必备组件
从vSphere 5.0开始,VMware重新编写了HA架构,使用了Fault Domain架构,通过选举方式选出唯一的Master主机,其余为Slave主机。vSphere HA有以下必备组件。
(1)故障域管理器(Fault Domain Manager,FDM)代理:FDM代理的作用是与群集内其他主机交流有关主机可用资源和虚拟机状态的信息。它负责心跳机制、虚拟机定位和与hostd代理相关的虚拟机重启。
(2) hostd代理:hostd代理安装在Master主机上,FDM直接与hostd和vCenter Server通信。
(3) vCenter Server:vCenter Server负责在群集ESXi主机上部署和配置FDM代理。vCenter Server向选举出的Master主机发送群集的配置修改信息。
第3步:了解Master和Slave主机
创建一个vSphere HA群集时,FDM代理会部署在群集的每台ESXi主机上,其中一台主机被选举为Master主机,其他主机都是Slave主机。Master主机的选举依据是哪台主机的存储最多,如果存储的数量相等,则比较哪台主机的管理对象ID最高。
(1) Master主机的任务:
- Master主机负责在vSphere HA的群集中执行下面一些重要任务。
- Master主机负责监控Slave主机,当Slave主机出现故障时在其他ESXi主机上重新启动虚拟机。
- Master主机负责监控所有受保护虚拟机的电源状态。如果一个受保护的虚拟机出现故障,Master主机会重新启动虚拟机。
- Master主机负责管理一组受保护的虚拟机。它会在用户执行启动或关闭操作之后更新这个列表。即当虚拟机打开电源,该虚拟机就要受保护,一旦主机出现故障就会在其他主机上重新启动虚拟机。当虚拟机关闭电源时,就没有必要再保护它了。
- Master主机负责缓存群集配置。
- Master主机会向Slave主机发送通知,告诉它们群集配置发生的变化。
- Master主机负责向Slave主机发送心跳信息,告诉它们Master主机仍然处于正常激活状态。如果Slave主机接收不到心跳信息,则重新选举出新的Master主机。
- Master主机向vCenter Server报告状态信息。vCenter Server通常只和Master主机通信。
(2) Master主机的选举:
- Master主机的选举在群集中vSphere HA第一次激活时发生,在以下情况下,也会重新选举Master。
- Master主机故障。
- Master主机与网络隔离或者被分区。
- Master主机与vCenter Server失去联系。
- Master主机进入维护模式。 管理员重新配置vSphere HA代理。
(3) Slave主机的任务:Slave主机执行下面这些任务。
- Slave主机负责监控本地运行的虚拟机的状态,这些虚拟机运行状态的显著变化会被发送到Master主机。
- Slave主机负责监控Master主机的状态。如果Master主机出现故障,Slave主机会参与新Master主机的选举。
- Slave主机负责实现不需要Master主机集中控制的vSphere HA特性,如虚拟机健康监控。
第4步:了解心跳信号
vSphere HA群集的FDM代理是通过心跳信息相互通信的,如图5-59所示。

心跳是用来确定主机服务器仍然正常工作的一种机制,Master主机与Slave主机之间会互相发送心跳信息,心跳的发送频率为每秒1次。如果Master主机不再从Slave主机接收心跳,则意味着网络通信出现问题,但这不一定表示Slave主机出现了故障。为了验证Slave主机是否仍在工作,Master主机会使用以下两种方法进行检查。
Master主机向Slave主机的管理IP地址发送ping数据包。
Master主机与Slave主机在数据存储级别进行信息交换(称作数据存储心跳),这可以区分Slave主机是在网络上隔离还是完全崩溃。
vSphere HA使用了管理网络和存储设备进行通信。正常情况下,Master主机与Slave主机通过管理网络进行通信。如果Master主机无法通过管理网络与Slave主机通信,那么Master主机会检查它的心跳数据存储,如果心跳数据存储有应答,则说明Slave主机仍在工作。在这种情况下,Slave主机可能处于网络分区(Network Partition)或网络隔离(Network Isolation)状态。
网络分区是指即使一个或多个Slave主机的网络连接没有问题,它们却无法与Master主机通信。在这种情况下,vSphere HA能够使用心跳数据存储检查这些主机是否存活,以及是否需要执行一些操作保护这些主机中的虚拟机,或在网络分区内选择新的Master主机。
网络隔离是指有一个或多个Slave主机失去了所有管理网络连接。隔离主机既不能与Master主机通信,也不能与其他ESXi主机通信。在这种情况下,Slave主机使用心跳数据存储通知Master主机它已经被隔离。Slave主机使用一个特殊的二进制文件(host-X-poweron)通知Master主机,然后vSphere HA主机可以执行相应的操作,保证虚拟机受到保护。
第5步:了解实施vSphere HA的条件
在实施vSphere HA时,必须满足以下条件:
(1)群集:vSphere HA依靠群集实现,需要创建群集,然后在群集上启用vSphere HA。
(2)共享存储:在一个vSphere HA群集中,所有主机都必须能够访问相同的共享存储,这包括FC光纤通道存储、FCoE存储和iSCSI存储等。
(3)虚拟网络:在一个vSphere HA群集中,所有ESXi主机都必须有完全相同的虚拟网络配置。如果一个ESXi主机上添加了一个新的虚拟交换机,那么该虚拟交换机也必须添加到群集中所有其他ESXi主机上。
(4)心跳网络:vSphere HA通过管理网络和存储设备发送心跳信号,因此管理网络和存储设备最好都有冗余,否则vSphere会给出警告。
(5)充足的计算资源:每台ESXi主机的计算资源都是有限的,当一台ESXi主机出现故障时,该主机上的虚拟机需要在其他ESXi主机上重新启动。如果其他ESXi主机的计算资源不足,则可能导致虚拟机无法启动或启动后性能较差。vSphere HA使用接入控制策略来保证ESXi主机为虚拟机分配足够的计算资源。
(6) VMware Tools:虚拟机中必须安装VMware Tools才能实现vSphere HA的虚拟机监控功能。
下面将在群集中启用vSphere HA,并检查群集的工作状态。
第1步:开始编辑vSphere HA
选中群集vSphere,选择"管理"->"设置"->"vSphere HA",单击"编辑"按钮,如图所示。


第2步:选中共享存储 选中"打开vSphere HA",在"数据存储检测信号"中选择"使用指定列表中的数据存储并根据需要自动补充",选中"共享存储iSCSI-Starwind",如图所示。


在"近期任务"中可以看到正在配置vSphere HA群集,

第3步:查看摘要信息 经过一段时间,vSphere HA配置完成,在主机esxi2.lab.net的"摘要"选项卡中可以看到其身份为Master(主要),如图所示。

主机esxi1.lab.net的身份为Slave(从属),如图所示。

第4步:调整优先级
对于群集中某些重要的虚拟机,需要将"虚拟机重新启动优先级"设置为"高"。这样,当ESXi主机发生故障时,这些重要的虚拟机就可以优先在其他ESXi主机上重新启动。下面将把虚拟机Database Server的"虚拟机重新启动优先级"设置为"高"。
在群集vSphere的"管理"->"设置"->"虚拟机替代项"处单击"添加"按钮,单击"选择虚拟机",选中"虚拟机Database Server",为虚拟机配置其特有的DRS和HA选项,如图5-65所示。在这里,"自动化级别"设置为"已禁用",这可以让Database Server始终在一台ESXi主机上运行,不会被vSphere DRS迁移到其他主机;"虚拟机重新启动优先级"设置为"高",可以使该虚拟机所在的主机出现问题时,优先让该虚拟机在其他ESXi主机上重新启动。

注意:建议将提供最重要服务的VM的重启优先级设置为"高"。具有高优先级的VM最先启动,如果某个VM的重启优先级为"禁用",那么它在ESXi主机发生故障时不会被重启。如果出现故障的主机数量超过了容许控制范围,重启优先级为低的VM可能无法重启。
下面将以虚拟机Database Server为例,验证vSphere HA能否起作用。
第1步:开启虚拟机
启动虚拟机Database Server,此时vCenter Server不会询问在哪台主机上启动虚拟机,而是直接在其上一次运行的ESXi主机esxi1.lab.net上启动虚拟机,如图5-66所示。这是因为虚拟机Database Server的DRS自动化级别设置为"已禁用"。

第2步:使用ping命令测试虚拟机
在本机输入"ping虚拟机IP -t"持续ping虚拟机Database Server的IP地址,如图5-67所示。

第3步:模拟主机故障
下面将模拟ESXi主机esxi1.lab.net不能正常工作的情况。在VMware Workstation中将VMware ESXi 5-1的电源挂起,如图5-68所示。此时,到虚拟机Database Server的ping会中断。

第4步:观察ping命令测试状态
此时vSphere HA会检测到ESXi主机esxi1.lab.net发生了故障,并且将其上的虚拟机Database Server在另一台ESXi主机esxi2.lab.net上重新启动。经过几分钟,到虚拟机DatabaseServer的ping又恢复正常,如图5-69所示。

第5步:查看虚拟机摘要信息
在虚拟机Database Server的"摘要"选项卡中可以看到虚拟机已经在esxi2.lab.net上重新启动,虚拟机受vSphere HA的保护,如图5-70所示。

在使用vSphere HA时,一定要注意ESXi主机故障期间会发生服务中断。如果物理主机出现故障,vSphere HA会重启虚拟机,而在虚拟机重启的过程中,虚拟机所提供的应用会中止服务。如果用户需要实现比vSphere HA更高要求的可用性,可以使用vSphere FT(容错)。 至此,本子任务结束。