对于大多数还记得自己第一次接触虚拟化的人来说,正是在VMware vMotion过程中,他们才意识到虚拟化的存在。VMware vMotion过程使得无数的虚拟机从底层硬件和“解锁”搬到一个不同的服务器VMware vSphere集群,这样维护、升级和其他任务上执行实际的服务器硬件可以没有停机时间完成关键业务虚拟机。

vMotion进程代表了虚拟化的最大力量,它似乎能够挑战传统基础设施的约束,使vm暂时不受当前运行的特定主机硬件的限制。与VMware vMotion技术相一致的另一项技术使这个过程更加强大、灵活,并允许您的集群在不受硬件代数限制的情况下扩展。这种技术就是VMware EVC Mode。什么是VMware EVC模式?它是如何工作的?其目的是什么?使用它有缺点吗?让我们深入了解VMware EVC模式,看看它如何适合您的VMware vSphere基础设施。

什么是VMware EVC模式?

VMware EVC模式与vMotion直接相关。事实上,术语EVC代表增强的vMotion兼容性。VMware EVC模式的全部目的是允许在同一集群中运行不同处理器体系结构的ESXi主机之间迁移虚拟机。

VMware EVC模式允许通过强制在各种ESXi主机之间设置的特定CPUID指令,以便仅向虚拟机呈现处理器或指令集的单个“系列”,无论CPU指令集中的ESXi主机是否不同与群集中其他主机的指令集相比,可以呈现给虚拟机。

下载的横幅

VMware EVC Mode能够屏蔽CPU指令集,因此这些指令集在整个vSphere集群中看起来完全相同,每个ESXi主机中可能包含许多不同的底层CPU架构。可以想象,这让您有机会做一些在扩展vSphere集群时无法做的事情。

vSphere 6.7支持两种不同级别的EVC模式。VMware EVC可以在vSphere集群级和虚拟机级开启。我们将在下面几节中讨论这两种配置。

如何使用VMware EVC Mode来控制呈现给vSphere集群中的虚拟机的CPUID功能?为了更好地理解这一点,让我们来讨论一下VMware EVC Mode是如何工作的。

VMware EVC模式是如何工作的?

我们已经触及了一点,但是,让我们更详细地解释这一点。我们已经知道ESXi管理程序能够虚拟化CPU,内存,存储等。由于管理程序从虚拟机抽象实际物理CPU并通过一层抽象来控制这一点,这意味着vSphere能够控制哪种CPU指令呈现给客人虚拟机。

VMware EVC Mode利用这一点作为优势,因为它可以设置一个“锁定”的特性,功能,CPU指令等,呈现给客户虚拟机。这就是所谓的EVC基线。它允许vSphere集群中的所有主机发布相同的CPU指令,这些指令是通过VMware EVC Mode定义的,无论vSphere集群中的某些CPU是否比其他CPU更新。需要注意的一点是,所有的cpu必须来自同一家厂商。VMware EVC模式不支持将Intel的CPU切换为AMD的CPU,也不支持将AMD的CPU切换为Intel的CPU。

当您在集群级别启用EVC时,集群中的所有主机都被配置为向集群中运行的所有虚拟机提供用户选择的处理器类型的CPU特性。这就保证了ESXi主机之间vMotion的兼容性。为什么这很重要?

当您将活动虚拟机从一台主机虚拟移动到另一台主机时,如果目标主机配置了不同的CPU(将显示给虚拟机),您将遇到问题。为了兼容性、互操作性和稳定性,这些特性需要相同。

其中的优点是它确保了vMotion操作的CPU兼容性,即使底层硬件可能与一个ESXi主机不同于另一个ESXi主机。无论它们运行的​​主机如何,都会向虚拟机接触到相同的CPU功能,以便虚拟机可以在群集中的任何主机之间迁移。

好处和用例

有些人可能会说:“当我配置我的vSphere集群ESXi主机时,我肯定会确保cpu是相同的,为什么我需要这个?”在大多数新部署中,当将vSphere集群主机的材料清单放在一起时,这是最常见的情况。集群主机选择相同的cpu。

但是,如果两年后vSphere集群的计算能力耗尽,需要向外扩展,会发生什么情况?您可能无法构建与最初配置集群时完全相同的服务器构建。这意味着,任何新服务器的硬件配置都可能略有不同,包括配置的CPU。

群集的VMware EVC模式将允许您设置将在群集级别呈现的特定CPU模型类型和指令集。添加到vSphere群集的新主机将继承这些EVC设置,并仅呈现指定的CPU指令集和功能。这允许您在未来有效扩展一些时间,而无需担心具有不同的CPU配置。

当VMware EVC模式非常有价值时,即在vSphere群集中刷新硬件时,会想到另一种情况。您可以有效地将新主机引入集群。通过在集群级别启用EVC,您可以将虚拟机迁移到新主机,而不会出现新CPU的问题。然后,在迁移虚拟机之后,您可以取消对旧ESXi主机的配置,然后启动为VMware EVC模式配置的级别。

在vSphere群集上启用VMware EVC模式

现在让我们看看如何在vSphere集群中启用VMware EVC Mode。这个过程相当简单,涉及到在vSphere Client中为vSphere集群配置设置。

导航到库存中的特定vSphere群集您要更改VMware EVC模式>配置>配置> VMware EVC>编辑。

下面是一些有用的PowerCLI代码,可以帮助确定VMware EVC Mode的最大设置:

  • Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode

找到最大EVC模式关卡

找到最大EVC模式关卡

在vSphere群集上配置VMware EVC模式

在vSphere群集上配置VMware EVC模式

在“更改EVC模式”屏幕上,您将看到默认情况下设置模式以禁用EVC。启用EVC,只需选择CPU供应商的单选按钮即可启用它。

选择为您的CPU厂商类型启用EVC

选择为您的CPU厂商类型启用EVC

单击“单选”按钮后,您将看到针对特定CPU供应商提供的不同CPU系列的下拉列表。当您选择要激活的特定EVC模式时,描述将相应地更改。在您所希望的EVC模式下定居后,单击“确定”以启用群集的EVC。

选择要启用的模式

选择要启用的模式

单击“确定”后,将返回到主VMware EVC屏幕,如果EVC为群集和何种模式显示EVC,则会显示。您还可以看到当前的CPUID详细信息。

VMware EVC模式已成功启用

VMware EVC模式已成功启用

如果您试图在一个集群上启用VMware EVC模式,该集群的CPU指令集低于任何挂起或上电的虚拟机当前呈现的CPU指令集,您将遇到问题。

启动或挂起虚拟机的兼容性警告

启动或挂起虚拟机的兼容性警告

在群集级别启用VMware EVC模式时,有一些东西可以记住。

  • VM不识别VMware EVC模式所提出的功能,直到VM电源关闭,然后打开电源。只需重新启动VM,不足以在VM上实例化VMware EVC模式
  • 从启用VMware EVC模式的群集中删除主机时,主机将恢复为其正常行为,并将在其疏散后,呈现出安装到VM的物理CPU上存在的所有CPU指令启用了EVC的群集
  • 请记住,如果您试图使EVC模式低于任何挂起或开机的虚拟机当前使用的模式,那么您将遇到问题

群集级别EVC和VMware vm EVC之间的差异

如上所述,现在可以在vSphere群集和VM级别启用两个不同的范围。VM级实现是vSphere 6.7的新功能。它提供了新功能,允许您的EVC实现在vSphere虚拟机级别更加粒度,而不是群集级别实现。

当您已经在集群级别实现了EVC模式时,当您有活动的、正在运行的虚拟机时,可能很难更改集群EVC基线。在Per VM EVC模式下,EVC实现是虚拟机的一个属性,而不是vSphere集群中引导它的处理器生成。

VMware EVC Mode在每个vm级别上的工作需要几个要求。这就要求:

  • vSphere 6.7
  • 虚拟机硬件版本14或更高版本
  • 要更改每个虚拟机的EVC,必须关闭虚拟机

每个VM EVC属性保存在虚拟机VMX文件中。以下行如下所示:

featmask.vm.cpuid.intel =“val:1”
featMask.vm.cpuid.FAMILY=“Val:6”
featMask.vm.cpuid.MODEL = " Val: 0 x4f "
featmask.vm.cpuid.stepping =“val:0”
featMask.vm.cpuid.NUMLEVELS=“Val:0xd”

启用Per-VM EVC模式

当您的虚拟机硬件版本级别达到vSphere 6.7和14及以上时,可以开启Per-VM EVC模式。

右键单击虚拟机>配置>VMware EVC>编辑。

编辑每个VM EVC模式设置

编辑每个VM EVC模式设置

为CPU供应商启用该模式,并更改每VM EVC模式设置,然后单击“确定”。

启用Per-VM EVC模式

启用Per-VM EVC模式

如果您有许多不同的设置,其中包括群集级EVC和Per-VM EVC模式,请检查EVC模式的好方法是什么?

如何检查EVC模式

在vSphere Client中检查EVC之外,PowerCli提供了最佳解决方案,可快速增强对当前EVC模式的可见性。有几种非常有用的PowerCli单衬里,使这成为可能。

Kyle Ruddy在VMware中提供了一个脚本,它可以轻松获取Cluster-EVC设置、vm级别EVC设置和虚拟机的硬件版本。

Get-VM |选择名称,硬件版本,
@{Name=’VM_EVC_Mode’;Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},@{Name=’Cluster_Name’;Expression={$_.VMHost.Parent}},@{Name=’Cluster_EVC_Mode’;Expression={$_.VMHost.Parent.EVCMode}} | ft

PowerCli代码以查看VM EVC模式和群集EVC模式

PowerCli代码以查看VM EVC模式和群集EVC模式

使用脚本,您可以轻松查看VM名称,当前硬件版本,VM EVC模式,群集名称和群集EVC模式。这非常有助于能够在一个位置轻松查看信息。

如何改变和关闭EVC模式

在更改启用EVC的现有集群的EVC模式时,需要考虑一些问题。要使操作成功,需要满足先决条件,根据您是在启用EVC的集群中提高还是降低EVC级别,有不同的要求。

这些包括:

  • 验证vSphere群集中的主机是否支持您要启用的EVC模式的CPU
  • 验证所有ESXi主机是否已连接并已在vCenter Server中注册。不允许断开连接的主机启用EVC
EVC模式 虚拟机电源动作
使用更多功能将EVC模式提升到CPU基线。 正在运行的虚拟机可以保持开机状态。新的EVC模式功能在虚拟机关机和重新开机之前是不可用的。全功率循环是必需的。仅重启客户操作系统或挂起和恢复虚拟机是不够的。
将EVC模式降低到CPU基线,具有较少的功能。 如果虚拟机上电并以高于您希望启用的EVC模式运行,则关闭虚拟机。

关闭EVC将意味着您只需在群集属性中切断VMware EVC模式。

在vSphere群集上禁用EVC模式

在vSphere群集上禁用EVC模式

为了假设可以通过关闭EVC模式来呈现的新CPU指令集,您的VM,如果运行,则需要断电以拾取新的CPU更改。重新启动不足以刷新CPU设置。

需要考虑VMware vCenter Server版本

有一些考虑需要给您的vCenter Server版本。虽然该技术涉及分配给vSphere群集中的ESXi主机的CPU基准,但vCenter Server的版本必须是足够的,以“了解”这些可用于分配的基准。

下面是根据您正在运行的vCenter Server版本的VMware概述VMware的一些图表。目前,vCenter Server 6.7及更高版本具有完整功能,可以使用当前CPU架构中可用的最新和最大的EVC模式。

EVC模式基线

VMware vCenter Server版本对可用的EVC模式基线有所不同(图片来自VMware)

VMware EVC模式如何影响性能?

VMware发布了他们对各种VMware EVC模式设置改变的表现如何影响不同类型的应用程序的研究。

总体而言,大多数应用程序根本没有受到太大影响。VMware发现,一大类主流工作负载(包括数据库和Java应用程序)对性能几乎没有影响。还有其他的应用程序和用例可能不太好。这包括AES加密和视频编码。

正如许多人所知,英特尔在Westmere和其他地方发布了AESNI增强,允许在加密相关应用程序用例中进行重大改进。客户需要知道,如果他们的工作负载运行依赖于加密技术的应用程序,在Westmere之前选择EVC基线将导致性能下降。

在“MEROM”的EVC模式基线上运行的多媒体工作负载显示出丢失SSE4.1指令集的次要性能损失。然而,大多数情况下,通过踩到较旧的处理器代来没有显着下降。

您可以查看VMware的官方报告EVC模式在此处的应用程序对应用的影响

缺点和最后的想法

VMware EVC模式允许您以其他方式扩展您的vSphere环境,否则由于CPU技术的差异,自然会在短时间后出现。即使新的ESXi主机和新的CPU被添加到vSphere集群中,VMware EVC模式也允许屏蔽新的CPU技术,以便vm可以在旧主机和新主机之间移动。

是否从一开始就在集群上配置VMware EVC Mode,众说纷纭。我们已经讨论了它为可伸缩性带来的优势。凡事有利有弊。然而,在我看来,与您所获得的规模和互操作性优势相比,这些都是微不足道的。

作为一个缺点,您正在失去通过较新硬件访问的CPU功能。大多数人不想支付新的CPU,不能使用他们支付的新功能和指令集改进。但是,当您启用EVC模式时,您将本质上执行此操作。然而,随着VMware的报告显示,如果没有影响,大多数工作负载的性能损失可以忽略不计。

作为另一个缺点,您将不可能忽略不计,对使用加密或多媒体编码的工作负载影响。Newer Intel CPU包括指令集,在这些区域提供了显着的性能提升。这是您希望在将EVC基准设置为下面介绍这些改进的级别时要注意,请务必了解。

总而言之,EVC Mode技术是VMware的一个很好的解决方案,允许您根据需要缩放vSphere集群,并且仍然具有vMotion之间的主机之间具有不同几代处理器的主机。通过设置较旧的基线来抵消您获得的较旧基线,您在新的CPU中丢失了哪些内容性能抵消了您获得的可伸缩性和互操作性。

使用具有Per-VM EVC模式的vSphere 6.7的新增强功能,您可以进一步调整VM级别实现EVC基线的能力。与群集级别相比,这允许您在特定的VM级别具有更大的灵活性。

关于VMware EVC模式,有一些事情需要考虑,如您希望了解的讨论,如在一个运行vm的集群上进行更改后,需要关闭您的vm。此外,请注意,如果虚拟机正在运行,您不能将EVC模式降低到集群当前使用的级别以下。您必须首先关闭所有虚拟机,然后降低EVC模式基线的级别。

跟随我们的推特脸谱网为新发布,更新,见解深刻的帖子和更多的Feeds。