什么事虚拟化    

虚拟化是一个比较广义的概念,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行;也可以说是一种解决方案,为了简化管理,最大化利用现有资源。例如:现有有一台服务器,平时的服务器资源只用了10%-20%,还有80%的资源处于闲置状态,造成资源的浪费,如果我使用虚拟化技术,在一台物理服务器上运行多个系统,这样可以充分的利用这台服务器。

      虚拟化的实现方式,从技术角度来说,有纯软件虚拟化,例如VMWare和微软的Virtual Server;和硬件虚拟化,主要是指CPU的虚拟化技术,像微软的Hyper-V就需要CPU支持硬件虚拟化。从应用角度来说,有服务器虚拟化,桌面虚拟化、用户虚拟化和存储虚拟化等等。

       对于纯软件虚拟化而言,容易实现,成本也低,但是在资源利用上有很多的限制,在虚拟机和硬件之间隔了一个操作系统,因此,虚拟操作系统上的应用程序到实际操作系统就要比通常应用程序多经过一个通信层。这个多出来的通信层同样要经过数据转换,这种转换必然会增加系统的复杂性和系统资源的额外开销。此外,客户操作系统的支持受到虚拟机环境的能力限制,这会阻碍特定技术的部署,因而会降低系统可靠性和安全性。

       纯软件的虚拟化技术在应用上受到了很多物理资源的限制。除了上述提到的额外通信层,为了运行虚拟软件,就必须占用一部分系统资源,甚至是很大一部分,而这也会增加系统应用的额外开销,这样就大大降低了资源的效率,甚至失去了虚拟化的意义。

纯软件虚拟化的诸多不足,让人们想到了硬件虚拟化。

CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有经特别优化过的指令集来控制虚拟过程,通过这些指令集,虚拟机可以很容易提高性能,相比纯软件的虚拟化技术会在很大程度上提高性能。CPU虚拟化技术可以提供基于芯片的功能,借助其兼容技术还能改进纯软件解决方案。由于虚拟化硬件可以提供全新的架构,支持操作系统直接在上面运行,从而无需额外的二进制转换,减少了相关的性能开销,从而大简化了虚拟软件的设计,并使得设计可以标准化,性能更加强大。另外,在纯软件虚拟技术中,目前缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。

对于软件虚拟化方案来说,CPU虚拟化技术是一个巨大的进步,其优势简单的说来主要表现在减少软件虚拟机相关的性能开销,极大简化了软件的设计并支持更广泛的操作系统两个方面。

现状

      目前的虚拟化市场中,主流的产品有微软的Virtual PC和Hyper-V系列产品,Vmware的VMware Workstation、VMware Server以及VMware Player系列产品以及Xen的Xen Enterprise系列产品,其中Vmware由于涉及这个领域比较早,目前在x86服务器这个领域占有半数以上的市场份额,而软件行业的老大微软则是后涉足这个领域,但是随着微软近来推出新一波虚拟化策略,他的市场份额正在逐步扩大,越来越多的用户加入到了微软的Hyper-V阵营中。