热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

KVM和Xen虚拟化平台如何选择

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

  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将会在相当长一段时间内共存,这个市场足够大,需要多种解决方案,这两种技术背后都有充足的技术支持让它们在未来数年内和平共处。


推荐阅读
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • HTML5 表单新增属性详解
    本文深入探讨了HTML5中表单的新增属性,帮助读者全面掌握这些新特性。内容涵盖autocomplete、autofocus、list等常用属性,并详细解释了form、novalidate、enctype和accept-charset等高级属性的功能与应用场景。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 使用OpenCV和Python 4.2提升模糊图像清晰度
    本文介绍如何利用OpenCV库在Python中处理图像,特别是通过不同类型的滤波器来改善模糊图像的质量。我们将探讨均值、中值和自定义滤波器的应用,并展示代码示例。 ... [详细]
author-avatar
大开先生_615
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有