Аппаратные RAID-контроллеры: как выбрать, настроить кэш и заменить диск без потери данных | AdminWiki

Аппаратные RAID-контроллеры: как выбрать, настроить кэш и заменить диск без потери данных

16 сентября 2026 14 мин. чтения

Что такое аппаратный RAID-контроллер и когда он нужен

Аппаратный RAID-контроллер - это плата в слоте PCIe с собственным процессором (ROC), буфером кэша DDR3/DDR4 объёмом от 512 МБ до 8 ГБ и модулем защиты кэша от сбоя питания. Операционная система видит готовый логический том, а расчётом чётности и зеркалированием занимается железо. Типичные представители: LSI/Broadcom MegaRAID 9361-8i, Adaptec SmartRAID 3154-8i, Dell PERC H740P.

Выбирайте аппаратный RAID, когда нужны предсказуемые IOPS на случайной записи (СУБД, виртуализация), защищённый кэш, горячая замена дисков, работа через SAS-экспандеры и перенос массива на другой сервер. Программный RAID (mdadm, ZFS, Storage Spaces) закрывает файловые хранилища, бэкапные полки, домашние сборки и сценарии, где важны контрольные суммы и отсутствие привязки к вендору.

Разница, которая определяет всё остальное, в одном: у программного RAID нет энергозависимого кэша под защитой батареи. Каждая запись либо сразу ложится на диск, либо рискует потеряться. Аппаратный контроллер с исправным BBU подтверждает запись хосту из кэша и гарантирует её сохранение после отключения питания. Именно поэтому база данных на 20 000 IOPS случайной записи на аппаратном RAID 10 с кэшем 2 ГБ и рабочей батареей выдаёт в разы больше, чем тот же набор дисков под mdadm с политикой write-through.

Аппаратный RAID vs программный: что выбрать

ПараметрАппаратный RAIDПрограммный RAID (mdadm, ZFS)
Расчёт чётностиПроцессор контроллера (ROC)CPU сервера
Кэш записиDDR3/DDR4 1-8 ГБ с защитой BBU или CacheVaultТолько ОЗУ сервера, при сбое питания теряется
Загрузка CPUБлизка к нулю5-20% одного ядра при интенсивной записи
Горячая замена и rebuildАвтоматически, с настройкой скорости rebuildЗависит от реализации, rebuild идёт через CPU
Перенос на другой серверИмпорт foreign configuration, диск можно переставитьПереносится вместе с ОС, требует ручной сборки
Контроль целостностиPatrol read и consistency check по расписаниюZFS scrub проверяет контрольные суммы каждого блока
СтоимостьОт 300 до 1500 USD плюс модуль защиты кэша0 USD, только диски и CPU

Практическое правило: ZFS и RAIDZ2 требуют прямого доступа к дискам, поэтому контроллер переводят в режим HBA (JBOD) или IT, а не собирают на нём RAID. Если планируется PostgreSQL на RAID 10, VMware с десятком виртуалок или файловый сервер на RAID 6, аппаратный контроллер с BBU даёт больше стабильности. Сравнение уровней RAID и готовые сценарии для SQL Server, VMware и TrueNAS собраны в руководстве по выбору и настройке RAID-массивов.

Как выбрать RAID-контроллер под конкретную задачу

Сначала определите нагрузку, потом считайте параметры. Для случайной записи в СУБД критичны объём кэша и наличие защищённого write-back. Для файлового сервера важнее число портов и уровень RAID 6. Для виртуализации - пропускная способность шины и поддержка SSD-кэша.

Что проверить в спецификации:

  • Интерфейс: PCIe 3.0 x8 даёт около 6 ГБ/с, PCIe 4.0 x8 - около 12 ГБ/с. Для 12-гигабитных SAS SSD и NVMe пропускная способность шины становится узким местом.
  • Число портов: 8 для небольшого сервера, 16 для хранилища, 24 и экспандеры для полок до 240 дисков.
  • Кэш: 1-2 ГБ для файлов и бэкапов, 4-8 ГБ для СУБД, VDI и смешанной нагрузки.
  • Защита кэша: BBU на Li-Ion или суперконденсатор (CacheVault, ZMCP).
  • Уровни RAID: 0, 1, 5, 6, 10, 50, 60. Для массивов из дисков 8 ТБ и выше RAID 6 практически обязателен.
  • SSD-кэш: CacheCade Pro 2.0 у LSI/Broadcom, maxCache 4.0 у Adaptec.
  • Совместимость с бэкплейном сервера, ОС и наличие CLI для мониторинга.
ЛинейкаИнтерфейсКэшКлючевая особенность
LSI MegaRAID 93xx (9361-8i)PCIe 3.0, SAS 12 Гбит/с1-2 ГБCacheVault, классика для RAID 10
LSI MegaRAID 94xx (9460-16i)PCIe 3.0/4.0, SAS 12 Гбит/с2-4 ГББольше портов, выше пропускная способность
LSI MegaRAID 95xx (9560-16i)PCIe 4.0, тримод4-8 ГБSAS, SATA и NVMe на одном контроллере
Adaptec SmartRAID 3100PCIe 3.0, SAS 12 Гбит/с1-4 ГБZMCP, maxCache 4.0
Adaptec SmartRAID 3200PCIe 4.0до 8 ГБPCIe 4.0 и SSD-кэш
Dell PERC H730PPCIe 3.0, SAS 12 Гбит/с2 ГБУправление через iDRAC
Dell PERC H740PPCIe 3.08 ГБСтатистика и алерты без агента ОС

LSI/Broadcom: серии и особенности

MegaRAID 93xx (например, 9361-8i) работает на SAS 12 Гбит/с, несёт 1-2 ГБ кэша и поддерживает CacheVault CVPM02: суперконденсатор плюс NAND-память вместо литиевой батареи. Серия 94xx (9460-16i) добавляет порты и пропускную способность, а 95xx (9560-16i) переходит на PCIe 4.0 и тримод, то есть умеет работать с NVMe напрямую. Управление ведётся утилитой storcli64, для старых карт остаётся MegaCli64, плюс есть WebBIOS в UEFI и LSI Storage Authority.

Для PostgreSQL и MySQL берите модель с 2-4 ГБ кэша и CacheVault: модуль заряжается за несколько минут и не требует циклов калибровки батареи. Для файлового сервера хватает 9361-8i в RAID 6.

Adaptec: серии и особенности

SmartRAID 3100 и 3200 поддерживают SSD-кэш maxCache 4.0 (до 4 SSD в роли кэша чтения и записи), ZMCP (Zero-Maintenance Cache Protection, суперконденсатор) и утилиты arcconf и maxView Storage Manager. Линейка SmartRAID 3200 идёт на PCIe 4.0, что даёт запас под SAS SSD и NVMe. В парке ещё встречаются Series 7 и 8: ASR-71605 (16 портов, PCIe 3.0, 1 ГБ), ASR-8805 (8 портов, 1 ГБ) - они рабочие, но обновления прошивок для них выходят редко, поэтому под новые 4Kn-диски больших объёмов такие карты берут реже.

Dell PERC: серии и особенности

H330, H730, H730P, H740P, H750 и H755 - это контроллеры на чипах LSI/Broadcom с прошивкой Dell. H730P несёт 2 ГБ кэша, H740P - 8 ГБ, H750 и H755 идут на PCIe 4.0. Настройка Dell PERC выполняется утилитой perccli, штатными средствами OMSA (omconfig) и через интерфейс iDRAC. Ключевое удобство: iDRAC пишет события о деградации массива в лог и рассылает алерты по email без агента в ОС.

Важно: прошивку PERC обновляют пакетами Dell (через iDRAC, Lifecycle Controller или .efi с флешки). Прошивка Broadcom на PERC не подходит, несмотря на одинаковое железо. Обратная замена тоже ломает контроллер.

Настройка кэша и battery backup unit (BBU)

Режимы кэша: write-back vs write-through

РежимПоведениеРискКогда применять
Write-backЗапись подтверждается из кэша, на диски уходит позжеПотеря до нескольких секунд записей при сбое питания без рабочего BBUСУБД, виртуализация, любые задачи с интенсивной случайной записью
Write-throughЗапись подтверждается после записи на дискНет, при условии исправного массиваФайловые серверы без BBU, журналы, разовые операции
Always write backИгнорирует отсутствие или неисправность BBUВысокий: кэш не переживёт отключение питанияТолько лаборатория и тесты

Правило без исключений: write-back включают только тогда, когда BBU или CacheVault исправен и статус модуля Optimal. При разряженной или отсутствующей батарее контроллер по умолчанию переводит логические тома в write-through, и производительность случайной записи падает в разы.

storcli64 /c0 set cache=wb
storcli64 /c0/v0 set wrcache=wb
perccli64 /c0 set cache=wb
arcconf setcache 1 writeback

Отдельно настраиваются политики чтения и ввода-вывода: No read ahead для последовательных потоков, Read ahead для файлов, Adaptive read ahead для смешанной нагрузки; Direct IO для СУБД и Cached IO для файловых серверов. Практические комбинации под конкретные СУБД и гипервизоры разобраны в статье про настройку контроллера, кэширование и мониторинг.

Настройка BBU и CacheVault

Батарейный модуль (BBU) держит кэш при отключении питания 12-24 часа, но требует обслуживания: литий-ионная ячейка живёт 1-3 года, а контроллер раз в 90 дней запускает learn cycle. Калибровка занимает от 4 до 24 часов, и на это время write-back отключается. Поэтому learn cycle планируют на окно обслуживания, а не на пик нагрузки.

Суперконденсатор (CacheVault у LSI, ZMCP у Adaptec) не требует калибровки, заряжается за 5-7 минут и переносит остаток кэша в NAND при пропадании питания. Ресурс модуля - 3-5 лет, после чего он заменяется целиком.

storcli64 /c0/bbu show all
storcli64 /c0/cv show all
perccli64 /c0/bbu show all
arcconf getconfig 1 AD

Что смотреть в выводе: статус модуля, наличие заряда, количество циклов перезарядки, дату последней калибровки и текущую политику кэша. Если статус отличается от Optimal, переводите тома в write-through до замены модуля.

Безопасная замена вышедшего из строя диска в массиве

Порядок действий при замене диска

  1. Определите отказавший диск по статусу Failed или Degraded и проверьте физическую идентификацию подсветкой слота.
  2. Пометить диск как offline, затем как missing. Без этой операции контроллер считает, что диск вынули аварийно, и может пометить его как foreign.
  3. Извлечь диск из hot-swap корзины.
  4. Установить новый диск того же типа и объёма (допускается больше, но не меньше).
  5. Пометить новый диск как good и запустить rebuild, если он не стартовал автоматически.
  6. Проверить прогресс rebuild и статус массива после завершения.
storcli64 /c0/e252/s2 show all
storcli64 /c0/e252/s2 start locate
storcli64 /c0/e252/s2 set offline
storcli64 /c0/e252/s2 set missing
storcli64 /c0/e252/s2 set good
storcli64 /c0/e252/s2 start rebuild
storcli64 /c0/e252/s2 show rebuild

Замена диска на Dell PERC выполняется теми же шагами через perccli64, а также мышью в интерфейсе iDRAC: Storage, Physical Disks, Assign as Global Hot Spare или Rebuild.

Что учитывать по времени и риску:

  • Rebuild диска 4 ТБ SAS 7.2K при ограничении rebuild rate 30% идёт 6-12 часов, для 12-ТБ дисков в RAID 5 счёт идёт на сутки.
  • Скорость rebuild задаётся отдельно: storcli64 /c0 set rebuildrate=30. Значения выше 60% заметно бьют по отзывчивости рабочей нагрузки.
  • Не перезагружайте сервер во время rebuild и не вынимайте второй диск. Потеря второго диска в RAID 5 до окончания rebuild означает потерю массива.
  • После завершения rebuild запустите consistency check или patrol read, чтобы убедиться в отсутствии ошибок чётности.
  • RAID 5 из дисков 8 ТБ и больше повышает риск неустранимой ошибки чтения при rebuild. В таких конфигурациях выбирайте RAID 6 или RAID 10.

Что такое foreign configuration и как с ней работать

Foreign configuration - это конфигурация массива, найденная на дисках, которые текущий контроллер не считает своими. Причины три: перенос дисков из другого сервера, замена контроллера и диск, вынутый из массива без пометки offline и missing. Пока конфигурация foreign, диски недоступны для ввода-вывода.

storcli64 /c0/foreign show
storcli64 /c0/foreign import
perccli64 /c0/foreign show
perccli64 /c0/foreign import
arcconf getconfig 1

Импорт возвращает массив в работу, но меняет текущую конфигурацию контроллера: логические тома могут получить другие номера, а часть настроек кэша сбросится в значения по умолчанию. Перед импортом сохраните вывод storcli64 /c0 show all в файл. Очистка (clear foreign config) удаляет метаданные с диска безвозвратно, поэтому применяется только к дискам, данные которых точно не нужны.

Ситуация, знакомая многим: администратор вставил диск из старого сервера в свободный слот, контроллер увидел foreign config и при перезагрузке предложил импорт. Нажатие «Import» в WebBIOS на рабочем сервере может перестроить нумерацию томов и сбить загрузку. Правильное действие - вынуть диск до перезагрузки либо очистить foreign config на неиспользуемом диске.

Действия при отказе контроллера и миграция массива

Признаки отказа: массив не виден в BIOS контроллера, в логе iDRAC или IPMI есть события Adapter error, сервер не находит загрузочный том, вентилятор или спикер выдаёт код ошибки, карта не определяется в lspci. Логика действий простая: не инициализировать диски, не создавать новые тома, не запускать clear configuration. Данные на дисках остаются нетронутыми, пока метаданные не перезаписаны.

Миграция массива на новый контроллер

  1. Проверить совместимость: тот же вендор, та же или следующая серия, прошивка не старше той, что стояла на вышедшей карте.
  2. Сделать полный бэкап, если массив ещё читается хотя бы на деградированном уровне.
  3. Снять питание, заменить контроллер, подключить диски и кабели бэкплейна.
  4. Записать порядок дисков до разборки и собрать в том же порядке. Метаданные DDF позволяют импортировать массив при другом порядке, но так меньше поводов для сюрпризов.
  5. Включить сервер, войти в BIOS контроллера (Ctrl+R для MegaRAID, Ctrl+A для Adaptec) и импортировать foreign configuration.
  6. Проверить статус массива, режим кэша и версию прошивки, затем загрузить ОС.

Миграция с LSI 9260-8i на 9361-8i и с Dell PERC H730 на H740P обычно проходит с импортом foreign config: обе пары используют совместимые метаданные. Исключения касаются массивов с шифрованием (нужен тот же ключ или passphrase) и конфигураций с SSD-кэшем CacheCade, который после переноса настраивают заново. Держите под рукой холодный spare-контроллер той же модели с той же версией прошивки: это снижает простой с часов до десятков минут. Подробный порядок работ с проверками на каждом шаге описан в статье про пошаговую миграцию массива на новый контроллер.

Несовпадение прошивок: риски и решения

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

storcli64 /c0 show
perccli64 /c0 show
arcconf getconfig 1 AD

Отдельный риск - потеря «грязного» кэша. Если старый контроллер отказал в момент активной записи, содержимое кэша утрачено, и после импорта массив может оказаться логически несогласованным. После переноса запустите проверку файловой системы или scrub на стороне ОС, не полагаясь на целостность данных.

Обновление прошивки RAID-контроллера

Подготовка к обновлению прошивки

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

  1. Сделать и проверить бэкап данных. Проверить - значит восстановить хотя бы часть файлов на тестовом стенде.
  2. Зафиксировать текущую версию и настройки: storcli64 /c0 show all, storcli64 /c0/eall/sall show all.
  3. Скачать прошивку и BIOS контроллера только с официального сайта вендора под конкретную модель.
  4. Прочитать release notes: там указано, обновляется ли прошивка поверх текущей или нужен промежуточный шаг.
  5. Убедиться, что нет активных операций: rebuild, patrol read, consistency check, инициализации.
  6. Скопировать файл прошивки на локальный диск сервера или флешку с UTIL и подключить ИБП.

Процесс обновления и типичные ошибки

Обновление выполняют из ОС или из UEFI Shell. Для LSI/Broadcom пакет включает файл .rom и утилиту storcli; для Adaptec используется arcconf romupdate с файлом .ufi; для Dell PERC штатный путь - iDRAC или Lifecycle Controller.

storcli64 /c0 download file=firmware.rom
perccli64 /c0 download file=firmware.rom
arcconf romupdate 1 firmware.ufi

Процесс занимает от двух до десяти минут. Прерывание питания в этот момент делает контроллер неработоспособным: восстановление возможно только программатором или заменой карты. После обновления сервер перезагружается, версия проверяется тем же storcli64 /c0 show, затем проверяются статус массива, политика кэша и состояние BBU: настройки кэша после прошивки часто возвращаются к write-through.

Частые ошибки: прошивка от другой модели или от PERC вместо Broadcom, обновление во время rebuild, отсутствие бэкапа, работа старой версией MegaCli с новым контроллером. Если после обновления массив не поднялся, не запускайте initialize: сначала посмотрите foreign config и логи событий контроллера. Алгоритм разбора логов и локализации неисправности по симптомам описан в материале про диагностику и устранение неполадок RAID-контроллера.

Типичные ошибки при работе с аппаратным RAID и чек-лист перед операцией

Опасные ошибки, которые повторяются из года в год: несовпадение прошивок при миграции, забытый порядок дисков, проигнорированная foreign configuration, отсутствие бэкапа перед операцией, извлечение диска без пометки offline и missing, включённый write-back без рабочей батареи, а также попытка «починить» массив командой initialize. Каждая из них приводит к одному результату: данные недоступны, а восстановление стоит денег и времени.

Ещё одна привычка, которая дорого обходится: обновление прошивки сразу на всём парке оборудования без тестового прогона. Сначала обновляется один сервер, проверяется загрузка, статус массива, кэш и совместимость с дисками, потом остальные. Для разбора многомегабайтных логов MegaRAID и событий iDRAC удобно подключать LLM через API, например AiTunnel: единый доступ к GPT, Gemini и Claude с оплатой в рублях и без VPN, логи остаются в вашем контуре в виде текста для анализа.

Чек-лист перед любой операцией с RAID

  1. Бэкап данных сделан и проверен восстановлением.
  2. Выгружена текущая конфигурация: storcli64 /c0 show all, storcli64 /c0/eall/sall show all в файл.
  3. Записан порядок дисков с указанием enclosure, slot и серийных номеров.
  4. Проверены версии прошивки контроллера и бэкплейна, совместимость подтверждена release notes.
  5. Проверен статус массива: Optimal, без Degraded и без foreign config.
  6. Проверено состояние BBU или CacheVault, learn cycle не запущен.
  7. Нет активных операций: rebuild, patrol read, consistency check, initialize.
  8. Подготовлен совместимый spare-контроллер или диск и оригинальные кабели.
  9. Согласовано окно обслуживания, есть ИБП и план отката.
  10. После операции настроен мониторинг: алерты в Zabbix или Prometheus по статусу массива, SMART и температуре.

Если в планах расширение уже работающего массива, добавление полки или переезд на новое шасси, порядок действий и расчёт объёмов разобраны в руководстве по расширению системы хранения без простоя. Тестовый стенд удобно поднимать на облачных серверах с оплатой по факту, например в Timeweb Cloud, и держать внешнюю копию бэкапа вне того же шасси, где стоит RAID.

Перед следующей операцией с массивом сохраните вывод storcli64 /c0 show all в тикет, отметьте версию прошивки и статус BBU, а сам диск помечайте offline и missing до физического извлечения. Эти три действия закрывают большинство сценариев, в которых администраторы теряют данные.

Поделиться:
Сохранить гайд? В закладки браузера