The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Рухнул рейд 5"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Рухнул рейд 5"  +/
Сообщение от Storm2k email on 02-Июл-09, 21:59 
Сделал не так давно софтовый raid5 на Ubuntu Server из пяти дисков по 1тб с помощью mdadm. В начале были диски sdb, sdd, sde на них был создан рейд 5. Два харда sda и sdc я не трогал так как была инфа. После переноса информации с этих двух винтов на рейд, добавил их в рейд коммандой --add и --grow. Расширил файловую систему resize2fs. Но сегодня подрубил один IDE хард к мамке и загрузился. После загрузки оказалось, что рейд отказал. При этом mdstat показывает, рейд массив состоит из sdb, sdd, sde (то есть первых 3 дисков, что я подключил) у двух других он не видит superblock'ов.

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : inactive sda[3](S)
      976762496 blocks
      
md0 : inactive sdb1[0](S) sdd1[1](S) sde1[2](S)
      2930279808 blocks

Gparted показывает что они не размечены. Массив ясно не стартует так нету 2 дисков для работы. Как можно восстановить инфу с них? Можно ли как нить насильно включить хотя бы один из них или скопировать суперблок?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Рухнул рейд 5"  +/
Сообщение от Storm2k email on 02-Июл-09, 22:00 
Харды новые, смарт показывает все в норме.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Рухнул рейд 5"  +1 +/
Сообщение от ronin (??) on 03-Июл-09, 02:37 
>Харды новые, смарт показывает все в норме.

Не всё то солнышко что встаёт (народная мудрость). Просто так рейд не падает. Может где-то кабель не контачит. Или питалово сбойнуло. В любом случае стоит попробовать восстановить.
Рекомендую следующее:
1. Отключите автоматическое распознавание и подъём массива на старте системы (просто удалите /etc/mdadm.conf или закомментируйте в нём строку конфигурации, соответствующую Вашему массиву). Это просто для того, чтоб исключить любую самодеятельность системы. Нам нужен полный контроль в ручном режиме.
2. Перезагрузка системы.
3. Ручная сборка массива. Аккуратненько, не спеша и чётко запоминая каждое действие надо попытаться собрать массив и определить дейсвительно сбойный диск. Может (и даже вполне вероятно) что из-за сбойного диска материться будет совсем другой, вполне живой диск (это мы уже проходили). Вопшем, порядок действий такой:

mdadm --assemble /dev/md0  /dev/sdb /dev/sde /dev/sdd

Массив должен собраться в degraded mode, что будет видно по выхлопу cat /proc/mdstat и mdadm --query --detail /dev/md0

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

После этого нужно попытаться добавлять сбойнувшие диски по одному:

mdadm --manage /dev/md0 --add /dev/sda
mdadm --manage /dev/md0 --add /dev/sdc

Здесь после попытки добавления каждого диска нужно проверять состояние массива и логи системы на предмет ошибок с дисками.

Если не пройдёт по-хорошему - добавляем к команде опцию --force:

mdadm --manage /dev/md0 --add /dev/sda --force
mdadm --manage /dev/md0 --add /dev/sdc --force

Если повезло и в момент отключения массива не было текущей операции записи на него, то всё должно зашуршать. Если нет - тогда смотреть какой из дисков болен (может вполне быть даже один из sdb, sde, sdd) и заменить его (скопировав всё его содержимое командой dd или ddrescue на новый винт; даже если некоторые блоки окажутся нечитабельными - ничего страшного; но если это повторится с двумя дисками - тогда дело худо - потеря данных гарантированна).

4. Когда массив пересоберётся - обязательный fsck.
5. Контрольная перезагрузка системы с отключенным автораспознаванием и подключением массива на старте.
6. После перезагрузки - ещё одна контрольная попытка сбора массива вручную. Если всё взлетело без проблем - можно восстанавливать автосборку массива:

mdadm --examine --scan > /etc/mdadm.conf

Если проблемы остались - тогда наверняка один из дисков умирает. Для проверки запустите для каждого диска следующее:

dd if=/dev/sd[abcde] of=/dev/null

На сбойных секторах обязательно споткнётся (даже если badblocks ничего криминального не находит).

Удачи!


respect,
ronin

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Рухнул рейд 5"  +/
Сообщение от Storm2k on 03-Июл-09, 04:38 
После удаления /etc/mdadm/mdadm.conf пишет

# mdadm --assemble /dev/md0 /dev/sdb /dev/sdd /dev/sde
mdadm: no recogniseable superblock on /dev/sdb
mdadm: /dev/sdb has no superblock - assembly aborted

И так на все оставшиеся. Если же восстановить конфиг:

# mdadm --manage /dev/md0 --add /dev/sda
mdadm: cannot get array info for /dev/md0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Рухнул рейд 5"  +1 +/
Сообщение от ronin (??) on 03-Июл-09, 08:23 
>После удаления /etc/mdadm/mdadm.conf пишет
>
># mdadm --assemble /dev/md0 /dev/sdb /dev/sdd /dev/sde
>mdadm: no recogniseable superblock on /dev/sdb
>mdadm: /dev/sdb has no superblock - assembly aborted
>
>И так на все оставшиеся. Если же восстановить конфиг:
>
># mdadm --manage /dev/md0 --add /dev/sda
>mdadm: cannot get array info for /dev/md0

Мм... после добавления дисков с помощью --add --grow массив ребилднулся успешно? Диски добавились как основные или как hot spare? И какая версия кернела?

После удаления /etc/mdadm/mdadm.conf (и перезагрузки) попробуйте ещё mdadm --examine --scan - просто для проверки распозаются ли все диски как члены массива. Кстати, когда получаете "mdadm: /dev/sdb has no superblock" в системном логе не появляется никаких ошибок? И как там с опцией --force? Ещё одно - забыл упомянуть в предыдущем ответе - очерёдность добавления дисков тоже играет роль. Можно попробовать собирать массив с одного или двух дисков, и постепенно добавлять другие в разных последовательностях.


respect,
ronin

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Рухнул рейд 5"  +1 +/
Сообщение от Storm2k email on 03-Июл-09, 16:59 
Спасибо больщое! Помогло, даже не знаю как выразить свою благодарность!

Поначалу не понятно почему слетело все. Все встало без проблем сейчас, хотя эти же команды не помогали. Сперва сделал в автоматическом режиме, а потом уже добавил /dev/sda следом /dev/sdc. При этом ребилд он даже не проводит.

Хотя до сих пор он показывает, что на sdc sda не имеют разделов. Может быть потому, что у меня свободно еще 1,5 терабайта? Как сделать, что бы эти два диска считались частью рейд массива? У них parted показывает отсутствие каких либо разделов, у первых трех дисков он показывает "Неизвестный раздел". Почему?

Еще раз большое спасибо!! Приятно встретить отзывчивых людей :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Рухнул рейд 5"  +/
Сообщение от Storm2k email on 03-Июл-09, 17:02 
mdadm --query --detail /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Mon Jun 29 13:34:54 2009
     Raid Level : raid5
     Array Size : 3907039744 (3726.04 GiB 4000.81 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 5
  Total Devices : 5
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jul  3 18:48:26 2009
          State : clean
Active Devices : 5
Working Devices : 5
Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 4K

           UUID : a0573987:5ec91dd6:192ab3f1:ec08dc3a
         Events : 0.650364

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       49        1      active sync   /dev/sdd1
       2       8       65        2      active sync   /dev/sde1
       3       8        0        3      active sync   /dev/sda
       4       8       32        4      active sync   /dev/sdc

Меня смущают две последние строки :(

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Рухнул рейд 5"  +/
Сообщение от ronin (??) on 04-Июл-09, 16:07 
Поздравляю с успешным восстановлением рейда. Experience +5 ;-)

>Поначалу не понятно почему слетело все.

Shit happens. Это аксиома. Может где-то банально кабель питалова или SATA-шлейф не контачил. Или блок питалова сбарахлил (не хватает мощности для тачки с таким табуном дисков). Я бы рекомендовал это всё внимательно проверить и перепроверить.


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

Как я уже говорил, много зависит от последовательности подключения дисков в массив. Почему - не знаю. Но пару месяцев тому назад сам прошёлся по этим же граблям.


>Сперва сделал в автоматическом режиме, а потом уже добавил /dev/sda следом /dev/sdc.

Мм... Сработало? Вам повезло. Я бы не рискнул баловаться с автоматиеским распознаванием и сбором массива, пока бы вручную не убедился и не переубедился что всё действительно в порядке. Ну не верю я машине :-)

>Хотя до сих пор он показывает, что на sdc sda не имеют разделов. Может быть потому, что у меня свободно еще 1,5 терабайта?

Спокойствие и только спокойствие! (с) Карлсон, который живёт на крыше.
Как диски подключались к массиву, так и будут отображаться. Я уверен, что Вы создали разделы на дисках sdb, sdd и sde, а на sdc и sda не создавали. Так и подключили диски к массиву. В принципе, работают они практически одинаково. Ну, почти одинаково. Разница состоит лишь в том, что на дисках с разделами мизерная часть пространства используется для хранения инфы о разделах, и поэтому не используется самим рейдом. В результате, тот же самый мизерный обьём не используется рейдом на всех остальных дисках, где нету разделов и диск полностью отдан под рейд. Дело в том, что в raid5 все диски выравниваются под наименьший диск (для обеспечения redundancy для всех блоков диска). Соответветственно, обьём пространства диска, не используемый рейдом на одном из дисков, автоматически исключается из всех остальных дисков. Тоесть, на всех дисках рейд использует абсолютно одинаковый обьём.
Если Вам просто не нравится как оно сейчас выглядит - можете потратить ещё 1-2 дня не перестройку массива так, как вам кажется красивше :-) Но практической пользы в этом я не вижу.


>У них parted показывает отсутствие каких либо разделов, у первых трех дисков он показывает "Неизвестный раздел". Почему?

Ну, нету разделов на sda и sdc. Вот и не показывает. А на других дисках показывает "Неизвестный раздел" потому, что там нет метки типа раздела. Эта метка особой роли не играет. Она нужна только для распознавания типа раздела, на котором проживает файловая система или Logical Volume Manager. Например, родные линуксовые разделы получают метку 0х83. А рейд распознаёт члены массивов по UUID (UUID : a0573987:5ec91dd6:192ab3f1:ec08dc3a на вашем массиве), который прописывает в суперблоке на каждом диске (или разделе), используемом в массиве.


>Может быть потому, что у меня свободно еще 1,5 терабайта?

Ну, это никак не связано с занятым или свободным обьёмом массива :-)


>Как сделать, что бы эти два диска считались частью рейд массива?

Дык они уже и так члены Вашего массива. Хотите их сделать дважды заслуженными членами? :-)


>Меня смущают две последние строки :-(

Это пройдёт ;-) Должно пройти после детального ознакомления с принципами работы дисков, файловых систем и рейд-массивов.


Ещё один важный момент. У Вас довольно большой массив, 5 дисков, и все используются для хранения данных. Я бы посоветовал подлючить ещё один диск, но в качестве hot spare. Просто на всякий случай. Чтоб не терять 2-3 дня на ручную пересборку массива когда что-то пойдёт не так. При сбое какого-либо активного диска hot spare диск автоматически включится в работу, перебрав на себя функцию упавшего диска и массив ребилднется на лету.

Ну и ещё одно: помониторьте свой рейд командой mdadm --monitor /dev/md0 на протяжении нескольких дней. Просто на всякий случай.


respect,
ronin

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру