RAID

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

История[править | править код]

Термин «RAID» был предложен в 1987 году Петтерсоном (David A. Patterson), Гибсоном (Garth A. Gibson) и Катцомruen (Randy H. Katz) как сокращение от англ. Redundant Array of Inexpensive Disks («избыточный массив недорогих дисков»). В своей презентации они аргументировали своё изобретение относительно небольшой стоимостью массива дешёвых дисков, предназначенных для персональных компьютеров, в сравнении с дисками большой ёмкости, которые они назвали «SLED» (Single Large Expensive Drive)[1].

Позднее расшифровка термина изменилась на Redundant Array of Independent Disks (избыточный массив независимых (самостоятельных) дисков), потому что в массивах зачастую использовались дорогие серверные диски.

Петтерсон с коллегами из Беркли представили спецификации пяти уровней RAID, которые стали стандартом де факто[1]:

  • RAID 1 — зеркальный дисковый массив;
  • RAID 2 — зарезервирован для массивов, которые применяют код Хемминга;
  • RAID 3 — дисковый массив с выделенным диском чётности;
  • RAID 4 — дисковый массив с чередованием и выделенным диском чётности;
  • RAID 5 — дисковый массив с чередованием, в том числе данных чётности (нет диска, выделенного для хранения чётности — блоки чётности чередуются с блоками данных на каждом диске).

Среди современных реализаций массивов RAID представлены дополнительные уровни спецификации:

  • RAID 0 — дисковый массив повышенной производительности с чередованием без отказоустойчивости;
  • RAID 6 — дисковый массив с чередованием, использующий две контрольные суммы, вычисляемые двумя независимыми способами;
  • RAID 10 — массив RAID 0, построенный из массивов RAID 1;
  • RAID 50 — массив RAID 0, построенный из массивов RAID 5;
  • RAID 60 — массив RAID 0, построенный из массивов RAID 6;
  • RAID 1E — зеркальный массив из трёх других массивов: RAID 50, RAID 05, RAID 60 и другие.

Аппаратный контроллер RAID может иметь дополнительные функции и одновременно поддерживать несколько RAID-массивов различных уровней. При этом многие контроллеры RAID, встроенные в материнскую плату, в настройках BIOS имеет всего два состояния (включён или отключён), поэтому новый жёсткий диск, подключённый в незадействованный разъём контроллера при активированном режиме RAID, может игнорироваться системой, пока он не будет ассоциирован как ещё один RAID-массив типа JBOD (spanned), состоящий из одного диска.[источник не указан 954 дня]

Уровни RAID, реализуемые средствами файловой системы ZFS:[источник не указан 954 дня]

  • RAID-Z — один избыточный диск;
  • RAID-Z2 — два избыточных диска;
  • RAID-Z3 — три избыточных диска.

Базовые уровни модели RAID[править | править код]

RAID 0[править | править код]

Схема RAID 0

RAID 0 (striping — «чередование») — дисковый массив из двух или более жёстких дисков без резервирования. Информация разбивается на блоки данных () фиксированной длины и записывается на оба/несколько дисков поочередно, то есть один блок () на первый диск, а второй блок () на второй диск соответственно.

Достоинства:

  • Скорость считывания файлов увеличивается в n раз, где n — количество дисков. При этом такая оптимальная производительность достигается только для больших запросов, когда фрагменты файла находятся на каждом из дисков.

Недостатки:

  • Увеличивается риск потери данных по причине отказа одного из устройств массива. Если обозначить вероятность отказа единичного диска в течение года работы как , то вероятность выхода из строя массива RAID 0, состоящего из N таких дисков, можно рассчитать по формуле , и полученное значение при любом N будет существенно превышать . Если вероятность отказа единичного диска за год работы равна 1 %, то массив, состоящий из двух таких дисков, выйдет из строя с вероятностью около 2 % (), а массив из пяти таких дисков — с вероятностью 5 % (). Расчёт демонстрирует прирост вероятности сбоя с увеличением количества дисков, близкий к линейному для малого числа дисков. По этой причине технология RAID 0 редко применяется в чистом виде, но она хорошо зарекомендовала себя в качестве верхнего уровня каскадных RAID N0 (например, RAID 10, RAID 50 или RAID 60), где цифра 0 как раз и означает, что в массив RAID 0 объединено несколько массивов RAID N: RAID N + RAID 0 = RAID N0.

RAID 1[править | править код]

Два диска — минимальное количество для построения «зеркального» массива
Схема RAID 1

RAID 1 (mirroring — «зеркалирование») — массив из двух дисков, являющихся полными копиями друг друга. Не следует путать с массивами RAID 1+0 (RAID 10), RAID 0+1 (RAID 01), в которых используются более сложные механизмы зеркалирования.

Достоинства:

  • Обеспечивает приемлемую скорость записи (такую же, как и без дублирования) и выигрыш по скорости чтения при распараллеливании запросов[2].
  • Имеет высокую надёжность — работает до тех пор, пока функционирует хотя бы один диск в массиве. Вероятность выхода из строя сразу двух дисков равна произведению вероятностей отказа каждого диска, то есть значительно ниже вероятности выхода из строя отдельного диска. На практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва.

Недостатки:

  • По цене двух жестких дисков пользователь получает объём одного.

RAID 2[править | править код]

Схема RAID 2
Расчётное количество дисков для организации RAID 2

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

Достоинством массива RAID 2 является повышение скорости дисковых операций по сравнению с производительностью одного диска.

Недостатком массива RAID 2 является то, что минимальное количество дисков, при котором имеет смысл его использовать — 7, только начиная с этого количества для него требуется меньше дисков, чем для RAID 1 (4 диска с данными, 3 диска с кодами коррекции ошибок), в дальнейшем избыточность уменьшается по экспоненте.

RAID 3[править | править код]

Схема RAID 3

В массиве RAID 3 из дисков данные разбиваются на куски размером меньше сектора (разбиваются на байты) и распределяются по дискам. Ещё один диск используется для хранения блоков чётности. В RAID 2 для этой цели применялось дисков, но большая часть информации на контрольных дисках использовалась для коррекции ошибок «на лету», в то же время большинство пользователей устраивает простое восстановление информации в случае её повреждения (с применением операции XOR), для чего хватает данных, умещающихся на одном выделенном жёстком диске.

Отличия RAID 3 от RAID 2: невозможность коррекции ошибок на лету.

Достоинства:

  • высокая скорость чтения и записи данных;
  • минимальное количество дисков для создания массива равно трём.

Недостатки:

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

RAID 4[править | править код]

Схема RAID 4

RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось отчасти «победить» проблему низкой скорости передачи данных небольшого объёма. Запись же производится медленно из-за того, что чётность для блока генерируется при записи и записывается на единственный диск.

Из широко распространённых систем хранения RAID-4 применяется на устройствах компании NetApp (NetApp FAS), где его недостатки успешно устранены за счет работы дисков в специальном режиме групповой записи, определяемом используемой на устройствах внутренней файловой системой WAFL.

RAID 5[править | править код]

Схема RAID 5

RAID 5 — дисковый массив с чередованием блоков данных и контролем чётности[3].

Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить параллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск. RAID 5 не имеет этого недостатка. Блоки данных и контрольные суммы циклически записываются на все диски массива, нет асимметричности конфигурации дисков. Под контрольными суммами подразумевается результат операции XOR (исключающее или). Xor обладает особенностью, которая даёт возможность заменить любой операнд результатом, и, применив алгоритм xor, получить в результате недостающий операнд. Например: a xor b = c (где a, b, c — три диска рейд-массива), в случае если a откажет, мы можем получить его, поставив на его место c и проведя xor между c и b: c xor b = a. Это применимо вне зависимости от количества операндов: a xor b xor c xor d = e. Если отказывает c, тогда e встаёт на его место и, проведя xor, в результате получаем c: a xor b xor e xor d = c. Этот метод по сути обеспечивает отказоустойчивость 5 версии. Для хранения результата xor требуется всего 1 диск, размер которого равен размеру любого другого диска в RAID.

Минимальное количество используемых дисков равно трём.

Достоинства:

  • RAID 5 получил широкое распространение, в первую очередь благодаря своей экономичности. Объём дискового массива RAID 5 рассчитывается по формуле (n−1)×S, где n — число дисков в массиве, а S — объём диска (наименьшего, если диски имеют разный размер). Например, для массива из четырёх дисков по 500 гигабайт общий объём будет (4−1)×500 = 1500 гигабайт, то есть «теряется» 25 % против 50 % RAID 10. С увеличением количества дисков в массиве экономия (по сравнению с другими уровнями RAID, обладающими отказоустойчивостью) продолжает увеличиваться. RAID 5 обеспечивает высокую скорость чтения — выигрыш достигается за счёт независимых потоков данных с нескольких дисков массива, которые могут обрабатываться параллельно.

Недостатки:

  • Производительность RAID 5 заметно ниже на операциях типа Random Write (записи в произвольном порядке), при которых производительность падает на 10—25 % от производительности RAID 0 (или RAID 10), так как требует большего количества операций с дисками (каждая операция записи, за исключением операций типа «full-stripe write», заменяется на контроллере RAID на четыре — две операции чтения и две операции записи).

При выходе из строя одного диска надёжность тома сразу снижается до уровня RAID 0 с соответствующим количеством дисков n−1, то есть в n−1 раз ниже надёжности одного диска — данное состояние называется критическим (degrade или critical). Для возвращения массива к нормальной работе требуется длительный процесс восстановления, связанный с ощутимой потерей производительности и повышенным риском. В ходе восстановления (rebuild или reconstruction) контроллер осуществляет длительное интенсивное чтение, которое может спровоцировать выход из строя ещё одного или нескольких дисков массива. Кроме того, в ходе чтения могут выявляться ранее не обнаруженные сбои чтения в массивах cold data (данных, к которым не обращаются при обычной работе массива, архивные и малоактивные данные), препятствующие восстановлению. Если до полного восстановления массива произойдет выход из строя, или возникнет невосстановимая ошибка чтения хотя бы на ещё одном диске, то массив разрушается и данные на нём восстановлению обычными методами не подлежат. Для предотвращения таких ситуаций в RAID-контроллерах может применяться анализ атрибутов S.M.A.R.T.

RAID 6[править | править код]

Схема RAID 6

RAID 6 — массив из четырёх или более дисков с проверкой чётности P+Q или DP, разработанный для защиты от потери данных при выходе из строя сразу двух жестких дисков в массиве. Такая надёжность достигается за счёт снижения производительности и уменьшения ёмкости — для восстановления информации нужно провести две вычислительные операции, и два диска в массиве используются не для хранения данных, а для контроля их целостности и восстановления при сбоях. За счёт двух дисков избыточности он имеет более высокую степень надёжности. Среди дисковых массивов RAID 6 — самый надёжный, но и самый медленный. Скорость записи данных в массиве RAID 6 заметно, до 50 % ниже, чем в RAID 5 даже на целом массиве RAID 6, скорость чтения при этом у RAID 6 P+Q не сильно отличается от таковой у RAID 5 и RAID 10[3].

RAID 6 требует не менее четырёх дисков — два или более дисков данных и два диска контроля чётности[3].

Оценки производительности[3]
Ситуация RAID 5 RAID 6 P+Q RAID 6 DP
Факультативная запись 100 % 50 % 50 %
Последовательный доступ 100 % 90 % 60 %
Восстановление одного диска в массиве 100 % ~100 % медленнее

Варианты RAID 6[3]:

  • P+Q — массив с двумя томами чётности «P» и «Q», по архитектуре RAID 6 P+Q представляет собой расширение RAID 5 с дополнительным диском «Q»;
  • DP (англ. Dual Parity, Double Parity) — массив с двойной чётностью.

В зависимости от реализации, массивы RAID 6 DP могут иметь разные ограничения по количеству требуемых дисков. Во многих реализациях число дисков в массиве должно быть простым числом (например, 5, из которых 3 диска данных и 2 диска чётности; 7, из которых 5 дисков данных и 2 диска чётности; 11, из которых 9 дисков данных и 2 диска чётности и т. д.), у некоторых реализаций другое требование — число дисков массива должно быть на единицу меньше простого числа (4, 6, 10 и т. д.). Такие ограничения снижают гибкость в построении массивов данных[3].

Ограничения в вариантах по количеству дисков в массиве RAID 6 DP связаны со сложностью вычисления двойной четности «вертикальной полосы» данных на произвольном количестве дисков. Реализации с числом дисков, кратным простому числу, позволяют использовать простые алгоритмы для контроля целостности данных, тогда как в реализациях без таких ограничений используются сложные алгоритмы, что ещё сильнее замедляет работу дискового массива[3].

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

Недостатки RAID 6 — относительно большие затраты и потери в производительности по сравнению с RAID 5. Производительность RAID 6 — самая низкая среди всех массивов RAID[3].

Математические принципы

В большинстве реализаций RAID 6 P+Q используется полином (многочлен) поля Галуа, при этом первый член полинома представляет собой исключающее «или», используемое в RAID 5 (его значение записывается на диск «P»), второй член полинома более сложный, обычно он представляет собой исключающее «или» с множителем[3]. Реализации RAID 6 DP используют вычисление исключающего «или» как для горизонтальных, так и для вертикальных полос бит в дисковом массиве, каждый из дисков чётности хранит свою чётность (горизонтальную или вертикальную)[3].

Комбинированные уровни[править | править код]

Помимо базовых уровней RAID от 0-го до 6-го, описанных в стандарте «Common RAID Disk Drive Format (DEF) standard», существуют комбинированные уровни с названиями вида «RAID α+β» или «RAID αβ», что обычно означает «RAID β, составленный из нескольких RAID α» (иногда производители интерпретируют это по-своему), иногда их назвают hybrid RAID[4].

Например:[источник не указан 954 дня]

  • RAID 10 (или RAID 1+0) — это RAID 0, составленный из двух и более RAID 1 (зеркалированных пар).
  • RAID 51 — RAID 1, зеркалирующий два RAID 5.

Комбинированные уровни наследуют как преимущества, так и недостатки своих «родителей»: появление чередования в уровне RAID 5+0 нисколько не добавляет ему надёжности, но зато положительно отражается на производительности. Уровень RAID 1+5, наверное, очень надёжный, но не самый быстрый и, к тому же, крайне неэкономичный: полезная ёмкость тома меньше половины суммарной ёмкости дисков.

RAID 01 (RAID 0+1)[править | править код]

Массив RAID 01 (RAID 0+1) называют «зеркалом страйпов»[5]. Он представляет собой массив типа RAID 1, состоящий из двух вложенных массивов типа RAID 0. Количество дисков в обоих вложенных массивах RAID 0 должно быть одинаковым, из-за этой особенности данный тип может работать лишь с чётным количеством дисков.

В зависимости от производителя RAID-контроллера, под RAID 0+1 может подразумеваться и другая конфигурация, кроме того, некоторые модели предлагают создание RAID 0+1 на нечётном количестве устройств[6], фактически реализуя под этим названием RAID 1E.

Как и в «чистом» RAID 1, полезный объём массива составляет половину суммарного объёма всех дисков (если это диски одинаковой ёмкости).

Отказоустойчивость у RAID 01 ниже, чем у RAID 10 при примерно одинаковой производительности и равном объёме, поэтому данный вид RAID практически не применяется.

RAID 10 (RAID 1+0)[править | править код]

Схема архитектуры RAID 10

RAID 10 (RAID 1+0) — зеркалированный массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0. Эта архитектура представляет собой массив типа RAID 0, сегментами которого вместо отдельных дисков являются массивы RAID 1. Соответственно, массив этого уровня должен содержать как минимум 4 диска (и всегда чётное количество). RAID 10 объединяет в себе высокую отказоустойчивость и производительность.

RAID 10 является достаточно надёжным вариантом для хранения данных в связи с тем, что весь массив RAID 10 будет выведен из строя только после выхода из строя всех накопителей в одном и том же массиве RAID 1. В общем массиве из 4 дисков при одном вышедшем из строя накопителе, шанс выхода из строя второго в одном и том же массиве равен 1/3×100%=33 %.

Для сравнения: RAID 0+1 выйдет из строя при двух накопителях, вышедших из строя в разных массивах. Шанс выхода из строя накопителя в соседнем массиве равен 2/3×100=66 %. Однако, так как массив RAID 0 с вышедшим из строя накопителем уже не используется, то оставшийся исправным накопитель в этом массиве можно исключить из расчёта, и получим шанс того, что следующий накопитель выведет из строя массив — 2/2×100=100 %.

Некоторые производители, например HP, использует в своих RAID контроллерах (HP Smart Array P400) обозначение RAID 1+0 не только для RAID 10. Тип RAID будет зависеть от количества дисков используемых в конфигурации. Выбрав RAID 1+0 в конфигурации из 2х дисков позволит получить RAID 1, а для 4 дисков - RAID 10.

Нестандартные уровни RAID[править | править код]

RAID 1E[править | править код]

Схема дискового массива RAID 1E в двух вариантах для 3, 4 и 5 устройств

RAID 1E (enhanced — усовершенствованный) — зеркало, способное работать на нечётном количестве устройств.

Существуют как минимум два разных алгоритма RAID 1E:

  • RAID 1E near (он же RAID 1E striped)[7];
  • RAID 1E interleaved[8].

В руководстве к вашему RAID-контроллеру может не указываться, какой именно тип RAID 1E (near или interleaved) он поддерживает[9]. Общим для них является то, что они хорошо подходят для создания массива из трёх дисковых устройств.

В RAID 1E near первый блок данных записывается на диск № 1 и на диск № 2 (полная копия, как при RAID 1). Следующий блок — на диск № 3 и диск № 4 (если диски закончились, например, диска № 4 в массиве нет, 3-й диск последний — контроллер возвращается к диску № 1 и переходит к следующей полоске).

В RAID 1E interleaved данные чередуются по полоскам: в первую полоску пишутся сами данные, во вторую — их копия. При переходе от одной полоски к другой увеличивается индекс устройства, с которого начинается запись. Таким образом, первый блок данных записывается на диск № 1 в первой полоске и на диск № 2 во второй полоске, второй блок данных — на диск № 2 в первой полоске и на диск № 3 во второй полоске и так далее.

Результирующая ёмкость массива с использованием RAID 1E составляет , где N — количество дисков в массиве, а S — ёмкость наименьшего из них.

Преимущества:

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

Недостатки:

  • Увеличение стоимости, поскольку доступна лишь половина суммарной ёмкости устройств.
  • В некоторых моделях контроллеров допускается отказ только одного диска, в связи с чем при чётном количестве дисков и отсутствии диска горячей замены предпочтительнее использовать RAID 10[8].

Минимальное количество дисков — три (при двух — неотличим от RAID 1).

RAID 7[править | править код]

RAID 7 — зарегистрированная торговая марка компании Storage Computer Corporation, отдельным уровнем RAID не является. Структура массива такова: на дисках хранятся данные, один диск используется для складирования блоков чётности. Запись на диски кэшируется с использованием оперативной памяти, сам массив требует обязательного ИБП; в случае перебоев с питанием происходит повреждение данных.

Число 7 в названии создаёт впечатление, что система чем-то превосходит своих «младших братьев» RAID 5 и 6, но математика RAID 7 не отличается от RAID 4, а кэш и батареи используются в RAID-контроллерах любых уровней (чем дороже контроллер, тем больше вероятность наличия этих компонентов). Поэтому, хотя никто не отрицает, что RAID 7 обладает высокой надёжностью и скоростью работы, — это не промышленный стандарт, а скорее маркетинговый ход единственной компании-производителя таких устройств, и только эта компания осуществляет для них техническую поддержку[10].

RAID-DP[править | править код]

Существует модификация RAID-4 компании NetApp — RAID-DP (Dual Parity). Отличие от традиционного массива заключается в выделении под контрольные суммы двух отдельных дисков. Благодаря взаимодействию RAID-DP и файловой системы WAFL (все операции записи последовательны и производятся на свободное место) пропадает падение производительности как в сравнении с RAID-5, так и в сравнении с RAID-6.

Аппаратные RAID-контроллеры[править | править код]

Сервера хранения с 24 слотами для жестких дисков и аппаратным RAID с поддержкой нескольких конфигураций/уровней RAID

Представляют собой плату расширения, либо размещаются вне сервера (например, в составе внешней дисковой подсистемы либо NAS)[11]. Имеют собственный процессор, многие имеют кэш-память для ускорения работы. В устройства подороже опционально устанавливаются батареи (Battery Backup Unit, сокр. BBU, химические, либо конденсаторные) для сохранения данных в кэше в случае аварийного отключения электропитания. Конденсаторные батареи более современные, но более дорогие, поскольку дополнительно требуют наличия модуля энергонезависимой FLASH-памяти, куда при аварии будет копироваться кэш. Такие батареи не портятся со временем и, в отличие от химических, не требуют замены в течение срока службы сервера[12].

Для подключения дисков контроллер может иметь внутренние, либо внешние порты, либо и те, и другие. Порты могут быть выполнены по различным стандартам (см. для примера список внутренних и внешних разъёмов SAS, а также SFF-8639).

Контроллеры различных производителей, как правило, не совместимы и не взаимозаменяемы между собой — это следует иметь в виду в случае выхода из строя платы контроллера. Информация о конфигурации RAID-массива хранится на дисках, но прочитать её, даже с полностью исправных дисков, и воссоздать массив сможет только контроллер того же производителя[13]. Для предотвращения подобных проблем существуют кластерные дисковые системы[14]. Программные RAID-массивы также лишены этого недостатка.

Дополнительные функции RAID-контроллеров[править | править код]

Многие RAID-контроллеры оснащены набором дополнительных функций:

Сравнение уровней RAID[править | править код]

Уровень Количество дисков Эффективная ёмкость[15][16][17][18][19] Допустимое количество вышедших из строя дисков Надёжность Скорость чтения Скорость записи Примечание
0 от 2 S×N нет очень низкая высокая высокая Потеря данных при выходе из строя любого из дисков!
1 от 2 S N−1 дисков очень высокая средняя средняя N-кратная стоимость дискового пространства; максимально возможная надёжность; минимально возможный размер, скорость чтения/записи одиночного диска
1E от 3 S×N/2 от 1 до N/2−1 дисков высокая высокая низкая Потеря данных при одновременном выходе из строя любых двух соседних дисков, либо первого с последним
10 от 4, чётное S×N/2 от 1 до N/2 дисков[20] высокая высокая высокая двойная стоимость дискового пространства, потеря данных при выходе из строя группы зеркалирования (RAID 1), возможна работа, если хотя бы один любой диск из группы зеркалирования (RAID 1) выживает в каждой группе зеркалирования (RAID 1).
01 от 4, чётное S×N/2 от 1 до N/2 дисков[20] низкая высокая высокая двойная стоимость дискового пространства, потеря данных при выходе из строя группы зеркалирования (RAID 1), возможна работа, только если выживают все диски одной любой группы чередования (RAID 0).
5 от 3 S×(N−1) 1 диск средняя высокая средняя
50 от 6, чётное S×(N−2) от 1 до 2 дисков[21] средняя высокая высокая
51 от 6, чётное S×(N−2)/2 от 2 до N/2+1 дисков[22] высокая высокая низкая двойная стоимость дискового пространства
5E от 4 S×(N−2) 1 диск средняя высокая высокая резервный накопитель работает
на холостом ходу и не проверяется
5EE от 4 S×(N−2) 1 диск средняя высокая высокая резервный накопитель работает
на холостом ходу и не проверяется
6 от 4 S×(N−2) 2 диска высокая высокая низкая или средняя скорость записи в зависимости от реализации (может соответствовать скорости записи RAID 5)
60 от 8, чётное S×(N−4) от 2 до 4 дисков[21] средняя высокая средняя
61 от 8, чётное S×(N−2)/2 от 4 до N/2+2 дисков[22] высокая высокая низкая двойная стоимость дискового пространства

Программный RAID[править | править код]

Для реализации RAID можно применять не только аппаратные средства, но и полностью программные компоненты (драйверы). Например, в системах на ядре Linux поддержка существует непосредственно на уровне ядра. Управлять RAID-устройствами в Linux можно с помощью утилиты mdadm. Программный RAID имеет свои достоинства и недостатки. С одной стороны, он ничего не стоит (в отличие от аппаратных RAID-контроллеров). С другой стороны, программный RAID использует некоторое количество ресурсов центрального процессора.

Ядро Linux 2.6.28 поддерживает программные RAID уровней 0, 1, 4, 5, 6 и 10. Реализация позволяет создавать RAID на отдельных разделах дисков, что аналогично описанному ниже Matrix RAID. Поддерживается загрузка с RAID.

ОС семейства Windows NT, такие как Windows NT 3.1/3.5/3.51/NT4/2000/XP/2003 изначально, с момента проектирования данного семейства, поддерживают программный RAID 0, RAID 1 и RAID 5 (см. Dynamic Disk). Windows XP Home не поддерживает RAID. Windows XP Pro поддерживает RAID 0, а поддержка RAID 1 и RAID 5 заблокирована разработчиками, но тем не менее может быть включена путём редактирования системных бинарных файлов ОС, что запрещено лицензионным соглашением[23]. Windows 7 поддерживает программный RAID 0 и RAID 1, Windows Server 2003 — 0, 1 и 5.

В ОС FreeBSD есть несколько реализаций программного RAID. Так, atacontrol, может как полностью строить программный RAID, так и может поддерживать полуаппаратный RAID на таких чипах, как ICH5R. Во FreeBSD, начиная с версии 5.0, дисковая подсистема управляется встроенным в ядро механизмом GEOM. GEOM предоставляет модульную дисковую структуру, благодаря которой родились такие модули как gstripe (RAID 0), gmirror (RAID 1), graid3 (RAID 3), gconcat (объединение нескольких дисков в единый дисковый раздел). Также существуют устаревшие классы ccd (RAID 0, RAID 1) и gvinum (менеджер логических томов vinum). Начиная с FreeBSD 7.2 поддерживается файловая система ZFS, в которой можно собирать уровни 0, 1, 5 и 6, а также комбинируемые уровни.

OpenSolaris и Solaris 10 используют Solaris Volume Manager, который поддерживает RAID 0, RAID 1, RAID 5 и любые их комбинации, как 1+0. Поддержка RAID 6 осуществляется в файловой системе ZFS.

Matrix[править | править код]

Схема Intel Matrix RAID

Matrix RAID — это технология, реализованная фирмой Intel в южных мостах своих чипсетов, начиная с ICH6R. Эта технология не является новым уровнем RAID и не имеет аппаратной поддержки. Средства BIOS позволяют организовать несколько устройств в логический массив, дальнейшая обработка которого именно как RAID-массива, возлагается на драйвер. Технология позволяет организовывать на разных разделах дисков одновременно несколько массивов уровня RAID 1, RAID 0 и RAID 5[24]. Это позволяет для одних разделов выбрать повышенную надёжность, для других — высокую производительность.

Позднее, Intel объявила о переименовании технологии Matrix RAID в Intel Rapid Storage Technology (Intel RST)[25].

Список контроллеров Intel, поддерживающих Intel RST[26]:

  • PCHM SATA RAID/AHCI;
  • PCH SATA RAID/AHCI;
  • ICH10R/DO SATA RAID/AHCI;
  • ICH10D SATA AHCI;
  • ICH9M-E SATA AHCI/RAID;
  • ICH9M AHCI;
  • 82801IR I/O (RAID и AHCI);
  • 82801HEM I/O (RAID и AHCI);
  • 82801HBM I/O (только AHCI);
  • 82801HR/HH/HO I/O (RAID и AHCI);
  • 631xESB/632xESB I/O (RAID и AHCI);
  • 82801GHM I/O (только RAID);
  • 82801GBM I/O (только AHCI);
  • 82801GR/GH I/O (RAID и AHCI).

Дальнейшее развитие идеи RAID[править | править код]

Синий разъём PCI-X на материнской плате сервера FSC Primergy TX200 S2 специально предназначен для платы ноль-канального RAID (zero-channel RAID, ZCR). Установлен MegaRAID 320-0 Zero Channel RAID Controler фирмы LSI)[27]

Идея RAID-массивов — в объединении дисков, каждый из которых рассматривается как набор секторов, и в результате драйвер файловой системы «видит» как бы единый диск и работает с ним, не обращая внимания на его внутреннюю структуру. Однако можно добиться существенного повышения производительности и надёжности дисковой системы, если драйвер файловой системы будет «знать» о том, что работает не с одним диском, а с набором дисков.

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

Размещение файлов по принципу «каждый файл целиком находится на одном диске» сложным/неоднозначным образом влияет на производительность дисковой системы. Для мелких файлов латентность (время позиционирования головки над нужным треком + время ожидания прихода нужного сектора под головку) важнее, чем время собственно чтения/записи; поэтому если мелкий файл целиком находится на одном диске, доступ к нему будет быстрее, чем если он разнесён на два диска (структура RAID-массивов такова, что мелкий файл не может оказаться на трёх и более дисках). Для крупных файлов размещение строго на одном диске может оказаться хуже, чем размещение на нескольких дисках; однако, это проявится только если обмен данными производится большими блоками; либо если к файлу делается много мелких обращений в асинхронном режиме, что позволяет работать сразу со всеми дисками, на которых размещён этот файл.

Недостатки RAID[править | править код]

Коррелированные сбои[править | править код]

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

Несовместимость конфигураций[править | править код]

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

См. также[править | править код]

  • JBOD — дисковый массив с последовательным распределением дискового пространства по дискам.
  • NAS — внешнее сетевое хранилище данных (возможно использование RAID).

Полезные ссылки[править | править код]

Примечания[править | править код]

  1. 1 2 Patterson et al., 1988.
  2. R.LAB. RAID-массивы — надёжность и производительность. RAID 1. Дата обращения: 8 июня 2008. Архивировано 28 июня 2008 года.
  3. 1 2 3 4 5 6 7 8 9 10 11 Штегнер, Г. Преимущества и недостатки RAID 6 : [арх. 9 марта 2009] / AWi Verlag // OSP. — 2007. — 12 июля.
  4. Mishra, S. K. Dual-Crosshatch Disk Array : A Highly Reliable Hybrid-RAID Architecture // Proceedings of the 1995 International Conference on Parallel Processing : [англ.] / S. K. Mishra, S. K. Vemulapalli, P. Mohapatra. — CRC Press, 1995. — Vol. 1. — P. I-146—I-149. — ISBN 978-0-8493-2615-8. — ISBN 084932615X.
  5. RAID-массивы — Информатика
  6. Выбираем уровень RAID. Дата обращения: 29 сентября 2012. Архивировано 17 ноября 2015 года.
  7. Microsemi. Choosing the Right RAID Configurations: RAID 1E. Дата обращения: 3 января 2018. Архивировано 3 января 2018 года.
  8. 1 2 Adaptec Inc. Решения для хранения данных. Какой уровень RAID мне выбрать? — RAID 1E. Дата обращения: 3 января 2018. Архивировано 10 января 2017 года.
  9. ReclaiMe Free RAID Recovery — RAID 1E types. Дата обращения: 3 января 2018. Архивировано 4 января 2018 года.
  10. The PC Guide — RAID Level 7. Дата обращения: 7 августа 2018. Архивировано 21 июня 2010 года.
  11. IXBT. Выбери свой RAID контроллер. 01.10.1999. Дата обращения: 28 июля 2018. Архивировано 29 июля 2018 года.
  12. Всё, что вы хотели узнать о RAID-контроллерах, но лень было искать. 06.10.2016. Дата обращения: 28 июля 2018. Архивировано 29 июля 2018 года.
  13. Habr, 24.02.2012. Что делать, если вышел из строя RAID-контроллер? Дата обращения: 7 августа 2018. Архивировано 8 августа 2018 года.
  14. FAQ по практической реализации RAID. Дата обращения: 7 августа 2018. Архивировано 8 августа 2018 года.
  15. Здесь N — количество дисков в массиве, S — объём наименьшего диска.
  16. RAID 0, RAID 1, RAID 5, RAID6, RAID 10 или что такое уровни RAID? Дата обращения: 11 декабря 2010. Архивировано из оригинала 20 марта 2011 года.
  17. Dynamic disk introduction — RAID levels. Дата обращения: 11 декабря 2010. Архивировано 15 декабря 2010 года.
  18. RAID Array and Server: Hardware and Service Comparison. Дата обращения: 11 декабря 2010. Архивировано 10 сентября 2011 года.
  19. Summary Comparison of RAID Levels. Дата обращения: 11 декабря 2010. Архивировано 19 июня 2010 года.
  20. 1 2 Информация не потеряется, если выйдут из строя диски в пределах разных зеркал.
  21. 1 2 Информация не потеряется, если выйдет из строя одинаковое количество дисков в разных stripe.
  22. 1 2 Информация не потеряется, если выйдут из строя диски в пределах одного зеркала.
  23. Создаём программный массив RAID 5 под Windows XP. Дата обращения: 19 апреля 2009. Архивировано 7 марта 2009 года.
  24. Intel Rapid Storage Technology (Intel RST). RAID 0, 1, 5, 10, Matrix RAID, RAID-Ready. Дата обращения: 6 января 2014. Архивировано 7 января 2014 года.
  25. Intel Rapid Storage Technology (Intel RST). Product overview. Дата обращения: 6 января 2014. Архивировано 7 января 2014 года.
  26. Supported Intel Chipsets and Controller Hubs. Дата обращения: 3 января 2018. Архивировано 4 января 2018 года.
  27. LSI MegaRAID 320-0 Zero Channel RAID Controler User’s Guide Архивная копия от 7 января 2010 на Wayback Machine (англ.)

Литература[править | править код]

Ссылки[править | править код]