Algorithms for software and low-cost hardware RAIDs

RAIDs implemented in disk controllers are called hardware RAIDs. A software RAID, on the other hand, is implemented purely in software running on a host computer. In this paper, we describe algorithms that can be used by software RAIDs. We present one algorithm (parallel algorithm) for achieving fastest possible RAID update response time; we present one algorithm (PGS bit map algorithm) for improved recovery times; we present one algorithm for improved update concurrency; and we present four algorithms (Parity Caching, Delta Parity Caching, Delta Parity and Partial Parity Caching, and Data Prefetching) for improved sequential performance. Many of our algorithms are also appropriate for low-cost hardware RAIDs.