我们到底需要什么样的虚拟化?

日期: 2008-04-02 作者:张自力 来源:TechTarget中国

  我们到底需要什么样的虚拟化?要回答这个问题,似乎首先要先回答第一个问题: 我们需要虚拟化吗?如果虚拟化无用,只是玩具而已,那什么样的虚拟化都无所谓的。且慢,什么样的虚拟化,其实很有所谓,否则,如果虚拟化的概念被误导,对此的一切回答就自然是无根的:需要吗?不需要吗?陷入无厘头的质问与反问之中。


    资源困境


    虚拟化,其实并不像我们想象的那么复杂。通俗地讲,虚拟化就是把原来分散在两台甚至更多计算机上的应用和用户,放到一台物理计算机上的不同的虚拟环境中去运行。应用还是那些应用,用户还是那些用户,只不过运行环境从物理到虚拟,从分散到集中。虚拟化并不能给你带来新的应用,它是,或将是你的IT基础设施的一部分。


    虚拟化带来的好处是显而易见的:节省硬件资源,降低成本。在绝大多数的数据中心里,有90%的服务器在90%的时间,其CPU占用率都低于10%,991的数字背后,是IT资源和投资的巨大浪费。是我们的资源已经多到可以挥霍的程度了吗?还是我们的IT资源规划设计出了问题?在你需要更多磁盘空间,更多内存的时候,又往往面临无资源可用的窘境,当系统负载突然冲到100%的时候,采购、部署、升级都已鞭长莫及。资源的困境,实际上是因为我们缺少一种手段,既能够让不同的用户和应用能够安全地在一台计算机上和谐共存,又能在资源需求动态发生变化的时候,调动闲置的资源为饥渴的程序所用。这就是所有的虚拟化技术试图去解决的问题。


    工具vs平台


    当我们深入地思考什么是虚拟化,我们会发现基本上只有两类虚拟化:作为工具的虚拟化,和作为平台的虚拟化。许多人都用过VMware或类似的软件,当做演示的时候,当需要将一个程序迁移到另一种平台的时候,临时启动一个虚拟机,用完了要忙不迭地将它shutdown。在Windows系统上跑一个Linux,酷 — 不过,这是我们需要的虚拟化么?当我们谈论的是服务器级的应用,对资源和效率如饥似渴的关键应用,需要7*24小时不间断运转的时候,工具级的虚拟化就完全不适用了。平台,意味着高效,实用,可靠。同样的配置下,能够跑更多的应用,有更高的密度。平台应该是无私的、透明的,把绝大多数的资源都给应用。


    演化中


    虚拟化技术的发展经历了一个缓慢的进化过程。最早的虚拟化,不过是能够将CPU分配到某个用户使用,所谓的硬件分配虚拟化。然后发展出纯软件模拟硬件的虚拟化,也就是虚拟机技术。在软件模拟的裸机上,安装完整操作系统,在这个操作系统上再跑应用。自然而然地,这种技术所带来的额外损耗常常是无法忍受的,尤其是涉及到I/O性能的时候。Boost your server utilization to 80%(提高你的服务器利用率到80%),为什么是80%?那20%到哪里去了?被虚拟机本身和额外的那个操作系统吃光了。实际情况可能更糟,当同台服务器上的虚拟机数量增多的时候,这种额外损耗会抛物线式地上涨,导致一台高配置的服务器上只能运行极少量的虚拟机。最近,几家虚拟机技术厂商都将其产品免费,舆论称这是一种试图加速抢占市场分额的举动,我却认为免费的根本原因是这种技术带来的TCO的降低实在太有限,原本就不值得为之付费。


    最近,开始越来越多吸引眼球的是一种叫做“操作系统虚拟化”,或称“虚拟环境”,或称“容器”的技术,其代表是SWsoft公司的Virtuozzo Linux及其孪生兄弟开源OpenVZ项目、和Virtuozzo Windows,Sun公司的Solaris Container,FreeBSD的Jail,以及HP的vPar。这种技术是通过修改操作系统,为用户和应用提供一个貌似独立,其实共享的操作环境,从而达到了虚拟机技术无法比拟的高效率和高密度。(Virtuozzo的最高记录是在一台16路服务器上同时运行5000个虚拟环境。)每个虚拟环境同样拥有独立的进程、操作系统用户、文件系统、路由表和系统库版本,可以像物理服务器或虚拟机一样安装应用程序或系统软件。在做备份容灾和迁移的时候,每个虚拟环境的大小仅仅是用户数据和更动的系统配置,更容易做到快速的恢复和零宕机迁移。如果借用最近盛行的Web 2.0概念,把硬件分配虚拟化称为虚拟化1.0,虚拟机称为虚拟化2.0,那么虚拟环境技术就是虚拟化3.0。


    我来自互联网


    从1.0到3.0,抛开技术细节,是什么造成了不同虚拟化技术方案的本质区别,是什么隐藏在技术演化的路线背后?其实,虚拟化是在不断地上行,更接近应用。从硬件到虚拟硬件到操作系统。技术专家常说2006年是虚拟化技术面临大规模应用的临界点,这个临界点同时也是虚拟化从工具向平台拓展的过程。但专家们往往忽略了一个事实,那就是在互联网基础设施服务市场上,以VPS服务为代表的虚拟化应用已经发展茁壮了N年了。全球范围内Virtuozzo所支撑的有超过40万个虚拟环境在7*24运行,如果加上其他厂商的VPS服务,数量可能还要再多一倍。虚拟环境技术已经证明了它在公网,常常是敌意的苛严的环境下运行的可靠性,证明了它可以容纳各种客户化的应用大规模部署、升级和支撑的能力。正如Web应用首先始端于互联网,然后才进入企业网络一样。作为平台的虚拟化也会经历一个类似的过程。


    面向应用 面向资源


    让我们回到到底需要什么样的虚拟化的问题上来。记住,虚拟化不是应用,而是应用所运行的环境。如果我们真的需要虚拟化,那么就要从应用角度出发来看,到底虚拟化到哪个层次才是正确的。应用所需的,就是一个操作环境和相应的资源,应用和资源的直接接触面就是操作系统,因此,虚拟化在操作系统层次上自然是最有效,最简单的虚拟化。当我们翻开电脑游戏的说明书,你看到的是需要多少内存,空间,虽然也会标注最低PIII 1G等硬件需求,但它真正关心的是CPU提供的计算能力,而不是CPU的型号和主频。我们真的需要一个世界,简单的世界,丢掉那些硬件、芯片、板卡的烦恼。如果有一个界面,真正能把应用和硬件截断,让一切都各归其位。硬件的所有作用,就是向应用提供它所需的计算资源,而应用,本就不该关心硬件的实现。操作系统本来应该扮演好这个桥梁的作用,由于种种原因,只在晚近才被重新发现和重视。从这种意义上说,未来一切的虚拟化软件都会消失,而融化在操作系统之中;换言之,操作系统被虚拟化渗透、转化,进化为新的形态。在这个层次上,我们真的不需要另一个硬件层,无论是物理的,还是虚拟的。


    虚拟化3.0,是面向应用的虚拟化,是面向资源的虚拟化。让应用能够和谐地共存一台、两台或无穷多的计算机上,在需要的时候,它要的资源可以从本机、从网络、从世界的另一端获取。应用无限,资源也无界。但愿,这一切不是虚拟。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐