Рост объемов операционных данных держит рынок 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 для профессиональных настройщиков. Одновременно с этим совершенствуются типовые шаблоны работы с данными — чтобы управление трафиком было по силам любому: комфортным, сродни работе звукорежиссера за пультом. Двигай ползунки, лови эффекты.
Стратегія охолодження ЦОД для епохи AI
Хорошая статья. Возвращает теплые воспоминания прошлых лет (или десятков лет), когда пользователи на дохлом железе пытались с помощь настроек железа или "убийством" служб Виндовс выдавить лишний IOPS или FPS, или лишний килобит на диалапе )
Уже тогда в аннотации к персональной платформе от Compaq можно было прочитать, что она собрана на «современном и экстремально быстром чипсете, утилизирующем высокую производительность процессора Intel© Pentium®-200MMX». Название набора системной логики за ненадобностью не указывалось. Хорошие были времена.
Cache Ratio
Да, динамическое распределение приоритетов использования кэш-памяти. Рукоделие.