(57)【要約】【課題】  入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロック解除を通知するように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワークで動作可能なストレージ制御装置を提供すること。【解決手段】  この装置は、任意の所有者ノードによって所有されるデータに対して、所有者ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するように動作可能な入出力実行コンポーネントを有する。データ領域のいかなるフラッシュ・コピー・イメージもデータ領域と整合関係に維持され、入出力実行コンポーネントは、データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、この事前の肯定的確認に基づいて入出力活動を実行するように動作可能である。
2006508459.tif 000002
【特許請求の範囲】
【請求項１】
入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワークで動作可能なストレージ制御装置であって、
任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するように動作可能な入出力実行コンポーネントを有し、
前記データ領域のいかなるフラッシュ・コピー・イメージも前記データ領域と整合関係に維持され、
前記入出力実行コンポーネントが、前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するように動作可能である、ストレージ制御装置。
【請求項２】
前記入出力実行コンポーネントが、キャッシュした肯定的確認を廃棄し、その後、新たにロックを要求するように動作可能である、請求項１に記載の装置。
【請求項３】
縮小したキャッシュ・ストレージ・エリアが、キャッシュした肯定的確認を選択的に廃棄することによって管理される、請求項２に記載の装置。
【請求項４】
前記データ領域に関する肯定的確認が、前記データ領域に隣接する他のデータ領域に関する任意の肯定的確認をさらに有する、請求項１に記載の装置。
【請求項５】
入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワーク内のストレージ制御の方法において、前記方法が、
任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するステップと、
前記データ領域のフラッシュ・コピーを前記データ領域との整合関係に維持するステップと、
前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するステップと、
を有する、ストレージ制御の方法。
【請求項６】
キャッシュした肯定的確認を廃棄し、その後、新たにロックを要求するステップをさらに有する、請求項５に記載の方法。
【請求項７】
キャッシュした肯定的確認を選択的に廃棄することにより、縮小したキャッシュ・ストレージ・エリアを管理するステップをさらに有する、請求項６に記載の方法。
【請求項８】
前記データ領域に関する肯定的確認が、前記データ領域に隣接する他のデータ領域に関する任意の肯定的確認をさらに有する、請求項５に記載の方法。
【請求項９】
コンピュータ可読ストレージ・メディアに具体的に実施されたコンピュータ・プログラムであって、コンピュータ・システムにロードされ、そこで実行されたときに、入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワーク内のストレージ制御装置に、
任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するステップと、
前記データ領域のフラッシュ・コピーを前記データ領域との整合関係に維持するステップと、
前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するステップと、
を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ストレージ・コントローラの分野に関し、特に、フラッシュ・コピー機能を提供するｎウェイ共用ストレージ・システム内の拡張機能ストレージ・コントローラに関する。
【背景技術】
【０００２】
コンピュータ・ストレージ・システムの分野では、「拡張機能」と記載されるようになったものに対する需要が高まっている。このような機能は、従来のストレージ・コントローラ・システムの単純な入出力機能を超えている。拡張機能は、当技術分野で周知のものであり、システム内に保管された実データまたは「ユーザ」データに関する状態データを保存するために使用されるメタデータの制御に依存する。拡張機能を使用して使用可能な操作により、実データをユーザ・アプリケーションで使用可能なままにしておきながら、様々なアクションをデータの仮想イメージに素早く適用することができる。このような周知の拡張機能の１つは「フラッシュ・コピー」である。
【０００３】
最も広い意味において、フラッシュ・コピーは、「あるデータ」の第２のイメージが使用可能になる機能である。この機能は時にはポイント・イン・タイム・コピーまたはＴ０コピーとして知られている。第２のイメージの内容は最初は第１のイメージの内容と同一である。第２のイメージは「即座に」使用可能になる。実際面では、これは、真の個別の物理コピーを作成するために必要と思われる時間より短い時間で第２のイメージが使用可能になることを意味し、これは、使用アプリケーションのオペレーションにとって容認できない混乱なしに、それを確立できることを意味する。
【０００４】
確立されると、第２のコピーは、バックアップ、システム試行、およびデータ・マイニングの実行を含む、いくつかの目的に使用することができる。第１のコピーは引き続き、元の使用アプリケーションにより元の目的に使用される。これと対照的なのが、アプリケーションをシャットダウンし、その再始動前にバックアップを取らなければならない、フラッシュ・コピーなしのバックアップである。アプリケーションがシャットダウンするのに十分にアイドル状態になっている時間ウィンドウを見つけることは、ますます困難になっている。バックアップを取るコストは増加している。業務を停止せずにバックアップを取ることができるフラッシュ・コピーの能力には、重大かつ高いビジネス上の価値がある。
【０００５】
フラッシュ・コピーの実装は、当該領域が書き込みの対象になっていなければ、第２のイメージ（以下、ターゲット）にアドレスされた入出力読み取りを元のイメージ（以下、ソース）にリダイレクトすることにより、第２のイメージが存在するという錯覚を引き起こす。ある領域が（ソースまたはターゲットのいずれかに対する）書き込みの対象であった場合、ソースとターゲットの両方がそのデータについてそれぞれ専用のコピーを所有しているという錯覚を維持するために、書き込みコマンドの動作をサスペンドし、それを実行させずに、ソースからの該当領域の読み取りを発行し、書き込みにより読み取りデータをターゲットに適用し、次に（すべてのステップが正常であった場合のみ）サスペンドされた書き込みを解除するプロセスが呼び出される。ターゲットはそのデータについてそれ専用のコピーをすでに有することになるので、同じ領域への後続の書き込みはサスペンドする必要がない。このコピー・オン・ライト技法は、周知のものであり、多くの環境で使用される。
【０００６】
フラッシュ・コピーのすべての実装例は、前述の判断、すなわち、ターゲットで受信した読み取りがソースに対して発行されたものであるかまたはターゲットに対して発行されたものであるかに関する判断と、コピー・オン・ライトを実行できるようにするために書き込みをサスペンドしなければならないかどうかに関する判断を左右するデータ構造に依存している。このデータ構造は本質的に、ソースからターゲットにコピーされたデータの領域またはグレーンを、コピーされていないものとは別個のものとして追跡する。
【０００７】
このデータ構造（以下、メタデータと呼ぶ）の維持は、フラッシュ・コピーの背後にあるアルゴリズムの実現にとって重要なものである。
【０００８】
フラッシュ・コピーは、最新のストレージ・コントローラ内でしばしば使用されるように、（おそらくＳＭＰプロセッサを伴う）単一ＣＰＵ複合システム内で比較的簡単に実装できる。さらにもう少し努力することにより、（少なくとも）２つのＣＰＵ複合システムがメタデータのコピーにアクセスできるようなフォールト・トレラント・フラッシュ・コピーを実装することが可能である。第１のＣＰＵ複合システムの障害の場合には、ターゲット・イメージへのアクセスを喪失せずに、第２のＣＰＵ複合システムを使用して操作を続行することができる。
【０００９】
しかし、単一ＣＰＵ複合システムの入出力機能は制限されている。１秒当たりの入出力数または帯域幅（ＭＢ／ｓ）のいずれかで測定された単一ＣＰＵ複合システムの機能の改善には限界があり、結局、使用アプリケーションのパフォーマンスに制約を課すことになる。この制限は、フラッシュ・コピーの多くの実装例で発生するが、良い例はストレージ・コントローラである。典型的なストレージ・コントローラは単一（またはおそらく冗長対）のＣＰＵ複合システムを有し、これがそのコントローラのパフォーマンス能力の制限に影響する。
【００１０】
より多くのストレージ・コントローラを設置することができる。しかし、個別のストレージ・コントローラはメタデータへのアクセスを共有せず、したがって、フラッシュ・コピー・イメージを管理する際に協働しない。ストレージ・スペースはフラグメント化された状態になり、フラッシュ・コピーは単一コントローラ・システムの範囲に制限される。ソース・ディスクとターゲット・ディスクはどちらも同じストレージ・コントローラ内で管理しなければならない。他のストレージ・コントローラに何らかのスペア・スペースがある間に、単一ストレージ・コントローラのディスク・スペースが一杯になる可能性があるが、ソース・ディスクとターゲット・ディスクを分離して、ターゲット・ディスクを新しいコントローラの制御下に置くことは不可能である。（ターゲットが関連する物理データを持っていないので、ターゲットの移動が手間のかからない動作である新しいフラッシュ・コピーの場合、これは特に不利である。）
【００１１】
ソース／ターゲット対にとって可能な総パフォーマンスの制約と同様に、単一コントローラ・ストレージ機能の制約は、ストレージ環境の管理に複雑さを加えるものである。
【００１２】
概して、今日のストレージ制御システムはこの問題を解決しようとしていない。このようなシステムは、単一コントローラに制限され、従ってそのコントローラの機能により制約を受けるフラッシュ・コピー技法を実装するものである。
【００１３】
複数のコントローラが共用フラッシュ・コピー関係に関与できるようにする単純な方法は、１つのコントローラをメタデータの所有者として割り当て、他のコントローラにすべての読み取りおよび書き込み要求をそのコントローラに転送させることである。所有コントローラは、上述のアルゴリズムを使用して、それ自体の接続ホスト・サーバから直接届いた場合と同様に入出力要求を処理し、各入出力要求を完了して要求元コントローラに戻す。
【００１４】
このようなシステムの主な欠点と、それが広く使用されない理由は、各入出力要求を転送する負担が大きすぎることであり、おそらくシステム全体に及ぶ総コストを倍増し、このため、システム・パフォーマンスを半減させることである。
【００１５】
たとえば、分散並列データベース・システムの分野では、データのコピーを整合関係に維持するために、データに対するロックを保持するための２フェーズ・ロック・プロトコルを使用する分散ロック管理構造を備えることは知られている。しかし、２フェーズ・ロックは、概して、時間のかかるものであり、相当なメッセージングの負担を処理に加える。このため、従来技術による未修正２フェーズ・ロック・プロトコルは、分散ストレージ・コントローラを有するストレージ・エリア・ネットワークなど、ソフトウェアおよびハードウェア・スタックの下位レベルにあるシステムでは不利であり、その場合、ロック制御メッセージの引渡しによるパフォーマンス上の影響は、それがデータベース制御レベルにあるときより、かなり重大なものになる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
したがって、ロック・メッセージング・オーバヘッドを最小限に抑えながら、フラッシュ・コピー環境で分散ロック管理の利点を得ることは望ましいことになるであろう。
【課題を解決するための手段】
【００１７】
したがって、本発明は、第１の態様において、入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワークで動作可能なストレージ制御装置であって、任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するように動作可能な入出力実行コンポーネントを有し、前記データ領域のいかなるフラッシュ・コピー・イメージも前記データ領域と整合関係に維持され、前記入出力実行コンポーネントが、前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するように動作可能である、ストレージ制御装置を提供する。
【００１８】
好ましくは、前記入出力実行コンポーネントは、キャッシュした肯定的確認を廃棄し、その後、新たにロックを要求するように動作可能である。
【００１９】
好ましくは、キャッシュした肯定的確認を選択的に廃棄することによって縮小キャッシュ・ストレージ・エリアが管理される。
【００２０】
好ましくは、前記データ領域に関する肯定的確認は、前記データ領域に隣接する他のデータ領域に関する任意の肯定的確認をさらに有する。
【００２１】
本発明は、第２の態様において、入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワーク内のストレージ制御の方法であって、任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するステップと、前記データ領域のフラッシュ・コピーを前記データ領域との整合関係に維持するステップと、前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するステップとを有する、ストレージ制御の方法を提供する。
【００２２】
好ましくは、第２の態様の方法は、キャッシュした肯定的確認を廃棄し、その後、新たにロックを要求するステップをさらに有する。
【００２３】
好ましくは、第２の態様の方法は、キャッシュした肯定的確認を選択的に廃棄することにより、縮小キャッシュ・ストレージ・エリアを管理するステップをさらに有する。
【００２４】
好ましくは、前記データ領域に関する肯定的確認は、前記データ領域に隣接する他のデータ領域に関する任意の肯定的確認をさらに有する。
【００２５】
本発明は、第３の態様において、コンピュータ可読ストレージ・メディアに具体化されるコンピュータ・プログラムであって、コンピュータ・システムにロードされ、そこで実行されたときに、入出力活動中にあるデータ領域のロックを制御するように動作可能な所有者ストレージ・コントローラ・ノードと、ロックを要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために少なくとも１つのメッセージを渡すように動作可能なメッセージング・コンポーネントとを有する複数のストレージ・コントローラ・ノードからなるネットワーク内のストレージ制御装置に、任意の所有者ストレージ・コントローラ・ノードによって所有されるデータに対して、所有者ストレージ・コントローラ・ノードによって制御されるロック・プロトコルに従うことを条件として、入出力を実行するステップと、前記データ領域のフラッシュ・コピーを前記データ領域との整合関係に維持するステップと、前記データ領域がいかなるフラッシュ・コピー・イメージとも整合関係のままになっているという事前の肯定的確認をキャッシュし、前記事前の肯定的確認に基づいて入出力活動を実行するステップとを実行させるための、コンピュータ・プログラムを提供する。
【００２６】
本発明の現在好ましい実施形態は、ｎウェイ・システム内の複数のストレージ・コントローラ（またはノード）間の活動を調整するために修正２フェーズ・ロック・メッセージング方式を使用する。このメッセージングはシステム内のノード間の活動を調整するが、各ノードは依然としてそれ自体の入出力の実行を担当する。それぞれのノードには、その事前のロック要求の結果をキャッシュするためのキャッシング機構が設けられ、したがって、そのノードは、データ領域の状況がキャッシュした事前の結果によってすでに肯定的に示されている場合にその状況を照会する必要を回避するために結果の一部を再使用することができる。
【００２７】
次に、添付図面を参照しながら、例としてのみ、本発明の好ましい一実施形態について説明する。
【発明を実施するための最良の形態】
【００２８】
本発明の現在好ましい実施形態をより適切に理解するために、ｎウェイ・ストレージ・システム内の複数のストレージ・コントローラ（またはノード）間の活動を調整するための２フェーズ・ロック・メッセージングの使用について説明することが必要である。
【００２９】
一例として、フラッシュ・コピーを実装するｎウェイ・システムを考える。すべてのノードはｎ個のノードからなる協働セットによって管理されるストレージにアクセスできると想定する。そのノードの１つは、あるストレージ領域のすべての入出力関係に関するメタデータの所有者として指定される（１０２）。他のノードはクライアントとして指定される。現在最も好ましい実施形態では、クライアント・ノードの１つは、バックアップ所有者としてさらに指定され、所有者ノードの障害の場合に連続可用性を提供するためにメタデータのコピーを維持する。
【００３０】
特定のクライアント・ノード（「Ｃ」）に到着するホスト入出力要求（１０４）を考える。ホスト入出力要求は、ターゲット・ディスクの読み取りもしくは書き込みであるか、またはおそらくソース・ディスクの書き込みであるとする。クライアントＣは、入出力をサスペンドする（１０６）ことにより処理を開始する。次にＣは、所有者ノードＯにメッセージＲＥＱを送信し（１０８）、グレーンがコピーされたかどうかを尋ねる。
【００３１】
メッセージＲＥＱを受信すると、Ｏはそれ自体のメタデータ構造を検査する。その領域がすでにコピーされていることをＯが発見した場合、ＯはＮＡＣＫメッセージで応答する（１１０）。その領域がまだコピーされていないことをＯが発見した場合、Ｏはその領域に関する適切なメタデータに対するロック・レコードをそれ自体のメタデータ構造内に入れ、ＧＮＴメッセージで応答する（１１２）。ロック・レコードは、受信し許可したばかりの要求と、Ｃでの処理が継続している間に到着して同じメタデータに影響する可能性のある他の要求との互換性を保証するために必要である。ロック・レコードを維持する方法と、何が互換性の制約であるかに関する詳細は、入出力がＯによってローカルに受信された場合と同じであり、当業者にとって周知のものである。
【００３２】
ＮＡＣＫメッセージを受信すると、Ｃは元の入出力要求を保留解除する（１１４）。
【００３３】
ＧＮＴメッセージを受信すると、Ｃは、フラッシュ・コピー・アルゴリズムによって要求される１回または複数回のデータ転送を実行することにより続行する（１１６）。ターゲット読み取りの場合、これは、ソース・ディスクへの読み取りを実行することを意味する。その後、Ｃは、読み取り要求の完了を処理し（１１８）、それを発行したホスト・システムに対する元の入出力要求を完了すると同時に、Ｏに対してＵＮＬメッセージを発行する（１２０）。
【００３４】
Ｏは、ＵＮＬメッセージを受信すると、そのメタデータ・テーブルからロック・レコードを除去し（１２２）、その結果、おそらく、そのロックのためにサスペンドされた他の入出力要求を解除する。現在最も好ましい実施形態では、Ｏは次に、ＵＮＬＤメッセージをＣに送信し（１２４）、Ｃが元の要求に関連するリソースを再使用できるようにする。しかし、これは、フラッシュ・コピー・アルゴリズム自体によって要求されるものではない。
【００３５】
（ターゲットまたはソースに対する）書き込みの場合、Ｃはコピー・オン・ライト（１２７）を実行しなければならない。コピー・オン・ライトのすべてのステップを完了した後、元の書き込み入出力要求が依然としてサスペンドされている状態で、ＣがＵＮＬＣ要求をＯに発行する（１２６）。
【００３６】
Ｏは、ＵＮＬＣメッセージを受信すると、コピーされたものとしてメタデータ内の該当領域にマークを付け（１２８）、ロック・レコードを除去し（１３０）、そのエリアがコピーされたことを待機中のすべての要求に通知し（１３２）、次にＵＮＬＤメッセージをＣに発行する（１３４）。
【００３７】
Ｃは、ＵＮＬＤメッセージを受信すると、サスペンドされた書き込み動作を解除し（１３６）、この書き込み動作はその後完了し、次にＣはホストに対する書き込み動作を完了する（１３８）。
【００３８】
ディスク入出力が失敗した、メッセージング・システムが故障した、またはノードが故障したという状況に対応するためにリカバリ・パスが必要であるが、その要件および実装例は当技術分野で十分理解されているものである。
【００３９】
上記の説明は、単一入出力および単一クライアントＣの観点からのものであった。しかし、Ｏが同じアルゴリズムによってすべての要求を処理し続けている状態で、複数クライアント・ノードからの複数入出力の存在下でこの方式がどのように機能し続けるかは明らかである。
【００４０】
次に図２を参照すると、本発明の現在好ましい実施形態による装置が示されており、この装置は、所有者（２０２）と、クライアント（２０４）入出力実行コンポーネントと、ストレージ・ネットワークの制御下で保持されたデータ（２０８）に関するメタデータの一部分（２０６）と、データ（２０８）のコピー（２０９）と、通信手段とを有し、ストレージ・コントローラ・ネットワークで実施されている。この装置は、所有者（２０２）にメタデータの所有権を割り当てるための所有権割当てコンポーネント（２１０）と、任意のコピー（２０９）との整合を保証するために入出力活動中にメタデータ（２０６）レベルでロックを制御するように動作可能なロック管理コンポーネント（２１２）とを含む。また、所有者（２０２）側のメッセージング・コンポーネント（２１４）も含まれ、このメッセージング・コンポーネント（２１４）は、メタデータ状態に関する応答を要求し、ロックを許可し、ロックの解除を要求し、ロックが解除されたことを通知するために、クライアント（２０４）と所有者（２０２）との間で１つまたは複数のメッセージを渡すように動作可能である。クライアント（２０４）は、そのメタデータが任意の所有者（２０２）によって所有されるデータに対して、所有者（２０２）によって制御されるメタデータ・レベルのロック・プロトコルに従うことを条件として、入出力を実行するように動作可能である。
【００４１】
説明したシステムおよび方法は、ｎウェイ共用ストレージ・コントローラ・ネットワークにおいて分散ロック管理を処理することができるが、システム内に相当なメッセージング・オーバヘッドが存在するという欠点を有する。これは、比較的少ないコントローラを含むシステムや、比較的活動が少ないシステムでは厄介なものではないが、非常に大規模なストレージ・エリア・ネットワークなどの最新のストレージ・システムでは、多くのコントローラおよび非常に高レベルのストレージ活動が存在する可能性がある。このような状況では、不必要なメッセージング・オーバヘッドの回避は有利になるであろう。
【００４２】
したがって、システムの処理性能を改善するために、本発明の最も好ましい実施形態では、各クライアント・ノードは、所有者から最後に受信した応答を記録する情報を維持する機能を有する。具体的には（図３により図１への追加という観点から説明する）、クライアント・ノードＣは、図１のステップ１１４後にＮＡＣＫを受信したという情報、または図１のステップ１２６でおよびステップ１３４後にＵＮＬＣ／ＵＮＬＤ対をそれ自体が発行し、確認したという情報をキャッシュする（３０８）ことができる。
【００４３】
図１のステップ１０４のようにホスト入出力要求を受信する（３０２）と、クライアントＣは、以下のように修正ロック制御アルゴリズムを適用する。
【００４４】
Ｃは、まず、そのキャッシュ・データを検査して（３０３）、該当領域がすでにコピーされたという肯定的表示を有するかどうかを確認する。有する場合、いかなるプロトコル・メッセージもＯに送信せずに入出力を続行する（３０４）。
【００４５】
キャッシュがこのような肯定的表示をまったく含んでいない場合、上述の未修正プロトコルが使用される。クライアントＣは、図１のステップ１０６以降を続行する。ＮＡＣＫまたはＵＮＬＣ／ＵＮＬＤ対を受信すると（３０６）、情報のキャッシュが更新され（３０８）、その領域に影響する後続の入出力は、（３０３）でキャッシュ内のこの情報を見つけ、いかなるプロトコル・メッセージも発行せずに続行することができる（３０４）。
【００４６】
「悲観的キャッシュ」という用語は、時に、本発明の現在最も好ましい実施形態で必要とされる手法を記述するために使用される。これは、クライアントが所有者のメタデータで完全に最新のものである必要はないことを意味し、クライアントは、あるエリアをコピーする必要があり、その必要がないことを表すために所有者（ＮＡＣＫ）によって訂正する必要があると確信することができる。しかし、クライアントは、あるエリアがコピーされていないことを所有者が知っているときに、そのエリアがコピーされたと確信してはならない。
【００４７】
現在好ましい実施形態のロック・キャッシュでは、正しい動作のためにクライアントに対して何らかの変更を行う必要がある。第一に、キャッシュは、フラッシュ・コピー関係が開始される（３００ａ）たびに、（すべての領域をコピーしなければならないことを示すために）初期設定しなければならない（３０１）。これは、いくつかの方法で実施できるが、所有者からクライアントへのメッセージが最も簡単な方法である。第二に、（おそらくネットワーク妨害のために）キャッシュが再初期設定されたことを示すメッセージをクライアント・ノードが逸した可能性がある場合（３００ｂ）、クライアントは、最悪のケースを想定して、そのキャッシュを再初期設定する（３０１）かまたは再検証しなければならない。
【００４８】
当業者にとって明らかなように、他の拡張例および変形例が可能である。たとえば、キャッシュした情報は、唯一の真に最新のコピーを有する所有者ノードからいつでも回復できるので、廃棄可能である。したがって、クライアントには、情報をキャッシュするために、すべてのノード上に保持されたすべてのメタデータを保管するために必要であると思われるものより少ないメタデータ・スペースを割り振ることができよう。その場合、クライアントは、ロック・メッセージ情報のキャッシングから恩恵を受け続けることを保証するために、クライアントが処理する入出力のためのアクセスの局所性を当てにできるであろう。
【００４９】
他の拡張実施形態では、ＮＡＣＫメッセージは（ＧＮＴまたはＵＮＬＤメッセージも）ＲＥＱ／ＧＮＴ／ＵＮＬＣ／ＵＮＬＤメッセージによって直接処理されている領域に関する情報より多くの情報を返すことができる。同じくクリーンにされた隣接領域に関する情報を、所有者からクライアントに送信することができる。
【００５０】
上述の方法は概して１つまたは複数のプロセッサ（図示せず）上で実行されるソフトウェアで実行され、そのソフトウェアは磁気ディスクまたは光ディスクなどの任意の適切なデータ・キャリア（同じく図示せず）上に担持されたコンピュータ・プログラム・エレメントとして提供可能であることが分かるであろう。同様に、データを伝送するためのチャネルとしては、すべての記述のストレージ・メディアならびに有線または無線信号媒体などの信号伝送媒体を含むことができる。
【００５１】
本発明は、コンピュータ・システムで使用するためのコンピュータ・プログラムとして適切に実施することができる。このような実施例は、コンピュータ可読媒体、たとえば、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、もしくはハードディスクなどの有形媒体上に固定された一連のコンピュータ可読命令、またはモデムもしくはその他のインターフェース・デバイスを介して、光もしくはアナログ通信回線を含むがこれに限定されない有形媒体により、もしくはマイクロ波、赤外線、その他の伝送技法を含むがこれに限定されない無形の無線技法を使用して、コンピュータ・システムに伝送可能な一連のコンピュータ可読命令を有することができる。この一連のコンピュータ可読命令は、本明細書で前述した機能のすべてまたは一部を実施する。
【００５２】
当業者であれば、このようなコンピュータ可読命令が多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するためにいくつかのプログラミング言語で作成できることを理解するであろう。さらに、このような命令は、半導体、磁気、もしくは光を含むがこれに限定されない現在もしくは今後の任意のメモリ技術を使用して保管するか、または光、赤外線、もしくはマイクロ波を含むがこれに限定されない現在もしくは今後の任意の通信技術を使用して伝送することができる。このようなコンピュータ・プログラムは、添付の印刷文書もしくは電子文書を備えたリムーバブル・メディア、たとえば、ソフトウェア・パッケージとして配布するか、コンピュータ・システムに、たとえば、システムＲＯＭもしくはハードディスク上にプリロードするか、またはネットワーク、たとえば、インターネットもしくはワールド・ワイド・ウェブによりサーバもしくは電子掲示板から配布できる。
【００５３】
上述の実施形態に対する様々な変更は当業者にとっては明らかであろう。
【図面の簡単な説明】
【００５４】
【図１】データ領域とそのデータのフラッシュ・コピー・イメージとの整合を制御するためにロック・メッセージを使用する２フェーズ・ロック方式の一実施形態を示す流れ図である。
【図２】本発明の好ましい実施形態によるシステムのシステム・コンポーネントを示す図である。
【図３】本発明の好ましい実施形態の追加ステップを示す図である。
【図１】
2006508459.tif 000003
【図２】
2006508459.tif 000004
【図３】
2006508459.tif 000005
【国際調査報告】
2006508459.tif 000006
2006508459.tif 000007