(57)【特許請求の範囲】
【請求項１】
マスタ・イメージを保守するためのマスタストレージユニットと、少なくとも１つのスレーブ・イメージを保守するための少なくとも１つのスレーブストレージユニットを含むコンピュータシステムにおいて複数のデータ・イメージを同期させる方法であって：
前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへ書き込まれるべき前記複数のデータ・イメージの部分を識別する多数の書込要求を受け取り；
前記複数のデータ・イメージの前記部分を識別する多数の書込エントリーを含むログを保守し；
前記書込エントリーを前記ログへ保存した後に、前記複数のデータ・イメージの前記識別された部分を更新するために前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへの書込操作を開始し、該書込操作は、該操作が異なるときに完了し、かつ、前記少なくとも１つのスレーブ・イメージへの書込操作が前記マスタ・イメージへの書込操作の前に完了する可能性があり；
前記複数のデータ・イメージの前記部分を非同期になるようにさせた可能性がある不良があったことを決定し；
前記不良からの回復に続いて、前記ログにおいて識別される前記複数のデータ・イメージの前記部分を前記マスタ・イメージから前記少なくとも１つのスレーブ・イメージへコピーする；
ことを含んでなり、
前記コピーは、書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了したが、前記マスタ・イメージに対して完了していないならば、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージのいずれにおいても完了していないならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージの両方において完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新された部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了しておらず、前記マスタ・イメージに対して完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新された部分で上書きするものである方法。
【請求項２】
請求項１に記載の方法であって、前記ログの保守は前記ログから不必要な書込エントリーを削除することを更に含む方法。
【請求項３】
請求項２に記載の方法であって、前記複数のデータ・イメージの同期後の前記ログから不必要な書込エントリーを削除することは、前記不必要な書込エントリーを削除する都合の良い時間を決定し、該都合の良い時間に前記ログから前記不必要な書込エントリーを削除することを含む方法。
【請求項４】
マスタ・イメージと少なくとも１つのスレーブ・イメージを含む複数のデータ・イメージをコンピュータシステムにおいて同期させる装置であって：
前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへ書き込まれるべき前記複数のデータ・イメージの部分を識別する多数の書込要求を受け取り、かつ、前記複数のデータ・イメージの前記部分を識別する多数の書込エントリーを含むログを保守するために作動的に接続されているログ・メンテナンス・ロジックと；
前記複数のデータ・イメージの前記識別された部分を更新するために前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへの書込操作を開始するように作動的に接続されたストレージロジックであって、該書込操作は、該操作が異なるときに完了し、かつ、前記少なくとも１つのスレーブ・イメージへの書込操作が前記マスタ・イメージへの書込操作の前に完了する可能性があるストレージロジックと；
前記複数のデータ・イメージの前記部分を非同期になるようにさせた可能性がある不良があったことを決定するために作動的に接続された不良検出ロジックと；
前記不良からの回復に続いて、前記ログにおいて識別される前記複数のデータ・イメージの前記部分を前記マスタ・イメージから前記少なくとも１つのスレーブ・イメージへコピーするために作動的に接続された同期ロジックと；
を含んでなり、
前記コピーは、書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了したが、前記マスタ・イメージに対して完了していないならば、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージのいずれにおいても完了していないならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージの両方において完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新された部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了しておらず、前記マスタ・イメージに対して完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新された部分で上書きするものである装置。
【請求項５】
請求項４の装置であって、前記ログ・メンテナンス・ロジックは、前記ログから不必要な書込エントリーを削除するように作動的に接続されている装置。
【請求項６】
請求項５の装置であって、前記ログ・メンテナンス・ロジックは、前記不必要な書込エントリーを削除する都合の良い時間を決定し、該都合の良い時間に前記ログから前記不必要な書込エントリーを削除するように作動的に接続されている装置。
【請求項７】
マスタ・イメージと少なくとも１つのスレーブ・イメージを含む複数のデータ・イメージをコンピュータシステムにおいて同期させるためのコンピュータプログラムを記述したコンピュータ読み取り可能な媒体であって、前記コンピュータシステムは：
前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへ書き込まれるべき前記複数のデータ・イメージの部分を識別する多数の書込要求を受け取り、かつ、前記複数のデータ・イメージの前記部分を識別する多数の書込エントリーを含むログを保守するようにプログラムされたログ・メンテナンス・ロジックと；
前記複数のデータ・イメージの前記識別された部分を更新するために前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへの書込操作を開始するようにプログラムされたストレージロジックであって、該書込操作は、該操作が異なるときに完了し、かつ、前記少なくとも１つのスレーブ・イメージへの書込操作が前記マスタ・イメージへの書込操作の前に完了する可能性があるストレージロジックと；
前記複数のデータ・イメージの前記部分を非同期になるようにさせた可能性がある不良があったことを決定するようにプログラムされた不良検出ロジックと；
前記不良からの回復に続いて、前記ログにおいて識別される前記複数のデータ・イメージの前記部分を前記マスタ・イメージから前記少なくとも１つのスレーブ・イメージへコピーするようにプログラムされた同期ロジックと；
を含んでなり、
前記コピーは、書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了したが、前記マスタ・イメージに対して完了していないならば、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージのいずれにおいても完了していないならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージの両方において完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新された部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了しておらず、前記マスタ・イメージに対して完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新された部分で上書きするものであるコンピュータ読み取り可能な媒体。
【請求項８】
請求項７のコンピュータ読み取り可能な媒体であって、前記ログ・メンテナンス・ロジックは、前記ログから不必要な書込エントリーを削除するようにプログラムされているコンピュータ読み取り可能な媒体。
【請求項９】
請求項８のコンピュータ読み取り可能な媒体であって、前記ログ・メンテナンス・ロジックは、前記不必要な書込エントリーを削除する都合の良い時間を決定し、該都合の良い時間に前記ログから前記不必要な書込エントリーを削除するようにプログラムされているコンピュータ読み取り可能な媒体。
【請求項１０】
マスタ・イメージを保守するためのマスタストレージユニットと、少なくとも１つのスレーブ・イメージを保守するための少なくとも１つのスレーブストレージユニットを含むコンピュータシステムであって：
前記マスタストレージユニットは作動的に接続されて、
前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへ書き込まれるべき前記複数のデータ・イメージの部分を識別する多数の書込要求を受け取り；
前記複数のデータ・イメージの前記部分を識別する多数の書込エントリーを含むログを保守し；
前記書込エントリーを前記ログへ保存した後に、前記複数のデータ・イメージの前記識別された部分を更新するために前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへの書込操作を開始し、該書込操作は、該操作が異なるときに完了し、かつ、前記少なくとも１つのスレーブ・イメージへの書込操作が前記マスタ・イメージへの書込操作の前に完了する可能性があり；
前記複数のデータ・イメージの前記部分を非同期になるようにさせた可能性がある不良があったことを決定し；かつ、
前記不良からの回復に続いて、前記ログにおいて識別される前記複数のデータ・イメージの前記部分を前記マスタ・イメージから前記少なくとも１つのスレーブ・イメージへコピーする；
ことを含み、
前記コピーは、書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了したが、前記マスタ・イメージに対して完了していないならば、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージのいずれにおいても完了していないならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新されていない部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージと前記マスタ・イメージの両方において完了しているならば、前記コピーは、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新された部分で上書きするものであり；書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了しておらず、前記マスタ・イメージに対して完了しているならば、前記コピーは前記少なくとも１つのスレーブ・イメージの更新されていない部分を前記マスタ・イメージの更新された部分で上書きするものであるコンピュータシステム。
【請求項１１】
マスタ・イメージを保守するためのマスタストレージユニットと、少なくとも１つのスレーブ・イメージを保守するための少なくとも１つのスレーブストレージユニットを含むコンピュータシステムにおいて複数のデータ・イメージを同期させる方法であって：
前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへ書き込まれるべき前記複数のデータ・イメージの部分を識別する多数の書込要求を受け取り；
前記複数のデータ・イメージの前記部分を識別する多数の書込エントリーを含むログを保守し；
前記書込エントリーを前記ログへ保存した後に、前記複数のデータ・イメージの前記識別された部分を更新するために前記マスタ・イメージと前記少なくとも１つのスレーブ・イメージへの書込操作を開始し、該書込操作は、該操作が異なるときに完了し、かつ、前記少なくとも１つのスレーブ・イメージへの書込操作が前記マスタ・イメージへの書込操作の前に完了する可能性があり；
前記複数のデータ・イメージの前記部分を非同期になるようにさせた可能性がある不良があったことを決定し；
前記不良からの回復に続いて、前記スレーブ・イメージの一部が前記マスタ・イメージの対応する部分と異なるか否かを最初にチェックすることなく、前記ログにおいて識別される前記複数のデータ・イメージの前記部分を前記マスタ・イメージから前記少なくとも１つのスレーブ・イメージへコピーする；
ことを含んでなり、
前記コピーは、書込操作が前記少なくとも１つのスレーブ・イメージに対しては完了したが、前記マスタ・イメージに対して完了していないならば、前記少なくとも１つのスレーブ・イメージの更新された部分を前記マスタ・イメージの更新されていない部分で上書きするものである方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は概略コンピュータ記憶装置システムに関し（本明細書において記憶装置とは、「ストレージ」のことをいう）、より詳細には、分配されたコンピュータ記憶装置システムにおける遠隔ミラーリングに関する。
【０００２】
【従来の技術】
通常のコンピュータシステム・アーキテクチャでは、ホストコンピューターは、前記ホストコンピューター用に不揮発性記憶装置を提供するコンピュータ記憶システムに接続される。とりわけ、前記コンピュータ記憶システム（本明細書において記憶システムとは、「ストレージシステム」のことをいう）は、たくさんの相互接続する記憶ユニット（本明細書において記憶ユニットとは、「ストレージユニット」のことをいう）を包含する。各記憶ユニットは、たくさんの物理的または論理的ストレージメディア（たとえばディスクアレイ）を含む。便宜上、単一の仮想ディスクを構成するために論理的に接続される一つ以上の物理的ディスクの群は、以下に「論理ユニット」（LU）と呼ぶ。前記ホストコンピューターからのデータは、前記コンピュータ記憶システムにおいて、そして、特に前記コンピュータ記憶システムの内部で前記多様な記憶ユニットにおいて格納される。
【０００３】
【発明が解決しようとする課題】
コンピュータ記憶システムにおける1つの問題は、たとえば、メンテナンス、修復または一つ以上の記憶ユニットの明白な誤動作（不良failure）に起因する、データロス、または、利用不可能性（unavailability）である。そのようなデータロスまたは利用不可能性（unavailability）を防止するために、前記ホスト・データのコピーが、物理的に別個の記憶ユニットにおいて作動される複数の記憶ユニットに頻繁に記憶される。便宜上、物理的に別個の記憶ユニットで前記ホスト・データを多重コピーする前記実行は、「遠隔ミラーリング（”remote mirroring”）」と呼ばれる。もう一つの記憶ユニットでの前記ホスト・データが利用できないか、損壊したとき、遠隔ミラーリングは、前記ホスト・データが前記記憶ユニットのうちの1つからすぐに読み出されることを許容する。
【０００４】
したがって、コンピュータ記憶システムにおいてデータロスまたは利用不能の前記可能性を減軽するために、「遠隔ミラー」（または単に「ミラー」）は、複数イメージを処理するために設置される。各イメージは一つ以上のLUから成る。そして、それは以下において一纏めにして「LU アレー・セット（Array Set）」と呼ぶ。前記コンピュータ記憶システムが同時にマルチプル・ミラーを維持するかもしれない点に注意すべきである。そこでは、各ミラーは異なるイメージセット（a different set of images）を処理する。
【０００５】
特定のミラーの範囲内で、1つのイメージは、マスタイメージとして指定され、他方、前記ミラーの範囲内のその他のイメージは、各々、スレーブイメージとして指定される。便宜上、スレーブイメージを保持する記憶ユニットが以下に「スレーブ記憶ユニット」と呼ばれる一方、前記マスタイメージを保持する前記記憶ユニットは、以下に前記「マスタ記憶ユニット」と呼ばれる。マルチプル・ミラーを補佐する記憶ユニットが、一つのミラーのために1つのマスタミラーとして、もう一つのミラーのためにスレーブ記憶ユニットとして動作するかもしれない点に注意すべきである。
【０００６】
前記マスタ記憶ユニットでの前記ホスト・データが利用できないか、破壊したとき、前記ホスト・データが前記スレーブ記憶ユニットのうちの1つからすぐに読み出されることができるように、ミラーがデータの利用可能性を提供するためには、前記スレーブイメージの全てが前記マスタイメージと同じ前記情報を包含するように、前記スレーブイメージの全部が前記マスタイメージで同期することは、肝要である。前記スレーブイメージの同期は、前記マスタ記憶ユニットによってコーディネートされる。
【０００７】
標準動作条件の下で、前記ホストは、前記マスタ記憶ユニットにホスト・データを書き込む。そのマスタ記憶ユニットは、前記マスタイメージにおいて前記ホスト計算機データを記憶して、そのうえ前記ミラーの各スレーブ記憶ユニットへ前記ホスト計算機データのコピーを書き込み、各スレーブ記憶ユニットがそのスレーブイメージにおいて前記ホスト計算機データを受信し、記憶することを確かめるために全てのデータ記憶操作をコーディネートする。前記ミラーで各スレーブ記憶ユニットに前記ホスト計算機データの前記コピーを書き込むための前記データ記憶操作は、同期方法か非同期方法のどちらでも行使されることができる。同期遠隔ミラーリングで、前記マスタ記憶ユニットは、前記ホスト計算機データが前記ホスト計算機に肯定応答を送る前に前記ミラーにおいて全てのスレーブ記憶ユニットにうまく書き込まれたことを保証する。そしてその肯定応答は、比較的高い呼び出し時間で終わるが、全てのスレーブが前記書込み操作が完全である前記ホスト計算機に知らせる前に更新されることを確実にする。非同期遠隔ミラーリングにおいて、前記マスタ記憶ユニットは、前記ホスト計算機データが前記ミラーで全てのスレーブ記憶ユニットにうまく書き込まれたことを確認する前に前記ホスト計算機に肯定応答通報を送る。そして、その肯定応答は、比較的低い呼び出し時間で終わるが、全てのスレーブが、前記書込み操作が完結していることを前記ホスト計算機に知らせる前に更新されることを保証しない。
【０００８】
同期及び非同期遠隔ミラーリングの双方において、前記マスタ記憶ユニットが前記ホスト計算機からの書込みリクエストを受信して及び前記マスタイメージ及び前記スレーブイメージの全てを更新する間においてそのうち動かなくなることは、ありうる。前記マスタ記憶ユニットは、たとえば、前記マスタ記憶ユニットにおけるアクチュアルハードウェアまたはソフトウェアの不良または予想外の電源異常に起因して動かなくなるかもしれない。前記マスタ記憶ユニットが前記不良の時点で一つ以上の書込み操作を完了する前記過程にあるならば、前記マスタ記憶ユニットは、どんなイメージも更新しなかったかもしれないし、スレーブ・イメージ以外の前記マスタ・イメージを更新したかもしれないがどのスレーブ・イメージも更新しなかったかもしれず、前記マスタ・イメージ及び前記スレーブ・イメージの一部を更新したかもしれないが、どんな特定の書込み操作に対しても前記マスタ・イメージおよび前記スレーブ・イメージの全部を更新したかもしれない。さらに、前記マスタ記憶ユニットは、前記不良に先立ち特定の書込みリクエストを承認するかもしれないが、承認しないかもしれない。
【０００９】
前記不良（the failure）の後、マスタ記憶ユニットが、各スレーブ・イメージのステータス、及び、具体的には、特定のスレーブ・イメージが前記マスタイメージと一致するかどうかを決定することは、出来ないかもしれない。したがって、前記マスタ記憶ユニットは、前記マスタ・イメージをブロックごとに前記スレーブ記憶ユニットの各々へコピーすることによって典型的には前記スレーブ・イメージの全てに再同期させる。これは、前記マスタ・イメージへ前記スレーブ・イメージを同期させるが、特定の書込みリクエストが完了されたことを保証しない。残念なことに、前記全体のマスタ・イメージを全てのスレーブ記憶ユニットへコピーすることは、前記イメージサイズ、スレーブ記憶ユニットの数及びその他の要素に従い相当量の時間を必要とすることになる。そのような再同期が、特に非常に大きいイメージに対し完了するために相当な時間を必要とすることは、珍しくない。
【００１０】
このように、不良をフォローするスレーブ・イメージにすばやく再同期させるためのシステム、装置及び方法が必要である。
【００１１】
【課題を解決するための手段】
本発明の1つのアスペクトによれば、マスタ記憶ユニットは、前記マスタ記憶ユニットにおける不良をフォローしているスレーブ・イメージをすばやく再同期させるために書込みインテントログを利用する。前記書込みインテント・ログは、前記不良にも関わらず保護され、その結果、前記書込みインテント・ログは、前記不良からの回復に基づき前記マスタ記憶ユニットにとって利用可能である。前記書込みインテント・ログは、前記マスタ・イメージとは非同期にされる可能性のある前記スレーブ・イメージのどんな部分でも識別する。前記マスタ記憶ユニットは、前記書込みインテント・ログにおいて識別されたように、非同期にされる可能性のある前記スレーブ・イメージのそれらの部分のみを再同期する。
【００１２】
好ましい実施例において、前記書込みインテント・ログは、非同期するかもしれないどんなイメージ・ブロックでも識別する。前記スレーブ・イメージを再同期させるために、前記マスタ記憶ユニットは、前記マスタ・イメージから前記スレーブ・イメージに前記書込みインテント・ログにおいて識別されたこれらのイメージ・ブロックだけをコピーする。
【００１３】
非同期にする可能性がある前記スレーブ・イメージのそれらの部分だけを再同期させることによって、前記マスタ記憶ユニットは、前記全体のマスタ・イメージを前記スレーブ記憶ユニットの各々へブロックごとにコピーすることにかかったであろうよりも、よりかなり少ない時間（多分時間よりむしろ秒）において前記スレーブ・イメージを再同期させることが出来る。
【００１４】
【発明の実施の形態】
本発明の一つの実施例は、マスタ記憶ユニットが、マスタ・イメージの対応する一部から非同期になる可能性があるスレーブ・イメージの一部（すなわちマスタ・イメージの対応する一部と異なる可能性があるスレーブ・イメージの一部）を単に更新することによって不良をフォローしているスレーブ・イメージを素早く再同期させるのを可能にしている。具体的には、マスタ記憶ユニットは、非同期にされる可能性があるスレーブ・イメージのどの部分をも識別するログ（以下に「書込みインテント・ログ」と記す。）を保守する。書き込みインテント・ログは、不良（a failure）を生き残らせることを保証するようなやり方で、不良を保守する。したがって、不良をフォローしているマスタ記憶ユニットにとって利用可能である。マスタ記憶ユニットが不良をフォローして作動中であるとき、非同期にされる可能性があるスレーブ・イメージのこれらの部分を再同期させることによって、好ましくはマスタ・イメージから各スレーブ記憶ユニットに、書込みインテント・ログにおいて識別された際に非同期にされる可能性があるイメージ・ブロックをコピーすることによって、マスタ記憶ユニットは、スレーブ・イメージを再同期する。書込みインテント・ログにおいて識別されるスレーブ・イメージの一部分は、たとえ識別された一部が一つ以上のスレーブ・イメージにおいてマスタ・イメージと事実上同期させられているとしても、再同期させられる。非同期にさせられた可能性があるスレーブ・イメージのこれらの部分だけを再同期させることによって、マスタ記憶ユニットは、スレーブ記憶ユニットの各々にブロック毎に全体のマスタ・イメージをコピーするために必要としたであろうより非常に少ない時間（多分時間よりむしろ秒）において、スレーブ・イメージを再同期させることができる。
【００１５】
より具体的には、マスタ記憶ユニットがホストから書込みリクエストを受信するとき、マスタ記憶ユニットは、書込みインテントログにおいて書込みエントリを記憶する。書込みエントリは、非同期ミラーリングの場合においてミラー・イメージに書き込まれるアクチュアル・データーと同様に、書込み操作（例えばブロック・オフセットと長さ）によって影響されるミラー・イメージの一部分を識別する情報を含む。便宜上、書込みエントリの情報は、それとミラー・イメージに書き込まれる実際のデータを区別するために以下に「メタデータ（”meta-data”）」と記す。
【００１６】
本発明の好ましい実施例において、マスタ記憶ユニットは、ミラーの通常操作の間、高速記憶メモリ（以下に「書込みキャッシュ（”write cashe”）」と記す）の書込みインテント・ログを保守する。これは、マスタ記憶ユニットがすばやく書込みエントリを書込みインテント・ログに加えるのを許す。もし、マスタ記憶ユニットが冗長な（reductant）記憶プロセッサー（詳細は以下に記述する）を含むならば、その時、各記憶プロセッサーは、同等の記憶プロセッサー上にコピーが作られるところのそれ自身の書込みインテント・ログを保守する。これは、記憶プロセッサー（しかし、全体のマスタ記憶ユニットでなく）が動作しなくなる（不良になるfails）時、1つの記憶プロセッサーが他の記憶プロセッサーを占有する（引き継ぐtake over for）ことを許容する。完全なマスタ記憶ユニット不良の場合には、マスタ記憶ユニットは、とりわけ、不良の検出に基づき不揮発性記憶装置（例えばディスク）に全体の書込みインテント・ログを自動的に記憶し、その不良からの回復に基づき該不揮発性記憶装置から自動的に書込みインテント・ログを再記憶する自動バックアップ/再生ロジックを含む。自動バックアップ/再生ロジックは、書込インテント・ログが不良をフォローして回復できることを保証することができる程度に、重複するバッテリーバックアップと重複する記憶能力によって、非常に強力である。
【００１７】
一旦マスタ記憶ユニットが書込みインテントログに書込みエントリを記憶するならば、マスタ記憶ユニットは書込みリクエストに基づくマスタ・イメージとスレーブ・イメージを更新することを続ける。マスタ記憶ユニットがうまくマスタ・イメージとスレーブ・イメージの全部を更新することができると仮定すれば、その時、書込みエントリがもはや必要でない。その場合には、マスタ記憶ユニットは書込み意図ログから書込みエントリを削除する。本発明の好ましい実施例において、マスタ記憶ユニットは、「怠惰な（”lazy”）」削除メカニズムを使用している書込みインテント・ログから、書込みエントリを削除する。具体的には、マスタ記憶ユニットに都合のよい、マスタ記憶ユニットが書込みエントリがもはや必要でないと決定すると必ずしも直ぐにではない、時間で、マスタ記憶ユニットは、書込みインテント・ログから必要とされない一つの書込みエントリを削除する。マスタ記憶ユニットは、典型的には書込みインテント・ログの定期的なクリーンアップを進行させる。そこでは、マスタ記憶ユニットは各クリーンアップ・サイクルの間、多数の必要とされない書込みエントリを削除する可能性がある。この削除方式は一つずつ必要とされない書込みエントリを削除することよりインプリメンテーション的に有効である。しかし、それは必要とされないある書込みエントリが、ある期間のあいだ書込みインテント・ログに固執するのを許す可能性がある。
【００１８】
記憶プロセッサーが動かなくなるならば、動作が書込み意図ログでの何か書込みエントリに該当する書込みが完了の異なる点に存在する可能性がある。たとえば、マスタ記憶ユニットは何れかのイメージを更新しなかった可能性、スレーブ・イメージをでなくマスタ・イメージを更新した可能性、マスタ・イメージ及びスレーブ・イメージのいくつかを更新した可能性、または、何かの具体的な書込み操作のためにマスタ・イメージとスレーブ・イメージの全部を更新した可能性がある。
【００１９】
マスタ記憶ユニットが重複する記憶プロセッサーを所有していると仮定すると、不良になった記憶プロセッサーによって維持される書込みインテント・ログは、同等の記憶プロセッサー上でコピーを作られる。従って、一旦同等の記憶プロセッサーが不良になった記憶プロセッサーを引き継いだなら、マスタ記憶ユニットは、書込みインテント・ログ内で識別されるスレーブ・イメージの一部だけを更新することによって、好ましくはマスタ・イメージからスレーブ記憶ユニットへ対応するイメージ・ブロックをコピーすることによって、マスタ・イメージにスレーブ・イメージの全部を再同期させる。
【００２０】
マスタ記憶ユニットが動作しないならば、自動バックアップ/再生ロジックは、自動的に不揮発性記憶装置に書込みインテント・ログを記憶する。このことが起これば、書込みインテント・ログ内の書込みエントリーに対応する書込みオペレーションが、異なる完了点に存在する可能性がある。たとえば、マスタ記憶ユニットが如何なるイメージも更新していない可能性、スレーブ・イメージを除いてマスタ・イメージを更新した可能性、マスタ・イメージとスレーブ・イメージのいくつかを更新した可能性、または、何らかの具合的な書込動作によってマスタ・イメージ及びスレーブ・イメージの全てを更新した可能性がある。
【００２１】
一旦マスタ記憶ユニットが不良をフォローして動作しているならば、自動バックアップ/再生ロジックは、不揮発性記憶装置から自動的に書込み意図ログを回復する。そのとき、マスタ記憶ユニットは、書込み意図ログ内で識別されるスレーブ・イメージの一部だけを更新することによって、好ましくは対応するイメージ・ブロックをマスタ・イメージからスレーブ記憶ユニットへコピーすることによって、マスタ・イメージにスレーブ・イメージの全部を再同期させる。
【００２２】
図１は、本発明の一つの実施例に従って、一つの例証的なコンピューターシステム100を示す。この例証的なコンピューターシステム100は、コンピュータ記憶システム120に連結されるホスト110を含む。コンピュータ記憶システムl20は、140Nを通してマスタ記憶ユニット130と多数のスレーブ記憶ユニット1401を含む。本発明の遠隔ミラーリング機能は、各記憶ユニットがコンピュータ記憶システム100における他の記憶ユニットの全てに関係することができるように、コンピュータ記憶システム100における各記憶ユニットがコンピュータ記憶システム100において他の記憶ユニットの全てに通信リンクを保全することを要求する。ホスト110は、マスタ記憶ユニット130に連結されて、ホスト110を通してミラーにアクセスする。
【００２３】
本発明の好ましい実施例において、コンピュータ記憶システム、（例えばコンピュータ記憶システム120内の140Nを通してのマスタ記憶ユニット130とスレーブ記憶ユニット1401のような）における記憶ユニットの各々は、重複する管理及び記憶能力を有するフォルトトレラントRAID（reductant array of independent disks）記憶ユニットである。遠隔式ミラーリングは、記憶ユニットの一つのアドオン方式機能として実行される。遠隔式ミラーリングは、特に、多数の地理学的位置で一つのイメージのバイト毎のコピーをキープすることによって、災害回復、遠端後備保護および他のデータ保全性ソリューションを提供するために使用される。
【００２４】
図2に示すように、好ましい記憶ユニット200は、一つの管理用インターフェース201、少なくとも1つのホストインターフェース202、少なくとも第一の記憶装置プロセッサー（SP）204及び一つのオプショナルな第二のSP 208、一つのディスクアレイ206としてアレンジされた多数のディスク並びにネットワークインターフェース210を有する。管理インターフェース201は、好ましくは、それによって記憶ユニット200が管理されおよびコントロールされる一つのイーサネット（登録商標）（a Ethernet（登録商標））・インターフェースである。ホスト 110はホスト インターフェイス 202を通して記憶ユニット200と入出力を行う、そしてそれは、好ましくはSCSIインターフェースをエミュレートする。ホスト インターフェイス 202は、ホスト 110が、SP 204およびオプショナルなSP 208の両方と通信することができるように、SP 204およびオプショナルなSP 208に連結される。
SP 204およびオプショナルなSP 208は一つのインターフェース209を通して相互接続する。そのインターフェース209は、好ましくは、ファイバ・チャネル・インタフェースである。SP 204およびオプショナルなSP 208はやはりインターフェース209を通してネットワークインターフェース210に連結される。そして、そのインターフェース209は、各SP（204、208）にコンピュータ記憶システム120の範囲内で他の記憶ユニットにおいてSPと通信するのを可能にする。
【００２５】
好ましいSP（204、208）は、オペレーティングシステムを実行するマルチプロセッサー・ハードウェアプラットホームに基礎をおかれる。両方のSP（204、208）は、本質的に同じソフトウェアを実行する。しかし、そのソフトウェアは、たとえば、他のSP以外の1つのアップグレードされたソフトウェアによって、2つのSPの間で異なることができる。したがって、各SP（204、208）は、記憶ユニットのために十分なマネジメント機能を提供することができる。
【００２６】
SPソフトウェアは、各LUが一度に一つのそして唯一の1つの5つのSPを通してアクセスされることを要求する。LUオーナー権のこの概念は、「割当て（”assignment”）」と呼ばれる。該SPソフトウェアは、LU アレイ・セット内の各LUが異なるSPに「割り当てられる（”assigned”）」のを許す。両方のSPプロセスは、記憶ユニット用のリダンダンシイ（redundancy）を提供するためにいろいろなマネジメント機能を要請し、執行する。SPのうちの1つが動かなくなるならば、他のSPは、動かなくなったSPのためにLUのマネジメントを引き継ぐ。
【００２７】
遠隔式ミラーリングは、LUアレイ・セット内の異なるLUを管理している異なるSPによって（またはLUアレイ・セット内の各LUへのアクセスを分担している両方のSPによっても）実行されることができる。しかし、そのようなインプリメンテーションは、LU アレイ・セット内で情報を記憶するために本質的なインター（inter-）SP調整を必要とするだろう。本発明の好ましい実施例は、したがって、LU アレイ・セット(Array Set)内での全てのLUSが同じSPに「割り当てられる（”assigned”）」ことを要求する。それによって、それはLU アレイ・セット(Array Set)内の情報を記憶するために何れかの15のインター（inter-）SPコーディネイションを無視している。このように、この発明の好ましい実施例においては、各ミラー・イメージは、一度に1つのSPによって管理される。便宜上、他のSPが以下「第二の」SPと呼ばれる一方、第一に具体的なミラー・イメージを管理することに対して責任があるこのSPは、以下に「第一の」SPと呼ばれる。以下の説明の目的のためにおよび図2に再び参照して、このSP 204は、「第一の」SPと呼ばれ、このSP 208は、「第二の」SPと呼ばれる。
【００２８】
図３は、第１ＳＰ２０４及び第２ＳＰ２０８のような、マスター記憶装置で作動されるＳＰの関連するコンポーネントの概念図を示す。図3に示すように、特にＳＰは、遠隔ミラーリング論理３０２、書込みキャッシュ３０４、自動バックアップ回復ロジック（論理）３０６及びデイスクマネジメント論理３０８を含む。デイスクマネジメント論理３０８は、遠隔ミラーリング論理３０２及び自動バックアップ回復論理３０６を含む、ＳＰの各種のコンポーネントが、双方共にインタフェース２０９を介した同一記憶装置及びインタフェース２０９を介した各記憶装置を横切る、ディスクアレイ２０６をアクセスしかつ他の各ＳＰと通信することを可能にするある範囲のサービスを与える。遠隔ミラーリング論理３０２は、デイスクマネジメント論理３０８によって与えられるサービスを利用し、ディスクアレイ２０６のマスターイメージを維持しかつスレーブイメージの更新を調整するスレーブ記憶装置と通信するようにされる。遠隔ミラーリング論理３０２はホストインタフェース２０２と間接的に結合され、それを通して遠隔ミラーリング論理３０２はホスト１１０とインタフェースする。遠隔ミラーリング論理３０２は、書込みキャッシュ３０４の書込み目的ログを維持し、それは同等ＳＰに複写されるＳＰ（即ち、ＳＰ２０４上の書込みキャッシュ３０４はＳＰ２０８上に複写され、ＳＰ２０８上の書込みキャッシュ３０４はＳＰ２０４上に複写される）上の局部高速メモリである。自動バックアップ回復論理３０６は、マスター記憶装置１３０の故障を検出すると同時に書込み目的ログを含む書込みキャッシュ３０４を自動的にディスクアレイ２０６に記憶し、ＳＰが故障から回復するとディスクアレイ２０６から書込みキャッシュ３０４を回復する。本発明の望ましい実施形態では、遠隔ミラーリング論理３０２はホスト１１０によって送られる情報を傍受かつ処理する層状装置ドライバとして実行される。
【００２９】
遠隔ミラーリングを行うために遠隔ミラーリング論理３０２は、ディスクアレイ２０６内に一定量の永続性記憶装置を要する。この永続性記憶は遠隔ミラーリング論理３０２によって用いられ、ミラー状態情報、ミラーメンバー情報、ミラーイメージ構成情報、及びミラーの適切な作動を補償するのに要する他の情報のような一定の情報 (以下に詳記される)の追跡を維持するようにされる。この情報は、全体として記憶装置の作動及びコンピュータ記憶にとって決定的なので、情報は高度に利用可能でなければならず、従って、部分的なディスクアレイ故障の場合には情報の冗長性コピーがディスクアレイ２０６に維持されるのが望ましい。
【００３０】
既に述べたように、ＬＵアレイセットは1つまたはそれ以上のＬＵから成る。ＬＵのグループを単一構成要素（エンティティ）として扱う能力は、多量に集められた1つまたはそれ以上のＬＵに対する遠隔ミラーを管理するホスト管理タスクを単純化する。スレーブイメージの更新に際して遠隔ミラーはこの概念を用いて論理的に接続されたＬＵ間のすべての書込み要求の順序づけを保護するようにする。非同期ミラーリングを用いる場合、テーブルを広げ、性能及び局部の理由でそれが多重装置と見なすことすべを調べるデータベースエンジンにとってこの順序づけは非常に重要である。
【００３１】
ミラー内の各ＬＵアレイセットは、それが単一ＬＵ又は多重ＬＵで構成されるかどうかにかかわらず、正確に同一の物理的サイズから成るものでなければならない。その理由はマスター記憶装置がホストシステムから受取るすべての書込み要求のブロック対ブロック転送を行うからである。もし、各イメージが単一ＬＵから構成されるならば、各ＬＵは物理的に同一サイズでなければならない。各イメージが多重ＬＵから構成されるならば、マスター及びそのスレーブ間の対応する各ＬＵが物理的に同一サイズでなければならない。例えば、マスターイメージがそれぞれサイズが８Ｇｂ及び４Ｇｂの2つのLUA及びBから構成されるならば、各スレーブイメージはそれぞれサイズが８Ｇｂ及び４Ｇｂの2つのLUA_及びB_から構成されなければならない。
【００３２】
LUアレイセットの物理的サイズはミラーの各イメージ間と一致しなければならないが、各LUアレイセット内の各LUのRAIDレベルは異なり得る。LUのRAIDレベルは、情報がLUに記憶される方法、情報をLUに記憶するのに要する時間、LU故障時にLUから回復され得る情報量のような多くのLU属性を決定する。望ましい記憶装置は、業界では周知のRAIDレベル０、１、１/０、３及び５を支援する。各種のRAIDの内、RAIDレベル５はLU故障の場合最高レベルの情報回復を与えるが、LUに情報を記憶するために最大の時間がかかる。RAIDレベル０は、LU故障の場合最小レベルの情報回復を与えるが、LUに情報を記憶するために最小の時間しかかからない。各LUには異なったRAIDレベルが割当てられ得る。
【００３３】
本発明の一実施形態では、マスターイメージと関連するLUはRAIDレベル５に構成され、一方スレーブイメージと関連するLUはRAIDレベル０に構成される。マスターイメージにRAIDレベル５を用いることでマスターイメージは極端に耐性的にされる。スレーブイメージにRAIDレベル０を用いることで、各スレーブイメージは比較的迅速にそれぞれのスレーブ記憶装置に書込まれことが可能になり、それは特に同期的遠隔ミラーリングで待ち時間を低減し得る。
【００３４】
遠隔ミラーリング機能性は、マスターイメージ及びスレーブイメージ間の作動関係と共にミラーの作動状態に関して記載され得る。
【００３５】
図４は、ミラーの作動状態を示す状態図である。便宜上、図４に示される状態図は、一定の故障変化、故障状態は示さない。図４に示されるように、ミラーには３つの主要状態、即ち、非アクティブ（INACTIVE）アクティブ４０２、（ACTIVE）４０４及びアテンション（ATTENTION）４０６がある。３状態間の主要な区別は、ミラーがホストからの要求を読取り及び書込む応答の仕方である。デフォールトミラー状態は非アクティブ状態４０２である。非アクティブ状態４０２ではホストがマスターイメージにアクセスすることはできない。従って、ホストはマスターイメージからの読取り又はマスターイメージへの書込みはできない。ミラーが作り出される時にはミラーは非アクティブ状態４０２ではないが、ミラーが削除され得る前にはミラーは非アクティブ状態４０２でなければならない。
【００３６】
ミラーが非アクティブ状態４０２である時には、管理者（アドミニストレータ）はミラーを作動させるようにし得る。管理者がミラーを作動させるようにしかつミラーが通常作動の最低用件をすべて満たすならば、ミラーはアクティブ状態４０４に変化する。しかし、管理者がミラーを作動させるようにしても、ミラーが通常作動の最低条件をすべて満たさないならば、ミラーはアテンション状態４０６に変化する。
【００３７】
通常作動ミラー状態はアクティブ状態４０４である。アクティブ状態４０４ではホストはマスターイメージにアクセスできる。任意の時にミラーが通常作動の最低用件を満たさないならば、ミラーは自動的にアテンション状態４０６に変化する。直接的管理制御化ではミラーは非アクティブ状態４０２へ変化する。
【００３８】
アテンション状態４０６は、ミラー内のどこかでミラーの通常作動が妨げられる問題があることを示す。アテンション状態４０６では、ホストがマスターイメージをアクセスできない。従って、ホストはマスターイメージからの読取り又はマスターイメージへの書込みはできない。任意の時にミラーが通常作動の最低用件を満たすならば、ミラーは自動的に非アクティブ状態４０２に変化する。
【００３９】
図５は、マスターイメージ及びスレーブイメージの透視図からの単一スレーブイメージ間の作動的関係を示す状態図である。異なった各スレーブイメージはマスターイメージに関して異なった各状態にあり、それ故に各種のスレーブイメージに含まれるデータは異なり得ることに注目すべきである。図５に示すように、そこには４つの主要な状態がある。即ち、同期されていない５０２、同期されている５０４、不変の５０６及び同期中の５０８の各状態がある。
【００４０】
スレーブイメージのデータ及びマスターイメージのデータ間に既知の関係がないことが容易に決定される時にはスレーブイメージはアンシンクロナイズド状態５０２と考えられる。例えば、最初にスレーブイメージがミラーに加えられる時これは事実である。
【００４１】
ミラーがアクティブ状態４０４ならばスレーブイメージはアンシンクロナイズド状態５０２からシンクロナイジング状態５０８に変わる。これはスレーブ記憶装置の遠隔ミラーリングソフトウェアによってとられる暗黙の作動である。
【００４２】
スレーブイメージは同様に管理作動を通してアンシンクロナイズド状態５０２からシンクロナイズド状態５０４に置かれ得る。特に、管理者は、ミラーをインアクティブ状態４０２に置き、マスターイメージをスレーブイメージにコピーするか又は他の方法でマスターイメージと同一のスレーブイメージを作りだし、明示的にスレーブイメージがシンクロナイズド状態５０４にあるようにさせることによって、スレーブイメージをマスターイメージと同期させ得る。
【００４３】
スレーブイメージがマスターイメージの正確なバイト対バイト複製である時にはスレーブイメージはシンクロナイズド状態５０４にあると考えられる。これは、マスターイメージ及びスレーブイメージの双方へ安定して記憶されていなかった、ホストからの未解決の各書込み要求がないことを意味する。
【００４４】
ミラーがアクティブ状態にありかつマスターイメージで書込み要求が安定して記憶される時には、スレーブイメージはシンクロナイズド状態５０４からコンシステント（不変の）状態５０６に変わる。その時点では、スレーブイメージはなおマッスターイメージの先行状態と一致するが、スレーブイメージは最早マスターイメージの正確なバイト対バイト複製ではない。
【００４５】
スレーブイメージが現在マスターイメージの正確なバイト対バイト複製ではないが、過去のある確定できる時点でマスターイメージの正確なバイト対バイト複製であるならば、スレーブイメージはコンシステント状態５０６にあると見なされる。同期（シンクロナス）遠隔ミラーリングでは、各書込み要求に対してマスター記憶装置がすべてのスレーブを更新するので、スレーブイメージは精々一書込み要求だけマスターイメージとは異なり得る。しかし、非同期（アンシンクロナス）遠隔ミラーリングでは、マスターイメージ記憶装置は書込み要求に関して非同期的にスレーブ記憶装置を更新するので、スレーブイメージはマスターイメージから一書込み要求より大きく変わり得る。
【００４６】
ミラーイメージがアクティブ状態４０４にありかつスレーブイメージですべての書込み要求を安定に記憶してしまっているならば（即ち、未解決書込み要求はない）、スレーブイメージはコンシステント状態５０６からシンクロナイズド状態５０４に変わる。この変化はマスターイメージの制御下でなされる。同様にスレーブイメージは管理者によってシンクロナイズド状態５０４に置かれ得る。
【００４７】
１）ミラーが非アクティブ状態４０２にありかつ管理者が明示的にスレーブイメージをシンクロナイジング状態５０８に強制的にするか、又は２）ミラーがアクティブ状態４０４にありかつマスターイメージからの１つ又はそれ以上の書込み更新が変化で失われてしまっていることを確認する時には、コンシステント状態５０６からも同様にスレーブイメージはシンクロナイジング状態５０８に変わる。
【００４８】
ミラーがアクティブ状態４０４にありかつマスター記憶装置によって保持される書込み経歴が悪化されるか又は失われるならば、同様にスレーブイメージはコンシステント状態５０６からアンシンクロナイズド状態５０２に変わる。
【００４９】
マスターイメージへのホスト書込みの直接的結果でない方法でマスターイメージからスレーブイメージが明示的に更新されるならば、それはシンクロナイジング状態５０８にあると見なされる。実際のシンクロナイジング作動は、マスターイメージの完全なバイト対バイトコピー又は一連の書込み要求を送信（又は再送信）することを要し得る。
【００５０】
理由の如何を問わず、スレーブイメージがマスターイメージと同調されないならばスレーブイメージはシンクロナイジング状態５０８からアンシンクロナイズド状態５０２に変わる。この場合には、スレーブイメージを同期させる試みがなされ得るが、そのような同期は、例えば、スレーブイメージへの失われた通信のために、ある状況では不可能でありうる。
【００５１】
スレーブイメージを同期させるのに用いられる方法にかかわらず、同期作動が首尾よく完了すると同時に、スレーブイメージはシンクロナイジング状態５０８からコンシステント状態５０６に変わる。
【００５２】
スレーブ同期作動はホストに対して透過的に完成されることに注目すべきである。スレーブ同期作動がホストによるミラーへの通常アクセスに影響を与えるのを防止するために、マスターイメージ及びスレーブイメージ間の処理数を制限する抑圧機構が用いられる。
【００５３】
上記のように、ホストはマスター記憶装置を通してのみミラーにアクセスすることが可能にされる。従って、特により高レベルのドライバーから受取る一定の要求を傍受することによって、遠隔ミラーリングドライバーはミラーと関連する各LUへの一定のアクセスを防止する。各要求を傍受するために各記憶装置は、ミラーと関連するすべての記憶装置LUを識別するLUリストを維持する。各スレーブ記憶装置の遠隔ミラーリングドライバーは、特に要求がより低レベルのドライバーによって処理されるのを防止することによって、LUリストのLUを目標とするより高レベルのドライバーからのあらゆる読取り又は書込み要求を傍受する。同様に、マスター記憶装置の遠隔ミラーリングドライバーは、適切な遠隔ミラー機能を行うためにLUリストのLUを目標とするより高レベルのドライバーからのあらゆる書込み要求を傍受する。しかし、マスター記憶装置の遠隔ミラーリングドライバーは、より高レベルのドライバーからのすべての読取り要求がより低レベルのドライバーによって処理されることを可能にする。
【００５４】
ミラーに関係する各記憶装置は、ミラーデータベースの完全なコピーをその耐久性記憶装置に維持する。ミラー関連情報が変わるにつれて、各記憶装置はそのミラーデータベースを更新し、関係するものすべてが同一視界のミラーを有するようにさせる。すべてのミラーメンバーに亘るこの更新は、「アトミック（原子的）」方法（即ち、すべてのミラーメンバーに亘るこの更新はすべてのミラー構成要素によって完了されなければならない単一作動として扱われる）。この情報を各記憶装置に対して局部的に保つことによって、マスターイメージの役割は管理者によって管理されるようなミラーのあらゆるイメージによって引き受けられ得る。
【００５５】
ミラーデータベースに記憶される情報は２つの目的に役立つ。第１は各ミラーの属性を永続的に記憶することである。第２はミラーの状態情報を維持することによって故障状態中支援することである。ミラーデータベースの情報は、管理者作動を介した間接的修正、ミラーを作動的に用いた直接修正で行われる。上記目的を満たすのに要する情報の最少量はミラーデータベースに維持される。
【００５６】
ミラーデータベースの特定のミラーに対して維持される情報は、ミラー全体に亘る情報及びイメージ特有情報に分類される。
【００５７】
本発明の望ましい実施形態では、ミラー全体に亘る情報は、なかんずく、ミラー名称、ミラー状態、フラクチャ（fracture）ログサイズパラメータ、ミラー範囲サイズパラメータ、最大仕損じイメージパラメータ、必要最少イメージパラメータ、ハートビート（中心ビート）パラメータ、同期優先パラメータ、書込み手段パラメータ、書込み手持ちサイズパラメータを含む。
【００５８】
ミラー名称はミラーの記号的名称である。ミラー名称は、ミラーが作リ出される時管理者によって与えられる。ミラー名称はミラーベース内のテキストストリングフィールドとして維持される。
【００５９】
ミラー状態は、ミラーが非アクティブ状態４０２、アクティブ状態４０４又はアテンション状態４０６のいずれであるかを示す。ミラー状態は遠隔ミラーリングソフトウエアによって動的に更新される。
【００６０】
フラクチャログサイズは、ミラー範囲サイズ（以下に記載）ユニット（一式）のフラクチャログのサイズを特定する。フラクチャログサイズパラメータはフラクチャログに記憶され得る、仕損じた更新の数を決定する。
【００６１】
ミラー範囲サイズパラメータは、部分的又は完全な同期を要する時に用いられるサイズをブロックで特定する。
【００６２】
最大仕損じパラメータは、ミラーがアクティブのままであり得ると同時にミラーからはずれ得るイメージの最大数を設定する。この限度に到達すると、それが非アクティブ状態４０２ならミラーは作動されないか、又はミラーがアクティブ状態４０４ならばそれはアテンション状態４０６に置かれる。ゼロの値は、ミラーが作動化されるためにはすべてのスレーブイメージが存在することを要する。マイナス１（‐１）の値はこの特性を不能にするのに用いられる。
【００６３】
必要最少イメージパラメータは、ミラーが作動化され得る前に利用可能でなければならないイメージの最小数を設定する。この値をミラーの合計イメージ数と等しく設定するには、ミラーが作動化され得る前に全イメージが存在することを要する。マイナス１（‐１）の値はこの特性を不能にするのに用いられる。
【００６４】
ハートビートパラメータは、各スレーブ記憶装置の「到達可能性」を決めるためにマスター記憶装置で用いられるハートビート信号の周波数を設定する。
【００６５】
同期優先パラメータは、記憶装置によって維持される他のあらゆるミラーに関するミラーの優先順位を設定する。多重ミラーが同期されなければならない時には、同期に当てられるミラー相互接続帯域幅の量を最小にするために同期優先パラメータが各ミラーの同期を指定するように用いられる。
【００６６】
書込み手段パラメータはミラーが同期又は非同期のいずれかを特定する。
【００６７】
書込み手持ちサイズパラメータは、次にスレーブへ伝達するためにマスター上で列をなし得るホスト書込みの量をブロックで設定する。この書込み手持ちサイズパラメータは非同期遠隔ミラーリングに対してのみ用いられる。
【００６８】
本発明の望ましい実施形態では、イメージ特定情報は、なかんずく、SP識別名（子）、LUアレイセット識別子、イメージ指名子、ミラーイメージ状態、クッキー、タイムアウト値パラメータ、同期率パラメータ、同期進行標識子（インジケータ）及び回復手段パラメータを含む。
【００６９】
SP識別子は、イメージに対する第１SP、若し得られるならば、第２SP、を独特に確認する。
【００７０】
LUアレイセット識別子は、イメージに対する１つ又はそれ以上の構成要素LUを確認する。
【００７１】
イメージ指名子は、イメージがマスターイメージか又はスレーブイメージかどうかを特定する。
【００７２】
ミラーイメージ状態は、イメージがアンシンクロナイズド状態５０４、シンクロナイズド状態５０４、コンシステント状態５０６又はシンクロナイジング状態５０８かどうかを示す。
【００７３】
コックは、イメージの状態をミラーの状態と関連付ける不変情報を含む動的に更新される値である。
【００７４】
タイムアウト値パラメータは、マスター記憶装置が到達不能（以下に記載）と見なす前にスレーブ記憶装置が到達不能に止まることが可能な時間の量を示す。
【００７５】
同期率パラメータは、イメージ同期がなされるレートを示し、それによって同期が抑圧される機構である。
【００７６】
同期進行インジケータは、スレーブイメージ同期の現情勢を維持するのに用いられる。この値は、同期を受けていた到達不能なスレーブが到達可能になる時に調べられる。
【００７７】
回復手段パラメータは、イメージがオンラインになる時イメージが自動的に再同期されるべきかどうかを特定する。
【００７８】
本発明の望ましい実施形態では、各遠隔ミラー及びそれらの対応するイメージが一組の管理作動を通して管理される。これらの管理作動は全ミラーの一定の特性又は作用を変化させる。イメージ作動ではミラーの特定のイメージが意図される。特に、あるイメージ作動ではマスターイメージが意図され、一方他の作動では特定のスレーブイメージが意図される。
【００７９】
別段の指示がない限り、管理作動はマスター記憶装置に送られなければならず、それがまた、特にメッセージ通過サービス（MSP）を用いて、必要に応じて適切なスレーブ記憶装置へ当該作動を伝える。マスター記憶装置は、ミラーの各スレーブ記憶装置に対する現状情報、特にスレーブイメージ記憶装置が到達不能か又は到達可能かどうか（即ち、マスター記憶装置がスレーブ記憶装置と通信可能かどうか）の情報を維持する。マスター記憶装置がミラー構成情報をスレーブ記憶装置へ伝えようと試み、スレーブ記憶装置がミラー構成情報を受信できない事を確認するならば、マスター記憶装置はスレーブ記憶装置を「到達不能」としてマークし、当該ミラーの残余のスレーブ記憶装置に新しいミラー構成情報を伝える。
【００８０】
遠隔ミラーリングソフトウエアはミラーの作動に影響を与えるあらゆる構成変化に注目しなければならない。そのような構成変化それ自体はミラー作動ではないが、適切なミラー作用を確保するためにソフトウエアのミラーリングに注目することを要する。例えば、各LUが一SPから他のSPへ再割当されるとき各SPの遠隔ミラーリングソフトウエアが注目され、各SPが該変化によって生じるあらゆるミラー関連回復を調整できるようにしなければならない。
【００８１】
ミラーを作り出すために、管理者は第１にマスター記憶装置上にLUアレイセットを作り出し、マスターイメージとして作動するようにLUアレイセットを構成する。次いで管理者はマスター記憶装置にミラー創出機能をもたらし、LUアレイセット及びミラー名称を特定する。ミラー創出機能はミラー構成情報を初期化し、マスター記憶装置によって維持されるLUリストにLUアレイセットを加える。LUアレイセットが存在しないか又はLUアレイセットが他のミラーの一部であるならば、ミラー創出機能はミラーを作り出せない。しかし、ミラー創出機能が首尾よく完了するならば、ミラーは単一イメージから構成されかつインアクテイブ状態４０２にある。
【００８２】
一度ミラーが作り出されると、管理者はミラーにスレーブイメージを加え、ミラーからスレーブを除去し、マスターイメージとして作動するようスレーブイメージを助長し、スレーブイメージとして作動するようマスターイメージを降格させ、スレーブイメージを同期させ、スレーブイメージを分裂させ、分裂されたスレーブイメージを回復させ、ミラーを作動させ、ミラーを非アクテイブかさせるかまたはミラーを破棄することが出来る。管理者はまたミラー属性を変化させるかまたはミラー属性を検索し得る。
【００８３】
ミラーにスレーブイメージを加えるために、管理者は最初に、スレーブ記憶装置（ストレージ）にLUアレイセットを作成して、LUアレイセットをスレーブイメージとして作動させるように構成する。管理者は、次ぎに、ミラーにスレーブイメージを加えるようにマスタ記憶装置に命令する。マスタ記憶装置は、ミラーにスレーブイメージを加えるように、順次、スレーブ記憶装置に命令する。例えば、スレーブイメージが既にミラーにあるか、LUアレイセットが存在していないか、LUアレイセットが別のミラーの一部であるならば、スレーブ記憶装置は要求を拒絶するかもしれない。しかしながら、スレーブ記憶装置がミラーにスレーブイメージを加えることを決定すると、マスタ記憶装置はスレーブイメージを含むようにそのミラー構成情報をアップデートし、マスタ記憶装置はすべてのスレーブ記憶装置に新しいミラー構成情報を配付する。
【００８４】
スレーブイメージをシンクロナイズド状態(504)又はアンシンクロナイズド状態(502)のどちらかでミラーに加えることができることに留意すべきである。シンクロナイズド状態(504)でスレーブイメージを加えることでいかなる同期操作を避けられる。スレーブイメージをアンシンクロナイズド状態(502)で加えることは、マスタイメージにスレーブイメージを同期させるために同期操作を必要とする。アンシンクロナイズド（非同期）スレーブイメージがミラーに加えられるときにミラーが非アクティブ状態(402)にあるならば、スレーブイメージはアンシンクロナイズド状態(502)で残る。アンシンクロナイズドスレーブイメージがミラーに加えられときにミラーがアクティブ状態(404)にあるか、またはミラーが以下で説明されるようにその後アクティブ状態になるならば、同期操作は、スレーブイメージをマスタイメージに同期させるように実行される。
【００８５】
ミラーからスレーブイメージを取り除くために、管理者は最初に、以下に説明されるようにミラーをディアクティベートする。管理者は次ぎにミラーからスレーブイメージを取り除くようにマスタ記憶装置に命令する。管理者はスレーブイメージのグレースフル取り外し又はスレーブイメージの強制取り外しのいずれかを要求することができる。管理者がスレーブイメージのグレースフル取り外しを要求するならば、スレーブイメージに対するすべての未決の要求は、ミラーからスレーブイメージを取り除く前に、完了される。管理者がスレーブイメージの強制取り外しを要求するならば、いかなる未決の要求を完了することなく、スレーブイメージは取り除かれる。いずれの場合でも、マスタ記憶装置は、ミラーからスレーブイメージを取り除くようにスレーブ記憶装置に命令する。LU アレイセットがミラーの一部であることを確かめた後に、スレーブ記憶装置はミラーからLUアレイセットを取り除いて、LUリストからLUアレイセットを取り除く。その結果、スレーブ記憶装置のリモートミラーリングドライバーは、LUアレイセット内のLUsを対象とする要求に割り込むことを止める。マスタ記憶装置はスレーブイメージを除くためにそのミラー構成情報をアップデートし、かつ、マスタ記憶装置はすべてのスレーブ記憶装置に新しいミラー構成情報を配付する。ミラーからスレーブイメージを取り除いても、対応するLUs又はそこに含まれるデータは削除されないことに注意すべきである。
【００８６】
スレーブイメージを昇格させてマスタイメージとして作動させるために、ミラーはマスタイメージを持つことができず、したがって、管理者は、以下に説明するように、最初に既存のマスタイメージを格下げしてスレーブイメージとして作動させなければならない。管理者は、次ぎに、スレーブ記憶装置にそれ自体を昇格するようにスレーブ記憶装置に命令する。スレーブ記憶装置は、それ自体をマスタに昇格する前に、ミラー内にマスタイメージが存在しないこと、スレーブイメージがシンクロナイズド状態(504)又はコンシステント状態(506)のどちらかにあること、及びスレーブイメージが以前にミラーから取り除かれていないこと又は以前にアクセスすることができない（UNREACHABLE）とマークされていないことを確かめる。ミラー内にマスタイメージがなく、スレーブイメージがシンクロナイズド状態(504)又はコンシステント状態(506)のどちらかにあり、かつ、スレーブイメージが以前にミラーから取り除かれていないか、あるいは、アクセスできないとマークされていないと決定すると、スレーブ記憶装置はそれ自体を昇格させマスタ記憶装置として作動させ、その場合、新しいマスタ記憶装置はそのミラー構成情報をアップデートして、ミラーのスレーブ記憶装置に新しいミラーの構成情報を送る。管理者は明らかに後者に２つのプロモーション条件を上書きすることができ、ミラー内にマスタイメージがない限りスレーブ記憶装置にそれ自体をマスタに昇格させることができることに注意すべきである。
【００８７】
マスタイメージを格下げしてスレーブイメージとして作動させるために、管理者は最初に、以下で説明されるようにミラーをディアクティベートする。そして、管理者は、マスタ記憶装置にそれ自体を格下げするように命令する。マスタ記憶装置が利用可能であると決定すると、マスタ記憶装置はミラーのスレーブ記憶装置にそのミラーの構成情報をアップデートして、新しいミラーの構成情報を送る。しかしながら、例えばマスタ記憶装置が不良のため使用できないならば、管理者は、マスタ記憶装置を格下げするようにスレーブ記憶装置に命令することができる。それぞれのスレーブ記憶装置は、ミラー内にマスタイメージがないことを示すようにそのミラーの構成情報をアップデートする。
【００８８】
スレーブイメージを同期させるために、管理者は、マスタ記憶装置にスレーブイメージを同期させるように命令する。マスタ記憶装置はマスタイメージをブロックごとにスレーブイメージにコピーする。ミラーがアクティブ状態(404)又は非アクティブ状態(402)にある間にこれをすることができる。書込み要求が、そして書き込み要求だけが、既にスレーブイメージに書き込まれたイメージの部分に向けられるならば、スレーブイメージのリシンクロナイズ化（再同期化調整）の間にマスタ記憶装置によって受け取られる入来書込み要求はスレーブ記憶装置に転送される。同期操作の歩調を合わせて同期操作が記憶装置間に通信リンクを過負荷することを防げるために、スロットリングメカニズムは使用される。
【００８９】
ミラーをアクティブにするために、管理者は、マスタ記憶装置にミラーをアクティブにするように命令する。マスタ記憶装置は、そのミラーの構成情報をアップデートしてミラーをアクティブ状態(404)にし、ミラーがアクティブであることをすべてのスレーブ記憶装置に知らせる。それぞれのスレーブ記憶装置は順番にそのミラーの構成情報をアップデートして、ミラーをアクティブ状態(404)にする。
【００９０】
ミラーをディアクティベート（非アクティブに）するために、管理者は、マスタ記憶装置にミラーをディアクティベートするように命令する。管理者はミラーをグレースフル非アクティブ化又は強制非アクティブ化することのどちらかを要求することができる。管理者がミラーのグレースフル非アクティブ化を要求するならば、スレーブイメージに対するすべての未決の要求は、ミラーをディアクティベートする前に、完了される。管理者がスレーブイメージの強制取り外しを要求するならば、いかなる要求も完了しないで、ミラーはディアクティベートされる。どちらの場合でも、マスタ記憶装置はそのミラー構成情報をアップデートし、ミラーを非アクティブ状態(402)にし、LUリストからミラーに関連するすべてのLUsを取り除く。その結果、マスタ記憶装置のリモートミラーリングドライバーは、LUアレイセットのLUsを対象とする書込み要求に割り込むことを止める。マスタ記憶装置は、また、すべてのスレーブ記憶装置にミラーが非アクティブであることを知らせる。それぞれのスレーブ記憶装置は、順次、そのミラーの構成情報をアップデートしミラーを非アクティブ状態(402)にする。
【００９１】
ミラーの属性を変えるために、管理者はマスタ記憶装置に要求を送る。マスタ記憶装置は、順次、そのミラー構成情報と、(必要ならば)ミラーの状態とをアップデートして、スレーブ記憶装置に変更要求を伝える。従って、それぞれのスレーブ記憶装置はそのミラー構成情報とミラーの状態をアップデートする。
【００９２】
ミラーの属性(特に、ミラーの各イメージのミラー属性のコピー)を検索するために、管理者はミラーのあらゆる記憶装置に要求を送る。受信記憶装置はそれ自身のイメージのミラー属性を検索し、また、それぞれの記憶装置からのミラー内の他のイメージのミラー属性を検索する。受信記憶装置はミラーの各イメージのミラー属性のコピー(または、非検索可能なイメージに関する1セットのエラーコード)を管理者に返す。
【００９３】
ミラーを破壊するために、ミラーはマスタイメージだけから成らなければならないし、かつ、ミラーは非アクティブ状態(402)でなければならない。従って、ミラーを破壊するために、管理者は最初にミラーからスレーブイメージを取り除き、次に、上で説明されるようにミラーをディアクティベートする。そして、管理者は、マスタ記憶装置にミラーを破壊するように命令する。マスタ記憶装置はミラーに関連するすべてのミラー構成情報を取り除いて、ミラーに関連するすべてのLUsをLUリストから取り除く。その結果、マスタ記憶装置のリモートミラーリングドライバーは、LUアレイセット内のLUsを対象とする書込み要求に対する割り込みを止める。ミラーを破壊することでは対応するLUs又はそこに含まれたデータが削除されないことに注意すべきである。
【００９４】
ミラーの操作の間、マスタ記憶装置内の主ＳＰ、および特にリモートミラーリングロジック302は、書込みインテントログを書込みキャッシュ内に維持する。書込みインテントを維持することは、書込みインテントログ内に書き込みエントリを格納することと、書込みインテントログから不要な書込みエントリを取り除くことを含み、そして、特に、ランダム・アクセス・メモリ(RAM)などの揮発性記憶装置に書込みインテントログが保存されているならば、不良を検出したときにディスクアレイ206などの不揮発性記憶装置に書込みインテントログを記憶することと、不良から回復したときに不揮発性記憶装置から書込みインテントログを再生させることをさらに含むこととしても良い。それぞれの書込みエントリは書込み要求から得られるメタデータを含み、そして望ましくは、リモートミラーリングロジック302によってアップデートされている特定のイメージブロックを識別する。特定の書込みエントリが書込みインテントログ内にある限り、リモートミラーリングロジック302は対応するイメージブロックがすべてのミラーイメージに渡って潜在的に非同期であると考える。すべてのミラーイメージがいったん特定の書込み要求に基づいてアップデートされると、リモートミラーリングロジック302は対応する書込みエントリを書込みインテントログから自由に取り除くことができる。
【００９５】
図6は、書込み要求を処理するリモートミラーリングロジックの例を示す論理フローチャートである。ステップ602に始まり、ステップ604で書込み要求を受け取ると、ステップ606においてリモートミラーリングロジックは、書込み要求から得られるメタデータを含む書込みインテントログ内に書込みエントリを格納する。本発明の好ましい実施の態様では、メタデータはアップデートされたイメージブロックを識別するブロック識別子をさらに含み、メタデータは追加的に、または代替的に、イメージに対する1以上の変更を示す書込み更新情報を含むことができる。ステップ606で書込みインテントログ内に書込みエントリを格納した後に、ステップ608においてリモートミラーリングロジックは書込み要求に基づくマスタイメージをアップデートし、次に、ステップ610で書込み要求に基づくスレーブイメージをアップデートする。書込み要求を処理するリモートミラーリングロジックはステップ699で終わる。
【００９６】
図7は特に「遅延（lazy）」削除テクニックを使用して、不要な書込みエントリを書込みインテントログから取り除くためのリモートミラーリングロジックの例を示す論理フローチャートである。リモートミラーリングロジックは、書込みインテントログ内の各書込みエントリを定期的にテストして書込みエントリがまだ必要であるかを決定し、書込みエントリが不要であると決定したならば、書込みインテントログから書込みエントリを取り除く。リモートミラーリングロジックが、いまだ、対応する書込み要求に基づく1つ以上のミラーイメージのアップデート処理中であるならば、書込みエントリは必要であると考慮され、リモートミラーリングロジックが対応する書込み要求に基づくすべてのミラーイメージをアップデートしたならば、書込みエントリは不要であると考慮される。
【００９７】
従って、ステップ７０２に始まり、リモートミラーリングロジックは、ステップ７０４において、書き込みインテントログ内にテストされていない書き込みエントリがあるか否かを決定する。書き込みインテントログ内のすべての書き込みエントリのテストが完了しているならば（即ち、ステップ７０４において、ＮＯならば）、書き込みインテントログから書き込みエントリを削除するためのリモートミラーリングロジックはステップ７０９において終了する。しかし、書き込みインテントログ内にテストされていない書き込みエントリがあるならば（即ち、ステップ７０４において、ＹＥＳならば）、リモートミラーリングロジックは、ステップ７０６において、書き込みエントリがいまだ必要か否かを決定する。書き込みエントリがいまだ必要であるならば（即ち、ステップ７０６において、ＹＥＳならば）、リモートミラーリングロジックはステップ７０４を繰り返す。しかし、書き込みエントリが不要であるならば（即ち、ステップ７０６において、ＮＯならば）、リモートミラーリングロジックはステップ７０８において、書き込みインテントログ内から書き込みエントリを削除し、そしてステップ７０４を繰り返す。
【００９８】
ミラーの操作の間に、マスタイメージが不良となることがあり得る。マスタイメージは、ＳＰの不良、通信不良又はメディアの不良によって不良となりうる。マスタイメージが不良になると、マスタイメージが修復されるか又はスレーブイメージが上に説明したようにマスタイメージとして作動するように昇格されるまで、ミラーにアクセスすることはできない。さらに、スレーブ同期化操作が生じている間にマスタイメージの不良が起こると、同期化操作が開始されたときのスレーブ状態がそのまま残ることになる。一旦マスタイメージが確立されると（現在のマスタイメージを修復するか又はスレーブイメージをマスタイメージとして昇格させることによる）、同期化操作は再開される。
【００９９】
上に説明したように、１つのＳＰの不良がマスタイメージを不良にしうる。単一のＳＰを有するマスタ記憶装置内のそのＳＰの不良はマスタイメージの即座の不良となる。しかしながら、２つのＳＰを有するマスタ記憶装置内の１つのＳＰに不良が生じても、このことはマスタ記憶装置がミラーで作動することを妨げない。なぜなら、残りの１つのＳＰは、ミラーが通常の操作（但し、バックアップＳＰの保障はない）を続けることができるようにマスタイメージの管理及び制御を引き受けるからである。
【０１００】
従って、マスタ記憶装置内の主ＳＰが不良になったとき、二次ＳＰがマスタイメージの制御を引き受ける。不良の時点において、書き込みインテントログ内のいずれの書き込みエントリに相当する書き込み操作は完了時点が異なるかもしれない。例えば、リモートミラーリングロジック３０２はいずれのイメージもアップデートしていないかもしれず、マスタイメージをアップデートしたが、スレーブイメージをアップデートしていないかもしれず、マスタイメージといくつかのスレーブイメージをアップデートしたかもしれず、又は、マスタイメージとすべてのスレーブイメージをアップデートしたかもしれない。しかしながら、主ＳＰからの書き込みインテントログが二次ＳＰに複写されるため、二次ＳＰは複写された書き込みインテントログを用いてスレーブイメージを同期させることができる。特に、全マスタイメージを各スレーブ記憶装置に複写するよりも、リモートミラーリングロジックは、書き込みインテントログ内の書き込みエントリに基づいて非同期化されるかもしれないいずれかの部分を決定し、次に、非同期化されるかもしれないスレーブイメージ部分のみを、好ましくは、非同期化されるかもしれないイメージブロックのみを複写することによって、再同期化調整する。
【０１０１】
一方、マスタ記憶装置が不良になると、自動バックアップ／再生ロジック３０６は書き込みインテントログをディスクアレイ２０６に記憶する。図８は、自動バックアップ／再生ロジックの例を示す論理フローチャートである。ステップ８０２に始まり、ステップ８０４においてＳＰの不良を検出すると、自動バックアップ／再生ロジック３０６はステップ８０６において書き込みインテントログをディスクアレイ２０６に記憶し、そしてステップ８９９で終了する。本発明の好ましい実施の形態において、マスタ記憶装置はバックアップ用のバッテリを備え、電力の不良のときでも自動バックアップ／再生ロジック３０６が書き込みインテントログをディスクアレイ２０６に記憶できるようにしている。さらに、自動バックアップ／再生ロジック３０６は、実際に、部分的なディスク不良の場合でも書き込みインテントログを再生することができるようにディスクアレイ２０６に書き込みインテントログの複数のコピーを記憶する。
【０１０２】
不良の時点において、書き込みインテントログ内のいずれの書き込みエントリに相当する書き込み操作の完了時点は異なるかもしれない。例えば、リモートミラーリングロジック３０２はいずれのイメージもアップデートしていないかもしれず、マスタイメージをアップデートしたが、スレーブイメージをアップデートしていないかもしれず、マスタイメージといくつかのスレーブイメージをアップデートしたかもしれず、又は、マスタイメージとすべてのスレーブイメージをアップデートしたかもしれない。
【０１０３】
不良の後に一旦マスタ記憶装置が操作されると、主ＳＰ（これは主ＳＰ又は不良の前は二次ＳＰであったかもしれない）と、特に、自動バックアップ／再生ロジック３０６はディスクアレイ２０６から書き込みインテントログを再生する。リモートミラーリングロジック３０２は、次に、スレーブイメージを再同期化調整するように命令される。全マスタイメージを各スレーブ記憶装置にコピーするよりもリモートミラーリングロジック３０２は、書き込みインテントログ内の書き込みエントリに基づいて非同期化されるかもしれないスレーブイメージの部分を決定し、次に、非同期化されるかもしれないスレーブイメージの部分のみを、好ましくは、非同期化されるかもしれないスレーブイメージブロックのみをコピーすることによって再同期化調整する。
【０１０４】
図９は、マスタ記憶装置の不良の後にスレーブイメージを再同期化調整するロジックの例を示す論理フローチャートである。ステップ９０２に始まり、ロジックは最初にステップ９０４においてディスクアレイ２０６から書き込みインテントログを再生する。ロジックは、次に、ステップ９０６において、書き込みインテントログ内の書き込みエントリによって示される非同期化されるかもしれないスレーブイメージのいかなる部分を決定し、そして、書き込みインテントログ内の書き込みエントリによって示されるスレーブイメージの部分のみをステップ９０８において再同期化調整する。ロジックはステップ９９９において終了する。
【０１０５】
本発明のある局面を例として示した。この例において、マスタ記憶装置は、第１イメージブロック（ブロック１）に書き込むために第１要求を受け、第２イメージブロック（ブロック２）に書き込むために第２要求を受け、第３イメージブロック（ブロック３）に書き込むために第３要求を受け、第４イメージブロック（ブロック４）に書き込むために第４要求を受ける。マスタ記憶装置は書き込みインテントログに書き込みエントリを加えて、ブロック１、ブロック２、ブロック３及びブロック４が、図１０Ａに示すように、非同期化されるかもしれないことを示し、次に、その書き込み要求に基づいてミラーイメージをアップデートする。不良が生じる前に、マスタ記憶装置は第１書き込み要求に基づくすべてのミラーイメージのアップデート及び書き込みインテントログからの相当する書き込みエントリ（即ち、ブロック１）の削除、第２書き込み要求に基づくすべてのミラーイメージのアップデート（但し、書き込みインテントログからの相当する書き込みエントリの削除はしない）、第３書き込み要求に基づくいくつかの（すべてではない）ミラーイメージのアップデート、並びに第４書き込み要求に基づくミラーイメージの非更新を行うことができる。従って、図１０Ｂに示すように、書き込みインテントログは、不良の時点でブロック２，ブロック３及びブロック４のための書き込みエントリを含む。不良の時点でブロック３のみが実際に非同期化されている（なぜなら、マスタ記憶装置はすべてのミラーイメージのためにブロック２の更新を完了し、かつ、いずれのミラーイメージについてブロック４をアップデートしていないため）ことに留意されたい。不良から回復すると、書き込みインテントログは図１０Ｂに示すものである。なぜなら、書き込みインテントログは、不良の期間中保護されるからである。従って、マスタ記憶装置は、書き込みインテントログに示されるように、スレーブイメージを再同期化するためにマスタイメージからブロック２，ブロック３及びブロック４をすべてのスレーブイメージにコピーする。
【０１０６】
本発明の好ましい実施の形態において、書き込みインテントログを維持し、それを使用してマスタ記憶装置の不良の後にスレーブイメージを再同期化調整するほとんどすべてのロジックは、コンピュータによって読み取ることが可能なメディアに格納されマスタ記憶装置内、特に、マスタ記憶装置内で作動する記憶装置プロセッサ内に設けたマイクロプロセッサシステムによって実行される１セットのコンピュータプログラム命令として実行される。発明の好ましい実施の形態はいかなる従来のコンピュータプログラム言語によって実行される。例えば、好ましい実施の形態は手続プログラム言語（例えば、「Ｃ」）又はオブジェクト指向プログラム言語（例えば、「Ｃ＋＋」）で実行される。発明の代替実施形態は、個別の構成要素、即ち、集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はマイクロプロセッサのようなプログラマブルロジック装置と関連して用いられるプログラマブルロジック、あるいはこれらの組合せを含み、その他の手段を用いて実行される。
【０１０７】
発明の代替実施形態は、コンピュータシステムで使用されるコンピュータプログラム製品として実行されうる。そのような実行は、コンピュータで読み取り可能なメディア（例えば、ディスケット、ＣＤ−ＲＯＭ，ＲＯＭ、又は固定ディスク）のような有形メディアに保存された、又は、メディアを介してネットワークに接続された通信アダプタのようなモデムその他のインタフェースを介してコンピュータシステムに送信可能な搬送波に乗せるコンピュータデータ信号にされる一連のコンピュータ命令を含む。媒体は、有形媒体（例えば、光又はアナログ通信線）、又は、無線技術（例えば、マイクロウェーブ、赤外線その他の送信技術）により実行される媒体のいずれかとすることができる。一連のコンピュータ命令は、システムに関連して上で説明したすべて又は一部の機能性を具現する。そのようなコンピュータ命令は多数のコンピュータアーキテクチュアー又はオペレーティングシステムで用いられる多数のプログラム言語で記述可能であることを当業者は理解できる。その上、そのような命令は、半導体、磁気、光学その他のメモリ装置のようなメモリ装置に記憶させることができ、そして、光学、赤外線、マイクロウェーブ、その他の伝送技術といったどのような通信技術を用いて通信することができる。そのようなコンピュータプログラム製品が、コンピュータシステム(例えば、システムROM又は固定ディスク)にプレロードされる印刷又は電子ドキュメンテーション(例えば、パッケージソフトウェア)付きのリムーバブルメディアとして配付されるか、またはネットワーク(例えば、インターネット又はWWW)上でサーバか電子掲示板から配付されることが期待される。
【０１０８】
従って、本願発明はコンピュータシステム内で複数のデータイメージを同期させる方法として具体化することができる。その複数のデータイメージはマスタイメージと少なくとも１つのスレーブイメージとを含む。その方法は、複数のデータイメージの同期していない可能性のある部分を特定するログを保持することと、その同期していない可能性のある部分のみを再び同期させることとを含む。ログを保持することには、書込み要求を受け取ることと、その書込み要求から得られる情報からなる書込みエントリーをそのログに記憶させることとが含まれる。書込み要求から得られるその情報は、同期していない可能性のあるイメージブロックを特定するブロック識別子又はそれらの複数のデータイメージへの１又は２以上の修正を表す書込み更新情報でもよい。ログを保持することには、書込み要求に基づいてマスタイメージを更新すること、書込み要求に基づいて少なくとも１つのスレーブイメージを更新すること、及び、その書込み要求に基づいてマスタイメージ及び少なくとも１つのスレーブイメージを更新した後にログから書込みエントリーを削除することも含まれる。ログを保持することには、不良を検出するとログを不揮発性記憶媒体に書き込むことと、不良から回復するとその不揮発性記憶媒体からログを再記憶させることとも含めてもよい。複数のデータイメージの同期していない可能性のある部分のみを再同期させることには、マスタイメージのそれらの部分を少なくとも１つのスレーブイメージに複写することが含まれる。本願発明の望ましい実施例においては、ログは同期していない可能性のあるイメージブロックの数を特定し、また、同期していない可能性のある複数のデータイメージの部分のみを再同期させることには、同期していない可能性のあるそれらのイメージブロックのみをマスタイメージから少なくとも１つのスレーブイメージに複写することが含まれる。
【０１０９】
本願発明はコンピュータシステム内で複数のデータイメージを保持するための装置として具体化することもできる。その複数のデータイメージはマスタイメージと少なくとも１つのスレーブイメージとを含む。その装置は、少なくともマスタイメージを記憶する不揮発性記憶媒体、少なくとも１つのスレーブイメージにアクセスするネットワークインタフェース、同期していない可能性のある少なくとも１つのスレーブイメージの部分を示す書込みインテントログ及び複数のデータイメージを保持するための遠隔ミラーリングロジックを備える。その遠隔ミラーリングロジックは、特に、書込みインテントログによって示されているように同期していない可能性のある少なくとも１つのスレーブイメージの部分のみを再同期させることによって、不良に続いて少なくとも１つのスレーブイメージをマスタイメージに再同期させるための再同期ロジックを備える。遠隔ミラーリングロジックは、ホストから書込み要求を受け取るように作動するように接続された受信ロジックと、書込み要求から得られる情報を含む書込みエントリーを書込みインテントログに記憶させるように接続されたログ保持ロジックとをも備える。書込み要求から得られた情報は、同期していない可能性のあるイメージブロックを特定するブロック識別子又は複数のデータイメージへの１又は２以上の修正を表す書込み更新情報でもよい。遠隔ミラーリングロジックは、書込み要求に基づいてマスタイメージを更新するためのマスタイメージ更新ロジックと、書込み要求に基づいて少なくとも１つのスレーブイメージを更新するためのスレーブイメージ更新ロジックとをも備える。ログ保持ロジックは、望ましくは「レイジー」削除技術を用いることによって、その書込み要求に基づいてマスタイメージ及び少なくとも１つのスレーブイメージを更新した後に書込みインテントログから書込みエントリーを削除する。この装置には、不良を検出すると書込みインテントログを不揮発性記憶媒体に書き込むともに、その不良から回復するとその不揮発性記憶媒体からその書込みインテントログを復元するための自動バックアップ／再生ロジックを含めてもよい。再同期ロジックは、同期していない可能性のあるマスタイメージの部分のみを少なくとも１つのスレーブイメージに複写する。本願発明の望ましい実施例では、書込みインテントログは同期していない可能性のあるイメージブロックの数を特定し、また、再同期ロジックが、同期していない可能性のあるイメージブロックのみをマスタイメージから少なくとも１つのスレーブイメージに複写する。
【０１１０】
本願発明はコンピュータシステム内で複数のデータイメージを保持するためのコンピュータプログラムとして具体化することもできる。その複数のデータイメージはマスタイメージと少なくとも１つのスレーブイメージとを含む。そのコンピュータプログラムは、少なくともマスタイメージを記憶する不揮発性記憶媒体及び少なくとも１つのスレーブイメージにアクセスするネットワークインタフェースへのインタフェースを提供するディスク管理ロジックと、複数のデータイメージを保持するための遠隔ミラーリングロジックとを備える。その遠隔ミラーリングロジックは、同期していない可能性のある少なくとも１つのスレーブイメージの部分を表す書込みログを保持するようにプログラムされたログ保持ロジックと、その書込みインテントログによって示されるように同期していない可能性のある少なくとも１つのスレーブイメージのそれらの部分のみを再同期することによって、不良に続いて少なくとも１つのスレーブイメージをマスタイメージに再同期させるようにプログラムされた再同期ロジックとを含む。遠隔ミラーリングロジックは、ホストから書込み要求を受け取るように作動するように接続された受信ロジックを含み、ログ保持ロジックは、書込み要求から得られる書込みエントリーを書込みインテントログに記憶するようにプログラムされている。書込み要求から得られる情報は、同期していない可能性のあるイメージブロックを特定するブロック識別子又は複数のデータイメージへの１又は２以上の修正を表す書込み更新情報でもよい。遠隔ミラーリングロジックは、書込み要求に基づいてマスタイメージを更新するためのマスタイメージ更新ロジックと、書込み要求に基づいて少なくとも１つのスレーブイメージを更新するためのスレーブイメージ更新ロジックとをも備える。ログ保持ロジックは、望ましくは「レイジー」削除技術を用いることによって、その書込み要求に基づいてマスタイメージ及び少なくとも１つのスレーブイメージを更新した後に書込みインテントログから書込みエントリーを削除するようにプログラムされている。このコンピュータプログラムには、不良を検出するとディスク管理ロジックを介して書込みインテントログを不揮発性記憶媒体に書き込むともに、その不良から回復するとディスク管理ロジックを介してその不揮発性記憶媒体からその書込みインテントログを復元するための自動バックアップ／再生ロジックを含めてもよい。再同期ロジックは、同期していない可能性のあるマスタイメージの部分のみをディスク管理ロジックを介して少なくとも１つのスレーブイメージに複写する。本願発明の望ましい実施例では、書込みインテントログは同期していない可能性のあるイメージブロックの数を特定し、再同期ロジックは、同期していない可能性のあるイメージブロックのみをディスク管理ロジックを介してマスタイメージから少なくとも１つのスレーブイメージに複写する。
【０１１１】
本願発明は、マスタイメージを保持するためのマスタ記憶ユニットとスレーブイメージを保持するための少なくとも１つのスレーブ記憶ユニットとを持つコンピュータシステムとして具体化することもできる。マスタ記憶ユニットは、同期していない可能性のあるスレーブイメージの部分を特定するログを保持するとともに、ログ内に特定されたマスタイメージのそれらの部分のみをマスタイメージから少なくとも１つのスレーブ記憶ユニットに複写する。スレーブ記憶ユニットは、スレーブイメージをマスタイメージに同期させるために、マスタイメージから複写されたマスタイメージのそれらの部分のみを含めるようにスレーブイメージを更新する。
【０１１２】
本願発明は、本質又は本質的な特徴から逸脱することなく他の形態に具体化することができる。上記の実施例はすべての点において例示として考慮されるもので限定を意図するものではない。
【図面の簡単な説明】
本発明の前述の及びその他の目的及び利点は、ここでは添付図面を参照して以下の更なる説明からより十分に理解されるであろう。
【図１】  図１は、本発明の実施例に従って、例証的なコンピュータ記憶システムを示しているブロックダイヤグラムである。
【図２】  図２は、発明の実施例に従って、例証的な記憶ユニットを示しているブロックダイヤグラムである。
【図３】  図３は、本発明の実施例に従って、記憶プロセッサーの関連するロジック・ブロックの概念図を示しているブロックダイヤグラムである。
【図４】  図４は、前記現在の発明の実施例に従って、ミラーの3つの第一ステートを示している状態（ステート）図である。
【図５】  図５は、本発明の実施例に従って、遠隔ミラー・イメージの4つの第一ステートを示している状態（ステート）図である。
【図６】  図６は、本発明の実施例に従って、書込みリクエストを処理するための例証的なロジックを示している論理流れ図である。
【図７】  図７は、本発明の実施例に従って、書込みインテント・ログから必要とされない書込みエントリーを削除するための例証的なロジックを示している論理流れ図である。
【図８】  図８は、本発明の実施例に従って、不良の検出によって不揮発性記憶装置に前記書込みインテント・ログを自動的に記憶するための例証的なロジックを示している論理流れ図である。
【図９】  図９は、本発明の実施例に従って、不良をフォローしているスレーブ・イメージを再同期させるために例証的なロジックを示している論理流れ図である
【図１０】  図１０Aは、本発明の実施例に従って、多数の書込みリクエストを受信した後の例証的な書込みインテント・ログのステートを示しているブロックダイヤグラムである。
図１０Bは、本発明の実施例に従って、不良の時点および該不良から回復した後の例証的な書込みインテント・ログのステートを示しているブロックダイヤグラムである。
【図１】
0004430846.tif 000002
【図２】
0004430846.tif 000003
【図３】
0004430846.tif 000004
【図４】
0004430846.tif 000005
【図５】
0004430846.tif 000006
【図６】
0004430846.tif 000007
【図７】
0004430846.tif 000008
【図８】
0004430846.tif 000009
【図９】
0004430846.tif 000010
【図１０】
0004430846.tif 000011