RAID の故障モデル

RAID の弱点」でかなりショッキングな計算ができてしまったので,調子に乗ってもう少し突っ込んでみたい. が,MTBF をベースにした議論では私の頭では限界があるので,ここでは別の故障モデルを考えてみる.

おそらくこの様な議論は既に誰かがやっているのだろうが,文献には一切当たっていない. というわけで,この議論の信憑性の判断については読者に任せることにする.

RAID での問題点

RAID の弱点」でも書いたように,RAID ボリュームの一部の領域にしかアクセスが無い場合,縮退が発生したときには非アクセス領域に既に故障が発生していて再構築不能となる事態が発生する.

というわけで,今回はその確率について考えてみたいと思う.

モデル

子ボリュームが4の RAID5 を考える.

  V1  V2  V3  V4
┌─┬─┬─┬─┐
│A│B│C│D│アクセス領域    r
├─┼─┼─┼─┤
│ │ │ │ │
│E│F│G│H│非アクセス領域  1 - r
│ │ │ │ │
└─┴─┴─┴─┘
  • 常日頃アクセスするのは全ボリュームに対して r の割合 ( 0 ≦ r ≦ 1 )
  • 日頃はアクセスしない非アクセス領域の割合は 1 - r となる.
  • 上図では A は ボリューム V1 でのアクセス領域,B はボリューム V2 で … H はボリューム V4 での非アクセス領域

故障のしかたであるが

  • 記憶域の一部にアクセスできない,セクタエラーを考える
  • 故障は全記憶領域に対し均等な確率で発生する
    • ある状態での発生確率は記憶領域量に比例することになる

故障の発生のしかたは

  • 故障は1か所ずつ逐次的に発生する
    • 一度に数個発生はしない
  • アクセス領域のアクセス間隔は,故障の発生間隔よりも十分短いこととする
    • つまり,アクセス領域 A, B, C, D のいずれかに1か所の故障が発生すると,その時点で縮退モードに移行する
    • A, B, C, D に故障が2ヶ所発生する場合は無い

かなり大雑把なモデルではあるが,このようなモデルでも使いものにならないような RAID 装置ではダメ出しするしかないだろう.

状態

ある数の故障が発生した後の状態は最終的には次の 3 つのいずれかに落ち着く.

状態
1縮退なし
2縮退発生再構築成功
3再構築失敗

縮退状態のまま使いつづけるようなマネは考慮しない.

故障数が 1 の場合

上図 A or B or C or D に故障が発生した場合は,縮退状態に移行する. E or F or G or H の場合は縮退しない. 縮退した場合はこの時点で故障箇所が切り離されるため,再構築は常に成功する.

状態確率
1縮退なし1 - r
2縮退発生再構築成功r
3再構築失敗0

故障数が 2 の場合

故障数 2 に進むには,まず,1 つめの故障で「縮退なし」の状態である必要がある. つまり,E or F or G or H に故障が発生した場合に限られる.

ここで仮に 1 つめの故障が E に発生したとする. 2 つめの故障が

  • A に発生した場合のみ「縮退・再構築成功」
  • B or C or D に故障が発生した場合は「縮退・再構築失敗」
  • E or F or G or H の場合は「縮退なし」

E→A と故障が発生し,「縮退・再構築成功」となる確率を考えてみる.

  • 1 つめの故障が E に発生する確率は ( 1 - r ) / 4
  • 2 つめの故障が A に発生する確率は r / 4

であるから,この確率は

 1 - r   r
------- --- 
   4     4

となる.

F→B, G→C, H→D と故障した場合も同様であり,これらは独立した事象であるから,故障数 2 で縮退・再構築成功となる確率は上記の確率の 4 倍,つまり

 (1 - r) r
----------- 
     4

となる.

一方,故障数 2 でも「縮退なし」となる場合は

  • 1つめの故障が E or F or G or H
  • 2つめの故障も E or F or G or H

の場合であり,この確率は

( 1 - r )^2

となる.

故障数が 3 の場合

故障数 3 の場合も同様に考えると,この時点で「縮退・再構築成功」となる場合は,故障が

  • E → E → A
  • F → F → B
  • G → G → C
  • H → H → D

の 4 パターンのみである. したがってこの確率は

(1こめがE) x (2こめがE) x (3こめがA) x (同様のパターンが4とおり)
 1 - r   1 - r   r             (1 - r)^2 r 
------- ------- --- x 4   =   ------------
   4       4     4                 4^2

となる.

「縮退なし」となるのは故障が 3 つとも E or F or G or H に発生した場合であるから

( 1 - r )^3

となる.

故障数が n の場合

議論を一般化してみよう.

この時点で「縮退・再構築成功」となる場合は

  • E に n - 1 個の故障 → A
  • F に n - 1 個の故障 → B
  • G に n - 1 個の故障 → C
  • H に n - 1 個の故障 → D

の 4 通りである.

同様にこの確率を計算すると

(E に n - 1 個の故障) x (A に故障) x (同様のパターンが4通り)
 / 1 - r \ ^ (n-1)  r             / 1 - r \ ^ (n-1)
| ------- |        --- x 4   =   | ------- |         r
 \   4   /          4             \   4   /

また,この時点で「縮退なし」である場合は

  • E or F or G or H に n 個の故障

となる場合であるから,この確率は

( 1 - r ) ^ n

となる.

これらの式は,故障数が 1, 2, 3 の場合でも成り立つ.

故障数 → ∞ の場合

故障数 → ∞ の極限を考えてみる. 上記の故障数 n で n → とすればよい.

「縮退・再構築成功」の確率は 0 となり,「縮退なし」の確率も 0 となる.

要するに

縮退しないからといって,どんどん故障を増やしていったらいつかは縮退する

ということであり,考えてみれば当たり前の話である.

「縮退・再構築成功」となる確率

縮退するまで故障を増やしていった場合の「縮退・再構築成功」となる確率を考える.

(故障数 1 で縮退・再構築成功する確率) + (故障数 2 で…) + (故障数 3 で…) + …
     / 1 - r \^1     / 1 - r \^2
r + | ------- | r + | ------- | r + …
     \   4   /       \   4   /

これをΣを使って表すと

 ∞      / 1 - r \^(i-1)
 Σ   r | ------- |
 i=1     \   4   /

となる.

これは

初項 r, 公比 (1-r)/4 の等比数列の和の極限

というものなので,高校の数学の教科書を引っ張り出して公式に当てはめると

   4r
-------
 r + 3

という値になる.

これをグラフにすると,下図のようになる.

raid5_rebuild_success.png

ここでは「縮退なし」の状態は存在しないので,「縮退・再構築成功」の余事象は「縮退・再構築失敗」である. つまり,このグラフの線の上の余白は「縮退・再構築失敗」の確率を表していることになる.

まとめ

ふだんアクセスする領域が少ない RAID5 アレイが縮退した場合,再構築をかけるのは分の悪いバクチのようなものであるということが,定量的に示すことができたと思う.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-02-23 (土) 00:55:07 (4519d)