OpenStack Havana上手动迁移虚拟机
因为每个compute node都是使用的本地硬盘作为虚拟机磁盘镜像的存储而非Shared Storage,所以live migration不可能。
尝试使用nova migrate,能成功,但有时也失败;而且如果nova migrate能执行成功,虚拟机新的位置是从新schedule出来的,不能指定。
这里介绍手动迁移虚拟机的方法:
1. 使用nova stop 将虚拟机停掉;通过nova show查看虚拟机实例的名字,类似instance-000003e9,使用'virsh list --all‘确认虚拟机已经停止。
2. 在/var/lib/nova/instances下找到对应的虚拟的的目录,目录名就是虚拟机的id,将该目录拷贝到目的主机下的/var/lib/nova/instances,确保权限一致
rsync -Pa /var/lib/nova/instances/96a06f54-cd8a-40f8-8530-9b53cb04b450 compute-112:/var/lib/nova/instances
3. 在mysql中将虚拟机的host,node更新为新的物理主机名字
mysql > update instances set host='compute-112', node='compute-112.local' where uuid='96a06f54-cd8a-40f8-8530-9b53cb04b450';
4. 在新的物理主机上重启nova-compute 服务(不确定是否需要)启动新的虚拟机 nova start 96a06f54-cd8a-40f8-8530-9b53cb04b450
一切正常后删掉原来主机上的虚拟机目录
done.