JP4425904B2 - ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム - Google Patents

ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム Download PDF

Info

Publication number
JP4425904B2
JP4425904B2 JP2006344884A JP2006344884A JP4425904B2 JP 4425904 B2 JP4425904 B2 JP 4425904B2 JP 2006344884 A JP2006344884 A JP 2006344884A JP 2006344884 A JP2006344884 A JP 2006344884A JP 4425904 B2 JP4425904 B2 JP 4425904B2
Authority
JP
Japan
Prior art keywords
block
write
read error
detection
omission
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
JP2006344884A
Other languages
English (en)
Other versions
JP2008159120A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006344884A priority Critical patent/JP4425904B2/ja
Priority to US11/902,772 priority patent/US7917802B2/en
Priority to CN2007101627335A priority patent/CN101206896B/zh
Priority to KR1020070103083A priority patent/KR100955358B1/ko
Publication of JP2008159120A publication Critical patent/JP2008159120A/ja
Application granted granted Critical
Publication of JP4425904B2 publication Critical patent/JP4425904B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • G11B5/09Digital recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、複数のブロックで区分けされた記憶媒体において、ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出するライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラムに関する。
従来より、複数のブロックで区分けされた記憶媒体(例えば、ディスク)において、ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けが発生することが知られている。このようなライト抜けの発生原因について図11を用いて具体的に説明すると、旧データを記憶するブロックに対して更新データを書き込むライト処理をヘッドが行う際に、ヘッドがパーティクル等に乗り上げ、ブロックにデータの書き込みが行われずに旧データが残る。なお、ヘッドがパーティクル等へ乗り上げた影響により振動が発生し、隣接するブロックに読み込み不可能なデータの書き込み(いわゆる、アンリカバードリードエラー)が発生する。
このため、上記のようなライト抜けを検出するライト検出方法が実施されている。例えば、特許文献1では、複数のブロックごとに更新状態を記憶する履歴ブロックをディスクに設け、更新データをディスクにライトするときに、新しい更新状態を履歴ブロックに記憶させるとともに、CPUのメモリにも更新状態を記憶させる。その後、履歴ブロックに記憶された更新状態とメモリに記憶された更新状態とを比較して、ライト抜けを検出する。
特開2006−252530号公報
ところで、上記した従来の技術では、ライト処理を行った後に、ライト抜けを検出する処理を行うので、ライト処理を行うたびに、全てのブロックのライト抜けを検出する時間が余計にかかる結果、処理性能が劣化してしまうという課題があった。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ライト抜けを検出しつつ、処理性能が劣化しないようにすることを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置であって、リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知手段と、前記検知手段によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出手段と、を備えることを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記所定の範囲を受け付け、当該所定の範囲を設定する設定手段と、前記設定手段によって設定された前記所定の範囲内にあるブロックの前記ライト抜けを検出することを特徴とする。
また、請求項3に係る発明は、上記の発明において、リードおよびライトを行うヘッドの数、前記ヘッドの回転速度、前記記憶媒体のベンダおよび前記記憶媒体の種類のいずれか一つまたは複数に応じて、前記所定の範囲を決定する決定手段と、前記検出手段は、前記決定手段によって決定された前記所定の範囲内にあるブロックの前記ライト抜けを検出することを特徴とする。
また、請求項4に係る発明は、上記の発明において、前記検出手段は、前記所定の範囲のブロックがリード不可能な状態である場合には、当該ブロックを検出対象から排除することを特徴とする。
また、請求項5に係る発明は、上記の発明において、前記検出手段は、前記所定の範囲のブロックがリード不可能な状態である場合には、当該ブロックに隣接するブロックの前記ライト抜けを検出することを特徴とする。
また、請求項6に係る発明は、上記の発明において、前記検出手段によって検出された前記ライト抜けのブロックのデータを前記冗長化された記憶媒体のブロックのデータに更新する更新手段をさらに備えることを特徴とする。
また、請求項7に係る発明は、複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置が実行するライト抜け検出方法であって、リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知工程と、前記検知工程によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出工程と、を含んだことを特徴とする。
また、請求項8に係る発明は、複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置が実行するライト抜け検出方法をコンピュータに実行させるライト抜け検出プログラムであって、リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知手順と、前記検知手順によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出手順と、をコンピュータに実行させることを特徴とする。
請求項1、7および8の発明によれば、リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定し、リードエラーが回復不可能なリードエラーであると判定された場合には、リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出するので、ライト処理を行うたびに全てのブロックのライト抜けを検出することなく、ライト抜けの検出を行う結果、ライト抜けを検出しつつ、処理性能が劣化しないようにすることが可能である。
また、請求項2の発明によれば、所定の範囲を受け付け、所定の範囲を設定し、設定された所定の範囲内にあるブロックのライト抜けを検出するので、所定の範囲を動的に変化する処理負担を掛けることなく、任意に所定の範囲を設定して、より簡易にライト抜けを検出することが可能である。
また、請求項3の発明によれば、リードおよびライトを行うヘッドの数、ヘッドの回転速度、記憶媒体のベンダおよび記憶媒体の種類のいずれか一つまたは複数に応じて、所定の範囲を決定し、決定された所定の範囲内にあるブロックのライト抜けを検出するので、所定の範囲を固定することなく、所定の範囲を動的に変化させて、より適切にライト抜けを検出することが可能である。
また、請求項4の発明によれば、所定の範囲のブロックがリード不可能な状態である場合には、ブロックを検出対象から排除するので、所定の範囲内のブロックだけを検出する結果、より簡易にライト抜けを検出することが可能である。
また、請求項5の発明によれば、所定の範囲のブロックがリード不可能な状態である場合には、ブロックに隣接するブロックのライト抜けを検出するので、所定の範囲内のブロックだけでなく、所定の範囲外であってライト抜けの可能性が高いブロックについても検出する結果、より精度良くライト抜けを検出することが可能である。
また、請求項6の発明によれば、検出されたライト抜けのブロックのデータを冗長化された記憶媒体のブロックのデータに更新するので、ライト抜けのブロックのデータを正常にすることが可能である。
以下に添付図面を参照して、この発明に係るライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラムの実施例を詳細に説明する。なお、以下では、デバイスアダプタに本発明を組み込んだ場合の例を説明する。
以下の実施例では、実施例1に係るデバイスアダプタの概要および特徴、デバイスアダプタの構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。なお、図1〜図11中では、デバイスアダプタをDA(Device‐Adapter)と記載する。
[実施例1に係るデバイスアダプタの概要および特徴]
まず最初に、図1を用いて、実施例1に係るデバイスアダプタの概要および特徴を説明する。図1は、実施例1に係るデバイスアダプタの概要および特徴を説明するための図である。
実施例1のライト抜け検出装置としてのデバイスアダプタ10では、複数のブロックで区分けされたディスク30において、ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出することを概要とする。そして、このデバイスアダプタ10では、ライト抜けを検出しつつ、処理性能が劣化しないようにする点に主たる特徴がある。なお、デバイスアダプタ10およびディスク30a、30bを含むRAID装置1は、冗長化構成となっている。
この主たる特徴について具体的に説明すると、複数のブロックで記憶領域を区分けされたディスクを制御するデバイスアダプタ10は、リードエラーのブロックを検知する(図1の(1)参照)。図1の例を用いて説明すると、デバイスアダプタ10は、ディスク30bからのデータリード時のディスク応答において、読み出しが不可能なブロックであることを示すアンリカバードリードエラーのブロックを検知する。なお、図1では、アンリカバードリードエラーのブロックが検知されたディスクをライト抜けの可能性があるディスクとして「被疑ディスク」とする。
そして、デバイスアダプタ10は、検知されたリードエラーのブロックから所定の範囲内にあるブロックのライト抜けを検出する(図1の(2)参照)。具体的には、デバイスアダプタ10は、被疑ディスク30bにおけるアンリカバードリードエラーのブロックの前後にあるブロックのデータを読み出す。そして、デバイスアダプタ10は、アンリカバードリードエラーのブロックに対応するブロック(図1の例ではブロック「B」)のデータを冗長ディスク30aから読み出して、被疑ディスク30bから読み出されたデータと比較してライト抜けを検出する。つまり、冗長ディスクのデータと被疑ディスクのデータとが異なる場合には、そのデータを記憶するブロックをライト抜けであるとしてリカバリ処理を行う。
このように、デバイスアダプタ10は、ライト処理を行うたびに全てのブロックのライト抜けを検出することなく、ライト抜けの検出を行う結果、上記した主たる特徴のごとく、ライト抜けを検出しつつ、処理性能が劣化しないようにすることが可能である。
[RAID装置の構成]
次に、図2を用いて、図1に示したDAを適用するRAID装置1のハード構成例を説明する。図2は、実施例1に係るRAID装置1のハード構成を示す構成図である。同図に示すように、このRAID装置1は、サーバ装置2に接続されている。
RAID装置1は、上記したDA(Device−Adapter)10と、データをRT40に転送する制御を行うCM(Controller−Module)20と、データを格納するディスク30と、データを中継するRT(Router)40と、サーバ装置2との接続を制御するCA(Channel−Adapter)50とで構成される。DA10は、CPU(Central−Processing−Unit)110と、シリアル転送を行うFC(Fibre−Channel)120と、データを一時的に格納するBuffer130とを備える。CM20は、CPU210と、リードデータやライトデータを格納するCacheメモリ220とを備える。
RAID装置1は、サーバ装置2からのリード要求またはライト要求を受け付けると、RT40を介してCM20のCacheメモリ220にリードデータまたはライトデータを格納し、その格納されたリードデータまたはライトデータに基づいて、DA10がディスク30へリードまたはライトを行う。
[デバイスアダプタの構成]
次に、図3を用いて、図1に示したデバイスアダプタ10の構成を説明する。図3は、実施例1に係るデバイスアダプタ10の構成を示すブロック図である。同図に示すように、このデバイスアダプタ10は、CM制御I/F11、ディスク制御I/F12、制御部13、記憶部14を備え、CM20およびディスク30と接続される。以下にこれらの各部の処理を説明する。
CM制御I/F11は、接続されるCM20との間でやり取りする各種情報に関する通信を制御する。具体的には、CM制御I/F11は、CM20のキャッシュメモリ220からライトデータ、リードデータまたは後述する冗長化データを受信する。
ディスク制御I/F12は、接続されるディスク30との間でやり取りする各種情報に関する通信を制御する。具体的には、ディスク制御I/F12は、ディスク30との間でリードまたはライトに関する情報の送受信を行う。
記憶部14は、制御部13による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、バッファ14aを備える。このバッファ14aは、ディスク30から読み出したデータを一時的に記憶する。
制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、エラー検知部13a、ライト抜け検出部13b、リカバリ部13cを備える。なお、エラー検知部13aは、特許請求の範囲に記載の「検知手段」に対応し、ライト抜け検出部13bは、特許請求の範囲に記載の「検出手段」に対応する。
エラー検知部13aは、リードエラーのブロックを検知する。具体的には、エラー検知部13aは、ディスク30からのデータリード時のディスク応答において、エラーが発生すると、そのエラーがアンリカバードリードエラーであるか否かを判定し、アンリカバードリードエラーである場合には、アンリカバードリードエラーであるブロックの周辺のライト抜け検出処理を行うように、後述するライト抜け検出部13bに通知する。また、エラー検知部13aは、アンリカバードリードエラーでない場合には、エラー内容に沿ったリカバリ処理を実行するように、後述するリカバリ部13cに通知する。
ここで、図4を用いて、具体的にエラー検知処理を説明する。同図に示すように、エラー検知部13aは、図4の(1)に例示すようなエラーが発生した場合には、アンリカバードリードエラーでないエラーであると判定し、一方、図4の(2)に例示するようなエラーが発生した場合には、アンリカバードリードエラーであると判定する。つまり、ライト抜けが発生する可能性が高い発生原因(例えば、ディスク内に浮遊する塵など)によって発生したエラーであるか否かを判定している。
図3の説明に戻ると、ライト抜け検出部13bは、検知されたアンリカバードリードエラーのブロックから図示しない入力部によって設定された所定の範囲内にあるブロックのライト抜けを検出する。具体的には、ライト抜け検出部13bは、エラー検知部13aからライト抜け検出処理を行う旨の通知を受けると、CM20のキャッシュメモリ220を獲得する。そして、ライト抜け検出部13bは、前ブロックが診断済みであるかを判定する。
その結果、ライト抜け検出部13bは、前ブロックが判定済みでない場合には、被疑ディスク30bの前ブロックに対応する冗長ディスク30aのブロックのデータをキャッシュメモリ220に読み出し、被疑ディスク30aの前ブロックのデータをバッファ14aに読み出す。また、ライト抜け検出部13bは、前ブロックが判定済みである場合には、被疑ディスク30bの後ブロックに対応する冗長ディスク30aのブロックのデータをキャッシュメモリ220に読み出し、被疑ディスク30aの後ブロックのデータをバッファ14aに読み出す。
その後、ライト抜け検出部13bは、読み出した冗長ディスクのデータと被疑ディスクのデータとが一致するか否かを判定し、冗長ディスクのデータと被疑ディスクのデータとが一致しない場合には、そのブロックがライト抜けであることを後述するリカバリ部13cに通知する。また、ライト抜け検出部13bは、冗長ディスクのデータと被疑ディスクのデータとが一致する場合には、そのブロックがライト抜けでない旨をリカバリ部13cに通知する。
ここで、図5および図6を用いて、具体的な例を挙げてライト抜け検出処理を説明する。図5に示すように、ライト抜け検出部13bは、獲得されたCM20のキャッシュメモリ220に前ブロックに対応する冗長ディスク30aのブロックにおけるデータ(図5の例ではデータ「B」)を読み出す。そして、DA10のバッファ14aに前ブロックのデータ(図5の例ではデータ「Old」)を読み出す。そして、ライト抜け検出部13bは、読み出した冗長ディスクのデータと被疑ディスクのデータとが一致するか判定し、一致しない場合には、そのデータを記憶するブロックをライト抜けであるとする。
また、ライト抜け検出部13bは、図6に示すように、診断範囲にあるブロックがリードエラーにより読み出せない場合には(図6の例では、ブロック「D」)、冗長ディスクのデータと被疑ディスクのデータとが一致するか否かの判定を行わずに、検出対象から排除する診断スキップを行う。なお、縮退状態であって冗長ディスクが存在しない場合には、ライト抜け検出処理を行えないので、アンリカバードリードエラーとなったブロックの前後数ブロックが旧データとなっている可能性があり、これらのブロックへのリード要求に対してエラー応答をするようにする。
図3の説明に戻ると、リカバリ部13cは、データのリカバリを行って正常性を回復する。具体的には、リカバリ部13cは、アンリカバードリードエラー以外のエラーであってエラー内容に沿ったリカバリ処理を実行する旨の通知をエラー検知部13aから受け付けた場合には、エラー内容に沿ったリカバリ処理を行う。また、リカバリ部13cは、ブロックがライト抜けである旨の通知を受け付けた場合には、被疑ディスク30bにおけるライト抜けのブロックを対応する冗長ディスク30aのブロックに更新する。
そして、リカバリ部13cは、ライト抜けブロックの更新を行った後に、または、ライト抜けでない旨の通知を受け取った後に、後ブロックが診断済みであるか否かを判定し、診断済みでない場合には、後ブロックの診断を行う旨の指示をライト抜け検出部13bに通知する。一方、リカバリ部13cは、診断済みである場合には、アンリカバードリードエラーのブロックであるエラーLBAのリカバリ処理を行う。
ここで、図7を用いて、具体的な例を挙げてリカバリ処理について説明する。同図に示すように、リカバリ部13は、被疑ディスク30bにおける前ブロック「B」のデータがライト抜けにより「Old」である場合には、冗長ディスク30aにおける前ブロックのデータ「B」を読み出して、その読み出されたデータ「B」を被疑ディスク30bの前ブロックのデータとして更新する。なお、リカバリする方法として、冗長ディスクが存在するので、被疑ディスクを故障とし、冗長を失わせて縮退状態にするようにしてもよい。
[デバイスアダプタによる処理]
次に、図8を用いて、実施例1に係るデバイスアダプタ10による処理を説明する。図8は、実施例1に係るデバイスアダプタ10の処理動作を示すフローチャートである。
同図に示すように、デバイスアダプタ10のエラー検知部13aは、ディスク30からのデータリード時のディスク応答において、エラーが発生すると(ステップS101肯定)、そのエラーがアンリカバードリードエラーであるか否かを判定し(ステップS102)、アンリカバードリードエラーである場合には(ステップS102肯定)、アンリカバードリードエラーであるブロックの周辺のライト抜け検出処理を行うように、ライト抜け検出部13bに通知する。
また、エラー検知部13aは、アンリカバードリードエラー場合には(ステップS102肯定)、アンリカバードリードエラーであるブロックの周辺のライト抜け検出処理を行うように、ライト抜け検出部13bに通知し、後述するリカバリ処理をリカバリ部13cが行うように指示する(ステップS103)。そして、リカバリ部13cは、アンリカバードリードエラー以外のエラーであってエラー内容に沿ったリカバリ処理を実行する旨の通知をエラー検知部13aから受け付けた場合には、エラー内容に沿ったリカバリ処理を行う(ステップS104)。
[デバイスアダプタによるライト抜け検出処理]
次に、図9を用いて、実施例1に係るデバイスアダプタ10によるライト抜け検出処理を説明する。図9は、実施例1に係るデバイスアダプタ10のライト抜け検出処理動作を示すフローチャートである。
同図に示すように、デバイスアダプタ10のライト抜け検出部13bは、エラー検知部13aからライト抜け検出処理を行う旨の通知を受けると、CM20のキャッシュメモリ220を獲得する(ステップS201)。そして、ライト抜け検出部13bは、前ブロックが診断済みであるかを判定する(ステップS202)。その結果、ライト抜け検出部13bは、前ブロックが判定済みでない場合には(ステップS202否定)、被疑ディスク30bの前ブロックに対応する冗長ディスク30aのブロックのデータをキャッシュメモリ220に読み出し(ステップS203)、被疑ディスク30aの前ブロックのデータをバッファ14aに読み出す(ステップS204)。
また、ライト抜け検出部13bは、前ブロックが判定済みである場合には(ステップS202肯定)、被疑ディスク30bの後ブロックに対応する冗長ディスク30aのブロックのデータをキャッシュメモリ220に読み出し(ステップS205)、被疑ディスク30aの後ブロックのデータをバッファ14aに読み出す(ステップS206)。その後、ライト抜け検出部13bは、読み出した冗長ディスクのデータと被疑ディスクのデータとが一致するか否かを判定し(ステップS207)、冗長ディスクのデータと被疑ディスクのデータとが一致しない場合には(ステップS207否定)、そのブロックがライト抜けであることを後述するリカバリ部13cに通知する。
そして、リカバリ部13cは、ブロックがライト抜けである旨の通知を受け付けると、被疑ディスクにおけるライト抜けのブロックを対応する冗長ディスク30aのブロックに更新する(ステップS208)。また、ライト抜け検出部13bは、冗長ディスクのデータと被疑ディスクのデータとが一致する場合には(ステップS207肯定)、そのブロックがライト抜けでない旨をリカバリ部13cに通知する。
そして、リカバリ部13cは、ライト抜けブロックの更新を行った後に(ステップS208)、または、ライト抜けでない旨の通知を受け取った後にステップS207肯定)、後ブロックが診断済みであるか否かを判定し(ステップS209)、診断済みでない場合には(ステップS209否定)、後ブロックの診断を行う旨の指示をライト抜け検出部13bに通知してステップS202の処理に戻る。一方、リカバリ部13cは、後ブロックが診断済みである場合には(ステップS209肯定)、アンリカバードリードエラーのブロックであるエラーLBAのリカバリ処理を行う(ステップS210)。
[実施例1の効果]
上述してきたように、リードエラーのブロックを検知し、検知されたブロックから所定の範囲内にあるブロックのライト抜けを検出するので、ライト処理を行うたびに全てのブロックのライト抜けを検出することなく、ライト抜けの検出を行う結果、ライト抜けを検出しつつ、処理性能が劣化しないようにすることが可能である。
また、実施例1によれば、所定の範囲を受け付け、所定の範囲を設定し、設定された所定の範囲内にあるブロックのライト抜けを検出するので、所定の範囲を動的に変化する処理負担を掛けることなく、任意に所定の範囲を設定して、より簡易にライト抜けを検出することが可能である。
また、実施例1によれば、所定の範囲のブロックがリード不可能な状態である場合には、ブロックを検出対象から排除するので、所定の範囲内のブロックだけを検出する結果、より簡易にライト抜けを検出することが可能である。
また、実施例1によれば、検出されたライト抜けのブロックのデータを冗長化された冗長化ディスクのブロックのデータに更新するので、ライト抜けのブロックのデータを正常にすることが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)ライト抜け検出範囲
また、上記の実施例1では、ライト抜けの検出範囲が予め設定されている場合を説明したが、本発明はこれに限定されるものではなく、ライト抜けの検出範囲を動的に変化するようにしてもよい。
具体的には、デバイスアダプタ10は、リードおよびライトを行うヘッドの数、ヘッドの回転速度、ディスクのベンダおよびディスクの種類のいずれか一つまたは複数に応じて、ライト抜けの検出範囲(つまり、アンリカバードリードエラーのブロックから幾つのブロックのライト抜け検出を行うかの範囲)を決定し、ライト抜け検出処理を行う際には、その決定された検出範囲のライト抜け検出を行う。
このように、リードおよびライトを行うヘッドの数、ヘッドの回転速度、ディスクのベンダおよびディスクの種類のいずれか一つまたは複数に応じて、所定の範囲を決定し、決定された所定の範囲内にあるブロックのライト抜けを検出するので、所定の範囲を固定することなく、所定の範囲を動的に変化させて、より適切にライト抜けを検出することが可能である。
(2)診断スキップ
また、上記の実施例1では、診断範囲にあるブロックがリードエラーにより読み出せない場合には、ライト抜け検出対象から排除する場合を説明したが、本発明は、診断範囲にあるブロックがリードエラーにより読み出せない場合には、そのブロックに隣接するブロックのライト抜けを検出するようにしてもよい。例えば、デバイスアダプタ10は、アンリカバードリードエラーのブロックを検知し、そのアンリカバードリードエラーのブロックにおける後ろのブロックがリードエラーにより読み出せない場合には、さらにもう一つ後ろのブロックをライト抜け検出対象として、ライト抜けの検出を行う。
このように、所定の範囲のブロックがリード不可能な状態である場合には、ブロックに隣接するブロックのライト抜けを検出するので、所定の範囲内のブロックだけでなく、所定の範囲外であってライト抜けの可能性が高いブロックについても検出する結果、より精度良くライト抜けを検出することが可能である。
(3)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、エラー検知部13aとライト抜け検出部13bを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(4)プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図10を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、ライト抜け検出プログラムを実行するコンピュータを示す図である。
同図に示すように、ライト抜け検出プログラムとしてのコンピュータ600は、CM制御I/F610、ディスク制御I/F620、ROM630、CPU640およびRAM660をバス650で接続して構成される。
そして、ROM630には、上記の実施例と同様の機能を発揮するデバイスアダプタ、つまり、図10に示すように、エラー検知プログラム631、ライト抜け検出プログラム632およびリカバリプログラム633が予め記憶されている。なお、プログラム631〜633については、図3に示したデバイスアダプタ10の各構成要素と同様、適宜統合または分散してもよい。
そして、CPU640が、これらのプログラム631〜633をROM630から読み出して実行することで、図10に示すように、各プログラム631〜633は、エラー検知プロセス641、ライト抜け検出プロセス642およびリカバリプロセス643として機能するようになる。各プロセス641〜643は、図3に示したキャッシュ検知部13a、ライト抜け検出部13b、リカバリ部13cにそれぞれ対応する。
そして、CPU640は、図示しないディスクからデータを読み出してRAM660のバッファ661に格納し、RAM660に格納されたデータに基づいて処理を実行する。
以上のように、本発明に係るライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラムは複数のブロックで区分けされた記憶媒体において、ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する場合に有用であり、特に、ライト抜けを検出しつつ、処理性能が劣化しないようにすることに適する。
実施例1に係るデバイスアダプタの概要および特徴を説明するための図である。 RAID装置のハード構成を示すブロック図である。 実施例1に係るデバイスアダプタの構成を示すブロック図である。 エラー内容の一例を説明するための図である。 ライト抜け検出処理について説明するための図である。 ライト抜け検出処理の診断スキップについて説明するための図である。 リカバリ処理について説明するための図である。 実施例1に係るデバイスアダプタの処理動作を示すフローチャートである。 実施例1に係るデバイスアダプタのライト抜け検出処理動作を示すフローチャートである。 ライト抜け検出プログラムを実行するコンピュータを示す図である。 ライト抜けについて説明するための図である。
符号の説明
10 デバイスアダプタ
11 CM制御I/F
12 ディスク制御I/F
13 制御部
13a エラー検知部
13b ライト抜け検出部
13c リカバリ部
14 記憶部
14a バッファ
20 CM
220 キャッシュメモリ
30 ディスク

Claims (8)

  1. 複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置であって、
    リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知手段と、
    前記検知手段によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出手段と、
    を備えることを特徴とするライト抜け検出装置。
  2. 前記所定の範囲を受け付け、当該所定の範囲を設定する設定手段をさらに備え、
    前記検出手段は、前記設定手段によって設定された前記所定の範囲内にあるブロックの前記ライト抜けを検出することを特徴とする請求項1に記載のライト抜け検出装置。
  3. リードおよびライトを行うヘッドの数、前記ヘッドの回転速度、前記記憶媒体のベンダおよび前記記憶媒体の種類のいずれか一つまたは複数に応じて、前記所定の範囲を決定する決定手段をさらに備え、
    前記検出手段は、前記決定手段によって決定された前記所定の範囲内にあるブロックの前記ライト抜けを検出することを特徴とする請求項1に記載のライト抜け検出装置。
  4. 前記検出手段は、前記所定の範囲のブロックがリード不可能な状態である場合には、当該ブロックを検出対象から排除することを特徴とする請求項1〜3のいずれか一つに記載のライト抜け検出装置。
  5. 前記検出手段は、前記所定の範囲のブロックがリード不可能な状態である場合には、当該ブロックに隣接するブロックの前記ライト抜けを検出することを特徴とする請求項1〜3のいずれか一つに記載のライト抜け検出装置。
  6. 前記検出手段によって検出された前記ライト抜けのブロックのデータを前記冗長化された記憶媒体のブロックのデータに更新する更新手段をさらに備えることを特徴とする請求項1〜5のいずれか一つに記載のライト抜け検出装置。
  7. 複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置が実行するライト抜け検出方法であって、
    リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知工程と、
    前記検知工程によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出工程と、
    を含んだことを特徴とするライト抜け検出方法
  8. 複数のブロックで区分けされた記憶媒体を有する記憶装置において、当該ブロックごとに記憶された情報が更新されずに古いデータが残るライト抜けを検出する前記記憶装置に接続されたライト抜け検出装置が実行するライト抜け検出方法をコンピュータに実行させるライト抜け検出プログラムであって、
    リード処理時の前記記憶装置から応答がリードエラーの場合、リードエラーのブロックを検知し、前記応答のエラー内容に基づいて当該リードエラーが回復不可能なリードエラーであるか否かを判定する検知手順と、
    前記検知手順によって前記リードエラーが回復不可能なリードエラーであると判定された場合には、前記リードエラーのブロックから所定の範囲内にあるブロックと冗長化された記憶媒体内のブロックとを比較してライト抜けを検出する検出手順と、
    をコンピュータに実行させることを特徴とするライト抜け検出プログラム。
JP2006344884A 2006-12-21 2006-12-21 ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム Expired - Fee Related JP4425904B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006344884A JP4425904B2 (ja) 2006-12-21 2006-12-21 ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム
US11/902,772 US7917802B2 (en) 2006-12-21 2007-09-25 Write omission detector, write omission detecting method, and computer product
CN2007101627335A CN101206896B (zh) 2006-12-21 2007-10-08 写遗漏检测器和写遗漏检测方法
KR1020070103083A KR100955358B1 (ko) 2006-12-21 2007-10-12 라이트 누락 검출 장치, 라이트 누락 검출 방법 및 라이트누락 검출 프로그램을 기록한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006344884A JP4425904B2 (ja) 2006-12-21 2006-12-21 ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム

Publications (2)

Publication Number Publication Date
JP2008159120A JP2008159120A (ja) 2008-07-10
JP4425904B2 true JP4425904B2 (ja) 2010-03-03

Family

ID=39542399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006344884A Expired - Fee Related JP4425904B2 (ja) 2006-12-21 2006-12-21 ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム

Country Status (4)

Country Link
US (1) US7917802B2 (ja)
JP (1) JP4425904B2 (ja)
KR (1) KR100955358B1 (ja)
CN (1) CN101206896B (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002008319A (ja) 2000-06-16 2002-01-11 Hitachi Ltd 記録装置及び媒体への記録方法
JP2003036146A (ja) 2001-07-23 2003-02-07 Hitachi Ltd ディスクアレイ制御方式
JP3942483B2 (ja) * 2002-05-15 2007-07-11 富士通株式会社 隣接トラックデータの保証処理方法及びデイスク装置
JP2004326357A (ja) * 2003-04-23 2004-11-18 Internatl Business Mach Corp <Ibm> 冗長化ブロックを有する記憶システム、並びに、当該記憶システムの制御装置、制御方法、プログラム及び記録媒体
JP4535371B2 (ja) 2004-07-15 2010-09-01 富士通株式会社 ディスクアレイ制御プログラム、方法及び装置
JP4303187B2 (ja) 2004-11-10 2009-07-29 富士通株式会社 プログラム、記憶制御方法及び記憶装置
JP4114877B2 (ja) 2004-12-02 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 不正データを検出するための装置、方法、及びプログラム
US7360112B2 (en) * 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
JP4805660B2 (ja) * 2005-02-08 2011-11-02 富士通株式会社 ディスクライト抜け検出装置
JP2008077783A (ja) * 2006-09-22 2008-04-03 Fujitsu Ltd 記憶データ処理装置、記憶装置、記憶データ処理プログラム
US20090055682A1 (en) * 2007-07-18 2009-02-26 Panasas Inc. Data storage systems and methods having block group error correction for repairing unrecoverable read errors

Also Published As

Publication number Publication date
JP2008159120A (ja) 2008-07-10
CN101206896A (zh) 2008-06-25
US7917802B2 (en) 2011-03-29
US20080151407A1 (en) 2008-06-26
KR100955358B1 (ko) 2010-04-29
KR20080058161A (ko) 2008-06-25
CN101206896B (zh) 2011-02-16

Similar Documents

Publication Publication Date Title
US8402210B2 (en) Disk array system
US8516343B2 (en) Apparatus, system, and method for retiring storage regions
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
JP2005122338A (ja) スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
JP6078984B2 (ja) 処理装置,処理方法,処理プログラム及び管理装置
JP4324088B2 (ja) データ複製制御装置
US7624301B2 (en) Method and apparatus for identifying failure module
JP2007241837A (ja) ディスクアレイ制御装置および故障診断方法
JP2007188463A (ja) 故障修復方法および記録装置
JP4500346B2 (ja) ストレージシステム
JP4012420B2 (ja) 磁気ディスク装置及びディスク制御装置
JP4460596B2 (ja) ディスク管理方法、ディスク管理装置およびストレージシステム
JP4425904B2 (ja) ライト抜け検出装置、ライト抜け検出方法およびライト抜け検出プログラム
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US10592349B2 (en) Storage control device and storage apparatus
JP2008084168A (ja) 情報処理装置及びデータ修復方法
CN109343986B (zh) 处理内存故障的方法与计算机系统
JP6901171B1 (ja) 情報処理装置、情報処理方法及びプログラム
CN112562774B (zh) 存储设备挂载方法、装置、计算机设备和存储介质
JP6805838B2 (ja) ディスク管理システム、ディスク管理方法、および、ディスク管理プログラム
JP2008250462A (ja) ディスクアレイ装置、ディスクアレイ制御方法およびプログラム
JP4780331B2 (ja) ディスクアレイシステム
JP2010049394A (ja) 磁気ディスクの書き込み障害の検出と回復を行うディスクアレイシステム、方法およびプログラム
JP2005309768A (ja) ファイル制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

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: 20091208

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: 20091209

R150 Certificate of patent or registration of utility model

Ref document number: 4425904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131218

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees