(57)【特許請求の範囲】
【請求項１】
第１のインタフェースポート、第１のＣＰＵ、第１のメモリ、及び第１の論理ユニットを有する第１のデータストレージシステムと、
第２のインタフェースポート、第２のＣＰＵ、第２のメモリ、及び第２の論理ユニットを有し、前記第１のデータストレージシステムに接続される第２のデータストレージシステムと、
第１のスイッチを介して前記第１のデータストレージシステムに接続され、第２のスイッチを介して前記第２のデータストレージシステムに接続される第３のスイッチと、
前記第３のスイッチと接続されるサーバと、
を備えるシステムであって、
前記第１のデータストレージシステムは、前記第３のスイッチを介して前記サーバから前記第１の論理ユニットに向けられたＩ／Ｏコマンドを受信し、
前記第３のスイッチは、前記第３のスイッチから前記第２のスイッチと前記第２のデータストレージシステムを通過して前記第１のデータストレージシステムに至る第１のパスの転送コストと、前記第３のスイッチから前記第１のスイッチを通過して前記第１のデータストレージシステムに至る第２のパスの転送コストとが実際には異なる場合に、前記第１のパスの転送コストと前記第２のパスの転送コストを同じ値とするルーティング情報を有し、
前記ルーティング情報を参照して、転送コストに基づき、前記第２のデータストレージシステムを通過する前記第１のパス及び前記第２のデータストレージシステムを通過しない前記第２のパスを、前記第１のデータストレージシステムへの通信に使用するパスに決定する
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は概して、マルチパスストレージシステムに関し、特に、複数のストレージシステムにわたる仮想スイッチの実行及びストレージとサーバとの間のマルチパシングによるマルチパス接続における無停止データ移行及びＩ／Ｏ負荷バランシングに関する。
【背景技術】
【０００２】
０００２    最近の傾向によると、ＴＲＩＬＬ（Transparent Interconnection of Lots of Links）として知られる新しいマルチパスのネットワーキング方法は、レイヤ２（Ｌ２）イーサネット上のネットワーキングのための標準化のプロセス中である。ＴＲＩＬＬによって、Ｌ２ネットワークは、ＳＴＰ（スパニングツリープロトコル）に基づいた伝統的なイーサネットでは不可能だった２つの並行データ転送パスを確立することができる。ＴＲＩＬＬがストレージネットワークに設定され、かつ準備ができた時に、サーバとストレージの間のデータ転送が複数のパスを通して実行される。
【０００３】
０００３    図１は、従来のストレージエリアネットワークトポロジの一例である。サーバコンピュータ３００は、スイッチ２００Ａに結合されて、これはスイッチ２００Ｂ及び２００Ｃに並列に結合され、これらはスイッチ２００Ｄに結合され、これはデータストレージ２００に結合されている。ストレージへの／からのサーバからの／へのデータ転送は、パス３００−２００Ａ−２００Ｂ−２００Ｄ−１００及び３００−２００Ａ−２００Ｃ−２００Ｄ−１００を通して並行して実行される。この場合、パスの両方を通して受信される過剰なトラフィックに対処できないスイッチ２００Ｄのネットワークポート２１０Ａ又はデータストレージ１００のネットワークポート１１０に性能ボトルネックがあるかもしれない。
【０００４】
０００４    Ｌ２ネットワーキングに加えて、別の問題は、複数のストレージシステム間でのデータの移行のためにサービスの中断が生じることである。図２は、ストレージエリアネットワークの従来の論理構成の一例である。サーバコンピュータ３００は、ストレージシステム１００Ａによって提供される一つ以上の論理ユニット５３０をマウントする。サーバ３００上で稼働するオペレーティングシステムは、そのネットワークアドレス（ＭＡＣアドレス、ＦＣＩＤ）又はＷＷＮ（ワールドワイドネーム）によって識別されるネットワークポート１１０Ａによって論理ユニット５３０を認識する。管理者が論理ユニット５３０をネットワークポート１１０Ａからポート１１０Ｂに移行しようとする場合、サーバオペレーティングシステムは、論理ユニットに記憶された静的データイメージを一時停止し、移行先ネットワークポート１１０Ｂを通して新しい論理ユニットをリマウントするために、Ｉ／Ｏプロセスを停止しなければならない。しかし、エンタプライズデータセンタで稼働するミッション・クリティカルなアプリケーション又はビジネス・クリティカルなアプリケーションは、その業務の安定性を維持しながら一時停止することはできない。
【０００５】
０００５    ストレージシステムの境界を越えて、例えば、一つのストレージシステム１００Ａのポート１１０Ａから別のストレージシステム１００Ｂのポート１１０Ｃに論理ユニットを移行すべきときに、同じ問題が発生する。そのために、システム間のデータコピー操作が必要となるため、Ｉ／Ｏ一時停止時間は内部ＬＵ移行よりも長くなる。さらに、伝統的なシングルパスネットワークのもう一つの問題は、ネットワークパスが新しいデータストレージ装置に再設定されなければならないので、ストレージシステム１００Ａを取り除いた後でＩ／Ｏサービスが一時停止される可能性があるということである。
【発明の概要】
【０００６】
０００６    本発明の典型的な実施形態は、複数のストレージシステムにわたる仮想スイッチの実行及びストレージとサーバとの間のマルチパシングによる、マルチパス接続における無停止データ移行及びＩ／Ｏ負荷バランシングを提供することである。データストレージは、スイッチング機能及び仮想ポート（ネットワークインタフェース）を備えている。ネットワークルーティング及びパス構成設定は、複数のデータストレージシステムの間で共有される。論理的には、一つの仮想ネットワークスイッチは、複数のデータストレージシステムにわたって稼働する。ネットワーク装置は、サーバとストレージの間にマルチパス通信を確率する能力を有する。これによって、古いデータストレージ装置を取り除いた後のＩ／Ｏサービスの継続を可能にする。なぜならば、別のデータパスが移行ターゲット装置との通信を稼働状態に維持するからである。このようにして、本発明は、マルチパス接続上における無停止データ移行及びＩ／Ｏ負荷バランシングを完成するために、複数のストレージシステムにわたる仮想スイッチの実行及びストレージとサーバとの間のマルチパシングを可能にする。
【０００７】
０００７    本発明の一態様に従って、システムは、少なくとも一つの第１のインタフェースポート、第１のＣＰＵ、第１のメモリ、及び複数の第１の論理ユニットを含む第１のデータストレージシステムと、少なくとも一つの第２のインタフェースポート、第２のＣＰＵ、第２のメモリ、及び複数の第２の論理ユニットを含む第２のデータストレージシステムであって、前記第１のデータストレージシステムに接続される、第２のデータストレージシステムと、複数のスイッチと、前記スイッチの第１のグループを介して前記第１のデータストレージシステムと接続されるとともに、前記スイッチの第２のグループを介して前記第２のデータストレージシステムと接続されるサーバであって、前記第１のグループ及び前記第２のグループは、前記第１のグループと前記第２のグループの両方に含まれない少なくとも一つのスイッチを有する、サーバとを備える。前記第１のデータストレージシステムは、前記第１のグループのスイッチを介して前記サーバから前記複数の第１の論理ユニットに向けられたＩ／Ｏコマンドを受信する。前記第１のデータストレージシステムは、前記第１のストレージシステムと前記第２のデータストレージシステムの両方の前記ポートに関する第１の情報を維持する。前記第１の情報は、前記第２のデータストレージシステムを通過する少なくとも一つのパス及び前記第２のデータストレージシステムを通過しない少なくとも一つの他のパスを含む、前記サーバと前記第１のデータストレージシステムとの間のマルチパス通信を生成するために使用される。
【０００８】
０００８    いくつかの実施形態では、前記第１の情報は、前記第１のデータストレージシステム、前記第２のデータストレージシステム、前記複数のスイッチ、及び前記サーバのポートの間のパスに関連した情報を含む。前記第１の情報は、前記第１のデータストレージシステム及び前記複数のスイッチ及び前記サーバのポートの間でデータを送信するための負荷情報と、前記第２のデータストレージシステム及び前記複数のスイッチ及び前記サーバのポートの間でデータを送信するための負荷情報とを含む。前記第１のデータストレージシステムと前記第２のデータストレージシステムの両方の前記ポートがＷＷＰＮによって識別される。
【０００９】
０００９    特定の実施形態では、前記第１のデータストレージシステム及び前記第２のデータストレージシステムのうちの一方は、移行先システムとしての前記第１のデータストレージシステム及び前記第２のデータストレージシステムのうちの他方に対してデータを移行するための移行元システムである。データ移行のために、前記移行先システムは、前記移行元システムのソースポートと同じ識別子を有するターゲットポートとして仮想ポートを作成するとともに、前記ターゲットポートに論理ユニットを作成し、前記移行元システムは、前記移行元システム内の前記データを含む論理ユニットから前記移行先システムの前記ターゲットポート上の前記論理ユニットへのデータコピーを実行するとともに、前記移行元システムの前記ソースポートを停止状態にし、前記移行先システムは、前記移行先システムの前記ターゲットポートを稼働する。前記第１のデータストレージシステムの前記ポートの一つに新たに接続された装置の検出に応じて、前記第１のデータストレージシステムは、前記新しく接続された装置と前記第１のデータストレージシステムの前記接続されたポートの間のパスに関連する情報を追加し、前記第１のデータストレージシステムへの接続を介して前記複数のスイッチ、前記サーバ、及び前記第２のデータストレージシステムに前記追加された情報を通知する。管理コンピュータは、前記スイッチの一つに接続される。前記管理コンピュータからの要求に応じて、前記スイッチは、前記サーバのポートと、前記第１のデータストレージシステム及び前記第２のデータストレージシステムの少なくとも一方のポートの間のパス情報を更新する。
【００１０】
００１０    本発明の別の態様は、少なくとも一つの第２のインタフェースポートを有する第２のデータストレージシステムと、複数のスイッチと、前記スイッチの第１のグループを介して第１のデータストレージシステムに接続されるとともに、前記スイッチの第２のグループを介して前記第２のデータストレージシステムに接続されるサーバとを含むシステムにおける第１のデータストレージシステムであって、前記第１のグループ及び前記第２のグループが、前記第１のグループ及び前記第２のグループの両方に含まれない少なくとも一つのスイッチを有する、第１のデータストレージシステムを対象とする。前記第１のデータストレージシステムは、少なくとも一つの第１のインタフェースポートと、第１のＣＰＵと、第１のメモリと、複数の第１の論理ユニットとを備える。前記第１のデータストレージシステムは、前記第１のグループのスイッチを介して前記サーバから前記複数の第１の論理ユニットに向けられたＩ／Ｏコマンドを受信する。前記第１のデータストレージシステムは、前記第１のストレージシステムと前記第２のデータストレージシステムの両方の前記ポートに関する第１の情報を維持する。前記第１の情報は、前記第２のデータストレージシステムを通過する少なくとも一つのパス及び前記第２のデータストレージシステムを通過しない少なくとも他の一つのパスを含む、前記サーバと第１のデータストレージシステムの間のマルチパス通信を生成するために使用される。
【００１１】
００１１    いくつかの実施形態では、前記第２のデータストレージシステムは、移行先システムとしての前記第１のデータストレージシステムにデータを移行するための移行元システムである。データ移行のために、前記第１のデータストレージシステムは、    前記第２のデータストレージシステムのソースポートと同じ識別子を有するターゲットポートとしての仮想ポートを作成し、前記ターゲットポートに論理ユニットを作成し、かつ  前記第２のデータストレージシステム内の前記データを含む論理ユニットから、前記第１のデータストレージシステムの前記ターゲットポート上の前記論理ユニットへのデータコピーが実行された後、かつ前記第２のデータストレージシステムの前記ソースポートが停止状態にされた後に、前記第１のデータストレージシステムの前記ターゲットポートを稼働する。
【００１２】
００１２    本発明の別の態様は、少なくとも一つの第１のインタフェースポート、第１のＣＰＵ、第１のメモリ、及び複数の第１の論理ユニットを含む第１のデータストレージシステムと、少なくとも一つの第２のインタフェースポート、第２のＣＰＵ、第２のメモリ、及び複数の第２の論理ユニットを含む第２のデータストレージシステムであって、前記第１のデータストレージシステムに接続される、第２のデータストレージシステムと、複数のスイッチと、前記スイッチの第１のグループを介して前記第１のデータストレージシステムと接続されるとともに、前記スイッチの第２のグループを介して前記第２のデータストレージシステムと接続されるサーバであって、前記第１のグループ及び前記第２のグループは、前記第１のグループと前記第２のグループの両方に含まれない少なくとも一つのスイッチを有する、サーバとを備えるシステムにおけるマルチパス通信方法を対象とする。この方法は、前記スイッチを介して前記サーバから前記複数の第１の及び第２の論理ユニットの少なくとも一つに向けられたＩ／Ｏコマンドを受信することと、前記第１のストレージシステムと前記第２のデータストレージシステムの両方の前記ポートに関する第１の情報を維持することと、前記第２のデータストレージシステムを通過する少なくとも一つのパス及び前記第２のデータストレージシステムを通過しない少なくとも他の一つのパスを含む、前記サーバと前記第１のデータストレージシステムとの間のマルチパス通信を生成するために前記第１の情報を使用することとを含む。
【００１３】
００１３    特定の実施形態では、前記方法は、移行元システムとしての前記第１のデータストレージシステム及び前記第２のデータストレージシステムのうちの一方から、移行先システムとしての前記第１のデータストレージシステム及び前記第２のデータストレージシステムの他方にデータを移行するためのデータ移行プロセスを含む。このデータ移行プロセスは、前記移行元システムのソースポートと同じ識別子を有するターゲットポートとしての仮想ポートを作成することと、前記ターゲットポートに論理ユニットを作成することと、前記移行元システム内の前記データを含む論理ユニットから、前記移行先システムの前記ターゲットポート上の前記論理ユニットへのデータコピーを実行することと、前記移行元システムの前記ソースポートを停止状態にすることと、前記移行先システムの前記ターゲットポートを稼働することとを含む。前記方法は、管理コンピュータからの要求に応じて、前記サーバのポートと、前記第１のデータストレージシステム及び前記第２のデータストレージシステムの少なくとも一方のポートの間のパス情報を更新することをさらに含む。
【００１４】
００１４    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１５】
【図１】００１５    図１は、従来のストレージエリアネットワークトポロジの一例である。
【図２】００１６    図２は、ストレージエリアネットワークの従来の論理構成の一例である。
【図３】００１７    図３は、本発明の一実施形態に従ったストレージネットワーク構成の一例を示す。
【図４】００１８    図４は、サーバコンピュータのハードウェア構成を示す。
【図５】００１９    図５は、ネットワークスイッチのハードウェア構成を示す。
【図６】００２０    図６は、データストレージのハードウェア構成を示す。
【図７】００２１    図７は、管理コンピュータのハードウェア構成を示す。
【図８】００２２    図８は、メモリに格納され、サーバコンピュータ上で稼働するソフトウェアの一例を示す。
【図９】００２３    図９は、メモリに格納され、スイッチ上で稼働するソフトウェアの一例を示す。
【図１０】００２４    図１０は、メモリに格納され、データストレージ上で稼働するソフトウェアの一例を示す。
【図１１】００２５    図１１は、メモリに格納され、管理コンピュータ上で稼働するソフトウェアの一例を示す。
【図１２】００２６    図１２は、サーバコンピュータのメモリにおけるボリューム構成情報の例示的なデータ構造を示す。
【図１３】００２７    図１３は、スイッチのメモリにおけるルーティング情報の例示的なデータ構造を示す。
【図１４】００２８    図１４は、スイッチのメモリにおける伝送ポート情報の例示的なデータ構造を示す。
【図１５】００２９    図１５は、データストレージのメモリにおけるローカルストレージネットワークルート情報の例示的なデータ構造を示す。
【図１６】００３０    図１６は、データストレージのメモリにおける共有ストレージネットワークルート情報の例示的なデータ構造を示す。
【図１７】００３１    図１７は、データストレージのメモリにおけるストレージ伝送ポート情報の例示的なデータ構造を示す。
【図１８】００３２    図１８は、データストレージのメモリ内のＬＵ構成情報の例示的なデータ構造を示す。
【図１９】００３３    図１９は、本実施形態に従ったストレージネットワークトポロジの一例を示す。
【図２０】００３４    図２０は、スイッチ上のルーティング情報及び伝送ポート情報、又はデータストレージ上の共有ローカルストレージネットワークルート情報及びストレージ伝送ポート情報を更新するための流れ図の一例である。
【図２１】００３５    図２１は、サーバからストレージへの一つ以上のパスを選択するための流れ図の一例である。
【図２２】００３６    図２２は、２つのデータストレージシステムの間のローカルストレージネットワークルート情報を組み合わせるための流れ図の一例である。
【図２３】００３７    図２３は、データストレージシステムを越えたデータ移行の流れ図の一例である。
【図２４】００３８    図２４は、仮想スイッチ上の仮想ポートの論理的説明図の一例である。
【発明を実施するための形態】
【００１６】
００３９    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１７】
００４０    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１８】
００４１    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び情報提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１９】
００４２    本発明の例示的な実施形態は、下記で詳細に説明されるように、複数のストレージシステムにわたる仮想スイッチの実行及びストレージとサーバの間のマルチパシングによる、マルチパス接続における無停止データ移行及びＩ／Ｏ負荷バランシングのための装置、方法、及びコンピュータプログラムを提供する。
【００２０】
００４３    図３は、本発明の一実施形態に従ったストレージネットワーク構成の一例を示す。第１のサーバコンピュータ３００Ａ及び第２のサーバコンピュータ３００Ｂはスイッチ２００Ａに結合され、これは２つのスイッチ２００Ｂ及び２００Ｄに結合される。スイッチ２００Ｂは、第１のデータストレージ１００Ａに接続されたスイッチ２００Ｃに接続されている。スイッチ２００Ｄは、第２のデータストレージ１００Ｂに接続されたスイッチ２００Ｅに接続されている。管理コンピュータ４００は、スイッチ２００Ｂに接続されている。サーバ３００は、業務アプリケーションを実行し、かつストレージ１００をターゲットとするＩ／Ｏ作業負荷を生成する。スイッチ２００は、ネットワークスイッチ、すなわち、ＴＲＩＬＬプロトコルをサポートするレイヤ２イーサネットスイッチである。データストレージ１００は、多数のディスクドライブ（ＨＤＤ）又はソリッドステートドライブ（ＳＳＤ）がインストールされた外部ストレージシステムである。管理コンピュータ４００は、ストレージネットワーク全体の管理を提供する。図３では、第１のサーバコンピュータ３００Ａと第１のデータストレージ１００Ａの間の通信は、パス３００Ａ−２００Ａ−２００Ｂ−２００Ｃ−１００Ａとパス３００Ａ−２００Ａ−２００Ｄ−２００Ｅ−１００Ｂ−１００Ａの両方を通して確立することができる。
【００２１】
００４４    図４は、サーバコンピュータ３００のハードウェア構成を示す。ＣＰＵ３３０、メモリ３４０、入力装置３６０（例えば、キーボード、マウスなど）、及び出力装置３７０（例えば、外部ディスプレイモニタに接続されたビデオグラフィックカード）は、メモリコントローラ３５０を通して相互接続される。Ｉ／Ｏコントローラ３２０によって扱われるすべてのＩ／Ｏは、ネットワークインタフェース３１０を通して内部ＨＤＤ装置３８０又は外部ストレージ装置で処理される。この構成は、多目的ＰＣによって実現することができる。
【００２２】
００４５    図５は、ネットワークスイッチ２００のハードウェア構成を示す。ＣＰＵ２３０及びメモリ２４０は、メモリコントローラ２５０を通して相互接続される。Ｉ／Ｏコントローラ２２０によって扱われるＩ／Ｏは、複数のネットワークインタフェース２１０を通して処理される。
【００２３】
００４６    図６は、データストレージ１００のハードウェア構成を示す。ＣＰＵ１３０及びメモリ１４０は、メモリコントローラ１５０を通して相互接続される。Ｉ／Ｏコントローラ１２０によって扱われるＩ／Ｏは、ネットワークインタフェース３１０を通して内部ＨＤＤ装置１８０又は外部ストレージ装置で処理される。
【００２４】
００４７    図７は、管理コンピュータ４００のハードウェア構成を示す。ＣＰＵ４３０、メモリ４４０、入力装置４６０、及び出力装置４７０は、メモリコントローラ４５０を通して相互接続される。Ｉ／Ｏコントローラ４２０によって扱われるＩ／Ｏは、ネットワークインタフェース４１０を通して内部ＨＤＤ装置４８０又は外部ストレージ装置で処理される。
【００２５】
００４８    図８は、メモリ３４０に格納され、かつサーバコンピュータ３００上で稼働するソフトウェアの一例を示す。アプリケーションプログラム３４０１は、Ｉ／Ｏ作業負荷（例えば、データベース、ＳＡＰ、電子メール、エクスチェンジサーバ、ウェブアプリケーションなど）を生成する業務アプリケーションである。Ｉ／Ｏ転送制御プログラム３４０２は、ＳＣＳＩプロトコルでの外部データＩ／Ｏ転送通信を制御するとともに、サーバ３００とストレージ１００の間に通信パスを設定する。ボリューム構成情報３４０３は、サーバオペレーティングシステムによって扱われるデータボリュームの構成定義である。「/etc/fstab」は、ボリューム構成情報３４０３の単純な一例である。そのデータ構造は、図１２に示されている。
【００２６】
００４９    図９は、メモリ２４０に格納され、スイッチ２００上で稼働するソフトウェアの一例を示す。ネットワークルート管理プログラム２４０１は、ネットワーク上で通信ルートを設定かつ解放するためのプログラムである。トラフィック監視プログラム２４０２は、ネットワークインタフェース２１０によってトラフィックを測定するためのプログラムである。これは、ｂｐｓ（バイト／秒）及びＩＯＰＳなどの測定基準によって測定することができる。ルート情報２４０３は、ネットワークルート管理プログラム２４０１によって設定される通信ルートを表現する構成データである。伝送ポート情報２４０４は、データを送信するためのターゲットネットワークインタフェース２１０を表す構成データである。ルーティング情報２４０３及び伝送ポート情報２４０４は、ネットワーク上の通信パスを決定することを可能にする。
【００２７】
００５０    図１０は、メモリ１４０に格納され、データストレージ１００で稼働するソフトウェアの一例を示す。Ｉ／Ｏ転送制御プログラム１４０１は、ＳＣＳＩプロトコルでの外部データＩ／Ｏ転送通信を操作するとともに、データストレージ１００とサーバ３００に間に通信パスを設定する。ストレージネットワークルート管理プログラム１４０２は、本発明の独自のプログラムである。このプログラムは、ローカルストレージネットワークルート情報１４０６及び共有ストレージネットワークルート情報１４０７を生成し、更新する。これは、複数のストレージシステムの間の一貫性を維持するために、いくつかのデータストレージシステムによって作成されるルート情報をマージする。構成管理プログラム１４０３は、管理コンピュータ４００によって指示される通りに論理ユニット構成を更新する。データコピープログラム１４０４は、オリジナルの論理ユニット５３０が複製されるように、一つの論理ユニット５３０に格納されたデータ全体を別の論理ユニット５３０にコピーする。トラフィック監視プログラム１４０５は、ネットワークインタフェース１１０及び論理ユニット５３０によってＩ／Ｏトラフィックを測定する。その測定基準は、ｂｐｓ（バイト／秒）、ＩＯＰＳなどで許容可能である。共有ストレージネットワークルート情報１４０７は、複数のデータストレージシステム１００の間で共有される情報である。これはネットワーク上の通信ルートを定義する。ストレージ伝送ポート情報１４０８は、ネットワーク上の通信パスを決定することを可能にする。ＬＵ構成情報１４０９は、論理ユニット５３０の構成設定である。
【００２８】
００５１    図１１は、メモリ４４０に格納され、管理コンピュータ４００上で稼働するソフトウェアの一例を示す。Ｉ／Ｏパス制御プログラム４４０１は、ストレージネットワークを含む装置と通信する。これは、通信パスを設定し又は更新するための要求を発行する。ＬＵ構成要求プログラム４４０２は、データストレージ１００と通信する。これは、論理ユニット５３０を設定し又は更新するための要求を発行する。ＬＵ構成情報４４０３は、複数のデータストレージシステム１００からのＬＵ構成情報１４０８を集めたものである。ルーティング情報４４０４は、複数のスイッチ２００及びデータストレージシステム３００からのルーティング情報２４０３及び共有ストレージネットワークルート情報１４０７を集めたものである。伝送ポート情報４４０５は、伝送ポート情報２４０４及びストレージ伝送ポート情報１４０８を集めたものである。スイッチ２００から集められた情報及びデータストレージ１００から集められた情報は、区別される必要はないが、同じように扱うことができる。管理コンピュータ４００は、常に最新の構成を維持するように、これらの情報を更新する。データストレージ１００のメモリ１４０は、物理ポートと仮想ポートの間のマッピング情報を含むので、仮想ポートを物理ポートとして扱ってもよい。仮想ポートと物理ポートの関係は、１対１の関係に限定されないかもしれない。一つの物理ポートは、複数の仮想ポートと関連付けられてもよく、一つの仮想ポートは、複数の物理ポートと関連付けられてもよい。マッピング情報は、管理コンピュータによって制御すべきである。よって、データストレージ１００のマッピング情報は、管理コンピュータ４００のメモリ４４０に統合されてもよく、更新が互いに通信されることになる。
【００２９】
００５２    図１２は、サーバコンピュータ３００のメモリ３４０のボリューム構成情報３４０３の例示的なデータ構造を示す。マウントポイント３４０３１は、ファイルシステムで定義される論理ディレクトリである。論理ユニットなどの外部装置は、この位置にマウントされる。ターゲットＦＣＩＤ３４０３２は、ファブリックログインプロセスを初期化したときにファイバチャネルネットワークによって動的に割り当てられるネットワークインタフェース１１０の識別子である。ターゲット装置３４０３３は、ネットワークインタフェース１１０の識別子である。ワールドワイドネームは、通常、ファイバチャネルネットワークの識別子として使用される。ＬＵＮ３４０３４は、各論理ユニット５３０に割り当てられる「論理ユニット番号」である。
【００３０】
００５３    図１３は、スイッチ２００のメモリ２４０のルーティング情報の例示的なデータ構造を示す。ローカルポートアドレス２４０３１は、スイッチ２００にインストールされたネットワークインタフェースである。リモートポートアドレス２４０３２は、他の装置にインストールされたポートである。リモートポートは、一つ以上のスイッチ２００上のローカルポートアドレスから到達可能でなければならない。転送コスト２４０３３は、ローカルポートからリモートポートに到達するための装置のホップ・カウントである。
【００３１】
００５４    図１４は、スイッチ２００のメモリ２４０の伝送ポート情報２４０４の例示的なデータ構造を示す。リモートポートアドレス２４０３１は、他の装置にインストールされたネットワークインタフェースである。ローカル配信ポートアドレス２４０３２は、リモートポートとデータを通信し、かつこれにデータを送信するためのローカルネットワークインタフェースである。
【００３２】
００５５    図１５は、データストレージ１００のメモリ１４０のローカルストレージネットワークルート情報１４０６の例示的なデータ構造を示す。第１のテーブル１４０６Ａは、図１９の第１のストレージ１００Ａで生成されるルート情報の一例である。第２のテーブル１４０６Ｂは、図１９の第２のストレージ１００Ｂで生成されるルート情報の一例である。ローカルポートアドレス１４０６１、リモートポートアドレス１４０６２、及び転送コスト１４０６３は、図１３における構成要素とそれぞれ同じ機能を果たす同じ構成要素を表す。このテーブルのユニークな特徴は、このデータストレージ１００上に設定された仮想ポート５２０が物理ポート１１０と同じように記録することができることである。
【００３３】
００５６    図１６は、データストレージ１００のメモリ１４０の共有ストレージネットワークルート情報１４０７の例示的なデータ構造を示す。ローカルポートアドレス１４０７１は、データストレージシステム１００の一つにインストールされたネットワークインタフェース１１０である。リモートポートアドレス１４０７２は、データストレージシステム１００以外の外部装置にインストールされたネットワークインタフェースである。リモートポートは、ローカルポートから到達可能でなければならない。転送コスト１４０７３は、ローカルポートからリモートポートに到達するための装置のホップ・カウントである。図１６のテーブルの内容は、図１９のストレージネットワークトポロジと一貫性がある。例えば、データストレージ１００Ａのネットワークインタフェース１１０Ａは、スイッチ＃２３のネットワークインタフェース２１０Ｅに直接接続されているので、転送コストは「１」としてカウントされる。一方、ネットワークインタフェース１１０Ａからサーバ３００Ａのネットワークインタフェース３１０Ａへのルートは、４つの装置のホップを必要とする。第３のエントリのユニークな特徴は、ネットワークインタフェース１１０Ｃが、論理的に仮想ポート５２０Ａに接続されていると考えられていることである。データストレージ１００が他のストレージシステム１００の構成の変更を検出すると、情報を最新かつ一貫性のあるものに維持するために、そのルート情報を更新する。
【００３４】
００５７    図１７は、データストレージ１００のメモリ１４０のストレージ伝送ポート情報１４０８の例示的なデータ構造を示す。リモートポートアドレス１４０８１は、他の装置上にインストールされたネットワークインタフェース１１０である。ローカル配信ポートアドレス１４０８２は、リモートポートとデータを通信し、かつこれにデータを送信するためのローカルネットワークインタフェース１１０である。
【００３５】
００５８    図１８は、データストレージ１００のメモリ１４０内のＬＵ構成情報１４０９の例示的なデータ構造を示す。ローカルポートアドレス１４０９１は、ストレージ１００上で定義されるネットワークインタフェース１１０又は仮想ネットワークインタフェース５２０である。仮想ネットワークインタフェース５２０は、物理ネットワークインタフェース１１０ではないが、サーバコンピュータ３００に対してデータストレージ１００にインストールされたかのように動作する。ワールドワイドネーム１４０９２は、ネットワークインタフェース１１０又は仮想ネットワークインタフェース５２０の識別子である。ＬＵＮ１４０９３は、ネットワークインタフェース１１０又は仮想ネットワークインタフェース５２０で定義される論理ユニット５３０を識別するための「論理ユニット番号」である。ストレージリソースＩＤ  １４０９４は、ＲＡＩＤグループ又は一組のＨＤＤ又はＳＳＤなどの物理的ストレージリソースである。
【００３６】
００５９    図１９は、本実施形態に従ったストレージネットワークトポロジの一例を示す。第１のサーバ３００Ａは、「/mount/data2」で第１のデータストレージ１００Ａの仮想ネットワークポート５２０Ａ上で定義された論理ユニット５３０Ａを接続する（図１２を参照）。スイッチ２００Ａは、ネットワークインタフェース２１０Ｂ及び２１０Ｃを通して、仮想ネットワークポート５２０Ａへの二重通信パスを使用するように構成される（図１３及び１４を参照）。元々この構成は起こらないが、それは、一つのパス「２１０Ｃ−＃２４−＃２５−１１０Ｂ−１１０Ｄ−５２０Ａ」が仮想ポート５２０Ａに到達するために転送コスト「５」を有し、これが転送コスト「４」しか有しない別のパス「２１０Ｂ−＃２２−＃２３−１１０Ａ−５２０Ａ」と同等ではないからである。これは、図１６で定義されるように、複数の仮想スイッチを一つの装置としてみなすことによって可能となる。サーバコンピュータ３００及びスイッチ２００の視点から、物理的に複数のデータストレージシステム１００は、一つのデータストレージ１００として認識される。本実施形態のこの態様は、上術の背景のセクションで述べられたボトルネックの第１の問題を解決する。直接接続されたスイッチ＃２３上のボトルネックは発生しないが、これは、別のパスが第２のデータストレージ１００Ｂを介してルーティングされるからである。
【００３７】
００６０    図２０は、スイッチ２００上のルーティング情報２４０３及び伝送ポート情報２４０４、又はデータストレージ１００上の共有ローカルストレージネットワークルート情報１４０６及びストレージ伝送ポート情報１４０８を更新するための流れ図の一例である。最初に、スイッチ２００又はデータストレージ１００は、ネットワークインタフェース２１０又は１１０に新たに接続された装置を検出する（ステップＳ１０１）。次に、ルーティング情報２４０３又は１４０６上に新しいエントリを作成した後、その転送コストフィールド２４０３３又は１４０６３に「１」を記録する（ステップＳ１０２）。その後、スイッチ２００又はデータストレージ１００は、そのネットワークインタフェース２１０又は１１０を通して直接接続された他の装置に新しいエントリを通知する（ステップＳ１０３）。次に、新装置発見通知を受信したスイッチ２００又はデータストレージ１００は、そのルーティング情報２４０３又は１４０６を更新する（ステップＳ１０４）。この場合、転送コストフィールド２４０３３又は１４０６３には、「１」が追加される。この装置は、他のネットワーク装置への通知を繰り返す（ステップＳ１０５）。その後、これは、新しく検出されたネットワークインタフェースに到達するための一つ以上のパスを決定する（ステップＳ１０６、ステップＳ１０７）。ステップＳ１０６及びステップＳ１０７では、スイッチ２００又はデータストレージ１００は、新しい装置に到達するための最低転送コストを有する一つ以上のネットワークインタフェース２１０又は１１０を選択し、伝送ポート情報２４０４又は１４０７を更新する。
【００３８】
００６１    図２１は、サーバ３００からストレージ１００への一つ以上のパスを選択するための流れ図の一例である。これは必須のプロセスではなく、オプションである。ステップＳ２０１では、管理コンピュータ４００は、ターゲットストレージ１００を通過するＩ／Ｏパスを選択する。ステップＳ２０２では、管理コンピュータ４００は、パスの更新を要求する。ステップ２０３では、スイッチ及び仮想スイッチはパス情報を更新する。これは、特に管理者がデータトラフィックを監視かつ分析した後でそのネットワークトラフィックの制御を望む状況における、従来のオプションである。またこれは、３つ以上のパスが利用可能であり、かつ管理者がこれらのパスを削減したい場合に有用である。
【００３９】
００６２    図２２は、２つのデータストレージシステム１００（例えば１００Ａ及び１００Ｂ）の間のローカルストレージネットワークルート情報１４０６を組み合わせるための流れ図の一例である。ローカルネットワークポート上の新しく接続された装置を検出した後で、データストレージ１００Ａは、ローカルストレージネットワーク情報１４０６上の新しいルーティング情報エントリを追加する。次に、データストレージ１００Ａは、新しいルート情報エントリを別のデータストレージ１００Ｂに転送する（ステップＳ３０１）。データストレージ１００Ｂは、オリジナルのデータストレージ１００から受信されたものと同じルート情報が存在するか否かを確認するために、新しいルート情報を受信した後、そのローカルストレージネットワークルート情報１４０６を検索する（ステップＳ３０２）。図１５の例では、データストレージ１００Ｂが転送コスト「２」によるネットワークインタフェース２１０Ｆへのパスターゲットを表す新しいエントリを受信した後で、転送コスト「１」によってネットワークインタフェース２１０Ｆのための同じターゲットルートエントリを検索し、これを見つける。ステップＳ３０２の結果が「Ｙｅｓ」である場合は、それは、転送コストが安いルートを採用することを決定する（ステップＳ３０３）。図１５の場合は、データストレージ１００Ｂは、ネットワークインタフェース２１０Ｆをターゲットとするそのローカルエントリを採用する。それは、共有ストレージネットワークルーティング情報１４０７上のルート情報を更新する（ステップＳ３０４、ステップＳ３０５）。
【００４０】
００６３    図２３は、データストレージシステム１００を越えたデータ移行の流れ図の一例である。移行先ストレージ１００（すなわち移行ターゲット装置）は、新しい仮想ポート５２０を作成する（ステップＳ４０１）。この仮想ポート５２０は、ソースポート５２０と同じ識別子を有する。次にこれは、ポート５２０上に論理ユニット５３０を作成する（ステップＳ４０２）。新しいエントリがＬＵ構成情報１４０９に追加されることは明らかである。次に、データコピープログラム１４０４は、装置を越えて、移行元ＬＵから移行先ＬＵへのデータコピーを実行する（ステップＳ４０３）。データコピーが完了した後で、移行元ストレージ１００は、ソース仮想ポート５２０を停止状態にする（ステップＳ４０４）。ステップＳ４０４の直後に、ターゲット仮想ポート５２０が稼働される（ステップＳ４０５）。データ移行は、一般に管理サーバ４００からの要求に応じて実行される。
【００４１】
００６４    図２４は、仮想スイッチ５００上の仮想ポート５２０の論理的説明図の一例である。この実施形態では、データストレージ１００を横切るハードウェア境界を無視することができるので、仮想ポートの位置は仮想スイッチ５００において柔軟性がある。また、サーバ３００及びスイッチ２００は、データ移行によって引き起こされるいかなる影響も受けない。これらは、その構成を再構成する必要はなく、ステップＳ４０４及びＳ４０５で起きる非常に短いＩ／Ｏサービス中断期間を有する。
【００４２】
００６５    当然のことながら、図１９に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００４３】
００６６    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００４４】
００６７    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００４５】
００６８    上記により、本発明が、マルチパス接続における無停止データ移行及びＩ／Ｏ負荷バランシングのための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005755026.tif 000002
【図２】
0005755026.tif 000003
【図３】
0005755026.tif 000004
【図４】
0005755026.tif 000005
【図５】
0005755026.tif 000006
【図６】
0005755026.tif 000007
【図７】
0005755026.tif 000008
【図８】
0005755026.tif 000009
【図９】
0005755026.tif 000010
【図１０】
0005755026.tif 000011
【図１１】
0005755026.tif 000012
【図１２】
0005755026.tif 000013
【図１３】
0005755026.tif 000014
【図１４】
0005755026.tif 000015
【図１５】
0005755026.tif 000016
【図１６】
0005755026.tif 000017
【図１７】
0005755026.tif 000018
【図１８】
0005755026.tif 000019
【図１９】
0005755026.tif 000020
【図２０】
0005755026.tif 000021
【図２１】
0005755026.tif 000022
【図２２】
0005755026.tif 000023
【図２３】
0005755026.tif 000024
【図２４】
0005755026.tif 000025