(57)【要約】本発明は、任意数のストレージシステムにわたるスペアのコストの分散、及び多数のストレージシステム処理の改善が可能な新規な協調的共用ストレージアーキテクチャを提供する。この協調的共用ストレージアーキテクチャは、ハブのような複数の中間ネットワークデバイスを介して接続された複数のストレージシステムディスクシェルフを含む。各ストレージシステムは、ターゲットデバイスドライバモジュールを備えたストレージオペレーティングシステムを含む。ターゲットデバイスドライバモジュールにより、ストレージシステムをＳＣＳＩターゲットとして機能させることができ、それによって、他のストレージシステムからそのストレージシステム宛てに送られたコマンドを受信し、処理することが可能となる。
2008529167.tif 000002
【特許請求の範囲】
【請求項１】
１以上のストレージアプライアンスを使用して協調的共用ストレージアーキテクチャを構成する方法であって、
第１のネットワークを介して１以上のクライアントを１以上のストレージアプライアンスに相互接続するステップと、
１以上の中間ネットワークデバイスを使用して、一連のデータ記憶装置を前記１以上のストレージアプライアンスに相互接続するステップと、
前記１以上のストレージシステムのそれぞれにターゲットデバイスドライバを設け、該ターゲットデバイスドライバにより、各ストレージシステムが、前記１以上の中間ネットワークデバイスを介して前記１以上のストレージシステムと通信できるようにすることによって、各ストレージシステムをターゲットデバイスとしてアクセスできるようにするステップと
を含む方法。
【請求項２】
前記中間ネットワークデバイスは、ハブからなる、請求項１に記載の方法。
【請求項３】
前記中間ネットワークデバイスは、ルータからなる、請求項１に記載の方法。
【請求項４】
前記１以上のデータ記憶装置は、ディスクドライブからなる、請求項１に記載の方法。
【請求項５】
前記第１のネットワークに相互接続され、かつ前記１以上の中間ネットワークストレージデバイスのうちの１つに相互接続された更に別のストレージシステムを設けるステップを更に含み、該更に別のストレージシステムは、前記中間ネットワークデバイスに相互接続された前記記憶装置のいずれにもアクセスできるように構成される、請求項１に記載の方法。
【請求項６】
前記１以上の中間ネットワークデバイスのうちの少なくとも１つに相互接続された更に別のデータ記憶装置を設け、それによって、前記少なくとも１つの中間ネットワークデバイスに相互接続された前記１以上のストレージシステムのいずれもが、前記データ記憶装置をアドレス指定できるようにするステップを更に含む、請求項１に記載の方法。
【請求項７】
前記１以上の中間ネットワークデバイスのうちの少なくとも１つに相互接続された不揮発性ランダムアクセスメモリデバイスを設けるステップを更に含み、前記不揮発性ランダムアクセスメモリデバイスは、前記ストレージシステムのうちの１以上によって送信されたデータを、該データが前記記憶装置のうちの１以上に記憶される前に記憶するように構成される、請求項１に記載の方法。
【請求項８】
前記ストレージアプライアンスは、ストレージシステムからなる、請求項１に記載の方法。
【請求項９】
１以上のストレージアプライアンスを使用して、協調的共用ストレージアーキテクチャを構成するシステムであって、
第１のネットワークを介して前記１以上のストレージアプライアンスに相互接続された１以上のクライアントと、
前記１以上のストレージアプライアンスに一連のデータ記憶装置を相互接続するように構成された１以上の中間ネットワークデバイスと
を含み、各ストレージシステムのターゲットデバイスドライバにより、各ストレージシステムをターゲットデバイスとしてアクセス可能である、システム。
【請求項１０】
前記データ記憶装置は、ディスクドライブからなる、請求項９に記載のシステム。
【請求項１１】
前記中間ネットワークデバイスは、ハブからなる、請求項９に記載のシステム。
【請求項１２】
前記中間ネットワークデバイスは、スイッチからなる、請求項９に記載のシステム。
【請求項１３】
前記中間ネットワークデバイスは、ルータからなる、請求項９に記載のシステム。
【請求項１４】
前記第１のネットワークに相互接続され、かつ前記１以上の中間ストレージデバイスのうちの１つに相互接続された更に別のストレージシステムを更に含み、該更に別のストレージシステムが、前記中間ネットワークデバイスに相互接続された記憶装置のいずれにもアクセスできるように構成される、請求項９に記載のシステム。
【請求項１５】
前記１以上の中間ネットワークデバイスのうちの少なくとも１つに相互接続された不揮発性ランダムアクセスメモリを更に含み、該不揮発性ランダムアクセスメモリは、前記ストレージシステムのうちの１以上によって送信されたデータを、該データが前記イ億装置のうちの１以上に記憶される前に記憶するように構成される、請求項９に記載のシステム。
【請求項１６】
更に別のデータ記憶装置を更に含み、該更に別のデータ記憶装置は、前記１以上の中間ネットワークデバイスのうちの少なくとも１つに相互接続され、それによって、前記少なくとも１つの中間ネットワークデバイスに相互接続された前記１以上のストレージシステムのいずれもが、前記データ記憶装置をアドレス指定可能である、請求項９に記載のシステム。
【請求項１７】
協調的共用ストレージアーキテクチャで使用されるストレージシステムであって、
ターゲットデバイスドライバモジュールを備えたストレージオペレーティングシステムを含み、該ターゲットデバイスドライバモジュールは、前記ストレージシステムをターゲットとしてアドレス指定することを可能にし、前記ターゲットデバイスドライバモジュールは更に、前記ストレージシステムが、１以上の中間ネットワークデバイスを使用して、前記ストレージシステムに相互接続された記憶装置をアドレス指定することができるようにする、ストレージシステム。
【請求項１８】
前記中間ネットワークデバイスは、ハブからなる、請求項１７に記載のストレージシステム。
【請求項１９】
前記ストレージシステムに相互接続された前記中間ネットワークデバイスのうちのいずれかにスペア記憶装置を物理的に接続することができる、請求項１７に記載のストレージシステム。
【請求項２０】
前記ストレージシステムで使用するために、前記ストレージシステムに相互接続された中間ネットワークデバイスのうちのいずれかに更に別の記憶装置を接続することによって、更に別の記憶装置を追加することができる、請求項１９に記載のストレージシステム。
【請求項２１】
前記ストレージオペレーティングシステムは、所定のロードバランス閾値を超えることに応じて、データコンテナの所有権を第２のストレージシステムに移転するように更に構成され、
前記データコンテナの所有権の移転は、前記中間ネットワークデバイスに相互接続されたいずれかのストレージシステムに対して行われる、請求項１７に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[発明の分野]
本発明はストレージシステムに関し、特に、複数のストレージシステムと共に使用される協調的共用ストレージアーキテクチャに関する。
【背景技術】
【０００２】
[発明の背景]
ストレージシステムは、メモリ、テープ、又はディスクのような書き込み可能な永久的記憶装置上での情報の編成に関するストレージサービスを提供するコンピュータである。ストレージシステムは一般に、ストレージ・エリア・ネットワーク（ＳＡＮ）環境や、ネットワーク・アタッチド・ストレージ（ＮＡＳ）環境の中に配置される。ＮＡＳ環境で使われる場合、ストレージシステムは、ファイルシステムを実施し、情報をディレクトリやファイルの階層構造として例えばディスク上に論理編成するオペレーティングシステムを含むファイルサーバとして実施される場合がある。「ディスク上」の各ファイルは、そのファイルの実際のデータのような情報を記憶するように構成された、例えばディスクブロックのようなデータ構造の集まりとして実施される。一方、ディレクトリは、他のファイルやディレクトリに関する情報を記憶する特殊な形式のファイルとして実施される。
【０００３】
ストレージシステムは、クライアント／サーバモデルの情報配送にしたがって動作するように更に構成される場合があり、それによって、多数のクライアントシステム（クライアント）が、ストレージシステムに格納されたファイルのような共用リソースにアクセスすることができる。ファイルの共有は、ＮＡＳシステムの顕著な特徴であり、ファイルやファイルシステムに対するセマンティックレベルのアクセスによって可能になる。ＮＡＳシステムにおける情報の記憶は通常、地理的に分散されたイーサネット（Ｒ）のような相互接続された通信リンクの集まりから構成されるコンピュータネットワーク上に配置され、それによって、クライアントは、ファイルサーバ上の情報（ファイル）に遠隔からアクセスすることができる。クライアントは通常、トランスミッション・コントロール・プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）のような所定のプロトコルにしたがって個々のフレーム、又はデータパケットをやり取りすることによって、ストレージシステムと通信する。
【０００４】
クライアント／サーバモデルでは、クライアントは、ポイント・ツー・ポイントリンク、共用ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットのような公共ネットワーク上で実施される仮想私設ネットワークのようなコンピュータネットワークを介してストレージシステムに「接続」するために、コンピュータ上でアプリケーションを実行する場合がある。ＮＡＳシステムは一般に、ファイルベースのアクセスプロトコルを利用する。したがって、各クライアントは、ネットワークを介してファイルシステムプロトコルメッセージ（パケットの形をしている）をファイルシステムに発行することにより、ストレージシステムにサービスを要求する場合がある。従来のコモン・インターネット・ファイルシステム（ＣＩＦＳ）、ネットワーク・ファイルシステム（ＮＦＳ）、及びダイレクトアクセス・ファイルシステム（ＤＡＦＳ）のような複数のファイルシステムプロトコルを備えることで、ネットワーク接続されたクライアントにとって、ストレージシステムの使い勝手は向上する場合がある。
【０００５】
ＳＡＮは、ストレージシステムと、該ストレージシステムの記憶装置との間に直接接続を確立することが可能な高速ネットワークである。したがってＳＡＮは、ストレージバスに対する拡張とも考えられ、したがって、ストレージシステムのオペレーティングシステムは、ブロックベースのアクセスプロトコルを使用し、記憶された情報に「拡張バス」を介してアクセスすることができる。ここで言う拡張バスは通常、「ＳＣＳＩ  ｏｖｅｒ  ＦＣ（ＦＣＰ）」プロトコルや、「ＳＣＳＩ  ｏｖｅｒ  ＴＣＩ／ＩＰ（ｉＳＣＳＩ）」プロトコルとして実施される。ＳＡＮ構成、又はデプロイメントによれば、アプリケーションサーバのようなストレージシステムから記憶装置を切り離すことができ、アプリケーションサーバレベルでのある程度のストレージ共有が可能となる。ただし、環境によっては、ＳＡＮは単一のサーバに専用である場合もある。ＳＡＮ環境で使用される場合、ストレージシステムは、ファイバチャネル（ＦＣＰ）に埋め込まれたＳＣＳＩのような１以上のブロックベースのプロトコルを使用して一連のディスクに対するデータアクセスを管理するストレージアプライアンスとして実施される場合がある。ＳＡＮで使用するのに適したマルチプロトコル・ストレージアプライアンスを含むＳＡＮ構成の一例は、「MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題するBrian Pawlowski他による米国特許出願第１０／２１５，９１７号に記載されている。
【０００６】
ストレージアプライアンスのようなストレージシステムによって提供されるサービス、及びデータにとって有利なのは、最大限の利用可能性でアクセスできることである。したがって、ストレージシステムによっては、クラスタを成す複数のストレージアプライアンスを備え、第１のストレージアプライアンスが故障したときに、第２のストレージアプライアンス（「パートナ」）を利用して、本来なら第１のストレージアプライアンスによって提供されるサービスやデータの提供を第２のストレージアプライアンスによって引き継ぐことができる性質を持つものがある。第１のストレージアプライアンスが故障すると、クラスタ内の第２のパートナ・ストレージアプライアンスは、通常なら第１のストレージアプライアンスによって処理されるデータアクセス要求の処理／対応に関するタスクを全て引き継ぐ。そのようなストレージアプライアンスクラスタ構成の一例は、「SYSTEM AND METHOD FOR TRANSPORT-LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER」と題するArthur F. Lent他による米国特許出願第１０／４２１，２９７号に記載されている。管理者は、例えばハードウェアのアップグレードといったような種々の理由から、ストレージアプライアンスをオフライン状態にしたい場合がある。こうした状況では、フェイルオーバ処理とは対照的に、ユーザ始動型の引き継ぎ処理を実施した方が有利な場合がある。引き継ぎ処理が完了すると、返却処理が実施されるまで、ストレージアプライアンスのデータは、そのパートナによって提供される。
【０００７】
既知のストレージアプライアンスクラスタ構成によっては、クライアントとクラスタの間の通信に使用される搬送媒体は、ＦＣＰプロトコルを利用してデータを搬送することが可能なファイバチャネル（ＦＣ）である場合がある。ＳＣＳＩ用語において、ＳＡＮ環境で動作するクライアントは、データを求める要求、及びコマンドを発行する「イニシエータ」である。したがって、マルチプロトコルストレージアプライアンスは、イニシエータから発行された要求に対し、要求／応答プロトコルにしたがって応答するように構成された「ターゲット」である。ＦＣプロトコルによれば、イニシエータ、及びターゲットは、３つの一意の識別子、すなわち、ノード名、ポート名、及びデバイス識別子を有する。ノード名、及びポート名は、世界的に一意であり、例えば、ワールドワイド・ノード名（ＷＷＮＮ）、及びワールドワイド・ポート名（ＷＷＰＮ）である。デバイス識別子は、所与のＦＣスイッチング構造の中でのみ一意であり、ＦＣポートに接続されたＦＣスイッチによってＦＣポートに動的に割り当てられる。
【０００８】
ストレージアプライアンスのクラスタを利用した従来のフェイルオーバ技術では、クラスタ内の各ストレージアプライアンスは、２つの物理的ＦＣポート、すなわち、Ａポート、及びＢポートを有する。Ａポートは、ストレージアプライアンス宛てに送られたデータアクセス要求の処理／対応に使用される。Ｂポートは通常、待機モードにあり、フェイルオーバ状況が発生したときに有効化され、その故障したパートナストレージアプライアンスの「識別子を引き継ぐ」。この時点で、Ｂポートは、故障したストレージアプライアンス宛てに送られたデータアクセス要求を受信し、処理／対応するためのＦＣターゲットとして機能し始める。このように、生き残ったストレージアプライアンスは、ストレージアプライアンスとその故障したパートナストレージアプライアンスのどちらを宛先として送られた要求も処理する場合がある。このような従来のＦＣフェイルオーバの詳細については、「SYSTEM AND METHOD FOR TRANSPORT LEVEL FAILOVER OF FCP DEVICES IN A CLUSTER」と題する、上で参照した米国特許出願に記載されている。
【０００９】
具体的には、「生き残った」ストレージアプライアンスのＢポートは、故障したパートナ・ストレージアプライアンスの識別子を引き継いだ後、パートナのＷＷＮＮ、及びＷＷＰＮ宛てに送られたデータアクセス要求に対するサービスを提供する。多くのクライアントオペレーティングシステムにとってこれは、クライアントが、その生き残ったストレージアプライアンスを故障したストレージアプライアンスであるかのようにアクセスするために十分である。すなわち、故障したストレージアプライアンスのそうした一意のネットワークアドレス識別子宛てに送られたデータアクセス要求は、生き残ったストレージアプライアンスによって受信され、処理される。クライアントからすれば、故障したストレージアプライアンスは、ネットワークから瞬間的に切断され、再接続されたかのように見え、データアクセス要求に関連する処理は、継続されているように見える。
【００１０】
図１は、例示的ストレージ（アプライアンス）システム・ネットワーク環境１００を示す略ブロック図である。環境１００は、クライアント１０４に接続されたネットワーククラウド１０２を含む。クライアント１０４は、ＰＣやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを有するオペレーティングシステム上でアプリケーションを実行するように構成されたアプリケーションサーバのような特殊目的のコンピュータであってもよい。ネットワーククラウド１０２には、赤色ストレージシステム３００Ａ、及び青色ストレージシステム３００Ｂを含むストレージシステムクラスタ１３０も接続されている。これらのストレージシステムは、例えば、ディスクシェルフ１１２及び１１４上に存在するディスクのような相互接続された記憶装置に対する記憶、及びアクセスを制御するように構成されたストレージアプライアンスとして実施される。
【００１１】
図示の例では、赤色ストレージシステム３００Ａは、そのＡポート１１６によって赤色ディスクシェルフ１１２に接続されている。赤色ストレージシステム３００Ａは、そのＢポート１１８を介して青色ディスクシェルフ１１４にもアクセスする。同様に、青色ストレージシステム３００Ｂは、そのＡポート１２０を介して青色ディスクシェルフ１１４にアクセスし、Ｂポート１２２を通して赤色ディスクシェルフ１１２にもアクセスする。したがって、クラスタ内の各ディスクシェルフは、各ストレージアプライアンスにアクセスすることができ、それによって、フェイルオーバ発生時の冗長経路を形成している。なお、図中、赤色ディスクシェルフと青色ディスクシェルフがストレージシステム２００に直接接続されているのは、単なる例示に過ぎない。
【００１２】
赤色ストレージシステム３００Ａと青色ストレージシステム３００Ｂを接続しているのは、クラスタ相互接続１１０である。クラスタ相互接続１１０は、それら２つのストレージシステム間に直接通信リンクを形成する。クラスタ相互接続１１０は、例えば、イーサネット(R)接続やＦＣデータリンクのような任意の適当な通信媒体であってよい。
【００１３】
通常のクラスタ処理において、ディスクシェルフの一次ポート（すなわち、Ａポート）を介してディスクシェルフに接続されたストレージシステムは、そのディスクシェルフの「所有者」であり、主に、そのディスクシェルフに格納されたボリュームのブロック宛てに送られたデータ要求に対するサービスを提供する働きをする。したがって、この例では、赤色ストレージシステム３００Ａは、赤色ディスクシェルフ１１２を所有し、主に、そのディスクシェルフに格納されたブロックに対するデータアクセス要求を処理する働きをする。同様に、青色ストレージシステム３００Ｂは、主に、青色ディスクシェルフ１１４について責任を負う。ストレージシステムクラスタ１３０として動作している場合、各ストレージシステム３００は通常、クラスタ１３０内の他方のディスクシェルフのデータ処理機能を引き継ぐように構成される。
【００１４】
従来のストレージシステム環境構成には、多数の顕著な欠点がある。そのような欠点の１つは、スペアディスクのコストが一般に、クラスタの２つのストレージシステムにわたってしか分散されないことである。すなわち、ストレージシステムの各対について、個別のスペアディスクプールが必要となる。環境内のクラスタ数が幾つであっても、この制限はコストが悪いことが分かっている。すなわち、１つのクラスタがそのスペアを使い果たしたとき、ストレージシステム環境全体には他にスペアが存在していても、データは失われる場合がある。第２に、ロードバランシングが、ディスクシェルフに相互接続されたディスク、及び／又はストレージシステム間でしか実施されない場合があることである。すなわち、従来のクラスタ環境では、ロードバランスがとられるのは、ストレージシステムクラスタ内の２つのストレージシステム間においてのみである。もう１つの欠点は、従来のストレージシステムクラスタは、簡単にスケーリングできないことである。処理能力を向上させたり、ディスクシェルフ上のホットスポットを減らすために、システム管理者は一般に、クラスタ対、及び関連ディスクを追加し、配線し、クラスタ構成にしなければならない。また、そのような「手動」のクラスタスケーリングに応じて、ディスク所有者の移転が必要となることもあり、したがって、クラスタ対間において、ディスクシェルフ内のディスクの物理的移動が必須となる。
【発明の開示】
【課題を解決するための手段】
【００１５】
[発明の概要]
本発明は、任意数のストレージシステムにわたるスペアのコストの分散が可能であり、多数のストレージシステム処理の改善が可能な新規な協調的共用ストレージアーキテクチャを提供することにより、従来技術の欠点を克服する。この協調的共用ストレージアーキテクチャは、ハブのような複数の中間ネットワークデバイスを介して接続された複数のディスクシェルフを含む。各ストレージシステムは、ターゲットデバイスドライバモジュールを有するストレージオペレーティングシステムを含む。ターゲットデバイスドライバモジュールは、ストレージシステムをＳＣＳＩターゲットとして機能させることでき、それによって、ストレージシステムは、他のストレージシステムからそのストレージシステム宛てに送られたコマンドを受信し、処理することが可能となる。
【００１６】
協調的共用ストレージアーキテクチャは、従来のストレージシステム環境には提供されない、ストレージシステム環境における種々の有用なアプリケーション、又は機能を提供する。例えば、この新規なアーキテクチャは、更に別のストレージシステムを中間ネットワークデバイスに相互接続することを効率よく可能にするといった、ストレージシステム環境の種々の機能を動的に向上させる機能を提供する。本発明のこの機能によれば、新たに追加されたストレージシステムによって、ストレージシステム内の全てのディスクにサービスを提供することが可能となる。同様に、単にディスクシェルフを１以上の中間ネットワークデバイスに接続するだけで、その環境にディスクシェルフを効率的に追加することができる。接続後、ディスクシェルフのディスクによって提供される記憶空間は、その環境内の全てのストレージシステムによって利用できるようになる。
【００１７】
本発明の上記の利点、及び更に別の利点は、添付の図面と併せて下記の説明を読むことによって分かるであろう。図中、同じ参照符号は、機能的に同一の、又は類似の要素を指している。
【発明を実施するための最良の形態】
【００１８】
[例示的実施形態の詳細な説明]
Ａ．クラスタ化ストレージシステム環境
図２は、本発明の原理が実施される例示的ネットワーク環境２００を示す略ブロック図である。環境２００は、１以上のクライアント１０４に接続されたネットワーククラウド１０２を含む。クライアント１０４は、ＰＣやワークステーションのような汎用コンピュータであってもよいし、ブロックアクセスプロトコルを備えたオペレーティングシステム上でアプリケーションを実行するように構成されたアプリケーションサーバのような特殊目的のコンピュータであってもよい。ネットワーククラウド１０２には、赤色ストレージシステム３００Ａ、青色ストレージシステム３００Ｂ、及び緑色ストレージシステム３００Ｃも接続される。これらのストレージシステムは、以下で詳しく説明するように、例えばディスクシェルフ１１２、及び１１４上に存在するディスクのような相互接続された記憶装置に対する記憶、及びアクセスを制御するように構成されたストレージアプライアンスとして実施される。
【００１９】
赤色、青色、及び緑色ストレージシステム３００Ａ、Ｂ、Ｃは、「フロントエンド」データパス２０２、２０４、２０６をそれぞれ介してネットワーク１０２に接続される。これらのフロントエンドデータパス２０２、２０４、２０６は、ダイレクト・ポイント・ツー・ポイントリンクであってもよいし、ルータ、スイッチ、及びハブのような種々の中間ネットワークデバイスを含む代替データパスを表わす場合もある。更に、図示の中間ネットワークデバイスＨ１、及びＨ２は、ディスクシェルフ１１２、及び１１４に接続される。この実施形態では、Ｈ１、及びＨ２は、ディスクシェルフ１１２、１１４のＡポートとＢポートの両方に相互接続され、それによって、両方のディスクシェルフに対して複数の「バックエンド」データパスを形成している。具体的には、Ｈ１は、そのＡポート２２２を介してディスクシェルフ１１２に接続され、かつＢポート２２０を介してディスクシェルフ１１４にも接続される。同様に、Ｈ２は、そのＢポート２２４を介してディスクシェルフ１１２に接続され、かつＡポート２２６を介してディスクシェルフ１１４にも接続される。なお、これらのデータパスは、例えばファイバチャネル・アービトレイテッドループ（ＦＣ−ＡＬ）のような任意の適当なネットワーク媒体であってよい。赤色ストレージシステム３００は、「中間」データパス２０８を介してＨ１に接続され、かつ中間データパス２１０を介してＨ２に接続される一方、青色ストレージシステム３００Ｂは、中間データパス２１２を介してＨ１に接続され、中間データパス２１４を介してＨ２に接続される。最後に、緑色ストレージシステム３００Ｃは、中間データパス２１６を介してＨ１に接続され、かつ中間データパス２１８を介してＨ２に接続される。
【００２０】
図示の実施形態において、中間ネットワークデバイスＨ１、Ｈ２は、ハブとして実施されている。ただし、本発明の代替実施形態では、スイッチのような他のタイプの中間ネットワークデバイスが使用される場合もある。したがって、中間ネットワークデバイスとしてのハブの使用は、単なる例として捉えなければならない。本発明の一実施形態において、新規なストレージネットワーク環境２００は、例えば、ストレージシステム、及び／又はディスクのスケーラビリティを得るために、複数の技術を利用することができる。さらに、ストレージ環境２００によれば、ストレージシステム環境内の全てのストレージシステムにわたるスペアディスクの効率的な分散が可能となり、同時に、ストレージシステム環境内のどのストレージシステム間においてもストレージベースのロードバランシングを実施する機能が実現される。
【００２１】
Ｂ．ストレージアプライアンス
図３は、ディスクのような記憶装置上での情報の編成に関するストレージサービスを提供するように構成された例示的ストレージシステム３００を示す略ブロック図である。ストレージシステム３００は、例えばシステムバス３３０によって相互接続されたプロセッサ３０５、メモリ３１５、複数のネットワークアダプタ３２５ａ、３２５ｂ、ストレージアダプタ３２０、及びクラスタ相互接続アダプタ３３５を含むストレージアプライアンスとして実施される。ストレージアプライアンスは、ネットワーク・アタッチド・ストレージ（ＮＡＳ）デプロイメントやストレージ・エリア・ネットワーク（ＳＡＮ）デプロイメントのユーザ（システム管理者）及びクライアントのために、再利用可能な記憶空間を含め、ストレージサービス管理の単純化や、ストレージ再構成の容易化といった機能を有するコンピュータである。ストレージアプライアンスは、ファイルシステムを通じてＮＡＳサービスを提供するが、同アプライアンスは、論理ユニット番号（ＬＵＮ）のエミュレーションのようなＳＡＮ仮想化を通してＳＡＮサービスも提供する。そのようなストレージアプライアンスの一例は、「MULTI-PROTOCOL STORAGE APPLIANCE THAT PROVIDES INTEGRATED SUPPORT FOR FILE AND BLOCK ACCESS PROTOCOLS」と題するBrian Pawlowski他による米国特許出願第１０／２１５，９１７号に記載されている。なお、「ストレージシステム」という用語と、「ストレージアプライアンス」という用語は同義で使用される。ストレージアプライアンス３００は更に、情報をディレクトリ、ファイル、及び仮想ディスク（ｖｄｉｓｋ）ストレージオブジェクトの階層構造としてディスク上に論理編成するための仮想化システムを備えたストレージオペレーティングシステムを有する。
【００２２】
ＮＡＳ系ネットワーク環境のクライアントは、ファイル単位でストレージを参照する一方、ＳＡＮ系ネットワーク環境のクライアントは、ブロック単位、又はディスク単位でストレージを参照する。その目的のために、ストレージアプライアンス３００は、ＬＵＮ、又はｖｄｉｓｋオブジェクトの作成によって、ディスクをＳＡＮクライアントに提示（エキスポート）する。ｖｄｉｓｋオブジェクト（以下、「ｖｄｉｓｋ」）は、仮想化システムによって実施される特殊なファイルタイプであり、ＳＡＮクライアントから参照されるときにエミュレートディスクに変換される。そのようなｖｄｉｓｋオブジェクトの詳細については、「STORAGE VIRTUALIZATION BY LAYERING VIRTUAL DISK OBJECTS ON A FILE SYSTEM」と題するVijayan Rajan他による米国特許出願第１０／２１６，４５３号に記載されている。その後、マルチプロトコル・ストレージアプライアンスは、後で詳しく説明するようなエキスポート制御により、それらのエミューレートディスクをＳＡＮクライアントからアクセスできるようにする。
【００２３】
図示の実施形態において、メモリ３１５は、本発明に関連するソフトウェアプログラムコード、及びデータ構造を記憶するためにプロセッサ、及びアダプタによってアドレス指定可能な複数の記憶場所を有する。また、プロセッサ、及びアダプタは、ソフトウェアプログラムコードを実行し、データ構造を操作するように構成された処理要素、及び／又は論理回路を含む。ストレージオペレーティングシステム４００は、その幾つかの部分が通常、メモリに常駐し、処理要素によって実行され、とりわけ、ストレージアプライアンスによって実施されるストレージサービスを支援する記憶処理を実施することにより、そのストレージアプライアンスを機能的に編成する。なお、当業者には明らかなように、本発明のシステム、及び本明細書に記載する方法に関連するプログラム命令の格納、及び実行には、種々のコンピュータ読み取り可能媒体を含めて、他の処理手段や記憶手段を使用してもよい。
【００２４】
ネットワークアダプタ３２５ａ、及びｂは、ポイント・ツー・ポイントリンク、ワイドエリアネットワーク（ＷＡＮ）、公共ネットワーク（インターネット）上で実施される仮想私設ネットワーク（ＶＰＮ）、又は共用ローカルエリアネットワーク（ＬＡＮ）、あるいは任意の他の適当なネットワークアーキテクチャを介して、ストレージアプライアンスをクライアントに接続する。さらに、ネットワークアダプタ３２５ａ，ｂは、ストレージアプライアンス３００をクライアント１０４に接続し、記憶された情報をブロック、又はディスクとして取得するように更に構成される場合がある。ネットワークアダプタ３２５は、ストレージアプライアンス３００をネットワーク１０２に接続するのに必要な機械的、電気的、及び信号的回路を備えたＦＣホストバスアダプタ（ＨＢＡ）であってもよい。ＦＣ  ＨＢＡは、ＦＣアクセスを可能にするだけでなく、ストレージアプライアンスのプロセッサ３０５からＦＣネットワークプロセスの負荷を低減することもできる。ＦＣ  ＨＢＡ３２５は、各物理的ＦＣポートに関連する仮想ポートを備える場合がある。各仮想ポートは、ＷＷＰＮ、及びＷＷＮＮからなる固有の一意のネットワークを有する場合がある。
【００２５】
クライアントは、ＵＮＩＸオペレーティングシステムやマイクロソフトウィンドウズオペレーティングシステムのような種々のオペレーティングシステム上でアプリケーションを実行するように構成された汎用コンピュータであってよい。クライアントは通常、ＳＡＮ系ネットワークを介して情報（ブロック、ディスク、又はｖｄｉｓｋの形をしている）を取得する場合は、ＳＣＳＩ（Small Computer System Interface）インタフェースプロトコルのようなブロック単位のアクセスプロトコルを使用する。ＳＣＳＩは、デバイスに依存しない標準的なプロトコルを備えた物理的入出力（Ｉ／Ｏ）インタフェースであり、ディスクのような種々の周辺装置をストレージアプライアンス３００に取り付けることを可能にする。
【００２６】
ストレージアプライアンス３００は、「ＳＣＳＩ  ｏｖｅｒ  ＴＣＰ（ｉＳＣＳＩ）」プロトコル、及び「ＳＣＳＩ  ｏｖｅｒ  ＦＣ（ＦＣＰ）」プロトコルのようなＳＡＮデプロイメントで使用される種々のＳＣＳＩ系プロトコルを備えている。したがって、イニシエータ（以後、クライアント１０４）は、ネットワーク１０２を介してｉＳＣＳＩメッセージ、及び／又はＦＣＰメッセージを発行することによりターゲットにサービスを要求し、ディスクに記憶された情報を取得する場合がある。当業者には明らかであるように、クライアントは、他のブロックアクセスプロトコルを使用して、統合ストレージアプライアンスにサービスを要求する場合もある。ストレージアプライアンスは、複数のブロックアクセスプロトコルを備えることにより、異種ＳＡＮ環境におけるｖｄｉｓｋ／ＬＵＮへの統一のとれた一貫性のあるアクセス手段を提供する。
【００２７】
ストレージアダプタ３２０は、ストレージアプライアンス上で実行されているストレージオペレーティングシステム４００と協働し、クライアントから要求された情報を取得する。ストレージアダプタは、従来の高性能ＦＣシリアルリンク、又はループトポロジのようなＩ／Ｏ相互接続構成を介してディスクに接続するためのＩ／Ｏインタフェース回路を含む。情報はストレージアダプタによって取得され、必要に応じてプロセッサ３０５（又は、アダプタ３２０自体）によって処理された後、システムバス３３０を介してネットワークアダプタ３２５ａ、及びｂに転送され、そこで、その情報がパケット、又はメッセージの形に成形され、クライアントに返送される。
【００２８】
図示の実施形態において、マルチプロトコルストレージアプライアンス上での情報の記憶は、ディスク空間の全体的論理構成を規定する、物理的記憶ディスクのクラスタから構成される１以上のストレージボリュームとして実施される。ボリューム内のディスクは通常、１以上のＲＡＩＤ（Redundant Array of Independent or Inexpensive Disks）グループとして編成される。ＲＡＩＤ実施形態は、ＲＡＩＤグループ内の所定数の物理的ディスクにわたってデータを「ストライプ状」に書き込み、そのストライプ状のデータに関する適当な冗長情報を記憶することによって、データ記憶の信頼性／完全性を向上させる。この冗長情報により、記憶装置が故障したときのデータロスの復旧が可能となる。
【００２９】
具体的には、各ボリュームは、幾つかのＲＡＩＤグループに編成さえれた物理ディスクのアレイからなる。例えばＲＡＩＤ４レベル構成によれば、各ＲＡＩＤグループ内の物理的ディスクは、ストライプ状のデータを記憶するように構成されたディスクと、そのデータのパリティを記憶するように構成されたディスクとを含む。ただし、他のＲＡＩＤレベル（例えば、ＲＡＩＤ５）の構成を使用してもよい。例示的実施形態として、最小限である一台のパリティディスク、及び一台データディスクを使用する場合がある。
【００３０】
ディスクへのアクセスを容易にするために、ストレージオペレーティングシステム４００は、仮想化システムコードと協働するｗｒｉｔｅ−ａｎｙｗｈｅｒｅファイルシステムを実施することにより、ディスクによって提供される記憶空間を「仮想化」する機能を提供する。ファイルシステムは、情報をディレクトリ、及びファイルオブジェクト（以下、「ディレクトリ」、及び「ファイル」）の階層構造としてディスク上に論理編成する。「ディスク上」の各ファイルは、データのような情報を記憶するように構成された一連のディスクブロックとして実施される一方、ディレクトリは、他のファイル及びディレクトリの名前やそれらへのリンクを記憶するための特殊形式のファイルとして実施される。仮想化システムにより、ファイルシステムは、情報をｖｄｉｓｋとしてディスク上に更に論理編成することが可能となり、それによって、ファイルやディレクトリに対するファイル単位の（ＮＡＳ）アクセスを行うことが可能となると同時に、ファイル単位のストレージプラットフォーム上にあるｖｄｉｓｋに対するブロック単位の（ＳＡＮ）アクセスを行うことが更に可能となり、それによって、ＮＡＳアプライアンスとＳＡＮアプライアンスの統合的アプローチを提供する。
【００３１】
上記のように、ｖｄｉｓｋは、普通の（正規の）ファイルから導出されるボリューム内の特殊ファイルタイプである。ただし、ディスクのエミュレーションを可能にするために、エキスポート制御機能、及び動作制限を有する。例えばクライアントがＮＦＳプロトコルやＣＩＦＳプロトコルを使用して作成可能なファイルとは違い、ｖｄｉｓｋは、例えばユーザインタフェース（ＵＩ）を使用して、特殊なタイプのファイル（オブジェクト）としてストレージアプライアンス上に作成される。例えばｖｄｉｓｋは、データと、少なくとも１つの関連ストリームｉｎｏｄｅとを含む特殊なファイルｉｎｏｄｅを含むマルチｉｎｏｄｅオブジェクトであり、関連ストリームｉｎｏｄｅには、セキュリティ情報のような属性が保持される。この特殊なファイルｉｎｏｄｅは、エミュレートディスクに関連するデータを格納するためのメインコンテナとしての働きをする。ストリームｉｎｏｄｅによれば、例えばリブート処理が行われても、ＬＵＮやエキスポートを提示し続けることが可能となり、また同時に、ｖｄｉｓｋをＳＡＮクライアントに関連する単一のディスクオブジェクトとして管理することが可能となる。
【００３２】
さらに、当業者には分かるように、本明細書に記載する本発明の技術は、いかなるタイプの特殊目的（例えば、ストレージサービスを提供するアプライアンス）のコンピュータにも、また汎用のコンピュータにも適用することができ、ストレージシステムとして実施されるスタンドアロンのコンピュータとして実施しても、ストレージシステムを含むスタンドアロンのコンピュータとして実施してもよく、あるいはそのようなコンピュータの一部として実施してもよい。さらに、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることができ、限定はしないが、例えばネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントコンピュータやホストコンピュータに直接取り付けられるディスクアセンブリにも適合させることができる。したがって、「ストレージシステム」という用語を使用した場合でも、この用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する何らかのサブシステムだけでなく、それらの構成も含むものとして広い意味で解釈しなければならない。
【００３３】
Ｃ．ストレージオペレーティングシステム
一実施形態として、ストレージオペレーティングシステムは、Ｗｒｉｔｅ  Ａｎｙｗｈｅｒｅ  Ｆｉｌｅ  Ｌａｙｏｕｔ（ＷＡＦＬ）ファイルシステムを実施するＮｅｔＡｐｐ  Ｄａｔａ  ＯＮＴＡＰオペレーティングシステムである。ただし、当然ながら、その場書き込み形ファイルシステムのような何らかの適当なファイルシステムに改良を加え、本明細書に記載する発明の原理にしたがって使用することも可能である。したがって、「ＷＡＦＬ」という用語を使用した場合でも、この用語は、本発明の教示に適合させることが可能な任意のファイルシステムを指すものとして広い意味で解釈しなければならない。
【００３４】
本明細書で使用される場合、「ストレージオペレーティングシステム」という用語は一般に、データアクセスを管理するコンピュータ上で動作するコンピュータ実行可能コードを指し、ストレージアプライアンスの場合、マイクロカーネルとして実施されるＤａｔａ  ＯＮＴＡＰストレージオペレーティングシステムのようなデータアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、ＵＮＩＸやＷｉｎｄｏｗｓ  ＮＴのような汎用オペレーティングシステム上で動作するアプリケーションとして実施してもよいし、本明細書に記載するようなストレージアプリケーション用に構成された構成機能を備えた汎用オペレーティングシステムとして実施してもよい。
【００３５】
図４は、本発明と共に使用するのに都合がよいストレージオペレーティングシステム４００を示す略ブロック図である。ストレージオペレーティングシステムは、マルチプロトコルストレージアプライアンスに格納された情報にクライアントがブロックアクセスプロトコル、及びファイルアクセスプロトコルを使用してアクセスするためのデータ経路を提供する統合ネットワークプロトコルスタック、又はマルチプロトコルエンジンを形成するように編成された一連のソフトウェア層を含む。プロトコルスタックは、ＩＰ層４１２、並びに、それを支援する搬送機構であるＴＣＰ層４１４、及びユーザデータグラムプロトコル（ＵＤＰ）層４１６のようなネットワークプロトコル層に対するインタフェースとして機能する幾つかのネットワークドライバ（例えば、ギガビットイーサネットドライバ）のメディアアクセス層４１０を含む。ファイルシステムプロトコル層は、マルチプロトコルファイルアクセスを可能にし、その目的のために、ダイレクトアクセスファイルシステム（ＤＡＦＳ）プロトコル４１８、ＮＦＳプロトコル４２０、ＣＩＦＳプロトコル４２２、及びハイパーテキストトランスファプロトコル（ＨＴＴＰ）４２４を含む。仮想インタフェース（ＶＩ）層４２６はＶＩアーキテクチャを実施し、ＤＡＦＳプロトコル４１８に必要となるリモートダイレクトメモリアクセス（ＲＤＭＡ）のようなダイレクトアクセストランスポート（ＤＡＴ）機能を提供する。
【００３６】
ｉＳＣＳＩドライバ層４２８は、ＴＣＰ／ＩＰネットワークプロトコル層を介したブロックプロトコルアクセスを可能にする一方、ＦＣドライバ層４３０は、ＦＣ  ＨＢＡ３２５と協働し、統合ストレージアプライアンスに対して、ブロックアクセス要求、及び応答の送受信を行う。ＦＣドライバ、及びｉＳＣＳＩドライバは、ＬＵＮ（ｖｄｉｓｋ）に対するＦＣ固有のアクセス制御、及びｉＳＣＳＩ固有のアクセス制御を行う。すなわち、マルチプロトコルストレージアプライアンス上の単一のｖｄｉｓｋをアクセスするときに、ｉＳＣＳＩとＦＣＰのいずれか一方、又は両方へのｖｄｉｓｋのエキスポートを管理する。さらに、ストレージオペレーティングシステムは、ＲＡＩＤプロトコルのようなディスクストレージプロトコルを実施するディスクストレージ層４４０と、例えばＳＣＳＩプロトコルのようなディスクアクセスプロトコルを実施するディスクドライバ層４５０とを含む。
【００３７】
ＳＣＳＩエンクロージャサービス（ＳＥＳ）モジュール４５５は、ディスクドライバ層４５０と協働し、ストレージオペレーティングシステム４００に対してＳＥＳを実施する。ＳＥＳモジュール４５５は、新規なデバイスドライバ（ＴＤＤ）モジュール４６０を利用して、他のオペレーティングシステムから到来したＳＥＳメッセージを処理する。協調的共用ストレージアーキテクチャにおけるＳＥＳの使用の詳細については、「SYSTEM AND METHOD FOR DISTRIBUTING ENCLOSURE SERVICES DATA TO COORDINATE SHARED STORAGE」と題する米国特許出願第１１／０７５，６１８号に記載されている。一実施形態として、ＦＣドライバモジュール４６５は、ストレージアダプタ３２０を制御する。ターゲットデバイスドライバにより、アクセスすべきストレージシステムを相互接続されたハブ、ディスク、及びストレージシステムからなるバックエンドストレージネットワーク内のターゲットデバイスとしてアクセスすることが可能になる。ストレージシステムをターゲットとして利用することにより、本発明の種々の実施形態にしたがって、幾つかの技術を容易に実施することが可能となる。
【００３８】
ディスクソフトウェア層を統合ネットワークプロトコルスタック層に橋渡しするのは、ファイルシステム４３６によって実施される仮想化システム４８０である。ファイルシステム４３６は、例えばｖｄｉｓｋモジュール４３３、及びＳＣＳＩターゲットモジュール４３４として実施される仮想化ソフトウェアと情報をやりとりする。これらのモジュールは、ソフトウェアとして実施しても、ハードウェアとして実施しても、ファームウェアとして実施しても、あるいは、それらの組み合わせとして実施してもよい。ｖｄｉｓｋモジュール４３３は、とりわけ、非常に様々なｖｄｉｓｋ（ＬＵＮ）コマンドのセットを実施し、ＳＡＮデプロイメントを管理する。これらのｖｄｉｓｋコマンドは、ファイルシステム４３６やＳＣＳＩターゲットモジュール４３４に働きかけ、ｖｄｉｓｋを実施させるための原始的なフィルシステムオペレーション（「プリミティブ」）に変換される。
【００３９】
続いて、ＳＣＳＩターゲットモジュール４３４は、ＬＵＮを特殊なｖｄｉｓｋファイルタイプに変換するマッピング手順を実施することにより、ディスク、又はＬＵＮのエミュレーションを開始する。ＳＣＳＩターゲットモジュールは、仮想化システム４８０に変換層を提供するもので、例えば、ＦＣドライバやｉＳＣＳＩドライバ４２８、４３０と、ファイルシステム４３６との間に配置され、それによって、ＳＡＮブロック（ＬＵＮ）空間とファイルシステム空間との間の変換層として機能する。ただし、ＬＵＮはｖｄｉｓｋとして表現される。ＳＡＮ仮想化をファイルシステム４３６の上に「配置」することによって、マルチプロトコルストレージアプライアンスは、従来のシステムがとっていたアプローチの逆を行い、それによって、実質的に全てのストレージアクセスプロトコルについて単一の統一されたストレージプラットフォームを提供する。
【００４０】
ファイルシステム４３６は、例えば４キロバイト（ＫＢ）単位のブロックとｉｎｏｄｅとを使用してファイルを表現するブロック単位のディスク上フォーマット表現を有するＷｒｉｔｅ  Ａｎｙｗｈｅｒｅ  Ｆｉｌｅ  Ｌａｙｏｕｔ（ＷＡＦＬ）ファイルシステムを実施する。このファイルシステムの構造の詳細な説明については、１９９８年１０月６日に発行された「METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF A FILE SYSTEM」と題するDavid Hitz他による米国特許第５，８１９，２９２号に記載されており、この特許は参照により本明細書において完全に説明されたものとして援用される。
【００４１】
Ｄ．  ＴＤＤ通信
本発明は、任意数のストレージシステムにわたるスペアのコストの分散が可能で、多数のストレージシステムオペレーションを改善することが可能な、新規な協調的共用ストレージアーキテクチャを提供することによって、従来技術の欠点を克服する。本発明は、複数のストレージシステム間におけるスペア記憶装置の記憶装置単位のロードバランシング、及び共用が可能な協調的共用ストレージアーキテクチャを提供する。その目的のために、ストレージオペレーティングシステム４００の新規なターゲットドライバモジュール４６０は、各ストレージシステムをターゲットとして機能させ、それによって、各ストレージシステムが、環境内の他のストレージシステムからコマンドを受信し、処理できるようにする。これらのコマンドは、コマンドブロックに関連付けられたメッセージとして、ネットワーク環境２００内の中間データパス２０６〜２１８介して、ストレージシステム間でやりとりされる。
【００４２】
図５は、本発明によるコマンドブロック５００を示す略ブロック図である。コマンドブロック５００は、メッセージフィールド５０５、次のコマンドブロックフィールド５１０、１つ前のコマンドブロックフィールド５１５、アダプタ・インデックスフィールド５２０、イニシエータＩＤフィールド５２５、コマンド参照番号フィールド５３０、データ方向フィールド５３５、タスクコードフィールド５４０、コマンド記述子ブロックフィールド５４５、ＬＵＮフィールド５５０、ターゲットＩＤフィールド５５５、タスク管理フラグフィールド５６０、データバッファフィールド５６５、データ長フィールド５７０、転送長フィールド５７５、転送量フィールド５８０、ＳＣＳＩステータスフィールド５８５、応答コードフィールド５９０、及びセンスデータフィールド５９５を含み、代替実施形態では、更に別のフィールド５９７を含む場合もある。メッセージフィールド５０５は、コマンドブロック５００全体に関連するメッセージを含む。このメッセージは、所望の処理に応じて、複数のタイプのうちの１つであってよい。
【００４３】
次のコマンドブロックフィールド５１０、及び１つ前のコマンドブロックフィールド５１５は、ターゲットデバイスドライバ４６０によって使用され、複数の受信メッセージ、又は送信メッセージを処理する際に使用されるメッセージの連結リストの生成に使用される。アダプタインデックスフィールド５２０は、コマンドブロック５００に関連する特定アダプタのインデックス値を含む。アダプタインデックスフィールド５２０は、特定の要求が与えられたアダプタへのメッセージの継続や、メッセージの完了を追跡記録するために使用される。イニシエータＩＤフィールド５２５は、要求が与えられたイニシエータのループＦＣ  ＩＤを含む。コマンド参照番号フィールド５３０は、コマンドブロック５００により補強されたコマンドの番号を含む。この参照番号は、相互に関連する複数のコマンドを追跡記録し、それらが確実に適切な順序で実行されるようにするために使用される場合がある。データ方向フィールド５３５は、発明者の視野に対する、参照コマンドのデータフローの方向を示す指示を有する。例えば、「ＩＮ」という値は、イニシエータへ向かうデータフローを示す一方、「ＯＵＴ」という値は、イニシエータからのデータフローを示す。
【００４４】
タスクコードフィールド５４０は、このコマンドに対して実施すべきキューイングのタイプを指定する。コマンド記述子ブロックフィールド５４５は、参照コマンドに関連する従来のＳＣＳＩコマンドブロックを含む。ＬＵＮフィールド５５０は、そのコマンドのターゲットＩＤを指定し、ターゲットＩＤフィールド５５０は、ターゲットのループＩＤを含む。タスク管理フラグフィールド５６０は、ターゲットデバイスドライバがコマンドブロックの制御に使用するプライベートフラグを含む。データバッファフィールド５６５は、そのコマンドブロックに対して割り当てられたデータバッファを参照するポインタを含む。データ長フィールド５７０は、データバッファフィールド５６５によって参照される割り当て済みバッファの長さを指定する。転送長フィールド５７５は、参照コマンドのデータ転送の長さ値を含む。この長さ値は、データ長フィールド５７０の値以下である場合がある。一実施形態において、ＳＥＳモジュールは、全てのコマンドについて長さ値をこのように設定し、そのコマンドが何バイトであるかを正確にターゲットデバイスドライバに通知する場合がある。転送量フィールド５８０は、ターゲットデバイスドライバが転送データの総量を追跡記録するために使用される。ＳＣＳＩステータスフィールド５８５は、従来のＦＣＰ応答のステータスフィールドの値を含む。応答コードフィールド５９０は、オーバラン状態、又はアンダーラン状態の報告に使用され、センスデータフィールド５９５は、参照コマンドに関する従来のＳＣＳＩセンスコードを含む。
【００４５】
[協調的共用ストレージアーキテクチャにおけるスペアの割り当て]
新規な協調的共用ストレージアーキテクチャによって提供される機能の１つは、ストレージシステム環境内の全てのストレージシステムにわたって、例えばディスクドライブのようなスペア記憶装置のコストを分散する能力である。図２の例示的環境では、ディスクシェルフ１１２、１１４上のディスクはいずれも、ストレージシステム３００のうちのいずれかによってアクセスされる場合がある。したがって、いずれかのディスクシェルフ上に物理的に配置されたスペアディスクは、故障したディスクを置き換えるために、いずれかのストレージシステムによって使用される場合がある。
【００４６】
図６は、本発明の一実施形態による、スペアプールからスペア記憶装置を割り当てる手順のステップの詳細を示すフロー図である。上記のように、新規な協調的共用ストレージアーキテクチャによれば、複数のストレージシステム間でスペアディスクのコストの分散が可能となる。この手順は、ステップ６０５から始まり、ステップ６１０に続き、そこでストレージシステムは、ディスクドライブがエラー状態、または故障状態にあることを検出する。この検出は、従来のＦＣクエリを利用して行われ、他のストレージシステムから受信したＳＥＳ情報の結果として検出される。
【００４７】
エラー状態が検出されると、ステップ６１５で、ストレージオペレーティングシステムは、スペアプールの中からスペアディスクドライブを選択する。例えば、このスペアプールは、中間ネットワークデバイスに相互接続された独立したディスクシェルフ、又は、複数のディスクシェルフ間に散在する多数のディスクからなる。なお、スペアディスクの選択は、種々のスペア選択技術を使用して達成することができる。そのようなスペア選択技術の１つは、「SYSTEM AND METHOD FOR ALLOCATING DISKS IN NETWORKED STORAGE」と題するAlan L. Rowe他による米国特許出願第１０／０２７，０１３号に記載されている。もちろん、当業者には明らかなように、他のスペアディスク選択技術を使用してもよい。
【００４８】
適当なスペアディスクドライブが選択されると、ステップ６２０において、ストレージシステムは、選択されたスペアディスクの所有権を主張する。ここで、所有権は、例えば、「SYSTEM AND METHOD FOR IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE」と題するSusan M. Coatney他による米国特許出願第１０／０２７，４５７号に記載されているようなセクタＳ所有権技術を使用して主張される。選択されたディスクの所有権が主張されると、ステップ６２５において、ストレージシステムは、選択されたスペアディスク上へのデータの再構築を開始することができる。データ再構築は、従来のＲＡＩＤ技術にしたがって実施することができる。そして、手順はステップ６３０で終了する。例示的実施形態として、スペアプールは、中間ネットワークデバイスに相互接続されたディスクシェルフのうちの任意のものにわたって配置される場合がある。したがって、スペアプールは、ストレージ環境内の全てのストレージシステム間で共用される場合もあり、それによって、ストレージ環境における所有権に関するトータルコストは低減される。従来の２クラスタ環境では、スペアのコストは、２つのストレージシステムにわたってしか分散されないが、本発明の新規な協調的共用ストレージ環境を使用すれば、環境内のＮ個のストレージシステムにわたってコストを分散することができる。
【００４９】
新規な協調的ストレージアーキテクチャのもう１つの顕著な特徴は、環境の種々の機能を必要に応じて動的に増大させる機能にある。新規な協調的共用ストレージシステム環境によって可能となる増大される機能としては、とりわけ、更に別のストレージシステム、ディスクシェルフ、又は他のネットワークデバイスの挿入がある。例えば、図７は、橙色のストレージストレージシステム３００Ｄが図２のストレージシステム環境２００に挿入された場合のストレージ環境７００を示している。橙色のストレージシステム３００Ｄは環境内に相互接続され、フロントエンドデータアクセスパス７１５によってネットワーク１０２に相互接続され、中間データアクセスパス７０５、７１０によってハブＨ１、Ｈ２に相互接続される場合がある。橙色のストレージシステム３００Ｄは、本発明の一実施形態によるターゲットデバイスドライバ４６０を含む。その結果、ストレージシステム３００Ｄは、上に記載した従来のディスク所有権技術を使用して、ディスクシェルフ１１２、１１４に格納された一連のディスクの所有権を引き継ぐことができ、それによって、クライアントから発せられたデータアクセス要求の処理のために利用可能な処理能力を増加させることができる。すなわち、橙色のストレージシステム３００Ｄは、使用頻度の高いボリュームを格納している一連のディスクの所有権を引き継ぐことにより、環境７００内の複数のストレージシステム３００にわたるロードバランスの分散をより良好にすることができる。
【００５０】
新規な協調的共用ストレージアーキテクチャによれば、ストレージシステムによって提供される更に別のディスクシェルフの挿入により、ストレージシステム環境の高速なスケーリングが更に可能になる。各ストレージシステムが、中間ネットワークデバイスに相互接続された各シェルフのディスクと通信することができるため、バックエンドデータパスの配線を変える必要がなくなる。
【００５１】
図８は、本発明の一実施形態による更に別のディスクシェルフ８０５の挿入を示す例示的ストレージ環境８００を示す略ブロック図である。ここで、第３のディスクシェルフ８０５は、バックエンドデータパス８１０、８１５を介してハブＨ１、Ｈ２に相互接続される。図示の実施形態によれば、ディスクシェルフ８０５内のディスクは全て、ストレージネットワーク８００内のどのストレージシステム３００によってアドレス指定することも可能である。ストレージシステム３００のうちの幾つかに関してボリュームの記憶容量を増加させなければならない場合、ディスクシェルフ８０５の挿入が必要になることがある。また、ディスクシェルフ８０５を追加することにより、他のディスクシェルフ１１２、１１４のうちの一方のディスクが故障その他のエラー状態に万が一なったときに環境８００で使用するためのスペアディスクを設けることもできる。したがって、新規な協調的共用ストレージアーキテクチャによれば、ディスクをストレージシステム環境８００に動的に追加することができ、それを環境内の任意のストレージシステム３００によって使用することができる。
【００５２】
図９は、本発明の一実施形態による不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）デバイス９０５の追加を示す例示的ストレージ環境９００を示す略ブロック図である。図示の環境９００では、ＮＶＲＡＭ９０５は、ストレージシステムがデータをディスクに記憶する前に「ステージング」（記憶）するために使用される。ストレージシステムは通常、データアクセス要求が例えば不揮発性メモリやディスクのような永久的メモリに永久的に記憶されるまで、データアクセス要求に対するアクノリッジ（肯定応答））を返さない。データをディスクに直接記憶する顕著な欠点は、データをディスクに書き込むのに要する時間にある。高い負荷状況下では、ディスクサブシステムがボトルネックになって、ストレージシステムは、大量のデータがディスクに記憶されるまで待ってからでないと、クライアントからの要求に対するアクノリッジを返すことができない。本発明の一実施形態によれば、ストレージシステムによって受信されたデータアクセス要求をＮＶＲＡＭデバイス９０５に直接記憶することができるため、ストレージシステムは、データアクセス要求に対するアクノリッジを返すことが可能になる。ＮＶＲＡＭへの要求の記憶は一般に、それを物理的ディスク装置に記憶するよりも高速であるから、ストレージシステムの処理能力は向上する。その後、ストレージシステム内で実行される独立したプロセスが、「遅延書き込み」処理を実施し、要求されたデータをＮＶＲＡＭデバイスからディスクへ転送したり、あるいは、周期的な時間間隔でそのデータをＮＶＲＡＭデバイス９０５から「消去」する。なお、この実施形態は、ＮＶＲＡＭを例として説明されているが、例えばフラッシュＲＡＭのような、任意の適当な永久記憶装置が使用可能である。
【００５３】
新規な協調的共用ストレージアーキテクチャのもう１つの顕著な特徴は、環境内の種々のストレージシステム、及び記憶装置の間で、例えば、データコンテナの記憶作業のロードバランスを取ることが容易な点にある。図１０は、２つのストレージシステム間でデータコンテナのロードバランスをとる手順１００のステップの詳細を示すフロー図である。データコンテナは、ストレージシステムによって個別に提供されるデータボリューム、データ集合、又はその他特定量のデータを有する場合がある。データ集合の詳細については、「EXTENSION OF WRITE ANYWHERE FILE LAYOUT」と題するJohn K. Edwards他による米国特許出願第１０／８３６，８１７号に記載されている。手順１０００はステップ１００５から始まり、ステップ１０１０へ続き、そこで「ソース」ストレージシステムは、ソースストレージシステムがロードバランスの所定の閾値を超えていることを検出する。この閾値は、多数の仕方で設定することができ、例えば、一単位時間あたりに特定のデータコンテナに対して行われる処理の数や、利用されているプロセッサの割合としして設定される場合がある。閾値を超えると、手順はステップ１０１５において、転送すべきデータコンテナを選択し、ステップ１０２０において、「宛先」ストレージシステムを選択する。宛先ストレージシステムは、種々の従来のロードバランス決定要素に基づいて選択することができ、例えば、未使用プロセッサの割合等に基づいて選択される場合がある。
【００５４】
ステップ１０２５において、ストレージシステムは、データコンテナの所有権を宛先ストレージシステムに移転する。ソースストレージシステムと宛先ストレージシステムがいずれも、中間ネットワークデバイスに相互接続された同じ記憶装置を使用しているため、データコンテナの所有権の移転は、データコンテナを格納しているディスクの所有権を移転することによって行われる場合もある。こうした所有権の実施については、「SYSTEM AND METHOD FOR IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE」と題する米国特許出願第１０／０２７，４５７号に記載されている。そして、手順はステップ１０３０で終了する。新規な協調的共用ストレージアーキテクチャ環境におけるロードバランシングのもう１つの例は、「SYSTEM AND METHOD FOR REAL-TIME BALANCING OF USER WORKLOAD ACROSS MULTIPLE STORAGE SYSTEMS WITH SHARED BACK END STORAGE」と題するSwaminathan Ramany他による米国特許出願第１０／９９２，８９３号にも記載されている。
【００５５】
もう一度まとめると、本発明は、ハブのような中間ネットワークデバイスを介して複数のディスクシェルフ、及び複数のストレージシステムの間で通信が可能な新規な協調的共用ストレージアーキテクチャに関する。この新規な協調的共用ストレージアーキテクチャを利用することで、種々の改善されたストレージ環境機能を実現することができる。１つの特徴は、スペア記憶装置のコストをストレージシステム環境内の全てのストレージシステムにわたって分散することができ、それによって、所有権のトータルコストを低減し、重複するスペアストレージプールの必要性をなくすことにある。
【００５６】
第２の特徴は、ストレージ環境における必要性の変化に応じて、リソースを動的に追加する機能である。例えば、ネットワークを利用してストレージシステムをクライアントに相互接続し、さらに中間ネットワークデバイスのうちの幾つかを利用することにより、ストレージシステムをストレージ環境に追加することができる。その後、新たに追加されたストレージシステムは、中間ネットワークデバイスに相互接続された全てのディスクシェルフと通信することができる。同様に、幾つかのディスクシェルフ、又はディスクを中間ネットワークデバイスに接続することにより、更に別の記憶装置を環境に挿入することができる。その後、新たに追加された記憶装置は、環境内のいずれのストレージシステムによってアドレス指定することも可能になる。
【００５７】
本発明の第３の特徴は、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）デバイスのようなバックエンドストレージデバイスをネットワーク環境に追加する機能である。バックエンドストレージデバイスは、従来のディスクドライブを利用して、より高速にデータをＮＶＲＡＭに記憶するために使用される場合がある。また、それによって、各ストレージシステムにおけるＮＶＲＡＭその他の使用を省略することも可能になる。新規な協調的共用ストレージアーキテクチャによって提供される第４の有利な特徴は、ロードバランス閾値を超えているストレージシステムから幾つかのデータコンテナの所有権を使用頻度の低いストレージシステムに移転することにより、１以上のストレージシステム間のロードバランスをとる機能である。
【００５８】
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、当然ながら、記載した実施形態の利点の一部、又は全部を維持しながら、それらの実施形態に他の変形や変更を施すことも可能である。なお、具体的には、本発明にしたがって任意数のＨＢＡを使用することができる。また、所与の物理的ポートに任意数の仮想ポートを関連付けてもよい。本明細書に記載した手順、又はプロセスは、ハードウェアで実施しても、プログラム命令を有するコンピュータ読み取り可能媒体として実施されるソフトウェアで実施しても、ファームウェアで実施してもよく、また、それらの組み合わせによって実施してもよい。したがって、添付の特許請求の範囲の目的は、そうした変形や変更も本発明の真の思想、及び範囲に含めることにある。
【図面の簡単な説明】
【００５９】
【図１】前述のように、ストレージシステムクラスタ環境を示す略ブロック図である。
【図２】本発明の一実施形態によるストレージシステム環境の略ブロック図である。
【図３】本発明の一実施形態によるストレージシステムの略ブロック図である。
【図４】本発明の一実施形態によるストレージオペレーティングシステムの略ブロック図である。
【図５】本発明の一実施形態によるコマンドブロックデータ構造の略ブロック図である。
【図６】本発明の一実施形態によるスペアディスクプールからスペアディスクを選択する手順のステップの詳細を示すフロー図である。
【図７】本発明の一実施形態による更なるストレージシステムの追加を示すストレージシステム環境の略ブロック図である。
【図８】本発明の一実施形態による更なるディスクシェルフの追加を示すストレージシステム環境の略ブロック図である。
【図９】本発明の一実施形態による不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）の追加を示すストレージシステム環境の略ブロック図である。
【図１０】本発明の一実施形態によるロードバランシング手順のステップの詳細を示すフロー図である。
【図１】
2008529167.tif 000003
【図２】
2008529167.tif 000004
【図３】
2008529167.tif 000005
【図４】
2008529167.tif 000006
【図５】
2008529167.tif 000007
【図６】
2008529167.tif 000008
【図７】
2008529167.tif 000009
【図８】
2008529167.tif 000010
【図９】
2008529167.tif 000011
【図１０】
2008529167.tif 000012
【国際調査報告】
2008529167.tif 000013
2008529167.tif 000014
2008529167.tif 000015