Один жесткий диск – это единственная точка отказа вашего сервера. Когда он выходит из строя (а это вопрос не «если», а «когда»), проект падает: сайт недоступен, база данных повреждена, данные потеряны. RAID-массив решает эту проблему, объединяя несколько дисков так, чтобы выход из строя одного из них не приводил к остановке сервиса.
Важно: RAID – это не резервная копия. Массив защищает от физической поломки диска, но не от случайного удаления файлов, атаки вирусов или ошибки администратора. Резервное копирование обязательно даже при работающем RAID.
Эта статья – пошаговая инструкция для тех, кто арендовал выделенный сервер и настраивает отказоустойчивый дисковый массив удаленно, без физического доступа к железу, через IPMI или KVM-консоль. Вы узнаете, какой уровень RAID выбрать, как подготовить диски, создать массив, настроить мониторинг и что делать при отказе диска – без лишних шагов и типичных ошибок, которые приводят к переустановке сервера в три часа ночи.
Содержание
- Краткий ликбез: какой уровень RAID выбрать под ваши задачи
- Аппаратный или программный RAID: что выбрать на арендованном сервере
- Подготовка к настройке: что сделать ДО создания массива
- Пошаговая настройка программного RAID в Linux (mdadm)
- Краткая инструкция для Windows Server: Storage Spaces
- Обслуживание и мониторинг: чтобы не пропустить отказ диска
- Типичные ошибки при настройке RAID (и как их избежать)
- Заключение
- Часто задаваемые вопросы
Краткий ликбез: какой уровень RAID выбрать под ваши задачи
RAID (Redundant Array of Independent Disks) – это технология, которая объединяет несколько физических дисков в один логический. В зависимости от уровня массив обеспечивает отказоустойчивость, прирост производительности или и то и другое – за счет избыточности данных.
Сравнение основных уровней RAID
| Уровень | Мин. дисков | Отказоустойчивость | Чтение / запись | Доступное место | Идеальная задача |
| RAID 1 | 2 | 1 диск | Высокое / Среднее | 50% | Системный раздел, ОС |
| RAID 5 | 3 | 1 диск | Высокое / Низкое | (N−1)/N | Файловое хранилище (SSD) |
| RAID 6 | 4 | 2 диска | Высокое / Низкое | (N−2)/N | Большое файловое хранилище |
| RAID 10 | 4 | До N/2 дисков | Очень высокое / Высокое | 50% | Нагруженные БД, высокий I/O |

Рекомендации по выбору:
- Системный диск (ОС, небольшие проекты) – RAID 1: минимум дисков, простое восстановление, надежное зеркалирование.
- Высоконагруженная база данных – RAID 10: максимальная производительность по чтению и записи, устойчивость к отказам нескольких дисков.
- Файловое хранилище большой емкости – RAID 6: два диска могут выйти из строя одновременно, что критично при больших объемах, где восстановление массива занимает десятки часов.
Важное примечание о RAID 5: при использовании больших HDD (4 ТБ и более) риск возникновения ошибки чтения во время ребилда (URE – Unrecoverable Read Error) крайне высок. Пока массив восстанавливается после потери одного диска, нагрузка на оставшиеся диски резко возрастает – и второй диск может отказать до завершения синхронизации. Результат: полная потеря данных. Для SSD и NVMe, где время ребилда значительно меньше, предпочтителен RAID 10 – он быстрее восстанавливается и не имеет узкого места в виде расчета четности.
Аппаратный или программный RAID: что выбрать на арендованном сервере
Аппаратный RAID реализован на отдельном контроллере (LSI MegaRAID, Dell PERC и др.) – специализированной плате с собственным процессором и памятью. Программный RAID работает средствами операционной системы: в Linux это mdadm, в Windows Server – Storage Spaces.
Сравнение подходов в контексте аренды сервера
| Критерий | Аппаратный RAID | Программный RAID (mdadm) |
| Зависимость от железа | Высокая (привязан к конкретному контроллеру) | Отсутствует |
| Миграция при поломке сервера | Сложная (нужен идентичный контроллер) | Простая (подключение дисков к любому серверу с Linux) |
| Нагрузка на CPU | Минимальная | Незначительная (современные CPU справляются) |
| Удобство мониторинга | Зависит от вендора и утилит | /proc/mdstat, стандартные инструменты |
| Доступность | Только на серверах с контроллером | На любом тарифе с Linux |
Рекомендация: в условиях аренды выделенного сервера делайте ставку на программный RAID с
mdadm. Причина не только в доступности, но и в переносимости: если сервер выйдет из строя физически, вы снимаете диски, вставляете их в другой сервер с Linux – и массив пересобирается без каких-либо специальных инструментов. Аппаратный контроллер лишает вас этой гибкости: без идентичной модели контроллера данные на дисках становятся нечитаемыми.
Подготовка к настройке: что сделать ДО создания массива
Этот этап – самый важный, и именно его чаще всего пропускают. Ошибка на подготовительном шаге на удаленном сервере почти гарантированно означает переустановку ОС.
Чек-лист подготовки:
1. Резервное копирование. Прежде чем трогать диски, создайте резервную копию всех данных (подробнее о резервном копировании на сервере). Если сервер уже содержит информацию, используйте rsync для копирования на внешнее хранилище или снимок образа диска через dd на отдельный том. Убедитесь, что копия доступна и читается.
2. Доступ через IPMI/iKVM. Обычного SSH недостаточно: при перезагрузке в процессе настройки вы рискуете потерять управление. Откройте веб-интерфейс IPMI вашего провайдера, запустите удаленную консоль (iKVM или HTML5 KVM) и убедитесь, что она работает. Загрузите ISO-образ Ubuntu Server или Debian через функцию виртуального привода (Virtual Media) – он понадобится, если придется восстанавливать систему.
3. Идентификация дисков. Перед работой четко определите, с какими устройствами вы работаете:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
Проверьте каждый диск на наличие ошибок – включать в массив диск с уже имеющимися проблемами бессмысленно:
smartctl -a /dev/sda
smartctl -a /dev/sdb
Обратите внимание на поля Reallocated_Sector_Ct, Current_Pending_Sector и Offline_Uncorrectable – ненулевые значения сигнализируют о проблемах.
4. Зачистка дисков. Диски с существующими разделами, файловыми системами или метаданными старого RAID-массива необходимо полностью очистить – иначе mdadm может отказать в создании массива или поведет себя непредсказуемо.
Удалите метаданные файловых систем и RAID:
wipefs -a /dev/sda
wipefs -a /dev/sdb
Обнулите начало и конец диска (где хранятся таблицы разделов и суперблоки):
dd if=/dev/zero of=/dev/sda bs=1M count=10
dd if=/dev/zero of=/dev/sda bs=1M seek=$(( $(blockdev --getsz /dev/sda) * 512 / 1024 / 1024 - 10 ))
⚠️ Осторожно: dd необратимо уничтожает данные. Дважды проверьте имя устройства перед выполнением команды.
Затем удалите таблицу разделов через parted:
parted /dev/sda mklabel gpt
parted /dev/sdb mklabel gpt
Пошаговая настройка программного RAID в Linux (mdadm)

Убедитесь, что mdadm установлен:
apt update && apt install -y mdadm
Шаг 1: разметка дисков под RAID
Для каждого диска создаем один раздел типа linux-raid, который займет весь диск. Используем parted в неинтерактивном режиме:
for DISK in /dev/sda /dev/sdb; do
parted --script $DISK \
mklabel gpt \
mkpart primary 1MiB 100% \
set 1 raid on
done
Проверьте результат:
lsblk /dev/sda /dev/sdb
Вы должны увидеть разделы /dev/sda1 и /dev/sdb1. Именно эти разделы будут использоваться для создания массива – не сами диски целиком.
Шаг 2: создание массива (RAID 1 и RAID 10)
RAID 1 из двух дисков:
mdadm --create /dev/md0 \
--level=1 \
--raid-devices=2 \
/dev/sda1 /dev/sdb1
RAID 10 из четырех дисков:
mdadm --create /dev/md0 \
--level=10 \
--raid-devices=4 \
/dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
После создания начнется синхронизация (ребилд). Наблюдайте за прогрессом:
watch cat /proc/mdstat
Вывод будет выглядеть примерно так:
Personalities : [raid1] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
976630272 blocks super 1.2 [2/2] [UU]
[==========>………] resync = 54.3% (530614272/976630272) finish=6.2min speed=119584K/sec
Строка [UU] означает, что оба диска активны. После завершения синхронизации индикатор прогресса исчезнет. Не перезагружайте сервер и не создавайте файловую систему до полного завершения ребилда – это не обязательное требование, но снижает риск при внезапном отключении питания в процессе настройки.
Шаг 3: сохранение конфигурации и создание файловой системы
Сохраните конфигурацию массива в системный файл – без этого после перезагрузки массив может не собраться автоматически:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Проверьте, что запись добавилась:
cat /etc/mdadm/mdadm.conf
Обновите initramfs, чтобы система могла собрать массив на этапе загрузки – это критически важно, если массив содержит корневой раздел:
update-initramfs -u
Создайте файловую систему на готовом массиве. Выбор зависит от задачи:
- XFS – предпочтителен для высоконагруженных систем, баз данных, больших файлов, хорошо масштабируется на многоядерных CPU.
- ext4 – универсальный выбор, проще в обслуживании, лучше изучен, оптимален для системного раздела.
Для XFS:
mkfs.xfs /dev/md0
Для ext4:
mkfs.ext4 /dev/md0
Шаг 4: автоматическое монтирование
Получите UUID массива – использование UUID надежнее, чем имена устройств (/dev/md0), которые могут меняться:
blkid /dev/md0
Создайте точку монтирования и добавьте запись в /etc/fstab:
mkdir -p /mnt/data
Откройте /etc/fstab и добавьте строку:
UUID=*ваш-uuid-здесь* /mnt/data xfs defaults,noatime,nofail 0 0
Опции:
noatime– отключает обновление времени доступа при каждом чтении файла, снижая лишние операции записи.nofail– сервер загрузится даже если массив по какой-то причине недоступен, вместо зависания на этапе монтирования.
Проверьте монтирование без перезагрузки:
mount -a
df -h /mnt/data
Краткая инструкция для Windows Server: Storage Spaces
Если ваш выделенный сервер работает под управлением Windows Server, создание отказоустойчивого массива выполняется через механизм Storage Spaces.
Через Server Manager (GUI):
- Откройте Server Manager → File and Storage Services → Storage Pools.
- Нажмите Tasks → New Storage Pool, задайте имя пула и выберите диски.
- После создания пула нажмите New Virtual Disk, выберите пул.
- В мастере выберите тип устойчивости: Mirror (аналог RAID 1, минимум 2 диска) или Parity (аналог RAID 5, минимум 3 диска).
- Задайте размер виртуального диска, нажмите Create.
- Инициализируйте диск, создайте том и отформатируйте в NTFS или ReFS через стандартный мастер.
Через PowerShell:
Создание пула из всех доступных дисков:
$disks = Get-PhysicalDisk -CanPool $true
New-StoragePool -FriendlyName "RAID-Pool" -StorageSubsystemFriendlyName "Windows Storage*" -PhysicalDisks $disks
Создание виртуального диска Mirror (аналог RAID 1):
New-VirtualDisk -StoragePoolFriendlyName "RAID-Pool" -FriendlyName "VirtualDisk1" -ResiliencySettingName Mirror -UseMaximumSize
Инициализация и форматирование:
Get-VirtualDisk -FriendlyName "VirtualDisk1" | Get-Disk | Initialize-Disk -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS
⚠️ Ограничения: Storage Spaces доступен в Windows Server 2012 и новее, однако расширенные возможности (Storage Spaces Direct, трехстороннее зеркалирование) требуют редакций Datacenter или Standard. Кроме того, при физической замене сервера вы снова столкнетесь с привязкой к Windows-окружению. Для сложных конфигураций и максимальной переносимости Linux с mdadm остается более предсказуемым вариантом.
Обслуживание и мониторинг: чтобы не пропустить отказ диска
Настройка массива – это только начало. RAID защищает от потери данных, но не сигнализирует о проблемах сам по себе: если диск вышел из строя и вы этого не заметили, массив работает в деградированном состоянии без защиты. Следующий отказ диска приведет к потере данных.
Как настроить оповещения на email в mdadm
Откройте файл конфигурации и добавьте адрес для уведомлений:
nano /etc/mdadm/mdadm.conf
Добавьте или измените строку:
MAILADDR admin@yourdomain.com
Убедитесь, что в системе настроен MTA (например, postfix или msmtp для отправки через внешний SMTP). Примените изменения и запустите мониторинг:
systemctl enable mdmonitor
systemctl start mdmonitor
Проверьте, что оповещения работают (команда создает тестовое событие):
mdadm --monitor --test /dev/md0
Если письмо пришло – мониторинг настроен корректно.
Регулярная проверка состояния и SMART
Быстрая проверка состояния всех массивов:
cat /proc/mdstat
Детальная информация по конкретному массиву:
mdadm --detail /dev/md0
Обратите внимание на строку State: значения clean и active – норма; degraded означает, что один или несколько дисков выбыли.
Для автоматического мониторинга здоровья дисков настройте smartd. Откройте /etc/smartd.conf и добавьте строки для каждого диска:
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m admin@yourdomain.com
/dev/sdb -a -o on -S on -s (S/../.././02|L/../../6/03) -m admin@yourdomain.com
Это запускает короткий тест SMART ежедневно и расширенный – еженедельно. Запустите и включите в автозагрузку:
systemctl enable smartd && systemctl start smartd
Что делать, если диск вышел из строя: замена по шагам
Допустим, mdadm --detail /dev/md0 показал, что /dev/sdb1 имеет статус faulty. Последовательность действий:
1. Пометить диск как неисправный (если он еще не помечен автоматически):
mdadm /dev/md0 --fail /dev/sdb1

2. Удалить диск из массива:
mdadm /dev/md0 --remove /dev/sdb1
3. После физической замены диска (через запрос провайдеру) – разметить новый диск аналогично исходному (шаг 1 основной инструкции) и добавить в массив:
mdadm /dev/md0 --add /dev/sdb1
Массив автоматически начнет синхронизацию (ребилд). Наблюдайте за процессом:
watch cat /proc/mdstat
Во время ребилда сервер продолжает работать в штатном режиме – данные доступны.
Типичные ошибки при настройке RAID (и как их избежать)
- Создание массива на дисках с данными без резервной копии.
mdadm --createнеобратимо перезаписывает начало диска. Даже если кажется, что данные не нужны – сначала сделайте бэкап. - Использование разнородных дисков. Диски разного объема в массиве работают по размеру наименьшего. Диски с разной скоростью снижают производительность всего массива до уровня медленного. Используйте одинаковые модели, купленные в одной партии – по возможности.
- Забыли сохранить
mdadm.conf. Это самая распространенная ошибка. Без записи в/etc/mdadm/mdadm.confи обновленияinitramfsмассив при перезагрузке может не собраться автоматически или получить другое имя устройства (/dev/md127вместо/dev/md0). - Включение кэша записи на аппаратном контроллере без батарейки (BBU). Кэш записи резко ускоряет операции, но при внезапном отключении питания незаписанные данные теряются, что может привести к повреждению файловой системы. Включайте write cache только при наличии исправной Battery Backup Unit – или используйте режим write-through.
Заключение
Теперь вы не просто создали RAID-массив – вы сделали это осознанно: выбрали уровень под конкретную задачу, подготовили диски, корректно сохранили конфигурацию и настроили мониторинг. Это значит, что при отказе диска вы получите уведомление, поймете что делать и восстановите массив без паники. Продолжайте изучать серверное администрирование – следующие шаги: настройка автоматических резервных копий и мониторинг нагрузки сервера.
Часто задаваемые вопросы
Технически – да, mdadm это позволяет. На практике массив будет работать по емкости наименьшего диска: в RAID 1 из 1 ТБ и 2 ТБ вы получите 1 ТБ зеркала. Оставшееся место на большем диске останется неиспользованным.
Нет, массив доступен для записи сразу после создания. Но завершить ребилд до перезагрузки – разумная практика, особенно на критичных системах.
mdadm использует суперблоки с информацией о состоянии. После восстановления питания синхронизация продолжится с того места, где остановилась – данные не пострадают.
Напрямую – нет. Изменение уровня RAID требует пересоздания массива. Правильный путь: создать новый массив нужного уровня, перенести данные, пересоздать старый.
Выполните reboot и после загрузки проверьте cat /proc/mdstat и mdadm —detail /dev/md0. Если массив в состоянии clean – все настроено правильно.
Программный RAID (mdadm) создает незначительную нагрузку на CPU – на современных процессорах она практически незаметна. RAID 10 при этом дает выигрыш в скорости чтения за счет параллельного обращения к дискам.