VT技术 百科内容来自于: 百度百科

虚拟化

所谓虚拟化,是指将单台电脑软件环境分割为多个独立分区,每个分区均可以按照需要模拟电脑的一项技术。它的技术实质是通过中间层次实现计算资源的管理和再分配,使资源利用实现最大化。
虚拟化分区带来的最大好处是使同一个物理平台能够同时运行多个同类或不同类的操作系统,以分别作为不同业务和应用的支撑平台。分区使得应用之间能够更好地隔离,通过把不同的应用安装到不同的分区上,可以避免在同一个系统运行多个应用时相互影响,包括计算资源争用,单一应用的崩溃对整个系统造成影响,或单一应用的维护和升级影响其他应用的运行,以及各应用对系统平台环境组件版本的不同要求等矛盾;同时使得系统的备份、迁移和升级更加简单灵活,由于资源管理中间层的存在,不但操作变得非常

简单,而且可以很容易实现在线实施;当然,最重要的是分区可以实现计算资源的实时按需动态分配,负载大的分区可以获得更多的计算资源。在负载下降时,计算资源可以被回收、返还或再分配给其他的分区,以最大限度地实现资源整合和按需动态分配。
2005年8月,Intel首次公布了其针对硬件虚拟化的Vanderpool技术细节,这种技术可以用于PC和服务器系统,它可以让一台计算机同时运行多个操作系统。Vanderpool技术通过增添新的指令,使得Intel处理器支持硬件虚拟化; 而软件方面则由一个被称为虚拟机监视器(VMM)的程序对虚拟机进行24小时不间断的管理。分析家认为,到2010年,大约95% 的新出产的Wintel服务器都会采用带有虚拟化技术的硬件。
同年11月,Intel又宣布,虚拟化技术Vanderpool被改成VT,并已经被Acer和联想应用在其基于Intel Pentium 4的PC上。Intel推出的Pentium 4核心为Prescott处理器,型号为Intel Pentium 4 662及Intel Pentium 4 672。Intel在6×2处理器中加入Intel VT技术,让一个平台能在独立的分区 (partitions) 或 “ 容 器 ” (containers)内执行多个作业系统与应用程式,单一的实体运算系统能以多个“虚拟”系统的方式进行运作。
英特尔虚拟化技术(IntelVT)增强了纯软件虚拟化解决方案的可靠性、支持性、安全性和灵活性。硅芯片的这一先进特性表明技术上已取得重大突破,开销从此将有所下降,各种操作系统将获得支持。
英特尔虚拟化技术是一组可增强纯软件虚拟化解决方案能力的硅芯片技术。这些虚拟化解决方案可支持多个操作系统,并支持相关应用在单个分区同时运行。这样,单个物理系统可作为多个逻辑虚拟系统运行。英特尔的硬件技术(英特尔虚拟化技术)通过提高虚拟化解决方案的可靠性、支持性、安全性和灵活性来改进现有的纯软件虚拟化解决方案。
英特尔与领先的虚拟机监控器(VMM)厂商携手,可确保软硬件虚拟化解决方案能够完美地组合在一起,这将有助于提高下一代客户解决方案的性能。
虚拟操作系统模型是基于虚拟机运行的主机操作系统创建了一个虚拟层,用来虚拟机主机的操作系统。在这个虚拟层之上,可以创建多个相互隔离的虚拟专用服务器(Virtual Private Server, VPS)。这些VPS可以最大化的效率共享硬件、软件许可证以及管理资源。对其用户和应用程序来讲,每一个VPS平台的运行和管理都与一台独立主机完全相同,因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。对于运行着多个应用程序和拥有实际数据的产品服务器来说,虚拟操作系统的虚拟机可以降低成本消耗和提高系统效率。swsoft的virtuozzo是这一领域的成熟产品。
PC、NB,虽然可以安装多个操作系统,但是都只能同时运行一个操作系统,如果想要同时运行多个操作系统,答案就是虚拟。早在VT技术诞生之前,VMware,Vitrual PC等虚拟机软件就做了一个很好的典范,它们虚拟一台计算机的底层,然后过了操作系统,从而能够同时运行多个操作系统。不过VMware,Vitrual PC等软件的性能有一定限制,而且其作为一个软件,必须运行在某个操作系统之上,这就造成了其虚拟系统的性能,完全无法和独立系统相提并论。为了解决这些问题,VT技术就应运而生了。硬件层之上就是操作系统,而通过VT技术,在这两者之前增加了一个名叫Virtual Machine Moniter(VMM)的软件。VMM可以为每个操作系统提供一个虚拟的硬件环境,从而实现多个操作系统的共存。此外,由于所有的操作系统都是建立在一个虚拟的硬件上,任何一个操作系统的重启、重装甚至删除,都不会影响其它操作系统的运行。

优势

虚拟化能使用户在一台服务器上同时运行多个操作系统,这与“多重任务处理”技术有些类似。不过“多重任务处理”技术只允许用户在同一机器设备的同一操作系统中运行多个程序,而虚拟化则可让用户在同一机器设备中运行多个操作系统。这样用户能更灵活高效地配用计算机资源,并且有助于提高安全性能。
想象一下,一个操作系统几乎不需花任何时间就可被启动,即使它崩溃了,你只需简单地将它剔除出去,同时立即装载一个新的。如果你正在同时运行几个操作系统,当你准备给其中一个载入新的映像时,你可马上将它关闭,并把该系统正在处理的工作分流给其他系统运行。如果你有5个RedHat的副本正在运行Apache服务器软件,而其中一个因满负荷而停止响应,没问题,你只需简单地将响应请求转交给其他4个系统处理,同时重启那个停止工作的系统就行了。
如果你已为你正在运行的操作系统存储了一份“快照”,那么每当有一些不愉快的事情发生时你都可重新启动它,例如被黑客攻击、感染病毒。从一个安全的分区载入映像并修复好它就行了。虚拟化还可让用户毫不费时地重新安装操作系统而不需像以往使用Ghost那样去安装设备驱动。你可简单地就像使用普通程序那样去载入、卸载和存储操作系统。
同样,它也允许你在同一台机器上使用多个不同的操作系统。如果你是一名程序员,需要编写代码使它们在Windows95/98/Me/2000/XP上都能运行,你可在你的办公桌上准备5台机器或是1台运行了5种虚拟化操作系统的电脑。同时,作为程序员的你需在每个浏览器的每个版本上校验这些代码,很明显微软不会让你在一个已拥有高版本IE的情况下去安装更低版本的IE去做这些事,但你可一个个地安装旧的操作系统或采取更好一些的解决方法——让它们同时运行。
(1)英特尔虚拟化技术专为虚拟机监视器(VMM)提供的全新特权空间,可支持未经修改的操作系统和应用在专门为它们设计的环境中运行,从而简化硬件调用。
(2)通过硬件底层指令集来支持虚拟机监视器(VMM)与已安装Guest OS(虚拟机上的操作系统)之间的切换,使得虚拟化技术更加简单、高效、可靠。
(3)虚拟机监视器(VMM)和已安装的Guest OS(虚拟机上的操作系统)的处理器状态信息保留在专用内存地址空间中,这样可以缩短各个操作系统访问硬件之间的间隔时间,同时提高了各个虚拟机上的操作系统之间的安全隔离性。

实现方式

虚拟化有两种实施方式:传统的纯软件虚拟化方式和更新的硬件辅助虚拟化方式。在保护模式下,X86处理器一共有4个不同优先级,术语称为Ring,从Ring 0-Ring3。Ring 0的优先级最高,Ring 3最低。Ring 0用于操作系统内核, Ring 1和Ring 2用于操作系统服务,Ring 3用于应用程序。
位于Ring 0特权空间的操作系统可以优先访问各种硬件资源。传统的虚拟化技术是在Ring 0 中运行一个称为虚拟机监视器(VMM)的软件中间层,以负责控制和排列各个分区访问硬件资源的优先顺序。它要求在软件堆栈的较高层运行操作系统——通常是在Ring 1或者与系统应用共用Ring 3。
由于传统的纯软件实现方式在测试、验证和维护每款新操作系统和相关补丁方面,付出了大量的时间和资金, 同时二进制码翻译需要消耗处理器的很多计算资源。纯软件虚拟化运行时的开销会造成系统运行速度较慢,有数据表明其引起的系统性能下降可能达5%-20%。

使用方式

根据intel的资料,intel虚拟技术的实现需要同时具有处理器、芯片组、BIOS、VMM软件的支持,这些特定的平台软件必须全部到位。同时性能方面要视不同的硬件和软件平台而定,intel虚拟技术支持的BIOS和VMM程序正在开发之中。
据我们所知,还没有支持虚拟技术的VMM软件,所以即使你买了一款支持VT技术的CPU,你还要等待Intel放出VMM软件才能使用上VT技术。同时还要等主板厂商放出VMM支持的BIOS(或者保证使得现有的主板BIOS支持虚拟技术)。
未知的就是,至关重要的虚拟技术VMM软件intel将是免费放出还是需要交费才可以。定价如何才合适呢?类似的软件虚拟技术,VMware Workstation 5价格为189~199美元之间,所以我们希望intel即使不免费提供VMM软件也会比这个价格要少很多。

系统应用

由于许多供应商都提供虚拟化软件,因此,过去只有在大型机上才具备的诸多功能,如今基于英特尔架构服务器也已将能够实现。在所有的系统中,可用的解决方案包括如下的实例:
* VMWare(EMC):ESX Server、VMWare服务器(VMWare Server)、VMWare Player、VMware Workstation6.5以上以及 VirtualCenter*
*微软:Virtual Server,Virtual PC和Windows 7 中的Windows Virtual PC
* Xen开放源代码社区:Xen
* Virtual Iron:Virtual Iron
* SW Soft:Virtuozzo
* Parallels:Parallels Workstation
英特尔正积极与软件厂商合作,帮助推动该系统的发展。英特尔正与 Vmware在多个市场开发与培训计划上展开合作,包括通过直接参与制作目标材料内容,直接向 IT经理宣讲并引荐虚拟化的价值。为了帮助培育市场并推动虚拟化技术的普及,英特尔还投资开发了一套完整的虚拟化技术初学者套件。该虚拟化技术初学者套件包括特性完备的产品,以及有助于新客户开始使用虚拟化技术的支持资源。
英特尔和微软也已联手,计划将英特尔虚拟化技术扩展到诸多领域(包括:支持映射 I/O设备到服务器虚拟机),它们将遵循一套名为英特尔定向 I/O虚拟化技术(IntelVTDIO)的全新规范。英特尔虚拟化技术(IntelVT)家族以及英特尔定向 I/O虚拟化技术(IntelVTDIO)的一部分功能,有助于提升 I/O在虚拟环境下的可靠性、灵活性和性能。微软已与英特尔合作开发规范,确保为用户提供最佳功能。
支持英特尔虚拟化技术的英特尔台式机平台于 2005 年开始发售,移动平台以及基于英特尔至强处理器的服务器和工作站平台 2006 年初发售。支持英特尔虚拟化技术的基于英特尔安腾处理器服务器将于 2006 年晚些时候开始发售。

VT作用

VT的目的
VT的目的是在尽可能最小化程序员痛苦的同时尽可能多的增加“virtualization holes”(虚拟化孔)。这种解决方案中,VT-X针对X86而VT-i针对Itanium,分别引入了一种新的模式针对不同的CPU.这里我们主要来看看VT-X,实际上VT-i的功能与VT-X有很多相同的地方。
这种新的模式被称为VMX,并且引入了一个虚拟化机监控器VMM运行于其中。它被设定在R0级别下,你可以认为是R-1级或者看成是在环的旁边运行。主机操作系统和所有的程序在VMX模式中运行,与此同时VMM运行在VMX根模式中。
任何一个运行在VMX模式下的操作系统,都拥有所有运行于非VT系统中的一般操作系统的功能和特性。它也处在R0级别中,与平常一样有权利处理每一件事情,而且并不知道有什么东西正在它的旁边运行。当情况得到授权,CPU进入VMX根模式,VMM就可以切换到其他一个运行在另一VMX实例的操作系统。这些切换被称做VM登录和VM退出。
VT技术所表现出来的不可思议的地方就在于它将从VMX模式到VMX根模式(或从VMX根模式到VMX模式)的登录和退出处理易于操作。一旦主机操作系统被涉及到,那它一定是独自处在自己的世界里的,你必须保存虚拟化世界的完整状态并当你返回时重新载入它。虽然在VT里还有很多事物要去处理,但它被设计为一项任务,所以客观地说它实际是一个简单而并不费力的进程。
因为每一个操作系统实例都在正确的位置运行,所以前面所提到的4个问题也就不存在了。相关联的工作区也不再需要,与此有关的系统开销没有了。这些能有效提高速度。但这些并非免费,只是付出的代价要少很多。
启动一个新的主机操作系统,你需为其留出一块4kB的存储区并将它传递给一个VMPTLRD指令。这块区域将用来存储该系统实例不被激活时的所有状态和重要Bit位。只要该操作系统实例存在,则这块区域一直有效,直到在其上运行一条VMCLEAR指令。这样就设立了一个虚拟化机实例。
如果你想要把控制权交给虚拟化机,你要么登录VMX非根模式或简单一点,运行VMX模式即可。这些提到的VM登录指令就是VMLAUNCH和VMRESUME,两者并没有太大的区别。VMRESUME指令只是简单地从刚开始已经初始化的4kB存储区里载入CPU状态,并把控制权交给主机操作系统。VMLAUNCH做的也是同样的工作,但它会启动一个虚拟化机控制构件VMCS,它包含一些设立VM的现场背后的记录,因为这需花费一些时间,所以人们尽量避免在并发登录时使用VMLAUNCH.
从这一点来看,主机操作系统开始了它的愉快之旅,尽可能地运转,毫无察觉是否有其他东西正在它的一旁运行。正如过去所计划的一样,它存在于自己的世界里,全速运行,或接近全速。唯一的问题是你如何打破这一切美好的景象而将它关闭到一边,以使得机器里的其他操作系统能真正运行。这就是VT技术所体现出来的复杂的一面——VMCS中一些特别的位映像。
这些位映像是一些32位的字段,每一个Bit位标志一个事件。如果某个事件被触发,则对应的Bit位被置位,CPU触发一条VM退出指令,并将控制权返还给运行在VMX根模式下的VMM.VMM可做任何想做的事,然后将VMRESUME指令传递给下一个操作系统,或刚离开的那个操作系统。这个被启动的操作系统同样很好地运行着,直到触发另一条VM退出指令。如此这样以每秒上千次的速度重复着。
什么能触发这些指令呢?它们可以是引脚信号、CPU、异常和页面错误这些平台事件,所有这些都会触发VM退出指令。VT技术的完美之处在于它有很强的适应性,另一个与此类似之处就是在调试程序中设置断点,你可在每个事件上都设置一个,或者一个也不设置,这都取决于你自己。
引脚信号事件要做的是当有一个内部中断或一个不可屏蔽中断发生时,则触发退出指令。而CPU事件,则是当你设置任意Bit位在某一字段,当相应的CPU状态接收到它时,则触发退出指令。虽然大多数指令需要去设置,但也有一些指令无条件地引发VM退出指令。这是在一个非常细小的层面上控制VM,允许每当你需要时登录和退出。
异常位映像也是一些32位的字段,每个Bit位标志每个32位指令地址的异常情况。如果Bit位被设定并有一个异常被抛出,它就会引发VM退出指令。如果Bit位是空的或没有异常,那么主机操作系统则继续它的快乐之旅,与平常一样。这是一种从VMX模式退出而进入VMX根模式的系统开销非常低的方法。
最后还有页面错误退出,它与异常退出十分相像,只不过它用两个32位字段来控制。这些字段内的Bit位对每一个可能出问题的页面错误代码进行映像,因此你可细心地从中挑选从哪里退出。同样,它也是基于很细小的层面,系统开销也很低。
在计算机里,VT工作在一个比传统的R0环更有特权的级别中。任何一个主机操作系统都可在没有改变的旧有架构下运行,并且不知道一个控制程序在控制它们。当遭遇到某些用户设置的触发器,控制权将被转交给运行在更高级别的VMX根模式上的VMM.因为这是一种被动触发事件,而不需被积极监视,因此系统开销降到了最低限。
VT技术使得安装和卸载那些比以往VM模式更稳定的运行环境变得简单。如果你需运行虚拟化系统,没有理由不用一个拥有Vanderpool功能的CPU去实现它,而软件虚拟化机会逐渐不被人关注。
这也许不错,但必须记得,这必须付出代价。每一次登录意味着建立4kB的存储区域,每一次退出要向这4kB存储区内写入数据。这看上去有些耗费过多,可与那些较老的方式比较,它的速度惊人地快。

特点

通过在单个服务器上运行一系列的虚拟机,IT经理便有可能将各种运行环境整合在少数几台设备上。例如,许多企业专用、传统的应用环境,或与多数企业使用的操作系统不兼容的非标准应用环境。这可能需要采用专用硬件,并增加设备及维护成本,使原本紧张的运营预算更加拮据。有了英特尔虚拟化技术,便无需单一用途的硬件,从而资源使用更加高效。同样,通过采用虚拟化技术,无需附加硬件,即可实现分区的专用故障切换,从而提供了系统冗余。此外,通过允许管理员配置每个容器上的不同安全设置,虚拟化能够提供强大的安全支持。
台式机而言,英特尔虚拟化技术支持在同一设备上进行不同的用途设置。例如,IT部门可使用独立分区(在后台执行更新和维护)设置最终用户系统。您甚至可在用户设备上设置单独的工作环境和个人环境,并针对每个环境指派不同的用户权限,以使其能够安装软件和控制系统。上述配置可以在增加灵活性的同时,使企业资源免遭病毒和间谍软件的攻击。对互联网连接分区的操作同样也在受限权限下,这能保护其免受外部攻击,同时,您还能以 Administrator (管理员)身份运行一个单独的虚拟机,以执行系统中的限制性任务。

局限

纯软件虚拟化解决方案在为 IT 部门和最终用户提供巨大优势的同时,也有较大的局限性。每个"客户"操作系统很大程度上通过 VMM与硬件进行通信,VMM 为系统上每个虚拟机调解访问。(注,许多到处理器和内存的访问独立于 VMM之外,而只有当诸如页面错误这样的事件发生时才会涉及到 VMM。)在纯软件虚拟化解决方案下,VMM在操作系统原先运行软件堆栈的空间内运行,而操作系统则在原本运行应用的空间内运行。
这一额外的通信层需要二进制转换,并通过提供到处理器、内存存储、显卡和网卡等物理资源的接口来仿真硬件环境。这种转换必然增加系统的复杂性。此外,对客户操作系统的支持受到虚拟机环境的限制,虚拟机环境性能会妨碍诸如 64位客户操作系统等某些技术的部署。对于管理员而言,随着软件堆栈复杂性的增加,纯软件解决方案下的这种环境就更为复杂,这就增加了保障系统可靠性和安全性的难度。

分类

虚拟化技术大概可以分为以下四类:
硬件仿真
完全虚拟化
半虚拟化
操作系统级的虚拟化
硬件仿真:最复杂的虚拟化实现技术就是硬件仿真,在这种方法中,可以在宿主系统上创建一个硬件 VM 来仿真所想要的硬件。使用硬件仿真的主要问题是速度会非常慢,因为每条指令都必须在底层硬件上进行仿真。但是使用硬件仿真,您可以在一个 ARM处理器主机上运行为 PowerPC设计的操作系统,而不需要任何修改。硬件仿真的产品有Bochs和qemu。
操作系统级的虚拟化:这种技术在操作系统本身之上实现服务器的虚拟化。这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来。比如Virtuozzo。好像应用不是很多?
而市面上主要的产品都是完全虚拟化或者半虚拟化的。
完全虚拟化(full virtualization):这种模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调。"协调"在这里是一个关键,因为 VMM 在客户操作系统和裸硬件之间提供协调。特定受保护的指令必须被捕获下来并在 hypervisor 中进行处理,因为这些底层硬件并不由操作系统所拥有,而是由操作系统通过 hypervisor 共享。虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,因为中间经过了 hypervisor 的协调过程。完全虚拟化的最大优点是操作系统无需任何修改就可以直接运行。惟一的限制是操作系统必须要支持底层硬件。
完全虚拟化又分为传统的和硬件辅助的。传统的完全虚拟化,虚拟机运行在操作系统之上,虚拟机管理程序本身运行在cpu的Ring 0,虚拟的Guest OS则运行在Ring 1(为了避免Guest OS破坏Host OS,Guest OS必须运行 在低于Ring 0的权限)。但是这样一来Guest的兼容性会受到影响,并且原来Guest OS要在Ring 0上执行的指令都必须经过hypervisor翻译才能运行,速度会有所下降。而硬件辅助的完全虚拟化需要cpu硬件支持,有intel的VT和AMD的 AMD-V两种技术,只有支持这两种技术的cpu才可以使用。硬件辅助的虚拟化把虚拟机管理程序本身放到比Ring 0还低的模式运行(比如Ring -1),而把Guest OS放到Ring 0,这样兼容性得到了提高,不过因为第一代硬件虚拟技术(VT和AMD-V)实现上还不够成熟,所以效率上并不比传统的完全虚拟化更高(只能是某几方面高某几方面低)。传统的完全虚拟化技术已经发展了多年,其开发比较复杂,以前的技术一般都是为x86开发的,对于x64不好用,x64上有了VT和 AMD-V之后,估计厂商已经不愿意再花力量为x64开发传统的虚拟机了,所以想要运行64位的Guest OS,都需要VT或AMD-V的支持()。
半虚拟化(para virtualization):半虚拟化可以提供极高的性能,它与完全虚拟化有一些类似。这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。与硬件辅助的完全虚拟化有一点相似是hypervisor运行在Ring -1,而Guest OS运行在Ring 0上。但是半虚拟化有一个缺点是必须修改客户操作系统,因为半虚拟化为了提高效率,必须要让Guest OS本身意识到自己运行在虚拟机上,所以在Guest OS的内核中需要有方法来与hypervisor进行协调,这个缺点很大的影响了半虚拟化技术的普及,因为Linux等系统可以修改,而其它不能修改的系统就不能用了。

硬件虚拟

英特尔虚拟化技术可提供基于芯片的功能,借助兼容 VMM软件,可为纯软件解决方案带来很大改观。由于虚拟化硬件提供操作系统直接运行的新架构,便不再需要二进制转换。这就减少了相关的性能费用,并大大简化了VMM 的设计,使 VMM 能按通用标准进行编写,并且其性能将变得更加强大。
这些优势增强了整个虚拟机解决方案的支持性。并且在英特尔虚拟化技术下运行的 VMM 在硬件层能够得到充分的验证,这种认证包括,它们能够直接执行架构的完整指令集
VMM 在英特尔虚拟化技术下所支持的操作系统的范围,较纯软件VMM解决方案所支持的操作系统类型更为广泛。例如,纯软件VMM 不支持 64 位客户的操作系统,随着英特尔安腾2处理器和含英特尔64位扩展技术(IntelEM64T)的处理器的日渐普及,这一点将变成为其越发明显的一项缺陷。基于英特尔虚拟化技术的虚拟机技术将支持 64位客户操作系统,以及各种传统操作系统,包括许多 Linux* 发行版本。
英特尔虚拟化技术为范围广泛的各种虚拟化解决方案(包括服务器台式机环境)提供了一个基础。这种硬件辅助型虚拟化解决方案扩展了功能强大的计算引擎的能力,使其能够同时针对多个不同角色进行处理。这项技术为下一代服务器整合和故障防护操作提供了一个平台,并为台式机和移动客户平台提供了高度可用性和安全性。

分析

微软新一代的操作系统Windows 7已成为业界的热门话题,由于Windows 7相对Windows Vista主要是优化升级,降低配置要求,使用户获得更佳的体验,因此自计划宣布以来便倍受关注。第一个Windows 7 Beta版正式发布后,不少喜欢尝鲜的用户已第一时间装上,体验新一代操作系统,Windows 7 RC版(后选正式版)发布后,用户人数更是呈爆炸性增长! 根据大部分测试用户的反映,Windows 7在性能等方面都要比Vista要强,甚至超越XP,这使得更多用户期待Windows 7的正式发布。本月初,RC版发布了,相比之前的Beta版带来了更多改进,其中一个重要的特性是免费附送的“XP模式”,也就是在Windows 7上,可安装一个XP系统,用户能随时切换到“XP模式”,以兼容旧的软件。但这个“XP模式”却引出部分Intel CPU的问题……
“XP模式”一曝光,即获得广大用户关注,尤其是XP系统的爱好者,纷纷表示支持,并促使更多用户把目光转移到Windows 7上。但是,使用“XP模式”有条件限制,CPU必须支持虚拟化技术(Virtualization Technolegy,简称VT),然而Intel众多主流的CPU均不支持VT技术,包括主流的PentiumE5200、Core 2E7400、Core 2 Q8200等,其销量是相当惊人的,换句话说,不少主流的Intel平台与Windows 7的“XP模式”无缘。反观AMD那边,只有Sempron系列不支持VT技术,这样,“XP模式”与虚拟化技术也就成为最近的热门词语。
VT虚拟化技术:Intel主流CPU基本不支持
微软作为全球最大的软件厂商,其Windows系统全球拥有80%以上的市场占有率,而Windows 7作为下一代操作系统,倍受关注,Intel的主流CPU却不能使用其中的“XP模式”,先不讨论这个“XP模式”对一般用户是否有实际用途,但既然是AMD的CPU基本全面支持,而Intel多数CPU不支持,在竞争无疑处于劣势。
微软重写代码或换个方式来支持“XP模式”显然是不可能,毕竟涉及到执行效率与开发周期问题,那么Intel只能向微软屈服,将旗下的主流CPU进行升级,加入虚拟化技术的支持了。
什么是虚拟化技术?我的CPU是否支持?
其实虚拟化技术并非什么新技术,只是Windows 7的XP模式出现,虚拟化技术一词才被更多普通用户所知晓。早在2005年,Intel和AMD便开始在其CPU中加入虚拟化技术的支持。但是Intel方面也只是部分高端CPU有虚拟化技术,主流级以下的基本不支持;而AMD方面则“厚道”很多,除了小部分入门级CPU(如Sempron)不支持外,其他绝大部分CPU支持。
既然虚拟化技术这么有用,那为什么Intel和AMD之前不大力宣传此技术呢?相信不少网友会产生这样的疑问,在回答之前,我们先来了解一下虚拟化技术的概念:CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。举一个简单的例子,在Windows Vista里,通过软件,同时安装XP、Linux等操作系统,当需要使用时直接调用,但并非重启电脑切换操作系统。
虚拟化,在Vista下装Windows 7
在一个操作系统下再安装多个系统,多数普通用户是不会这样做的,这也是之前CPU的虚拟化技术一词在普通用户中没有流行的原因,因此在选购CPU时,对于CPU是否支持虚拟化技术,普通用户通常不会在意。其实对于一些资深人员(例如程序员),虚拟化技术并不陌生,例如开发一个软件,要保证它能在Windows 2000/XP/VISTA/7下完美兼容,不可能装这么多系统、常重启切换,而虚拟化技术就是很好的解决方案。
虽然虚拟化可以通过软件实现,但是CPU硬件支持的话,执行效率会大大提升,也可以支持64位操作系统,这是其优点,而Windows 7的XP模式则是必须要CPU的虚拟化技术支持。
用软件查看CPU是否支持VT技术
正因为Windows 7的XP模式出现,使CPU是否支持虚拟化技术成为热门的话题,前面也提到,Intel多数主流CPU是不支持虚拟化技术的,例如当前热卖的双核Pentium E5200、Core 2 E7400以及四核Core 2 Q8200。AMD方面除了入门级Sempron不支持外,主流的Athlon系列、Phenom系列均支持。对于普通用户,可用SecurAble软件查看,例如当前的E7400不支持VT,因此在“Hardware Virtualization”上显示的便是“NO”了。
主流CPU将支持VT技术
AMD主流CPU支持VT,Intel主流CPU暂时不支持
Windows 7的XP模式,确实是给用户带来不少惊喜,尤其是较喜欢XP系统的用户,先不说XP模式对普通用户的实用性如何,但当Windows 7正式发布后,肯定有不少用户会冲着XP模式来安装Windows 7,如果因为主流Intel CPU不支持VT技术而不能使用XP模式,用户并能不接受,毕竟AMD大多数CPU是可以安装使用的。在这种情况下,Intel也只能向微软妥协,并宣布之后推出的主流CPU会加入VT技术的支持。
新加入VT技术支持的Intel CPU包括四核Core 2 Q8300、双核Core 2 E7400/E7500和Pentium E5300/E5400,但这些新版本的CPU还未出货,想买到支持VT的主流级Intel CPU,还得等一个月。但无论何如,这次Windows 7与CPU的VT技术,确实是软件带动了硬件的发展。

存在问题

在采用英特尔® 架构(IA)的系统上,虚拟化是一种纯软件解决方案。Microsoft Virtual Server* 、Virtual PC*、VMware ESX* 和 Workstation* 等产品(称为“虚拟机* ”(VMM*))可处理英特尔架构系统的所有虚拟化问题。由于 VMM 必须创建一种规则,使主机操作系统直接与硬件进行通信,因此它必须采取一些措施。虚拟机主要采用以下两种方法:
半虚拟化:此项技术要求更改操作系统、特别是内核源代码,以便其能够在指定的 VMM 上运行。此方法类似于大型机方法,其中定制操作系统扩展与硬件配合密切。当然,半虚拟化将不能与商业化操作系统协作。
二进制译码:VMM 在操作系统二进制代码加载到虚拟机时对其进行更改。这一方法在支持英特尔架构的商业产品中十分常见,唯一的限制是只能安装特定版本的操作系统,而新版本的操作系统均需要测试和验证,并可能要求对 VMM软件进行升级。
两款解决方案共同的问题在于软件无法与基础硬件协同工作,因此必须采用一些复杂的方案向软件模拟某些硬件特性,同时让主机操作系统误认为该虚拟机是另一个应用。此外,VMM 还面临着其它技术挑战。

Win7

Windows 7 RC版发布的同时微软还将提供一种全新的虚拟化技术“XP模式”(XPM),Windows 7 Professional、Enterprise和Ultimate版本用户可以在Windows 7主机上运行虚拟XP环境下安全的软件,不过该功能对硬件也有一定的要求,包括不小于2GB的内存,另外CPU还需要支持硬件虚级化。
根据最新查阅的IntelProcessor Spec Finder,现给出支持Intel虚拟化技术(Intel VT)的处理器列表,提醒大家的是,虽然这些是查阅Intel Processor Spec Finder所得的结果,但是想确认你的CPU是否支持XP模式最好还是测试一下:

桌面

Core 2 Duo

E4300/4400/4500/4600/4700
NO
E6300/6320/6400/6420/6540/6550
YES
E6600/6700/6750/6850
YES
E7200/7300/7400/7500
NO
E8190
NO
E8200/8300/8400/8500/8600
YES
Core 2 Extreme

QX6700/6800/6850
YES
QX9650/9770/9775
YES
X6800
YES
Core 2 Quad

Q6600/6700
YES
Q8200/8200S/8300/8400/8400S
NO
Q9300/9400/9400S
YES
Q9450/9550/9550S/9650
YES
Core i7/Core i7 Extreme

I7-920/940
YES
I7-965
YES
Pentium D/Pentium EE

805/820/830/840
NO
915/925/935/945
NO
920/930/940/950/960
YES
955/965
YES
Pentium for Desktop

E5200/5300/5400
NO

处理器

英特尔处理器内更出色的虚拟化支持英特尔VT-x 有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。通过按照纯软件虚拟化的要求消除虚拟机监视器(VMM)代表客户操作系统来听取、中断与执行特定指令的需要,不仅能够有效减少 VMM 干预,还为 VMM 与客户操作系统之间的传输平台控制提供了有力的硬件支持,这样在需要 VMM干预时,将实现更加快速、可靠和安全的切换。
此外,英特尔VT-x 具备的虚拟机迁移特性还可为您的 IT 投资提供有力保护,并进一步提高故障切换、负载均衡灾难恢复和维护的灵活性:
—— 英特尔VT FlexPriority:当处理器执行任务时,往往会收到需要注意的其它设备或应用发出的请求或“中断”命令。为了最大程度减少对性能的影响,处理器内的一个专用寄存器(APIC任务优先级寄存器,或 TPR)将对任务优先级进行监控。如此一来,只有优先级高于当前运行任务的中断才会被及时关注。
英特尔FlexPriority 可创建 TPR6 的一个虚拟副本,该虚拟副本可读取,在某些情况下,如在无需干预时,还可由客户操作系统进行更改。上述举措可以使频繁使用 TPR 的 32 位操作系统获得显著的性能提升。(例如,能够将在 Windows Server* 2000上运行的应用的性能提高 35%。)
—— 英特尔虚拟化灵活迁移技术(Intel VT FlexMigration):虚拟化的一个重要优势是能够在无需停机的情况下,将运行中的应用在物理服务器之间进行迁移。英特尔虚拟化灵活迁移技术(Intel VT FlexMigration)旨在实现基于英特尔处理器的当前服务器与未来服务器之间的无缝迁移,即使新的系统可能包括增强的指令集也不例外。借助此项技术,管理程序能够在迁移池内的所有服务器中建立一套一致的指令,实现工作负载的无缝迁移。这便生成了可在多代硬件中无缝运行的更加灵活、统一的服务器资源池。

网络

英特尔I/O 设备内更出色的虚拟化支持随着企业在虚拟化环境中部署越来越多的应用,并利用实时迁移来节省功率或提升可用性,对虚拟化 I/O 设备的要求也在显著提高。通过将广泛的硬件辅助特性集成到 I/O 设备(该设备用于保持服务器数据中心网络、存储基础设施及其它外部设备的连接)中,英特尔VT-c 可针对虚拟化进一步优化网络。从本质上来说,这套技术组合的功能与邮局非常相似:将收到的信件、包裹及信封分门别类,然后投递到各自的目的地。通过在专用网络芯片上执行这些功能,英特尔VT-c 大幅提高了交付速度,减少了 VMM 与服务器处理器的负载。英特尔VT-c 包括以下两项关键技术(当前所有的英特尔万兆位服务器网卡及选定的英特尔千兆位服务器网卡均可支持):
—— 借助虚拟机设备队列(VMDq)最大限度提高 I/O吞吐率:在传统服务器虚拟化环境中,VMM 必须对每个单独的数据包进行分类,并将其发送到为其分配的虚拟机。这样会占用大量的处理器周期。而借助 VMDq,该分类功能可由英特尔服务器网卡内的专用硬件来执行,VMM 只需负责将预分类的数据包组发送到适当的客户操作系统。这将减缓 I/O 延迟,使处理器获得更多的可用周期来处理业务应用。英特尔VT-c可将 I/O 吞吐量提高一倍以上,使虚拟化应用达到接近本机的吞吐率。每台服务器将整合更多应用,而 I/O 瓶颈则会更少。
—— 借助虚拟机直接互连(VMDc)大幅提升虚拟化性能:借助PCI-SIG 单根 I/O 虚拟化(SR-IOV)标准,虚拟机直接互连(VMDc)支持虚拟机直接访问网络 I/O 硬件,从而显著提升虚拟性能。如前所述,英特尔VT-d 支持客户操作系统与设备I/O 端口之间的直接通信信道。通过支持每个 I/O 端口的多条直接通信信道,SR-IOV 可对此进行扩展。例如,通过单个英特尔万兆位服务器网卡,可为 10 个客户操作系统中的每个操作系统分配一个受保护的、1 Gb/秒的专用链路。这些直接通信链路绕过了 VMM交换机,可进一步提升 I/O 性能并减少服务器处理器的负载。
更出色的虚拟化平台
作为更出色的虚拟化物理平台,英特尔至强5500 系列处理器具有独特的硬件辅助特性,可进一步改进虚拟数据中心,帮助控制服务器的增长速度。基于英特尔微体系架构 Nehalem 的英特尔至强5500 系列处理器采用多项创新技术,可有效提高系统性能、增强 I/O、支持用户将各代服务器集中至同一个虚拟服务器池中,同时提高系统的应用故障恢复、负载均衡灾难恢复能力,进一步扩展虚拟化优势。
这些技术由一流的虚拟化软件解决方案完全集成、全面测试并提供广泛支持。它们为 IT 机构提供了业经验证、行业领先的基础,可优化其服务器和虚拟化投资的价值。

芯片组

英特尔芯片组内更出色的虚拟化支持由于每台服务器上整合了更多的客户操作系统,数据进出系统的传输量(I/O 流量)有所增加并且更趋复杂。如果没有硬件辅助,虚拟机监视器(VMM)必须直接参与每项 I/O 交易。这不仅会减缓数据传输速度,还会由于更频繁的 VMM 活动而增大服务器处理器的负载。这就如同在一个繁忙的购物中心,每位顾客都不得不通过一个门进出该中心,并且只能从中心经理那里得到指示。这样不仅会耽误顾客的时间,也会使经理无法处理其它紧急事件。
英特尔VT-d 通过减少 VMM 参与管理 I/O 流量的需求,不但加速了数据传输,而且消除了大部分的性能开销。这是通过使 VMM将特定 I/O 设备安全分配给特定客户操作系统来实现的。每个设备在系统内存中都有一个专用区域,只有该设备及其分配的客户操作系统才能对该区域进行访问。
完成初始分配之后,数据即可直接在客户操作系统与为其分配的设备之间进行传输。这样,I/O 流量的流动将更加迅速,而减少的 VMM 活动则会进一步缩减服务器处理器的负载。此外,由于用于特定设备或客户操作系统的 I/O 数据不能被其它任何硬件或客户软件组件访问,系统的安全性与可用性也得到了进一步增强。

相关技术

非常热门的Virtualization虚拟化技术的出现和应用其实已经有数十年的历史了,在早期,这个技术主要应用在服务器以及大型主机上面,随着PC性能的不断增长,Virtualization也开始逐渐在x86架构上流行起来。虚拟化技术的各方面都有了进步,虚拟化也从纯软件逐深入到处理器级虚拟化,再到平台级虚拟化乃至输入/输出级虚拟化,代表性技术就是 Intel Virtualization Technology for Directed I/O, 简写为Intel VT-d。纯软件虚拟化主要的问题是性能和隔离性。Full Virtualization完全虚拟化技术可以提供较好的客户操作系统独 立性,不过其性能不高,在不同的应用下,可以消耗掉主机10%~30%的资源。而OS Virtualization可以提供良好的性能,然而各个客户操作系统之间的独立性并不强。无论是何种软件方法,隔离性都是由Hypervisor软件 提供的,过多的隔离必然会导致性能的下降。
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定