カスタム検索

Linux Software RAID10

提供: HelloKitty68

 単純に機能的なRAID1+0としての10ではなく,1と0の特徴を持ち,また欠点も持つ。

目次


最小構成

 最小2ボリュームだが,無視すれば1ボリュームの縮退状態から構築できる。

レイアウト

 near/far/offsetの3種類があり,その3種類ともアクセス特性や冗長性が異なる。また配置だけでなく複製数・ボリューム数でも変わる。

 以下,near/far/offsetの冗長性例は4 device/2 copiesの場合。

near

near

V1 V2 V3 V4
Head 0 0 1 1
2 2 3 3
4 4 5 5
Tail 6 6 7 7

 よくあるオーソドックスなレイアウトで複製は隣接したボリュームの同じ位置に作られる。

 冗長性はV1が故障した場合はさらにV3/V4のいずれか1つの故障まで耐え,V2が故障すると崩壊する。

far

far

V1 V2 V3 V4
Head 0 1 2 3
4 5 6 7

50% 3 0 1 2

7 4 5 6
Tail

 データ配置自体はシーケンシャルリード時にストライピングになるように書き込まれ,またストライピングで読まれるのだが,複製は別なボリュームの離れた位置にできる(2copeisで50%位置から)。

 冗長性はV1が故障した場合V3の故障まで耐え,隣接するV2/V4のいずれかが故障すると崩壊する。

 単体の特徴として2ボリュームで構築した場合,データはストライピング構造になるので単一シーケンシャルリードはRAID10最速になる。ただし,書き込みは当然離れた位置にできるので遅く,縮退時にはチャンク毎にランダムアクセスが発生し最悪になる。


Offset

offset

V1 V2 V3 V4
Head 0 1 2 3
3 0 1 2
4 5 6 7
Tail 7 4 5 6

 ある意味farの書き込み改良版になる。複製は隣接したボリュームの次のストライプに書き込まれるようになるのだが,シーケンシャルリード時に完全に連続した物にならなくなる。

 冗長性はfarと同じくV1が故障した場合V3の故障まで耐え,隣接するV2/V4のいずれかが故障すると崩壊する。

奇数ボリューム


V1 V2 V3
Head 0 0 1
1 2 2
3 3 4
4 5 5
Tail 6 6

 2台以上の必ず偶数という事もなく3台上の奇数でも構築可能である。奇数分の余った部分は次のボリュームの次の列にできて,あとは1つづずれる。最終的にコピーの作れない余るチャンクは使われない。例えば3 Devices/2 near-copiesの場合右図のようになる。

複製

3 copies

V1 V2 V3 V4
Head 0 0 0 1
1 1 2 2
2 3 3 3
Tail 4 4 4

 copiesという。デフォルトの2copiesでは2台目の故障時の耐障害性に条件が必要になるが,3copiesからは無くなる。最小2copiesから最大はアレイに使っているボリューム数になる。

 複製は必ず別なボリュームにできるので,これはレイアウトにも影響する。例えば4Devices-3near copiesの場合は右図のようになる。端数チャンクは容量的に見ると切り捨てられる。

 複製数が多いほどその分容量は減るので,1ボリューム100GBとした場合は次のようになる。

Copies/Dev 2 3 4 5 6 7 8
2 100 150 200 250 300 350 400
3 100 133 166 200 233 266
4 100 125 150 175 200

冗長性

 レイアウトやボリューム数に関係なく2copiesで障害が発生しても動き続けられるのは基本的に1台目のみで,2台目から限定的な物になる。それは人間側の希望であって実際に次にどれが故障するのかは,発生するまで分からない為。一般に4デバイス2near copiesで33%とされるが,これは例えば10デバイス5ミラーセットの場合10%強まで数字的に下げる事はできる。単に耐障害性で見れば4ボリュームで任意の障害2台まで耐え同容量のRAID6の方が優れる。この人間側の希望的な冗長性はnearの場合4ボリューム,far/offsetの場合5ボリューム以上必要である。

 3 copies以上の場合,1台目の障害でも必ず2つが複製が残り,recovery中に2台目に障害が発生したとしても最低1つの複製が残るので,任意のボリュームの故障という意味ではより確実である。ただし使用効率は悪い(1/3になる)。

スタンバイスペアとrecovery

 RAID1+0の場合はRAID1側にスペアが1台ずつ必要なので最低2台必要だが,RAID10はそれ自体が1つのアレイであるのでボリューム数に関係なく最低1台である。

 また,3 Device/3 copies以上で2台以上がほぼ同時に故障しrecoveryが発生した場合,可能であれば2台以上同時にrecoveryする場合がある。

構築後の変更・拡張

 スペアの入れ替え以外のレイアウトの変更も何もかも,growはほとんど出来ない。せいぜいbitmapの付け替えくらいである。この為,RAID10を構築する場合は,使う用途に合わせてレイアウトなどをよく考えて構築し,可能ならばパフォーマンス測定や冗長性についても調べておくべきである(特にfar/offsetの場合)。

関連リンク

リンク

案内
ツールボックス