经过这段时间对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。但是我觉得这样的情况并不是很有价值。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




