为了了解英特尔®虚拟化技术,有必要先大概介绍一下虚拟化,也就是说,由硬件措施、软件措施、或二者的结合体完成的虚拟化。一般而言,虚拟化是一项技术,它使硬件资源得以在一台机器上的多个虚拟分区上抽取、划分、配置。每个虚拟分区包含它自己的操作系统环境。虚拟化可以通过各种技术来实现,例如模拟、模仿,以及通过硬件或软件手段对资源进行分区等。对于用户而言,理想的虚拟化解决方案应提供不同虚拟机之间的彻底隔离,并为每个虚拟机提供卓越性能,同时确保整个平台的出色实用性、可靠性和安全性。
虚拟化提供了诸多能力,其中一项是能够在单一硬件平台上同时运行多个操作系统,这很快成为应对众多信息管理问题的一项重要解决方案。本入门介绍分析了虚拟化技术所带来的众多优势,例如面向信息技术(IT)经理的可靠性、安全性和可管理性,以及提高开发商的生产效率,同时还说明了虚拟化解决方案如何能够借助英特尔® 虚拟化技术得到提升。在它提供的技术背景下,实施者和架构师们需要决定如何实现英特尔® 虚拟化技术带来的充分机会。
虚拟化具备众多优势,然而 IT 站点采用该技术的主要原因在于:它有助于更有效地利用资源和更出色地管理系统。虚拟化带来各种优势:
- 总拥有成本(TCO)的整合与降低:许多应用均在未得到充分利用的独立服务器上运行,因为无法将其移植到新平台或整合到单一平台。这项移植和整合有这些主要障碍,比如,应用为了获得可靠性和支持能力,要求应用在专用系统上运行,或者,它使用站点其它地方都不使用的操作系统。这些应用通常是使用过时操作系统的传统解决方案,不易升级运行新系统。由于这些原因,往往无法移植到整合平台上。借助虚拟化,一个硬件平台可以运行不同操作系统的多个例程,其中每个例程均在自己的隔离区(称为“虚拟机” (VM))中运行,由此共享对硬件资源的访问。
• 由于整合降低了系统维护成本,同时数据中心内的空间和电源能够得到更好的管理,从而使总拥有成本(TCO)显著降低。而企业必须考虑虚拟化可能带来的软件授权成本上抬。在额外操作系统和应用软件必需授权的情况下,会有额外的成本,这会依解决方案的设计情况而定。由于授权问题由厂商决定,网络架构师和管理员应跟上政策的变化。
- 可管理性:采用虚拟化技术的服务器可以根据负载的要求,接受来自其它系统的虚拟机移植。事实上,负载平衡代理程序可自动执行这一移植。Xen 项目在服务器和客户机上使用负载移植,而类似技术也存在于一些商业化产品中,例如 Vmware 的 VMotion*(www.vmware.com*)。
- 安全性和故障隔离:虚拟化可以通过隔离不同虚拟机来提供安全性。通过在不同例程中运行各种应用,一个虚拟机不会遭到另一个虚拟机中病毒或恶意软件的破坏。恶意软件所造成的任何破坏均会影响到其所运行的具体分区。同样,如果应用由于漏洞或错误而挂起,它也只会锁定其自己的会话。之后,该虚拟机可在不影响系统上运行的任何其它虚拟机的情况下重新启动。此外,它还可以提供各种安全方案,例如针对不同用户登录的不同虚拟机等。
- 可靠性与可用性:虚拟化解决方案可以在单一物理系统上提供可靠的故障转移方案和系统备份。
- 工作效率的提高:升级和更新软件是所有 IT 经理所执行的常见重要任务之一。如果站点想在与目标设备相同的硬件上测试软件包升级,可以通过在平台上运行新的虚拟机会话来轻松实现。虚拟化可提高开发人员和质量保证人员的工作效率。致力于跨平台项目的开发人员和软件测试人员发现,在其开发工作站上的不同目标操作系统中运行多个会话是完全可行的。这使得他们能够自如验证跨平台功能。致力于内核组件创建与测试工作的开发人员可以通过在隔离的虚拟机上执行测试来缩短停机时间和周转时间。如果没有可靠的虚拟化解决方案,则发生故障的内核组件可能导致需要重新安装或重建操作系统。
随着处理器借助多种内核架构和硬件多线程(如超线程(HT)技术)变得日益强大,虚拟化解决方案将可用于应对未充分利用的独立服务器和传统应用情况。虚拟化解决方案在提供上述优势的同时,还可将专用内核分配到不同的虚拟机上。例如,在多核处理器平台中,一个内核可以专用于一个虚拟机,以便在故障切换时进行替换,进而提供出色的可靠性、性能,以及易管理性和众多整合优势。
与英特尔® 虚拟化技术相关的价值定位的另一个主要方面,是新的英特尔处理器特性还具有一些额外的特征。 比如,英特尔® 主动管理技术 (Intel® AMT) 令管理员可以远程发现、修复和保护硬件,即使电源已切断或操作系统被破坏。 LaGrande 技术 使得应用可在自己被保护的空间里运行,帮助防备软件攻击及保护客户个人电脑上储存的或创建的数据的机密性和完整性。英特尔® I/O 加速技术(Intel® I/OAT)加快了网络和 I/O 操作的速度。 除了这些能力之外,英特尔® 虚拟化技术还给客户带来独特的价值。
名为虚拟机监控器(VMM)的纯软件虚拟化解决方案处理系统的所有虚拟化问题。由于 VMM 必须创建一种规则,使主机操作系统直接与硬件进行通信,因此它必须采取一些措施。有两种方法被使用:
- 半虚拟化:此项技术要求更改操作系统、特别是内核的源代码,以便其能够在指定的VMM上运行。 此法与大型机法类似,在大型机方法中,客户 OS 扩展与硬件紧密匹配。当然,半虚拟化将不能与商业化操作系统协作。
- 二进制译码:VMM 在操作系统二进制代码加载到虚拟机时对其进行更改。这一方法在商业产品中十分常见,唯一的限制是只能安装特定版本的操作系统,因为每个新版本的操作系统均需要测试和验证,并可能要求对 VMM 软件进行升级。
两款解决方案共同的问题在于软件无法与基础硬件协同工作,因此必须采用一些复杂的方案对软件模拟某些硬件特性,同时让主机操作系统将该虚拟机视作另一个应用。此外,VMM 还面临着其它技术挑战。
虚拟化软件当前面临的挑战
使用专用于 VMM 的独享存储器
为了存储系统信息,VMM 必须使用仅供自己访问的专用存储区。问题在于,如何能够通过客户操作系统无法访问(无论有意还是无意)的方式来分配内存。主要解决方案是由 VMM 中途截取对这些内存区的访问,并模拟初次访问的预期结果。不支持基于硬件的虚拟化的硬件要求执行这一烦琐的过程。然而在采用英特尔® 虚拟化技术的处理器上,供 VMM 使用的某些内存页却只能通过处理器认可,拥有最高优先权的软件(例如 VMM)进行访问。而这一步使得这些区域无法被访问,最重要的是,所有其它软件也无法访问这些区域。
VMM 中断处理的使用
需要系统即刻关注的事件――中断必须由 VMM 进行处理。问题在于,操作系统有能力防止中断的发生。该机制用于防止某些活动的中断,这些活动必须在不被外部事件中断的情况下完成。VMM 可以管理到客户操作系统的中断流,然而为此,它们必须监视屏蔽和取消屏蔽(即阻塞和允许)这些中断的尝试。 一些操作系统过度使用这一特性,致使 VMM 的性能大幅降低。
英特尔® 虚拟化技术为解决纯软件解决方案的种种问题的虚拟化提供强大的硬件支持,并为 VMM 厂商提供必要的支持。它可以支持 VMM 在没有二进制译码或半虚拟化资源的情况下,轻松运行各种商业化操作系统和应用。这种能力可大大改进 VMM 的部署,并为客户操作系统和应用提供更出色的可靠性和可管理性。
英特尔® 虚拟化技术如何发挥作用?
VMM 必须做好两件事:它们必须全面模拟硬件环境,使主机操作系统认为其拥有整个硬件平台,同时它们还必须处理操作系统(如硬件故障)或应用(如软件错误)导致的所有意外情况。两项任务的执行必须高度可靠,且性能消耗较少。
有些硬件不支持基于硬件的虚拟化,这令 VMM 很难实现这些目标,因为传统处理器是为了运行单个操作系统的单个例程而设计的。结果,VMM 面临着一系列挑战,需要英特尔® 虚拟化技术解决。下面我们来详细了解一下这些情况。
权限级别
所有现代处理器和操作系统均实施了权限级别(Privilege Level)概念,这一概念定义了具体流程所能执行的行为。英特尔架构提供了称为“环路”(ring)的四个权限级别,编号为 0-3。最高级为 0 级,用于操作系统;最低级为 3 级,用于各种应用。出于种种原因,1 级和 2 级均很少使用。只在运行于环路 0 中的操作系统可以无限制地访问硬件。通过将此环路限定用于单个操作系统,处理器可支持操作系统充分了解硬件状态。
为使 VMM 正常运转,需要让它在环路 0 运行,并向客户操作系统制造客户操作系统在环路 0 中运行的假象。然而,由于 VMM 自身在环路 0 中运行,所有客户操作系统均不得在这一特权级别运行。事实上,它们目前一般在环路 1——一种称为“环路特权解除”(ring deprivileging)的技术上运行。这就给 VMM 带来了极大的困难,它必须不断监视虚拟机的活动以中断硬件访问和某些系统调用,并自己执行和模拟结果。
英特尔® 虚拟化技术通过创建以下两类环路解决了这一问题:用于 VMM 的特许“根”环路(称为“OP 环路”),以及用于操作系统的非特许“非根”环路(称为“OD 环路”)。以这种方式,VMM 即可作为基本层,且所有操作系统均可在其上运行并拥有环路 0 的必要优势。通过这一方法,主机操作系统和应用可以在其预期的环路级别内运行,且察觉不到 VMM 的存在――所有主机操作系统均认为自己拥有整个机器。
英特尔® 虚拟化技术是如何区分 32 位英特尔架构(IA)和安腾® 架构的?
英特尔虚拟化技术在 32 位英特尔架构和安腾架构的表面较为类似,但由于这两个架构本身区别甚大,各自的规范支配着该技术在两个平台上的执行。对多数商务用户来讲,该技术的使用即使不完全一样,也是大同小异,关于该技术使用区别的概述,见《计算机(Computer)》2005年五月封面专题,《英特尔虚拟化技术》。
32 位英特尔架构版本的英特尔® 虚拟化技术被称为 VT-x,关于 VT-x 的文件请见《针对 32 位英特尔架构(IA)的英特尔® 虚拟化技术规范(VT-x)》。 英特尔® 安腾® 架构版本称为 VT-i,关于 VT-I 的文件请见《英特尔® 安腾® 处理器的英特尔® 虚拟化技术规范(VT-i)》。
有意思的是,IT 站点无需对其应用进行任何更改即可充分的利用英特尔® 虚拟化技术。事实上,这便是英特尔虚拟化技术的总体目标:无需在虚拟机中进行修改即可运行任何应用。英特尔虚拟化技术主要面向 VMM 厂商中的工程师,他们可以利用相关特性来提供更出色的虚拟化软件。通过采用英特尔虚拟化技术,全新的 VMM 产品将:
- 更加稳定:VMM 将不再需要使用半虚拟化或二进制译码。这意味着它们无需采取任何特殊措施即可运行商业化操作系统和应用。
- 更加强大:英特尔虚拟化技术可支持 VMM 首次在 IA x86 处理器上运行 64 位虚拟机操作系统。
- 更可靠:借助硬件支持,VMM 现在可以进一步缩小尺寸、降低复杂性并提高效率。从而可以显著提高可靠性和可用性,并减少潜在的软件冲突。
- 更安全:在 VMM 中使用硬件移植可以加强虚拟机的隔离,进一步防止一个虚拟机的破坏影响到同一系统上的其它虚拟机。
很少有技术能够在站点不对其软件做任何更改或升级的情况下提供如此多的优势。为了有效的利用英特尔虚拟化技术,请确保在详细说明您的虚拟化解决方案时对此加以说明。
如今许多供应商都提供虚拟化软件,给予基于英特尔® 架构的服务器在过去只在大型机上才有的功能。这个价值链中可利用的解决方案的例子包括如下:
- VMWare(EMC): ESX 服务器(ESX Server*、VMWare 服务器(VMWare Server*)、VMWare Player*、和虚拟中心(VirtualCenter*)
- 微软:Virtual Server* 和 Virtual PC*
- Xen 开放源社区:Xen*
- Virtual Iron:Virtual Iron*
- SW Soft:Virtuozzo*
- Parallels:Parallels Workstation*
英特尔正积极与软件厂商合作帮助这个价值链的开发。英特尔正与 Vmware 在数个市场发展和教育计划上进行合作,包括通过直接参与和目标材料直接向 IT 经理宣讲和引进虚拟化价值。为了向市场宣传及推动全面虚拟化,公司还投资了一整套虚拟化套件,包括特性完满的产品以及利于新客户开始使用虚拟化的支持资源。
英特尔和微软也已联手,要将英特尔® 虚拟化技术扩展到包括支持 I/O 设备到虚拟机的映射,该虚拟机所在的服务器带有针对 Directed I/O (Intel® VT-d)的名为英特尔® 虚拟化技术的新规范。英特尔® 虚拟化技术家族以及英特尔 VT-d 的一部分帮助提升了 I/O 在虚拟环境中的可靠性、灵活性和性能。微软已与英特尔合作开发规范以确保为用户提供最佳功能。
支持英特尔® 虚拟化技术的英特尔平台 2005 年开始发运,2006 年发运移动平台和基于英特尔® 至强® 处理器和工作站的平台。 支持英特尔虚拟化技术的基于英特尔® 安腾® 处理器的服务器将于 2006 年后期开始发运。
(责任编辑:城尘)