重现步骤

重现步骤

重现步骤

  • 使用 lvm 创建卷的快照

lvcreate -L 200GB -s -n snapshotname /dev/hostname-vg/root

  • 更改文件系统

  • 将文件系统恢复到创建快照时的状态

lvconvert --merge /dev/hsotname-vg/snapshottorestore

  • 重新启动(因为我正在恢复根卷)
  • 显示快照列表lvs -a

期望的行为

原始快照仍然存在

实际行为

系统恢复到快照时,原始快照已被删除

问题

是否有替代方案lvconvert,或者我可以添加标志,以便不删除原始快照?

用例

  • 我对正在运行的系统进行快照
  • 我做出改变
  • 改变失败
  • 我恢复到工作系统
  • 我想以稍微不同的方式重试更改,保留再次恢复到正常工作系统的可能性

使用lvconvert上述命令,我需要记住在恢复后再次手动重新创建相同的快照。由于这是一个很大的卷,有很多变化,所以我需要等待半个小时才能制作快照。(您无法拍摄仍在合并的卷的快照)

该卷立即恢复。所以我有一个干净的系统可以立即使用,但我不想在没有备份的情况下继续。所以我需要花半个小时,然后备份,然后进行更改。

答案1

除非您将此功能作为 LVM 中的一项功能实现,否则您无法保留快照。

当写入具有快照的逻辑卷时,它首先将当前块从原点复制到快照中,并将该块标记为已更改。(来源

lvconvert 合并启动后,它会停止将数据复制到快照(写时复制)。如果继续这样做,它会将从快照合并的数据复制回快照本身。

当 lvconvert 合并完成后,它会要求删除快照这里。这是因为快照仍然包含在覆盖源数据时收到的数据的副本。

将快照合并操作标记为“保留快照”将是一个新功能,这将在合并完成并删除后触发快照创建。

就您而言,您可能已经对创建具有特定名称的快照感到满意,然后有一个@reboot cronjob 检查快照是否存在,如果不存在则创建一个。

相关内容