「RAID?なにそれおいしいの?」の編集履歴(バックアップ)一覧はこちら

RAID?なにそれおいしいの? - (2012/06/20 (水) 00:31:26) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

RAID(レイド)とは(Redundant Arrays of Inexpensive (もしくはIndependent) Disks のこと。 複数台の HDD(SSD)をひとつのドライブとして運用するシステムのこと! 今時のマザーボードだったらたいていオンボードの追加機能で RAID が組めるようになっている。説明書読め。 ただこれは CPU 処理なので、CPU に若干負荷がかかる。ほんのちょびっとだけど。 それが嫌な人は RAID ボードというのが市販されている。信頼性、速度、キャッシュなんかの面から考えるとこれ使った方が良いっちゃ良い。でも高い。3万円~ってかんじ。それ以下のもの使うんだったらオンボのでおk。 安い RAID カードは大抵ソフトウェア RAID カードなのでオンボと大差無い。 で、その RAID にはいくつか種類があって使われるのは大体 RAID0,RAID1,RAID5 なんでそれを以下で説明する。 RAIDを組むとOSからはS.M.A.R.T.なんかの情報が直接読めなくなるので、へたしたらHDDが壊れているのに気付かずに使い続けてしまう可能性がある。マザーボードのデバイスドライバ付属CDにRAIDを監視するツールが入ってることがあるので、確認してインストールしてHDDを監視しといたほうがいい。 今の SSD は RAID を組んだ場合 Trim(ファイル削除等で使われなくなった容量を一度リセットして未使用の状態に戻し SSD のパフォーマンス低下を防ぐ機能)が無効になる。たとえば速度目的で SSD 二台の RAID0 を組んだとしても速度低下が起きる場合がある。そのため速度低下の大きい SSD では RAID0 を組まずに Trim を機能させておいた方がパフォーマンス低下が起きにくくなり、結果として RAID0 にした場合より安定した速度を出す事ができる。 ---- #contents ---- *RAID0 同じ容量を持ったドライブ A と B を1つの A+B の容量を持ったドライブとして扱う RAID のこと。ストライピングとか言う。(二台の容量が違う場合は RAID ボリュームのサイズは小さい方の容量 * 2 となる) A と B を結合させてるのでドライブにアクセスする速度は理論上最大 2 倍になる。(書き込んだり読み込んだりするときに両ドライブ同時に書き込んだり読み込んだりできるから) まあ実際は 2 倍なんていかないけどね。それでも 1 台ずつ扱うよりは高速にデータ転送ができる。(ほぼシーケンシャルのみ) ただ、RAID0 で注意するべきは故障率。A と B の故障率が共に n の場合ドライブCが故障する確率は (1-n)(1-n)=1-2n+n^2(n<<1のとき≒1-2n) として単機使用の時と比べて約 2 倍。 ここでは 2 台で説明したけど 3 台でも 4 台でも増やせば増やすほど早くなり(もちろん頭打ちがあるけど)、故障率はあがる(こっちは無限にあがっていくよ!) 更に故障やアレイがぶっ壊れた場合、データを細切れにして二台に書き込む RAID0 は復旧が困難だよ! RAID0 は動画編集の一時保存領域とか、いつデータが消えても困りはしないがとにかくシーケンシャルが欲しい場合に使う。データが消えて困る場合はよりシーケンシャルが高速な SSD とか 15,000rpm の HDD を単体で使った方がずっとマシ。 |HDD1|1|3|5|7|9|11|13|15|…| |HDD2|2|4|6|8|10|12|14|16|~| ---- *JBOD JBOD は RAID0 に似ているが、ストライピングではなくスパニングと呼ばれ、単に複数台の HDD を纏めてひとつのボリュームを作成し、OS 上からひとつの巨大な HDD として認識させる機能。RAID では無いが大抵の RAID チップでサポートされているのでよく目にする。RAID0 が基本的に同じ容量の HDD を複数台用意するのに比べ、こちらは容量が不揃いでも構わない。例えば 80GB、400GB、1TB、2TB の四台で JBOD を組むと単純に全部足して 3480GB のボリュームが作成できる。RAID0 と比べ同時に複数の HDD にアクセスする訳ではないのでシーケンシャル速度は向上せず、RAID0 同様に信頼性は低下する。JBOD はハードウェア・ソフトウェア RAID カードを用いなくとも OS の機能でもスパニングボリュームの作成が可能な場合がある。 小容量の HDD を複数台纏めて大容量のボリュームが作成できるが信頼性も低下するしより大容量の HDD を一台に纏めた方が搭載スペース・消費電力も減ってずっとよい。基本的には、RAID カードに接続しているんだけども単機で使いたい HDD を一台だけで JBOD ボリュームに設定し OS に認識させる以外の使い道は無い。 |HDD1|1|2|3|4|5|6|7|8|…|1000| |HDD2|1001|1002|1003|1004|1005|1006|1007|1008|>|…| ---- *RAID1 RAID1 は最も典型的な RAID といっていい。 ドライブ A と B がある時、A と B の両方に同じデータを書き込む。つまり冗長化。 もちろん使える容量は実ドライブ総容量よりも小さくなる。 1TB の HDD 2 台で RAID1 すると使える容量は 1TB。750GB と 1TB でやると小さい方にあわせるので 750GB。 ただオンボ RAID では RAID0 のように速くはならない。(ハードウェア RAID カードでは同時アクセスを行い読み出しが高速化するものもある) 片方のドライブが故障しても片方が生きている限りデータは復旧可能。 つまり 1/100 の確率で故障するドライブなら 1/10000 の 1 の確率でしかデータは失われない。めちゃくちゃ大切なエロ動画保存にどうぞ。 アレイがぶっ壊れても RAID メンバのどれかひとつが生きていれば完全に復旧できるし、非 RAID の SATA コントローラーに接続しても大抵単体ディスクとしてそのまま認識できるので(つまり他のパソコンに繋いでそのまま認識できるはず)安全性が高い。 但し電源の故障で同時に二台(以上)同時に故障したり、ユーザーの操作によって過ってファイルを削除してしまったりといったケースには対応不可能。バックアップの代わりにはならない事に注意。定期的にディスクの過去のバージョンを保存するには OS 上のシャドウコピー/スナップショットを使え。また電源故障や雷直撃に備えて定期的なバックアップも欠かさずやろう。 書き込み速度が違う、または同じ 2TB 表記でも実際にはメーカーや機種によって僅かに容量が違う事が原因のトラブルを防止する為、基本的に全く同じ型番の HDD を二台(以上)用いるのが望ましいが、全く同じロットの HDD を二台使用した場合壊れるタイミングまでほぼ同じになってしまうので、二台を別々の店で買ったり買う時期をずらしたりしてロットをずらすのが望ましい。 |HDD1|1|2|3|4|5|6|7|8|…|1000| |HDD2|1|2|3|4|5|6|7|8|…|1000| ---- *RAID5 2~4 はどうしたって?俺もよく知らないしそもそも普通使わねーから気にすんな。知りたければggr 3 台以上のドライブで構成する RAID で 1 台だけは壊れちゃっても大丈夫な RAID。 [理屈] 今 n(≧3) 個のドライブから構成されてるとする あるデータ A があったとして、それが n 個のドライブにわたって記述されてるとするだろ? RAID0 基準で考えると n 個の中の 1 個でも故障したらデータは復旧できないよな だが RAID5 は違う。パリティってのが各ドライブに記述されてる。 n 個のうち 1 個が失われた時、手元にあるデータは n-1 個のドライブのデータとパリティだ なんと RAID5 はパリティを元にしてなくなった 1 個のドライブに記述されていたデータを復旧させることができる。 連立方程式とか解いてなくなったデータを求めるらしい すげえ!  RAID5 は上記のように RAID アレイにアクセスするたびに常にパリティ計算・リードモディファイライトを行うのでオンボだとかなり遅くなる上 CPU 負荷が高くなる。ハードウェア RAID カードなら IOP (パリティ計算専用チップ) が乗っているのでアクセスもリビルドも多少マシな速度になる。RAID5 は最低三台から組めるがより台数を増やすことでより高速に (ハードウェア RAID カードなら) なり、台数を増やしてもパリティ用のドライブは一台なので台数を増やせば増やす程ディスクの利用効率が高まる。  RAID5 は RAID1 が搭載容量の半分以下の容量しか使えないのに対して n(RAIDメンバ)-1 の容量、つまり 1TB * 3 で組んだ場合 2TB 使えるので一時期注目され、最近ではオンボでも大抵組めるのだが基本的にオンボではリビルド含めて遅過ぎるし、複数台HDDがぶっ壊れた時の復旧が難しいのでやらない方が良い。また停電等でパリティとデータの不整合が起きるとその後一見正常に見えてもデータが徐々に破壊されるサイレントクラッシュという現象が起きる場合がある。RAID カードにキャッシュが付いている場合は必ず BBU (バッテリバックアップユニット)も装着しよう。っていうか RAID5 やるなら無停電装置買え。ぶっちゃけRAID1 の方がディスクの利用効率は低いが信頼性は高いよ! |HDD1|A1|A2|P3|A4|A5|P6|A7|A8|…|A1000| |HDD2|B1|P2|A3|B4|P5|A6|B7|P8|…|B1000| |HDD3|P1|B2|B3|P4|B5|B6|P7|B8|…|P1000| ---- *RAID6 RAID5 は基本的に同じ HDD 複数台で運用するので、1台故障→他の同時期に導入したのもそろそろ故障するっていう理由も助けて 一個壊れた直後の復旧作業中にもう1個が壊れたりということがままある。いやまじで。かなり泣ける。そんな人のために 2 個まで壊れて OK な RAID6 なるものもあるよ! RAID6 はパリティを二重にする方式で最低 4 台から組める。n(RAIDメンバ数)-2 分の容量となり、4 台 で RAID6 した場合 RAID1 と同じディスクの利用効率 1/2 となるが、RAID 5 同様台数を増やすことで 3/5、2/3、5/7 と利用効率がが高くなる。但しパリティが二重な分パフォーマンスは RAID5 に劣る。サイレントクラッシュの危険性があるのは RAID5 同様。オンボじゃあんまりサポートされてない。データを冗長化したいなら素直に RAID1 を組もう。 |HDD1|A1|A2|P3|Q4|A5|A6|P7|Q8|…|A1000| |HDD2|B1|P2|Q3|A4|B5|P6|Q7|A8|…|B1000| |HDD3|P1|Q2|A3|B4|P5|Q6|A7|B8|…|P1000| |HDD4|Q1|B2|B3|P4|Q5|B6|B7|P8|…|Q1000| ---- *RAIDZ ZFS ファイルシステム上のソフトウェア RAID でこのサイレントクラッシュの問題を完全に回避する RAIDZ なるものが最近登場した。基本的な仕組みは RAID5 同様パリティを用いる方式だが、ストライプ幅可変で常にストライプ全体に書き込みリードモディファイライトが発生しないのでパフォーマンスも改善している。シングルパリティで RAID5 相当の RAIDZ、ダブルパリティで RAID6 相当の RAIDZ2、トリプルパリティの RAIDZ3 等がある。無論 ZFS ファイルシステムが使える Sun Microsystems の Solaris って OS じゃなきゃ使えないけどね! 最近FreeBSDにも取り込まれたので、ZFSはFreeBSDでも使えるよ。 ---- *RAID10,RAID1+0,RAID0+1,その他 各 RAID を組み合わせることもできる。 たとえば RAID1+0 普通は RAID10 とか呼ばれてる RAID1 を組んでいるドライブで RAID0 を組む ちょっと難しいが RAID0+1 とは違うぞ? 何が違うかはよく考えてくれ RAID10 はオンボでもサポートされてる場合があり、RAID1 同様ディスクの利用効率は 1/2 だが RAID5 や 6 より信頼性が高いよ!他に RAID5 や 6 とその他を組み合わせた RAID5+0、5+1、5+5、6+0、6+1、6+6 とかそれ以上のもあるが、かなり本格的なハードウェア RAID カードじゃないと出来ないのであまり気にするな。 ---- *ホットスペア ホットスペアとは、常に通電されているが平時は特にアクセスされないディスクで、上記の RAID5 や RAID6 、または RAID1 等の各種 RAID アレイで使用できるオプションのひとつ。RAID メンバのひとつが故障した際、ホットスペアが無いシステムでは手動でディスクを入れ替えてリビルドとなるが、ホットスペアがある場合は自動的にホットスペアに対してリビルドが行われる。ハードウェア RAID カードの中でもかなり本格的な奴じゃないと対応してない。 ---- *IntelチップセットのMatrix RAID 上の RAID レベルとは全然別次元の話だが、従来の RAID コントローラーと異なり比較的柔軟な RAID が構築できるようになっている。例えば 500GB の HDD 二台で先頭 100GB づつを RAID0 して 200GB のボリュームを作成し、後半 400GB づつは RAID1 でミラーリングするなど。ただ、Intel はドライバの完成度があまり高くない。 [[http://www.intel.com/jp/support/chipsets/imsm/sb/cs-020681.htm]] 一例 ||>|>|>|>|RAID0 アレイ|>|>|>|>|>|RAID1 アレイ| |HDD1|a1|a3|a5|…|a199|b1|b2|b3|b4|…|b400| |HDD2|a2|a4|a6|~|a200|b1|b2|b3|b4|~|b400| ---- **ストライプサイズとパーティションアライメント ストライプサイズはデータを短冊切りにして複数のディスクに記録する RAID0 や RAID5 で設定できる項目で、 何 byte 毎に短冊切りにするかというもの。4/8/16/32/64/128KB… 等の選択肢がある場合が多い。 どのサイズを選ぶかでパフォーマンスが変わる場合があるが、RAID ボリュームに置くパーティションの種類やデータ等の環境によって最適なサイズは変わってくる。 パーティションアライメントは AFT の HDD や SSD でお馴染みだがこれは RAID ボリュームでも行う必要があり、 例えばストライプサイズが 4KB なのにパーティション開始セクタが 63 = 31.5KB だったりするとランダムアクセス性能がかなり悪化する事になる。 Microsoft は殆どのストライプサイズに対応できる 2048 セクタ目 = 1MB をパーティション開始セクタにするよう推奨している。 ---- **RAID に向く HDD と向かない HDD 基本的に遅いドライブは向かない。特に省電力の為に自動的にヘッド退避やスピンダウンする HDD はレスポンスが悪すぎて RAID コントローラーが故障と判断してしまう可能性もある。(WestenDigital WD20EARS とか。)またバッドセクタが発見された場合、単体運用前提の一般向け HDD では最長で数分間セクタの読み取りと代替を試みる。しかしハードウェア RAID カードでは 7~14 秒ディスクから応答が無い場合タイムアウトエラーでディスクを切り離し、RAID アレイ損傷となる。これを防ぐ為に RAID 前提のエンタープライズ向けモデルでは各社 TLER、ERC、CCTL 等の名称でセクタ回復を試みる時間を制限する機能を設けている。大体 7 秒以下だが更に短く設定できることもある。この秒数は Linux のコマンドである smartctl、DOS 上で動作する HDAT2、WD のみに対応した WDTLER 等のツールで変更出来、一般向け HDD でもその機能を持っているのに無効になっているだけの場合はこれらのツールで有効にしたりできる。 物理セクタが 4KB な AFT の HDD もこれまた向かない。物理セクタとストライプサイズとパーティションアライメントを全て合わせないと遅くなるので面倒。全部合わせたとしても RAID コントローラーは 1 セクタ 512byte だという前提で動作するものが殆どと思われるのでやっぱり遅くなる。各社のエンタープライズ向けグレードの HDD が軒並み非 AFT なのはそういう理由だろう。 また RAID を組むとなると自動的に一台の PC に複数台の HDD を搭載することになり振動が多くなる。なので振動が多い環境に対応しているエンタープライズ向けのグレードのものが望ましい。(WestenDigital では RE シリーズ、HGST では Ultrastar シリーズとか。)振動補正機能を備えているものや、スピンドルが両面から固定されているものが多い。 その他、エンタープライズ向け HDD は出荷時のテストが厳重に行われており初期不良が少ないことが期待できる。 ---- **RAID ボリュームを構成してる HDD の SMART って読めんの? 基本的には期待するな。HDD・RAID コントローラー(のファームウェアとドライバ)が共に SMART に対応している上で、使用している RAID コントローラー(のドライバ)に対応した SMART 取得ツールを使えば読める場合もある。 ClystalDiskInfo 3.10.0 対応 RAID コントローラー(RAID ボリュームの内一台のみ) -Promise Ultra100 TX2 -VIA VT6421 -Silicon Image SiI0680・3114・3132・3512 -ATI SB400 -ALi M5229 Hard Disk Sentinel (商用ソフト) 対応 RAID コントローラー -[[http://www.hdsentinel.com/compatibility_disk_controllers.php]] Intelli-SMART (商用ソフト) -RAID にも対応しているとされている。デモ版有り。 SCSI (非RAID)の場合は HDD Scan で一部読める場合がある。バージョンによって読めたり読めなかったりするので色々なバージョンを試すこと。 [[Intel Rapid Storage Technoligy は SMART 非対応。>http://www.intel.com/jp/support/chipsets/imsm/sb/cs-015002.htm]] ---- **RAID 組んでた HDD を別の RAID カードに接続したら使える? 無理です。RAID の実装はメーカーによって様々で互換性はありません。RAID ボリュームを組むと RAID コントローラーは HDD に管理情報 (例えばこの HDD はポート 2 に繋がったストライピングボリュームの一部で…とか) を書き込むが、この管理情報ひとつとっても書き込む位置 (セクタ 1~62 とか、あるいはディスク末尾とか) も違えば書き方も違う。ストライピングの場合もストライプサイズも色々。だから別の RAID コントローラーに繋いでも認識されないし、下手したら繋いだだけで今のデータが消えます。RAID カードやマザーを乗り換える時は RAID ボリュームではない HDD にデータをバックアップしましょう。 ---- **RAID1 で片方の HDD 抜いてまっさらな HDD 突っ込んだら勝手にリビルドするからバックアップにいいよね 基本的にやらない方がいい。まっさらな HDD を突っ込んだ後、操作ミスやアホコントローラーだとまっさらな HDD のデータを RAID1 の片割れにコピー(つまりデータが消える)してしまったり、再度 RAID1 の片割れを突っ込んだ時に正常に認識してくれない場合もある。 同様の理由で既にデータが入っている HDD と同じ容量の HDD を買ってきて RAID1 を組んだら全データが消えることもある。RAID を組むときは既存のデータはバックアップした上でやろう。つか、RAID コントローラーによって挙動は様々なのでマニュアルを読んだり不要なデータを突っ込んでわざとアレイ壊して復旧の予行演習くらいしよう。 ----
RAID(レイド)とは(Redundant Arrays of Inexpensive (もしくはIndependent) Disks のこと。 複数台の HDD(SSD)をひとつのドライブとして運用するシステムのこと! 今時のマザーボードだったらたいていオンボードの追加機能で RAID が組めるようになっている。説明書読め。 ただこれは CPU 処理なので、CPU に若干負荷がかかる。ほんのちょびっとだけど。 それが嫌な人は RAID ボードというのが市販されている。信頼性、速度、キャッシュなんかの面から考えるとこれ使った方が良いっちゃ良い。でも高い。3万円~ってかんじ。それ以下のもの使うんだったらオンボのでおk。 安い RAID カードは大抵ソフトウェア RAID カードなのでオンボと大差無い。 で、その RAID にはいくつか種類があって使われるのは大体 RAID0,RAID1,RAID5 なんでそれを以下で説明する。 RAIDを組むとOSからはS.M.A.R.T.なんかの情報が直接読めなくなるので、へたしたらHDDが壊れているのに気付かずに使い続けてしまう可能性がある。マザーボードのデバイスドライバ付属CDにRAIDを監視するツールが入ってることがあるので、確認してインストールしてHDDを監視しといたほうがいい。 今の SSD は RAID を組んだ場合 Trim(ファイル削除等で使われなくなった容量を一度リセットして未使用の状態に戻し SSD のパフォーマンス低下を防ぐ機能)が無効になる。たとえば速度目的で SSD 二台の RAID0 を組んだとしても速度低下が起きる場合がある。そのため速度低下の大きい SSD では RAID0 を組まずに Trim を機能させておいた方がパフォーマンス低下が起きにくくなり、結果として RAID0 にした場合より安定した速度を出す事ができる。 ---- #contents ---- *RAID0 同じ容量を持ったドライブ A と B を1つの A+B の容量を持ったドライブとして扱う RAID のこと。ストライピングとか言う(二台の容量が違う場合は RAID ボリュームのサイズは小さい方の容量 * 2 となる)。 A と B を結合させてるのでドライブにアクセスする速度は理論上最大 2 倍になる(要するに1つのデータを2人で分担して書き込んでいると思ってもらえばいい)。 まあ実際は 2 倍なんていかないけどね。それでも 1 台ずつ扱うよりは高速にデータ転送ができる。(ほぼシーケンシャルのみ) ただ、RAID0 で注意するべきは故障率。A と B の故障率が共に n の場合ドライブCが故障する確率は (1-n)(1-n)=1-2n+n^2(n<<1のとき≒1-2n) として単機使用の時と比べて約 2 倍。 ここでは 2 台で説明したけど 3 台でも 4 台でも増やせば増やすほど早くなり(もちろん頭打ちがあるけど)、故障率はあがる(こっちは無限にあがっていくよ!) 更に故障やアレイがぶっ壊れた場合、データを細切れにして二台に書き込む RAID0 は復旧が困難だよ! RAID0 は動画編集の一時保存領域とか、いつデータが消えても困りはしないがとにかくシーケンシャルが欲しい場合に使う。データが消えて困る場合はよりシーケンシャルが高速な SSD とか 15,000rpm の HDD を単体で使った方がずっとマシ。 |HDD1|1|3|5|7|9|11|13|15|…| |HDD2|2|4|6|8|10|12|14|16|~| ---- *JBOD JBOD は RAID0 に似ているが、ストライピングではなくスパニングと呼ばれ、単に複数台の HDD をくっつけて1つのボリュームを作成し、OS 上からひとつの巨大な HDD として認識させる機能。RAID では無いが大抵の RAID チップでサポートされているのでよく目にする。RAID0 が基本的に同じ容量の HDD を複数台用意するのに比べ、こちらは容量が不揃いでも構わない。例えば 80GB、400GB、1TB、2TB の四台で JBOD を組むと単純に全部足して 3480GB のボリュームが作成できる。RAID0 と比べ同時に複数の HDD にアクセスする訳ではないのでシーケンシャル速度は向上せず、RAID0 同様に信頼性は低下する。JBOD はハードウェア・ソフトウェア RAID カードを用いなくとも OS の機能でもスパニングボリュームの作成が可能な場合がある。 小容量の HDD を複数台纏めて大容量のボリュームが作成できるが信頼性も低下するしより大容量の HDD を一台に纏めた方が搭載スペース・消費電力も減ってずっとよい。基本的には、RAID カードに接続しているんだけども単機で使いたい HDD を一台だけで JBOD ボリュームに設定し OS に認識させる以外の使い道は無い。 |HDD1|1|2|3|4|5|6|7|8|…|1000| |HDD2|1001|1002|1003|1004|1005|1006|1007|1008|>|…| ---- *RAID1 RAID1 は最も典型的な RAID といっていい。 ドライブ A と B がある時、A と B の両方に同じデータを書き込む。つまり冗長化というか、常にコピーを取っている状態と思ってもらえばいい。 もちろん使える容量は実ドライブ総容量よりも小さくなる。1TB の HDD 2 台で RAID1 すると使える容量は 1TB。750GB と 1TB でやると小さい方にあわせるので 750GBになる。 ただオンボ RAID1 では RAID0 のように速くはならない(たっかいハードウェア RAID カードでは同時アクセスを行い読み出しが高速化するものもある)。 片方のドライブが故障しても片方が生きている限りデータは復旧可能。 つまり 1/100 の確率で故障するドライブなら 1/10000 の 1 の確率でしかデータは失われない。めちゃくちゃ大切なヌけるエロ動画保存にどうぞ。 アレイがぶっ壊れても RAID メンバのどれかひとつが生きていれば完全に復旧できるし、非 RAID の SATA コントローラーに接続しても大抵単体ディスクとしてそのまま認識できるので(つまり他のパソコンに繋いでそのまま認識できるはず)安全性が高い。 但し電源の故障で同時に二台(以上)同時に故障したり、ユーザーの操作によって過ってファイルを削除してしまったりといったケースには対応不可能。バックアップの代わりにはならない事に注意。定期的にディスクの過去のバージョンを保存するには OS 上のシャドウコピー/スナップショットを使え。また電源故障や雷直撃に備えて定期的なバックアップも欠かさずやろう。 書き込み速度が違う、または同じ 2TB 表記でも実際にはメーカーや機種によって僅かに容量が違う事が原因のトラブルを防止する為、基本的に全く同じ型番の HDD を二台(以上)用いるのが望ましいが、全く同じロットの HDD を二台使用した場合壊れるタイミングまでほぼ同じになってしまうので、二台を別々の店で買ったり買う時期をずらしたりしてロットをずらすのが望ましい。 |HDD1|1|2|3|4|5|6|7|8|…|1000| |HDD2|1|2|3|4|5|6|7|8|…|1000| ---- *RAID5 2~4 はどうしたって?俺もよく知らないしそもそも普通使わねーから気にすんな。知りたければggr 3 台以上のドライブで構成する RAID で 1 台だけは壊れちゃっても大丈夫な RAID。 [理屈] 今 n(≧3) 個のドライブから構成されてるとする あるデータ A があったとして、それが n 個のドライブにわたって記述されてるとするだろ? RAID0 基準で考えると n 個の中の 1 個でも故障したらデータは復旧できないよな だが RAID5 は違う。パリティってのが各ドライブに記述されてる。 n 個のうち 1 個が失われた時、手元にあるデータは n-1 個のドライブのデータとパリティだ なんと RAID5 はパリティを元にしてなくなった 1 個のドライブに記述されていたデータを復旧させることができる。 連立方程式とか解いてなくなったデータを求めるらしい すげえ!  RAID5 は上記のように RAID アレイにアクセスするたびに常にパリティ計算・リードモディファイライトを行うのでオンボだとかなり遅くなる上 CPU 負荷が高くなる。ハードウェア RAID カードなら IOP (パリティ計算専用チップ) が乗っているのでアクセスもリビルドも多少マシな速度になる。RAID5 は最低三台から組めるがより台数を増やすことでより高速に (ハードウェア RAID カードなら) なり、台数を増やしてもパリティ用のドライブは一台なので台数を増やせば増やす程ディスクの利用効率が高まる。  RAID5 は RAID1 が搭載容量の半分以下の容量しか使えないのに対して n(RAIDメンバ)-1 の容量、つまり 1TB * 3 で組んだ場合 2TB 使えるので一時期注目され、最近ではオンボでも大抵組めるのだが基本的にオンボではリビルド含めて遅過ぎるし、複数台HDDがぶっ壊れた時の復旧が難しいのでやらない方が良い。また停電等でパリティとデータの不整合が起きるとその後一見正常に見えてもデータが徐々に破壊されるサイレントクラッシュという現象が起きる場合がある。RAID カードにキャッシュが付いている場合は必ず BBU (バッテリバックアップユニット)も装着しよう。っていうか RAID5 やるなら無停電装置買え。ぶっちゃけRAID1 の方がディスクの利用効率は低いが信頼性は高いよ! |HDD1|A1|A2|P3|A4|A5|P6|A7|A8|…|A1000| |HDD2|B1|P2|A3|B4|P5|A6|B7|P8|…|B1000| |HDD3|P1|B2|B3|P4|B5|B6|P7|B8|…|P1000| ---- *RAID6 RAID5 は基本的に同じ HDD 複数台で運用するので、1台故障→他の同時期に導入したのもそろそろ故障するっていう理由も助けて 一個壊れた直後の復旧作業中にもう1個が壊れたりということがままある。いやまじで。かなり泣ける。そんな人のために 2 個まで壊れて OK な RAID6 なるものもあるよ! RAID6 はパリティを二重にする方式で最低 4 台から組める。n(RAIDメンバ数)-2 分の容量となり、4 台 で RAID6 した場合 RAID1 と同じディスクの利用効率 1/2 となるが、RAID 5 同様台数を増やすことで 3/5、2/3、5/7 と利用効率がが高くなる。但しパリティが二重な分パフォーマンスは RAID5 に劣る。サイレントクラッシュの危険性があるのは RAID5 同様。オンボじゃあんまりサポートされてない。データを冗長化したいなら素直に RAID1 を組もう。 |HDD1|A1|A2|P3|Q4|A5|A6|P7|Q8|…|A1000| |HDD2|B1|P2|Q3|A4|B5|P6|Q7|A8|…|B1000| |HDD3|P1|Q2|A3|B4|P5|Q6|A7|B8|…|P1000| |HDD4|Q1|B2|B3|P4|Q5|B6|B7|P8|…|Q1000| ---- *RAIDZ ZFS ファイルシステム上のソフトウェア RAID でこのサイレントクラッシュの問題を完全に回避する RAIDZ なるものが最近登場した。基本的な仕組みは RAID5 同様パリティを用いる方式だが、ストライプ幅可変で常にストライプ全体に書き込みリードモディファイライトが発生しないのでパフォーマンスも改善している。シングルパリティで RAID5 相当の RAIDZ、ダブルパリティで RAID6 相当の RAIDZ2、トリプルパリティの RAIDZ3 等がある。無論 ZFS ファイルシステムが使える Sun Microsystems の Solaris って OS じゃなきゃ使えないけどね! 最近FreeBSDにも取り込まれたので、ZFSはFreeBSDでも使えるよ。 ---- *RAID10,RAID1+0,RAID0+1,その他 各 RAID を組み合わせることもできる。 たとえば RAID1+0 普通は RAID10 とか呼ばれてる RAID1 を組んでいるドライブで RAID0 を組む ちょっと難しいが RAID0+1 とは違うぞ? 何が違うかはよく考えてくれ RAID10 はオンボでもサポートされてる場合があり、RAID1 同様ディスクの利用効率は 1/2 だが RAID5 や 6 より信頼性が高いよ!他に RAID5 や 6 とその他を組み合わせた RAID5+0、5+1、5+5、6+0、6+1、6+6 とかそれ以上のもあるが、かなり本格的なハードウェア RAID カードじゃないと出来ないのであまり気にするな。 ---- *ホットスペア ホットスペアとは、常に通電されているが平時は特にアクセスされないディスクで、上記の RAID5 や RAID6 、または RAID1 等の各種 RAID アレイで使用できるオプションのひとつ。RAID メンバのひとつが故障した際、ホットスペアが無いシステムでは手動でディスクを入れ替えてリビルドとなるが、ホットスペアがある場合は自動的にホットスペアに対してリビルドが行われる。ハードウェア RAID カードの中でもかなり本格的な奴じゃないと対応してない。 ---- *IntelチップセットのMatrix RAID 上の RAID レベルとは全然別次元の話だが、従来の RAID コントローラーと異なり比較的柔軟な RAID が構築できるようになっている。例えば 500GB の HDD 二台で先頭 100GB づつを RAID0 して 200GB のボリュームを作成し、後半 400GB づつは RAID1 でミラーリングするなど。ただ、Intel はドライバの完成度があまり高くない。 [[http://www.intel.com/jp/support/chipsets/imsm/sb/cs-020681.htm]] 一例 ||>|>|>|>|RAID0 アレイ|>|>|>|>|>|RAID1 アレイ| |HDD1|a1|a3|a5|…|a199|b1|b2|b3|b4|…|b400| |HDD2|a2|a4|a6|~|a200|b1|b2|b3|b4|~|b400| ---- **ストライプサイズとパーティションアライメント ストライプサイズはデータを短冊切りにして複数のディスクに記録する RAID0 や RAID5 で設定できる項目で、 何 byte 毎に短冊切りにするかというもの。4/8/16/32/64/128KB… 等の選択肢がある場合が多い。 どのサイズを選ぶかでパフォーマンスが変わる場合があるが、RAID ボリュームに置くパーティションの種類やデータ等の環境によって最適なサイズは変わってくる。 パーティションアライメントは AFT の HDD や SSD でお馴染みだがこれは RAID ボリュームでも行う必要があり、 例えばストライプサイズが 4KB なのにパーティション開始セクタが 63 = 31.5KB だったりするとランダムアクセス性能がかなり悪化する事になる。 Microsoft は殆どのストライプサイズに対応できる 2048 セクタ目 = 1MB をパーティション開始セクタにするよう推奨している。 ---- **RAID に向く HDD と向かない HDD 基本的に遅いドライブは向かない。特に省電力の為に自動的にヘッド退避やスピンダウンする HDD はレスポンスが悪すぎて RAID コントローラーが故障と判断してしまう可能性もある。(WestenDigital WD20EARS とか。)またバッドセクタが発見された場合、単体運用前提の一般向け HDD では最長で数分間セクタの読み取りと代替を試みる。しかしハードウェア RAID カードでは 7~14 秒ディスクから応答が無い場合タイムアウトエラーでディスクを切り離し、RAID アレイ損傷となる。これを防ぐ為に RAID 前提のエンタープライズ向けモデルでは各社 TLER、ERC、CCTL 等の名称でセクタ回復を試みる時間を制限する機能を設けている。大体 7 秒以下だが更に短く設定できることもある。この秒数は Linux のコマンドである smartctl、DOS 上で動作する HDAT2、WD のみに対応した WDTLER 等のツールで変更出来、一般向け HDD でもその機能を持っているのに無効になっているだけの場合はこれらのツールで有効にしたりできる。 物理セクタが 4KB な AFT の HDD もこれまた向かない。物理セクタとストライプサイズとパーティションアライメントを全て合わせないと遅くなるので面倒。全部合わせたとしても RAID コントローラーは 1 セクタ 512byte だという前提で動作するものが殆どと思われるのでやっぱり遅くなる。各社のエンタープライズ向けグレードの HDD が軒並み非 AFT なのはそういう理由だろう。 また RAID を組むとなると自動的に一台の PC に複数台の HDD を搭載することになり振動が多くなる。なので振動が多い環境に対応しているエンタープライズ向けのグレードのものが望ましい。(WestenDigital では RE シリーズ、HGST では Ultrastar シリーズとか。)振動補正機能を備えているものや、スピンドルが両面から固定されているものが多い。 その他、エンタープライズ向け HDD は出荷時のテストが厳重に行われており初期不良が少ないことが期待できる。 ---- **RAID ボリュームを構成してる HDD の SMART って読めんの? 基本的には期待するな。HDD・RAID コントローラー(のファームウェアとドライバ)が共に SMART に対応している上で、使用している RAID コントローラー(のドライバ)に対応した SMART 取得ツールを使えば読める場合もある。 ClystalDiskInfo 3.10.0 対応 RAID コントローラー(RAID ボリュームの内一台のみ) -Promise Ultra100 TX2 -VIA VT6421 -Silicon Image SiI0680・3114・3132・3512 -ATI SB400 -ALi M5229 Hard Disk Sentinel (商用ソフト) 対応 RAID コントローラー -[[http://www.hdsentinel.com/compatibility_disk_controllers.php]] Intelli-SMART (商用ソフト) -RAID にも対応しているとされている。デモ版有り。 SCSI (非RAID)の場合は HDD Scan で一部読める場合がある。バージョンによって読めたり読めなかったりするので色々なバージョンを試すこと。 [[Intel Rapid Storage Technoligy は SMART 非対応。>http://www.intel.com/jp/support/chipsets/imsm/sb/cs-015002.htm]] ---- **RAID 組んでた HDD を別の RAID カードに接続したら使える? 無理です。RAID の実装はメーカーによって様々で互換性はありません。RAID ボリュームを組むと RAID コントローラーは HDD に管理情報 (例えばこの HDD はポート 2 に繋がったストライピングボリュームの一部で…とか) を書き込むが、この管理情報ひとつとっても書き込む位置 (セクタ 1~62 とか、あるいはディスク末尾とか) も違えば書き方も違う。ストライピングの場合もストライプサイズも色々。だから別の RAID コントローラーに繋いでも認識されないし、下手したら繋いだだけで今のデータが消えます。RAID カードやマザーを乗り換える時は RAID ボリュームではない HDD にデータをバックアップしましょう。 ---- **RAID1 で片方の HDD 抜いてまっさらな HDD 突っ込んだら勝手にリビルドするからバックアップにいいよね 基本的にやらない方がいい。まっさらな HDD を突っ込んだ後、操作ミスやアホコントローラーだとまっさらな HDD のデータを RAID1 の片割れにコピー(つまりデータが消える)してしまったり、再度 RAID1 の片割れを突っ込んだ時に正常に認識してくれない場合もある。 同様の理由で既にデータが入っている HDD と同じ容量の HDD を買ってきて RAID1 を組んだら全データが消えることもある。RAID を組むときは既存のデータはバックアップした上でやろう。つか、RAID コントローラーによって挙動は様々なのでマニュアルを読んだり不要なデータを突っ込んでわざとアレイ壊して復旧の予行演習くらいしよう。 ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
記事メニュー
目安箱バナー