删除活动/非活动 LVM 快照的正确方法

删除活动/非活动 LVM 快照的正确方法

我已经创建了一个示例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=659762https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=674682

解决方案来自此线程,但在出现错误后我必须避免这种类型的错误。

我有一个问题,有没有更好的方法删除 LVM 快照?

这样我们就可以避免这种类型的错误。

如果有人需要更多信息,请随时问我。

答案1

如果尚未执行此操作,请确保在删除快照 lv 之前未安装它。只需在 ruby​​ 脚本中添加一行额外的代码,以便在执行 lvremove 之前卸载快照 lv。在 lvremove 中添加一个条件也是明智之举,该条件要求分区未安装,以便 lvremove 继续进行。

希望这对你有帮助,

MG

相关内容