kvm虚拟机热迁移和冷迁移
kvm虚拟机热迁移和冷迁移
冷迁移
迁移vm的思路是将disk img磁盘映像文件与xml配置文件拷贝至目的主机重新定义即可
如果环境中部署有共享存储方案,只是需要重新在目标主机定义即可完成vm的迁移
以下实验环境为无共享存储方式
查看装好的kvm虚拟机oel1状态
查看虚拟机oel1块设备信息,虚拟机磁盘文件
关闭虚拟机开始迁移
[root@localhost ~]# virsh shutdown oel1
导出xml文件
[root@localhost ~]# virsh dumpxml oel1 > ./oel1.xml
远程拷贝文件至目标主机
[root@localhost ~]# scp /home/data/vm/oel1/oel1_qcow2.img root@192.168.2.110:/data/vm/oel1/
[root@localhost ~]# scp /home/data/vm/oel1/oel1_qcow2_1.img root@192.168.2.110:/data/vm/oel1/
目标主机将拷贝过来的xml配置文件重新注册到kvm
注册之前,需要确认xml当中配置的disk路径与实际disk 的img文件路径是否相同
# cat /etc/libvirt/qemu/oel1.xml
<source file='/data/vm/oel1/oel1_qcow2.img'/>
<source file='/data/vm/oel1/oel1_qcow2_1.img'/>
如果不一致修改为正确的disk路径
目标主机注册迁移虚拟机
# virsh define /etc/libvirt/qemu/oel1.xml
定义域 oel1(从 /etc/libvirt/qemu/oel1.xml)
启动vm虚拟机
[root@localhost ~]# virsh start oel1
console接入vm查看信息
[root@node72 ~]# virsh console oel1
动态迁移
两台KVM虚拟机,配置一致,任意一台KVM1机子上进行创建虚拟机【oel2】,迁移到KVM2
主机 | IP地址 | 主机名 |
KVM1 | 192.1682.111 | localhost |
KVN2 | 192.1682.112 | node72 |
NFS | 192.1682.113 | nfs |
[root@localhost ~]# cat /etc/hosts
192.168.2.111 localhost
192.168.2.112 node72
192.168.2.113 nfs
安装虚拟机到下面步骤是选择自定义,共享存储池-》新建一个存储卷名为centos7.0,将系统安装在nfs共享存储中
新建存储池kvmshare
采用nfs共享存储的方式存放disk img映像文件
[root@node1 ~]# cat /etc/exports
/data *(rw,sync,no_root_squash)
Kvm节点挂载nfs共享存储,路径须一致
[root@localhost ~]# mount -t nfs 192.168.2.113 :/data /mnt
[root@node72 ~]# mount -t nfs 192.168.2.113 :/data /mnt
localhost 运行vm之后,将vm热迁移至node72,vm的disk img存放在共享存储/mnt/vm/oel1路径下
开启虚拟机oel2
开始迁移
[root@localhost ~]# virsh migrate --live --verbose --abort-on-error --unsafe oel2 qemu+ssh://192.168.2.112/system
--live 热迁移
--unsafe 即使不安全也要强制迁移
--abort-on-error 在迁移过程中忽略软错误
--verbose 显示迁移进程
迁移完成后localhost上的虚拟机是关闭的
没有以下步骤也是可以运行,但可能会出问题,
在node72检查,但是node72上没有oel2的xml配置文件,需要重新导出一份
[root@node72 ~]# virsh dumpxml oel2 > /etc/libvirt/qemu/oel2.xml
注册迁移虚拟机
# virsh define /etc/libvirt/qemu/oel1.xml
热迁移成功