(57)【要約】【課題】中継装置の接続情報の異常を解消する。【解決手段】制御装置１の記憶部１ｂは、制御装置１の配下に接続されている装置を示す接続情報１ｂ１を記憶する。制御部１ａは、中継装置２が作成した中継装置２に接続されている装置を示す接続情報２ｂ１を取得し、取得した接続情報２ｂ１と記憶部１ｂに記憶されている接続情報１ｂ１との比較を行い、比較結果に基づいて中継装置２に対して接続情報２ｂ１のリセット指示を送信する。【選択図】図１
2012212202.tif 000002
【特許請求の範囲】
【請求項１】
中継装置のデータアクセスの中継により記憶装置にデータアクセスを行う制御装置であって、
自装置の配下に接続されている装置を示す第１の接続情報を記憶する記憶部と、
中継装置が作成した当該中継装置に接続されている装置を示す第２の接続情報を取得し、前記取得した第２の接続情報と前記記憶部に記憶されている第１の接続情報との比較を行い、比較結果に基づいて前記中継装置に対して前記第２の接続情報のリセット指示を送信する制御部と、
を有することを特徴とする制御装置。
【請求項２】
前記制御部は、前記第２の接続情報を作成する第１の中継装置に対しては、前記第２の接続情報を取得するとともに前記比較を行い、比較結果に基づいて前記第１の中継装置に対して第２の接続情報のリセット指示を送信し、前記第２の接続情報を作成しない第２の中継装置に対しては、前記第２の中継装置の接続状態に応じた接続情報を示す第３の接続情報を作成して前記記憶部に記憶させ、前記第２の中継装置に対して前記記憶部に記憶されている第３の接続情報を送信して設定させることを特徴とする請求項１記載の制御装置。
【請求項３】
前記制御部は、自装置の配下に新たに装置が接続された場合に、前記中継装置が作成した当該中継装置に接続されている装置を示す第２の接続情報を取得し、前記取得した第２の接続情報と前記記憶部に記憶されている第１の接続情報との比較を行い、比較結果に基づいて前記中継装置に対して前記リセット指示を送信することを特徴とする請求項１記載の制御装置。
【請求項４】
前記制御部は、前記中継装置の接続状態に応じた接続情報を示す第３の接続情報を作成して前記記憶部に記憶させ、前記第２の接続情報を取得し、前記取得した第２の接続情報と前記記憶部に記憶されている第３の接続情報との比較を行い、比較結果に基づいて前記中継装置に対して前記リセット指示を送信することを特徴とする請求項１記載の制御装置。
【請求項５】
前記制御部は、前記第２の中継装置に対しては、前記第３の接続情報を送信して設定させ、前記第２の中継装置に設定させた第３の接続情報を取得するとともに前記比較を行い、比較結果に基づいて前記第２の中継装置に対して前記第３の接続情報を送信して設定させることを特徴とする請求項２記載の制御装置。
【請求項６】
中継装置のデータアクセスの中継により制御装置が記憶装置にデータアクセスを行うストレージシステムであって、
自装置の配下に接続されている装置を示す第２の接続情報を記憶する第２の記憶部を有し、
前記第２の接続情報を作成して前記第２の記憶部に記憶させ、前記第２の記憶部に記憶させた第２の接続情報に基づいて他装置と接続する中継装置と、
自装置の配下に接続されている装置を示す第１の接続情報を記憶する第１の記憶部と、
前記第２の接続情報を取得し、前記取得した第２の接続情報と前記第１の記憶部に記憶されている第１の接続情報との比較を行い、比較結果に基づいて前記中継装置に対して前記第２の接続情報のリセット指示を送信する制御部と、
を有する制御装置と、
を有することを特徴とするストレージシステム。
【請求項７】
中継装置のデータアクセスの中継により記憶装置にデータアクセスを行う制御方法であって、
中継装置が作成した当該中継装置に接続されている装置を示す第２の接続情報を取得し、
前記取得した第２の接続情報と制御装置の配下に接続されている装置を示す第１の接続情報との比較を行い、
比較結果に基づいて前記中継装置に対して前記第２の接続情報のリセット指示を送信する、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ストレージシステムおよび制御方法に関する。
【背景技術】
【０００２】
磁気ディスク、光ディスク、半導体メモリ等の記憶媒体を利用してデータを記憶する記憶装置および記憶装置へのデータの書き込み、または、記憶装置からのデータの読み出しを制御する制御装置（コントローラモジュール（ＣＭ）：Controller Module）を有するストレージシステムが広く用いられている。また、ストレージシステムには、記憶装置および制御装置に、記憶装置と制御装置との間に直列接続されるとともに、記憶装置と制御装置との間のアクセスを中継する、ＳＡＳ（Serial Attached SCSI）エクスパンダ等の中継装置を有するものがある。
【０００３】
また、ストレージシステムの中継装置は、ルーティングテーブル等に記憶している接続情報を用いて中継装置や記憶装置と接続する場合がある。
中継装置を有するストレージシステムの接続制御に関して、以下の技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２４２８７２号公報
【特許文献２】特開２００９−１８１３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の中継装置は、自装置でＤＩＳＣＯＶＥＲプロセスを実行して他の装置をルーティングテーブルに設定するＳＤ（Ｓｅｌｆ−ＤＩＳＣＯＶＥＲ）モードで動作する場合と、自装置ではＤＩＳＣＯＶＥＲプロセスを実行せず、制御装置等の他の装置が作成したルーティングテーブルを自装置に設定するＮＳＤ（Ｎｏｎ−Ｓｅｌｆ−ＤＩＳＣＯＶＥＲ）モードで動作する場合とがある。
【０００６】
ここで、ＳＤモードで動作する中継装置とＮＳＤモードで動作する中継装置とを混在させて制御装置と接続した場合には、ＳＤモードで動作する中継装置のルーティングテーブルが正しく作成されない場合がある。
【０００７】
例えば、新たに記憶装置がストレージシステムに接続された場合においてＳＤモードで動作する中継装置がルーティングテーブルを作成するものとする。このとき、上記中継装置がルーティングテーブルを作成したタイミングが早い場合等によって、接続された記憶装置との間に介在する中継装置のルーティングテーブルに設定されていないときには、接続された記憶装置が上記中継装置のルーティングテーブルに設定されないことになる。
【０００８】
このように、ＳＤモードで動作する中継装置において一部の中継装置や記憶装置が認識されない場合等が生じ得る。このように、ＳＤモードで動作する中継装置において、接続情報が正しく作成されない場合が生じ得る。
【０００９】
このような点に鑑み、中継装置の接続情報の異常を解消可能な制御装置、ストレージシステムおよび制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために以下のような中継装置のデータアクセスの中継により記憶装置にデータアクセスを行う制御装置が提供される。この制御装置は、自装置の配下に接続されている装置を示す第１の接続情報を記憶する記憶部と、中継装置が作成した当該中継装置に接続されている装置を示す第２の接続情報を取得し、取得した第２の接続情報と記憶部に記憶されている第１の接続情報との比較を行い、比較結果に基づいて中継装置に対して第２の接続情報のリセット指示を送信する制御部と、を有する。
【発明の効果】
【００１１】
中継装置の接続情報の異常を解消することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態のストレージシステムを示す図である。
【図２】第２の実施の形態のストレージシステムのハードウェアを示す図である。
【図３】第２の実施の形態のストレージシステムにおけるコントローラ、エクスパンダ、記憶装置の接続を示す図である。
【図４】第２の実施の形態のコントローラのルーティングテーブルを示す図である。
【図５】第２の実施の形態のエクスパンダのルーティングテーブルを示す図である。
【図６】第２の実施の形態におけるルーティングテーブルの比較を示す図である。
【図７】第２の実施の形態におけるルーティングテーブルの比較を示す図である。
【図８】第２の実施の形態のルーティングテーブル設定処理を示す図である。
【図９】第２の実施の形態のルーティングテーブル比較処理を示す図である。
【図１０】第２の実施の形態の変形例のルーティングテーブル比較処理を示す図である。
【図１１】第２の実施の形態の変形例のルーティングテーブル比較処理を示す図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態を、図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージシステムを示す図である。ストレージシステムは、制御装置１、中継装置２，３，４、記憶装置５，６，７を有する。
【００１４】
制御装置１は、中継装置２〜４のデータアクセスの中継により記憶装置５〜７にデータアクセスを行う。制御装置１は、制御部１ａ、記憶部１ｂを有する。
ここで、第１の実施の形態では、中継装置２は、新たな装置（例えば、記憶装置７）が中継装置４に接続された場合、自装置により配下の中継装置（例えば、中継装置３）の接続情報３ｂ１を取得し、取得した接続情報３ｂ１に基づいて、配下に新たに接続された装置を含む接続情報２ｂ１を作成し、記憶部２ｂに記憶させるものとする（自己作成可能）。一方、中継装置３，４は、新たな装置（例えば、記憶装置７）が中継装置４に接続された場合、それぞれ自ら接続情報３ｂ１，４ｂ１を作成せず、制御装置１がそれぞれ自装置用に作成した接続情報を受信して、それぞれ記憶部３ｂ，４ｂに記憶させるものとする（自己作成不可）。
【００１５】
制御部１ａは、自己作成可能である中継装置２が作成した中継装置２に接続されている装置を示す接続情報２ｂ１を取得し、取得した接続情報２ｂ１と記憶部１ｂに記憶されている接続情報１ｂ１との比較を行い、比較結果に基づいて中継装置２に対して接続情報２ｂ１のリセット指示を送信する。
【００１６】
記憶部１ｂは、制御装置１の配下に接続されている装置を示す接続情報１ｂ１を記憶する。ここで、各接続情報は、自装置に対し、他の装置を介して間接的に接続されている装置を示すものとする。なお、これに限らず、自装置と直接接続されている装置を含んでもよい。接続情報１ｂ１は、例えば、ストレージシステムの電源投入時に制御部１ａが中継装置２〜４の接続状態を収集して作成される。また、接続情報１ｂ１は、ストレージシステムに新たな装置が接続された場合等のストレージシステムの接続状態が変化した場合に、制御部１ａが接続状態の変化を検出すると、これに基づいて更新される。
【００１７】
中継装置２〜４は、記憶部２ｂ〜４ｂを有する。また、中継装置２〜４は、それぞれ記憶装置５〜７と接続可能である。中継装置２〜４は、それぞれ記憶部２ｂ〜４ｂに記憶されている接続情報２ｂ１〜４ｂ１に基づいて他の装置と接続する。
【００１８】
記憶部２ｂ〜４ｂは、それぞれ中継装置２〜４の配下に接続されている装置を示す接続情報を記憶する。
記憶装置５〜７は、ユーザデータを記憶し、制御装置１のアクセスに基づいて記憶しているデータの読み書きを行う。
【００１９】
この場合、中継装置２による接続情報２ｂ１の作成のタイミングによっては、接続情報２ｂ１に異常が生じる場合がある。例えば、新たに中継装置４に記憶装置７が接続された際に、中継装置３の接続情報３ｂ１の制御装置１による更新前に、中継装置２による接続情報２ｂ１の作成が行われた場合が考えられる。この場合、中継装置２が接続情報３ｂ１を取得した時点では、接続情報３ｂ１には記憶装置７が設定されていない。このため、このとき、中継装置２が接続情報３ｂ１に基づいて接続情報２ｂ１を作成すると、接続情報２ｂ１に記憶装置７が設定されず、中継装置２は記憶装置７にアクセスできない場合が生じ得る。
【００２０】
これに対して、制御部１ａは、新たな装置として記憶装置７が配下に接続されたことを検出した際等に、中継装置２が作成した接続情報２ｂ１と制御装置１が作成した接続情報１ｂ１との比較を行い、一致しない場合には中継装置２に対して接続情報２ｂ１のリセット指示を送信する。これにより、中継装置２で接続情報２ｂ１が再び作成され、接続情報２ｂ１に記憶装置７の接続を反映させることができる。
【００２１】
このようにして、中継装置２の接続情報の異常を解消することが可能となる。
［第２の実施の形態］
次に、第１の実施の形態のストレージシステムをより具体的にした実施の形態を、第２の実施の形態として説明する。
【００２２】
図２は、第２の実施の形態のストレージシステムのハードウェアを示す図である。ストレージシステム１００は、２つのコントローラ１１１ａ，１１２ａを有するコントローラエンクロージャ（ＣＥ：Controller Enclosure）１１０を有する。さらに、ストレージシステム１００は、複数のドライブエンクロージャ（ＤＥ：Drive Enclosure）１５０ｂ，１５０ｃ，１５０ｄを有する。
【００２３】
コントローラエンクロージャ１１０と各ドライブエンクロージャ１５０ｂ〜１５０ｄとは、それぞれ、記憶装置１５３ａ，１５４ａ，１５３ｂ，１５４ｂ，１５３ｃ，１５４ｃ，１５３ｄ，１５４ｄを有する。
【００２４】
ドライブエンクロージャ１５０ｂ〜１５０ｄは、コントローラ１１１ａ，１１２ａのそれぞれに接続された２つのデータ伝送経路１２１，１２２に直列に接続されている。データ伝送経路１２１，１２２には、例えば、ＳＡＳが用いられている。ここで、ドライブエンクロージャ１５０ｂ〜１５０ｄの数は、３つに限定されるものではなく、例えば、必要とする記憶容量に応じて適宜設定される。
【００２５】
まず、ドライブエンクロージャ１５０ｂについて説明する。ドライブエンクロージャ１５０ｂは、メモリ１５１ｂ１を有するエクスパンダ（ＥＸＰ：Expander）１５１ｂと、メモリ１５２ｂ１を有するエクスパンダ１５２ｂと、データを記憶する記憶装置１５３ｂ，１５４ｂとを有する。記憶装置１５３ｂ，１５４ｂには、例えば、磁気ディスク（ＨＤＤ：Hard Disk Drive）やソリッドステートドライブ（ＳＳＤ：Solid State Drive）が用いられている。
【００２６】
エクスパンダ１５１ｂ，１５２ｂはそれぞれ、ＳＡＳ等のデータ伝送経路により、記憶装置１５３ｂ，１５４ｂと接続されている。エクスパンダ１５１ｂは、データ伝送経路１２１に直列接続され、エクスパンダ１５２ｂは、データ伝送経路１２２に直列接続されている。エクスパンダ１５１ｂは、コントローラ１１１ａから記憶装置１５３ｂへのデータアクセスを中継する。エクスパンダ１５２ｂは、コントローラ１１２ａから記憶装置１５４ｂへのデータアクセスを中継する。
【００２７】
エクスパンダ１５１ｂとエクスパンダ１５２ｂとの間には、通信経路１５９ｂが設けられている。通信経路１５９ｂには、例えば、Ｉ2Ｃ（商標）やＥｔｈｅｒｎｅｔ（登録商標）等が用いられている。さらに、エクスパンダ１５１ｂには、エクスパンダ間ポート１５６ｂが設けられ、エクスパンダ１５２ｂには、エクスパンダ間ポート１５７ｂが設けられている。
【００２８】
そして、エクスパンダ１５１ｂとエクスパンダ１５２ｂとの間には、エクスパンダ間ポート１５６ｂとエクスパンダ間ポート１５７ｂとに接続されたエクスパンダ間データ伝送経路１５８ｂが設けられている。エクスパンダ間データ伝送経路１５８ｂには、例えば、ＳＡＳ等が用いられている。
【００２９】
メモリ１５１ｂ１には、エクスパンダ１５１ｂとコントローラ１１１ａまたはコントローラ１１２ａとの間が接続中であるか、または未接続であるかの接続状態と、エクスパンダ１５１ｂと記憶装置１５３ｂとの間の接続状態とが記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５１ｂとエクスパンダ１５２ｂとの間の接続状態と、エクスパンダ１５２ｂと記憶装置１５４ｂとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５１ｂに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。エクスパンダ１５１ｂは、詳しくは後述するように、ＳＤモードで動作するため、配下のエクスパンダ１５１ｃのメモリ１５１ｃ１に記憶されているルーティングテーブルを参照して、自装置の配下の接続状態を、自装置のルーティングテーブルに設定する。
【００３０】
メモリ１５２ｂ１には、エクスパンダ１５２ｂとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５１ｂと記憶装置１５４ｂとの間の接続状態が記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５１ｂとエクスパンダ１５２ｂとの間の接続状態と、エクスパンダ１５１ｂと記憶装置１５３ｂとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５２ｂに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。
【００３１】
エクスパンダ１５１ｂは、記憶装置１５３ｂ，１５４ｂ、および、データ伝送経路１２１に接続された配下のエクスパンダとの間の接続状態を監視し、例えば、配下に新たに装置が接続されたり、接続されている装置の接続が解除されたりした場合等、この接続状態に変化が生じると、これを検出する。そして、エクスパンダ１５１ｂは、この接続状態の変化を、データ伝送経路１２１を介してコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００３２】
さらに、エクスパンダ１５１ｂは、コントローラ１１１ａまたはコントローラ１１２ａからの指示に従って、メモリ１５１ｂ１に格納されたルーティングテーブルを更新する。さらに、エクスパンダ１５１ｂは、更新したルーティングテーブルをコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００３３】
エクスパンダ１５２ｂは、記憶装置１５３ｂ，１５４ｂ、および、データ伝送経路１２２に接続された配下のエクスパンダとの間の接続状態を監視し、この接続状態に変化が生じると、接続状態の変化を検出する。そして、エクスパンダ１５２ｂは、検出した接続状態の変化を、データ伝送経路１２２を介してコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００３４】
さらに、エクスパンダ１５２ｂは、コントローラ１１１ａまたはコントローラ１１２ａからの指示に従って、メモリ１５２ｂ１に格納されたルーティングテーブルを更新する。さらに、エクスパンダ１５２ｂは、更新したルーティングテーブルをコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００３５】
次に、ドライブエンクロージャ１５０ｃについて説明する。ドライブエンクロージャ１５０ｃは、メモリ１５１ｃ１を有するエクスパンダ１５１ｃと、メモリ１５２ｃ１を有するエクスパンダ１５２ｃと、データを記憶する記憶装置１５３ｃ，１５４ｃとを有する。
【００３６】
エクスパンダ１５１ｃ，１５２ｃはそれぞれ、ＳＡＳ等のデータ伝送経路により、記憶装置１５３ｃ，１５４ｃと接続されている。エクスパンダ１５１ｃは、データ伝送経路１２１に直列接続され、エクスパンダ１５２ｃは、データ伝送経路１２２に直列接続されている。エクスパンダ１５１ｃ，１５２ｃはそれぞれ、コントローラ１１１ａまたはコントローラ１１２ａから記憶装置１５３ｃ，１５４ｃへのデータアクセスを中継する。
【００３７】
エクスパンダ１５１ｃとエクスパンダ１５２ｃとの間には、通信経路１５９ｃが設けられている。通信経路１５９ｃには、例えば、Ｉ2Ｃ（商標）やＥｔｈｅｒｎｅｔ（登録商標）等が用いられている。さらに、エクスパンダ１５１ｃには、エクスパンダ間ポート１５６ｃが設けられ、エクスパンダ１５２ｃには、エクスパンダ間ポート１５７ｃが設けられている。
【００３８】
そして、エクスパンダ１５１ｃとエクスパンダ１５２ｃとの間には、エクスパンダ間ポート１５６ｃとエクスパンダ間ポート１５７ｃとに接続されたエクスパンダ間データ伝送経路１５８ｃが設けられている。エクスパンダ間データ伝送経路１５８ｃには、例えば、ＳＡＳ等が用いられている。
【００３９】
メモリ１５１ｃ１には、エクスパンダ１５１ｃとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５１ｃと記憶装置１５３ｃとの間の接続状態とが記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５２ｃとエクスパンダ１５１ｃとの間の接続状態と、エクスパンダ１５２ｃと記憶装置１５４ｃとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５１ｃに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。エクスパンダ１５１ｂは、詳しくは後述するように、ＮＳＤモードで動作するため、コントローラ１１１ａによって作成されたルーティングテーブルを、自装置のルーティングテーブルに設定する。
【００４０】
メモリ１５２ｃ１には、エクスパンダ１５２ｃとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５２ｃと記憶装置１５４ｃとの間の接続状態が記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５１ｃとエクスパンダ１５２ｃとの間の接続状態と、エクスパンダ１５１ｃと記憶装置１５３ｃとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５２ｃに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。
【００４１】
なお、エクスパンダ１５１ｃの機能については、ドライブエンクロージャ１５０ｂのエクスパンダ１５１ｂと同様である。エクスパンダ１５２ｃの機能については、ドライブエンクロージャ１５０ｂのエクスパンダ１５２ｂと同様である。
【００４２】
次に、ドライブエンクロージャ１５０ｄについて説明する。ドライブエンクロージャ１５０ｄは、メモリ１５１ｄ１を有するエクスパンダ１５１ｄと、メモリ１５２ｄ１を有するエクスパンダ１５２ｄと、データを記憶する記憶装置１５３ｄ，１５４ｄとを有する。
【００４３】
エクスパンダ１５１ｄ，１５２ｄはそれぞれ、ＳＡＳ等のデータ伝送経路により、記憶装置１５３ｄ，１５４ｄと接続されている。エクスパンダ１５１ｄは、データ伝送経路１２１に直列接続され、エクスパンダ１５２ｄは、データ伝送経路１２２に直列接続されている。エクスパンダ１５１ｄ，１５２ｄはそれぞれ、コントローラ１１１ａまたはコントローラ１１２ａから記憶装置１５３ｄ，１５４ｄへのデータアクセスを中継する。
【００４４】
エクスパンダ１５１ｄとエクスパンダ１５２ｄとの間には、通信経路１５９ｄが設けられている。通信経路１５９ｄには、例えば、Ｉ2Ｃ（商標）やＥｔｈｅｒｎｅｔ（登録商標）等が用いられている。さらに、エクスパンダ１５１ｄには、エクスパンダ間ポート１５６ｄが設けられ、エクスパンダ１５２ｄには、エクスパンダ間ポート１５７ｄが設けられている。
【００４５】
そして、エクスパンダ１５１ｄとエクスパンダ１５２ｄとの間には、エクスパンダ間ポート１５６ｄとエクスパンダ間ポート１５７ｄとに接続されたエクスパンダ間データ伝送経路１５８ｄが設けられている。エクスパンダ間データ伝送経路１５８ｄには、例えば、ＳＡＳ等が用いられている。
【００４６】
メモリ１５１ｄ１には、エクスパンダ１５１ｄとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５１ｄと記憶装置１５３ｄとの間の接続状態とが記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５２ｄとエクスパンダ１５１ｄとの間の接続状態と、エクスパンダ１５２ｄと記憶装置１５４ｄとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５１ｄに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。
【００４７】
メモリ１５２ｄ１には、エクスパンダ１５２ｄとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５２ｄと記憶装置１５４ｄとの間の接続状態が記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、エクスパンダ１５１ｄとエクスパンダ１５２ｄとの間の接続状態と、エクスパンダ１５１ｄと記憶装置１５３ｄとの間の接続状態とが記憶される。さらに、このルーティングテーブルには、エクスパンダ１５２ｄに接続された配下のエクスパンダが有するルーティングテーブルを包含するように設定される。
【００４８】
なお、エクスパンダ１５１ｄの機能については、ドライブエンクロージャ１５０ｃのエクスパンダ１５１ｃと同様である。エクスパンダ１５２ｄの機能については、ドライブエンクロージャ１５０ｃのエクスパンダ１５２ｃと同様である。
【００４９】
次に、コントローラエンクロージャ１１０について説明する。コントローラエンクロージャ１１０は、コントロールモジュール（ＣＭ：Control Module）１１１，１１２と、データを記憶する記憶装置１５３ａ，１５４ａとを有する。また、記憶装置１５３ａ，１５４ａには、例えば、磁気ディスクやソリッドステートドライブが用いられている。
【００５０】
コントロールモジュール１１１は、コントローラ１１１ａと、メモリ１５１ａ１を有するエクスパンダ１５１ａとを有する。コントロールモジュール１１２は、コントローラ１１２ａと、メモリ１５２ａ１を有するエクスパンダ１５２ａとを有する。
【００５１】
コントローラ１１１ａおよびエクスパンダ１５１ａはデータ伝送経路１２１に接続され、コントローラ１１２ａおよびエクスパンダ１５２ａはデータ伝送経路１２２に接続されている。さらに、コントローラ１１１ａは、ＳＡＳ等のデータ伝送経路により、エクスパンダ１５２ａに接続されている。コントローラ１１２ａは、ＳＡＳ等のデータ伝送経路により、エクスパンダ１５１ａに接続されている。
【００５２】
エクスパンダ１５１ａおよびエクスパンダ１５２ａはそれぞれ、ＳＡＳ等のデータ伝送経路により、記憶装置１５３ａ，１５４ａと接続されている。エクスパンダ１５１ａは、記憶装置１５３ａとコントローラ１１１ａまたはコントローラ１１２ａとの間のデータ伝送を中継する。エクスパンダ１５２ａは、記憶装置１５４ａとコントローラ１１１ａまたはコントローラ１１２ａとの間のデータ伝送を中継する。
【００５３】
メモリ１５１ａ１には、エクスパンダ１５１ａとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５１ａと記憶装置１５３ａとの間の接続状態とが記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、データ伝送経路１２１に接続された配下のエクスパンダ１５１ｂが有するルーティングテーブルを包含するように設定される。
【００５４】
メモリ１５２ａ１には、エクスパンダ１５２ａとコントローラ１１１ａまたはコントローラ１１２ａとの間の接続状態と、エクスパンダ１５２ａと記憶装置１５４ａとの間の接続状態とが記憶されるルーティングテーブルが格納される。さらに、このルーティングテーブルには、データ伝送経路１２２に接続された配下のエクスパンダ１５２ｂが有するルーティングテーブルを包含するように設定される。
【００５５】
エクスパンダ１５１ａは、コントローラ１１１ａまたはコントローラ１１２ａからの指示に従って、メモリ１５１ａ１に格納されたルーティングテーブルを更新する。さらに、エクスパンダ１５１ａは、更新したルーティングテーブルをコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００５６】
さらに、エクスパンダ１５１ａは、記憶装置１５３ａ、および、データ伝送経路１２１に接続された配下のエクスパンダ１５１ｂとの間の接続状態を監視し、この接続状態に変化が生じると、これを検出する。そして、エクスパンダ１５１ａは、この接続状態の変化をコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００５７】
また、エクスパンダ１５２ａは、コントローラ１１１ａまたはコントローラ１１２ａからの指示に従って、メモリ１５２ａ１に格納されたルーティングテーブルを更新する。さらに、エクスパンダ１５２ａは、更新したルーティングテーブルをコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００５８】
さらに、エクスパンダ１５２ａは、記憶装置１５４ａ、および、データ伝送経路１２２に接続された配下のエクスパンダ１５２ｂとの間の接続状態を監視し、この接続状態に変化が生じると、これを検出する。そして、エクスパンダ１５２ａは、この接続状態の変化をコントローラ１１１ａまたはコントローラ１１２ａに通知する。
【００５９】
コントローラ１１１ａは、制御回路１１１ａ１と、メモリ１１１ａ２と、通信ポート１１１ａ３とを有する。コントローラ１１１ａによる処理は、制御回路１１１ａ１によって実行される。通信ポート１１１ａ３には、データ伝送経路１２１が接続されている。
【００６０】
コントローラ１１２ａは、制御回路１１２ａ１と、メモリ１１２ａ２と、通信ポート１１２ａ３とを有する。コントローラ１１２ａによる処理は、制御回路１１２ａ１によって実行される。通信ポート１１２ａ３には、データ伝送経路１２２が接続されている。
【００６１】
コントローラ１１１ａ，１１２ａはそれぞれ、エクスパンダ１５１ａ〜１５１ｄ，１５２ａ〜１５２ｄのうちの一部を経由するデータ伝送経路により、次の処理を行う。すなわち、コントローラ１１１ａ，１１２ａはそれぞれ、各記憶装置１５３ａ〜１５３ｄ，１５４ａ〜１５４ｄへのデータの書き込み、または、各記憶装置１５３ａ〜１５３ｄ，１５４ａ〜１５４ｄからのデータの読み出しを行う。この処理は、例えば、ホスト装置（図示せず）からの指示に応じて行われる。
【００６２】
さらに、コントローラ１１１ａ，１１２ａはそれぞれ、エクスパンダ１５１ａ〜１５１ｄ，１５２ａ〜１５２ｄのうちのいずれかから接続状態変化の通知を受信すると、次の処理を行う。すなわち、コントローラ１１１ａ，１１２ａはそれぞれ、エクスパンダ１５１ａ〜１５１ｄ，１５２ａ〜１５２ｄのすべてに対して、ルーティングテーブルの更新を指示する。
【００６３】
さらに、コントローラ１１１ａ，１１２ａはそれぞれ、エクスパンダ１５１ａ〜１５１ｄ，１５２ａ〜１５２ｄが有するルーティングテーブルをすべて取得する。取得したルーティングテーブルは、メモリ１１１ａ２，１１２ａ２に格納される。さらに、コントローラ１１１ａ，１１２ａは、メモリ１１１ａ２，１１２ａ２に格納された取得したルーティングテーブルを参照し、データ伝送経路１２１およびデータ伝送経路１２２を介した各記憶装置１５３ａ〜１５３ｄ，１５４ａ〜１５４ｄへの接続状況を監視する。
【００６４】
図３は、第２の実施の形態のストレージシステムにおけるコントローラ、エクスパンダ、記憶装置の接続を示す図である。第２の実施の形態のストレージシステム１００では、以下、コントローラ１１１ａ、エクスパンダ１５１ａ〜１５１ｅ、記憶装置１５３ａ〜１５３ｅが図３に示すように接続されているものとする。
【００６５】
すなわち、コントローラ１１１ａは、エクスパンダ１５１ａと直接接続されている。エクスパンダ１５１ａは、コントローラ１１１ａ、エクスパンダ１５１ｂ、記憶装置１５３ａと直接接続されている。エクスパンダ１５１ｂは、エクスパンダ１５１ａ，１５１ｃ、記憶装置１５３ｂと直接接続されている。エクスパンダ１５１ｃは、エクスパンダ１５１ｂ，１５１ｄ、記憶装置１５３ｃと直接接続されている。エクスパンダ１５１ｄは、エクスパンダ１５１ｃ，１５１ｅ、記憶装置１５３ｄと直接接続されている。エクスパンダ１５１ｅは、エクスパンダ１５１ｄ、記憶装置１５３ｅと直接接続されている。また、コントローラ１１１ａは、制御回路１１１ａ１、メモリ１１１ａ２を有する。制御回路１１１ａ１は、制御部として機能する。メモリ１１１ａ２は、記憶部として機能する。
【００６６】
また、エクスパンダ１５１ａ，１５１ｃ，１５１ｄは、自装置でルーティングテーブルの作成や更新を行わず、コントローラ１１１ａが作成または更新したルーティングテーブルを受信して自装置のルーティングテーブルを設定するＮＳＤモードで動作するものとする。また、エクスパンダ１５１ｂ，１５１ｅは、自装置でルーティングテーブルの作成や更新を行うとともにルーティングテーブルを設定するＳＤモードで動作するものとする。
【００６７】
制御回路１１１ａ１は、自装置の配下に新たに装置（例えば、記憶装置１５３ｅ）が接続された場合に、エクスパンダ１５１ａ〜１５１ｅのそれぞれの接続状態に応じたルーティングテーブルを作成する。そして、制御回路１１１ａ１は、配下のエクスパンダ１５１ａ〜１５１ｅのうち、ＳＤモードで動作するエクスパンダ１５１ｂが作成した、エクスパンダ１５１ｂに接続されている装置を示すルーティングテーブルを取得する。制御回路１１１ａ１は、取得したルーティングテーブルとメモリ１１１ａ２に記憶されている、エクスパンダ１５１ａに対応する、エクスパンダ１５１ａの接続状態に応じた配下エクスパンダ用ルーティングテーブルとの比較を行い、比較結果に基づいてエクスパンダ１５１ｂに対してルーティングテーブルのリセット指示を送信する。具体的な比較方法については、詳しくは図６および図７において後述する。
【００６８】
制御回路１１１ａ１は、ＳＤモードで動作するエクスパンダ１５１ｂ，１５１ｅに対しては、それぞれのルーティングテーブルを取得するとともにコントローラ１１１ａが有するルーティングテーブルとの比較を行い、比較結果に基づいてエクスパンダ１５１ｂ，１５１ｅに対してそれぞれのルーティングテーブルのリセット指示を送信する。制御回路１１１ａ１は、ＮＳＤモードで動作するエクスパンダ１５１ａ，１５１ｃ，１５１ｄに対してはルーティングテーブルの比較を行わず、それぞれの接続状態に応じたルーティングテーブルを作成してエクスパンダ１５１ａ，１５１ｃ，１５１ｄに送信することで、接続状態に応じたルーティングテーブルを設定させる。
【００６９】
図４は、第２の実施の形態のコントローラのルーティングテーブルを示す図である。図４に示すルーティングテーブル１１１ａ２１は、コントローラ１１１ａと接続されている装置を示す接続情報を格納するルーティングテーブルであり、コントローラ１１１ａのメモリ１１１ａ２に記憶されている。ルーティングテーブル１１１ａ２１は、コントローラ１１１ａにより、ストレージシステム１００の電源投入時に設定される。また、ルーティングテーブル１１１ａ２１は、コントローラ１１１ａによる各装置の接続状態の変化の検出に基づいて更新される。
【００７０】
ルーティングテーブル１１１ａ２１には、エクスパンダを介してコントローラ１１１ａと間接的に接続されている装置が設定される。すなわち、ルーティングテーブル１１１ａ２１には、エクスパンダ１５１ａのように、コントローラ１１１ａと直接接続されている装置は設定されない。
【００７１】
具体的には、ルーティングテーブル１１１ａ２１には、記憶装置１５３ａを示す“ＤＩＳＫ＃Ａ１”、ＳＤモードのエクスパンダ１５１ｂを示す“ＥＸＰ＃Ｂ（ＳＤ）”、記憶装置１５３ｂを示す“ＤＩＳＫ＃Ｂ１”、ＮＳＤモードのエクスパンダ１５１ｃを示す“ＥＸＰ＃Ｃ（ＮＳＤ）”、記憶装置１５３ｃを示す“ＤＩＳＫ＃Ｃ１”、ＮＳＤモードのエクスパンダ１５１ｄを示す“ＥＸＰ＃Ｄ（ＮＳＤ）”、記憶装置１５３ｄを示す“ＤＩＳＫ＃Ｄ１”、ＳＤモードのエクスパンダ１５１ｅを示す“ＥＸＰ＃Ｅ（ＳＤ）”、記憶装置１５３ｅを示す“ＤＩＳＫ＃Ｅ１”が、コントローラ１１１ａにより、ストレージシステム１００の電源投入時にコントローラ１１１ａからの接続されている装置を示す情報の要求に対する配下のエクスパンダからの応答に基づいて設定される。また、ルーティングテーブル１１１ａ２１には、コントローラ１１１ａにより、各装置のストレージシステム１００への接続状態の変化時に、接続状態の変化を検出した配下のエクスパンダからの通知に基づいて更新される。
【００７２】
図５は、第２の実施の形態のエクスパンダのルーティングテーブルを示す図である。図５（Ａ）に示すルーティングテーブル１５１ａ１１は、エクスパンダ１５１ａと接続されている装置を示す接続情報を格納するルーティングテーブルであり、メモリ１５１ａ１に記憶されている。図５（Ｂ）に示すルーティングテーブル１５１ｂ１１は、エクスパンダ１５１ｂと接続されている装置を示す接続情報を格納するルーティングテーブルであり、メモリ１５１ｂ１に記憶されている。図５（Ｃ）に示すルーティングテーブル１５１ｃ１１は、エクスパンダ１５１ｃと接続されている装置を示す接続情報を格納するルーティングテーブルであり、メモリ１５１ｃ１に記憶されている。図５（Ｄ）に示すルーティングテーブル１５１ｄ１１は、エクスパンダ１５１ｄと接続されている装置を示す接続情報を格納するルーティングテーブルであり、メモリ１５１ｄ１に記憶されている。
【００７３】
図５（Ａ）から図５（Ｄ）に示すルーティングテーブル１５１ａ１１〜１５１ｄ１１には、当該ルーティングテーブルを記憶している自装置の配下のエクスパンダを介して自装置と間接的に接続されている装置が設定される。すなわち、ルーティングテーブル１５１ａ１１〜１５１ｄ１１には、自装置と直接接続されている装置は設定されない。また、エクスパンダ１５１ｅには配下のエクスパンダが存在せず、間接的に接続されている装置が存在しないので、ルーティングテーブルに装置が設定されない。このため、エクスパンダ１５１ｅのルーティングテーブルについては説明を省略する。
【００７４】
具体的には、図５（Ａ）に示すルーティングテーブル１５１ａ１１には、配下のエクスパンダ１５１ｂ〜１５１ｅを介してエクスパンダ１５１ａと間接的に接続されている記憶装置１５３ｂ、エクスパンダ１５１ｃ、記憶装置１５３ｃ、エクスパンダ１５１ｄ、記憶装置１５３ｄ、エクスパンダ１５１ｅ、記憶装置１５３ｅが設定されている。ルーティングテーブル１５１ａ１１は、後述するように、エクスパンダ１５１ａがＮＳＤモードで動作するため、コントローラ１１１ａにより、ストレージシステム１００の電源投入時等にコントローラ１１１ａからのエクスパンダ１５１ａに対応する配下用ルーティングテーブルの送信に基づいて設定される。また、ルーティングテーブル１５１ａ１１は、コントローラ１１１ａにより、各装置のストレージシステム１００への接続状態の変化時に、接続状態の変化を検出した配下のエクスパンダからの通知に基づいて更新される。
【００７５】
図５（Ｂ）に示すルーティングテーブル１５１ｂ１１には、配下のエクスパンダ１５１ｃ〜１５１ｅを介してエクスパンダ１５１ｂと間接的に接続されている記憶装置１５３ｃ、エクスパンダ１５１ｄ、記憶装置１５３ｄ、エクスパンダ１５１ｅ、記憶装置１５３ｅが設定されている。ルーティングテーブル１５１ｂ１１は、後述するように、エクスパンダ１５１ｂがＳＤモードで動作するため、エクスパンダ１５１ｂにより、ストレージシステム１００の電源投入時等に設定される。また、ルーティングテーブル１５１ｂ１１は、エクスパンダ１５１ｂにより、後述する配下のエクスパンダからのＢＲＯＡＤＣＡＳＴ（Ｃｈａｎｇｅ）（以下、ＢＣ（ＣＨＧ））やコントローラ１１１ａからのＤＩＳＣＯＶＥＲの受信時に更新される。
【００７６】
図５（Ｃ）に示すルーティングテーブル１５１ｃ１１には、配下のエクスパンダ１５１ｄ，１５１ｅを介してエクスパンダ１５１ｃと間接的に接続されている記憶装置１５３ｄ、エクスパンダ１５１ｅ、記憶装置１５３ｅが設定されている。ルーティングテーブル１５１ｃ１１は、後述するように、エクスパンダ１５１ｃがＮＳＤモードで動作するため、コントローラ１１１ａにより、ストレージシステム１００の電源投入時等にコントローラ１１１ａからのエクスパンダ１５１ｃに対応する配下用ルーティングテーブルの送信に基づいて設定される。また、ルーティングテーブル１５１ｃ１１は、コントローラ１１１ａにより、各装置のストレージシステム１００への接続状態の変化時に、接続状態の変化を検出した配下のエクスパンダからの通知に基づいて更新される。
【００７７】
図５（Ｄ）に示すルーティングテーブル１５１ｄ１１には、配下のエクスパンダ１５１ｅを介してエクスパンダ１５１ｄと間接的に接続されている記憶装置１５３ｅが設定されている。ルーティングテーブル１５１ｄ１１は、後述するように、エクスパンダ１５１ｄがＮＳＤモードで動作するため、コントローラ１１１ａにより、ストレージシステム１００の電源投入時等にコントローラ１１１ａからのエクスパンダ１５１ｄに対応する配下用ルーティングテーブルの送信に基づいて設定される。また、ルーティングテーブル１５１ｄ１１は、コントローラ１１１ａにより、各装置のストレージシステム１００への接続状態の変化時に、接続状態の変化を検出した配下のエクスパンダからの通知に基づいて更新される。
【００７８】
図６および図７は、第２の実施の形態におけるルーティングテーブルの比較を示す図である。図６および図７に従って、エクスパンダ１５１ｅに対して新たに記憶装置１５３ｅが接続された場合のコントローラ１１１ａのメモリ１１１ａ２に記憶されているルーティングテーブル１１１ａ２１、配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄとエクスパンダ１５１ａ〜１５１ｄのルーティングテーブル１５１ａ１１〜１５１ｄ１１との比較の時の動作を説明する。ここでは、図５と同様、エクスパンダ１５１ｅのルーティングテーブルについては説明を省略する。ここで、図６には、記憶装置１５３ｅがエクスパンダ１５１ｅに接続される前のルーティングテーブルおよび配下エクスパンダ用ルーティングテーブルを示す。また、図７には、記憶装置１５３ｅがエクスパンダ１５１ｅに接続された後であって、ルーティングテーブル１５１ｂ１１に異常が発生しており、かつ、異常が解消される前のルーティングテーブルおよび配下エクスパンダ用ルーティングテーブルを示す。
【００７９】
図６に示すように、メモリ１１１ａ２には、記憶装置１５３ｅがエクスパンダ１５１ｅに接続されていない時点におけるコントローラ１１１ａのルーティングテーブル１１１ａ２１が記憶されている。また、メモリ１１１ａ２には、当該時点の接続状態に対して正しく設定されている場合のエクスパンダ１５１ａ〜１５１ｄのルーティングテーブルを示す配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄが記憶されている。配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄは、コントローラ１１１ａが、ルーティングテーブル１１１ａ２１に基づき、最新の接続状況に応じて作成および更新する。また、メモリ１５１ａ１〜１５１ｄ１には、記憶装置１５３ｅがエクスパンダ１５１ｅに接続されていない時点におけるエクスパンダ１５１ａ〜１５１ｄの実際のルーティングテーブル１５１ａ１１〜１５１ｄ１１が記憶されている。
【００８０】
ここで、ストレージシステム１００において、コントローラ１１１ａの配下のエクスパンダ１５１ｅに対して新たに記憶装置１５３ｅが接続されたものとする。この場合、エクスパンダ１５１ｅが記憶装置１５３ｅとの接続を検出すると、ストレージシステム１００のトポロジー（ＳＡＳ  ｔｏｐｏｌｏｇｙ）の再作成を指示するＢＣ（ＣＨＧ）をエクスパンダ１５１ｄに対して送信する。
【００８１】
エクスパンダ１５１ｄは、エクスパンダ１５１ｅからのＢＣ（ＣＨＧ）を受信すると、ＢＣ（ＣＨＧ）をエクスパンダ１５１ｃに対して送信する。エクスパンダ１５１ｄは、ＮＳＤモードで動作しているため、ルーティングテーブル１５１ｄ１１の更新は行わない。このため、この時点ではルーティングテーブル１５１ｄ１１に記憶装置１５３ｅは設定されない。
【００８２】
エクスパンダ１５１ｃは、エクスパンダ１５１ｄからのＢＣ（ＣＨＧ）を受信すると、ＢＣ（ＣＨＧ）をエクスパンダ１５１ｂに対して送信する。エクスパンダ１５１ｃは、ＮＳＤモードで動作しているため、ルーティングテーブル１５１ｃ１１の更新は行わない。このため、この時点ではルーティングテーブル１５１ｃ１１に記憶装置１５３ｅは設定されない。
【００８３】
エクスパンダ１５１ｂは、エクスパンダ１５１ｃからのＢＣ（ＣＨＧ）を受信すると、ＳＤモードで動作しているため、受信したＢＣ（ＣＨＧ）に基づき、エクスパンダ１５１ｃのルーティングテーブル１５１ｃ１１を取得してルーティングテーブル１５１ｂ１１の更新を行う。このとき、エクスパンダ１５１ｂの配下のエクスパンダ１５１ｃ〜１５１ｅがすべてＳＤモードで動作していれば、エクスパンダ１５１ｅからエクスパンダ１５１ｃまで逆順に、それぞれのルーティングテーブル１５１ｃ１１〜１５１ｅ１１に記憶装置１５３ｅが設定されていくので、エクスパンダ１５１ｂがルーティングテーブル１５１ｃ１１を取得してルーティングテーブル１５１ｂ１１に記憶装置１５３ｅを設定することができる。しかし、この時点では、上記のようにルーティングテーブル１５１ｃ１１には、記憶装置１５３ｅが設定されていない。このため、エクスパンダ１５１ｂによる更新ではルーティングテーブル１５１ｃ１１に記憶装置１５３ｅは設定されない。次に、エクスパンダ１５１ｂは、ＢＣ（ＣＨＧ）をエクスパンダ１５１ａに対して送信する。
【００８４】
エクスパンダ１５１ａは、エクスパンダ１５１ｂからのＢＣ（ＣＨＧ）を受信すると、ＢＣ（ＣＨＧ）をコントローラ１１１ａに対して送信する。エクスパンダ１５１ａは、ＮＳＤモードで動作しているため、ルーティングテーブル１５１ａ１１の更新は行わない。このため、この時点ではルーティングテーブル１５１ａ１１に記憶装置１５３ｅは設定されない。
【００８５】
ここで、コントローラ１１１ａは、エクスパンダ１５１ａからのＢＣ（ＣＨＧ）を受信すると、配下のエクスパンダ１５１ａ〜１５１ｅに対してＤＩＳＣＯＶＥＲを送信する。配下のエクスパンダ１５１ａ〜１５１ｅはそれぞれ、コントローラ１１１ａに対してＤＩＳＣＯＶＥＲに対する応答を送信する。このとき、エクスパンダ１５１ａ〜１５１ｅは、自装置の配下に接続されている各装置に関する情報および自装置がＳＤモードで動作しているか、ＮＳＤモードで動作しているかを示す情報を含めて応答する。エクスパンダ１５１ａ〜１５１ｅからの応答に含まれる、自装置の配下に接続されている各装置に関する情報には、例えば、自装置と接続されている装置の種類や固有の識別情報、自装置と接続されている装置との接続ポートを示す情報が含まれる。
【００８６】
コントローラ１１１ａは、自装置と接続されている装置との接続ポートを示す情報により、ストレージシステム１００におけるエクスパンダ１５１ａ〜１５１ｅおよび記憶装置１５３ａ〜１５３ｅの接続の構成（各装置が新たに接続または接続が解除された旨、各装置がいずれの装置と直接または間接的に接続されているか）を判定することができる。また、コントローラ１１１ａは、エクスパンダ１５１ａ〜１５１ｅがそれぞれＳＤモードで動作しているか、ＮＳＤモードで動作しているかをＤＩＳＣＯＶＥＲに対するエクスパンダ１５１ａ〜１５１ｅからの応答に基づいて認識することができる。コントローラ１１１ａは、ストレージシステム１００の各装置の接続状態の判定結果およびエクスパンダ１５１ａ〜１５１ｅが動作しているモードの認識結果を示す情報をメモリ１１１ａ２に記憶する。なお、これに限らず、コントローラ１１１ａは、エクスパンダ１５１ａ〜１５１ｅが動作しているモードを、動作起動後最初のＤＩＳＣＯＶＥＲに対する応答、各エクスパンダの初回起動後最初のＤＩＳＣＯＶＥＲに対する応答やその他の制御信号に基づいて取得してもよい。
【００８７】
次に、図７に示すように、コントローラ１１１ａは、エクスパンダ１５１ａ〜１５１ｅからの応答に基づいてストレージシステム１００における各装置の接続状態を判定し、メモリ１１１ａ２に記憶されている、新たに記憶装置１５３ｅがエクスパンダ１５１ｅに接続された後の時点におけるコントローラ１１１ａのルーティングテーブル１１１ａ２１を更新する。これにより、ルーティングテーブル１１１ａ２１に記憶装置１５３ｅが設定される。コントローラ１１１ａは、更新したルーティングテーブル１１１ａ２１に基づいて、メモリ１１１ａ２に記憶されている、配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄを更新する。これにより、配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄに、記憶装置１５３ｅが設定される。ここで、エクスパンダ１５１ｂに対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂにも、接続情報１１１ａ２３に示すように、記憶装置１５３ｅが設定される。
【００８８】
このときコントローラ１１１ａは、更新したルーティングテーブル１１１ａ２１から、エクスパンダ１５１ａと直接接続されているエクスパンダ１５１ｂおよび記憶装置１５３ａを除外することで、エクスパンダ１５１ａに対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ａを作成する。また、コントローラ１１１ａは、作成した配下エクスパンダ用ルーティングテーブル１１１ａ２２ａから、エクスパンダ１５１ｂと直接接続されているエクスパンダ１５１ｃおよび記憶装置１５３ｂを除外することで、エクスパンダ１５１ｂに対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂを作成する。このとき、コントローラ１１１ａは、ＤＩＳＣＯＶＥＲに対するエクスパンダ１５１ａ〜１５１ｅからの応答に含まれている、エクスパンダ１５１ａ〜１５１ｅと接続されている装置との接続ポートを示す情報に基づいて、配下の装置の接続の構成を判断して、エクスパンダ１５１ｂと直接接続されているエクスパンダ１５１ｃおよび記憶装置１５３ｂを除外する。また、コントローラ１１１ａは、作成した配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂから、エクスパンダ１５１ｃと直接接続されているエクスパンダ１５１ｄおよび記憶装置１５３ｃを除外することで、エクスパンダ１５１ｃに対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ｃを作成する。また、コントローラ１１１ａは、作成した配下エクスパンダ用ルーティングテーブル１１１ａ２２ｃから、エクスパンダ１５１ｄと直接接続されているエクスパンダ１５１ｅおよび記憶装置１５３ｄを除外することで、エクスパンダ１５１ｄに対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ｄを作成する。
【００８９】
次に、コントローラ１１１ａは、ＮＳＤモードで動作するエクスパンダ１５１ａ，１５１ｃ，１５１ｄについては、ルーティングテーブルの更新を実行させる。このときコントローラ１１１ａは、ＮＳＤモードで動作するエクスパンダ１５１ａ，１５１ｃ，１５１ｄに対して、それぞれ対応する配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ，１１１ａ２２ｃ，１１１ａ２２ｄを送信し、エクスパンダ１５１ａ，１５１ｃ，１５１ｄのそれぞれのルーティングテーブル１５１ａ１１，１５１ｃ１１，１５１ｄ１１を更新させる。一方、ＳＤモードで動作するエクスパンダ１５１ｂ，１５１ｅでは、コントローラ１１１ａからルーティングテーブルが送信されず、ルーティングテーブルの更新が行われない。このため、ルーティングテーブル１５１ｂ１１に記憶装置１５３ｅが設定されず、このままではエクスパンダ１５１ｃは、記憶装置１５３ｅにアクセスすることができない。これに対して、第２の実施の形態のコントローラ１１１ａは、ＳＤモードで動作するエクスパンダ１５１ｂ，１５１ｅについては、それぞれ対応する配下エクスパンダ用ルーティングテーブル（例えば、配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂ）と比較し、一致しない場合には、当該エクスパンダに対してＳＭＰ（SAS Management Protocol）  ＦＵＮＣＴＩＯＮにおけるルーティングテーブルの作成を実行させるリセット指示であるＤＩＳＣＯＶＥＲを送信する。
【００９０】
次に、図７では、エクスパンダ１５１ｂでは、ルーティングテーブル１５１ｂ１１に、接続情報１５１ｂ２３に示すように、記憶装置１５３ｂが設定されていない。これに対して、配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂに、接続情報１１１ａ２３に示すように、記憶装置１５３ｅが設定されている。このため、ルーティングテーブル１５１ｂ１１と、配下エクスパンダ用ルーティングテーブル１１１ａ２２ｂとが一致せず、コントローラ１１１ａによりエクスパンダ１５１ｂに対してルーティングテーブルの作成を実行させるＤＩＳＣＯＶＥＲが送信される。
【００９１】
エクスパンダ１５１ｂ，１５１ｅは、コントローラ１１１ａから送信されたＤＩＳＣＯＶＥＲを受信した場合、自装置のルーティングテーブルの作成を実行する。
ここで、図７では、コントローラ１１１ａによってエクスパンダ１５１ｃにおいてルーティングテーブル１５１ｃ１１の更新が完了しており、記憶装置１５３ｅが設定されているので、エクスパンダ１５１ｂがルーティングテーブル１５１ｃ１１を取得してルーティングテーブル１５１ｂ１１を更新することで、接続情報１５１ｂ２３に示すように、ルーティングテーブル１５１ｂ１１に記憶装置１５３ｅが設定される。
【００９２】
図８は、第２の実施の形態のルーティングテーブル設定処理を示す図である。第２の実施の形態の制御回路１１１ａ１は、新たに装置（例えば、記憶装置１５３ｅ）が接続されたエクスパンダ（例えば、エクスパンダ１５１ｅ）からのＢＣ（ＣＨＧ）を受信し、エクスパンダ１５１ｅに記憶装置１５３ｅが接続されたことを検出したものとする。この場合、制御回路１１１ａ１は、エクスパンダ１５１ａ〜１５１ｄの各ルーティングテーブル（例えば、ルーティングテーブル１５１ａ１１〜１５１ｄ１１）を設定（更新）するルーティングテーブル設定処理を実行する。なお、上記のようにエクスパンダ１５１ｅのルーティングテーブルについては説明を省略する。以下では、図８に示すルーティングテーブル設定処理をフローチャートのステップ番号に沿って説明する。
【００９３】
［ステップＳ１１］制御回路１１１ａ１は、すべての配下のエクスパンダ１５１ａ〜１５１ｅに対して、当該エクスパンダのルーティングテーブルの更新を実行させるＤＩＳＣＯＶＥＲを送信する。ＤＩＳＣＯＶＥＲを受信したエクスパンダ１５１ａ〜１５１ｅは、コントローラ１１１ａに対して、ＤＩＳＣＯＶＥＲに対する応答を送信する。この応答には、エクスパンダ１５１ａ〜１５１ｅにおいて、自装置が動作しているモードがＳＤであるかＮＳＤであるかを示す情報、自装置と接続している装置との間の接続ポートを示す情報が含まれている。制御回路１１１ａ１は、この応答に含まれている情報に基づいて、エクスパンダ１５１ａ〜１５１ｅのモードや各装置同士の接続状態（接続されている装置、装置同士が直接接続されているか、間接的に接続されているか等）を判定する。
【００９４】
［ステップＳ１２］制御回路１１１ａ１は、コントローラ１１１ａのルーティングテーブル１１１ａ２１および配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄを作成し、メモリ１１１ａ２に記憶させる。また、制御回路１１１ａ１は、作成したルーティングテーブル１１１ａ２１を自装置のルーティングテーブルに設定する。
【００９５】
［ステップＳ１３］制御回路１１１ａ１は、ステップＳ１３〜ステップＳ１５のループにおいて、配下のエクスパンダ１５１ａ〜１５１ｅのうち、未選択のエクスパンダの有無を検索する。
【００９６】
［ステップＳ１４］制御回路１１１ａ１は、ステップＳ１３に基づいて、配下のエクスパンダ１５１ａ〜１５１ｅのうち、未選択のエクスパンダが存在するか否かを判定する。未選択のエクスパンダが存在すれば（ステップＳ１４  ＹＥＳ）、処理はステップＳ１５に進められる。一方、未選択のエクスパンダが存在しなければ（ステップＳ１４  ＮＯ）、処理は終了する。
【００９７】
［ステップＳ１５］制御回路１１１ａ１は、未選択のエクスパンダについて図９において後述する、ＮＳＤエクスパンダに配下エクスパンダ用ルーティングテーブルを送信してＳＤエクスパンダにＤＩＳＣＯＶＥＲを実行させる比較処理を実行する。
【００９８】
図９は、第２の実施の形態のルーティングテーブル比較処理を示す図である。第２の実施の形態では、制御回路１１１ａ１は、ＮＳＤエクスパンダに配下エクスパンダ用ルーティングテーブルを送信し、配下エクスパンダ用ルーティングテーブルとの比較結果に基づいてＳＤエクスパンダにＤＩＳＣＯＶＥＲを実行させることで、エクスパンダのルーティングテーブルを設定するルーティングテーブル比較処理を実行する。なお、上記のようにエクスパンダ１５１ｅのルーティングテーブルについては説明を省略する。以下では、図９に示すルーティングテーブル比較処理をフローチャートのステップ番号に沿って説明する。
【００９９】
［ステップＳ２１］制御回路１１１ａ１は、配下のエクスパンダ１５１ａ〜１５１ｅのうちの未選択のエクスパンダから１つを選択する。
［ステップＳ２２］制御回路１１１ａ１は、ステップＳ２１で選択したエクスパンダがＮＳＤモードで動作するＮＳＤエクスパンダであるか否かを判定する。ＮＳＤエクスパンダであれば（ステップＳ２２  ＹＥＳ）、処理はステップＳ２７に進められる。一方、ＳＤモードで動作するＳＤエクスパンダであれば（ステップＳ２２  ＮＯ）、処理はステップＳ２３に進められる。
【０１００】
［ステップＳ２３］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ２１で選択したエクスパンダに設定されているルーティングテーブルを取得する。例えば、エクスパンダ１５１ｂが選択されている場合、制御回路１１１ａ１は、ルーティングテーブル１５１ｂ１１を取得する。
【０１０１】
［ステップＳ２４］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ２１で選択したエクスパンダ１５１ｂのルーティングテーブル１５１ｂ１１と、エクスパンダ１５１ｂに設定されるべき接続情報を示す配下エクスパンダ用ルーティングテーブル１１１ａ２２ｃとを比較する。
【０１０２】
［ステップＳ２５］制御回路１１１ａ１は、ステップＳ２４における比較結果は一致しているか否かを判定する。一致していれば（ステップＳ２５  ＹＥＳ）、処理はルーティングテーブル設定処理に復帰する。一方、一致していなければ（ステップＳ２５  ＮＯ）、処理はステップＳ２６に進められる。
【０１０３】
［ステップＳ２６］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ２１で選択したエクスパンダ１５１ｂに対して、ルーティングテーブル１５１ｂ１１をリセットさせてＤＩＳＣＯＶＥＲを実行させるリセット指示を送信する。これにより、エクスパンダ１５１ｂは、ＤＩＳＣＯＶＥＲの実行により再びルーティングテーブル１５１ｂ１１の作成を行う。従って、エクスパンダ１５１ｂにより、エクスパンダ１５１ｂの配下のエクスパンダ１５１ｃ〜１５１ｅのルーティングテーブルから接続情報が取得され、ルーティングテーブル１５１ｂ１１に新たに接続された記憶装置１５３ｅが設定される。これに基づき、エクスパンダ１５１ｂが記憶装置１５３ｅにアクセスすることが可能になる。その後、処理はルーティングテーブル設定処理に復帰する。
【０１０４】
［ステップＳ２７］制御回路１１１ａ１は、ルーティングテーブル設定処理のステップＳ１２で作成したメモリ１１１ａ２に記憶されている配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄのうち、ＮＳＤエクスパンダであるステップＳ２１で選択したエクスパンダに対応する配下エクスパンダ用ルーティングテーブルを設定する。例えば、エクスパンダ１５１ａが選択されている場合、制御回路１１１ａ１は、エクスパンダ１５１ａに配下エクスパンダ用ルーティングテーブル１１１ａ２２ａを設定する。その後、処理はルーティングテーブル設定処理に復帰する。
【０１０５】
ここで、第２の実施の形態のルーティングテーブル比較処理では、制御回路１１１ａ１は、ステップＳ２１において、ＳＤエクスパンダとＮＳＤエクスパンダとを区別せずに選択するが、これに限らず、ＮＳＤエクスパンダをすべて選択してからＳＤエクスパンダを選択してもよい。これにより、新たな装置の接続がＮＳＤエクスパンダのルーティングテーブルに完全に反映された後にＳＤエクスパンダのルーティングテーブルの更新を実行させることができる。
【０１０６】
以上のような第２の実施の形態のストレージシステム１００は、最新のストレージシステム１００に接続されている装置の状態を示すルーティングテーブルと、配下のエクスパンダとを比較する。これにより、新たな装置が接続された場合に、ＳＤモードで動作するエクスパンダ１５１ｂのルーティングテーブル１５１ｂ１１の異常が発生しても、異常を検出して解消することができる。
【０１０７】
また、ＮＳＤエクスパンダについては、ＮＳＤエクスパンダのルーティングテーブルと、対応する配下エクスパンダ用ルーティングテーブルとの比較を行わないので、新たな装置の接続時における処理の負担の増加を抑制できる。
【０１０８】
また、ＳＤエクスパンダについては、コントローラ１１１ａが作成した配下エクスパンダ用ルーティングテーブルと比較して異常を検出し、ＮＳＤエクスパンダについては、配下エクスパンダ用ルーティングテーブルを設定するので、エクスパンダのモードに応じた処理を実行することで、新たな装置の接続時における処理の負担の増加を抑制できる。
【０１０９】
また、コントローラ１１１ａは、配下に新たな装置が接続されたことを検出した場合に、ＳＤエクスパンダのルーティングテーブルの比較を行うので、新たな装置の接続時にＳＤエクスパンダのルーティングテーブルの異常が発生しても、ルーティングテーブルの異常の継続を抑制できる。
【０１１０】
また、新たに装置が接続された場合に、配下のＳＤエクスパンダに設定されるべきルーティングテーブルを示す配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄを作成し、配下のエクスパンダと、対応する配下エクスパンダ用ルーティングテーブルとを比較することで、ＳＤモードで動作するエクスパンダ１５１ｂのルーティングテーブル１５１ｂ１１の異常を解消し、エクスパンダ１５１ｂと新たに接続された記憶装置１５３ｅとのアクセスを可能にすることができる。
【０１１１】
［第２の実施の形態の変形例］
次に、第２の実施の形態の変形例を説明する。第２の実施の形態との差異を中心に説明し、同様の事項については説明を省略する。第２の実施の形態のストレージシステムは、ルーティングテーブル比較処理において、ＮＳＤエクスパンダについてもコントローラが有する配下エクスパンダ用ルーティングテーブルと比較し、ＮＳＤエクスパンダについても正常に設定されているか確認する点で、第２の実施の形態と異なる。
【０１１２】
図１０および図１１は、第２の実施の形態の変形例のルーティングテーブル比較処理を示す図である。第２の実施の形態の変形例では、制御回路１１１ａ１は、ＮＳＤエクスパンダに配下エクスパンダ用ルーティングテーブルを送信し、ＳＤエクスパンダにＤＩＳＣＯＶＥＲを実行させることで、エクスパンダのルーティングテーブルを設定し、配下エクスパンダ用ルーティングテーブルとの比較結果に基づき、設定後に正しく設定されているか確認するルーティングテーブル比較処理を実行する。なお、上記のようにエクスパンダ１５１ｅのルーティングテーブルについては説明を省略する。以下では、図１０および図１１に示すルーティングテーブル比較処理をフローチャートのステップ番号に沿って説明する。
【０１１３】
［ステップＳ３１］制御回路１１１ａ１は、配下のエクスパンダ１５１ａ〜１５１ｅのうちの未選択のエクスパンダから１つを選択する。
［ステップＳ３２］制御回路１１１ａ１は、ステップＳ３１で選択したエクスパンダがＮＳＤエクスパンダであるか否かを判定する。ＮＳＤエクスパンダであれば（ステップＳ３２  ＹＥＳ）、処理はステップＳ３３に進められる。一方、ＳＤエクスパンダであれば（ステップＳ３２  ＮＯ）、処理はステップＳ３４に進められる。
【０１１４】
［ステップＳ３３］制御回路１１１ａ１は、ルーティングテーブル設定処理のステップＳ１２で作成したメモリ１１１ａ２に記憶されている配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄのうち、ＮＳＤエクスパンダであるステップＳ３１で選択したエクスパンダに対応する配下エクスパンダ用ルーティングテーブルを設定する。その後、処理はステップＳ３４に進められる。
【０１１５】
［ステップＳ３４］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ３１で選択したエクスパンダに設定されているルーティングテーブルを取得する。
［ステップＳ３５］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ３１で選択したエクスパンダ１５１ｂのルーティングテーブル１５１ｂ１１と、エクスパンダ１５１ｂに設定されるべき接続情報を示す配下エクスパンダ用ルーティングテーブル１１１ａ２２ｃとを比較する。
【０１１６】
［ステップＳ４１］制御回路１１１ａ１は、ステップＳ３５における比較結果は一致しているか否かを判定する。一致していれば（ステップＳ４１  ＹＥＳ）、処理はルーティングテーブル設定処理に復帰する。一方、一致していなければ（ステップＳ４１  ＮＯ）、処理はステップＳ４２に進められる。
【０１１７】
［ステップＳ４２］制御回路１１１ａ１は、ステップＳ３１で選択したエクスパンダがＮＳＤエクスパンダであるか否かを判定する。ＮＳＤエクスパンダであれば（ステップＳ４２  ＹＥＳ）、処理はステップＳ４４に進められる。一方、ＳＤエクスパンダであれば（ステップＳ４２  ＮＯ）、処理はステップＳ４３に進められる。
【０１１８】
［ステップＳ４３］制御回路１１１ａ１は、ＳＤエクスパンダであるステップＳ３１で選択したエクスパンダ１５１ｂに対して、ルーティングテーブル１５１ｂ１１をリセットさせてＤＩＳＣＯＶＥＲを実行させるリセット指示を送信する。これにより、エクスパンダ１５１ｂは、ＤＩＳＣＯＶＥＲの実行により再びルーティングテーブル１５１ｂ１１の作成を行う。従って、エクスパンダ１５１ｂにより、エクスパンダ１５１ｂの配下のエクスパンダ１５１ｃ〜１５１ｅのルーティングテーブルから接続情報が取得され、ルーティングテーブル１５１ｂ１１に新たに接続された記憶装置１５３ｅが設定される。これに基づき、エクスパンダ１５１ｂが記憶装置１５３ｅにアクセスすることが可能になる。その後、処理はルーティングテーブル設定処理に復帰する。
【０１１９】
［ステップＳ４４］制御回路１１１ａ１は、ルーティングテーブル設定処理のステップＳ１２で作成したメモリ１１１ａ２に記憶されている配下エクスパンダ用ルーティングテーブル１１１ａ２２ａ〜１１１ａ２２ｄのうち、ＮＳＤエクスパンダであるステップＳ３１で選択したエクスパンダに対応する配下エクスパンダ用ルーティングテーブルを設定する。その後、処理はルーティングテーブル設定処理に復帰する。
【０１２０】
ここで、第２の実施の形態の変形例のルーティングテーブル比較処理では、制御回路１１１ａ１は、ステップＳ３１において、ＳＤエクスパンダとＮＳＤエクスパンダとを区別せずに選択するが、これに限らず、ＮＳＤエクスパンダをすべて選択してからＳＤエクスパンダを選択してもよい。これにより、新たな装置の接続がＮＳＤエクスパンダのルーティングテーブルに完全に反映された後にＳＤエクスパンダのルーティングテーブルの更新を実行させることができる。
【０１２１】
以上のような第２の実施の形態の変形例のストレージシステム１００は、第２の実施の形態と同様の効果を有する。
また、ＮＳＤエクスパンダのルーティングテーブルを更新した後に、新たにＮＳＤエクスパンダに設定されたルーティングテーブルと、最新のストレージシステム１００に接続されている装置の状態を示すルーティングテーブルとを比較する。これにより、ＮＳＤモードで動作するエクスパンダ１５１ｂのルーティングテーブル１５１ｂ１１についても正常に設定されているか確認し、異常が検出された場合に再設定を行うことで、ＮＳＤエクスパンダのルーティングテーブルの異常を解消することができる。
【０１２２】
以上、開示の制御装置、ストレージシステムおよび制御方法を、図示の実施の形態に基づいて説明したが、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、開示の技術に他の任意の構成物や工程が付加されてもよい。また、開示の技術は前述した実施の形態のうちの任意の２以上の構成を組み合わせたものであってもよい。
【符号の説明】
【０１２３】
１  制御装置
１ａ  制御部
１ｂ，２ｂ，３ｂ，４ｂ  記憶部
１ｂ１，２ｂ１，３ｂ１，４ｂ１  接続情報
２，３，４  中継装置
５，６，７  記憶装置
【図１】
2012212202.tif 000003
【図２】
2012212202.tif 000004
【図３】
2012212202.tif 000005
【図４】
2012212202.tif 000006
【図５】
2012212202.tif 000007
【図６】
2012212202.tif 000008
【図７】
2012212202.tif 000009
【図８】
2012212202.tif 000010
【図９】
2012212202.tif 000011
【図１０】
2012212202.tif 000012
【図１１】
2012212202.tif 000013