Я так и не понял, почему RAID5 лучше RAID4. Я понимаю, что оба вычисляют биты четности, которые используются для восстановления в случае сбоя, единственное различие заключается в хранении этих битов четности. Здесь я позаимствовал диаграммы. Как работает четность в массиве RAID-5?
A B (A XOR B)
0 0 0
1 1 0
0 1 1
1 0 1
RAID4
Disk1 Disk2 Disk3 Disk4
----------------------------
data1 data1 data1 parity1
data2 data2 data2 parity2
data3 data3 data3 parity3
data4 data4 data4 parity4
Допустим, первый ряд:
data1 = 1
data1 = 0
data1 = 1
parity1 = 0 (COMPUTED: 1 XOR 0 XOR 1 = 0)
RAID5
Disk1 Disk2 Disk3 Disk4
----------------------------
parity1 data1 data1 data1
data2 parity2 data2 data2
data3 data3 parity3 data3
data4 data4 data4 parity4
Допустим, первый ряд:
parity1 = 0 (COMPUTED: 1 XOR 0 XOR 1 = 0)
data1 = 1
data1 = 0
data1 = 1
Scanarios:
1. RAID4 - Disk3 FAILURE:
data1 = 1
data1 = 0
data1 = 1 (COMPUTED: 1 XOR 0 XOR 0 = 1)
parity1 = 0
2. RAID4 - Disk4 (четность) СБОЙ:
data1 = 1
data1 = 0
data1 = 1
parity1 = 0 (COMPUTED: 1 XOR 0 XOR 1 = 0)
и т.п.
В общем: когда RAID(4 или 5) использует N дисков, а один выходит из строя. Я могу взять все оставшиеся не неисправные диски (N-1) и значения XOR (поскольку XOR является ассоциативной операцией), и я получу ошибочное значение. В чем преимущество сохранения четности не на выделенном диске, а в циклическом цикле? Есть ли какой-то выигрыш в производительности или как? Спасибо