В настоящее время я имею дело с отказом нескольких дисков в группе томов 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