Назад | Перейти на главную страницу

Невозможно удалить LVM thinpool - невозможно деактивировать tdata, tmeta

Я как-то испортил несколько томов lvm с тонкой подготовкой в ​​ubuntu 14.04, и теперь я хочу начать все заново, удалив тонкий пул со всеми его томами и данными внутри. К сожалению, это не удается, и я не могу найти решение.

Логические тома выглядят так:

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           

Теперь я хочу удалить тонкий бассейн с тремя уровнями внутри:

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 я смог удалить один LVM-образ, загрузившись в CentOS7, но, к сожалению, два других тома, включая тонкий пул, возвращают другое сообщение об ошибке - transaction_id mismatch:

Также нет места для lvconvert --repair

Я, наконец, решил это очень с помощью нескольких простых шагов, как описано здесь: удалить поврежденный тонкий пул LVM

vgcfgbackup -f  vg.bak   vgname

//edit vg.bak and remove all thinp related volumes

vgcfgrestore -f vg.bak  vgname

Следуя совету @shodanshok по загрузке в Live CentOS7, прикрепленного к серверу на USB-накопителе, я смог выполнить описанные команды и в конечном итоге избавиться от поврежденного тонкого пула, не повредив корневую файловую систему, которая находится внутри того же группа томов.

Спасибо всем за ваш полезный совет, который в конечном итоге привел к решению.

Что-то держит ваши тонкие тома открытыми. Пожалуйста, сделайте следующее:

  • проверьте, смонтированы ли тома. Если да, размонтируйте их
  • если вы не можете их размонтировать, возможно, некоторые файлы все еще открываются запущенным процессом. Ты можешь использовать lsof | grep mountpoint найти нарушающие процессы. Убейте их и попробуйте размонтировать файловые системы
  • если это не удается, перезагрузите компьютер и попробуйте размонтировать файловые системы, связанные с тонкими томами.
  • если вы по-прежнему не можете размонтировать тома, попробуйте перезагрузиться в однопользовательском режиме, размонтируйте их и удалите тома
  • если ничего не помогает, используйте образ Live CD / USB для загрузки компьютера и удалите проблемные тома.

РЕДАКТИРОВАТЬ:

Поскольку вы не можете использовать живое изображение, а ваша система спасения не поддерживает тонкие тома, мы можем попробовать альтернативный путь. Обычно мы устанавливаем «флаг пропуска активации» на тонких томах / пуле и перезагружаем машину. Следуй этим шагам:

  • установить пропуск активации: lvchange -ky vg0/project1 ; lvchange -ky vg0/project2 ; lvchange -ky vg0/project3 ; lvchange -ky vg0/mythinpool
  • перезагрузите машину, и тома должны быть неактивными
  • теперь вы можете удалить их с помощью lvremove

Однако, если какой-либо из этих томов необходим для загрузки машины, вы получите незагружаемую машину. Убедитесь, что у вас есть план Б по восстановлению машины с помощью консоли восстановления или чего-то подобного.

РЕДАКТИРОВАТЬ 2

Если ваша система не поддерживает -k флаг, вы можете попробовать использовать lvchange -aay volumename и перезагрузитесь. Это установит громкость для автоактивации, которая работает только для томов, указанных на /etc/lvm.conf