无法删除LVM thinpool – 无法停用tdata,tmeta

我在某种程度上搞砸了Ubuntu 14.04上一些精简configuration的lvm卷,现在我想通过删除其中包含所有卷和数据的thinpool来重新开始。 不幸的是,这失败了,我找不到解决办法。

逻辑卷如下所示:

user@server1:~$ sudo lvs dm_report_object: report function failed for field data_percent LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert project2 vg0 Vwi-i-tz- 22.00g mythinpool project1 vg0 Vwi---tz- 20.00g mythinpool project3 vg0 Vwi---tz- 21.00g mythinpool home vg0 -wi-ao--- 140.00g mythinpool vg0 twi-i-tz- 78.82g 52.15 root vg0 -wi-ao--- 10.00g swap vg0 -wi-ao--- 4.00g tmp vg0 -wi-ao--- 5.00g 

现在我想删除里面的三个lvms的thinpool:

 sudo lvremove /dev/vg0/mythinpool Removing pool mythinpool will also remove 3 thin volume(s). OK? [y/n]: y Do you really want to remove and DISCARD logical volume project1? [y/n]: y device-mapper: message ioctl on failed: Invalid argument Unable to deactivate open vg0-mythinpool_tdata (252:5) Unable to deactivate open vg0-mythinpool_tmeta (252:4) Failed to deactivate vg0-mythinpool-tpool Failed to resume mythinpool. Failed to update thin pool mythinpool. 

我不关心mythinpool中的数据,但卷组vg0的其余部分必须保持不变。 我怎么能解决这个问题? 谢谢你的帮助。

编辑1:从shodanshok回答后,我能够通过启动到CentOS7删除一个LVM图像,但不幸的是其他两个卷,包括精简池返回另一个错误消息 – transaction_id不匹配:

在这里输入图像说明

lvconvert – 修复也没有可用的空间

我通过一些简单的步骤来解决这个问题,如下所述: 清除损坏的LVM精简池

 vgcfgbackup -f vg.bak vgname //edit vg.bak and remove all thinp related volumes vgcfgrestore -f vg.bak vgname 

在按照@shodanshok的build议启动到插入USB存储棒的服务器上的Live CentOS7后,我能够发出所描述的命令并最终摆脱损坏的精简池而不损坏驻留在其中的根文件系统卷组。

谢谢大家的帮助,最终导致解决scheme。

有些东西正在保持您的精简卷打开。 请执行以下操作:

  • 检查卷是否安装。 如果是,请卸载它们
  • 如果你不能卸载它们,也许一些文件仍然被一个正在运行的进程打开。 你可以使用lsof | grep mountpoint lsof | grep mountpoint来查找违规进程。 杀死他们,并尝试卸载文件系统
  • 如果失败,请重新启动计算机并尝试卸载与精简卷相关的文件系统
  • 如果仍然无法卸载卷,请尝试重新启动到单用户模式,卸载它们并删除卷
  • 如果一切都失败了,请使用Live CD / USB映像启动您的电脑并删除违规的卷。

编辑:

由于您无法使用实时图像,并且您的救援系统没有小容量支持,我们可以尝试替代路线。 基本上,我们将在精简卷/池上设置“跳过激活标志”并重新启动机器。 按着这些次序:

  • 设置激活跳过: lvchange -ky vg0/project1 ; lvchange -ky vg0/project2 ; lvchange -ky vg0/project3 ; lvchange -ky vg0/mythinpool lvchange -ky vg0/project1 ; lvchange -ky vg0/project2 ; lvchange -ky vg0/project3 ; lvchange -ky vg0/mythinpool
  • 重新启动机器,卷应该是不活动的
  • 你现在可以用lvremove删除它们

但是,如果机器启动需要这些卷中的任何一个,则将以无法启动的机器结束。 确保有一个“计划B”通过恢复控制台等恢复机器。

编辑2

如果您的系统不支持-k标志,则可以尝试使用lvchange -aay volumename并重启。 这将设置自动激活的卷,它只适用于/etc/lvm.conf指定的卷