10 советов по работе с RAID-массивами. Информация к размышлению

Необходимые условия для построения RAID

Перед тем, как вы надумаете строить RAID вы должны знать возможности вашего оборудования

  • Вам нужно найти баланс между ёмкостью массива и его производительностью
  • Ваш бюджет. Сколько нужно потратить на организацию бекап-сервера
  • Какой уровень RAID выбрать, учитывая операции чтения/записи.  Если у вас больше операций чтения в таком случае  уровень RAID5/RAID6 вполне вас устроит. Если предполается активное использование операций случайной записи, однозначно вам нужен RAID10
  • Для быстрого расчета разных вариантов RAID воспользуйтесь RAID-калькулятором

Треугольник RAID

Основными факторами определяющими будущий уровень массива являются:

  • скорость
  • цена
  • отказоустойчивость

 В итоге отношение этих трёх факторов даёт нам три возможных варианта нужного уровня рейд

raid-массивы

  • скорость и отказоустойчивость — RAID1+0
  • скорость и небольшие затраты с потерей отказоустойчивости — RAID0
  • отказоустойчивость и небольшие затраты — RAID5, RAID6

Может показаться, что для RAID5, RAID6 нужно вложить больше денег, однако итоговая ёмкость массива при том же количестве дисков, что и в RAID1+0 будет больше. А это может стать определяющим фактором

Действительно ли вам нужен RAID0?

Перед тем как строить RAID0 на шпиндельных дисках обратите внимание на диски SSD. В зависимости от ваших потребностей вам может быть выгоднее купить один диск SSD, чем пару шпиндельных дисков с 7200rpm. С другой стороны если вы планируете высокоёмкостный массив и важно, чтобы был быстрый доступ к данным, то лучше смотреть в сторону шпиндельных дисков с 10000rpm в качестве кандидатов. Разница в цене между одним SSD и парой шпиндельных дисков может быть достадочно большой

Таким образом стоимость высокоёмкостного массива RAID0 или даже RAID10 на базе шпиндельных дисков будет значительно меньше. И большинстве случаев такой RAID вполне способен удовлетворить ваши потребности. Если же вам не нужен такой большой массив, то лучше взять один SSD вместо RAID0 или два SSD в RAID1 вместо RAID10. Кроме того минимальное время доступа таких RAID не уменьшается. Именно поэтому на сегодняшний день SSD будет лучшим выбором

RAID5 или RAID6?

Если вы планируете строить RAID5 общей ёмкостью более 15Тб, то лучшим решением будет всё же RAID6

Почему?

Известно, что RAID5 остаётся работоспособным если из строя вышел один диск. Если вышло два диска — вы потеряли данные. Для того, повысить оперативность восстановления массива и минимизировать возможность двойного вылета дисков необходимо использовать диск горячей замены (hot spare). Теперь в случае вылета одного диска, контроллер автоматически подхватит диск hot spare и начнёт восстановление массива. При этом существует возможность возникновения ошибки при считывании данных с уцелевших дисков, и вероятность возникновения такой ошибки тем больше, чем больше дисков в массиве. Таким образом при массиве более 15Тб вероятность поймать ошибку чтения не так уж мала. Поэтому бекапы, и ещё раз бекапы

RAID6 в этом смысле более надёжен

Горячая замена (hot spares)

Резервный диск hot spare является хорошим дополнением к отказоустойчивости массива повышая его надёжность. Если вылетел один из дисков в отказоустойчивом массиве (RAID1, RAID10, RAID5 или RAID6) массив стал уязвим. В таком случае вам нужно физически вытащить сбойный диск и на его место установить новый. Только после этого начнётся перестройка массива. Наличие диска hot spare позволяет контроллеру немедленно приступить к восстановлению, без вторжения со стороны администратора. Чем больше дисков в вашем массиве, тем больше вероятность того, что вам потребуется hot spare диск

Технология hot spare особенно эффективна, когда единственный диск hot spare доступен для нескольких массивов. Например в восьмидисковом NAS лучше построить RAID6, чем RAID5. Потому что в случае с RAID5 диск hot spare работает вхолостую ожидая своей участи, в то время как его лучше использовать в RAID6, что сделает операции чтения эффективнее и массив более отказоустойчивым. С другой стороны при наличии двух массивов RAID5 диск hot spare одинаково быстро доступен для любого из них, тем самым сокращая и без того немалые расходы

Программный RAID все-таки жив

Не недооценивайте реализацию RAID средствами ОС

  • такой RAID обеспечивает аналогичную, а может даже лучшую надёжность, по ставнению с интегрированими контроллерами начального уровня. Он также более надёжен, чем тот же RAID построеный на базе pci-raid-контроллера за 20$
  • RAID средствами ОС легче перенести с сервера на сервер. Нет риска в длительном простое, пока вы купите новый аналогичный контроллер на замену вышедшему из строя. Ему не нужны драйвера pci-raid-контроллера. Вы просто переносите диски на новое железо и всё
  • в случае с RAID0, RAID1, RAID10 у pci-raid-контроллера нет особых преймуществ, потому что он не занимается вычислительними операциями. Я не умаляю возможности pci-raid-контроллера работать с кешем записи, но для этого он должен комплектоваться BBU
  • потому многие современные NAS для домашнего пользования и малого бизнеса используют програмный RAID

Побочный эффект такого RAID:

  • нет гарантий в надёжной загрузке системы
  • значительное падение производительности сервера во время перестройки массива

Тестирование RAID

Свежепостроеный отказоустойчивый массив (RAID1, RAID10, RAID5, RAID6) нуждается в тестировании для того,  чтобы знать как поведёт себя RAID в случае отказа одного из дисков

  • если ваше устройство поддерживает hot swap, вытягивайте любой диск на живой системе
  • если устройство не поддерживает hot swap, вытягивайте диск только после выключения устройства

После этого вы должны убедиться, что работающая система ведёт себя ожидаемым образом, массив доступен, есть возможность записывать и считывать данные. Желательно, чтобы вы получали уведомления о нештатной ситуации на мейл или по SMS. Средствами ПО контроллера проверьте определяется ли порт контроллера со сбойным диском. После этого отключите UPS от сети, через определённый период времени система должна корректно завершить работу

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

Предупреждение №1 — Бекапы

Даже если у вас отказоустойчивый RAID — бекап обязателен!  Отсутствие политики резервного копирования является самой худшей, и к сожалению наиболее распостранённой ошибкой системных администраторов. Зачастую они думают «У меня есть отказоустойчивый RAID найлучшего производителя, мы потратили на него денег столько, что можно купить небольшой автомобиль, всё просто обязано быть надёжно. Мне не нужны бекапы«. И хотя RAID в определённой мере страхует данные от уничтожения, возможны ситуации в которых он вам уже не поможет:

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

Бекап, бекап и еще раз бекап. В свете выше сказаного шутка «Бекап бекап-сервера» уже не выглядит смешной. Идеально, если есть возможность дополнительно делать бекапы на удалённый сервер

Предупреждение №2 — Мониторинг состояния RAID

Всегда на замену должны быть диски нужного размера, всегда! Должен быть квалифицированный человек которорый сможет выполнить замену дисков для восстановления массива. Время реакции на возникшую проблему должно быть минимальным, иначе вы рискуете не пережить следующий подобный отказ. Но всё дело в том, что вы не будете знать когда нужно предпринимать экстренные меры если у вас не будет системы мониторинга

  • регулярная проверка SMART параметров дисков
  • очень желательно, чтоб ваш RAID-контроллер умел scrubbing. Scrubbing работает в моменты простоя считывая и контролируя характеристики чтения, что даёт вам возможность узнать о потенциальных сбойных секторах раньше, чем они появятся реально
  • любое необъяснимое падение производительности может означать проблемы с диском

Восстановление RAID

Если из отказоустойчивого массива, например RAID5, вылетел диск, вы его меняете да и делу конец. А если вылетел контроллер или при операциях с RAID’ом вами допущена ошибка или повреждена конфигурация RAID? В таких случаях без специальных програм восстановления данных не обойтись, например ReclaiMe Free RAID Recovery. Важно сохранить последовательность дисков в массиве. Восстановление желательно проводить на том же сервере. С этого момента то, что у вас осталось должно работать в режиме «только для чтения«. Это значит, что перед восстановлением вам нужно создать образ оставшегося массива и в дальнейшем работать с ним во избежание окончательной потери данных. Эти файлы-образы являются дополнительным слоем безопасности на этом этапе, хотя на их создание нужно дополнительное время

Помните, что образы нужно сохранить на другой диск

И на десерт — Ошибки RAID5 не подлежащие восстановлению

Существует один известный и широко обсуждаемый вопрос относительно RAID5.

При вылете одного из дисков, во время перестройки массива есть вероятность потерять все данные, если на одном из оставшихся дисков возникнет «непоправимая ошибка чтения (URE)». Эта ошибка встречается достадочно редко, но наличие современных массивов огромного размера наводит на мысль о том, что врядли есть возможность прочитать весь массив без ошибок

В интернете есть много расчётов показывающих, что вероятность поймать такую ошибку равна 50% на массиве 12Тб (6×2Тб) RAID5. Выглядит он следующим образом:

p — вероятность того, что бит диска не будет прочитан

q = 1 — p вероятность того, что бит диска будет прочитан

Для того, чтобы восстановить массив из N дисков по C терабайт каждый, нужно считать C*(N-1) данных. Число бит которые необходимо считать определяется формулой

b = C * (N-1) * 8 * 1012

Вероятность перестройки массива с удачным исходом определяется формулой

 P = qb

Величину p указывает производитель в спецификации диска, и обычно она равна 10-15 ошибок чтения на один бит

Значение URE производителя

Вероятность краха при

перестройке массива 6×2Тб

10-14 ~55%
10-15 ~10%
10-16 ~0%

Эти расчёты выставляют проблему в худшем свете, чем это есть на самом деле и основаны они на несколько наивных утверждениях:

  • сбойные биты встречаются через одинаковые промежутки времени и расположены равномерно по всем дискам массива
  • единственная ошибка считывания во время перестройки массива убивает весь массив

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

Таким образом утверждение в начале этого раздела может быть переопределено в нечто более практичное

Существует 50% вероятность того, что невозможно будет перестроить массив RAID5 ёмкостью 12Тб

Тоже самое можно сказать иначе

Если у вас есть 10Тб массив уровня RAID0, то существует вероятность 50%, что вы не сможете прочитать данные даже если вы их записали мгновение тому назад1

Тем не менее никто не говорит о том, что RAID0 мёртв. Выше сказанное можно переформулировать  по-другому

Существует 50% вероятность того, что диск не сможет непрерывно, в течении 30 часов выполнять последовательно операции чтения«2

Подобные утверждения не могут быть правдой

перевод Александр Черных
системный администратор

__________________

1 Предполагается, что массивы используют диски по 2Тб и данные хранящиеся в массиве — одинаковы
2 30 часов — предположительное время чтения данных с массива 10 Тб со скоростью 100Мб/сек

Статьи по теме