由于实验室需要把openstack的libvirt由kvm改为xen。记录下修改过程。
1.首先在各个节点正确安装openstack的相应组件。
可参考社区的安装文档。
2.安装xen
在计算节点安装xen。
apt-get install xen-utils-common
apt-get install xen-utils-4.1
3.安装nova-compute-xen
apt-get install nova-compute-xen
4.修改配置文件
vim /etc/nova/nova-compute.conf
--libvirt_type=xen
vim /etc/nova/nova.conf
--libvirt_type=xen
5.修改函数,函数中存在bug
这样还是无法启动nova-compute,报错:
2012-07-26 00:21:09 AUDIT nova.service [-] Starting compute node (version 2012.1-LOCALBRANCH:LOCALREVISION)
2012-07-26 00:21:10 CRITICAL nova [-] global name 'self' is not defined
打开文件 /usr/lib/python2.7/dist-packages/nova/virt/libvirt/connection.py作如下修改:
1699行开始的两行改为:
#@staticmethod #切记,一定呀注释这一行
def get_memory_mb_total(self):
6.重新启动。
修改grub启动项。
1. /boot/grub/grub.cfg 文件
2. /etc/grub.d/ 文件夹
3. /etc/default/grub 文件
grub.cfg就是就是配置选项,类似于menu.lst,但是我们不能通过直接修改这个文件来修改配置,而是需要在2、3两项中做相应修改并执行 update-grub命令使/boot/grub/grub.cfg自动更新。
拿最简单最常用的开启启动项默认选择顺序和选择等待时间为例,我们只需做
1. sudo gedit /etc/default/grub
2. 把GRUB_DEFAULT= 和 GRUB_TIMEOUT= 两个字符串后面的数字改为我们自己想要的并保存关闭
3. sudo update-grub
7.重新启动
reboot
启动相关服务(由于经常要使用,我就写在了脚本里了):
#!/bin/bash
for a in libvirt-bin nova-compute nova-vncproxy nova-api; do service "$a" stop; done
for a in libvirt-bin nova-compute nova-vncproxy nova-api; do service "$a" start; done
执行脚本
查看服务是否正确运行
service nova-compute status
8.如果出现下列错误:
查看日志/var/log/nova/nova-compute.
ERROR unable to connect to ‘localhost:8000′: Connection refused
Traceback (most recent call last):
File “/usr/sbin/virt-install”, line 861, in ?
main()
File “/usr/sbin/virt-install”, line 636, in main
conn = cli.getConnection(options.connect)
File “/usr/lib/python2.4/site-packages/virtinst/cli.py”, line 126, in getConnection
conn = libvirt.open(connect)
File “/usr/lib/python2.4/site-packages/libvirt.py”, line 159, in open
if ret is None:raise libvirtError(‘virConnectOpen() failed’)
libvirtError: unable to connect to ‘localhost:8000′: Connection refused
这个问题一般是因为配置文件导致的,确保 /etc/xen/xend-config.sxp中以下三行没有被注释掉:
(xend-http-server yes)
(xend-port 8000)
(xend-address '')
参考文章:
feisky的安装过程http://www.cnblogs.com/feisky/archive/2012/06/29/2569506.html
openstack支持的虚拟化平台:http://wiki.openstack.org/HypervisorSupportMatrix
JeremyWei http://www.vpsee.com/2010/04/install-xen-on-centos-from-source/