虚拟化“硬”功夫——英特尔硬件辅助虚拟化技术深度剖析
特别策划
日益上涨的电价、有限的电力资源,对环保绿色的追求,把服务器虚拟化推到了企业管理者的面前。通过服务器虚拟化,运行同样多的应用程序所需要的服务器数量会大大减少,而物理服务器数量减少意味着不但初期采购成本会降低,而且数据中心占用的场地也会减少,数据中心的耗电量也会大大降低。
服务器虚拟化有两种实施方式:传统的纯软件虚拟化方式和新的硬件辅助虚拟化方式。目前最著名的硬件辅助虚拟化技术是英特尔的VT技术,它是一种设计更简单、实施更高效和可靠的方法,是世界上首个x86平台的硬件辅助虚拟化解决方案。从处理器、芯片组虚拟化,到网络和I/O设备虚拟化,英特尔VT技术是一个不断发展完善的技术。
服务器虚拟化的价值
服务器虚拟化技术起源于大型机,但那时的虚拟化成本极高,应用却相对有限。随着虚拟化技术在x86服务器领域应用的普及,服务器虚拟化成为x86服务器实现高可靠性、安全性和灵活性应用,从而降低成本、提高利用率的最佳解决之道。
1.虚拟化提高服务器的利用率
从应用来看,虚拟化技术能为x86服务器提供很多原本不具备的重要功能。例如,可以提高硬件的使用效率、简化软件的重新配置过程,不需要分区或重开机就能在同一台服务器上使用两种以上的操作系统;在存储器上,每一个虚拟服务器完全独立于其他虚拟服务器,拥有自己完整的操作系统和所有必需的应用程序,可完全隔离并且保护不同的系统操作环境和所有安装在系统环境下的应用软件和资料;不同的系统之间还能互动操作,包括网络共享、文件分享、复原、迁移等功能。
很多企业用户发现,安装在数据中心的几台或几十台服务器并不是全部都在高速运行。在很多时候,多数服务器的处理器都处于闲置状态,很多服务器系统的利用率只有15%左右。随着市场上廉价、高性能、高可靠性的服务器硬件不断出现,在x86服务器上应用虚拟化技术有了硬件基础。在目前一台中档次服务器上应用虚拟化平台,往往可以起到取代2台~10台低端服务器的效果,这样企业用户就不必花费大量资金采购服务器,而且管理更方便,电费、冷却系统的维护费用也将大幅降低。利用虚拟化技术可让服务器利用率从15%提高到50%或更高。
2.芯片级虚拟化提高服务器性能
随着英特尔等厂商加大对服务器虚拟化技术的研发,虚拟化技术在x86服务器上的应用功能越来越强大。相比以前的纯软件虚拟化方案,英特尔的芯片级虚拟化解决方案可从硬件层面上对服务器虚拟化应用提供更大支持,通过其独有的虚拟指令集——VMM(Virtual Machine Monitor,虚拟机监视器)很容易提高服务器的性能,可进一步改善以前的纯软件虚拟化解决方案的性能、可靠性、稳定性、安全性和灵活性。就好比MMX、SSE系列指令集的出现大大增强了CPU的多媒体、图形图像和Internet处理能力一样,英特尔的芯片级虚拟化解决方案成为x86服务器虚拟化应用不可或缺的重要组成部分。

英特尔的虚拟化技术解析
英特尔是最早推出芯片级服务器虚拟化解决方案的公司,它早在2005年便开始在其处理器产品线中推广应用英特尔 VT(Virtualization Technology)虚拟化技术。随着该技术的不断革新,目前英特尔已形成处理器虚拟化(VT-x或VT-i)、芯片组虚拟化(VT-d)、I/O及网络设备虚拟化(VT-c)等三套相辅相成的服务器虚拟化技术。
1.英特尔处理器虚拟化技术
作用:提高虚拟化软件的效率、实现虚拟机无缝迁移
英特尔VT处理器虚拟化技术包括两个版本:VT-x版和VT-i版,前者主要对应32位处理器平台,如至强;后者主要对应64位处理器平台,如安腾。两种方案在特征上大同小异,下面我们就主要以VT-x为例说明。
支持英特尔VT的处理器具备VMPTRLD、VMPTRST、VMCLEAR、VMREAD、VMWRITE、VMCALL、VMLAUCH、VMRESUME、VMXOFF和VMXON等10个虚拟专用指令。针对x86处理器,VT-x技术将IA32的控制单元扩展为两个模式:VMX Root Operation(根虚拟化操作,也就是虚拟操作软件工作的模式)和VMX non-Root Operation(非根虚拟化操作,也就是操作系统在虚拟机的顶层运行的模式),根虚拟化操作模式可供给虚拟机和虚拟机监视器使用,其行为与传统的虚拟软件模式并没有不同。
而英特尔的处理器虚拟化技术也在不断发展,现在又出现了FlexPriority、FlexMigration等虚拟化技术。FlexPriority可通过改善虚拟机任务优先权的中断处理功能,来提高虚拟化软件的效率,它通过创建一个可读取的TPR(任务优先级寄存器)虚拟副本,可为频繁使用TPR的32位操作系统带来重大的性能改进,能够将在Windows Server 2000等系统上运行的虚拟机性能提升35%。
FlexMigration则是一种在不必停机的状态下将虚拟机迁移到其他物理服务器上的技术。该功能同VMWare的VMotion类似,不过VMotion只支持同一代的Xeon服务器,而配备FlexMigration功能的英特尔处理器平台,可支持Xeon处理器跨代迁移,不再受限必须使用相同型号的处理器。通过这项技术,可以轻松地实现在现有服务器和未来服务器之间的无缝迁移。

2.英特尔芯片组虚拟化技术
作用:在虚拟环境中提高北桥芯片I/O的可靠性、灵活性与性能
自推出处理器虚拟化技术之后,英特尔又推出了它的芯片组虚拟化技术VT-d(Virtualization for Directed I/O)。VT-d是一种基于北桥芯片的硬件辅助虚拟化技术,通过在北桥芯片中内置提供DMA虚拟化和IRQ虚拟化硬件,实现新型的I/O虚拟化方式。
英特尔VT-d能够在虚拟环境中大大提高北桥芯片I/O的可靠性、灵活性与性能。传统虚拟机设备在进行中断模拟时,一类会直接通过模拟I/O中断控制器来实现,另一类是通过额外软件界面来实现。但无论哪种方式都不能改变DMA(Direct Memory Access,内存访问)及I/O(输入/输出接口)设备在运行中会产生大量的中断请求的状况,都会或多或少地影响到系统的整体性能。而VT-d实现的中断重映射(Interrupt-Remapping)架构通过重新定义MSI(message signaled interrupts,消息中断)的格式来解决这个问题,新的MSI仍然是一个DMA写请求的形式,但并不嵌入目标内存地址,取而代之的是一个消息ID,从而能更简捷准确地分离这些请求,并将它直接路由到不同的虚拟机上。
从实际应用来看,在传统的虚拟化方式下,虚拟机内部的驱动程序直接和硬件设备通信,如果没有直接分配物理I/O设备给虚拟机、I/O设备共享这样的硬件辅助虚拟化技术,在这个过程中,VMM必须参与每项I/O的通信,这肯定会影响整个系统的传输速度,特别是在多虚拟机环境下更是如此。而VT-d技术的出现,减少了VMM必须参与每项I/O通信的需求,虚拟机得以使用直接I/O设备分配方式或者I/O设备共享方式来代替传统的设备模拟/额外设备接口方式,从而使VMM能够按通用标准进行编写,这可大大提高整个虚拟系统的传输速度,进一步提高虚拟化软件工具的性能及实际的应用性能。
3.英特尔网络虚拟化技术
作用:提高虚拟系统的性能与网络处理能力
服务器网卡是服务器中最重要的配件之一,英特尔推出的VT-c(Virtualization Technology for Connectivity)虚拟化技术,是一种主要针对服务器网卡的网络连接及接口的技术。它主要包含VMDq(虚拟机设备队列)、I/OAT(英特尔I/O加速技术)、SR-IOV(PCI-SIG单根I/O虚拟化)等三项重要的技术。
●虚拟机设备队列(VMDq)
在传统的服务器虚拟环境中,VMM必须对每个单独的数据包进行分类,然后再将数据包发送到每个虚拟机,这肯定会占用大量的处理周期,延缓数据传输性能。而VMDq(虚拟机设备队列)技术的应用,让分类工作直接由服务器网卡来完成,这样数据包在送达VMM之前,已经依照虚拟机的需求被排列成不同的组,只需要VMM简单处理后就可直接传送,这样极大地提高了数据传输的效率。通过该技术的应用,VMM(虚拟机监视器)只管分发工作,而不必负责分类工作,极大地提高了处理速度。


>
采用英特尔VT-c技术后,万兆以太网的速率能够达到9.2Gbps
●英特尔I/O加速技术(I/OAT)
当前服务器的应用性能主要取决于数据的传输和处理速度。英特尔I/O加速技术(I/OAT)是一套完整的平台I/O解决方案,旨在通过网络I/O解决数据传输、数据存取和系统管理费用高的问题。英特尔I/O加速技术可帮助服务器更快、更高效地发送和接收网络数据,让企业客户的服务器应用可即时受益于英特尔I/O加速技术,该技术能够与现有的以太网网络基础设施协同工作,且不必修改当前的软件应用。
●PCI-SIG单根I/O虚拟化(SR-IOV)
PCI-E总线已成为一种适用于网络应用、具有高效率的平台,但PCI-E总线的功能还是无法满足高性能存储和网络独特的I/O需求,因此PCI-SIG工作小组推出一种为PCI-E添加了I/O虚拟化功能的新规范,它第一个级别的应用就是SR(Single-Root)-IOV单根输入/输出虚拟化。SR-IOV由物理端点提供虚拟功能,这个端点可支持一个或多个虚拟端点,并利用各种机制使各种系统映像和资源DMA中每个虚拟端点直接进行I/O与内存操作,完成和中断系统映像的操作,而不会影响运行时间。
这肯定将提升虚拟系统的性能与网络处理能力,改善系统的利用率,提升I/O性能,减少处理器负载。也有助于提高网络的可靠性,通过消除网络基础架构中多余的外设与端口,减少网络中组件的使用数量,并可显著降低网络成本。
