了解虚拟化硬件支持

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

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

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

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

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

[[258474]]

英特尔虚拟化技术(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系统可承载更多工作负载,这使其开始吸引更多人的关注,特别是吸引那些极其庞大的数据中心。

英特尔APICv和AMD AVIC

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

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

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

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

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

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

责任编辑:武晓燕 来源: TechTarget中国
相关推荐

2020-03-10 18:30:06

GPU虚拟化FPGA

2020-03-06 15:00:18

CPU硬件虚拟化

2011-07-04 09:53:40

虚拟化服务器虚拟化

2009-01-14 18:15:40

服务器虚拟化VMware

2009-04-16 19:00:45

Vmware虚拟化惠普

2013-07-04 09:48:46

服务器虚拟化服务器硬件虚拟化成本

2012-02-08 09:35:16

硬件投入服务器虚拟化

2018-12-05 15:55:44

硬件虚拟化kernel

2022-03-14 18:23:53

虚拟化ROBO

2009-08-27 09:15:20

应用虚拟化

2021-03-07 17:00:27

虚拟化VMwareSmartNIC

2012-09-27 09:41:31

虚拟化

2011-06-29 10:59:27

虚拟化服务器硬件

2011-11-03 09:42:20

虚拟化硬件虚拟化辅助虚拟化

2010-10-25 10:29:32

虚拟化

2010-03-19 10:31:11

虚拟化XP Mode虚拟化

2011-12-08 09:47:08

虚拟化应用虚拟化

2009-04-14 19:33:26

Vmware虚拟化IT

2010-05-14 14:47:46

x86虚拟机

2011-04-07 10:43:23

桌面虚拟化
点赞
收藏

51CTO技术栈公众号