RAID ( — избыточный массив независимых (самостоятельных) дисков, произносится ) — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль для повышения отказоустойчивости и (или) производительности.
История Термин «RAID» был предложен в 1987 году Петтерсоном (), Гибсоном () и () как сокращение от («избыточный массив недорогих дисков»). В своей презентации они аргументировали своё изобретение относительно небольшой стоимостью массива дешёвых дисков, предназначенных для персональных компьютеров, в сравнении с дисками большой ёмкости, которые они назвали «SLED» ().
Позднее расшифровка термина изменилась на (избыточный массив независимых (самостоятельных) дисков), потому что в массивах зачастую использовались дорогие серверные диски.
Петтерсон с коллегами из Беркли представили спецификации пяти уровней RAID, которые стали стандартом де факто: 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), состоящий из одного диска.
Уровни RAID, реализуемые средствами файловой системы ZFS: RAID-Z — один избыточный диск; RAID-Z2 — два избыточных диска; RAID-Z3 — три избыточных диска.
Базовые уровни модели RAID
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 (mirroring — «зеркалирование») — массив из двух дисков, являющихся полными копиями друг друга. Не следует путать с массивами RAID 1+0 (RAID 10), RAID 0+1 (RAID 01), в которых используются более сложные механизмы зеркалирования.
Достоинства: Обеспечивает приемлемую скорость записи (такую же, как и без дублирования) и выигрыш по скорости чтения при распараллеливании запросов. Имеет высокую надёжность — работает до тех пор, пока функционирует хотя бы один диск в массиве. Вероятность выхода из строя сразу двух дисков равна произведению вероятностей отказа каждого диска, то есть значительно ниже вероятности выхода из строя отдельного диска. На практике при выходе из строя одного из дисков следует срочно принимать меры — вновь восстанавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва.
Недостатки: По цене двух жёстких дисков пользователь получает объём одного.
RAID 2
Массивы такого типа основаны на использовании кода Хэмминга. Диски делятся на две группы: для данных и для кодов коррекции ошибок, причём если данные хранятся на дисках, то для хранения кодов коррекции необходимо дисков. Суммарное количество дисков при этом будет равняться . Данные распределяются по дискам, предназначенным для хранения информации, так же, как и в RAID 0, то есть они разбиваются на небольшие блоки по числу дисков. Оставшиеся диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо жёсткого диска из строя возможно восстановление информации. Метод Хэмминга давно применяется в памяти типа ECC и позволяет на лету исправлять однократные и обнаруживать двукратные ошибки.
Достоинством массива RAID 2 является повышение скорости дисковых операций по сравнению с производительностью одного диска.
Недостатком массива RAID 2 является то, что минимальное количество дисков, при котором имеет смысл его использовать — 7, только начиная с этого количества для него требуется меньше дисков, чем для RAID 1 (4 диска с данными, 3 диска с кодами коррекции ошибок), в дальнейшем избыточность уменьшается по экспоненте. +Расчётное количество дисков для организации RAID 2Количество дисков с даннымиКоличество дисков коррекцииПерерасход дисков, %Всего дисков011001126734343711427152651631576106312076127247832555029251110131011023
RAID 3
В массиве RAID 3 из дисков данные разбиваются на куски размером меньше сектора (разбиваются на байты) и распределяются по дискам. Ещё один диск используется для хранения блоков чётности. В RAID 2 для этой цели применялось дисков, но большая часть информации на контрольных дисках использовалась для коррекции ошибок «на лету», в то же время большинство пользователей устраивает простое восстановление информации в случае её повреждения (с применением операции XOR), для чего хватает данных, умещающихся на одном выделенном жёстком диске.
Отличия RAID 3 от RAID 2: невозможность коррекции ошибок на лету.
Достоинства: высокая скорость чтения и записи данных; минимальное количество дисков для создания массива равно трём.
Недостатки: массив этого типа хорош только для однозадачной работы с большими файлами, так как время доступа к отдельному сектору, разбитому по дискам, равно максимальному из интервалов доступа к секторам каждого из дисков. Для блоков малого размера время доступа намного больше времени чтения. большая нагрузка на контрольный диск, и, как следствие, его надёжность сильно падает по сравнению с дисками, хранящими данные.
RAID 4
RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось отчасти победить проблему низкой скорости передачи данных небольшого объёма. Запись же производится медленно из-за того, что чётность для блока генерируется при записи и записывается на единственный диск.
Из широко распространённых систем хранения RAID 4 применяется на устройствах компании NetApp (NetApp FAS), где его недостатки успешно устранены благодаря работе дисков в специальном режиме групповой записи, определяемом используемой на устройствах внутренней файловой системой WAFL.
RAID 5
RAID 5 — дисковый массив с чередованием блоков данных и контролем чётности.
Основным недостатком уровней 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 требуется всего один диск, объём которого равен объёму любого другого диска в 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