虚拟技术最近造成一股潮流,然而它并不是一个多新的观念,也不是一些厂商所宣称的万灵丹。
在过去的一年半,虚拟服务器造成一股流行,顾客往往要求产品具备厂商所吹嘘的那些功能。然而这个技术并不是什么新东西,任何了解Unix跟大型服务器的人都知道–大型服务器在1970年代时就可以使用虚拟扇区。那么,到底这股流行是怎么出现的?
虚拟程序的含义十分广泛,包含输出/输出(I/O)、存储装置已经其它部分的虚拟化技术,然而最近大家的焦点都放在服务器的虚拟化–即可以在一台硬件上执行多套操作系统的能力。虽然这样的技术老实说也是十分有历史,但在x86平台上使用1998年出现的VMware软件来进行服务器虚拟—这个软件目前主宰了x86平台的虚拟市场—却是相对来说较新的。
在过去的几个月,虚拟化在x86的世界里便蔚为一股风潮。这是因为几个不同的因素–服务器汰换的周期快要来临、市面上出现更多更成熟的虚拟服务器管理工具、计算机服务器多了一些新功能的支持,如同步多绪(SMP)功能可以让两个以外的处理器连到一个内存,以及市场逐渐认识到目前虚拟技术的良好运作。
也因此,VMware公司(在2003年底被EMC收购)最近突破了每季1亿美元营收的重要关卡,同时营收也逐年成倍数成长。在二月,根据Forrester对1221家千名员工以上的北美公司所做的调查,发现其中有41%的公司已经在使用虚拟技术或已经在进行先期测试;同时有60%的公司表示在接下来的12个月中会对虚拟技术进行投资。43%的公司表示在使用x86平台的虚拟技术时最常考虑VMware,而其竞争对手Windows Virtual Server只有24% 。
然而VMware似乎无法独占这个金鸡母太久,因为微软跟其它公司都十分积极地推出其它产品。微软的Virtual Server可能是其中最不成熟的软件,但它进步速度非常快速,该公司也总是会四处分送他们的软件。同时在数月后推出Longhorn Server时,虚拟化技术也会被内建到该操作系统中。
在另一方面,开放原始码的虚拟化技术也在慢慢进行,也有不少厂商在暗中角力。Xen这个软件使用跟微软以及VMware不同的技术,同时已经被内建到Red Hat、Novell跟其它公司最新的Linux版本中,在几个月之内也会得到Solaris平台的支持。
更弹性的方法
所谓的虚拟化,其实就是把计算机的资源,如运算能力、存储空间以及应用程序抽离出来,让资源的使用方式更具效率。VMware是x86平台虚拟化技术的先驱,甚至连其竞争对手都会同意,VMware是目前x86虚拟器市场的带动者。“VMware发掘了服务器虚拟这个市场。他们为大家介绍了这个市场的存在,”XenSource的技术长Simon Crosby这样表示。Crosby创造了Xen技术,同时也成立了XenSource这家公司。
在操作系统的虚拟化这个领域,也有数种不同的方法,可以依他们虚拟的层级来分类。以PowerPC版的软件Virtual PC为例,是将硬件平台完整地用软件来仿真,可以让你执行给别的硬件来使用的操作系统。但这样会对效能造成相当大的影响。相反地,VMware跟微软的Virtual Server只虚拟必要的硬件,以让多个操作系统可以分别执行,但只有为这个硬件设计的操作系统才能顺利执行。然而这样依旧会造成相当的处理负荷。
而其它像Solaris Containers、BSD jail以及SWsoft的Virtuozzo,都只对操作系统层级来进行仿真,可以让处理的负荷大幅降低。在一台实体的计算机上,只执行一个操作系统,而所有的程序都使用同样的操作系统核心来运算。只要能合于这个限制,就可以得到低负荷、高效能以及高延展性(潜在来说一台机器上可以执行上百个不同的程序)等等优点。
Xen也是使用称之为“平行虚拟”的类似方法,提供硬件直接存取的API给各不同的操作系统,而不是完整地仿真硬件。这代表所造成的负荷十分小,效能也会突飞猛进。但这样的技术牵涉到操作系统的修改。对开放原始码的操作系统来说不是问题,但在像Windows之类的平台上,就造成问题了。
最近推出的支持虚拟技术的硬件–如Intel的Virtualization Technology (VT)以及AMD的Secure Virtual Machine (SVM)–都可以让Windows系统在不经修改下,直接在平行虚拟的管理程序,比方Xen上面执行。
吸引力何在?
所以到底虚拟技术的吸引力在哪里?我们先回到过去的1990年代,VMware的顾客开始发现虚拟技术十分好用,可以在实际部署到产品之前,建立的一个特定的虚拟环境,测试一些应用程序或软件更新。
在2001年前后–因为预算削减,以及过去1990网络泡沫年代充斥过多的服务器–使用者开始认真考虑公司服务器的合并动作(Sun估计,大多数公司的服务器只使用了15%的效能)。主要的想法就是让乱七八糟的服务器配置变得精简,同时藉由将数个独立的服务器放到同个服务器,更有效地使用计算机的运算效能。这也是所谓“公用运算”这个大趋势里的一部分。所谓“公用运算”是指将大量不同的服务器串联起来,变成一个单一的资源库,然后使用虚拟技术来依照需求分割。
“基本上,随着主从架构的诞生,我们已经渐渐接近复杂度的临界点,”Ovum的分析师Gary Barnett表示,“因为技术的过度演进,自从过了千禧年后,为不同的技术平台购买各种小容量的存储空间便快把人们累个半死。大家总是希望这件事可以快点被控制下来,而虚拟技术可以不用去管分割硬盘的事,可以说是解决这个问题的关键之一。”
先进的技术
根据VMware的说法,他们的产品已经从简单的硬盘集合演进到所谓的硬件虚拟化。这包含了各种不同的进阶功能,VMware也表示各种功能都吸引了可观的顾客。
其中一个功能是灾难复原,其精髓就是当硬件故障时,可以在几乎没有中断的情况下,自动把执行的服务器从一台转到另一台上。而现今大部分的虚拟技术都提供可以在不中断服务的情况下,自动执行此功能的软件。虚拟化同时也让备份资料变得容易许多;VMware表示他们的某个客户,可以在二十分钟之内为两百台虚拟服务器提供备份。该公司同时表示,有三分之二的顾客都是因为灾难复原这个功能使用虚拟技术。
“在过去,因为硬件、作业系跟应用程序紧密结合,所以当你要做灾难复原时,备援系统必须要有完全一样的硬件、应用程序跟其它部分,还要让上面的数据完全同步,”VMware的数据管理与个人平台产品副总裁Raghu Raghuram表示:“若使用虚拟系统,你便可以带着那个虚拟档案,利用存取网络、磁带,或其它的存储装置,把它传到另个硬件上,然后立即开机执行。”
能够按照意愿把虚拟服务器从一台计算机转换到另一台这个功能,让硬件维护跟平衡负载可以更容易进行。VMware表示有超过一半的客户都使用一个提供该功能,名叫VMotion的工具。其它的进阶应用,像是应用程序的快速配置、操作系统仿真也吸引了许多VMware的使用者。许多公司喜欢操作系统仿真功能所提供的安全性。