RAID6
LinuxのmdadmでのRAID6はどうなっているか。
一つ目のパリティはRAID5と同じくXORによるもの。
二つ目のパリティはガロア体上での演算によるもの。
つまりリードソロモン符号。
$ GF[2^8\rbrackが使われることが多いらしい。
A guide to mdadm
How RAID-6 dual parity calculation works
Linuxカーネルのコードは読んでない。
Reed-Solomon Library Programming Interface, Thomas Gleixner
code:init_rs.sample.c
/* the Reed Solomon control structure */
static struct rs_control *rs_decoder;
/* Symbolsize is 10 (bits)
* Primitive polynomial is x^10+x^3+1
* first consecutive root is 0
* primitive element to generate roots = 1
* generator polynomial degree (number of roots) = 6
*/
rs_decoder = init_rs (10, 0x409, 0, 1, 6);
Reed-Solomon Library (Ported to userspace from Linux Kernel)
This library is code from the Linux Kernel ported to userspace. The example program demonstrates the use of the RS(255,223) Reed-Solomon FEC with generator polynomial 0x187.