在为VMware vSphere虚拟化环境配置高可用群集(HA)时,有一个重要的参数:EVC配置。如果加入群集的主机具有相同的配置(关键是CPU相同),则配置较为方便。如果混合使用新、旧不同的服务器,服务器的CPU型号不一致时,则加入同一群集时,配置EVC就较为麻烦,本文将介绍这一问题。

1 VMware EVC概述

EVC 是 Enhanced vMotion Compatibility 的简称,是VMware群集功能的一个参数。EVC 允许在不同代 CPU 之间迁移虚拟机

EVC 不允许 AMD 和 Intel CPU 与 vMotion 兼容。已启用 EVC 的群集仅允许来自群集中单个供应商的 CPU。 vCenter Server 不允许将来自不同 CPU 供应商的主机添加到已启用 EVC 的群集。

因为 EVC 允许在不同代 CPU 之间迁移虚拟机,因此凭借 EVC,管理员可以在同一群集里混合使用较旧和较新代服务器,并且可以在这些主机之间使用 vMotion 迁移虚拟机。 这使得管理员可以更轻松地将新硬件添加到现有基础架构中,并有助于扩展现有主机的价值。 凭借 EVC,无需任何虚拟机停机即可实现完整群集升级。在将新主机添加到群集时,可以将虚拟机迁移到新主机并停用旧主机。

在启用 EVC 后,将群集中的所有主机都配置为向群集中正在运行的所有虚拟机提供由用户选择的处理器类型的 CPU 功能。 这可确保 vMotion 的 CPU 兼容性,即使基础硬件可能由于主机不同而有所不同。 会向虚拟机(无论其在哪个主机上运行)公开相同的 CPU 功能,因此虚拟机可以在群集中的任何主机之间进行迁移。

在配置了HA之后,在配置并启用了DRS或DPM功能之后,自动或手动在不同主机之间迁移正在运行的虚拟机(以平衡资源)都会使用VMotion技术。vCenter Server使用vMotion 在不同 ESXi 主机之间传输虚拟机的运行状况。vCenter Server 在迁移正在运行或已挂起的虚拟机前会执行一些兼容性检查,以确保虚拟机与目标主机兼容。

成功的实时迁移要求:目标主机的处理器能够在迁移之后向虚拟机提供与源主机的处理器在迁移之前所提供的相同的指令。源处理器和目标处理器之间的时钟速度、缓存大小以及核心数量可以不同,但处理器必须属于相同的供应商类别(AMD 或 Intel),以便与 vMotion 兼容。

已挂起的虚拟机的迁移还要求虚拟机能够使用等效指令在目标主机上恢复执行。

通过 vMotion 迁移“正在运行”或“已挂起”虚拟机的迁移时,迁移虚拟机向导会检查目标主机的兼容性,如果有阻碍迁移的兼容性问题存在,向导会生成错误消息。

在打开虚拟机电源时,确定可供操作系统以及虚拟机中运行的应用程序使用的 CPU 指令集。VMware根据以下项目确定此 CPU“功能集”:

l 主机 CPU 系列和型号

l BIOS 中可能禁用 CPU 功能的设置

l 在主机上运行的 ESX/ESXi 版本

l 虚拟机的虚拟硬件版本

l 虚拟机的客户机操作系统

要提高具有不同 CPU 功能集的主机之间的 CPU 兼容性,可通过将主机置于增强型 vMotion 兼容性 (EVC) 群集中来“隐藏”虚拟机中的一些主机 CPU 功能。

2 为相同CPU的主机配置EVC

如果是相同型号的主机(主要是CPU相同)加入同一群集,则只要查看其中一台主机能支持到的最高EVC参数,然后用此参数配置群集EVC设置,然后将所有主机加入到群集即可。本节将介绍这一内容。

2.1 向数据中心中添加主机

使用vSphere Web Client登录到vCenter Server,创建数据中心,将主机先加入“数据中心”查看EVC资料后,再创建群集,设置群集EVC参数为第一台主机所查看到的EVC参数,然后将主机移入“群集”,并向群集添加其他主机。

(1)在 vSphere Web Client 中,导航到数据中心、群集或数据中心中的文件夹。在本示例中,导航到“vCenter.heinfo.edu.cn(vCenter Server)→Datacenter(数据中心)”,在中间窗格中单击“添加主机”链接,在“添加主机”对话框中,键入主机的 IP 地址或名称,在本示例中,要添加的主机IP地址为172.18.96.34(如图3-4-32所示),然后单击“下一步”按钮, 在“连接设置”中,键入ESXi主机管理员账户root及密码。

esxi锁定模式_数据中心

图3-4-32 添加主机名称或IP地址

(3)在“安全警示”对话框中,显示“vCenter Server的证书存储无法验证该主机”,单击“是”按钮,添加并替换此主机的证书并继续工作。

(4)在“主机摘要”对话框,显示了要添加主机的信息、供应商、型号及ESXi版本,以及当前主机中的创建或加载的虚拟机。

(5)在“分配许可证”对话框,从“许可证”列表中,为当前添加的主机选择许可。

(6)在“锁定模式”中,可选择锁定模式选项以禁用管理员账户的远程访问。一般情况下,要“禁用”这一选项。

(7)在“即将完成”对话框,显示了新添加主机的信息,如图3-4-39所示。单击“完成”按钮。

esxi锁定模式_Server_02

图3-4-39 即将完成

(8)在将主机添加到数据中心之后,在“导航器”中单击主机,在“摘要”选项卡中,单击展开“配置”选项,音“EVC模式”,在“支持的EVC模式”中,记录主机所能支持的EVC模式,并以最后一个为准,如图3-4-41所示。

esxi锁定模式_Server_03

图3-4-41 查看主机支持的EVC模式

在记录每个主机能支持的EVC模式中,排列在后面的需要的CPU“越新”。当群集中有多个不同CPU的主机时,其EVC模式以最后一个相同的为准。

2.2 创建群集

群集是一组主机。将主机添加到群集时,主机的资源将成为群集资源的一部分。群集管理其中所有主机的资源。群集启用 vSphere High Availability (HA)、vSphere Distributed Resource Scheduler (DRS) 和 VMware Virtual SAN 功能。

(1)在 vSphere Web Client 导航器中,浏览到数据中心,在中间窗格中单击“创建群集”,如图3-4-42所示。

esxi锁定模式_数据中心_04

图3-4-42 创建群集

(2)在“名称”文本框中,设置新建群集的名称,例如设置名称为HA01。之后根据需要启用群集的名称,例如,如果要启用DRS,请在“DRS”后面的方框单击并选中。如果要启用“vSphere HA”请在其后选中,如图6-88所示。大多数的情况下,DRS与vSphere HA是必选项。

在启用DRS时,选择一个自动化级别和迁移阈值。在启用HA时,选择是否启用“主机监控”和“接入控制”,如果启用接入控制,请指定策略。

在“虚拟机监控”选项中,选择一个虚拟机监控选项,并指定虚拟机监控敏感度,在此设置为“低”。

【说明】在“vSphere HA”功能中,“启用主机监控”,当有HA中的主机死机或其他故障导致主机不能使用时,原来主机上运行的虚拟机,会在其他主机注册并重新启动。如果HA中的主机没有故障,但某个虚拟机出现问题,例如某虚拟机“蓝屏”死机,如果要检测这种故障并将“蓝屏”的虚拟机重新启动,则在“虚拟机监控状态”中选择“仅虚拟机监控”,并在“监控敏感度”选项中选择“低、中、高”,一般选择“低”即可。

(3)在“EVC模式”中,选择增强型 vMotion 兼容性 (EVC) 设置。EVC 可以确保群集内的所有主机向虚拟机提供相同的 CPU 功能集,即使这些主机上的实际 CPU 不同也是如此。这样可以避免因 CPU 不兼容而导致通过 vMotion 迁移失败。在右侧的下拉列表中,根据你的主机的CPU型号、支持功能,选择EVC模式,如图3-4-43所示。根据图3-4-41的检查,在本示例中选择EVC为“Intel "Haswell" Generation”,如图3-4-44所示。

esxi锁定模式_操作系统_05

图3-4-43 启用DRS及HA功能

esxi锁定模式_数据中心_06

图3-4-44 EVC模式

在“vSAN”功能处,选择是否启用“vSAN” 群集功能。关于“虚拟SAN”,本章暂时不做介绍。之后单击“确定”按钮,完成群集的创建。

【说明】在不同版本的ESXi中,EVC模式不同,在ESXi 6.5中,Intel CPU支持的选项包括以下:

Intel Merom Generation

Intel Penryn Generation

Intel Nehalen Generation

Intel Westmere Generation

Intel Sandy Bridge Generation

Intel ivy Bridge Generation

Intel Haswell Generation

Intel Broadwell Generation

AMD支持CPU支持的选项包括以下:

AMD Opteron Generation 1 ("Rev. E")

AMD Opteron Generation 2 ("Rev. F")

AMD Opteron Generation 3 ("Greyhound")(不支持3DNow)

AMD Opteron Generation 3 ("Greyhound")

AMD Opteron Generation 4 ("Bulldozer")

AMD Opteron "Piledriver" Generation

AMD Opteron "Steamroller" Generation

当网络中有多台不同型号的ESXi主机时,如果主机相同,则记下“支持的EVC模式”列表中最后一项。当具有不同EVC模式支持的主机,创建成同一个群集时,其EVC选项支持以最少的一台主机的最后一项为准。

2.3 将主机添加到群集

在记录每个主机的EVC并根据记录的EVC创建群集之后,接下来的操作是将主机“移入”群集,或者向群集中添加其他未添加到vCenter Server中的主机(这些主机与已经添加到vCenter Server中的部分主机具有相同的CPU,所以无需事先全部添加,而是在等待创建群集之后再次添加)。将主机移入群集或向群集中添加主机的操作比较简单,管理员即可以用鼠标选中主机,将其“拖拽”并移动到群集,也可以右击ESXi主机,选择“移至”(如图3-4-45所示),并在随后“移至”对话框中,选择移入的群集,并单击“OK”按钮。

esxi锁定模式_数据中心_07

图3-4-45 移至

添加之后可以将其他ESXi主机“移入”此群集,也可以在“导航器”中选中群集,在右侧单击“添加主机”链接,向群集中添加其他ESXi主机(没有添加到vCenter Server清单中的ESXi主机)。

在将ESXi主机移入群集时,主机会配置“vSphere HA”代理,此时主机前面会有一个“×××”的感叹号,等配置vSphere HA完成后,状态正常。之后在“导航器”中选中某个主机,在“摘要→配置→EVC模式”中,可以看到当前EVC模式及支持的EVC模式,如图3-4-49所示。

esxi锁定模式_操作系统_08

图3-4-49 查看EVC模式

3 为不同主机启用EVC实验

如果CPU不同的主机加入同一群集,需要以EVC最低支持主机为准。为了演示这些功能,本节以图3-7-6所示环境为例进行介绍。

esxi锁定模式_esxi锁定模式_09

图3-7-6 vSphere HA实验环境

为了充分体验VMotion的功能,以及为了解决实际中碰到的困难,我们设计如下的实验环境:

(1)2台ESXi主机,其中每个主机的CPU不同,其支持的EVC功能不一致。其中支持较高EVC功能的主机(172.18.96.34,i7-4790K,支持Haswell)已经加入了群集,需要将另一台支持较低EVC功能的ESXi主机(172.18.96.35,E3-1230 V2,支持ivy Bridge)加入群集。但如果直接将主机加入群集,则会弹出图3-7-7所示错误。

(2)所以低EVC支持的ESXi主机要加入高EVC支持的群集,需要修改群集设置将EVC“降级”。如果要将群集支持的EVC降级,降级之前当前群集中的主机,如果存在运行的虚拟机,将不能降级。此时错误信息如图3-7-8所示。

esxi锁定模式_运维_10

图3-7-7 低EVC支持的主机加入高EVC配置的群集的错误提示

esxi锁定模式_Server_11

图3-7-8 尝试降低EVC时的错误提示

(3)由于172.18.96.34已经运行了虚拟机,并且是vCenter Server的虚拟机,当前vCenter Server不能关机,因为关机之后,vSphere Web Client将不能工作(群集功能是vCenter Server所支持的)。

1 vCenter保存在共享存储中

对于此类问题,如果vCenter Server保存在共享存储中,解决思路:

(1)使用vSphere Client或vSphere Host Client登录(EVC支持高的)172.18.96.34,将vCenter Server关机,并将vCenter Server虚拟机从ESXi清单中“移除”。

(2)使用vSphere Client或vSphere Host Client登录(EVC支持低的)172.18.96.35,浏览存储,将vCenter Server添加到清单。之后打开vCenter Server虚拟机的电源。

(3)等vCenter Server启动之后,使用vSphere Web Client登录vCenter Server,关闭(EVC支持高的)172.18.96.34主机上所有正在运行的虚拟机,如果有“休眠”的虚拟机,请将休眠的虚拟机“打开电源”,之后再关闭这些虚拟机的电源。否则,如果高EVC支持的主机上有正在运行的虚拟机或者休眠的虚拟机,在尝试加入更低EVC配置的群集时,会弹出“无法允许主机进入群集当前的增强型VMotion兼容模式。主机上己打开电源或己挂起的虚拟机正在使用该模式所隐藏的CPU功能”,图3-7-9所示错误提示。

esxi锁定模式_Server_12

图3-7-9 高EVC支持的主机上有运行或休眠的虚拟机不能加入低EVC配置的群集

等所有虚拟机关闭并且没有休息的虚拟机时,修改群集中EVC设置,从原来支持Haswell改为ivy Bridge,并将172.18.96.35加入到群集。

2 vCenter保存在本地存储中,无共享存储

如果vCenter Server保存在本地存储中,并且当前环境中没有共享存储,解决思路如下:

(1)使用vSphere Web Client,将(EVC支持低的)172.18.96.35添加到“数据中心”根目录,但不要将172.18.96.35加入到群集,此时也不能加入。

(2)右击正在运行的vCenter Server虚拟机(本示例为vCenter-172.18.96.221),选择“克隆到虚拟机”(图3-7-10所示),设置克隆后虚拟机的名称为其他名称,本示例为vcenter_91.221(如图3-7-11所示),目标选择172.18.96.35主机(如图3-7-12所示)、存储选择172.18.96.35的本地存储(如图3-7-13所示)。

esxi锁定模式_操作系统_13

图3-7-10 克隆到虚拟机

esxi锁定模式_操作系统_14

图3-7-11 设置克隆后虚拟机名称

esxi锁定模式_数据中心_15

图3-7-12 选择172.18.96.35为目标主机

esxi锁定模式_运维_16

图3-7-13 选择172.18.96.35的本地存储为目标存储

(2)等虚拟机克隆完成之后,在清单中可以看到克隆前正在运行的vCenter虚拟机(名称为vCenter-172.18.96.221)、克隆成功后状态为关闭的虚拟机(名称为vCenter_96.221),如图3-7-14所示,请关闭在172.18.96.34主机上运行的vCenter Server虚拟机vCenter-172.18.96.221。等(EVC支持高的)172.18.96.34主机上的vCenter Server虚拟机关闭后,使用vSphere Client或vSphere Host Client登录(EVC支持低的)172.18.96.35,打开克隆后的vCenter Server虚拟机(名称为vCenter_96.221)的电源。

esxi锁定模式_运维_17

图3-7-14 克隆完成

(3)等vCenter Server启动之后,使用vSphere Web Client登录vCenter Server,关闭(EVC支持高的)172.18.96.34主机上所有正在运行的虚拟机,如果有“休眠”的虚拟机,请将休眠的虚拟机“打开电源”,之后再关闭这些虚拟机的电源。然后修改群集中EVC设置,从原来支持Haswell改为ivy Bridge(如图3-7-15所示),并将172.18.96.35加入到群集,如图3-7-16所示。

esxi锁定模式_Server_18

图3-7-15 更改EVC模式

esxi锁定模式_操作系统_19

图3-7-16 将另一个主机加入到群集

3 vCenter保存在本地存储,有共享存储

如果vCenter Server保存在本地存储中,当前环境中有共享存储,此时vCenter Server运行在(EVC支持高的)172.18.96.34主机上。解决思路如下:

(1)使用vSphere Web Client登录vCenter Server,选中正在运行的vCenter Server虚拟机,右击选择“迁移”,选择“更改存储”,将vCenter Server的存储从172.18.96.34更改到连接到172.18.96.34的共享存储。

(2)等更改存储完成后,再参照前文介绍的步骤操作(vCenter Server关机、从高EVC支持的ESXi清单移除、添加到低EVC支持的ESXi、重新打开vCenter Server电源、重新连接vCenter Server、重新配置群集、将低EVC支持的ESXi主机加入到群集),这些不一一介绍。