在拍摄虚拟机快照之前停止虚拟机是最佳做法吗?

在拍摄虚拟机快照之前停止虚拟机是最佳做法吗?

背景

我倾向于在系统运行时保存 VirtualBox VM 快照。这样可以在我恢复下一个工作会话时节省一些时间。

但我在一些地方读到过,最好的做法是在拍摄快照之前关闭虚拟机。

例子

  • 备份系统的最佳实践

    为了获得一致且快速的快照,我建议您在拍摄快照之前关闭虚拟机。

  • 另一个 SE 答案

    您可以使用 VirtualBox 的内置快照功能。

    1. 关闭你的客户操作系统
    2. 在 VirtualBox 管理器中,选择您的客户虚拟机
    3. <等等>
  • 本网站

    最好选择关闭系统的快照,而不是暂停或运行系统的快照。尽管设置起来不方便,但它可以节省一些硬盘空间。


到目前为止,我发现对正在运行的虚拟机进行快照的唯一不便之处是:

  • 拍摄快照时系统时钟冻结。
  • 占用了一点额外的存储空间。
  • 虚拟机的系统设置(例如内存、芯片组等)无法更改。

以上这些都是小问题,可以轻松解决。

但我没有找到任何令人信服的证据来解释为什么最好在拍摄快照之前关闭虚拟机。

网络搜索没有找到太多结果任何一个。

我的问题

在拍摄快照之前关闭虚拟机真的是最佳做法吗?如果是,为什么?

答案1

从技术上来说,最好关闭系统,因为这样数据才能正确且完整地写入。

假设磁盘文件系统是日志文件系统,则文件系统应该始终保持一致,因此它是安全的(从数据/时间点恢复的角度来看) - 但是,它可能比实际情况稍微落后(几秒)。

一个有用的思考方式是 - 启动实时 VM 的快照非常类似于突然断电后打开计算机。磁盘上的数据是一致的,但您未保存的内容已消失,操作系统将需要 fsck/检查文件系统的一致性(并重播日志...)。

如果系统是由 Web/数据库/事务驱动的,则对实时虚拟机进行快照可能是一种完全可行的备份方式,对于需要非常高正常运行时间的系统来说,但对于桌面/将数据存储在内存中直到在用户 cm 处写入的地方来说,这可能并不理想。

相关内容