虚拟化技术专题

征战虚拟化--虚拟化原理及各大产品解析

上一篇 / 下一篇  2008-02-01 10:48:15 / 个人分类:技术解析

各个虚拟化厂商的竞争越来越激烈,毕竟x86虚拟化市场正在以十倍速的速度增长,越来越多的厂商都踏入了虚拟化领域。相信很多CIO、CTO都已经有部署虚拟化的构想。但是虚拟化的部署并不像安装一个应用那么容易。

(一)虚拟化——10倍速的变化
  “当一种因素的重要性猛升到我们能力所不及的10倍时,我感到渺小、无助。在企业发生根本性变化时,我被重重的迷惑所吞并。每当,就连在亲密无间的同事面前都无法开口陈述实情时,我心灰意冷。而在打破常规,转入一个新方向时,我欣喜若狂。虽然这是一种惨痛的经验,它却使我成长为一名更好的总裁。”
——《只有偏执狂才能生存》

   英特尔前总裁兼创始人,安迪.格鲁夫


 格鲁夫写出这段文字的背景是这样的,30年前,INTEL并非CPU生产商,而是一家领先的存储器生产商。然而从1982年开始,几乎就在3年间,来自日本的存储器厂商超乎想象的迅速发展。日本厂商3年间大幅提升了产量、也拥有了更好的良频率和更低廉的价格。日本厂商几乎一夜之间超过了几家美国存储器厂商——Intel、Mostek、Unisem。包括Intel在内的厂商一时间都不知所措。当然,不久Intel在格鲁夫的领导下转型,进入了当时还未知前景的CPU领域。而Mostek和Unisem则展开了红海战略,在价格和良频率方面与日本厂商展开正面冲突。结果,Intel今天仍然是家伟大的企业。而Mostek和Unisem,10年前已经不复存在。日本存储厂商的突然崛起,正是格鲁夫所说的10倍速的变化——事态发展得太快,没有时间犹豫,必须作出迅速的动作才能生存。而这种外部因素10倍速的变化也恰好仿佛今天的虚拟化。

  6年前,除了大型机Unix配套的虚拟化工具之外,虚拟化程序还只是少数计算机发烧友在开源社区的业余爱好。然而,自从2000年互联网泡沫破灭,Unix用户大量迁移到x-86和安腾的Windows和Linux平台,而Windows和Linux并不像Unix那样有比较完善的虚拟化解决方案,所以Windows和Linux平台的虚拟化的需求连年成倍增长。另外,根据Intel虚拟化白皮书统计,全球服务器数量在过去10年增长了150倍,空前复杂的网络环境给企业的IT部署,带来了巨大的管理难题。这也使得能够大量精简服务器的虚拟化技术需求迅猛增长。

  以VMware为例,在2003年前还只是一个虚拟化领域的小型科技软件公司。年收入也仅仅为数千万美元。而且在2003年末,EMC以6亿美金收购VMware时,华尔街的分析师还对EMC的报价偏高而责备EMC。然而04年1月并购案尘埃落定后,VMware开始了飞速成长,每年的收入增长都高于100%。今天的统计,VMware07年的销售收入已经超过10亿美金。高速增长也给VMware股票市场以神奇的表现。在2007年8月上市价格为29美金,上市首日便暴涨了76%达到了51美金,而后的三个月里,VMware股票价格随着其销售收入的增长也一路飙升。目前已经达到了120美金。股票市值超过400亿美元。

  我们可以做一个对比,上个世纪末辉煌的SUN公司,目前市值仅为200亿美元左右,而驰骋电器领域半个世纪之久的索尼公司,目前市值也不过540亿美元。而这家新兴的虚拟化公司,如此短的时间之内就达到了这样的高度,不得不另业界刮目相看。事实上,早在2003年,虚拟化浪潮已经初露端倪。2003年微软悄然并购了虚拟化厂商Connectix。其后几年,利用Connectix技术平台,陆续推出了整合后的虚拟化技术。其后Desktone也获得风险投资推出了vDesktop。与此同时,一批厂商Virtual Iron、Kidaro、Dunes、SWsoft、Citrix等等也都进入了虚拟化的竞争,并且推出了自己的产品。截止到目前为止,和龙头老大VMware一样,每个虚拟化厂商的增长都是极为惊人的。

  虚拟化浪潮——10倍速的变化已经来临。

  (二)逻辑虚拟和物理级虚拟浅析

  尽管虚拟化技术只是近年才变得火爆,但是虚拟化却有着悠久的历史。早在1965年,IBM就已经在其IBM7044计算机上面建立了镜像。这个镜像就是虚拟化的开端。时至今日,虚拟技术经过40余年的发展,已经日臻完善。虚拟化技术的分类有很多标准,本文里,将虚拟划分的标准为,物理电器层虚拟(特点是不占用任何资源,Physical Par)和逻辑虚拟(特点是占用系统资源的软件式Logical Par)两种,进行分析。

  物理级虚拟的技术,是将服务器的硬件资源,主要包括CPU、内存和I/O资源划分成一个一个区块。也就是技术上称之为的MBB (Modular Building Block)架构。每个服务器都变成一个MBB集合,其中的每一个划分好的区块资源,称之为BB(Building Block)。每个BB通过Crossbar Switch互连机制互相连接。每个BB 包含的cpu的频率可以不同,不同的频率由Crossbar Switch转换解决,因为Crossbar Switch的频率是固定的。这样,服务器就可以在一个BB 上运行一个操作系统,或者也可以在多个BB 上运行一个系统。每个BB都是热插拔的,只需要调整BB设置,就可以改变一台服务器上的操作系统数量。早期的服务器不少采用这种MBB技术,例如SUN的E10000,和HP的Superdome。MBB架构的服务器有着明显的优点,第一是虚拟化部署过程不占用任何的系统资源,第二是应用的隔离程度也是100%。这两点都是其逻辑虚拟化所不能及的。但是,这种传统的MBB仍旧有着不少弊端。 首先,MBB的最小粒度理论最小是1颗cpu,而通常是4颗cpu。但如今的CPU 能力今非昔比,单一CPU完全有能力运行多个操作系统。其次,MBB架构本身容易造成访问延迟。当一个BB (BB1)通过Crossbar Switch访问某一个BB2时,一旦连接不成功,就在Crossbar Swtich 形成优先级,反复尝试连接,而此时若BB3并发访问BB1,则必须等待BB2的访问成功之后。显然,多路服务器所包含的cpu数量越多,这个延迟现象越严重。所以,MBB架构的用户在实际操作时,通常是建立物理分区,每个分区内只放入相对少量的BB来实现减少延迟。但是这样拆分服务器,虽然在服务器下的每个操作系统的运算能力得到了保障,但是无法发挥32路或64路服务器作为一个整体的潜在强大功能。 最后,MBB的部署相对缓慢。虽然后来部分厂商也支持热插拔的零宕机更改虚拟分区,但是厂商的工程师还是建议改变虚拟分区时最好重启操作系统。


再看看逻辑虚拟分区,这个层次的虚拟化起源非常早。几十年前IBM最早的虚拟化大型机就使用的是逻辑分区技术。当然,逻辑虚拟虽然由IBM首创,但是后来的HP、SUN 在自己的平台中也广泛使用。逻辑分区(LPAR),顾名思义是逻辑层面的虚拟分区,所以不能通过热插拔和总线连接来实现。逻辑分区的建立,通常依赖相应的软件、硬件、和固件(固化在硬件中的软件)共同完成。我们可以在此先简单分析一下逻辑虚拟。

一台多路服务中,拥有若干个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,一些产品的特性也有所提升,但是价格依旧昂贵。只有充分评估考量,部署最合适的虚拟化软件,才能真正提升数据中心效率,节省成本。


TAG: 服务器 解析 虚拟化 原理

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-25  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 42130
  • 日志数: 1735
  • 影音数: 1
  • 建立时间: 2008-01-06
  • 更新时间: 2008-05-26

RSS订阅

Open Toolbar