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

Как остановить группу томов Linux LVM?

В настоящее время я имею дело с отказом нескольких дисков в группе томов Linux LVM, резервное копирование которой выполнено с помощью RAID-5. md устройство. Один диск был извлечен полностью, а другой показывает ограниченное количество поврежденных секторов из-за того, что, похоже, было некорректным источником питания.

Проблема в том, что как только возникает ошибка ввода-вывода, md отключает массив, так как в нем недостаточно устройств для его работоспособности. куда md единственный участник, я мог mdadm --stop массив, а затем воссоздайте его, чтобы снова активировать все устройства.

К сожалению, этот массив является PV в группе томов LVM, и я не могу заставить ядро ​​его выпустить. vgchange -an вроде ничего не делает, бар извергает пару ошибок ввода-вывода.

Я явно чего-то упускаю, но как во имя -вставить-любимое-божество- получить LVM для выпуска основного PV без перезагрузка сервера?

Я бы сказал, что вы в очень плохой форме. Если вы просто отчаянно пытаетесь каким-то образом восстановить некоторые из ваших данных и не заботитесь о LVM (чьи метаданные, вероятно, уже повреждены, судя по ошибкам ввода-вывода из vgchange -an), Я бы рекомендовал перейти на низкий уровень. Помните, что LVM - это просто оболочка для сопоставителя устройств ядра, поэтому вы можете использовать dmsetup для управления вашими логическими томами. dmsetup table предоставит вам список активных в настоящее время логических дисков, поэтому рекомендуется сделать резервную копию его вывода на случай, если вы даже не сможете получить доступ к своему LVM позже. Затем вы можете попробовать остановить устройства, которые хотите остановить. dmsetup remove или даже dmsetup remove_all. Но сначала убедитесь, что они отключены.

И, конечно же, скопируйте как можно больше данных в безопасное место.

когда vgchange -an похоже, ничего не делает (в системе Ubuntu), то подумайте о том, чтобы обвинить правила udev после прочтения этого отчета об ошибке (я нашел это в Google для "dmsetup remove lvm vgchange"): https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1088081

Обходной путь выглядит следующим образом (спасибо Мартину):

sudo umount /mnt # asume the drive in question is mounted under /mnt  
sudo service udev stop
sudo lvchange -a n <LV-name>
sudo cryptsetup luksClose <LUKS-devicename>  
sudo service udev start