JP5142045B2 - ディスクアレイ装置 - Google Patents

ディスクアレイ装置 Download PDF

Info

Publication number
JP5142045B2
JP5142045B2 JP2008331433A JP2008331433A JP5142045B2 JP 5142045 B2 JP5142045 B2 JP 5142045B2 JP 2008331433 A JP2008331433 A JP 2008331433A JP 2008331433 A JP2008331433 A JP 2008331433A JP 5142045 B2 JP5142045 B2 JP 5142045B2
Authority
JP
Japan
Prior art keywords
data
error correction
error
drive
drives
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008331433A
Other languages
English (en)
Other versions
JP2010152745A (ja
Inventor
金司 萱沼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2008331433A priority Critical patent/JP5142045B2/ja
Publication of JP2010152745A publication Critical patent/JP2010152745A/ja
Application granted granted Critical
Publication of JP5142045B2 publication Critical patent/JP5142045B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数のディスク装置に分配して記録されたデータの誤りを検出し、訂正する機能を備えるディスクアレイ装置に関する。
大量のデータを複数台のディスク装置に分散して保存することによって、高い信頼性を図るディスクアレイ装置としてRAID(Redundant Arrays of Inexpensive Disks)が知られる。RAIDにはデータを分配する単位やパリティ情報の有無によって、複数のレベルがある。
RAIDレベル4では、1台のドライブをパリティ専用に割り当て、残りの複数台にデータを記録する。データ記録はドライブ毎にブロックを単位として行われる。例えば、DVD(Digital Versatile Disc)では32kBのデータが1ブロック、ブルーレイディスクでは64kBのデータが1ブロックとして扱われている。パリティドライブに記録するブロックのデータは、他の複数台に記録される各々のブロックのデータに基づき、ブロック内の対応するビット毎に排他的論理和をとることによって決められる。こうすることによって、いずれか1台のドライブに障害が発生した場合でも、残るドライブから読み出されるブロックのデータ同士の排他的論理和をとることで、データを再構築することができる。
図1に、RAIDレベル4を採用したディスクアレイ装置の構成を示す。図示するように、ディスクアレイ装置は、データ分配回路200と、5台のディスクドライブ400と、パリティ演算回路700と、復号回路800とを備えている。図中、記録ブロック列は、ブロック毎にデータ分配回路200によって4台のドライブに割り当てられる。パリティ演算回路700では、4台のドライブに割り当てられたブロック内の、対応するビットごとに排他的論理和がとられ、パリティドライブとして設けられた最下段のドライブに記録される。再生時は、復号回路800が各ドライブの再生データを検証して、誤りを検出する。仮に、1台のドライブに障害が生じた場合には、復号回路800は、パリティドライブの再生データとその他のドライブの再生データとを使って、障害ブロックを再構築し、正しいデータを出力する。
RAIDレベル4では、パリティ・ブロックを常に同じドライブに割り当てる。一部のブロックを書き換えた場合に、対応するパリティ・ブロックも書き替えの対象となる。このため、パリティ・ブロックの書き込みにボトルネックが現れる。一方、RAIDレベル5では、パリティ・ブロックをアレイ内の全てのドライブに順に割り当てる。これによって、書き込みのボトルネックを防ぐことができる。
RAIDレベル6では、ブロックの組み合わせを変えて、パリティ・ブロックを2重に作成して記録する。これによって、同時に2台のドライブに障害が発生しても、データの再構築が可能になる。特表2007−524930号公報(特許文献1参照)には、複数ドライブで構成したアレイの行に沿って付加したパリティセットと、アレイの対角方向に沿って付加したパリティセットとによって2台分の冗長情報を与える例が示されている。この場合には、障害があるブロックを予め特定できれば、パリティ・ブロックの冗長情報から2ブロックまでのデータを再構築できる。
上記RAIDのように、排他的論理和によって得られたパリティ・ブロックを冗長データとして記録する場合、障害があるブロックを予め特定できれば、そのブロックのデータを再構築できる。しかし、パリティ・ブロックに加えた冗長データから、障害がある位置を特定することまではできない。よって、例えば、一部に誤りを含むブロックの数が、パリティとして加えた冗長ブロックの数よりも多い場合には、データを再構築できない。
誤りを含むビットを特定するために、パリティ・ブロックをハミングコードに基づいて作るRAIDレベル2も知られる。しかし、パリティ・ブロックは、他の複数台のドライブに記録される各々のブロックのデータに基づいて、ビット毎にハミングコードを生成するように作られる。このことから、ディスクの使用効率が悪いという欠点がある。RAIDレベル2の場合、例えば、4台のデータ記録ドライブに、3台のパリティドライブを加えても、2つのブロックの同じ位置に同時に発生した誤りを訂正することはできない。
特に、ディスクの障害は記録方向に沿ったバースト誤りになりやすいが、ビット毎の排他的論理和によって得られたパリティ・ブロックや、ビット毎にハミングコードを生成するようにしたパリティ・ブロックでは、バースト誤りを効率的に修復することはできない。
特開平05−189257号公報(特許文献2参照)や特開平07−152496号公報(特許文献3参照)には、リード・ソロモン符号によって符号化し、1バイトずつを複数台のディスク装置に割り当ててディスクアレイを構成する例が示されている。リード・ソロモン符号を使ってはいるものの、この場合にはバースト誤りがそれぞれ別の符号に属することになる。ディスク上で連続した位置に誤りが発生しても、別の符号の1バイトずつの誤りに分解されてしまうため、バースト誤りとしての効率的な修復は行えない。
特表2007−524930号公報 特開平05−189257号公報 特開平07−152496号公報
本発明の課題は、データの記録方向に沿って、局所的に発生するバースト誤りなどを効率的に修復できるようにすることである。
本発明の一つのアスペクトによるディスクアレイ装置は、N+P台のドライブと、誤り訂正符号化回路と、分配回路と、配列回路と、誤り訂正復号回路とを具備する。M,N,Pを自然数とする。N+P台のドライブは、記録データを記録する。誤り訂正符号化回路は、M×Nの大きさの記録データを与えられると、M×Pの大きさのパリティを付加する符号化回路であって、記録データからM×Nバイトを取り出して成る情報シンボルに、M×Pバイトのパリティシンボルを付加して、符号長M×(N+P)バイトのリード・ソロモン符号を生成する。分配回路は、M×(N+P)バイトのリード・ソロモン符号を、Mバイトずつの(N+P)個の断片に分割し、(N+P)個の断片を、N+P台のドライブに分配する。配列回路は、N+P台のドライブのそれぞれにおいて、Mバイトずつの(N+P)個の断片が、データの記録方向に沿って整列して保存されるように、N+P台のドライブのそれぞれに対して、異なるリード・ソロモン符号に属するMバイトずつの断片を配列する。誤り訂正復号回路は、N+P台のドライブから読み出された記録データに誤りがあった場合に、M×(N+P)バイトのリード・ソロモン符号に基づいて、誤りを訂正する。
本発明によれば、Mバイトずつの断片が、データの記録方向に沿って整列して保存されるので、データの記録方向に沿って、局所的に発生するバースト誤りなどを効率的に修復できるようになる。
本発明を実施するための最良の形態の一つについて、添付した図面を参照しながら、詳細に説明する。図2に、1つの実施の形態におけるディスクアレイ装置の構成説明図を示す。図2におけるディスクアレイ装置は、8ブロック分の記録データに対して3ブロック分のパリティを加え、これら11ブロック分のデータをドライブ11台に分割して記録する。図2において、ディスクアレイ装置は、誤り訂正符号化回路10と、データ分配回路20と、11個のデータ配列回路30と、11台のドライブ40と、11個の符号配列回路50と、誤り訂正復号回路60とを備えている。
図2に示した各回路において、データ列がどのように扱われるかについて詳述する。図3a,図3b−1,図3b−2は、図2のディスクアレイ装置が、記録データを、どのようにドライブに保存するかを示す説明図である。なお、各ドライブに割り当てる誤り訂正符号の断片の長さは19バイトとする。記録データは、8ブロック分の記録データを一つの記録ブロック列として、まず、ディスクアレイ装置の誤り訂正符号化回路10に与えられる。
図3aに示すように、一つの記録ブロック列を与えられると、誤り訂正符号化回路10は、[記録ブロック1],[記録ブロック2],・・・,[記録ブロック8]に対して、誤り訂正符号化処理を行う。図示するように、誤り訂正符号化回路10は、8つの記録ブロックから19バイトの断片を取り出して、8×19バイトの情報シンボルを生成する。また、情報シンボルごとにリード・ソロモン符号に基づいた3×19バイトのパリティを加え、出力する。
図3aにおいて、一つの記録ブロックは、432バイト×152バイトの大きさを持っている。この場合、記録ブロックあたり3456(=432×152/19)の断片が作られる。[記録ブロック1]の先頭の断片Aは、[記録ブロック2]から[記録ブロック8]までのそれぞれの先頭の断片A〜Aとまとめられ、これらの8つの断片A〜Aで、一つの情報シンボルが形成される。更に、この一つの情報シンボルに対して、リード・ソロモン符号に基づいて、パリティシンボルに当たる3×19バイトが加えられる。図3aでは、3×19バイトのパリティシンボルを、A,A10,A11と表記している。A,A10,A11の大きさは、それぞれ19バイトである。
同様に、[記録ブロック1]における2つ目の断片Bも、その他の[記録ブロック2]〜[記録ブロック8]における2つ目の断片B〜Bとまとめられて、一つの情報シンボルが形成される。この情報シンボルにも、3×19バイトのパリティシンボルB,B10,B11が加えられる。[記録ブロック1]〜[記録ブロック8]における3つ目以降の断片C,D,E,F,・・・についても、同様に誤り訂正符号化処理が為される。
データ分配回路20は、誤り訂正符号化回路10から、(8+3)×19バイトの誤り訂正符号列を与えられると、その誤り訂正符号列に対して、データ分配処理を行う。データ分配回路20は、(8+3)×19バイトの誤り訂正符号列を、19バイト毎の断片に分割する。図3b−1,図3b−2に示すように、データ分配回路2は、19バイト毎の断片を11台のドライブに割り当てる。割り当てが決まった19バイトの断片は、各々のドライブに対応したデータ配列回路30に送られる。分配されたデータ列は、ドライブ1台あたり丁度1記録ブロック分の大きさ(432バイト×152バイト)と同じ大きさになる。
それぞれのドライブに割り当てて分配される分配データ列は、データ配列回路30に与えられる。データ配列回路30は、データ列の並べ替え処理を行い、記録データをドライブ40へ送出する。ドライブ40は、受け取った記録データをディスク上に保存する。データ配列回路30における並べ替え処理は、ドライブ内部で処理されるインタリーブの逆の操作にあたる。この並べ替え処理によって、ディスク上に記録データが記録されるときのデータ配列は、図3b−1,図3b−2の最下段に示すように、それぞれのリード・ソロモン符号に対応する断片がディスク上で整列するように配置される。
ディスクに記録されたデータを再生する場合には、符号配列回路50が、ドライブ40から読み出したデータを受け取り、並べ替え処理を行う。更に、誤り訂正復号回路60が、誤り位置を検出し、訂正して、再生ブロック列として取り出すという手順をとる。データの再生手順については、後に詳細を説明する。
ドライブ内部で行われるインタリーブや、ECC符号化処理について詳しく説明する。図4に、ドライブ内部における記録ブロックのデータ配置例を示す。図4の例では、データ本体38バイト毎に、斜線部にて示す同期確認用の補助データを挿入して記録を行っている。図中の矢印で示すように、データの記録は、記録領域の横方向に進められるのに対して、誤り訂正符号化は、記録領域の縦方向に行われる。図中、縦方向に選ばれた216バイトのデータ列に対して、32バイトのパリティシンボルが加えられる。32バイトのパリティシンボルは、ドライブ内部で個別にリード・ソロモン符号に基づく誤り訂正符号化を施すことによって追加される。図4において、ドライブ内部の記録領域は、38バイトの幅を持った4列の区分記録領域を有している。縦1列の区分記録領域2×(216+32)バイトあたり、2組のリード・ソロモン符号がインタリーブして配置されている。1組のリード・ソロモン符号は(216+32)バイトの大きさを持つ。このうち、パリティシンボルは32バイトを占めるので、2組のリード・ソロモン符号で、パリティシンボルは64バイトの大きさになる。図中、リード・ソロモン符号は、縦1列の区分記録領域に2組ずつをまとめて示し、情報シンボル2×216バイトにつき、64バイト(2×32バイト)のパリティとして表されている。
ドライブに渡される配列データを処理して、保存する形式に変換する手順を、より詳細に説明する。図5a〜図5eは、配列データを、図4に示したデータ保存形式に変換する手順を説明する図である。図5aは、ドライブに渡される配列データの例である。配列データは、432バイト×152バイトの大きさを単位としたデータ列として、各ドライブに渡される。まず、このような配列データに対して、データの並べ替え処理が行われる。このデータの並べ替え処理は、ドライブ内でのECC符号化処理の前処理として行われる。図5aのような配列データのデータ列を、216×304バイトの行列に並べ替える処理が行われ、図5bに示すような符号化前処理データが生成される。
続いて、符号化前処理データの列に沿って、ドライブ内での誤り訂正符号化処理を施す。図5bにおける符号化前処理データの1列は216バイトの情報シンボルを有している。各列216バイトの情報シンボルに対して、32バイトのパリティシンボルを加えて誤り訂正符号化処理を施す。図5cに示すように、248行×304列のドライブ内ECC符号化データが作られる。
次に、インタリーブの並べ替え処理を施す。図5dに示すように、ドライブ内ECC符号化データにおける2列ずつが互いにインタリーブするように並べ替える。この並べ替え処理によって、ディスク上で連続するバイト列が互いに異なる誤り訂正符号に属するようになる。最後に、補助データの挿入処理を行う。図5eに示すように、図5dのようなインタリーブデータに、同期確認用の補助データを挿入する。図5eのようなデータが、ディスク上へ記録される。
図5eに示すデータは、図中、データ保存形態と示されている。このような保存形態で記録されるデータ列は、図4と同様な構造である。11×19バイトの誤り訂正符号化データA〜A11は、ドライブ外部のデータ分配回路20で分割されて、11個の断片A,A,・・・,A11に分かれる。例えば、一つの断片Aに含まれる19バイトは、A1,0〜A1,18に当たる。図5eに示すように、これらA1,0〜A1,18は、データ配列回路30で行われた並べ替え処理と、ドライブ内部でのインタリーブによる並べ替え処理とによって、記録方向に沿って整列するようになる。同様に、誤り訂正符号化データの他の断片B(B1,0〜B1,18),C(C1,0〜C1,18),D(D1,0〜D1,18),・・・もディスク上で整列する。
ドライブ内部でのインタリーブは、連続する記録データに発生したバースト誤りを異なる誤り訂正符号に振り分けるので、訂正能力を高める効果がある。例えば、図6aに示すように、記録方向に沿って、I1,0からR1,18までに渡る1行以上のバイト列、I1,0,I1,1,I1,2,…,R1,17,R1,18にデータ検出誤りが含まれていたとする。データを再生する場合、ディスクに記録する際の処理と逆の手順でデインタリーブ処理が施される。デインタリーブ処理の結果、図6bに示すように、これらのデータは全て異なる列の独立な誤り訂正符号に属するようになる。図6aに示すバースト誤りの場合、デインタリーブ処理後に誤り位置が分散化されるので、誤り訂正符号を構成している各列に、誤りを含むバイトデータは、1つ以下になる。従って、各列の誤り訂正符号の中で、1バイト誤りとして処理できる。特に可換媒体を用いるディスクドライブでは、媒体の局所的な欠陥による誤り訂正能力を確保するため、このようなインタリーブが施されることが多い。
ドライブ内部で付加した誤り訂正符号を用いれば、デインタリーブによって必ず誤りデータを検出し、訂正できるとは限らない。良い結果を与えない場合もある。ドライブ内部で設けたパリティを用いて全ての誤りを訂正できない場合というのは、バースト誤りやランダム誤りが非常に多い場合に限られる。このうち、ランダム誤りが非常に多い場合は、デインタリーブによってデータの配列を変更しても、変更後の誤り位置もランダムであることに違いはなく、並べ替えの効果は見込めない。一方、バースト誤りが非常に多い場合に、デインタリーブを施すと、特定の位置に集中していた誤りがブロック内にばら撒かれることになる。誤りの個数が一定の閾値を下回っていれば、これをランダム誤りとして訂正できる可能性がある。しかしながら、ドライブ内の訂正能力を上回る誤りがランダム誤りとしてばら撒かれると、ドライブ外部でもランダム誤り訂正を行う必要が生じる。
ランダム誤りの訂正には、誤りデータの一つ一つについて誤り位置と数値とを特定する必要がある。一方、バースト誤りでは、複数バイトのデータに対して一括して位置を特定することができるため、ランダム誤り訂正に比べて訂正できる誤りの個数の上限は大きくなる。ドライブ外部に付加された誤り訂正符号にとっては、ドライブ内で発生したバースト誤りが、一部の符号語に集中しているほうが望ましい。すなわち、ドライブ外部の誤り訂正符号化回路10で付加された誤り訂正符号にとっては、デインタリーブによってバースト誤りを振り分けてしまうことが必ずしも良い結果を与えない。
図7に示す具体的な例を用いて、バースト誤りが発生した場合の復号手順を説明する。図7は、ドライブ1からドライブ3まで及びドライブ5の各ドライブに、それぞれ100行ずつのバースト誤りが発生した場合の例である。図7の最上段に並ぶデータ保存形態において、太枠と×印とで示した4列に亘る一続きの箇所にバースト誤りが発生している。図示するように、ドライブ1とドライブ2のバースト誤り位置は重複しているものとする。同様に、ドライブ3とドライブ5のバースト誤り位置も重複しているものとする。
単一のドライブに設けられた誤り訂正符号では、100行に渡るバースト誤りを訂正できない。このため、ドライブ1,2,3,5に記録されたデータは、誤りを含んだまま、各ドライブから読み出される。図7の2段目に並ぶ読み出しデータを参照すると分かるように、各ドライブから読み出されるデータは、デインタリーブなどによる影響で、誤り位置がブロック全体にばら撒かれる。一方、ドライブ4、ドライブ6からドライブ11までの7台では、ドライブ内部において誤り検出や訂正が済んでいるため、読み出しデータに誤りは含まれていない。
図2の符号配列回路50では、各ドライブから読み出される複数ブロックのデータを、誤り訂正符号化回路10によって符号化されたリード・ソロモン符号毎に並べ替え処理を施す。図7の最下段に示すように、各ブロックからは19バイトずつの断片が取り出され、3456行の独立なリード・ソロモン符号が得られる。リード・ソロモン符号の断片は、各ドライブのディスク上で記録方向に沿うように整列していたことにより、符号配列回路50によって配列された後の誤り位置は、バースト誤りが発生した位置に対応して、一部の誤り訂正符号に再び集中して並ぶようになる。
図7の最下段において、ドライブ1に記録されていた断片A,B,C,D,E,F,・・・は、3456行の独立なリード・ソロモン符号の第1列に並んでいる。ドライブ2に記録されていた断片A,B,C,D,E,F,・・・は、3456行の第2列に並んでいる。ドライブ1のバースト誤りも、ドライブ2のバースト誤りも、それぞれ3つの断片のみに集中している。ドライブ3に記録されていた断片A,B,C,D,E,F,・・・は、3456行の第3列に並んでいる。ドライブ5に記録されていた断片A,B,C,D,E,F,・・・は、3456行の第5列に並んでいる。ドライブ3のバースト誤りも、ドライブ5のバースト誤りも、それぞれ3つの断片のみに集中している。
各ドライブ内部の記録ブロックでは、図4の斜線部に示したような同期確認用の補助データによって、バースト誤りが発生した位置を特定することができる場合がある。本実施の形態においては、ドライブ40から符号配列回路50へ、バースト誤り位置の情報が与えられる場合には、誤り訂正符号に従って配列された読み出しデータと共に、バースト誤りを含む断片であることを示すフラグも、誤り訂正復号回路60に送られる。
誤り訂正復号回路60では、バースト誤りを含むとして指定された断片が、1つの誤り訂正符号あたり最大3つまでであれば、消失訂正によって復元することができる。再生誤りが含まれるブロックが3つ以下の場合には、再生誤りを含む断片が3つ以下の場合、3つの断片全てを消失として指定し、復元することができる。再生誤りが含まれる断片が4つ以上ある場合、それらの断片全てを消失と扱って復元することはできない。しかしながら、ブロックより細かい単位でバースト誤りを含む断片の位置に関する情報が得られれば、復号を行うことが可能である。以下、その復号方法について詳述する。
図7に示した例では、3456行の各行に誤り訂正符号を並べたとき、バースト誤りを含む断片の数は全ての行で2つ以下になっている。例えば、ドライブ1,2で発生したバースト誤りを含む断片を持つ行が3つある。これらの3つの行においては、ドライブ3,5に対応する第3列及び第5列の断片中に含まれるランダム誤りが9バイト以下であれば、これを検出し、訂正することができる。なお、ドライブ4,6〜11に対応する列の断片に含まれるランダム誤りは訂正済みである。
同様に、ドライブ3,5に対応する第3列及び第5列の断片にバースト誤りが含まれ、ドライブ1,2に対応する第1列及び第2列の断片にランダム誤りが含まれている場合でも、ランダム誤りが9バイト以下であれば訂正できる。また、ドライブ1,2,3,5にランダム誤りが含まれる場合でも、対応する4つの断片に含まれる誤りの総数が28バイト以下であれば、位置を特定して訂正を行える。このようにして、全ての行で誤り訂正できれば、すべてのブロックのデータを復元できることになる。
訂正可能となる条件は、次のようになる。Mバイトずつの長さをもつP個の断片がパリティとして加えられているリード・ソロモン符号で、バースト誤りを含む断片の位置に関する情報が与えられるとき、バースト誤りを含む断片の個数pがP個以下で、更にその他の断片内部に含まれるランダム誤りの個数rが、
r<M×(P−p)/2
を満たしていれば、符号は訂正できる。また、ドライブから消失に関する情報が得られない場合でも、バースト誤りを含む断片がパリティとして加えられた断片の数より少なければ、読み出されたデータを直接利用して、次のようにバースト誤り位置を特定し、訂正処理を進めることもできる。リード・ソロモン符号における誤り訂正処理の詳細は、公知文献「符号理論」(今井秀樹著 電子情報通信学会編)などに記載されている。ここでは、符号内に設けた一部の断片を消失と仮定したときに、それが復号できるかを判定するための手順を示す。
ガロア体GF(2)上のリード・ソロモン符号として、数1で表される生成多項式G(x)の符号が使われるものとして説明する。
Figure 0005142045
まず、読み出しによって得られた1列分の符号209バイトが、受信ベクトル(y,y,y,・・・,y208)で表されるとき、受信多項式Y(x)、及び、シンドロームs,s,s,・・・,s56を、数2で表すものとする。
Figure 0005142045
シンドロームsを係数とする多項式S(z)を、数3とおく。
Figure 0005142045
更に、消失と仮定した断片に対応する位置多項式λ(z)を、数4とする。
Figure 0005142045
ここで、Dは消失と仮定した位置の集合を表し、i∈Dは消失と仮定した位置全てについて処理することを示す。
消失と仮定した断片が1つの場合、位置多項式λ(z)は、zの19次式となり、断片が2つの場合は38次式となる。消失と仮定した断片以外に誤りが含まれていなければ、数5は、位置多項式λ(z)よりも小さい次数の誤り評価多項式ψ(z)を解にもつ。
Figure 0005142045
また、消失と仮定した断片の外部に訂正可能な範囲のランダム誤りがある場合には、ランダム誤りに対応する位置多項式をσ(z)として、数6の関係が満足される。
Figure 0005142045
消失と仮定した断片が1つならば、位置多項式σ(z)は18次以下、誤り評価多項式ψ(z)は36次以下となる。また、断片が2つならば、位置多項式σ(z)は9次以下、誤り評価多項式ψ(z)は46次以下となる。
このような解があるか否かは、数7で表されるλ(z)S(z)の係数sλ iを用いた行列式、|S|によって判定できる。数7において、hは消失の個数、kはランダム誤りの個数である。消失と仮定した断片が1つのとき、h=19、k=18とする。断片が2つのときには、h=38、k=9として、行列式|S|の値を求める。行列式の値が0であれば、解があると考えられる。
Figure 0005142045
誤りを含むと想定される断片のそれぞれについて、位置多項式λ(z)とシンドロームsから、行列式|S|を求め、行列式の値が0になる断片を選ぶことで、バースト誤りの位置が特定できる。それぞれの断片に対応した位置多項式λ(z)の係数は、断片の位置によって定まる固定値となるため、予め求めておける。
以上、記録データ8ブロックに対して3ブロック分のパリティを加える場合の例について説明した。課題を解決するための手段の欄における説明に対応させると、M=19,N=8,P=3の場合である。その他、本発明は、パリティのブロック数が異なる場合でも同様に誤り訂正が可能である。例えば、2ブロック分のパリティを加えた場合には、読み出されたデータについて、各行のリード・ソロモン符号あたり断片1つ分の消失を訂正でき、また、断片に含まれるバイト数の半数未満の数のランダム誤りを訂正できる。すなわち、パリティがPブロック加えられていれば、(P−1)以下の断片の消失を特定し、また、誤り訂正符号の残りの訂正能力によってランダム誤りが訂正できる。
このように、ドライブ外部で付加したリード・ソロモン符号の断片が、ディスク上で整列して配置されるように、データ配列回路30がデータの並べ替え処理を行っている。この並べ替え処理によって、ディスク上で発生したバースト誤りが、ドライブ外部でもバースト誤りとして処理できる。公知文献に記載された技術のように、記録ブロックの対応する位置のバイトデータ同士で排他的論理和をとる場合と比べて、高い誤り訂正能力が得られ、記憶装置の信頼性を高められる。また、データ配列回路を設けずに、ドライブ外部でリード・ソロモン符号を付加した場合と比べても、バースト誤りが、異なるリード・ソロモン符号に分散してしまうのを避けられることから、局所的な誤りを効果的に訂正できる利点が得られる。
ドライブ40が、ドライブ内部で符号化した誤り訂正符号のドライブ内パリティを、記録データと共に符号配列回路50に出力する機能を備えていれば、更に高い訂正能力を実現できる。誤り訂正復号回路60では、ドライブ外で付加された誤り訂正符号の復号を行った後で、更にドライブ内で加えられたパリティを元に、誤り訂正に失敗したブロック単体の訂正も行える。ドライブからデータを読み出す時に復号に失敗したブロックでも、ドライブ外で付加された符号を用いて、いくつかの断片が復元された後では、全てのデータを復元できる可能性がある。
上記説明では、図4に示したような、ドライブ内部で誤り訂正符号化処理が施されて記録された記録データに対して、誤り訂正を適用する例を示した。しかし、本発明は、この例に限らず、例えばDVD(Digit al Versatile Disk)で採用されているように、積符号によって誤り訂正符号化処理が施されるドライブに適用した場合でも高い効果が得られる。図8に示すように、DVDでは、積符号のうち、行方向の誤り訂正符号PIは、データの記録方向に沿って符号化されている。しかし、積符号のうち、PO訂正符号化方向に付加されているパリティは、列あたり16バイトになっている。従って、例えば、合計で16行を超えるバースト誤りが発生したブロックでは、ドライブ単体での誤り訂正が行えない。しかし、記録方向に沿って16バイトずつに分割した断片を用いて、上記実施の形態と同様にドライブ外部でパリティを付加しておくことで、このようなデータも復旧できるようになる。
なお、本発明は上記実施の形態に限定されない。本発明の技術思想の範囲内において、上記実施の形態は適宜変更され得ることは明らかである。
RAIDレベル4を採用したディスクアレイ装置の構成を示す図 本実施の形態におけるディスクアレイ装置の構成を説明する図 記録データを、どのようにドライブに保存するかを示す説明図(1/2) 記録データを、どのようにドライブに保存するかを示す説明図(2−1/2) 記録データを、どのようにドライブに保存するかを示す説明図(2−2/2) ドライブ内部における記録ブロックのデータ配置例を示す図 ドライブ内部でのデータ保存手順を説明する図(1/5) ドライブ内部でのデータ保存手順を説明する図(2/5) ドライブ内部でのデータ保存手順を説明する図(3/5) ドライブ内部でのデータ保存手順を説明する図(4/5) ドライブ内部でのデータ保存手順を説明する図(5/5) バースト誤りの影響を説明する図(1/2) バースト誤りの影響を説明する図(2/2) 本実施の形態でのデータ再生時の手順を示す図 ドライブ内部の記録ブロックの第2のデータ配置例を示す図
符号の説明
10…誤り訂正符号化回路
20,200…データ分配回路
30…データ配列回路
40,400…ドライブ
50…符号配列回路
60…誤り訂正復号回路
700…パリティ演算回路
800…復号回路

Claims (5)

  1. M,N,Pを自然数としたとき、記録データを記録するN+P台のドライブと、
    M×Nの大きさの記録データを与えられると、M×Pの大きさのパリティを付加する符号化回路であって、前記記録データからM×Nバイトを取り出して成る情報シンボルに、M×Pバイトのパリティシンボルを付加して、符号長M×(N+P)バイトのリード・ソロモン符号を生成する誤り訂正符号化回路と、
    前記M×(N+P)バイトのリード・ソロモン符号を、Mバイトずつの(N+P)個の断片に分割し、前記(N+P)個の断片を、前記N+P台のドライブに分配する分配回路と、
    前記N+P台のドライブのそれぞれにおいて、前記Mバイトずつの(N+P)個の断片が、データの記録方向に沿って整列して保存されるように、前記N+P台のドライブのそれぞれに対して、異なるリード・ソロモン符号に属するMバイトずつの断片を配列する配列回路と、
    前記N+P台のドライブから読み出された記録データに誤りがあった場合に、前記M×(N+P)バイトのリード・ソロモン符号に基づいて、前記誤りを訂正する誤り訂正復号回路と
    を具備し、
    記N+P台のドライブは、それぞれ、
    前記配列回路によって与えられるMバイトずつの断片に対し、インタリーブによる並べ替えを施して記録を行い、
    前記配列回路は、
    前記インタリーブによる並べ替えの逆操作を行って、前記Mバイトずつの断片を配列する
    ディスクアレイ装置。
  2. 前記N+P台のドライブは、それぞれ、
    前記Mバイトずつの断片を記録すると共に補助データを記録し、前記補助データに基づいて、再生不良領域に関する情報を出力し、
    前記誤り訂正復号回路は、
    前記再生不良領域に関する情報を用いて、前記M×(N+P)バイトのリード・ソロモン符号毎に、前記再生不良領域の消失訂正を含む誤り訂正を行う
    請求項1記載のディスクアレイ装置。
  3. 前記Pは2以上の整数であり、
    前記誤り訂正復号回路は、
    前記M×(N+P)バイトのリード・ソロモン符号毎に、誤りを含む(P−1)個以下の断片を特定し、特定した断片に対する消失訂正と、その他の断片に対するランダム誤り訂正とを行う
    請求項記載のディスクアレイ装置。
  4. 前記N+P台のドライブは、
    前記配列回路から与えられる前記Mバイトずつの断片のデータ列に対して、第二の誤り訂正符号化を施し、前記第二の誤り訂正符号化によって、読み出したデータの誤りを訂正する
    請求項記載のディスクアレイ装置。
  5. 前記誤り訂正復号回路は、
    前記N+P台のドライブが、前記第二の誤り訂正符号化によって読み出したデータの誤りを訂正できなかった場合に、前記M×(N+P)バイトのリード・ソロモン符号による誤り訂正を行った後で、前記第二の誤り訂正符号化による誤り訂正を行う
    請求項4記載のディスクアレイ装置。
JP2008331433A 2008-12-25 2008-12-25 ディスクアレイ装置 Expired - Fee Related JP5142045B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008331433A JP5142045B2 (ja) 2008-12-25 2008-12-25 ディスクアレイ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008331433A JP5142045B2 (ja) 2008-12-25 2008-12-25 ディスクアレイ装置

Publications (2)

Publication Number Publication Date
JP2010152745A JP2010152745A (ja) 2010-07-08
JP5142045B2 true JP5142045B2 (ja) 2013-02-13

Family

ID=42571741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008331433A Expired - Fee Related JP5142045B2 (ja) 2008-12-25 2008-12-25 ディスクアレイ装置

Country Status (1)

Country Link
JP (1) JP5142045B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2603613B2 (ja) * 1986-02-12 1997-04-23 三菱電機株式会社 情報記憶装置
US5299208A (en) * 1991-11-14 1994-03-29 International Business Machines Corporation Enhanced decoding of interleaved error correcting codes
JP2914004B2 (ja) * 1992-05-11 1999-06-28 三菱電機株式会社 アレイ型ディスクシステムにおける誤り訂正符号化方法
JP4224875B2 (ja) * 1998-07-17 2009-02-18 ソニー株式会社 光ディスク、光ディスク記録装置、光ディスクの記録方法、光ディスクの再生装置、及び、光ディスクの再生方法
JP3993035B2 (ja) * 2001-07-19 2007-10-17 松下電器産業株式会社 データ記録方法、記録媒体、および再生装置
JP4059884B2 (ja) * 2004-01-09 2008-03-12 松下電器産業株式会社 デジタルデータ復調装置およびデジタルデータ変復調装置

Also Published As

Publication number Publication date
JP2010152745A (ja) 2010-07-08

Similar Documents

Publication Publication Date Title
US8166370B1 (en) Efficient RAID ECC controller for RAID systems
JP5341207B2 (ja) 磁気テープへのマルチトラック記録のための再書込効率の高いecc/インタリービング
US7188295B2 (en) Method and apparatus for embedding an additional layer of error correction into an error correcting code
JP4709485B2 (ja) オンドライブ統合化セクタ・フォーマットraidの誤り訂正符号システムおよび方法
US20030147167A1 (en) Multiple level (ML), integrated sector format (ISF), error correction code (ECC) encoding and decoding processes for data storage or communication devices and systems
US20100180180A1 (en) Ecc interleaving for multi-track recording on magnetic tape
US9612905B2 (en) Encoding and writing of data on multitrack tape
JPH04230124A (ja) マルチレベルエラー訂正システム
US20070300126A1 (en) Information processing device and information processing method
JP4290881B2 (ja) エラー訂正コードを含む磁気媒体上へのデータの格納のための方法及び装置
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
US6378100B1 (en) Method and apparatus for encoding multiword information with error locative clues directed to low protectivity words
JP2002509331A5 (ja)
JP2006517048A (ja) エラー訂正ブロックをエンコーディング及びデコーディングする方法
JP4141964B2 (ja) エラー訂正コードに追加のエラー訂正レイヤを埋め込む方法及び装置
JP4988418B2 (ja) 回転する記憶媒体の複数の層にデータを読み書きする方法、プログラム及びデータ記憶装置
JP2009532818A (ja) データエンコーディング及びデコーディングの方法並びに装置、その方法を具現するためのプログラムが記録された記録媒体、及び記録媒体駆動システム
EP1100207A2 (en) System and method for providing error correction coding with selectively variable redundancy
JP5142045B2 (ja) ディスクアレイ装置
US6615384B1 (en) Encoding/decoding method and apparatus and disk storage device
US11967342B2 (en) Header decoding mechanism for tape storage
US20240087605A1 (en) Header encoding mechanism for tape storage
JP2005064608A (ja) 信号処理方法及び信号処理回路
KR20220124182A (ko) 저장 시스템에서의 데이터 복구를 위한 인코딩
JP2009064554A (ja) エラー訂正コードを含む磁気媒体上へのデータの格納のための方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121003

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121026

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees