Расчёт для N дисков одинакового размера S и классического RAID 10: чередование по зеркальным парам. Ёмкость указана до форматирования, метаданных RAID и прочих накладных расходов.
| Уровень | Минимум дисков | Полезная ёмкость | Допустимые отказы | Чтение и запись | Типичные задачи |
|---|---|---|---|---|---|
| RAID 0 | 2 | N × S | 0: отказ любого диска разрушает массив | Чтение и запись могут масштабироваться с числом дисков; избыточности нет | Временные данные, кэш, воспроизводимые данные |
| RAID 1 из двух дисков | 2 | S | 1 диск | Чтение может выполняться с обеих копий; каждая запись идёт на обе копии | Загрузочный том, небольшое хранилище |
| RAID 5 | 3 | (N − 1) × S | 1 диск | Чтение обычно хорошее; небольшие случайные записи могут быть заметно медленнее RAID 10 | NAS и файловые массивы с преобладанием чтения |
| RAID 6 | 4 | (N − 2) × S | Любые 2 диска | Чтение обычно хорошее; запись требует расчёта двойной чётности | Ёмкие массивы, где важна защита во время восстановления |
| RAID 10 | 4, чётное N | (N / 2) × S | Один диск гарантированно; несколько — только если в каждой паре остаётся исправный диск | Обычно хорошо подходит для интенсивных случайных чтений и записей | Базы данных, виртуальные машины, транзакционные сервисы |
Как читать формулы ёмкости и отказоустойчивости
S — ёмкость наименьшего диска, N — число дисков. При смешивании дисков разного размера массив обычно использует объём наименьшего участника, поэтому остаток на более ёмких дисках может не войти в RAID. Доступная в ОС ёмкость также будет немного меньше расчёта: место занимают служебные метаданные, файловая система, а производители дисков и ОС могут по-разному отображать десятичные и двоичные единицы.
Чередование распределяет блоки данных между дисками и распараллеливает ввод-вывод, но само по себе не создаёт защиты. Зеркалирование хранит копии данных на нескольких дисках. В RAID 5 и RAID 6 часть пространства занимает чётность: контрольные данные для восстановления соответственно одного или двух отказавших дисков.
RAID 0 vs RAID 1: скорость без защиты или простое зеркало
На одинаковых дисках расчётная полезная ёмкость RAID 0 равна N × S: избыточности данных нет, а пространство всех участников используется для хранения данных. Такой массив допустим для данных, которые можно быстро получить заново: временных файлов обработки, кэша, рабочих копий из другого защищённого хранилища. Отказ одного участника делает логический том недоступным.
RAID 1 из двух дисков отдаёт половину сырой ёмкости, но сохраняет доступ при отказе одного участника. Это простой вариант для загрузочного тома или небольшого хранилища. Возможность загрузки сервера с такого массива зависит от платформы, режима контроллера и конфигурации загрузчика, поэтому её проверяют для конкретного оборудования.
RAID 5, RAID 6 и RAID 10 для БД и виртуальных машин
Для базы данных или пула виртуальных машин важны не только средние IOPS, но и задержка при случайной записи, глубина очереди и поведение массива в деградированном режиме. При интенсивной случайной записи классический RAID 10 часто предсказуемее RAID 5 и RAID 6: данные записываются в зеркальную пару, без пересчёта чётности для каждой частичной полосы.
В упрощённой модели небольшая случайная запись RAID 5, не покрывающая всю полосу, выполняется через чтение-модификацию-запись: два чтения и две записи, то есть условно 4 внутренних I/O. Для RAID 6 аналогичная оценка — 6 I/O из-за двух блоков чётности. Это иллюстрация штрафа записи RAID, а не универсальный результат: запросы могут объединяться, контроллер и ОС — кэшировать данные, а полная полосовая запись работает иначе.
Полная полосовая запись обновляет все блоки данных полосы, поэтому старые данные и чётность для пересчёта читать не требуется. Защищённый питанием Write-Back кэш и настройки размера полосы также способны изменить результат, но их эффект зависит от реализации RAID и профиля нагрузки. По этой причине нельзя вывести скорость записи только из уровня RAID.
- RAID 10 — обычный выбор, если БД или ВМ интенсивно выполняют случайные записи, чувствительны к задержкам и потеря половины сырой ёмкости приемлема.
- RAID 5 — вариант для преимущественно читаемой нагрузки, когда важна полезная ёмкость, а требования к задержке записи и восстановлению умеренные.
- RAID 6 — вариант, когда нужно пережить отказ любых двух дисков и допустима меньшая полезная ёмкость вместе с более тяжёлой записью.
- Для конкретной БД решение стоит сверять с её фактическими метриками: долей чтения и записи, размером запросов, очередью, задержками и временем, которое сервис может работать в дегра дированном состоянии.
Когда RAID 5 подходит для NAS, а когда нужен RAID 6
RAID 5 оправдан в NAS или файловом хранилище с тремя и более дисками, преимущественно последовательным доступом или преобладанием чтения, если после первого отказа допустим период работы без запаса отказоустойчивости по дискам. Он сохраняет ёмкость всех дисков, кроме эквивалента одного. При сравнении на одинаковом чётном числе дисков от четырёх и более RAID 5 даёт больше расчётной полезной ёмкости, чем классический RAID 10.
RAID 6 разумнее рассматривать для массивов большой ёмкости, особенно на HDD, когда rebuild может длиться заметное время и второй отказ в этот период недопустим. За двойную защиту платят ёмкостью двух дисков и, как правило, более высокими накладными расходами при записи. RAID 5 не становится автоматически неподходящим из-за размера дисков: решение зависит от резервных копий, допу стимого простоя, нагрузки и вероятности, которую организация готова принять.
Почему RAID 10 не переживает любые два отказа
В принятой здесь классической схеме RAID 10 сначала создаются зеркальные пары, затем данные чередуются между парами. Массив остаётся работоспособным, пока в каждой зеркальной паре есть хотя бы один исправный диск. Поэтому отказ двух дисков из разных пар может быть допустим, а отказ обоих участников одной пары приводит к потере массива.
Раскладка RAID 10 имеет значение
Деградированный режим и rebuild: что заложить до покупки дисков
После отказа диска отказоустойчивый массив переходит в деградированный режим. RAID 1 из двух дисков и RAID 5 после первого отказа уже не переживут ещё один отказ диска. В классическом RAID 10 результат зависит от зеркальной пары: отказ оставшегося участника повреждённой пары приведёт к потере массива, тогда как отказ диска из другой пары может быть допустим. RAID 6 после одного отказа ещё выдерживает второй, но не третий. Производительность и задержки могут ухудшиться, особенно при чтении данных с отсутствующего участника и при фоновой реконструкции.
В RAID 10 данные для заменённого диска обычно читаются с оставшегося участника его зеркальной пары. Однако rebuild всё равно использует ресурсы контроллера или программного RAID, шины и накопителей, поэтому способен влиять на весь массив и прикладную нагрузку. В RAID 5 и RAID 6 недостающие данные восстанавливаются по оставшимся дискам и чётности.
Не планируйте время rebuild по одной цифре
- Выберите уровень RAID до покупки дисков: классический RAID 10 из зеркальных пар требует чётного числа дисков и предоставляет примерно половину сырой ёмкости, RAID 5 резервирует эквивалент одного диска, RAID 6 — двух.
- Проверьте, переживает ли сервис ухудшение задержек и производительности во время замены диска и rebuild.
- Определите допустимый срок работы с одним отказавшим диском: это влияет на выбор между RAID 5 и RAID 6, наличие запаса дисков и процессы обслуживания.
- Учитывайте, что контроллер, программная реализация, тип накопителей HDD или SSD, кэш и размер запросов могут изменить практический результат.
RAID не заменяет резервные копии
Термины в статье
- Виртуальная машина
- Изолированная вычислительная среда с виртуальными процессорами, памятью, дисками и сетевыми адаптерами, в которой под управлением гипервизора работает гостевая ОС.
- Деградированный режим
- Состояние отказоустойчивого RAID-массива, потерявшего один или несколько участников, но сохраняющего доступ, пока число отказов не превышает допустимое для RAID-уровня.
- Зеркалирование
- Зеркалирование — поддержание одинаковых копий данных на двух и более накопителях или узлах хранения. В RAID оно обеспечивает избыточность и лежит в о снове RAID 1 и RAID 10.
- Избыточность данных
- Избыточность данных — хранение дополнительных копий или контрольной информации, позволяющее восстановить данные при отказе носителя, блока или другого компонента.
- Полная полосовая запись
- Запись в RAID с чётностью, заменяющая все блоки данных одной полосы. Новая чётность вычисляется по поступившим данным, поэтому старые данные и чётность читать не требуется.
- Программный RAID
- RAID, реализованный ОС или другим программным стеком хоста без отдельного аппаратного RAID-контроллера. Использует вычислительные ресурсы сервера.
- Чередование
- Распределение последовательных блоков данных между дисками или группами дисков RAID. Позволяет распараллеливать ввод-вывод, но само по себе не создаёт избыточности.
- Чётность
- Избыточные контрольные данные, вычисляемые из блоков одной полосы RAID. Один блок чётности защищает от отказа одного диска, два независимых блока RAID 6 — от отказа двух.
- Чтение-модификация-запи сь
- Чтение-модификация-запись — цикл частичной записи RAID-полосы: контроллер читает прежние данные и контрольную информацию, пересчитывает их и записывает обновление.
- Штраф записи RAID
- Штраф записи RAID — условное число внутренних дисковых операций на одну небольшую логическую запись, обусловленное зеркалированием или обновлением чётности.
- Failed
- Failed — статус физического накопителя, который RAID-контроллер признал отказавшим и перестал использовать для штатного ввода-вывода в составе массива.
- IOPS
- IOPS — число завершённых операций ввода-вывода в секунду, которое накопитель, RAID-массив или СХД обеспечивает при заданном профиле нагрузки.
- mdadm
- Утилита командной строки Linux для создания, сборки, мониторинга и изменения программных RAID-массивов подсистемы MD.
- RAID
- Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
- RAID 0
- RAID 0 — массив минимум из двух дисков с чередованием данных без избыточности. Отказ любого участника делает весь логический том недоступным.
- RAID 1
- RAID 1 — уровень RAID с зеркалированием данных на двух или более дисках. Полезная ёмкость равна ёмкости наименьшего участника, а доступ сохраняется, пока исправна хотя бы одна копия.
- RAID 10
- Комбинированный уровень: чередование (RAID 0) поверх зеркальных пар (RAID 1). Сочетает высокую скорость и отказоустойчивость, отдавая под избыточность половину ёмкости.
- RAID 5
- RAID 5 — уровень RAID с чередованием данных и распределённой чётностью, выдерживающий отказ одного диска. Требует минимум трёх дисков.
- RAID 6
- Уровень RAID с чередованием данных и двойной распределённой чётностью. Выдерживает отказ любых двух дисков; минимум четыре диска.
- RAID-уровень
- RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
- Rebuild
- Процесс восстановления избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.
- Write-Back кэш
- Политика кэша RAID-контроллера: запись подтверждается после помещения данных в кэш, а на накопители переносится позже. Кэш требует защиты от потери питания.
