在今天复杂的IT环境中,服务器虚拟化具有显而易见的积极意义。冗余服务器硬件可以迅速补充进企业的数据中心并形成容量;每一项新的采购都会将电力和制冷成本一路推高。为解决这一问题,方法之一就是将物理服务器划分到虚拟服务器中是恢复宁静并保持IT支持在受控的范围内。
利用虚拟化,您能够以动态方式启动和关闭虚拟服务器(也称作虚拟机),每台虚拟服务器基本上都会欺骗操作系统(以及任何在其上运行的应用),让它们相信虚拟机就是实实在在的硬件。运行多个虚拟机可以充分利用物理服务器的计算潜力 – 并且为不断变化的数据中心需求提供快速响应的机会。
事实上,今天的数据中心经理们已经可以从令人目眩的众多虚拟化解决方案自由选择。有些方案是专有的,另外一些则是开源的。多数解决方案都基于三种基本的技术之一;至于谁能够产生最好的结果,还要看有待虚拟化的具体负载,及其运行优先等级。
完全虚拟化
在虚拟化的过程中,最常用的方法是使用一种称为监视程序的软件,在虚拟服务器和下层硬件之间创建一个抽象层。VMware和Microsoft Virtual PC便是此类中两种典型的商品化实例,而KVM(基于内核的虚拟机)是一种适用于Linux的开源产品。
监视程序会捕获CPU指令,并协调硬件控制器和外设的存取。因此,完全虚拟化可允许几乎任意操作系统安装在虚拟服务器上,而且无需对操作系统做任何的修改,操作系统也不会感知自己是在一个虚拟环境中运行。这种作法的主要缺点是,监视程序会产生处理器开销,虽然很小但影响较大。
在一个完全虚拟化的环境中,监视程序运行在裸硬件上,并且担当主机操作系统的角色。由监视程序管理的虚拟服务器则被称为来宾服务器。
准虚拟化
完全虚拟化是处理器密集型的,因为监视程序需要管理多个虚拟服务器,并保持它们彼此独立。减轻这种负担的方法之一是对每个来宾操作系统进行修改,使它能够意识到自己是在虚拟环境中运行,并且能够与监视程序合作。这种方法被称为准虚拟化。
Xen是开源准虚拟化技术的典型例子。由于操作系统在Xen监视程序上作为虚拟服务器运行,它必须在内核一级经过特定的修改。因此,Xen非常适合用于BSD、Linux、Solaris和其它开源操作系统,但它不适合虚拟化Windows等无法修改的专有系统。
准虚拟化的优势在于性能。准虚拟化的服务器在与监视程序协调工作时,其响应能力几乎与未虚拟化的服务器一样。与完全虚拟化相比,准虚拟化的好处非常诱人,因此微软和VMware都开始研究准虚拟化技术,为各自的产品提供补充。
服务器虚拟化的面目
在服务器虚拟化中,监视程序充当主机操作系统,而来宾操作系统的实例及其应用会运行在自己的虚拟机上。因此,一台服务器能够完成更多的工作,而且能够针对不断变化的负载及时做出响应。
完全虚拟化 准虚拟化 操作系统级虚拟化
监视程序可以同时运行多个不同操作系统的虚拟实例,而且虚拟服务器不需要知道自己是运行在一个虚拟环境中。 在这里,操作系统的版本经过了特别的修改,使之能够与监视程序合作,因此可提供更高的性能。 在这种情况下,虚拟服务器仍然是彼此隔离开的,但它们都运行在同一个操作系统上,而操作系统则内建有监视程序。
操作系统级虚拟化
还有一种实现虚拟化的方法就是将虚拟服务器的能力内建在操作系统一级上。Solaris Containers就是一个典型的例子,还有Virtuozzo/OpenVZ也可以在Linux上实现类似的功能。
有了操作系统级的虚拟化,就不再需要独立的监视程序层。相反,主机操作系统本身会负责硬件资源在多个虚拟服务器间的分配,并且保护服务器之间彼此独立。操作系统级虚拟化最明显的特点是,所有的虚拟服务器都必须运行在同一个操作系统中(不过每个实例都有其自己的应用和用户账户)。
操作系统级虚拟化会丧失一些灵活性,但从根本上取得了更高的速度性能。此外,在所有虚拟服务器上使用单一标准操作系统的架构也要比异型环境更容易管理。
更简单,但更强大
与大型机不同,PC硬件在设计时并没有考虑到虚拟化,因此直到最近只能由软件来承担这一负担。但在最新一代的x86处理器上,AMD和Intel都首次在CPU层添加了虚拟化支持。
不幸的是,两家公司的技术都是独立开发的,这意味着它们在代码上互不兼容,不过它们都可以提供类似的好处。通过承担虚拟服务器对I/O通道和硬件资源的管理职责,硬件虚拟化支持解除了监视程序所承担的照看职责。除改善性能外,包括Windows在内的操作系统未经修改即可在准虚拟环境中运行。
CPU级的虚拟化并不会自动启用。必须编写出虚拟化软件才能对其提供特定的支持。然而,由于这些技术的优势非常诱人,所有类型的虚拟化软件都将会在不久的将来支持这些技术。
虚拟工具箱
根据所处情况的不同,每一种虚拟化方法都有自己的优势。如果有一组服务器都基于相同的操作,则比较适合使用操作系统级的虚拟化,但其它的技术也有自己的优点。
准虚拟化在两个世界中都能够很好地发挥作用,尤其是部署在虚拟化感知处理器的环境中。它可以提供良好的性能,以及在异型来宾操作系统构成的混合环境中运行的能力。
在这三种方法中,完全虚拟化对性能造成的影响是最大的,但它的优势在于,来宾操作系统之间是完全隔离的,而且与主机操作系统也是隔离的。这种方法非常适合用于软件质量保障及测试,同时它还可以支持范围最广泛的来宾操作系统。
完全虚拟化解决方案还可以提供其它一些特有的能力。例如,它们可以拍摄虚拟服务器的"快照",保存其状态并有助于实现灾难恢复。这些虚拟服务器镜像可用于更快供应新的服务器实例,而且有越来越多的软件公司甚至开始提供评估版的预先打包虚拟服务器镜像供用户下载。
需要记住的是,虚拟服务器需要不断的后续支持和维护,就像物理服务器一样。这一点非常重要。服务器虚拟化的日益普及已经催生出一个非常繁荣的第三方工具市场,其内容从物理至虚拟迁移实用程序,到主要系统管理控制台的面向虚拟化版本,所有这些工具的目的都是简化从传统IT环境到高效、高成本效益虚拟环境的过渡进程。