RAID 5
RAID 5 (Redundant Array of Independent Disks, уровень 5) — это стандартизированная технология организации дискового массива, обеспечивающая отказоустойчивость за счёт распределённой чётности (parity). Относится к классу RAID-массивов, использующих чередование данных (striping) с блоками чётности, что позволяет массиву продолжать работу при выходе из строя одного из физических дисков без потери данных. RAID 5 является одним из наиболее распространённых уровней RAID в корпоративных и серверных системах хранения данных благодаря балансу между производительностью, ёмкостью и надёжностью.
История
Концепция RAID была впервые описана в 1987 году в статье Дэвида Паттерсона, Гарта Гибсона и Рэнди Катца из Калифорнийского университета в Беркли. В этой работе были определены пять уровней RAID (0–5). RAID 5 был предложен как усовершенствование RAID 4: вместо выделенного диска для хранения блоков чётности информация о чётности распределяется по всем дискам массива. Это устраняет узкое место, связанное с записью на один диск чётности, и повышает производительность операций записи. Первые коммерческие реализации RAID 5 появились в начале 1990-х годов в контроллерах и системах хранения данных.
Принцип работы
RAID 5 использует два основных механизма: чередование данных (striping) и распределённую чётность (distributed parity).
Чередование данных
Данные, записываемые на массив, разбиваются на блоки фиксированного размера (обычно от 4 КБ до 64 КБ, в зависимости от реализации). Эти блоки последовательно распределяются по всем дискам массива. Например, при массиве из трёх дисков первый блок записывается на диск 0, второй — на диск 1, третий — на диск 2, четвёртый — снова на диск 0, и так далее. Такое чередование позволяет параллельно обрабатывать запросы на чтение и запись, повышая скорость обмена данными.
Чётность
Чётность — это контрольная сумма, вычисляемая на основе данных блока. Для каждого набора блоков, расположенных на одной позиции (полосе, stripe) на всех дисках массива, вычисляется один блок чётности. В RAID 5 блок чётности не хранится на выделенном диске, а распределяется по всем дискам массива циклически. Например, для полосы 0 блок чётности может быть на диске 0, для полосы 1 — на диске 1, для полосы 2 — на диске 2, и так далее. Вычисление чётности выполняется с помощью операции XOR (исключающее ИЛИ). Если один из дисков выходит из строя, данные на нём могут быть восстановлены путём вычисления XOR оставшихся блоков данных и блока чётности.
Пример расчёта
Пусть массив состоит из трёх дисков (A, B, C). Для полосы, где блоки данных на дисках A и B равны 1 и 0 соответственно, блок чётности на диске C вычисляется как 1 XOR 0 = 1. Если диск A выходит из строя, данные на нём восстанавливаются как 0 XOR 1 = 1 (данные с диска B XOR блок чётности с диска C).
Характеристики
Ёмкость
Полезная ёмкость массива RAID 5 равна (N - 1) * S, где N — количество дисков в массиве, S — ёмкость одного диска (при условии, что все диски одинаковой ёмкости). Один диск эквивалентной ёмкости расходуется на хранение блоков чётности. Например, массив из 4 дисков по 1 ТБ предоставляет полезную ёмкость 3 ТБ.
Производительность
- Чтение: производительность чтения близка к производительности массива RAID 0, так как данные могут считываться параллельно со всех дисков. Скорость чтения примерно равна сумме скоростей чтения отдельных дисков, умноженной на количество дисков.
- Запись: операции записи требуют дополнительных вычислений чётности. При записи одного блока данных необходимо обновить не только сам блок, но и соответствующий блок чётности. Это приводит к снижению производительности записи примерно на 20–30% по сравнению с RAID 0. В современных контроллерах с аппаратным ускорением и кэшированием влияние на производительность записи может быть минимизировано.
- Случайные операции: производительность случайной записи (например, в базах данных) может быть значительно ниже, чем у RAID 0, из-за необходимости чтения старых данных и чётности для вычисления нового значения чётности (операция read-modify-write).
Надёжность
RAID 5 выдерживает отказ одного диска без потери данных. При выходе из строя второго диска до завершения восстановления (rebuild) данные теряются полностью. Время восстановления зависит от ёмкости дисков и производительности контроллера. В процессе восстановления массив работает в деградированном режиме, производительность чтения и записи снижается.
Применение
RAID 5 широко применяется в серверных системах, файловых серверах, системах хранения данных (СХД) среднего и начального уровня, а также в домашних и офисных NAS (Network Attached Storage). Он подходит для задач, где требуется:
- Отказоустойчивость при минимальных затратах на дополнительную ёмкость (один диск избыточности).
- Высокая скорость чтения (например, для файловых серверов, веб-серверов, видеонаблюдения).
- Хранение данных, которые не требуют высокой производительности записи (архивы, резервные копии, медиафайлы).
RAID 5 не рекомендуется для систем, критичных к производительности записи (например, для транзакционных баз данных с высокой интенсивностью операций записи), а также для массивов из дисков большой ёмкости (более 4–6 ТБ) из-за высокого риска ошибки невосстановимого чтения (URE) во время восстановления.
Ограничения и недостатки
- Ограничение на количество дисков: при использовании большого количества дисков (обычно более 8–10) вероятность отказа второго диска во время восстановления возрастает, что делает RAID 5 менее надёжным. Для таких случаев рекомендуется RAID 6 (двойная чётность).
- Время восстановления: при больших объёмах данных (например, 10 ТБ и более) процесс восстановления может занимать несколько часов или даже дней, в течение которых массив уязвим.
- Производительность записи: низкая производительность случайной записи по сравнению с RAID 0 или RAID 10.
- Сложность реализации: для эффективной работы требуется аппаратный RAID-контроллер с поддержкой вычислений чётности. Программный RAID 5 (например, в Linux mdadm) может значительно нагружать процессор.
Альтернативы
- RAID 0: высокая производительность, но без отказоустойчивости.
- RAID 1: полное зеркалирование, высокая надёжность, но низкая эффективность использования ёмкости (50%).
- RAID 6: двойная чётность, выдерживает отказ двух дисков, но требует два диска под чётность и имеет более низкую производительность записи.
- RAID 10: комбинация зеркалирования и чередования, высокая производительность и надёжность, но низкая эффективность ёмкости (50%).
- RAID Z (ZFS): реализация с распределённой чётностью, аналогичная RAID 5, но с защитой от ошибок записи.
Реализации
RAID 5 поддерживается большинством аппаратных RAID-контроллеров (например, LSI, Adaptec, HP Smart Array, Dell PERC) и программными решениями (Linux mdadm, Windows Storage Spaces, FreeBSD GEOM). В операционных системах семейства Linux программный RAID 5 может быть создан с помощью утилиты mdadm. В Windows Server RAID 5 поддерживается в режиме программного RAID, но с ограничениями (только для базовых дисков).
Интересные факты
- RAID 5 не является стандартом ANSI или ISO, но его реализация описана в спецификациях SNIA (Storage Networking Industry Association).
- В некоторых старых реализациях RAID 5 использовался алгоритм чётности, основанный на XOR, но в современных контроллерах применяются более сложные алгоритмы для ускорения вычислений.
- RAID 5 иногда называют «RAID с распределённой чётностью» (distributed parity RAID).
Источники
- Patterson, D., Gibson, G., Katz, R. (1988). A Case for Redundant Arrays of Inexpensive Disks (RAID). Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data.
- SNIA (Storage Networking Industry Association). Common RAID Disk Drive Format (DDF) Specification.
- Oracle. ZFS Administration Guide.
- Linux Kernel Documentation. md: Multiple Devices driver for Linux.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →