我是虚拟化新手,想确保我了解删除快照时会发生什么
假设我有一棵这样的树
- 根据
- 快照A
- 快照B
- 快照C
- 快照B
- 快照A
两个问题:
如果我删除 SnapShotB,SnapShotC 会发生什么?
来自 vmware 帮助“注意:单击“删除”会将快照数据提交给父级并删除选定的快照。“所以,如果我安装了软件或将文件添加到 SnapShotB 并将其删除,这是否意味着该软件和这些文件会被推送到 SnapShotA?
答案1
您需要重写该快照树。实际的树如下所示:
- 快照A
- 快照B
- 快照C
- 当前的
- 快照C
- 快照B
当您拍摄快照 A 时,主 vmdk 文件被冻结,并创建了一个新的增量文件。从那时起,所有更改都写入增量文件。
当您拍摄快照 B 时,第一个增量文件被冻结,并创建了另一个增量文件。从那时起,所有更改都写入这个新的增量文件。
当你拍摄 SnapshotC 时,第二个增量文件被冻结,并创建另一个增量文件,代表“当前”状态。所有更改都写入此文件。
如果删除 SnapshotB,第一个增量文件将与代表 SnapshotC 的第二个增量文件合并。因此,SnapshotC 的文件将要但实际状态SnapshotC 不会改变。
不,快照不是这样修改的。删除 SnapshotB 会将这些更改推送到树中下一个依赖于这些更改的文件。将它们应用于 SnapshotA(基础 vmdk)实际上会将 SnapshotA 变成 SnapshotB,这会使快照无法使用。:)
答案2
在某些情况下,快照在 vSphere 与 Workstation 中的工作方式不同
对于您提出的问题,如果您使用 VMware Workstation 或 VMware vSphere Client,则行为是相同的。但是,如果您删除了 SnapshotC,则行为会有所不同。
- 快照A
- 快照B
- 快照C
- 你在这里
- 快照C
- 快照B
如果您在 vSphere Client 中删除 SnapshotC,SnapshotB 将成为 SnapshotC,但保留其名称。通过删除,您将把对 SnapshotC 所做的更改提交到 SnapshotB。如果您不想这样做,您必须在删除之前“转到”SnapshotB,如下所示:
- 快照A
- 快照B
- 你在这里
- 快照C
- 快照B
此行为在 VMware 论坛帖子中有详细说明:
http://communities.vmware.com/thread/58030
在 VMware Workstation 中,如果您在 SnapshotC 下删除它,则更改不会向上提交。您将丢失更改并返回到 SnapshotB 下。