(57)【要約】【課題】通信経路の異常が発生した場合のアクセス性能を向上させる。【解決手段】接続制御装置２ａは、記憶装置３との接続を要求する接続要求２１ａを制御装置１から受信すると、接続要求２１ａを記憶装置３に転送するとともに、接続要求２１ａの受信通知２２を接続制御装置２ｂに送信する。接続制御装置２ｂは、受信通知２２を受信すると、記憶装置３との接続を要求する接続要求２１ｂを記憶装置３に送信し、記憶装置３との接続に成功した後に、記憶装置３との接続を要求する接続要求２１ｃを制御装置１から受信すると、接続に成功したことを示す成功通知２３を制御装置１に送信し、成功通知２３の受信に応じて制御装置１から送信された入出力要求を受信すると、入出力要求を記憶装置３に転送する。【選択図】図１
2019036136.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、
それぞれデータを中継し、相互に通信可能な第１の接続制御装置および第２の接続制御装置と、
前記第１の接続制御装置を経由する第１の通信経路を介して、前記記憶装置との接続を要求する第１の接続要求を送信し、前記記憶装置との接続に成功すると、前記記憶装置に対する第１の入出力要求を前記第１の通信経路を介して送信し、前記記憶装置との接続に失敗すると、前記第２の接続制御装置を経由する第２の通信経路を介して、前記記憶装置との接続を要求する第２の接続要求を送信し、前記記憶装置との接続に成功すると、前記記憶装置に対する第２の入出力要求を前記第２の通信経路を介して送信する制御装置と、
を有し、
前記第１の接続制御装置は、前記第１の接続要求を受信すると、前記第１の接続要求を前記記憶装置に転送するとともに、前記第１の接続要求の受信通知を前記第２の接続制御装置に送信し、
前記第２の接続制御装置は、前記受信通知を受信すると、前記記憶装置との接続を要求する第３の接続要求を前記記憶装置に送信し、前記第３の接続要求による前記記憶装置との接続に成功した後に前記第２の接続要求を受信すると、接続に成功したことを示す成功通知を前記制御装置に送信し、前記成功通知の受信に応じて前記制御装置から送信された前記第２の入出力要求を受信すると、前記第２の入出力要求を前記記憶装置に転送する、
ストレージシステム。
【請求項２】
前記第２の接続制御装置は、
前記第３の接続要求の送信に応じて前記記憶装置との接続に成功すると、前記記憶装置のアドレスを記憶し、
前記第２の接続要求を受信したとき、前記第２の接続要求の送信先アドレスが記憶された前記アドレスと一致する場合に、前記成功通知を前記制御装置に送信する、
請求項１記載のストレージシステム。
【請求項３】
他の制御装置と、１以上の他の記憶装置とをさらに有し、
前記制御装置は、前記第１の通信経路を介して前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記他の制御装置は、前記第２の接続制御装置との間の第３の通信経路と、前記第２の通信経路のうち前記第２の接続制御装置と前記記憶装置および前記１以上の他の記憶装置との間の第４の通信経路とを介して、前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して同時に接続可能な記憶装置の台数は、２以上の所定の上限数以下に限定されており、
前記第２の接続制御装置は、前記第３の接続要求による前記記憶装置との接続に成功した後、前記第２の接続要求を受信する前に、前記１以上の他の記憶装置のうち一の記憶装置との接続を要求する第４の接続要求を、前記他の制御装置から前記第３の通信経路を介して受信したとき、前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して接続中の記憶装置の台数が前記上限数に達している場合には、前記記憶装置との接続を解消し、前記一の記憶装置に対して前記第４の接続要求を転送する、
請求項１または２記載のストレージシステム。
【請求項４】
前記第１の接続制御装置は、前記第１の接続要求による前記記憶装置との接続に成功すると、接続に成功したことを示す接続通知を前記第２の接続制御装置に送信し、
前記第２の接続制御装置は、前記第３の接続要求による前記記憶装置との接続に成功した後に前記接続通知を受信すると、前記記憶装置との接続を解消する、
請求項１乃至３のいずれか１項に記載のストレージシステム。
【請求項５】
前記受信通知は、前記第１の通信経路および前記第２の通信経路とは独立した第５の通信経路を介して、前記第１の接続制御装置から前記第２の接続制御装置に送信される、
請求項１乃至４のいずれか１項に記載のストレージシステム。
【請求項６】
記憶装置と前記記憶装置にアクセスする制御装置との間で第２の通信経路を介して送受信されるデータを中継するスイッチと、
前記記憶装置と前記制御装置との間で第１の通信経路を介して送受信されるデータを中継する他の接続制御装置と通信する通信インタフェースと、
前記第１の通信経路を介して前記記憶装置に接続を要求する第１の接続要求を、前記他の接続制御装置が前記制御装置から受信したことを示す受信通知を、前記通信インタフェースを介して受信すると、前記記憶装置との接続を要求する第３の接続要求を前記スイッチを介して前記記憶装置に送信し、前記第３の接続要求による前記記憶装置との接続に成功した後に、前記第２の通信経路を介して前記記憶装置に接続を要求する第２の接続要求を、前記スイッチが前記制御装置から受信すると、接続に成功したことを示す成功通知を前記スイッチを介して前記制御装置に送信し、前記成功通知の受信に応じて前記制御装置から送信された、前記記憶装置に対する入出力要求を前記スイッチが受信すると、前記入出力要求を前記スイッチを介して前記記憶装置に転送する制御部と、
を有する接続制御装置。
【請求項７】
コンピュータに、
記憶装置と前記記憶装置にアクセスする制御装置との間で第２の通信経路を介して送受信されるデータの中継動作を制御し、
前記記憶装置と前記制御装置との間で第１の通信経路を介して送受信されるデータを中継する他の接続制御装置が、前記第１の通信経路を介して前記記憶装置に接続を要求する第１の接続要求を前記制御装置から受信したことを示す受信通知を、前記他の接続制御装置から受信すると、前記記憶装置との接続を要求する第３の接続要求を前記記憶装置に送信し、
前記第３の接続要求による前記記憶装置との接続に成功した後に、前記第２の通信経路を介して前記記憶装置に接続を要求する第２の接続要求を前記制御装置から受信すると、接続に成功したことを示す成功通知を前記制御装置に送信し、
前記成功通知の受信に応じて前記制御装置から送信された、前記記憶装置に対する入出力要求を受信すると、前記入出力要求を前記記憶装置に転送する、
処理を実行させる接続制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、接続制御装置および接続制御プログラムに関する。
【背景技術】
【０００２】
現在、記憶装置と、その記憶装置に対するアクセスを制御する制御装置とを有するストレージシステムが広く普及している。このようなストレージシステムでは、制御装置から記憶装置への通信経路を冗長化することで、耐故障性を高めることができる。このようなシステムとしては、例えば、第１の中継装置を経由する通信経路と、第２の中継装置を経由する通信経路とを有するストレージシステムが提案されている。
【０００３】
また、ストレージシステムでは、制御装置を冗長化することもできる。このようなシステムとしては、例えば、一方の制御装置がディスクとの間の第１の経路に異常が発生したことを検出すると、他方の制御装置と通信し、その通信結果に基づいて、ディスクとの間の第２の経路を用いてディスクにアクセスするようにしたストレージシステムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／０３２６０７号
【特許文献２】特開２００９−１５７８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように通信経路が冗長化されたストレージシステムでは、例えば、次のような動作が行われる。制御装置は、第１の通信経路を介して記憶装置との接続を要求する。ここで、第１の通信経路に異常が発生して記憶装置との接続に失敗した場合、制御装置は、第２の通信経路を介して記憶装置との接続を要求する。接続に成功すると、制御装置は、第２の通信経路を介して入出力要求を記憶装置に送信する。
【０００６】
しかし、このような動作では、制御装置は、第１の通信経路での接続に失敗した後に、第２の通信経路を介してあらためて接続を要求するので、入出力要求を送信できるようになるまでに長い待ち時間がかかる。このため、第１の通信経路との接続に成功し、第１の通信経路を介して入出力要求を送信する場合と比較して、アクセス性能が大幅に低下してしまうという問題がある。
【０００７】
１つの側面では、本発明は、通信経路の異常が発生した場合のアクセス性能を向上させることが可能なストレージシステム、接続制御装置および接続制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、記憶装置と、第１の接続制御装置と、第２の接続制御装置と、制御装置とを有するストレージシステムが提供される。第１の接続制御装置および第２の接続制御装置は、それぞれデータを中継し、相互に通信可能である。制御装置は、第１の接続制御装置を経由する第１の通信経路を介して、記憶装置との接続を要求する第１の接続要求を送信し、記憶装置との接続に成功すると、記憶装置に対する第１の入出力要求を第１の通信経路を介して送信し、記憶装置との接続に失敗すると、第２の接続制御装置を経由する第２の通信経路を介して、記憶装置との接続を要求する第２の接続要求を送信し、記憶装置との接続に成功すると、記憶装置に対する第２の入出力要求を第２の通信経路を介して送信する。また、第１の接続制御装置は、第１の接続要求を受信すると、第１の接続要求を記憶装置に転送するとともに、第１の接続要求の受信通知を第２の接続制御装置に送信する。第２の接続制御装置は、受信通知を受信すると、記憶装置との接続を要求する第３の接続要求を記憶装置に送信し、第３の接続要求による記憶装置との接続に成功した後に第２の接続要求を受信すると、接続に成功したことを示す成功通知を制御装置に送信し、成功通知の受信に応じて制御装置から送信された第２の入出力要求を受信すると、第２の入出力要求を記憶装置に転送する。
【０００９】
また、１つの案では、スイッチと、通信インタフェースと、制御部とを有する接続制御装置が提供される。スイッチは、記憶装置と記憶装置にアクセスする制御装置との間で第２の通信経路を介して送受信されるデータを中継する。通信インタフェースは、記憶装置と制御装置との間で第１の通信経路を介して送受信されるデータを中継する他の接続制御装置と通信する。制御部は、第１の通信経路を介して記憶装置に接続を要求する第１の接続要求を、他の接続制御装置が制御装置から受信したことを示す受信通知を、通信インタフェースを介して受信すると、記憶装置との接続を要求する第３の接続要求をスイッチを介して記憶装置に送信し、第３の接続要求による記憶装置との接続に成功した後に、第２の通信経路を介して記憶装置に接続を要求する第２の接続要求を、スイッチが制御装置から受信すると、接続に成功したことを示す成功通知をスイッチを介して制御装置に送信し、成功通知の受信に応じて制御装置から送信された、記憶装置に対する入出力要求をスイッチが受信すると、入出力要求をスイッチを介して記憶装置に転送する。
【００１０】
さらに、１つの案では、上記の第２の接続制御装置と同様の処理をコンピュータに実行させる接続制御プログラムが提供される。
【発明の効果】
【００１１】
１つの側面では、通信経路の異常が発生した場合のアクセス性能を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係るストレージシステムの構成例および動作例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】ＤＥの内部構成例を示す図である。
【図５】エクスパンダの内部構成例を示す図である。
【図６】ＩＯＣからＨＤＤに対するアクセス手順の比較例を示すシーケンス図である。
【図７】第２の実施の形態におけるアクセス手順の第１の例を示すシーケンス図である。
【図８】第２の実施の形態におけるアクセス手順の第２の例を示すシーケンス図である。
【図９】１段目のＤＥに記憶される管理情報の例を示す図である。
【図１０】正規経路を介してＯＰＥＮメッセージを受信した場合の処理例を示すフローチャートである。
【図１１】同じＤＥ内の他方のエクスパンダからＯＰＥＮメッセージの受信通知を受信した場合の処理例を示すフローチャートである。
【図１２】ＯＰＥＮメッセージの送信に対する応答メッセージを受信した場合の処理例を示すフローチャートである。
【図１３】同じＤＥ内の他方のエクスパンダから応答結果を受信した場合の処理例を示すフローチャートである。
【図１４】迂回経路を介してＯＰＥＮメッセージを受信した場合の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージシステムの構成例および動作例を示す図である。図１に示すストレージシステムは、制御装置１、接続制御装置２ａ，２ｂおよび記憶装置３を有する。
【００１４】
制御装置１は、記憶装置３に対してアクセスする。制御装置１は、接続制御装置２ａを経由する通信経路１１を介して、記憶装置３にアクセスすることができる。これとともに、制御装置１は、接続制御装置２ｂを経由する通信経路１２を介して、記憶装置３にアクセスすることもできる。
【００１５】
接続制御装置２ａは、通信経路１１を介して送受信されるデータを中継する。接続制御装置２ｂは、通信経路１２を介して送受信されるデータを中継する。また、接続制御装置２ａと接続制御装置２ｂとは、相互に通信可能になっている。図１の例では、接続制御装置２ａと接続制御装置２ｂとは、通信経路１１，１２とは独立した通信経路１３を介して通信可能になっている。
【００１６】
記憶装置３は、制御装置１からのアクセス対象であり、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などとして実現される。
次に、制御装置１が記憶装置３にアクセスする際の処理について説明する。
【００１７】
制御装置１は、記憶装置３にアクセスする際、まず、記憶装置３に対して接続要求を送信する。この接続要求によって記憶装置３との間の接続が確立されると、制御装置１は、接続が確立された通信経路を介して、記憶装置３に対して入出力要求を送信できるようになる。以下、具体的な処理例について説明する。
【００１８】
図１の左側に示すように、制御装置１は、まず、通信経路１１を介して、記憶装置３との接続を要求する接続要求２１ａを送信する。接続制御装置２ａは、接続要求２１ａを受信すると、接続要求２１ａを記憶装置３に転送するとともに、接続要求２１ａを受信したことを示す受信通知２２を接続制御装置２ｂに送信する。接続制御装置２ｂは、受信通知２２を受信すると、記憶装置３との接続を要求する接続要求２１ｂを記憶装置３に送信する。
【００１９】
ここで、図示しないが、接続要求２１ａを用いた通信経路１１を介する接続に成功した場合、制御装置１は、通信経路１１を介して記憶装置３に入出力要求を送信できる。しかし、ここでは、図１の右側に示すように、通信経路１１の異常により、接続要求２１ａを用いた通信経路１１を介する接続に失敗したものとする。一方、接続要求２１ｂを用いた、接続制御装置２ｂと記憶装置３との間の接続には成功したものとする。
【００２０】
制御装置１は、通信経路１１を介する接続に失敗したことを認識すると、通信経路１２を介して、記憶装置３との接続を要求する接続要求２１ｃを送信する。接続制御装置２ｂは、記憶装置３との接続に成功した後に、接続要求２１ｃを受信すると、接続に成功したことを示す成功通知２３を制御装置１に送信する。
【００２１】
制御装置１は、成功通知２３を受信することで、通信経路１２を介する接続に成功したと認識し、通信経路１２を介して、記憶装置３に対する入出力要求（図示を省略）を送信する。接続制御装置２ｂと記憶装置３との接続にはすでに成功しているので、接続制御装置２ｂは、制御装置１から受信した入出力要求を記憶装置３に転送する。
【００２２】
以上の処理によれば、通信経路１１を介した制御装置１と記憶装置３との間の接続要求処理と並行して、通信経路１２のうち、接続制御装置２ｂと記憶装置３との間の接続要求処理が実行される。そして、通信経路１１を介する接続に失敗した場合において、接続制御装置２ｂと記憶装置３との間の接続に成功していれば、その後に制御装置１から送信される接続要求２１ｃに対応する応答は、記憶装置３からでなく、接続制御装置２ｂから返送される。このため、その応答が記憶装置３から返送される場合より、応答受信までの制御装置１の待ち時間を短縮することができる。したがって、一方の通信経路の異常が発生した場合の記憶装置３に対するアクセス性能を向上させることができる。
【００２３】
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ＣＥ（Controller Enclosure）１００およびＤＥ（Drive Enclosure）２００，３００を有する。ＣＥ１００には、ＣＭ（Controller Module）１１０，１２０が搭載されている。ＤＥ２００，３００のそれぞれには、ＨＤＤが複数台搭載されている。また、ＤＥ２００，３００は、この順番でＣＭ１１０，１２０に対して直列に接続されている。なお、ストレージシステムが有するＤＥの数は、図２の例のように２台に限らず、１台または３台以上の任意の台数であってよい。
【００２４】
ＣＭ１１０，ＣＭ１２０には、ホスト装置４００が接続されている。ＣＭ１１０，１２０は、ホスト装置４００からの要求に応じて、ＤＥ２００，３００に搭載されたＨＤＤにアクセスするストレージ制御装置である。例えば、ＣＭ１１０，１２０は、ＤＥ２００，３００に搭載されたＨＤＤの記憶領域を用いた論理ボリュームを設定し、ホスト装置４００から論理ボリュームに対するアクセスを受け付ける。
【００２５】
なお、ＣＭ１１０，１２０とホスト装置４００とは、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。また、ＣＭ１１０，１２０には、ホスト装置４００が複数台接続されていてもよい。この場合、例えば、あるホスト装置４００はＣＭ１１０を介してＤＥ２００，３００のＨＤＤにアクセスし、別のホスト装置４００はＣＭ１２０を介してＤＥ２００，３００のＨＤＤにアクセスするようにしてもよい。さらに、ＤＥ２００，３００が備える、ホスト装置４００からのアクセス対象となる記憶装置は、ＨＤＤに限らず、ＳＳＤなどの他の種類の不揮発性記憶装置であってもよい。
【００２６】
図３は、ＣＭのハードウェア構成例を示す図である。なお、図３では例としてＣＭ１１０のハードウェア構成について示すが、ＣＭ１２０もＣＭ１１０と同様のハードウェア構成によって実現可能である。
【００２７】
ＣＭ１１０は、プロセッサ１１１、ＲＡＭ（Random Access Memory）１１２、ＳＳＤ１１３、ＰＣＨ（Platform Controller Hub）１１４、ＣＡ（Channel Adapter）１１５、ＩＯＣ（Input Output Controller）１１６およびエクスパンダ（ＥＸＰ）１１７を有する。
【００２８】
プロセッサ１１１は、ＣＭ１１０全体を統括的に制御する。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＧＰＵ（Graphics Processing Unit）、ＰＬＤ（Programmable Logic Device）のいずれかである。また、プロセッサ１１１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＧＰＵ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置である。ＲＡＭ１１２は、プロセッサ１１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１１２は、プロセッサ１１１による処理に用いる各種データを記憶する。
【００３０】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置である。ＳＳＤ１１３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１１０は、補助記憶装置として、ＳＳＤ１１３の代わりにＨＤＤを備えていてもよい。ＰＣＨ１１４は、プロセッサ１１１とＳＳＤ１１３との間でデータを送受信する。
【００３１】
ＣＡ１１５は、ホスト装置４００と通信するためのインタフェースである。ＩＯＣ１１６は、プロセッサ１１１とＤＥ２００，３００内のＨＤＤとの間でデータを送受信するためのインタフェースである。エクスパンダ１１７は、ＩＯＣ１１６とＤＥ２００との間で送受信されるデータを中継する。また、詳細は後述するが、ＩＯＣ１１６とエクスパンダ１１７は、他方のＣＭ１２０にも接続されている。
【００３２】
なお、本実施の形態では例として、ＩＯＣ１１６は、ＳＡＳ（Serial Attached ＳＣＳＩ，ＳＣＳＩ：Small Computer System Interface）イニシエータとして動作するＳＡＳインタフェースであるものとする。また、エクスパンダ１１７は、ＳＡＳエクスパンダであるものとする。
【００３３】
図４は、ＤＥの内部構成例を示す図である。なお、図４では、ＣＭ１１０，１２０、ＤＥ２００，３００の間の接続状態についても図示している。
ＤＥ２００は、ＨＤＤ２０１，２０２，２０３，・・・とエクスパンダ２１０，２２０を有する。ＤＥ３００は、ＨＤＤ３０１，３０２，３０３，・・・とエクスパンダ３１０，３２０を有する。
【００３４】
ＨＤＤ２０１，２０２，２０３，・・・は、ホスト装置４００からのアクセス対象となる記憶装置である。ＨＤＤ２０１，２０２，２０３，・・・のそれぞれは、エクスパンダ２１０，２２０の両方に接続されている。エクスパンダ２１０は、ＣＭ１１０のエクスパンダ１１７とＨＤＤ２０１，２０２，２０３，・・・との間で送受信されるデータを中継する。また、エクスパンダ２１０は、ＤＥ３００のエクスパンダ３１０とも接続されており、エクスパンダ１１７とエクスパンダ３１０との間で送受信されるデータも中継する。
【００３５】
一方、エクスパンダ２２０は、ＣＭ１２０のエクスパンダ１２７とＨＤＤ２０１，２０２，２０３，・・・との間で送受信されるデータを中継する。また、エクスパンダ２２０は、ＤＥ３００のエクスパンダ３２０とも接続されており、エクスパンダ１２７とエクスパンダ３２０との間で送受信されるデータも中継する。さらに、エクスパンダ２１０とエクスパンダ２２０とは、通信経路２３０を介して直接的に通信できるようになっている。
【００３６】
ＨＤＤ３０１，３０２，３０３，・・・は、ホスト装置４００からのアクセス対象となる記憶装置である。ＨＤＤ３０１，３０２，３０３，・・・のそれぞれは、エクスパンダ３１０，３２０の両方に接続されている。エクスパンダ３１０は、ＤＥ２００のエクスパンダ２１０とＨＤＤ３０１，３０２，３０３，・・・との間で送受信されるデータを中継する。エクスパンダ３２０は、ＤＥ２００のエクスパンダ２２０とＨＤＤ３０１，３０２，３０３，・・・との間で送受信されるデータを中継する。また、エクスパンダ３１０とエクスパンダ３２０とは、通信経路３３０を介して直接的に通信できるようになっている。
【００３７】
なお、本実施の形態では、エクスパンダ２１０，２２０，３１０，３２０は、いずれもＳＡＳエクスパンダである。
ここで、図５は、エクスパンダの内部構成例を示す図である。なお、図５では例として、ＤＥ２００のエクスパンダ２１０，２２０について示すが、ＤＥ３００のエクスパンダ３１０，３２０についても同様のハードウェア構成によって実現可能である。
【００３８】
エクスパンダ２１０は、スイッチ２１１、コントローラ２１２、メモリ２１３およびＩ2Ｃインタフェース（Ｉ／Ｆ）２１４を有する。また、エクスパンダ２２０は、スイッチ２２１、コントローラ２２２、メモリ２２３およびＩ2Ｃインタフェース（Ｉ／Ｆ）２２４を有する。
【００３９】
スイッチ２１１は、コントローラ２１２による制御の下で、ＣＭ１１０のエクスパンダ１１７と、ＤＥ２００内のＨＤＤ２０１，２０２，２０３，・・・またはＤＥ３００のエクスパンダ３１０との間で送受信されるデータを中継する。
【００４０】
コントローラ２１２は、スイッチ２１１におけるデータ中継動作を制御する。また、コントローラ２１２は、他方のエクスパンダ２２０のコントローラ２２２との間で通信経路２３０を介して通信することができる。なお、コントローラ２１２は、例えば、プロセッサを備え、メモリ２１３に格納されたファームウェアプログラムを読み出し、そのファームウェアプログラムにしたがって各種の処理を実行してもよい。
【００４１】
メモリ２１３は、コントローラ２１２の処理で使用される各種のデータを記憶する。また、コントローラ２１２がプロセッサを備える場合、メモリ２１３は、コントローラ２１２で実行されるファームウェアプログラムを記憶する。
【００４２】
Ｉ2Ｃインタフェース２１４は、通信経路２３０を介して他方のエクスパンダ２２０のＩ2Ｃインタフェース２２４と接続されている。なお、本実施の形態では、通信経路２３０は、Ｉ2Ｃバスであるものとする。Ｉ2Ｃインタフェース２１４は、コントローラ２１２と他方のエクスパンダ２２０との間の通信を制御する。
【００４３】
一方、エクスパンダ２２０は、エクスパンダ２１０と同様のハードウェア構成を有する。すなわち、スイッチ２２１は、ＣＭ１２０のエクスパンダ１２７と、ＤＥ２００内のＨＤＤ２０１，２０２，２０３，・・・またはＤＥ３００のエクスパンダ３２０との間で送受信されるデータを中継する。コントローラ２２２は、スイッチ２２１におけるデータ中継動作を制御する。メモリ２２３は、コントローラ２２２の処理で使用される各種のデータを記憶する。Ｉ2Ｃインタフェース２２４は、コントローラ２２２と他方のエクスパンダ２１０との間の通信を制御する。
【００４４】
次に、図４を用いて、ＩＯＣからＨＤＤに対するアクセス経路について説明する。
ＣＭ１１０のＩＯＣ１１６と、ＤＥ２００，３００内の各ＨＤＤとの間のアクセス経路は、２系統設けられている。具体的には、ＩＯＣ１１６からＤＥ２００のＨＤＤ２０１，２０２，２０３，・・・に対するアクセス経路としては、エクスパンダ１１７，２１０を経由する経路と、エクスパンダ１２７，２２０を経由する経路とがある。また、ＩＯＣ１１６からＤＥ３００のＨＤＤ３０１，３０２，３０３，・・・に対するアクセス経路としては、エクスパンダ１１７，２１０，３１０を経由する経路と、エクスパンダ１２７，２２０，３２０を経由する経路とがある。
【００４５】
同様に、ＣＭ１２０のＩＯＣ１２６と、ＤＥ２００，３００内の各ＨＤＤとの間のアクセス経路も、２系統設けられている。具体的には、ＩＯＣ１２６からＤＥ２００のＨＤＤ２０１，２０２，２０３，・・・に対するアクセス経路としては、エクスパンダ１２７，２２０を経由する経路と、エクスパンダ１１７，２１０を経由する経路とがある。また、ＩＯＣ１２６からＤＥ３００のＨＤＤ３０１，３０２，３０３，・・・に対するアクセス経路としては、エクスパンダ１２７，２２０，３２０を経由する経路と、エクスパンダ１１７，２１０，３１０を経由する経路とがある。
【００４６】
このように、ＩＯＣ１１６，１２６から各ＨＤＤに対するアクセス経路は、冗長化されている。これにより、ＩＯＣ１１６，１２６は、一方のアクセス経路を用いてＨＤＤにアクセスできない場合に、他方のアクセス経路を用いてＨＤＤへのアクセスを試みることが可能になる。
【００４７】
本実施の形態では、ＩＯＣ１１６から各ＨＤＤに対するアクセス経路のうち、エクスパンダ１１７を経由する経路を「正規経路１３１ａ」と呼び、エクスパンダ１２７を経由する経路を「迂回経路１３１ｂ」と呼ぶ。正規経路１３１ａは、通常時に使用されるアクセス経路であり、迂回経路１３１ｂは、正規経路１３１ａが使用できない場合に予備的に使用されるアクセス経路であるものとする。
【００４８】
また、ＩＯＣ１２６から各ＨＤＤに対するアクセス経路のうち、エクスパンダ１２７を経由する経路を「正規経路１３２ａ」と呼び、エクスパンダ１１７を経由する経路を「迂回経路１３２ｂ」と呼ぶ。正規経路１３２ａは、通常時に使用されるアクセス経路であり、迂回経路１３２ｂは、正規経路１３２ａが使用できない場合に予備的に使用されるアクセス経路であるものとする。
【００４９】
ところで、ＩＯＣとエクスパンダとの間、および、エクスパンダとエクスパンダとの間は、複数の物理リンクによって接続されている。具体的には、ＩＯＣ１１６とエクスパンダ１１７との間、ＩＯＣ１１６とエクスパンダ１２７との間、エクスパンダ１１７とエクスパンダ２１０との間、エクスパンダ２１０とエクスパンダ３１０との間、ＩＯＣ１２６とエクスパンダ１２７との間、ＩＯＣ１２６とエクスパンダ１１７との間、エクスパンダ１２７とエクスパンダ２２０との間、エクスパンダ２２０とエクスパンダ３２０との間が、それぞれ２以上の同じ数の物理リンクによって接続されている。ここで、物理リンクとは、シリアル通信を行うための最小単位の通信経路であり、送信用の差動信号線ペアと受信用の差動信号線ペアとを含む。
【００５０】
また、ＳＡＳ規格では、複数の物理リンクを束ねて仮想的な１つの通信経路として使用して通信できるようになっている。このような仮想的な通信経路は「ワイドリンク」と呼ばれる。なお、ワイドリンクを用いず、物理リンクを個別に用いて通信が行われる場合、各物理リンクは「ナローリンク」と呼ばれる。
【００５１】
ＳＡＳ規格では、イニシエータであるＩＯＣと、ターゲットデバイスであるＨＤＤとの間には、ワイドリンクまたはナローリンクを単位としてコネクションが確立される。そして、コネクションが確立されたＩＯＣとＨＤＤとの間では、通信経路（ワイドリンクまたはナローリンク）を独占的に用いて通信が行われる。また、コネクションが確立された通信経路間では、並列に通信が行われる。
【００５２】
以下の説明では、ワイドリンクまたはナローリンクが形成された経路を「通信経路」と記載する。例えば、ＩＯＣとエクスパンダ、および、エクスパンダとエクスパンダとの間の通信経路数が「４」であるとする。この場合、エクスパンダ１１７を経由するＨＤＤ側へのアクセス経路では４つの通信経路が形成されるので、正規経路１３１ａおよび迂回経路１３２ｂでは最大４つのコネクションが確立される。すなわち、正規経路１３１ａおよび迂回経路１３２ｂを用いて同時にアクセス可能なＨＤＤの合計台数は、上限「４」以下に限定される。同様に、エクスパンダ１２７を経由するＨＤＤ側へのアクセス経路では４つの通信経路が形成されるので、正規経路１３２ａおよび迂回経路１３１ｂでも最大４つのコネクションが確立される。すなわち、正規経路１３２ａおよび迂回経路１３１ｂを用いて同時にアクセス可能なＨＤＤの合計台数は、上限「４」以下に限定される。
【００５３】
次に、ＩＯＣからＨＤＤに対するアクセスの手順について説明する。特に、ここでは、正規経路を用いたアクセスに失敗し、迂回経路を用いたアクセスを試行する場合について説明する。以下の説明では、まず、図６を用いてアクセス手順の比較例を示し、その問題点について説明した後、図７、図８を用いて第２の実施の形態におけるアクセス手順を説明する。
【００５４】
図６は、ＩＯＣからＨＤＤに対するアクセス手順の比較例を示すシーケンス図である。図６では例として、ＣＭ１１０のＩＯＣ１１６が、ＤＥ３００のＨＤＤ３０１に対してアクセスする場合の手順を示す。
【００５５】
ＩＯＣ１１６は、まず、ＨＤＤ３０１にコネクションの確立を要求するためのＯＰＥＮメッセージを、正規経路１３１ａを介してＨＤＤ３０１宛てに送信する（ステップＳ１１ａ）。すなわち、このＯＰＥＮメッセージは、ＩＯＣ１１６からエクスパンダ１１７に対して送信される。送信されたＯＰＥＮメッセージは、ＤＥ２００のエクスパンダ２１０に転送され、さらにＤＥ３００のエクスパンダ３１０に転送されて（ステップＳ１１ｂ）、ＨＤＤ３０１に受信される（ステップＳ１１ｃ）。ＨＤＤ３０１が、エクスパンダ３１０に接続された第１ポートとエクスパンダ３２０に接続された第２ポートを有するものとすると、ＯＰＥＮメッセージは第１ポートで受信される。
【００５６】
なお、ＯＰＥＮメッセージの転送過程では、エクスパンダ１１７，２１０，３１０のそれぞれは、ＯＰＥＮメッセージを受信すると、その受信に用いている通信経路をロックする。これにより、その通信経路が占有され、その通信経路を介した他のＯＰＥＮメッセージの転送が不可能な状態になる。
【００５７】
ここで、ＩＯＣ１１６がコネクションの確立に失敗したものとする。例えば、エクスパンダ３１０側のポートがビジーであるなどの理由で、ＨＤＤ３０１からコネクション確立要求を受け入れられないことを示す応答メッセージが送信されたとする（ステップＳ１２ａ）。この場合、応答メッセージはエクスパンダ３１０からエクスパンダ２１０に転送され（ステップＳ１２ｂ）、さらにエクスパンダ１１７に転送されて、ＩＯＣ１１６に受信される（ステップＳ１２ｃ）。なお、他の例として、ＩＯＣ１１６は、ＯＰＥＮメッセージの送信から所定のタイムアウト時間内に応答を受信できないことによって、コネクションの確立に失敗したことを認識する場合もある。
【００５８】
ＩＯＣ１１６は、コネクションの確立に失敗したことを認識すると、迂回経路１３１ｂを介してＨＤＤ３０１とのコネクションを確立しようとする。すなわち、ＩＯＣ１１６は、ＨＤＤ３０１宛てのＯＰＥＮメッセージを、迂回経路１３１ｂを介して送信する（ステップＳ１３ａ）。このＯＰＥＮメッセージは、ＩＯＣ１１６からＣＭ１２０のエクスパンダ１２７に対して送信され、ＤＥ２００のエクスパンダ２２０に転送され、ＤＥ３００のエクスパンダ３２０に転送されて（ステップＳ１３ｂ）、ＨＤＤ３０１の第２ポートに受信される（ステップＳ１３ｃ）。なお、このＯＰＥＮメッセージの転送過程では、エクスパンダ１２７，２２０，３２０のそれぞれは、ＯＰＥＮメッセージを受信すると、その受信に用いている通信経路をロックする。
【００５９】
ＨＤＤ３０１は、コネクションの確立要求を受け入れる場合、その旨を示す応答メッセージ（具体的には、ＯＰＥＮ＿ＡＣＣＥＰＴメッセージ）を返信する（ステップＳ１４ａ）。応答メッセージは、エクスパンダ３２０からエクスパンダ２２０に転送され（ステップＳ１４ｂ）、さらにエクスパンダ１２７に転送されて、ＩＯＣ１１６に受信される（ステップＳ１４ｃ）。
【００６０】
これにより、ＩＯＣ１１６とＨＤＤ３０１との間で、迂回経路１３１ｂを介したコネクションが確立される。ＩＯＣ１１６は、ＨＤＤ３０１に対してデータの読み出しまたは書き込みを要求するＩ／Ｏ（Input／Output）コマンドを送信する（ステップＳ１５ａ）。このＩ／Ｏコマンドは、ＣＭ１２０のエクスパンダ１２７に対して送信され、ＤＥ２００のエクスパンダ２２０に転送され、ＤＥ３００のエクスパンダ３２０に転送されて（ステップＳ１５ｂ）、ＨＤＤ３０１に受信される（ステップＳ１５ｃ）。
【００６１】
なお、エクスパンダ１１７，２１０，３１０は、ＯＰＥＮメッセージの受信に応じて通信経路をロックしてから、または、その後にその通信経路を介して最後にデータが送信されてから、一定時間が経過すると、通信経路のロックを解除する。一方、ＩＯＣ１１６は、ステップＳ１５ａの後、ＨＤＤ３０１とのＩ／Ｏ処理が完了すると、ロック解除を指示するメッセージを送信する。エクスパンダ１２７，２２０，３２０は、このメッセージの受信に応じて通信経路のロックを解除する。
【００６２】
以上の図６の処理では、ＩＯＣ１１６は、まず、正規経路１３１ａを介してＯＰＥＮメッセージを送信し、その応答メッセージの受信を待つ。図６の例では、応答メッセージの受信までに待ち時間Ｔ１だけかかっている。そして、ＩＯＣ１１６は、コネクションの確立に失敗したことを認識した後に、迂回経路１３１ｂを介してＯＰＥＮメッセージを送信し、その応答メッセージの受信を待つ。図６の例では、応答メッセージの受信までに待ち時間Ｔ２だけかかっている。
【００６３】
このように、上記処理では、ＯＰＥＮメッセージの送信とその応答メッセージの受信という処理が２回繰り返される。このため、ＨＤＤ３０１との間でコネクションが確立されてＩ／Ｏコマンドを送信できるようになるまでに、長い時間がかかってしまうという問題がある。
【００６４】
また、例えば、ステップＳ１１ａで送信されたＯＰＥＮメッセージに対する応答メッセージが返送されなかった場合、ＩＯＣ１１６は所定のタイムアウト時間が経過するまで応答メッセージの受信を待つ。しかし、このタイムアウト時間は上記の待ち時間Ｔ１より長く設定されるので、この場合には、Ｉ／Ｏコマンドを送信できるようになるまでの時間がさらに長くなってしまう。
【００６５】
このような問題の解決方法の例として、ＩＯＣ１１６が、正規経路１３１ａと迂回経路１３１ｂの両方に対して、同時並行的にＯＰＥＮメッセージを送信する方法が考えられる。しかし、この方法では、実際の通信に使用されるのは一方の通信経路だけであるにもかかわらず、２つの通信経路が一時的に占有されてしまう。このため、例えば、エクスパンダ１２７，２２０を経由する通信経路を正規経路１３２ａとして使用するＩＯＣ１２６が、正規経路１３２ａを介して通信を行う機会を奪ってしまう可能性があり、通信効率が悪化するという問題がある。
【００６６】
このような問題に対して、第２の実施の形態に係るストレージシステムでは、以下の図７、図８に示すような動作が行われる。
図７は、第２の実施の形態におけるアクセス手順の第１の例を示すシーケンス図である。図７の例では、ＣＭ１１０に直接接続されたＤＥ２００（１段目のＤＥ）に含まれるエクスパンダ２１０，２２０の動作が、図６の比較例とは異なる。
【００６７】
ＩＯＣ１１６は、図６の比較例と同様に、まず、ＨＤＤ３０１にコネクションの確立を要求するためのＯＰＥＮメッセージを、正規経路１３１ａを介してＨＤＤ３０１宛てに送信する（ステップＳ２１ａ）。このＯＰＥＮメッセージは、ＩＯＣ１１６からエクスパンダ１１７に対して送信され、ＤＥ２００のエクスパンダ２１０に転送される。
【００６８】
エクスパンダ２１０は、ＯＰＥＮメッセージを受信すると、そのＯＰＥＮメッセージをＤＥ３００のエクスパンダ３１０に転送する（ステップＳ２１ｂ）。これとともに、エクスパンダ２１０は、ＯＰＥＮメッセージを受信したことを、通信経路２３０を介して他方のエクスパンダ２２０に通知する（ステップＳ２２）。なお、図６の比較例と同様に、エクスパンダ３１０に転送されたＯＰＥＮメッセージは、ＨＤＤ３０１の第１ポートに受信される（ステップＳ２１ｃ）。
【００６９】
他方のエクスパンダ２２０は、ＯＰＥＮメッセージの受信通知を受けると、ＨＤＤ３０１との間の通信経路に空きがあるか（すなわち、ロックされていない通信経路があるか）を判定する。通信経路に空きがある場合、エクスパンダ２２０は、ＨＤＤ３０１宛てのＯＰＥＮメッセージをＤＥ３００のエクスパンダ３２０に送信する（ステップＳ２３ａ）。以下、このようにエクスパンダが起点となって送信されるＯＰＥＮメッセージを「ダミーＯＰＥＮメッセージ」と記載する。また、エクスパンダ２２０は、ダミーＯＰＥＮメッセージの送信に伴い、その送信に用いている通信経路をロックする。
【００７０】
エクスパンダ３２０に送信されたダミーＯＰＥＮメッセージは、ＨＤＤ３０１の第２ポートに受信される（ステップＳ２３ｂ）。これにより、ステップＳ２２，Ｓ２３ａ，Ｓ２３ｂの処理が、ステップＳ２１ｂ，Ｓ２１ｃの処理と並行して実行される。
【００７１】
ここで、図６の比較例と同様に、ＨＤＤ３０１は、エクスパンダ３１０から受信したＯＰＥＮメッセージに対し、コネクション確立要求を受け入れられないことを示す応答メッセージを返信したとする（ステップＳ２４ａ）。この応答メッセージは、エクスパンダ３１０からエクスパンダ２１０に転送され（ステップＳ２４ｂ）、さらにエクスパンダ１１７に転送されて、ＩＯＣ１１６に受信される（ステップＳ２４ｃ）。
【００７２】
一方、ＨＤＤ３０１は、エクスパンダ３２０から受信したダミーＯＰＥＮメッセージに対し、コネクション確立要求を受け入れることを示すＯＰＥＮ＿ＡＣＣＥＰＴメッセージを返信したとする（ステップＳ２５ａ）。このＯＰＥＮ＿ＡＣＣＥＰＴメッセージは、エクスパンダ３２０からエクスパンダ２２０に転送される（ステップＳ２５ｂ）。エクスパンダ２２０がＯＰＥＮ＿ＡＣＣＥＰＴメッセージを受信することにより、エクスパンダ２２０とＨＤＤ３０１との間で通信経路が確保された状態となる。このとき、エクスパンダ２２０は、ＨＤＤ３０１のＳＡＳアドレスをメモリ２２３に記録する（ステップＳ２６）。
【００７３】
ＩＯＣ１１６は、ステップＳ２４ｃで受信した応答メッセージからコネクションの確立に失敗したことを認識すると、図６の比較例と同様に、迂回経路１３１ｂを介してＨＤＤ３０１とのコネクションを確立しようとする。すなわち、ＩＯＣ１１６は、ＨＤＤ３０１宛てのＯＰＥＮメッセージを、迂回経路１３１ｂを介して送信する（ステップＳ２７）。このＯＰＥＮメッセージは、ＩＯＣ１１６からＣＭ１２０のエクスパンダ１２７に対して送信され、ＤＥ２００のエクスパンダ２２０に受信される。
【００７４】
エクスパンダ２２０は、受信したＯＰＥＮメッセージから、宛先のＨＤＤ３０１のＳＡＳアドレスを抽出し、そのＳＡＳアドレスがメモリ２２３に記録されているかを判定する。図７の例では、該当するＳＡＳアドレスがステップＳ２６の処理で記録されている。エクスパンダ２２０は、該当するＳＡＳアドレスが記録されていると判定すると、コネクション確立要求を受け入れることを示すＯＰＥＮ＿ＡＣＣＥＰＴメッセージを返信する（ステップＳ２８）。このＯＰＥＮ＿ＡＣＣＥＰＴメッセージは、エクスパンダ１２７を介してＩＯＣ１１６に転送される。
【００７５】
ＩＯＣ１１６がこのＯＰＥＮ＿ＡＣＣＥＰＴメッセージを受信することで、ＩＯＣ１１６とエクスパンダ２２０との間で通信経路が確保される。エクスパンダ２２０とＨＤＤ３０１との間ではすでに通信経路が確保されているので、この時点でＩＯＣ１１６とＨＤＤ３０１との間のコネクションが確立された状態となる。以後、ＩＯＣ１１６は、確保された通信経路を通じてＩ／Ｏコマンドを送信することで、ＨＤＤ３０１にＩ／Ｏ処理の実行を指示できる（ステップＳ２９ａ〜Ｓ２９ｃ）。
【００７６】
以上の図７の処理では、ＩＯＣ１１６から送信されたＯＰＥＮメッセージが、エクスパンダ２１０からＨＤＤ３０１に転送され、その応答メッセージがＩＯＣ１１６に返信される。このような動作と並行して、エクスパンダ２２０からのダミーＯＰＥＮメッセージがＨＤＤ３０１に送信され、その応答メッセージがエクスパンダ２２０に返信される。すなわち、ＩＯＣ１１６からＨＤＤ３０１に対する正規経路１３１ａ上の通信経路を確保するための動作と並行して、迂回経路１３１ｂ上の通信経路の一部である、エクスパンダ２２０からＨＤＤ３０１への通信経路を確保するための動作が行われる。
【００７７】
ＩＯＣ１１６は、正規経路１３１ａにおけるコネクションの確立に失敗したことを認識すると、迂回経路１３１ｂにおけるコネクションを確立しようする。このとき、ＩＯＣ１１６から迂回経路１３１ｂ上に送信されたＯＰＥＮメッセージは、宛先のＨＤＤ３０１まで到達せずにエクスパンダ２２０に受信され、エクスパンダ２２０から応答メッセージが返信される。これにより、ＩＯＣ１１６からＨＤＤ３０１に対する迂回経路１３１ｂ上のコネクションが確立した状態となり、ＩＯＣ１１６は、エクスパンダ２２０からの応答メッセージに応じて、Ｉ／Ｏコマンドの送信を開始する。
【００７８】
このような動作により、ＩＯＣ１１６が迂回経路１３１ｂ上にＯＰＥＮメッセージを送信してからその応答メッセージを受信するまでの待ち時間Ｔ３を、図６に示した待ち時間Ｔ２より短縮できる。したがって、ＨＤＤ３０１にＩ／Ｏコマンドを送信できるようになるまでの時間を短縮できる。
【００７９】
図８は、第２の実施の形態におけるアクセス手順の第２の例を示すシーケンス図である。なお、図８では、図７と同様の処理には同じステップ番号を付して示している。
この図８は、図７の処理において、ダミーＯＰＥＮメッセージによって通信経路が確保された状態で、エクスパンダ２２０が正規経路１３２ａを介してＯＰＥＮメッセージを受信した場合の処理例を示す。例えば、ステップＳ２６でエクスパンダ２２０がＨＤＤ３０２のＳＡＳアドレスをメモリ２２３に記録した後、ステップＳ２７でＩＯＣ１１６がＯＰＥＮメッセージを送信する前に、ＣＭ１２０のＩＯＣ１２６がＯＰＥＮメッセージを送信したとする（ステップＳ３１）。ここでは、送信されたＯＰＥＮメッセージは、ＤＥ３００のＨＤＤ３０２宛てのメッセージであるとする。
【００８０】
また、このとき、エクスパンダ２２０からＨＤＤ側への通信経路の中に空きがなかったものとする。この場合、ダミーＯＰＥＮメッセージに応じて確保された通信経路より、正規経路１３２ａを介して送信されたＯＰＥＮメッセージに応じて確保される通信経路の方が優先されると判断される。これは、ダミーＯＰＥＮメッセージに応じて確保された通信経路は、まだＩＯＣ１１６による通信によって使用されていない、予約中の通信経路だからである。
【００８１】
このため、エクスパンダ２２０は、ダミーＯＰＥＮメッセージに応じてＨＤＤ３０２との間に確保された通信経路を解放するための処理を実行する。具体的には、エクスパンダ２２０は、ＨＤＤ３０２に対する通信経路のロックを解除する。これとともに、エクスパンダ２２０は、ＨＤＤ３０２宛てのダミーＯＰＥＮメッセージを取り消すための取り消し指示メッセージ（具体的には、ＣＬＯＳＥメッセージ）を、ＨＤＤ３０２宛てに送信する（ステップＳ３２ａ）。
【００８２】
ＤＥのエクスパンダ３２０は、この取り消し指示メッセージを受信すると、ＨＤＤ３０１に対する通信経路のロックを解除するとともに、取り消し指示メッセージをＨＤＤ３０１に送信する（ステップＳ３２ｂ）。これにより、エクスパンダ２２０とＨＤＤ３０１との間の通信経路が解放される。なお、図示しないが、実際には、ＨＤＤ３０１からエクスパンダ２２０に対しても取り消し指示メッセージ（ＣＬＯＳＥメッセージ）が送信される。
【００８３】
エクスパンダ２２０とＨＤＤ３０１との間の通信経路が解放されると、エクスパンダ２２０は、ＩＯＣ１２６から受信したＨＤＤ３０２宛てのＯＰＥＮメッセージをエクスパンダ３２０に転送する（ステップＳ３３ａ）。このＯＰＥＮメッセージはさらに、エクスパンダ３２０からＨＤＤ３０２に転送される（ステップＳ３３ｂ）。なお、このＯＰＥＮメッセージは、ＨＤＤ３０２のポートのうち、エクスパンダ３２０に接続された第２ポートで受信される。
【００８４】
図示を省略するが、この後、ＩＯＣ１２６宛てのＯＰＥＮ＿ＡＣＣＥＰＴメッセージがＨＤＤ３０２から返信される。これにより、ＩＯＣ１２６とＨＤＤ３０２との間のコネクションが確立され、ＩＯＣ１２６は、ＨＤＤ３０２宛てのＩ／Ｏコマンドを送信できるようになる。
【００８５】
以上の処理により、通信経路を仮に確保するためのダミーＯＰＥＮメッセージより、正規の経路である正規経路を介して送信されたＯＰＥＮメッセージの方が優先的に処理されるようになる。これにより、迂回経路上の通信経路を仮に確保するための処理が、正規経路を介するＩ／Ｏコマンドの送信処理に与える影響が小さくなる。その結果、通信経路を仮に確保するための処理の影響によって、正規経路を介するＨＤＤへのアクセス性能が低下することを抑制できる。
【００８６】
ここで、ＩＯＣ１１６が、正規経路１３１ａと迂回経路１３１ｂの両方に対して、同時並行的にＯＰＥＮメッセージを送信するという前述の処理例と、図８に示した処理とを比較する。前述の処理例では、迂回経路１３１ｂを介してＯＰＥＮメッセージが送信されることで、ＩＯＣ１１６とＨＤＤ３０１との間の迂回経路１３１ｂ上の通信経路が確保された状態となる。この状態は、少なくとも、ＩＯＣ１１６が正規経路１３１ａ上のコネクションを確立できたか否かを判定するまでの間、継続される。
【００８７】
この継続期間では、迂回経路１３１ｂ上に確保された通信経路でＩ／Ｏコマンドが送信されないにもかかわらず、その通信経路が占有されている。そのため、もし、エクスパンダ１２７を経由する通信経路に空きがなく、なおかつ、その継続期間中にＩＯＣ１２６からのＯＰＥＮメッセージが送信されたとしても、上記手順で確保された通信経路は解放されず、ＩＯＣ１２６はＯＰＥＮメッセージを送信できない。したがって、ＩＯＣ１２６による正規経路１３２ａを介したアクセスの性能が低下してしまう。
【００８８】
これに対して、図８の処理によれば、上記と同じ状況下では、ダミーＯＰＥＮメッセージに応じて仮に確保された通信経路が解放され、その通信経路を介してＩＯＣ１２６からのＯＰＥＮメッセージが送信される。したがって、ＩＯＣ１２６による正規経路１３２ａを介したアクセスの性能の低下を抑制できる。
【００８９】
また、図８の処理によれば、前述の処理例と比較して、通信経路が仮に確保される期間を短縮できるので、通信経路の使用効率が向上する。したがって、迂回経路を介したＩ／Ｏアクセスを可能としながらも、ストレージシステム全体としてのＨＤＤに対するアクセス性能を向上させることができる。
【００９０】
次に、図９は、１段目のＤＥに記憶される管理情報の例を示す図である。図９では例として、ＤＥ２００のエクスパンダ２１０のメモリ２１３に記憶される管理情報の例を示すが、エクスパンダ２２０のメモリ２２３にも、同じデータ構造を有する管理情報が記憶される。
【００９１】
メモリ２１３には、経路管理テーブル２１３ａとアドレス管理テーブル２３１ｂが記憶される。
経路管理テーブル２１３ａは、エクスパンダ２２０を経由する通信経路の空き状態や、ロックされている通信経路に関する情報を管理するためのテーブルである。経路管理テーブル２１３ａは、通信経路番号およびＳＡＳアドレスの各項目を有する。
【００９２】
通信経路番号の項目には、通信経路の識別番号が登録される。ＳＡＳアドレスの項目には、通信経路がロックされている場合に、ＯＰＥＮメッセージまたはダミーＯＰＥＮメッセージの送信先のＨＤＤのＳＡＳアドレスが登録される。なお、通信経路がロックされていない場合（すなわち、その通信経路が空きである場合）には、ＳＡＳアドレスには登録情報がないことを示す「ＮＯＮＥ」が登録される。
【００９３】
アドレス管理テーブル２１３ｂには、ある通信経路がダミーＯＰＥＮメッセージの送信に応じて確保された場合に、そのダミーＯＰＥＮメッセージの送信先ＨＤＤのＳＡＳアドレスが登録される。換言すると、アドレス管理テーブル２１３ｂには、経路管理テーブル２１３ａに登録されているＳＡＳアドレスのうち、ダミーＯＰＥＮメッセージの送信先ＨＤＤを示すＳＡＳアドレスが登録される。
【００９４】
次に、１段目のＤＥ２００に搭載されたエクスパンダ２１０，２２０の処理について、フローチャートを用いて説明する。
図１０は、正規経路を介してＯＰＥＮメッセージを受信した場合の処理例を示すフローチャートである。
【００９５】
［ステップＳ５１］エクスパンダは、ＩＯＣから正規経路を介して送信されたＯＰＥＮメッセージを受信する。例えば、図１０の処理をエクスパンダ２１０が実行する場合、エクスパンダ２１０は、ＣＭ１１０のＩＯＣ１１６から送信されたＯＰＥＮメッセージを受信する。エクスパンダのコントローラは、このＯＰＥＮメッセージの受信を検知すると、ステップＳ５２以降の処理を実行する。
【００９６】
［ステップＳ５２］コントローラは、通信経路２３０を介して、同じＤＥ２００内の他方のエクスパンダに対して、ＯＰＥＮメッセージを受信したことを示す受信通知を送信する。このとき、受信したＯＰＥＮメッセージの送信先ＨＤＤを示すＳＡＳアドレスが、受信通知とともに他方のエクスパンダに送信される。なお、この受信通知は、他方のエクスパンダに対してダミーＯＰＥＮメッセージの送信を要求することを意味する。
【００９７】
［ステップＳ５３］コントローラは、メモリに記憶された経路管理テーブルを参照して、ロックされていない未使用の通信経路があるかを判定する。経路管理テーブルのレコードの中にＳＡＳアドレスが登録されていないレコードがある場合、未使用の通信経路があると判定される。コントローラは、未使用の通信経路がある場合、ステップＳ５６の処理を実行し、未使用の通信経路がない場合、ステップＳ５４の処理を実行する。
【００９８】
［ステップＳ５４］コントローラは、経路管理テーブルを参照して、ダミーＯＰＥＮメッセージが送信された通信経路（すなわち、ダミーＯＰＥＮメッセージの送信によってロックされた送信経路）があるかを判定する。アドレス管理テーブル２１３ｂにＳＡＳアドレスが１つ以上登録されている場合、ダミーＯＰＥＮメッセージが送信された通信経路があると判定される。コントローラは、ダミーＯＰＥＮメッセージが送信された通信経路がある場合、ステップＳ５５の処理を実行し、ダミーＯＰＥＮメッセージが送信された通信経路がない場合、ステップＳ５７の処理を実行する。
【００９９】
［ステップＳ５５］コントローラは、送信済みのダミーＯＰＥＮメッセージを取り消すための処理を実行する。具体的には、コントローラは、ダミーＯＰＥＮメッセージが送信された通信経路について、ロックを解除するとともに、その通信経路を介して、ダミーＯＰＥＮメッセージの取り消し指示メッセージを送信する。取り消し指示メッセージの送信先は、ダミーＯＰＥＮメッセージの送信先と同じＨＤＤとされる。この送信先ＨＤＤは、経路管理テーブルとアドレス管理テーブルとに基づいて判定される。
【０１００】
また、コントローラは、取り消し指示メッセージの送信先ＨＤＤのＳＡＳアドレスを、経路管理テーブルとアドレス管理テーブルの両方から削除する。
なお、ダミーＯＰＥＮメッセージが送信された通信経路が複数ある場合、すなわち、アドレス管理テーブル２１３ｂにＳＡＳアドレスが複数登録されている場合には、コントローラは、それらの中からＳＡＳアドレスを１つ選択して上記の処理を実行する。例えば、コントローラは、最も後にダミーＯＰＥＮメッセージが送信された送信先ＨＤＤのＳＡＳアドレスを選択する。
【０１０１】
［ステップＳ５６］コントローラは、スイッチを介して、ステップＳ５１で受信したＯＰＥＮメッセージを、その送信先ＨＤＤ宛てに転送する。また、コントローラは、ＯＰＥＮメッセージを送信した通信経路をロックするとともに、ＯＰＥＮメッセージの送信先ＨＤＤのＳＡＳアドレスを、経路管理テーブルのレコードのうち、ロックした通信経路に対応するレコードに登録する。なお、ステップＳ５５の実行後にステップＳ５６が実行された場合、ＯＰＥＮメッセージは、ステップＳ５５でロックが解除された通信経路を介して送信される。
【０１０２】
［ステップＳ５７］コントローラは、スイッチを介して、ステップＳ５１で受信したＯＰＥＮメッセージの送信元ＩＯＣに対してＯＰＥＮ＿ＲＥＪＥＣＴメッセージを返送する。このＯＰＥＮ＿ＲＥＪＥＣＴメッセージは、受信したＯＰＥＮメッセージの送信先ＨＤＤとのコネクションを確立できないことを示す応答メッセージである。
【０１０３】
図１１は、同じＤＥ内の他方のエクスパンダからＯＰＥＮメッセージの受信通知を受信した場合の処理例を示すフローチャートである。
［ステップＳ６１］エクスパンダのコントローラは、同じＤＥ２００内の他方のエクスパンダから、通信経路２３０を介して、ＯＰＥＮメッセージの受信通知を受信する。このとき、コントローラは、受信通知とともに、送信先ＨＤＤのＳＡＳアドレスも受信する。例えば、図１１の処理をエクスパンダ２２０が実行する場合、エクスパンダ２２０は、ＯＰＥＮメッセージの受信通知とＳＡＳアドレスを、エクスパンダ２１０から受信する。
【０１０４】
なお、この受信処理は、他方のエクスパンダにおいて図１０のステップＳ５２の処理が実行された場合に、実行される。前述のように、この受信通知は、ダミーＯＰＥＮメッセージの送信を要求することを意味する。
【０１０５】
［ステップＳ６２］コントローラは、メモリに記憶された経路管理テーブルを参照して、ロックされていない未使用の通信経路があるかを判定する。経路管理テーブルのレコードの中にＳＡＳアドレスが登録されていないレコードがある場合、未使用の通信経路があると判定される。コントローラは、未使用の通信経路がある場合、ステップＳ６３の処理を実行し、未使用の通信経路がない場合、処理を終了する。
【０１０６】
［ステップＳ６３］コントローラは、ステップＳ６１で受信した送信先ＨＤＤのＳＡＳアドレスを送信先として設定したダミーＯＰＥＮメッセージを、スイッチを介して送信する。
【０１０７】
図１２は、ＯＰＥＮメッセージの送信に対する応答メッセージを受信した場合の処理例を示すフローチャートである。
［ステップＳ７１］エクスパンダは、ＯＰＥＮメッセージまたはダミーＯＰＥＮメッセージの送信に対する応答メッセージを受信する。エクスパンダのコントローラは、この応答メッセージの受信を検知すると、ステップＳ７２以降の処理を実行する。
【０１０８】
［ステップＳ７２］コントローラは、応答メッセージの返送先がＩＯＣであるか、またはエクスパンダ自身であるかを判定する。前者の場合、応答メッセージはＯＰＥＮメッセージに対する応答として送信されたものであり、後者の場合、応答メッセージはダミーＯＰＥＮメッセージに対する応答として送信されたものである。コントローラは、返送先がＩＯＣの場合、ステップＳ７３の処理を実行し、返送先がエクスパンダ自身の場合、ステップＳ７６の処理を実行する。
【０１０９】
［ステップＳ７３］コントローラは、受信した応答メッセージの宛先に基づいて、応答メッセージを正規経路を介して返送するか、または迂回経路を介して返送するかを判定する。コントローラは、正規経路を介して返送する場合、ステップＳ７４の処理を実行し、迂回経路を介して返送する場合、ステップＳ７５の処理を実行する。
【０１１０】
［ステップＳ７４］このケースでは、他方のエクスパンダに対して、受信した応答メッセージの送信元ＨＤＤに対するダミーＯＰＥＮメッセージの送信が要求済みである。この場合、コントローラは、受信した応答メッセージが示す応答結果を、通信経路２３０を介して他方のエクスパンダに通知する。受信した応答メッセージが正常応答を示すＯＰＥＮ＿ＡＣＣＥＰＴメッセージであった場合、応答結果として正常応答であったことが通知される。一方、受信した応答メッセージが異常応答を示す場合、応答結果として異常応答であったことが通知される。また、このとき、応答結果とともに、応答メッセージの送信元ＨＤＤのＳＡＳアドレスも通知される。
【０１１１】
［ステップＳ７５］コントローラは、スイッチを介して、ステップＳ７１で受信した応答メッセージを、その送信先のＩＯＣに対して転送する。
なお、応答メッセージがＯＰＥＮ＿ＡＣＣＥＰＴメッセージであった場合には、ステップＳ７５の時点で、応答メッセージの送信元ＨＤＤとの間の通信経路が確保されている。また、ステップＳ７３で「Ｎｏ」と判定された場合には、この後に迂回経路を介してＩＯＣからのＩ／Ｏコマンドを受信する可能性がある。迂回経路を介してＩ／Ｏコマンドを受信した場合、エクスパンダは、確保された通信経路を使用してＩ／ＯコマンドをＨＤＤ宛てに転送する（図７のステップＳ２９ｂに対応）。
【０１１２】
［ステップＳ７６］コントローラは、受信した応答メッセージが、正常応答を示すＯＰＥＮ＿ＡＣＣＥＰＴメッセージかを判定する。コントローラは、正常応答を示す場合、ステップＳ７７の処理を実行し、異常応答を示す場合、処理を終了する。なお、後者の場合、ダミーＯＰＥＮメッセージによって迂回経路上の通信経路を確保しておくことができない。
【０１１３】
［ステップＳ７７］ステップＳ７６で応答メッセージが正常応答を示すと判定された場合、ダミーＯＰＥＮメッセージの送信に応じて、エクスパンダと、応答メッセージの送信元ＨＤＤとの間でコネクションが確立した状態となる。すなわち、この状態は、エクスパンダとＨＤＤとの間の通信経路が仮に確保された状態である。このとき、コントローラは、受信した応答メッセージの送信元ＨＤＤのＳＡＳアドレスを、メモリに記憶されたアドレス管理テーブルに登録する。
【０１１４】
図１３は、同じＤＥ内の他方のエクスパンダから応答結果を受信した場合の処理例を示すフローチャートである。なお、図１３の処理は、図１１のステップＳ６３においてダミーＯＰＥＮメッセージを送信したエクスパンダによって実行される。
【０１１５】
［ステップＳ８１］エクスパンダのコントローラは、同じＤＥ２００内の他方のエクスパンダから、通信経路２３０を介して、ＯＰＥＮメッセージに対する応答結果を受信する。このとき、コントローラは、応答結果とともにＨＤＤのＳＡＳアドレスも受信する。例えば、図１３の処理をエクスパンダ２２０が実行する場合、エクスパンダ２２０は、ＯＰＥＮメッセージに対する応答結果とＳＡＳアドレスを、エクスパンダ２１０から受信する。
【０１１６】
なお、この受信処理は、他方のエクスパンダにおいて図１２のステップＳ７４の処理が実行された場合に、実行される。
［ステップＳ８２］コントローラは、ステップＳ８１で受信した応答結果が正常応答を示すかを判定する。コントローラは、応答結果が正常応答を示す場合、ステップＳ８３の処理を実行し、応答結果が異常応答を示す場合、処理を終了する。
【０１１７】
［ステップＳ８３］コントローラは、送信済みのダミーＯＰＥＮメッセージを取り消すための処理を実行する。ここで言う送信済みのダミーＯＰＥＮメッセージとは、ステップＳ６１で受信したＳＡＳアドレスが示すＨＤＤに対して送信済みのダミーＯＰＥＮメッセージである。
【０１１８】
具体的には、コントローラは、ダミーＯＰＥＮメッセージが送信された通信経路について、ロックを解除するとともに、その通信経路を介して、ダミーＯＰＥＮメッセージの取り消し指示メッセージを送信する。取り消し指示メッセージの送信先は、ダミーＯＰＥＮメッセージの送信先と同じＨＤＤであり、このＨＤＤは、ステップＳ６１で受信したＳＡＳアドレスが示すＨＤＤである。
【０１１９】
また、コントローラは、取り消し指示メッセージの送信先ＨＤＤのＳＡＳアドレスを、経路管理テーブルとアドレス管理テーブルの両方から削除する。
上記のステップＳ８３の処理が実行されるケースとは、他方のエクスパンダを介する正規経路上でコネクションを確保する処理が実行され、その確保に成功したケースである。この場合に、ステップＳ８３の処理が実行されることで、迂回経路上に仮に確保された通信経路が解放される。このステップＳ８３の処理は、他方のエクスパンダがＨＤＤからＯＰＥＮ＿ＡＣＣＥＰＴメッセージを受信した後にすぐに実行される。このため、迂回経路上に通信経路が仮に確保される時間を最小限に留めることができ、通信経路の使用効率を向上させることができる。
【０１２０】
図１４は、迂回経路を介してＯＰＥＮメッセージを受信した場合の処理例を示すフローチャートである。
［ステップＳ９１］エクスパンダは、ＩＯＣから迂回経路を介して送信されたＯＰＥＮメッセージを受信する。例えば、図１４の処理をエクスパンダ２２０が実行する場合、エクスパンダ２２０は、ＣＭ１１０のＩＯＣ１１６から送信されたＯＰＥＮメッセージを受信する。エクスパンダのコントローラは、このＯＰＥＮメッセージの受信を検知すると、ステップＳ９２以降の処理を実行する。
【０１２１】
［ステップＳ９２］コントローラは、メモリに記憶されたアドレス管理テーブルを参照し、アドレス管理テーブルにＨＤＤのＳＡＳアドレスが記録されているかを判定する。コントローラは、ＳＡＳアドレスが記録されている場合、ステップＳ９３の処理を実行し、ＳＡＳアドレスが記録されていない場合、ステップＳ９８の処理を実行する。
【０１２２】
［ステップＳ９３〜Ｓ９５］ステップＳ９３〜Ｓ９５では、図１０のステップＳ５３〜Ｓ５５と同様の処理が実行される。すなわち、コントローラは、未使用の通信経路があるかを判定し（ステップＳ９３）、未使用の通信経路がある場合にはステップＳ９６の処理を実行する。一方、未使用の通信経路がない場合、コントローラは、ダミーＯＰＥＮメッセージが送信された通信経路があるかを判定し（ステップＳ９４）、該当する通信経路がある場合、送信済みのダミーＯＰＥＮメッセージを１つ取り消すための処理を実行する（ステップＳ９５）。また、ステップＳ９４で該当する通信経路がない場合、コントローラは、ステップＳ９７の処理を実行する。
【０１２３】
［ステップＳ９６］コントローラは、スイッチを介して、ステップＳ９１で受信したＯＰＥＮメッセージの送信元ＩＯＣに対してＯＰＥＮ＿ＡＣＣＥＰＴメッセージを返送する。このＯＰＥＮ＿ＡＣＣＥＰＴメッセージは、受信したＯＰＥＮメッセージに対して、コネクションの確立要求を受け入れることを示す応答メッセージである。また、コントローラは、メモリに記憶されたアドレス管理テーブルから、受信したＯＰＥＮメッセージの送信先ＨＤＤを示すＳＡＳアドレスを削除する。
【０１２４】
返送されたＯＰＥＮ＿ＡＣＣＥＰＴメッセージをＩＯＣが受信することで、ＩＯＣとエクスパンダとの間のコネクションが確立する。このとき、エクスパンダと、ステップＳ９１で受信したＯＰＥＮメッセージの送信先ＨＤＤとの間のコネクションが、すでに確立した状態となっている（図１２のステップＳ７７参照）。このため、ＩＯＣとＨＤＤとの間の迂回経路上のコネクションが確立された状態となるので、ＩＯＣは、ＨＤＤに対するＩ／Ｏコマンドを迂回経路を介して送信できるようになる。
【０１２５】
なお、このステップＳ９６の処理は、図７のステップＳ２８の処理に対応する。この処理により、ＯＰＥＮメッセージの送信元のＩＯＣは、そのＯＰＥＮメッセージが宛先ＨＤＤに到達して宛先ＨＤＤからの応答を受信する場合の時間よりも短時間で、ＯＰＥＮメッセージに対する応答を受信できる。そのため、ＩＯＣが、迂回経路上にＯＰＥＮメッセージを送信してからＩ／Ｏコマンドの送信を開始できるまでの時間を短縮することができる。
【０１２６】
［ステップＳ９７］コントローラは、スイッチを介して、ステップＳ９１で受信したＯＰＥＮメッセージの送信元ＩＯＣに対してＯＰＥＮ＿ＲＥＪＥＣＴメッセージを返送する。このＯＰＥＮ＿ＲＥＪＥＣＴメッセージは、受信したＯＰＥＮメッセージの送信先ＨＤＤとのコネクションを確立できないことを示す応答メッセージである。
【０１２７】
［ステップＳ９８］コントローラは、スイッチを介して、ステップＳ９１で受信したＯＰＥＮメッセージを、その送信先ＨＤＤ宛てに転送する。また、コントローラは、ＯＰＥＮメッセージを送信した通信経路をロックするとともに、ＯＰＥＮメッセージの送信先ＨＤＤのＳＡＳアドレスを、経路管理テーブルのレコードのうち、ロックした通信経路に対応するレコードに登録する。
【０１２８】
なお、図示しないが、実際には、ステップＳ９８を実行する前にステップＳ９３〜Ｓ９５と同様の処理が実行される。すなわち、ステップＳ９８の実行開始時点で未使用経路がある場合、ステップＳ９８がすぐに実行される。一方、未使用経路がないが、ダミーＯＰＥＮが送信された通信経路がある場合、その通信経路が解放され、解放された通信経路を用いてステップＳ９８の処理が実行される。
【０１２９】
また、第１の実施の形態に係る接続制御装置２ａ，２ｂの処理は、例えば、接続制御装置２ａ，２ｂにそれぞれ搭載されるプロセッサにプログラムを実行させることで実現できる。また、第２の実施の形態に係るエクスパンダ２１０，２２０の処理は、例えば、エクスパンダ２１０，２２０にそれぞれ搭載されるプロセッサにプログラムを実行させることで実現できる。
【０１３０】
これらのプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１３３】
また、以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  記憶装置と、
それぞれデータを中継し、相互に通信可能な第１の接続制御装置および第２の接続制御装置と、
前記第１の接続制御装置を経由する第１の通信経路を介して、前記記憶装置との接続を要求する第１の接続要求を送信し、前記記憶装置との接続に成功すると、前記記憶装置に対する第１の入出力要求を前記第１の通信経路を介して送信し、前記記憶装置との接続に失敗すると、前記第２の接続制御装置を経由する第２の通信経路を介して、前記記憶装置との接続を要求する第２の接続要求を送信し、前記記憶装置との接続に成功すると、前記記憶装置に対する第２の入出力要求を前記第２の通信経路を介して送信する制御装置と、
を有し、
前記第１の接続制御装置は、前記第１の接続要求を受信すると、前記第１の接続要求を前記記憶装置に転送するとともに、前記第１の接続要求の受信通知を前記第２の接続制御装置に送信し、
前記第２の接続制御装置は、前記受信通知を受信すると、前記記憶装置との接続を要求する第３の接続要求を前記記憶装置に送信し、前記第３の接続要求による前記記憶装置との接続に成功した後に前記第２の接続要求を受信すると、接続に成功したことを示す成功通知を前記制御装置に送信し、前記成功通知の受信に応じて前記制御装置から送信された前記第２の入出力要求を受信すると、前記第２の入出力要求を前記記憶装置に転送する、
ストレージシステム。
【０１３４】
（付記２）  前記第２の接続制御装置は、
前記第３の接続要求の送信に応じて前記記憶装置との接続に成功すると、前記記憶装置のアドレスを記憶し、
前記第２の接続要求を受信したとき、前記第２の接続要求の送信先アドレスが記憶された前記アドレスと一致する場合に、前記成功通知を前記制御装置に送信する、
付記１記載のストレージシステム。
【０１３５】
（付記３）  他の制御装置と、１以上の他の記憶装置とをさらに有し、
前記制御装置は、前記第１の通信経路を介して前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記他の制御装置は、前記第２の接続制御装置との間の第３の通信経路と、前記第２の通信経路のうち前記第２の接続制御装置と前記記憶装置および前記１以上の他の記憶装置との間の第４の通信経路とを介して、前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して同時に接続可能な記憶装置の台数は、２以上の所定の上限数以下に限定されており、
前記第２の接続制御装置は、前記第３の接続要求による前記記憶装置との接続に成功した後、前記第２の接続要求を受信する前に、前記１以上の他の記憶装置のうち一の記憶装置との接続を要求する第４の接続要求を、前記他の制御装置から前記第３の通信経路を介して受信したとき、前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して接続中の記憶装置の台数が前記上限数に達している場合には、前記記憶装置との接続を解消し、前記一の記憶装置に対して前記第４の接続要求を転送する、
付記１または２記載のストレージシステム。
【０１３６】
（付記４）  前記第１の接続制御装置は、前記第１の接続要求による前記記憶装置との接続に成功すると、接続に成功したことを示す接続通知を前記第２の接続制御装置に送信し、
前記第２の接続制御装置は、前記第３の接続要求による前記記憶装置との接続に成功した後に前記接続通知を受信すると、前記記憶装置との接続を解消する、
付記１乃至３のいずれか１項に記載のストレージシステム。
【０１３７】
（付記５）  前記受信通知は、前記第１の通信経路および前記第２の通信経路とは独立した第５の通信経路を介して、前記第１の接続制御装置から前記第２の接続制御装置に送信される、
付記１乃至４のいずれか１つに記載のストレージシステム。
【０１３８】
（付記６）  記憶装置と前記記憶装置にアクセスする制御装置との間で第２の通信経路を介して送受信されるデータを中継するスイッチと、
前記記憶装置と前記制御装置との間で第１の通信経路を介して送受信されるデータを中継する他の接続制御装置と通信する通信インタフェースと、
前記第１の通信経路を介して前記記憶装置に接続を要求する第１の接続要求を、前記他の接続制御装置が前記制御装置から受信したことを示す受信通知を、前記通信インタフェースを介して受信すると、前記記憶装置との接続を要求する第３の接続要求を前記スイッチを介して前記記憶装置に送信し、前記第３の接続要求による前記記憶装置との接続に成功した後に、前記第２の通信経路を介して前記記憶装置に接続を要求する第２の接続要求を、前記スイッチが前記制御装置から受信すると、接続に成功したことを示す成功通知を前記スイッチを介して前記制御装置に送信し、前記成功通知の受信に応じて前記制御装置から送信された、前記記憶装置に対する入出力要求を前記スイッチが受信すると、前記入出力要求を前記スイッチを介して前記記憶装置に転送する制御部と、
を有する接続制御装置。
【０１３９】
（付記７）  前記制御部は、
前記第３の接続要求の送信に応じて前記記憶装置との接続に成功すると、前記記憶装置のアドレスを前記接続制御装置の記憶部に記憶し、
前記第２の接続要求を受信したとき、前記第２の接続要求の送信先アドレスが記憶された前記アドレスと一致する場合に、前記成功通知を前記制御装置に送信する、
付記６記載の接続制御装置。
【０１４０】
（付記８）  前記接続制御装置は、他の制御装置、および、１以上の他の記憶装置と通信可能であり、
前記制御装置は、前記第１の通信経路を介して前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記他の制御装置は、前記接続制御装置との間の第３の通信経路と、前記第２の通信経路のうち前記接続制御装置と前記記憶装置および前記１以上の他の記憶装置との間の第４の通信経路とを介して、前記記憶装置および前記１以上の他の記憶装置と通信可能であり、
前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して同時に接続可能な記憶装置の台数は、２以上の所定の上限数以下に限定されており、
前記制御部は、前記第３の接続要求による前記記憶装置との接続に成功した後、前記第２の接続要求を受信する前に、前記１以上の他の記憶装置のうち一の記憶装置との接続を要求する第４の接続要求を、前記他の制御装置から前記第３の通信経路を介して受信したとき、前記記憶装置および前記１以上の他の記憶装置のうち、前記第４の通信経路を介して接続中の記憶装置の台数が前記上限数に達している場合には、前記記憶装置との接続を解消し、前記一の記憶装置に対して前記第４の接続要求を転送する、
付記６または７記載の接続制御装置。
【０１４１】
（付記９）  前記制御部は、前記第３の接続要求による前記記憶装置との接続に成功した後に、前記第１の接続要求による前記記憶装置との接続に成功したことを示す接続通知を前記他の接続制御装置から受信すると、前記記憶装置との接続を解消する、
付記６乃至８のいずれか１つに記載の接続制御装置。
【０１４２】
（付記１０）  コンピュータに、
記憶装置と前記記憶装置にアクセスする制御装置との間で第２の通信経路を介して送受信されるデータの中継動作を制御し、
前記記憶装置と前記制御装置との間で第１の通信経路を介して送受信されるデータを中継する他の接続制御装置が、前記第１の通信経路を介して前記記憶装置に接続を要求する第１の接続要求を前記制御装置から受信したことを示す受信通知を、前記他の接続制御装置から受信すると、前記記憶装置との接続を要求する第３の接続要求を前記記憶装置に送信し、
前記第３の接続要求による前記記憶装置との接続に成功した後に、前記第２の通信経路を介して前記記憶装置に接続を要求する第２の接続要求を前記制御装置から受信すると、接続に成功したことを示す成功通知を前記制御装置に送信し、
前記成功通知の受信に応じて前記制御装置から送信された、前記記憶装置に対する入出力要求を受信すると、前記入出力要求を前記記憶装置に転送する、
処理を実行させる接続制御プログラム。
【符号の説明】
【０１４３】
１  制御装置
２ａ，２ｂ  接続制御装置
３  記憶装置
１１〜１３  通信経路
２１ａ〜２１ｃ  接続要求
２２  受信通知
２３  成功通知
【図１】
2019036136.tif 000003
【図２】
2019036136.tif 000004
【図３】
2019036136.tif 000005
【図４】
2019036136.tif 000006
【図５】
2019036136.tif 000007
【図６】
2019036136.tif 000008
【図７】
2019036136.tif 000009
【図８】
2019036136.tif 000010
【図９】
2019036136.tif 000011
【図１０】
2019036136.tif 000012
【図１１】
2019036136.tif 000013
【図１２】
2019036136.tif 000014
【図１３】
2019036136.tif 000015
【図１４】
2019036136.tif 000016