RAIDとは ― RAID0・1・5・6・10の違いと容量の計算
RAIDは
RAIDとは
サーバやNASにディスクを何台か入れるときは、「RAID5」「RAID10」のような組み方を選びます。RAIDとは、複数台のディスクをまとめて1台のように扱い、読み書きの速度や信頼性を上げる技術です。RAID0・1・5・6・10はデータの置き方が違い、それによって使える容量と、何台まで壊れても動くかが変わります。
RAIDは、Redundant Array of Independent Disksの頭文字です。RAIDを提案した1987年のカリフォルニア大学バークレー校の技術報告は、題名でIndependentではなくInexpensiveの語を使っています。ミラーリングで信頼性が上がる理由は、可用性とSLAの記事にある並列構成の稼働率の式で説明できます。
ストライピング・ミラーリング・パリティ
どのレベルのRAIDも、データの置き方は3つの仕組みの組み合わせでできています。データを細かく分けて、複数のディスクに順番に書く方法をストライピングと呼びます。複数のディスクに同時に読み書きできるため速くなりますが、写しは持ちません。
同じデータを2台以上のディスクに書く方法は、ミラーリングと呼びます。どちらか1台が壊れても、もう1台に同じデータが残ります。その代わり、2台に同じものを書く分、使える容量は1台分になります。
3つ目の仕組みは、データから計算した検査用の値を一緒に書いておく方法です。この値をパリティと呼びます。パリティがあれば、データが1つ欠けても、残りのデータとパリティから欠けた分を計算し直せます。
例えば、3つのデータ1・0・1に対して、全体の1の数が偶数になるようにパリティを決めます。1が2つで偶数なので、パリティは0です。2つ目のデータが消えたとき、残りのデータ1・1とパリティ0を合わせると、1は2つです。全体が偶数になるには消えたデータが0であればよいので、0だったと分かります。
RAID0・1・5・6・10の違い
よく使われる5つのレベルを、仕組みと台数で比べると次のようになります。表のnはディスクの台数で、どのディスクも同じ容量である前提です。
| レベル | 仕組み | 最小台数 | 使える | 壊れても |
|---|---|---|---|---|
| RAID0 | ストライピング | 2台 | n台分 | 0台 |
| RAID1 | ミラーリング | 2台 | 1台分 | 1台 |
| RAID5 | パリティを分散 | 3台 | (n−1)台分 | 1台 |
| RAID6 | パリティを2つ分散 | 4台 | (n−2)台分 | 2台 |
| RAID10 | ミラーの上でストライピング | 4台 | n÷2台分 | 1台(ペアが別なら最大n÷2台) |
RAID0はストライピングだけを使い、全台の容量をデータに使います。写しもパリティも持たないため、1台でも壊れるとデータを失います。その代わり、全台に分けて同時に読み書きできるため速く、容量も余さず使えます。
RAID1はミラーリングだけを使います。2台で組むと、1台が壊れてももう1台からそのまま読めます。容量は1台分しか使えないため、容量効率は50%です。
RAID2・RAID3・RAID4
RAID2は、誤りを検出する符号を計算し、一部のディスクにまとめて置きます。RAID3とRAID4は、パリティを1台の専用ディスクにまとめて置きます。
RAID3はデータをバイト単位で、RAID4はブロック単位で分けて並べる点が違います。パリティを1台にまとめると、どのデータを書き換えてもそのディスクのパリティを書き直すことになります。パリティを全台に分散させたのが、次に説明するRAID5です。
RAID5・RAID6とは
RAID5は、データとパリティを全台に分散して書き、1台の故障に耐えるレベルです。4台で組むと、データ3つにつきパリティを1つ作り、パリティの置き場所を段ごとにずらします。次の図で、ディスク2が壊れたときにRAID5とRAID0がどうなるかを比べられます。
RAID5は、
ディスク2に
RAID0は
RAID5は、1台分をパリティに使う代わりに、ミラーリングより多くの容量をデータに使えます。ただし、データを1か所書き換えるたびにパリティも計算し直して書くため、書き込みには余分な手間がかかります。2台が同時に壊れると、同じ段で2つが欠けるため、計算で戻せなくなります。
RAID6は、計算方法の違う2種類のパリティを持つレベルです。どの2台が同時に壊れても、データを失いません。その分、2台分の容量をパリティに使い、最小でも4台が必要です。
RAID10とは
RAID10は、RAID1のペアをいくつか作り、その上でRAID0のストライピングをするレベルです。RAID1とRAID0を重ねるため、RAID1/0と書くこともあります。4台なら2組のペアができ、データA1・A3はペア1に、A2・A4はペア2に書かれます。
RAID10が何台まで壊れても動くかは、壊れたディスクが同じペアかどうかで決まります。各ペアに1台ずつ残っていれば、すべてのデータの写しがそろっています。同じペアの2台が壊れると、そのペアが持っていたデータは失われます。
そのため、RAID10が必ず耐えられるのは1台です。壊れる場所が別々のペアに散らばれば、台数の半分まで壊れても動き続けます。容量は台数の半分で、2台のミラーリングと同じく容量効率は50%です。
RAIDの容量の計算
使える容量は、パリティや写しに使う台数を全体から引いて求めます。1台の容量をC、台数をnとすると、レベルごとの式は次のとおりです。
- RAID0:n × C
- RAID1:C(何台で組んでも1台分)
- RAID5:(n − 1) × C
- RAID6:(n − 2) × C
- RAID10:n ÷ 2 × C
RAID5とRAID6は、台数を増やすほど容量効率が上がります。パリティに使う台数が、何台で組んでも1台分か2台分のまま変わらないからです。
RAID10は、台数を増やしても容量効率は50%のままです。RAID1は何台で組んでも1台分しか使えないため、台数を増やすほど容量効率は下がります。次の計算機で、レベル・台数・1台の容量を選ぶと、使える容量と、何台まで壊れても動くかが出ます。
- 使える容量
- 2TB(2台 合計2TBのうち)
- 計算
- 2台 × 1TB = 2TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 4TB(2台 合計4TBのうち)
- 計算
- 2台 × 2TB = 4TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 8TB(2台 合計8TBのうち)
- 計算
- 2台 × 4TB = 8TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 3TB(3台 合計3TBのうち)
- 計算
- 3台 × 1TB = 3TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 6TB(3台 合計6TBのうち)
- 計算
- 3台 × 2TB = 6TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 12TB(3台 合計12TBのうち)
- 計算
- 3台 × 4TB = 12TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 4TB(4台 合計4TBのうち)
- 計算
- 4台 × 1TB = 4TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 8TB(4台 合計8TBのうち)
- 計算
- 4台 × 2TB = 8TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 16TB(4台 合計16TBのうち)
- 計算
- 4台 × 4TB = 16TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 5TB(5台 合計5TBのうち)
- 計算
- 5台 × 1TB = 5TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 10TB(5台 合計10TBのうち)
- 計算
- 5台 × 2TB = 10TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 20TB(5台 合計20TBのうち)
- 計算
- 5台 × 4TB = 20TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 6TB(6台 合計6TBのうち)
- 計算
- 6台 × 1TB = 6TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 12TB(6台 合計12TBのうち)
- 計算
- 6台 × 2TB = 12TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 24TB(6台 合計24TBのうち)
- 計算
- 6台 × 4TB = 24TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 7TB(7台 合計7TBのうち)
- 計算
- 7台 × 1TB = 7TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 14TB(7台 合計14TBのうち)
- 計算
- 7台 × 2TB = 14TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 28TB(7台 合計28TBのうち)
- 計算
- 7台 × 4TB = 28TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 8TB(8台 合計8TBのうち)
- 計算
- 8台 × 1TB = 8TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 16TB(8台 合計16TBのうち)
- 計算
- 8台 × 2TB = 16TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 32TB(8台 合計32TBのうち)
- 計算
- 8台 × 4TB = 32TB
- 容量効率
- 100%
- 壊れても動く台数
- 0台。
1台でも 壊れると データを 失います。
- 使える容量
- 1TB(2台 合計2TBのうち)
- 計算
- 2台のうち1台分 × 1TB = 1TB
- 容量効率
- 50%
- 壊れても動く台数
- 1台。
2台とも 壊れると データを 失います。
- 使える容量
- 2TB(2台 合計4TBのうち)
- 計算
- 2台のうち1台分 × 2TB = 2TB
- 容量効率
- 50%
- 壊れても動く台数
- 1台。
2台とも 壊れると データを 失います。
- 使える容量
- 4TB(2台 合計8TBのうち)
- 計算
- 2台のうち1台分 × 4TB = 4TB
- 容量効率
- 50%
- 壊れても動く台数
- 1台。
2台とも 壊れると データを 失います。
- 使える容量
- 2TB(3台 合計3TBのうち)
- 計算
- (3−1)台 × 1TB = 2TB
- 容量効率
- 66.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 4TB(3台 合計6TBのうち)
- 計算
- (3−1)台 × 2TB = 4TB
- 容量効率
- 66.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 8TB(3台 合計12TBのうち)
- 計算
- (3−1)台 × 4TB = 8TB
- 容量効率
- 66.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 3TB(4台 合計4TBのうち)
- 計算
- (4−1)台 × 1TB = 3TB
- 容量効率
- 75%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 6TB(4台 合計8TBのうち)
- 計算
- (4−1)台 × 2TB = 6TB
- 容量効率
- 75%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 12TB(4台 合計16TBのうち)
- 計算
- (4−1)台 × 4TB = 12TB
- 容量効率
- 75%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 4TB(5台 合計5TBのうち)
- 計算
- (5−1)台 × 1TB = 4TB
- 容量効率
- 80%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 8TB(5台 合計10TBのうち)
- 計算
- (5−1)台 × 2TB = 8TB
- 容量効率
- 80%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 16TB(5台 合計20TBのうち)
- 計算
- (5−1)台 × 4TB = 16TB
- 容量効率
- 80%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 5TB(6台 合計6TBのうち)
- 計算
- (6−1)台 × 1TB = 5TB
- 容量効率
- 83.3%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 10TB(6台 合計12TBのうち)
- 計算
- (6−1)台 × 2TB = 10TB
- 容量効率
- 83.3%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 20TB(6台 合計24TBのうち)
- 計算
- (6−1)台 × 4TB = 20TB
- 容量効率
- 83.3%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 6TB(7台 合計7TBのうち)
- 計算
- (7−1)台 × 1TB = 6TB
- 容量効率
- 85.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 12TB(7台 合計14TBのうち)
- 計算
- (7−1)台 × 2TB = 12TB
- 容量効率
- 85.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 24TB(7台 合計28TBのうち)
- 計算
- (7−1)台 × 4TB = 24TB
- 容量効率
- 85.7%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 7TB(8台 合計8TBのうち)
- 計算
- (8−1)台 × 1TB = 7TB
- 容量効率
- 87.5%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 14TB(8台 合計16TBのうち)
- 計算
- (8−1)台 × 2TB = 14TB
- 容量効率
- 87.5%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 28TB(8台 合計32TBのうち)
- 計算
- (8−1)台 × 4TB = 28TB
- 容量効率
- 87.5%
- 壊れても動く台数
- 1台。
2台壊れると データを 失います。
- 使える容量
- 2TB(4台 合計4TBのうち)
- 計算
- (4−2)台 × 1TB = 2TB
- 容量効率
- 50%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 4TB(4台 合計8TBのうち)
- 計算
- (4−2)台 × 2TB = 4TB
- 容量効率
- 50%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 8TB(4台 合計16TBのうち)
- 計算
- (4−2)台 × 4TB = 8TB
- 容量効率
- 50%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 3TB(5台 合計5TBのうち)
- 計算
- (5−2)台 × 1TB = 3TB
- 容量効率
- 60%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 6TB(5台 合計10TBのうち)
- 計算
- (5−2)台 × 2TB = 6TB
- 容量効率
- 60%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 12TB(5台 合計20TBのうち)
- 計算
- (5−2)台 × 4TB = 12TB
- 容量効率
- 60%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 4TB(6台 合計6TBのうち)
- 計算
- (6−2)台 × 1TB = 4TB
- 容量効率
- 66.7%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 8TB(6台 合計12TBのうち)
- 計算
- (6−2)台 × 2TB = 8TB
- 容量効率
- 66.7%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 16TB(6台 合計24TBのうち)
- 計算
- (6−2)台 × 4TB = 16TB
- 容量効率
- 66.7%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 5TB(7台 合計7TBのうち)
- 計算
- (7−2)台 × 1TB = 5TB
- 容量効率
- 71.4%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 10TB(7台 合計14TBのうち)
- 計算
- (7−2)台 × 2TB = 10TB
- 容量効率
- 71.4%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 20TB(7台 合計28TBのうち)
- 計算
- (7−2)台 × 4TB = 20TB
- 容量効率
- 71.4%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 6TB(8台 合計8TBのうち)
- 計算
- (8−2)台 × 1TB = 6TB
- 容量効率
- 75%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 12TB(8台 合計16TBのうち)
- 計算
- (8−2)台 × 2TB = 12TB
- 容量効率
- 75%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 24TB(8台 合計32TBのうち)
- 計算
- (8−2)台 × 4TB = 24TB
- 容量効率
- 75%
- 壊れても動く台数
- どの
2台でも 耐えます。 3台壊れると データを 失います。
- 使える容量
- 2TB(4台 合計4TBのうち)
- 計算
- 4台 ÷ 2 × 1TB = 2TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 2組の ペアで 1台ずつなら、 2台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 4TB(4台 合計8TBのうち)
- 計算
- 4台 ÷ 2 × 2TB = 4TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 2組の ペアで 1台ずつなら、 2台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 8TB(4台 合計16TBのうち)
- 計算
- 4台 ÷ 2 × 4TB = 8TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 2組の ペアで 1台ずつなら、 2台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 3TB(6台 合計6TBのうち)
- 計算
- 6台 ÷ 2 × 1TB = 3TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 3組の ペアで 1台ずつなら、 3台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 6TB(6台 合計12TBのうち)
- 計算
- 6台 ÷ 2 × 2TB = 6TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 3組の ペアで 1台ずつなら、 3台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 12TB(6台 合計24TBのうち)
- 計算
- 6台 ÷ 2 × 4TB = 12TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 3組の ペアで 1台ずつなら、 3台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 4TB(8台 合計8TBのうち)
- 計算
- 8台 ÷ 2 × 1TB = 4TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 4組の ペアで 1台ずつなら、 4台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 8TB(8台 合計16TBのうち)
- 計算
- 8台 ÷ 2 × 2TB = 8TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 4組の ペアで 1台ずつなら、 4台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
- 使える容量
- 16TB(8台 合計32TBのうち)
- 計算
- 8台 ÷ 2 × 4TB = 16TB
- 容量効率
- 50%
- 壊れても動く台数
- 必ず
耐えるのは 1台です。 4組の ペアで 1台ずつなら、 4台まで 耐えます。 同じ ペアの 2台が 壊れると データを 失います。
初期値は、1台2TBのディスク4台で組んだRAID5です。使える容量は(4−1)×2TBで6TB、容量効率は75%になります。同じ4台でも、RAID0は8TB使える代わりに1台も壊れられません。RAID6は4TBに減る代わりに、どの2台が壊れても動きます。
RAIDの稼働率の計算
RAIDを組んだディスク全体の稼働率は、直列構成と並列構成の式で計算できます。RAID0は、全台が動いていないとデータを読めないため、直列構成として計算します。RAID1は、どちらか1台が動いていれば読めるため、並列構成として計算します。
稼働率0.9のディスク2台で計算すると、RAID0は0.9×0.9で0.81です。RAID1は1−(1−0.9)×(1−0.9)で0.99です。同じ2台でも、RAID0は1台のときより稼働率が下がり、RAID1は上がります。
どちらの計算も、ディスク同士の故障が互いに影響せず、ディスク以外の機器は壊れない前提です。実際には、ディスクをまとめて制御する装置や電源が壊れると、RAIDを組んでいても全体が止まります。ディスクだけでなくシステム全体を2組用意する方式は、デュアルシステムとデュプレックスシステムの記事で比べています。
壊れたディスクの交換とリビルド
RAID1やRAID5で1台が壊れても、データは読めるまま動き続けます。このように壊れても機能を落とさずに動き続ける設計の考え方を、フォールトトレラントと呼びます。ただし、その間は冗長性が減っており、RAID5ではもう1台壊れるとデータを失います。壊れたディスクは、できるだけ早く新しいものに交換します。
新しいディスクには、残りのディスクの写しやパリティから、壊れたディスクにあった内容を作り直して書き込みます。この作業をリビルドと呼びます。リビルドが終わるまでは、もとの冗長性に戻っていません。
故障に備えて、あらかじめ予備のディスクを動く状態でつないでおくことがあります。この予備のディスクをホットスペアと呼びます。ホットスペアがあれば、交換用のディスクを用意するのを待たずにリビルドを始められます。
ハードウェアRAIDとソフトウェアRAIDの違い
ハードウェアRAIDとソフトウェアRAIDは、RAIDの処理をどこで行うかが違います。ハードウェアRAIDは、サーバに取り付けたRAIDコントローラという専用の装置が処理します。ソフトウェアRAIDは、サーバのOSが処理します。
LinuxのソフトウェアRAIDは、カーネルに含まれるmdという仕組みが処理します。組むときと管理するときは、mdadmというコマンドを使います。Windowsでは、記憶域スペースという機能で複数のドライブをまとめ、ミラーやパリティで故障に備えます。記憶域スペースは、RAIDの機能をすべて止められるアダプタでしか使えないと、Microsoftの資料に書かれています。
ハードウェアRAIDでは、RAIDの処理と管理をコントローラが受け持ちます。OSからは、RAIDを組んだディスクの集まりが普通のディスクと区別できません。ソフトウェアRAIDでは処理をサーバのCPUが受け持つため、性能はCPUの性能と負荷に左右されます。
その代わり、ソフトウェアRAIDは高価なコントローラが要らないため、費用を抑えられます。Linuxのmdadmには、ディスクが故障と判定されたときにメールで知らせる監視の機能があります。組んだRAIDは、作り直さずに別のLinuxのサーバへ移せます。
RAIDとバックアップの違い
RAID1・5・6・10が備えているのは、ディスクの故障です。これらのRAIDは、書き込みをその場で写しやパリティにも反映させます。誤った上書きや削除も書き込みの一つなので、同じようにすぐ反映されます。
ランサムウェアにファイルを暗号化された場合も同じで、暗号化された内容がそのまま反映されます。RAIDには、前の状態に戻す仕組みがありません。前の状態に戻すには、別の場所に時点ごとのコピーを取っておくバックアップを組み合わせます。バックアップの取り方の違いは、フル・差分・増分バックアップの記事で比べています。
同じ筐体に入れたディスクは、火災や水害、筐体の故障に一緒に巻き込まれます。どこまでデータを戻せればよいかは、BCPとDRの計画で目標として決めます。
クラウドでRAIDを組むとき
クラウドの仮想サーバでも、OSの機能を使えば、複数の仮想ディスクをまとめてRAIDを組めます。AWSのドキュメントは、仮想ディスクのサービスEBSのボリュームについて、RAIDの組み方を説明しています。EBSのボリュームのデータは、もともと同じアベイラビリティゾーン(AZ)の中の複数のサーバに複製されています。
このドキュメントは、1つのボリュームでは足りない性能が必要なときにRAID0を組む方法を挙げています。ボリュームを足すと、その分の読み書きの性能が足されます。ただし、ボリュームを1つ失うと、RAID0全体のデータを失います。
一方で、RAID5とRAID6は推奨していません。パリティの書き込みが読み書きの回数の上限を消費し、RAID0より20〜30%少ない回数しか使えなくなるためです。RAID1も、複数のボリュームに同時に書くため通信の帯域を多く使い、書き込みも速くならないとして推奨していません。クラウドでは、ディスクの故障への備えをサービス側の複製に任せ、RAIDは性能のために使う場面があります。
RAIDと同じくストレージの技術に、NASとSANがあります。NASは、ネットワークにつないで、利用者にファイルを読み書きさせるストレージです。SANは、サーバとストレージの間でデータをやり取りすることを主な目的にしたネットワークです。SANは、ファイルではなくブロック単位の読み書きに使われることが多いです。サーバへのつなぎ方の違いは、NASとSANの記事で比べています。
練習問題(全6問)
正解:6TB
RAID5は、
解説記事:容量の
正解:16TB
RAID6は、
解説記事:容量の
正解:同じ
RAID10は、
解説記事:RAID10の
正解:RAID5
RAID5は、
解説記事:RAID5・RAID6の
正解:0.99
RAID1は、
解説記事:稼働率の
正解:削除の
RAID1は、
解説記事:バックアップとの
選んでから「採点する」を押すと、解説つきで答え合わせができます。
参考にした資料
- SNIA Dictionary(RAID・RAID 0〜6・RAID 10・mirroring・hot spare・NAS・SAN・host based array・controller based arrayの各項目)
- UC Berkeley EECS Technical Report UCB/CSD-87-391(A Case for Redundant Arrays of Inexpensive Disks)
- Red Hat Enterprise Linux 9: Managing storage devices, Managing RAID
- mdadm(8) manual page
- Microsoft サポート:Windows での記憶域スペース
- Microsoft Learn: Deploy Storage Spaces on a stand-alone server
- Amazon EBS User Guide: Amazon EBS and RAID configuration