Bloody Mary - blog

Bloody Mary 別館

RAID 構築 Part.1

先日のケーキバイキングで糖分摂取量が限界値を超えて以来、甘いものが食べられなくなった。正確には食べられないわけではないが、食べたいという欲求が無くなった。どうしよう。

過ぎたるはなお及ばざるが如し

行き過ぎちゃったらオーバーフローしてマイナス値になった、みたいな。

RAID 考察

今年は雪が降るのが遅いようだ。年明けまで滑れそうにない。そうなると正月あたりに暇を持て余すのは分かり切っている。テント張ってワカサギ釣りでもしてようかと思ったが、会社が自宅 PC に個人情報がないか点検しろとかうるせーから、 PC 初期化を兼ねてストレージの再構築を行なうことにした。

ここ何年か使い続けている XP 。不具合が起こったわけでもないから当然 OS の再インストールなんかやるわけはなく、当時から使いっぱなしである。デフラグはアプリが暇を見つけてやってくれるし、気が向くと手動でレジストリのゴミ取りを行なっている。稀にファイル・ドライバ・アプリの整理もやったり、高速化のカスタマイズもしてはいるが、だんだん遅くなっているような気がする。たぶん気のせいではあるまい。

ノート ( 会社の ) に負けるデスクトップなんて個人的にアリエナイ。まあ会社のは Core2 Duo だし、オレのは Pentium4 だから処理系で負けるのはしょうがないにしても、 RAID0 使ってるんだからアプリ起動や WEB サイト見る程度の、ライト使用での使用感で負けて欲しくはない。 RAID0 とメモリ増設の気合を見せて欲しい。

そんな家の PC は兵 (つわもの) の風格が漂ってきた。アルミの PC ケースは蹴飛ばされたり猫に爪とぎされたりして、軍曹の如く傷だらけだ。そのうちパフで綺麗にしてあげようと思いつつ、最近切実にヤバイと感じているのが、 OS フリーズ→再起動コンボが多くなってきたことだ。どうも HDD に不良クラスタがあるようで、その部分にアクセスするとフリーズしているような気がする。

ついにこの時が来たか、軍曹。

250GB の HDD 4 台で RAID0 を組んでいるから、いつかは来ると思っていた。 RAID を知らない人は首を傾げるだろうが、知る人ならば顔を引きつらせること受けあい。何せどれか 1 台でも障害があれば全データが逝ってしまうのだ。 HDD 4 倍のアクセス速度を得られる代わりに、危険度も 4 倍という漢 (オトコ) 仕様。

覚悟はしていた。後悔はしていない。

最低限、重要なデータはネットワークドライブに保存しているし、サイズの大きいファイルはときどき USB ストレージに保存するし、被害があるのは OS とアプリだけだし、クラッシュしたら再インストールすればいいし、問題なし。一切なし。あったとしても伝家の宝刀「まあいいか」で切り抜けられるはずだ。

近日中に行なう予定の RAID 構築に関しては、 RAID0 にする度胸はさすがにない。年をとった証拠だろう。最近は容量が 2TB もの HDD が発売され、 4 台で RAID0 を組んだ日には 8TB になる。それほどのデータが飛んだ日には、 3 日は立ち直れない。

しかもこれほどの大容量になると、どうやってバックアップを取るのか見当もつかない。 DVD-R 1,700 枚分ってどれだけ。 8TB という大容量の使い道が思い浮かばないわけではないが、溜まりに溜まったファイルのバックアップのことを考えると眩暈がしそうだ。

こまめにやれと言う話もちらほら聞こえてくるが、人は、計画的に宿題を終わらせられる人と、夏休みの最終日に顔に縦線を入れている人とに分類されると思う。私がどちらのタイプかはあえて言及しなくてもいいだろう。そもそも別ストレージに退避させることができるなら、そんな大容量は必要ない気もするが。

ちょっと考えてみよう。

RAID の方式

a b c d という 100GB の容量をもつ HDD があるとする。

RAID0

RAID0 は a b c d の HDD でストライプセットA ( 仮想 HDD のようなものを思い描くと分かりやすい ) を構築する。

見かけ上は一つの HDD となった A にデータが書き込まれるときを考える。データは各 HDD の a b c d に分散して書き込まれる。データは並列に 4 台の HDD に同時に書き込まれるため、理論上は 4 倍速 ( 実際はバスの転送速度とかシークの待ち時間とかがボトルネックになってそんなに速くならない ) になる。

前述の通り、 1 台でも HDD がお亡くなりになると全データも逝ってしまうため、故障の確率も 4 倍である。

RAID1

RAID1 は a b c d の HDD でミラーセットA を構築、それぞれの HDD に同じデータを並列に書き込む方式である。

速度は 1 倍、容量は 4 台使用して 1 台分のため、 1/4 となるが、安全面は 4 台が同時に故障しなければ復旧可能となる。

ある期間を通して HDD が故障する確率を 3% とすると、

0.03 * 0.03 * 0.03 * 0.03 = 0.00000081 = 0.000081 %

となり、故障する確率は「HDD 1 台の 3%」の 0.27*10^(-6) 倍になる。つまりとんでもなく故障しにくくなるということ。

※ ちなみに、本ページでは、こういう計算はせず、「データ復旧可能な状態を比較する」ものとする。

RAID0+1

RAID0+1 は a b の HDD でストライプセットA を構築、さらに c d でストライプセットC を構築、 A と C とでミラーリングする方式だ。

仮想 HDD の A と C で RAID1 を組むという考え方である。同じデータが A か C に書き込まれるので、 a b c d のうち、 2 台の HDD が同時に逝ってしまった場合でも、復旧可能なことがある。具体的には「a と b」「c と d」が同時に壊れても OK である。それ以外の組み合わせで 2 台壊れると、ストライプセット A と C が同時に壊れてアウトとなる。

RAID1+0

RAID1+0 は a b の HDD でミラーリングセット A を構築し、さらに c d でミラーリングセット C を構築し、 A と C とで RAID0 のストライピングを行なうという、より安全性を重視した方式である。

A と C で RAID0 を組むので、 A (a と b ) 、 C ( c と d ) が同時に壊れなければデータ復旧が可能である。

例えば a と c が壊れてしまった場合は、残った b と d とでストライピングが行なわれている状態になる。このとき、新しい HDD である a’ と c’ をつなぐと、 a’ は b からデータが復旧され、 c’ は d から復旧が行なわれる。

データが破壊される確率

HDD 単体で 4 台使用する場合を考える。単体使用のときは、 1 台でも壊れるとアウトである。確かに、 1 台壊れても他の 3 台のデータには影響しないが、壊れた HDD に重要データが保存してあると 1 台壊れただけでも致命傷となる。従って、分かりやすいように、 HDD が壊れたときにデータが破壊される確率だけを考えるものとする。さらに、単体使用での指標を 1 として比較する。

以下は HDD が壊れたときに、データ復旧が可能かどうかを○×で表した表である。

壊れたHDD 4台単独使用 RAID0 RAID1 RAID0+1 RAID1+0
全て無事
a × ×
b × ×
c × ×
d × ×
ab × × ×
ac × × ×
ad × × ×
bc × × ×
bd × × ×
cd × × ×
abc × × × ×
abd × × × ×
acd × × × ×
bcd × × × ×
abcd (全部壊れる) × × × × ×
データが破壊される確率 15/16 15/16 1/16 9/16 7/16
データが破壊される確率(%) 93.75% 93.75% 6.25% 56.25% 43.75%
単体使用との比較(指標) 1 1 0.066666667 0.6 0.466666667
安全性 1.00倍 1.00倍 15.00倍 1.67倍 2.14倍

RAID0 では意外なことに、安全性は単体使用と同じ 1 になる。なかなかおもしろいデータだが、単体使用では 1 台壊れても他の HDD データには支障が出ないのに対し、 RAID0 では全データ漏れなくご臨終というスーパーデンジャラス仕様となっている。 RAID0 は、致命傷を負う ( 重要データを失う ) 可能性が単体使用と変わらない、というだけの話であり、残りのデータが無事かどうかまでは考慮していない。

HDD 4 台で RAID1 を組んでいる場合、 3 台まで同時に壊れてもデータは破壊されない。個人的意見を言わせてもらうと、自宅でこんな使い方をしている人はちょっとおかしい…

人のことは気にしないで、 HDD 4 台で RAID1 を組んだ時の安全性は 15 倍になる。

RAID0+1 だと安全性は 1.67 倍となる。

RAID1+0 だと前述の通り RAID0+1 より安全になり、安全性は 2.14 倍になる。

こうしてみると、 4 台で RAID を組むなら RAID1+0 しかあり得ないように思える。

おっと、注文しておいた Western Digital WD10EADS-M2B 1TB が届いたようだ。

早速データを別の HDD に退避させて……8時間後。

試しに RAID の BIOS 画面を見てみよう。

PC を起動して CTRL + F で拡張 BIOS 画面に。 array の種類には「stripe」と「mirror」と「stripe + mirror」がある。あれ、これしか選べないの? てっきり自分で RAID0 や RAID1 を組んでから、それらを組み合わせて RAID0+1 や RAID1+0 にできるのかと思ってたんだけど。

この「stripe + mirror」ってのは RAID0+1 か RAID1+0 のどちらだろう。古いボードだから RAID0+1 だろうなと思いつつネットにつないで PROMISE のメーカーサイトで調べたら、やっぱり RAID0+1 にしか対応していない

何のために表まで作ったんだか。 RAID0+1 のことだけ調べりゃ良かったじゃない。

現状確認は何より重要

Updated: 2012/6/5 火曜日 — 14:49:48

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Bloody Mary - blog © 2008 - 2021