テクノロジ

RAIDの稼働率や公式の導出方法、考え方を徹底解説

RAIDの稼働率や稼働率を求める公式の導出方法を解説していきます。

基本情報や応用情報などの情報処理技術者試験でよく出題される問題です。たとえ資格勉強をしていなくても、エンジニアや将来的に技術者を目指している方は、RAIDの種類ごとの稼働率の求め方・考え方はぜひ知っておきたいところです。

RAIDとは?

RAIDとは、複数台のハードディスクを組み合わせることで、仮想的な1台のハードディスクと見なす技術です。これによって冗長性を向上するので、RAIDの組み方によっては本来よりも記憶可能な容量は減る一方で、信頼性や可用性を大幅に高めることができます。したがって、万が一にハードディスクのどれかが故障したとしても、データを復旧させることができます。

RAIDごとの稼働率、公式の導出方法、考え方

この記事ではRAIDごとの稼働率やその導出方法、導出するための考え方を解説していきます。各RAIDの定義については、参考書やその他の記事を参考にしてください。(インタネット上に溢れています)

RAID0

RAID0は、ストライピングとも呼ばれる構成方法で、データをブロック単位に分割して複数のハードディスクに分散して保存します。どれか一つでも故障すると、稼働しなくなります。

したがって、RAID0の稼働率は以下のように表されます(2台のハードディスクで構成した場合)

両方が同時に稼働する確率を求めるだけなので、これは簡単ですね。

例えば1台のハードディスクの稼働率が 0.9(90%)とすると、2台のハードディスクを使ってRAID0のディスクアレイを構成した場合の稼働率は 0.9×0.9=0.81(81%)となります。

RAID1

RAID1はミラーリンクとも呼ばれる構成方法で、同じデータを複数のハードディスクに保存します。したがって2台で構成する場合、どれか1台が故障しても稼働し続けることができます。

RAID1は以下のように表されます。

ここでポイントなのは、ディスクアレイの稼働率を求める前に、まずディスクアレイの故障率を求めるところです。

稼働率は1-故障率で表されます(稼働率が0.9=90%なら、故障率は0.1=10%)。このことを利用して、求めやすい故障率から求めます。

後ほど説明する高校数学の「順列・組み合わせ」を使えば、ディスクアレイの稼働率を直接求めることもできます。

RAID2

RAID2は、ハミングコードという仕組みを利用した構成方法です。しかしながらこの構成方法は、データ保存用に2台のハードディスクと修正用に3台のハードディスクが必要です。

したがって、最低でも5台が必要になるので、現在ではあまり使われていません。資格試験などでも出題されることはないと思われますので、ここでは省略します。

RAID3 / RAID4 / RAID5

RAID3、RAID4、RAID5は以下のように表されます。

これらのケースでは、全部で3台のハードディスクがあるうち、2台以上のハードディスクが故障しなければ稼働できるので、

  • 3台全てが稼働している確率
  • 1台は故障して、残り2台が稼働している確率

を合わせたものが、ディスクアレイの稼働率になります。

注意しなければいけないのは「1台は故障して、残り2台が稼働している確率」を求める部分です。

なんとなく「R×R×(1-R)」で求められそうですが、3台のハードディスクの名前をA、B、Cとすると、

  1. Aが故障して、BとCが稼働しているケース
  2. Bが故障して、AとCが稼働しているケース
  3. Cが故障して、AとBが稼働しているケース

の3パターンがあるので、「R×R×(1-R)」ではなく3倍した「3×R×R×(1-R)」となります。

ちなみ補足ですが、順列・組み合わせの考え方を使えば、RAID0、RAID1についても同じように計算することができます。理系の方や数字に強い方はこの考え方のほうが計算しやすいと思います。

RAID6

RAID6はRAID5をさらに安全にしたもので、最低で4台のハードディスクが必要になりますが、2台までなら故障しても稼働し続けることができます。

稼働率を求めるためには、計算が非常に複雑になるので、高校数学の組み合わせの考え方を利用します。とはいってもここまで理解する必要はないと思いますので、参考程度で良いでしょう。

RAID6は以下のように表されます。(4台で構成する場合)

RAID01(RAID0+1)

RAID01(RAID0+1)はRAID0をミラーリング(RAID1)したものです。

稼働率は「RAID0で構成されたディスクアレイを1つの仮想的なハードディスクと見なして、その仮想的なハードディスクを使ってRAID1を構成する」というふうに考えます。

「RAID0で構成されたディスクアレイを1つの仮想的なハードディスク」の稼働率は、先ほどのRAID0で求めた通りなので、それをRAID1の稼働率の公式に代入すれば良いだけです。

したがって、RAID01は以下のように表されます。

RAID10(RAID1+0)

RAID10(RAID1+0)はRAID1をストライピング(RAID0)したものです。

RAID01の考え方と同様に、稼働率は「RAID1で構成されたディスクアレイを1つの仮想的なハードディスクと見なして、その仮想的なハードディスクを使ってRAID0を構成する」というふうに考えます。

したがって、RAID10は以下のように表されます。

まとめ

最後にRAIDの種類ごとの稼働率の公式をまとめると、以下のようになります。

例えば1つのハードディスクの稼働率を0.9(90%)とした場合は、

  • RAID0の稼働率 = 0.81(81%)
  • RAID1の稼働率 = 0.99(99%)
  • RAID3,4,5の稼働率 = 0.972(97.2%)
  • RAID6の稼働率 = 0.9963(99.63%)

となります。

1台のハードディスクを別々に動かすよりも、RAIDを組んだほうが稼働率が大幅に上がることがわかりますね。