虚拟化技术分类有哪些?虚拟化技术并不是一项新技术。从IBM大型计算机的虚拟化到现在EMC可应用于桌面机的VMware系列,单机虚拟化技术已经经历了半个世纪的发展。这些计算机虚拟化技术从它们与物理硬件及操作系统的耦合程度来讲大致可以分为4类,即全虚拟化、半虚拟化、操作系统级虚拟化,以及CPU虚拟化。
1)全虚拟化全虚拟化(Full Virtualization)通过完全的系统仿真来建立整个虚拟机,不对操作系统做任何修改。该方法中虚拟机管理器(VMM)是整个系统的核心,它运行在硬件平台之上,用户操作系统之下,承担了资源的调度、分配和管理的作用,在客户操作系统和物理硬件之间进行工作协调,保证多个虚拟机能够相互隔离的同时能够运行多个客户操作系统。
全虚拟化较大的优点是操作系统没有经过任何修改。它的唯一限制是操作系统必须能够支持底层硬件(如Intel、AMD)。VMware和微软的Virtual PC是代表该方法的两个商用产品。
2)半虚拟化
半虚拟化(Para-virtualization)使用虚拟机管理器(VMM)分享存取底层的硬件,但是它的客户操作系统集成了虚拟化方面的代码,使得操作系统自身能够与虚拟进程进行很好的协作。
半虚拟化提供了与原始系统相近的性能但需要对客户操作系统做一些修改(配合VMM)。Xen是半虚拟化技术的一个典型例子,而且Xen还有一个较大的优势就是它是开源的。
3)操作系统级虚拟化
操作系统级虚拟化(Operating System-level Virtualization)在操作系统之上虚拟多个服务器,支持在单个操作系统上简单隔离每一个虚拟服务器。操作系统级的虚拟化需要修改操作系统内核而无须VMM的存在。SUN的Solaris Container是这方面的一个例子。
4)CPU虚拟化
纯软件虚拟化解决方案存在很多限制。除了会增加系统的复杂性之外,客户操作系统的支持也受到虚拟机环境的能力限制。而CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM可以很容易地提高性能,相比软件的虚拟实现方式会在很大程度上提高性能。这方面的代表是Intel的Intel Virtualization Technology和AMD的Pacific虚拟化技术。