(57)【要約】【課題】  共用記憶域を備えたｎウェイ記憶域構成内で接続された高機能記憶域コントローラを提供すること。【解決手段】  ネットワーク内の記憶域コントローラは、Ｉ／Ｏ実行構成要素と、データに関するメタデータの所有権を所有者記憶域コントローラ・ノードに割り当てるための構成要素と、Ｉ／Ｏ中にメタデータのロックを制御するためのロック・マネージャと、メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、ロック解除信号を発信するために、記憶域コントローラ・ノード間でメッセージを渡すためのメッセージ通信構成要素とを備える。Ｉ／Ｏは、所有者記憶域コントローラによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上で実行され、時には保持されるデータの任意のコピーとデータとの一貫した関係が保持される。【選択図】      図２
2005128657.tif 000002
【特許請求の範囲】
【請求項１】
記憶域コントローラ・ノードのネットワーク内で動作可能な記憶域制御装置であって、
Ｉ／Ｏ実行構成要素と、
データに関するメタデータの所有権を所有者記憶域コントローラ・ノードに割り当てるための所有権割当て構成要素と、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するように動作可能な、前記所有者記憶域コントローラ・ノードでのロック管理構成要素と、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すように動作可能な、前記所有者記憶域コントローラ・ノードでのメッセージ通信構成要素とを含み、
前記Ｉ／Ｏ実行構成要素は、前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するように動作可能であり、
時には保持される前記データの任意の前記コピーと前記データとの一貫した関係が保持される装置。
【請求項２】
前記Ｉ／Ｏ実行構成要素はフラッシュ・コピーを実行するように動作可能であり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項１に記載の装置。
【請求項３】
前記Ｉ／Ｏ実行構成要素はリモート・コピーを実行するように動作可能であり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項１に記載の装置。
【請求項４】
前記Ｉ／Ｏ実行構成要素は記憶域仮想化アクティビティを実行するように動作可能であり、前記メタデータが仮想化状態メタデータを含む、請求項１に記載の装置。
【請求項５】
記憶域コントローラ・ノードのネットワーク内で記憶域制御装置を動作させる方法であって、
Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、
所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するステップと、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、
前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、
時には保持される前記データの任意のコピーと前記データとの一貫した関係を保持するステップとを含む方法。
【請求項６】
前記Ｉ／Ｏはフラッシュ・コピーであり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項５に記載の方法。
【請求項７】
前記Ｉ／Ｏはリモート・コピーであり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項５に記載の方法。
【請求項８】
前記Ｉ／Ｏは記憶域仮想化アクティビティであり、前記メタデータが仮想化状態メタデータを含む、請求項５に記載の方法。
【請求項９】
コンピュータ読取り可能記憶媒体内で有形に具体化されたコンピュータ・プログラム製品であって、コンピュータ・システムにロードされそこで実行されたときに、
Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、
所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するステップと、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、
前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、
時には保持される前記データの任意のコピーと前記データとの一貫した関係を保持するステップとを、
記憶域コントローラ・ノードのネットワーク内で記憶域制御装置に実行させるためのコンピュータ・プログラム・コード手段を備えた、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ記憶域コントローラの分野に関し、より詳細には、共用記憶域を備えたｎウェイ記憶域構成内で接続された高機能記憶域コントローラに関する。
【背景技術】
【０００２】
高度なコンピュータ記憶域の分野では、「高機能」と呼ばれるものに対する需要が高まっている。こうした機能は、従来の記憶システムの単なるＩ／Ｏ機能を超えるものである。高機能は当分野でよく知られており、システムに格納されたリアル・データまたは「ユーザ」データに関する状態情報を保持するために使用される、メタデータの制御に依存するものである。高機能を使用して実行できる操作により、ユーザ・アプリケーションが「リアル」データを入手可能な状態を維持しながらも、様々なアクションをデータの仮想イメージに即時に適用することが可能となる。こうした高機能の一例が「フラッシュ・コピー」であり、本発明はこの機能に限定されるものではないが、一例としてのみフラッシュ・コピーを使用した本発明の一実施形態の記述は、本発明の背景を説明するのに適している。
【０００３】
最高レベルにあるフラッシュ・コピーは、「何らかのデータ」の第２のイメージを使用可能にする機能である。この機能はポイント・イン・タイム・コピー、またはＴ０コピーとしても知られる。第２のイメージのコンテンツは、初期には第１のそれと同一である。第２のイメージは「瞬時に」使用可能となる。これは実際には、本物の別の物理コピーを作成するのに必要な時間よりもかなり短い時間で第２のイメージが使用可能になることを意味し、使用中のアプリケーションのオペレーションを容認できないほど中断することなく確立できることを意味する。
【０００４】
第２のコピーは、いったん確立されると、バックアップ、システム試行、およびデータ・マイニングの実行を含む、いくつかの目的に使用することができる。第１のコピーは、オリジナルの使用中アプリケーションによって、その当初の目的での使用が続行される。これに対して、フラッシュ・コピーなしでのバックアップの場合には、アプリケーションを遮断し、バックアップを取った後に、再度アプリケーションを再始動しなければならない。アプリケーションが十分にアイドル状態であるウィンドウを遮断する時間を見つけるのは、ますます困難になっていく。バックアップを取るコストも増加している。フラッシュ・コピーが業務を停止せずにバックアップを取れるようにする機能には、ますます増大する重要なビジネス的価値がある。
【０００５】
フラッシュ・コピーの実施により、第２のイメージ（以下、「ターゲット」と呼ぶ）にアドレス指定された読取りＩ／Ｏを、オリジナル・イメージ（以下、「ソース」と呼ぶ）に転送することによって、その領域が書込みの対象となっていない限り、第２のイメージの存在を錯覚させる。領域が（ソースまたはターゲットのいずれかへの）書込みの対象となっている場合、ソースおよびターゲットの両方がデータの独自のコピーを所有しているという錯覚を維持するために、書込みコマンドのオペレーションを中断し、それを有効化せずにソースから影響を受けた領域の読取りを発行し、その読取りデータを書込みによってターゲットに加えた後、（すべてのステップが首尾よく実行された場合に限り）書込みの中断を解除する、というプロセスが呼び出される。ターゲットはすでにデータのそれ自体のコピーを有することになるため、同じ領域への後続の書込みは中断する必要がない。このコピーオンライト技法はよく知られており、多くの環境で使用されている。
【０００６】
フラッシュ・コピーの実施方法には様々な変形形態がある。これらの変形形態は、実施の様々な特徴を通じて示される。たとえば、特定の実施ではターゲットへの読取りおよび書込みが可能であり、他の実施では読取りのみが可能である。実施の中には、ターゲットへの限定された更新のみが可能なものもある。ターゲットがソースと同じサイズでなければならないものや、小さくてもよいものもある。
【０００７】
ただしすべての実施は、上記の決定、すなわち、ターゲットで受け取られた読取りがソースまたはターゲットに発行されるかどうかに関する決定、ならびにコピーオンライトを実行できるようにするために書込みを中断しなければならないかどうかに関する決定を左右する、何らかのデータ構造に依拠している。データ構造は本質的に、ソースからターゲットにコピーされた領域を、コピーされていない領域とは異なるものとして追跡する。
【０００８】
このデータ構造（以下、メタデータと呼ぶ）の維持が、フラッシュ・コピーの裏側でアルゴリズムを実施する際の鍵となる。リモート・コピー（ＰＰＲＣまたは連続コピー、あるいはリモート・ミラーリングとしても知られる）または仮想化などの他の「高機能」は、同様のデータ構造に依拠しており、したがって本発明の範囲に入る。これらそれぞれの機能のメタデータは異なるが、すべての場合において、データの位置、仮想化されたファイルの実際の記憶オブジェクトへのマッピングなどの、状態情報を維持するために使用される。メタデータは、永続記憶域内に保持される。
【０００９】
フラッシュ・コピーなどの機能は、近代的な記憶域コントローラ内で使用される場合が多いことからわかるように、単一の（あるいはＳＭＰプロセッサとの）ＣＰＵ複合体内で実施するのが比較的簡単である。ほんの少し手をかければ、（少なくとも）２つのＣＰＵ複合体をメタデータのコピーにアクセスさせるような、耐故障性フラッシュ・コピーを実施することができる。第１のＣＰＵ複合体が故障した場合、第２を使用して、ターゲット・イメージへのアクセスを失うことなく、オペレーションを続行することができる。
【００１０】
ただし、単一のＣＰＵ複合体のＩ／Ｏ機能は制限される。１秒あたりのＩ／Ｏまたは帯域幅（ＭＢ／ｓ）に関して測定される単一のＣＰＵ複合体の機能の向上には限界があり、結局は使用中のアプリケーションの性能に制約を与えることになる。この制限は、フラッシュ・コピーの多くの実施において生じるが、その良い例が記憶域コントローラ内で生じるものである。典型的な記憶域コントローラは、そのコントローラの性能における制限を決定する単一の（あるいは冗長ペアの）ＣＰＵ複合体を有する。
【００１１】
さらに多くの記憶域コントローラを設置することもできる。しかし、別々の記憶域コントローラがメタデータへのアクセスを共用することはないため、フラッシュ・コピー・イメージの管理において協働することはない。記憶スペースは、単一のコントローラ・システムの範囲に限定されるフラッシュ・コピーなどの機能によって断片化されることになる。ソースおよびターゲットのどちらのディスクも、同じ記憶域コントローラ内で管理しなければならない。単一の記憶域コントローラ・ディスク・スペースが一杯になり、他方には幾分かの余分なスペースが残っていても、ソースとターゲットのディスクを分離して、新しいコントローラの制御の下にターゲット・ディスクを配置することはできない。（これは特に、ターゲットに関連付けられた物理データがないために、ターゲットの移動が安価なオペレーションである新しいフラッシュ・コピーの場合には、不利である。）
【００１２】
ソース／ターゲットのペアに可能な総合的性能の制約、ならびに単一コントローラ記憶機能の制約は、記憶環境の管理をさらに複雑なものにする。管理コストは、記憶域の所有権の総コストにおいて最も大きなコストとして引き合いに出されることが多い。可能な任意の制約をすべて取り除くことによって、システムのコストおよび複雑さを削減することは、非常に有利である。
【００１３】
典型的には、今日の記憶域管理システムはこの問題を解決しようとするものではない。単一のコントローラに制限された高機能を実施するため、そのコントローラの機能によって制約される。
【００１４】
複数のコントローラが共用フラッシュ・コピー関係に関与できるようにするための簡単な方法は、１つのコントローラをメタデータの所有者として割り当て、残りのコントローラにはすべての読取りおよび書込み要求をその１つのコントローラ宛に転送させることである。所有者コントローラは、前述のアルゴリズムを使用して、あたかもそれ自体の接続ホスト・サーバから直接入ってきたかのように要求を処理し、各要求を発信元のコントローラに戻して完了する。
【００１５】
こうしたシステムの主な欠点および広く使用されていない理由は、Ｉ／Ｏ要求をそれぞれ転送するのでは負担が重過ぎて、システム全体の総コストを倍増させ、その結果、システム性能がほぼ半減してしまうことである。
【００１６】
分散並列データベース処理の分野では、リソースを「ロック・クラブ」にアセンブルし、ロック・クラブに所有者を割り当て、次にこれが割り当てられた領域のすべてのロックを制御して、ロック制御メッセージをＩ／Ｏ要求元クライアントに発行できるようにする、分散ロック管理機構を有することが知られている。こうしたシステムは、論理リソース・レベルで実施されるものであり、記憶域コントローラ・システム間でのロックの制御を許可しないだけでなく、メタデータ・レベルでのどのような形のロック管理をも提供しない。リアル・データ・セグメントが広範囲に分散された物理媒体内で保持できる場合には、記憶域仮想化の際にかなりのオーバヘッドも導入される。
【００１７】
学術文献、たとえばＡｍｉｒｉ等による「Ｓｃａｌａｂｌｅ  Ｃｏｎｃｕｒｒｅｎｃｙ  Ｃｏｎｔｒｏｌ  ａｎｄ  Ｒｅｃｏｖｅｒｙ  ｆｏｒ  Ｓｈａｒｅｄ  Ｓｔｏｒａｇｅ  Ａｒｒａｙｓ」では、記憶域コントローラ・ネットワークにおけるデバイス・レベルでの分散ロック管理の使用が可能であることが示唆されている。ただし、こうしたロック管理技法は、コントローラ間でメッセージ通信（messaging）を実行しなければならず、これが待ち時間の期間を長くし、デッドロックの可能性および再試行の反復を増加させることにつながる、という負担によって抑止されることが知られている。
【非特許文献１】ケイ・エミリ（K. Amiri）、外２名、"スケラーブル  コンカンレンシー  コントロール  アンド  リカバリー  フォー  シェア  ストレージ  アレイズ（Scalable Concurrency Control and Recovery for Shared Storage Arrays）" 、[online]、１９９９年２月、テクニカルレポート（Technical Report）、シーエムユー・シーエス・９９・１１１（ CMU-CS-99-111）、[２００３年１０月１０日検索]、インターネット＜URL: http://reports-archive.adm.cs.cmu.edu/cs1999.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１８】
したがって、Ｎ記憶域コントローラ（「ｎウェイ・システム」）が、メタデータ・レベルでの所有権およびロックをデバイス間で分散できる拡張記憶機能に関与するのを可能にする、低コスト、高性能、かつスケーラブルなスキームには、かなりの利点があることになる。
【課題を解決するための手段】
【００１９】
本発明は、第一の態様で、Ｉ／Ｏ実行構成要素と、データに関するメタデータの所有権を所有者記憶域コントローラ・ノードに割り当てるための所有権割当て構成要素と、上記データと時には保持される上記データの任意のコピーとの一貫性を保証するために、Ｉ／Ｏアクティビティ中に上記メタデータのロックを制御するように動作可能な、上記所有者記憶域コントローラ・ノードでのロック管理構成要素と、メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、ロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すように動作可能な、上記所有者記憶域コントローラ・ノードでのメッセージ通信（messaging）構成要素とを備える、記憶域コントローラ・ノードのネットワーク内で動作可能な記憶域制御装置を提供するものであって、上記Ｉ／Ｏ実行構成要素は、上記Ｉ／Ｏ実行構成要素が上記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するように動作可能であり、時には保持される上記データの任意の上記コピーと上記データとの一貫した関係が保持される。
【００２０】
好ましくは、前記Ｉ／Ｏ実行構成要素はフラッシュ・コピーを実行するように動作可能であり、前記メタデータはグレイン(grain)・コピー状態メタデータを含む。
【００２１】
好ましくは、前記Ｉ／Ｏ実行構成要素はリモート・コピーを実行するように動作可能であり、前記メタデータはグレイン(grain)・コピー状態メタデータを含む。
【００２２】
好ましくは、前記Ｉ／Ｏ実行構成要素は記憶域仮想化アクティビティを実行するように動作可能であり、前記メタデータは仮想化状態メタデータを含む。
【００２３】
本発明は、第２の態様で、Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、前記メタデータと時には保持される前記メタデータの任意のコピーとの一貫性を保証するために、Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するステップと、メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、ロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、時には保持される前記データの任意の前記コピーと前記データとの一貫した関係を保持するステップとを備える、記憶域コントローラ・ノードのネットワーク内で記憶域制御装置を動作させる方法を提供する。
【００２４】
好ましくは、前記Ｉ／Ｏはフラッシュ・コピーであり、前記メタデータはグレイン(grain)・コピー状態メタデータを含む。
【００２５】
好ましくは、前記Ｉ／Ｏはリモート・コピーであり、前記メタデータはグレイン(grain)・コピー状態メタデータを含む。
【００２６】
好ましくは、前記Ｉ／Ｏは記憶域仮想化アクティビティであり、前記メタデータが仮想化状態メタデータを含む。
【００２７】
本発明は、第３の態様で、コンピュータ・システムにロードされそこで実行されたときに、Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、上記メタデータと時には保持される上記メタデータの任意のコピーとの一貫性を保証するために、Ｉ／Ｏアクティビティ中に上記メタデータのロックを制御するステップと、メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、ロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、上記Ｉ／Ｏ実行構成要素が上記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、時には保持される上記データの任意の上記コピーと上記データとの一貫した関係を保持するステップとを、記憶域コントローラ・ノードのネットワーク内で記憶域制御装置に実行させるためのコンピュータ・プログラム・コード手段を備えた、コンピュータ読取り可能記憶媒体内で有形に具体化されたコンピュータ・プログラム製品を提供する。
【００２８】
したがって、本発明の現在の好ましい実施形態は、ｎウェイ・システム内の複数の記憶域コントローラ（またはノード）間で、メタデータ・レベルのロック・アクティビティを調整するためのメッセージ通信を使用する。メッセージ通信は、システム内のノード間でのアクティビティを調整するが、各ノードは依然としてそれ自体のＩ／Ｏを実行するための責務を負う。
【発明を実施するための最良の形態】
【００２９】
本発明の好ましい実施形態は、ｎウェイ記憶システムにおいて複数の記憶域コントローラ間でのアクティビティを調整するために、メッセージ通信を使用する。メッセージ通信は、システム内のノード間でのアクティビティを調整するが、各ノードは依然としてそれ自体のＩ／Ｏを実行するための責務を負う。こうしたメッセージ通信により、システム内のノードにかかる処理負担は、前述の知られた記憶域に関する従来技術のＩ／Ｏ転送スキームよりも少なくなる。プロトコル・メッセージは、それらが関係するＩ／Ｏよりも（転送される総バイト数が）少ないために、その負担の度合いはかなり少なくなるが、メッセージは合体または一括するのに適しているため、システム・オーバヘッドはさらに削減される。
【００３０】
一例として、フラッシュ・コピーを実施するnウェイ・システムを考えてみる。あらゆるノードが、ｎ個のノードからなる協働セットによって管理された記憶域へのアクセス権を有すると想定する。ノードのうちの１つが、記憶域の１つの領域のすべてのＩ／Ｏ関係を制御するメタデータの所有者として指定される（１０２）。他のノードはクライアントとして指定される。現在の最も好適な実施形態では、クライアント・ノードのうちの１つが、さらにバックアップ所有者として指定され、所有者ノードに障害が発生した場合に継続して可用性を提供するために、メタデータのコピーを維持する。
【００３１】
ホストのＩ／Ｏ要求が特定のクライアントノード（「Ｃ」）に到達すると考えてみる（１０４）。ホストのＩ／Ｏ要求は、ターゲット・ディスクの読取りまたは書込み、あるいはおそらくソース・ディスクの書込みのいずれかであると想定する。クライアントＣは、Ｉ／Ｏを中断する（１０６）ことによって、処理を開始する。次にＣは、所有者ノードＯにメッセージＲＥＱを送信し（１０８）、グレインがコピーされたかどうかをたずねる。
【００３２】
メッセージＲＥＱを受け取ると、Ｏはそれ自体のメタデータ構造を検査する。Ｏは領域がすでにコピーされていることを発見すると、ＮＡＣＫメッセージで回答する（１１０）。Ｏは領域がまだコピーされていないことを発見すると、それ自体のメタデータ構造内の領域に関する適切なメタデータに対してロック・レコードを配置し、ロックが認められたことを示すＧＮＴメッセージで回答する（１１２）。ロック・レコードは、受け取られて認められたばかりの要求と、Ｃでの処理が続行している間に同じメタデータに影響を与える可能性のある他の要求との間の互換性を保証するものであることが要求される。ロック・レコードが維持される方法および互換性の制約についての詳細は、Ｉ／ＯがＯによってローカルに受け取られた場合と同じであり、当分野の技術者にはよく知られている。
【００３３】
ＮＡＣＫメッセージを受け取ると、ＣはオリジナルのＩ／Ｏ要求を再開（アンペンド）する（１１４）。
【００３４】
ＧＮＴメッセージを受け取ると、Ｃはフラッシュ・コピー・アルゴリズムによって要求されたデータ転送を実行することによって続行する（１１６）。ターゲット読取りの場合、これは、ソース・ディスクへの読取りを実行することを意味する。しばらくの後、Ｃは読取り要求の完了を処理し（１１８）、ロックを解除するように要求するためにＯに対してＵＮＬメッセージを発行し（１２０）、それと同時に、それを発行したホスト・システムへのオリジナルのＩ／Ｏ要求を完了する。
【００３５】
ＵＮＬメッセージを受け取ると、Ｏはそのメタデータ・テーブルからロック・レコードを除去し（１２２）、おそらく、そのロックのために中断されていた他のＩ／Ｏ要求が解除される。現在の最も好ましい実施形態では、次にＯは、ロックが解除されたことを示すＵＮＬＤメッセージをＣに送達し（１２４）、Ｃがオリジナル要求に関連付けられたリソースを再使用できるようにする。ただし、これはフラッシュ・コピー・アルゴリズムそれ自体が要求するものではない。
【００３６】
書込み（ターゲットまたはソースいずれかへ）の場合、Ｃはコピー・オン・ライトを実行しなければならない（１２７）。コピー・オン・ライトのすべてのステップを完了し、オリジナルの書込みＩ／Ｏ要求が依然として中断されている場合、Ｃは、ロックを解除し、コピー・オン・ライトを記録するためにメタデータを更新するように要求するＵＮＬＣ要求を、Ｏに対して発行する（１２６）。
【００３７】
ＵＮＬＣメッセージを受け取ると、Ｏはメタデータ内で、影響を受けた領域をコピーされたものとしてマークし（１２８）、ロック・レコードを除去し（１３０）、これでその部分がコピーされたことを任意の待機要求に通知し（１３２）、その後、ロックが解除されたことを示すＵＮＬＤメッセージをＣに対して発行する（１３４）。
【００３８】
ＵＮＬＤメッセージを受け取ると、Ｃは中断されていた書込みオペレーションを解除（１３６）し、これがしばらくの後に完了することになり、その後Ｃはホストへの書込みオペレーションを完了する（１３８）。
【００３９】
ディスクＩ／Ｏの障害、またはメッセージ通信システムの障害、あるいはノードの障害が発生した状況に応えるためには回復パスが必要であるが、これらの要件および実施は当分野の通常の技術者によく知られており、ここで説明する必要はない。
【００４０】
上記の説明は、単一のＩ／Ｏおよび単一のクライアントＣに関するものであった。ただし、当分野の通常の技術者の１人であれば、複数のクライアント・ノードからの複数のＩ／Ｏが存在する場合に、Ｏが同じアルゴリズムを使用してすべての要求の処理を続行しながら、このスキームが動作を続行する方法が明らかであろう。
【００４１】
次に図２を見ると、本発明の現在の好ましい実施形態に従った装置が示されており、この装置は、所有者（２０２）、クライアント（２０４）Ｉ／Ｏ実行構成要素、記憶域ネットワークの制御の下で保持されるデータ（２０８）に関するメタデータ（２０６）の一部、およびデータ（２０８）のコピー（２０９）を備える、記憶域コントローラ・ネットワーク内で具体化される。装置は、所有者（２０２）にメタデータの所有権を割り当てるための所有権割当て構成要素（２１０）と、フラッシュ・コピー・イメージ、リモート・コピー・イメージ、または記憶域仮想化イメージであってよい任意のコピー（２０９）との一貫性を保証するために、Ｉ／Ｏアクティビティ中に上記メタデータ（２０６）レベルでのロックを制御するように動作可能なロック管理構成要素（２１２）とを含む。さらに、所有者（２０２）およびクライアント（２０４）に接続されたメッセージ通信構成要素（２１４）も含み、このメッセージ通信構成要素（２１４）は、メタデータ状態に関する応答を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたという信号を送信するために、クライアント（２０４）と所有者（２０２）との間で１つまたは複数のメッセージを渡すように動作可能である。クライアント（２０４）は、クライアント（２０４）が上記所有者（２０２）によって制御されるメタデータ・レベルでのロック・プロトコルに準拠していることを条件として、そのメタデータが所有者（２０２）によって所有されているデータ上でＩ／Ｏを実行するように動作可能である。
【００４２】
本発明の現在の最も好ましい実施形態は、記憶域の異なる領域のメタデータ所有者となる役割を異なるノードに割り振る。これにより、単一の所有者ノードそれ自体が、システムにおけるボトルネックとならないことを保証する。領域の所有権の均衡をとるため（データベース・テーブル・レベルであるが）の効率的なスキームは、知られている従来技術の分散並列データベース処理スキームからわかる。
【００４３】
前述の方法が典型的には１つまたは複数のプロセッサ（図示せず）上で実行中のソフトウェア内で実施されることになり、ソフトウェアは、磁気または光コンピュータ・ディスクなどの任意の好適なデータ・キャリア（これも図示せず）上で搬送されるコンピュータ・プログラム要素として提供できることを理解されよう。同様にデータの伝送用チャネルは、すべての記述の記憶媒体、ならびに有線または無線の信号媒体などの信号搬送媒体を含むことができる。
【００４４】
本発明は、コンピュータ・システムで使用するためのコンピュータ・プログラム製品として好適に具体化することができる。こうした実施は、たとえばディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、またはハード・ディスクなどのコンピュータ読取り可能媒体などの有形の媒体上に固定された一連のコンピュータ読取り可能命令、あるいは、光またはアナログの通信回線を含むがこれらに限定されることのない有形の媒体を介するか、あるいはマイクロ波、赤外線、または他の伝送技法を含むがこれらに限定されることのない無線技法を使用して無形に、モデムまたは他のインターフェース・デバイスを介してコンピュータ・システムに伝送可能な、一連のコンピュータ読取り可能命令を備えることができる。一連のコンピュータ読取り可能命令は、本明細書で前述した機能のすべてまたは一部を具体化する。
【００４５】
当分野の技術者であれば、こうしたコンピュータ読取り可能命令が、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムで使用するために、いくつかのプログラミング言語で作成できることを理解されよう。さらにこうした命令は、半導体、磁気または光を含むがこれらに限定されることのない、現在または将来の任意のメモリ技法を使用して格納するか、あるいは、光、赤外線、またはマイクロ波を含むがこれらに限定されることのない、現在または将来の任意の通信技法を使用して伝送することができる。こうしたコンピュータ・プログラム製品は、たとえばシュリンク包装されたソフトウェアなどの印刷文書または電子文書が添付された取外し可能な媒体として配布できること、たとえばシステムＲＯＭまたは固定ディスク上でコンピュータ・システムに事前にロードできること、あるいは、たとえばインターネットまたはＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂなどのネットワークを介してサーバまたは電子掲示板から配布できること、が企図されている。
【００４６】
当分野の通常の技術者であれば、前述の実施形態への様々な修正が明らかであることを理解されよう。
【００４７】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４８】
（１）記憶域コントローラ・ノードのネットワーク内で動作可能な記憶域制御装置であって、
Ｉ／Ｏ実行構成要素と、
データに関するメタデータの所有権を所有者記憶域コントローラ・ノードに割り当てるための所有権割当て構成要素と、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するように動作可能な、前記所有者記憶域コントローラ・ノードでのロック管理構成要素と、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すように動作可能な、前記所有者記憶域コントローラ・ノードでのメッセージ通信構成要素とを含み、
前記Ｉ／Ｏ実行構成要素は、前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するように動作可能であり、
時には保持される前記データの任意の前記コピーと前記データとの一貫した関係が保持される装置。
（２）前記Ｉ／Ｏ実行構成要素はフラッシュ・コピーを実行するように動作可能であり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項１に記載の装置。
（３）前記Ｉ／Ｏ実行構成要素はリモート・コピーを実行するように動作可能であり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項１に記載の装置。
（４）前記Ｉ／Ｏ実行構成要素は記憶域仮想化アクティビティを実行するように動作可能であり、前記メタデータが仮想化状態メタデータを含む、請求項１に記載の装置。
（５）記憶域コントローラ・ノードのネットワーク内で記憶域制御装置を動作させる方法であって、
Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、
所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するステップと、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、
前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、
時には保持される前記データの任意のコピーと前記データとの一貫した関係を保持するステップとを含む方法。
（６）前記Ｉ／Ｏはフラッシュ・コピーであり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項５に記載の方法。
（７）前記Ｉ／Ｏはリモート・コピーであり、前記メタデータがグレイン・コピー状態メタデータを含む、請求項５に記載の方法。
（８）前記Ｉ／Ｏは記憶域仮想化アクティビティであり、前記メタデータが仮想化状態メタデータを含む、請求項５に記載の方法。
（９）コンピュータ読取り可能記憶媒体内で有形に具体化されたコンピュータ・プログラム製品であって、コンピュータ・システムにロードされそこで実行されたときに、
Ｉ／Ｏ実行構成要素によってＩ／Ｏ要求を受け取るステップと、
所有者記憶域コントローラ・ノードにデータに関するメタデータの所有権を割り当てるステップと、
Ｉ／Ｏアクティビティ中に前記メタデータのロックを制御するステップと、
メタデータの状態を要求し、ロックを認め、ロックの解除を要求し、およびロックが解除されたことを示す信号を発信するために、１つまたは複数のメッセージを記憶域コントローラ・ノード間で渡すステップと、
前記Ｉ／Ｏ実行構成要素が前記所有者記憶域コントローラ・ノードによって制御されているメタデータ・ロック・プロトコルに準拠していることを条件として、メタデータが任意の所有者記憶域コントローラ・ノードによって所有されているデータ上でＩ／Ｏを実行するステップと、
時には保持される前記データの任意のコピーと前記データとの一貫した関係を保持するステップとを、
記憶域コントローラ・ノードのネットワーク内で記憶域制御装置に実行させるためのコンピュータ・プログラム・コード手段を備えた、コンピュータ・プログラム製品。
【図面の簡単な説明】
【００４９】
【図１】本発明の好ましい実施形態に従った方法のステップを示す流れ図である。
【図２】本発明の好ましい実施形態に従った装置を示す構成図である。
【符号の説明】
【００５０】
２０２    所有者
２０４    クライアント
２０６    メタデータ
２０８    データ
２０９    データ・イメージ
２１０    所有権制御
２１２    ロック管理構成要素
２１４    メッセージ通信構成要素
【図１】
2005128657.tif 000003
【図２】
2005128657.tif 000004