RAID 7.
m has been used to describe an erasure coding system with
m extra drives and able to tolerate the loss of
m drives. In this scheme, RAID 5 would be RAID 7.1 and RAID 6 would be RAID 7.2. Unlike the bit shift in the simplified example, which could only be applied k times before the encoding began to repeat, applying the operator g multiple times is guaranteed to produce m=2^k-1 unique invertible functions, which will allow a chunk length of k to support up to 2^k-1 data pieces. If one data chunk is lost, the situation is similar to the one before. In the case of two lost data chunks, we can compute the recovery formulas algebraically. Suppose that \mathbf{D}_i and \mathbf{D}_j are the lost values with i \neq j, then, using the other values of D, we find constants A and B: {{block indent| A = \mathbf{P} \;\oplus\; (\bigoplus_{\ell:\;\ell\not=i\;\mathrm{and}\;\ell\not=j}{D_\ell}) = D_i \oplus D_j }} {{block indent| B = \mathbf{Q} \;\oplus\; (\bigoplus_{\ell:\;\ell\not=i\;\mathrm{and}\;\ell\not=j}{g^{\ell}D_\ell}) = g^iD_i \oplus g^jD_j }} We can solve for D_i in the second equation and plug it into the first to find D_j = (g^{m-i+j}\oplus1)^{-1} (g^{m-i}B\oplus A), and then D_i=A\oplus D_j. Unlike
P, The computation of
Q is relatively CPU intensive, as it involves polynomial multiplication in F_2[x]/(p(x)). This can be mitigated through a hardware implementation (ASIC or
FPGA). Alternatively, a cleaver choice of polynomials by Anvin allow fast calculation on CPUs: k=8, \mathbf{Q} = \bigoplus_i{2^i\mathbf{D}_i}. This construction allows for efficient implementation using only addition and multiplication by two in GF(28) and opens the possibility of using
SSSE3,
AVX2, or other SIMD methods to implement efficiently. Similarly, one could define \mathbf{R} = \bigoplus_i{2^-i\mathbf{D}_i} or \mathbf{R} = \bigoplus_i{4^i\mathbf{D}_i}. Unfortunately Anvin's
Vandermonde matrix solutions only work up to triple parity; for beyond, a
Cauchy matrix construction is required. SSSE3, AVX2, and other SIMD methods remain applicable. ==RAID 5E, RAID 5EE, and RAID 6E==