3.9.2 基于相同后端镜像的磁盘增量动态迁移
一、 整体架构图
二、源宿主机配置
需要保证源宿主机和目的宿主机的原始镜像文件相同,所以首先制作一份 qcow2 文件,使用此文件启动虚拟机。命令行如下:
# qemu-img create -f qcow2 -o backing_file=/var/lib/libvirt/images/Loongnix-server-20-loongarch64.qcow2,size=50G migrate-test.qcow2
# qemu-system-loongarch64 \
-name 'avocado-vt-vm1' \
-cpu 'Loongson-3A5000' \
-machine loongson7a \
-m 2048 \
-smp 2 \
-bios /usr/share/qemu/loongarch_bios.bin \
-boot c -d int \
-drive file=migrate-test.qcow2,if=virtio \
-enable-kvm \
-vga qxl \
-vnc :0 \
-net nic -net tap \
-serial stdio\
-monitor telnet:localhost:4444,server,nowait
二、目的宿主机配置
在目的宿主机上,建立相同的 qcow2 格式的虚拟机镜像文件,并带有 “-incoming” 参数来启动虚拟机使其处于迁移监听状态。命令行如下:
# qemu-img create -f qcow2 -o backing_file=/var/lib/libvirt/images/Loongnix-server-20-loongarch64.qcow2,size=50G migrate-test.qcow2
# qemu-system-loongarch64 \
-name 'avocado-vt-vm1' \
-cpu 'Loongson-3A5000' \
-machine loongson7a \
-m 2048 \
-smp 2 \
-bios /usr/share/qemu/loongarch_bios.bin \
-boot c -d int \
-drive file=migrate-test.qcow2,if=virtio \
-enable-kvm \
-vga qxl \
-vnc :0 \
-net nic -net tap \
-serial stdio\
-monitor telnet:localhost:4444,server,nowait
-incoming tcp:0:6666
三、迁移
在源宿主机的 QEMU monitor 中,运行 “migrate -i tcp:kvm-host2:6666” 命令,即可进行动态迁移( “-i” 表示 磁盘增量拷贝)。在迁移过程显示实时迁移百分比,提示为 “Completed 100 %” 即表示迁移完成。
# telnet localhost 4444
Trying ::1...
Connected to localhost.
Escape character is '^]'.
QEMU 3.1.0 monitor - type 'help' for more information
(qemu)
(qemu) migrate -i tcp:10.20.42.197:6666
Completed 100 %
与此同时,目的宿主机上启动迁移监听状态的命令行所在标准输出中,也会提示正在传输的磁盘镜像百分比。当传输完成时也会提示 "Completed 100 %", 如下:
# qemu-system-loongarch64 \
-name 'avocado-vt-vm1' \
-cpu 'Loongson-3A5000' \
-machine loongson7a \
-m 2048 \
-smp 2 \
-bios /usr/share/qemu/loongarch_bios.bin \
-boot c -d int \
-drive file=migrate-test.qcow2,if=virtio \
-enable-kvm \
-vga qxl \
-vnc :0 \
-net nic -net tap \
-serial stdio\
-monitor telnet:localhost:4444,server,nowait
-incoming tcp:0:6666
Receiving block device images
Completed 100 %
至此,基于相同后端镜像的磁盘增量动态迁移就已经完成了。
