kvm与xen虚拟化的比较(转)
Linux虚拟化技术的用户目前有两种免费的开源管理程序可以选择:Xen和KVM。
作为较早出现的虚拟化技术,Xen是“第一类”运行在裸机上的虚拟化管理程序(Hypervisor),也是当前相当一部分商业化运作公司的基础技术,其中包括Citrix系统公司的XenServer和Oracle的虚拟机。Xen技术的倡导者们声称Xen的性能强劲,并且拥有一个广泛的管理工具和能够交付卓越性能,以及其它诸多优点。
但是最近有一些Linux厂商——包括Red Hat和Canonical把基于内核的虚拟机(KVM:Kernel-based Virtual Machine)技术内置在RHEL和Ubuntu中。KVM是一个轻量级的虚拟化管理程序模块,该模块主要来自于Linux内核。虽然只是后来者,但是由于其性能和实施的简易性,以及对Linux重量级的持续支持,所以还是有必要认真对待KVM技术的。
在本期中,两位IT专家将会对Xen和KVM做出比较,并给出各自的理由。
Andi Mann:Xen比KVM优越的六大原因
Sander van Vugt:KVM比Xen能够带来更好的Linux集成
Xen比KVM优越的六大原因
作为开源的虚拟化技术,对比Xen和KVM可以看到,Xen以6个无与伦比的优势领先:更好的可用资源、平台支持、可管理性、实施、动态迁移和性能基准。
- 可用资源:Xen的问世要比KVM早4年之久(两者分别是2003年和2007年)。随着Citrix、Novell、Oracle、Sun、Ret Hat和Virtual Iron等公司在市场领域的实施,就比较容易找到精通Xen的IT技术人员,更容易让这些技术人员接受Xen相关的培训、更容易得到Xen的咨询帮助以及获得Xen证书。企业管理协会(EMA:Enterprise Management
Associates)2008年这对虚拟化和管理趋势的研究报告表明,这些关键因素占到那些抱怨缺少必要虚拟化技术资源和技术企业的60%。 - 平台支持:Xen在新版本中支持更多的主机和客体工作环境,包括泛虚拟化技术、硬件辅助支持以及修改过或未修改过的客体操作系统;对UNIX、Linux和Microsoft Windows的特定支持;包括芯片组,如x86、IA64和AMD、Fujitsu、IBM、Sun等公司的ARM,以及x86/64 CPU商家和Intel嵌入式的支持等。
- 可管理性:EMA在2009年度针对虚拟系统管理的研究结果表明:对于83%的企业来讲,在选择虚拟化技术过程中,管理是一项非常关键或者重要的因素。在对比Xen和KVM时,就可以看到Xen具有一个更加宽泛的第三方配给、备份、存储管理、P2V、容量规划、性能监控、进程自动化、安全和其它管理规则的社区,比如Citrix、IBM、CA、Novell或者Platespin、Enomaly、Microsoft以及HP等。
- 实施:无论KVM是“第一类”还是“第二类”,这都是语义上的概念。Xen的运行和管理都是在较低级别的(Ring 0)。甚至对于新虚拟机创建,客体机器并不需要像KVM那样共享内存块、CPU指令或者任何底层的Linux操作系统(虽然偶尔也会越权)。
- KVM不支持动态迁移:过去在证明VMware ESX比Microsoft Hyper-V优越的最重要的一个观点也同样适用于Xen和KVM的比较,但是这是一个很大的问题。与KVM不同,Xen支持非中断的动态迁移,可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间。KVM的固有属性决定了其肯定有宕机时间。
- 性能:大多数Xen和KVM性能基准的对比都表明Xen具有更好的处理性能(接近于本地处理),只有在磁盘I/O方面略逊于KVM。进一步来讲,独立测试表明随着工作负载的增加KVM的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。Xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。
更加深入广泛的Xen与 KVM对比也将会表明Xen在虚拟网络支持、虚拟存储支持、安全增强、高可用性、容错处理、电源管理、HPC或者实时支持、虚拟CPU可扩展性、跨平台兼容性。虚拟机可移植性、虚拟应用设备市场以及已经建立起来的云服务社区等诸多方面都要比KVM优越。因此KVM只是在技术上比较与众不同,并且拥有几个不错的应用场景。但是作为企业级的服务器虚拟化技术,和Xen比起来,KVM尚有较大差距。
Andi Mann是企业管理协会(EMA:Enterprise Management Associates)IT分析部门中研究系统管理和存储管理的副总裁。Mann在技术和管理领域有20多年的IT经验,对主机、中型机、服务器和台式机上企业形态和软件方面都有深刻理解。Mann是EMA系统管理研究项目的主要负责人,他主要关注数据中心自动化和虚拟化。访问EMA的主页了解更多有关Mann的信息。
KVM在Linux整合中优于Xen
即使没有实施广泛的Xen和KVM性能基准研究,仍然有很多理由足以说明Linux领导者(诸如Red Hat和Ubuntu)对待KVM态度的原因。其中最明显并且最重要的因素就是KVM是Linux内核的一部分,Xen只是一个安装在Linux内核下层的一个产品而已。
为什么这一点如此重要呢?其之所以重要是因为在过去Xen工作环境的补丁包不能够和Linux内核兼容。但是如果实施KVM的话,这个问题就可以很容易地得到解决。另外一个选择KVM的原因是KVM在Linux内核内部部署,这样可以很容易控制虚拟化进程。
Xen的拥护者们声称KVM不如Xen技术成熟,并且缺少某些关键特性,如动态迁移和泛虚拟化支持。确实如此,Xen工作环境中的泛虚拟化技术可以使虚拟机的操作更加高效,因为泛虚拟化技术直接和硬件进行交互。然而使用泛虚拟化技术需要修改操作系统,默认Windows的安装并不支持泛虚拟化工作环境。至于动态迁移,KVM也可以做到,只是需要安装正确的KVM版本而已。KVM过去在动态迁移方面确实存在一个问题,但是现在已经解决了。
从另外一个角度来讲,KVM更加灵活。由于操作系统直接和整合到Linux内核中的虚拟化管理程序交互,所以在任何场景下都可以直接和硬件进行交互,而不需要修改虚拟化的操作系统。这一点非常重要,因为对虚拟机运行来讲KVM可以是一个更快的解决方案。KVM需要Pacifica(AMD)或者Vanderpool(Intel)虚拟化CPU这一事实现在已经不能成为KVM发展的限制条件,因为当前大多数服务器CPU都有这些处理器。
支持不选择KVM虚拟化技术的一个可信原因是Xen相对来讲历史更久一点,产品更加成熟些。但是长远来看,Xen将会使Linux内核的负担越来越重,因为Xen缺少很好的整合(并且以后也不会解决这个问题),尽管Xen的开发者们正在积极地解决这个整合问题。
最后一点是KVM是Linux内核的一部分,而Xen做到最好也无非是整合到Linux中。随着时间的推移,Ret Hat(目前掌握KVM技术),作为Linux企业市场中份额最大的企业,将会使虚拟化技术的后来者——KVM同Xen一样功能齐全。
最后,笔者补充关于二者的技术细节的一点不同:
kvm虚拟化提供cpu虚拟化,内存虚拟化,但I/O与输入设备的虚拟化由qemu来提供,管理工具为libvirt(vrish),而xen虚拟化也仅提供内核及内存的虚拟化,对I/O的所有操作与虚拟机和外部的沟通由domain0这台虚拟机来管理,虚拟化的网络,虚拟机的调度,迁移也由domain0来进行管理,domain0便是xen虚拟化的超级管理员。输入设备也由qemu来进行模拟,而libvirt也可以给xen提供给virsh管理工具。
附:
Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh
ibvirtd是服务程序,接收和处理 API 请求;
API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具;
virsh 是我们经常要用的 KVM 命令行工具
kvm与xen虚拟化的比较(转)的更多相关文章
- KVM与XEN虚拟化环境究竟有何不同
虚拟化的概念在近些年收到了很大程度上的普及,求其原因很简单:虚拟化能够最大程度利用资源,为企业节约成本.目前市面较受欢迎的虚拟架构主要有KVM.XEN和VMware,其中,KVM和XEN都是免费开源的 ...
- 一文带你速懂虚拟化KVM和XEN
来源 :蛋蛋团 前言 "云计算"这个技术经过十余年的普及到如今已经可以称得上是家喻户晓了,基于云计算平台,在多个领域内创造了一个又一个的记录:电子商务里亿万人同时在线抢购的的&qu ...
- 虚拟化之kvm与xen对比
xen XenServer is the leading open source virtualization platform, powered by the Xen Project hypervi ...
- 基于KVM、Xen、OpenVZ等虚拟化技术的WEB在线管理工具
1.Proxmox proxmox是一个开源的虚拟化管理平台,支持集群管理和HA.在存储方面,proxmox除了支持常用的lvm,nfs,iscsi,还支持集群存储glusterfs和ceph,这也是 ...
- [转帖]PC虚拟化主流:KVM、XEN、OpenVZ详解
PC虚拟化主流:KVM.XEN.OpenVZ详解 https://zhuanlan.zhihu.com/p/90920566 1.pc虚拟化——KVM KVM是完整的硬件虚拟化,可以在Windows ...
- CentosX64使用yum快速搭建xen虚拟化环境
Xen的大名想必已经被众SA所熟知.Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达100个满特征的操作系统.操作系统必须进行显式地修改(“移植”)以在Xen上运行( ...
- 性能基准测试:KVM大战Xen
编译自:http://major.io/2014/06/22/performance-benchmarks-kvm-vs-xen/作者: Major Hayden原创:LCTT https://lin ...
- Xen虚拟化基础篇
一.xen的简介 Xen是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达128个有完全功能的操作系统. 在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(& ...
- Xen虚拟化
Xen虚拟化基础 Xen虚拟化类型 hypervisor Xen组件 Xen hypervisor Colletion CPU.Memory.Interrupter Domain0 ---> D ...
随机推荐
- MHA在监控和故障转移时都做了什么
转自 https://blog.csdn.net/ashic/article/details/75645479 以下是MHA(masterha_manager)在监控和故障切换上的基本流程 验证复制配 ...
- 升级python2.7至python3.7
最近在centos7下执行命令时,出现以下提示: DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020 ...
- FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1)
FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1) APPLIES TO: Oracle Database - Enterprise Edition ...
- 使用Data Guard迁移到RAC (Doc ID 273015.1)
Migrating to RAC using Data Guard (Doc ID 273015.1) APPLIES TO: Oracle Database Cloud Exadata Servic ...
- tcp客户端程序开发
https://www.cnblogs.com/python-No/ 话不多说,直接进入正题 一:客户端一共分为5大块: 1.创建客户端套接字 2.和服务端套接字建立连接 3.发送数据 4.接收发送 ...
- docker面试题和解答(一)
什么Docker Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. Docker与虚拟机有何不同 Docker不是虚拟化方法 ...
- 【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔(2019-11-04)
说明: 1.本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计. 2.本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件 ...
- B站弹幕爬取 / jieba分词 - 全站第一的视频弹幕都在说什么?
前言 本次爬取的视频av号为75993929(11月21的b站榜首),讲的是关于动漫革命机,这是一部超魔幻现实主义动漫(滑稽),有兴趣的可以亲身去感受一下这部魔幻大作. 准备工作 B站弹幕的爬取的接口 ...
- Python 爬虫从入门到进阶之路(二)
上一篇文章我们对爬虫有了一个初步认识,本篇文章我们开始学习 Python 爬虫实例. 在 Python 中有很多库可以用来抓取网页,其中内置了 urllib 模块,该模块就能实现我们基本的网页爬取. ...
- SpringCloud微服务(04):Turbine组件,实现微服务集群监控
本文源码:GitHub·点这里 || GitEE·点这里 写在前面,阅读本文前,你需要了解熔断器相关内容 SpringCloud微服务:Hystrix组件,实现服务熔断 一.聚合监控简介 1.Dash ...