(57)【要約】      （修正有）【課題】信頼できるピア・ツー・ピア通信のためのシステム及び方法を提供する。【解決手段】該システム及び方法は、ストレージシステムクラスタを構成するストレージシステム上で実行されるアプリケーション間でピア・ツー・ピア通信チャネルをオープンし、クローズし、及び維持するための統一されたリソースとして働くクラスタ接続マネージャ(620、625)を含む。該クラスタ接続マネージャ(620、625)はクラスタ接続マネージャクライアント(605、610、615)と通信して通信チャネルの維持及び管理を行う。クラスタ接続マネージャクライアント(605、610、615)はまた、複数のクラスタ相互接続ドラバ(630、635)と相互接続することが可能であり、これによりクラスタ相互接続ドラバ(630、635)がエラー状態に陥った場合にフェイルオーバー動作が可能となる。【選択図】図６
2005071333.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムクラスタで使用するストレージシステムであって、該ストレージシステムが、
クラスタパートナーとの１つ又は２つ以上の通信セッションを生成し、破棄し、及び維持するよう構成されたクラスタ接続マネージャを含むストレージオペレーティングシステムであって、該クラスタ接続マネージャが、一組のクラスタ接続マネージャクライアントと動作可能な状態で相互接続される、ストレージオペレーティングシステム
を含む、ストレージシステムクラスタで使用するストレージシステム。
【請求項２】
前記一組の通信クライアントのうちの１つがフェイルオーバーモニタを含む、請求項１に記載のストレージシステム。
【請求項３】
前記一組のクラスタ接続マネージャクライアントのうちの１つが不揮発性ランダムアクセスメモリのシャドウイングプロセスを含む、請求項１に記載のストレージシステム。
【請求項４】
前記クラスタ接続マネージャが更に、前記接続マネージャクライアントからの通信に応じて接続管理動作を実行するよう構成される、請求項１に記載のストレージシステム。
【請求項５】
前記通信がアプリケーションプログラムインタフェイスのファンクションコールを含む、請求項４に記載のストレージシステム。
【請求項６】
前記クラスタ接続マネージャが更に、複数のクラスタ相互接続デバイスにわたる１つ又は２つ以上の通信セッションを負荷平衡させるよう構成される、請求項１に記載のストレージシステム。
【請求項７】
前記クラスタ接続マネージャが更に、１つ又は２つ以上の通信セッションについて、故障したクラスタ相互接続デバイスから動作中のクラスタ相互接続デバイスへのフェイルオーバー手順を実行するよう構成される、請求項１に記載のストレージシステム。
【請求項８】
前記クラスタ接続マネージャが、複数のクラスタ相互接続デバイスと動作可能な状態で相互接続される、請求項１に記載のストレージシステム。
【請求項９】
前記ストレージオペレーティングシステムが、複数のクラスタ接続マネージャを含む、請求項１に記載のストレージシステム。
【請求項１０】
ストレージシステム上で実行されるストレージオペレーティングシステムであって、
ストレージシステム上で実行される一組のクラスタ接続マネージャクライアントに関連する一組のピア・ツー・ピア接続を管理するよう構成されたクラスタ接続マネージャを含む、ストレージオペレーティングシステム。
【請求項１１】
前記一組のクラスタ接続マネージャクライアントが、フェイルオーバーモニタを含む、請求項１０に記載のストレージオペレーティングシステム。
【請求項１２】
前記クラスタ接続マネージャが更に、複数のクラスタ相互接続デバイスにわたる一組のピア・ツー・ピア接続の負荷平衡を実行するよう構成される、請求項１０に記載のストレージオペレーティングシステム。
【請求項１３】
前記クラスタ接続マネージャが更に、故障したクラスタ相互接続デバイスから動作中のクラスタ相互接続デバイスへと一組のピア・ツー・ピア接続のフェイルオーバーを実行するよう構成される、請求項１０に記載のストレージオペレーティングシステム。
【請求項１４】
ピア・ツー・ピア通信セッションを開始するための方法であって、
初期接続を生成し、
一組のピア接続情報を交換し、
一組のクライアント情報をクラスタパートナーに送り、
一組の適当な通信ポートを生成し、
レディ状態のクラスタパートナーに警告し、
クラスタパートナーがレディ状態にあることを一組のクライアントに警告する、
という各ステップを含む、ピア・ツー・ピア通信セッションを開始するための方法。
【請求項１５】
前記一組のクライアントがフェイルオーバーモニタプロセスを含む、請求項１４に記載の方法。
【請求項１６】
前記一組のピア接続情報がバージョン番号を含む、請求項１４に記載の方法。
【請求項１７】
一組のクライアント情報をクラスタパートナーに送る前記ステップが、
一組のクライアントから一組のクライアント情報を収集し、
該収集した一組のクライアント情報を前記クラスタへ送る、
という各ステップを含む、請求項１４に記載の方法。
【請求項１８】
前記クライアント情報が、必要とされる複数の通信ポートを含む、請求項１７に記載の方法。
【請求項１９】
前記一組のクライアント情報が、特定のクライアントにより必要とされるメモリの量を含む、請求項１７に記載の方法。
【請求項２０】
初期接続を生成する前記ステップが、リモートダイレクトメモリアクセスプリミティブを使用して前記初期接続を生成するステップを含む、請求項１４に記載の方法。
【請求項２１】
初期接続を生成する前記ステップが、一連のリモートダイレクトメモリアクセス操作を実行して前記初期接続を生成するステップを含む、請求項１４に記載の方法。
【請求項２２】
ピア・ツー・ピア通信セッションを終了させる方法であって、
通信セッションの終了が差し迫っている一組のクライアントに警告し、
前記通信セッションに関連する一組の通信ポートを前記クライアントによりクローズし、
ピア・ツー・ピア通信セッション手順の初期化を実行する、
という各ステップを含む、ピア・ツー・ピア通信セッションを終了させる方法。
【請求項２３】
前記一組の通信ポートが、一組の仮想インタフェイス接続を含む、請求項２２に記載の方法。
【請求項２４】
前記一組のクライアントがフェイルオーバーモニタを含む、請求項２２に記載の方法。
【請求項２５】
ストレージシステム上で実行されるストレージオペレーティングシステムであって、
前記ストレージシステム上で実行される一組のクラスタ接続マネージャクライアントに関連する一組のピア・ツー・ピア接続を管理する手段を有するクラスタ接続マネージャを含む、ストレージシステム上で実行されるストレージオペレーティングシステム。
【請求項２６】
前記一組のクラスタ接続マネージャクライアントが更にフェイルオーバーモニタを含む、請求項２５に記載のストレージオペレーティングシステム。
【請求項２７】
前記一組のクラスタ接続マネージャクライアントが更に、不揮発性ランダムアクセスメモリのシャドウイングプロセスを含む、請求項２５に記載のストレージオペレーティングシステム。
【請求項２８】
クラスタ化された環境における複数のストレージシステム間の信頼できるピア通信を管理するよう構成されたシステムであって、
各ストレージシステムパートナー上で実行される１つ又は２つ以上のピアプロセスと、
各ストレージシステムパートナー上で実行されるクラスタ接続マネージャであって、各ストレージシステム上で実行される前記１つ又は２つ以上のピアプロセス間で一組のピア・ツー・ピア接続を生成する、クラスタ接続マネージャと
を含む、クラスタ化された環境における複数のストレージシステム間の信頼できるピア通信を管理するよう構成されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタ化ストレージシステムに関し、特にクラスタ化ストレージシステムにおける複数のクラスタパートナー間での信頼できる通信の管理に関するものである。
【背景技術】
【０００２】
ストレージシステムは、メモリ、テープ、又はディスクといった書き込み可能な持続性記憶装置上への情報の編成に関連するストレージサービスを提供するコンピュータである。ストレージシステムは、一般にＳＡＮ（Storage Area Network）又はＮＡＳ（Network Attached Storage）環境内に配置される。ＮＡＳ環境で使用される場合には、ストレージシステムは、例えば複数のディスク上にディレクトリ及びファイルの階層構造として情報を論理的に編成するようファイルシステムを実施するオペレーティングシステムを含むファイルサーバとして実施することが可能である。各「ディスク上」のファイルは、ファイルの実際のデータ等の情報を格納するよう構成された一組のデータ構造（例えば複数のディスクブロック）として実施することが可能である。一方、ディレクトリは、他のファイル及びディレクトリに関する情報が格納された特殊な形式のファイルとして実施することが可能である。
【０００３】
ファイルサーバ（又はファイラ）は更に、情報のクライアント／サーバモデルに従って動作するよう構成することが可能であり、これにより該ファイラに格納されているファイル等の共有リソースに多数のクライアントシステム（クライアント）がアクセスすることが可能となる。ファイルの共有は、ＮＡＳシステムの特徴であり、これが可能となるのは、複数のファイル及びファイルシステムに対するセマンティック（semantic）レベルのアクセスのためである。ＮＡＳシステムでの情報のストレージは典型的には、クライアントがファイルサーバ上の情報（ファイル）にリモートアクセスすることを可能にする、地理的に分散された複数の相互接続通信リンク（Ethernet等）の集合体を含むコンピュータネットワーク上に配置される。クライアントは、典型的には、ＴＣＰ／ＩＰ等の所定のプロトコルに従ってデータの離散的なフレーム又はパケットを交換することによりファイラと通信する。
【０００４】
クライアント／サーバモデルでは、クライアントは、ポイントツーポイントリンク、共有ローカルエリアネットワーク、ワイドエリアネットワーク、又はパブリックネットワーク（インターネット等）上で実施されるＶＰＮ（Virtual Private Network）といったコンピュータネットワークを介してファイラに「接続する」コンピュータ上で実行されるアプリケーションを含むことが可能である。ＮＡＳシステムは、一般に、ファイルベースのアクセスプロトコルを利用し、このため、各クライアントは、ファイルシステムに対するファイルシステムプロトコルメッセージを（パケットという形で）ネットワークを介して発行することにより、ファイラのサービスを要求することができる。従来のＣＩＦＳ（Common Internet File System）、ＮＦＳ（Network File System）、及びＤＡＦＳ（Direct Access File System）プロトコルといった複数のファイルシステムプロトコルをサポートすることにより、ネットワーク上のクライアントにとってのファイラの有用性が高まる。
【０００５】
ＳＡＮは、ストレージシステムとそのストレージデバイスとの間の直接的な接続の確立を可能にする高速ネットワークである。このため、ＳＡＮは、ストレージバスを拡張したものと見なすことができ、よって、ストレージシステムのオペレーティングシステムは、「拡張されたバス」を介してブロックベースのアクセスプロトコルを使用して格納情報へアクセスすることを可能にする。この点で、該拡張されたバスは、典型的には、ブロックアクセスプロトコル（例えばＦＣ（ＦＣＰ）又はＴＣＰ／ＩＰ／Ethernet（ｉＳＣＳＩ）を介したＳＣＳＩプロトコルによるカプセル化）を使用して動作するよう構成されたファイバチャネル（ＦＣ）又はEthernetメディアとして実施される。ＳＡＮの構成又は配置は、ストレージシステムからのストレージの分離、及びアプリケーションサーバレベルでのある程度のストレージ共有を可能にする。しかし、ＳＡＮが単一のサーバ専用となる環境が存在する。
【０００６】
ストレージシステムにより提供されるサービス及びデータが考え得る最大限のアクセスのために利用可能となることが有利である。したがって、コンピュータシステムによっては、クラスタに編成された複数のストレージシステムを提供し、これは、第１のストレージシステムが故障した場合に、それに代わって第２のストレージシステムが利用可能となって、第１のストレージシステムにより提供されるはずであったサービス及びデータを提供する、という特徴を有するものである。特に、第１のストレージシステムが故障した場合には、クラスタ内の第２のストレージシステムが、該第１のストレージシステムにより通常処理されるデータアクセス要求を処理し操作するタスクを負うことになる。かかるクラスタ構成の一例が、Samuel M. Cramer等の「NEGOTIATING TAKEOVER IN HIGH AVAILABILITY CLUSTER」と題する米国特許出願第09/625,234号に記載されている。
【０００７】
典型的なクラスタ環境では、各ストレージシステム（クラスタパートナー）上で実行される幾つかのプロセスが存在する可能性があり、かかるプロセスは、クラスタ内の他のストレージシステム上で実行される対応する「ピア」プロセスと通信することを所望するものである。１つの例示的なプロセスが、クラスタフェイルオーバー（ＣＦＯ）監視プロセスであり、該プロセスは、クラスタパートナーが故障したか否かを判定し、及び故障したストレージシステムによりサービスされていたストレージ（例えばディスク）のテイクオーバー動作を開始すべきであるか否かを判定する。このため、ＣＦＯ監視プロセスは、ルーチン「ハートビート」信号をその対応するＣＦＯ監視プロセスに送って、クラスタパートナーに、フェイルオーバーが必要になる深刻なエラーを伴わずに他のパートナーが動作していることを知らせる。
【０００８】
典型的には、これらのピアプロセスの各々は、それ自体のプロトコル実装を使用して、その対応するピアプロセスへのネットワークデータ接続をオープンし、クローズし、及び管理する。しかし、その結果として、プロトコル又は通信管理ルーチンの非効率的な重複が生じることになる。これに加えて、かかる重複は、複数のクラスタパートナーを結合する通信媒体（例えばクラスタ相互接続）を損失した場合に該複数のクラスタパートナー上のピアプロセス間の情報の調整の困難さを増大させるものとなり得る。特に、クラスタ相互接続が故障した場合には、様々なプロセスが、個々のクラスタパートナーのピアプロセスとのピアツーピア通信を提供するための能力を失うことになる。この通信の欠如は、複数のクラスタパートナーがそれらの間で状態及びその他の構成情報を調整するのを妨げることにより、クラスタに悪影響を与えるものとなる。例えば、パートナー上で実行中の不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）のシャドウイング（shadowing）プロセスに対する同期が途絶した際にデータ損失が生じる可能性がある。
【０００９】
上述したように、各ピアプロセスは、典型的にはそれ自体のピア接続であってクラスタパートナー上の対応するピアプロセスとのピア接続を生成し管理する。ピア接続を生成し管理するために必要となるプロセス間のハンドシェーキング及び能力交換（capability exchange）は、従来のプロトコル実装（ＶＩ（Virtual Interface：仮想インタフェイス）プロトコル等）に従って実行される。ＶＩプロトコルは、典型的には、クラスタの各ストレージシステム上で実行されるストレージオペレーティングシステムのＶＩ層により実施される。しかし、ピアプロセスは、ストレージシステムのブートシーケンス中にＶＩ層のロードが完了するまでクラスタパートナー上の対応するピアプロセスとの通信を開始しない場合があり、該ＶＩ層のロードはかなりの時間を要する可能性がある。ＣＦＯ監視プロセスといったピアプロセスを要求することにより、ストレージオペレーティングシステムのＶＩ層のロードが完了して実行されるまで待機するために、長時間が経過し、特にストレージシステムが小さな遷移エラー条件を被った際に、不必要なフェイルオーバー動作が生じる可能性がある。クラスタ性能は、ピアプロセスが、ブートシーケンス中に可能な限り即座に、クラスタパートナー上の対応するピアプロセスと通信状態になることを必要とする。
【００１０】
従来のクラスタ環境のもう１つの欠点は、クラスタパートナー上で実行中の複数のピアプロセス間の通信「負荷」を平衡化させる能力がないことである。従来のクラスタ環境では、全てのピアツーピア通信は、典型的には、単一のクラスタ相互接続を介して発生する。ピアプロセスによっては、所与のクラスタ相互接続を介して利用することができる法外な量の帯域幅を消費するものがあり、これにより他のピアプロセスにより利用することができる帯域幅が減じられることになる。例えば、ＮＶＲＡＭのシャドウイングプロセスは、重負荷の期間中に、大量のクラスタ相互接続帯域幅を消費する可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的の一部は、クラスタ環境のプロセス間で伝送される負荷を平衡化させる技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、クラスタ環境におけるストレージシステムの「パートナー」間の信頼できる統一されたピアツーピア通信のための技術を提供することにより、従来技術の欠点を克服する。各ストレージシステム上で実行されているストレージオペレーティングシステムを完全に活動状態にし又は機能させることを必要とすることなく、クラスタ相互接続を介して複数のストレージシステムパートナー上で実行されている複数のピアプロセス間のＶＩ（Virtual Interface）接続を高い信頼性で生成するように、クラスタ接続マネージャが設けられる。各ストレージシステムのピアプロセスは、「クラスタ接続クライアント」として機能し、クラスタ接続マネージャのサービスを要求して、ピアであるクラスタパートナーとのＶＩ接続を確立し維持する。よって、クラスタ接続マネージャは、ストレージオペレーティングシステムのサブシステムとして働いて、様々なクラスタ通信マネージャクライアント間でクラスタシステム内に存在する複数のピアツーピア接続を管理する。加えて、クラスタ接続マネージャは、正しい動作を確保すべく、クラスタ相互接続のステータスを監視する。エラー状態が発生した場合には、クラスタ接続マネージャは、クラスタ接続マネージャクライアントにエラー状態を警告し、該エラー状態の解決を試みる。一旦接続が確立されると、クラスタ接続マネージャは、様々なクラスタ接続マネージャクライアントと接触して、該クライアントに、適当なＶＩの生成へと進んで該生成されたＶＩに接続するよう指示する。次いで、クラスタ接続マネージャクライアントは、従来の技術を使用して必要なＶＩを生成する。
【００１３】
代替的な実施形態では、各ストレージシステムは、複数のクラスタ相互接続マネージャを含むことが可能であり、該複数のクラスタ相互接続マネージャの各々は、マルチパス、、フェイルオーバー、及び／又は負荷平衡状況で使用するための、クラスタ相互接続及びクラスタ相互接続アダプタに関連するものとなる。複数のマネージャ／相互接続／アダプタを使用することにより、クラスタパートナーのストレージシステム間のピアツーピア通信を維持するための、故障したクラスタ相互接続から動作可能なクラスタ相互接続へのフェイルオーバー動作が容易となる。更に、クラスタ接続マネージャは、複数のクラスタ相互接続間に複数のクライアント（及びそれらの負荷）を分散させて性能を最適化することが可能である。複数のクラスタ接続マネージャ間にクライアントを分散させることにより、複数のクラスタ相互接続及びアダプタを使用して負荷平衡技術及び故障許容技術を実施してシステム性能を改善させることが可能となる。
【００１４】
上述その他の本発明の利点は、図面に関連して以下の説明を参照することにより理解することができよう。図面における同様の符号は、同一の又は機能的に類似した構成要素を示している。
【発明を実施するための最良の形態】
【００１５】
クラスタ環境
図１は、本発明の原理を実施した例示的なネットワーク環境100の概要を示すブロック図である。ネットワーククラウド102は、ポイントツーポイントリンク、ワイドエリアネットワーク（ＷＡＮ）、パブリックネットワーク（インターネット）を介して実施される仮想プライベートネットワーク（ＶＰＮ）、又は共有ローカルエリアネットワーク（ＬＡＮ）、及び／又は他の任意の許容可能なネットワーキングアーキテクチャを含むことが可能である。しかし、例示的な実施形態では、ネットワーククラウド102は、例えばファイバチャネル（ＦＣ）交換ネットワークとして構成される。ＦＣは、様々なデータアクセスプロトコルのための伝送サービスを規定する一組の関連する規格である。ネットワーククラウド102に接続されるのは、クライアント104と、レッドストレージシステム200a及びブルーストレージシステム200b等の様々なストレージシステムに接続するスイッチ106,108等の中間ネットワークノードである。
【００１６】
クライアント104は、ＰＣ、ワークステーション、又はブロックアクセスプロトコルをサポートするＵＮＩＸ(R)及びMicrosoft Windows(R)オペレーティングシステムを含む様々なオペレーティングシステム上でアプリケーションを実行するために構成されたアプリケーションサーバ等の特定用途用コンピュータといった、汎用コンピュータとすることが可能である。レッドストレージシステム200a及びブルーストレージシステム200bは、ストレージシステムクラスタ130の２つのノードとして接続される。これらのストレージシステムは、以下で更に説明するように、相互接続されたストレージデバイスのデータ格納や該ストレージデバイスへのアクセスを制御するよう構成された例示的なストレージ機器である。ネットワーククラウド102に接続された各システムは、ネットワーク102を介して又はスイッチ106、108を介して通信を行うための適当な従来のネットワークインタフェイス装置（図示せず）を含む。
【００１７】
図示の実施形態では、レッドストレージシステムは、データアクセスループ116（すなわちレッドディスクシェルフのＡポート）によりレッドディスクシェルフ112に接続される。かかるデータアクセスループは、例えば、ＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）を含む、任意のアクセス可能なネットワーキングメディアとすることが可能である、ということに留意されたい。同様に、レッドストレージシステムは、対をなす他方であるデータアクセスループ118（すなわちブルーディスクシェルフ114のＢポート）を介してブルーディスクシェルフ114にアクセスする。同様に、ブルーストレージシステムは、データアクセスループ120（すなわちブルーディスクシェルフ114のＡポート）を介してブルーディスクシェルフ114にアクセスし、及び対をなす他方であるデータアクセスループ122（すなわちレッドディスクシェルフ112のＢポート）を介してレッドディスクシェルフ112にアクセスする。レッド及びブルーディスクシェルフは、例示を目的として、ストレージシステム200に直接接続されて図示されている、ということに留意されたい。すなわち、このディスクシェルフ及びストレージシステムは、あらゆる適当なＦＣ交換ネットワークトポロジーを介して相互接続することが可能なものである。通常のクラスタ動作時に、ディスクシェルフのＡループを介して該ディスクシェルフに接続されたストレージシステムは、該ディスクの「オーナー」であり、そのディスクシェルフに含まれるボリューム上の複数のブロックに向けられたデータ要求のサービスを主に責務とする。このため、レッドストレージシステムは、レッドディスクシェルフ112を所有し、そのディスクシェルフに含まれるデータに関するデータアクセス要求のサービスを主に責務とする。同様に、ブルーストレージシステムはブルーディスクシェルフ114に関して主に責務を負う。ストレージシステムクラスタとして動作する際に、各ストレージシステムは、ディスクシェルフのＢポートを介してクラスタ130内の他のディスクシェルフに関するデータ操作能力を横取りしてその責務を負うよう構成される。
【００１８】
レッド及びブルーストレージシステムはクラスタ相互接続110であり、これは、２つのストレージシステム間の直接の通信リンクを提供するものである。該クラスタ相互接続は、例えばEthernet接続を含む任意の適当な通信媒体とすることが可能である。しかし、例示的な実施形態では、クラスタ相互接続110はファイバチャネルデータパスから構成される。代替的な実施形態では、ストレージシステムは複数のクラスタ相互接続を介して接続することが可能である。この複数のクラスタ相互接続は、ストレージシステムクラスタ環境の通常動作中に１つ又は２つ以上のクラスタ相互接続が故障した場合にマルチパス及び／又はフェイルオーバー動作に資するものとなる。
ストレージ装置
図２は、クラスタネットワーク環境100において使用され、及びディスク等のストレージデバイス上の情報の編成に関連するストレージサービスを提供する構成された、例示的なストレージシステム200の概要を示すブロック図である。該ストレージシステム200は、プロセッサ205、メモリ215、複数のネットワークアダプタ225a,225b、及びストレージアダプタ220がシステムバス230により相互接続されてなる、ストレージ装置として実施されたものである。このため、「ストレージシステム」及び「ストレージ装置」なる用語は、交換可能に使用される。ストレージ装置200はまた、情報を、階層構造をなすディスク上のディレクトリ、ファイル、及び仮想ディスク（vdisk）として論理的に編成するストレージオペレーティングシステム300を含む。
【００１９】
例証となる実施形態では、メモリ215は、本発明に関連するプログラムコード及びデータ構造を格納するためにプロセッサ及びアダプタによりアクセスすることができる記憶位置を有している。また、該プロセッサ及びアダプタは、前記ソフトウェアコードを実行し及び前記データ構造を操作するよう構成された処理要素及び／又は論理回路を含む。ストレージオペレーティングシステム300は、その幾つかの部分が典型的にはメモリ内に常駐して処理要素により実行され、とりわけ、ストレージ装置により実施されるストレージサービスを支持するストレージ動作を呼び出すことによりストレージ装置を機能的に編成する。当業者には自明であるように、コンピュータによる読み出しが可能な様々な媒体を含む、他の処理及び記憶手段を使用して、本書で開示する本発明に関連するプログラム命令を格納し実行することが可能である。
【００２０】
各ネットワークアダプタ225a,225bは、ストレージ装置をスイッチ106,108に結合させるために必要となる機械的、電気的、及び信号処理回路を有するネットワークインタフェイスカード（ＮＩＣ）から構成することが可能である。各ＮＩＣは、１つ又は２つ以上のＩＰアドレス、並びに１つ又は２つ以上のＭＡＣ（Media Access Control）アドレスが割り当てられたインタフェイスを含むことが可能である。クライアント104は、ＴＣＰ／ＩＰ等の所定のプロトコルに従って、かかるアドレスに情報に関するパケット要求を送ることにより、ストレージ装置と通信する。
【００２１】
ストレージアダプタ220は、ストレージ装置上で実行されているストレージオペレーティングシステム300と協働して、クライアント104により要求された情報にアクセスする。該情報は、情報を格納するよう構成されたディスク又はその他の同様の媒体に格納することが可能である。ストレージアダプタは、従来の高性能のＦＣシリアルリンク又はループトポロジーといった入出力（Ｉ／Ｏ）相互接続構成を介してディスクに結合されたＩ／Ｏインタフェイス回路を含む。情報は、ストレージアダプタにより取り出され、必要であれば、システムバス230を介してネットワークアダプタ225a,225bへ送られる前に、プロセッサ205（又はアダプタ220自体）により処理される。この場合には、情報は、パケットへとフォーマットされてクライアントへ返される。
【００２２】
ストレージ装置200上への情報の格納は、例証となる実施形態では、ディスク空間の全体的な論理的構成を画定する、クラスタをなす複数の物理的なストレージディスクから構成される、１つ又は２つ以上のストレージボリュームとして実施される。１つのボリューム内のディスクは、典型的には、１つ又は２つ以上のグループをなすＲＡＩＤ（redundant Array of Independent (又はInexpensive) Disks）として編成される。ＲＡＩＤによる実施形態は、ＲＡＩＤグループ内の所与の数の物理ディスクにわたるデータ「ストライプ」の書き込み、及び該ストライピングされたデータに関する冗長情報の適当な格納を介して、データ格納の信頼性／完全性を強化する。該冗長情報は、ストレージデバイスが故障した際に損失したデータの回復を可能にする。
【００２３】
特に、各ボリュームは、複数のＲＡＩＤグループとして編成された複数の物理ディスクのアレイから構成される。各ＲＡＩＤグループの複数の物理ディスクは、例証となるＲＡＩＤ４レベルの構成によれば、ストライピングされたデータ及び該データのパリティを格納するよう構成されたディスクを含む。しかし、他のＲＡＩＤレベル構成（例えばＲＡＩＤ５）もまた考えられる。例証となる実施形態では、最小限の１つのパリティディスクと１つのデータディスクとが採用されている。しかし、典型的な実施態様は、１つのＲＡＩＤグループにつき３つのデータディスクと１つのパリティディスクとを含み、及び１ボリュームにつき少なくとも１つのＲＡＩＤグループを含む可能性がある。
【００２４】
ディスクへのアクセスを容易にするために、ストレージオペレーティングシステム300は、ディスク上に、情報を、階層構造をなすディレクトリ、ファイル、及びvdiskオブジェクト（以下、「ディレクトリ」、「ファイル」、及び「vdisk」と称す）として論理的に編成するライトエニイウェア（write-anywhere）ファイルシステムを実施する。vdiskは、ストレージエリアネットワーク（ＳＡＮ）クライアントから見た場合のエミュレートされたディスク又は論理ユニット番号（lun）へと変換された特殊なファイルタイプである。各「ディスク上」のファイルは、データ等の情報を格納するよう構成された一組のディスクブロックとして実施することが可能であり、これに対し、ディレクトリは、名称及び他のファイルやディレクトリへのリンクが内部に格納される特別にフォーマットされたファイルとして実施することが可能である。
【００２５】
システムバス230にはまた、１つ又は２つ以上のクラスタ相互接続アダプタ235が接続されている。各クラスタ相互接続アダプタ235は、様々なパートナー間通信及びアプリケーションのための、クラスタ相互接続110を介したストレージシステムのクラスタパートナーへの特定のネットワークインタフェイスを提供する。クラスタ相互接続は、例えばEthernet又はファイバチャネルリンクを含む様々な形態のネットワーク伝送媒体を利用することが可能である。ストレージシステムの動作中に１つ又は２つ以上のクラスタ相互接続が故障した場合における負荷平衡、マルチパス、及び故障許容構成のために、複数のクラスタ相互接続及びアダプタを利用することが可能である。
ストレージオペレーティングシステム
例証となる実施形態では、ストレージオペレーティングシステムは、Network Appliance, Inc. （Sunnyvale, California）から入手できるNetApp(R) Data ONTAP(TM) オペレーティングシステムであり、これはライトエニイウェアファイルレイアウト（ＷＡＦＬ(TM)）ファイルシステムを実施するものである。しかし、ライトインプレース（write in-place）ファイルシステムを含むあらゆる適当なストレージオペレーティングシステムを強化して、本書で開示する本発明の原理に従って使用することが可能であることも、特に考慮している。このため、用語「ＷＡＦＬ」を用いた場合には、該用語は、本発明の教示に別様に適応させることができるあらゆるストレージオペレーティングシステムを指しているものと広義に解釈されるべきである。
【００２６】
本書で用いるように、用語「ストレージオペレーティングシステム」は、一般に、データアクセスを管理し、及びストレージ装置の場合にはマイクロカーネルとして実施される（Data ONTAP ストレージオペレーティングシステムのような）データアクセスセマンティクス（semantics）を実施する、コンピュータ上で動作可能な、コンピュータにより実行可能なコードを指している。ストレージオペレーティングシステムはまた、ＵＮＩＸ(R)又はWindows NT(R)といった汎用オペレーティングシステム上で動作するアプリケーションプログラムとして、又は本書で説明するようなストレージ用途のために設定を行うことが可能な機能を有する汎用オペレーティングシステムとして、実施することができる。
【００２７】
更に、本書で開示する本発明の技術は、ストレージシステムとして実施され又はストレージシステムを含むスタンドアロンコンピュータ又はその一部を含む、あらゆるタイプの特定用途（例えばストレージサービス装置）又は汎用コンピュータに適用することが可能である、ということが当業者には理解されよう。更に、本発明の教示は、ネットワークに結合されたストレージ環境、ストレージエリアネットワーク、及びクライアント又はホストコンピュータに直接取り付けられたディスクアセンブリを含む、様々なストレージシステムアーキテクチャに適用することが可能である（但しそれらには限定されない）。したがって、用語「ストレージシステム」は、ストレージ機能を実行し及び他の機器又はシステムと協働するよう構成されたあらゆるサブシステムに加え、上記の構成を含むよう広義に解釈されるべきである。
【００２８】
図３は、本発明と共に有利に使用することが可能なストレージオペレーティングシステム300の概要を示すブロック図である。該ストレージオペレーティングシステムは、統合されたネットワークプロトコルスタック、又はより一般的には、クライアントがブロック及びファイルアクセスプロトコルを用いてストレージ装置上に格納されている情報にアクセスするのためのデータパスを提供するマルチプロトコルエンジンを形成するよう編成された、一連のソフトウェア層を含む。プロトコルスタックは、ネットワークプロトコル層（例えばＩＰ層312及びそれがサポートする伝送機構、ＴＣＰ層314、及びＵＤＰ層316）へインタフェイスするネットワークドライバ（例えばギガバイトEthernetドライバ）のメディアアクセス層310を含む。ファイルシステムプロトコル層は、マルチプロトコルファイルアクセスを提供し、そのために、ＤＡＦＳプロトコル318、ＮＦＳプロトコル320、ＣＩＦＳプロトコル322、及びＨＴＴＰプロトコル324のサポートを含む。ＶＩ層326は、ＶＩアーキテクチャを実施して、ＤＡＦＳプロトコル318により必要とされるＲＤＭＡ等のダイレクトアクセス伝送（ＤＡＴ）能力を提供する。
【００２９】
ｉＳＣＳＩドライバ層328は、ＴＣＰ／ＩＰネットワークプロトコル層を介したブロックプロトコルアクセスを提供し、一方、ＦＣドライバ層330は、ＦＣＨＢＡ326と共に動作してブロックアクセス要求の送受信、及び統合化されたストレージ装置との間での応答を行う。ＦＣ及びｉＳＣＳＩドライバは、lun（vdisk）に対するＦＣ固有の及びｉＳＣＳＩ固有のアクセス制御を提供し、このため、ｉＳＣＳＩ又はＦＣＰの何れかに対する、また代替的にストレージ装置上の単一のvdiskにアクセスする場合にはｉＳＣＳＩ及びＦＣＰの両者に対する、vdiskのエクスポートを管理する。加えて、ストレージオペレーティングシステムは、ディスクストレージプロトコル（ＲＡＩＤ等）を実施するディスクストレージ層340と、ディスクアクセスプロトコル（例えばＳＣＳＩプロトコル）を実施するディスクドライバ層350とを含む。
【００３０】
ネットワークプロトコルスタック層とのディスクソフトウェア層の橋渡し（bridging）は、例えばvdiskモジュール370及びＳＣＳＩターゲットモジュール360として図示のように実施された仮想化モジュールと相互作用するファイルシステム365により実施される仮想化（virtualization）システム355である。vdiskモジュール370は、ファイルシステム、及びＳＣＳＩターゲットモジュール360は、ソフトウェア、ハードウェア、ファームウェア、又はそれらの組み合わせで実施することが可能である、ということに留意されたい。vdiskモジュール370は、ファイルシステム365と対話して、システムアドミニストレータがマルチプロトコルストレージ装置300に対してコマンドを発行したことに応じた管理用インタフェースによるアクセスを可能にする。本質的には、vdiskモジュール370は、とりわけ、システムアドミニストレータによりユーザインタフェイスを介して発行された広範な一組のvdisk（lun）コマンドを実施することにより、ＳＡＮの配置を管理する。かかるvdiskコマンドは、vdiskを実施するためにファイルシステム365及びＳＣＳＩターゲットモジュール360と対話するプリミティブファイルシステム操作（又はプリミティブ）へと変換される。
【００３１】
次いで、ＳＣＳＩターゲットモジュール360は、lunを特別なvdiskファイルタイプへと変換するマッピング手順を提供することにより、ディスク又はlunのエミュレーションを開始する。ＳＣＳＩターゲットモジュール360は、図示のように、ＦＣドライバ330及びｉＳＣＳＩドライバ328とファイルシステム365との間に配置され、これによりlunがvdiskとして表される際に、ＳＡＮブロック（lun）空間とファイルシステム空間との間に仮想化システム355の変換層を提供する。ファイルシステム365上にＳＡＮ仮想化を「配置する」ことにより、マルチプロトコルストレージ装置は、従来のシステムが採っている方法を逆にし、これにより本質的に全てのストレージアクセスプロトコルに対して単一の統一されたプラットフォームを提供する。
【００３２】
ファイルシステム365は、実例としてはメッセージベースのシステムであり、この場合、ＳＣＳＩターゲットモジュール360は、ＳＣＳＩリクエストを、ファイルシステムに向けられた操作を表すメッセージへと変換する。例えば、ＳＣＳＩターゲットモジュールにより生成されたメッセージは、操作のタイプ（例えば、読み出し、書き込み）、並びに、ファイルシステムにおいて表されるvdiskオブジェクトのパス名（例えば、パス記述子）及びファイル名（例えば、固有のファイル名）を含むことが可能である。ＳＣＳＩターゲットモジュール360は、該メッセージを、例えば操作を実行することになるファンクションコールとしてファイルシステム365内へ送る。
【００３３】
ファイルシステム365は、実例としては、例えば４Ｋバイト（KB）のブロックを使用し及びファイルを記述するためにinodeを使用するブロックベースである「オン・ディスク（on-disk）」形式の表現を有するＷＡＦＬファイルシステムを実施する。該ＷＡＦＬファイルシステムは、そのファイルシステムのレイアウトを記述するメタデータを格納するためにファイルを使用し、かかるメタデータファイルは、とりわけ、inodeファイルを含むものである。ファイルハンドル、すなわちinode番号を含む識別子は、ディスクからinodeを取り出すために使用される。オン・ディスクinode及びinodeファイルを含む、ファイルシステムの構造の記述については、「METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF A FILE SYSTEM」と題するDavid Hitz等の米国特許第5,819,292号に開示されている。
【００３４】
ストレージオペレーティングシステム300は更に、図示の実施形態では、クラスタ接続マネージャ375を含み、これは、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせとして実施され、ストレージシステムとそのパートナーストレージシステムとの間のピア・ツー・ピア接続を確立し維持して、接続マネージャクライアントのための中央集中型のピア・ツー・ピア通信アクセスポイントを提供するよう構成される。
【００３５】
クラスタ接続クライアントは、例えば、クラスタ接続マネージャのサービスを利用してクラスタピアプロセスとの通信をオープンし維持する、ストレージシステム上で実行されるプロセス、スレッド、又はプログラムである。例示的な接続マネージャクライアントは、例えばパートナーストレージシステムが故障し又は非過渡的なエラー状態となった場合にフェイルオーバーを開始させることを含む様々なフェイルオーバー機能を実施するフェイルオーバーモニタ380である。代替的な実施形態では、フェイルオーバーモニタ380はまた、接続マネージャ375と対話して、クラスタ130の複数のシステム間で不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）のシャドウイングを実行する。本発明と共に有利に使用することが可能な例示的なフェイルオーバーモニタの実施形態が、「EFFICIENT USE OF NVRAM DURING TAKEOVER IN A NODE CLUSTER」と題するAbhijeet Gole等の米国特許出願第10/011,844号に記載されている。ストレージオペレーティングシステム300において他の接続マネージャクライアントを利用することが可能であることに留意されたい。クラスタ接続クライアントとしてのフェイルオーバーモニタ380の使用は単なる例示である。他のクラスタ接続クライアント385がクラスタ接続マネージャ375とインタフェイスすることが可能である。
【００３６】
代替的な実施形態では、ストレージオペレーティングシステムは、複数のクラスタ接続マネージャ375を含むことが可能である。該複数のクラスタ接続マネージャは、複数のクラスタ相互接続デバイス間で分散させることが可能である。同様に、複数の接続マネージャクライアントを複数のクラスタ接続マネージャ間で分散させることが可能である。かかる複数のクラスタ接続マネージャの使用は、フェイルオーバー及び／又は負荷平衡操作に資するものとなる。
クラスタ接続マネージャ操作
本発明の例示的な実施形態によれば、ストレージオペレーティングシステム300のクラスタ接続マネージャ350は、クラスタ130のストレージシステム間の全てのピア・ツー・ピア通信を実行する。このために、所定の接続マネージャ、例えばクラスタ接続「初期化」マネージャ375が、その「ピアな」クラスタ接続マネージャ375（すなわち、そのクラスタパートナー）とのピア・ツー・ピア接続を最初に生成する。
【００３７】
図４は、初期化プロセス中にクラスタ接続マネージャにより実行される一連のステップ400のフローチャートである。該一連のステップは、ステップ405で始まり、次いでステップ410へと進んで、クラスタ接続初期化マネージャがパートナーとの初期通信セッションを確立する。初期通信セッションの確立は様々な技術を用いて達成することが可能であり、本発明において有利に利用することが可能な、クラスタパートナーとの初期通信セッションを確立するための技術の一例が、「SYSTEM AND METHOD FOR ESTABLISHING A PEER CONNECTION USING RELIABLE RDMA PRIMITIVES」と題するAbhijeet Gole等の同時継続中の米国特許出願（シリアル番号（112056-0098））に記載されている。初期通信セッションが確立されると、クラスタ接続マネージャが、ステップ415で、ピア接続情報を交換する。該ピア接続情報は、例えば、クラスタ接続マネージャソフトウェアのバーション番号、クラスタ相互接続を介してＲＤＭＡ操作を用いてメモリ領域に直接アクセスするためにクラスタストレージシステムにより使用されるハードウェアメモリ領域アドレス及びハンドル、及び／又は他の実施形態に固有のデータであってシステムにより必要とされるデータを含むことが可能である。各ストレージシステムは、そのパートナーのデータを利用して、例えばそれ自体の接続マネージャと互換性のあるバージョンの接続マネージャを該パートナーが使用していることを確認することが可能である。
【００３８】
ステップ420で、クラスタ接続マネージャは、そのクライアントが適当な仮想インタフェイス（ＶＩ）を生成すること及びあらゆるメモリ要求を登録することを要求する。上述のように、クライアントは、ＡＰＩその他のＩＰＣ技術を介してクラスタ接続マネージャと通信することが可能である。クラスタが適当なＶＩを生成しメモリ要求を登録すると、クラスタ接続マネージャは、ステップ425で、そのクライアント情報をクラスタパートナーのストレージシステムへ送る。該クラスタパートナーのピアクラスタ接続マネージャは、ステップ430で、受信したパートナー情報のクライアントに警告を行う。クラスタ接続マネージャは次いでステップ435で適当なＶＩを「スラム（slam）接続」し、ステップ440でレディ状態のストレージシステムクラスタパートナーに警告を行う。「スラム接続」は、ＶＩ使用で規定されている従来の接続要求及び応答メッセージを用いずに、既知のネットワークアドレスに送られた供給されたＶＩ番号を利用することにより、ＶＩが接続されることを意味している。かかるＶＩは、上記ステップ430で得たパートナー情報を使用してスラム接続することが可能である。クラスタ接続マネージャは、そのパートナーがレディステータス指示子を送ったという通知を受信すると、ステップ445で、クラスタ接続クライアントに対して、生成されたＶＩを介してパートナーがメッセージの処理を開始する準備が整っているという警告を行う。
【００３９】
図５は、例えば手順400の各ステップにより初期通信が初期化された際にクラスタ接続マネージャにより実行される手順500の各ステップのフローチャートである。該手順は、ステップ505で始まり、次いでステップ507へと進み、クラスタ接続マネージャがクラスタ接続クライアント及び／又はクラスタ相互接続ドライバからのイベントを待つ。クラスタ相互接続ドライバは、ＡＰＩ又はＩＰＣを介してクラスタ接続マネージャと通信することが可能である。代替的な実施形態では、クラスタ接続マネージャは、例えばハードウェアに対してステータスを恒常的にポーリングすることにより、クラスタ相互接続ドライバ及びクラスタ相互接続ハードウェアのステータスを監視する。イベントが受信されると、クラスタ接続は、ステップ510で、それがクライアントにより開始されたイベントであるか否かを判定する。クライアントが開始するイベントには、例えば、クラスタ接続クライアントが更なるＶＩがオープンされることを要求していること、ＲＤＭＡ操作で使用する前におけるバッファ空間の増大、又は所与のＶＩをそれ以上必要としない（該ＶＩは次いで解放される（自由にされる）ことになる）クライアントからの警告が含まれる。イベントがクライアントにより開始されたイベントである場合には、クラスタ接続マネージャは、ステップ515で要求された操作を実行した後、ステップ505へループバックして更なるイベントに待機する。
【００４０】
イベントがクライアントにより開始されたイベントでない場合には、典型的にはクラスタ相互接続媒体にエラー状態が発生している。かかる場合には、クラスタ接続マネージャは、ステップ520で、そのクライアントに、相互接続がエラー状態を伴うものであり、該クラスタ相互接続を利用しＶＩを介してメッセージを送信するのを止めるべきであることを警告する。クラスタ接続マネージャは、従来のＡＰＩ又はＩＰＣプロトコルを使用してクライアントに警告を行うことが可能である。かかる警告を受信したことに応じて、クライアントは、ステップ525で、当該相互接続に伴う適当なＶＩを破棄し、割り当てられた全てのメモリを解放する。接続クライアントがかかる操作を完了すると、クラスタ接続マネージャが、ステップ530で、クラスタ相互接続リンク再初期化ルーチンを開始する。該リンク再初期化ルーチンは、クラスタ相互接続を「レディ」状態に戻そうとするものである。例示的な実施形態では、リンク再初期化ルーチンは、クラスタパートナーとのピア・ツー・ピア通信を初期化する際にストレージオペレーティングシステムが実行するステップと同じステップからなる。これは、典型的には、２つのクラスタパートナー間でやりとりされる従来のＶＩメッセージを使用して達成される。しかし、代替的な方法が、「SYSTEM AND METHOD FOR ESTABLISHING RELIABLE PEER COMMUNICATION IN A CLUSTERED ENVIRONMENT」と題する特許出願に記載されている。
故障許容及び負荷平衡
上述のように、特定の代替的な実施形態では、ストレージシステムは、複数のクラスタ接続マネージャ及び／又はクラスタ相互接続アダプタを有することがある。かかる実施形態では、冗長なクラスタ接続又はクラスタ相互接続をストレージシステムにより利用して、クラスタパートナーへ故障許容通信経路を提供すること、又は負荷平衡動作を提供することが可能である。例えば、クラスタ相互接続が故障した場合に、クラスタ接続マネージャは、フェイルオーバー操作を実行して、該クラスタパートナーに接続されている第２のクラスタ相互接続を利用することが可能である。これにより、クラスタパートナー間の物理的な相互接続が故障した場合における継続的なクラスタ動作が可能となる。負荷平衡のために利用する場合には、比較的低い帯域幅要件を有するクラスタ接続クライアントが第１のクラスタ相互接続と関連づけされ、それよりも高い帯域幅要件を有するクラスタ接続クライアントが第２のクラスタ相互接続と関連づけされるように、多数のクラスタ相互接続を構成することが可能である。複数のクラスタ相互接続を利用することによりシステム性能を改善することが可能となる。
【００４１】
図６は、複数のクラスタ接続クライアント、クラスタ接続マネージャ、及びクラスタ相互接続ドライバ630,635を有する、例示的なストレージシステム環境600である。クライアントＡ605、クライアントＢ610、及びクライアントＣ615は、クラスタ接続マネージャα620と通信し、該クラスタ接続マネージャα620はクラスタ相互接続ドライバＩ630のサービスを利用する。第２のクラスタ接続マネージャであるクラスタ接続マネージャβ625は、何れのクライアントによってもアクティブにされることも利用されることもない。、
クラスタ相互接続ドライバ630が故障した場合、本発明の代替的な実施形態によれば、クラスタ接続マネージャα620が、そのクラスタパートナーとの適当なリンクを再初期化しようとする。クラスタ相互接続ドライバは、例えば、関連するクラスタ相互接続ハードウェアドライバの故障を含む、様々な理由で故障する可能性がある。クラスタ接続マネージャ620は、特定の実施形態では図７に示すようにクラスタ相互接続ドライバII635を利用する。この故障環境700では、クライアント605,610,615は、依然としてクラスタ接続マネージャα620との通信状態にある。しかし、クラスタ接続マネージャ620は、もはや故障したクラスタ相互接続ドライバ630のサービスを利用していない。その代わり、クラスタ接続マネージャ620は、クラスタ相互接続II635のサービスの利用を開始している。
【００４２】
かかるフェイルオーバー条件は、クラスタ相互接続デバイスの恒常的なポーリング動作中にクラスタ接続マネージャにより検出することが可能である。かかるフェイルオーバーが生じる場合には、クラスタ接続は、第２のクラスタ相互接続デバイスを使用し、再初期化ルーチン（図５のステップ530）に従って所望のＶＩ接続を再初期化する。
【００４３】
図８は、複数のクラスタ接続マネージャ及びクラスタ相互接続を利用する例示的な負荷平衡環境800を示している。該負荷平衡環境800は、クラスタ相互接続ドライバＩ630と通信するクラスタ接続マネージャα620と、クラスタ相互接続ドライバII 635と通信するクラスタ接続マネージャβ625とを含む。クライアントＡ605及びクライアントＢ610は、クラスタ接続マネージャα620のサービスを利用し、クライアントＣ615はクラスタ接続マネージャβ625を利用する。例えば、クライアントＣ615がＮＶＲＡＭミラーリングクライアントであり、クラスタ130における該ＮＶＲＡＭミラーリングに関連する広帯域幅負荷が存在する場合に、環境800は、クライアントＣ615がクラスタ相互接続635に関連する帯域幅全体を消費できることを確実にする。次いで、他のクライアント605,610は、クラスタ相互接続630上で利用可能な帯域幅を共有することになる。
【００４４】
当業者には理解されるように、膨大な代替的な負荷平衡構成を、複数のクラスタ接続マネージャ及びクラスタ相互接続を使用することにより容易に生成することが可能である。更に、クライアントに関連して動作するクラスタ接続マネージャは、クライアントの「リアルタイム」の必要性に応じて複数のクラスタ相互接続にわたり帯域幅負荷を適応的に平衡させる。例えば、クライアントＡ605により必要とされる帯域幅が、クライアント610,615により必要とされる帯域幅を大幅に超えるよう増大した場合には、クラスタ接続マネージャ620は、クライアントＢ610をクラスタ相互接続630からクラスタ相互接続635へ移動させることが可能である。かかる移動は、クラスタ相互接続630を介して利用可能な帯域幅全体をクライアントＡ605に提供するものとなる。
【００４５】
クラスタ相互接続が負荷平衡動作中に故障した場合には、クラスタ接続マネージャは、フェイルオーバールーチンを使用して、そのクラスタ接続マネージャのクライアントが該クライアントのクラスタパートナーと正しく通信することができることを確実にする。かかる故障状態の一例を図９に示す。負荷平衡及びフェイルオーバー環境900は、故障したクラスタ相互接続630を含む。当初にクラスタ相互接続Ｉ630と通信していたクラスタ接続マネージャα620は、そのクラスタ相互接続II635を利用した接続を再初期化する。上述のように、かかる構成は、クラスタ相互接続IIの物理的なデータリンクを介した帯域幅の制限に起因して、システム性能に悪影響を与えるものとなる。しかし、クラスタ接続マネージャのクライアントによってデータは依然として送受信することが可能となる。３つ以上のクラスタ相互接続を有する代替的な実施形態では、クラスタ接続マネージャは、理想的には利用率の最も低いクラスタ相互接続をバックアップ動作に利用して、負荷平衡の貧弱なシステムに付随するデータ遅延を最小限にする。このため、クラスタ接続マネージャの故障許容及び負荷平衡機能を利用することにより、クラスタパートナーは、改善されたシステム性能と信頼性を認知することとなる。
【００４６】
再び要約すると、本発明は、クラスタ化された環境で複数のストレージシステムを接続するクラスタ相互接続を介した信頼できるピア・ツー・ピア通信を提供するためのシステム及び方法に関するものである。より詳細には、本書には新規のクラスタ接続マネージャが解説されており、これは、通信チャネルのオープン、クローズ、及び維持を行うための統一された管理ポイント、並びにストレージシステムクラスタを構成する複数のストレージシステムの各々で実行するクラスタ接続マネージャクライアントを提供する。新規のクラスタ接続マネージャは更に、故障許容及び負荷平衡機能を、クラスタパートナーと通信するクラスタ接続マネージャクライアントに提供する。
【００４７】
上記説明は、本発明の特定の実施形態に関するものであった。しかし、解説した実施形態に他の変形及び修正を加えて、かかる実施形態の利点の一部又は全部を達成することが可能であることは自明である。本発明の教示を用いて、InfiniBand又は他のあらゆるピア・ツー・ピア・プロトコルといった代替的なプロトコルを採用することが可能であることに留意されたい。更に、手順又はプロセスは、ハードウェア、ソフトウェア、プログラム命令を有するコンピュータにより読み取ることが可能な媒体、ファームウェア、又はそれらの組み合わせで実施することが可能である。よって、特許請求の範囲の目的は、全てのかかる変形及び修正を本発明の真の思想及び範囲として包含することである。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態によるストレージシステムクラスタ内のストレージシステムを有する例示的なネットワーク環境の概要を示すブロック図である。
【図２】本発明の一実施形態による例示的なストレージシステムの概要を示すブロック図である。
【図３】本発明の一実施形態により使用するための、ストレージシステム上で実行される例示的なストレージオペレーティングシステムの概要を示すブロック図である。
【図４】本発明の一実施形態による、初期化プロセス中にクラスタ接続マネージャにより実行される手順の各ステップを詳細に示すフローチャートである。
【図５】本発明の一実施形態による、クラスタの動作中にクラスタ接続マネージャにより実行される手順の各ステップを詳細に示すフローチャートである。
【図６】本発明の一実施形態による、多数のクライアント、クラスタ接続マネージャ、及びクラスタ相互接続を有する例示的なクラスタパートナー環境の概要を示すブロック図である。
【図７】本発明の一実施形態による例示的なフェイルオーバー環境の概要を示すブロック図である。
【図８】本発明の一実施形態による例示的な負荷平衡環境の概要を示すブロック図である。
【図９】本発明の一実施形態による、フェイルオーバー状況を示す例示的な負荷平衡環境の概要を示すブロック図である。
【符号の説明】
【００４９】
600          ストレージシステム環境
605,610,615  クライアント
620,625      クラスタ接続マネージャ
630,635      クラスタ相互接続ドライバ
【図１】
2005071333.tif 000003
【図２】
2005071333.tif 000004
【図３】
2005071333.tif 000005
【図４】
2005071333.tif 000006
【図５】
2005071333.tif 000007
【図６】
2005071333.tif 000008
【図７】
2005071333.tif 000009
【図８】
2005071333.tif 000010
【図９】
2005071333.tif 000011
【外国語明細書】
2005071333000001.pdf