上海阿联酋领事馆:xen同其他模拟器/虚拟机软件的比较

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 04:52:35
xen同其他模拟器/虚拟机软件的比较

    经过这段时间对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,就是可以动态地将某个虚拟机从一个物理机器迁移到另一个物理机器,而中间的业务中断时间只有几十~几百ms,这个特性也是在服务器应用里面非常有价值的,我暂时还没有机会实际使用。

小结
    由上述可见,xen同linux是一个完美的组合,是目前linux上的最佳的虚拟化解决方案,特别适合于服务器应用,如用于将多个服务器合并到一台物理服务器上,以节省运营成本(机房空间、电力消耗);或者是出于安全角度的考虑,需要将不同的应用进行分区,以便降低安全风险等。
    出于类似的考虑,xen得到了很多linux厂商的大力支持,其中包括novell等大公司。
    目前xen还不是很合适作为桌面应用,例如xen的2.0版本还不支持agppart和声卡设备虚拟化,运行x-windows将比较困难。
    另外,利用intel和amd最新CPU的内嵌虚拟化特性,xen也可以支持windows作为guest OS。不过我觉得这样的情况并不是很有价值。

参考资料
* wikipedia上对xen的介绍
* linux 上的虚拟机方案评价