Памятка хранителю объемных данных

22 Сен 2018

Памятка хранителю объемных данных

Хранение объемных данных — занятие хлопотное. Совет вроде «ку­пи Net­app (Dell/EMC, HPE) — и нет проблем» плох тем, что под­ме­ня­ет по­вест­ку в го­ло­вах ад­ми­ни­ст­ра­то­ров сис­тем хра­не­ния: раз­бор тра­фи­ка дан­ных и уг­роз их со­хран­нос­ти — на срав­не­ние го­то­вых ре­ше­ний и ус­ло­вий сер­вис­ных кон­т­рак­тов при них.
Данные неравноценны. Их согласованное хранение на раз­но­ско­рост­ных но­си­те­лях лежит в основе иерархических систем со­про­вож­де­ния жиз­нен­но­го цик­ла информации.

Самые ожесточенные технологические сражения идут за «горячие» данные: критичные транзакции перемещаются все ближе к обрабатывающим процессорам. Именно там обыгрываются сценарии хранения с низкими задержками обращения (RAM, Optane, NAND).

По данным Commvault согласованное хранение на разноскоростных носителях лежит в основе иерархических систем сопровождения жизненного цикла информации

К сожалению, общую массу данных на SSD-накопители не перенесешь, и она стремительно растет в объеме: при­бы­ва­ет новый контент, вовлекаются в активный оборот архивные отложения (операционная деятельность, ана­ли­ти­ка, big data). Динамическое извлечение «горячего» ядра из общей массы становится отдельным искусством в пре­де­лах специфических отраслевых решений, но основное тело данных как лежало, так и лежит на ти­по­вых мас­си­вах HDD. И оно не такое уж «холодное», это тело.

Отвязав задачу производительного брутто-хранения (bulk storage) на емких механических дисках от программных ускорителей с использованием флэш-памяти и RAM, освежим в памяти базовые принципы обустройства дисковых массивов.

1. Уровни RAID

Изначально RAID был аппаратной технологией. Современные программные реализации RAID в составе ОС хра­не­ния опираются на вычислительную мощность процессоров, не так привязаны к оборудованию и богаче функ­ци­о­наль­но. Какими быть серверам хранения — на аппаратных контроллерах или программно-определяемыми, за­ви­сит от роли серверов, приложений окружения, бюджета.

При нынешней емкости HDD изжил себя RAID 5 с одной четностью и его производные. Потеря диска переводит мас­сив RAID 5 в деградированное состояние на несколько суток. При повторном отказе во время долгой ре­кон­струк­ции пользователь рискует остаться без данных. Компромисс между производительностью, надеж­но­стью и це­ной хранения дают RAID 6, RAID DP (NetApp), RAID Z2 (ZFS). Они могут восстановить информацию при отказе двух дисков в одной группе.

Это ненадолго. Пропорционально емкости дисков растет вероятность ошибок чтения (Unrecoverable read error, URE), подрывая будущие перспективы и RAID 6 тоже:

Вероятность ошибок (Unrecoverable read error, URE) растет пропорционально емкости накопителей

Разработчики ОС для СХД идут дальше, предлагая массивы с тройным распределением четности RAID 7.3 (RAIDIX) и RAID Z3 (ZFS), способные пережить потерю трех дисков. Есть реализации массивов RAID N+M с произвольным распределением четности, когда пользователь сам определяет количество дисков, выделяемых под хранение кон­т­роль­ных сумм.

2. Размер дисковой группы

Слово NetApp: «Настройка оптимального размера группы RAID требует компромисса факторов. Вы должны ре­шить, что именно: скорость восстановления RAID, гарантия от потери данных из-за сбоя диска, оптимизация про­из­во­ди­тель­но­с­ти ввода-вывода или увеличение пространства для хранения данных для вас важнее.

Создавая большие группы RAID, вы максимизируете пространство, доступное для хранения данных, при по­сто­ян­ном объеме хранилища под четности («налог на четность»). С другой стороны, когда выходит из строя диск в более крупной группе RAID, увеличивается время восстановления — что влияет на производительность в долгосрочной перспективе. Кроме того, чем больше дисков в группе RAID — тем выше вероятность сбоя нескольких дисков груп­пы».

В общем случае, чем больше дисков — тем выше производительность, но и вычислительная нагрузка на кон­т­рол­лер или CPU/RAM выше.

NetApp рекомендует создавать группы RAID-DP из 20…28 HDD. Adaptec говорит о максимум 32 дисках в RAID 6.

3. Емкость дисков

Чем больше объем диска в RAID-группе — тем выше «налог на четность» (RAID 6 тратит под контрольные суммы ем­кость двух дисков) и дольше восстановление. Чем короче дисковая группа — тем ниже производительность. Оп­ти­маль­ный баланс размера дисковых групп и емкости дисков приходится выбирать самому пользователю. На­при­мер, об­щую емкость 96TB можно получить несколькими способами: 24 x 4TB, 16 x 8TB или 8 x 12TB:

Дисковая группа RAID6 Эффективная емкость Производительность Среднее время реконструкции
24 х 4 TB 88 TB (96 TB – 2 x 4 TB) Высокая Сутки
16 х 8 TB 80 TB (96 TB – 2 x 8 TB) Средняя Двое суток
8 х 12 TB 72 TB (96 TB – 2 x 12 TB) Ниже среднего Трое суток

4. Заполнение массива данными

Слово Oracle: «В файловой системе Oracle Solaris ZFS запись перенаправляется на свободные блоки, поэтому для записи новых данных требуется некоторое пространство. Общая рекомендация: не заполнять пулы хранения ZFS больше, чем на 90% — во избежание потерь производительности. На практике, это значение плавающее и при­вя­за­но к рабочим нагрузкам:

  • Если данные в основном добавляются (разовая запись, без удаления), пустые блоки найти легко — за ори­ен­тир можно взять, скажем, 95%;
  • Аналогичным правилом можно руководствоваться, если данные добавляются большими файлами/блоками 128K-1M и удаляются скопом;
  • С другой стороны, если большая доля данных (свыше 50%) адресуется с размером блока данных 8К (файлы DB, iSCSI LUNs, много маленьких файлов) с постоянной перезаписью (динамические данные), тогда правилу 90% надо следовать строго:
  • Если 100% данных — динамические, с малым размером блока, то пулы надо тщательно мониторить, воз­мож­но, начиная с 80% заполнения».

ZFS создавалась с использований идей, лежащих в основе WAFL — файловой системы ОС Data ONTAP систем хранения данных NetApp, в том числе COW (Сopy On Write — записи на свободное место). Рекомендации NetApp (WAFL + RAID-DP) по заполнению пулов данными примерно такие же, как у Oracle.

RAIDIX относится к классическому типу хранилищ ROW (с перезаписью по месту), ориентирован на потоковые операции, но и там разработчики советуют внимательно следить за остатком свободного места на дисках.

5. Скорость реконструкции массива

На производительность штатных операций ввода-вывода влияет изменение статуса логических томов в процессе работы. Массив, перешедший в деградированное состояние после отказа диска, работает медленнее — ре­кон­струк­ция данных отнимает ресурсы процессора ввода-вывода.

Например, в RAID-контроллерах Adaptec можно расставить приоритеты, изменяя параметры Transformation Pri­o­ri­ty и Rebuild Priority в меню Modify Controller Settings:

В RAID-контроллерах Adaptec можно расставить приоритеты, изменяя параметры Transformation Pri­o­ri­ty и Rebuild Priority

При нынешних емкостях дисков восстановление массивов идет сутками, в разных моделях управления данными по-разному. Администратор обязан оценивать урон от нештатных ситуаций.

Некоторые ОС для СХД позволяют восстанавливать локальные области, а не массив целиком — тем самым со­кра­щая общее время реконструкции. Пространство массива разбивается на части, по которым отслеживаются из­ме­не­ния. Восстановление данных происходит только в тех зонах, где было зафиксировано изменение блоков дан­ных.

RAIDIX рекомендует выполнять восстановление данных только в тех зонах, где было зафиксировано их изменение

6. «Тихие» ошибки

У всех дисков в списке характеристик есть статистический параметр Unrecoverable Read Errors (URE) — ве­ро­ят­ность ошибок чтения данных с поверхности дисков — из-за ее повреждений, старения, космических лучей, рас­по­ло­же­ния звезд. Для Enterprise SATA/NL SAS допускается один непрочитанный бит на 1015, или один сектор из примерно 244 миллионов. Наткнуться на битый сектор при штатной работе RAID маловероятно, но вос­ста­нов­ле­ние RAID после аварии подразумевает большое количество операций чтения. Попадись URE, данные со­от­вет­ству­ю­ще­го блока не будут восстановлены, что приведет к несостоятельности данных.

Калькуляторы расчета вероятности ошибок, с привязкой к емкости дисков и сроку эксплуатации дают высокие шансы получить однажды тыкву вместо кареты. Не случайно в файловую систему ZFS, рассчитанную под емкие хранилища, создатели встроили контроль целостности данных. RAIDIX тоже обнаруживает и исправляет скрытые ошибки во время выполнения обычных дисковых операций путем анализа RAID-метаданных. Сканирование и исправление выполняется в фоновом режиме в периоды низкой активности СХД.

7. Контроль отклика дисков

Контроль отклика дисков (задержек обращения к ним) нужен для поддержания стабильной производительности и профилактики урона от старения дисков: их своевременная замена упредит разрушение массива и фаталь­ную по­те­рю дан­ных.

Выросшая латентность даже одного из дисков тянет вниз производительность всего RAID массива. Режим уп­реж­да­ю­щей реконструкции RAIDIX Advanced Reconstruction подчеркивает целевое позиционирование этой ОС для СХД под видеопроизводство: для стабильно высокой скорости передачи потоков важны ровные характеристики отклика по всей дисковой группе. Исключив диски с худшим, чем у остальных, откликом, и перестроив массив за­го­дя, можно оптимизировать скорость чтения.

Разработчики RAID позволяют проверять отклик дисков автоматически или вручную. Дополнительная нагрузка на процессор ввода-вывода может снижать производительность массива. Когда диски новые, проверки можно и от­клю­чить, если же хранилище возрастное — лучше обезопасить себя от неожиданностей и диагностику не вы­клю­чать.

8. Инициализация массива

Инициализация — это процесс преобразования исходного массива физических дисков в состоятельные ло­ги­че­ские тома (с целостными, внутренне непротиворечивыми данными). Выполняется для повышения про­из­во­ди­тель­но­сти и надежности хранения. У разработчиков аппаратных и программных RAID свои алгоритмы инициализации, быстрой или полной — с проверками целостности данных.

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

  • очистка всего объема дисков от «недружелюбных» метаданных — если они присутствовали на дисках;
  • обнаружение скрытого повреждения данных (Silent Data Corruption») — при полной инициализации;
  • контроль согласованности данных (проверяется четность или зеркальная копия данных) — при пол­ной ини­ци­а­ли­за­ции;
  • проверками целостности данных.

Построение RAID-массива без инициализации или с быстрой инициализацией (например, затиранием нулями данных), экономит время на старте, но чревато ошибками в будущем. Многие аппаратные контроллеры не по­зво­ля­ют создавать массивы без инициализации.

Рекомендована полная инициализация, хотя на нее может уйти несколько суток. Она может быть фоновой (back­gro­und initialization), с изменяемым приоритетом исполнения массивом основных задач над инициализацией. При нулевом приоритете инициализация выполняется в паузах активности.

9. Настройка уведомлений

При изменении состояния массива все аппаратные RAID-контроллеры и программные реализации могут в ав­то­ма­ти­че­ском режиме включать звуковую и визуальную сигнализацию ( подсвечивать карман с диском ), присылать уведомления и логи на почту. Администраторы, оставляющие массивы без удаленного контроля, преступно не­бреж­ны. Надо ли потом удивляться потерям данных в результате последовательного отказа нескольких дисков?

Настройка уведомлений выглядит у всех примерно одинаково:

Источник: Open-E JovianDSS

Заполняются поля: от кого, кому, на какие порты будут приходить уведомления, их тип. При необходимости, при­креп­ля­ют­ся журналы событий, критических ошибок, предупреждений.

10. Профилактика

Жесткие диск, как механическое устройство хранения информации — потенциальная точка отказа. Обычно это про­ис­хо­дит из-за износа магнитной поверхности пластин. Внезапные отказы редки, если не пренебрегать ди­а­г­но­сти­кой, их можно упреждать. Предусмотрительность снижает издержки: реконструкции массива или вос­ста­нов­ле­ния информации с развалившейся структуры RAID.

Для анализа запоминающий свойств носителей информации выполняются диагностические процедуры и вы­чи­ты­ва­ют­ся S.M.A.R.T. атрибуты дисков:

В данном примере тестировались диски «из коробки» — потому для всех 11127 операций чтения значение ла­тент­но­сти не превышает 25…40 ms. Смещение отклика по конкретному диску в правые зоны — сигнал к его замене. На­ко­пи­тель будет тормозить весь массив, и это потенциальный «cмертник».

При анализе S.M.A.R.T. надо следить за ростом значений следующих атрибутов:

Reallocated Sector Count

ID 05

Reported Uncorrected Sector Count

ID 187

Current Pending Sector Count

ID 197

Uncorrectable Sector Count

ID 198

End-to-End Error

ID 184

Write Error Rate

ID 200

За пользователя это могут делать RAID-контроллеры. Например, Adaptec SmartRAID 3xxx по результатам ав­то­ма­ти­че­ской вычитки S.M.A.R.T. выдаст пользователю рекомендацию о замене конкретного диска.

Все эти параметры косвенные, никто не сможет дать прогноз, сколько протянет диск. Но к «знакам» стоит от­но­сить­ся со всей серьезностью: диски неумолимо стареют, более-менее равномерно, любое восстановление массива с четностью — это повышенный стресс для всех дисков и высокие риски повторных отказов во время ре­кон­ст­рук­ции данных.

Что делать?

«Зберiгати спокiй — чистити кулемет».