RAID Diagonal Parity : How does that work?

In a RAID setting, we use parity for redundancy and fault tolerance. Parity basically is the XOR operation of the incoming data bits in order to get a new bit that helps in retrieving the parent bits back (in case of disk failures).

The downside is, number of parity bits stored in the system is directly proportional to the number of disk failures it can recover from i.e.

Parity: 1, Disk failure recovery:1
Parity: 2, Disk failure recovery:2 and so on

We usually don’t do for more than 2 parity for the huge write penalties for it instead, we use mirroring for more redundancy.

So, in a normal system, diagonal parity is stored as follows :

12985_basic-fig2

When combined with the normal across parity in the system,

12986_basic-fig3 - Copy

Of course, the parity bits are stored among the data bits and not separate disks (since that type of parity storage is not used anymore). The diagrams are for representational purpose only.

Now say we have a double disk failure. As we can see, the diagonal parity plus XOR can recover one of the data blocks back

12986_basic-fig3 - Copy (2)

Then, Using the recovered block of data and parity across, we can get the last block of data back.

12986_basic-fig3 - Copy (3)

As it is clearly evident in the above example, not only can diagonal parity recover from double disk failures. It is optimal in computational complexity in both construction and reconstruction. It can be used in RAID5 or RAID6 depending on the user.

 

Leave a comment