К основному содержимому

Аппаратный RAID или mdadm: что выбрать на сервере

Выделенные серверы · 24.09.2026
Иллюстрация к статье «Аппаратный RAID или mdadm: что выбрать на сервере»

Аппаратный RAID или mdadm: что выбрать на сервере

На современном сервере с SSD и NVMe берите mdadm: он быстрее на флеше, не привязывает массив к модели контроллера и читается любой Linux-системой. Аппаратный контроллер с батарейкой и кэшем на запись выигрывает там, где стоит много механических дисков и нужен RAID 5 или RAID 6 без нагрузки на процессор.

  • mdadm — часть ядра Linux, массив собирается из любых блочных устройств и переезжает на другой сервер вместе с дисками.
  • Аппаратный контроллер даёт write-back кэш с BBU или флеш-защитой, чем сильно ускоряет случайную запись на HDD.
  • Метаданные контроллера проприетарны: без такой же модели прочитать диски напрямую обычно не выйдет.
  • NVMe почти никогда не подключают к классическому SAS/SATA-контроллеру, для них mdadm или ZFS — норма.
  • Накладные расходы mdadm на зеркале и страйпе — единицы процентов CPU, на RAID 6 из десятка дисков — заметнее.

Как работает аппаратный RAID

Контроллер — отдельный компьютер на плате: свой процессор ввода-вывода, своя память, своя прошивка. Операционная система видит не диски, а один логический том; вся логика уровня, чтение чётности и ребилд идут внутри контроллера.

Главный практический плюс — кэш на запись в режиме write-back. Сервер получает подтверждение записи, как только данные попали в память контроллера, а не на пластины диска. Это снимает штраф RAID 5 на случайной записи и превращает медленный массив HDD в приемлемый. Работает это только при исправной батарее или суперконденсаторе: без них контроллер сам отключает write-back и производительность падает в разы.

Как работает mdadm

mdadm — утилита управления подсистемой md в ядре Linux. Массив собирается из разделов или целых устройств, состояние хранится в суперблоке на самих дисках, а вся арифметика уровня выполняется на процессоре сервера.

Сравнение по пунктам, которые решают

КритерийАппаратный RAIDmdadm
Кэш на записьесть, с BBU или флеш-защитойнет, только кэш дисков и страничный кэш ядра
Нагрузка на CPUнулеваяот долей процента до нескольких процентов ядра
Перенос дисков на другой сервернужен совместимый контроллерлюбая Linux-машина соберёт массив
Поддержка NVMeредкая и дорогаяполная
Мониторингstorcli, perccli, ssacli — вендорские утилиты/proc/mdstat, mdadm --monitor
Точка отказасам контроллер и его батареяотсутствует отдельным элементом

Что стоит на сервере прямо сейчас

Определить реализацию можно за минуту. Если контроллер есть, ядро покажет его в списке PCI-устройств, а физические диски в lsblk будут скрыты за одним томом.

# есть ли RAID-контроллер на шине PCI
lspci | grep -i -E 'raid|megaraid|smart array'

# что видит ядро как блочные устройства
lsblk -o NAME,SIZE,TYPE,MODEL,MOUNTPOINT

# программные массивы
cat /proc/mdstat
mdadm --detail --scan 2>&1

# пакеты для управления программным массивом
apt-get install -y mdadm smartmontools      # Debian/Ubuntu
dnf install -y mdadm smartmontools          # RHEL, AlmaLinux, Rocky

Состав дисков в конкретной конфигурации указан в описании тарифа: на выделенных серверах ZevsHost базовые сборки идут парой накопителей в RAID 1, Enterprise US — четырьмя NVMe в RAID 10. Схему реализации на конкретной машине уточняйте в поддержке: она зависит от конфигурации.

Мониторинг: разные команды, одна цель

Программный массив сообщает о проблеме письмом от mdadm --monitor и строкой в /proc/mdstat. Аппаратный — только через вендорскую утилиту, которую надо поставить руками и опрашивать по расписанию.

# mdadm: демон уведомлений (Debian/Ubuntu и RHEL одинаково)
systemctl enable --now mdmonitor
mdadm --monitor --scan --test --oneshot

# LSI/Broadcom MegaRAID через storcli
storcli /c0 show all
storcli /c0 /vall show
storcli /c0 /eall /sall show

# HPE Smart Array
ssacli ctrl all show config detail

Аппаратный контроллер добавляет точку отказа, о которой вспоминают поздно. Разряженная батарея переводит кэш в write-through, и запись проседает в несколько раз без единой ошибки в логах. Смерть самого контроллера оставляет вас с дисками, чьи метаданные не читает ничего, кроме такой же модели. Проверяйте: storcli /c0 show all должен показывать состояние кэша WriteBack и батарею как Optimal, а не Degraded или Learn Cycle. На mdadm аналогичная проверка — cat /proc/mdstat без символов подчёркивания и State : clean в выводе mdadm --detail. Выпавший диск в обоих случаях требует замены в массиве без ожидания.

Как выбрать

  • SSD или NVMe, 2–4 диска, зеркало или RAID 10 — mdadm. Кэш контроллера здесь не даёт выигрыша, а ограничения по совместимости остаются.
  • 8 и больше HDD под RAID 6 — аппаратный контроллер с исправным BBU. Write-back снимает основной штраф чётности.
  • Гипервизор и ZFS — только прямой доступ к дискам. Контроллер переводят в режим HBA, иначе ZFS теряет контроль над кэшем; про запуск гипервизора на своём железе есть отдельная статья.
  • Нужна переносимость — mdadm. Диски вынимаются и собираются на любой другой машине.

Коротко

  • На флеш-накопителях mdadm практически всегда предпочтительнее контроллера.
  • Аппаратный RAID оправдан массивом механических дисков на чётности и рабочим write-back кэшем.
  • Контроллер привязывает диски к своей прошивке и сам становится точкой отказа.
  • Мониторинг обязателен в обоих вариантах, но утилиты разные: mdstat против storcli и ssacli.
  • Под ZFS и гипервизор контроллер переводят в HBA-режим и отдают диски системе напрямую.
← Назад в базу знаний Задать вопрос поддержке