Vamos dar uma ideia muito simples.
Você tem quatro volumes e um volume de recuperação, cada um com 1 bit de informação:
========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
=----------=----------=----------=----------=----------=
Bits: = 1 = 0 = 1 = 1 = 1 =
========================================================
O volume de recuperação conterá o resultado de cada um desses bits XOR d juntos:
1 XOR 0 XOR 1 XOR 1 = 1
Portanto, nosso volume de recuperação contém o único bit 1
.
Agora, digamos que o volume 1 falhe.
Se nós XOR os volumes restantes 2, 3 e 4 com o bit de recuperação no lugar do volume com falha, obtemos:
1 XOR 0 XOR 1 XOR 1 = 1
^
Então, isso nos diz que o volume 1 continha 1
, já que é o resultado da equação.
Vamos fingir que o volume 2 morreu, então substituímos o valor na equação pelo bit de recuperação:
1 XOR 1 XOR 1 XOR 1 = 0
^
Então sabemos que o volume 2 continha 0
, já que é o resultado da equação.
Se o volume 3 ou 4 falhasse, ambos produziriam 1
nessa equação.
Portanto, se algum dos volumes falhar, o volume de recuperação poderá ser usado para reconstruir os dados com base nos volumes restantes. Esta é provavelmente a forma mais simples de correção de erros que você pode ter. Se dois volumes falharem, você não poderá recuperar nada.