RAID - Redundant Array of independed disks
JBOD (Just bunch of disks) JBOD
RAID-0 Stripe Set RAID-0
RAID-1 Mirror RAID-1
RAID-1E
RAID-2 Hamming code ECC (7,4) SECDEC RAID-2
RAID-3/RAID-4
RAID-3 and RAID-4 Stripe set with Parity Разница в том, что RAID-3 parity побайтно, а RAID-4 поблочно.
RAID-4:
RAID-5 Stripe set w/Rotated Parity Parity распределена по всем дискам - поэтому работает быстрее чем RAID-3 1 колонка parity RAID-5
{a,b,P} a + b = P (a,b) a, b (b,P) a = P - b (a,p) b = P - a RAID-5 имеет два основных варианта Правовращающееся parity Левовращающееся симметричное (более быстрый) Отказ одного диска:
Отказ двух дисков:
RAID-5 with spare
RAID-5E
RAID-5EE
Другие варианты расширенного RAID-5
RAID-6 Stripe set w/Rotated Parity 2 колонки parity RAID-6
{a,b,P,Q} a + b = P log{a} + log{b} = Q для Q обычно берут GF(2^8) log{x} дискретный имеет для 1..FF значения показателя степени образующего полинома 0..FE для 00 считают что степень будет бесконечностью и представляют ее как FF. Что происходит ели вылетит 2 диска: (a,b) a,b (a,P) b = P - a (b,P) a = P - b (a,Q) b = antilog(Q - log{a}) (b,Q) q = antilog(Q - log{b}) {a,b,c,P,Q} если вылетели диски с четностью - то нормально если вылетел диск с четностью и данными - то смотри выше вылетело 2 диска с данными (a,P,Q) имеем систему уравнений: | b + c = P - a | log{b} + log{c} = Q - log{a} решая ее получаем a и b один из вариантов решения просто подбором по b (всего 256 вариантов в среднем 128) в пересчете на байт. TP = P ^ a; // XOR TQ = Q - log{a} b = 0; while (b < 256) { c = TP ^ b; // XOR lb = log_table[b]; lc = log_table[c]; if ((lb + lc) == TQ)) { return b,c; } b++; } естественно имеем в памяти таблицу дискретных алгоритмов. порядка 7 операций на итерацию на востановление байта: 7-1792 операций в среднем 896 на сектор (512 байт): 3584-917504 операций получается на современном процессорном ядре можно востановить в худшем случае порядка 1-2К секторов в секунду то есть порядка 1MB. Неудивительно что используют специальные контроллеры.
Аналогично как RAID-5E RAID-6E
RAID-10: RAID-10
RAID0+1
RAID-30: RAID_30
RAID-50
RAID-50:
RAID-51
RAID-60
RAID-61
RAID-DP
Повышается надежность:
Software и Hardware Hardware:
Software: