(57)【要約】【課題】  電子計算システムのストレージを管理するシステムおよび方法を提供する。【解決手段】  本発明のストレージネットワーク（２００）は、少なくとも１つのストレージセル（２１０ａ）が、物理的なストレージ媒体（４４０）と、該ストレージ媒体でデータ転送オペレーションを制御するストレージ媒体コントローラ（４１０）とを含む、複数のストレージセル（２１０）と、少なくとも１つのストレージセルに書き込みオペレーションを実行するように構成できる複数のホストコンピュータ（２１６、２２０）と、前記複数のホストコンピュータの１つまたは２つ以上の前記書き込みオペレーションを規制する少なくとも１つの書き込み制御サーバ（２３０）と、前記ストレージセルと前記ホストコンピュータ（２１６、２２０）と前記書き込み制御サーバとの間の通信接続を提供する通信ネットワーク（２１２）と、を備える。【選択図】          図２
2005216299.tif 000002
【特許請求の範囲】
【請求項１】
ストレージネットワーク（２００）であって、
複数のストレージセル（２１０）であって、少なくとも１つのストレージセル（２１０ａ）が、物理的なストレージ媒体（４４０）と、該ストレージ媒体（４４０）でデータ転送オペレーションを制御するストレージ媒体コントローラ（４１０）とを含む、複数のストレージセル（２１０）と、
少なくとも１つのストレージセル（２１０）に書き込みオペレーションを実行するように構成できる複数のホストコンピュータ（２１６、２２０）と、
前記複数のホストコンピュータ（２１６、２２０）の１つまたは２つ以上の前記書き込みオペレーションを規制する少なくとも１つの書き込み制御サーバ（２３０）と、
前記ストレージセル（２１０）と前記ホストコンピュータ（２１６、２２０）と前記書き込み制御サーバ（２３０）との間の通信接続を提供する通信ネットワーク（２１２）と、
を備えるストレージネットワーク。
【請求項２】
ストレージネットワーク（２００）であって、前記書き込み制御サーバ（２３０）は、書き込み許可キューを実施して、前記ホストコンピュータ（２１６、２２０）の書き込みオペレーションを規制する、請求項１に記載のストレージネットワーク。
【請求項３】
ストレージネットワーク（２００）であって、前記書き込み制御サーバ（２３０）は、どの時点においても前記書き込み許可キューの単一のホストコンピュータ（２１６）にしか書き込み許可を与えない、請求項２に記載のストレージネットワーク。
【請求項４】
ストレージネットワーク（２００）であって、
前記ホストコンピュータ（２１６、２２０）は、前記書き込み制御サーバ（２３０）に書き込み要求をサブミットし、
前記書き込み制御サーバ（２３０）は、前記書き込み要求を前記書き込み許可キューに配置する際に逆ハンディキャップルーチンを実施する、
請求項２に記載のストレージネットワーク。
【請求項５】
ストレージネットワーク（２００）であって、前記逆ハンディキャップルーチンは、着信した書き込み要求を遅延させて、ホストコンピュータ（２１６）から前記書き込み制御サーバ（２３０）への見積もり移動時間を補償する、請求項４に記載のストレージネットワーク。
【請求項６】
ストレージネットワーク（２００）における複数のホストコンピュータ（２１６、２２０）と複数のデータストレージデバイス（２１０）との間のデータ転送オペレーションを管理する方法であって、
書き込み制御サーバ（２３０）において、前記ストレージネットワーク（２００）に通信接続された前記複数のホストコンピュータ（２１６、２２０）から書き込み要求を受信すること、
前記書き込み要求を書き込み許可キューに記憶すること、および
前記書き込み許可キューの書き込み要求に関連した少なくとも１つのホストコンピュータ（２１６）に許可信号を送信すること、
を含み、
前記許可信号は、前記ホストコンピュータ（２１６）に書き込みオペレーションを起動する許可を与える、
データ転送オペレーションを管理する方法。
【請求項７】
ホストコンピュータ（２１６）から、書き込みオペレーションが完了したことを示すステータス信号を受信すること、をさらに含む、請求項６に記載のデータ転送オペレーションを管理する方法。
【請求項８】
前記書き込み要求はタイムスタンプを含み、
前記書き込み要求を書き込み許可キューに記憶することは、前記タイムスタンプに基づいた順序で前記書き込み要求を記憶することを含む、
請求項６に記載のデータ転送オペレーションを管理する方法。
【請求項９】
前記書き込み要求を前記書き込み許可キューに配置する際に、逆ハンディキャップルーチンを実施すること、をさらに含む、請求項７に記載のデータ転送オペレーションを管理する方法。
【請求項１０】
ホストコンピュータ（２１６）から、書き込みオペレーションが失敗したことを示すステータス信号を受信すること、
前記失敗した書き込みオペレーションに関連した前記ステータス信号から前記タイムスタンプを取り出すこと、および
前記取り出したタイムスタンプを含む書き込み失敗信号を少なくとも１つのホストコンピュータ（２１６）に送信すること、
をさらに含む、請求項９に記載のデータ転送オペレーションを管理する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
説明する主題は、電子計算に関し、詳細には、電子計算システムのストレージを管理するシステムおよび方法に関する。
【背景技術】
【０００２】
情報の効果的な収集、管理、および制御は、現代の企業プロセスの中心的な構成要素となっている。このため、大企業および小企業の双方の多くの企業は、現在、コンピュータベースの情報管理システムを実施している。
【０００３】
データ管理は、コンピュータベースの情報管理システムの重要な構成要素である。多くのユーザは、ストレージネットワークを実施して、コンピュータベースの情報管理システムのデータオペレーションを管理する。ストレージネットワークは、広範囲の地理的エリアにわたって分散することができる高信頼の管理されたストレージソリューションを提供するために、計算能力および計算複雑度と共に発展してきた。
【０００４】
データ冗長性は、ストレージネットワークの信頼性の１つの側面である。データが存在するネットワーク要素が故障した場合に、データの単一のコピーでは脆弱である。脆弱なデータ、または、脆弱なデータが存在するネットワーク要素を回復できる場合には、損失は一時的なものとすることができる。しかしながら、データまたはネットワーク要素のいずれをも回復できない場合には、脆弱なデータは永久に失われるおそれがある。
【０００５】
ストレージネットワークは、１つまたは２つ以上のネットワーク要素の故障の場合に、リモートコピープロシージャを実施してデータ冗長性を提供し、フェールオーバプロシージャを実施してデータ一貫性を提供する。リモートコピープロシージャは、第１のストレージサイトに存在する１つまたは２つ以上のデータセットを少なくとも第２のストレージサイトに複製する。データ一貫性グループ（ＤＣＧ（data consistency group））は、各ストレージユニットが集約されたデータセットの一部を含む複数のストレージユニットから成るデータセットであり、各ストレージユニットは個別に複製される可能性がある。ストレージユニットは、論理的である場合もあるし、物理的である場合もある。集約された１次データセットおよび集約された２次データセットが一貫性を保った状態にあり、したがって、オペレーションの継続に有用な状態にあるように、複製が失敗すると直ちにすべてのローカル書き込みオペレーションおよびリモート書き込みオペレーションを停止することを保証した下で、ディスクアレイレベルで実施されたＤＣＧによって、複数の論理ユニットにわたってデータセットを集約することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
大規模ストレージネットワークは、数十、さらには数百個のストレージセルを備えることがあり、ストレージネットワークのデータセットに書き込みオペレーションを実行する数百、さらには数千個のホストコンピュータを有することがある。効果的なストレージ管理技法は、複雑なストレージネットワークで実施されたＤＣＧのデータ一貫性を確保しなければならない。
【課題を解決するための手段】
【０００７】
例示の一実施態様において、ストレージネットワークが提供される。ストレージネットワークは、複数のストレージセルであって、少なくとも１つのストレージセルが、物理的なストレージ媒体と、当該ストレージ媒体でデータ転送オペレーションを制御するストレージ媒体コントローラとを含む、複数のストレージセルと、少なくとも１つのストレージセルに書き込みオペレーションを実行するように構成できる複数のホストコンピュータと、１つまたは２つ以上のホストコンピュータの書き込みオペレーションを規制する少なくとも１つの書き込み制御サーバと、ストレージセルとホストコンピュータと書き込み制御サーバとの間の通信接続を提供する通信ネットワークと、を備える。
【発明を実施するための最良の形態】
【０００８】
本明細書では、例示のストレージネットワークアーキテクチャ、および、コピーオペレーションにおける統一された書き込みブロックの順序付け方法を説明する。本明細書で説明する方法は、コンピュータ可読媒体上の論理命令として具体化することができる。これらの論理命令は、プロセッサで実行されると、汎用計算デバイスを、説明する方法を実施する専用マシンとしてプログラミングする。
【０００９】
［例示のネットワークアーキテクチャ］
図１は、ストレージネットワークを利用する、ネットワーク接続された計算システム１００の例示の一実施態様の概略図である。このストレージネットワークはストレージプール１１０を備える。このストレージプール１１０は、任意の大きな量のストレージ空間を備える。実際には、ストレージプール１１０は、当該ストレージプール１１０を実施するのに使用される特定のハードウェアによって決定された有限のサイズ制限を有する。しかしながら、ストレージプール１１０に利用可能なストレージ空間には、理論的な制限はほとんどない。
【００１０】
複数の論理ディスク（論理ユニットまたはＬＵとも呼ばれる）１１２ａ、１１２ｂをストレージプール１１０内に割り当てることができる。各ＬＵ１１２ａ、１１２ｂは、連続した範囲の論理アドレスを備える。この論理アドレスは、ホストデバイス１２０、１２２、１２４、および１２８が使用する接続プロトコルから一意に識別されたＬＵ１１２へ要求をマッピングすることによって、ホストデバイスがアドレス指定することができる。本明細書で使用されるように、用語「ホスト」は、自身のために、または、ホストに接続されたシステムのためにストレージを利用する計算システム（または複数の計算システム）を備える。例えば、ホストは、大規模データベースを処理するスーパーコンピュータとすることもできるし、トランザクションの記録を保持するトランザクション処理サーバとすることもできる。あるいは、ホストは、企業向けストレージサービスを提供するローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）上のファイルサーバとすることもできる。ファイルサーバは、複数のディスクドライブを管理するように構成された１つまたは２つ以上のディスクコントローラおよび／またはＲＡＩＤコントローラを備えることができる。ホストは、例えばファイバチャネル（ＦＣ）接続等の通信接続を介してストレージネットワークに接続される。
【００１１】
サーバ１２８等のホストは、他の計算システムもしくは計算デバイスまたはデータ処理システムもしくはデータ処理デバイスにサービスを提供することができる。例えば、クライアントコンピュータ１２６は、サーバ１２８等のホストを介してストレージプール１１０にアクセスすることができる。サーバ１２８は、クライアント１２６にファイルサービスを提供することができ、トランザクション処理サービス、電子メールサービス等の他のサービスを提供することができる。したがって、クライアントデバイス１２６は、ホスト１２８が消費するストレージを直接使用することもあるし、直接使用しないこともある。
【００１２】
無線デバイス１２０やコンピュータ１２２、１２４等のデバイスは、ホストでもあり、ＬＵ１１２ａ、１１２ｂに論理的に直接接続することができる。ホスト１２０〜１２８は複数のＬＵ１１２ａ、１１２ｂに接続することができ、複数のホスト間でＬＵ１１２ａ、１１２ｂを共有することができる。図１に示すデバイスのそれぞれは、メモリ、マスストレージ、およびネットワーク接続を管理するのに十分な一定のデータ処理能力を含むことができる。
【００１３】
図２は、ストレージプール１１０等のストレージプールを実施するのに使用できる例示のストレージネットワーク２００の概略図である。ストレージネットワーク２００は、通信ネットワーク２１２によって接続された複数のストレージセル２１０ａ、２１０ｂ、２１０ｃを備える。ストレージセル２１０ａ、２１０ｂ、２１０ｃは、１つまたは２つ以上の通信接続されたストレージデバイスとして実施することができる。例示のストレージデバイスには、米国カリフォルニア州パロアルトのHewlett-Packard社から市販されているストレージデバイスであるＳＴＯＲＡＧＥＷＯＲＫＳ系列が含まれる。通信ネットワーク２１２は、例えばファイバチャネル（ＦＣ）スイッチングファブリック等の私設専用ネットワークとして実施することができる。あるいは、通信ネットワーク２１２の一部は、例えばインターネット小型コンピュータ用周辺機器インターフェース（ｉＳＣＳＩ）プロトコル等の適切な通信プロトコルに準じた公衆通信ネットワークを使用して実施することもできる。
【００１４】
クライアントコンピュータ２１４ａ、２１４ｂ、２１４ｃは、サーバ２１６、２２０等のホストを通じてストレージセル２１０ａ、２１０ｂ、２１０ｃにアクセスすることができる。クライアント２１４ａ、２１４ｂ、２１４ｃは、ファイルサーバ２１６に直接接続することもできるし、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）等のネットワーク２１８を介して接続することもできる。任意のストレージネットワークに含めることができるストレージセル２１０ａ、２１０ｂ、２１０ｃの個数は、主として、通信ネットワーク２１２において実施された接続により制限される。単一のＦＣスイッチを備えるスイッチングファブリックは、２５６個またはそれより多くのポートを相互接続することができ、単一のストレージネットワークに数百個のストレージセル２１０ａ、２１０ｂ、２１０ｃを提供することが可能である。
【００１５】
数百、さらには数千個のホストコンピュータが、ストレージネットワーク２００に接続されて、ストレージセル２１０ａ、２１０ｂ、２１０ｃに記憶されたデータにアクセスすることができる。ストレージネットワーク２００は、少なくとも１つの書き込み制御サーバ２３０をさらに備える。この書き込み制御サーバ２３０は、ストレージネットワーク２００に接続されたホストコンピュータの書き込みオペレーションを規制する。書き込み制御サーバのオペレーションについては、以下に詳細に説明する。
【００１６】
ホスト２１６、２２０および書き込み制御サーバ２３０は、サーバコンピュータとして具体化することができる。図３は、ホストを実施するのに利用できる例示の計算デバイス３３０の概略図である。計算デバイス３３０は、１つまたは２つ以上のプロセッサまたは処理ユニット３３２、システムメモリ３３４、およびバス３３６を含む。バス３３６は、システムメモリ３３４を含むさまざまなシステムコンポーネントをプロセッサ３３２に接続する。バス３３６は、数タイプのバス構造のうちの任意のものの１つまたは２つ以上を表す。バス構造には、メモリバスまたはメモリコントローラ、周辺バス、高速グラフィックスポート、およびさまざまなバスアーキテクチャの任意のものを使用するプロセッサまたはローカルバスが含まれる。システムメモリ３３４は、読み出し専用メモリ（ＲＯＭ）３３８およびランダムアクセスメモリ（ＲＡＭ）３４０を含む。ＲＯＭ３３８には、基本入出力システム（ＢＩＯＳ）３４２が記憶される。このＢＩＯＳ３４２は、立ち上げ期間中等に計算デバイス３３０内の要素間の情報転送を援助する基本ルーチンを含む。
【００１７】
計算デバイス３３０は、ハードディスク（図示せず）からの読み出しおよび当該ディスクへの書き込みを行うハードディスクドライブ３４４をさらに含み、着脱可能磁気ディスク３４８からの読み出しおよび当該ディスクへの書き込みを行う磁気ディスクドライブ３４６、ならびに、ＣＤＲＯＭや他の光媒体等の着脱可能光ディスク３５２からの読み出しまたは当該ディスクへの書き込みを行う光ディスクドライブ３５０を含むことができる。ハードディスクドライブ３４４、磁気ディスクドライブ３４６、および光ディスクドライブ３５０は、ＳＣＳＩインターフェース３５４または他の或る適切なインターフェースによってバス３３６に接続される。これらのドライブおよびこれらのドライブに関連したコンピュータ可読媒体は、計算デバイス３３０用のコンピュータ可読命令、データ構造体、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。本明細書で説明する例示の環境は、ハードディスク、着脱可能磁気ディスク３４８、および着脱可能光ディスク３５２を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）等の他のタイプのコンピュータ可読媒体も、例示の動作環境で使用することができる。
【００１８】
ハードディスク３４４、磁気ディスク３４８、光ディスク３５２、ＲＯＭ３３８、またはＲＡＭ３４０には、複数のプログラムモジュールを記憶することができる。これらのプログラムモジュールには、オペレーティングシステム３５８、１つまたは２つ以上のアプリケーションプログラム３６０、他のプログラムモジュール３６２、およびプログラムデータ３６４が含まれる。ユーザは、キーボード３６６やポインティングデバイス３６８等の入力デバイスを通じて計算デバイス３３０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）には、マイク、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナ等が含まれ得る。これらの入力デバイスおよび他の入力デバイスは、バス３３６に接続されたインターフェース３７０を通じて処理ユニット３３２に接続される。モニタ３７２または他のタイプの表示デバイスも、ビデオアダプタ３７４等のインターフェースを介してバス３３６に接続される。
【００１９】
計算デバイス３３０は、リモートコンピュータ３７６等の１つまたは２つ以上のリモートコンピュータへの論理接続を使用して、ネットワーク接続環境で動作することができる。リモートコンピュータ３７６は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常、計算デバイス３３０について上述した要素の多くまたはすべてを含む。ただし、図３には、メモリストレージデバイス３７８のみが図示されている。図３に示す論理接続には、ＬＡＮ３８０およびＷＡＮ３８２が含まれる。
【００２０】
計算デバイス３３０は、ＬＡＮネットワーク接続環境で使用される場合には、ネットワークインターフェースまたはアダプタ３８４を通じてローカルネットワーク３８０に接続される。計算デバイス３３０は、ＷＡＮネットワーク接続環境で使用される場合には、通常、インターネット等のワイドエリアネットワーク３８２を介した通信を確立するためのモデム３８６または他の手段を含む。モデム３８６は、内蔵であってもよいし、外付けであってもよく、シリアルポートインターフェース３５６を介してバス３３６に接続される。ネットワーク接続環境では、計算デバイス３３０について示したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに記憶することができる。図示したネットワーク接続は例示であって、コンピュータ間に通信リンクを確立する他の手段を使用できることが理解されよう。
【００２１】
ホスト２１６、２２０は、通信ネットワーク２１２への接続を可能にするホストアダプタのハードウェアおよびソフトウェアを含むことができる。通信ネットワーク２１２への接続は、帯域幅の必要量に応じて、光結合を通じたものとすることもできるし、より従来式の導電ケーブルを通じたものとすることもできる。ホストアダプタは、計算デバイス３３０のプラグインカードとして実施することができる。ホスト２１６、２２０は、任意の個数のホストアダプタを実施して、通信ネットワーク２１２への接続を、ホストアダプタのハードウェアおよびソフトウェアがサポートするのと同数分提供することができる。
【００２２】
一般に、計算デバイス３３０のデータプロセッサは、コンピュータのさまざまなコンピュータ可読ストレージ媒体に異なる時刻に記憶された命令によってプログラミングされる。プログラムおよびオペレーティングシステムは、例えば、フロッピィディスク、ＣＤ−ＲＯＭ、または電子的に分散される場合があり、コンピュータの２次メモリにインストールまたはロードされる。実行時に、プログラムは、コンピュータの１次電子メモリに少なくとも部分的にロードされる。
【００２３】
図４は、ストレージセル２１０等のストレージセル４００の例示の一実施態様の概略図である。図４を参照して、ストレージセル４００は、ディスクコントローラ４１０ａ、４１０ｂとも呼ばれる２つのネットワークストレージコントローラ（ＮＳＣ（Network Storage Controller））を含む。これらのＮＳＣ４１０ａ、４１０ｂは、データのオペレーション、ならびに、１つまたは２つ以上のディスクアレイ４４０、４４２へのデータの転送および当該ディスクアレイからのデータの転送を管理する。ＮＳＣ４１０ａ、４１０ｂは、マイクロプロセッサ４１６ａ、４１６ｂおよびメモリ４１８ａ、４１８ｂを有するプラグインカードとして実施することができる。各ＮＳＣ４１０ａ、４１０ｂは、ホストへのインターフェースを提供する、すなわちスイッチングファブリック等の通信ネットワークを通じた２重のホストアダプタポート４１２ａ、４１４ａ、４１２ｂ、４１４ｂを含む。ファイバチャネルの実施態様では、ホストアダプタポート４１２ａ、４１２ｂ、４１４ａ、４１４ｂは、ＦＣＮ＿Ｐｏｒｔとして実施することができる。各ホストアダプタポート４１２ａ、４１２ｂ、４１４ａ、４１４ｂは、スイッチングファブリックへのログインおよびスイッチングファブリックとのインターフェースを管理し、ログインプロセスにおいてファブリックに一意のポートＩＤを割り当てられる。図４に示すアーキテクチャは、十分に冗長なストレージセルを提供し、単一のＮＳＣのみが、ストレージセル２１０を実施するのに必要とされる。
【００２４】
各ＮＳＣ４１０ａ、４１０ｂは、ＮＳＣ４１０ａ、４１０ｂ間の通信接続４３８を可能にする通信ポート４２８ａ、４２８ｂをさらに含む。通信接続４３８は、ＦＣポイントツーポイント接続として実施することもできるし、他の任意の適切な通信プロトコルに準拠して実施することもできる。
【００２５】
例示の一実施態様では、ＮＳＣ４１０ａ、４１０ｂは、複数のファイバチャネルアービトレーテッドループ（ＦＣＡＬ（Fiber Channel Arbitrated Loop））ポート４２０ａ〜４２６ａ、４２０ｂ〜４２６ｂをさらに含む。これらのＦＣＡＬポートは、複数のストレージデバイス、例えば、ディスクドライブアレイ４４０、４４２とのＦＣＡＬ通信接続を実施する。図示した実施の形態は、ディスクドライブアレイ４４０、４４２とのＦＣＡＬ接続を実施するが、ディスクドライブアレイ４４０、４４２との通信接続は他の通信プロトコルを使用して実施できることも理解されよう。例えば、ＦＣＡＬ構成ではなく、ＦＣスイッチングファブリックも使用することができる。
【００２６】
［例示のオペレーション］
例示のストレージネットワークのさまざまなコンポーネントを説明してきたが、次に、ストレージネットワーク２００およびそのコンポーネントのオペレーションに注意を向けることにする。
【００２７】
動作時に、ストレージセル２１０ａ、２１０ｂ、２１０ｃのディスクドライブアレイ４４０、４４２によって提供されるストレージ容量は、ストレージプール１１０に加えることができる。アプリケーションがストレージ容量を必要とすると、ホストコンピュータ１２８の論理命令は、１つまたは２つ以上のストレージセル２１０ａ、２１０ｂ、２１０ｃにおいて利用可能なディスクドライブアレイ４４０、４４２で利用可能なストレージ容量からＬＵを確立することができる。ＬＵは論理ユニットであって、物理ユニットではないので、ＬＵを構成する物理的なストレージ空間は、複数のストレージセル２１０ａ、２１０ｂ、２１０ｃにわたって分散されている場合があるということが理解されよう。アプリケーション用のデータは、ストレージネットワークの１つまたは２つ以上のＬＵに記憶することができる。
【００２８】
ストレージネットワーク２００は、ストレージセル２１０ａ、２１０ｂ、２１０ｃに記憶されたデータに対してデータ冗長性を提供するリモートコピープロシージャを実施することができる。例として、図２を参照して、ストレージセル２１０ａに存在するＬＵは、ストレージセル２１０ｂに存在するリモートコピーを有することができ、ストレージセル２１０ｂは、ストレージセル２１０ａから任意の距離に配置することができる。ストレージセル２１０ａに存在するＬＵのさらに別のリモートコピーは、ストレージネットワーク２１０の他のストレージセルに保持することができる。同様に、ストレージセル２１０ｂに存在するＬＵは、ストレージセル２１０ａまたは２１０ｃにリモートコピーを有することができ、ストレージセル２１０ｃに存在するＬＵは、ストレージセル２１０ａまたは２１０ｂにリモートコピーを有することができる。リモートコピープロセスの期間中、ＬＵの情報は、時に「ネットワーククラウド（network cloud）」と呼ばれることがあるスイッチングファブリックを横断してその宛先ストレージセルに送信される。
【００２９】
ストレージネットワークのデータにアクセスする必要があるアプリケーションは、ホストコンピュータに読み出しクエリーを発行（launch）することができる。ホストコンピュータは、読み出しクエリーに応答して、要求されたデータが存在する１つまたは２つ以上のストレージセルのＮＳＣ（または複数のＮＳＣ）に問い合わせを行う。ＮＳＣ（または複数のＮＳＣ）は、要求されたデータが存在するストレージ媒体から当該要求されたデータを取り出し、そのデータをホストコンピュータに転送する。次に、ホストコンピュータは、要求側デバイスにそのデータを転送することができる。
【００３０】
［書き込みオペレーション］
アプリケーションは、ホストコンピュータ２１６、２２０に書き込み要求を発行することによって、ストレージネットワーク２００にデータを書き込むことができる。書き込み要求に応答して、ホストコンピュータ２１６、２２０は、要求されたデータが存在する１つまたは２つ以上のストレージセル２１０ａ、２１０ｂ、２１０ｃのＮＳＣ（または複数のＮＳＣ）４１０ａ、４１０ｂに書き込みコマンドを発行する。この書き込みコマンドは、ストレージネットワーク２００に書き込まれるデータを含む。ＮＳＣ（または複数のＮＳＣ）４１０ａ、４１０ｂは、書き込みコマンドに応答して、ストレージ媒体にデータを書き込む。ストレージネットワーク２００が、記憶されたデータの１つまたは２つ以上のリモートコピーを実施するように構成されている場合、書き込みオペレーションからのデータは、ストレージネットワークの第２のストレージセル２１０ａ、２１０ｂ、２１０ｃに同時に書き込まれる。このリモートコピーオペレーションは、ホストコンピュータ２１６、２２０またはＮＳＣ（または複数のＮＳＣ）４１０ａ、４１０ｂのいずれかによって実施することができる。
【００３１】
例示の一実施態様では、ストレージネットワーク２１０のデータ一貫性グループに対する書き込みオペレーションは、書き込み制御サーバ２３０によって規制される。図５は、ストレージネットワーク２００のデータ一貫性グループに対する書き込みオペレーションを実行する第１の例示の実施態様のオペレーション５００を示すフローチャートである。図５に示す例示の実施態様では、書き込み制御サーバ２３０は、ストレージネットワーク２００のデータ一貫性グループに対する書き込みオペレーションを制限して、どの時点においても単一のホストコンピュータ２１６、２２０しか書き込みオペレーションを実行できないようにする。
【００３２】
オペレーション５１０において、ホストコンピュータは書き込み要求を起動し、この書き込み要求は、例えば通信ネットワーク２１２を介して書き込み制御サーバ２３０に送信される。書き込み制御サーバ２３０は、書き込み要求を受信し、オペレーション５１４において、書き込み要求を書き込み許可キュー（ＷＰＱ（write permission queue））に配置する。ＷＰＱは、ストレージネットワーク２００に接続するホストコンピュータ２１６、２２０から受信した書き込み要求のリストを備える。
【００３３】
例示の一実施の形態では、書き込み制御サーバ２３０は、ＷＰＱ内の書き込み要求を、書き込み制御サーバ２３０において書き込み要求を受信した順序に配列する。代替的な実施の形態では、書き込み制御サーバ２３０は、書き込み要求がホストコンピュータ２１６、２２０によって生成された正確な時系列に従ってＷＰＱを配列するように試みる。これは、複数の例示の実施態様の１つを使用して達成することができる。
【００３４】
例示の一実施態様は、着信した書き込み要求を書き込み制御サーバにおいて遅延させて、書き込み要求を生成したホストコンピュータ２１６、２２０と書き込み制御サーバ２３０との間の伝送遅延を補償する逆ハンディキャッププロセスを使用する。書き込み制御サーバ２３０は、ストレージネットワーク２００に接続されたホストコンピュータ２１６、２２０に関連した伝送遅延を含むアレイを構築することができる。このアレイの伝送遅延値は、書き込み要求をＷＰＱに配置する際に伝送遅延を補償するのに使用することができる。
【００３５】
アレイは、書き込み制御サーバ２３０によって実行されるバックグラウンドプロセスで構築することができる。アレイを構築するために、書き込み制御サーバ２３０は、ストレージネットワーク２００に接続する１つまたは２つ以上のホストコンピュータ２１６、２２０をピングする。ホストコンピュータ２１６、２２０はこのピングに応答する。書き込み制御サーバ２３０と各ホストコンピュータ２１６、２２０との間の通信パスのラウンドトリップ時間（ＲＴＴ）が計測される。ＲＴＴは２で除算され、書き込み要求が各ホストコンピュータ２１６、２２０から書き込み制御サーバ２３０への送信中に受ける伝送遅延、すなわち待ち時間が近似される。この伝送遅延は、適切なデータ構造体、例えば、メモリに記憶されたアレイに記憶することができ、それらの各ホストコンピュータ２１６、２２０に論理的に関連付けることができる。
【００３６】
伝送遅延を補償するために、着信した書き込み要求は、伝送遅延のアレイにおける最長遅延から、その要求を発したホストコンピュータ２１６、２２０に関連した遅延を差し引いたものに等しい期間だけ、書き込み制御サーバにおいて遅延される。例として、ホストコンピュータ２１６が２０ナノ秒（ｎｓ）の伝送遅延を示し、この伝送遅延が、ストレージネットワーク２００に接続されたすべてのホストコンピュータの中で最長の伝送遅延であると仮定する。ホストコンピュータ２１６からの書き込み要求は、書き込み制御サーバ２３０においては遅延しない（その理由は、２０ｎｓ−２０ｎｓは０ｎｓの遅延になるからである）。これに対して、ホストコンピュータ２２０は、１４ｎｓの伝送遅延を示すと仮定する。ホストコンピュータ２２０からの書き込み要求は、６ｎｓ（２０ｎｓ−１４ｎｓ）だけ遅延されることになる。このようにして、逆ハンディキャッププロセスは、ＷＰＱに書き込み要求を配置する際に、ホストコンピュータ２１６、２２０と書き込み制御サーバ２３０との間の伝送遅延を補償するように試みる。
【００３７】
伝送遅延のアレイを構築するプロセスは、バックグラウンドプロセスとして定期的に実行することもできるし、ホストコンピュータ２１６、２２０からの書き込み要求に応答して実行することもできる。書き込み制御サーバ２３０は、ホストコンピュータ２１６、２２０を１回だけピングすることもできるし、複数回ピングして平均ＲＴＴを導出することもできる。
【００３８】
代替的な実施態様では、ホストコンピュータ２１６、２２０からの書き込み要求は、当該書き込み要求が発せられた時刻を示すタイムスタンプで印を付けられる。ホストコンピュータ２１６、２２０のクロックが、書き込み制御サーバ２３０のクロックと同期している場合には、書き込み要求を自身の各タイムスタンプに従ってＷＰＱに配置することができる。これに対して、ホストコンピュータ２１６、２２０のクロックが、書き込み制御サーバ２３０のクロックと同期していない場合には、上述したように、伝送遅延を使用して、書き込み要求をＷＰＱに配置することができる。
【００３９】
図５を再び参照して、オペレーション５１８において、書き込み制御サーバ２３０は、書き込みアクセストークンを生成する。この書き込みアクセストークンは、ＷＰＱの最上部において、ホストコンピュータ２１６、２２０に送信される。書き込みアクセストークンは、書き込み制御サーバ２３０からのメッセージとして具体化することができ、例えば、連続番号やホストコンピュータが書き込み要求を生成した際のタイムスタンプ等、ホストコンピュータ２１６、２２０からの書き込み要求を特定する情報を含むことができる。また、このトークンは、書き込み制御サーバ２３０によって書き込み許可が与えられた時刻を示すタイムスタンプも含むことができる。
【００４０】
書き込みアクセストークンは、ホストコンピュータ２１６、２２０によって受信され、オペレーション５２２において、ホストコンピュータ２１６、２２０は、その書き込みアクセストークンに関連した書き込みオペレーションを起動する。ホストコンピュータ２１６、２２０は、ＷＰＱに複数の未処理の書き込み要求を有する場合があることが理解されよう。返された連続番号またはタイムスタンプを書き込みアクセストークンと照合することによって、書き込みオペレーションを書き込み要求に関連付けることができる。書き込みオペレーションは、通常のストレージネットワークオペレーションに従って実行することができる。ストレージネットワークがデータの冗長コピーを生成するように構成されている場合には、冗長コピーオペレーションも実行される。
【００４１】
オペレーション５２６および５３０はオプションである。オペレーション５２６において、ホストコンピュータ２１６、２２０は、書き込み起動信号を生成し、この書き込み起動信号は、書き込み制御サーバ２３０に送信される。書き込み起動信号は、書き込みオペレーションを特定する情報を含み、当該書き込みオペレーションが開始した時刻を示すタイムスタンプを含むことができる。オペレーション５３０において、書き込み制御サーバ２３０は、書き込み起動信号を適切なストレージ位置、例えば書き込み制御サーバ２３０に通信接続されたメモリに記憶する。
【００４２】
オペレーション５３４において、あらゆる冗長コピーオペレーションを含めて、書き込みオペレーションが成功して完了した時、または、失敗に終わった時に、ホストコンピュータ２１６、２２０は書き込み完了信号を生成する。この書き込み完了信号は、書き込み制御サーバ２３０に送信される。書き込み完了信号が成功を示している場合には（オペレーション５３８）、書き込み制御サーバ２３０は、ＷＰＱの次の書き込み要求に関連した書き込みアクセストークンをホストコンピュータ２１６、２２０に送信する。これに対して、書き込み完了信号が失敗を示している場合には、ストレージネットワークのデータ一貫性グループに対するすべての書き込みオペレーションが終了される（オペレーション５４２）。続いて、書き込み制御サーバ２３０は、ストレージネットワークのデータ一貫性グループに対するフェールオーバプロシージャをトリガする書き込み失敗信号を送信することができる（オペレーション５４６）。
【００４３】
オペレーション５１０〜５３８によって、書き込み制御サーバ２３０は、どの時点においても１つのホストコンピュータ２１６、２２０しか書き込みアクセスを有しないように、ストレージネットワーク２００のデータ一貫性グループに対する書き込みオペレーションを規制することが可能になる。ホストコンピュータ、例えば２１６による書き込みオペレーションが成功して完了すると、書き込みアクセスは、別のホストコンピュータ、例えば２２０に許可される。これに対して、書き込みオペレーションが失敗である場合には、ストレージネットワークのデータ一貫性グループに対するすべての書き込みオペレーションが終了する。このようにして、データ一貫性グループのデータセットだけでなく、それらのローカルな複製またはリモートの複製に対しても、データ一貫性が常に維持される。
【００４４】
オプションの機能では、書き込み制御サーバ２３０は、書き込みオペレーションが時間しきい値を超えている場合に書き込みオペレーションを終了するタイムアウトプロシージャを実施することができる。例として、書き込み制御サーバ２３０は、書き込み起動信号がオペレーション５３０で受信された時にタイマを起動することができる。書き込み完了信号が所定の期間内に受信されない場合に、書き込み制御サーバは、ストレージネットワークのデータ一貫性グループに対するフェールオーバプロシージャをトリガする信号を生成することができる。
【００４５】
ホストコンピュータ２１６、２２０が書き込みオペレーションを実行している間に、着信した書き込み要求を書き込み制御サーバ２３０において受信してＷＰＱに配置できることが理解されよう。その点で、オペレーション５１０および５１４は、図５に示す残りのオペレーションとは独立して繰り返し実行することができる。
【００４６】
図６は、ストレージネットワーク２００の書き込みオペレーションを実行する第２の例示の実施態様のオペレーションを示すフローチャートである。図６に示す例示の実施態様では、書き込み制御サーバ２３０は、ストレージネットワーク２００のデータ一貫性グループに対する書き込みオペレーションを認可し、どの時点においても書き込みオペレーションの実行を複数のホストコンピュータ２１６、２２０に許可し、かつ、データ一貫性グループの書き込みオペレーションを追跡する応答ログを保持する。書き込み失敗の場合に、書き込み制御サーバ２３０は、応答ログを調べて、失敗に終わった書き込みが認可された時刻を決定し、そして、応答ログで特定されたホストコンピュータに書き込み失敗信号を送信する。ホストコンピュータは、書き込み失敗信号に応答して、書き込み失敗後に発生した書き込みを取り消すことができ、したがって、ローカルな複製されたデータ一貫性グループのデータセットの一貫性を確保することができる。
【００４７】
図６を参照して、オペレーション６１０において、ホストコンピュータは、書き込み要求を起動し、この書き込み要求は、例えば通信ネットワーク２１２を介して、書き込み制御サーバ２３０に送信される。書き込み制御サーバ２３０は、オペレーション６３２において書き込み要求を受信し、オペレーション６３４において、書き込み要求をＷＰＱに配置する。書き込み制御サーバ２３０は、図５に関連して説明したようなＷＰＱに受信した書き込み要求を配置する同じプロシージャの１つを実施することができる。
【００４８】
オペレーション６４０において、書き込み制御サーバ２３０は、書き込みアクセストークンを生成し、この書き込みアクセストークンは、ＷＰＱの最上部において、ホストコンピュータ２１６、２２０に送信される。書き込みアクセストークンは、書き込み制御サーバ２３０からのメッセージとして具体化することができ、例えば、連続番号やホストコンピュータが書き込み要求を生成した際のタイムスタンプ等、ホストコンピュータ２１６、２２０からの書き込み要求を特定する情報を含むことができる。また、このトークンは、書き込み制御サーバ２３０によって書き込み許可が与えられた時刻を示すタイムスタンプも含むことができる。書き込みアクセストークンは、要求側のホストコンピュータ２１６、２２０に送信され、書き込み制御サーバ２３０が保持する応答ログに入力される。応答ログのエントリは、書き込み許可が与えられたホストコンピュータ２１６、２２０に関連した識別子と、書き込み許可が与えられた時刻を特定するタイムスタンプとを備える。応答ログは、例えば書き込み制御サーバ２３０のＲＡＭやディスクメモリ等、書き込み制御サーバに通信接続されたメモリ位置に、適切なデータ構造体、例えばアレイまたはリンクされたリストに保持することができる。
【００４９】
書き込みアクセストークンは、ホストコンピュータ２１６、２２０によって受信され、オペレーション６１４において、ホストコンピュータ２１６、２２０は、その書き込みアクセストークンに関連した書き込みオペレーションを起動する。書き込みオペレーションは、図５に関連して説明したようなリモートコピーオペレーションを含むことができる。ホストコンピュータ２１６、２２０は、ＷＰＱに複数の未処理の書き込み要求を有する場合があることが理解されよう。返された連続番号またはタイムスタンプを書き込みアクセストークンと照合することによって、書き込みオペレーションを書き込み要求に関連付けることができる。書き込みオペレーションは、通常のストレージネットワークオペレーションに従って実行することができる。ストレージネットワークがデータの冗長コピーを生成するように構成されている場合には、冗長コピーオペレーションも実行される。
【００５０】
例示の一実施の形態では、各ホストコンピュータは、書き込みオペレーションを取り消すのに必要な情報を含む取り消しログを保持する。ストレージネットワーク２００の取り消しログは、書き込みアクセストークンと共に送信されたタイムスタンプ用のエントリと、書き込みオペレーションが開始する時刻用のエントリと、書き込みオペレーションが終了する時刻用のエントリと、書き込みオペレーションのコンテンツが記憶される位置を特定するアドレス用のエントリと、書き込みオペレーションのコンテンツ用のエントリと、書き込みオペレーションのステータス用のエントリとを含むことができる。取り消しログは、データ一貫性グループにおける書き込み制御サーバ２３０とホストコンピュータ２１６、２２０との間の最長伝送遅延に、データ一貫性グループにおいて実施された最長書き込みタイムアウトを加えたものに対応する期間に発生した書き込みをホストが取り消すことができるほど十分大きなものであるべきである。オペレーション６１８において、ホストコンピュータ２１６、２２０は、書き込みオペレーションをその取り消しログに入力する。
【００５１】
オペレーション６２２において、ホストコンピュータ２１６、２２０は、書き込みオペレーションステータス信号を生成し、この書き込みオペレーションステータス信号は、書き込み制御サーバ２３０に送信される。書き込み制御ステータス信号は、書き込みオペレーションを特定する１つまたは２つ以上のエントリと、書き込みオペレーションが成功して完了したのか、それとも失敗したのかを示すエントリとを含む。失敗の場合、書き込みオペレーションステータス信号は、書き込み失敗警報として機能する。
【００５２】
ステップ６２４において、書き込みオペレーションが成功して完了したとホストコンピュータ２１６、２２０が判断すると、ホストコンピュータは、通常オペレーションを続行する。これに対して、書き込みオペレーションが失敗すると、ホストコンピュータ２１６、２２０は、オペレーション６２６において、すべての書き込みオペレーションを停止し、取り消しログを調べて、当該失敗した書き込みオペレーションについて許可が与えられた時刻よりも後に発生したあらゆる書き込みオペレーションを取り消す（オペレーション６２８）。
【００５３】
オペレーション６２２において生成された書き込みオペレーションステータス信号は、書き込み制御サーバ２３０において受信され、書き込み制御サーバ２３０は、その書き込みオペレーションステータス信号を解析して、当該信号が成功であるのか、それとも失敗であるのかを判断する（オペレーション６４４）。書き込みオペレーションが成功して完了した場合には、書き込み制御サーバ２３０は通常オペレーションを続行する。これに対して、書き込みオペレーションが失敗すると、書き込み制御サーバは、書き込みオペレーションに許可を与えることを終了し（オペレーション６４８）、応答ログのホストコンピュータ２１６、２２０に書き込み失敗信号を送信する（オペレーション６５２）。書き込み失敗信号は、書き込み制御サーバが当該失敗した書き込みオペレーションについて許可を与えた時刻を特定するタイムスタンプを含む。
【００５４】
ホストコンピュータ２１６、２２０は、書き込み失敗信号を受信すると、すべての書き込みオペレーションを停止し、自身の取り消しログを調べて、当該失敗した書き込みオペレーションについて許可が与えられた時刻よりも後に発生したあらゆる書き込みオペレーションを取り消す、すなわち、ホストコンピュータは、オペレーション６２６および６２８を実行する。書き込みが失敗したホストコンピュータは、それ自身の失敗情報に基づいて、オペレーション６２６および６２８をすでに実行している場合があることが理解されよう。
【００５５】
図６に示すオペレーションによって、データ一貫性グループにおける複数のホストコンピュータ２１６、２２０は、同時に書き込みオペレーションを実行することが可能になり、これによって、図５に示すオペレーションよりも良い性能が提供される。書き込みオペレーションが失敗した場合、ローカルの複製データ一貫性グループが一貫性のあるデータ状態に戻される。
【００５６】
別の例示の実施態様では、ストレージネットワーク内への均一時刻放送装置（ＵＴＢ（Uniform Time Broadcaster））コンポーネントの導入に適応するために、図５および図６に示すオペレーションをわずかに変更することができる。ＵＴＢコンポーネントは、ストレージネットワーク２００のすべてのコンポーネントが使用できるタイミング信号をブロードキャストする。ＵＴＢコンポーネントは、例えば、インターネット小型コンピュータ用周辺機器インターフェース（ｉＳＣＳＩ）のブロードキャスト送信モードを使用することによって、書き込み制御サーバ２３０内に実施することもできるし、別個のコンポーネントとして実施することもできる。タイミング信号は、通信ネットワーク２１２を介してブロードキャストすることもできるし、別個の通信ネットワークを介してブロードキャストすることもできる。また、ＵＴＢは、ＧＰＳ衛星時刻の受信機として実施することもできる。
【００５７】
ＵＴＢの導入によって、書き込み制御サーバ２３０は、ＷＰＱにおけるホストコンピュータ２１６、２２０からの書き込み要求をソートする、より決定論的なプロセスを実施することが可能になる。ストレージネットワークが均一なタイミングを使用するので、書き込み要求には、発信元ホストから統一したタイムスタンプを供給することができ、書き込み要求が生成された時刻を示す統一したタイムスタンプに従って、当該書き込み要求をＷＰＱに配置することができる。したがって、逆ハンディキャッププロシージャは必要なくなる。これに対して、書き込み要求が発信元ホストからの統一したタイムスタンプを含まない場合には、書き込み制御サーバ２３０は、オプションとして逆ハンディキャッププロシージャを実施して、書き込み要求を生成したホストコンピュータと書き込み制御サーバとの間の伝送遅延を補償することができる。残りのオペレーションは、図５および図６で説明したように実施することができる。
【００５８】
別の例示の実施態様では、ＵＴＢは、ホストコンピュータ２１６、２２０と協働して、書き込み制御サーバ２３０がデータ一貫性グループに対する書き込みオペレーションの認可または追跡を行う必要をなくす。
【００５９】
図７は、ストレージネットワーク２００の書き込みオペレーションを実行する第３の例示の実施態様のオペレーションを示すフローチャートである。図７に示すオペレーションは、ストレージネットワーク２００のホストコンピュータに関連したプロセッサで実施することができる。
【００６０】
オペレーション７１０において、ホストコンピュータ２１６、２２０は、ＵＴＢからタイミングインジケータを含む信号を受信する。例示の一実施態様では、ＵＴＢは、ストレージネットワーク２００のホストコンピュータにタイミング信号を絶えずブロードキャストし、したがって、ホストコンピュータ２１６、２２０は、ＵＴＢのクロック信号を表すクロック信号を絶えず受信する。代替的な実施の形態では、ＵＴＢは、タイミング信号を定期的に送信することができ、ホストコンピュータ２１６、２２０は、自身のクロックをＵＴＢからのクロック信号と同期させるか、または、ＵＴＢタイミングインジケータとローカルタイマとの間の差分を表す信号を保持することができる。このように、ホストコンピュータは、ＵＴＢのタイミング信号を特定するタイミング情報を保持する。このタイミング情報は、ＵＴＢからのタイミングインジケータ、同期したローカルタイマ、またはＵＴＢタイミングインジケータとローカルタイマとの間の差分を表す信号とすることができる。
【００６１】
オプションとして、ホストコンピュータ２１６、２２０は、ＵＴＢとホストコンピュータとの間の伝送遅延に関する情報を保持することができ、この情報をタイミング情報に関連付けて記録することができる。例えば、ホストコンピュータは、ＵＴＢを定期的にピングすることができ、ＵＴＢからの応答のＲＴＴを決定することができる。ＲＴＴを２で除算して、伝送遅延を見積もることができる。
【００６２】
オペレーション７１４において、ホストコンピュータは、例えばクライアントからの書き込み要求に応答して、書き込みオペレーションを起動する。オペレーション７１８において、書き込みオペレーションは取り消しログに入力される。例示の実施の形態では、各ホストコンピュータは、書き込みオペレーションを取り消すのに必要な情報を含む取り消しログを保持する。取り消しログは、ほぼ図６に関連して説明したように実施することができる。ホストコンピュータ２１６、２２０は、書き込みオペレーションが起動された時刻のＵＴＢのタイミング信号を特定するタイミング情報を取り消しログに記録する。これは、ＵＴＢタイミングインジケータと書き込みオペレーションとの間の関連を提供する。タイミング情報は伝送遅延を含むことができる。
【００６３】
書き込みオペレーションが成功して完了すると（オペレーション７２２）、ホストコンピュータ２１６、２２０は通常オペレーションを続行し、したがって、制御は再びオペレーション７１０に移動することができる。これに対して、書き込みオペレーションが失敗すると、制御はオペレーション７２６に移動し、ホストコンピュータ２１６、２２０は、書き込み失敗信号をストレージネットワーク２００の他のホストコンピュータ２１６、２２０に送信する。書き込み失敗信号は、当該失敗した書き込みオペレーションに関連したＵＴＢタイミングインジケータを特定するタイミング情報を含む。
【００６４】
例示の一実施態様では、ホストコンピュータ２１６、２２０は、例えばｉＳＣＳＩのブロードキャスト送信モードを使用して、ストレージネットワークの他のホストコンピュータ２１６、２２０に直接信号をブロードキャストする。代替的な実施態様では、ホストコンピュータは、書き込み失敗信号を書き込み制御サーバ２３０に送信し、書き込み制御サーバ２３０が、書き込み失敗信号をストレージネットワーク２００の他のホストコンピュータ２１６、２２０に送信する。
【００６５】
書き込み失敗信号に応答して、オペレーション７３０において、ホストコンピュータ２１６、２２０は、すべての書き込みオペレーションを停止し、オペレーション７３４において、ホストコンピュータ２１６、２２０は、自身の各取り消しログを使用して、失敗した書き込みオペレーション後に起動されたあらゆる書き込みオペレーションを取り消す。書き込み失敗信号を発信したホストコンピュータ２１６、２２０は、このローカルな書き込み失敗信号に応答してオペレーション７３０および７３４を実行できることが理解されよう。
【００６６】
図７に示すオペレーションによって、データ一貫性グループにおける複数のホストコンピュータ２１６、２２０が、同時に、かつ、書き込みアクセスの中央制御なしに、書き込みオペレーションを実行することが可能になる。書き込みオペレーションが失敗した場合、データ一貫性グループは一貫性のあるデータ状態に戻される。
【００６７】
ここに開示した明細書を考慮することにより、当業者には、本明細書で明示的に述べた特定の実施の形態に加えて、本発明の他の態様および実施の形態が明らかであろう。本明細書および図示した実施の形態は、単なる例としてみなされるものであり、本発明の真の範囲および精神は添付した特許請求の範囲によって示されることが意図されている。
【図面の簡単な説明】
【００６８】
【図１】ストレージネットワークを利用する、ネットワーク接続された計算システムの例示の一実施態様の概略図である。
【図２】ストレージネットワークの例示の一実施態様の概略図である。
【図３】ホストを実施するのに利用できる計算デバイスの例示の一実施態様の概略図である。
【図４】ストレージセルの例示の一実施態様の概略図である。
【図５】ストレージネットワークの書き込みオペレーションを実行する第１の例示の実施態様のオペレーションを示すフローチャートである。
【図６】ストレージネットワークの書き込みオペレーションを実行する第２の例示の実施態様のオペレーションを示すフローチャートである。
【図７】ストレージネットワークの書き込みオペレーションを実行する第３の例示の実施態様のオペレーションを示すフローチャートである。
【図１】
2005216299.tif 000003
【図２】
2005216299.tif 000004
【図３】
2005216299.tif 000005
【図４】
2005216299.tif 000006
【図５】
2005216299.tif 000007
【図６】
2005216299.tif 000008
【図７】
2005216299.tif 000009