(57)【要約】【課題】本発明はドライブの再構築のための時間を短縮できるドライブに導かれた再構築コマンドの管理方法を提供することを目的とする。【解決手段】ドライブ20は不揮発性メモリ26とキャッシュ27とを備え、ドライブ20のキャッシュ27を書込み可能にし、ドライブ20に導かれた再構築コマンドを第１のメモリ位置29中に記憶し、再構築コマンドに関連したキャッシュされたデータをドライブがその不揮発性メモリ26に周期的にフラッシュするようにし、ドライブ20に導かれた各コマンドは、そのドライブ20のキャッシュ27が書込み可能にされている期間中メモリ位置29に少なくとも一時的に記録されることを特徴とする。【選択図】      図２
2005276196.tif 000002
【特許請求の範囲】
【請求項１】
ドライブのキャッシュを使用可能にし、
ドライブに導かれた再構築コマンドを第１のメモリ位置中に記録し、
再構築コマンドに関連したキャッシュされたデータをドライブがその不揮発性メモリに周期的にフラッシュするようにするステップを含んでおり、
ドライブに導かれた各コマンドは、そのドライブのキャッシュが使用可能にされている期間中メモリ位置に少なくとも一時的に記録される、不揮発性メモリおよびキャッシュを備えたドライブに導かれた再構築コマンドの管理方法。
【請求項２】
ドライブの再構築の成功に後続してそのドライブのキャッシュを書込み禁止状態にするステップをさらに含んでいる請求項１記載の再構築コマンドの管理方法。
【請求項３】
キャッシュされたデータをドライブがその不揮発性メモリに周期的にフラッシュするようにするステップは、
第１のメモリ位置に記憶されたコマンドの数のカウントを維持し、
第１のメモリ位置に記憶されたコマンドの数のカウントが予め定められたしきい値に達したときに、ドライブにそのデータをその不揮発性メモリに周期的にフラッシュさせるステップをさらに含んでいる請求項２記載の再構築コマンドの管理方法。
【請求項４】
キャッシュから不揮発性メモリへのデータのフラッシュの成功に続いて第１のメモリ位置およびカウントをクリアするステップをさらに含んでいる請求項３記載の再構築コマンドの管理方法。
【請求項５】
複数のドライブを備えており、各ドライブが、
データを記憶する不揮発性記憶媒体と、
ドライブにより受取られる書込みコマンドに関連したデータをキャッシュする書込みキャッシュとを備え、
さらに複数のドライブ制御装置を備えており、各ドライブ制御装置は、記憶アレイの１つのドライブと関連付けられ、結合され、第１のメモリを備え、この第１のメモリは各ドライブ制御装置からその関連したドライブに送信された書込みコマンドのヒストリを記憶するように動作可能に構成されており、
各ドライブ制御装置は、
ドライブの書込みキャッシュを使用可能にし、
ドライブに送られた各書込みコマンドを第１のメモリ中に記録し、
ドライブにそのドライブの書込みキャッシュ中のデータを周期的にフラッシュさせ、
ドライブの再構築の完了に成功したとき、そのドライブに対する書込みキャッシュを書込み禁止状態にすることによりその関連したドライブの再構築を管理するように構成されている記憶アレイ。
【請求項６】
各ドライブ制御装置は、関連したドライブの書込みキャッシュ中のデータのフラッシュの成功が示されたことに続いて、その第１のメモリをクリアするように動作可能である請求項５記載の記憶アレイ。
【請求項７】
各ドライブ制御装置は、第１のメモリ中に記憶されているコマンドの数を記録する第２のメモリを備えている請求項５記載の記憶アレイ。
【請求項８】
各ドライブ制御装置は、第１のメモリ中に記憶されたコマンドの数が予め定められたしきい値に到達したとき、その関連したドライブに書込みキャッシュ中のデータをフラッシュさせるように構成されている請求項７記載の記憶アレイ。
【請求項９】
第１のメモリは不揮発性メモリである請求項５記載の記憶アレイ。
【請求項１０】
ドライブが選択的に使用可能にされることのできる書込みキャッシュと通信しているドライブの記憶媒体を再構築する方法において、
ドライブに対する書込みキャッシュを書込み可能にし、
そのドライブに１以上のコマンドを送信し、
その１以上のコマンドを１つのジャーナルに書込み、
書込みキャッシュ中のデータを記憶媒体にフラッシュするようにドライブに強制するステップを含んでいるドライブの記憶媒体の再構築方法。
【請求項１１】
ジャーナルをクリアするステップをさらに含んでいる請求項１０記載のドライブの記憶媒体の再構築方法。
【請求項１２】
ドライブの媒体の再構築の成功に続いて、ドライブに対する書込みキャッシュを書込み禁止状態にするステップをさらに含んでいる請求項１１記載のドライブの記憶媒体の再構築方法。
【請求項１３】
ドライブに送られたコマンドの数のカウントを提供するステップをさらに含み、
ドライブに送られたコマンドの数のカウントが予め定められた値に到達すると、書込みキャッシュ中のデータをフラッシュするようにドライブに強制するステップが行われる請求項１０記載のドライブの記憶媒体の再構築方法。
【請求項１４】
書込みキャッシュ中のデータのフラッシュの成功に続いて、ジャーナルをクリアするステップをさらに含んでいる請求項１３記載の再構築方法。
【請求項１５】
ドライブの媒体の再構築の成功に続いて、書込みキャッシュを書込み禁止状態にするステップをさらに含んでいる請求項１３記載の再構築方法。
【請求項１６】
ドライブが書込みキャッシュ中の全てのデータをフラッシュして、そのキャッシュされたデータが媒体に書込まれたこと示すメッセージを送信した後にジャーナルをクリアするステップをさらに含んでいる請求項１０記載の再構築方法。
【請求項１７】
ジャーナルは、ドライブ制御装置と関連付けられた不揮発性メモリから構成されている請求項１０記載の再構築方法。
【請求項１８】
ドライブが再構築されている期間中にドライブ制御装置からそのドライブに送信されたコマンドを記録する第１のメモリと、
第１のメモリ中に記録されたコマンドのカウントを記憶する第２のメモリとを備えており、
ドライブが再構築されている期間中、ドライブ制御装置は、そのドライブの書込みキャッシュを使用可能にするように動作できると共に、コマンドのカウントが予め定められたしきい値に到達したときにドライブに書込みキャッシュ中のデータをフラッシュさせるように構成されている、通信チャンネルによってドライブと通信するように動作することができるドライブ制御装置。
【請求項１９】
ドライブ制御装置は、ドライブの再構築の成功に続いて、そのドライブの書込みキャッシュを書込み禁止状態にするように構成されている請求項１８記載のドライブ制御装置。
【請求項２０】
第１のメモリは不揮発性メモリを備えている請求項１９記載のドライブ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ記憶システムの分野に関し、とくに、エネーブルにされた書込みキャッシュによりドライブを再構築するためのシステムおよび方法に関する。
【背景技術】
【０００２】
情報の価値および使用は増加し続けており、個人および企業は情報の処理および記憶を行うための付加的な方法を捜し求めている。ユーザが利用可能な１つのオプションは情報処理システムである。情報処理システムは、一般に、企業、個人またはその他の目的のために情報またはデータの処理、コンパイル、記憶および、または通信を行い、それによってユーザが情報の価値を利用することを可能にする。テクノロジーおよび情報処理需要ならびに要求はユーザまたは用途によって異なっているため、情報処理システムもまた、処理される情報の種類、情報の処理方法、処理、記憶または通信される情報の量、および情報の処理、記憶または通信がどれだけ迅速かつ効率的に行われることができるかに関して異なったものとなる。情報処理システムはそのバリエーションのために、いろいろなものに適用可能であり、あるいは金融取引処理、航空券の予約、企業データの記憶またはグローバルコミュニケーションのような特定のユーザまたは特定の使用に対して構成されることができる。さらに、情報処理システムは、情報を処理し、記憶し、通信するように構成されることのできる種々のハードウェアおよびソフトウェアコンポーネントを備えることが可能であると共に、１以上のコンピュータシステム、データ記憶システムおよびネットワークシステム、たとえば、コンピュータ、パーソナルコンピュータワークステーション、ポータブルコンピュータ、コンピュータサーバ、プリントサーバ、ネットワークルータ、ネットワークハブ、ネットワークスイッチ、記憶域ネットワークディスクアレイ、独立ディスクの冗長アレイ（“ＲＡＩＤ”）システムおよび通信スイッチ等を含むことができる。
【０００３】
情報処理システムは、しばしばドライブアレイにグループ化された１以上のドライブを備えることができる。多数のドライブは、書込みを選択的に可能または禁止されることのできる関連した書込みキャッシュを備えている。書込み可能にされた書込みキャッシュを備えたドライブに関して、時として、ドライブが書込みの成功をドライブ制御装置に通知する時間と、データがそのドライブの記憶媒体中に書込まれる時間との間に遅延が生じる。書込み可能にされた書込みキャッシュを備えたドライブは、しばしばそのドライブの書込みキャッシュに書込みデータを導き、あるいは記憶する。キャッシュへの書込みデータの転送に成功すると、ドライブはドライブ制御装置に通知を送信して、書込みコマンドの実行が成功したことを示す。この通知は、その書込みコマンドのデータがそのドライブの永久および不揮発性の媒体にまだ書込まれていなくても、ドライブからドライブ制御装置に送信される。書込みキャッシュ中に書込みコマンドのデータを記憶することにより、書込み制御装置の制御回路は、ドライブ中の媒体に情報が書込まれる順序を最適化することが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ドライブのキャッシュへの書込みには成功したがそのドライブの不揮発性媒体への書込みにはまだ成功していない書込みコマンドの場合に、この方法には問題がある。この場合、ドライブは、書込みコマンドが成功したことをドライブ制御装置に通知している。この状況においてドライブが故障した場合（たとえば、ドライブが電源を遮断されて電力を失った場合、あるいは書込みキャッシュが損傷した場合）、書込みキャッシュ中に記憶されているデータは失われ、ディスクに書込まれない可能性がある。しかしながら、ドライブの制御回路は書込みコマンドが実行されたことを示しているため、ドライブ制御装置はデータの損失に気づかない。ドライブ制御装置とそのドライブは同期されず、ディスクに書込まれていなかった書込みキャッシュ中のデータは失われる。この故障事象が発生しないようにするために、ＲＡＩＤシステム内のドライブの書込みキャッシュは書込み禁止状態にされることが多い。ドライブの書込みキャッシュが書込み禁止状態にされたとき、ドライブは一時的に書込みデータをキャッシュに記憶することができず、それによってドライブは、データをそのドライブの不揮発性記憶媒体に直接書込むことを強制される。このシナリオでは、ドライブは、これがその不揮発性記憶媒体に書込みデータを書込むまで、書込みの成功をドライブ制御装置に通知しない。しかしながら、ドライブの書込みキャッシュが書込み禁止状態にされたとき、その性能は悪影響を受ける可能性がある。それは、ドライブの制御回路がキャッシュからそのドライブの永久媒体へのデータの転送を最適化することができないためである。
【０００５】
ＲＡＩＤ記憶アレイは、故障に続いてドライブに関する情報を復元し、あるいは再構築する能力によって特徴付けられる。たとえば、ＲＡＩＤ５アレイにおいて、パリティ情報はそのアレイ内のドライブに記憶される。ドライブの１つが故障した場合、それはこのアレイ内の別のドライブに記憶されているパリティ情報に基づいて再構築される。ドライブ内の媒体の容量が増加するにしたがって、復元されなければならない情報の量が増加するため、ドライブの復元に要する時間が長くなる。数時間または１日以上での再構築時間は、何十または何百ギガバイトものデータを記憶することのできる媒体を備えたドライブに対して普通のものではない。アレイ内のドライブが再構築されている期間中に、多くのＲＡＩＤアレイは低下モードでランする。この低下モードにおいては、そのアレイの性能は損害を被る可能性がある。これは、そのリソースがドライブの再構築に専念させられるためである。さらに、再構築されているドライブのキャッシュが再構築期間中書込み禁止状態にされた場合、このドライブを再構築するのに要する時間は、書込み可能にされた書込みキャッシュを有するドライブの再構築に必要とする時間と比較して、長くなる可能性がある。さらに、多くのＲＡＩＤレベルにおいて、アレイが低下モードに入っている最中に第２のドライブが故障した場合、そのアレイは失われるであろう。
【課題を解決するための手段】
【０００６】
本発明の開示によると、ドライブアレイ内のドライブを再構築するためのシステムおよび方法が開示されている。再構築されているドライブの書込みキャッシュは書込み可能にされる。再構築プロセス中、ドライブに指令されるコマンドはまた、ドライブ制御装置に関連したジャーナル中に記録される。同期コマンドはドライブに周期的に送られる。この同期コマンドに応答して、ドライブは不揮発性媒体に書込まれていない書込みキャッシュ中のデータを全て、その媒体に書込む。同期後、ドライブアレイの不揮発性メモリに対して書込みコマンドが実行されているので、ジャーナルはクリアされる。
【０００７】
ここに開示されているシステムおよび方法の利点は、故障したドライブの再構築時間が短縮されることである。復元されているドライブに対する書込みキャッシュを書込み可能にすることにより、そのドライブの制御論理装置は、コマンドが媒体に書込まれる順序を最適化することが可能になる。また、復元中のドライブの書込みキャッシュを書込み可能にすることにより、書込みコマンドに関連したデータがそのドライブ内の媒体に書込まれる前に、多数の書込みコマンドがディスクに送信されることも可能になる。書込みキャッシュは書込み可能にされているため、このドライブは、書込みキャッシュが再構築プロセス中書込み禁止状態にされたドライブよりも迅速に再構築されることができる。ここに開示されているシステムおよび方法の別の利点は、書込みキャッシュが書込み可能にされている期間中および再構築プロセス中に再構築されているドライブがシステム故障の損害をこうむる可能性を予想するという条件が説明される技術に含まれていることである。この可能性を補償するために、コマンドはジャーナルに書込まれ、ドライブに対して周期的に同期される。同期プロセスは、書込みコマンドに関連したドライブキャッシュ中の全てのデータがそのドライブの記憶媒体に書込まれるように強制されることを含んでいる。同期されていない可能性のあるコマンドのサブセットをドライブ制御装置のジャーナル中に記憶することにより、再構築プロセスを始めから再始動しなければならない可能性が回避される。その代わりに、再構築プロセス期間中に故障（たとえば、電力供給の遮断）が発生した場合に、再構築プロセスはジャーナル中に記憶されたコマンドから再始動されることができる。その結果、ここに記載されている再構築プロセスは、再構築プロセスの性能に悪影響を与えずに後続的な故障から保護する安全メカニズムを備えている。別の技術的な利点は、以下の明細書、請求の範囲および図面から当業者に明らかになるであろう。
【発明を実施するための最良の形態】
【０００８】
本発明の開示およびその利点は、以下の説明および添付図面を参照することによってさらによく理解されるであろう。なお、図面においては、同じ参照符号が同じ特徴を示している。  
本発明を開示するために、情報処理システムは、取引、科学、制御またはその他の目的のために任意の形態の情報、インテリジェンスまたはデータの計算、分類、処理、送信、受信、検索、発生、切り替え、記憶、表示、宣言、検出、記録、再生、統御、または使用を行うために使用可能な任意の手段または手段の集りを備えていてもよい。たとえば、情報処理システムは個人のコンピュータ、ネットワーク記憶装置または任意の他の適切な装置であることが可能であり、また、そのサイズ、形状、性能、機能および価格はさまざまであってよい。情報処理システムはランダムアクセスメモリ（ＲＡＭ）、中央処理装置（ＣＰＵ）あるいはハードウェアまたはソフトウェア制御論理手段のような１以上処理リソース、ＲＯＭおよび、またはその他のタイプの不揮発性メモリを備えていてもよい。情報処理システムの付加的なコンポーネントには、キーボード、マウスおよびビデオディスプレイのような種々の入出力（Ｉ／Ｏ）装置だけでなく、１以上のディスクドライブ、外部装置と通信するための１以上のネットワークポートもまた含まれることができる。情報処理システムはまた、種々のハードウェアコンポーネントの間において通信を送るために使用可能な１以上のバスを備えていてもよい。
【０００９】
図１は、全体が符号10で示されたレベル５ＲＡＩＤ記憶アレイの概略図である。この記憶アレイ10は、時としてディスクまたはボリュームと呼ばれる５個のドライブを備えている。図１の例の中の４個の各ドライブは、ストライプ０乃至ストライプ７とラベル付けされた８本のデータストライプまたは行を含んでいる。図１のＲＡＩＤアレイの構成はＲＡＩＤアレイの単なる例示に過ぎず、そのＲＡＩＤアレイはもっと多くのまたは少ないストライプまたは行を備えたもっと多くのまたはもっと少ないドライブを有するように構成されることが可能であることを認識すべきである。ストライプ０を参照すると、データはドライブＡ、ドライブＢおよびドライブＣに記憶される。ドライブＡ、ドライブＢおよびドライブＣ中のストライプ０の内容に関して行われた排他的オア動作の結果であるストライプ０に対するパリティビットはドライブＤ中に記憶され、Ｐ0とラベル付けされている。ＲＡＩＤアレイ10のデータ構造の第２の例として、ストライプ７を参照すると、データはドライブＢ、ドライブＣおよびドライブＤに記憶される。ドライブＢ、ドライブＣおよびドライブＤ中のストライプ７の内容に関して行われた排他的オア動作の結果であるストライプ７に対するパリティビットはドライブＡ中に記憶され、Ｐ7とラベル付けされている。たとえば、ドライブＣが故障した場合、あるいはそうでなければ、それが劣化したドライブとして識別された場合、このドライブＣの各ストライプ中のデータは、ＲＡＩＤアレイ10の他の３個のドライブの中のデータにより再構築されることになるであろう。図１に示されているように、記憶アレイ中の各ドライブは１つのホストに結合されている。ＲＡＩＤ５アレイ10は故障許容ＲＡＩＤレベルの一例であり、この場合、単一のドライブ故障は持続されることが可能であり、また、その故障したドライブは再構築されることができる。別の故障許容ＲＡＩＤレベルには、１、４、５、６、１０、および０＋１が含まれる。
【００１０】
記憶アレイの各ドライブは、ドライブ制御装置と通信し、これによって制御される。図２はドライブ20およびドライブ制御装置22の概略図である。ドライブ20およびドライブ制御装置22は、チャンネル24によって互いに結合されている。このチャンネル24は、並列または直列ＳＣＳＩ通信バスまたはリンク、並列または直列ＡＴＡ通信バスまたはリンク、ファイバチャンネル通信リンク、あるいは無線通信リンクを含む任意の数の通信プロトコルにしたがって動作することができる。ドライブ20は記憶媒体エレメント26、制御論理装置21および書込みキャッシュ27を備えている。記憶媒体エレメント26は、磁気媒体または光学媒体を含む情報を記憶するのに適した任意の媒体から構成されることができる。同様に、書込みキャッシュ27は情報を記憶するのに適した任意の適切な記憶メカニズムから構成されていてもよい。書込みキャッシュ27は典型的に揮発性メモリであり、記憶媒体26と比較して高速でその内容へのアクセスを行うために使用可能であり、記憶媒体26は典型的に不揮発性である。
【００１１】
ドライブ20の制御論理装置21は、ドライブ20からデータを読取り、あるいはドライブ20にデータを書込み、書込みキャッシュ27を書込み可能にし、あるいは書込み禁止状態にし、書込みキャッシュ27中の全ての情報が記憶媒体26中に書込まれるように強制するコマンドを含むドライブ制御装置22からのコマンドに応答し、これを処理する。制御論理装置21はまた、データおよび通知情報をドライブ制御装置22に送信する。さらに、制御論理装置21は記憶媒体26および書込みキャッシュ27を制御する。ドライブ制御装置22は、そのジャーナル28およびメモリ位置29と通信し、それらを管理（ｄｉｒｅｃｔ）する制御論理エレメント23を備えている。本発明の開示によるドライブ制御装置22の例には、ＲＡＩＤ制御装置、低レベルＡＴＡ／ＳＡＴＡまたはＳＣＳＩ制御装置もしくはその両者が含まれる。
【００１２】
ジャーナル28は、ドライブ20に導かれた書込みコマンドのヒストリを記憶する情報記憶位置である。ジャーナル28の内容は、制御論理装置23によって制御されることができる。制御論理装置23は、ジャーナル28にその内容をフラッシュさせ、あるいは空にさせるコマンドを発行することができる。ジャーナル28は、ドライブまたは周辺ネットワークに突然電力損失が生じた場合にジャーナル28の内容が保存されるように、本質的に不揮発性であることが好ましい。ジャーナル28の内容は、ドライブ20に送信された最新のコマンドのリストおよびそのリストにされた各コマンドに関連したコマンドカウントである。メモリ位置29は、制御論理装置23によってアクセス可能な任意のメモリ位置であることができる。実行中のコマンドカウントはメモリ位置29に記憶される。コマンドカウントの値は、ドライブ20に送信された最新の書込みコマンドに対応している。メモリ位置29におけるコマンドカウントは、制御論理装置23によって操作されることができる。とくに、制御論理装置23は、新しいコマンドカウントをメモリ位置29に記憶し、記憶されたコマンドカウントを検索し、あるいはそのコマンドカウントを消去またはリセットすることができる。メモリ位置29は、ドライブまたはネットワークに電力損失が生じた場合にコマンドカウントが保存されるように、不揮発性メモリを備えていてもよい。
【００１３】
図３は、ドライブアレイのドライブを再構築する方法のフロー図である。図３のステップは、ドライブアレイのドライブが再構築されなければならないときに行われる。ドライブは多くの理由のために再構築されることが必要となる可能性がある。ドライブ上のデータは破壊される可能性があり、あるいはドライブはそのドライブアレイに追加されたものである可能性がある。ドライブは、ドライブの再構築を指令（ｍａｎｄａｔｅ）する条件を識別する自動再構築にしたがって再構築されてもよい。その代りに、ドライブは、システム管理者の手動指示に従って再構築されてもよい。ステップ30において、ドライブの書込みキャッシュは書込み可能にされ、それによってドライブの媒体への書込みを最適化するのを助けるためにドライブが書込みキャッシュを使用することが可能になる。ドライブ20の書込みキャッシュは典型的に、ドライブ制御装置22からドライブ20に送信されたコマンドによって書込み可能にされる。一例として、ドライブ20がＳＣＳＩドライブである場合、ドライブ制御装置22はモード選択コマンドをドライブ20の制御論理装置21中のキャッシュモードページに送信し、ドライブ内の書込みキャッシュエネーブルビットを１に設定する。ＡＴＡまたはＳＡＴＡ環境においては、ドライブ制御装置は書込みキャッシュを書込み可能にするサブコマンドコードと共に特徴設定コマンドを送信する。
【００１４】
ステップ32において、ドライブに導かれたコマンドはドライブ制御装置22において受取られる。これらのコマンドには、ドライブの再構築に必要な書込みコマンドが含まれる。コマンドには、ドライブの部分が再構築されたときに新しいデータをそのドライブの再構築された部分に書込むためのアクティブロードコマンドが含まれてもよい。ステップ32において、受信されたコマンドはジャーナル28に記憶される。各コマンドが受信されると、実行中の書込みコマンドのリストはジャーナル28中に記録される。コマンドをジャーナル28に記録するのに続いて、コマンドカウントはメモリ29においてインクリメントされる。ステップ38において、受信されたコマンドはドライブに送信される。ステップ32からステップ38への順序により示されているように、コマンドは、それがドライブに送信される前にジャーナルに記録される。このようにして、各コマンドの記録は、コマンドがドライブに与えられる前に行われる。コマンドがドライブで受信されたとき、コマンドおよびその内容はキャッシュに記憶されてもよいし、あるいはそのドライブの記憶媒体中に記憶されてもよい。書込みキャッシュはドライブ上で書込み可能にされているため、そのドライブは、ドライブのキャッシュを最も効率的に使用するコマンドを処理する方法を選択することができる。ドライブがコマンドの処理に成功すると、コマンドが記憶されたのがキャッシュであろうと記憶媒体であろうと、ドライブは、そのドライブによるコマンドの処理が成功したことを示す通知コマンドを制御装置に発行する。
【００１５】
ステップ40において、ドライブがコマンドの受信の成功を示す通知の送信に続いて、再構築プロセスは完了したか否かが決定される。ドライブ再構築プロセスが完了してない場合、ステップ42において、コマンドカウントが予め定められた最大値に達したか否かが決定される。コマンドカウントが予め定められた最大値に到達すると、すなわち、予め定められた最大数のコマンドがジャーナル中に記録されると、ジャーナルをドライブの記憶媒体の内容と同期させる一連のステップが行われる。予め定められた最大値は、ジャーナル中に記録されることのできるコマンドの数以下である任意の適切な数であることができる。予め定められた最大値は、同期ステップが再構築プロセスの効率的な完了を妨げるほど高い頻度でジャーナルと記憶媒体が同期されるような低い値に設定されてはならない。この予め定められた値は、過剰な数のコマンドがジャーナル中に記憶されるほど高く設定されてはならない。過剰な数のコマンドをジャーナル中に有することは、再構築されているドライブが後続的に損失された場合に再実行するために限られた数のコマンドを追跡する目的に反する。予め定められたコマンドカウント数に達していない場合、フロー図は、ステップ32において次のコマンドをドライブ制御装置で受信することにより続行する。
【００１６】
ステップ42において予め定められたコマンドカウント数に到達したことが決定された場合、ジャーナル中に記録されているコマンドはドライブの記憶媒体の内容と同期される。ステップ44において、ドライブ制御装置は書込みコマンドに関連したキャッシュ中に記憶されている全てのデータが媒体に書込まれるように強制するコマンドを発行する。そのコマンドは、ドライブの制御論理装置により認識されるコマンドになるであろう。ＳＣＳＩ環境においては、ドライブ制御装置は同期コマンドを発行する。ＡＴＡまたはＳＡＴＡ環境においては、ドライブ制御装置はフラッシュコマンドを発行する。このコマンドにより、キャッシュ中の書込みコマンドに関連した全てのデータがドライブ中の記憶媒体にフラッシュされる。このステップに続いて、ドライブのキャッシュは、ドライブの記憶媒体に書込まれていない書込みコマンドは含まない。ステップ44の実行が成功した後、ステップ46において、ジャーナルはクリアされ、コマンドカウントはゼロにクリアされる。フロー図は、ステップ32においてドライブに導かれる付加的なコマンドをドライブ制御装置で受信することにより継続する。
【００１７】
ステップ40において再構築が完了したことが決定された場合、フロー図はステップ48において継続し、全ての書込みコマンドがドライブの記憶媒体に関して実行されることができるように、これらの書込みコマンドがキャッシュすることを強制するコマンドを発行する。ステップ48は、ステップ44と同じであることが認識されるであろう。ステップ48が成功して完了したのに続いて、ステップ50において、ジャーナルはクリアされ、コマンドカウントはゼロにクリアされる。ステップ50は、ステップ46と同じであることが認識されるであろう。ステップ52において、ドライブの書込みキャッシュはディスエーブルすなわち書込み禁止状態にされる。ＳＣＳＩ環境において、ドライブ制御装置はモード選択コマンドをドライブ20の制御論理装置21中のキャッシュモードページに送信し、ドライブ内の書込みキャッシュエネーブルビットを０に設定する。ＡＴＡまたはＳＡＴＡ環境においては、ドライブ制御装置は書込みキャッシュを書込み禁止状態にするサブコマンドコードと共に特徴設定コマンドを送信する。書込みキャッシュを書込み禁止状態にすることにより、ドライブは、記憶ドライブに導かれた書込みコマンドがそのドライブ中でキャッシュされることのできない状態にされ、それによってドライブへの全ての書込みがそのドライブの不揮発性記憶媒体に書込まれることを保証する。
【００１８】
ここに開示されているシステムおよび方法は、最適化された書込み可能にされた書込みキャッシュが、再構築プロセス中にドライブの後続的な故障から保護しながら、ドライブを再構築することを可能にする。書込みコマンドをジャーナル中に記録することにより、最も新しく発行された書込みコマンドをリスト化するリソースが提供される。ドライブの書込みキャッシュがドライブの再構築中に電力を失った場合、ジャーナルは、そのドライブの不揮発性メモリに書込まれていない可能性のあるコマンドのリストを含むことになる。このとき、ジャーナルの内容はリソースとして使用されて、再構築されているドライブのキャッシュへの電力が失われた故障が発生した場合に再構築プロセスを再始動する必要性を回避することができる。
【００１９】
ここに開示されているシステムおよび方法は、本発明の開示の図面に開示された正確なアーキテクチャに限定されないことを理解すべきである。むしろ、本発明の開示されたシステムおよび方法は、冗長電源の使用を伴う任意の適切なコンピュータシステムアーキテクチャにより使用されることが可能である。ここに開示されているシステムおよび方法は、特定のプロセッサまたはプロセッサファミリへの適用あるいはプロセッサへの特定のコマンドの適用に制限されないこともまた理解すべきである。むしろ、ここに開示されているシステムおよび方法は、１以上のその内部クロックを変調することによりその電力消費量を変調することのできる任意のプロセッサにより使用されることができる。本発明の開示が詳細に説明されているが、添付された請求の範囲により規定された本発明の技術的範囲を逸脱することなく種々の変更、置換および修正を行うことが可能であることを認識すべきである。
【図面の簡単な説明】
【００２０】
【図１】冗長記憶アレイの概略図。
【図２】記憶アレイのドライブおよび関連したドライブ制御装置の概略図。
【図３】ドライブアレイのドライブを再構築する方法のフロー図。
【図１】
2005276196.tif 000003
【図２】
2005276196.tif 000004
【図３】
2005276196.tif 000005