了解虚拟化硬件支持

日期: 2019-02-18 作者:Stephen J. Bigelow翻译:邹铮 来源:TechTarget中国 英文

芯片制造商英特尔、Advanced Micro Devices(AMD)和ARM公司部署了指令集扩展,以使硬件支持虚拟化,但其中所涉及的代码和首字母缩略词很难理解。

长期以来,硬件支持一直是虚拟化不可或缺的要求,硬件支持可使选定的虚拟机管理程序能够以硬件时钟速度处理复杂的指令权限转换以及管理虚拟化内存资源。

指令集扩展可为虚拟化提供硬件支持,指令集扩展是指添加到处理器和其他芯片的整套新晶体管,它可带来新功能以及直接处理特定的新指令。如果没有这种扩展,虚拟化所需的功能和任务将需要软件仿真,而这通常过于繁琐且低效,无法处理重要的虚拟化任务。

虚拟化主要是一种计算活动,它需要全面的内存管理和对特权访问的控制。因此,英特尔和AMD都在试图提供虚拟化支持–通过在其处理器中添加指令集扩展和一系列互补功能。

英特尔虚拟化技术(VT

在2005年,英特尔推出Intel VT-x—基于两款奔腾4处理器,这也是英特尔第一次推出虚拟化硬件支持。VT-x添加了10条新指令,可创建和控制虚拟机(VM)。该虚拟化软件在虚拟执行模式运行,其中客户操作系统具有完全权限,而不会干扰受保护和隔离的主机操作系统。

在最初推出VT-x后,英特尔还推出额外的虚拟化技术,虽然这些虚拟化技术不是特定的VT-x命令,但附加功能为英特尔处理器提供了更多的虚拟化功能。

2008年,英特尔增加了对扩展页表(EPT)的支持,这是英特尔部署的二级地址转换(SLAT)或嵌套分页。

虚拟化必须将物理内存地址转换为虚拟内存地址。问题在于这种转换发生了两次:一次是针对主机VM,第二次是针对每个访客VM。这无疑会增加开销并降低性能。扩展页表等二级地址转换技术可改进内存管理和提高性能,主要是通过消除这种开销以及同时处理所有内存管理任务来实现。

2010年,英特尔开始支持不受限制的访客,也被称为IA-32e模式,这种模式使逻辑处理器和虚拟CPU可在处理器上以实模式运行。这使访客虚拟机通过使用自己的扩展页表可在裸机模式运行。VMware Workstation 14和Fusion 10等部分软件要求处理器支持IA-32e模式。

到2013年,英特尔推出虚拟机控制结构(VMCS)阴影绘制。长期以来,虚拟化面临的挑战是嵌套问题,即在VM中运行VM。每个VM都使用唯一的数据结构,当VM在VM中运行时,数据结构必须交换或更改。

在2013年之前,解决此问题的方法是缓存每个VMCS并使用软件来处理它们,但这个过程太费时并降低性能。而将VMCS阴影绘制添加到处理器可使VMCS处理更加高效并提高VM性能。

AMD虚拟化(AMD-V

AMD公司最初在2006年向其处理器系列的几款处理器添加了虚拟化支持所需的命令集扩展,包括Athlon 64、Athlon 64 X2、Athlon 64 FX、Turion 64 X2以及部分Opteron、Phenom和Phenom II处理器。AMD-V命令使开发人员能够编写软件以创建和控制VM,支持使用虚拟机管理程序。

随后AMD又以快速虚拟化索引的形式向部分K10和Phenom II处理器增加了二级地址转换或嵌套分页支持以提高物理到虚拟内存转换的性能,这在功能上与英特尔的扩展页表完全相同。

ARM虚拟化

采用RISC架构的处理器已开始部署虚拟化支持。符合行业标准的ARM架构版本8(即ARMv8-A)现在支持虚拟化功能,使ARM芯片能够运行多个VM,且每个VM都有不同的操作系统。

ARMv8.1引入了虚拟化主机扩展(VHE),它为Type 2虚拟机管理程序提供了增强支持。 ARMv8.1-VHE还提供基本地址转换,另一方面,ARMv8.3-NV增加了对嵌套虚拟化的支持。

ARM处理器通常使用精简指令集,这需要更少的能量和冷却,因为晶体管数量非常少,而且,由于其采用更简单的处理器设计,它们通常可以提供更好的性能。ARM芯片长期以来一直部署在嵌入式系统和服务器中,用于处理基本的大容量工作负载,例如Web服务器。

现在,在添加虚拟化硬件支持后,ARM系统可承载更多工作负载,这使其开始吸引更多人的关注,特别是吸引那些极其庞大的数据中心。

英特尔APICvAMD AVIC

处理器通常会使用中断,使系统能够被现实世界的事件中断,例如键盘信号或系统条件。但是,大量中断可能会影响虚拟化系统的性能,不断要求工作负载停止并等待CPU解决系统中正在发生的其他事情。

中断虚拟化的概念,通过排序和排列中断可减轻这些潜在的性能影响。排序使系统能够根据优先级解决中断,而排列则让系统等待最合适的时间来解决中断问题。总体而言,这些技术可最大限度地降低中断对虚拟化环境的性能影响。

在2012年,英特尔和AMD都增加了中断虚拟化。AMD采用的是高级虚拟中断控制器(AVIC),该控制器提供在后期型号的Carrizo处理器中。而英特尔则使用高级可编程中断控制器虚拟化(APICv),该虚拟化最早出现在2013年和2014年的多款Xeon E5处理器中。

在2019年,除部分Intel Atom型号外,几乎所有主要处理器型号都具有虚拟化硬件支持。例如,Atom处理器的Diamondville,Pineview和Cedarview变体不支持Intel-VT。

默认情况下,虚拟化支持并非始终启用。某些系统主板要求管理员在软件可使用虚拟化功能之前启用系统固件(BIOS)中的虚拟化功能。

在这个由三部分组成的系列文章的第二部分中,我们将介绍每个主要的GPU扩展。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

作者

Stephen J. Bigelow
Stephen J. Bigelow

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

翻译

邹铮
邹铮

相关推荐

  • CPU虚拟化技术详解

    CPU虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。