我最近根据之前的一组快照在 Google Compute 中重新创建了一个磁盘/虚拟机映像。这些快照当前的日期和大小如下:
- 5 月 20 日 60 MB - 5 月 21 日 372 MB - 5 月 22 日 255 MB - 5 月 23 日 118 MB - 5 月 24 日 93 MB - 5月25日 1110 MB
创建磁盘后,我将原始源磁盘脱机(停止虚拟机),将新磁盘设为启动盘,然后启动它。然后我保存了它的机器映像,然后进行了手动快照。新快照:
5月25日 16 MB
我没有图像可以验证,但我相当确定 5 月 20 日的原始快照有 300+ MB。
问题:
由于后续快照会废弃现有快照的部分内容,那么废弃文件是否会从前一个快照中“取出”?即,将快照解压缩,删除部分内容,然后重新压缩?
为什么新创建的磁盘的第一个快照这么小?看起来它必须链接到创建它的磁盘的快照系列。注意:原始磁盘的快照计划已与其断开连接,并在新磁盘上重新使用。
如果删除了第一个磁盘的系列,新创建的磁盘的快照会怎样?它会失效吗?还是原始快照会“卷入其中”?
有人能向我解释一下发生了什么事吗?
更新2020-05-27:
后续调查发现了一些行为;仍在等待进一步调查:
我从最旧的快照开始依次删除快照,并观察其他快照的大小变化。显然,快照不是只读的。删除旧快照时,会将某些内容合并到后续剩余的快照中:
Sys-1 20 年 5 月 60 MB Sys-1 5月21日 372 MB 380 MB Sys-1 5月22日 255 MB 255 MB 463 MB Sys-1 5月23日 118 MB 118 MB 118 MB 468 MB Sys-1 5月 24日 93 MB 93 MB 93 MB 93 MB 468 MB Sys-1 5月25日 1110 MB 1110 MB 1110 MB 1110 MB 1110 MB 1130 MB Sys-2 5月25日 16 MB 16 MB 16 MB 16 MB 16 MB 16 MB
从原始快照系列重新创建的磁盘快照仍为 16 MB。当我觉得足够安全时,我将删除原始磁盘的最后一个(5 月 25 日)备份,并查看重新创建的磁盘的快照会发生什么情况。
更新2020-05-29:
删除原始磁盘的最后一个快照(Sys-1 5 月 25 日,1130 MB)后,其他内容均未发生变化。特别是,恢复磁盘的 16 MB 首次快照(Sys-2 5 月 25 日,16 MB)未扩展。因此,当从磁盘 A 的机器映像创建磁盘 B 并将磁盘 A 的快照应用于磁盘 B,然后在 VM 中使用磁盘 B 替换磁盘 A 时,VM 的快照可能不再适合恢复:
Sys-1 5月25日 1110 MB 1110 MB 1110 MB 1110 MB 1110 MB 1130 MB Sys-2 5月25日 16 MB 16 MB 16 MB 16 MB 16 MB 16 MB 16 MB
我设法强制生成完整快照的唯一方法如下:
VM-A(运行系统) 在大约所需的快照时间从 VM-A 创建 MI-A 机器映像 VM-B(从 MI-A 创建的备份 VM) 不幸的是,创建后它会自动启动;停止它 从 VM-B 创建的 SS-B 快照 删除虚拟机 B
在原始场景中,这将由 Sys-3 执行;创建后立即进行的手动快照为 1.53 GB,这似乎是合理的。
上述事件中有一个未知因素与虚拟机名称有关。第一个替换系统 (Sys-2) 已连接到原始虚拟机 — Sys-1 是被取代在该 VM 中将 Sys-2 与 Sys-2 合并。由于它们是同一个 VM,因此快照机制可能出现混淆。创建 Sys-3 时,它被放入一个没有现有快照计划的新 VM 中。
更新2020-05-29(2):
当我再次查看快照时(大约 1 小时后?),我现在完全糊涂了。5 月 25 日的 Sys-2 原始快照(以前为 16 MB)现在为 1.52 GB。这是新磁盘的第一个快照(根据原始磁盘的快照创建)。
答案1
快照是增加的并自动压缩。磁盘的第一个快照是完整快照包含磁盘上的所有数据。后续快照仅包含新的或修改的数据自上一次快照以来。出于可靠性原因,快照有时可能会捕获磁盘的完整映像。
快照创建于块级别。它们不知道文件系统级别发生了什么。但是,某些文件系统可以将未使用块的信息“传播”到设备(修剪)。这有助于减少快照大小。
尽管快照大小在某种程度上与文件系统顶部的数据库表和文件系统本身的更改量相关,但从这个角度来看,快照大小为评估计费提供了更有价值的信息,因为它有助于了解您消耗了多少实际存储空间。
问题:
不是。快照是某一时刻冻结的数据的只读副本。默认情况下,快照是增量的。创建后续快照时,文件系统级别的先前现有快照中没有任何变化。
磁盘的首次快照是包含磁盘上所有数据的完整快照。由于新创建的磁盘是空的,并且快照会自动压缩,因此体积较小。
如果我们谈论的是两个不同的磁盘:“第一个磁盘”和“新创建的磁盘”(即使它是“从之前的一组快照”创建的),它们的快照是独立的,并且如果删除第一个磁盘的快照,第二个磁盘的快照不会发生任何事情。