zoukankan      html  css  js  c++  java
  • [虚拟化平台技术]选择哪一种虚拟化平台 KVM还是Xen?

    "Xen是一个外部的hypervisor程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源. 另一方面, kvm是linux的一部分, 可使用通常的linux调度器和内存管理. 这意味着kvm更小更易使用.
    另一方面, Xen同时支持全虚拟化和半虚拟化(修改过的客户机能有更好的性能). kvm当前不支持半虚拟化. "

    但这并不代表XEN一直就比KVM 好!

    2002年Xen首次发布时,这个基于GPL许可的Hypervisor就被看作是Linux虚拟化平台的王者,时光飞逝,Xen不知不觉已经走过 8个年头,但现在Xen似乎成了曾经受宠的弃儿,当初力撑它的RedHat已经正式转向自家的KVM,而且KVM占有得天独厚的优势,因为它已经成功进入 Linux内核。

      不得不承认虚拟化技术的发展是相当迅速的,如果你没有跟上 KVM和Xen的发展速度,在考虑购买哪一种虚拟化平台时,你可能会很困惑。

      KVM和Xen

      Xen是一个支持x86、x86_64、安腾和ARM架构的Hypervisor,可以在它支持的处理器架构上运行Linux、 Windows、Solaris和部分BSD客户机操作系统,许多公司都支持Xen,当然主要还是思杰(Citrix),Oracle VM其实也是基于Xen包装而成的,当然还有更多的虚拟化解决方案都是以Xen为基础的,Xen可以安装在系统上,也可以直接安装到裸机上。

      KVM是一个集成到Linux内核的Hypervisor,很明显,宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、 Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上,这意味着KVM不能运行在老式CPU上,新CPU如果 不支持虚拟化扩展也不能运行(如英特尔的Atom处理器),在大多数情况下,对于数据中心来说,这些限制都不是问题,因为每个几年硬件都会升级换代,但最 近也有些数据中心选择Atom架构,那么注定它们不能使用KVM。

      如果你想运行Xen宿主主机,你需要有一个支持的内核,Linux默认一般不会提供Xen宿主主机支持,从2.6.23内核开始支持作为客户机 运行,如果你的Linux发行版不支持Xen,你必须自己定制内核,或直接选择如Citrix XenServer这样的商业解决方案,但问题是这些解决方案不是完全开源的。

      第2页:只能有一个存活下来吗?

      许多人都是自己构建内核,Xen可以运行在很多服务器上,从低成本的虚拟专用服务器(Virtual Private Server,VPS)供应商,如Linode,到大型公司,如Amazon的EC2,这些公司都加大了这方面的投入,不会轻易转换到其它技术,即使技术 上KVM超越了Xen,也不能一下就取代现有的解决方案,更何况KVM在技术上的优势并不明显,有些地方甚至还未超越Xen,因为Xen的历史比KVM更 悠久,它也比KVM更成熟,你会发现Xen中的某些功能在KVM还未实现,因此我们看到KVM项目的Todo List很长,KVM的优势也仅限于它进入了Linux内核。从RHEL 5.4开始,RedHat就支持KVM了,从RHEL 6.0开始RedHat就完全抛弃Xen了。

      RedHat弃用Xen给克隆REHL的公司带来了麻烦,迫使他们也接受KVM,要么只有自行维护一套包含Xen的分支,但这无疑会增加它们的成本。

      KVM的发展相当迅速,虽然目前还在追赶Xen,但Xen的领先地位恐怕很快就会丧失,我们不得不担忧Xen的未来出路。

      只能有一个存活下来吗?

      选择KVM还是Xen其实就是选择厂商,如果你想使用RHEL,那么KVM无疑是首选,如果你想运行在Amazon EC2上,那么你将使用Xen,主流Linux厂商似乎都站在KVM一边,但它们也为Xen提供了大量的商业支持,Citrix可能不会很快就消失。

      在IT行业想要成为永久的赢家是不可能的,Xen和KVM将会在相当长一段时间内共存,这个市场足够大,需要多种解决方案,这两种技术背后都有充足的技术支持让它们在未来数年内和平共处。

      (注:原文名:KVM or Xen? Choosing a Virtualization Platform

  • 相关阅读:
    Hibernate save, saveOrUpdate, persist, merge, update 区别
    Eclipse下maven使用嵌入式(Embedded)Neo4j创建Hello World项目
    Neo4j批量插入(Batch Insertion)
    嵌入式(Embedded)Neo4j数据库访问方法
    Neo4j 查询已经创建的索引与约束
    Neo4j 两种索引Legacy Index与Schema Index区别
    spring data jpa hibernate jpa 三者之间的关系
    maven web project打包为war包,目录结构的变化
    创建一个maven web project
    Linux下部署solrCloud
  • 原文地址:https://www.cnblogs.com/dartagnan/p/2003572.html
Copyright © 2011-2022 走看看