在当今复杂的IT环境中,服务器虚拟化的应用是有道理可寻的。企业通过大量服务器硬件可以迅速提升企业数据处理能力,而随之而来的却是每增加一个新设备需要耗费电力和冷却成本。而在现有物理服务器上划分虚拟服务器是解决成本瓶颈的一种方式,以恢复正常运营并保持成本支出控制。
虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。运行多个虚拟机可以充分利用物理服务器的计算潜能提供一个快速反应,以改变数据中心的需求。
虚拟化这一概念很早就提出了,早在20世纪70年代,大型计算机同时可以运行多个操作系统。而现在,软件和硬件的进步使得虚拟化技术成为行业标准,企业得到了很好的应用。
事实上,目前数据中心管理员很难从令人眼花缭乱的虚拟化解决方案中选择一个合适的方案。有些是专有的,有些属于开源。不过,在大多数情况下,每一个虚拟化解决方案主要是基于以下三种基本技术,哪一个会产生最好的效果取决于他们的虚拟化和业务优先事项的工作量。
完全虚拟化
最为简易的虚拟化方法是使用名为Hypervisor的软件创建一个抽象层的虚拟服务器和底层硬件。VMware和微软Virtual PC就是利用这种做法,而KVM(内核虚拟机)是一个开源提供的Linux版本。
准虚拟化
准虚拟化允许多个操作系统同时运行在硬件上,例如,通过有效的资源共享,更有效地使用处理器和内存。不象完全虚拟化那样模拟整个系统(基本输入输出系统、磁盘、处理器、网卡等),准虚拟化的管理模块(一个hypervisor或虚拟机监控器)与经过修改在虚拟机里工作的操作系统一起运转。
Xen一个很好的开放源码的准虚拟化技术例子,在可以运行的虚拟服务器上实现Xen管理程序, Xen可以对BSD,Linux,Solaris和其他开源操作系统支持,但不适合虚拟化的专有系统,如Windows。
操作系统级虚拟化
另一种方式来实现虚拟化就是通过建立虚拟服务器,比如Solaris、Virtuozzo/OpenVZ也提供类似的Linux系统的虚拟机版本。
随着操作系统级的虚拟化,也没有单独的hypervisor层。相反,主机中操作系统负责硬件资源之间的分配,划分为多个虚拟服务器,并随时向服务器端发送协议。最明显的区别是与系统级虚拟化的所有虚拟服务器需要运行同一操作系统(不过每个实例有自己的应用程序和用户账户)。