(57)【要約】【課題】コントローラと一又は複数の記憶装置ユニットとの接続において生じた空きポートを有効に活用するための新規な技術を提供する。【解決手段】コントローラ又はスイッチ装置にある第一の空きポートに、該第一の空きポートを備えるコントローラ又はスイッチ装置とは別のスイッチ装置（別の記憶装置ユニット内のスイッチ装置）にある第二の空きポートを、物理的に接続する。そして、該第一の空きポートと該第二の空きポートとを結ぶ物理的なパスを介した論理的な接続を可能にするか否かを制御する。【選択図】図１
2008071005.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信されたＩ／Ｏ要求を受信するストレージシステムにおいて、
複数の記憶装置を備えた一又は複数の記憶装置ユニットと、
上位装置からＩ／Ｏ要求を受信し処理するコントローラと
を備え、
前記コントローラは、上位側の通信ポートであり前記上位装置に接続される上位ポートと、下位側の通信ポートである複数の下位ポートとを有し、前記複数の下位ポートの少なくとも一つに、前記一又は複数の記憶装置ユニットが接続され、
前記一又は複数の記憶装置ユニットの各々は、スイッチ装置を備え、該スイッチ装置が、通信ポートであるスイッチポートを複数個有し、前記複数のスイッチポートの二以上のスイッチポートに、以下の（１）及び（２）、
（１）該スイッチ装置を備える前記記憶装置ユニット内の前記複数の記憶装置、
（２）前記コントローラの前記下位ポート、及び／又は、該スイッチ装置を備える前記記憶装置ユニットとは別の前記記憶装置ユニット内のスイッチ装置のスイッチポート、
が接続され、
前記コントローラと前記一又は複数の記憶装置ユニットとを所定の規則に従って物理的に接続する場合、前記複数の下位ポートと、前記一又は複数の記憶装置ユニットにおける前記複数のスイッチポートとの中に、物理的に接続されない第一と第二の空きポートが生じ、前記第一の空きポートに第二の空きポートが物理的に接続され、該第一の空きポートと該第二の空きポートとを結ぶ物理的なパスを介した論理的な接続を可能にするか否かの制御を行う、
ストレージシステム。
【請求項２】
前記コントローラと、前記一又は複数の記憶装置ユニットの各々の前記スイッチ装置とが、それぞれ、自分が有する通信ポートを介した論理的な接続の可否を制御するための情報である論理接続制御情報を有し、該論理接続制御情報を基に、論理的な接続を行う、
請求項１記載のストレージシステム。
【請求項３】
前記複数の下位ポートのうちの少なくとも一つの下位ポートが前記第一の空きポートとなり、前記記憶装置ユニットにおける前記複数のスイッチポートのうちの少なくとも一つのスイッチポートが前記第二の空きポートとなり、
前記少なくとも一つの下位ポートに前記少なくとも一つのスイッチポートがそれぞれ物理的に接続され、且つ、該各物理的な接続による各物理的なパスを介して、前記コントローラと前記記憶装置ユニット内の記憶装置とを論理的に接続することが可能である、
請求項１記載のストレージシステム。
【請求項４】
複数のパスグループの各々に、下位ポートと、該下位ポートに接続される第一のスイッチポートと、記憶装置に接続される第二のスイッチポートとが関連付けられ、
一つの前記パスグループに、少なくとも一つの下位ポートと、前記少なくとも一つの下位ポートにそれぞれ接続される少なくとも一つの第一のスイッチポートと、二以上の第二のスイッチポートとが関連付けられ、
前記コントローラが、前記複数の下位ポートのうちの第一の下位ポートを介して、該第一の下位ポートが関連付けられている第一のパスグループに関連付けられたスイッチポートに接続されている第一の記憶装置に論理的に接続することが可能であるが、前記第一のパスグループが関連付けられていない第二の下位ポートを介して該第一の記憶装置に論理的に接続することは不可能である、
請求項３記載のストレージシステム。
【請求項５】
前記コントローラが、前記各下位ポートを介した論理的な接続を制御するための情報である第一の論理接続制御情報を有し、該第一の論理接続制御情報を基に、論理的な接続を制御し、
前記記憶装置ユニットの前記スイッチ装置が、前記各スイッチポートを介した論理的な接続を制御するための情報である第二の論理接続制御情報を有し、該第二の論理接続制御情報を基に、論理的な接続を制御し、
前記第二の論理接続制御情報では、前記第一のスイッチポートの識別子である第一のポートＩＤに、該第一のスイッチポートが関連付けられたパスグループの識別子であるパスグループＩＤが対応付けられ、且つ、前記第二のスイッチポートの識別子である第二のポートＩＤに、該第二のスイッチポートが関連付けられたパスグループのパスグループＩＤが対応付けられ、
前記第一の論理接続制御情報では、前記下位ポートの識別子である下位ポートＩＤに、該下位ポートが関連付けられたパスグループのパスグループＩＤが対応付けられる、
請求項４記載のストレージシステム。
【請求項６】
一つのパスグループには、ＲＡＩＤグループ単位で第二のスイッチポートが関連付けられ、
前記ＲＡＩＤグループは、ＲＡＩＤの規則に従うＲＡＩＤグループを構成する二以上の記憶装置である、
請求項４記載のストレージシステム。
【請求項７】
或る物理的なパスに障害が生じた場合に、該パスを構成する或る下位ポート及び或る第一のスイッチポートが関連付けられている第一のパスグループから、該第一のパスグループに関連付けられている二以上の第二のスイッチポートの該関連付けを解除し、該関連付けが解除された前記二以上の第二のスイッチポートに対して、障害の生じていない別のパスを構成する別の下位ポート及び別の第一スイッチポートが関連付けられている第二のパスグループを関連付ける関連付け変更部、
を更に備える請求項３記載のストレージシステム。
【請求項８】
記憶装置に入出力されるデータのサイズを前記各記憶装置毎に監視する転送データサイズ監視部と、
前記転送データサイズ監視部による監視の結果に基づいて、前記各下位ポートと前記各スイッチポートとの間の関連付けを制御することによりロードバランスを行う関連付け制御部と
を更に備える請求項３記載のストレージシステム。
【請求項９】
前記複数の記憶装置ユニットのうちの第一の記憶装置ユニットにおける少なくとも一つの第一のスイッチポートが前記第一の空きポートとなり、前記複数の記憶装置ユニットのうちの第二の記憶装置ユニットにおける少なくとも一つの第二のスイッチポートが前記第二の空きポートとなり、
前記少なくとも一つの第一のスイッチポートに前記少なくとも一つの第二のスイッチポートがそれぞれ物理的に接続され、
前記コントローラと前記複数の記憶ユニットとの複数の物理的なパスにおける第一の物理的なパスを介した論理的な接続が不可能とされ、前記複数の物理的なパスにおける第二の物理的なパスを介した論理的な接続が可能とされており、
前記第二の物理的なパスで障害が生じた場合に、前記第一の物理的なパスを介した論理的な接続を不可能から可能に変更することで、前記コントローラが前記第二の物理的なパスを介して論理的に接続することができた記憶装置に前記第一の物理的なパスを介して論理的に接続することを可能とする、
請求項１記載のストレージシステム。
【請求項１０】
前記コントローラと、前記複数の記憶装置ユニットにそれぞれ備えられる複数の前記スイッチ装置とが、それぞれ、自分が有する通信ポートを介した論理的な接続を制御するための情報である論理接続制御情報を有し、該論理接続制御情報を基に、論理的な接続を制御し、
前記第一の物理的なパスに接続されているスイッチ装置の論理接続制御情報と、前記第二の物理的なパスに接続されているスイッチ装置の論理接続制御情報と、前記コントローラの論理接続制御情報を更新することにより、前記コントローラが前記第二の物理的なパスを介して論理的に接続することができた記憶装置に前記第一の物理的なパスを介して論理的に接続することを可能とする、
請求項９記載のストレージシステム。
【請求項１１】
前記コントローラが、第一の記憶域を有し、
前記一又は複数の記憶装置ユニットの各々が、第二の記憶域を有し、
前記一又は複数の記憶装置ユニットの各々のスイッチ装置が、該スイッチ装置を備えた記憶装置ユニット内の前記第二の記憶域にアクセス可能であり、該第二の記憶域に設定された情報を読み出すことで、該スイッチ装置が保持する論理接続制御情報を更新し、
前記コントローラが、前記第一の記憶域と各前記第二の記憶域の両方にアクセス可能であり、該第一の記憶域に設定された情報を読み出すことで、該コントローラが保持する論理接続制御情報を更新し、且つ、前記各第二の記憶域に情報を設定すること、及び／又は、前記各第二の記憶域に設定された情報を収集することを実行する、
請求項２記載のストレージシステム。
【請求項１２】
前記記憶装置ユニットは、増設或いは減設することが可能であり、
（Ａ）前記記憶装置ユニットの数が、前記下位ポートの数未満の場合、以下の（ａ１）及び（ａ２）であり、
（ａ１）前記複数の下位ポートのうちの少なくとも一つの下位ポートが前記第一の空きポートとなり、前記記憶装置ユニットにおける少なくとも一つのスイッチポートが前記第二の空きポートとなり、
（ａ２）前記少なくとも一つの下位ポートに前記少なくとも一つのスイッチポートがそれぞれ物理的に接続され、且つ、該各物理的な接続による各物理的なパスを介して、前記コントローラと前記記憶装置ユニット内の記憶装置とを論理的に接続することが可能であり、
（Ｂ）前記記憶装置ユニットの数が、前記下位ポートの数以上の場合、以下の（ｂ１）乃至（ｂ４）である、
（ｂ１）前記複数の記憶装置ユニットのうちの第一の記憶装置ユニットにおける少なくとも一つの第一のスイッチポートが前記第一の空きポートとなり、前記複数の記憶装置ユニットのうちの第二の記憶装置ユニットにおける少なくとも一つの第二のスイッチポートが前記第二の空きポートとなり、
（ｂ２）前記少なくとも一つの第一のスイッチポートに前記少なくとも一つの第二のスイッチポートがそれぞれ物理的に接続され、
（ｂ３）前記コントローラと前記複数の記憶ユニットとの複数の物理的なパスにおける第一の物理的なパスを介した論理的な接続が不可能とされ、前記複数の物理的なパスにおける第二の物理的なパスを介した論理的な接続が可能とされており、
（ｂ４）前記第二の物理的なパスで障害が生じた場合に、前記第一の物理的なパスを介した論理的な接続を不可能から可能に変更することで、前記コントローラが前記第二の物理的なパスを介して論理的に接続することができた記憶装置に前記第一の物理的なパスを介して論理的に接続することを可能とする、
請求項１記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶装置を備えたストレージシステムに関する。
【背景技術】
【０００２】
ストレージシステムには、例えば、複数の記憶装置と、上位装置からの各記憶装置へのアクセスを制御するコントローラと、コントローラと複数の記憶装置との間に介在するスイッチ装置とが備えられる。この種のストレージシステムは、例えば、文献１（特開２００４−１４５４９７号公報）及び文献２（特開２００３−２８０８２４号公報）に開示されている。これらの文献１及び文献２には、複数のストレージシステムにそれぞれ備えられる複数のコントローラ間の接続が開示されている。
【０００３】
【特許文献１】特開２００４−１４５４９７号公報
【特許文献２】特開２００３−２８０８２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、ストレージシステムには、例えば、スイッチ装置と複数の記憶装置とを備えた記憶装置ユニットを、増設或いは減設できるタイプがある。具体的には、例えば、コントローラが、上位装置に接続される通信ポート（以下、上位ポート）の他に、記憶装置ユニットに接続される複数の通信ポート（以下、下位ポート）を備え、記憶装置ユニットのスイッチ装置が、複数の通信ポート（以下、スイッチポート）を備える。コントローラの複数の下位ポートのうちの少なくとも一つに、記憶装置ユニットのスイッチ装置のスイッチポートが接続される。スイッチポートには、コントローラ、記憶装置或いは他のスイッチ装置が接続される。
【０００５】
所定の規則（例えば、ＳＡＳ（Serial Attached SCSI）或いはＦＣ（Fibre Channel）に従う規則）に従って物理的な接続を行っていくと、物理的な接続が不要となってしまう通信ポート、つまり空きポートが生じてしまうことがある。具体的には、例えば、コントローラ及び記憶装置ユニットの両方にそれぞれ空きポートが生じることもあれば、コントローラには生じないが二つの記憶装置ユニットにそれぞれ空きポートが生じてしまうことがある。
【０００６】
空きポートを有効に活用することが望ましいが、このための技術を、上記文献１及び文献２から導き出すことはできない。なぜなら、これらの文献１及び文献２は、いずれも、前述したように、複数のストレージシステムにそれぞれ備えられる複数のコントローラ間の相互接続のための技術であり、コントローラと記憶装置ユニットとの接続に関わるものではないためである。
【０００７】
従って、本発明の目的は、コントローラと一又は複数の記憶装置ユニットとの接続において生じた空きポートを有効に活用するための新規な技術を提供することにある。
【０００８】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
コントローラ又はスイッチ装置にある第一の空きポートに、該第一の空きポートを備えるコントローラ又はスイッチ装置とは別のスイッチ装置（別の記憶装置ユニット内のスイッチ装置）にある第二の空きポートを、物理的に接続する。そして、ストレージシステムにおいて、該第一の空きポートと該第二の空きポートとを結ぶ物理的なパスを介した論理的な接続を可能にするか否かを制御する。
【００１０】
なお、ここで、「論理的な接続」とは、例えば、コントローラと記憶装置とのコネクションが確立することを意味し、「論理的な接続を可能にする」とは、そのようなコネクションの確立をすることが可能であることを意味する。具体的には、例えば、コントローラと第一の記憶装置とがスイッチ装置を介して物理的に接続されていても、論理的な接続が不可能である場合には、コントローラと第一の記憶装置との間でコネクションが確立することはなく、その論理的な接続が可能となった場合に、そのコネクションを確立することができるようになる。
【発明の効果】
【００１１】
本発明により、コントローラと一又は複数の記憶装置ユニットとの接続において生じた空きポートを有効に活用するための新規な技術が提供される。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態について説明する。
【００１３】
コントローラと一以上の記憶装置ユニットとを、所定の規則に従って接続していく。所定の規則としては、例えば、ＳＡＳ（Serial Attached SCSI）やファイバチャネルの規則などがある。
【００１４】
コントローラには、上位装置に接続される通信ポートである上位ポートと、記憶装置ユニットに接続される通信ポートである下位ポートとの２種類の通信ポートが用意されている。コントローラには、少なくとも２つの下位ポートが用意される。各下位ポートには、上位装置（例えば、ホスト計算機或いは他のストレージシステム）は接続されず、下位装置、具体的には記憶装置ユニットが接続される。
【００１５】
一方、記憶装置ユニットには、複数の通信ポート（以下、スイッチポート）を有したスイッチ装置と、該スイッチ装置の二以上のスイッチポートにそれぞれ接続される二以上の記憶装置とが備えられる。スイッチ装置は、どのスイッチポートにどんな種類の装置（コントローラ、他のスイッチ装置、記憶装置）を接続しても良い構成となっている。記憶装置としては、ハードディスクドライブ、フラッシュメモリデバイスなど、種々の記憶装置を採用し得る。
【００１６】
この実施形態では、コントローラに対し、一以上の記憶装置ユニットが、カスケード状に（例えば直列に或いは木構造に）物理的に接続される。このため、接続後のカスケード構成において、最上流は、コントローラであり、最下流は、記憶装置ユニットである。
【００１７】
カスケード状に接続していくと、コントローラ又は記憶装置ユニットに、物理的に接続されないままになる通信ポート（以下、空きポート）が生じる。別の言い方をすれば、通信ポートが余ってしまう。具体的には、例えば、小規模構成のストレージシステムでは、コントローラに、第一の空きポートができ、記憶装置ユニットに、第二の空きポートができる。一方、大規模構成のストレージシステムでは、カスケード接続の最下流にある第一の記憶装置ユニットに、第一の空きポートができ、最下流にある第二の記憶装置ユニットに、第二の空きポートができる。
【００１８】
本実施形態では、第一の空きポートに第二の空きポートを物理的に接続する。そして、第一の空きポートと第二の空きポートとを結ぶ物理的なパスを介した論理的な接続を可能にするか否かを、ルーティングテーブルの構成により制御する。ルーティングテーブルとは、どの通信ポートを介してどこにアクセスするかを制御するためのテーブルである。本実施形態では、ルーティングテーブルは、コントローラ及びスイッチ装置のそれぞれに用意される。以下の説明では、コントローラに用意されるルーティングテーブルを「ＣＴＬルーティングテーブル」と称し、スイッチ装置に用意されるルーティングテーブルを「ＳＷルーティングテーブル」と称する。
【００１９】
以下、下位ポートの数よりも記憶装置ユニットの数が少ない構成を、「小規模構成」という。一方、下位ポートの数以上に記憶装置ユニットが存在する構成を、「大規模構成」という。そして、ストレージシステムが小規模構成である場合を第一実施例とし、大規模構成である場合を第二実施例として、更に詳細に説明する。なお、以下の説明では、ＳＡＳの規約の下でカスケード接続が行われるものとする。また、本実施形態において、或る物に対して「上位」或いは「下位」という言葉を用いる場合、その物にとって、上位にあるか下位にあるかを示す。「上位」とは、カスケード接続に従うデータの書込み流れにおいてより上流側にあることを意味し、「下位」とは、カスケード接続に従うデータの書込みの流れにおいてより下流側にあることを意味する。そのため、例えば、コントローラが備える「上位ポート」とは、コントローラの上位装置と通信可能に接続される通信ポートである。「上位装置」とは、コントローラよりも上位に存在する装置であり、具体例としては、ホスト計算機、他のストレージシステムなどがある。一方、コントローラが備える「下位ポート」とは、コントローラの下位に存在する装置と通信可能に接続される通信ポートである。コントローラの下位に存在する装置としては、例えば、スイッチ装置がある。
【実施例１】
【００２０】
第一実施例では、小規模構成のストレージシステムの性能の向上を実現することができる。具体的には、このストレージシステムでは、パスグループという概念に基づいてポート接続管理が行われる。より具体的には、例えば、各パスグループに、下位ポートやスイッチポートが割り当てられ、故に、下位ポート毎に、論理的に接続可能な記憶装置が区別される。なお、この第一実施例において、論理的に接続するとは、ＳＡＳイニシエータ装置とＳＡＳターゲット装置との間で所定のやり取りの後にコネクションが確立することを意味する。
【００２１】
以下、図面を参照して詳細に説明する。なお、以下の小規模構成のストレージシステムでは、説明を分かり易くするため、１つのコントローラに備えられる下位ポートの数を２つとし、記憶装置ユニットの数を１つとする。
【００２２】
図１は、本発明の第一実施例において、空きポートが生じた小規模構成のストレージシステムの構成例を示す。図２は、その空きポートを有効活用する構成となった小規模構成のストレージシステムを示す。以下、同種の要素には、同一の親番号を付し、同種の要素を個々に説明する場合には、親番号に子符号を付して説明する。
【００２３】
基本筐体１１０に一つの増設筐体１２０がカスケード状に接続されることで、ストレージシステム１００が構成される。ストレージシステム１００では、上位装置から記憶装置１２２へのアクセス系統が二重化されている。以下、一方のアクセス系統を主に説明する。
【００２４】
基本筐体１１０には、二重化された（二重化以上の多重化でも良い）コントローラ１１１がある。コントローラ１１１には、例えば、フロントエンドインタフェース装置（以下、ＦＥ  ＩＦ）１１６と、マイクロプロセッサユニット（以下、ＭＰＵ）１１２と、キャッシュメモリ１１３と、バックエンドインタフェース装置（以下、ＢＥ  ＩＦ）１１４とが備えられる。基本筐体１１０に、一又は複数の記憶装置が搭載されてもよい。
【００２５】
ＦＥ  ＩＦ１１６は、上位装置（例えばホスト計算機或いは他のストレージシステム）に接続される通信ポート（上位ポート）（図示せず）を有する。ＦＥ  ＩＦ１１６は、上位装置から送信された第一のＩ／Ｏ要求（ライト／リード要求）を受信する。
【００２６】
ＭＰＵ１１２は、マイクロプロセッサ（ＭＰ）を含んだ装置であり、コントローラ１１１としての動作を制御する。例えば、ＭＰＵ１１２は、ＦＥ  ＩＦ１１６で受信した第一のＩ／Ｏ要求を受信し、該第一のＩ／Ｏ要求に従ってアクセスすべき記憶装置１２２を増設筐体１２０から特定し、該特定した記憶装置１２２に、該第一のＩ／Ｏ要求に従うデータの書込み或いは読出しを行うことの第二のＩ／Ｏ要求を送信する。これにより、該第二のＩ／Ｏ要求が、スイッチ装置１２１を介して、上記特定された記憶装置１２２に送信され、データの書込み或いは読出しが行われる。
【００２７】
キャッシュメモリ１１３は、記憶装置１２２に書込まれるデータや、記憶装置１２２から読み出されたデータが、一時的に記憶される。上記第一のＩ／Ｏ要求が、ライト要求の場合、該ライト要求に従う書込み対象のデータがキャッシュメモリ１１３に一時的に記憶され、該記憶されたデータが、上記第二のＩ／Ｏ要求の送信先の記憶装置に送信される。一方、上記第一のＩ／Ｏ要求が、リード要求の場合、該リード要求に従う読出し対象のデータが、上記第二のＩ／Ｏ要求の送信先の記憶装置から読み出され、読み出されたデータがキャッシュメモリ１１３に一時記憶され、該記憶されたデータが、上位装置に送信される。
【００２８】
ＢＥ  ＩＦ１１４は、２つの通信ポート（下位ポート）１１５Ａ及び１１５Ｂを備える（下位ポートの数は２つに限らずそれ以上あってよい）。
【００２９】
増設筐体１２０は、記憶装置ユニットの一種である。増設筐体１２０には、ＳＡＳエクスパンダであるスイッチ装置１２１と、二以上の記憶装置１２２とが備えられる。スイッチ装置１２１には、複数のスイッチポート１２３がある。複数のスイッチポート１２３の各々には、コントローラ１１１或いは記憶装置１２２が接続される。以下、記憶装置１２２が接続されたスイッチポート１２３には、子符号としてＣを付加し、「スイッチポート１２３Ｃ」と言う。一方、記憶装置１２２が接続されていないスイッチポート１２３には、他の子符号を付加して説明する。
【００３０】
ＳＡＳの規約の下で、コントローラ１１１と増設筐体１２０とをカスケード状に接続する場合、図１に示すように、コントローラ１１１における下位ポート１１５Ａと、スイッチ装置１２１のスイッチポート１２３Ａとが、物理パス（例えばケーブル）５１０Ａで結ばれる。この構成で、ストレージシステム１００は正常に稼動することができる。しかし、この構成によれば、図１に示すように、コントローラ１１１の下位ポート１１５Ｂと、スイッチ装置１２１のスイッチポート１２３Ｂとが、それぞれ、物理的に接続されない空きポートとなってしまう。こうなるのは、小規模構成では、増設筐体１２０の数が、コントローラ１１１が備える下位ポート１１５の数未満であるためである。
【００３１】
そこで、この第一実施例では、図２に示すように、コントローラ１１１の下位ポート１１５Ｂと、スイッチ装置１２１のスイッチポート１２３Ｂとも、物理パス５１０Ｂで結ぶ。これにより、使い切れていないハード資源が使われる。
【００３２】
なお、単にこのようにするだけでは、本来区別して管理されるべき下位ポート１２３Ａ、１２３Ｂを通じて、増設筐体１２０内の全ての記憶装置１２２にアクセス可能となってしまうので、コントローラ１１１での制御が煩雑になり得る。
【００３３】
そこで、この第一実施例では、更に、ＳＷルーティングテーブル（スイッチ装置１２１に用意されたルーティングテーブル）とＣＴＬルーティングテーブル（コントローラ１１１に用意されたルーティングテーブル）との構成を工夫することで、小規模構成ストレージシステム１００の性能向上を実現することができる。以下、各ルーティングテーブルについて説明する。
【００３４】
図３は、ＳＷルーティングテーブルの構成例を示す。
【００３５】
ＳＷルーティングテーブル３０１は、スイッチ装置１２１でのハードウェア的なルーティング制御に使用される。このＳＷルーティングテーブル３０１は、ソフトウェア的なルーティング制御に使用されても良い。ＳＷルーティングテーブル３０１には、スイッチ装置１２１における各スイッチポート毎に、ＰＨＹ  ＩＤ、コネクションタイプ、デバイスタイプ、ＲＡＩＤグループＩＤ、パスグループＩＤ、デバイスアドレス及びステータスが記録される。
【００３６】
ＰＨＹ  ＩＤとは、このＳＷルーティングテーブル３０１を備えるスイッチ装置１２１での各スイッチポートの識別子である。ＰＨＹとは、ＳＡＳの規約において通信ポートを表す用語である。
【００３７】
コネクションタイプとは、接続のタイプを表す。例えば、上位装置であるコントローラ１１１が接続されているスイッチポート１２３Ａ及び１２３Ｂについては、“Upper”という値（言い換えれば、上位との接続を意味する値）が入り、記憶装置１２２が接続されているスイッチポート１２３Ｃについては、“End Dev”という値（言い換えれば、増設筐体内部の装置との接続を意味する値）が入る。この他に、例えば、“Lower”という値（言い換えれば、下位との接続を意味する値）も入り得る。
【００３８】
デバイスタイプとは、接続されているデバイスのタイプを表す。例えば、コントローラ１１１が接続されているスイッチポート１２３Ａ及び１２３Ｂについては、“Initiator”という値（言い換えれば、SASイニシエータ装置が接続されていることを意味する値）が入り、記憶装置１２２が接続されているスイッチポート１２３Ｃについて、“Target”という値（言い換えれば、SASターゲット装置が接続されていることを意味する値）が入る。この他に、例えば“SW”という値（言い換えれば、他のスイッチ装置が接続されていることを意味する値）も入り得る。
【００３９】
ＲＡＩＤグループＩＤとは、ＲＡＩＤグループの識別子である。ＲＡＩＤグループとは、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）の規則に従って二以上の記憶装置で構成されたグループである。それら二以上の記憶装置は、一つの増設筐体１２０内に存在しても良いし、他の増設筐体に跨って存在してもよい。以下、“RG_A”や“RG_B”にそれぞれ対応したＲＡＩＤグループを、説明の冗長を防ぐため、“ＲＡＩＤグループＡ”、“ＲＡＩＤグループＢ”のように言うことがある。これは、パスグループについても同様である。
【００４０】
パスグループＩＤとは、パスグループの識別子である。パスグループとは、複数の記憶装置１２２を論理的に区分するための概念であり、ゾーンという言葉に置換しても良い。第一実施例では、一つのパスグループに、下位ポート１１５Ａ或いは１１５ＢのＰＨＹ  ＩＤや、スイッチポート１２３Ａ或いは１２３ＢのＰＨＹ  ＩＤや、スイッチポート１２３ＣのＰＨＹ  ＩＤが割り当てられ、結果として、一つのパスグループに、下位ポート１１５Ａ或いは１１５Ｂとスイッチポート１２３Ａ或いは１２３Ｂとを結ぶ物理パスや、スイッチポート１２３Ｃと記憶装置１２２とを結ぶ物理パスが割り当てられることになり、そのため、「パスグループ」という言葉を用いている。一つの上位の物理パス（換言すれば、一つのスイッチポート１２３Ａ又は１２３Ｂ、若しくは、一つの下位ポート１１５Ａ又は１１５Ｂ）には、一種類のパスグループを割り当てることができる。なお、パスグループＩＤは、ＲＡＩＤグループ単位で割り当てて良い。この場合、下位ポートからは、自分と同じパスグループに割り当てられていないＲＡＩＤグループにはアクセスすることができないので、信頼性の向上に貢献することができる。
【００４１】
デバイスアドレスは、接続されるデバイスのアドレスを表す。
【００４２】
ステータスは、通信ポートの状態（換言すれば、デバイスとの接続状態）を表す。具体的には、例えば、“Act”という値は、該値に対応するスイッチポートを介して論理的な接続をすることが可能である（言い換えれば有効である）ことを意味し、図示していないが、“Inact”という値は、該値に対応するスイッチポートを介して論理的な接続をすることが不可能である（言い換えれば無効である）ことを意味する。第一のポートのステータスである第一のステータスと、該第一のポートに物理パス５１０を介して接続される第二のポートのステータスである第二のステータスとの両方の値が、“Act”であれば、該物理パス５１０を介して論理的に接続することが可能な状態となる。一方、第一のステータスの値と第二のステータスの値の少なくとも一方が“Inact”であれば、該物理パス５１０を介して論理的に接続することが不可能な状態となる。すなわち、物理パス５１０に接続される両ポートのステータス値を制御することにより、該物理パス５１０を介して論理的に接続することが可能か否かを制御することができる。なお、“Act”は、Activeの略であり、“Inact”は、Inactiveの略である。
【００４３】
スイッチ装置１２１は（具体的には、例えば、図示しないプロセッサ等のスイッチ装置制御部が）、このＳＷルーティングテーブル３０１に基づいて、スイッチポート１２３Ａ、１２３Ｂから提供する情報を制御する。具体的には、スイッチ装置１２１は、スイッチポート１２３Ａからは、パスグループＩＤ“PG_A”が割り当てられているスイッチポート１２３Ｃの接続先の記憶装置１２２に関する情報を提供するが、別のパスグループＩＤ“PG_B”が割り当てられているスイッチポート１２３Ｃの接続先の記憶装置１２２に関する情報は提供しない。これは、別のスイッチポート１２３Ｂについても同様である。これにより、図４に例示するＣＴＬルーティングテーブルが構築される。
【００４４】
図４は、ＣＴＬルーティングテーブルの構成例を示す。
【００４５】
ＣＴＬルーティングテーブル３０３に記録される情報項目の種類は、図４に示すように、ＳＷルーティングテーブル３０１に記録される情報項目の種類と同じである。
【００４６】
本実施例では、下位ポート１１５の数は２つなので、ＰＨＹ  ＩＤは２つである。各ＰＨＹ  ＩＤには、該ＰＨＹ  ＩＤに対応した下位ポート１１５を介して認識可能な記憶装置（ターゲット）に関する情報が対応付けられる。図示の例によれば、ＰＨＹ  ＩＤ“０”に対応した下位ポート１１５からは、ＲＡＩＤグループＡに属する３つの記憶装置を認識できる。一方、ＰＨＹ  ＩＤ“１”に対応した下位ポート１１５からは、ＲＡＩＤグループＢに属する３つの記憶装置と、ＲＡＩＤグループＣに属する２つの記憶装置とを認識できる。
【００４７】
以上の通り、コントローラ１１１は、一つの下位ポート１１５Ａ或いは１１５Ｂから全ての記憶装置１２２を認識できるわけではなく、一つの下位ポート１１５Ａ或いは１１５Ｂからは、同一のパスグループＩＤが割り当てられているスイッチポート１２３Ｃに接続された記憶装置のみ認識できることになる。言い換えれば、この第一実施例では、コントローラ１１１から複数の記憶装置１２２へのアクセス経路が、論理的に分割される。
【００４８】
さて、この第一実施例では、前述したように、下位ポート１１５Ｂとスイッチポート１２３Ｂとも物理パス５１０Ｂで結ぶことで、ハード資源が使われるようにし、それと共に、パスグループという概念を基に、コントローラ１１１から複数の記憶装置１２２へのアクセス経路を論理的に分割している。しかし、このまま何の工夫もされないと、例えば、図５に例示するように、一方の物理パス５１０Ａに障害（例えば切断）が生じた場合には、これまで該物理パス５１０Ａを介して論理的に接続することができた記憶装置に論理的に接続することができなくなってしまう。
【００４９】
そこで、この第一実施例では、関連付け変更部が備えられる。関連付け変更部は、物理パス５１０Ａに障害が生じた場合に、その物理パス５１０Ａが関連付けられているパスグループＡに対する二以上のスイッチポート１２３Ｃの関連付けを解除し、関連付けが解除された二以上のスイッチポート１２３Ｃに対して、障害の生じていない物理パス５１０Ｂが関連付けられているパスグループＢを関連付ける。この関連付け変更部は、例えば、コントローラ１１１、スイッチ装置１２１及び管理端末１５０のいずれに備えられても良い。関連付け変更部は、ハードウェア及びコンピュータプログラムのいずれであってもよい。或いは、関連付け変更部は、一部をハードウェアで実現し残りをコンピュータプログラムで実現しても良い。
【００５０】
具体的には、例えば、物理パス５１０Ａに障害が生じた場合、コントローラ１１１及びスイッチ装置１２１の少なくとも一方が、その物理パス５１０Ａが接続されている下位ポート１１５Ａ或いはスイッチポート１２３Ａに関して障害を検出することができる。このような障害が生じた場合、スイッチ装置１２１が、例えば、図３に例示したＳＷルーティングテーブル３０１を、図６に例示するＳＷルーティングテーブル３０１に更新する。すなわち、スイッチ装置１２１は、図６に例示するように、スイッチポート１２３Ａ（ＰＨＹ  ＩＤ“０”）に対応したパスグループＩＤ“PG_A”を消去し、且つ、該スイッチポート１２３Ａに対応したステータスを、“Act”から“Inact”に変更する。また、スイッチ装置１２１は、ＰＨＹ  ＩＤ“２”、“３”及び“４”にそれぞれ対応付けられていたパスグループＩＤ“PG_A”を、“PG_B”に変更する。一方、コントローラ１１１は、図４に例示したＣＴＬルーティングテーブル３０３を、図７に例示するＣＴＬルーティングテーブル３０３に更新する。すなわち、コントローラ１１１は、下位ポート１１５Ａ（ＰＨＹ  ＩＤ“０”）に対応付けられた情報を外し、該下位ポート１１３Ａに対応したステータスを、“Act”から“Inact”に変更する。そして、コントローラ１１１は、上記外した情報（パスグループＩＤ“PG_A”を含んだ情報）を、該パスグループＩＤを“PG_B”に変更して、ＰＨＹ  ＩＤ“１”に新たに対応付ける。
【００５１】
以上のように、この第一実施例では、上位の物理パス５１０Ａ或いは５１０Ｂで障害が生じた場合には、該物理パス５１０Ａ或いは５１０Ｂに対応したパスグループに割り当てられている各種ポートの割当て先を、障害の生じていない物理パス５１Ａ或いは５１０Ｂに対応したパスグループに変更する。これにより、物理パス５１０或いは５１０Ｂに障害が生じても、ストレージシステム１００の稼動を停止することなく継続することができる。
【００５２】
さて、この第一実施例では、コントローラ１１１や増設筐体１２０に情報を設定することができる。
【００５３】
図８は、コントローラ１１１や増設筐体１２０に情報を設定するための仕組みの一例を示す。
【００５４】
この図は、いわゆるIn-bandで情報を設定するための仕組みを示す。すなわち、ストレージシステム１００の外に、管理端末１５０がある。管理端末１５０は、例えば、ＣＰＵ、メモリ、表示装置、入力装置等を有した計算機である。
【００５５】
コントローラ１１１に、管理端末１５０とのインタフェース装置である管理ＩＦ１１９が備えられる。管理端末１５０と管理ＩＦ１１９が、通信ネットワーク（例えばＬＡＮ（Local Area Network））１６０を介して接続される。管理端末１５０は、コントローラ１１１及び／又はスイッチ装置１２１に設定する制御／管理情報を送信する。制御／管理情報は、ストレージシステム１００での制御及び／又は管理のための情報であり、具体的には、例えば、ＣＴＬルーティングテーブル３０３やＳＷルーティングテーブル３０１の情報要素を含む。
【００５６】
コントローラ１１１に、第一の情報保持部１１８が備えられる。第一の情報保持部１１８は、例えば、メモリ上の領域である。管理ＩＦ１１９が管理端末１５０から受信した制御／管理情報は、この第一の情報保持部１１８に記憶される。なお、図示していないが、この第一の情報保持部１１８に記憶された制御／管理情報は、他方のコントローラから参照可能であっても良い。また、第一の情報保持部１１８では、全てのスイッチ装置１２１のＳＷルーティングテーブルが一元管理されていてもよい。この場合、例えば、コントローラ１１１が、定期的に、各スイッチ装置１２１からＳＷルーティングテーブルを読み出し、読み出したＳＷルーティングテーブルを、第一の情報保持部１１８に書込んで良い。
【００５７】
この第一の情報保持部１１８に記憶された制御／管理情報の全部又は一部が、例えばＭＰＵ１１２により、下位ポート１１５Ａ或いは１１５Ｂ経由で、増設筐体１２０のスイッチ装置１２１に送信される。増設筐体１２０では、第二の情報保持部１２８がスイッチ装置１２１にアクセス可能に備えられる。スイッチ装置１２１は、コントローラ１１１から受信した制御／管理情報を、第二の情報保持部１２８に書込む。第二の情報保持部１２８は、例えば、メモリ上の記憶域である。
【００５８】
例えば、コントローラ１１１が、第一の情報保持部１１８に記憶された制御／管理情報を基に、ＣＴＬルーティングテーブル３０３を更新して良い。また、コントローラ１１１は、ＣＴＬルーティングテーブル３０３の更新に合わせてＳＷルーティングテーブル３０１を更新するための情報（以下、第一のルーティング更新情報）を、第二の情報保持部１２８に書いて良い。この場合、スイッチ装置１２１が、第二の情報保持部１２８から第一のルーティング更新情報を読出し、該読み出した第一のルーティング更新情報を基に、ＳＷルーティングテーブル３０１を更新して良い。
【００５９】
また、例えば、スイッチ装置１２１が、例えば図６を参照して説明した更新を行い、該更新に合わせてＣＴＬルーティングテーブル３０３を更新するための情報（以下、第二のルーティング更新情報）を、第二の情報保持部１２８に書いて良い。この場合、コントローラ１１１が、第二の情報保持部１２８から第二のルーティング更新情報を読出し、該読み出した第二のルーティング更新情報を基に、ＣＴＬルーティングテーブル３０３を更新して良い。
【００６０】
また、図示しないが、管理端末１５０から、コントローラ１１１を経由せず、直接、制御／管理情報が第二の情報保持部１２８に書込まれても良い。この場合、スイッチ装置１２１は、その第二の制御情報保持部１２８から制御／管理情報を読出し、該読み出した制御／管理情報を基に、ＳＷルーティングテーブル３０１を更新して良い。
【００６１】
また、例えば、コントローラ１１１は、増設筐体１２０の電源投入時などの所定のタイミングで、第一の情報保持部１１８に記憶された制御／管理情報を読出し、該読み出した情報を第二の情報保持部１２８に書込んでも良い。或いは、例えば、増設筐体１２０の増設前に、第二の情報保持部１２８に所定の制御／管理情報を記憶させ、該増設筐体１２０の増設の際に該増設筐体１２０に電源が投入された時に、該増設筐体１２０のスイッチ装置１２１が、第二の情報保持部１２８に予め記憶されている制御／管理情報を読出し、ＳＷルーティングテーブル３０１を構築してよい。この方法であれば、コントローラ１１１が制御／管理情報を第二の情報保持部１２８に書込まなくて済むので、コントローラ１１１の負荷を抑えることができる。
【００６２】
コントローラ１１１やスイッチ装置１２１に対する情報設定は、他の方法でも行うことが可能である。例えば、ストレージシステム１００に、保守端末を取り付け、該保守端末から設定しても良い。
【００６３】
さて、この第一実施例では、記憶装置１２２に入出力されるデータのサイズを各記憶装置１２２毎に監視する転送データサイズ監視部と、該転送データサイズ監視部による監視の結果に基づいて、各下位ポート１１５と各スイッチポート１２３との間の関連付けを制御することによりロードバランスを行う関連付け制御部とが備えられる。転送データサイズ監視部及び関連付け制御部のうちの少なくとも一方が、コントローラ１１１、スイッチ装置１２１及び管理端末１５０のうちの少なくとも一つに備えることが可能である。転送データサイズ監視部及び関連付け制御部のうちの少なくとも一方が、ハードウェア及びコンピュータプログラムのいずれであってもよい。或いは、関連付け変更部は、一部をハードウェアで実現し残りをコンピュータプログラムで実現しても良い。
【００６４】
具体的には、例えば、コントローラ１１１やスイッチ装置１２１における情報設定のための仕組みを利用し、ＣＴＬルーティングテーブル３０３やＳＷルーティングテーブル３０１を更新することで、ロードバランスを実現することができる。ロードバランスを行うために、例えば、通信ポートの負荷を監視する必要があるが、この負荷監視を行うための装置である負荷モニタを、コントローラ１１１及びスイッチ装置１２１の一方又は両方に備えることが考えられる。そして、例えば、管理端末１５０で実行されるコンピュータプログラムが、コントローラ１１１及び／又はスイッチ装置１２１から、負荷の監視結果の情報を収集し、該収集された情報を基に、ＣＴＬルーティングテーブル３０３やＳＷルーティングテーブル３０１をどのように構成変更することでロードバランスを行うかを計算し、計算された更新後のＣＴＬルーティングテーブル３０３やＳＷルーティングテーブル３０１を設定するための情報（例えば更新後のテーブル３０３、３０１それ自体）を、コントローラ１１１及び／又はスイッチ装置１２１に送信してよい。或いは、ロードバランスのための計算は、コントローラ１１１が行って、コントローラ１１１が、ＣＴＬルーティングテーブル３０３やＳＷルーティングテーブル３０１を構成変更してもよい。以下、コントローラ１１１がそのような処理を行う場合を例に採り、詳細に説明する。
【００６５】
図９は、負荷モニタを搭載したコントローラ１１１の構成例を示す。
【００６６】
負荷モニタ２０１が、例えば、ＦＥ  ＩＦ１１６とＢＥ  ＩＦ１１４との間に介在される。負荷モニタ２０１は、例えば、ＦＥ  ＩＦ１１６、ＢＥ  ＩＦ１１４、ＭＰＵ１１２及びキャッシュメモリ１１３のそれぞれの間のデータ転送を制御するＬＳＩ（Large Scale Integration）として構成されてよい。負荷モニタ２０１は、例えば、各記憶装置（ターゲット装置）毎に、送受信されるデータのサイズ（以下、転送データサイズ）を監視することができる。転送データサイズは、バイト数であらわされてもよいし、送受信されるフレームの数であらわされてもよい。
【００６７】
負荷モニタ２０１は、監視結果を表す情報（以下、監視結果情報）を、第一の情報保持部１１８に書込むことができる。ＭＰＵ１１２が、該監視結果情報を第一の情報保持部１１８から読出し、該監視結果情報を基に、ロードバランスを行うことができる。すなわち、ＭＰＵ１１２は、該監視結果情報を基に、ＣＴＬルーティングテーブル３０３を更新し、且つ、その更新に合わせてＳＷルーティングテーブル３０１を更新するための第一のルーティング情報を、第二の情報保持部１２８に書込むことができる。
【００６８】
図１０は、負荷モニタを搭載したスイッチ装置１２１の構成例を示す。
【００６９】
負荷モニタ２０３が、各スイッチポートの負荷を監視する。負荷モニタ２０３は、各スイッチポート間でのデータ転送を制御するデータ転送ＬＳＩとして構成されて良い。
【００７０】
負荷モニタ２０３は、監視結果情報を、第二の情報保持部１２８に書込むことができる。第二の情報保持部１２８に書込まれた監視結果情報は、コントローラ１１１によって読み出すことができる。言い換えれば、コントローラ１１１が、スイッチ装置１２１での監視結果情報を収集することができる。そして、該監視結果情報を基に、コントローラ１１１が適切なロードバランスを計算し、ＣＴＬルーティングテーブル３０３を更新することができる。また、その更新にあわせた第一のルーティング制御情報を、コントローラ１１１が第二の情報保持部１２８に書込むことができる。第二の情報保持部１２８に書込まれた第一のルーティング制御情報を、スイッチ装置１２１の図示しない制御部により読み出し、該第一のルーティング制御情報を基に、ＳＷルーティングテーブル３０１を更新することができる。
【００７１】
以下、ロードバランスの幾つかの例を示す。
【００７２】
図１１は、ロードバランスの第一の例に係る更新後のＳＷルーティングテーブルを示す。更新されたエントリを太線枠で示している。
【００７３】
コントローラ１１１が、各ＲＡＩＤグループ毎に、転送データサイズを算出することができる。具体的には、例えば、コントローラ１１１が、各記憶装置（ターゲット装置）毎に検出された転送データサイズを、ＲＡＩＤグループ毎に合計（ＲＡＩＤグループの転送データサイズ）を算出することができる。そして、例えば、ＲＡＩＤグループＣの転送データサイズが、或る閾値よりも大きい（或いは、他のＲＡＩＤグループＡ、Ｂに比して大きい）場合に、ＲＡＩＤグループＣに属する記憶装置１２２が接続されたスイッチポート１２３Ｃに対して、パスグループＢに加えてパスグループＡが割り当てられる。つまり、コントローラ１１１は、ＲＡＩＤグループＣに属する記憶装置１２２に対しては、下位ポート１１５Ａ、１１５Ｂのいずれからでも論理的に接続することができるようになる。
【００７４】
図１２は、ロードバランスの第二の例に係る更新後のＳＷルーティングテーブルを示す。更新されたエントリを太線枠で示している。
【００７５】
コントローラ１１１が、各スイッチポート１２３に、異なるパスグループを均等に割り当てる。つまり、複数のパスグループの各々に割り当てられるスイッチポートの数を、それぞれなるべく同じにする。その際、同一のＲＡＩＤグループに属する複数の記憶装置１２２がそれぞれ接続された複数のスイッチポート１２３Ｃに、なるべく同じパスグループを割り当てるようにしても良いし、図１２に示すように、そのような複数のスイッチポート１２３Ｃについても、割り当てるパスグループを均等に違えても良い。
【００７６】
図１３は、ロードバランスの第三の例に係る更新前のＣＴＬルーティングテーブルを示す。図１４は、図１３のＣＴＬルーティングテーブルの更新後の構成を示す。図１５は、ロードバランスの第三の例に係る更新前のＳＷルーティングテーブルを示す。図１６は、図１５のＳＷルーティングテーブルの更新後の構成を示す。更新されたエントリを太線枠で示している。
【００７７】
ＣＴＬルーティングテーブル３０３及びＳＷルーティングテーブル３０１のそれぞれに、転送データサイズ（Xfer Data Size）という新たな情報項目（カラム）が用意される。負荷モニタの監視結果情報を基に、各記憶装置１２２に対応したエントリに、転送データサイズが記録される。
【００７８】
コントローラ１１１は、複数の物理パス５１０Ａ及び５１０Ｂのそれぞれの転送データサイズがなるべく同じになるようなロードバランスを行う。言い換えれば、コントローラ１１１は、下位ポート１１５Ａ（ＰＨＹ  ＩＤ“０”）及びスイッチポート１２３Ａ（ＰＨＹ  ＩＤ“０”）のそれぞれ転送データサイズと、下位ポート１１５Ｂ（ＰＨＹ  ＩＤ“１”）及びスイッチポート１２３Ｂ（ＰＨＹ  ＩＤ“１”）のそれぞれの転送データサイズとがなるべく同じになるようなロードバランスを行う（転送データサイズを平準化する）。この実施例では、各物理パスに異なるパスグループＩＤが割り当てられていることから、コントローラ１１１は、パリティグループＩＤ別に、転送データサイズの合計を算出する。そして、コントローラ１１１は、各パリティグループＩＤの転送データサイズがなるべく同じになるように、パスグループの割当てを変更する。具体的には、例えば、下位ポート１１５Ａ（ＰＨＹ  ＩＤ“０”、パスグループＡ）の転送データサイズが４５０で、下位ポート１１５Ｂ（ＰＨＹ  ＩＤ“１”、パスグループＢ）の転送データサイズが１３５０である。それらを平準化すると９００である。そこで、コントローラ１１１は、ＲＡＩＤグループＣに属する記憶装置に接続したスイッチポートに対するパスグループを、パスグループＢからパスグループＡに変更する。これにより、ＲＡＩＤグループＣの転送データサイズ４５０の分だけ、下位ポート１１５Ｂから下位ポート１１５Ａに移ることになるので、転送データサイズがそれぞれ９００となり平準化される。
【００７９】
なお、必ずしも平準化である必要は無い。例えば、パスグループ毎に、転送データサイズの比率を予め設定しておき、負荷モニタの監視結果情報から分かる、複数のパスグループのそれぞれの転送データサイズが、上記予め設定された比率となるように、ロードバランスを行うことも可能である。
【００８０】
以上が、第一実施例についての説明である。なお、この第一実施例では、例えば、管理端末１５０が、第一の情報保持部１１８及び／又は第二の情報保持部１２８から、各ルーティングテーブル３０３，３０１を読み出し、各ルーティグテーブル３０３，３０１を、図示しない表示装置に表示しても良い。
【実施例２】
【００８１】
前述した第一実施例では、小規模構成のストレージシステムの性能の向上を実現したが、この第二実施例では、大規模構成のストレージシステムの信頼性の向上を実現することができる。具体的には、カスケード構成の最下流の第一の記憶装置ユニットにある第一の空きポートに、該カスケード構成の最下流の第二の記憶装置ユニットにある第二の空きポートを物理的に接続することで、物理的にはループ状に接続することができる。しかし、いずれかの互いに接続されたスイッチ装置の各ルーティングテーブルにおいて、互いに接続されたスイッチポートにそれぞれ対応したステータス値を“Inact”（つまり無効）に設定しておくことで、該互いのスイッチポート間を結ぶ第一の物理パスを介しては論理的に接続できない状態にしておく（つまり論理的に切り離しておく）。そして、第二の物理パスで障害が発生した時に、各ステータス値を“Inact”から“Act”（つまり有効）に変更することで、第一の物理パスを介して論理的に接続できる状態にする。これにより、第一の物理パスに障害が発生してもストレージシステムの稼動を停止することなく継続可能となり、故に、信頼性の向上になる。
【００８２】
以下、図面を参照して詳細に説明する。なお、以下の大規模構成のストレージシステムでは、説明を分かり易くするため、１つのコントローラに備えられる下位ポートの数を２つとし、記憶装置ユニットの数を３つとする。また、以下の説明では、第一実施例との相違点を主に説明し、第一実施例との共通点については、説明を省略或るいは簡略する。
【００８３】
図１７は、本発明の第二実施例において、空きポートが生じた大規模構成のストレージシステムの構成例を示す。図１８は、その空きポートを有効活用する構成となった大規模構成のストレージシステムを示す。
【００８４】
図１７に示すように、コントローラ１１１が最上流となり、各下位ポート１１５が空きポートとならないように、コントローラ１１１及び３つの記憶装置ユニット１２０Ａ、１２０Ｂ及び１２０Ｃをカスケード状に接続した場合、二重化されたアクセス系統のうちの一方のアクセス系統で、第一と第二の２つのカスケード状の経路ができる。
【００８５】
第一のカスケード状の経路は、コントローラ１１１の下位ポート１１５Ａ、物理パス２１０Ａ、増設筐体１２０Ａのスイッチ装置１２１Ａのスイッチポート１２３Ａ１、該スイッチ装置１２１Ａのスイッチポート１２３Ｂ１、物理パス２１０Ｃ、増設筐体１２０Ｃのスイッチ装置１２１Ｃのスイッチポート１２３Ａ３で構成される。
【００８６】
第二のカスケード状の経路は、コントローラ１１１の下位ポート１１５Ｂ、物理パス２１０Ｂ、増設筐体１２０Ｂのスイッチ装置１２１Ｂのスイッチポート１２３Ａ２で構成される。
【００８７】
従って、カスケード接続の最下流にある一方の記憶装置ユニット１２０Ｂで、スイッチポート１２３Ｂ２が、第一の空きポートとなり、該最下流にある他方の記憶装置ユニット１２０Ｃで、スイッチポート１２３Ｂ３が、第二の空きポートとなる。
【００８８】
そこで、この第二実施例では、図１８に示すように、第一の空きポートであるスイッチポート１２３Ｂ２と、第二の空きポートであるスイッチポート１２３Ｂ３とを、物理パス２１０Ｄで結ぶ。これにより、第一のカスケード状の経路の終端と、第二のカスケード状の経路の終端とが物理的に接続されるので、物理的にはループ状に接続される。こうなると、コントローラ１１１からは、どの下位ポート１１５Ａ、１１５Ｂからも同一の記憶装置（ターゲット装置）にアクセスできてしまうことになり得る。
【００８９】
この第二実施例では、物理的にはループ状になるが、論理的には切り離しておくことで、論理的には２つのカスケード状の経路とされる。これは、互いに接続されたスイッチ装置１２１のそれぞれのルーティングテーブル３０３の構成を工夫することにより、実現できる。以下、各スイッチ装置１２１Ａ、１２１Ｂ、１２１Ｃのルーティングテーブルの構成を説明する。
【００９０】
図１９は、スイッチ装置１２１ＡのＳＷルーティングテーブル３０１Ａの構成例を示す。
【００９１】
このテーブル３０１Ａでは、スイッチポート１２３Ｂ１に対応するＰＨＹ  ＩＤ“１”について、コネクションタイプの値として、“Lower”（下位の装置との接続を意味する値）が設定され、デバイスタイプの値として、“SW”（他のスイッチ装置との接続を意味する値）が記録される。また、該ＰＨＹ  ＩＤ“１”について、デバイスアドレスの値としてNullを意味する値が記録される。なぜなら、デバイスタイプの値が“SW”であり、SASイニシエータ装置でもSASターゲット装置でもないためである。
【００９２】
また、この第二実施例では、パスグループに基づくゾーニングは行われないので、パスグループＩＤが記録されなくても良い。パスグループＩＤが記録される場合としては、例えば、第一のカスケード状の経路にあることを意味するパスグループＩＤ（例えばPG_A）が記録されても良い。
【００９３】
図２０は、スイッチ装置１２１ＢのＳＷルーティングテーブル３０１Ｂの構成例を示す。図２１は、スイッチ装置１２１ＣのＳＷルーティングテーブル３０１Ｃの構成例を示す。
【００９４】
物理パス２１０Ｄを介して論理的に接続することが不可能な状態とされる。すなわち、ＳＷルーティングテーブル３０１Ｂにおいて、スイッチポート１２３Ｂ２（ＰＨＹ  ＩＤ“１”）に対応したステータスの値が、“Inact”とされ、同様に、ＳＷルーティングテーブル３０１Ｃにおいて、スイッチポート１２３Ｂ３（ＰＨＹ  ＩＤ“１”）に対応したステータスの値が、“Inact”とされる。
【００９５】
さて、図１８に例示した大規模構成にすることは、図２に例示した小規模構成で増設筐体１２０Ｂ、１２０Ｃを増設することで可能である。逆に、増設筐体１２０Ｂ、１２０Ｃを減設することで、図２に例示した小規模構成にすることも可能である。以下、小規模構成から大規模構成に構成変更することを代表的に例に採り、手順を説明する。
【００９６】
まず、例えば管理端末１５０が、構成変更で影響を受けるポートに対応したステータス値を、“Inact”に設定する。そのポートとしては、具体的には、図２の小規模構成で言えば、１１５Ｂ、１２３Ｂ（１２３Ｂ１）である。
【００９７】
次に、物理パス（ケーブル）の繋ぎ変えを行う。それにより、図２の小規模構成から図１８の大規模構成に変更される。
【００９８】
最後に、各ポートのステータス値を設定する。具体的には、例えば、管理端末１５０が、“Inact”に設定されたポート１１５Ｂ及び１２３Ｂのステータス値を“Act”に設定する。また、スイッチポート１２３Ｂ２及び１２３Ｂ３間を物理パス２１０Ｄで繋ぐことで構築されるループを論理的に切り離すために、管理端末１５０が、スイッチポート１２３Ｂ２及び１２３Ｂ３にそれぞれ対応したステータス値を“Inact”に設定する。
【００９９】
なお、上記の増設において、例えば、各増設筐体１２０Ｂ及び１２Ｃでの各ＳＷルーティングテーブル３０１Ｂ、３０１Ｃでは、全てのＰＨＹ  ＩＤにそれぞれ対応した全てのステータス値が“Act”にデフォルトで設定されていても良い。
【０１００】
さて、図１８に示した大規模構成ストレージシステム５００では、物理パス２１０Ｄを介しては、コントローラ１１１と記憶装置１２２とが論理的に接続することが不可能な状態とされているが（つまり論理的に切り離されているが）、他の物理パス２１０Ａ、２１０Ｂ或いは２１０Ｃで障害が発生した場合には、該物理パス２１０Ｄを介して論理的な接続が可能な状態とする。
【０１０１】
具体的には、例えば、図２２に示すように、物理パス２１０Ｃで障害が発生した場合、コントローラ１１１が、それを検出することができる。これは、例えば、コントローラ１１１が、各下位ポート１１５Ａ、１１５Ｂから所定の問合せ信号を出し、それに対する戻り値から、特定することができる。物理パス２１０Ｃで障害が発生すると、点線矢印で示すように、物理パス２１０Ｃを介しては、コントローラ１１１が記憶装置１２２と論理的に接続することは不可能となる。この場合、例えば、図２４に示すように、コントローラ１１１により、ＳＷルーティングテーブル３０１Ｃ上の、物理パス２１０Ｃが接続されているスイッチポート１２３Ａ（ＰＨＹ  ＩＤ“０”）に対応したステータス値が、太線枠で示すように、“Act”から“Inact”に変更される。
【０１０２】
そして、コントローラ１１１が、前述したＳＷルーティングテーブル３０１Ｂ及び３０１Ｃのそれぞれにおいて、図２３及び図２４で太線枠に示すように、ＰＨＹ  ＩＤ“１”に対応したステータス値を、“Inact”から“Act”に変更する。つまり、物理パス２１０Ｄを介して論理的に接続することが不可能な状態から可能な状態に変更される。これにより、図２２において一点鎖線で示すように、コントローラ１１１は、物理パス２１０Ｃを介して論理的に接続することが記憶装置１２２に対し、物理パス２１０Ｄを介して論理的に接続することができるようになる。これにより、大規模構成ストレージシステム５００の稼動を停止することなく継続することができるので、信頼性が向上する。
【０１０３】
なお、物理パス２１０Ｄを介して論理的に接続することができるようにするための、ルーティングテーブルの構成変更に代えて、図２２において二点鎖線で示すように、他方のアクセス系統を介して、物理パス２１０Ｃを介して論理的に接続することが記憶装置１２２に対してアクセスするようにしても良い。ルーティングテーブルの構成変更を行うか、或いは、他方のアクセス系統を経由するかは、例えば、予め設定したポリシーを基に決定されても良い。
【０１０４】
また、上述した例では、ステータス値を変更することで、障害発生に対応したが、ステータス値の変更の際に、コネクションタイプ値やデバイスタイプ値を設定することができる。
【０１０５】
また、例えば、管理端末１５０が、各増設筐体１２０Ａ、１２０Ｂ、１２０Ｃの図示しない第一の情報保持部１１８及び／又は第二の情報保持部１２８から、各ルーティングテーブル３０３，３０１Ａ、３０１Ｂ、３０１Ｃを読み出し、各ルーティグテーブル３０３，３０１Ａ、３０１Ｂ、３０１Ｃを、図示しない表示装置に表示しても良い。
【０１０６】
以上、本発明の好適な実施形態及び幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態及び実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、大規模構成ストレージシステムの一変形例を構築する場合、例えば図２５に示すように、コントローラ１１１の下位ポート１１５Ｂと、増設筐体１２０Ｃのスイッチポート１２３Ｂ３が、それぞれ空きポートとなる場合もあり得る。この場合は、図２６に例示するように、下位ポート１１５Ｂとスイッチポート１２３Ｂ３とを物理パス３１０で接続し、それにより物理的にループとなる或る部分を論理的に切り離しておいてもよい。
【図面の簡単な説明】
【０１０７】
【図１】本発明の第一実施例において、空きポートが生じた小規模構成のストレージシステムの構成例を示す。
【図２】その空きポートを有効活用する構成となった小規模構成のストレージシステムを示す。
【図３】ＳＷルーティングテーブルの構成例を示す。
【図４】ＣＴＬルーティングテーブルの構成例を示す。
【図５】図２の小規模構成ストレージシステムにおいて一つの上位物理パスで障害が発生したことを示す。
【図６】図５での障害発生により更新されたＳＷルーティングテーブルの構成を示す。
【図７】図５での障害発生により更新されたＣＴＬルーティングテーブルの構成を示す。
【図８】コントローラ１１１や増設筐体１２０に情報を設定するための仕組みの一例を示す。
【図９】負荷モニタを搭載したコントローラ１１１の構成例を示す。
【図１０】負荷モニタを搭載したスイッチ装置１２１の構成例を示す。
【図１１】ロードバランスの第一の例に係る更新後のＳＷルーティングテーブルを示す。
【図１２】ロードバランスの第二の例に係る更新後のＳＷルーティングテーブルを示す。
【図１３】ロードバランスの第三の例に係る更新前のＣＴＬルーティングテーブルを示す。
【図１４】図１３のＣＴＬルーティングテーブルの更新後の構成を示す。
【図１５】ロードバランスの第三の例に係る更新前のＳＷルーティングテーブルを示す。
【図１６】図１５のＳＷルーティングテーブルの更新後の構成を示す。
【図１７】本発明の第二実施例において、空きポートが生じた大規模構成のストレージシステムの構成例を示す。
【図１８】その空きポートを有効活用する構成となった大規模構成のストレージシステムを示す。
【図１９】スイッチ装置１２１ＡのＳＷルーティングテーブル３０１Ａの構成例を示す。
【図２０】スイッチ装置１２１ＢのＳＷルーティングテーブル３０１Ｂの構成例を示す。
【図２１】スイッチ装置１２１ＣのＳＷルーティングテーブル３０１Ｃの構成例を示す。
【図２２】図１８の大規模構成ストレージシステムで物理パスに障害が発生したことを示す。
【図２３】図２０のＳＷルーティングテーブル３０１Ｂの更新後の例を示す。
【図２４】図２１のＳＷルーティングテーブル３０１Ｃの更新後の例を示す。
【図２５】大規模構成ストレージシステムの変形例において空きポートが生じる例を示す。
【図２６】大規模構成ストレージシステムの変形例において空きポートを有効活用した例を示す。
【符号の説明】
【０１０８】
１００…ストレージシステム  １１０…基本筐体  １１１…コントローラ  １１４…バックエンドインタフェース装置  １１６…フロントエンドインタフェース装置  １１３…キャッシュメモリ  １１５…下位ポート  １２０…増設筐体  １２１…スイッチ装置  １２２…記憶装置  １２３…スイッチポート
【図１】
2008071005.tif 000003
【図２】
2008071005.tif 000004
【図３】
2008071005.tif 000005
【図４】
2008071005.tif 000006
【図５】
2008071005.tif 000007
【図６】
2008071005.tif 000008
【図７】
2008071005.tif 000009
【図８】
2008071005.tif 000010
【図９】
2008071005.tif 000011
【図１０】
2008071005.tif 000012
【図１１】
2008071005.tif 000013
【図１２】
2008071005.tif 000014
【図１３】
2008071005.tif 000015
【図１４】
2008071005.tif 000016
【図１５】
2008071005.tif 000017
【図１６】
2008071005.tif 000018
【図１７】
2008071005.tif 000019
【図１８】
2008071005.tif 000020
【図１９】
2008071005.tif 000021
【図２０】
2008071005.tif 000022
【図２１】
2008071005.tif 000023
【図２２】
2008071005.tif 000024
【図２３】
2008071005.tif 000025
【図２４】
2008071005.tif 000026
【図２５】
2008071005.tif 000027
【図２６】
2008071005.tif 000028