从用法说起
我们通过例子来看一下,要做一次热迁移需要如何操作。
tcp传输
源端
sudo qemu-system-x86_64 -m 4G,slots=4,maxmem=128G -smp 4,maxcpus=16 --enable-kvm \
-drive file=fedora29.img,format=raw -nographic
源端的qemu命令和平时的没有什么两样。
目的端
sudo qemu-system-x86_64 -m 4G,slots=4,maxmem=128G -smp 4,maxcpus=16 --enable-kvm \
-drive file=fedora29.img,format=raw -nographic \
-incoming tcp:0:4444
目的端要保证和源端的命令行是一样的,且要加上"-incoming tcp:0:4444"
开始迁移
此时可以在源端的monitor中执行下面的命令开始迁移
migrate -d tcp:0:4444
exec传输
这种严格来说不能叫热迁移,因为虚拟机有停顿。不过因为从命令行的形式上看类似,就放在这里。
源端
sudo qemu-system-x86_64 -m 4G,slots=4,maxmem=128G -smp 4,maxcpus=16 --enable-kvm \
-drive file=fedora29.img,format=raw -nographic
虚拟机的启动是一样的,但是源端启动后就需要在monitor中执行
stop
migrate "exec cat > /backup_file"
quit
可以看到,源端的虚拟机不仅停止了,还退出了。
目的端
sudo qemu-system-x86_64 -m 4G,slots=4,maxmem=128G -smp 4,maxcpus=16 --enable-kvm \
-drive file=fedora29.img,format=raw -nographic \
-incoming "exec:cat < /backup_file"
运行之后在monitor中执行
cont
更多用法可以参考Migration
Last updated
Was this helpful?