У нас произошел сбой диска на сервере, и мы заменили его перед удалением диска из LVM.
Сервер имеет 4 физических диска (PV), каждый со своей собственной группой томов (VG). Каждая группа VG имеет 2 или более логических тома (LV). Теперь LVM жалуется на отсутствие диска. Итак, у нас есть VG (vg04) с двумя LV, которые стали сиротами, которые нам нужно удалить из системы.
Проблема в том, что каждый раз, когда мы запускаем любую команду LVM, мы получаем следующие ошибки чтения:
# lvscan
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
# vgreduce vg04 --removemissing --force
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
# vgchange -a n /dev/vg04
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
# lvchange -a n /dev/vg04/vz
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
Skipping volume group vg04
Отсутствующие VG и LV не важны, мы просто хотим их удалить.
Как видите, мы испробовали все сделанные предложения, но пока безуспешно.
Вывод из lvm dumpconfig можно проверить на http://pastebin.com/MHiBzrLJ
Решением было запустить dmsetup, в данном случае две команды
dmsetup remove vg04-vz
dmsetup remove vg04-swap
Перед тем, как сделать это, я проверил с помощью команды dmsetup info, что «счетчик открытий» для обоих LV равен нулю.
ПРЕДУПРЕЖДЕНИЕ: dmsetup может нанести серьезный ущерб вашим дискам, поэтому всем, кто будет использовать эту информацию в будущем, обязательно прочтите страницу руководства.
Я испытал подобное после удаления диска VMware /dev/sdb
.
Использовать lsscsi
чтобы определить, какое устройство используется (возможно, вам потребуется установить программу), затем запустите lsscsi
:
# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[2:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[2:0:1:0] disk VMware Virtual disk 1.0 /dev/sdb <== the removed physical disk
[2:0:2:0] disk VMware Virtual disk 1.0 /dev/sdc
Теперь напишите файл удаления с помощью
# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete
Устройство сразу пропало.
vgchange -a n / dev / vg04
Если у вас все еще активны логические тома, возможно, вам придется
lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz
и т.п.