(57)【要約】      （修正有）【課題】位相フィールドを使用することにより、ディスク・ストレージ・システム内の書込みエラーを検出するためのスキームを提供すること。【解決手段】ユーザ・データ・ブロックＤはグループ１２０に分けられ、チェック・ブロックＰは各グループの後に挿入される。チェック・ブロックは、グループが書き込まれるたびに更新されるフィールドを含む。最も単純なケースでは、このフィールドは反転される単一ビットである。ただし、保護をより強化するために、増分される複数ビット・カウンタであってもよい。チェック・ブロックは、グループのデータ・ブロックのＸＯＲ組合せであってよく、グループのＬＢＡのＸＯＲ組合せであってもよい。【選択図】図１
2005004733.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ・システムにおいて書込みエラーを検出するための配置構成であって、
各グループが複数のデータ・ブロックおよび１つのチェック・ブロックを含む、グループ単位でデータ・ブロックを格納するための手段を含み、
前記チェック・ブロックは、前記グループがストレージに書き込まれるたびに更新されるものであって、
さらに前記配置構成は、前記チェック・ブロックをチェックすることによって書込みエラーを検出するための手段を含む、配置構成。
【請求項２】
前記チェック・ブロックは、前記グループのデータ・ブロックの組合せである、請求項１に記載の配置構成。
【請求項３】
前記組合せは論理排他的ＯＲの組合せである、請求項２に記載の配置構成。
【請求項４】
前記チェック・ブロックは、前記グループに関連付けられた論理ブロック・アドレスの組合せである、請求項１から３のいずれか一項に記載の配置構成。
【請求項５】
前記組合せは論理排他的ＯＲの組合せである、請求項４に記載の配置構成。
【請求項６】
前記チェック・ブロックは、前記グループが書き込まれるたびに更新される位相フィールドの組合せである、請求項１から５のいずれか一項に記載の配置構成。
【請求項７】
前記組合せは論理排他的ＯＲの組合せである、請求項６に記載の配置構成。
【請求項８】
前記位相フィールドは、前記グループが書き込まれるたびに反転される単一ビット値を含む、請求項６または７に記載の配置構成。
【請求項９】
前記位相フィールドは、前記グループが書き込まれるたびに更新される複数ビット値を含む、請求項６または７に記載の配置構成。
【請求項１０】
前記配置構成は、位相フィールド値に関する不揮発性テーブルをさらに含む、請求項６から９のいずれか一項に記載の配置構成。
【請求項１１】
前記不揮発性テーブルは、予約済みディスク・ドライブ領域と、前記システムのコントローラにキャッシュされる前記テーブルの作業コピーを含む、請求項１０に記載の配置構成。
【請求項１２】
前記配置構成は、書込みオペレーションの前にエントリを記録するように配列された不揮発性ログをさらに含み、前記エントリは、
無効化、および
前記書込みオペレーション完了時削除
のうちの１つに関して配列される、請求項１から１１のいずれか一項に記載の配置構成。
【請求項１３】
請求項１１に従属する場合であって、前記ログは、まだ前記不揮発性テーブルに格納されていない前記コントローラ内の前記テーブルの前記作業コピーへの更新を、保持するように配列される、請求項１２に記載の配置構成。
【請求項１４】
前記ログは、前記システムのコントローラに関するコードも保持するために、メモリ内に格納される、請求項１２または１３に記載の配置構成。
【請求項１５】
前記ストレージ・システムはディスク・ストレージ・システムを含む、請求項１から１４のいずれか一項に記載の配置構成。
【請求項１６】
前記ディスク・ストレージ・システムはＡＴＡディスク・ドライブを含む、請求項１５に記載の配置構成。
【請求項１７】
前記ディスク・ストレージ・システムはＲＡＩＤシステムを含む、請求項１５または１６に記載の配置構成。
【請求項１８】
ストレージ・システムにおいて書込みエラーを検出するための方法であって、前記方法は、
各グループが複数のデータ・ブロックおよび１つのチェック・ブロックを含む、グループ単位でデータ・ブロックを格納すること、
前記グループが書き込まれるたびに前記チェック・ブロックを更新すること、および
前記チェック・ブロックをチェックすることによって起こり得る書込みエラーを検出することを含む方法。
【請求項１９】
前記チェック・ブロックは、前記グループのデータ・ブロックの組合せである、請求項１８に記載の方法。
【請求項２０】
前記組合せは論理排他的ＯＲの組合せである、請求項１９に記載の方法。
【請求項２１】
前記チェック・ブロックは、前記グループに関連付けられた論理ブロック・アドレスの組合せである、請求項１８から２０のいずれか一項に記載の方法。
【請求項２２】
前記組合せは論理排他的ＯＲの組合せである、請求項２１に記載の方法。
【請求項２３】
前記チェック・ブロックは、前記グループが書き込まれるたびに更新される位相フィールドの組合せである、請求項１８から２２のいずれか一項に記載の方法。
【請求項２４】
前記組合せは論理排他的ＯＲの組合せである、請求項２３に記載の方法。
【請求項２５】
前記位相フィールドは、前記グループが書き込まれるたびに反転される単一ビット値を含む、請求項２３または２４に記載の方法。
【請求項２６】
前記位相フィールドは、前記グループが書き込まれるたびに更新される複数ビット値を含む、請求項２３または２４に記載の方法。
【請求項２７】
位相フィールド値は不揮発性テーブルに格納される、請求項２３から２６のいずれか一項に記載の方法。
【請求項２８】
前記不揮発性テーブルは、予約済みディスク・ドライブ領域と、前記システムのコントローラにキャッシュされる前記テーブルの作業コピーを含む、請求項２７に記載の方法。
【請求項２９】
書込みオペレーションの前にエントリを不揮発性ログに記録すること、ならびに
エントリの無効化、および
書込みオペレーション完了時のエントリの削除
のうちの１つのオペレーションを実行することをさらに含む、請求項１８から２８のいずれか一項に記載の方法。
【請求項３０】
請求項２８に依存する場合に、まだ前記不揮発性テーブルに格納されていない前記コントローラ内の前記テーブルの前記作業コピーへの更新を、前記ログ内に保持することをさらに含む、請求項２８に記載の方法。
【請求項３１】
前記ログは、前記システムのコントローラに関するコードも保持するために、メモリ内に格納される、請求項２９または３０に記載の方法。
【請求項３２】
前記ストレージ・システムはディスク・ストレージ・システムを含む、請求項１８から３１のいずれか一項に記載の方法。
【請求項３３】
前記ディスク・ストレージ・システムはＡＴＡディスク・ドライブを含む、請求項１５に記載の方法。
【請求項３４】
前記ディスク・ストレージ・システムはＲＡＩＤシステムを含む、請求項３２または３３に記載の方法。
【請求項３５】
請求項１８から３４のいずれか一項に記載の方法を実質的に実行するためのコンピュータ・プログラム手段を含む、コンピュータ・プログラム要素。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ・システムに関し、具体的には、電子データ・ストレージ用のディスク・ストレージ・システムに関する。
【背景技術】
【０００２】
記録技術の進歩により、ハード・ドライブの容量は年々倍増している。２００３年には、面密度は１平方インチあたり１００ＧＢに達すると予測され、３．５インチ・ドライブでは３００ＧＢを格納できるようになる。
【０００３】
ハード・ドライブの信頼性は、そのＭＴＢＦおよび回復不能エラー率に関して指定される。現在のサーバ・クラスのドライブに関する典型的な指定は、１，０００，０００時間および１０１５ビット読取りでの１回復不能エラーである。ただし、面密度が増加すると、浮上高の低下、媒体の欠陥などにより、信頼性の維持はさらに困難になる。
【０００４】
ストレージ・システムの信頼性をさらに向上させるために、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）アレイ（たとえば、ＲＡＩＤ−１またはＲＡＩＤ−５）が使用されることが多い。ただし、容量の大きなドライブを使用した場合、単一レベルの冗長度では、データ損失の確率を無視できるレベルまで下げるには、もはや十分とは言えない。
【０００５】
以前の書込みコマンドが記録媒体上の正しい位置に書き込んでいないか、または媒体上への記録に失敗したことにより、ディスク・ドライブが読取りコマンドで古いデータを戻してしまう可能性もある。これは、間欠的なハードウェア障害または潜在的な設計上の欠陥による可能性がある。たとえばドライブは、ファームウェアのバグによって誤ったＬＢＡ（論理ブロック・アドレス）にデータを書き込む、オフ・トラックで書き込む、または、１滴の潤滑油（一般に「ｌｕｂｅ」と呼ばれる）がディスク表面からヘッドを離すことによって全く書き込まない、などの可能性がある。
【０００６】
Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＡＴＡ）ドライブなどの市販のドライブは、セント（ｃｅｎｔｓ）／ＭＢ単位で表すと、およそ３分の１と安価であることから、これらをサーバ・アプリケーションで使用することについても、関心が高まっている。ただしこれらのドライブは、元来、ＰＣ内で間欠的に使用することを目的としたものであるため、サーバ・クラスのドライブよりも信頼性が低い可能性がある。ＡＴＡドライブは５１２バイト・ブロックのみをサポートしているため、ブロック・レベルのＬＲＣ（水平冗長検査）を使用してデータの破損を検出することはできない。
【０００７】
単一のディスク・ドライブの場合、コントローラは、各ブロックに書き込んだ直後に再度読み出して、これを検証することができる。
【０００８】
任意タイプの冗長ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）アレイを、読取りデータをチェックできるような方法で実施することができる。たとえば、ＲＡＩＤ−５アレイを使用した場合、コントローラは、読取りデータが他のデータ・ドライブおよびパリティ・ドライブと整合性があることをチェックできる。
【０００９】
ただし、これらの手法には、第１の方法は特別な解像度を必要とし、第２の方法は読取りコマンドごとにいくつかのドライブにアクセスする必要があることから、どちらの方法も、１秒あたりのＩ／Ｏ（入力／出力）コマンドに関して、全体のスループットを劇的に低下させるという欠点がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、前述の欠点を軽減できる、ストレージ・システムにおける書込みエラーの検出が求められている。
【課題を解決するための手段】
【００１１】
本発明の第１の態様によれば、ストレージ・システムにおいて書込みエラーを検出するための配置構成が提供され、この配置構成（ａｒｒａｎｇｅｍｅｎｔ）は、各グループが、複数のデータ・ブロックと、グループがストレージに書き込まれるたびに更新される１つのチェック・ブロックとを含む、グループ単位でデータ・ブロックを格納するための手段と、チェック・ブロックをチェックすることによって書込みエラーを検出するための手段とを含む。
【００１２】
好ましくは、チェック・ブロックは、グループのデータ・ブロックの組合せである。
【００１３】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００１４】
好ましくは、チェック・ブロックは、グループに関連付けられた論理ブロック・アドレスの組合せである。
【００１５】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００１６】
好ましくは、チェック・ブロックは、グループが書き込まれるたびに更新される位相フィールドの組合せである。
【００１７】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００１８】
好ましくは、位相フィールドは、グループが書き込まれるたびに反転される単一ビット値を含む。
【００１９】
好ましくは、位相フィールドは、グループが書き込まれるたびに更新される複数ビット値を含む。
【００２０】
配置構成は、好ましくは、位相フィールド値に関する不揮発性テーブルをさらに含む。
【００２１】
好ましくは、不揮発性テーブルは、予約済みディスク・ドライブ領域と、システムのコントローラにキャッシュされるテーブルの作業コピーを含む。
【００２２】
配置構成は、好ましくは、書込みオペレーションの前にエントリを記録するように配列された不揮発性ログをさらに含み、エントリは、
Ａ  無効化、および
Ｂ  書込みオペレーション完了時削除
のうちの１つに関して配列される。
【００２３】
好ましくは、ログは、まだ不揮発性テーブルに格納されていないコントローラ内のテーブルの作業コピーへの更新を、保持するように配列される。
【００２４】
好ましくは、ログは、システムのコントローラに関するコードも保持するために、メモリ内に格納される。
【００２５】
好ましくは、ストレージ・システムはディスク・ストレージ・システムを含む。
【００２６】
好ましくは、ディスク・ストレージ・システムはＡＴＡディスク・ドライブを含む。
【００２７】
好ましくは、ディスク・ストレージ・システムはＲＡＩＤシステムを含む。
【００２８】
第２の態様では、本発明は、ストレージ・システムにおいて書込みエラーを検出するための方法を提供し、この方法は、各グループが複数のデータ・ブロックと１つのチェック・ブロックとを含むグループ単位でデータ・ブロックを格納すること、グループがストレージに書き込まれるたびにチェック・ブロックを更新すること、およびチェック・ブロックをチェックすることによって起こり得る書込みエラーを検出することを含む。
【００２９】
好ましくは、チェック・ブロックは、グループのデータ・ブロックの組合せである。
【００３０】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００３１】
好ましくは、チェック・ブロックは、グループに関連付けられた論理ブロック・アドレスの組合せである。
【００３２】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００３３】
好ましくは、チェック・ブロックは、グループが書き込まれるたびに更新される位相フィールドの組合せである。
【００３４】
好ましくは、組合せは、論理排他的ＯＲの組合せである。
【００３５】
好ましくは、位相フィールドは、グループが書き込まれるたびに反転される単一ビット値を含む。
【００３６】
好ましくは、位相フィールドは、グループが書き込まれるたびに更新される複数ビット値を含む。
【００３７】
好ましくは、位相フィールド値は、不揮発性テーブルに格納される。
【００３８】
好ましくは、不揮発性テーブルは、予約済みディスク・ドライブ領域と、システムのコントローラにキャッシュされるテーブルの作業コピーを含む。
【００３９】
方法は、好ましくは、書込みオペレーションの前にエントリを不揮発性ログに記録すること、ならびに、
Ａ  エントリの無効化、および
Ｂ  書込みオペレーション完了時のエントリの削除
のうちの１つのオペレーションを実行することを、さらに含む。
【００４０】
方法は、好ましくは、まだ不揮発性テーブルに格納されていないコントローラ内のテーブルの作業コピーへの更新を、ログ内に保持することをさらに含む。
【００４１】
好ましくは、ログは、システムのコントローラに関するコードも保持するために、メモリ内に格納される。
【００４２】
好ましくは、ストレージ・システムはディスク・ストレージ・システムを含む。
【００４３】
好ましくは、ディスク・ストレージ・システムはＡＴＡディスク・ドライブを含む。
【００４４】
好ましくは、ディスク・ストレージ・システムはＲＡＩＤシステムを含む。
【００４５】
第３の態様では、本発明は、第２の態様の方法を実質的に実行するためのコンピュータ・プログラム手段を含む、コンピュータ・プログラム要素を提供する。
【００４６】
次に、本発明を組み込んだ、位相フィールドの使用によってストレージ・システム内の書込みエラーを検出するための一配置構成および方法について、添付の図面を参照しながら、例示的なものとして説明する。
【発明を実施するための最良の形態】
【００４７】
簡略的に述べると、本発明は、その好ましい実施形態において、位相フィールド（たとえば、単一ビット・フラグ）を含むインタリーブド・パリティ・ブロックを使用して、ディスク・ドライブによるデータ破損のほぼすべてのインスタンスを検出する。パリティ・ブロックは、追加レベルのエラー修正も提供する。ＡＴＡドライブはサーバ・ドライブよりも修正不能エラー率が高い傾向にあるため、これらの機能は、ＡＴＡドライブにとって特に有用である。（ＡＴＡドライブは、通常、１０１４ビット中１というハード・エラー率を指定するため、ハード読取りエラーを備えたブロックを含む１００ＧＢドライブの確率は０．８％である。これらのドライブが、１０＋Ｐ  ＲＡＩＤ−５アレイの構築に使用された場合、ドライブ交換後の再構築失敗の確率は８％である。）
【００４８】
次に図１を参照すると、磁気ディスク・ストレージ・システム１００はディスク１１０を含み、ここでは情報が、通常は５１２バイトのブロックＤおよびＰに格納される。ディスクにデータを格納する場合、１つのパリティ・ブロックＰがＮごとに、たとえば図に示されるように、８個の５１２バイト・ブロックまたは４ＫＢごとに、挿入される。これらのＮ＋１ブロックがグループ１２０とみなされる。したがって、ドライブの有効データ容量は、Ｎ／（Ｎ＋１）ずつ減少する。
【００４９】
図２に示されるように、パリティ・ブロックＰには、以下のように計算されるグループ・パリティが含まれる。
【００５０】
ステップ２１０−そのグループ内のそれぞれのデータ・ブロックから、対応するバイトをＸＯＲする。
【００５１】
ステップ２２０−グループ内の第１のブロックの物理ＬＢＡを、ステップ２１０の結果のうちの最初の数バイトにＸＯＲする。このＬＢＡシードは、ほぼすべての読取りおよび一部の書込みに関するアドレス指定エラーの検出を可能にする。
【００５２】
ステップ２３０−位相フィールドＦを、ステップ２２０の結果のうちの最後の数ビットにＸＯＲする。位相フィールドＦは、グループが書き込まれるたびに反転される単一ビット値であってよい。あるいは、グループが書き込まれるたびに更新（たとえば増分）される、複数ビット・カウンタであってよい。位相フィールドは、書込みに関する残りのアドレス指定エラーのほとんどを検出する。
【００５３】
ドライブがハード読取りエラーに遭遇した場合を除き、ディスク・コントローラ（図示せず）は、完全なグループでドライブの読取りおよび書込みを行う。上記の計算は、各グループについて実行する。書込みの場合、結果はパリティ・ブロックに書き込まれる。読取りの場合、結果は読取りパリティ・ブロックのコンテンツと共にＸＯＲされ、結果が非ゼロの場合は、そのグループにエラーがある。
【００５４】
パリティ・ブロックＰは、コントローラが以下のドライブ・エラーを処理できるようにするものである。
【００５５】
ドライブが、グループの１つのデータ・ブロック内で回復不能な媒体エラーに遭遇した場合、コントローラは、次のブロックで読取りを再開する。その後、ＬＢＡおよび位相は正しいと想定し、グループ・パリティを使用することによって、失われたブロックを再構築する。最終的に不良ＬＢＡを再度割り当てて、ブロックを書き直す。
【００５６】
ドライブが誤ったＬＢＡを読み取ると、ＬＢＡシードが原因でグループ・パリティ・チェックは非ゼロになる。その後、コントローラは読取りをもう一度再試行し、パリティが再度失敗した場合は、媒体エラーを戻す。
【００５７】
ドライブが以前に誤ったＬＢＡを書き込んだ場合、または媒体が全く書き込まれておらず、ホストが正しいＬＢＡを読み取るように要求を出した場合、位相フィールドＦが原因で、グループ・パリティ・チェックは非ゼロになる。その後、コントローラは読取りをもう一度再試行し、パリティが再度失敗した場合は、媒体エラーを戻す。
【００５８】
ドライブが以前に誤ったＬＢＡを書き込み、その後ホストが誤ったＬＢＡを読み取るように要求を出した場合、ＬＢＡシードが原因で、グループ・パリティ・チェックは誤りとなる。コントローラは読取りをもう一度再試行し、媒体エラーを戻す。
【００５９】
コントローラが媒体エラーを戻した場合、ドライブが冗長アレイ（図示せず）の構成要素であれば、データは依然として回復可能である。
【００６０】
コントローラは、ディスク上で常に完全なグループの読取りおよび書込みを行うため、短いかまたは位置合わせされていない書込みは、読取り (read) −修正 (modify) −書込み (write) が必要である。ただし、ＲＡＩＤ−５には同様の犠牲があるため、この場合には追加のオーバヘッドはない。
【００６１】
ディスク・コントローラは、各グループの現在の位相を不揮発性記憶域１３０に格納しなければならない。たとえば、単一ビット位相フラグを使用する場合、結果として生じるビット・マップは、４ＫＢグループで、１００ＧＢドライブに対しておよそ２．６ＭＢを占有する。コントローラは、ドライブがフォーマット化されるときに、すべての位相フラグをゼロに初期設定する。位相フラグ・ビット・マップ１３０は、様々な方法で実施可能である。フラッシュ・メモリは、同じグループが繰り返し書き込まれると急速に磨耗することから、直接的には好適でない。バッテリ・バックアップＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）は大きくて扱いにくく、高価である。好ましい解決方法は、ビット・マップをディスク・ドライブの予約済み領域に格納し、作業コピーを、コントローラのＳＤＲＡＭ（スタティック・ダイナミック・ランダム・アクセス・メモリ）にキャッシュすることである。ただし、あらゆる書込みコマンドについて予約済み領域を更新するのを避けるために、変更は何らかの方法で一括され、電力障害およびドライブのリセットから保護されなければならない。
【００６２】
さらに、ディスク書込みが電力障害またはリセットによって中断された場合、ディスク上の位相フラグの状態は不明である。ドライブには何も不良はないため、これにより、後続の読取りに媒体エラーによる失敗を発生させてはならない（ただし、コントローラはまだホストへの書込みを完了していないため、古いデータ、新しいデータ、またはそれらの混合を戻すことは許容できる）。
【００６３】
これら２つの問題は、ディスク書込みを発行する直前に不揮発性ログ内にエントリを作成すること、および書込みが完了したときにそれを削除（または無効化）することによって解決することができる。同じログを使用して、まだディスクにフラッシュされていないＳＤＲＡＭ内のビット・マップへの更新を保持することもできる。典型的なログ・エントリには、以下のように８バイトが必要である。
バイト数    説明
０：３      書き込まれる第１グループのアドレス
４：５      書き込まれる連続するグループの数（非ゼロは有効なログ・エントリを示す）
６    ＦＦｈに初期設定される（「ｈ」は１６進法を示す接尾辞）。ディスク書込みが完了した後、００ｈに設定する。
７    ＦＦｈに初期設定される。ディスク上のビット・マップが更新された後、００ｈに設定する。
【００６４】
ログは、小さなバッテリ・バックアップＳＲＡＭ、すなわち、ＮＶＲＡＭ（不揮発性ＲＡＭ）に格納することができる。
【００６５】
一部の実施では、ログを、コントローラ・コードを含むフラッシュ・メモリの追加セクタに格納すると便利な場合がある。ログ・セクタが完全に使用されると、すべてＦＦｈに消去される。フラッシュに単語を書き込むには、通常、約５００μｓを要し、各ディスク書込みには３フラッシュ書込みが必要である。これにより、１秒あたりほぼ７００のディスク書込みが可能である。ログには順番に書き込まれるため、フラッシュ・メモリの磨耗は自動的に均一になる。さらにログ・エントリは、１回のディスク書込みにつき、各バイトが１回だけ書き込まれるように、フォーマット化される。たとえば、１０５サイクルの耐久性を持つ１ＭＢのフラッシュは、毎秒１００ディスク書込みで４年以上持つことになる。
【００６６】
高い可用性(availability) を保証するために、ストレージ・システムは、二重(dual) （アクティブ・アクティブ）コントローラを使用することが多い。この環境では、各コントローラで、不揮発性ログのミラー・コピーを維持することが望ましい。これによって、コントローラが障害を起こした場合でも、位相フィールドによって提供される保護が失われないことが保証される。２つのログは、コントローラ間でのメッセージの交換により、同期が維持されなければならない。各コントローラは、ディスクにグループを書き込む前、および書込みが完了したときにもう一度、そのログの更新を他方のコントローラに通知しなければならない。ただし実際には、ＲＡＩＤ−５などの高位レベル機能はいずれにせよ同様のメッセージを交換するので、通常、それほどのオーバヘッドにはならない。
【００６７】
たとえば、障害後にコントローラのうちの１つを交換する場合など、２つのコントローラを再同期化するための手段も提供しなければならない。これは、他方のコントローラ内のログから未処理の更新をディスクにフラッシュすること、および交換コントローラ内のログをクリアすることによって、最も簡単に達成される。
【００６８】
上記で説明した、位相フラグを使用してストレージ・システム内で書込みエラーを検出するためのスキームは、以下の利点を提供することが理解されよう。
【００６９】
データの保全性 (integrity) の向上。このスキームは、低コストのデスクトップ・ドライブを使用している場合に特に有用である。これらは通常、５１２バイト・ブロックに制限されているため、各ブロックにチェック・フィールドを格納する余地がない。ただし、サーバ・クラス・ドライブにも適用可能である。
【００７０】
特に、ＲＡＩＤ−５と共に使用する場合に、性能への影響が少ない（読取りデータをチェックする際に、追加のディスク・アクセスを必要としない）。
【００７１】
最も単純なケースでは、位相フィールドは、書込みのたびに反転される単一ビットである。ただし、より保護を強化するためには、正の値によって更新、たとえば増分されるか、または負の値によって更新される（すなわち減分）、複数ビット・カウンタであってもよい。
【００７２】
ストレージ・システムにおいて書込みエラーを検出するための上記の方法は、典型的には、システム内のプロセッサ（図示せず）上で実行中のソフトウェアで実施されること、および、ソフトウェアは、磁気または光コンピュータ・ディスクなどの任意の好適なデータ・キャリア（これも図示せず）上で搬送される、コンピュータ・プログラム要素 (element) として提供可能であることを理解されよう。
【００７３】
以上、本発明について、磁気ディスク・ストレージ・システムのコンテキストで説明してきたが、本発明は、別法として、光ディスクまたは磁気テープに基づくものなどの、他のストレージ・システムにも適用可能であることも理解されよう。
【００７４】
添付の図面を参照しながら説明するのとほぼ同様に、ストレージ・システムにおいて書込みエラーを検出するための配置構成、さらにはストレージ・システムにおいて書込みエラーを検出するための方法も適用可能である。
【図面の簡単な説明】
【００７５】
【図１】本発明を組み込んだディスク・ドライブ・ストレージ・システムを示す、概略的なブロック図である。
【図２】図１のシステムを使用してパリティ・ブロックを計算するための方法を示す、概略的なブロック図である。
【符号の説明】
【００７６】
１００    ディスク・ストレージ・システム
１１０    ディスク
１２０    グループ
１３０    位相フラグ・ビット・マップ
【図１】
2005004733.tif 000003
【図２】
2005004733.tif 000004