RAID-уровни для СХД: что выбрать под задачу
RAID объединяет несколько накопителей в один логический том ради доступности и/или скорости. Выбор уровня — это всегда компромисс между тремя величинами: сколько полезной ёмкости вы получите, сколько дисков сможете потерять без остановки и потери данных, и какой будет производительность, особенно на запись. Универсального «лучшего» RAID нет — есть подходящий под конкретную нагрузку. И ещё до выбора уровня важно определиться с подходом: аппаратный RAID на контроллере с прошивкой и кэшем, программный RAID силами ОС (Linux mdadm, Windows Storage Spaces) или RAID внутри файловой системы (ZFS: зеркала и RAIDZ). Эти три слоя по-разному ведут себя при отказах, восстановлении и переносе массива между машинами.
RAID 0 (страйп) только распределяет данные по дискам ради скорости и полной ёмкости — без какой-либо избыточности. Отказ одного диска уничтожает весь массив, поэтому RAID 0 уместен исключительно под временные данные, кэши и сценарии, где скорость важнее сохранности, а данные легко пересоздать. В продуктивных СХД его не применяют как самостоятельную защиту — он встречается лишь как «нулевой слой» внутри комбинированных уровней.
RAID 1 (зеркало) дублирует данные на два (или более) диска. Полезная ёмкость — половина, зато массив переживает отказ диска и восстанавливается просто и быстро: данные копируются с уцелевшего зеркала, без пересчёта чётности. Это разумный выбор под загрузочный том, гипервизор или небольшую критичную базу, где важна предсказуемость и стабильная скорость чтения, а не максимум места. На чтении зеркало даже выигрывает за счёт распараллеливания между копиями.
RAID 5 распределяет данные и один блок чётности по всем дискам массива — переживает отказ одного диска, а под чётность тратится ёмкость лишь одного диска из набора. Это даёт хорошее соотношение ёмкости и защиты, но у RAID 5 два известных минуса. Первый — просадка на случайной записи: каждая операция требует прочитать-изменить-записать данные и пересчитать чётность (write penalty). Второй и более опасный — долгое и рискованное восстановление: пока массив перестраивается, отказ второго диска уничтожает данные. Именно поэтому отраслевой консенсус сместился: на крупных дисках голый RAID 5 считают неоправданно рискованным.
RAID 6 — это RAID 5 с двумя независимыми блоками чётности: он переживает одновременный отказ двух дисков. Платой становится ещё одна «потерянная» под чётность ёмкость диска и более тяжёлая запись. Именно поэтому RAID 6 стал фактическим стандартом для массивов из ёмких дисков. Причина — арифметика ребилда: в 2026 году диски на 16–30 ТБ перестраиваются не часами, а сутками, потому что время восстановления растёт почти линейно с ёмкостью — нужно прочитать десятки терабайт с оставшихся дисков и записать весь объём на новый. Чем дольше идёт ребилд и чем больше данных читается, тем выше вероятность поймать неисправимую ошибку чтения (URE) или получить второй отказ под повышенной нагрузкой — и второй уровень чётности здесь страхует.
RAID 10 (зеркало плюс страйп) сочетает скорость и надёжность: данные зеркалируются и распределяются по парам дисков. Полезная ёмкость — половина, как у RAID 1, зато это лучший выбор под интенсивную случайную запись: нагруженные СУБД, в том числе под 1С, виртуализация с активным вводом-выводом, почтовые и транзакционные системы. RAID 10 переживает отказ нескольких дисков, если они из разных зеркальных пар, и перестраивается быстро, потому что копирует с зеркала, а не пересчитывает чётность — что критично именно на больших дисках, где ребилд parity-массива тянется сутками.
Когда обычных уровней не хватает по объёму, в дело идут составные RAID 50 и RAID 60 — это несколько групп RAID 5 (соответственно RAID 6), объединённых страйпом RAID 0. Они дают больше производительности и масштабируются на десятки дисков, сохраняя избыточность каждой группы: RAID 60 переживает отказ до двух дисков в каждой подгруппе и потому предпочтителен для очень больших массивов, где один большой RAID 6 уже неудобен по ребилду и «ширине». Минусы те же — сложнее планирование, нужен качественный контроллер, кэш и мониторинг, и при разрушении верхнего страйпа теряется весь том.
Тип накопителя меняет расклад. На HDD у parity-RAID главная боль — медленный ребилд и URE; на корпоративных SSD и особенно NVMe скорость восстановления выше, но появляется другая проблема: классический аппаратный RAID-контроллер сам становится бутылочным горлышком и «съедает» значительную часть потенциала NVMe из-за накладных расходов на чётность и ограничений шины контроллера. Поэтому на all-flash и NVMe всё чаще применяют зеркальные схемы (RAID 1/10), программные массивы (mdadm) или специализированные движки, а parity оставляют там, где важна ёмкость. И помните про ресурс записи SSD: parity-RAID добавляет паразитные записи, что ускоряет износ под тяжёлой случайной нагрузкой.
Аппаратный против программного — это про предсказуемость отказа, а не про «что быстрее». Аппаратный контроллер скрывает диски за логическим томом и даёт write-back кэш с защитой питания (BBU/CacheVault), но без этой защиты способен потерять подтверждённые записи при пропадании питания (это классический write hole — рассинхрон данных и чётности), а ОС теряет прямую видимость SMART каждого диска. Программный RAID (mdadm/Storage Spaces) хранит метаданные на самих дисках и проще переносится между машинами. ZFS стоит особняком: благодаря copy-on-write она в принципе не подвержена write hole (запись атомарна — ссылка переключается только после проверки контрольной суммы), а контрольные суммы по дереву Меркла дают самовосстановление от тихого повреждения данных. Но ZFS нужен прямой доступ к дискам (HBA/IT, не «умный» RAID). Главное правило: не наслаивайте несколько «умных» уровней избыточности друг на друга — выберите один слой, отвечающий за защиту, чтобы отказы и восстановление оставались предсказуемыми.
В больших и распределённых СХД на смену классическому RAID приходит эрэжер-кодинг (erasure coding) на кодах Рида-Соломона. По сути это обобщение чётности: данные режут на K частей и добавляют N частей избыточности (схема вида K:N), распределяя их по узлам/дискам кластера; потерять можно до N частей. EC даёт ту же или лучшую отказоустойчивость при меньших накладных расходах, чем зеркалирование (например, защита от двух отказов стоит ~1,5x ёмкости против 3x у тройного зеркала). Российские СХД идут тем же путём: T-RAID в YADRO TATLIN перестраивает только реально записанные данные и распределяет нагрузку ребилда по многим дискам с адаптивным троттлингом фоновых процессов — это резко сокращает окно уязвимости на петабайтных пулах по сравнению с «диск-в-диск» ребилдом классического RAID.
Как выбрать на практике под задачу. Загрузочный том и гипервизор — RAID 1. Продуктивные СУБД и виртуализация с активной случайной записью — RAID 10 (на больших дисках именно из-за быстрого ребилда). Файловые хранилища и архивы с упором на ёмкость — RAID 6 на ёмких дисках или RAID 50/60 на широких массивах; голый RAID 5 — только на небольших наборах быстрых SSD, где ребилд короткий. Видеонаблюдение (NVR/СХД под камеры) — это последовательная запись 24/7 многими потоками: берут специализированные HDD под видеонаблюдение и RAID 5/6 ради ёмкости, а RAID 10 там избыточен по цене. Сверхбольшие объёмы и распределённые системы — эрэжер-кодинг. Во всех случаях добавляйте hot spare и включайте фоновый scrub/patrol read, чтобы ловить деградацию дисков до отказа.
И главное, что часто забывают: RAID защищает от отказа оборудования, но не от удаления данных, шифровальщика, логической ошибки приложения, повреждения файловой системы или потери целого сервера или стойки. RAID не заменяет резервное копирование — это разные уровни защиты, и нужны оба, разнесённые по носителям и площадкам. Правильный выбор — это связка «уровень + контроллер + класс дисков + кэш с защитой питания + мониторинг + бэкап» под конкретную нагрузку и окно восстановления. Подбор такой связки под вашу СХД — обычная инженерная задача, и мы готовы её решить вместе с вами.