我已经创建了一个示例ruby 脚本文件用于从系统中删除多余的 LVM 快照。
要删除 LVM 快照,我们使用lvremove
命令。此命令运行正常,我们可以从系统中删除快照。
# sudo lvremove /dev/ops/dbbackup
lvremove -- do you really want to remove "/dev/ops/dbbackup"? [y/n]: y
有时,删除快照时我们会收到以下错误。
Unable to deactivate open rootfs_12.10_20140812_00-cow (252:8)
Failed to resume rootfs_12.10_20140812_00.
libdevmapper exiting with 7 device(s) still suspended.
系统冻结。我们无法发出任何命令,也无法对其执行任何操作。
重启系统后,一切正常。我们可以执行所有操作,甚至还可以删除该快照。
我搜索了一下,找到了这些帖子 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659762和 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=674682
解决方案来自此线程,但在出现错误后我必须避免这种类型的错误。
我有一个问题,有没有更好的方法删除 LVM 快照?
这样我们就可以避免这种类型的错误。
如果有人需要更多信息,请随时问我。
答案1
如果尚未执行此操作,请确保在删除快照 lv 之前未安装它。只需在 ruby 脚本中添加一行额外的代码,以便在执行 lvremove 之前卸载快照 lv。在 lvremove 中添加一个条件也是明智之举,该条件要求分区未安装,以便 lvremove 继续进行。
希望这对你有帮助,
MG