Xen是个不错的虚拟化软件,有些时候服务器由于必须使用到微软那套.net框架的程序,就需要开设Windows主机,对比了多种开源虚拟化软件之后,我选择Xen,拥有较好的性能和灵活的配置、以及完全虚拟化方案的实现。

Xen老版本对Windows的支持不是很好,需要对Xen进行升级,版本从3.0.3 升级到 3.4.3,相应的virt-manager版本也会被升级到0.7.0。不过这个virt-manager版本似乎有一些问题,例如:local install media(ISO。。。)这个选项是灰色的,只有一个网络安装选项network install tree可以选择。需要升级版本。

源码安装官方有文档,这里不阐述了,由于xen和xen内核都是用rpm安装的,所以这里也用rpm打包一个出来,方便使用些。

首先到红帽FTP站找最新的源码包.src.rpm  地址:http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/ ,由于virt-manager最新版本0.8.6 需要相应python-virtinst版本大于0.500.3,所以这里也要进行打包。

# wget http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/virt-manager-0.8.6-4.el6.src.rpm
# wget http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/python-virtinst-0.500.5-3.el6.src.rpm
# rpm -ivh virt-manager-0.8.6-4.el6.src.rpm
# rpm -ivh python-virtinst-0.500.5-3.el6.src.rpm

build 源码包得到二进制安装包

# cd /usr/src/redhat/SPECS/
# rpmbuild -bb python-virtinst.spec
# rpmbuild -bb virt-manager.spec

OK,打包完毕,然后安装新的rpm包...

# cd/usr/src/redhat/RPMS/noarch
# rpm -ivh python-virtinst-0.500.5-3.noarch.rpm --force
Preparing... ########################################### [100%]
1:python-virtinst ########################################### [100%]

# rpm -ivh virt-manager-0.8.6-4.noarch.rpm --force
Preparing... ########################################### [100%]
1:virt-manager ########################################### [100%]

这么打包出来安装的会遇到问题,例如下面的出错信息:

Error starting Virtual Machine Manager: 'gtk.CheckMenuItem' object has no attribute 'get_label'
Traceback (most recent call last):
File "src/virt-manager.py", line 456, in ?
main()
File "src/virt-manager.py", line 443, in main
options.no_conn_auto)
File "src/virt-manager.py", line 257, in show_engine
engine.show_manager()
File "/root/Desktop/src/virt-manager/src/virtManager/engine.py", line 749, in show_manager
self._do_show_manager(None)
File "/root/Desktop/src/virt-manager/src/virtManager/engine.py", line 688, in _do_show_manager
self.get_manager().show()
File "/root/Desktop/src/virt-manager/src/virtManager/engine.py", line 654, in get_manager
obj = vmmManager(self)
File "/root/Desktop/src/virt-manager/src/virtManager/manager.py", line 190, in __init__
self.enable_polling(None, None, init_val, typ)
File "/root/Desktop/src/virt-manager/src/virtManager/manager.py", line 1065, in enable_polling
current_text = widget.get_label().strip(disabled_text)
AttributeError: 'gtk.CheckMenuItem' object has no attribute 'get_label'

不过这个问题已经被修复了。http://comments.gmane.org/gmane.comp.emulators.virt-tools/1006

按照Cole的方法(链接:http://hg.fedorahosted.org/hg/virt-manager/rev/7b6f5d8bed5d),我们进行修改。

# cd /usr/src/redhat/SOURCES/
# tar -zxf virt-manager-0.8.6.tar.gz
# cd virt-manager-0.8.6/src/virtManager/

需要修改两个文件,manager.py 和 details.py,修改完毕之后,重新打包。

# cd /usr/src/redhat/SOURCES/
# rm -f virt-manager-0.8.6.tar.gz ;tar -zcf virt-manager-0.8.6.tar.gz virt-manager-0.8.6
# cd ../SPECS/
# rpmbuild -bb python-virtinst.spec
# rpmbuild -bb virt-manager.spec

打包结束后再重新安装一遍安装包就可以了。正常运行后如下图:

最后,放出我打包好的适合CentOS 5系列的Virt-manager 0.8.6 rpm安装包下载地址。

http://icodex.org/dl/rpms/python-virtinst-0.500.5-3.noarch.rpm
http://icodex.org/dl/rpms/virt-manager-0.8.6-4.noarch.rpm

最后,谢谢浏览本文。