如何“保留” LVM 快照中的数据?

如何“保留” LVM 快照中的数据?

这个问题处理创建 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它将几乎立即发生)

请小心,不要丢失数据。在撰写本文时,之前的答案却恰恰相反。请参阅另一个答案以获得详细解释。

答案2

  • 要丢弃快照,只需使用以下命令删除卷sudo lvremove vgpool/lvboot-snapshot。尝试移除它之前,请确保它未被安装。

  • 要撤消自拍摄快照以来所做的更改并删除快照,请使用sudo lvconvert --merge vgpool/lvboot-snap,然后重新启动。(此操作将在启动时执行,然后挂载文件系统。)

相关内容