分类: Linux
Kvm虚拟机静态迁移

什么是静态迁移?
静态迁移:也叫做常规迁移、离线迁移(Offline Migration)。就是在虚拟机关机或暂停的情况下从一台物理机迁移到另一台物理机。因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的 情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台物理主机上;如果需要保存虚拟机迁移之前的状态,在迁移之前将虚拟机暂停,然后拷贝状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行,适用于对服务可用性要求不严格的场合。

说明
(1)虚拟主机各自使用本地存储存放虚拟机磁盘文件
本文实现基于本地磁盘存储虚拟机磁盘文件的迁移方式

(2)虚拟主机之间使用共享存储存放虚拟机磁盘文件
该方式只是在目标虚拟主机上重新定义虚拟机就可以了

静态迁移过程
1、确定虚拟机关闭状态

[root@dev_test_25 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     c160                           关闭
 -     wangya_win7                    关闭
 -     winxp_test                     关闭

2、准备迁移c160虚拟机,查看该虚拟机配置的磁盘文件

[root@dev_test_25 ~]# virsh domblklist c160
Target     Source
------------------------------------------------
vda        /home/c160
hdc        -

3、导出虚拟机配置文件

virsh dumpxml c160 > /opt/c160.xml

4、拷贝配置文件到目标主机上

scp /opt/c160.xml 192.168.121.200:/etc/libvirt/qemu/

5、拷贝虚拟磁盘文件

scp -r /home/c160 192.168.121.200:/kvm

目标虚拟主机
上面已经将虚拟机磁盘文件与配置文件都已经复制到目标虚拟主机上了。下面开始配置与启动。
1、对虚拟主机进行注册

virsh define /etc/libvirt/qemu/c160.xml

2、查看目标虚拟主机环境

virsh list --all
 Id    Name                           State
----------------------------------------------------
 8     c160                           shut off

3、确认源地址和迁移后的磁盘路径一致,如果不一致做个软连接即可,否则不能启动
如原来的路径在/home/c160,迁移以后的地址在/kvm/c160 做下软连接即可:

ln -s /kvm/c160 /home/c160

4、最后启动虚拟机

virsh start c160

启动完成以后可以ssh登陆上去检查下,至此kvm静态迁移完毕。
若把虚拟机静态迁移到不同平台(不同型号的cpu)的主机上,启动的时候报错,根据错误提示修改/etc/libvirt/qemu/下面的虚拟配置文件即可。


相关博文:

发表新评论