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

Xenvs.KVM虚拟化技术如何选择

如果你是Linux虚拟化技术用户,那么你有两种免费的开源管理程序可选:Xen和KVM。现如今,Xen已经没落,KVM正风生水起。出现这种情形的根源是什么呢?Xen带着荣耀而生2003年,开源Xen通过最新的半虚拟化(Para-virtualization)技术在数据中心用户群体中流行开

如果你是Linux虚拟化技术用户,那么你有两种免费的开源管理程序可选:Xen和KVM。现如今,Xen已经没落,KVM正风生水起。出现这种情形的根源是什么呢?

Xen带着荣耀而生

2003年,开源Xen通过最新的半虚拟化(Para-virtualization)技术在数据中心用户群体中流行开来。Xen成为开源虚拟化领域的一件大事。它免费,还开源,业界对其给予厚望,希望能与VMware抗衡,分得一杯羹。

Xen虚拟化平台架构

从上图Xen架构中可以看出,Xen支持hypervisor和虚拟机互相通讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。

Xen最重要的优势在于半虚拟化,此外未经修改的操作系统也可以直接在xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。Xen与系统结合紧密、占用的资源少而知名,因此特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

目前最新版本是2011年4月发布的Xen 4.1。具有支持大型系统(255 以上处理器和 1GB/2MB超级页面的支持)、新的API内存访问机制与支持X86的高级矢量扩展(AVX)等新功能。

  KVM因时势而造

KVM(Kernel-based Virtual Machine,基于内核的虚拟机),比Xen晚生四年,完全内置于Linux。IT管理员只需几个内核模块的支持就能安装KVM,而Linux内核都支持这种hypervisor。

KVM虚拟化平台架构

从上图KVM架构中可以看到,KVM作为一个轻量级的虚拟化管理程序模块,利用Linux做大量hypervisor能做的事情,如任务调度、内存管理与硬件设备交互等。

KVM具有高性能、高扩展与高安全性特点,适合运行Linux或Windows的环境,在异构环境也能很好的进行管理,而在虚拟化桌面方面,可以提供可靠的可扩展的镜像服务器。

KVM力压Xen

两者都深深依赖于Linux。但是Xen在早期是不受Linux内核支持的,要实现hypervisor功能,IT管理员需要把开源Xen作为主流内核的补丁来安装,甚至安装后不能对内核做升级,否则会破坏Xen的功能。难与Linux内核集成的这个缺陷导致后来者KVM一出现就备受关注。

而之前支持Xen的厂商也在改变风向。业内知名Linux厂商红帽在Red Hat Enterprise Linux(RHEL)5时还采用的是Xen hypervisor,在RHEL 6中就移除了所有Xen相关组件,只用KVM,并且提供Xen到KVM虚拟机迁移工具。另一家Linux厂商Ubuntu则明确表示选择KVM作为其hypervisor。

2011年初,经过漫长的改进,开源Xen终于获得了Linux的完全支持,Xen提供了成熟的虚拟化功能,包括通过半虚拟化提供最优化的虚拟化操作系统。但是来得太晚已经错过了提高市场占有率的机会。在Xen努力靠近Linux内核的这些年,KVM和其他产品在技术、功能和市场上已经获得进展。

如果坚持在Linux平台上使用开源Xen,SUSE Linux Enterprise Server和Oracle将是唯一的选择。

Oracle VM这个基于Xen的虚拟化平台很难直接用于Oracle现有的用户群。甲骨文在企业Linux领域只是小玩家,对Xen的支持也很有限。

这边厢,除了红帽和Ubuntu,KVM也受到了IBM的关注。最近,IBM KVM(北京)卓越中心落户北京,帮助中国客户、软件开发商及合作伙伴更好的采用开放的虚拟化技术,以支持其云计算项目的发展。

此外,KVM也作为默认的开源软件hypervisor,获得了开源虚拟化联盟OVA的认可。

各大厂商和组织都在推广KVM,这使得Xen在开源虚拟化市场上难以立足。Xen这个成熟的平台在可用资源、可管理性、性能等方面的优势在快速发展的KVM面前也略显暗淡。随着时间的推移,虚拟化技术后来者KVM将会超越Xen,拥有开源虚拟化市场。


推荐阅读
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
author-avatar
ryan__bug
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有