参考サイト
http://www.obenri.com/_raid_build/after_install_raid.html#target_pictprocmdstat01
https://raid.wiki.kernel.org/index.php/Mdstat#md_config.2Fstatus_line
RAIDについて
RAIDと言われると、いつも「ああアレね!なんか……冗長するやつ」ってなるので、覚え書きです。
cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md_d0 : active raid5 sde1[0] sdf1[4] sdb1[5] sdd1[2] sdc1[1]
1250241792 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/5] [UUUUU]
bitmap: 0/10 pages [0KB], 16384KB chunk
unused devices: <none>
項目 | 意味 |
---|---|
md_d0 | RAIDデバイス |
active | active 動作状態 |
raid5 | RAIDレベル |
sde1[0] | パーティション[認識番号] |
1250241792 blocks | RAIDサイズ(block) |
super | スーパーブロックのこと |
64k chunk | データがストライプされる単位 |
algorithm 2 | RAID5には、ストライピングにいくつかのパターンがあり、algorythmオプションとして指定できる |
[5/5] | RAID構成パーティション/稼働パーティション |
[UUUUU] | U=Upのこと。Downは_で表示される |
bitmap: 0/10 pages [0KB] | write intent bitmapのこと。突然のシャットダウンや、RAID再構築時にRAIDを素早くビルドするために使われるらしい |
パリティ(Parity)とは
コンピュータのビット列誤り検出のこと。
ビット列(8つの0または1の列)の中に、
1が奇数個ある→パリティは0
1が偶数個ある→パリティは1
という単純な話。
11001001 なら、パリティは1
パリティを合わせたビット列は110010011
【パリティがRAIDの何の役に立つのか】
ABCのサーバが、それぞれ1、1、0のビットを持っていたとする。
例えば、Bのサーバが落ちてしまった場合、
1、X、0 と、Xのところのビットがわからなくなってしまう。
こんな場合でも、パリティビットさえ保存されていれば、
1、X、0と、パリティ1から
1は偶数個必要だから、Xは1だと断定できる。
パリティビットは、耐障害性を高めるため、サーバに分散して保存される。
下の表は、A,B,C,D の4台のサーバでRAIDを構築した場合、データがどのように保存されるかを示している。
(PとP'はパリティを表す)
|RAID|呼び名|A|B|C|D|
|:--|:--|:--|:--:|:--:|:--:|:--:|
|0|Striping|1
5|2
6|3
7|4
8|
|1|Mirroring|1
2|1
2|1
2|1
2|
|5|Striping
with Parity|1
4|2
P|P
5|3
6|
|6|Striping
with Dual Parity |P'
3|1
P|P
4|2
P'|
● RAID0
ストライピング。複数のディスクに同時にデータをread/writeする。ディスクのread/write速度が上がる。冗長性は無い。
● RAID1
ミラーリング。同じデータを複数のサーバで保持する。
● RAID5
ストライピングでデータを保存し、パリティを付けることで耐障害性を確保する。
● RAID6
ストライピングでデータを保存し、二種類のパリティを付ける。RAID5では1台のサーバに対する耐障害性しかないが、RAID6なら2台同時に落ちてもデータを復元できる。
【RAIDの組み合わせ】
RAIDは、1種類だけ使うよりも、複数のRAIDを組み合わせて使うことの方が多い。
組み合わせることで、耐障害性やディスクへのアクセス速度向上を図る。
RAID | 効果 |
---|---|
0 + 1 | 0 : アクセス速度向上、大容量 1 : 冗長性 |
5 + 0 | 0 : アクセス速度向上、大容量 5: 耐障害性 |
【RAIDの分類】 もうひとつ、RAIDを分けるものとして、分割するディスクの単位がある。 RAID2,3,4だとその辺の区別があるらしい。 ほとんど使われないそうなので割愛します。 Block(Sector): 512byte(磁気ディスク) 2048byte(光ディスク) Bit : 1か0どちらかのこと。一桁 Byte : 8桁の1か0の並び。