
Хранение объемных данных — занятие хлопотное. Совет вроде «купи Netapp (Dell/EMC, HPE) — и нет проблем» плох тем, что подменяет повестку в головах администраторов систем хранения: разбор трафика данных и угроз их сохранности — на сравнение готовых решений и условий сервисных контрактов при них.
Данные неравноценны. Их согласованное хранение на разноскоростных носителях лежит в основе иерархических систем сопровождения жизненного цикла информации.
Самые ожесточенные технологические сражения идут за «горячие» данные: критичные транзакции перемещаются все ближе к обрабатывающим процессорам. Именно там обыгрываются сценарии хранения с низкими задержками обращения (RAM, Optane, NAND).
К сожалению, общую массу данных на 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 тоже:
Разработчики ОС для СХД идут дальше, предлагая массивы с тройным распределением четности 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 Priority и Rebuild Priority в меню Modify Controller Settings:
При нынешних емкостях дисков восстановление массивов идет сутками, в разных моделях управления данными по-разному. Администратор обязан оценивать урон от нештатных ситуаций.
Некоторые ОС для СХД позволяют восстанавливать локальные области, а не массив целиком — тем самым сокращая общее время реконструкции. Пространство массива разбивается на части, по которым отслеживаются изменения. Восстановление данных происходит только в тех зонах, где было зафиксировано изменение блоков данных.
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-массива без инициализации или с быстрой инициализацией (например, затиранием нулями данных), экономит время на старте, но чревато ошибками в будущем. Многие аппаратные контроллеры не позволяют создавать массивы без инициализации.
Рекомендована полная инициализация, хотя на нее может уйти несколько суток. Она может быть фоновой (background initialization), с изменяемым приоритетом исполнения массивом основных задач над инициализацией. При нулевом приоритете инициализация выполняется в паузах активности.
9. Настройка уведомлений
При изменении состояния массива все аппаратные RAID-контроллеры и программные реализации могут в автоматическом режиме включать звуковую и визуальную сигнализацию ( подсвечивать карман с диском ), присылать уведомления и логи на почту. Администраторы, оставляющие массивы без удаленного контроля, преступно небрежны. Надо ли потом удивляться потерям данных в результате последовательного отказа нескольких дисков?
Настройка уведомлений выглядит у всех примерно одинаково:
Заполняются поля: от кого, кому, на какие порты будут приходить уведомления, их тип. При необходимости, прикрепляются журналы событий, критических ошибок, предупреждений.
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й — чистити кулемет».