非共享存储下的KVM虚拟机在线迁移
更新:HHH   时间:2023-1-7


环境介绍:

源宿主机IP 172.16.0.2,主机名为 compute01;

目的宿主机IP 172.16.0.3,主机名为compute02;

操作系统都是CentOS6.8

需要迁移的虚拟机名为 instance-1,磁盘采用qcow2文件存储,有两块磁盘,分别为/data/instance-1.vda 20G,/data/instance-1.vdb 500GB。

准备工作

1.      在两台宿主机上的/etc/hosts加入以下两行:

172.16.0.2 compute01

172.16.0.3 compute02

迁移中必须使用主机名通信,使用IP地址会报错

2.      配置libvirt,并重启服务(在目的宿主机配置):

[root@compute02 ~]# cat /etc/libvirt/libvirtd.conf   |egrep -v ^#|tr -s '\n'

listen_tls = 0

listen_tcp = 1

tcp_port = "16509"

mdns_adv = 0

auth_unix_ro = "none"

auth_unix_rw = "none"

autp_tcp = "none"

[root@compute02 ~]# service libvirtd restart

在compute01上使用命令virsh -c qemu+ssh://root@compute02/system,然后根据提示输入compute02的root密码,如果能连接到compute02的libvirt,说明配置成功.

3.      在目的宿主机创建2个空的qcow2文件,路径、文件名以及大小必须与原虚拟机一致:

[root@compute02 ~]# cd /data

[root@compute02 data]# qemu-image create -f qcow2 -o   preallocation=metadata instance-1.vda 20G

[root@compute02 data]# qemu-image create -f qcow2 -o   preallocation=metadata instance-1.vdb 500G

开始迁移

在compute01上执行以下命令,虚拟机就开始迁移了:

[root@compute01 ~]# virsh migrate --live --copy-storage-all   --persistent –unsafe instance-1 qemu+ssh://root@compute02/system

迁移的时间与虚拟机磁盘数据多少以及负载高低有关,可以在compute02上查看迁移进度:

[root@compute02 ~]# tail -f   /var/log/libvirt/qemu/instance-1.log

char device redirected to /dev/pts/9

Receiving block device images

Completed 1 %

迁移后

正常情况下,迁移过程不会对虚拟机有影响。迁移完成后,需要把compute01上的旧虚拟机删除,然后在compute02上把虚拟机设置为autostart。


返回云计算教程...