在当今复杂的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层。相反,主机中操作系统负责硬件资源之间的分配,划分为多个虚拟服务器,并随时向服务器端发送协议。最明显的区别是与系统级虚拟化的所有虚拟服务器需要运行同一操作系统(不过每个实例有自己的应用程序和用户账户)。
易中有难
不同于大型机,PC机的硬件设计没有考虑与虚拟化-软件承担的负担。随着新一代x86处理器诞生,AMD和英特尔已经加入支持CPU虚拟化应用水平。
不过,虽然他们提供类似的虚拟化服务,但两家公司的技术是靠自主研发,这意味着他们没有可兼容的技术来负责管理虚拟服务器,从而对获得I/O通道和硬件资源,硬件虚拟化支持。另外,除了除了提高性能,操作系统可以运行未修改的准虚拟化环境,包括Windows在内。
CPU的虚拟化程度不易改变。但是虚拟化软件必须有一个统一标准,由于这些技术带来的好处是如此引人注目,所以支持虚拟化软件的所有类型来发挥虚拟化的最大作用。
虚拟工具箱
每一种虚拟化应用都有其优点,视情况而定。集群服务器都基于同一个操作平台将是不错的选择。准虚拟化是两全其美,特别是当部署在虚拟化的同时提供了良好的运行能力,异构混合的客户操作系统。
完全虚拟化达到最大性能需要三种方法,但它提供的好处是完全孤立的客户操作系统,从主机操作系统获得帮助。这是一个不错的选择,软件的质量得到保证,且支持尽可能多的客户操作系统。
完全虚拟化解决方案也提供其他特殊功能,例如,它们可以采取的“快照”的虚拟服务器,以维护他们的国家和援助灾后恢复。这些虚拟服务器映像可以用来提供新的速度较快的服务器应用,很多软件公司甚至开始提供评估版本的产品下载,预先虚拟服务器映像。
值得一提的是,虚拟服务器需要不断的支持和维护。随着技术的不断进步,促进了服务器虚拟化新兴市场上第三方工具的发展,从物理到虚拟环境上的迁移,面向不同版本可虚拟化的主要系统管理控制台,将传统的IT环境改变,从而让更具效率的虚拟产品服务于行业。