前言:
虚拟机的迁移分为两种:
1、instance建立在存储上,实现block live migration。
2、instance建立在分布式共享存储上(这里可以使用nfs、GlusterFS、ceph等),实现live migration。
但是如果我们的集群环境没有搭建这两种集群,那么这两种迁移方式也就不能使用。需要我们手动迁移虚拟机(VM)。
手动迁移虚拟机方法详解:
1、在迁移之前需要把虚拟机停掉。使用如下命令:

查看虚拟机:
$nova list
停止将要迁移的虚拟机
$nova stop INSTANCEID

2、在/var/lib/nova/instances下找到对应的虚拟的的目录,目录名就是虚拟机的id,将该目录拷贝到目的主机下的/var/lib/nova/instances,确保权限一致。
$scp /var/lib/nova/instances/INSTANCEID root@COMPUTENODENAME:~/
3、更改MySQL中的host、node字段为新的物理主机名字
mysql > update instances set host='COMPUTENODENAME', node='COMPUTENODENAME' where uuid='INSTANCEID';
4、现在就可以在目标节点上启动虚拟机了。
启动前重启一下compute服务:
$service nova-compute restart
启动虚拟机:
$nova start INSTANCEID