这个问题处理创建 LVM 快照,但没有详细说明之后如何处理它们。
例如,假设我有一个卷组 ( vgpool
) 和一个逻辑卷 ( lvboot
)。我创建该卷的快照 ( lvboot-snap
),如下所示:
lvcreate --size 1G --snapshot --name lvboot-snap /dev/vgpool/lvboot
我运行什么命令来:
- 让一切恢复原状前快照?
- 保存所有写入的内容后快照并删除快照?
答案1
lvconvert --merge
不会“保留自拍摄快照以来所做的更改” - 它会销毁这些更改!
要理解原因,您必须意识到,在 LVM 中,快照会存储自创建以来对原始卷所做的更改。这就是为什么它是 COW(写时复制)快照 - 原始卷照常写入,但原始数据在写入之前复制到快照中。
所以:
丢弃自快照以来的所有数据 - 即“回滚”到拍摄快照时:(
lvconvert --merge vgpool/lvboot-snap
需要一段时间)由于您对此时的原始 LV 感到满意,因此停止写入快照:(
lvremove vgpool/lvboot-snap
它将几乎立即发生)
请小心,不要丢失数据。在撰写本文时,之前的答案却恰恰相反。请参阅另一个答案以获得详细解释。