征战虚拟化--虚拟化原理及各大产品解析
http://www.enet.com.cn 2008年01月11日09:00
一台多路服务中,拥有若干个CPU,所有CPU和固件都支持Hypervisor。(IBM称虚拟机监视器为Hypervisor,VMware称作Virtual Machine Monitor VMM,其实功能基本是一样的)说到VMM,相信读者并不陌生,媒体上到处都能见到,就是VMware的产品的核心部件。SWsoft的Virtuozzo、SUN的Container,还有Xen实现虚拟化分区的细节不同,但他们的基本原理都一样。那么这个Hypervisor/VMM是怎么工作的呢?我们看下图:

这个服务器被划分成了两个逻辑区域,红色区域Partition1 和 蓝色区域Partition2,每个区域同时分配了一些资源,CPU、内存、和I/O。当逻辑虚拟化部署之后,内存读址时,就会发生偏移,使得输入输出和cpu都满足逻辑虚拟化所分配的资源额度。而且,逻辑虚拟化使得所有资源的分配颗粒度都变得更小。例如早先的虚拟化中,百分之一的cpu颗粒度就变成了现实。而目前,随着多核cpu的普及(除了4核的AMD和Intel,SUN UltraSparc T2已经达到了8核,16核也将于明年推出),cpu的功能已经越来越强大,能够实现更小的颗粒度就变得更加有意义。
总的来说,逻辑虚拟部署简单,技术成熟,因此通常在一般的IT环境之中,逻辑虚拟更加适应实际工作要求。逻辑虚拟简单的说,就是基于软件的虚拟。诚如文章开头所述,基于软件的虚拟化厂商的竞争近年日趋激烈,各种各样的软件技术——包括OS集成、或者是ISV都有自己的产品推出。我们下面就详细分析一下虚拟化软件的现状。
(三)虚拟化软件详细剖析
其实,在Unix领域,虚拟化并非新鲜事物。多数Unix都不同程度的支持虚拟化。但是随着廉价x86服务器市场份额的日益扩大,虚拟化也已经从Unix走下神坛,而进入到Linux和Windows的大众视线。
一般而言,中国的IT技术进程总要比国外稍慢一拍。但是不管怎么慢,所有的CIO都已经或多或少的听说了虚拟化能够带来的各种好处。不过具体而言,你可以选择各种形式的虚拟化:独立软件商的,开源免费的,或者是操作系统集成的。首先,我们看一下风头最盛的独立软件商,VMware。
VMware
VMware,相信所有CIO都有所耳闻,主打产品是VI3软件套装。VI3以其杰出的管理能力,受到了广大数据中心的青睐。VI3全称为VMware Infrastructure 3,这是一个软件套装,其中软件包括了ESX Server、VMFS(Virtual Machine File System)、DRS(Distributed Resourced Scheduler) 、Virtual SMP、 VMware Vmotion、VMware HA(High Availibility)、 Consolidated Backup和Virtual Center。
在VMware中,最核心的软件是 ESX Server,ESX Server直接安装在裸机上,在硬件和操作系统之间形成一个虚拟化层。ESX Server将一台物理服务器划分为多个可移植的虚拟机环境。VMFS(Virtual Machine File System)则是封装的ESX Server的存储载体。如下图所示,ESX的虚拟层级实际上是包裹了硬件,ESX创建了一个硬件接口层Hardware Interface Layer,所有的虚拟机如果想跟硬件通信,必须经过这个硬件接口层,在这个层级之中,诸如内存偏移转换的工作将被完成。这里需要强调的是,ESX的特点是完全包裹硬件,不允许程序直接访问硬件。

当然,ESX只是VMware的最基础的技术,VI3中剩余的工具,则被用于完善虚拟化和可视化管理。其中,DRS可以将多个ESX Server资源合并为群集,同时按照假定所有资源都在一台主机上的方法,简单的管理群集。Virtual SMP可以让单个虚拟机,同时使用多个处理器。VMware Vmotion可以使虚拟机从一台物理服务器迁移到另一台物理服务器,过程中不用宕机。此外,也提供虚拟的双机热备和集成备份等功能。最后,所有虚拟化复杂的管理,都可以由Virtual Center虚拟中心控制台轻松完成。

Xen
XenSource,07年被Citrix收购之后,发展势头咄咄逼人。其核心技术是开源技术Xen,也即半虚拟 paravirtualization。如上图所示,Xen与VMware ESX非常相似,一样也是包裹硬件。但实际上,Xen的包裹并不严实,Xen允许一定情况之下的程序直接访问硬件,从而节省一些转换资源。除此之外,XenSource的功能与VI3极其相似,但是总体性能略逊一筹。比如VMware的Vmotion,相应的功能在CitrixXenServerv4中称为Xenmotion,Vmotion能够零宕机迁移,但是Xenmotion还做不到这一点。虽然略逊一筹,但是XenSource的价格也只有VMware的一半,所以也是很好的选择。除了XenSource之外,利用开源Xen作为软件核心的厂商还有Virtual Iron。但是Virtual Iron起步较晚,其实Virtual Iron一开始并非专注于Xen,早期产品是一些基于InfiniBand交换的硬件虚拟技术,但是之后转向Xen。
Microsoft & Linux
说道微软,每个独立软件厂商ISV、甚至所有IT厂商都对其有三分畏惧。从操作系统Windows、办公软件Office、数据库软件、娱乐播放Zune、游戏xbox、到互联网MSN,只要是微软踏入的领域,必将引发该领域的震荡洗牌。近年,微软也已经将触手伸向虚拟化软件。早在2003年,微软悄然并购了虚拟化小厂connectix,当时并没有引起更多的注意。随后陆续推出了Virtual PC 2004、Virtual PC2007、Virtual Server 2005、Virtual Server 2005 R2。不过这些产品的影响都比较有限,在市场上并没有轰动效应。比起虚拟化领域的老大VMware,微软市场份额也是相当的可怜。不过,微软已经做好了迎战VMware的充分准备,微软即将在2008年的Windows Server 2008中,全面加入功能完善的虚拟化(代号viridian)。就像以往的Unix一样,微软将虚拟化软件和操作系统结合到了一起。这一点令VMware十分紧张。如果回顾微软竞争的历史,我们会发现,辉煌一时的网景浏览器在与微软IE的竞争中败下阵来,而随着微软办公软件的壮大,许多办公软件企业也都不复存在。这次,微软又一次将捆绑策略带到了虚拟化领域。不过公平的说,微软的虚拟化在技术上,还是无法匹敌VMware,比如在即将到来的WS2008中,还是没有热迁移等功能。
至于Linux。近年Linux的发展可谓相当平淡,随着虚拟化的不断升温,Linux也逐渐在系统中集成了虚拟化功能。但是与微软一样,虚拟化都不够强大,欠缺管理工具和更强大的Virtual SMP等功能。当然,开源社区有很多虚拟化项目,不过目前来看,集成最多的,还是完善的Xen。
Unix
至于Unix,其实近年的市场份额可谓江河日下。因为Unix+RISC的策略已经越来越不适应今天的IT环境了。用户普遍需要更加灵活、扩展性更强的IT环境。不过AIX、HP-UX、和Solaris也都提供了虚拟化分区策略。这些UNIX虚拟化技术的时间都非常久远和成熟。值得一提的是,Solaris的独特技术Container。Container是虚拟化软件中的一种新思想,其虚拟的对象不是硬件,而是操作系统本身。更简单的说,就是将操作系统和一些应用作为虚拟化的模版。当然,SUN Solaris的Container技术本身的确非常有新意,而且也非常稳定,但是却不见得适应所有的IT环境,毕竟Solaris的身份还是Unix,与许多应用都不兼容。其实,与之类似的技术在开源社区中也有,叫做OpenVZ。利用OpenVZ技术的厂商也有不少,其中最著名的就是SWsoft的Virtuozzo。SWsoft将类似于SUN Container的技术全面带入了x86领域。OpenVZ/Container原理见上图,在操作系统上有很多轻质化的VE/VPS。而且现在管理工具也允许VE/VPS零宕机的迁移。假设有一台服务器,物理能力如果允许上面同时安装3个虚拟化的操作系统,那么这台服务器的物理能力就可以创造数百个VE/VPS操作系统环境,因为每个虚拟化的VE/VPS只是是轻质化的空间模版,不用重新安装系统。总的来说,VE/VPS非常适用于某些特定的行业,比如主机托管这种对于轻质化空间有大量需求的行业。
总结:各个虚拟化厂商的竞争越来越激烈,毕竟x86虚拟化市场正在以十倍速的速度增长,越来越多的厂商都踏入了虚拟化领域。相信很多CIO、CTO都已经有部署虚拟化的构想。但是虚拟化的部署并不像安装一个应用那么容易。首先,功能全面的虚拟化软件非常昂贵,CIO、CTO应该详细评估到底是增添硬件资源合适,还是增添虚拟化软件资源合适。其次,虚拟化其实是一种提升资源利用率的方法,而并非万灵药。如果你的IT环境已经充分折旧,那么还是考虑优先购置硬件设备为佳。另外,某些行业可能并不适于部署虚拟化——比如气象部门各个数据中心就很少全面采用虚拟化——气象预测需要大量的计算,整个群集的资源利用率始终保持在高位(50%以上),这样虚拟化提升的空间就非常有限,况且虚拟化本身需要占用很多资源。这样计算下来,虚拟化部署就未必合适了。
新技术不见得是最好的,目前VMware的版本刚刚升到了VI3.5,一些产品的特性也有所提升,但是价格依旧昂贵。只有充分评估考量,部署最合适的虚拟化软件,才能真正提升数据中心效率,节省成本。
相关文章- 文章排行
- 周排行
- 月排行
- 年排行
全站热点


我要评论




