seerozha (seerozha) wrote,
seerozha
seerozha

Categories:

ИТ: Про desktop-ные диски и отказоустойчивые RAID-массивы

Толковая статья для бестолковых снабженцев.

"

Надежность жестких дисков: MTBF, AFR, UER. Почему не стоит использовать десктопные диски в аппаратных RAID'ах?

Мы живем в эпоху расцвета HDD: объемы достигли 4ТБ на диск (и это не предел), цены на большие (1-4ТБ, 7200 тыс. оборотов/мин) и быстрые (10/15 тыс. оборотов/мин) HDD снижаются, повсеместно используются SSD, растет производительность и наращивается функционал аппаратных RAID контроллеров, давно "повзрослели" решения на базе ZFS. Появилась проблема: массивы на несколько десятков терабайт стали доступны сравнительно небольшим организациям, но уровень знаний правил и рекомендаций по хранению данных остался невысоким. Ведет это к весьма плачевным последствиям - прямым начальным денежным потерям (результат самодеятельности в выборе оборудования) и дальнейшему ущербу от потери данных.
В данной статье мы рассмотрим несколько проблем и мифов, связанных с хранением данных. Мифов накопилось предостаточно и они продолжают жить, несмотря на огромное количество трагичных историй:

Миф №1.

Самый радикальный: "RAID вообще не нужен (как вариант - можно использовать RAID-0 + бэкапы). Современные диски достаточно надежны, у меня дома все работает годами".
Встречается, в основном, у начинающих неопытных IT-специалистов. Причина существования данного мифа проста - непонимание того, что такое информация вообще, и какое отношение имеет RAID к защите целостности информации. Дело в том, что RAID защищает не только от полной потери диска. Окончательный выход диска из строя - это лишь конечная точка его непростого существования, и до момента потери информации на всем диске мы можем терять небольшие фрагменты по мере появления сбойных секторов. Для бытового применения потеря (или искажение) участка в 512 байт обычно не является большой проблемой. Дома большую часть дискового пространства занимают мультимедийные файлы: изображения, звук и видео, так что потеря ничтожно малого фрагмента никак не отражается на воспринимаемом качестве, например, видео-файла. Для хранения структурированной информации (например, базы данных) любое искажение является недопустимым и появление любого "бэда" (нечитаемого сбойного сектора) означает полную потерю файла или тома. Статистическую вероятность наступления такого события мы рассмотрим позже.
Вывод: пользовательские данные нельзя хранить на одиночных дисках или в массивах, не обеспечивающих избыточности.

Миф №2.

"RAID = бэкап. Я потратил на контроллер целых $600! Но данные при этом защитил, можно спать спокойно, бэкапы не нужны".
Потерять данные с избыточного массива не просто, а очень просто. Можно начать с простого человеческого фактора, который в статистике, регулярно собираемой разными агентствами, занимает львиную долю всех случаев потерь данных. Достаточно администратору СУБД снести пару таблиц в базе или какому-нибудь пользователю удалить несколько файлов на ресурсе с неправильно настроенными правами доступа. При работе с контроллером или СХД можно ошибочно удалить нужный том. Причиной катастрофы может послужить незащищенный кэш контроллера (включен write-back, батарейки нет или она неисправна, выходит из строя блок питания или PDU - и несколько десятков или сотен мегабайт не попавших на диски данных улетают в трубу).
Резервное копирование нужно всегда. Отсутствие бэкапов - преступление.

Миф №3.

"Наступил цифровой коммунизм. Я могу позволить себе сервер в одном из ваших корпусов Supermicro на 24 диска, соберу один большой RAID-5 или RAID-6 из недорогих домашних 3ТБ SATA дисков, 60-ти с лишним терабайт хватит надолго."
Знаете ли вы о том, что при определенном сочетании числа, объема и качества дисков в RAID-5 вы практически гарантированно потеряете свои данные во время ребилда? Детальному рассмотрению декларируемых показателей надежности жестких дисков будет посвящена оставшаяся часть этой статьи.

Миллион часов MTBF - много или мало?

Что означает величина MTBF (Mean time between failures)? Для жестких дисков встречаются значения от 600-700 тыс. часов до 2-х миллионов. Рассмотрим для примера диск WD Red c MTBF равным миллиону часов. Неужели производитель гарантирует работу диска в течение 1000000/8760 = 114 лет и можно ни о чем не беспокоиться?
Вовсе нет. Значение MTBF (в случае HDD правильнее было бы использовать MTTF - mean time to failure) нельзя применить к одиночному изделию, это статистический показатель. Вот что пишет по этому поводу Hitachi:
MTBF target is based on a sample population and is estimated by statistical measurements and acceleration algorithms under median operating conditions. MTBF ratings are not intended to predict an individual drive’s reliability. MTBF does not constitute a warranty.
Это означает, что не один диск отработает 114 лет, а в партии из 114-ти дисков за 1 год можно ожидать выхода из строя одного диска. На практике, конечно, удобнее оперировать значением не MTBF, а AFR (annual failure rate - годовая интенсивность отказов). Упрощенная формула (если не принимать в расчет специфику распределения интенсивности отказов) выглядит так:
AFR=1/(MTBF/8760)
Т.е. для того же WD Red получаем величину AFR порядка 0,88%, причем она будет справедлива лишь в небольшой области на графике вероятности отказов. После 2-3-х лет работы в штатном для этого класса HDD режиме AFR будет нелинейно расти. А что будет, если режим отличается от штатного (например, при превышении температуры, уровня вибраций или круглосуточной эксплуатации бытовых дисков Seagate, для которых производитель рекомендует режим работы 8x5), и что вообще происходит в действительности? Ведь все это теоретические выкладки, может быть, рассказы о том, что "вот у меня дома старый Макстор работает почти десять лет без единого бэда" можно экстраполировать? Вот график из знаменитого отчета Google:
Он иллюстрирует статистику годовых отказов жестких дисков. Резкий рост значения AFR после одного года работы связан с тем, что Google использовал бытовые диски в режиме 24x7 (это была первая половина 2000-х, nearline класса еще не существовало). Итог: почти два процента в первый год, далее - рост до восьми с лишним процентов, что является результатом повышенной нагрузки. Кстати, вот распределение AFR в зависимости от нагруженности дисков:
Как видно из графика, тяжелые режимы работы резко увеличивают AFR, особенно в первые месяцы эксплуатации, когда высокая нагрузка помогает выявить диски со скрытыми производственными дефектами, и после четырех лет, когда нагрузка добивает изношенные диски.
Обратите внимание на спецификацию современных бытовых дисков Seagate: MTBF 700000 часов, при этом указан параметр Power-On Hours (POH) 2400 часов в год, что примерно соответствует режиму работы 8x5. Т.е. производитель обещает соответствие MTBF заявленному только при соблюдении данного режима работы. Хотите круглосуточной эксплуатации десктопных Seagate? Получите AFR в 8% вместо 1,25%. Вруководстве есть еще одно уточнение:

Average rate of <55TB/year. The MTBF specification for the drive assumes the I/O workload does not exceed the average annualized workload rate limit of 55TB/year.

Т.е. лимитируется еще и трафик, извольте читать/писать не больше 55ТБ в год. Не устраивает? Используйте диски nearline класса с MTBF от 1,2 млн часов и нелимитированным Power-On Hours.
Кстати, в целом статистика, предоставленная Google, соответствует классическому графику распределения отказов. Из-за характерной формы его еще называют bathtub curve:
В самом начале происходит большое число отказов изделий, имеющих скрытые производственные дефекты, т.н. "детская смертность". Затем частота отказов стабилизируется на период срока службы изделия, а потом начинает сказываться износ - отказы нелинейно растут.
Выводы:
Статистика - вещь упрямая. Не путайте MTBF и срок службы. Относитесь к дискам, как к расходным материалам, планируйте замену для отработавших под высокой нагрузкой в серверах по три-четыре года десктопных и nearline дисков. Вы вполне можете рассчитывать на AFR порядка 1% для nearline дисков, около 0,5% - для enterprise класса (10k/15k), разумеется, только в течение срока службы и при соблюдении всех условий эксплуатации. С десктопными дисками при высоких нагрузках гарантировать вообще ничего нельзя: температура, вибрация (в больших дисковых полках вибрация приобретает большое значение), повышенная нагрузка на блок головок сделают свое дело, и вы можете получить массовый падеж дисков уже после года работы.
Можно ли вообще использовать бытовые диски в серверах, если это делал Google? Все дело в том, как именно использовать. Google - это облачные технологии. Применительно к хранению данных это означает использование распределенной файловой системы, в данном случае - GFS, Google File System. Аналогичную архитектуру имеет, например, Parallels Cloud Storage. Данные разбиваются на блоки (chunks) размером в несколько мегабайт, эти блоки реплицируются между нескольким серверами. Серверы метаданных хранят информацию о распределении блоков и контролируют процессы чтения и записи блоков. Такой подход решает одну из проблем, связанных с эксплуатацией бытовых дисков - сравнительно высокую вероятность появления невосстановимых ошибок чтения (unrecoverable error rate), что приводит к большим сложностям при работе в RAID-массивах.

Миф №4. От низкой надежности десктопных дисков спасет RAID.

"Если десктопные диски столь ненадежны, то стоит просто закупить их побольше, поставить в RAID, пусть выходят из строя по 2-3-10% в год, будем менять"
Тут появляется еще одна проблема, связанная с качеством - UER (unrecoverable error rate). Означает вероятность появления невосстановимой ошибки чтения, по различным причинам: дефект поверхности, сбой в работе головки, контроллера и т.д. Для современных десктопных дисков значение UER составляет 1 x 10-14. Это означает, что при передаче 1 x 1014 бит вы с очень большой вероятностью прочитаете с диска вовсе не то, что туда записали. Дальше начинается занимательная математика, опубликованная в одном издокладов SNIA:
Диск объемом 500ГБ содержит 1/25 x 1014 бит. Допустим, у нас есть RAID-5 из шести таких десктопных дисков с UER равным 1 x 10-14. До определенного момента все работает хорошо, на дисках появляются и ремапятся сбойные сектора, к потере данных это не приводит, т.к. у нас RAID. И тут один из дисков выходит из строя. Меняем диск, начинается ребилд: c пяти дисков нужно считать страйпы и контрольные суммы, рассчитать и записать их на шестой диск.
Для пяти дисков вероятность получения невосстановимой ошибки чтения будет равна 1-(1-1/25)5=18.5%. 500ГБ по нынешним меркам - не очень много, в ходу диски по 1, 2, 3 и даже 4 терабайт. Для массива 8x1ГБ получаем 44.2%, а для "супер-большой-СХД-на-всю-жизнь" из 24-х десктопных дисков по 3ТБ получается шансов и вовсе не остается - 99.8%. Данную вероятность можно немного уменьшить, периодически запуская фоновую проверку целостности данных на массиве. Можно уменьшить ее значительно, на порядок, используя правильные диски nearline класса с UER = 1 x 10-15, но для больших массивов цифра получается все равно неприемлемой, ведь не учитывается вероятность полного выхода из строя второго диска во время ребилда, который при больших объемах и высокой нагрузке на массив может растянуться на несколько недель. Конечно, в реальности все будет не столь ужасно, так как значение UER производители HDD указывают с запасом, но основной смысл заключается в том, что при современных объемах мы не можем позволить себе оставлять массив в состоянии degrade, если данные не защищены дополнительными проверками целостности и/или механизмами распределенного хранения.
Вывод: при больших объемах современных дисков использовать RAID-5 нельзя. Даже для дисков enterprise класса (UER меньше еще на порядок - 1 x 10-16) вероятность получить ошибку чтения при ребилде массива из восьми 450ГБ дисков составляет около 0,3%. Их емкость тоже растет. Если относительно недавно диски на 10000 и 15000 об/мин были объемами в 36-146ГБ, то сейчас это уже 900 и 1200ГБ. Что делать?
Во-первых, для enterprise дисков - не создавать больших дисковых групп в RAID-5, использовать RAID-50.
Во-вторых, переходить на RAID-6 и 60 для enterprise и nearline дисков.
Как все-таки быть с десктопными дисками? Может быть, для них подойдет RAID-6?
Нет, RAID-6 их тоже не спасет, так как появляется следующая проблема - несовместимость с аппаратными RAID контроллерами, одной из причин которой является неконтролируемое время доступа при возникновении ошибок:

Time control (SCT ERC, TLER)

Для одиночного диска при появлении ошибки чтения стоит задача прочитать данные с этого сектора путем неоднократных попыток. Диск один, взять копию данных больше негде. Для диска в RAID массиве с избыточностью сбойный сектор никакой проблемы не представляет. Не читается сектор? Диску дается фиксированное время на несколько попыток чтения этого сектора. Время вышло, сектор тут же ремапится, данные восстанавливаются с других дисков. Если диск долго не отвечает, то контроллер считает его неисправным и выкидывает из массива, и на практике связка, например, из контроллера Adaptec и десктопных WD Green работает с регулярной потерей дисков и постоянными ребилдами, вплоть до полного развала массива.
За фиксированное время доступа отвечает технология SCT ERC. Посмотреть наличие ее поддержки и значения для чтения/записи можно при помощи smartctl:
smartctl -l scterc /dev/sdb
smartctl 6.1 2013-03-16 r3800 [x86_64-linux-3.8.7-1-ARCH] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
SCT capabilities:       (0x303f) SCT Status supported.
                        SCT Error Recovery Control supported.
                        SCT Feature Control supported.
                        SCT Data Table supported.
      SCT Error Recovery Control:
      Read: Disabled
      Write: Disabled

При наличии поддержки можно задать тайминги:
smartctl -l scterc,70,70 /dev/sdb
smartctl 6.1 2013-03-16 r3800 [x86_64-linux-3.8.7-1-ARCH] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

SCT Error Recovery Control set to:
           Read:     70 (7.0 seconds)
          Write:     70 (7.0 seconds)

На самом деле, одной лишь поддержки SCT ERC недостаточно. Решающим критерием при выборе дисков должно быть наличие в списке совместимости от производителя контроллера:

Влияние вибрации на производительность дисков

И последний аргумент: десктопные диски не рассчитаны на высокий уровень вибраций. Механика не та. Причины появления вибрационных нагрузок просты: большое количество дисков в одном корпусе (у Supermicro появился вариант на 72 3,5" диска в 4U) и вентиляторы по 5-9 тыс. оборотов в минуту. Так вот, замеры Seagate показали, что при нагрузке около 21 рад/с2 десктопные диски испытывают очень большие сложности с позиционированием головок, теряют дорожку, производительность падает на 80 с лишним процентов.
"

Источник
Tags: raid, ИТ
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments