经过这段时间对Xen的试用,我是非常推崇这个软件的,以下从几个方面,包括源码的规模统计角度来对比Xen同其他类似软件的优势。
1. Xen同qemu等模拟器软件的比较
我们知道,Xen采用了准虚拟化技术(paravirtualization),需要对guest OS的代码进行修改,以便同虚拟机核心监控代码进行协同,这样可以提高系统的性能,并降低实现的复杂度。
Xen代码的规模为:2.0版本,大约120k LOC(用sloccount软件统计)和3.0测试版,大约300k LOC;代码主要包括Xen核心、管理工具及内核补丁三部分,主要用C语言加部分汇编编写,工具部分也大量用到了python;
作为对比,qemu的源码规模约135k LOC,主要是用于CPU和硬件模拟的代码;开放源码的部分不含kqemu这个虚拟化软件,因此,qemu可以认为是一个类似bochs的纯模拟器(bochs代码规模类似,约为150k LOC),其优势是适应性强,缺点是性能低;
2. Xen同其他采用部分虚拟化技术的类似软件的比较
同xen原理有些类似的软件包括:
colinux——这是一个在windows上运行的linux的软件,原理有点类似于准虚拟化技术,这个软件最初是由一个日本的学生编写,规模较小约30k;
IBM的rhype——IBM的hypervisor虚拟机软件的开源研究版本,规模大约45k行,采用c和汇编开发;
从代码规模判断,Xen同这些软件相比是比较成熟和完善的;
3. Xen同linux VServer和UML的比较
Linux vserver是一个类似于BSD Jail的方案,同样可以达到在一台机器上运行多个linux的目的,它比Xen能更节约硬盘空间,比较适用于提供hosting业务的服务商,缺点是在操作管理上不如Xen方便,因为Xen操作起来同操作物理机器没有什么不同; vserver的代码规模不大——内核补丁大约12k;工具代码大约30k;
Uml(user mode linux)是一个已经包含在linux 2.6内核中的软件模块,其2.4内核补丁规模约40k;Uml的缺点是性能比较差,现在有了Xen以后,基本上没有理由再用uml了,所以现在有不少关于将Xen合并入linux内核的建议和讨论;
4. Xen同VMware等商业软件的比较
同VMware相比,Xen的主要优势是性能,特别是处理I/O任务时的性能,同真实机器性能相比下降很少,这对服务器等应用非常关键;虽然VMware同开源的qemu+kqemu软件相比性能要高很多,但比Xen仍有不小的差距;
第二个优势是稳定性,这是由软件架构而决定的。Xen非常聪明地利用了Linux开源的特点,采用了部分虚拟化的技术,因此从实现的复杂度、适应性和稳定性方面都要比VMware有优势,实际使用也确实如此;稳定性对于服务器应用而言也是非常重要;
第三个就是Xen经常宣传的Live Migration,就是可以动态地将某个虚拟机从一台物理机器迁移到另一台物理机,而中间的业务中断时间只有几十到几百秒,这个特性在服务器应用里面也是非常有价值的,我暂时还没有机会实际使用。
小结
由上述可见,Xen同Linux是一个完美的组合,是目前Linux上的最佳的虚拟化解决方案,特别适合于服务器应用。如用于将多个服务器合并到一台物理服务器上,以节省运营成本(机房空间、电力消耗);或者是出于安全角度的考虑,需要将不同的应用进行分区,以便降低安全风险等。
出于类似的考虑,Xen得到了很多Linux厂商的大力支持,其中包括Novell等大公司。
目前Xen还不是很合适作为桌面应用,例如Xen的2.0版本还不支持agppart和声卡设备虚拟化,运行x-windows将比较困难。
另外,利用Intel和AMD最新CPU的内嵌虚拟化特性,Xen也可以支持Windows作为guest OS。不过我觉得这样的情况并不是很有价值。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
XP安装桌面虚拟化客户端报错
使用恩杰的桌面虚拟化,win7及以上系统无报错,但在XP客户端安装 citrix receiver […]
-
做CTO最重要的技能是什么?是写代码吗?
不写代码能做好CTO吗?
-
pppcloud支持哪些系统镜像?
全ssd云主机平台pppcloud支持多达40种镜像,中秋节期间注册即送8.15现金券,www.pppclou […]
-
xen上配置npiv问题
请问有人在xenserver上配置成功过npiv吗?虚拟出的vport如何只给某个虚拟机使用?还是只能把存储中 […]