如何在LVM中创建只读快照,然后在工作完成后回滚到该快照?

如何在LVM中创建只读快照,然后在工作完成后回滚到该快照?

如果我想执行以下操作,可以在 LVM 中使用哪些命令:

  1. 创建卷的只读快照;
  2. (在卷中做一些实验);
  3. 然后将卷回滚到快照?

答案1

我想你正在寻找lvconvert --merge。从手册页:

- 合并

将快照合并到其原始卷中。要检查您的内核是否支持此功能,请snapshot-merge在 的输出中 查找dmsetup targets。如果原始卷和快照卷均未打开,合并将立即开始。否则,合并将在第一次激活源或快照且两者都关闭时开始。将快照合并到无法关闭的源(例如根文件系统)将被推迟到下次激活源卷时。合并开始时,生成的逻辑卷将具有源名称、次要编号和 UUID。
当合并正在进行时,对源的读取或写入将显示为定向到正在合并的快照。合并完成后,合并的快照将被删除。 可以在命令行上指定多个快照,或者可以使用 @tag 来指定将多个快照合并到其各自的源。

假设您有一个逻辑卷 vg0/system,其中包含您的 / 文件系统。

# create a read-only snapshot
lvcreate -pr --snapshot --name system_snapshot vg0/system
# upgrade or something
# if it fails, reboot and do this from a livecd
lvconvert --merge vg0/system_snapshot
# reboot again and you have your old system back

需要重新启动只是因为在这种情况下您无法卸载文件系统。如果不是/fs,unmount就够了。

请记住,合并后快照将被删除。

相关内容