我已经通过以下方式制作了一个 LVM 快照
lvcreate --name snap --size 10G -s /dev/vg00/vm
如果我想删除快照并且不保留自快照以来发生的更改,我应该写什么命令?
我应该编写什么命令来将快照中的更改转入 /dev/vg00/vm ?
答案1
删除快照使用:
lvremove 组/快照名称
合并快照使用:
lvconvert --合并组/快照名称
尽管合并将延迟到原始卷和快照卷卸载后进行。您可能需要更新内核 (>=2.6.33) 和 lvm 工具才能支持合并。
答案2
答案3
好的,首先:老旧的 LVM1 仅支持只读快照。在这种情况下,卸载快照后,修改将被复制到原始映像。LVM2 提供对读写快照的支持,允许您使用虚拟机映像等进行更有趣的操作。
Novell 有一个非常侄女的文件关于使用 LVM 回滚失败的操作系统更新的概念。请查看该文章,它提供了您所需的所有信息。
答案4
我刚刚在选择这个问题的答案后丢失了数据,所以我发布此信息以澄清问题。如果我错了,请纠正我。
在我看来,LVM 术语是倒退的。供参考redhat 关于 LVM 快照的文档
当 LVM 说“删除快照”时,这意味着将来自 COW 卷的更改合并到原始卷中。
当 LVM 说“合并快照”时,这意味着将原始卷恢复到制作快照时的状态,从而有效地删除存储在 COW 卷中的更改。
我发现这非常违反直觉,因此丢失了 43 小时的数据。不要犯我犯过的错误!
编辑:好的,现在我明白我的错误了。摘自文档:
当您在拍摄快照后修改原始卷(源卷)时,快照功能会复制修改后的数据区域,就像更改之前一样,以便重建卷的状态。创建快照后,仍可以对源卷进行完全读写访问。
我错误地认为 LVM 是通过冻结原始分区并将快照安装为覆盖来存储修改来操作的,但这句话清楚地表明了它确实如此不是以那种方式工作。