重新学习kvm(1)认识kvm以及kvm架构与xen架构的异同
重新学习kvm(1)目前市面上常用的虚拟机技术主要有KVM、xen、vmware。KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine)。KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。KVM的宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_.
重新学习kvm(1)认识kvm以及kvm架构与xen架构的异同
目前市面上常用的虚拟机技术主要有KVM、xen、vmware(vm没什么好提的,测试用虚拟机首选,特点是极其简单,系统安装非常容易)。
虚拟化的概念在近些年收到了很大程度上的普及,求其原因很简单:虚拟化能够最大程度利用资源,为企业节约成本。目前市面较受欢迎的虚拟架构主要有KVM、XEN和VMware,其中,KVM和XEN都是免费开源的,而VMware则是付费的(不过有破解版,因此,大家无感而已),所以,此次只对比KVM、XEN之间的差别。
如果给KVM、XEN简单归类的话,KVM是完全虚拟化技术又叫硬件辅助虚拟化技术(Full Virtualization)。相反,XEN是半虚拟化技术(paravirtualization),也叫做准虚拟化技术。
kvm的架构:
KVM是在的虚拟机和硬件之间加了一个软件层--Hypervisor,或者叫做虚拟机管理程序(VMM),KVM的hypervisor是直接运行在物理硬件之上的。XEN是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,使客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。
也有人将KVM架构分解为两部分:KVM驱动,即linux kernel的一个模块和Qemu,即用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径。其最大的优势在于KVM使用Linux内核集成的,所以速度较快,同时,KVM是完全虚拟的,所以不需要区分pv和hvm,可以安装各种Linux发行版和Windows发行版,可以运行在支持虚拟化扩展的X86和X86-64硬件架构上。
xen的架构:
XEN实际上出现的时间要早于KVM,它是由剑桥大学开发的,一个开源的虚拟机监视器。半虚拟化架构决定了它注定不是真正的虚拟机,只是自己运行了一个内核的例子,同时区分Xen+pv+和Xen+hvm,其中pv只支持Linux,而hvm则支持Windows系统。除此之外,XEN还拥有更好的可用资源、平台支持、可管理性、实施、支持动态迁移和性能基准等优势。
(1)kvm的基本特点
KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine)。KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。KVM的宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上,这意味着KVM不能运行在老式CPU上,新CPU如果不支持虚拟化扩展也不能运行(如英特尔的Atom处理器)。也就是说,kvm与硬件结合十分紧密,和内核的关系是解耦关系。
(2)xen的基本特点
Xen的实现方法是,运行支持Xen功能的kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。Xen的缺点是,如果你需要更新Xen的版本,你需要重新编译整个内核,而且稍有设置不慎系统就无法启动。xen与内核关联紧密,处于耦合状态。
简单的理解,kvm 是linux的内核的一个module(模块),而xen 是linux中的一个应用,更像一个服务,而不具备模块的特点。
(3)kvm和xen的相同点
目前xen 和kvm都支持虚拟化和半虚拟化。kvm 必须CPU 支持虚拟化,而xen都可以。
(4)kvm和xen的不同点
- kvm的I/O性能比较强。
- xen较为老旧,后期发展没有kvm迅猛。
- kvm集成到了不少linux的发行版中,使用门槛较低。xen与linux的整合度没那么高。
-
Xen和KVM都是开源的虚拟化技术。
相比较,KVM就比较简化。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块(kvm和kvm-intel)。它结构更加精简,代码量更小,所以出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。
(5)xen的一些优势
具体来说,Xen具有以下几个优势:
-
可用资源: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等。
实施:Xen的运行和管理都是在Ring 0级别。甚至对于新虚拟机创建,客体机器并不需要像KVM那样共享内存块、CPU指令或者任何底层的Linux操作系统(虽然偶尔也会越权)。
支持动态迁移:过去在证明VMware ESX比Microsoft Hyper-V优越的最重要的一个观点也同样适用于Xen和KVM的比较,但是这是一个很大的问题。与KVM不同,Xen支持非中断的动态迁移,可以允许动态工作负载平衡和例行维护而几乎没有任何宕机时间。KVM的固有属性决定了其肯定有宕机时间。性能:大多数Xen和KVM性能基准的对比都表明 Xen具有更好的处理性能(接近于本地处理),只有在磁盘I/O方面略逊于KVM。进一步来讲,独立测试表明随着工作负载的增加KVM的性能逐渐下降。通常情况下,在试图支持四个以上的客体虚拟机时就会崩溃。Xen支持一个客体虚拟机的数量呈线性增长,可以支持30个以上工作负载同时运行。
(6)kvm的一些优势
KVM具有以下几个优势:
KVM在Linux整合中优于Xen:即使没有实施广泛的 Xen和KVM性能基准研究,仍然有很多理由足以说明Linux领导者(诸如Red Hat和Ubuntu)对待KVM态度的原因。其中最明显并且最重要的因素就是KVM是Linux内核(2.6版本之后)的一部分,Xen只是一个安装在Linux内核下层的一个产品而已。 在过去Xen工作环境的补丁包不能够和Linux内核兼容。但是如果实施KVM的话,这个问题就可以很容易地得到解决。另外一个选择KVM的原因是KVM在Linux内核内部部署,这样可以很容易控制虚拟化进程。
KVM技术愈发成熟: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中。随着时间的推移,RetHat(目前掌握KVM技术),作为Linux企业市场中份额最大的企业,将会使虚拟化技术的后来者--KVM同Xen一样功能齐全。因此,有理由相信,相信未来虚拟化市场必定是KVM的。
更多推荐
所有评论(0)