• ベストアンサー

RAID5が理解できない(理論です)

基本情報の勉強中です。 RAIDに関しては余り詳しく突っ込んだ問題は出ないため、 RAID0のストライピング、RAID1のミラーリングぐらいは理解していたつもりなんですが、 RAID5は、「パリティだ」ぐらいにいいかげんにしか知りませんでした。 そこでちょっと調べたんですが、どういうことかどんどんわからなくなってきました。 (1)HDD1台分の容量が減るということ。 パリティも分散されるんですよね?? はじめはパリティように1台使うといわれて、ふむふむ と思っていたんですが、分散記録であれば、1台分丸まる減らなくても、パリティ容量分減るだけなのでは・・・??? それともパリティとはそんなに容量が大きいのでしょうか? HDD3台のときは1台分、4台のときも1台分・・・?? パリティの容量が減るのは何故・・・??? (2)HDD1台が壊れても完全である。 例えば3台だとしたら、 データA、データB、パリティ をそれぞれに書き込みますよね? このときデータBの入ったHDDがこわれた場合、 パリティで復旧しますよね?? データAの場合も同じ・・・。 これって逆にパリティだけでデータA、データBの両方のデータになりうるってことでしょうか? つまりは安全性を無視したら、パリティHDDだけで、通常の2倍の容量を実現できる・・・?????? それとも故障といっても、ちょっと壊れかけ(一部失われたとか?)を想定して「故障」といっているのでしょうか?? とんちんかんな事を聞いているかもしれませんが、 何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#20957
noname#20957
回答No.2

パリティの考え方に関して ブロック長が8bitで4台の場合、データ8bitx3とパリティ8bit(データ8bitx3のXOR演算結果)を4台に書き込むため、 最終的にHD台数-1のデータを格納できますよ、という話。 「パリティと残ったデータから失ったデータを復旧する」のです。 残存データとパリティを使って演算しなければ復号は不可能ですよ。 実際に4台想定でパリティ演算してみれば早いですよw

azicyan
質問者

お礼

>データ8bitx3のXOR演算結果 ああーーー、なるほどーーー(^o^) そう言うことだったんですね! >「パリティと残ったデータから失ったデータを復旧する」 この点をちょっと読み違えていました。A,BのデータでBが壊れた場合、Bの中に残ったデータを使うのかと・・・。 でも壊れたら、データ残るのかな??? なんて考えてしまいました。 わかりました。助かりました!

その他の回答 (6)

回答No.7

ちなみにRAIDに関して知識が増えたと思いますので ここいらへんでカキコします。 RAID5では仕様上の欠点である同時に2台以上の HDDが壊れると、復旧どころかファイルシステムが 壊れます。 運用には十分注意してください。

azicyan
質問者

お礼

!!!???!? やはり! ちょっと違和感があったんですよ。 RAID0がストライピングで、分散記録する。 パフォーマンスはあがるが、分散記録なので1台がクラッシュしたらすべてのデータがだめになる・・・。 RAID1はミラーリングだからまた違いますけど、 RAID5になるとまた分散記録するんだ・・・ん・・・? という違和感がありました。 まさにデメリット!ですね!! とてもよくわかりました! 結局は安全性を考えればミラーリングが良いということですね。 ありがとうございました!

  • i-q
  • ベストアンサー率28% (971/3407)
回答No.6

 オンボ-ドのRAID機能はRAID5には対応していません、RAIDカードも対応していないものもありますから注意してほしいです。 それとこれは恥ずかしいことですが、当時RAIDカードを買ってきて付けようとしたら、フルサイズ(奥行約31cm )というとても大きなカードでケースには入らなかったです・・・。ケースを買い換える予定はありましたがRAIDが稼動したのはそれから1ヶ月後でした。 今は熱や騒音、休止モードやスタンバイに対応していないことから使用していませんが、自分もお金がたまったら、また挑戦したいと思っています。  下記URLにRAID5対応カードが載ってますが、別にSDRAMメモリ(256MBまで)をつける必要があります。他の製品にはメモリがボード上に搭載されているものもあり、RAID5にはキャッシュが必要でカードの大きさにも注意が必要です。

参考URL:
http://jp.promise.com/product/card_detail_jap.asp?product_id=176#
azicyan
質問者

お礼

体験談をありがとうございます。 そうたやすく導入できるわけではないのですね。 >熱や騒音、休止モードやスタンバイに対応していないことから ムムム。そうなんですね・・・ 僕はやらないと思います(爆 >別にSDRAMメモリ(256MBまで)をつける必要があります うーむ。かなり敷居は高いのですね。 知識として覚えておきます。 とても参考になりました。 ありがとうございました!!!

  • i-q
  • ベストアンサー率28% (971/3407)
回答No.5

実際RAID5はすごいですよ。仕組みはもうつかめたと思いますが。自分はRAID5を実際に使っていたので実感しました 。  導入前は漠然とHDDが壊れたら直してくれるんだろうなと思っていましたが、そうではなくデータを常に監視して一部でも壊れてたら直してくれるんです。HDDが100GBや200GBになると、BMP、JPEGなどの画像の色がおかしくなっていたり、壊れて開けなくなる動画などのファイルが発生しますが、RAID5ではそれが起こりません。  実際にファイルが壊れると、起動中でもRAIDボード上のスピーカからビープ音が鳴り復旧中であることを知らせます。復旧中でもHDDにはアクセス可能です。

azicyan
質問者

お礼

そうなんですね! なんとなく仕組みを理解し始めると、 これっていい!!と思うようになり、 自分でも使ってみたいです(*^_^*) で、昨日ぼんやりパーツショップを見ていたら RAID機能付きというのが結構ありました。 RAID5が通常付いているんでしょうか・・・

noname#6829
noname#6829
回答No.4

ちょっと初歩的なアプローチで考えてみましょう(^^ パリティ(偶奇性)というのが、ビットデータの検証の手段のひとつとしてよく登場します。これは、決まったビット数のデータを足し合わせた結果の最小桁(1か0のどちらかですね)に対し、それにさらに加えた結果が常に「ある値(0とか1とか決めておきます)」になるように調整する1ビットの値 というデータだ、ということはおわかりと思います。例えば、3ビットのデータに1ビットの偶数パリティ、となっていて、データが「101」だったらパリティは「0」、データが「001」だったらパリティは「1」となりますね。で、この時 (1)データの値のある桁がエラーによってわからなくなったら、残りの桁とパリティ値から逆算で求めることができます:「0x0」となっていて偶数パリティに「0」が記録されていたらxは0。「01y」で偶数パリティが「0」となっていたらyは1ですね。また、データの桁が全部揃っていれば、パリティ情報は損失してもまた計算すればよいだけです。要するに、このシステムでは、一そろいの値の中でどれか1ビットが損失しても、残りが無事なら損失した値を再計算で出せる、という仕組みです。 (2)この例の「データ」と「パリティ値」を、それぞれ別々のディスクに分散したものが RAID-5 と考えればわかりやすいです。つまり、補完用のデータなので、これによって情報量が増えるということはありません。補完用のデータにディスク1台分使うということになるので、有効なデータ容量は残りの台数分しかないわけです(前のビットの例で言えば「000」などの3ビット分がデータ、パリティビットはこれによって決まる値なのでこれ自体はユーザが保存しようとするデータの容量には使えない)。 (3)これだけで、「ディスクどれか1台分のデータが失われても、残りのディスク全部のデータが揃っていれば失われたディスク分のデータは回復できる」システムが完成しますが、RAID-5 では さらにこのパリティデータを1つのディスクにかためて置くのではなく、複数のディスクに一定の割合ずつパリティの置き場所を分散する、という形をとっています。この理由については、いろいろお読みの資料の中に書いてあるのではないかと思います。 がんばって! p(^o^)q

azicyan
質問者

お礼

ご丁寧に畏れ入ります。 やっとわかってきました。 自分の知識がいかに付け焼刃であるかと思うと 恥かしいです。 1台分のパリティという意味がようやくわかりました。 でも、教えていただいてよかったです(*^_^*) ありがとうございました!

noname#20957
noname#20957
回答No.3

追記、または蛇足。 >安全性を無視したら、パリティHDDだけで・・・ パリティだけで復号は不可能ですが、そもそもデータの信頼性向上、対障害性能向上の為の技術ですから、データの圧縮伸張技術の方面のお話はRAIDとは混ぜないでしょう。

azicyan
質問者

お礼

手元にあった資料がですね、 図で説明してあったんですが、 AB2つ分のデータがCに入っている? ように見えたんです。 私の理解力も確かに足りないです(恥 ありがとうございました!

  • MetalRack
  • ベストアンサー率14% (298/2040)
回答No.1

データA、データB、パリティCとします。 簡単な説明の為に、A+B=Cという論理で構成されるとします。 Aのデータが壊れたら、残っているBとCのデータから C-B=AとしてAが復元できます。 同様にBが壊れたらC-A=Bとして復元。 Cが壊れたらA+B=Cとして夫々のデータを復元できるということです。 そのためには、本来のデータ以外の補正用のデータとして1/3増しになるということです。 これを基に、資料など読めば理解できるのではないでしょうか。

azicyan
質問者

お礼

畏れ入ります。 >Aのデータが壊れたら、残っているBとCのデータから Aのデータの復旧にBのデータも使うのですね! ありがとうございます!

関連するQ&A

  • RAID 1+0とRAID 0+1の違いについて

    いつもお世話になっています。 wikipediaで、raidの項目を調べると、 ttp://ja.wikipedia.org/wiki/RAID ----------------------------------------------------- RAID 0とRAID 1、どちらを先に行うかにより名前が変わる。一見どちらも同じように見えるが信頼性の面で異なる。 RAID 0+1:ストライプされた領域をミラー RAID 1+0:ミラーセットをストライプ RAID 0+1ではRAID 1を構成するRAID 0領域のディスクそれぞれ1台ずつが故障した時点でデータが破壊されるが、RAID 1+0ではRAID 0を構成するRAID 1セットの構成ディスク2台がどちらも故障しない限りデータは破壊されない。 ----------------------------------------------------- とあります。 RAID 0 = ストライピング、RAID 1 = ミラーリングとして話をします。 RAID 0+1 は、四台のHDDを使って、 1台目:ACEG… ⇒ミラーリング⇒ 3台目:ACEG… 2台目:BDFH… ⇒ミラーリング⇒ 4台目:BDFH… つまり、1台目と3台目、あるいは2台目と4台目が同時に壊れない限り、データは破壊されません。 RAID 1+0 は、四台のHDDを使って、 1台目:ABCD… ⇒ストライピング⇒ 3台目:ACEG…、4台目:BDFH…     ↓ミラーリング 2台目:ABCD… ということでしょうか。 とすると、RAID 0+1 はHDD二台分の容量を使えるのに、RAID 1+0 はHDD四台も使っていながら、HDD一台分の容量しか使えないのではないか・・・。 また、「RAID 1セットの構成ディスク2台がどちらも故障」してしまってもデータは復元できるのではないか・・・。 少なくともwikipediaの文章からはそのように受け取れてしまうのですが、実際はどうなんでしょうか? 識者の方、上記二つの方法の明確な違い、詳しい説明をお願いいたします。 ※ポイントについて 基本的に投稿された内容がわかりやすい順につけさせていただきますが、いずれも甲乙付けがたい場合、早いもの順につけさせていただきます。ご了承ください。

  • RAID10について

    RAID10を組める4BAYのケースを所持していますが、RAID1ミラーリング2組をRAID0ストライピングで高速化させる方式だと言われます。安全性と高速化を図ったものだと聞いていますが、2台+2台のHDDの組み合わせでどちらかの組の1台が故障した際は新しいHDDでリビルド出来るそうです。どちらかの組み合わせで2台とも故障した際はリビルド出来ないのでしょうか?4台のうち3台が故障したらリビルド不可能なのでしょうか?リビルド時に容量やメーカーが違う、キャッシュサイズも違う回転数も違うHDDを使うとRAID10に異常が起きますか?教えてください。

  • RAID0とRAID5の比較について

    現在、RAID0でHDD2台を使用しています。 しかし、安全性も少し考えることとして 今度、同じ型番のHDDを2台増設して、RAID5を 構築しようと考えております。 そこで、質問ですが、 RAID 0(ストライピング) 2台使用 と RAID 5 4台使用 の場合だとどちらの方が早く読み書きできるのでしょうか? RAID 5は1台をパリティとして使用するために4台にしても 3台分の容量しか使えないことはわかりますが、4台使用して RAID5を組んだときの速度はどうなるのか ご存じの方、教えてください。 よろしくお願いします。 ちなみに、RAID0 2台 RAID5 3台の速度比較の場合は明らかに RAID0 2台の方が早いと思いますが、RAID0 2台とRAID5 4台の 場合はわからないのでよろしくお願いします。

  • RAIDについて

    RAIDについてお伺いします。ストライピングやミラーリングRAIDを構築するために2個のHDDを接続する場合は、どちらのHDDも同メーカー同型番、同容量の物を用いるようにします。とありますが、絶対そうしなければならないのですか、今までIDEを使っていてそれをストライピングやミラーリングにするときもそうなのですか、わかる人教えてください。

  • RAID5のパリティについて

    RAID5について教えてください。RAID5は複数のHDDにデータとそのデータから生成したパリティを分散して記録しますが、パリティって具体的にどのようなものなのでしょう?元のデータを圧縮したものなのでしょうか?またデータ単位はセクター単位なのでしょうか? ご存知の方教えてください。よろしくお願いいたします。

  • RAIDについて詳しく教えてください。

    昔RAIDに興味がなかったので、RAIDにはそんなに詳しくありません。 知ってるのは、RAID0(ストライピング)、RAID1(ミラーリング)、RAID0+1程度です。5,6などは詳しく知っていません。 前回は友達が来て、ストライピングに設定してくれましたが詳しく見ていなかったので忘れちゃいました;; そのときのHDDが・・・ 500G X2でした。 質問です。 1.RAIDについて(0,1,5,6,0+1等)詳しく教えてください。 2.ASUS P5K-EでのRAID(ストライピングとミラーリング)設定方法と注意事項を教えてください。 3.OSのセットアップ前にストライピングをしなければなりませんか? 4.320G+ 500G HDDの組み合わせでのストライピングは可能ですか? 5.320G+ {500G +500G}でのストライピングは可能ですか?(320Gはバックアップ用に残しておきます。) 6.Vista Ultimate 64bitを使用中ですが、OSのセットアップ前にドライバなどは自動的に検出されますか? 7.RAIDをした場合、パーティションの分別はできますか?(OSセットアップ時に) 長い質問ですが、よろしくお願いします。

  • RAIDカード2枚で1台のHDDに見せかけられますか。

    例えば、 RAIDカードA-HDD1 HDD2 (ストライピング) RAIDカードB-HDD3 HDD4 (ストライピング) (カードAとカードBは同モデル) という構成を作って、1台のHDDに見せかけたり、 OSをインストールしたりできますか。

  • RAIDに関する質問

    RAIDに詳しい方がいらっしゃいましたら、是非教えて下さい。 データの読み取り、並びに書き込みが早く、且つ不足の事態が生じた時にデータを完全に回復させることが出来るようなRAIDの組み方はありますか? 世間一般的によく知られているRAID0 , RAID1 , RAID5 , RAID10等では上記のようなRAIDを組むことが難しいと思います。 又、私が知っている限りでは、マイナーであるRAID6はダブルパリティということですが、HDD(SSDを含む)が2台までクラッシュした場合迄はリビルドによりデータの回復が出来るようですが、3台以上クラッシュした場合は難しいようです。 RAIDのストライピングを用いてデータの読み込みを早くさせる一方、それとは別に別途ハードディスク上に全てのデータを常に保持させるような方法はあるのでしょうか?( RAID + アルファ )

  • 2TBx2 1TBx2でのRAID

    2TBx2 1TBx2でのRAID OSはDebian Lenny kernelは2.6.26 現在1TBのHDDが2台あり df -m Filesystem 1M-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 953740 847382 106358 89% /mnt/hd01 /dev/sdb1 953740 516213 437528 55% /mnt/hd02 それぞれに上記の様なデータが入っています。 ここに2TBのHDDを2台追加してRAIDを構成したいと考えています。 どのような構成にするのがベストでしょう? 既存データを一旦退避しての再構成はできません。 思いつく構成としては ・RAID5+1  2TBのHDDを1TB毎に切り、2TBのHDDと1TBのHDDをmdでRAID5  その2セットをLVMでまとめる  容量2TB  2TBが同時に2台故障するとアウト ・RAID0+1  2TBのHDDを1TB毎に切り、2TBのHDDと1TBのHDDをmdでRAID0  その2セットをLVMでミラーリング or mdでRAID1  容量3TB  別RAIDのHDDが同時に故障するとアウト ・RAID0+5  1TBのHDDをmdでRAID0  2TBのHDD2つとRAID0でまとめた2TB分のmdをRAID5  容量4TB  1台目の故障のみ対応可能  ただし、現在のデータを退避させないと構成不可能? ・RAID5+spare  2TBのHDDを1TB毎に切り、すべてまとめてmdでRAID5  2TB中の1パーティションをhot spareにする  容量4TB  2TBとも実データが入るディスクが故障すると終了  その他のディスクであれば修復可能 ・RAID5  2TBのHDDを1TB毎に切り、すべてまとめてmdでRAID5  容量5TB  2TBのディスクが故障すると終了 ・RAID0  すべてまとめてmdでRAID0  容量6TB  1台でもディスクが故障すると終了 アドバイスなどいただけると助かります。

  • RAIDを構築したHDDの移動

    あるRAIDボードを使って、HDD2台でRAIDのストライピングを構築して、 別のRAIDボードにそのHDDを付け替えた場合、ストライピングのデータを引き継ぐことは出来ますか? それとも、HDDの中のデータを破棄して構築しなおす必要があるのでしょうか?