RAID в системах хранения данных: уровни, настройка и практические рекомендации | AdminWiki

RAID в системах хранения данных: уровни, настройка и практические рекомендации

11 сентября 2026 16 мин. чтения
Содержание статьи

RAID (Redundant Array of Independent Disks) объединяет несколько физических накопителей в один логический том. Для операционной системы такой массив выглядит как обычный диск, но даёт три вещи: защиту от отказа отдельного накопителя, рост скорости за счёт параллельных операций и удобное управление ёмкостью.

Выбор уровня RAID определяет результат: скорость, надёжность или полезный объём. RAID 0 ускоряет доступ и не защищает данные, RAID 1 и RAID 10 дублируют информацию, RAID 5 и RAID 6 экономят диски за счёт чётности. Ошибка в уровне или контроллере приводит к деградации массива в самый неподходящий момент, а rebuild на дисках большого объёма превращается в отдельный риск.

В статье: уровни RAID 0, 1, 5, 6, 10 и комбинированные схемы, сравнение аппаратных контроллеров с BBU и write-back кэшем и программных решений (mdadm, ZFS), команды сборки массива, порядок действий при отказе диска, выбор дисков с TLER и настройка мониторинга.

Что такое RAID и зачем он нужен в системах хранения данных

Массив RAID собирают из двух и более дисков. Данные распределяются по накопителям одним из методов: striping (чередование), mirroring (зеркалирование) или с добавлением контрольных сумм (чётности). Комбинация методов определяет уровень.

Три задачи, которые решает RAID:

  • Отказоустойчивость. При выходе из строя одного диска (в RAID 6 - двух) массив продолжает отдавать данные.
  • Производительность. Чтение идёт с нескольких дисков параллельно, скорость записи зависит от уровня и политики кэша.
  • Ёмкость. Несколько дисков собираются в один том, которым проще управлять.

RAID не нужен для одиночных дисков, JBOD-конфигураций и архивов, где важнее цена гигабайта. Для системного диска домашней машины массив тоже избыточен.

RAID - это не резервное копирование

Массив переживает отказ железа и не спасает от удаления файлов, шифровальщика, ошибки администратора, скачка напряжения, который выжигает все диски сразу, или кражи сервера. Все копии в зеркале синхронно получают и правильные, и испорченные данные.

Для данных на массиве нужна отдельная стратегия бэкапов: минимум три копии, два носителя, одна копия вне площадки (правило 3-2-1). Схему защиты строят целиком: RAID, репликация, снапшоты и восстановление с измеримыми RTO и RPO разобраны в материале про отказоустойчивость хранилища.

Ключевые термины: stripe, mirror, parity, degraded, rebuild

  • Stripe (страйп). Блок данных делится на части и записывается на несколько дисков одновременно. Так работает RAID 0.
  • Mirror (зеркало). Каждый блок пишется на два и более диска, копия готова к чтению сразу.
  • Parity (чётность). Контрольная сумма, по которой восстанавливают данные при потере одного диска (RAID 5) или двух (RAID 6).
  • Degraded (деградация). Состояние, когда один или несколько дисков выпали, но массив продолжает работать.
  • Rebuild (пересборка). Восстановление данных на новом диске после замены. Идёт с полной нагрузкой на остальные накопители.

Ещё два термина, которые понадобятся дальше: hot spare - резервный диск, автоматически включающийся в массив при отказе, и scrub/check - плановая проверка целостности всех блоков.

Уровни RAID 0, 1, 5, 6, 10: сравнение и выбор

Пять уровней закрывают почти все практические задачи. Разница между ними в компромиссе: сколько дисков отдать под защиту, какую скорость получить на запись и что произойдёт при отказе.

RAID 0: максимальная скорость без защиты

Чередование без чётности. Ёмкость равна сумме всех дисков, скорость чтения и записи растёт почти линейно с числом накопителей. Отказ любого диска означает потерю всего массива: данных для восстановления нет.

Применение: кэш, временные файлы, scratch-диски для вычислений, тестовые среды. Хранить на RAID 0 единственную копию рабочих данных нельзя.

RAID 1: зеркало для критичных данных

Два диска хранят одинаковые данные. Полезная ёмкость равна ёмкости одного диска, массив переживает отказ одного накопителя. Чтение ускоряется за счёт двух копий, запись идёт с той же скоростью, что на одиночный диск.

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

RAID 5: баланс ёмкости и отказоустойчивости

Данные и чётность распределены по всем дискам. Полезная ёмкость: (N-1) × размер диска. Массив переживает отказ одного накопителя. Чтение быстрое, запись страдает от штрафа на чётность: одна логическая запись превращается в несколько операций чтения и записи.

Главная проблема RAID 5 в 2026 году - rebuild на дисках объёмом от 4 ТБ и выше. Если во время чтения оставшихся дисков возникнет невосстановимая ошибка (URE), массив потеряет данные. Второй риск - write hole: при потере питания массив может остаться с несогласованной чётностью и данными.

RAID 6: двойная чётность для больших массивов

Две независимые контрольные суммы позволяют пережить отказ двух дисков одновременно. Полезная ёмкость: (N-2) × размер диска, минимум четыре накопителя. Запись медленнее, чем у RAID 5, из-за двойного расчёта чётности.

Применение: массивы от 6 дисков и объёмы от 4 ТБ, где нужен запас на время замены отказавшего диска и возможную вторую ошибку при rebuild. Для домашних NAS с 4-6 дисками RAID 6 или RAIDZ2 в ZFS - разумный выбор.

RAID 10: производительность и надёжность для БД

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

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

Комбинированные уровни: RAID 50, 60, 51, 61

Гибриды собираются из нескольких RAID-групп. RAID 50 - страйп из массивов RAID 5, RAID 60 - страйп из RAID 6, RAID 51 - зеркало из двух RAID 5, RAID 61 - зеркало из двух RAID 6. Они дают больше скорости на больших объёмах и переживают отказ нескольких дисков, если те попали в разные группы.

Минусы: сложнее администрировать, дороже, при отказе диска деградирует вся группа. Комбинированные уровни применяют в корпоративных СХД на десятки дисков, где важны скорость и плотность.

УровеньМин. дисковПолезная ёмкостьОтказ дисковЧтениеЗаписьТиповые задачи
RAID 02100% суммы0Очень высокаяОчень высокаяКэш, временные данные
RAID 1250%1ВысокаяСредняяОС, конфиги, малые БД
RAID 53(N-1) × C1ВысокаяНиже среднейФайловое хранилище
RAID 64(N-2) × C2ВысокаяНизкаяМассивы от 6 дисков, диски от 4 ТБ
RAID 10450%1 в каждой пареОчень высокаяВысокаяБД, виртуализация

Под конкретные задачи (SQL Server, VMware, TrueNAS) готовые команды mdadm и чек-лист действий при отказе диска собраны в практическом руководстве по RAID.

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

Уровень RAID - половина решения. Вторая половина: кто управляет массивом, отдельный контроллер с собственным процессором или операционная система.

Аппаратный RAID контроллер: плюсы, минусы, подводные камни

Контроллер берёт на себя вычисление чётности, кэширование и работу с дисками. Процессор сервера не тратит такты на математику, ОС видит готовый логический том. Ключевые компоненты: кэш (обычно 1-4 ГБ) и BBU или суперконденсатор, защищающий кэш при потере питания.

Режим write-back без защиты кэша опасен: данные из буфера при отключении электричества теряются. С BBU контроллер подтверждает запись до её попадания на диски, что ускоряет работу баз данных и виртуализации.

Минусы: цена и зависимость от вендора. При отказе контроллера массив собирают на совместимом контроллере того же семейства, иначе данные придётся вытаскивать через recovery-лабораторию. Fake RAID на материнских платах (Intel RST, VMD) настоящим аппаратным RAID не назвать: вычисления идут в драйвере ОС, переносимость ниже. Пошаговая настройка уровней 1, 5, 10 через Intel RST и VMD разобрана в руководстве по RAID на Intel-серверах.

Программный RAID: mdadm, ZFS, Storage Spaces

mdadm - стандартный инструмент Linux. Создаёт RAID 0, 1, 4, 5, 6, 10, хранит метаданные прямо на дисках (superblock версии 1.2) и позволяет перенести массив в другую машину без контроллера того же вендора. Замена диска, рост массива и смена уровня выполняются командами.

ZFS идёт дальше: вместо классических уровней использует RAIDZ, проверяет контрольные суммы каждого блока, лечит повреждённые данные по копии или чётности. Storage Spaces в Windows предлагает mirror и parity с управлением пулами. Современные CPU считают XOR и чётность RAID 6 на гигабайтных скоростях: узким местом остаются диски, а не вычислитель.

КритерийАппаратный RAIDПрограммный RAID
Нагрузка на CPUСнимается контроллеромИспользует CPU сервера
СтоимостьКонтроллер и BBUДополнительных затрат нет
Перенос массиваЗависит от модели контроллераДиски читаются на любой совместимой системе
Защита кэшаBBU или суперконденсаторНе требуется, запись идёт через кэш ОС
ГибкостьОграничена меню контроллераПолный набор операций и сценариев
Риск вендор-локаВысокийОтсутствует

RAID и ZFS: как сочетаются и что выбрать

ZFS - файловая система и менеджер томов одновременно. Она не использует классический RAID-контроллер, а строит пулы (zpool) из дисков или зеркал.

RAIDZ1, RAIDZ2, RAIDZ3: аналоги уровней RAID

RAIDZ1 переживает отказ одного диска и соответствует RAID 5. RAIDZ2 выдерживает два отказа, как RAID 6. RAIDZ3 - три отказа и тройная чётность, прямого аналога в классических уровнях нет. Ёмкость: RAIDZ1 = (N-1) × C, RAIDZ2 = (N-2) × C, RAIDZ3 = (N-3) × C, минус небольшой служебный оверхед.

Отличия от RAID: переменный размер страйпа под размер блока, отсутствие write hole, контрольные суммы для каждого блока и self-healing. При обнаружении битого блока ZFS читает копию из зеркала или восстанавливает данные по чётности.

Практика: для пула на 4-6 дисков берут RAIDZ2, для 8 и больше - RAIDZ2 или RAIDZ3. Кэш ARC живёт в RAM и ускоряет повторное чтение. Для баз данных добавляют SLOG на быстром SSD. TrueNAS - готовый дистрибутив, где пулы ZFS собираются через веб-интерфейс.

Почему ZFS не дружит с аппаратным RAID

ZFS нужен прямой доступ к каждому диску. Контроллер с RAID скрывает физические накопители за одним логическим томом: ZFS не видит, какой блок на каком диске лежит, не может проверить и вылечить повреждение. Аппаратный RAID с write-back кэшем нарушает порядок записи, на который опирается copy-on-write.

Итог: ZFS поверх аппаратного RAID 5 теряет самовосстановление и превращается в обычную файловую систему с лишней точкой отказа. Для ZFS берут HBA-контроллер в режиме IT (например, LSI/Broadcom 9300-8i) или подключают диски напрямую к SATA/SAS-портам.

Настройка RAID-массива: пошаговая инструкция

Сборка массива через mdadm в Linux. Синтаксис совместим с Ubuntu 24.04, RHEL 10 и большинством современных дистрибутивов.

Создание массива через mdadm

  1. Разметьте диски одинаково. Для каждого накопителя создайте раздел с выравниванием 1 МиБ (gdisk или parted), тип раздела - Linux RAID (fd00).
  2. Проверьте, что все диски видны: lsblk.
  3. Соберите RAID 5 из четырёх дисков и одного горячего резерва: mdadm --create /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
  4. Для RAID 10 команда короче: mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  5. Следите за сборкой: cat /proc/mdstat. Строка resync показывает прогресс, скорость поднимается через /proc/sys/dev/raid/speed_limit_max.
  6. Проверьте состояние: mdadm --detail /dev/md0. В выводе нужны State: clean, degraded или resyncing и список активных устройств.

Уровни RAID 5, 6, 10 и ZFS с примерами команд для Ubuntu и RHEL разобраны в руководстве по программным RAID на Linux.

Монтирование и автозапуск массива

  1. Создайте файловую систему: mkfs.ext4 /dev/md0 или mkfs.xfs /dev/md0.
  2. Смонтируйте: mount /dev/md0 /mnt/data.
  3. Получите UUID: blkid /dev/md0.
  4. Добавьте запись в /etc/fstab по UUID, а не по имени /dev/md0: порядок сборки массивов при загрузке не гарантирован.
  5. Сохраните конфигурацию для initramfs: mdadm --detail --scan >> /etc/mdadm/mdadm.conf (в RHEL путь /etc/mdadm.conf).
  6. Обновите initramfs: update-initramfs -u для Debian и Ubuntu или dracut -f для RHEL.

Без шагов 5-6 массив может не подняться после перезагрузки, особенно если корень системы лежит на нём.

Hot spare и замена отказавшего диска

Горячий резерв включается автоматически, когда один из дисков выпадает. Если spare нет, порядок такой:

  1. Найдите отказавший диск: cat /proc/mdstat или mdadm --detail /dev/md0.
  2. Пометьте и удалите: mdadm /dev/md0 --fail /dev/sdc1, затем mdadm /dev/md0 --remove /dev/sdc1.
  3. Установите новый диск, создайте раздел той же разметки и добавьте: mdadm /dev/md0 --add /dev/sdg1.
  4. Следите за rebuild: cat /proc/mdstat. Скорость пересборки на HDD обычно 100-200 МБ/с, для 8 ТБ это 10-20 часов.

Если rebuild не стартует, проверьте, что диск не помечен как faulty в superblock (mdadm --examine /dev/sdg1) и что размер раздела не меньше остальных. В Windows замена диска в зеркале Intel RST выполняется через графическую утилиту или CLI; пошаговый разбор есть в инструкции по RAID 1 через Intel RST.

Правило: перед заменой и rebuild снимите свежую резервную копию. Пересборка читает оставшиеся диски на полной скорости, второй отказ в этот момент встречается чаще, чем кажется.

Восстановление RAID-массива: риски и типичные ошибки

Rebuild - самый опасный этап жизни массива. Диски работают с полной нагрузкой часами, а свежего бэкапа у администратора часто нет.

URE и почему RAID 5 умирает при rebuild

URE (Unrecoverable Read Error) - ошибка чтения, которую диск не смог исправить своими силами. Спецификация потребительских SATA-дисков допускает до одной такой ошибки на 10^14 прочитанных бит, enterprise-моделей - на 10^15. Полное чтение диска на 4 ТБ - это 3,2 × 10^13 бит, ожидаемое число ошибок около 0,3. Для 8 ТБ - около 0,64.

При rebuild RAID 5 из четырёх 8-ТБ дисков массив читает три накопителя, примерно 1,9 × 10^14 бит. По паспортным значениям вероятность хотя бы одной URE превышает 80%. Если второй диск выпадет или вернёт нечитаемый блок, восстановить данные нечем.

RAID 6 выдерживает одну URE во время rebuild: вторая контрольная сумма позволяет восстановить повреждённый блок. RAID 10 устойчивее: данные читаются с зеркального диска, а не пересчитываются по чётности по всему массиву.

Типичные ошибки при сборке и восстановлении

  • mdadm --create вместо --assemble. Команда create перезаписывает superblock и уничтожает метаданные существующего массива. Для поднятия массива используйте mdadm --assemble /dev/md0 /dev/sd[b-e]1 или mdadm --assemble --scan.
  • Desktop-диски в массиве. Без TLER они уходят в глубокое восстановление сектора на минуты, контроллер считает диск отказавшим и выбрасывает его из массива.
  • Отсутствие мониторинга. Массив может месяцами работать в degraded, пока не откажет второй диск.
  • Rebuild без бэкапа. Если данные ценны, копию снимают до замены диска.
  • Неверный порядок дисков. При ручной сборке указывайте диски в правильном порядке, а лучше доверьте это --scan.
  • Игнорирование температуры. Перегрев дисков в тесном корпусе ускоряет отказы и ошибки чтения.

Порядок действий при degraded: зафиксируйте состояние (mdadm --detail, smartctl), снимите бэкап, проверьте SMART оставшихся дисков, замените отказавший, дождитесь rebuild. Пересобирать массив заново без необходимости нельзя: каждая лишняя операция повышает риск.

Выбор дисков и контроллеров для RAID

Железо определяет, сколько массив проживёт и как поведёт себя при первой ошибке чтения.

TLER, ERC и почему обычные диски ломают RAID

Обычный desktop-диск при ошибке чтения пытается спасти сектор и уходит в повторные попытки на 60-120 секунд. RAID-контроллер ждёт ответа ограниченное время (обычно 7-15 секунд), затем помечает диск отказавшим и выбрасывает из массива. Два таких события в RAID 5 - потеря данных.

Диски для NAS и enterprise-класса поддерживают TLER (Time-Limited Error Recovery) или ERC: через заданный интервал диск сообщает об ошибке и передаёт решение контроллеру или ОС. Типичное значение - 7 секунд. Это не ускоряет диски, а не даёт массиву рассыпаться из-за одного бэд-блока.

Что учитывать при выборе:

  • Класс. NAS-диски (WD Red Plus/Pro, Seagate IronWolf) или enterprise (Exos, Ultrastar). Desktop-модели для массивов не годятся.
  • Интерфейс. SAS даёт 12 Гбит/с, два порта и более высокий ресурс; SATA дешевле и подходит для bulk-хранилищ.
  • SSD. Проверьте поддержку TRIM в RAID-режиме, ресурс DWPD и TBW. Потребительские SSD без защиты от потери питания хуже подходят для кэша записи.
  • Одинаковость. Берите диски одной модели, объёма и прошивки: массив выравнивается по самому слабому и маленькому диску.
  • Партии. Диски из одной партии стареют синхронно, разнесите закупку по датам, если есть возможность.

Выбор RAID-контроллера: на что смотреть

  • BBU или суперконденсатор. Без защиты кэша write-back включать нельзя. Для баз данных и виртуализации защищённый кэш ускоряет запись в разы.
  • Режим HBA/JBOD. Для ZFS и mdadm контроллер переводят в IT-режим, чтобы отдать диски напрямую.
  • Совместимость с Linux. Проверьте драйвер (megaraid_sas, mpt3sas), поддержку TRIM и наличие утилит мониторинга (storcli, sas2ircu).
  • Кэш. 1-2 ГБ достаточно для смешанной нагрузки, 4 ГБ и больше имеет смысл на массивах из десятков дисков.
  • NVMe. Для быстрых пулов берите контроллеры с поддержкой NVMe или подключайте накопители напрямую к CPU.

Стандарт де-факто для HBA и RAID - контроллеры LSI/Broadcom на чипах SAS3008 и SAS3108. Прошивки и утилиты для них доступны под Linux и Windows без вендор-лока.

Мониторинг RAID-массива: как не пропустить отказ

Массив без мониторинга рано или поздно доходит до состояния, когда второй отказ убивает данные. Проверки и уведомления настраиваются один раз.

Настройка уведомлений mdadm

  1. Откройте конфигурационный файл mdadm (Debian и Ubuntu: /etc/mdadm/mdadm.conf, RHEL: /etc/mdadm.conf) и добавьте строки: MAILADDR admin@example.com и PROGRAM /usr/local/bin/md-alert.sh.
  2. Убедитесь, что служба mdmonitor запущена: systemctl status mdmonitor (в новых дистрибутивах - mdmonitor.service).
  3. Проверьте тестовым событием: mdadm --monitor --scan --test --oneshot. Письмо должно прийти.
  4. Для Telegram или Slack используйте скрипт в PROGRAM: он получает события о degraded, fail и rebuild и шлёт их в webhook.

SMART и регулярные проверки

smartctl показывает здоровье диска: smartctl -a /dev/sdb. Ключевые атрибуты:

  • Reallocated_Sector_Ct (5). Переназначенные секторы. Рост значения - первый признак приближающегося отказа.
  • Current_Pending_Sector (197). Секторы, которые диск не смог прочитать. Ненулевое значение требует внимания.
  • Offline_Uncorrectable (198). Ошибки, найденные при офлайн-проверке.
  • UDMA_CRC_Error_Count (199). Ошибки интерфейса и кабеля. Часто лечатся заменой шлейфа или backplane.
  • Temperature. Выше 55-60 °C ресурс диска падает, растёт число ошибок.

Автоматизируйте проверки: smartd с параметрами -m и -M exec шлёт письма при ухудшении атрибутов. Раз в месяц запускайте проверку целостности: echo check > /sys/block/md0/md/sync_action для mdadm, zpool scrub для ZFS. Занимает часы, зато находит нечитаемые блоки до того, как они понадобятся при rebuild.

Для Zabbix или Prometheus используйте готовые шаблоны: node_exporter с textfile collector забирает вывод mdadm и smartctl, Grafana строит дашборд. Алерты настройте на переход массива в degraded, рост переназначенных секторов, температуру выше порога и отставание scrub. Разбор больших логов SMART, dmesg и журналов контроллера ускоряет LLM-ассистент: агрегатор AiTunnel даёт единый доступ к GPT, Gemini и Claude без VPN и с оплатой в рублях.

Практические рекомендации и чек-лист

Ключевые правила в коротких списках.

Перед сборкой массива:

  • Свежий бэкап всех данных, которые будут лежать на массиве.
  • Диски одного класса, модели, объёма и прошивки, желательно NAS или enterprise.
  • Для RAID 5 и 6 посчитайте полезную ёмкость и заложите hot spare.
  • Для ZFS - HBA в IT-режиме, для аппаратного RAID - контроллер с BBU.
  • План мониторинга: mdmonitor или утилита контроллера, smartd, внешние алерты.
  • Запишите схему массива: уровень, порядок дисков, серийные номера. Храните отдельно от сервера.

При отказе диска:

  • Сначала бэкап, потом любые действия с массивом.
  • Не пересобирайте массив через --create и не переформатируйте диски.
  • Проверьте SMART оставшихся дисков: возможен второй сбойный накопитель.
  • Замените диск, добавьте в массив, дождитесь rebuild, проверьте статус clean.

Каждый месяц:

  • Проверить состояние массива: mdadm --detail, /proc/mdstat, журнал контроллера.
  • Запустить scrub или check.
  • Просмотреть SMART-атрибуты всех дисков и температуру.
  • Проверить, что тестовое уведомление доходит до дежурного.

Выбор уровня под задачу:

  • ОС и конфиги - RAID 1.
  • Файловое хранилище на 4-6 дисках - RAID 6 или RAIDZ2.
  • Базы данных, виртуальные машины, высокая нагрузка - RAID 10.
  • Кэш и временные данные - RAID 0.
  • Массивы от 8 дисков - RAID 6, RAIDZ2, RAID 60.

Если собирать и обслуживать железо не хочется, часть задач закрывает облако: Timeweb Cloud даёт серверы, VDS/VPS, базы данных и хранилище с оплатой за ресурсы, а резервирование и снапшоты настраиваются на стороне провайдера.

RAID повышает доступность данных и не отменяет бэкап. Минимальная рабочая схема: массив с запасом по отказоустойчивости, hot spare, мониторинг с алертами и регулярная проверка резервных копий. Остальное уточняется под конкретную нагрузку.

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