xen 保存快照的实现之 —— device model 状态保存
实现要点:
设备状态保存在 /var/lib/xen/qemu-save.x 文件
这个文件由 qemu-dm 产生,也由 qemu-dm 加载,其实这个文件就是 qemu-dm 的快照文件,
可以通过 loadvm 恢复
xl save 是通过 Xenstore 与 Qemu-dm 交互的,
/local/domain/0/device-model/%d/command 键写入 'save',则qemu-dm进程进入保存快照
流程,保存在 qemu-save.x 文件,然后杀掉自己
/local/domain/0/device-model/1/state 通过检测这个键是否为 paused 可以确认qemu-dm
进程是否已完全关闭
xl save 将 qemu-save.x 二进制文件读取并写入 save 文件的最后(有字符串标记)
xl restore 将save文件最后写入 /var/lib/xen/qemu-save.x 文件并启动 qemu-dm 时设置
loadvm 参数, Qemu-dm 从 qemu-save.x 文件恢复