RAID 5 и два упавших диска

Поломалось, посыпалось, не работает...

Модераторы: Trinity admin`s, Free-lance moderator`s

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

RAID 5 и два упавших диска

Сообщение Lyod » 26 окт 2007, 08:15

Добрый день!
Такая вот не простая ситуация… :(

На сервере стоит LSI Megaraid 150-6D. Был сделан RAID-5 из 4-х дисков SATA Seagate ST3400832AS 400Gb на портах [0]-[1]-[2]-[3].

- Зависает сервер. После перезагрузки – раид в degraded, выпал диск на порту [1] – в офлайне.
- Устанавливается новый диск (WD4000AAKS  400Gb) на свободный порт [4], помечается  как hot-spare – начинается  Rebuild.
- Процесс доходит примерно до ~79%  - контроллер выдает «ребилд еррор» и зависает.
- После перезагрузки выясняется, что упал диск на порту [3].

Бэкапа инфы к сожалению нет…

Диагностика дисков на другом железе дала следующие результаты:
Диск [1] – нестабильно читаются приблизительно 5% секторов по всему диску, проблемы в служебке. Вытаскивание информации возможно, в идеале даже до 100%(или близко в этому).
Диск [3] – умирает одна из голов, остальные читают нормально. Больная голова читает менее половины своих секторов. Вытаскивание всей инфы скорее всего не возможно без замены голов (а данную процедуру профессионально в нашем городе не делают).

Диски [0], [2] и [4] полностью исправны

Вопросы:
1. Что можно сделать в данной ситуации для спасения данных? Вариант обращения к дорогим услугам профи пока не возможен.
2. Таких моделей дисков, как были в массиве (ST3400832AS) сейчас скорее всего найти не удастся. Возможно ли, сделав полные копии исходных  дисков  на другие (можно тоже однотипные), подключить их к контроллеру и  настроить как соответствующие прежним из RAID5? (или сделать новую конфигурацию с копиями прежних дисков, без инициализации, соблюдая  порядок дисков, чтобы они были идентифицированы раидом как элементы RAID5?).
3. Как происходит Rebuild? Изменяется ли в процессе Rebuild информация на других дисках в массиве, или только на hot-spare? Если нет – тогда теоретически, если получается поднять инфу с диска [1], он остается актуальным и можно попробовать сделать Rebuild используя его и диски [0] и [2] с новым hot-spare?
4.  К предыдущему вопросу – если небольшая часть данных с диска [1] все же будет потеряна – пройдет ли Rebuild?
5. Какой алгоритм используется в данном контроллере? Где можно взять по нему информацию?
6. Если пытаться восстанавливать раид готовым софтом – какое ПО его понимает?
Последний раз редактировалось Lyod 29 окт 2007, 16:29, всего редактировалось 1 раз.

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 26 окт 2007, 12:05

Не делая резервных копий и проверку консистентности (т.е. экономя на обслуживании), Вы выкопали себе яму. А теперь все равно пытаетесь и рыбку съесть и без "обращения к дорогим услугам профи" обойтись. Похвально.  :evil:
Вы уж извините, но в 101-й раз рассказывать то, что можно найти даже в поиске по данному форуму не очень хочется.
Но один совет есть: уберите новый диск и сделайте make online диску 3 и попробуйте сохранить нужные данные.

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

Сообщение Lyod » 26 окт 2007, 12:55

Проверка дисков велась регулярно, а вот насчет отсутствия резервной копии - конечно плохо, понадеялись на надежность раида.

К сожалению, не успел перекопать весь форум - но теперь этим займусь, спасибо за совет.

Но один совет есть: уберите новый диск и сделайте make online диску 3 и попробуйте сохранить нужные данные.


т.е. получается, что всетаки при ребилде остальные диски не изменяются?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 26 окт 2007, 13:50

Если физически неисправны два винта, то данные восстановить невозможно.
Если один из винтов кое-как работает, но нестабильно, то методом какой-то матери его поднимать мэйк онлайн и пробовать копировать информацию. До полного удовлетворения.
Ну а правильный путь - найти пачку баксов (например вычевши их из ЗП того, кто не делал бэкап) и ехать к спецам.

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Сообщение gs » 26 окт 2007, 13:51

Ребилд ничем не поможет. Зато может все прибить окончательно.

Аватара пользователя
Miron
Advanced member
Сообщения: 106
Зарегистрирован: 13 окт 2005, 01:09
Откуда: Харьков
Контактная информация:

Сообщение Miron » 29 окт 2007, 13:15

Не понял, таки "диск [2] - умирает одна из голов...", или "Диски [0], [2] и [4] полностью исправны ", но будем считать что в первом случае 2=3 :),
делать нужно имхо следующее -0)вытащить диск [4] 1)мэйк онлине диск [1], и 2)простым копированием вытаскивать нужную инфу куда то на другой (не массив) диск (не ребилд, не бэкап, а тупо копи), действия 1 и 2 повторять до полного удовлетворения - и будет вам счастье (или не будет, тут уж как повезёт).

Аватара пользователя
Fader
Data Recovery Expert
Сообщения: 115
Зарегистрирован: 21 мар 2005, 02:13
Откуда: Москва
Контактная информация:

Сообщение Fader » 29 окт 2007, 13:40

Действительно, лучше бы по возможности сделать посекторные копии винтов, чтоб потом небыло "мучительно больно..."  Вестерны с вышедшими из строя блоками магнитных головок очень трудно восстаналиваются. И в случае если у вас будет посекторная копия умирающего или к тому моменту уже умершего диска, то данные поднять с массива будет значительно проще и дешевле.

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

Сообщение Lyod » 29 окт 2007, 18:57

Спасибо всем откликнувшимся!

Мне представляется, что план действий в данной ситуации вырисовывается следующий.

1. Не меняю конфигурацию на контроллере(он, к счастью, не трогался с момента инцидента).
1. Диск [4], бывший hot-spare, откладываю на дальнюю полку;
2. Делаю посекторные копии с живых винтов [0] и [2] (для отката после неудачных попыток);
3. Пытаюсь максимально восстановить данные с винтов [1] и [3],  и после подкинуть их в массив.
  3.[1] На данный момент данные с диска [1] восстановлены где-то на 99% (посекторная копия), оставшиеся сектора скорее всего не восстановимы. Но - он выпал из системы до неудачной попытки ребилда. Как я понял из совета Miron’a, несмотря на это, его все-таки можно попробовать использовать, сделав принудительный «мейк онлайн» с живыми дисками [0] и [2]. На упавшем диске это будет чревато постоянными его падениями, а так же большим кол-вом нечитаемых секторов. А ведь новый HDD со старой инфой контроллер не возмет? Но есть такой вариант – находим близкий по модели HDD. Заливаем на него все, что удалось вытащить с диска [1]. Правим ему паспорт(STUFF) – модель, серийку и т.п. – т.е. пытаемся выдать его за оригинальный для контроллера. ИМХО, если вообще диск [1] все еще можно использовать – это лучший вариант.
 3.[3] С этим диском сложнее – процесс восстановления с больной головой идет слишком медленно, но небезнадежно. Процент потерь будет понятен через пару дней. Надеюсь, он все же получится небольшим. Тогда есть вариант попробовать описанную в предыдущем подпункте процедуру.

Вот теперь самое интересное. Если получится небольшой процент потерь на обоих винтах – наверное стоить их оба попробовать сделать «мейк онлайн»(разумеется с учетом вышеописанной процедуры)? Правда непонятно, как контроллер будет воспринимать выпавшие блоки – читаться то теперь они будут нормально, но содержимое будет заполнено нулями вместо прежних данных(а может есть смысл сделать их просто софтбэдами?). А из этого еще нужно смонтировать том новела.....

gs
"Ребилд ничем не поможет. Зато может все прибить окончательно."
Очень надеюсь, что неудачная его попытка уже не прибила все окончательно…

Miron
Да, в номерах я ошибся – уже исправил, сенкс :)

Fader
Винты, к счастью Seagate(рыбки), с которыми приличный опыт ремонта и вытаскивания данных.

p.s. Есть несколько прог для софтовой сборки массивов, с поддержкой разных алгоритмов RAID5- прямая/обратная четность, обратная динамика/задержка (и всетаки какой используется в  контроллерах LSI :?: :twisted: ). Это как запасной вариант. Но они виндовые – а она автоматом  инициализирует первый сектор, причем некоторые байты сразу как их вычищаешь. Не подскажет ли кто, как выключить у нее данную вредную вещь? Пока нигде не смог найти…

Аватара пользователя
Fader
Data Recovery Expert
Сообщения: 115
Зарегистрирован: 21 мар 2005, 02:13
Откуда: Москва
Контактная информация:

Сообщение Fader » 29 окт 2007, 19:11

Да, с винтами это что-то меня проглючило.
Юзай лучше всего ВинХекс.
Выберешь там Адаптековский алгоритм ( backward parity )

Аватара пользователя
Miron
Advanced member
Сообщения: 106
Зарегистрирован: 13 окт 2005, 01:09
Откуда: Харьков
Контактная информация:

Сообщение Miron » 30 окт 2007, 00:23

Судя по вышесказанному диск [3] умер, не надо пихать его в массив - только мешать копировать будет, 5 рейд поднимется на оставшихся (будет деградед ну и фиг с этим, поставленной задаче это не мешает). Насколько я понял 79% инфы вы скорее всего спасете, остальное как бог даст (если не читаются два диска в раид5 - то никак).

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

Сообщение Lyod » 30 окт 2007, 04:23

Fader
Спасибо за подсказку с софтовым алгоритмом!  Остается отключить автоинит дисков виндах (а то он портит LBA 0) - но это уже как-нить надеюсь найду.

Miron
Восстановление Диска [3] пройдено на 20%, ооочень медленно, с уходом в глухой buse и передергиванием питания на некоторых участках - но зато пока с одной ошибкой. Правда судя по предварительному анализу, самое  сложное впереди... Но всетаки дождусь, пока его восстановление закончится, вдруг повезет и невосстановимых ошибок будет меньше, чем на [1].

Предполагаемое восстановление инфы 79% - это потому, что ребилд дошел до этой цифры? Я просмотрел ребилдовский диск - на нем по всему диску такая периодическая картина: 128Kb Данные + 3 х 128Kb пусто. Страйп как раз был 128Kb. Получается, что реально он прошел всего 1/4?

Аватара пользователя
Fader
Data Recovery Expert
Сообщения: 115
Зарегистрирован: 21 мар 2005, 02:13
Откуда: Москва
Контактная информация:

Сообщение Fader » 30 окт 2007, 10:26

Lyod писал(а):Fader
Спасибо за подсказку с софтовым алгоритмом!  Остается отключить автоинит дисков виндах (а то он портит LBA 0) - но это уже как-нить надеюсь найду.

Можешь с этим не заморачиваться, не инициализируя диск, кекс увидит его как устройство, что тебе и нужно...

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

Сообщение Lyod » 30 окт 2007, 12:08

Fader писал(а):
Lyod писал(а):Fader
Спасибо за подсказку с софтовым алгоритмом!  Остается отключить автоинит дисков виндах (а то он портит LBA 0) - но это уже как-нить надеюсь найду.

Можешь с этим не заморачиваться, не инициализируя диск, кекс увидит его как устройство, что тебе и нужно...
Т.е. даже если диск другой модели с данными прежнего - я просто делаю "мейк онлайл" - и он его возьмет?

Аватара пользователя
Fader
Data Recovery Expert
Сообщения: 115
Зарегистрирован: 21 мар 2005, 02:13
Откуда: Москва
Контактная информация:

Сообщение Fader » 30 окт 2007, 12:36

Я говорил про программную сборку.

Lyod
Junior member
Сообщения: 10
Зарегистрирован: 25 окт 2007, 05:48
Откуда: Якутск

Сообщение Lyod » 31 окт 2007, 04:36

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

В инете прочитал, что даже просто просмотр дисков с массива под виндой может убить данные на них. ВинХекс - виндовая прога.
Стал разбираться - выяснилось, что Windows при загрузке с подключенным новым винтом, в LBA0(самый первый сектор) пишет таким образом:
1.Если по адресам  000-1B7 нули - она пишет туда код загрущика. Если хоть один байт в любом месте не нулевой- не трогает.
2. Вне зависимости, есть ли инфа по другим адресам 0-сектора, если  1B8-1BA нули, она пишет туда какой-то идентификатор.

Это делается автоматом, без вопросов. Я так понимаю, в виндах это называется инициализация диска. И почему это делается никого не спрашивая - непонятно.

По логике, изменение данного сектора может привести к неправильной софтовой сборке массива, или по меньшей мере 3-х блоков данных, причем очень важных в начале.

Можно поступить следующим образом - сохранить эти блоки под досом, скажем MTL-ом, потом после загрузки винды, когда она уже напакостит - восстановить их по своим местам. И все было бы хорошо - да вот только некоторых случаях, так и не понял из-за чего, винда переписывает удаленный  идентификатор по адресам 1B8-1BA просто в процессе работы, без перезагрузки.

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

Ответить

Вернуться в «Массивы - Технические вопросы, решение проблем.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 26 гостей