今天尝试了在RHEL6上重新build了xen和dom0,按照xen.org的wiki上的步骤来做基本没啥问题,xend在build的时候貌似会绑定到build环境的python版本,之后如果在其他的python环境下xend会起不起来
build可以参考这篇 http://wiki.xen.org/wiki/RHEL6_Xen4_Tutorial
1. src.rpm的下载地址:
xen: http://xenbits.xen.org/people/mayoung/EL6.xen/SRPMS/
dom0: http://xenbits.xen.org/people/mayoung/testing/SRPMS/
这个dom0的版本和jeremy的版本的最大不同,是这个dom0是在rhel6的内核树下创建的,但不知道有没有backport jeremy的dom0版本的patch过来,总之自己玩可以,要上生产环境请严格测试过再说
2. xen包build出来之后,还需要相应的qemu包,我的建议是下载fedora的src.rpm自己build,不要用太新的版本
http://mirrors.ustc.edu.cn/fedora/linux/releases/15/Everything/source/SRPMS/qemu-0.14.0-7.fc15.src.rpm
qemu会build出如下包
qemu-0.14.0-7.el6.x86_64.rpm qemu-system-cris-0.14.0-7.el6.x86_64.rpm
qemu-common-0.14.0-7.el6.x86_64.rpm qemu-system-m68k-0.14.0-7.el6.x86_64.rpm
qemu-debuginfo-0.14.0-7.el6.x86_64.rpm qemu-system-mips-0.14.0-7.el6.x86_64.rpm
qemu-img-0.14.0-7.el6.x86_64.rpm qemu-system-sh4-0.14.0-7.el6.x86_64.rpm
qemu-kvm-0.14.0-7.el6.x86_64.rpm qemu-system-x86-0.14.0-7.el6.x86_64.rpm
qemu-kvm-tools-0.14.0-7.el6.x86_64.rpm qemu-user-0.14.0-7.el6.x86_64.rpm
qemu-system-arm-0.14.0-7.el6.x86_64.rpm
当然也可以用已经build好的qemu包,我找了一个qemu-0.15.0-1.el6.rfx.x86_64.rpm,安装上去之后xen也跑得没问题(这个rpm有非常多的依赖,很多是centos6的rpm包,我建议在centos上编会简单一些)
3. dom0的build和其他内核没太大区别,注意xen, dom0的rpm包都安装完之后,需要手工修改下grub.conf,e.g.
title Red Hat Enterprise Linux Server (2.6.32-131.21.1.el6.xendom0.x86_64.debug)
root (hd0,0)
kernel /xen.gz dom0_max_vcpus=xxx dom0_vcpus_pin dom0_mem=xxxxM
module /vmlinuz-2.6.32-131.21.1.el6.xendom0.x86_64.debug ro root=UUID=71b6c92d-e74b-4eda-8ba9-117134513ba8 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto hda=noprobe rhgb quiet
module /initramfs-2.6.32-131.21.1.el6.xendom0.x86_64.debug.img
重启之后进入dom0内核,xm li看到
Name ID Mem VCPUs State Time(s)
Domain-0 0 6848 4 r----- 2853.3
OK,大功高成
后记:
1. 如果你还要用libvirt,请自己去build吧,RHEL6自带的版本实在太老了。。。
2. 目前还没法说dom0内核这个michael young版本和jeremy的社区版本谁更好,个人觉得rhel6的内核代码更丰富,但是dom0支持这块jeremy的版本肯定更好一点,由于linux3.0已经把xen加进了upstream,期待RHEL下一个大版本能把xen包含进来,那时候xen kvm才算是真正较量的开始