内存热迁移-基础用法

liaocj 2024-04-20 10:04:03
Categories: > > Tags:

热迁移

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

目的端

sudo qemu-system-x86_64 -m 4G,slots=4,maxmem=128G -smp 4,maxcpus=16 --enable-kvm \
    -drive file=fedora29.img,format=raw -nographic

开始迁移

  1. 此时可以在源端的monitor中执行下面的命令开始迁移
    fedora29.img 使用nfs 挂载:

    migrate -d tcp:0:4444
  2. 基于相同后端镜像的磁盘增量动态迁移:

    migrate -i 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中执行

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

冷迁移

源端

savevm my_tag

“savevm”命令保存的完整客户机状态包括CPU状态、内存、设备状态快照、可写磁盘中的内容。注意,这种保存快照的方法需要qcow2、qed等格式的磁盘镜像文件,因为只有它们才支持快照这个特性(可参见前面5.4节中对镜像文件格式的介绍)

目的端

loadvm my_tag