虚拟化所需的CPU功能你必知

日期: 2014-11-10 作者:Stephen J. Bigelow翻译:张冀川 来源:TechTarget中国 英文

Hypervisor是软件产品,每一类hypervisor都提出了服务器、存储或者网络子系统必须满足的一系列要求。但系统硬件的不断演化——尤其是处理器技术——导致了一系列潜在的令人困惑的标准及缩略词。搞清这些概念要花费很多时间,而忽略这些可能会导致意想不到的系统配置问题,引发故障以及性能问题。让我们详细了解一下处理器支持业界领先的hypervisor比如VMware ESXi,需要具备的部分特性。

ESXi和NX/XD处理器支持 虚拟化最重要的就是隔离——避免一个虚拟机内的应用程序代码访问其他虚拟机所使用的内存空间。这类隔离有助于隔离虚拟机并帮助整个服务器免受恶意软件包括病毒的攻击,恶意软件总……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

Hypervisor是软件产品,每一类hypervisor都提出了服务器、存储或者网络子系统必须满足的一系列要求。但系统硬件的不断演化——尤其是处理器技术——导致了一系列潜在的令人困惑的标准及缩略词。搞清这些概念要花费很多时间,而忽略这些可能会导致意想不到的系统配置问题,引发故障以及性能问题。让我们详细了解一下处理器支持业界领先的hypervisor比如VMware ESXi,需要具备的部分特性。

ESXi和NX/XD处理器支持


虚拟化最重要的就是隔离——避免一个虚拟机内的应用程序代码访问其他虚拟机所使用的内存空间。这类隔离有助于隔离虚拟机并帮助整个服务器免受恶意软件包括病毒的攻击,恶意软件总是试图复制并进行缓冲区溢出攻击。

处理器使用特殊的二进制位实现内存空间的隔离,能够将特定的内存区域标识为“不可执行”。AMD处理器提供了NX(从不执行)位,Intel处理器提供了XD(执行禁用)位。NX和XD实际上是等效的,只是名字不同而已,你可能看到这两类处理器位作为NX/XD一同出现。当内存区域被标识为从不执行,处理器将禁止在该被保护的区域内运行任何代码。如果尝试在被标识为不可执行的区域内执行代码,将触发内存非法访问,提醒管理员服务器上可能在进行不相称的活动。这避免了一个虚拟机影响另一个虚拟机,阻止了恶意软件在虚拟机之间扩散,NX/XD是一个重要的处理器特性。

幸运的是,自2006年起AMD和Intel处理器都开始支持NX/XD位,目前的服务器基本都配置了支持NX/XD的处理器。然而,通过阅读服务器说明书或者检查BIOS设置以确保启用了执行禁用位、NX技术以及XD支持往往是个不错的注意。如果不支持NX/XD(而且你无法在BIOS中启用这些特性),那么可能有必要在安装hypervisor前替换掉这些服务器。

什么是LAHF和SAHF指令?


处理器广泛使用寄存器,寄存器是芯片上非常小的内存区域,保存正在进行中数学或者逻辑步骤的临时结果,或者在各种寄存器中通过标志位设置被选择的条件。

在x86处理器中,AH寄存器被称之为“累加”寄存器,用于I/O端口访问、基本的浮点运算以及中断。在虚拟环境中以上都是核心功能,因此现代处理器通过提供允许直接控制寄存器内容的命令,能够加快上述活动的处理速度。这些命令就是取标志指令(LAHF)和存标志指令(SAHF)。

在讨论低级处理器架构时我们很容易陷入困境,但基本思想是hypervisor像ESXi能够使用LAHF/SAHF指令更多地直接控制处理器核心处理I/O以及中断的方式。硬件级控制能够提升运行在每个核上的虚拟机的性能。LAHF/SAHF命令与现代处理器普遍支持的Intel-VT和AMD-V虚拟化技术并非紧密相关。

和NX以及XD位支持一样,目前几乎所有的Intel以及AMD处理器都支持LAHF/SAHF指令以及扩展的虚拟化指令集(Intel-VT和AMD-V)。尽管无法直接在BIOS中启用或禁用LAHF/SAHF指令,但更广泛的虚拟化功能通常可以通过BIOS进行控制。因此,在安装hypervisor之前确保在BIOS中启用了Intel-VT以及AMD-V支持是非常重要的。

虚拟化快速索引是如何工作的


虚拟化快速索引(RVI)是包含在AMD-V技术中的部分虚拟化特性,该特性也称之为嵌套页表或者第二级地址转换(SLAT)。Intel称该技术为扩展的分页表(EPT)。

地址转换是必须的,因为当工作负载需要访问物理内存时处理器必须使用页表或者变换先行缓冲器(TLB)将相对地址转换为物理地址。在虚拟计算机中,每次需要访问物理内存时必须进行两次地址转换—第一次是主机实例的地址转化,第二次是客户机实例的地址转换。第二次地址转换需要处理器做更多的工作,会降低性能。

诸如Intel的EPT以及AMD的RVI这样的技术通过扩展页表提升了虚拟化性能,hypervisor能够在一个步骤中而非两个步骤确定主机以及客户机实例的物理内存位置。

最好的hypervisor包括Windows Server 2008 R2下的Hyper-V、VMware ESX 3.5、Xen 3.2以及其他平台在多年以前就已经支持SLAT了。现在hypervisor像Windows 8下的Hyper-V需要使用支持SLAT功能的处理器。

虚拟化需要考虑的其他CPU特性


主流的处理器厂商像Intel以及AMD都已经将大多数虚拟化功能封装进了一个或多个特征集中,比如支持EPT的Intel的VT-x以及用于虚拟I/O的VT-d,而AMD提供了AMD-V特性像RVI和TLBs。

无论厂商推出的术语或者商标名是什么,所有这些虚拟化特性大多是为了提升处理器创建并管理虚拟资源的能力,包括内存访问以及在I/O设备之间(比如以太网口)移动数据。关键在于在处理器硬件而非操作系统软件中提供这些CPU特性。

尽管几乎所有最近的处理器都提供了虚拟化功能,但有必要指出并非所有的芯片都支持这些特性集,或者针对同一特征集不同的芯片代或者不同厂商的实现方式相同。这通常不会影响单台服务器的虚拟化处理能力,但不同服务器虚拟化特性的差异可能会造成潜在的虚拟机迁移问题。IT规划人员应该花时间评估每台新服务器的虚拟化能力并在部署生产环境前确定其在集群以及其他迁移或者故障切换模式下的互操作性。

作者

Stephen J. Bigelow
Stephen J. Bigelow

数据中心和虚拟化网站的高级技术编辑,拥有20年的PC和技术写作经验。

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐

  • 如何使用 Rufus创建VMware ESXi启动盘

    Rufus——也就是 Reliable USB Formatting Utility的缩写——是一款能够在几分钟内创建VMware ESXi启动盘,并且自定义安装包的免费Windows工具。

  • 起底虚拟机优势

    虚拟机是物理计算机的逻辑表现形式。虚拟机有众多优势,但列举虚拟机的众多优势之前有必要了解下虚拟机是如何创建以及如何工作的。为创建一个虚拟机,先要在物理计算机上安装hypervisor。

  • 主流hypervisor总拥有成本及功能对比

    在众多hypervisor中做出选择可能是管理员要做出的最重要的决定之一。在做出上述决定时,务必牢记要在已经推出市场一段时间的hypervisor中进行选择。

  • 如何根据业务需求对超融合技术进行评估

    超融合技术的发展已经吸引了许多IT管理员和企业高管的注意。相比传统方式,超融合基础架构提供了一种更为简便的资源部署、管理和支持方式。