JP2001228980A - ディスクアレイ用コントローラ - Google Patents

ディスクアレイ用コントローラ

Info

Publication number
JP2001228980A
JP2001228980A JP2001002698A JP2001002698A JP2001228980A JP 2001228980 A JP2001228980 A JP 2001228980A JP 2001002698 A JP2001002698 A JP 2001002698A JP 2001002698 A JP2001002698 A JP 2001002698A JP 2001228980 A JP2001228980 A JP 2001228980A
Authority
JP
Japan
Prior art keywords
data
controller
data block
disk array
disk
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.)
Pending
Application number
JP2001002698A
Other languages
English (en)
Other versions
JP2001228980A5 (ja
Inventor
L Patterson Brian
ブライアン・エル・パターソン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2001228980A publication Critical patent/JP2001228980A/ja
Publication of JP2001228980A5 publication Critical patent/JP2001228980A5/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1088Scrubbing in RAID systems with parity

Abstract

(57)【要約】 【課題】 RAID記憶システムにおける潜在的なデー
タ破損を検出することができるようなディスクアレイ用
コントローラを提供すること。 【解決手段】 ディスクアレイ108用コントローラ1
06であって、前記ディスクアレイ108は、少なくと
も1つのデータブロックおよび該データブロックのため
の誤り符号を記憶し、前記コントローラ106は、破損
が検査されるデータブロックを定期的に選択するための
手段302、304、314と、前記データブロックの
値および前記誤り符号の値に基づいて、前記データブロ
ックが破損しているか否かを判定することにより、選択
されている前記データブロックに応答するための手段3
02、304、314と、を備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、少なくとも1つの
データブロックおよび該データブロックのための誤り符
号を記憶するディスクアレイ用のコントローラに関す
る。
【0002】
【従来の技術】コンピューティングシステムは、多くの
場合、データを記憶するための大容量記憶システムを備
えている。1つの一般的なタイプの大容量記憶システム
は、「RAID」(Redundant Arrays of Inexpensive
Disks:安価なディスクからなる冗長アレイ)である。
RAIDシステムの詳細な解説は、1993年6月9日
に出版された書籍「The RAID Book: A Source Book for
RAID Technology」(the RAID Advisory Board, Lino
Lakes, Minn)に記載されている。
【0003】典型的なRAID記憶システムは、ともに
通信リンクを介して接続されたコントローラとディスク
アレイとを備えている。ディスクアレイは、データを記
憶するための多数の磁気記憶ディスクを備えている。動
作時に、RAID記憶システムのコントローラは、外部
のホストコンピュータからの入力/出力(I/O)コマ
ンドを受信するように動作する。これらのI/Oコマン
ドに応答して、コントローラはディスクアレイのディス
クに対してデータの読み出し、書き込みを行い、ディス
クアレイとホストコンピュータとの間のデータ転送を調
整する。また、RAID実装レベルに応じて、RAID
システムのコントローラは冗長データを生成し、ディス
クアレイに該冗長データを書き込む。冗長情報を用いる
ことにより、データが破損されるような事象が生じて
も、ユーザデータを再生できるようになる。
【0004】RAIDレベル1記憶システムは、例え
ば、データを記憶するための1つ或いは複数のディスク
(データディスク)と、冗長データを記憶するための同
数の付加的な「ミラー」ディスクとを備えている。この
場合の冗長データは、データディスクに記憶されたデー
タの単なるコピーである。1つ或いは複数のデータディ
スクに記憶されたデータが破損した場合には、ミラーデ
ィスクを用いて、破損したデータを再構築することがで
きる。他のRAIDレベルは、多数のディスクに亘って
分配されたデータのための冗長データを記憶する。ある
ディスク上のデータが破損した場合には、他のディスク
のデータを用いて、破損したデータを再構築する。
【0005】RAID記憶システムのコントローラの1
つの共通な機能は、各ディスクにおいてデータの破損を
定期的に検査することである。多くの場合、これは、各
ディスク上でコントローラが一連の読み出し動作を実行
することにより行われる。ある特定の読み出し動作から
コントローラがデータを受信しない場合には、その対応
するデータは、破損しているものと判定される。その
際、コントローラはユーザに通知するか、或いは自動的
にデータを回復しようと試みるか、またはその両方を行
うことができる。しかしながら、読み出し動作の結果と
してデータが受信される場合には、そのデータは有効で
あると仮定される。
【0006】
【発明が解決しようとする課題】このタイプの検査が有
する1つの問題点は、ディスクアレイに記憶された、破
損しているが、読み出し可能なデータを検出できないこ
とである。このタイプのデータの破損は、しばしば「潜
在的なデータ破損」と呼ばれる。すなわち、そのデータ
は読み出し可能であるが、元々記憶されたビットと同じ
ビットパターンを正確には表していない。重要なこと
は、このタイプのデータ破損は、長時間に亘って検出さ
れないままでいることがあるということである。これ
は、その破損が、ユーザが希にしかアクセスしない記憶
データの小さなセグメント(例えば、1データブロッ
ク)に生じる場合に、特に当てはまる。
【0007】潜在的なデータ破損の発生により、RAI
D記憶システムにおけるデータ損失のリスクが大きく増
加するようになる。例えば、5番目のディスクがパリテ
ィディスクであるような、5枚のディスクを有するRA
ID−5システムを考える。第2のディスク上に記憶さ
れた1データブロックが読み出し可能であるが破損して
おり、この破損が検出されないままであると仮定しよ
う。ここで更に、第4のディスクが故障したと仮定す
る。第4のディスクの故障は、後にコントローラにより
検出され、コントローラは、第4のディスクのデータを
回復させるためにデータ回復動作を開始する。ところ
が、第2のディスクに破損したデータブロックが存在し
ているため、第4のディスク上のあるデータは回復不可
能である。更に、第2のディスク上の破損したデータブ
ロックも回復不可能である。
【0008】本発明は、上述したような従来の問題点に
鑑みて為されたものであり、RAID記憶システムにお
ける潜在的なデータ破損を検出することができるような
ディスクアレイ用コントローラを提供することを目的と
している。
【0009】
【課題を解決するための手段】本発明の一実施形態で
は、ディスクアレイ用コントローラが提供される。ディ
スクアレイは、少なくとも1つのデータブロックおよび
そのデータブロック用の誤り符号を記憶するためのもの
である。コントローラは、破損を検査するためのデータ
ブロックを定期的に選択するように動作する。検査され
るデータブロックを選択すると、コントローラは、更
に、そのデータブロックの値およびそのデータブロック
用の誤り符号の値に基づいて、そのブロックが破損して
いるか否かを判定するように動作する。
【0010】他の実施形態では、記憶システムが提供さ
れる。記憶システムは、少なくとも1つのデータブロッ
クおよびそのデータブロック用の誤り符号を記憶するた
めのディスクアレイを備えている。更に、記憶システム
は、第1および第2の装置を備えている。第1の装置
は、破損が検査されるデータブロックを定期的に選択す
るように動作可能である。第2の装置は、そのデータブ
ロックの値およびその誤り符号の値を用いて、そのデー
タブロックが破損しているか否かを判定することによ
り、選択されたデータブロックに応答するように動作可
能である。
【0011】更に他の実施形態では、複数のデータブロ
ックおよびそのデータブロックそれぞれの誤り符号を記
憶するためのディスクアレイに記憶された破損データを
識別するためのコンピュータ製品が提供される。コンピ
ュータ製品は、コンピュータが、(a)破損が検査され
る複数のデータブロックから1つのデータブロックを定
期的に選択し、(b)ディスクアレイ上で読み出し動作
を行い、データブロックおよびそのデータブロックのた
めの誤り符号を読み出し、(c)データブロックおよび
誤り符号が読み出し可能である場合には、データブロッ
クの値およびその誤り符号の値に基づいて、データブロ
ックが破損しているか否かを判定できるようにするため
のコンピュータ読み取り可能プログラム手段を有するコ
ンピュータ利用可能媒体を備えている。一実施形態で
は、コンピュータ製品はディスクアレイ用コントローラ
である。コントローラは、外部のホストコンピュータか
らI/Oコマンドを受信し、かつI/Oコマンドに応答
して、ディスクアレイとホストコンピュータとの間でデ
ータを転送するように動作することができる。好ましい
一実施形態では、プログラムは、所定の優先レベルを有
するバックグラウンドプログラムである。更に、データ
ブロックが破損していると判定される場合には、プログ
ラムにより、コンピュータはデータブロックの回復を試
みることもできる。
【0012】
【発明の実施の形態】説明のために図面に示されるよう
に、本発明は、コントローラおよびディスクアレイを備
えたRAID記憶システムにおいて実現される。以下に
詳細に説明されるが、コントローラは、バックグラウン
ド検査プログラムを定期的に実行するように動作する。
このプログラムの管理下で、コントローラは、ディスク
アレイにおいて破損しているが、読み出し可能なデータ
を検出するように動作する。すなわち、コントローラ
は、潜在的なデータ破損を検出するように動作する。破
損しているが、読み出し可能なデータを検出すると、コ
ントローラは、標準的な手法を用いて、そのデータを回
復させるように動作する。
【0013】図1は、本発明の第1の実施形態を組み込
んでなるデータ処理システム102のブロック図を示し
ている。データ処理システム102は、ホストコンピュ
ータ103と、該ホストコンピュータ103に大容量の
記憶を提供するための記憶システム104とを備えてい
る。
【0014】記憶システム104は、コントローラ10
6と、ディスクアレイ108とを備えている。コントロ
ーラ106は、第1の通信リンク107を介してホスト
コンピュータ103に接続されており、かつ第2の通信
リンク110を介してディスクアレイ108に接続され
ている。これらのリンクはともに、任意の適切な通信経
路を表すことができる。例えば、第1の通信リンク10
7は、LAN(LocalArea Network)を表してもよい。
第2の通信リンク110は、例えば、SCSI(Small
Computer System Interface)を表してもよい。ディス
クアレイ108は、データのブロックを記憶するための
一群のディスク(D1〜D5)を備えている。また、デ
ィスクアレイ108は、当該技術分野においてよく知ら
れている種々の他の機構(例えば、読み取り/書き込み
ヘッドおよびドライブモータ)および回路も備えてい
る。
【0015】動作時に、コントローラ106は、標準的
な方法で、通信リンク107を介してホストコンピュー
タ103からI/Oコマンドを受信することができる。
これらのI/Oコマンドに応答して、ホストコンピュー
タは、第2の通信リンク110上でディスクアレイ10
8に適当なコントロール信号及びデータ信号を送出する
ことにより、ディスクD1〜D5に対してデータの読み
出し、書き込みを行うことができる。
【0016】図2は、データが各ディスク上で(コント
ローラ106の動作により)如何に編成されるかを示し
ている。図示されているように、データはブロック毎
に、RAID−5記憶方式に従って記憶される。列の先
頭D1〜D5は、アレイ内の個々のディスクを表してい
る。列内の各エントリは、対応するディスクに記憶され
たデータブロックを表している。
【0017】簡略化するために、各ディスクは、8ブロ
ックのみの記憶容量を有するものとして示されている。
しかしながら、本発明を組み込んでなるRAID記憶シ
ステムのディスクは多くの場合、より多数のデータブロ
ックを備えることは理解されよう。ブロックは「X−
X」として指定される。ただし、最初の「X」はディス
クの数を表しており、2番目の「X」はデータブロック
の数を表している。従って、例えば「1−7」が付され
たデータブロックは、第1のディスクD1の7番目のブ
ロックである。データの「ストライプ」は、ユーザデー
タブロックと、同じ行に配置されたパリティデータブロ
ックとを示している。従って、例えばデータブロック
「1−1」、「2−1」、「3−1」および「4−1」
は、第1のストライプのためのユーザデータブロック
(すなわち、ユーザデータから構成されるブロック)で
ある。
【0018】「X−X−P」で指定されるブロックは、
ある特定のストライプに関連するパリティデータブロッ
クを表している。例えば、5−1−Pは、第1のストラ
イプのためのパリティデータブロックである。各ストラ
イプのためのパリティデータブロックは、排他的論理和
(EXOR)関数等のある関数を用いて、コントローラ
106により計算される。一般的には必要ではないが、
このRAID−5記憶システムでは、パリティデータブ
ロックは、繰返しパターンでディスク間に分配される。
【0019】図2に示されるように、データブロック
(すなわち、ユーザデータブロック或いはパリティデー
タブロック)をディスクに書き込む際に、コントローラ
106は、そのデータブロックのための誤り符号も(標
準的な方法で)ディスクに書き込むということに留意す
ることが重要である。この例では、誤り符号はCRC
(巡回冗長検査符号)値である。しかしながら、本明細
書において、「誤り符号」という用語は、データブロッ
クが破損しているか否かを判定するために用いることが
できるデータの任意の組を示している。従って、例え
ば、他の実施形態では、誤り符号をチェックサム値或い
はパリティデータとすることができる。
【0020】図3は、コントローラ106の上位レベル
の概略図である。図示されているように、コントローラ
106は、プロセッサ302、メモリ304、ホストイ
ンタフェース306およびディスクインタフェース30
8を備えており、全てローカルバス310を介して接続
されている。これらの各構成要素は実際には複数の素子
を備えている場合があることに留意されたい。例えば、
メモリ304は、1つ或いは複数のROM(Read Only
Memory)と、1つ或いは複数のRAM(RandomAccess M
emory)とを備えている場合がある。ローカルバス31
0は、例えば、付随するコントロールバスとともに、1
つ或いは複数のデータバスを備えている場合がある。図
示されているように、ホストインタフェース306は、
コントローラ106に(第1の通信リンク107を介し
て)ホストコンピュータ103とのインタフェースを提
供する。ディスクインタフェース308は、(第2の通
信リンク110を介して)ディスクアレイ108とのイ
ンタフェースを提供する。
【0021】プロセッサ302は、メモリ304に格納
された種々のファームウエアプログラムを実行するよう
に動作する。これらのプログラムの多くは標準的であ
り、コントローラ106が、ホストインタフェース30
6上で受信したI/Oコマンドを受信し、かつ処理し、
そのI/Oコマンドに応答してホストコンピュータ10
3とディスクアレイ108との間のデータの転送を調整
できるようにする。
【0022】重要なのは、プロセッサ302により実行
されるプログラムのうちの1つは、検査プログラム31
4であるということである。以下に示されるように、検
査プログラム314は、記憶されたデータブロックのう
ちの任意のブロックが破損しているか否かを判定するた
めに、ディスクアレイ108内のデータを(データブロ
ック毎に)定期的に検査するよう、コントローラ106
に指示を出す。重要なのは、このプログラムの指示の下
に、コントローラ106が、ディスクアレイ108に記
憶された、読み出し可能であるが破損しているデータブ
ロックを識別するように動作するということである。
【0023】図4は、検査プログラム314の指示の下
に動作している間に、コントローラ106により行われ
る論理を概略的に示すフローチャートである。ここで図
4を参照して、検査プログラム314が開始されると
(ステップ402)、データの破損が検査されるデータ
ブロックが選択される(ステップ404)。
【0024】その後、コントローラ106は、選択され
たデータブロックおよびそのデータブロックのためのC
RC値(すなわち、誤り符号)を読み出すために、適切
なディスク上で読み出し動作を実行する(ステップ40
6)。読み出し動作を実行した後、ディスクアレイ10
8からデータが読み出されない場合には(判定ステップ
408)、そのデータブロックは破損しているものと判
定される。その後、データブロックは、標準的な手法を
用いて、回復させることができる(ステップ410)。
例えば、コントローラ106は、対応するストライプ内
のデータブロックを用いて、データブロックを回復させ
ることもできる。
【0025】しかしながら、ステップ406を実行した
後に、コントローラ106によりそのデータブロックが
受信された場合には、コントローラ106は破損につい
て、更に(読み出し可能な)データブロックを検査する
(ステップ412)。すなわち、コントローラ106
は、潜在的なデータ破損についてデータブロックを検査
する。重要なのは、この検査が、いずれもステップ40
6で受信された、データブロックの値と、そのデータブ
ロックのための格納されたCRC値とに基づいて実行さ
れるということである。以下の説明を容易にするため
に、ステップ406で受信されたCRC値を、「CRC
_READ」とする。
【0026】具体的には、ステップ412は、コントロ
ーラ106が、ステップ406で読み出されたデータブ
ロックの値に基づく新たなCRC値(CRC_NEW)
を計算することにより成し遂げられる。その後、CRC
_READはCRC_NEWと比較され、2つの誤り符
号が同一であるか否かが判定される。2つの値が同一で
ない場合には、コントローラ106は、そのデータブロ
ックが破損しているものと判定する。コントローラ10
6が、そのデータブロックが破損しているものと判定す
る場合には(判定ステップ414)、そのデータブロッ
クを、上述したように標準的な手法を用いて回復させる
ことができる(ステップ410)。
【0027】しかしながら、コントローラ106が、デ
ータブロックが破損していないものと判定する(すなわ
ち、2つのCRC値が同一であると判定される)場合に
は、ディスクアレイ108から読み出されるデータブロ
ックが他にあるか否かについて判定が行われる(判定ス
テップ416)。もし、あるなら、ディスクアレイ10
8に記憶された各データブロックについて破損が検査さ
れるまで、ステップ404〜416が繰り返される。そ
の後、プログラムは終了する(ステップ418)。
【0028】好ましい実施形態では、検査プログラム3
14は、所定の優先レベルを有するバックグラウンドプ
ログラムであるということに留意することが重要であ
る。すなわち、ある所定の条件が満たされるたびに、プ
ログラムは、プロセッサ302により自動的に実行され
る。例えば、この実施形態では、検査プログラム314
は、以下の条件が満たされるたびに実行される。第1の
条件は、そのプログラムが、最後に実行された時点か
ら、所定の長さの時間が経過しているということであ
る。第2の条件は、コントローラが、より高い優先レベ
ルを有するプログラムをその時点で実行していないとい
うことである。他の実施形態では、検査プログラムは、
より高い優先レベルのプログラムがその時点で実行され
てない場合にはいつでも実行される。
【0029】検査プログラム314は、コントローラ1
06が、より高い優先度を有する動作を実行できるよう
に割込み可能であるということにも留意されたい。例え
ば、コントローラ106が現在、検査プログラム314
を実行しており、ホストコンピュータ103からI/O
コマンドが受信されるものと仮定する。I/Oコマンド
が受信されると、検査プログラム314は割り込まれ、
コントローラ106がI/Oコマンドを処理できるよう
にする。I/Oコマンドが処理された後、検査プログラ
ム314が再度実行される。
【0030】上述した説明から、本発明により提供され
るRAID記憶システムが、ディスクアレイ内の潜在的
なデータ破損を検出するために、新規の有効な手法を用
いることは理解されよう。一旦、破損したデータが検出
されると、更にデータの破損が発生する前に、(標準的
な手法を用いることにより)回復させることができる。
これは、記憶システムにおいてデータを損失する危険性
を低減する役割を果たす。従って、全データ記憶の信頼
性が向上する。
【0031】ある状況では、より信頼性の低いディスク
が、より信頼性の高いディスクよりも頻繁に破損が検査
されるように、検査プログラムを改変させることが有利
であるということに留意されたい。この結果、記憶シス
テム全体の信頼性を更に改善することができる。
【0032】このことを更に説明するために、図5は、
本発明の第2の実施形態を組み込んでなる第2のデータ
処理システム502のブロック図を示している。第1の
実施形態と同様に、データ処理システム502は、第1
の通信リンク508を介して図示のように接続されたホ
ストコンピュータ503と記憶システム504とを備え
ている。記憶システム504は、第2の通信リンク51
0を介して接続されたコントローラ506とディスクア
レイ511とを備えている。
【0033】ディスクアレイ511内の記憶ディスク
は、説明の目的で、2つのグループに配置され、各グル
ープが個別のRAIDレベルを有するように概念化する
ことができる。第1のグループ(RAID−1ディス
ク)512は、記憶システム504内のRAIDレベル
1メモリ位置を表している。ミラーリングによる冗長性
(mirror redundancy)が、3対のディスクにより図式
的に表されている。元のデータは、コントローラ506
により第1のディスクの組526に記憶され、一方その
データのコピーが、第2のディスクの組528に記憶さ
れる。第2のグループ(RAID−5ディスク)514
は、記憶システム504内のRAIDレベル5メモリ位
置を表している。
【0034】この実施形態では、コントローラ506
は、内部メモリ520に格納される第1の検査プログラ
ム516と第2の検査プログラム518とを備えてい
る。第1の検査プログラム516は、コントローラ50
6に指示を出して、破損についてRAID−1ディスク
512を検査する。更に、第2の検査プログラム518
は、コントローラ506に指示を出して、破損について
RAID−5ディスクを検査する。
【0035】検査プログラムはいずれも、上述したもの
と同様に、対応するグループ内の各ディスクを検査する
ように動作する。従って、ディスクから読み出すことが
できない各データブロックは、破損しているものと判定
される。更に、ディスクから読み出すことができる各デ
ータブロックは、データブロックの値およびそのデータ
ブロックのためにディスクに格納された誤り符号の値に
基づいて、破損について検査される。しかしながら、重
要なのは、RAID−5ディスク514に記憶されたデ
ータについては、データ損失のリスクがより大きいと考
えられるため、これらのディスクは、RAID−1ディ
スク512より頻繁に検査されるということである。従
って、第2の検査プログラム518は、第1の検査プロ
グラム516より頻繁に実行されるようにスケジュール
される。この結果、記憶システム内のディスクを検査す
ることに向けることができる利用可能なリソースの釣り
合いを保ちつつ、システムの信頼性が改善される。
【0036】上述した実施形態では、検査プログラムに
より提供される機能が、実際には1つ或いは複数のメモ
リ装置に格納された複数のプログラムにより提供される
場合があるということに留意されたい。代替的に、その
機能は、全体として、或いは部分的に、ハードウエア構
成要素により実現される場合もある。例えば、図4に示
されたステップのうちの1つ或いは複数のステップは、
ASIC(Application Specific Integrated Circui
t)、PGA(Programmable Gate Array)、或いはFP
GA(Field Programmable Gate Array)またはその組
み合わせにより実行することができる(これは全てを網
羅してはいない)。
【0037】更に、図4に示されたステップのうちの1
つ或いは複数のステップを、コンピュータが実行できる
ようにするために、本発明を、コンピュータ読み取り可
能プログラムコードを有するコンピュータ利用可能媒体
として実現することもできる。本明細書においては、
「コンピュータ利用可能媒体」は、命令実行システム、
装置或いは素子により、或いはそれらとともに、使用す
るためのプログラムを格納、記憶、伝搬或いは転送する
任意の手段とすることができる。コンピュータ利用可能
媒体は、例えば(全てを網羅してはいないが)、磁気、
光或いは半導体系記憶装置(例えば、図3に示されたメ
モリ304)とすることができる。
【0038】本発明の種々の実施形態について述べてき
たが、それら実施形態は例示のみを目的として提示され
たものであり、限定することを意図していないというこ
とを理解されたい。例えば、本発明を用いて、多くの異
なるタイプのRAID記憶システムおよび他のタイプの
記憶システムを改善することができる。例えば、図5に
示された実施形態では、第1群のディスクは、RAID
レベル1記憶領域専用であり、第2群のディスクは、R
AIDレベル5記憶領域専用である。しかしながら、他
の実施形態では、ディスクアレイ内の各ディスクは、多
数のRAIDレベルに従ってデータを記憶するためのも
のとすることもできる。
【0039】以下に、本発明の実施形態を要約してお
く。 1.ディスクアレイ(108)用コントローラ(10
6)であって、前記ディスクアレイ(108)は、少な
くとも1つのデータブロックおよび該データブロックの
ための誤り符号を記憶し、前記コントローラ(106)
は、破損が検査されるデータブロックを定期的に選択す
るための手段(302、304、314)と、前記デー
タブロックの値および前記誤り符号の値に基づいて、前
記データブロックが破損しているか否かを判定すること
により、選択されている前記データブロックに応答する
ための手段(302、304、314)と、を備えてな
ることを特徴とするディスクアレイ用コントローラ。
【0040】2.前記選択手段の動作を開始するための
手段(302、304、314)を更に備えてなること
を特徴とする前記1に記載のディスクアレイ用コントロ
ーラ。
【0041】3.最後に前記データブロックが検査され
てから所定の長さの時間が経過していることを含む、所
定の条件が満たされた場合に、前記選択手段の動作を開
始するための手段(302、304、314)を更に備
えてなることを特徴とする前記1に記載のディスクアレ
イ用コントローラ。
【0042】4.外部のホストコンピュータ(103)
からI/Oコマンドを受信し、前記I/Oコマンドに応
答して前記ディスクアレイ内の複数の記憶ディスクユニ
ットに対してデータを読み書きするための手段(30
2、306、308)と、前記外部のホストコンピュー
タ(103)からI/Oコマンドを受信している前記受
信手段に応答して、前記応答手段の動作に割り込むため
の手段(302、304、314)と、を更に備えてな
ることを特徴とする前記1、2または3に記載のディス
クアレイ用コントローラ。
【0043】5.前記ディスクアレイ(108)は、前
記データブロックを回復させるために冗長データを更に
記憶し、前記コントローラ(106)は、前記データブ
ロックを回復させるために前記冗長データを用いること
により、破損しているものと判定されている前記データ
ブロックに応答するための手段(302、304、31
4)を更に備えてなることを特徴とする前記1、2、3
または4に記載のディスクアレイ用コントローラ。
【0044】6.前記選択手段は、所定の優先レベルを
有するバックグラウンドプログラム(314)により指
示を受けることを特徴とする前記1、2、3、4または
5に記載のディスクアレイ用コントローラ。
【0045】7.ディスクアレイ(108)に記憶され
た破損データを識別するためのコンピュータ製品であっ
て、前記ディスクアレイ(108)は、複数のデータブ
ロックおよび該データブロックそれぞれのための誤り符
号を記憶し、前記コンピュータ製品は、コンピュータ
が、破損が検査される前記複数のデータブロックから1
つのデータブロックを定期的に選択し、前記データブロ
ックおよび前記データブロックのための前記誤り符号を
読み出すために、前記ディスクアレイ(108)上で読
み出し動作を実行し、前記データブロックおよび前記誤
り符号が読み出し可能である場合には、前記データブロ
ックの値および前記誤り符号の値に基づいて、前記デー
タブロックが破損しているか否かを判定できるようにす
るためのコンピュータ読み取り可能プログラム手段(3
14)を有するコンピュータ利用可能媒体(304)を
備えてなることを特徴とするコンピュータ製品。
【0046】8.前記コンピュータ製品は、外部のホス
トコンピュータ(103)からI/Oコマンドを受信
し、前記I/Oコマンドに応答して前記ディスクアレイ
(108)と前記ホストコンピュータ(103)との間
でデータを転送するように動作可能な、前記ディスクア
レイ(108)用コントローラ(106)であることを
特徴とする前記7に記載のコンピュータ製品。
【0047】9.前記プログラムは、所定の優先レベル
を有するバックグラウンドプログラム(314)である
ことを特徴とする前記7または8に記載のコンピュータ
製品。
【0048】10.前記コンピュータ読み取り可能プロ
グラム(314)は、更に、前記コンピュータが、前記
データブロックが破損しているものと判定された場合に
は、前記データブロックの回復を試みることができるよ
うにすることを特徴とする前記7、8または9に記載の
コンピュータプログラム製品。
【0049】
【発明の効果】上述した説明から明らかなように、本発
明のディスクアレイ用コントローラによれば、RAID
記憶システムにおける潜在的なデータ破損を検出するこ
とができる。
【図面の簡単な説明】
【図1】本発明の一実施形態を組み込んでなるデータ処
理システムのブロック図である。
【図2】図1に示されたデータ処理システムにおいて、
データが各記憶ディスク上で如何に編成されるかを示す
図である。
【図3】図1に示されたデータ処理システムにおけるコ
ントローラの上位レベルの概略図である。
【図4】検査プログラムの管理下で動作する間に、図3
に示されたコントローラにより行われる論理を概略的に
示すフローチャートである。
【図5】本発明の他の実施形態を組み込んでなるデータ
処理システムのブロック図である。
【符号の説明】
106 コントローラ 108 ディスクアレイ 302 プロセッサ 304 メモリ 314 検査プログラム
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/16 320 G06F 12/16 320K 320L 330 330C

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ディスクアレイ(108)用コントロー
    ラ(106)であって、前記ディスクアレイ(108)
    は、少なくとも1つのデータブロックおよび該データブ
    ロックのための誤り符号を記憶し、前記コントローラ
    (106)は、破損が検査されるデータブロックを定期
    的に選択するための手段(302、304、314)
    と、 前記データブロックの値および前記誤り符号の値に基づ
    いて、前記データブロックが破損しているか否かを判定
    することにより、選択されている前記データブロックに
    応答するための手段(302、304、314)と、を
    備えてなることを特徴とするディスクアレイ用コントロ
    ーラ。
JP2001002698A 2000-01-24 2001-01-10 ディスクアレイ用コントローラ Pending JP2001228980A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/490,793 US6629273B1 (en) 2000-01-24 2000-01-24 Detection of silent data corruption in a storage system
US09/490793 2000-01-24

Publications (2)

Publication Number Publication Date
JP2001228980A true JP2001228980A (ja) 2001-08-24
JP2001228980A5 JP2001228980A5 (ja) 2005-07-07

Family

ID=23949493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001002698A Pending JP2001228980A (ja) 2000-01-24 2001-01-10 ディスクアレイ用コントローラ

Country Status (2)

Country Link
US (1) US6629273B1 (ja)
JP (1) JP2001228980A (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859888B2 (en) * 2000-09-19 2005-02-22 Matsushita Electric Industrial Co., Ltd. Data storage array apparatus storing error information without delay in data access, and method, program recording medium, and program for the same
US6968463B2 (en) 2001-01-17 2005-11-22 Hewlett-Packard Development Company, L.P. System for controlling access to resources in a storage area network
US6915397B2 (en) * 2001-06-01 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for generating point in time storage copy
DE10135285B4 (de) * 2001-07-19 2005-08-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
US6931487B2 (en) * 2001-10-22 2005-08-16 Hewlett-Packard Development Company L.P. High performance multi-controller processing
US7117422B2 (en) * 2002-01-22 2006-10-03 Sun Microsystems, Inc. Error detection in storage data
US7032131B2 (en) * 2002-03-26 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for ensuring merge completion in a storage area network
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US7007042B2 (en) * 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
JP4080227B2 (ja) * 2002-03-28 2008-04-23 株式会社日立製作所 データ検証方法およびディスクアレイ装置
US20040153746A1 (en) * 2002-04-24 2004-08-05 Talagala Nisha D. Mechanisms for embedding and using integrity metadata
US6874004B2 (en) * 2002-04-30 2005-03-29 Microsoft Corporation Method and system for detecting cross linked files
US6959413B2 (en) * 2002-06-18 2005-10-25 Lsi Logic Corporation Method of handling unreadable blocks during rebuilding of a RAID device
US6944791B2 (en) * 2002-07-18 2005-09-13 Lsi Logic Corporation Method of handling unreadable blocks during write of a RAID device
US7051155B2 (en) * 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US7020805B2 (en) * 2002-08-15 2006-03-28 Sun Microsystems, Inc. Efficient mechanisms for detecting phantom write errors
US7133883B2 (en) * 2002-12-23 2006-11-07 Sun Microsystems, Inc. General techniques for diagnosing data corruptions
US7103811B2 (en) * 2002-12-23 2006-09-05 Sun Microsystems, Inc Mechanisms for detecting silent errors in streaming media devices
JP2005071196A (ja) * 2003-08-27 2005-03-17 Hitachi Ltd ディスクアレイ装置、及びその障害情報の制御方法
US7353432B1 (en) 2003-11-25 2008-04-01 Sun Microsystems, Inc. Maintaining high data integrity
US7082447B2 (en) * 2004-06-16 2006-07-25 Hitachi, Ltd. Method and apparatus for archive data validation in an archive system
US8127088B2 (en) * 2005-01-27 2012-02-28 Hewlett-Packard Development Company, L.P. Intelligent cache management
US7301718B2 (en) * 2005-01-31 2007-11-27 Hewlett-Packard Development Company, L.P. Recording errors in tape drives
US20060230243A1 (en) * 2005-04-06 2006-10-12 Robert Cochran Cascaded snapshots
US7779218B2 (en) * 2005-07-22 2010-08-17 Hewlett-Packard Development Company, L.P. Data synchronization management
US7206156B2 (en) 2005-07-27 2007-04-17 Hewlett-Packard Development Company, L.P. Tape drive error management
US7325078B2 (en) * 2005-10-06 2008-01-29 Hewlett-Packard Development Company, L.P. Secure data scrubbing
US7721053B2 (en) * 2005-10-24 2010-05-18 Hewlett-Packard Development Company, L.P. Intelligent logical unit provisioning
US7467268B2 (en) 2006-04-14 2008-12-16 Hewlett-Packard Development Company, L.P. Concurrent data restore and background copy operations in storage networks
US7934027B2 (en) * 2007-01-19 2011-04-26 Hewlett-Packard Development Company, L.P. Critical resource management
US8024514B2 (en) * 2007-03-01 2011-09-20 Hewlett-Packard Development Company, L.P. Access control management
US7861031B2 (en) * 2007-03-01 2010-12-28 Hewlett-Packard Development Company, L.P. Access control management
US7694079B2 (en) 2007-04-04 2010-04-06 Hewlett-Packard Development Company, L.P. Tagged sequential read operations
US7743284B1 (en) 2007-04-27 2010-06-22 Netapp, Inc. Method and apparatus for reporting storage device and storage system data
US7743283B1 (en) * 2007-04-27 2010-06-22 Netapp, Inc. Dynamically modifying parameters for servicing of storage devices
US8732521B2 (en) 2011-08-31 2014-05-20 Oracle International Corporation Detection of logical corruption in persistent storage and automatic recovery therefrom
US9026869B1 (en) * 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775978A (en) 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5210860A (en) * 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
US5581690A (en) 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US5504858A (en) 1993-06-29 1996-04-02 Digital Equipment Corporation Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5632012A (en) * 1993-11-24 1997-05-20 Storage Technology Corporation Disk scrubbing system
US5500940A (en) 1994-04-25 1996-03-19 Hewlett-Packard Company Method for evaluating failure in an electronic data storage system and preemptive notification thereof, and system with component failure evaluation
US5572661A (en) 1994-10-05 1996-11-05 Hewlett-Packard Company Methods and system for detecting data loss in a hierarchic data storage system
US5615352A (en) 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5664187A (en) 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
US5615335A (en) * 1994-11-10 1997-03-25 Emc Corporation Storage system self-test apparatus and method
US5961652A (en) 1995-10-13 1999-10-05 Compaq Computer Corporation Read checking for drive rebuild
US6223301B1 (en) * 1997-09-30 2001-04-24 Compaq Computer Corporation Fault tolerant memory

Also Published As

Publication number Publication date
US6629273B1 (en) 2003-09-30

Similar Documents

Publication Publication Date Title
JP2001228980A (ja) ディスクアレイ用コントローラ
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
US7590884B2 (en) Storage system, storage control device, and storage control method detecting read error response and performing retry read access to determine whether response includes an error or is valid
WO2002088922A2 (en) Storage array employing scrubbing operations at the disk-controller level
EP3244315B1 (en) Method and apparatus for performing data recovery in redundant storage system
JP4324088B2 (ja) データ複製制御装置
JP4322870B2 (ja) Raid装置、raid制御方法、及びraid制御プログラム
JP2006139478A (ja) ディスクアレイシステム
US7308601B2 (en) Program, method and apparatus for disk array control
JPH086862A (ja) 記憶媒体に記憶されたデータの保全を向上させるための方法及び関連するシステム
JP4454204B2 (ja) ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
CN112466382A (zh) 一种raid阵列的巡检方法和装置
US20030163757A1 (en) RAID subsystem and data input/output and recovery method in disk error mode
JP2001142650A (ja) アレイディスク制御方法及び装置
KR20110039416A (ko) 인터럽트된 기록 복구를 위한 데이터 저장 방법, 장치 및 시스템
WO2021043246A1 (zh) 数据读取方法及装置
US6229743B1 (en) Method of a reassign block processing time determination test for storage device
US6609219B1 (en) Data corruption testing technique for a hierarchical storage system
US20080155193A1 (en) Staging method for disk array apparatus
JPS6051142B2 (ja) ロギングエラ−制御方式
JPH0573226A (ja) 外部記憶装置におけるデータ入出力方式
US7337270B2 (en) Apparatus, system, and method for servicing a data storage device using work-in-process (WIP) maps
JP2004094547A (ja) Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法
JPH05341921A (ja) ディスクアレイ装置
JPH07146760A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041101

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060811

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061017