原文地址:http://blog.csdn.net/zhu_liangwei/article/details/7814181
说明:在配置迁移之前请确保openstack平台已经可以正常使用。本为是对kvm平台进行测试的。
1.机器:
node1是控制节点 10.214.0.57
node2是计算节点 10.214.0.58
node3是计算节点 10.214.0.60
实验阶段,为了避免不必要的麻烦,请关闭各个节点的防火墙。
- service ufw stop
查看防火墙状态
- service ufw status
- ufw stop/waiting
确定节点之间能互相ping通。
在每个节点进行ping测试。
ping node1
ping node2
ping node3
2.修改各个节点的nova.conf
- vim /etc/nova/nova.conf
--vncserver_proxyclient_address=127.0.0.1
--vncserver_listen=0.0.0.0
3.配置nfs
在node1上:
apt-get install nfs-kernel-server
可以参考链接:https://help.ubuntu.com/community/SettingUpNFSHowTo
在/etc/exports中加入
/var/lib/nova/instances *(rw,sync,fsid=0,no_root_squash)
重新启动nfs服务:
/etc/init.d/nfs-kernel-server restart
/etc/init.d/idmapd restart
在计算节点node2、node3上:
建议在配置之前先删除计算节点的所有实例,不然会造成僵尸实例的产生。
确保计算节点有执行和查找目录的权限。
chmod o+x /var/lib/nova/instances
在计算节点的/etc/fstab的目录中加入
10.214.0.57:/var/lib/nova/instances /var/lib/nova/instances nfs defaults 0 0
挂载目录执行:
mount –a -v
检查目录是否挂载成功。
df -k
- 10.214.0.57:/var/lib/nova/instances 949801984 31567872 870693888 4% /var/lib/nova/instances
最好打开目录看看
ls -l
在各个计算节点设置权限
chmod 777 /var/lib/nova/instances
这一步很重要,不然可能会出现权限问题。
4.修改所有计算节点libvirt
修改:
/etc/libvirt/libvirtd.conf
before : #listen_tls = 0
after : listen_tls = 0
before : #listen_tcp = 1
after : listen_tcp = 1
add: auth_tcp="none"
修改:
/etc/init/libvirt-bin.conf
before : exec /usr/sbin/libvirtd -d
after : exec /usr/sbin/libvirtd -d -l
修改:
/etc/default/libvirt-bin
before :libvirtd_opts=" -d"
after :libvirtd_opts=" -d -l"
修改:
/etc/libvirt/qemu.conf
去掉下面三行注释
- vnc_listen = “0.0.0.0″
- user = “root”
- group = “root”
重新启动libvirt-bin
- service libvirt-bin restart
确定进程已启动。
ps -ef | grep libvirt
确定有:
root 5277 1 004:06 ? 00:00:01/usr/sbin/libvirtd -d -l
重新启动nova-compute服务
- service nova-compute restart
这样就配置成功了!
5.测试:
root@node1:~# nova list 查看实例
root@node1:~# nova show 11fd9622-a948-4cdb-94d0-d8f2558cf179 查看需要迁移的实例
root@node1:~# nova-manage service list 查看可用的计算节点
root@node1:~# nova-manage service describe_resource node2 查看目标节点资源 (或者# nova host-describe node2)
root@node1:~#nova live-migration 11fd9622-a948-4cdb-94d0-d8f2558cf179 node2 迁移成功,应该没有输出。
6.注:如果出现问题,查看一下日志文件,根据日志分析错误原因
/var/log/nova/nova-compute.log
/var/log/libvirt/libvirtd.log
/var/log/libvirt/qemu/instance-000000*.log(instance-000000*.log是你启动的特定实例)
例如我nova-compute.log文件中的:
if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed',dom=self)
2012-07-14 21:36:56 TRACE nova.rpc.amqp libvirtError: Unable to read frommonitor: Connection reset by peer
instance-000000*.log文件中的:
kvm: -drivefile=/var/lib/nova/instances/instance-00000039/disk, if=none,id=drive-virtio-disk0,format=qcow2,cache=none:could not open disk image /var/lib/nova/instances/instance-00000039/disk:Permission denied。
就是由于设置nfs是文件夹的权限问题和/etc/libvirt/qemu.conf设置错误导致的。
参考文献:
沙克文章:http://www.chenshake.com/ubuntu-12-04-openstack-essex-installation-single-node/
博友关于live-migrartion的配置:http://www.longgeek.com/2012/07/18/openstack-online-migrations/
官方文档: http://docs.openstack.org/essex/openstack-compute/install/yum/openstack-install-guide-essex.pdf