До основного вмісту

Апаратний RAID чи mdadm: що обрати на сервері

Виділені сервери · 24.09.2026
Ілюстрація до статті «Апаратний RAID чи mdadm: що обрати на сервері»

Апаратний RAID чи mdadm: що обрати на сервері

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

  • mdadm — частина ядра Linux, масив збирається з будь-яких блокових пристроїв і переїжджає на інший сервер разом із дисками.
  • Апаратний контролер дає write-back кеш із BBU або флеш-захистом, чим суттєво прискорює випадковий запис на жорстких дисках.
  • Метадані контролера пропрієтарні: без такої самої моделі прочитати диски напряму зазвичай не вийде.
  • 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 і більше жорстких дисків під RAID 6 — апаратний контролер зі справним BBU. Write-back знімає основний штраф парності.
  • Гіпервізор і ZFS — лише прямий доступ до дисків. Контролер переводять у режим HBA, інакше ZFS втрачає контроль над кешем; про запуск гіпервізора на своєму залізі є окрема стаття.
  • Потрібна переносимість — mdadm. Диски виймаються і збираються на будь-якій іншій машині.

Коротко

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