Как восстановить RAID5 ? (системой не определяется RAID5)

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

NEOndertalets
Сообщения: 57
ОС: Windows, но хочу Linux

Как восстановить RAID5 ?

Сообщение NEOndertalets »

Доброго времени суток!

Некоторое время назад создал RAID5 как описано здесь RAID при установке openSUSE 11.2 Перенес на тот рейд все важные данные.
Под Новый Год получаю такой подарок - система не грузится, минут 15 смотрел на хамелеона стартового изображения, потом надоело и перезагрузился. При перезагрузке заметил, что один винтчестер системой не определился. Разобрал системник, пошевелил провода - в результате винтчестер стал определяться, но при загрузке самой операционной системы выскакивает ошибка, что невозможно найти том LVM, отведенный под операционку.
загрузился с LiveCD, выяснил, что все физические диски видны, разбиты они правильно, но ни RAID'а, ни LVM не видно. Запустил установочный диск openSUSE 11.3, на этапе создания разметки выяснил следующее - установщик увидел все винтчестеры и все разделы, увидел некий RAID, размером с один винтчестер (порядка 500 Гб), тип этого RAID'а установщик определить не смог. Кроме того этот RAID md0 почему-то был в разделе физических дисков (хотя есть отдельные категории для RAID и LVM). Никакого LVM, конечно же я не увидел.
Собственно вопросы: как можно починить этот RAID ? И что с ним могло произойти, возможно это поможет при исправлении, да и чтоб в будущем подобного избежать? Если невозможно восстановить RAID, то может быть кто-нибудь знает как восстановить данные (с помощью LiveCD или еще как)? Где и как записывается информация о софтверном рейде, как хранится информация о LVM и его томах?

Заранее благодарен!
Спасибо сказали:
Lazy_Kent
Сообщения: 709
Статус: Ленивый
ОС: openSUSE (Xfce)

Re: Как восстановить RAID5 ?

Сообщение Lazy_Kent »

Поизучайте статью http://www.linuxjournal.com/article/8874

Информация о RAID хранится в суперблоках дисков. LVM -- /etc/lvm.
Вам нужно сначала определить и восстановить массив, а потом LVM.
Загрузите SystemRescue CD и неспеша, вдумчиво, сверяясь со статьёй занимайтесь.
Если физически диски в порядке, то всё должно восстановиться.
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Как восстановить RAID5 ?

Сообщение 156 »

В заголовке статьи написано "Raid and Logical Volume Managers are great, until you lose data."
Спасибо сказали:
Lazy_Kent
Сообщения: 709
Статус: Ленивый
ОС: openSUSE (Xfce)

Re: Как восстановить RAID5 ?

Сообщение Lazy_Kent »

Преимущества при физическом отказе диска.
Ну, и восстанавливается, в итоге.
Спасибо сказали:
NEOndertalets
Сообщения: 57
ОС: Windows, но хочу Linux

Re: Как восстановить RAID5 ?

Сообщение NEOndertalets »

Благодарю, с этим действительно нужно сесть и вдумчиво разобраться - на днях займусь. Потом обязательно отпишусь о том, что получилось.
Спасибо сказали:
NEOndertalets
Сообщения: 57
ОС: Windows, но хочу Linux

Re: Как восстановить RAID5 ?

Сообщение NEOndertalets »

Итак, к сожалению несильно я сдвинулся с мертвой точки - последовал советам статьи, но в районе третьего листинга застопорился. Удалось выяснить с помощью команды:

mdadm --examine /dev/sd**

что на разделах Linux raid autodetect четырех винтчестеров суперблоки в порядке - выводят информацию, знают что состоят в RAID5 и т.д. Но на одном винтчестере (похоже на том, который "выпадал" и не определялся при загрузке) суперблок не читается:

No md superblock detected on /dev/sdd1

К тому же команда pvscan тоже ничего не дает - системе не удается найти мой RAID5.
Теперь сижу изучаю интернет с вопросом "как восстановить суперблоки". Но до конца пока неясно, за что тут в первую очередь хвататься - оживлять ли суперблок на "поломавшемся" винтчестере, или как то можно принудительно оживить RAID5 с этими же разделами и использовать его избыточность для восстановления информации (насколько я понимаю, RAID5 предполагает работу без одного винтчестера, может лучше "поломавшийся" вообще отключить? ) Вообщем, буду рад совету, пока никаких манипуляций не произвожу, боюсь сделать хуже, изучаю возможные варианты.
Заранее благодарен!
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Как восстановить RAID5 ?

Сообщение KiWi »

NEOndertalets писал(а):
13.01.2011 23:32
Итак, к сожалению несильно я сдвинулся с мертвой точки - последовал советам статьи, но в районе третьего листинга застопорился. Удалось выяснить с помощью команды:

mdadm --examine /dev/sd**

что на разделах Linux raid autodetect четырех винтчестеров суперблоки в порядке - выводят информацию, знают что состоят в RAID5 и т.д. Но на одном винтчестере (похоже на том, который "выпадал" и не определялся при загрузке) суперблок не читается:

No md superblock detected on /dev/sdd1

К тому же команда pvscan тоже ничего не дает - системе не удается найти мой RAID5.
Теперь сижу изучаю интернет с вопросом "как восстановить суперблоки". Но до конца пока неясно, за что тут в первую очередь хвататься - оживлять ли суперблок на "поломавшемся" винтчестере, или как то можно принудительно оживить RAID5 с этими же разделами и использовать его избыточность для восстановления информации (насколько я понимаю, RAID5 предполагает работу без одного винтчестера, может лучше "поломавшийся" вообще отключить? ) Вообщем, буду рад совету, пока никаких манипуляций не произвожу, боюсь сделать хуже, изучаю возможные варианты.
Заранее благодарен!

RAID5 должен взлетать без одного диска.

Можно посмотреть:

Код: Выделить всё

cat /proc/mdstat


Если там есть нужный массив, то посмотреть в каком он состоянии.
Если нормально собрался, то надо уже колдовать над LVM.

Если его нет, то можно попробовать собрать:

Код: Выделить всё

mdadm --assemble --run /dev/mdX /dev/sdYN ...


Рискованный вариант, когда можно окончательно всё потерять:

Код: Выделить всё

mdadm --create --assume-clean /dev/mdX /dev/sdYN ...

Но тут уже обязательно нужно указать тот порядок и те опции, которые были при создании массива.
Спасибо сказали:
Lazy_Kent
Сообщения: 709
Статус: Ленивый
ОС: openSUSE (Xfce)

Re: Как восстановить RAID5 ?

Сообщение Lazy_Kent »

может лучше "поломавшийся" вообще отключить?

Только не перепутайте диски. Сверьтесь с серийными номерами.

Код: Выделить всё

hdparm -I /dev/sd?

Спасибо сказали:
NEOndertalets
Сообщения: 57
ОС: Windows, но хочу Linux

Re: Как восстановить RAID5 ?

Сообщение NEOndertalets »

Выяснилось много интересных вешей! Более пристально вчитался в вывод команды:

mdadm --examine /dev/sd**

и увидел, что все не так гладко. Там есть указание на время последнего обновления (UpdateTime), количество произведенных над диском операций, а также схема состояния массива с точки зрения конкретного винтчестера. Вот примерно такая картина для каждого из дисков:

/dev/sda2 - UpdateTime: Dec 31 17:04:48 2010 - Operations: 58691 - ArrayState: AA**A
/dev/sdb1 - UpdateTime: Dec 31 17:04:48 2010 - Operations: 58691 - ArrayState: AA**A
/dev/sdc1 - UpdateTime: Dec 8 17:57:10 2010 - Operations: 5823 - ArrayState: AAAAA
/dev/sdd1 - UpdateTime: Dec 25 22:07:52 2010 - Operations: 58686 - ArrayState: AA*AA
/dev/sde1 - UpdateTime: Dec 31 17:04:48 2010 - Operations: 58691 - ArrayState: AA**A

Здесь ArrayState означает схему состояний дисков массива, где А - активный, * - утеряный диски.
То есть вырисовывается примерно такая картина: 8 декабря третий винтчестер (/dev/sdc1) по какой-то причине тихо скис, но мне об этом ничего не было известно. Поэтому в суперблоке этого винтчестера сохранилась информация об активности всех составляющих рейда (ААААА). RAID5 продолжил работу без одного винтчестера. 25 декабря оставшиеся 4 винтчестера последний раз слаженно завершили работу и компьютер выключился в штатном режиме. На этих винтчестерах в суперблоках записалась информация о том, что все, кроме третьего, составляющие RAID'а активны (АА*АА). 31 декабря при включении компьютера четвертый винтчестер (/dev/sdd1) не определился BIOS'ом и далее RAID-массивом. Это окончательно разрушило RAID5, в первый, второй и пятый винтчестеры в суперблоки записалась информация о неактивности уже двух составляющих RAID'а (АА**А), а на третьем сохранилось АА*АА.

Думаю, что стоит пытаться восстанавливать работоспособность с последнего поломавшегося винтчестера - /dev/sdd1 так как после его поломки с RAID'ом ничего не происходило и информация на нем не менялась. Если получится восстановить /dev/sdd1 то теоретически RAID5 оживет.
Физическую причину неисправности /dev/sdd1 я излечил (он вообще не определялся BIOS'ом, после шевеления проводов стал определяться). Можно ли теперь вновь запустить RAID5, пусть даже без одного винтчестера (/dev/sdc1)? Команды
mdadm --assemble --run /dev/md/md12_45 /dev/sda2 /dev/sdb1 /dev/sdd1 /dev/sde1
и
mdadm --assemble --run /dev/md/md12_45 /dev/sda2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
результата не дают - говорят об ошибке запуска md12_45 (input/output error) и нехватке устройств для сбора массива. В этих командах я пытался собрать диски в ранее несуществующий md12_45, может быть поэтому ошибка? Может лучше запускать эти команды на сбор /dev/md/MorganRAID - так раньше было (сразу не захотел этого делать из боязни загубить что-нибудь важное). И вот еще - почему этот RAID5 вообще в системе сейчас никак не отображается? Я бы не удивлялся, если б он в системе был виден, но говорил бы о том, что он нерабочий.
Спасибо сказали:
Lazy_Kent
Сообщения: 709
Статус: Ленивый
ОС: openSUSE (Xfce)

Re: Как восстановить RAID5 ?

Сообщение Lazy_Kent »

Вот ещё заметка. Может, что-то полезное найдёте.
http://www.opennet.ru/base/sys/raid5_sync.txt.html
Спасибо сказали:
156
Сообщения: 234
ОС: OPENSUSE ALTLINUX

Re: Как восстановить RAID5 ?

Сообщение 156 »

Если Вы не ошиблись и всё правильно описали, то получается , что райд-5 работал без одного диска, потом этот диск подключился, но отвалился другой, потом они отвалились оба вместе. Чисто теоретически райд-5 не может быть запущен без двух входящих в него дисков. Значит надо подключить в массив последний диск,который отваливался, получаем райд-5 без одного диска, по идее он должен заработать. Подключать предпоследний диск, имхо, не имеет смысла, так как на нём нет тех изменений, который произошли на остальных дисках, и рэйд не соберётся. Как вариант для очень упёртых, можно попробовать поиграться с суперблоками ( но это требует некоторой квалификации ), так как на момент , когда рэйд был жив, в них есть общая инфа о файлах, которые записаны на всех винтах до краха, если удастца откатить суперблоки на винтах, то часть информации возможно восстановится. Так же рекомендую сделать физические копии винтов и играться на копиях, это даёт очень большую свободу в манипуляциях в дисками без риска потерять инфу.
Спасибо сказали:
NEOndertalets
Сообщения: 57
ОС: Windows, но хочу Linux

Re: Как восстановить RAID5 ?

Сообщение NEOndertalets »

Благодарю всех откликнувшихся!
Извиняюсь, что пообещал отписаться, но не сделал этого - только сегодня дошли руки починить этот несчастный RAID. Все оказалось проще, чем я ожидал - два часа изучал man-страницу mdadm и ввел одну команду - и RAID ожил, сейчас загрузил систему с него и делаю резервное копирование. Команда эта

mdadm --assemble --force /dev/md/0 /dev/sda2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

Она собирает рассыпавшийся массив, причем параметр --force заставляет ее не обращать внимание на разницу в дате последнего обновления суперблоков отдельных дисков и прочую отличающуюся в них информацию. Скорее всего мне повезло - потому как я указывал все пять дисков моего массива, и по завершении выполнения команды мне было сказано, что массив запустился с 4 из 5 дисков (то есть самый первый отпавший система сама определила и не стала запускать). Но для копирования данных с RAID'а этого более чем достаточно, а потом я его переделаю по-новой.

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

Еще раз выражаю благодарность всем ответившим!
Спасибо сказали: