Как рассчитать четность RAID 5 для четного количества дисков?

Когда я прихожу к объяснениям RAID 5, я очень часто вижу изображения, показывающие 4 диска с тремя блоками данных и одним блоком четности. В качестве примера расчета (иногда на одних и тех же сайтах) я всегда вижу только 3 диска. Скорее всего потому, что это имеет больше смысла: я могу XOR двух блоков и создать четность, поэтому нужно три диска. На всех этих изображениях блок четности имеет тот же размер, что и три блока данных.

Как это может быть? Как рассчитывается четность RAID 5, когда у меня 4 диска, то есть три блока одинакового размера, для которых необходимо построить четность?

(PS. Даже удвоение размера четности (с двух блоков в каждом) не поможет понять это. Потому что это будет RAID 6, не так ли?)


person AyJayKay    schedule 26.04.2019    source источник
comment
Четность может быть рассчитана для любого положительного числа операндов. Четная четность означает, что сумма четная. Нечетная четность указывает, что сумма операндов нечетная. См. Википедию.   -  person Axel Kemper    schedule 26.04.2019
comment
Извините за путаницу: я не говорю о размере одного блока. Мне все равно, четные или нечетные битовые числа. Меня смущает разбиение блоков данных. Как можно создать четность размера X из трех блоков, каждый из которых имеет размер X? Потому что это то, что вы видите на всех изображениях.   -  person AyJayKay    schedule 26.04.2019
comment
@AxelKemper в вашей ссылке я снова вижу пример рейда 5 с тремя дисками :)   -  person AyJayKay    schedule 26.04.2019


Ответы (1)


Представьте, что у вас есть три диска данных A, B и C и нечетный диск четности P.

В следующей таблице показаны три байта данных и результирующий байт четности:

  A: 0 1 0 1 0 1 0 1
  B: 0 0 1 1 0 0 1 1
  C: 0 0 0 0 1 1 1 1
  P: 0 1 1 0 1 0 0 1

В случае, например, отказа диска B остаются A, C и P. Недостающие B байта можно восстановить, вычислив нечетную четность уцелевших дисков:

  A: 0 1 0 1 0 1 0 1
  C: 0 0 0 0 1 1 1 1
  P: 0 1 1 0 1 0 0 1
[ B: 0 0 1 1 0 0 1 1 ]
person Axel Kemper    schedule 26.04.2019