计算机虚拟化技术的发展与展望
来源:用户上传
作者: 陈 曦
摘 要:计算机虚拟化技术对于商用计算机的利用率有大幅度提高,由最初的软件虚拟化技术到硬件辅助虚拟化技术,未来的发展趋势将是软硬件厂商携手提高虚拟化产品的自身性能以及提供更丰富的功能,降低IT支出成本、减少能源浪费,而且还极大地增强了系统整体安全性和可靠性。
关键词:虚拟化 发展过程 瓶颈 展望
引言
在占据计算市场重要位置的数据中心领域中,目前最大的问题是大部分服务器的利用率都太低。有些服务器的容量利用率甚至低至5%!在服务器中增加更多的核心只能让事情变得更加糟糕,因为大部分应用软件都不能发挥出多个核心的优势。抛开那些服务器的采购成本不谈,它们的运行和冷却成本也是一种极大的浪费。在个人电脑中,各种软件利用多个核心的能力就更加有限了。几乎所有的大厂商都认为虚拟化是必然的发展方向。与使用单核心的应用软件相比,虚拟化技术可以让用户在同一台设备中的多个操作系统平台上运行多个应用软件。用户可以通过内置管理程序来控制各个应用软件使用计算资源的优先权。在虚拟化环境下,硬件设备的利用率通常可以达到80%或者90%,效率比以前有了显著的提高。
一、虚拟化技术简介
虚拟化技术最早在大型主机上采用,随着技术的发展和竞争的加剧,IBM、HP、Sun后来纷纷将其下移,逐渐将其引入到高端RISC服务器系统中。而虚拟化技术是指可以在一台计算机上运行多个独立的虚拟操作系统,维护成本和其他非技术成本会有相当程度的降低。抽象地说,虚拟化是资源的逻辑表示,它不会受物理限制的约束。因此可以定义为:“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。”随着X86处理器性能的提高和应用的普及,业界很多公司都看到了虚拟化在X86平台上实施的价值,因此VMware、Xen、微软和Parallels等软件厂商纷纷推出了支持X86平台的虚拟化软件。
二、软件虚拟化技术的发展
首先将虚拟化技术引入计算机的是计算机体系中抽象层的概念,也就是我们常用的虚拟机。虚拟机是指在一个硬件平台上模拟多个独立的、ISA结构和实际硬件相同的虚拟硬件系统,在每个虚拟硬件系统上都可以运行不同的操作系统(Guest OS),这些客户操作系统通过虚拟机监视器(VMM)访问实际的物理资源。随着X86处理器性能的提高和应用的普及,业界很多公司都看到了虚拟化在X86平台上实施的价值,因此VMware、Xen、微软和Parallels等软件厂商纷纷推出了支持X86平台的虚拟化软件。
这些软件虚拟化产品基本的思路是在操作系统与硬件层之间或者操作系统之上建立一层独立控制、分配硬件资源的软件层来达到虚拟化系统资源的目的。
三、软件虚拟化技术发展的瓶颈
通过软件在一个硬件平台式上可以模拟多个OS,然而这些模拟运行的OS还不能等同于直接在硬件层面上直接运行。不同的虚拟化产品其实现模式也有很大的不同,通过介于底层硬件和操作系统之间的软件层实现虚拟化功能的代表为VMware和Xen的产品,而Parallels的产品则是在特定的操作系统之上“虚拟”出多个系统资源副本(Parallels有支持Windows和Linux的版本),其好处是没有对系统软件的修改,对系统性能的影响较小,但由于实现虚拟化的层级不够“低”,灵活性不如前者,如VMware的产品可以在Linux系统基础上虚拟化出Windows的应用环境。
对于X86处理器来说,其保护模式下一共有4个不同优先级,称为Ring,命名从Ring0直到Ring3。这些Ring的优先级随其所执行的功能的不同也有所不同。其中Ring0用于操作系统内核,优先级最高,拥有最高的“特权”,Ring1和Ring2用于操作系统服务,优先级次之,Ring3用于应用程序,优先级最低。
软件虚拟化技术工作原理位于Ring0特权空间的操作系统可以优先访问各种硬件资源。传统的软件虚拟化技术是在Ring0 中运行一个称为虚拟机监视器(VMM)的软件中间层,以负责控制和排列各个分区访问硬件资源的优先顺序。它要求在软件堆栈的较高层运行操作系统――通常是在Ring 1或者与系统应用共用的Ring3。由于操作系统设计缺省工作在Ring0特权级别,而现在Ring0被虚拟机监视器(VMM)所拥有,所以传统的纯软件虚拟化技术需要虚拟机监视器(VMM)通过复杂的软件编程来解决这个矛盾。其中一种方法是通过打补丁修改操作系统内核源代码让其认知到工作在Guest OS虚拟操作系统模式下,另一种方法是需要对运行期间操作系统的某些硬件调用指令作二进制码翻译等。由于上述原因,传统的纯软件实现方式在测试、验证和维护每款新操作系统和相关补丁方面,付出了大量的时间和资金,同时二进制码翻译需要消耗处理器的很多计算资源。
在纯软件虚拟化运行时的开销会造成系统运行速度较慢,有数据表明其引起的系统性能下降超过10%,尤其是在服务器整合领域,当虚拟化系统数目巨大时,其性能损失更为可观。另外由于要通过软件捕获分配基本资源的处理器指令,不但过程复杂,可靠性不高,对不同平台的兼容性也容易产生问题。
四、硬件辅助虚拟化技术
由于软件虚拟化技术存在诸多问题,因此硬件辅助虚拟化技术诞生就非常重要了。与软件方案相比,硬件辅助虚拟化技术对如何在不同的情形下分配给Guest OS (虚拟机上的操作系统)想要的Ring特权级别做了重要的改进,在软件堆栈中为虚拟机监视器(VMM)提供了专用的空间,可以支持未经修改的操作系统和应用在专门为它们设计的环境中运行,从而简化了硬件调用。
同时,硬件辅助虚拟化技术通过硬件底层指令集来支持虚拟机监视器(VMM)与已安装Guest OS之间的切换,效率和可靠性明显提高。
另外,硬件辅助虚拟化技术还设计了保留虚拟机监视器(VMM)和已安装的Guest OS的处理器状态信息的专用内存地址空间,这样不但可以缩短各个操作系统访问硬件之间的间隔时间,同时提高了各个虚拟机上的操作系统之间的安全隔离性。
从技术上看,硬件辅助虚拟化通过提高客户虚拟系统的隔离性而增强了虚拟化的性能、灵活性和可靠性。在实施时也更加简单。
五、虚拟化技术展望
虚拟化技术优势日益体现,不仅大幅度降低了IT支出成本、减少了能源浪费,而且还极大地增强了系统整体安全性和可靠性。软硬件厂商未来可能携手提高虚拟化产品的自身性能以及提供更丰富的功能。基于主机操作系统的虚拟机产品以及硬件虚拟化技术得到更广泛应用。硬件厂商在操作模式间的转换速度、TLB性能、内存虚拟化和I/O虚拟化等方面加以改进和完善;软件厂商则利用二进制动态翻译及程序行为分析的技术减小性能开销,利用内存和存储的重复删除技术降低资源开销。而分布式文件系统和分布式共享内存等技术的引入将有助于打造一个高可用、高容错的分布式虚拟化软件平台,便于虚拟机的部署和动态迁移。所有的迹象都表明虚拟化技术正在跳跃早期技术与主流市场间的鸿沟,成为企业寻求最大限度的提高效率和精简其数据中心的方向。
参考文献
[1]邹大斌.虚拟化:迈向云世界的第一步[N].计算机世界.2009.
[2]林昊翔.X86硬件辅助虚拟化技术解析[N].微型计算机.2010.
[3]游建荣.虚拟化的机遇[N].计算机世界.2009.
作者单位:江苏南通体臣卫生学校
转载注明来源:https://www.xzbu.com/9/view-926476.htm