  As storage systems grow in size, device failures happen more frequently than
ever before. Given the commodity nature of hard drives employed, a storage
system needs to tolerate a certain number of disk failures while maintaining
data integrity, and to recover lost data with minimal interference to normal
disk I/O operations. RAID-6, which can tolerate up to two disk failures with
the minimum redundancy, is becoming widespread. However, traditional RAID-6
codes suffer from high disk I/O overhead during recovery. In this paper, we
propose a new family of RAID-6 codes, the Minimum Disk I/O Repairable (MDR)
codes, which achieve the optimal disk I/O overhead for single failure
recoveries. Moreover, we show that MDR codes can be encoded with the minimum
number of bit-wise XOR operations. Simulation results show that MDR codes help
to save about half of disk read operations than traditional RAID-6 codes, and
thus can reduce the recovery time by up to 40%.
