LINUX.ORG.RU
ФорумAdmin

Развалился программный RAID 5 из 3-х дисков

 , ,


2

4

Вылетел сегодня ночью винт из RAID массива 5 уровня. Массив состоял из 3-х дисков Western Digital по 2ТБ каждый.

Вначале начали сыпаться ошибки типа:

 
ata2.00 input/outpur error 
ata2.00: exception emask
ata2.00: failed command: MULTIREAD
После чего сервер зависал, интернет и диски отваливались.
Сам сервер состоит из 4-х дисков. Один под систему, другие 3 - это вышеуказанный массив. ОС Ubuntu.

SMART показывает, что все диски живы.

При попытке пересобрать массив, пишет:

raid5: cannot start dirty degraded array for md0
raid5: failed to run raid set md0
md: pers->run() failed ...
mdadm: failed to RUN_ARRAY /dev/md0: Input/output error

http://i68.fastpic.ru/big/2014/0831/95/1d54bab199a150bf73a879a207bf2495.jpg http://i68.fastpic.ru/big/2014/0831/61/8507d5212bc7f7652cc1afd05a472661.jpg

Говорит, что массив dirty и не дает его собрать. В интернетах пишут, что статус dirty можно убрать на свой страх и риск:

echo "clean" > /sys/block/md0/md/array_state

http://www.devinzuczek.com/2010/09/raid5-cannot-start-dirty-degraded-array-fo... Еще проблема упоминается здесь: http://www.tampabaycomputing.com/blog/raid5-cannot-start-dirty-degraded-array...

Не могу понять, почему нельзя пересобрать массив и почему он развалился. Системный блок сильно запылился, может контроллер материнки сглюкнул. Сейчас буду чистить и менять шлейфы винтов на запасные.

Подскажите, пожалуйста, как пересобрать массив, как с этими статусами dirty degraded быть?



Последнее исправление: EvideShow (всего исправлений: 1)
Ответ на: комментарий от router

Для домашнего рейда - любой дешёвый. Раз backblaze привёл статистику с частыми отказами seagate, не бери seagate.

Дешевый, конечно, да. Но хочется взять уже нормальное оборудование, чтобы безотказная работы была как можно дольше. Если размер кластера не важен, то тогда из ВДшек, я думаю, что однозначтно RE: http://www.nix.ru/autocatalog/hdd_western_digital/HDD_Tb_SATA_6Gb_Western_Dig...

Кстати, у этого ЖД есть оптимизация для работы с RAID массивами. Вот что пишут про это: «Контроллеры серверных жестких дисков SATA более „разговорчивы“, чем у обычных жестких дисков. При появлении проблемы они не „молчат“, а сообщают Raid контроллеру о своих проблемах, который впоследствии принимает решение - попытаться самим решить проблему или сообщить пользователю о нештатной ситуации, что в большинстве случаев позволяет не отключать Raid массив и продолжить работу.

Из сказанного выше вытекает проблема, если вы будете использовать серверный жесткий диск вне Raid массива он будет сообщать о своих проблемах вашему обычному SATA контроллеру, который о них ничего не знает и знать не хочет. В теории это проблема. Но компания Western Digatal как самый крупный игрок рынка жестких дисков не осталась в стороне и по разным источникам не рекомендует использовать винчестеры Raid Edition в стандартных режимах вне Raid массивов.»

Вопрос: Если я использую программный рейд, то актуальна ли для меня эта оптимизация жесткого диска под использование в рейд? Или в данном случае, команды от моих дисков восприниматься не будут как при работе в рейд?

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

Настоящий источник: https://www.backblaze.com/blog/what-hard-drive-should-i-buy/

В приведенном отчете нет твоих дисков, WD Green там только 1 Тб и 3Тб, общее кол-во WD дисков 2878 против 25797 остальных производителей, естественно будет меньше отказов, то что они их не используют уже очень показательно.

The drives that just don’t work in our environment are Western Digital Green 3TB drives and Seagate LP (low power) 2TB drives. Both of these drives start accumulating errors as soon as they are put into production.

Они говорят что WD Green емкостью выше 1 Тб у них вообще не работают нормально.

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

Теперь по поводу backblaze ясно. Но проясните мне уже наконец, почему параметр «Количество неисправимых ошибок чтения на число прочитанных бит» важнее, чем максимально допустимое «Количество операций парковки»?

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

Да тебе уже 10 раз сказали - «увеличь чёрт побери таймаут парковки и забудь о числе парковок на гринах»

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

Вопрос: Если я использую программный рейд, то актуальна ли для меня эта оптимизация жесткого диска под использование в рейд? Или в данном случае, команды от моих дисков восприниматься не будут как при работе в рейд?

Нет, но надежность у них все же выше, более жесткий контроль качества проходят, все что не проходит идет в Red\Black.

Нормальный RAID контроллер стоит от 300$ но он как правило нужен когда есть серьёзная нагрузка или когда сервер обслуживает неквалифицированный персонал.

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

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

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

Нормальный RAID контроллер стоит от 300$ но он как правило нужен когда есть серьёзная нагрузка или когда сервер обслуживает неквалифицированный персонал.

А я себе РЕЙД-контроллер не купил из таких соображений: если сгорит контроллер, то для восстановления массива нужно найти точно такой же, но не факт, что он будет в продаже. А использование программного рейд несколько абстрагирует от такой привязке к железу. Напишите, если я не прав с обоснованием своей точки зрения.

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

WD Green которые у меня стояли на самом деле как раз хороши для серверных систем

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

без Advanced Format, то смогу ли я скопировать с помощью dd данные с моих винтов

это сложно. )))

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

Но проясните мне уже наконец, почему параметр «Количество неисправимых ошибок чтения на число прочитанных бит» важнее, чем максимально допустимое «Количество операций парковки»?

Ещё раз, для домашнего рейда оба эти параметра не важны от слова «совсем».

Рейд изначально был не «redundant array of independent disks», а «redundant array of inexpensive disks», т.е. из того _хлама_ что есть получить _надёжный_ массив. На серверах в рейдах используются надёжные диски.

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

Дома используются не надёжные диски, а что есть. Т.к. рейд сделает из них надёжный массив. Дома тебе на все эти параметры наплевать. Особенно тебе, который использовал тормозные и сугубо десктопные wd green.

Тебе не важно количество неисправимых ошибок чтения. Ядро обработает эту ошибку и ты её никогда не заметишь.

Тебе не важен ресурс парковок, если только ты не взял wd green и забыл исправить таймаут, и если только ты не дёргаешь винт ровно раз в X+5 секунд, где X - таймаут парковки.

В таких тредах выбора категорически не хватает двух ссылок:

http://ru.wikipedia.org/wiki/Перфекционизм_(психология)

http://ru.wikipedia.org/wiki/Буриданов_осёл

router ★★★★★
()
Последнее исправление: router (всего исправлений: 2)
Ответ на: комментарий от EvideShow

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

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

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

И ещё. Не хотелось бы давать вредные советы ( в твоём случае действительно нужно срочно менять все диски ), но рейд у тебя не собирается не потому, что один диск вылетел, а потому, что есть несколько дисков с РАЗНЫМ числом events. mdadm в таких случаях не лезет с автоматическим ребилдом, а даёт тебе возможность вручную разобраться, где консистентная информация, а где - сбойный диск. Если ты сейчас удалишь из рейда тот диск, что вылетел, обнулишь ему первые и последние мегабайт 10 ( или лучше 100), потом перезагрузишься, то при добавлении этого пустого диска в деградировавший рейд автоматом начнётся ребилд

З.Ы. даже перезагрузка в данном случае не обязательна, но я могу без неё обойтись, а вот тебе дольше объяснять, чем перезагрузить

router ★★★★★
()

На счет Advanced Format, я недавно заморочился, вот что для себя выделил:

Есть понятие физический и логический размеры сектора.

Классические сектора: 512 байт. Тут все ясно. ФР == ЛР == 512.

Потом производители решили делать 4К сектора, по тупому. В таких моделях ФР == ЛР == 4К. Именно этот случай самый геморный, и он же самый редкий, сейчас я не нашел такие современные диски, по крайней мере SATA.

Адвансед формат. ФР == 4К, ЛР == 512. Производители поумнели, решили навести совместимость. Геморроя нет, есть нюанс - для лучшей производительности правильное выравнивание. Сейчас актуально выравнивать по 1MiB и не париться (например, начинать первый раздел с 2048 сектора, см вики лора). Вот это самые распространенные SATA-диски сейчас.

поправьте, если я не прав

без Advanced Format, то смогу ли я скопировать с помощью dd данные с моих винтов

Да сможешь. С точки зрения dd, байты в обоих случаях на дисках расположены последовательно и непрерывно.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от router

З.Ы. даже перезагрузка в данном случае не обязательна, но я могу без неё обойтись, а вот тебе дольше объяснять, чем перезагрузить

Одну команду, не?))) Взялся за гуж, не говори, что не дюж) Объясни все-таки.

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

Тебе не важно количество неисправимых ошибок чтения. Ядро обработает эту ошибку и ты её никогда не заметишь.

А несколькими постами ранее писали, что этот параметр весьма важен при ребилде массива.

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

Тебе не важно количество неисправимых ошибок чтения. Ядро обработает эту ошибку и ты её никогда не заметишь.

Это когда все диски целы, а во время ребилда массива если такое случится, то надо будет доставать бэкапы.

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

Это когда все диски целы, а во время ребилда массива если такое случится, то надо будет доставать бэкапы.

Вот и посмотрим. Я считаю, что однократные ошибки ядро обрабатывает даже при ребилде. По крайней мере у меня дома не было случаев прерывания ребилда из-за однократной ошибки чтения, примерно на 15 - 20 случаев ребилда 2 и 3 Тб массивов. Несмотря на то, что выше обещали 30% вероятность для 2 Тб

З.Ы. ты намекаешь, что если на диске бед-блок, то данные пропали, это да. Но uncorrectable read error не всегда означает бед блок, может быть просто сбой механики, вероятность которого тебе и даёт производитель. И такие однократные ошибки ядро скорее всего обрабатывает

router ★★★★★
()
Последнее исправление: router (всего исправлений: 3)
Ответ на: комментарий от Deleted

Именно этот случай самый геморный, и он же самый редкий, сейчас я не нашел такие современные диски, по крайней мере SATA.
Адвансед формат. ФР == 4К, ЛР == 512. Производители поумнели, решили навести совместимость
вот что для себя выделил

Херово ты все выделил

http://www.seagate.com/gb/en/tech-insights/advanced-format-4k-sector-hard-dri...

Over time, the implementation of native 4K sectors, where both host and hard drive exchange data in 4K blocks, will take place. Until then, hard drive manufacturers will implement the 4K sector transition in conjunction with a technique called 512-byte sector emulation.

По русски для ЯННП: есть Advanced Format(4k emulation 512) и есть Advanced Format native (4k native). Повсеместно AF уже с января 2011. Двигаемся в сторону выкидывания слоя совместимости.

parrto
()
Последнее исправление: parrto (всего исправлений: 1)
Ответ на: комментарий от parrto

Эй, граждане, я нихрена Вас не понял, один свое гнет, другой второе:

На счет Advanced Format, я недавно заморочился, вот что для себя выделил:

Есть понятие физический и логический размеры сектора.

Классические сектора: 512 байт. Тут все ясно. ФР == ЛР == 512.

Потом производители решили делать 4К сектора, по тупому. В таких моделях ФР == ЛР == 4К. Именно этот случай самый геморный, и он же самый редкий, сейчас я не нашел такие современные диски, по крайней мере SATA.

Адвансед формат. ФР == 4К, ЛР == 512. Производители поумнели, решили навести совместимость. Геморроя нет, есть нюанс - для лучшей производительности правильное выравнивание. Сейчас актуально выравнивать по 1MiB и не париться (например, начинать первый раздел с 2048 сектора, см вики лора). Вот это самые распространенные SATA-диски сейчас.

По русски для ЯННП: есть Advanced Format(4k emulation 512) и есть Advanced Format native (4k native). Повсеместно AF уже с января 2011. Двигаемся в сторону выкидывания слоя совместимости.

Где правда то? Посередине? Определитесь уже, а то корчат тут из себя знатоков, а сами кто во что горазд. Пафосу то...Все-таки все современные диски теперь идут 4К или 512байт?

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

Вообще отказ от малых секторов 512 байт в пользу длинных секторов 4 Кб дает не только увеличение объема диска для записи данных, но и увеличение производительности накопителя за счет более оптимизированного расположения данных на диске.

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

Несмотря на то, что выше обещали 30% вероятность для 2 Тб

Немного не так, Bit Error Rate - это один сектор, который невозможно прочитать, на 10^14 прочитанных секторов в случае SATA.
Не обязательно бед-блок, при записи тоже может повредиться, да и просто не считаться, что часто происходит на пластинах с большой плотностью дорожек, потому что они там нифига не идеальным кругом записаны, bit rot тоже не дремлет. На raid5(7D+1P) из 3Тб SATA дисков вероятность фейла стремится к 100%. Вот тут неплохо про это написано Солнцевским инженером.

EvgGad_303 ★★★★★
()
Последнее исправление: EvgGad_303 (всего исправлений: 1)
Ответ на: комментарий от EvgGad_303

Немного не так, Bit Error Rate - это один сектор, который невозможно прочитать, на 10^14 прочитанных секторов в случае SATA

Ладно, убедил. Мир ещё более жесток, чем я думал.

Но. В спеке на wd green сказано «per bits read», а не per sector. И даже так на деградировавший raid 5, ( ( 3 - 1 ) hdd x 2 Тб ) получается 4,4%, а не 30%

router@amalthea:~$ echo '( ( 3 - 1 ) * 2*1024^4  ) / ( 10^14 ) * 100' | bc -l
4.39804651110400000000

а для маркетоидных терабайт - 4% ровно

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

И сразу в добавление к. Это же смертельный диагноз не для всего рейда, а для конкретного сектора. Не читается сектор на деградировавшем рейде? Какая жалось. Поблочно копируем на новый диск с пропуском пострадавшего сектора. В результате вместо двух (?) секторов рейда получим мусор, но сам рейд продолжит жить.

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

per bits read

Да, хотел написать одно, думал о другом, в итоге фигню написал.

один бит, который невозможно прочитать, на 10^14 прочитанных бит.

так должно быть правильно.

Поблочно копируем на новый диск с пропуском пострадавшего сектора. В результате вместо двух (?) секторов рейда получим мусор, но сам рейд продолжит жить.

В результате получим мусор в БД или файловой системе )

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

В результате получим мусор в БД или файловой системе )

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

Мусор в ФС ищется через e2fsck и debug2fs. Про БД не в курсе, проще наверное восстановить из бекапа полностью

Зато получится открыть рейд и считать остальные данные, которые не пострадали.

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Мусор в ФС ищется через e2fsck и debug2fs. Про БД не в курсе, проще наверное восстановить из бекапа полностью

Быстрее и надёжнее восстановить из бэкапа. В обоих случаях.
А для дома всё равно, наверное. Я сделал на домашнем насе для бэкапов и прочего ХХХ 4+2 raidz2(аналог raid6) и спокоен за все свои документы и наработки за годы.

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

Да, не заметил. Теперь понятно как ты получил 30%

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

Страшно да? )

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

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

Но а если я буду несколько раз копировать 2 живых диска на 2 новых. Первый раз на новых не соберется, но можно же еще раз скопировать на новые и опять ребилд сделать. Только вот бы они не померли, пока я их копирую :) Кстати, господа, а можете мне поподробнее разъяснить как вывели это формулу?

((3-1)*2*8*1024^4 )/(10^14)*100=35,184372088832

((d1-d2)*d3*8*1024^4)/(10^14)*100=35,18

Что такое d1, d2 и d3? И эта формула справедлива только для рейда 5 или как? Проясните.

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

В RAID 5 блоки данных и контрольные суммы циклически записываются на все диски массива, соответственно для восстановления 1 диска нужно считать блоки со всех остальных, т.е. для RAID-5 из 5 дисков будет

((5-1)*2*8*1024^4 )/(10^14)*100=70,37
Формула скорее выглядит как
((d1-1)*d2)/(10^14)*100
d1 - число дисков

d2 - объем раздела RAID в битах

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

Накопил бабосы)))

Кстати, а что это за параметр у дисков, оторые я хочу купить - Время включения?

http://www.nix.ru/autocatalog/hdd_western_digital/HDD_Tb_SATA_6Gb_Western_Dig...

Опять будут проблемы с отложенной записью на линухе?

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

Купил винты. С какими ключами лучше всего использовать команду DD при копировании данных с винчестеров? А также какой там размер блоков указывать?

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

Всем спасибо!!!!! Данные полностью восстановлены и теперь они надежно лежат на винтах WD RaidEdition в 5-ом рейде.

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