RAID и RAID-контроллеры

Что такое RAID и зачем он нужен: простое объяснение без мифов

RAID объединяет несколько дисков в одно логическое хранилище и может пережить отказ накопителя. Но он не заменяет резервные копии и не защищает от всех причин потери данных.

8 минут
Начальный
абстрактная иллюстрация объединения дисков в единое хранилище
RAID — это способ объединить несколько физических накопителей в одно хранилище, которое операционная система обычно видит как один диск. В зависимости от RAID-уровня данные распределяются между дисками, дублируются или дополняются контрольной информацией для восстановления после отказа накопителя. RAID повышает доступность данных при некоторых сбоях и иногда влияет на производительность, но не является резервной копией.

RAID расшифровка и что называют RAID-массивом

RAID расшифровывается как Redundant Array of Independent Disks — избыточный массив независимых дисков. В практическом смысле RAID-массив — это группа накопителей, для которой контроллер, операционная система или файловая система задаёт единые правила размещения данных.

Исторически термин появился в статье 1988 года «A Case for Redundant Arrays of Inexpensive Disks (RAID)» Дэвида Паттерсона, Гарта Гибсона и Рэнди Каца из University of California, Berkeley. В исходной формулировке использовалось слово *Inexpensive* («недорогих»), а в современной расшифровке обычно говорят *Independent* («независимых»).

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

Принцип работы RAID: чередование, зеркало и чётность

Архитектура RAID строится на трёх базовых механизмах. Они могут использоваться по отдельности или сочетаться: например, RAID 10 объединяет чередование и зеркалирование.

Базовые механизмы RAID

МеханизмКак размещаются данныеЧто даётЧего сам по себе не даёт
ЧередованиеПоследовательные блоки распределяются между несколькими дисками.Позволяет выполнять часть операций ввода-вывода параллельно и объединять ёмкость дисков.Избыточности: потеря одного участника может сделать данные массива недоступными.
ЗеркалированиеОдни и те же данные записываются на два или более накопителя.Создаёт копии данных внутри массива и позволяет продолжать работу при отказе части зеркала.Защиты от ошибочного удаления или повреждения данных: изменение обычно попадёт во все актуальные копии.
ЧётностьК данным добавляется вычисляемая контрольная информация, которая хранится на дисках массива.Позволяет восстановить недостающие блоки при отказе диска в пределах возможностей уровня.Мгновенного восстановления и одинаковой производительности для всех типов записи.

Избыточность данных в RAID — это дополнительные копии либо контрольная информация, а не отдельная независимая копия данных. Она предназначена прежде всего для восстановления после отказа накопителя.

Что произойдёт при отказе одного диска

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

Ориентиры по распространённым уровням RAID; конкретная реализация может иметь ограничения.

УровеньМинимум дисковОтказ одного диска
RAID 02Не переживает: избыточности нет, массив обычно становится недоступен.
RAID 12Двухдисковое зеркало обычно продолжает работу на оставшемся диске.
RAID 53Обычно продолжает работу; чётность допускает отказ одного диска.
RAID 64Обычно продолжает работу; два независимых блока чётности допускают отказ до двух дисков.
RAID 10Обычно 4Переживает один отказ. Некоторые сочетания двух отказов также допустимы, если не потеряны оба диска одной зеркальной пары.

После замены отказавшего накопителя начинается перестроение массива — восстановление избыточности на новом диске из данных остальных участников. Во время этой операции массив остаётся уязвимее обычного, а его отклик может меняться в зависимости от нагрузки, накопителей и реализации RAID.

RAID не гарантирует доступность при любом отказе

Избыточность не поможет, если отказов больше, чем допускает уровень, либо если затронуты оба диска одной зеркальной пары RAID 10. Также результат зависит от исправности остальных дисков, кабелей, питания, контроллера, метаданных массива и возможности корректно собрать конфигурацию.

Зачем нужен RAID: доступность, ёмкость и производительность

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

Нельзя считать конкретный уровень гарантированно «быстрым». Результат зависит от размера и соотношения операций чтения и записи, очереди запросов, контроллера и его кэша, интерфейса, типа накопителей и состояния массива. Например, запись с чётностью может требовать дополнительных операций чтения и вычисления, а преимущества параллельного чтения проявляются не при каждой нагрузке.

Почему RAID не заменяет резервное копирование

RAID поддерживает доступность хранилища при некоторых аппаратных отказах, но не создаёт независимую историческую копию данных. Изменения рабочего набора распространяются на актуальные части массива, поэтому RAID сам по себе не защищает от:

  • случайного удаления файлов, форматирования или ошибки администратора;
  • вредоносного ПО, шифрования данных и компрометации учётных записей;
  • логического повреждения файловой системы, базы данных или данных приложения;
  • ошибок драйверов, ОС, прошивки, RAID-подсистемы или конфигурации;
  • отказа RAID-контроллера, проблем с его кэшем либо некорректной работы питания;
  • потери нескольких дисков сверх возможностей выбранного уровня;
  • пожара, кражи, затопления и других событий, затрагивающих сервер вместе с массивом.

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

С чего начинается выбор RAID

Вопрос «какой RAID самый надёжный» некорректен без сценария. Сначала определяют, сколько данных нужно хранить, какой простой допустим, какие отказы необходимо пережить, преобладают ли чтение или запись и сколько времени займёт восстановление после сбоя.

  1. Определить требуемую доступность: допустим ли простой при отказе одного диска и насколько быстро сервис должен восстановиться.
  2. Оценить нужную полезную ёмкость с запасом на рост данных и избыточность выбранного уровня.
  3. Описать нагрузку: случайные или последовательные операции, преобладание чтения либо записи, критичность задержек.
  4. Учесть время и риски восстановления: замену диска, перестроение массива, наличие запасного накопителя и резервных копий.
  5. После этого сравнить уровни и конкретную реализацию RAID.

Для сравнения RAID 0, 1, 5, 6 и 10 по полезной ёмкости, отказоустойчивости и сценариям используйте статью «Как выбрать RAID 0, 1, 5, 6 или 10: ёмкость и отказоустойчивость».

Программный, аппаратный RAID и функции файловых систем

Программный RAID реализуется средствами ОС или программного стека хоста: логический диск и правила размещения данных формирует сервер. Аппаратный RAID выполняется специализированным RAID-контроллером, который предоставляет ОС готовые логические диски. Некоторые файловые системы также реализуют собственные схемы избыточности, например RAID-Z; по возможностям и модели восстановления они не всегда тождественны классическим RAID-уровням.

При выборе реализации проверяют совместимость с ОС и загрузкой сервера, поддержку нужных накопителей, поведение при переносе дисков, работу и защиту кэша, мониторинг, порядок замены дисков и восстановление после отказа контроллера или самого сервера. Сравнение подходов приведено в статье «Программный или аппаратный RAID: что выбрать для Linux-сервера».

Термины в статье

Реализация RAID, в которой специализированный контроллер формирует логические диски и выполняет операции массива. Наличие и защита кэша зависят от модели.
Состояние отказоустойчивого RAID-массива, потерявшего один или несколько участников, но сохраняющего доступ, пока число отказов не превышает допустимое для RAID-уровня.
Зеркалирование — поддержание одинаковых копий данных на двух и более накопителях или узлах хранения. В RAID оно обеспечивает избыточность и лежит в основе RAID 1 и RAID 10.
Избыточность данных — хранение дополнительных копий или контрольной информации, позволяющее восстановить данные при отказе носителя, блока или другого компонента.
Логический диск — блочное устройство, которое RAID-контроллер или программная RAID-подсистема предоставляет хосту как отдельный накопитель.
RAID, реализованный ОС или другим программным стеком хоста без отдельного аппаратного RAID-контроллера. Использует вычислительные ресурсы сервера.
Физический диск — отдельный HDD, SSD или иной накопитель, распознанный RAID-контроллером как член массива либо как независимое устройство.
Распределение последовательных блоков данных между дисками или группами дисков RAID. Позволяет распараллеливать ввод-вывод, но само по себе не создаёт избыточности.
Избыточные контрольные данные, вычисляемые из блоков одной полосы RAID. Один блок чётности защищает от отказа одного диска, два независимых блока RAID 6 — от отказа двух.
Технология объединения нескольких накопителей в логические блочные устройства для повышения производительности и/или отказоустойчивости в зависимости от RAID-уровня.
Устройство или модуль, который формирует RAID-массивы из накопителей и предоставляет ОС логические диски, управляя размещением данных, отказами и восстановлением избыточности.
RAID-уровень — схема размещения данных и избыточности по накопителям массива, определяющая полезную ёмкость, отказоустойчивость и характеристики ввода-вывода.
RAID-Z — встроенная в ZFS схема vdev с распределённой чётностью. RAIDZ1, RAIDZ2 и RAIDZ3 выдерживают отказ соответственно одного, двух или трёх накопителей.
Процесс восстановления избыточности массива после замены отказавшего диска: контроллер вычисляет и записывает на новый диск недостающие данные из остальных дисков.

Вопросы по теме

Все вопросы и ответы

Почему RAID расшифровывают как Independent, хотя раньше было Inexpensive?

Это связано с историей термина. В статье 1988 года, где описали RAID, сокращение означало Redundant Array of Inexpensive Disks — массив недорогих дисков. В современной практике обычно используют расшифровку Redundant Array of Independent Disks, то есть массив независимых дисков.

Что будет, если в RAID 10 одновременно выйдут из строя два диска?

Зависит от того, какие именно диски отказали. RAID 10 может пережить два отказа, если они произошли в разных зеркальных парах. Но если перестают работать оба диска одной зеркальной пары, данные этой пары теряются и массив может стать недоступен.

Что происходит после замены отказавшего диска в RAID?

Начинается перестроение массива. RAID восстанавливает избыточность на новом накопителе, используя данные остальных участников массива. Во время перестроения система остаётся более уязвимой к новым отказам, а её отклик и производительность могут меняться из-за нагрузки, типа дисков и реализации RAID.

Может ли RAID с чётностью быть медленнее при записи?

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

Можно ли считать RAID-Z обычным RAID?

Не всегда. RAID-Z и другие схемы избыточности, реализованные файловыми системами, могут отличаться от классических RAID-уровней по возможностям и модели восстановления. При выборе такой реализации нужно отдельно оценивать её совместимость с ОС, загрузкой сервера, накопителями, мониторингом и восстановлением после сбоев.