LINUX.ORG.RU
ФорумAdmin

затерся суперблок, не востанавливается LVM (софтверный рейд 10)


0

1

Здравствуйте. Случилась беда. Был софтовый 10-й рейд. Создавался в альтлинукс оффис сервер 4.0 с дефолтными установками. На нем был lvm. В установщике дебиана 6.0 в его утилите для работы с софтовыми рейдами указал эти же диски для создания 10-го рейда, полагая что он подхватит рейд поднятый на них и все будет нормально. В результате массив пересоздался. Поняв что что то явно не так - отменил установку (ребилд новерняка даже толком начаться не успел). Загрузился в альт линукс - соответсвенно разделы с массива ушли. UUID не совпадает со старым. <pre> # pvscan File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum PV /dev/md0 lvm2 [419.65 GB] Total: 1 [419.65 GB] / in use: 0 [0 ] / in no VG: 1 [419.65 GB] # pvdisplay File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum --- NEW Physical volume --- PV Name /dev/md0 VG Name PV Size 419.65 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID lYovr0-1IvD-N3jI-hDp9-yMJy-WDLV-n8YI79

# vgscan File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open Reading all physical volumes. This may take a while... Incorrect metadata area header checksum </pre> нашол бэкап для <pre> # vgcfgrestore vgserver File descriptor 3 left open File descriptor 5 left open File descriptor 7 left open Incorrect metadata area header checksum Incorrect metadata area header checksum Incorrect metadata area header checksum Restore failed.

# cat /etc/mdadm.conf ARRAY /dev/md0 level=raid10 num-devices=4 UUID=b57eeb7b:6f0859ec:371fcaa3:f27b82c0 </pre> Ктонибудь сталкивался? - помогите вернуть данные.

П.С. бэкап был, по иронии судьбы он делался на те же диски что ушли (вчера поставил думал с утра на внешний винт перенесу и забыл) ППС. извиняюсь - не нашел темы по оформлению сообщений на форуме.



Последнее исправление: Generick (всего исправлений: 2)

Собери RAID10 с опцией assume-clean. Если правильно подберешь порядок винтов, будет тебе счастье. Но если при предыдущем запуске он успел затереть метаданные LVM - ты в жопе.

no-dashi ★★★★★
()

В установщике дебиана 6.0 в его утилите для работы с софтовыми рейдами указал эти же диски для создания 10-го рейда, полагая что он подхватит рейд поднятый на них и все будет нормально.

Надо было сначала подумать, потом прочитать документацию, потом подумать, потом погуглить, снова подумать и только потом делать. Особенно в таких ответственных моментах...

Поняв что что то явно не так - отменил установку (ребилд новерняка даже толком начаться не успел).

Надейся на лучшее, но готовься... ну ты понял.

UUID не совпадает со старым.

Это логично. При создании массива всегда выбирается свежий UUID.

А теперь более по теме. Если тебе страшно повезло и инсталлятор успел только пересоздать RAID (без ресинхронизации), то максимум что случилось - это затёрлась пара десятков килобайт в тех местах, куда mdadm записал новые метаданные. Раз после подцепления нового массива система не увидела твой LVM, значит либо метаданные были записаны в другое место (читай man mdadm на предмет версии, там в разных версиях метаданные в разных частях раздела лежат), либо диски были собраны не в том же порядке, в котором они были раньше, либо часть данных таки затёрлась. Скорее всего тебе нужно снова пересоздать массив с помощью mdadm, причём точно так же, как это когда-то сделать инсталлятор альта. Важно, чтобы диски шли в том же порядке и метеданные были в том же месте.

Теперь переходим к LVM. Если после *правильно* пересозданного RAID'а система так и не увидела LVM, значит новые метаданные RAID'а таки затёрли метаданные LVM (вообще все?! но мы всё-равно надеемся на лучшее). Копия всех метаданные LVM лежала в /etc/lvm в виде текстового файлика (посмотри для примера на живой системе). По идее, можно при помощи grep, dd, hex-редактора и такой-то матери найти на твоих дисках этот файлик и при помощи него восстановить LVM.

Если это не помогло, то можно воспользоваться photorec. Он восстановит далеко не всё и с неправильными имени, но хоть что-то. Можно поискать платные проприетарные программы. Можно обратиться к специалистам в соответствующие фирмы, но это будет дорого, особенно в таком «экзотическом» случае как linux + raid + lvm.

P.S. Вообще, очень рекомендую перед тем как что-либо предпринимать, найти пачку таких же дисков и скопировать туда всё содержимое имеющихся дисков при помощи dd.

Deleted
()

>> В установщике дебиана 6.0 в его утилите для работы с софтовыми рейдами указал эти же диски для создания 10-го рейда, полагая что он подхватит рейд поднятый на них и все будет нормально.

d-i находит и запускает все доступные массивы автоматически. Раз этого не случилось, что-то там было не так.

GotF ★★★★★
()
Ответ на: комментарий от Deleted

>> метаданные RAID'а таки затёрли метаданные LVM

Крайне маловероятно. Суперблок mdraid, расположенный в начале устройства, имеет размер всего 8 Кб, ЕМНИП, в то время как суперблок LVM — десятки, с сохранением множества изменений (если я правильно понял дамп).

>> Если тебе страшно повезло и инсталлятор успел только пересоздать RAID (без ресинхронизации)

Ресинхронизация начинается сразу же после создания массива.

>> Надо было сначала подумать, потом прочитать документацию, потом подумать, потом погуглить, снова подумать и только потом делать.

+1 :)

GotF ★★★★★
()
Ответ на: комментарий от GotF

Суперблок mdraid, расположенный в начале устройства

Расположение суперблока зависит от версии формата метаданных.

Deleted
()
Ответ на: комментарий от Deleted

Можешь мне не рассказывать, я читал спецификацию on-disk формата :)

А в Squeeze как раз используется по умолчанию 1.2 (4 Kb от начала блочного устройства).

GotF ★★★★★
()
Ответ на: комментарий от Deleted

спасибо всем отписавшимся. рейд пересоздал, порядок такой же как и первоначальный. выводы pvdisplay и vgscan не изменились(т.е. pvdisplay говорит что метаданные повреждены, но находит проинициализированный на данном рейде раздел. vgscan ничего не находит)

Теперь переходим к LVM. Если после *правильно* пересозданного RAID'а система так и не увидела LVM, значит новые метаданные RAID'а таки затёрли метаданные LVM (вообще все?! но мы всё-равно надеемся на лучшее). Копия всех метаданные LVM лежала в /etc/lvm в виде текстового файлика (посмотри для примера на живой системе). По идее, можно при помощи grep, dd, hex-редактора и такой-то матери найти на твоих дисках этот файлик и при помощи него восстановить LVM.

файлы конфигурации lvm есть (папочка /etc/lvm доступна-система не на рейд установлена), однако vgcfgrestore не отрабатывает

# vgcfgrestore vgserver
File descriptor 3 left open
File descriptor 5 left open
File descriptor 7 left open
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Incorrect metadata area header checksum
  Restore failed.

поможет ли пересоздание lvm? (pvcreate -u «uuid из бекапа»)

Generick
() автор топика
Ответ на: комментарий от Generick

>поможет ли пересоздание lvm? (pvcreate -u «uuid из бекапа»)

Да, должно помочь.

НО. Ты твёрдо уверен, что собрал software raid правильно? С той же версией метаданных и тем же layout?

router ★★★★★
()
Ответ на: комментарий от router

спасибо. уже восстановил. 1. пересобрал рейд с опцией --assume-clean. 2. пресоздал lvm из бекапа с /etc/lvm. после этого определились и подобрались диски xfs_repair предложил подмонтировать их. файлы битые были но наиболее важное удалось перенести на внешку. впринципе отделался легким испугом) всем спасибо.

Generick
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.