• ベストアンサー

ディスクミラーリング

ディスクミラーリングとは、何のために行うのか、またどのようなメリットがあるのか。 ディスクアレイとの相違点とそれぞれのデメリットを人に教えられるように教えてください。

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

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

ちなみにバリティじゃなくてパリティですよ。 RAID5は、ストライピングにちょっと手を加えて~ といいましたが、パリティデータとはその "ちょっと" にあたる部分です。 詳細はちょっと数学的で複雑な話になります。 かなり長くなりそうだし、あまり正しく説明する自信もないので、手短(といってもやっぱりかなり長い)に話します。 RAID5では複数のディスクのうち1つを、パリティデータのために使います。 そのときパリティデータディスク以外はストライピングのような扱いをします。 ストライプディスクのビットに対して、排他的OR演算というものを行い、その結果をパリティディスクに格納します。 排他的OR演算では、1つのビットが1で、もう1つのビットが0のとき、結果のビットは1に、これ以外のときは0になります。 たとえばC言語では排他的OR演算子として^があります。 0 ^ 0 = 0  1 ^ 0 = 1  0 ^ 1 = 1  1 ^ 1 = 0 具体的には、たとえばディスクが5台あるとすると、 1 ディスク1とディスク2のデータで排他的OR演算をする。 2 その結果とディスク3のデータで排他的OR演算をする。 3 その結果とディスク4のデータで排他的OR演算をする。 4 その結果をディスク5に格納する。 たとえばこういうことです。 "abcdefgh" というデータを格納するとき、ディスク1に "ae"、ディスク2に "bf"、ディスク3に "cg"、ディスク4に "dh"、ディスク5に "(abcdから求めたパリティ)(efghから求めたパリティ)"。 ってな感じだったとおもいます(かなり記憶が怪しいので、あまり信用しないでください)。 あまり突っ込んで勉強してないので、原理についてこれ以上の詳細はお話できません。 すみません。 もうちょっと待てば、ほかの方から答えが得られるかもしれません。 さて、このパリティですが、ある1つのストライプに使っているディスクが壊れて、データがわからなくなっても、ほかのストライプに使っているディスクのデータと、パリティから、壊れてしまったデータを復元可能だというのです。 ちょっと不思議なことです(もうちょっと勉強すれば不思議でなくなるのでしょうけど)。 これは、排他的OR演算を逆算することでもとのデータを得るというものです。 RAID5はほとんどの場合、速くならずに遅くなってしまうので、RAIDマニアの興味をあまりそそらないもんだから、たいした説明になってなくてすみません。 ミラーよりコストパフォーマンスがあり、信頼性もあるから、サーバーに使われるわけですね。 やっぱり個人で使うもんじゃありません。 ちなみに先ほど紹介したFastTrakではRAID5は構築できません。 RAID5を構築しようと思ったら、最低でも4万くらいの豪華なRAIDカードが必要です。 ちなみにFastTrakは、種類もありますが、6千円~1万4千円くらいであります。

fight_triforma
質問者

お礼

ものすごくわかりやすいです。どうもありがとうございました。今後ともよろしくおねがいします。(?)

その他の回答 (5)

回答No.6

なぜ、修復できるかについて: x1100 のように、左端のビットが不明の場合、全体の1の個数を偶 数にしようと思ったら、xを0にするしかありません。もし、x=1だっ たら、1の個数が奇数になっていまします。だからもともと0だった と推測できるのです。で、式で表せば、1^1^0^0 = 0 と計算するこ とで、1が偶数個になるように x を決めることができます。 x1011 の場合も同様で、1の個数を偶数にするには、x=1しかありえ ないのです。 a^b^c^d がなぜ 1の個数の奇数か偶数かを表すかが不明確でしょう か? a^b は、a だけが 1 のときか、b だけが 1 のときだけ 1 になり ます。つまり、a と b のうち 1 の個数が奇数なら 1 になります。 では、a^b^...^y が、a~y のうち 1 の個数が奇数のときに 1 を 表すとすると、(a^b^...^y)^z は、a~yの1の個数が奇数でかつz=0 のときか、a~yの1の個数が偶数でかつz=1のとき、つまり、a~zの 1の個数が奇数のときに1になります。結局、何個のビットを排他的 ORしても、それらの1の個数が奇数なら1、偶数なら0が得られます。

回答No.5

(単一)パリティに関して: パリティ(parity)というのは符号理論の用語です。データの誤り を検出したり訂正したりするために、もとのデータに付加する冗長 なデータのことで、もともとは1ビットとは限りません。 「単一」パリティでは、パリティを含むデータ全体の1の個数が偶 数個になるように、パリティビットの値を決めます。例えば、0110 というデータのパリティは 0 で、1101 では 1 です。これをもと のデータの右端に付加して考えるとすると、01100 と 11011 が得 られます。(haporun さんの言われる排他的ORは、結局1の個数を 偶数にするための演算ということです) RAID5では、このパリティも含むビットが別々のディスクに入るよ うに制御されます。ここで1個ディスクが壊れたとすると、上の5ビッ トのうち一つが得られなくなります。この場合、全体の1の個数が 偶数だったわけですから、残る4ビットから1が偶数個になるように 同じようにパリティを求めてやると、もとのビットが推測できてし まうわけです。 例えば左端がわからないとしましょう。この場合、 x1100 -> x=1^1^0^0=0、および、 x1011 -> x=1^0^1^1=1 と推測できます。 単一パリティでは、このように1ビットが不明になってしまうと、 修復が可能ですが、ディスクが誤ったビットを出力してしまうと、 1が奇数個になるので誤りがあることはわかりますが、どこが誤っ たかはわからないので訂正できなくなります。また、当然、ディス クが2個壊れると、データが失なわれます。 RAIDの宣伝でわりとわかりやすい説明をしているサイトがあるので、 紹介しておきます。

参考URL:
http://www.newtech.co.jp/tech/Column/Column2/column2_1.html
fight_triforma
質問者

お礼

大変詳しいご説明ありがとうございました。 しかし、わからないところが。。。 あまりに基本的な事でキーボードを打つ手が震えるかもしれませんが。。。是非、皆さん教えてください。 >>例えば左端がわからないとしましょう。この場合、 >>x1100 -> x=1^1^0^0=0、および、 >>x1011 -> x=1^0^1^1=1 と推測できます。 とありますが、それぞれなぜ0と1に推測できるのでしょうか? よろしくお願いします。 あと、 再度質問する場合は“お礼をする”ではなく“補足する”で記入するんでしょうかねぇ~??

  • hyde-la
  • ベストアンサー率28% (42/146)
回答No.4

人に教えられるように教えてください、というのが意味不明ですが・・・ ディスクミラーリングは、常にディスクへの書込みを二重かして、 言わば「バックアップを取りながらHDDを使う」イメージです。 ディスクアレイは、複数のHDDの使い方の分類を表すもので みなさんおっしゃる通り、RAIDと呼ぶものです。 ミラーリングもRAIDのうちの一つです。 メリットしてはデータの安全性があがるということですが デメリットとしては管理が大変なことです。 何せディスクが二枚あるので、一枚のデータが壊れていても もう一枚のディスクのデータを読んでしまい、結局データの破壊に 気づかないことがあります。 これを放置しておくと、本来ミラーリングとして同じデータを 持つはずの二枚のディスクの内容が、相互に破綻してしまいます。 因みにパリティチェックなんかは、メモリ等にも適用される かなり有名な技術ですので覚えておいて損はないです。

  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

少し比べ方が間違っています。 ディスクアレイ(RAID) ├ディスクストライピング(RAID0) ├ディスクミラーリング(RAID1) ├RAID0+1 └RAID5 って感じですね。 ストライピングは、たとえば、"abcdefgh" というデータがあるとすると、ディスク1に "aceg"、ディスク2に "bdfh" のように書き込みます。 ディスク1が "aceg" を書いているあいだ、ディスク2は "bdfh" を書けるので、書く時間が(最大で)半分になります。 読むときも同じです。 ディスクを3つ以上使えば、さらに速くなります。 実際にはそこまでパフォーマンスは上がりませんが。 ミラーリングは、2つ以上のディスクに同じものを書き込みます。 これにより、1つが壊れたときほかのものが残っていれば、データを損傷することがありません。 また、1つのディスクが読み込まれているとき、ほかのディスクは暇しているので、別のアプリケーションがディスクの読み込みを要求したときでも、すばやく対応することができます。 ただし、書き込みはすべてに同じものを書き込まなければならないので、多少遅くなります。 コストパフォーマンスはかなり悪いです。 RAID0+1は4台以上のディスクを使って、ストライピングとミラーリングを同時にします。 書き込みはストライピングで高速、読み込みはストライピングとミラーリングを合わせてさらに高速になります。 しかし、コストパフォーマンスはかなり悪いです。 RAID5は、ストライピングにちょっと手を加えて、ストライピングのように速度のパフォーマンスを得つつ、1台のディスクが壊れてもほかのディスクからデータを修復できるようにしたものです。 ・・・というのは理論だけで、実際に理論だてたパフォーマンスを得られる機会は、ほとんどありません。 でも、サーバーなど信頼性と速度を求められるところでは、ほとんどRAID5が使われています。 個人使用の領域では、ストライピングがほとんどですね。 RAIDを構築するには、RAIDカードというものが必要になります。 RAIDカードでもっとも有名なのは、PromiseのFastTrakですね。 さいきんは、ほかのメーカーも結構作ってます。 長々と書いてしまいました。 RAIDマニアな、はぽるんでした。

fight_triforma
質問者

お礼

大変わかりやすいご説明ありがとうございました。 もう一つと言ってはなんですが、教えていただきたい事がございます。 あるWebページで調べていたところ“バリティデータ”と言う用語が出てまいりました。 これはどのようなものでしょうか? お時間のある時で結構ですので、教えてください。 お願いします。

noname#9414
noname#9414
回答No.1

ディスクアレイは、HDDアクセスの高速化、および 容量の増加。 ディスクミラーリングは、HDDのバックアップ用。 ということを聞いていますが・・・ 用途が違うので、メリット・デメリットは比べることが できないと思いますよ。 ではでは☆

fight_triforma
質問者

お礼

でも、でも、どちらか一方を調べると必ず近くにこれらの用語が書いてあるから裏表のようなものかと思いました。 どうもありがとうございました。

関連するQ&A