硬件辅助虚拟化渐入主流

2006-07-27 10:49
计算机世界·技术与应用 2006年21期
关键词:计算资源分区虚拟化

新 城

2005年11月,英特尔发布了新的Xeon MP处理器系统7000系列,X86平台历史上第一个硬件辅助虚拟化技术——VT(Vanderpool Technology)技术也随之诞生。这一里程碑式的事件也拉开了X86平台普遍虚拟化计算的帷幕。

虚拟化: 概念与优势

所谓虚拟化,是指将单台电脑/服务器软件环境分割为多个独立分区,每个分区均可以按照需要模拟电脑/服务器的一项技术。它的技术实质是通过中间层次实现计算资源的管理和再分配,使资源利用实现最大化。

虚拟化分区带来的最大好处是使同一个物理平台能够同时运行多个同类或不同类的操作系统,以分别作为不同业务和应用的支撑平台。分区使得应用之间能够更好地隔离,避免在同一个系统运行多个应用时相互影响; 同时使得系统的备份、迁移和升级更加简单灵活,由于资源管理中间层的存在,不但操作变得非常简单,而且可以很容易实现在线实施; 当然,最重要的是分区可以实现计算资源的实时按需动态分配,负载大的分区可以获得更多的计算资源,在负载下降时,计算资源可以被回收,返还或再分配给其他的分区,以最大限度地实现资源整合和按需动态分配。

硬件辅助虚拟化: 一种更高效可靠的实现方式

虚拟化有两种实施方式: 纯软件虚拟化方式和硬件辅助虚拟化方式。

虚拟化技术最早在大型主机上采用,但随着X86处理器性能的提高和应用的普及,业界很多公司都看到了虚拟化在X86平台上实施的价值,因此VMware、Xen、微软和SWsoft等软件厂商纷纷推出了支持X86平台的虚拟化软件。

这些软件虚拟化产品的基本思路是在操作系统与硬件层之间或者操作系统之上建立一层独立控制、分配硬件资源的软件层来达到虚拟化系统资源的目的。不过,不同的虚拟化产品其实现模式也有很大的不同,通过介于底层硬件和操作系统之间的软件层实现虚拟化功能的代表为VMware和Xen的产品,而SWsoft的产品则是在特定的操作系统之上“虚拟”出多个系统资源副本(SWsoft有支持Windows和Linux的版本),其好处是没有对系统软件的修改,对系统性能的影响较小,但由于实现虚拟化的层级不够“低”,灵活性不如前者,如VMware的产品可以在Linux系统基础上虚拟化出Windows的应用环境。

对于X86处理器来说,其保护模式下一共有4个不同优先级,分别从Ring 0直到Ring3。这些Ring的优先级随其所执行功能的不同也有所不同。其中Ring 0用于操作系统内核,优先级最高,拥有最高的“特权”,Ring 1和Ring 2用于操作系统服务,优先级次之,Ring 3用于应用程序,优先级最低。

软件虚拟化技术工作原理

位于Ring 0特权空间的操作系统可以优先访问各种硬件资源。软件虚拟化技术是在Ring 0 中运行一个称为虚拟机监视器(VMM)的软件中间层,以负责控制和排列各个分区访问硬件资源的优先顺序。它要求在软件堆栈的较高层运行操作系统——通常是在Ring 1或者与系统应用共用的Ring 3。

由于操作系统设计缺省工作在Ring 0 特权级别,而现在Ring 0被VMM所拥有,所以传统的纯软件虚拟化技术需要VMM通过复杂的软件编程来解决这个矛盾。其中一种方法是通过打补丁修改操作系统内核源代码让其认知到工作在Guest OS (虚拟机上的操作系统) 虚拟操作系统模式下,另一种方法是需要对运行期间操作系统的某些硬件调用指令作二进制码翻译等。由于上述原因,传统的纯软件实现方式在测试、验证和维护每款新操作系统和相关补丁方面,需要花费大量的时间和资金, 同时二进制码翻译需要消耗处理器的很多计算资源。

英特尔VT技术工作原理

纯软件虚拟化运行时的开销会造成系统运行速度较慢,有数据表明其引起的系统性能下降可能超过10%,尤其是在服务器整合领域,当虚拟化系统数目巨大时,其性能损失更为可观。另外由于要通过软件捕获分配基本资源的处理器指令,不但过程复杂,可靠性不高,对不同平台的兼容性也容易产生问题。

这也是硬件辅助虚拟化技术诞生的重要原因。与软件方案相比,VT技术对如何在不同的情形下分配给Guest OS 想要的Ring 特权级别做了重要的改进,在软件堆栈中为VMM提供了专用的空间,可以支持未经修改的操作系统和应用在专门为它们设计的环境中运行,从而简化了硬件调用。

同时,VT通过硬件底层指令集来支持虚拟机监视器(VMM)与已安装Guest OS 之间的切换,效率和可靠性明显提高。

另外,VT技术还设计了保留VMM和已安装的Guest OS的处理器状态信息的专用内存地址空间,这样不但可以缩短各个操作系统访问硬件之间的间隔时间, 同时提高了各个虚拟机上的操作系统之间的安全隔离性。

硬件辅助虚拟化通过提高客户虚拟系统的隔离性而增强了虚拟化的性能、灵活性和可靠性。在实施时也更加简单。

不仅仅是服务器

双核处理器及64位平台支持功能为虚拟化技术提供了一个更加稳定可靠的平台基础。继去年英特尔宣布在X86服务器平台支持硬件辅助虚拟化技术之后,即将于今年第三季度早期发布的博锐商用桌面平台也将引入虚拟化技术,而64位安腾平台也将在今年实现对VT技术的支持。

虽然虚拟化的概念和实施最早来源于大型服务器主机,但随着以英特尔和VMware、微软等为代表的软硬件厂商将虚拟化技术引入X86平台,一个崭新的时代即将到来。著名的市场调研和分析机构Gartner认为,未来十年内,虚拟化将是PC行业所面临的最具革命性的一种技术。

由于多核处理器的诞生,使虚拟化技术可以分配的硬件资源得到了扩充,因此不仅仅是在服务器平台上,即使是在工作站和桌面平台上,硬件辅助虚拟化的价值也将越来越明显。

在服务器领域,虚拟化可以带来更高的部件及系统级利用率,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境,以及更为简洁、统一的服务器资源分配管理模式。这方面带来的效能提升非常明显。有一项针对Gap时装公司的数据表明,支持VT技术的Xeon MP服务器平台结合VMware的虚拟化软件可以实现高达30:1的服务器整合率。

在工作站环境中,虚拟化可以在单个工作站中整合多种环境,让开发人员在同一平台上的各个分区中托管一个连续叠合的软件堆栈。这可以提高硬件的使用率并简化整个产品周期的管理工作。

而虚拟化除了可以为台式机带来类似数据中心的灵活性和响应能力外,还可以结合iAMT(主动管理)技术对PC实施远端控制,在不影响终端用户工作的情况下运行安全和管理服务,甚至通过独立的分区来过滤网络流量,防止病毒或者恶意代码到达用户终端。

迎接普遍虚拟化计算时代

毫无疑问,虚拟化实现的层次越“低”,其效能、可靠性和安全性就越高。随着功能的增多,仅仅在处理器芯片层面支持虚拟化就显得不够了。必须要把核心功能软件固化到系统固件层。由于系统固件层是独立于操作系统之上的,并且可以通过编程来不断更新升级虚拟化功能支持,因此其好处是不但可以更方便地支持任何操作系统(包括Unix、Linux、Windows和MacOS等),效率和灵活性也会更高。

目前英特尔平台的BIOS还不具备这种灵活强大的可编程能力。不过其下一代BIOS系统EFI可以通过高级语言(如C)编程,而不是像目前这样仅支持汇编语言。而微软下一代操作系统Vista也将支持EFI。

对X86平台来说,英特尔虚拟化(VT)技术是一项不断发展完善的技术。从处理器、芯片組、内存、基本BIOS、存储设备到显卡,下一步将实现把I/O 设备映射到系统的虚拟机,这意味着一个更广泛部署的硬件虚拟化技术——实现包括计算、存储、I/O处理在内的整个计算平台的虚拟化。

届时,整个计算机资源得到更充分的管理和利用,系统的性能、可靠性、安全性和可管理性也将实现质的飞跃。

毫无疑问,那是人类梦想的普遍虚拟化时代的最终实现。

猜你喜欢
计算资源分区虚拟化
上海实施“分区封控”
另辟蹊径使用Linux备份和还原Windows系统
浅谈信息产业新技术
一种作业调度和计算资源动态分配方法
基于云桌面的分布式堡垒研究
高校信息资源虚拟化技术的应用与实践
大型数据库分区表研究
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
神探出手,巧破分区离奇失踪案