Жил был сервер dell r710. Вдруг, неожиданно, после 12 лет работы умирает raid-контроллер (типа lsi 9208). При старте сервак говорит - иди к саппорту.
Ну и хрен с ним!
Достаем из двух зеркал (которые были в одном VG) по одному диску и цепляем к машинке. На каждом диске есть раздел с типом 8E Linux LVM.
pvs не хочет их видеть :(
Первый звоночек, что что-то не так - в /proc/partitions нет для диска партиций :-/
Но мы умные! Запускаем blockdev --rereadpt ... и вуаля, в /proc/partitions есть инфа.
pvs показывает, что все есть!
vgs говорит что все есть!
lvs говорит, что все LV есть, но не активые.
vgchange говорит «а вот хрен тебе»!
dmesg на каждый LV по паре строк
[ 84.016907] device-mapper: table: 253:9: linear: Device lookup failed
[ 84.029914] device-mapper: ioctl: error adding target to table
bc + losetup и доступ к одному LV получен.
Но вопрос «какого хрена оно не активирует LV», все равно остался.
И тут я вспомнил про полезнейшую утиль lsblk.
А она говорит: чувак, у тебя тут на этих дисках есть 3 рейда (md124-md126)! 2 вроде живых, а один странный.
Малёха охренев, я взглянул в /proc/mdstat и нашел там 3 рейда! Все 3 были «деградате».
Откуда? В dmseg нет никаких сообщений о создании этих рейдов!
В какой момент эта братская щука захапала диски в рейд ?!
Выполняем «mdadm --stop» для всех этих огрызков и vgchange радостно сообщил, что все 7 LV доступны!
Убита куча времени.
Какая падла молча создала эти рейды: pvscan/pvchange/vgscan/vgchange ?