KVM虚拟化技术发展史及未来

标签: Linux 旧文存档 虚拟化与云计算 KVM RedHat | 发表时间:2012-07-13 02:37 | 作者:谋万世全局者
出处:http://www.ha97.com

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,靠谱吗?

IBM高管:KVM在数据中心已经足够成熟

蓝色巨人一直以来似乎对红帽子选择的技术一向都十分看好。从上世纪90年代的Linux商业化,各种Linux on system x/p/i/z,到这次的KVM,IBM跟红帽一直走的很近。从1999年双方建立合作关系开始,IBM的各个硬件产品线都对红帽Linux进行了很多的优化,甚至在各方都认为KVM还不够成熟的时候,就将其采用为IBM Smart Business Enterprise Cloud云计算服务的底层虚拟化机制,并已经发展了一部分公共单位的用户(比如巴西的高速公路管理系统)。IBM系统软件部市场与销售副总裁,同时也是开放虚拟化联盟委员会成员之一的Inna Kuznetsova向51CTO编辑表示,“2010年,如果你问我KVM是否已经足够成熟到在数据中心使用,我还会表示怀疑;但是现在,我可以说KVM已经对数据中心做好了准备。”

IBM系统软件部市场与销售副总裁Inna Kuznetsova
IBM系统软件部市场与销售副总裁Inna Kuznetsova

红帽方面就更不用说了。红帽大中华区总裁潘应麟先生对51CTO编辑表示,云计算时代的IT已经从提供解决方案逐渐变成了按需提供服务。中国的虚拟化市场发展的很快,而且企业的规模、需求各自不同,需要更加个性化、更加灵活、交付更加快速的服务,而基于KVM,就可以满足这一点。通过成立联盟,提供技术与市场支持,可以吸引更多的ISV加入到KVM的平台上,形成一个应用生态环境,那么KVM成熟和普及的速度将会越来越快。从RHEL 6仅支持KVM这点,其实也能看出红帽对KVM成熟度的认可。

红帽大中华区总裁潘应麟先生
红帽大中华区总裁潘应麟先生

不过,一线的IT运维们对于这个说法似乎还表示质疑。《大话IT》的负责人之一王文文曾经在做一期节目的时候寻找一个KVM的用户,问了19个运维都在用VMware,直到第20个才找到一位KVM的用户,虽然这一位用户对KVM表示非常支持,但其他19位还都不怎么看好KVM;笔者自己也问过一些一线运维工程师的意见,他们表示在测试环境尝试过KVM(用的系统多是CentOS),不过虚拟机建多了就会感觉很卡,不如Xen和VMware那样稳定。

还有一点也是用户所担心的,那就是红帽在采用Xen的第四年后就宣布放弃了Xen,万一以后又放弃了KVM怎么办?不过关于这点,笔者认为倒是无需太担心。一来RHEL每一个版本的生命周期都有十年,RHEL 5会一直支持到2017年,如果不升级到RHEL 6,就不用担心没有Xen用的问题;二来服务器虚拟化这个领域现在有力的竞争者实在太少,除非红帽学惠普针对webOS的做法,把KVM一扔,向VMware投降了,否则,红帽在几年内放弃KVM是不太可能的事情。

其实作为用户,在进行技术选型的时候难免会担心这担心那的,担心产品不好,担心技术用了之后支持跟不上,担心厂商锁入,担心成本过高。KVM到底足够成熟了吗?我可以用KVM吗?用户有这些疑问都是正常的,选型前做足测试也是应该的。客观来说,现在的KVM肯定没有VMware和Xen那样成熟,Kuznetsova也说了,比如在低延时、高网络I/O方面,KVM做的还不够好。目前能保证的,就是在用户有需求的时候,KVM能够在一台宿主机上创建超过300台虚拟机,并有可能实现理论上的最大可扩展性(参考 开放虚拟化联盟官网);而在开放虚拟化联盟,红帽和IBM会提供有关KVM的各种文档,并尽力营造技术社区的支持氛围。

但是,除了上面这些之外,用户们也应该时刻考虑一个问题:我愿意接受一个只有VMware的虚拟化市场吗?正如同Kuznetsova所说的那样:“我们只是希望能够为客户提供另一个选择。”

转自:http://os.51cto.com/art/201109/288750.htm

相关 [kvm 虚拟化 技术] 推荐:

虚拟化技术对比:Xen vs KVM

- - 操作系统 - ITeye博客
对服务器的虚拟化不知道使用哪个,可以参考这篇文章,包括世纪互联也是用的xen进行虚拟化. OpenStack与KVM相互辉映. OpenStack几乎支持所有的虚拟化管理程序,不论是开源的(Xen与KVM)还是厂商的(Hyper-V与VMware). 但在以前,OpenStack是基于KVM开发的,KVM常常成为默认的虚拟机管理程序.

KVM虚拟化技术发展史及未来

- - 服务器运维与网站架构|Linux运维|互联网研究
2008年9月,红帽收购了一家名叫Qumranet的以色列小公司,由此入手了一个叫做KVM的虚拟化技术(KVM,全称Kernel-based Virtual Machine,意为基于内核的虚拟机). 当时的虚拟化市场上主要以VMware为主,而KVM只是在Ubuntu等非商用发行版上获得了一些关注.

Linux虚拟化技术Xen和KVM的优势特点对比

- - 服务器运维与网站架构|Linux运维|互联网研究
Linux虚拟化技术的用户目前有两种免费的开源管理程序可以选择:Xen和KVM. 作为较早出现的虚拟化技术,Xen是“第一类”运行在裸机上的虚拟化管理程序(Hypervisor),也是当前相当一部分商业化运作公司的基础技术,其中包括Citrix系统公司的XenServer和Oracle的虚拟机. Xen技术的倡导者们声称Xen的性能强劲,并且拥有一个广泛的管理工具和能够交付卓越性能,以及其它诸多优点.

xen、kvm、vmware、hyper-v等虚拟化技术的比较

- - haohtml's blog
最近在实战Xen中,这篇文章是最近在网上看到的,发出来分享一下. xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 R2附带的虚拟化组件,如果你买了足够的授权,hyper-v(包括hyper-v 2008 core)都可以免费使用.

转:VPS采用的几种常见技术(OpenVZ、Xen、KVM)介绍与对比

- - 膘叔
一直都知道openVZ性能不高,不太能設VPN,所以一直想用的也都是XEN,但XEN的價格又比較高,比較有名的就是linode了. 找了一下資料,詳細了解一下資料:. 很多人看到同样配置的VPS价格相差很大,甚是不理解,其实VPS使用的虚拟技术种类有很多,如OpenVZ、Xen、KVM、Xen和HVM与 PV.

KVM进阶

- - CSDN博客云计算推荐文章
Linux 既有良好的灵活性,在虚拟化方面同样出色. 但是最近,随着内核虚拟机(KVM)的出现,Linux 虚拟化的前景发生了变化. KVM 是构成主流 Linux 内核(V2.6.20)一部分的第一个虚拟化解决方案. KVM 支持 Linux 客户操作系统的虚拟化 —— 甚至支持其硬件对虚拟化敏感的 Windows 系统的虚拟化.

如何判断自己的VPS是那种虚拟技术实现的?目前主流基本是Kvm

- - DEFCON笔记
我们知道VPS的虚拟技术有许多种,如Openvz、Xen、VMware vSphere、Hyper-V、KVM及Xen的HVM与PV等. 在Xen中pv是半虚拟化,hvm是全虚拟化,pv只能用于linux内核的系统,hvm可以虚拟所有常见操作系统(Linux+windows),理论效率比pv略低,另外hvm需要cpu虚拟化指令支持,pv无此要求.

KVM 虚拟机故障排除一例

- 火锅土豆 - LinuxTOY
笔者在部署 KVM 虚拟机时曾遇到一个奇怪的问题,几经探索之后终于解决,现在写出来跟大家分享一下. 笔者在单位部署了一台服务器,上面运行着几部 KVM 虚拟机,分别执行不同的任务. 系统上线之后,需要再增加几部虚拟机. 因为当初部署服务器时做了虚拟机备份,所以就复制了一个备份的虚拟机. 可是新虚拟机启动之后无法在本地网络上找到新虚拟机的 IP 地址(本地网络采用 DHCP 分配 IP 地址).

让鼠标破「窗」而出的免费 Microsoft KVM 程序(影片)

- Marco - Engadget 中国版
想要在多台计算机间使用相同的鼠标与键盘的 KVM 功能,目前大多都仍需倚靠硬件帮助. 现在,Microsoft Garage 的一名越南籍开发者有个更棒的点子,他在工作之余完成让各系统间,可以透过网络连接的方式互相分享同一组鼠标键盘,如同一台具备多屏幕的计算机一般. 通过 Redmond 所研发的程序,除了鼠标键盘可以无缝共享外,还可达成多系统间直接复制文字、拖移复制档案等操作,更可轻易同时锁定所有系统.

讓滑鼠破「窗」而出的免費 Microsoft KVM 程式(影片)

- Jeshuang - Engadget 中文版
想要在多台電腦間使用相同的滑鼠與鍵盤的 KVM 功能,目前大多都仍需倚靠硬體幫助. 現在,Microsoft Garage 的一名越南籍開發者有個更棒的點子,他在工作之餘完成讓各系統間,可以透過網路連接的方式互相分享同一組滑鼠鍵盤,如同一台具備多螢幕的電腦一般. 透過 Redmond 所研發的程式,除了滑鼠鍵盤可以無縫共用外,還可達成多系統間直接複製文字、拖移複製檔案等操作,更可輕易同時鎖定所有系統.