Как работает четность на массиве RAID-5?


31

Я ищу, чтобы создать хороший маленький массив RAID для специальных резервных копий. Я хотел бы иметь около 2-4 ТБ свободного места, поскольку у меня есть эта неприятная небольшая привычка оцифровывать все. Таким образом, мне нужно много памяти и много избыточности в случае сбоя диска. Я также по сути буду создавать резервные копии 2-3 /homeпапок компьютеров, используя один из клонов "Time Machine" для Linux. Этот массив будет доступен через мою локальную сеть через SSH.

У меня возникают трудности с пониманием того, как RAID-5 достигает паритета и сколько дисков на самом деле требуется. Можно предположить, что для этого нужно 5 дисков, но я могу ошибаться. Большинство диаграмм, которые я видел, только смутили меня. Похоже, что так работает RAID-5, пожалуйста, поправьте меня, так как я уверен, что не понимаю его правильно:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

Кажется, что диски 1-3 появляются и работают как один массивный диск ( capacity * number_of_drives), а диски четности создают резервные копии этих дисков. Что мне кажется странным, так это то, что я обычно вижу 3+ накопителя на диаграмме и только 1 или 2 диска с четностью. Допустим, у нас 4 накопителя емкостью 1 ТБ в массиве RAID-5, 3 хранилища и 1 работающая четность, у нас 3 ТБ фактической памяти, но только 1 ТБ четности !?

Я знаю, что я что-то здесь упускаю, кто-нибудь может мне помочь? Кроме того, для моего случая использования, что было бы лучше, RAID-5 или RAID-6? Отказоустойчивость является наивысшим приоритетом для меня на данный момент, так как это будет работать по сети для домашнего использования, скорость не очень критично.

Ответы:


30

Он просто XOR для каждого соответствующего бита каждого диска. Если вы потеряете какой-либо диск, вы можете восстановить недостающие данные.

Для фона:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

Предположим, что D - это XOR других столбцов, тогда, пока вы потеряете только один диск, вы можете выяснить, что вы потеряли.

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

Иногда бит полосы будет распределен по дискам, но концепция та же самая.

Таким образом, для RAID-5, независимо от количества дисков, вам нужен только один диск для проверки четности, равной или большей, чем самый маленький диск в массиве, который вы хотите RAID.

RAID-5 для личного использования, вероятно, лучше, так как вычислительная сложность намного ниже, чем RAID-6.

RAID-6 более сложен, используя Galois Fields для вычисления четности. И это может облагать налогом вычисления паритета. Тем не менее, вы можете потерять больше дисков, но если вы перестроите свой массив, как только у вас будет один сбой, вам будет хорошо придерживаться RAID-5.


Отличный ответ. Я думал о слишком большом масштабе, на фактической полной основе жесткого диска, а не на уровне битов. Так использует ли RAID-5 выделенный диск для контроля четности или, скорее, все диски для контроля четности? Я запутался в этом.
Нафтули Кей

2
Я считаю, что современный подход заключается в распределении четности по диагонали по всем дискам. Это приводит к ускорению времени чтения до битов четности, так как несколько запросов ввода-вывода могут отправляться параллельно на разные диски, но не стоит меня к этому приводить.
Мэтт

Есть ли математическая формула, которую я могу использовать для определения емкости, указанной xдисков и yГБ, доступных на каждом диске?
Нафтули Кей

2
Да, это (наименьший размер диска) * (количество дисков в массиве - 1)
Мэтт

1
Если четность - это просто XOR двух других дисков, как узнать, какой из двух дисков был поврежден? Не приведет ли немного переворачивание на одном из дисков к небольшому перевороту в четности?
Джей Салливан

8

Вот что я считаю лучшей диаграммой, чтобы показать, как работает четность в RAID4 и RAID5

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

Или посмотрите этот SVG-
файл в

4

Я бы порекомендовал прочитать эту статью в Википедии о рейде 5 и рейде 6

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5 записывает блок четности в каждой полосе, поэтому для полосы A из 4-х дискового массива он записывает проверку четности на 4-м диске с данными на дисках 1, 2 и 3

Для полосы B блок контроля четности находится на диске 3, с данными на дисках 1,2 и 4 ... и т. Д.

Если, скажем, диск 4 выходит из строя, данные могут быть восстановлены для полосы B, поскольку вы знаете данные на дисках 1 и 2 и можете проверить четность на диске 3.

Если полоса B имеет четность «2», а диск 1 содержит данные «1», а данные диска 2 «0», то на диске 4 должны быть данные, равные «1», поэтому диск записывается с данными = «1».

Таким образом можно воссоздать весь диск, RAID 6 расширяет его, имея 2 блока для каждой полосы.

Что касается пространства для Raid 5, вы когда-либо теряете только один диск на паритет, поскольку он записывает только блоки четности на полосу, в то время как в Raid 6 вы потеряете 2 диска, но также можете потерять два диска, а не тот, который вы потеряете в Рейд 5;)

Статья в Википедии объясняет это лучше!


3

RAID 5 использует один диск для контроля четности, независимо от того, сколько дисков данных в массиве. Это означает, что он становится более эффективным с точки зрения используемого пространства, чем больше дисков добавляется.

Четность достигается выполнением операции XOR для одного и того же блока на каждом диске; содержимое диска контроля четности регулируется так, что все диски XOR обнуляются . Это означает, что RAID 5 ограничен наименьшей емкостью среди всех дисков в массиве.

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


Так что, по сути, означает, что у меня может быть 4 диска по 2 ТБ и эффективное резервное хранилище объемом 6 ТБ?
Нафтули Кей

@TK Kocheran С RAID 5, да. Обратите внимание, что эффективное хранилище будет немного меньше из-за файловой системы. Например, мой NAS с 4 дисками по 2 ТБ в RAID-Z1 (версия RAID 5 для ZFS) имеет полезное пространство 5,18 ТБ.
sblair

Ну да, конечно :) Всегда бывает так. Следующий вопрос - какую файловую систему использовать ...
Naftuli Kay

0

Если ваша цель - отказоустойчивость, RAID-6 будет достаточно избыточен, чтобы освободить два диска. Обычно RAID-5 допускает только один сбой диска.


Каково соотношение дисков к паритету (общему объему памяти) для RAID-6? drive_size * (drive_count - 2)?
Нафтули Кей

1
Помимо отказоустойчивости второго диска, который выходит из строя до того, как вы сможете заменить первый, есть еще одна ситуация, для которой он подходит, и я встречался уже не раз: диск выходит из строя в массиве RAID, и поэтому новый диск заказан. Какой-то случайный парень, который ничего не знает о RAID-массивах, входит в серверную комнату с новым диском в руке, портит нумерацию и выбрасывает неправильный диск из массива для замены. Под RAID5 ваш массив прикручен прямо там. RAID6 означает, что вы все еще можете восстановить.
camster342
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.