vSphere部署系列之09——HA和DRS群集管理
群集(Cluster)是将多台物理主机组织起来,群集管理其中所有主机的资源,形成一个大的资源池。群集中的所有的虚拟机可在池中的任意主机上自由移动,并且群集可做到快速扩容和HA故障冗余。群集的前提条件是要有共享存储,所有虚拟机及其配置文件必须驻留在共享存储器上。
在前面的博文章节中,已搭建了比较基础的实验环境,实现了vCenter对ESXi主机的管理,网络管理、共享存储管理。在这种情况下,各物理主机之间的计算资源(CPU、内存)是完全独立的,在某台主机出现问题时,虚拟机的运行得不到保障。
为了达到计算资源的均衡利用,和更好的业务保障,接下来需要创建群集,并启用群集的HA和DRS解决方案。
实验环境总体规划,请见前面的博文《vSphere部署系列之03——实验环境总体规划》
▲总体规划网络拓扑图
一、前期工作
在此前的操作中,已经配置了vMotion网络,并配置了共享存储。
为方便接下来的调试,先在每台服务器上新建并运行一个虚拟机。系统安装完成后,各虚拟机安装VMware Tools,并且,在CD/DVD的设置中,要断开与主机ISO镜像的连接(在装系统时会需要用到),否则在vMotion迁移时会报错。
二、新建群集
VMware建议首先创建空群集。在已计划群集的资源和网络架构之后,再使用 vSphere 客户端将主机添加到群集,并指定群集的VMware HA 设置。
本案是在vSpherer Client连接vCenter Server的主界面中进行。
选中左侧清单中的数据中心“SQ-DataCenter”,通过右击菜单中的“新建群集”子菜单,将会弹出“新建群集向导”对话框。
▲单击子菜单“新建群集”,将会弹出新建群集向导对话框
▲新建群集向导对话框,设备群集名称,本案设为“Cluster01”。
在这一步中直接勾选群集的两项功能,也可留作以后再配置。这里暂不勾选,创建一个空群集。
▲VMware EVC设置。EVC(增加vMotion兼容性)能够屏蔽某些差异,提供了具有不同代次处理器的服务器之间的兼容性。这里选择默认的“禁用EVC”。本案中两台物理主机配置相同,不存在兼容性问题。
▲虚拟机交换文件位置设置
至此一个空群集创建完成。群集建立完成后,将主机往该群集里拖,即可完成添加。以后如果要退出,则将主机向数据中心处拖动即可——但此时主机要进入维护模式,才能操作。
▲在摘要->常规区域中,可看到此时群集的资源总体情况。
本案中,两台服务器配置一样,CPU均为两个6核的E5-2630 v2,内存均为4条8G。
因此这里看到的群集资源为:总内存(2*4*8G)64G,处理器总核数和为(2*2*6)24核。另外,总存储为两台主机的本在磁盘容量之和、再加上共享存储的磁盘容量。
虽然此时群集的资源,是两台物理主机的总和,但由于没有启用HA功能,还是各自私有的。此时关掉某台主机的话,其虚拟机也会跟着被关机。
也就是说,此时群集还没实现自动vMotion,如要迁移虚拟机,仍需要人工干预。接下来要为群集设置启用vSphere HA和vSphere DRS,
对于加入群集的主机,需要在全部虚拟机关机或迁移至其他主机的的情况下,才能进入维护模式。否则会报错,提示“资源不足 无法满足群集上的vSphere HA故障切换配置”。
三、HA和DRS设置
首先了解一下vSphere HA和DRS的原理和功能。
vSphere HA(高可用性)通过对群集中不同主机的虚拟机的即时监控,通过主机故障转移功能,使得主机上面的虚拟机可以成功的转移到其它群集内的主机上,有效的避免了主机宕机给企业带来的危害,降低了风险(当然vmware还有更厉害的武器,那就是vmware的FT功能)。
vSphere DRS(分布式资源调度)聚合群集中的ESXi主机资源,通过监控利用率,自动分配这些资源给虚拟机,并能够跨ESXi主机不断进行虚拟机资源优化。DRS利用vMotion以满足虚拟机在群集中的可用资源配额,vMotion将虚拟机迁移到有更多可用资源的ESXi主机上来平衡利用率,DRS也可以使用vMotion进行分散资源整理,使得虚拟机有更多的资源利用。
HA的心跳检测信号可以通过在 ESXi 主机之间发生, 不受 DRS 和 VMotion 的影响;HA 甚至都不依赖于 VC 服务器,VC 于 HA 的作用仅限于配置时需要它,配置完成之后,只要设定了心跳检测的隔离地址,便与VC服务器无关了(前提是不需要用到DRS和VMotion 等功能)。
下面进行HA的DRS的设置。通过右击群集,在其菜单中选择“编辑设置”,将会弹出设置对话框,可修群集的VMware HA和vSphere DRS设置。
▲Cluster01设置对话框。在功能选择区域中,首先勾选“打开vSphere HA”和“打开vSphere DRS”
此时在左则列表框中可看到“vSphere HA”和“vSphere DRS”及其子选项。选中各项,根据需要进行具体的设置即可。
如无特殊情况,各子项设置使用默认设置即可。也就是说,勾选这两项后,直接单击“确定”按钮,即完成了 HA和DRS的启用、设置。
A、vSphere HA设置
▲主机监控及接入控制,这里选择选择默认值
▲虚拟机选项
其中“虚拟机 重新启动优先级”选项指定发生主机故障时重启 VM 的相对优先级,优先级较高的 VM 将优先启动,依此类推,优先级从高到低次第启动;“主机隔离响应”选项则用于对已与集群失去连接的主机进行操作。
▲虚拟机监控,默认为“已禁用”
▲数据存储检测信号,默认为第一项,这里选择第三项,并勾选共享存储
B、vSphere DRS 设置
▲自动化级别,自动级别决定了DRS的自动响应级别,包括位置生成和负载均衡,这里选择选择默认值——全自动优先级3。
可移动阈值滑块以使用从“保守”到“激进”这5个设置中的一个。这5种迁移设置将根据其所分配的优先级生成建议。每次将滑块向右移动一个设置,将会允许包含下一较低优先级的建议。
▲DRS组合管理器,可以创建虚拟机与主机间的关联性规则,从而与适当的虚拟机 DRS组建立关联性(或反关联性)关系。暂时不设置。
▲规则,在这里可以根据需要添加一系列的相应规则,控制群集内主机上的虚拟机的放置位置。暂时不添加。
▲虚拟机选项,自动化级别为默认的全自动。
配置完成后,在群集摘要中,可以看到HA和DRS配置信息。
▲群集的摘要信息,单击“配置问题”链接,将弹出群集配置问题对话框
▲集配置问题对话框,显示有网络冗余问题和数据存储问题
以上群集配置问题对话框中,显示有网络冗余问题和数据存储问题,这在各主机的摘要中也会有提示。
▲主机esxi01摘要中的配置问题提示
VMware建议为vSphere HA 设置冗余网络连接。本案在此前的网络设计中,对这一点有疏忽,Management Network所在的vSwitch0只对应了vmnic0一个网卡,不满足网络冗余,因此出现“此主机当前没有管理网络冗余”提示,但不阻碍HA的使用。
官方显示:自 vSphere 5.0 开始,vSphere HA 至少需要在群集中的所有主机之间共享两个共享数据存储,才能正常运行数据存储检测(DataStore HeartBeat)信号。因为本案只是用了一个共享存储因此出现“vSphere HA检测信号数据存储数目为1,少于要求数目:2”问题。
(在高级设置中,das.heartbeatdsperhost一项,用于更改所需的检测信号数据存储的数量。有效数值为2-5,默认为2。
das.ignoreinsufficienthbdatastore用于在如果主机不具有足够的 vSphere HA 检测信号数据存储,则禁用创建的配置问题。默认值为 false。必为True,则不会再出现此提示。)
▲主机esxi01摘要中的可看到该主机为HA群集中的主机
如果看esxi02,则其vSphereHA状况显示为“已连接(从属)”
每个启用了HA的群集通常只存在一台首选主机(Master),其他所有主机都是从属主机(Slave)。首选主机的职责是管理群集主机和受保护的虚拟机列表、监控从属主机的状况等,如果从属主机发生故障或无法访问,首选主机将确定需要重新启动的虚拟机。
首先主机是通过选举规则产生的。选举的规则有两条:拥有最多的datastore的主机当选;如果主机拥有的datastore一样多,那么Managed Objective ID((MOID) )号最大的那台主机当选。
在完成以上配置的情况下,如果关闭某一台主机,其上面的虚拟机会自动迁移到另一个主机上。当该主机重新启动之后,先前自动迁移出去的虚拟机会自动迁移回来。如果关闭的是首选主机,由(唯一的)从属主机会晋升为首选主机。
此时若在群集中直接新建虚拟机,由于是DRS是配置为全自动级别,虚拟机最终运行在哪台主机上,由DRS按负载均衡原则、根据各主机的资源使用情况来决定。
▲直接在群集Cluster01中新建虚拟机
HA和DRS,以及更进一步的FT,都有很深的学问,细究起来可以琢磨好几天。笔者本人懂得并不深入,不敢班门弄斧,下面仅就易于实验、在实践中较常用到的DRS规则做一些设置,以窥DRS的魅力。
四、vSphere DRS规则的设置
为对DRS有更好的调试、研究,在该群集Cluster01中再创建六个虚拟机——将其中一个虚拟机做成模板(改名为Win2008R2-Temp),然后再从模板中批量创建虚拟机。关于虚拟机模板,后续文章会有专门研究。
▲查看群集虚拟机,可看到运行的虚拟机均匀地分布在两主机上
以上8个虚拟机中,VM1和VM2是esxi01和esxi02在加入群集前创建的,仍分别运行在最初主机上,其他6个虚拟机VM3、VM4、VM7和VM8,则在启动时,因缺少初始位置的数据,会被DRS按全自动的方式、根据主机的资源使用情况,进行随机分配。由于两台主机硬件配置(性能)相同,所以最终平均分配在两台主机上。
主机
|
虚拟机
|
esxi01
|
VM1、VM4、VM5、VM7
|
esxi02
|
VM2、VM3、VM6、VM8
|
▲当前虚拟机运行情况
通过使用此主机DRS组,可以创建虚拟机与主机间的关联性规则,从而与适当的虚拟机DRS组建立关联性(或反关联性)关系,这样可以实现控制群集内主机上的虚拟机的放置位置。
接下来,就使用DRS组管理和规则,对虚拟机的运行位置,按需进行重新分配。假设指定VM1-VM3运行在esxi01上,VM4-VM6运行在esxi02上——主要这两台主机是运行,就按这个规定运行虚拟要同——剩余两个VM7、VM8不指定。
主机
|
虚拟机
|
esxi01
|
VM1、VM2、VM3、VM7
|
esxi02
|
VM4、VM5、VM6、VM8
|
▲预想虚拟机运行情况
打开群集设置对话框,在“DRS组管理器”和“规则”选项中进行操作
▲群集设置对话框->DRS组管理器
单击虚拟机DRS组中的“添加”按钮,会弹出虚拟机“DRS组”设置对话框;
单击主机DRS组中的“添加”按钮,会弹出主机“DRS组”设置对话框。
▲虚拟机“DRS组”设置对话框,
在此创建一个名为“A Group”的DRS组,并将虚拟机VM1-VM3移入到该组。
设备完成后,单击“确定”按键返回上一级。
按同样的方式,在此创建一个名为“B Group”的DRS组,并将虚拟机VM4-VM6移入到该组。
▲主机“DRS组”设置对话框,
在此创建一个名为“H1 Group”的DRS组,并将主机esxi01移入到该组。单击“确定”按钮,完成设置。
按同样的方式,创建一个名为“H2 Group”的DRS组,并将主机esxi02移入到该组。
▲创建了A Group、BGroup和H1 Group、H2 Group的DRS组管理器
接下来设置DRS规则。
DRS有两种类型的规则。一种是用于指定虚拟机DRS组和主机DRS组之间的关联性或反关联性。关联性规则规定,所选虚拟机DRS组的成员可以或必须在特定的主机DRS组成员上运行。反关联性规则规定,所选虚拟机DRS组的成员不能在特定的主机DRS组成员上运行。另一种是用于指定各个虚拟机之间的关联性或反关联性。指定关联性的规则会使DRS尝试将指定的虚拟机一起保留在同一台主机上(如,出于性能考虑)。根据反关联性规则,DRS尝试将指定的虚拟机分开,如,当一台主机出现问题时,将不会同时丢失两台虚拟机。
▲群集设置对话框->规则,单击“添加”按钮,弹出规则对话框。
类型列表中,有三种类型的规则:
单独的虚拟机(Separate Virtual Machines):允许实施VM反关联性,指定DRS组的VM必须分开在不同的主机DRS组运行;
聚集的虚拟机(Keep Virtual Machine Together):允许实施VM关联性,指定DRS组的VM必须分开在相同的主机DRS组运行;
虚拟机到主机(Virtual Machines to Hosts):允许利用主机关联性,可以指定特定的VM组必须在特定的主机DRS组中的主机上运行。
▲规则设置对话框(在DRS组管理器选项卡中,也是可以设置DRS组的),
在此创建一个名为“Rule1-A-H1”的规则,类型为“虚拟机到主机”,群集虚拟机组选择“A Group”,群集主机组选择“H1 Group”。即指定A Group组中的虚拟机运行在H1 Group组的主机上。
按同样的方式,此创建一个名为“Rule2-B-H2”的规则,类型为“虚拟机到主机”,群集虚拟机组选择“A Group”,群集主机组选择“H1 Group”。即指定B Group组中的虚拟机运行在H2 Group组的主机上。
▲创建了规则Rule1-A-H1和Rule2-B-H2,但“确定”按钮,完成设置
▲群集虚中虚拟机列表,VM2、VM3、VM4、VM5已根据规则自动迁移
DRS规则设置完成后,大约过半分钟,群集中的虚拟机会便根据规则定义的关键性,自动迁移到被指定的主机组中(本案主机组只有一台主机)。待虚拟机重新分配完成后,违反规则对虚拟机进行手动迁移,是不被允许的。
▲试途将VM1由esxi01向esxi02迁移时受到制止。
此时,若把exsi01主机关机,虚拟机DRS组A Group中的所有虚拟机,受制于规则不会自动迁移到esxi02主机上。
▲exsi01主机关机,VM1-VM3也跟着被关闭。VM7因不受规则限制,被自动迁移到esxi02。
本案中,由于资源有限,这样的设定看不到太大的应用意义。但在实际应用的,当有多台物理主机时,主机DRS组会包含多台主机,形成一个相对宽松的活动范围。这样,关联到该主机DRS组上的虚拟机DRS组内的虚拟机,便可以在此活动范围内均衡运行。