Типы RAID-массивов.

Программные1 и аппаратные2 RAID-массивы


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

          ┌───────────┐
       ┌──┤  RAID 0   ├──┐
       │  └───────────┘  │
       │                 │
┌──────┴──────┐   ┌──────┴──────┐
│     A1      │   │     A2      │
├─────────────┤   ├─────────────┤
│     A3      │   │     A4      │
├─────────────┤   ├─────────────┤
│     A5      │   │     A6      │
├─────────────┤   ├─────────────┤
│     A7      │   │     A8      │
├─────────────┤   ├─────────────┤
│             │   │             │
├─────────────┤   ├─────────────┤
│   Диск 0    │   │   Диск 1    │
└─────────────┘   └─────────────┘

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

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


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

          ┌───────────┐
       ┌──┤  RAID 1   ├──┐
       │  └───────────┘  │
       │                 │
┌──────┴──────┐   ┌──────┴──────┐
│     A1      │   │     A1      │
├─────────────┤   ├─────────────┤
│     A2      │   │     A2      │
├─────────────┤   ├─────────────┤
│     A3      │   │     A3      │
├─────────────┤   ├─────────────┤
│     A4      │   │     A4      │
├─────────────┤   ├─────────────┤
│             │   │             │
├─────────────┤   ├─────────────┤
│   Диск 0    │   │   Диск 1    │
└─────────────┘   └─────────────┘

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

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

Недостатки:

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

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’’ требуется всего 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.3)

                            ┌───────────┐
       ┌─────────────────┬──┤  RAID 5   ├──┬─────────────────┐
       │                 │  └───────────┘  │                 │
       │                 │                 │                 │
┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐
│     A1      │   │     A2      │   │     A3      │   │     Ap      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     B1      │   │     B2      │   │     Bp      │   │     B3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     C1      │   │     Cp      │   │     C2      │   │     C3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     Dp      │   │     D1      │   │     D2      │   │     D3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│             │   │             │   │             │   │             │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│   Диск 0    │   │   Диск 1    │   │   Диск 2    │   │   Диск 3    │
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘

RAID 6 — массив из четырёх или более дисков с проверкой чётности P+Q или DP, разработанный для защиты от потери данных при выходе из строя сразу двух жестких дисков в массиве.

                                     ┌───────────┐
       ┌─────────────────┬───────────┤  RAID 6   ├───────────┬─────────────────┐
       │                 │           └─────┬─────┘           │                 │
       │                 │                 │                 │                 │
┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐
│     A1      │   │     A2      │   │     A3      │   │     Ap      │   │     Aq      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     B1      │   │     B2      │   │     Bp      │   │     Bq      │   │     B3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     C1      │   │     Cp      │   │     Cq      │   │     C2      │   │     C3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     Dp      │   │     Dq      │   │     D1      │   │     D2      │   │     D3      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     Eq      │   │     E1      │   │     E2      │   │     E3      │   │     Ep      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│             │   │             │   │             │   │             │   │             │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│   Диск 0    │   │   Диск 1    │   │   Диск 2    │   │   Диск 3    │   │   Диск 4    │
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘

RAID 10 (RAID 1+0) — зеркалированный массив, данные в котором записываются последовательно на несколько дисков, как в RAID 0.

                            ┌───────────┐
                ┌───────────┤  RAID 10  ├───────────┐
                │           └───────────┘           │
          ┌─────┴─────┐                       ┌─────┴─────┐
       ┌──┤  RAID 1   ├──┐                 ┌──┤  RAID 1   ├──┐
       │  └───────────┘  │                 │  └───────────┘  │
       │                 │                 │                 │
┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐   ┌──────┴──────┐
│     A1      │   │     A1      │   │     A2      │   │     A2      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     A3      │   │     A3      │   │     A4      │   │     A4      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     A5      │   │     A5      │   │     A6      │   │     A6      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│     A7      │   │     A7      │   │     A8      │   │     A8      │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│             │   │             │   │             │   │             │
├─────────────┤   ├─────────────┤   ├─────────────┤   ├─────────────┤
│   Диск 0    │   │   Диск 1    │   │   Диск 2    │   │   Диск 3    │
└─────────────┘   └─────────────┘   └─────────────┘   └─────────────┘

  1. Software RAID (Программный RAID

  2. Hardware RAID (Аппаратный RAID

  3. S.M.A.R.T. (S.M.A.R.T.