Рост объемов операционных данных держит рынок RAID-контроллеров на плаву, при общем доминировании программно-определяемого хранения. Аппаратные контроллеры обогащаются настройками и остаются доступным средством управления производительностью в массовых серверных приложениях.
Производителей механических жестких дисков не слишком беспокоит победный марш твердотельных и насмешки над «ржавыми вибрирующими жестянками». Емкие HDD остаются фундаментом хранения: cырые, сорные, архивные и прочие объемные данные (что одному информационный мусор, другому — big data) по-прежнему держат на них. Спрос устойчив, от него выигрывают и разработчики стандартных RAID-контроллеров — серверам достается внушительная часть пирога хранения.
Аппаратные RAID-контроллеры управляют HDD, SSD и их логическими связками: обеспечивают загрузку сервера с защищенных томов, дают пользователю комфорт управления данными и высокую производительность операций ввода-вывода в его приложениях, без участия CPU. Абстракция от настроек ОС и файловых систем помогает ограничиться простым, но эффективным набором действий.
Поля данных
Сердце аппаратного RAID контроллера — процессор ввода-вывода (IOP), который отвечает за вычисления и прокачку данных. За последние годы они сильно прибавили в производительности. Пять лет назад однокристальный контроллер PMC PM8015 (как в Adaptec 7-й серии) обрабатывал 450K IOPS при случайном доступе с блоком 4К. Современный PM8222 SmartIOC (как в Adaptec 1100-2100-3100) — уже 1.7M IOPS.
IOP обслуживает постоянные запоминающие устройства (SSD, HDD), используя свою динамическую память DRAM. Ко всем этим полям данных у разработчиков есть свои рычаги управления производительностью. (Полупрограммные реализации RAID 5 с вычислениями в общей RAM сервера не в счет — там о производительности речь не идет).
Шаблоны нагрузок
Прежде чем что-то настраивать, надо знать особенности трафика данных: характер запросов, их интенсивность, глубину очереди, размер блоков данных, соотношение чтения/записи и пр.
Создатели RAID-контроллеров переплавляют многолетний опыт анализа данных реальных приложений в типовые наборы настроек, предлагаемые пользователям. Именно на оптимизации пресетов под определенный тип приложений и запросов держится устойчивый спрос на контроллеры нишевых производителей — как Areca или ATTO.
У Adaptec предустановки под профиль нагрузок выглядят так:
Недостатком подхода на основе шаблонов может оказаться неверная оценка пользователем структуры нагрузок. Например, для приложений OLTP /database общепринятым стандартом считается соотношение запросов чтения/записи 70/30%. Перевод OLTP-нагрузки в виртуализированную среду меняет его на противоположное — 30/70%. Если пользователь это знает — он скорее всего перейдет в режим Dynamic. Если нет — потеряет в скорости.
Погружение в ручные настройки дает больше возможностей влиять на производительность ввода-вывода.
Настройки DRAM
Управляя кэш-памятью RAID-контроллеров, подтягивают производительность ввода-вывода под реальной нагрузкой. С семейством Adaptec SmartRAID 3100 это можно делать динамически, не останавливая сервер.
Так, параметр Cache Ratio задает распределение кэш-памяти между операциями чтения и записи. По умолчанию выставлено соотношение Read 10% / Write 90%. Параметр Write Cache Bypass Threshold определяет «окно» — размер блока данных, при котором данные попадают в кэш-память. Диапазон значений параметра 16 −1040KB. Маленькие блоки (до 16KB) всегда попадают в кэш-память. Все что выше установленного значения — отправляется прямиком на диски, минуя кэш-память. В последовательных операциях ввода-вывода прямая запись на дисковый массив обычно обеспечивает более высокую производительность.
Представим, понадобилось экстренное резервирование данных, а кэш-память настроена по шаблону OLTP:
Переставляем ползунки:
В нашем натурном эксперименте скорость линейной записи после этого увеличилась почти в 8 раз — значит, времени на создание архивной копии уйдет меньше.
Еще один пример. Шаблон нагрузки OLTP подразумевает работу блоками 8 KB. Если база данных работает блоком 64KB, ручная установка параметра Write Cache Bypass Threshold 64KB приведет к росту производительности:
Настройки массивов с SSD
В RAID-массивах на одних SSD, без HDD, кэширование чтения и записи на контроллере, как правило, отключают (Enabling IO Bypass) — буферизация, улучшающая показатели массивов на механических дисках, не помогает флэш-накопителям. При желании, пользователь может активировать DRAM-кэш на контроллере и попробовать подтянуть производительность вручную. Опять же, на ходу, без остановки сервера и перестройки массива.
Мы собрали зеркало из 2 x SSD (400GB SAS SSD HGST Ultrastar SS200 )
и прогнали потоковый тест AJA со включенной и отключенной кэш-памятью RAID-контроллера:
Кэш-память контроллера включена (запись и чтение) |
Кэш-память контроллера отключена (запись и чтение) |
|
|
|
|
|
|
При активации кэш-памяти RAID-контроллера немного повыcилась производительность записи, просело чтение, проявилась общая нестабильность характеристик потока.
Во многих RAID-контроллерах реализована технология кэширования на SSD массивов HDD (Adaptec maxCache, LSI CacheCade). Так ускоряют работу приложений, когда данные хранятся на емких дисках, не структурированы, а их связность не позволяет вынести горячее ядро в отдельный логический том на SSD. Любое SSD-кэширование построено на анализе частоты доступа к данным массива HDD и помещении копий востребованных блоков данных в SSD-кэш. Извлечение данных из него быстрее, чем с HDD — отсюда и прирост производительности. Кэшируются чтение и запись, с полным резервированием. Диски SSD могут использоваться одновременно и как кэш, и под самостоятельные логические тома.
К контроллерам LSI 93xx программное обеспечение кэширования на SSD докупается в виде физических или программных ключей. У контроллеров Adaptec SmartRAID 315x поддержка SSD-кэширования (maxCache 4.0) входит в базовую поставку, как и флэш-модуль с суперконденсатором для защиты содержимого DRAM при потере питания.
Процедура создания кэширующего логического тома проста: выбираются SSD, подключаемое устройство, тип RAID, размер, политики кэширования:
Настройки массивов HDD
Когда-то, выбор подходящего уровня RAID для массива HDD преследовал две цели: производительность и надежность. Охотники за производительностью переключились на флэш-сафари и сопутствующие программные технологии, RAID остался средством обеспечения пристойной надежности хранения на недорогих емких дисках.
За последние годы в практике RAID на HDD мало что поменялось — разве что изжили себя стратегии RAID 5 (из-за высоких рисков повторного сбоя при реконструкции массива емких дисков), RAID 5EE и RAID 5 + hot-spare (RAID 6 лучше обоих), да появились поддержка RAID 1 ADM и 10 ADM (Advanced Data Mirroring). Пользователи могут создавать зеркала из трех дисков (RAID 1 ADM) и распараллеливать обращения к ним (RAID 10 ADM). Затраты выше, но и устойчивость к отказам выше.
Программные реализации RAID (как во множестве NAS-коробок) обещают вроде бы то же самое. Хорошо, пока накопители целы. При отказе диска массив переходит в деградированное состояние и начинается черная полоса в жизни его владельца — восстановление может идти неделями.
Просадка производительности
На производительность штатных операций ввода-вывода влияет изменение статуса логических томов в процессе работы. Массив, перешедший в деградированное состояние после отказа диска, работает медленнее — реконструкция данных отнимает ресурсы IOP. То же самое происходит при расширении массива, его перемещении, миграции логических томов. Аппаратный RAID-контроллер переживает смутные времена в разы быстрее полупрограммных реализаций.
Adaptec позволяет расставить приоритеты, изменяя параметры Transformation Priority и Rebuild Priority в меню Modify Controller Settings:
В современных RAID-контроллерах есть опция упреждающей диагностики магнитной поверхности HDD. При наличии резервного (spare) накопителя данные деградирующего диска можно скопировать на запасной. Присвоение одной или нескольких онлайн-«запасок» массиву позволяет отложить замену неисправных дисков на потом. Такая процедура в разы быстрее обычного восстановления при отказе диска, так как реконструкция поврежденных блоков проводится во время резервной активации.
Меню Adaptec Advanced Controller Settings позволяет адаптировать параметры массива (как следствие — его производительность) под профиль нагрузок:
Например, можно выставить приоритет стабильной высокой скорости ввода вывода при работе с большим объемом потоковых данных (как в задачах видео по запросу или видеонаблюдении).
RAID да HBA — два угодья в нем
RAID-контроллеры семейства Adaptec Smart Storage Platform, а также родственные им HPE Smart Array SR Gen 10 умеют работать в смешанном режиме RAID & HBA (mixed mode). В основе HBA лежит контроллер ввода-вывода IOC, в основе RAID-контроллера — ROC (RAID On Chip). По сути, ROC — это IOC (IOP) с логической обвязкой. Если архитектура и прошивки RAID-контроллера поддерживают частичное переключение его ROC в IOC по отдельным группам портов, он работает с одними наборами дисков как RAID, c другими — как HBA.
Производительность программно-определяемых систем с доступом к дискам через HBA определяется только программным слоем и возможностями накопителей. Современные контроллеры ее точно не ограничивают. Напомним, базовый для Adaptec процессор ввода-вывода PM8222 переваривает запредельные 1.7M IOPS в случайном доступе с блоком 4К.
Все дело в руках
Мнение о превосходстве в производительности одних RAID-контроллеров над другими обычно основано на привычках или частном опыте, когда пользователю «легла карта»: типовые настройки и профиль нагрузок приложений совпали. Разработчиков такое положение дел не устраивает — войны в хранении данных проходят под брежневским лозунгом: «Нам нужен мир. Желательно, весь». Поэтому и Adaptec и LSI борются за всех пользователей: опытных и не очень.
Эволюция аппаратных RAID-контроллеров идет двумя колоннами. Контроллеры обогащаются технологиями, позаимствованными у программно-определяемых решений —это видно по опциям Advanced Settings для профессиональных настройщиков. Одновременно с этим совершенствуются типовые шаблоны работы с данными — чтобы управление трафиком было по силам любому: комфортным, сродни работе звукорежиссера за пультом. Двигай ползунки, лови эффекты.
Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365
Хорошая статья. Возвращает теплые воспоминания прошлых лет (или десятков лет), когда пользователи на дохлом железе пытались с помощь настроек железа или "убийством" служб Виндовс выдавить лишний IOPS или FPS, или лишний килобит на диалапе )
Уже тогда в аннотации к персональной платформе от Compaq можно было прочитать, что она собрана на «современном и экстремально быстром чипсете, утилизирующем высокую производительность процессора Intel© Pentium®-200MMX». Название набора системной логики за ненадобностью не указывалось. Хорошие были времена.
Cache Ratio
Да, динамическое распределение приоритетов использования кэш-памяти. Рукоделие.