• 締切済み

パリティ

ハードディスクのRAIDで出てくる、パリティの概念について教えてください。

  • satty
  • お礼率1% (4/314)

みんなの回答

  • nag3
  • ベストアンサー率28% (103/361)
回答No.3

何かすごいことがいっぱい書いてあって私には難しいです。なので、ここは頭を休める意味で簡単なRAIDをひとつ。まずA B C という3台のHDDがあったとします。そしてAに書きこむ時、同時にBにも書きこみます。そして、A B2台のHDDに書きこまれたデータを比較して同じならOK違うならエラーとして書きこみなおす。次にBに書きこむときCにも書きこみ比較します。Cに書きこむ時はAに書きこんで比較。この場合は、高速化ではなく、信頼性の方式です。良く読んでもらえば解ると思いますが、どれか1台クラッシュしても後の2台からすべて復元できます。絶対にデータをとばしたくない場合にはなはだ有用ですが、HDDの容量をバカ食いします。ちなみに、データの比較がこの方式におけるパリティーです。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

パリティとは、データのエラー検出、修正に使われるしくみのことです。 例えば、0(0000),1(0001),2(0010),0(0000)というデータがあったとします。(括弧 内は2進数表記) で、このデータをビットごとに足し算した結果のことを、このデータのパリティと いいます。 (上例では"0011"(0000 + 0001 + 0010 + 0000 = 0011)) このデータにエラーが混入しているかどうか知るためには、実際に足し算してみた結 果とパリティの値を比べてみて、両者に違いがあるかどうかで調べます。 エラーの訂正 ↓横のパリティ 0000 0001 0010 0000 | 0011 0011 0010 0100 0000 | 0100 ←エラー,このデータだとパリティは0101になるべき,こ 0111 0111 1000 0000 | 1000 の行のどれかの1の位が間違っていることが分かる 1111 1111 0000 0000 | 0000 ---------------------- 1011 1010 1110 0000 ←縦のパリティ ↑エラー この列のどれかの1の位が間違っていることが分かる このように、縦方向にもパリティを算出することによって、エラーを訂正することが できます。上例では、2行目2列目のデータが異常。正しくは0011だって事が見て取 れると思います。 仮に、このデータを、1列に付き1つのHDDだと見立てますと、パリティがいかに 有効に働くかが分かるでしょう。例えば、1列目のデータが全部飛んだとして(エディ タで1列目を削除してみてください)残ったデータとパリティから、元の1列目が完全 に再生できることが、分かるんじゃないでしょうか。 尚、データ訂正にはパリティ以外にもいくつかの方法が知られています。(CRCなど)

  • dice
  • ベストアンサー率35% (27/77)
回答No.1

RAIDはご存知の通り、ハードディスクの高速・大容量・高信頼性を実現するための技術です。RAIDのレベルでハードディスクの性能(特性)がはかれます(しかし、数値が高ければ高性能とも言いきれません)。今現在は、7段階にわかれていたと記憶しています。 3年前に学校で勉強して以来なので、もしかしたら、技術の進歩で多少概念的なものは変わっているかもしれません。 (参考までにRAID-->http://www.lint.ne.jp/%7Etomo/linux/repair/raid.htm           http://www.ascii.co.jp/ghelp/1/000109.html) さて、パリティはRAID3あたりから登場する言葉ですが、これはパリティチェックと言ってデータの誤りを検出する技法(機能)です。 パリティの機能は、RAIDで言う「高信頼性」の部分に相当します。 言葉の説明は以下のURLを参照して下さい。 http://www.ascii.co.jp/ghelp/1/000134.html http://www.ascii.co.jp/ghelp/1/000133.html ただし、パリティは誤りを検出するだけです。 コンピューターの中のデータ0と1の2進数でできています。 1データは複数のビット(0または1)から成っていて、1バイトのデータには8ビットで成っています。例えば01001111のような感じです。 これに、パリティビットを付加することによって、誤りが検出できます。 例えば01001111には1が奇数個あるので、パリティビット「1」を付加します。このとき、このデータが誤っていて、01001110となっている場合、パリティビットが1に成っているのに、01001110は1が偶数個です。つまり、01001110は誤りデータと言うことになります。 お気づきとは思いますが、これでは、1バイトのデータに2個の誤りビットがある場合は検出できませんし、どこに誤りがあるかも特定できません。更に、この技法には誤りを訂正する機能はありません。 ちなみに、パリティビットを付加する場合、1バイトのデータに1が奇数個ある時に1を付加する場合も0を付加する場合もあります。 参考資料のURLは、パリティチェック方式の説明が図付であります。

参考URL:
http://www.cs.u-gakugei.ac.jp/gairon/5/ayamari-2.html

関連するQ&A

  • RAID5のパリティについて

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

  • パリティビット

    『偶奇性』のパリティ(http://ja.wikipedia.org/wiki/%E5%81%B6%E5%A5%87%E6%80%A7)と『転換社債』に関するパリティとは同じ概念なのでしょうか?

  • RAID 5 のパリティ生成のタイミング

    RAID 5 で構成さされたアレイにデータを書き込む際、パリティはどのタイミングで生成されるのでしょうか。 以下を例に、教えてください。 【例】 (1)HDD 3台構成 (2)1ブロック 4 bit とする (3)1010 1011 を書き込む。 【パリティ生成のタイミング】 I. 1010 を HDD 1に、1011 をHDD 2 に一度書き込む。その後、1010 1011 を読み込み,パリティ(0001) を計算し、HDD 3 に書き込む II. 1010 1011 をHDD1、2 に書き込む前に(RAID コントローラでブロックを振り分ける時に),パリティ(0001)を計算し, HDD 3 に書き込む。 III.I, II ともに間違っている。 ずっと,IIだと思っていたのですが、ウィキペディアの以下の記述を読み、混乱しています。わかるかたがいたら教えてください。 "一方で書き込む場合にはパリティを作成しなおすために、ディスクからの読み出しとパリティ演算が必要となる。" (参考) http://ja.wikipedia.org/wiki/RAID

  • 4台のRAID5の容量は、2/3でしょうか3/4でしょうか。

     通常、RAID5は3台のハードディスクで構成し、3分の1がバピティになるので、データを格納できる容量は3分の2になります。 今度、4台でRAID5を組むことになりました。やはりこの場合も3分の1が パリティになるのでしょうか。あるいは、4分の1がパリティになるのでしょうか。    

  • IrDAにパリティはないのですか?

    UART⇔IrDA変換ICを使用して赤外線通信をしています。 この時マイコンでパリティを付加して送信すると、受信側で文字化けを起こしてしまいます。(パリティ無しの場合は正常) IrDAの規格では8ビットパリティなしで、パリティ付きはないのでしょうか? お手数おかけしますが、どうぞ、よろしくお願いします。

  • パリティチェックについて

    (1) 01111011 の2進数の奇数パリティビット (2) 01011011 の2進数の偶数パリティビット (3) 1101101 の7ビットのデータの先頭に奇数パリティを付けて16進数で表す方法。 各質問の計算の仕方を教えてもらえないでしょうか? 調べても具体的な内容しか書いていなく、簡潔に表現している所が無かったので・・・・。

  • パリティチェック?

    水位計のデータをA/D変換機(パリティ・ビジィ制御付)で、CPUに取り込んでいるのですが、パリティ異常の警報が発生します。(ビジィ制御が壊れているかも?)わたしは、基本的なことがわかっていないので、パリテイチェックとビジィ制御との関係についてのしくみを教えてください。

  • パリティ法則

    パリティ法則って何ですか?教えてください!!

  • パリティーチェック

    次のような問題に出くわし、webとか図書館で調べましたが、よく分かりません。どなたか教えていただけると助かります。 問題: 一つの符号を4ビットの2進コードで表し、3個の誤り訂正符号を付加して送信たところ、1110100と受信された。送信コードのフォーマットは、それぞれp3はb2b1b0のパリティ、p2はb3b1b0のパリティ、p1はb3b2b1のパリティでありいずれも奇数パリティとする。またビット誤りは1ビットのみとする。 答えは、b2が誤りであり、訂正したコードは「1110000」だそうですが、アナログ頭では分かりません。宜しくお願いいたします。

  • 奇数パリティジェネレータとは?

    奇数パリティジェネレータとはどういう意味かわからないのです。 調べてみても、奇数とかパリティだけの意味なら出てくるのですが、奇数パリティジェネレータ全体の意味となると、なかなか出てこないので誰か教えていただけませんか?