问题遇到的现象和发生背景
我想通过qemu-system-x86_64命令利用基础镜像生成的快照同时启动多个windows kvm虚拟机,但是如果同时启动的虚拟机数量过多会吃内存,造成系统死机;于是我改用其他方式,都没法达到我想要的目的
操作环境、软件版本等信息
宿主机操作环境:centos7.9
软件:qemu-system-x86_64
虚拟机操作系统:windows7,windows10
尝试过的解决方法
最开始,我在qemu的monitor模式下执行savevm指令给基础镜像打快照,快照数据会保存在基础镜像里面,然后运行时我把该镜像复制到某个目录下并将其命名为101,102,103等,这样确实可以通过loadvm启动几个虚拟机,但是由于镜像文件很大,复制操作非常占内存,同时执行多个这样的操作会马上将系统内存吃满并造成死机
于是,我尝试第二种方法,我在基础镜像上利用qemu执行savevm生成快照,然后利用基础镜像在某个目录下利用qemu-img命令生成增量镜像(用来省去耗内存的镜像复制操作),再利用qemu-system-x86_64命令在增量镜像执行loadvm命令恢复快照,发现无法恢复基础镜像上的快照,提示增量镜像没有那个快照
最后,我改用virsh,在基础镜像上生成外置内存checkpoint,再试图利用增量镜像+基础镜像的checkpoint来恢复虚拟机,又报uuid不一致。
我想要达到的结果
Xen是可以通过xl工具实现基础镜像打外置checkpoint,然后再生成增量镜像及其配置文件,然后执行xl restore vms_cfg_path base_image.checkpoint启动多个增量镜像,kvm想达到该效果还如何做?