2008年9月,红帽收购了一家名叫Qumranet的以色列小公司,由此入手了一个叫做KVM的虚拟化技术(KVM,全称Kernel-based Virtual Machine,意为基于内核的虚拟机)。当时的虚拟化市场上主要以VMware为主,而KVM只是在Ubuntu等非商用发行版上获得了一些关注。 2009年9月,红帽发布其企业级Linux的5.4版本(RHEL 5.4),在原先的Xen虚拟化机制之上,将KVM添加了进来。 2010年11月,红帽发布其企业级Linux的6.0版本(RHEL 6.0),这个版本将默认安装的Xen虚拟化机制彻底去除,仅提供KVM虚拟化机制。 2011年初,红帽的老搭档IBM找上红帽,表示KVM这个东西值得加大力度去做。于是到了5月,IBM和红帽,联合惠普和英特尔一起,成立了开放虚拟化联盟(Open Virtualization Alliance),一起声明要提升KVM的形象,加速KVM投入市场的速度,由此避免VMware一家独大的情况出现。联盟成立之时,红帽的发言人表示,“大家都希望除VMware之外还有一种开源选择。未来的云基础设施一定会基于开源。……我们想要营造一个小厂商们可以轻松加入的生态环境。” 于是,开放虚拟化联盟红红火火的成立了。从5月到8月这短短3个月间,开放虚拟化联盟的成员已经增加到将近300个,联盟发展的速度十分可观。IBM现在全线硬件都对红帽Linux和KVM进行了大量的优化,有60多名开发者专门开发KVM相关的代码。 原本采用Xen技术的红帽,为什么会想要再去搞一个KVM?而在虚拟化方面一直以来和Vmware、思杰、微软都有着紧密合作的IBM,为什么会对红帽的KVM展现出这样大的兴趣?这一切,还需要从整个虚拟化,乃至云计算市场的发展说起…… 虚拟化发展简史 虚拟化技术最早出现在大型机时代。上世纪60年代,IBM开始在其CP-40大型机系统中尝试虚拟化的实现,后来在System/360-67中采用,并衍生出VM/CMS到后来的z/VM等产品线。大型机上的虚拟化技术在之后20多年的发展中愈发成熟,但随着小型机以及x86的流行,大型机在新兴的服务器市场中已经失去了影响力。 由于处理器架构的不同,在大型机上已经成熟的虚拟化技术却并不能为小型机及x86所用。直到2001年,VMware发布了第一个针对x86服务器的虚拟化产品。之后的几年间,英国剑桥大学的一位讲师发布了同样针对x86虚拟化的开源虚拟化项目Xen,并成立XenSource公司;惠普发布了针对HP-UX的Integrity虚拟机;Sun跟Solaris 10一同发布了同时支持x86/x64和SPARC架构的Solaris Zone;而微软也终于在2008年发布的Windows Server 2008 R2中加入了Hyper-V。期间,VMware被EMC收购,XenSource则被思杰收购。 之后的几年间,VMware逐渐在企业级市场中被广泛的接受,Xen也逐渐在互联网领域展露头角。在成熟的服务器操作系统当中,Novell SUSE Linux Enterprise 10是第一个采用Xen技术的。当时的Xen还很不成熟,乃至于红帽还为此取笑了Novell一番;不过几个月后,到了RHEL 5.0发布的时候,红帽决定也将Xen加入到自己的默认特性当中——那是2006年,也就是5年之前。一时之间,在Linux服务器领域,Xen似乎成为了VMware之外的最佳虚拟化选择(事实上也没多少其他可选的)。 但是,作为一项Linux平台上的虚拟化技术,Xen在很长一段时间内一直没有被接受到Linux内核的代码当中,这对于Xen的维护者而言,不仅意味着要多做很多工作,还意味着用户在废了半天劲装好Xen之后可能遇到意想不到的问题(注:2011年6月发布的Linux内核3.0中已经加入了对Xen的支持——Xen的工程师们表示这是清理了7年遗留代码、提交了600多个补丁的成果)。而红帽方面,也许是因为当时对这种脱离内核的维护方式很不爽,也许是因为采用Xen的RHEL在企业级虚拟化方面没有赢得太多的市场,也许是因为思杰跟微软走的太近了,种种原因,导致其萌生了放弃Xen的心思。事实上,当时整个Xen的市场表现的确一般,2008年Hyper-V推出的时候,甚至有评论猜测思杰自己都会抛弃Xen而投奔Hyper-V(当然,思杰后来在官方博客上否认了这个猜测,表示自己和微软只是合作的比较亲密而已)。 总之,红帽决定选择了一个新兴的、基于内核的虚拟化技术:KVM。而且在正式采用KVM一年后,就宣布在新的产品线中彻底放弃Xen,集中资源和精力进行KVM的工作。 那么,除了是Linux内核的一部分之外,KVM到底有啥好处?2008年的时候,红帽发言人表示,KVM相比Xen有着更好的可管理性以及更高的性能。性能这一点需要基准测试来说话,不过不同的基准测试会给出不同的结果,所以性能方面孰优孰劣很难一概而论;可管理性方面,红帽在大规模服务器自动化管理方面倒是一直很有一些心得,而且相关的工具大多是免费开源的,这点很不错。具体有哪些工具,可以查询KVM的这个页面,以及Xen的维基页面。 当然,KVM本身也有一些弱点,那就是相比裸金属虚拟化架构的Xen、VMware ESX和Hyper-V,KVM是运行在Linux内核之上的寄居式虚拟化架构,会消耗比较多的计算资源;不过针对这一点,Intel、AMD已经在处理器设计上有专门的VT-x和AMD-V扩展,这种特性在每次硬件更新的时候也会更新,往往每次更新后都对虚拟化性能和速度上有明显的提升,所以长远来看,也不是什么大问题。 红帽的思路理清楚了,至于IBM是怎么想的呢?其实也不难理解,因为VMware目前在虚拟化(继而到云计算)领域的发展势头,和上世纪80、90年代那会儿微软Windows在PC领域的情况实在太像了。一个只有VMware的虚拟化市场,绝不是IBM希望看到的结果。 不过,KVM技术到现在也不过发展了三年多的时间,要知道VMware可是发展了十年,这个技术的成熟度,难免令人产生疑问:现在在数据中心里用KVM,靠谱吗? |