Настройка RAID-массивов (mdadm) для серверных дисков

Когда серверный диск выходит из строя в самый неподходящий момент, отсутствие настроенного RAID превращается в катастрофу с потерей данных и простоем бизнеса. Мы настраиваем программные RAID-массивы (mdadm) на Linux, подбирая оптимальный уровень защиты под ваши задачи. Наша команда реализует проект под ключ — от выбора конфигурации до внедрения и последующей поддержки, обеспечивая надёжную работу вашей инфраструктуры.
Часто задаваемые вопросы

Диск падает не по расписанию. Обычно это случается в пятницу вечером, когда на сервере нет RAID, а данные не бэкапились неделю. Наши инженеры сталкиваются с этим регулярно: клиент звонит с паникой, а мы за час поднимаем массив и восстанавливаем доступ. mdadm — стандартный инструмент для программного RAID на Linux, и при правильной настройке он работает годами без вмешательства. Мы гарантируем корректную конфигурацию, которая переживёт отказ диска и плановое обновление ядра. Наш опыт показывает, что 90% проблем с RAID возникают из-за неправильной начальной настройки. За 8 лет работы мы настроили более 50 RAID-массивов на серверах различной сложности, включая критичные production-среды с SLO 99.9%. Обеспечение отказоустойчивости сервера начинается с грамотного выбора уровня RAID и его настройки.

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

Перед тем как запускать mdadm --create, стоит понять, что именно нужно защитить. Три сценария встречаются чаще всего:

RAID 1 — зеркалирование двух дисков. Простой, надёжный, без лишних вычислений. Подходит для системного раздела, БД небольшого объёма, любых критичных данных, где важна скорость восстановления. При отказе одного диска система продолжает работать без остановки.

RAID 5 — минимум три диска, один используется под чётность. Даёт баланс между ёмкостью и отказоустойчивостью. Проблема: при rebuild на современных дисках 4TB+ процесс занимает 10–20 часов, и в этот период нагрузка на оставшиеся диски максимальная. Если второй диск не выдержит — массив потерян.

RAID 10 — зеркало поверх страйпа. Требует минимум четыре диска, но держит отказ одного диска в каждой паре. На высоконагруженных серверах с интенсивной записью это лучший вариант. RAID 10 как минимум в 2 раза быстрее RAID 5 на операциях записи, как показано в нашем benchmark testing.

Параметр RAID 1 RAID 5 RAID 10
Минимум дисков 2 3 4
Отказоустойчивость 1 диск 1 диск 1 диск в каждой паре
Скорость чтения 2x N-1 x 2x
Скорость записи 1x медленнее (чётность) 1x
Время восстановления быстро долго (10-20 ч) быстро
Рекомендуемый сценарий Система, БД Хранилище, медиа Высокая нагрузка

Уровни RAID определены стандартом SNIA

Как создать RAID массив и не потерять данные

Базовое создание RAID 1 из двух дисков:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u

Без этого шага после перезагрузки массив может не собраться автоматически. Симптом: система загружается с degraded массивом или вообще не видит /dev/md0.

Мониторинг состояния:

cat /proc/mdstat mdadm --detail /dev/md0 

Для настройки email-оповещений при деградации массива в /etc/mdadm/mdadm.conf добавляется строка MAILADDR [email protected] и включается демон: systemctl enable mdmonitor.

Дополнительные настройки мониторинга

Кроме mdmonitor, можно использовать Prometheus с node_exporter, который экспортирует метрики mdadm в /var/lib/node_exporter/textfile_collector/. Подробнее — в официальной документации.

Почему важен chunk size?

Параметр --chunk влияет на производительность, и его часто игнорируют при быстрой настройке. Для RAID 5/6 с тремя дисками chunk 512K даёт лучший баланс для случайного чтения. Для RAID 10 с большими последовательными записями — 256K. Выбор неправильного чанка может снизить производительность на 30%.

Не менее важно выравнивание разделов. Современные диски с 4K-секторами и SSD требуют выравнивания начала раздела на границу 1MB. Если раздел создаётся через fdisk без явного указания, по умолчанию всё выравнивается правильно. Но на старых системах или при ручном расчёте цилиндров можно получить смещение, которое убьёт производительность вдвое.

Как выполнить горячую замену и rebuild

Добавить запасной диск в массив для автоматической замены при отказе:

mdadm /dev/md0 --add-spare /dev/sdd 

Отметим: когда диск из массива начинает давать ошибки (S.M.A.R.T. предупреждения, ошибки в dmesg), правильная процедура:

mdadm /dev/md0 --fail /dev/sdb mdadm /dev/md0 --remove /dev/sdb mdadm /dev/md0 --add /dev/sdb 

Rebuild начнётся автоматически. Прогресс — в /proc/mdstat. Ограничить скорость rebuild, чтобы не класть I/O на продакшене:

echo 50000 > /proc/sys/dev/raid/speed_limit_max 

Типичные ошибки при самостоятельной настройке

Два момента, которые регулярно встречаются при аудите серверов:

  • Отсутствие mdadm.conf. Массив создан, работает, но конфиг не сохранён. После планового обновления ядра и update-initfs система не подхватила конфигурацию. Итог: сервер поднимается в rescue mode с паникой о missing root device.

  • RAID поверх партиций вместо целых дисков. Технически работает, но при замене диска нужно заново разметить раздел с точно такой же геометрией. На практике это лишний шаг, который забывают, и rebuild не стартует из-за несоответствия размеров. Рекомендуем строить RAID поверх целых дисков (/dev/sdb, /dev/sdc), а уже внутри массива создавать разделы.

Процесс работы

Мы подходим к настройке RAID системно:

  1. Аудит текущего оборудования и нагрузки — замеряем профиль I/O, определяем критичность.
  2. Проектирование — выбираем уровень RAID, рассчитываем количество дисков и chunk size.
  3. Развёртывание — создаём массив с учётом ваших интерфейсов (SATA, SAS, NVMe).
  4. Тестирование — нагрузочное тестирование fio, проверка отказа горячей замены.
  5. Мониторинг — настраиваем оповещения через mdmonitor, Prometheus или Zabbix.

Сроки и объём работ

Задача Время
Создание RAID 1 на работающем сервере без остановки сервисов 2–4 часа
Настройка RAID 5/10 с форматированием и переносом данных 4–8 часов
Аудит существующего RAID, настройка мониторинга и алертов 2–3 часа
Замена деградированного массива с восстановлением от 4 часов

Стоимость рассчитывается индивидуально после аудита конфигурации сервера и требований к доступности. Получите консультацию по выбору оптимального уровня RAID и настройке мониторинга. Свяжитесь с нами — поможем избежать деградации и простоев.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139