8.2. 实时快照

对标记为 shareable 的硬盘进行快照不被支持。另外,对基于 Direct LUN 连接的磁盘进行快照也不被支持。
所有其它没有正在进行克隆或迁移操作的虚拟机都可以在运行、暂停和停止的状态下进行快照。
当对一个虚拟机进行实时快照时,Manager 会要求 SPM 主机创建一个新的卷来为虚拟机使用。当新卷创建好后,Manager 调用 VDSM 来和运行虚拟机的主机上的 libvirt 和 qemu 进行交流,要求虚拟机的写操作在新卷上进行。如果虚拟机可以在新卷上进行写操作,则认为快照已经成功完成,虚拟机将不再在旧的卷中写数据。如果虚拟机无法在新卷上进行写操作,则认为快照操作失败,新的卷会被删除。
在虚拟机快照开始后,直到快照完成前,虚拟机需要对当前卷和新创建的卷都进行访问,因此这两个卷都需要允许进行读和写访问。
安装了带有静止(quiescing)功能的 guest 代理的虚拟机可以保证文件系统在不同快照间的一致性。已经注册的 Red Hat Enterprise Linux 虚拟机可以安装 qemu-guest-agent 来在进行快照前启用静止功能。
如果在进行快照时,虚拟机有支持静止功能的 guest 代理,VDSM 会使用 libvirt 和代理进行交流来准备快照。在实际进行快照前,没有完成的写操作会被完成,然后文件系统会被"冻结”。当快照操作完成后,libvirt 会把虚拟机的写操作切换到新的卷上,文件系统被“解冻”,对磁盘的写操作会被恢复。
所有的实时快照都会尝试使用静止功能。如果因为没有支持静止功能的 guest 代理而造成快照失败,实时快照会重新初始运行,但不会使用 use-quiescing 标志。当一个使用了静止功能文件系统的虚拟机使用快照恢复到以前状态时,虚拟机在启动时不会对文件系统进行检查。如果被恢复的虚拟机没有使用静止功能的文件系统,在使用快照恢复系统后,启动虚拟机时就需要对文件系统进行检查。