(57)【要約】【課題】アクセス性能を向上させる。【解決手段】ストレージ装置２０は、記憶装置２１ａ，２１ｂと、２以上の第１の数の通信経路１１，１２を介して制御装置１０に接続された接続制御装置２２を有する。接続制御装置２２は、制御装置１０と制御装置１０からのアクセス対象である記憶装置２１ａ，２１ｂ，３１ａ，３１ｂとの間の通信を中継するスイッチ回路２２ａと、次のような制御回路２２ｂを有する。制御回路２２ｂは、制御装置１０が記憶装置２１ａ，２１ｂ，３１ａ，３１ｂのうちいくつの記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、第２の数が第１の数と一致する期間において、記憶装置２１ａ，２１ｂのうち、制御装置１０との間でコネクションが確立されていないすべての記憶装置が省電力状態になるように制御する。【選択図】図１
2019003462.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の記憶装置に対するアクセスを制御する制御装置と、
前記複数の第１の記憶装置のうち複数の第２の記憶装置と、２以上の第１の数の通信経路を介して前記制御装置に接続された接続制御装置と、を備えるストレージ装置と、
を有し、
前記接続制御装置は、
前記制御装置と前記複数の第１の記憶装置との間の通信を中継するスイッチ回路と、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、前記第２の数が前記第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する制御回路と、
を有するストレージシステム。
【請求項２】
前記複数の第１の記憶装置のうち複数の第３の記憶装置と、前記接続制御装置を介して前記制御装置に接続する他の接続制御装置と、を備える他のストレージ装置をさらに有し、
前記他の接続制御装置は、
前記制御装置と、前記複数の第１の記憶装置のうち前記複数の第２の記憶装置以外の第１の記憶装置との間の通信を中継する他のスイッチ回路と、
前記第２の数を判定し、前記第２の数が前記第１の数と一致する期間において、前記複数の第３の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第３の記憶装置が省電力状態になるように制御する他の制御回路と、
を有する請求項１記載のストレージシステム。
【請求項３】
前記制御回路は、前記制御装置から送信されるコネクション確立要求の監視結果に基づいて前記第２の数を判定し、前記第２の数に基づく通知情報を前記他の制御回路に送信し、
前記他の制御回路は、前記通知情報に基づいて前記第２の数を判定する、
請求項２記載のストレージシステム。
【請求項４】
前記制御装置は、前記第２の数が、前記第１の数と一致する状態から前記第１の数より小さくなった場合、前記複数の第２の記憶装置のうち省電力状態の第２の記憶装置について、省電力状態を解除する、
請求項１乃至３のいずれか１項に記載のストレージシステム。
【請求項５】
前記制御装置は、前記複数の第１の記憶装置のいずれかに対するコネクション確立要求を前記制御装置から受信すると、前記コネクション確立要求の転送先が決定される前に前記コネクション確立要求を受信したことを示す受信通知を前記他の制御回路に送信し、
前記他の制御回路は、前記受信通知を受信した場合、前記複数の第３の記憶装置のうち省電力状態の第３の記憶装置について、省電力状態を解除する、
請求項２または３記載のストレージシステム。
【請求項６】
制御装置と、前記制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の通信を中継するスイッチ回路と、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、前記第２の数が、前記制御装置が前記複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する制御回路と、
を有する接続制御装置。
【請求項７】
コンピュータに、
制御装置と、前記制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の接続を制御し、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、
前記第２の数が、前記制御装置が前記複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、接続制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
近年のストレージシステムでは、大容量化の要求に伴い、搭載される記憶装置の数が増大する傾向にある。そのため、消費電力の増加が問題となっており、省電力化のための制御技術が重要となっている。例えば、搭載された記憶装置を積極的に省電力状態に遷移させることで、省電力化を図ることが考えられている。その一例として、記憶装置の入出力データ量を監視し、入出力データ量がなくなった場合に記憶装置をスリープ状態に遷移させるLink Power Management（ＬＰＭ）技術が利用されている。
【０００３】
また、省電力化のための次のような技術が提案されている。例えば、複数のポートのうち、未接続ポートへの電力の供給を停止するようにした記憶制御装置が提案されている。また、例えば、ＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）対応のディスク装置において、複数のポートのうち、不使用のポートが備えるドライバ・レシーバ回路の動作を停止させることが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１２−５２４９２８号公報
【特許文献２】特開平１０−３３３７９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、入出力データ量がなくなった場合に記憶装置をスリープ状態に遷移させる上記技術では、その記憶装置に対する入出力が新たに要求されると、記憶装置はスリープ状態から復帰する。このようにスリープ状態の記憶装置に対して入出力が要求された場合には、通常時と比較して入出力要求に対する応答速度が低下する。したがって、上記技術により記憶装置を省電力化できるものの、記憶装置のアクセス性能が低下するという問題がある。
【０００６】
１つの側面では、本発明は、アクセス性能を向上させたストレージシステム、接続制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、複数の第１の記憶装置に対するアクセスを制御する制御装置、および、複数の第１の記憶装置のうち複数の第２の記憶装置と、２以上の第１の数の通信経路を介して制御装置に接続された接続制御装置とを備えるストレージ装置を有するストレージシステムが提供される。接続制御装置は、スイッチ回路と制御回路とを有する。スイッチ回路は、制御装置と複数の第１の記憶装置との間の通信を中継する。制御回路は、制御装置が複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、第２の数が第１の数と一致する期間において、複数の第２の記憶装置のうち、制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する。
【０００８】
また、１つの態様では、スイッチ回路と制御回路とを有する接続制御装置が提供される。スイッチ回路は、制御装置と、制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の通信を中継する。制御回路は、制御装置が複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、第２の数が、制御装置が複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、複数の第２の記憶装置のうち、制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する。
【０００９】
さらに、１つの態様では、コンピュータに次のような処理を実行させるストレージ制御プログラムが提供される。コンピュータは、制御装置と、制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の接続を制御し、制御装置が複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、第２の数が、制御装置が複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、複数の第２の記憶装置のうち、制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する。
【発明の効果】
【００１０】
１つの側面では、アクセス性能を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のストレージシステムの構成例および処理例を示す図である。
【図２】第２の実施の形態のストレージシステムの構成例を示す図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】ＤＥの内部構成例を示す図である。
【図５】エクスパンダのハードウェア構成例を示す図である。
【図６】管理テーブルの一例を示す図である。
【図７】最大経路数の取得処理の一例を示すシーケンス図である。
【図８】１段目のエクスパンダにおける省電力制御処理の一例を示すフローチャートである。
【図９】２段目以降のエクスパンダにおける省電力制御処理の一例を示すフローチャートである。
【図１０】第２の実施の形態における省電力制御処理の具体例（その１）である。
【図１１】第２の実施の形態における省電力制御処理の具体例（その２）である。
【図１２】第２の実施の形態における省電力制御処理の具体例（その３）である。
【図１３】第３の実施の形態における省電力制御処理の具体例（その１）である。
【図１４】第３の実施の形態における省電力制御処理の具体例（その２）である。
【図１５】ＯＰＥＮメッセージ受信処理の一例を示すフローチャートである。
【図１６】スリープモード解除制御処理の一例を示すフローチャートである。
【図１７】スリープモード遷移制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージシステムの構成例および処理例を示す図である。図１に示すストレージシステムは、制御装置１０とストレージ装置２０を有する。
【００１３】
制御装置１０は、複数の記憶装置にアクセスする。図１では例として、制御装置１０によるアクセス対象の記憶装置として、記憶装置２１ａ，２１ｂ，３１ａ，３１ｂが存在するものとする。また、以下の説明では、制御装置１０によるアクセス対象である記憶装置２１ａ，２１ｂ，３１ａ，３１ｂを「記憶装置群」と呼ぶ。
【００１４】
ストレージ装置２０は、記憶装置群のうちの記憶装置２１ａ，２１ｂと、接続制御装置２２を有する。接続制御装置２２は、スイッチ回路２２ａと制御回路２２ｂを有する。
スイッチ回路２２ａは、制御装置１０と記憶装置群との間の通信を中継する。したがって、制御装置１０が、記憶装置群に含まれるどの記憶装置にアクセスする際の経路にも、スイッチ回路２２ａが含まれる。
【００１５】
例えば、制御装置１０は、スイッチ回路２２ａを介して記憶装置２１ａ，２１ｂにアクセスする。また、図１では例として、ストレージ装置２０に対して、スイッチ回路３２と、記憶装置群のうちの残りの記憶装置３１ａ，３１ｂを有するストレージ装置３０が接続されており、スイッチ回路２２ａはスイッチ回路３２に接続されている。この場合、制御装置１０は、スイッチ回路２２ａ，３２を介して記憶装置３１ａ，３１ｂにアクセスする。
【００１６】
ここで、制御装置１０と接続制御装置２２との間は、複数の通信経路を介して接続されている。本実施の形態では例として、制御装置１０と接続制御装置２２との間は、２本の通信経路１１，１２を介して接続されている。以下、制御装置１０と接続制御装置２２との間の通信経路１１，１２の数を「最大経路数」と呼ぶ。図１の例では、最大経路数は「２」である。
【００１７】
制御装置１０は、記憶装置群に含まれる記憶装置にアクセスする際、まず、その記憶装置との間のコネクションを確立する。コネクションは、通信経路１１，１２のそれぞれにおいて確立され、コネクションが確立された通信経路１１，１２は占有される。このため、制御装置１０が同時にアクセス可能な記憶装置の最大数は、最大経路数「２」と一致する。
【００１８】
制御回路２２ｂは、次のような記憶装置２１ａ，２１ｂの状態制御処理を実行する。
制御回路２２ｂは、制御装置１０が記憶装置群に含まれるいくつの記憶装置との間でコネクションを確立しているかを示す「コネクション数」を判定する（ステップＳ１）。例えば、制御回路２２ｂは、制御装置１０から送信されるコネクション確立要求を監視し、その監視結果に基づいてコネクション数を判定する。そして、制御回路２２ｂは、判定されたコネクション数が最大経路数「２」と一致している期間において、記憶装置２１ａ，２１ｂのうち、制御装置１０との間でコネクションが確立していない記憶装置２１ｂが省電力状態になるように制御する（ステップＳ２）。
【００１９】
例えば、通信経路１１を介して、制御装置１０と記憶装置２１ａとの間でコネクションが確立されているとする。この場合、コネクション数は「１」であり、最大経路数「２」より小さい。この状態では、制御装置１０は、記憶装置群に含まれる他の１台の記憶装置との間で新たなコネクションを確立することが可能である。このため、例えば、制御回路２２ｂの制御によって記憶装置２１ｂを省電力状態に遷移させてしまうと、省電力状態の記憶装置２１ｂに対して制御装置１０からアクセスされる可能性がある。この場合、記憶装置２１ｂは、省電力状態を解除してからデータの読み書き動作を行うので、アクセスに対する応答時間が長くなってしまう。
【００２０】
一方、例えば、通信経路１１を介して、制御装置１０と記憶装置２１ａとの間でコネクションが確立されているとともに、通信経路１２を介して、制御装置１０と記憶装置３１ｂとの間でコネクションが確立されているとする。図１はこの状態を示しており、コネクションが確立されている経路を太線で表している。
【００２１】
この場合、コネクション数は「２」であり、最大経路数「２」と一致している。この状態では、制御装置１０は、記憶装置群に含まれる他の記憶装置との間で新たなコネクションを確立することはできない。そのため、この状態が維持されている期間では、制御装置１０が記憶装置２１ｂ，３１ａにアクセスすることはない。そこで、上記のように、制御回路２２ｂは、コネクション数「２」が最大経路数「２」と一致している期間において、記憶装置２１ｂが省電力状態になるように制御する。
【００２２】
このように、制御回路２２ｂは、自装置に接続されている記憶装置に対して制御装置１０からアクセスされないことが保証される期間において、その記憶装置を省電力状態にする。省電力状態の記憶装置に対してアクセスされた場合、その記憶装置は省電力状態を解除してからデータの読み書き動作を行うので、省電力状態でない通常時よりアクセスに対する応答時間が長くなる。しかし、制御回路２２ｂによる上記処理によれば、省電力状態の記憶装置に対して制御装置１０がアクセスする事態が発生しなくなる。このため、制御装置１０がストレージ装置２０に含まれる記憶装置２１ａ，２１ｂにアクセスするときのアクセス性能が向上する。
【００２３】
すなわち、第１の実施の形態によれば、記憶装置群の消費電力を低減しながら、それらのアクセス性能を向上させることができる。
［第２の実施の形態］
図２は、第２の実施の形態のストレージシステムの構成例を示す図である。図２に示すストレージシステム１００は、ＣＭ（Controller Module）２００およびＤＥ（Drive Enclosure）３００，４００，５００，６００を有する。ＤＥ３００，４００，５００，６００のそれぞれには、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などの不揮発性の記憶装置が複数台搭載されている。また、ＤＥ３００，４００，５００，６００は、この順でＣＭ２００に対して直列に接続されている。なお、ストレージシステム１００が有するＤＥの数は、図２の例のように４台に限らず、２台以上の任意の台数であってよい。
【００２４】
ＣＭ２００には、ホスト装置７００が接続されている。ＣＭ２００は、ホスト装置７００からの要求に応じて、ＤＥ３００，４００，５００，６００に搭載された記憶装置にアクセスするストレージ制御装置である。なお、ストレージシステム１００とホスト装置７００とは、例えば、ファイバチャネル（ＦＣ：Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続される。
【００２５】
図３は、ＣＭのハードウェア構成例を示す図である。ＣＭ２００は、プロセッサ２０１、ＲＡＭ（Random Access Memory）２０２、ＳＳＤ２０３、ＣＡ（Channel Adapter）２０４、ＰＣＨ（Platform Controller Hub）２０５およびＩＯＣ（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）イニシエータとして動作するＳＡＳインタフェースである。
【００３０】
図４は、ＤＥの内部構成例を示す図である。なお、図４では、ＣＭ２００、ＤＥ３００，４００，５００，６００の間の接続状態についても図示している。また、本実施の形態では例として、ＤＥ３００，４００，５００，６００には、記憶装置としてそれぞれ４台のＨＤＤが搭載されているものとする。
【００３１】
ＤＥ３００は、エクスパンダ３１０とＨＤＤ３２１〜３２４を有する。ＤＥ４００は、エクスパンダ４１０とＨＤＤ４２１〜４２４を有する。ＤＥ５００は、エクスパンダ５１０とＨＤＤ５２１〜５２４を有する。ＤＥ６００は、エクスパンダ６１０とＨＤＤ６２１〜６２４を有する。
【００３２】
エクスパンダ３１０，４１０，５１０，６１０は、ＳＡＳイニシエータであるＩＯＣ２０６と、ＳＡＳデバイスであるＨＤＤとの間で送受信されるデータを中継するＳＡＳエクスパンダである。エクスパンダ３１０は、ＩＯＣ２０６、ＨＤＤ３２１〜３２４およびエクスパンダ４１０に接続されている。エクスパンダ４１０は、エクスパンダ３１０、ＨＤＤ４２１〜４２４およびエクスパンダ５１０に接続されている。エクスパンダ５１０は、エクスパンダ４１０、ＨＤＤ５２１〜５２４およびエクスパンダ６１０に接続されている。エクスパンダ６１０は、エクスパンダ５１０およびＨＤＤ６２１〜６２４に接続されている。このように、エクスパンダ３１０，４１０，５１０，６１０は、この順でＩＯＣ２０６に対して直列に接続されている。
【００３３】
ところで、本実施の形態では例として、ＩＯＣ２０６とエクスパンダ３１０との間、エクスパンダ３１０とエクスパンダ４１０との間、エクスパンダ４１０とエクスパンダ５１０との間、および、エクスパンダ５１０とエクスパンダ６１０との間は、４本の通信経路を介して接続されている。また、エクスパンダ３１０とＨＤＤ３２１〜３２４との間、エクスパンダ４１０とＨＤＤ４２１〜４２４との間、エクスパンダ５１０とＨＤＤ５２１〜５２４との間、および、エクスパンダ６１０とＨＤＤ６２１〜６２４との間は、それぞれ１本の通信経路を介して接続されているものとする。
【００３４】
ここで言う「通信経路」とは、送信用の差動信号線ペアと受信用の差動信号線ペアとを含むシリアル伝送路を指すものとする。ただし、ＳＡＳ規格では複数のシリアル伝送路を束ねて仮想的に１つの伝送路とした「ワイドポート」を用いて通信することもできる。上記の「通信経路」は、このようなワイドポートであってもよい。
【００３５】
また、ＩＯＣ２０６がＨＤＤにアクセスする際には、ＩＯＣ２０６はそのＨＤＤとの間でコネクションを確立する。コネクションは、通信経路ごとに確立され、ＩＯＣ２０６は、コネクションが確立された通信経路を占有して通信を行う。本実施の形態では、ＩＯＣ２０６に４本の通信経路が接続されているので、ＩＯＣ２０６は、最大で４台のＨＤＤとの間でコネクションを確立し、それらのＨＤＤとの間で並列的にデータを送受信することができる。
【００３６】
図５は、エクスパンダのハードウェア構成例を示す図である。図５では例として、エクスパンダ３１０のハードウェア構成について示す。
エクスパンダ３１０は、記憶部３１１、制御部３１２、スイッチ３１３、送受信部３１４ａ〜３１４ｌを有する。記憶部３１１は、制御部３１２の処理で用いられる各種のデータを記憶する。制御部３１２は、例えば、プロセッサである。この場合、制御部３１２は、記憶部３１１に記憶されたファームウェアプログラムを実行することで、各種の処理を実行する。
【００３７】
制御部３１２は、スイッチ３１３による送受信部間の経路の接続を制御する。また、制御部３１２は、隣接するエクスパンダ４１０に対して情報を送信する機能や、接続されたＨＤＤ３２１〜３２４をスリープモードに遷移させたり、スリープモードから復帰させる機能を備える。
【００３８】
スイッチ３１３は、制御部３１２による制御の下で、送受信部３１４ａ〜３１４ｌのうちの１つと他の１つとの間の経路を接続する。送受信部３１４ａ〜３１４ｄは、それぞれ個別の通信経路を介してＩＯＣ２０６との間で通信する。送受信部３１４ｅ〜３１４ｈは、それぞれＨＤＤ３２１〜３２４との間で通信経路を介して通信する。送受信部３１４ｉ〜３１４ｌは、それぞれ個別の通信経路を介してエクスパンダ４１０との間で通信する。
【００３９】
なお、ＤＥ４００，５００，６００がそれぞれ有するエクスパンダ４１０，５１０，６１０も、エクスパンダ３１０と同様のハードウェアによって実現される。
次に、ＤＥ３００，４００，５００，６００のそれぞれの記憶部が記憶する情報について説明する。
【００４０】
図６は、管理テーブルの一例を示す図である。管理テーブル８００は、ＤＥ３００，４００，５００，６００のそれぞれの記憶部に格納される。管理テーブル８００は、最大経路数、コネクション数の項目を含む。最大経路数の項目は、ＩＯＣ２０６がＨＤＤと通信するために利用可能な最大の通信経路数を示す。なお、図４の例では、最大経路数は「４」である。コネクション数の項目は、ＩＯＣ２０６とＨＤＤとの間で確立しているコネクションの総数を示す。
【００４１】
ところで、前述のように、ＩＯＣ２０６は、コネクションが確立された通信経路を占有して通信を行う。本実施の形態ではこの特徴を利用し、各エクスパンダは、確立されているコネクション数と最大経路数との比較結果に基づいて、接続されているＨＤＤをスリープモードに遷移させるか、スリープモードから復帰させるかを制御する。
【００４２】
具体的には、各エクスパンダは、確立されているコネクション数が最大経路数に達すると、接続されているＨＤＤのうちコネクションが確立していないＨＤＤをスリープモードに遷移させる。この状態では、これ以上コネクションを確立できないことから、現在コネクションが確立されていないＨＤＤに対してＩＯＣ２０６からアクセスされることはない。そして、各エクスパンダは、確立されているコネクション数が最大経路数より小さくなると、接続されているＨＤＤのうちスリープモードのＨＤＤを、スリープモードから復帰させる。この状態では、現在コネクションが確立されていないＨＤＤとの間に、ＩＯＣ２０６が新たなコネクションを確立できる。このため、ＨＤＤをスリープモードにしないことで、どのＨＤＤに対してＩＯＣ２０６からアクセスされても高速に応答できるようになる。
【００４３】
このような制御を実現するための、エクスパンダ３１０，４１０，５１０，６１０のそれぞれは、図６に示した管理テーブル８００を記憶して、管理テーブル８００上に確立されたコネクション数と最大経路数を保持する。以下、図７を用いて、エクスパンダ３１０，４１０，５１０，６１０のそれぞれが最大経路数を取得する処理について説明する。
【００４４】
図７は、最大経路数の取得処理の一例を示すシーケンス図である。図７の処理は、ＤＥ３００，４００，５００，６００に電力が供給され、ＤＥ３００，４００，５００，６００が起動したときに開始される。
【００４５】
（ＳＴ１０１）エクスパンダ３１０の制御部３１２は、最大経路数を確認する。具体的には、エクスパンダ３１０の制御部３１２は、エクスパンダ３１０に接続されているデバイスを認識し、ＳＡＳイニシエータであるＩＯＣ２０６と接続している通信経路の数を、最大経路数と判定する。
【００４６】
（ＳＴ１０２）エクスパンダ３１０の制御部３１２は、エクスパンダ３１０の記憶部３１１に記憶された管理テーブル８００に最大経路数を登録する。
（ＳＴ１０３）エクスパンダ３１０の制御部３１２は、最大経路数を隣接するエクスパンダ４１０に通知する。例えば、エクスパンダ間では「プリミティブ」と呼ばれる４バイトのデータを送受信可能である。そこで、本実施の形態では、最大経路数を他のエクスパンダにブロードキャストするための「ＢＲＯＡＤＣＡＳＴ（ｍａｘ）」というプリミティブが用意される。エクスパンダ３１０の制御部３１２は、最大経路数を設定したＢＲＯＡＤＣＡＳＴ（ｍａｘ）プリミティブを、エクスパンダ４１０に送信する。
【００４７】
（ＳＴ１０４）エクスパンダ４１０の制御部は、エクスパンダ３１０から通知された最大経路数を受信し、エクスパンダ４１０の記憶部に記憶された管理テーブル８００に最大経路数を登録する。
【００４８】
（ＳＴ１０５）エクスパンダ４１０の制御部は、受信したＢＲＯＡＤＣＡＳＴ（ｍａｘ）プリミティブを隣接するエクスパンダ５１０に転送することで、エクスパンダ５１０に最大経路数を通知する。
【００４９】
（ＳＴ１０６）エクスパンダ５１０の制御部は、エクスパンダ４１０から通知された最大経路数を受信し、エクスパンダ５１０の記憶部に記憶された管理テーブル８００に最大経路数を登録する。
【００５０】
（ＳＴ１０７）エクスパンダ５１０の制御部は、受信したＢＲＯＡＤＣＡＳＴ（ｍａｘ）プリミティブを隣接するエクスパンダ６１０に転送することで、エクスパンダ６１０にブロードキャストで最大経路数を通知する。
【００５１】
（ＳＴ１０８）エクスパンダ６１０の制御部は、エクスパンダ５１０から通知された最大経路数を受信し、エクスパンダ６１０の記憶部に記憶された管理テーブル８００に最大経路数を登録する。
【００５２】
以上のように、最大経路数は、ＩＯＣ２０６に直接接続された１段目のエクスパンダ３１０によって確認され、他のエクスパンダ４１０，５１０，６１０に対して転送されることで通知される。
【００５３】
一方、確立されたコネクション数は、次のような手順で取得される。１段目のエクスパンダ３１０は、ＩＯＣ２０６からのコネクション確立要求や、コネクション切断要求を監視して、確立されたコネクションの増減を検出する。そして、エクスパンダ３１０は、コネクションの増減を示す増減通知を隣接するエクスパンダ４１０に送信する。コネクションの増減通知は、エクスパンダ４１０，５１０，６１０に順に転送される。
【００５４】
本実施の形態では、コネクションの増加、減少をそれぞれ他のエクスパンダにブロードキャストするための「ＢＲＯＡＤＣＡＳＴ（＋）」「ＢＲＯＡＤＣＡＳＴ（−）」というプリミティブが用意される。そして、ＢＲＯＡＤＣＡＳＴ（＋）プリミティブやＢＲＯＡＤＣＡＳＴ（−）プリミティブが、エクスパンダ３１０からエクスパンダ４１０，５１０，６１０に順に転送される。
【００５５】
次に、ＤＥ３００，４００，５００，６００が起動した後にエクスパンダ３１０，４１０，５１０，６１０で実行される処理について説明する。
図８は、１段目のエクスパンダにおける省電力制御処理の一例を示すフローチャートである。すなわち、図８の処理は、１段目のエクスパンダ３１０が実行する。以下、図８に示す処理をステップ番号に沿って説明する。
【００５６】
（Ｓ１１）エクスパンダ３１０の制御部３１２は、ＩＯＣ２０６とＨＤＤとの間のコネクションの確立または切断を検出する。
ＩＯＣ２０６はＨＤＤと通信する際、まず、コネクション確立を要求するためのＯＰＥＮメッセージをＨＤＤに送信する。ＯＰＥＮメッセージを受信したＨＤＤから受け入れを示すＯＰＥＮ＿ＡＣＣＥＰＴメッセージが返送されると、ＩＯＣ２０６とＨＤＤとのコネクションが確立する。したがって、制御部３１２は、例えば、ＩＯＣ２０６からのＯＰＥＮメッセージを監視し、ＯＰＥＮメッセージが送信され、その応答としてのＯＰＥＮ＿ＡＣＣＥＰＴメッセージが返送された場合に、新たなコネクションが確立したことを検出する。
【００５７】
また、ＩＯＣ２０６は、コネクションを切断する際、コネクション切断を要求するためのＤＯＮＥメッセージをＨＤＤに送信する。したがって、制御部３１２は、例えば、ＩＯＣ２０６からのＤＯＮＥメッセージを監視し、ＤＯＮＥメッセージを受信した場合に、コネクションが切断されたことを検出する。あるいは、制御部３１２は、ＤＯＮＥメッセージの送信後にＨＤＤからＤＯＮＥメッセージまたはＣＬＯＳＥメッセージが返送された場合に、コネクションが切断されたことを検出してもよい。
【００５８】
コネクションの確立を検出した場合、制御部３１２は、記憶部３１１に記憶された管理テーブル８００のコネクション数を１つ加算する。一方、コネクションの切断を検出した場合、制御部３１２は、記憶部３１１に記憶された管理テーブル８００のコネクション数を１つ減算する。
【００５９】
（Ｓ１２）制御部３１２は、コネクション数が増加または減少したことを示す増減通知を、隣接するエクスパンダ４１０に送信する。具体的には、制御部３１２は、コネクション数の増加を検出した場合、ＢＲＯＡＤＣＡＳＴ（＋）プリミティブをエクスパンダ４１０に送信する。また、制御部３１２は、コネクション数の減少を検出した場合、ＢＲＯＡＤＣＡＳＴ（−）プリミティブをエクスパンダ４１０に送信する。
【００６０】
（Ｓ１３）制御部３１２は、記憶部３１１に記憶された管理テーブル８００を参照し、コネクション数が最大経路数と同じであるか否かを判定する。コネクション数が最大経路数と同じ場合、制御部３１２は、処理をステップＳ１４に進める。コネクション数が最大経路数と異なる場合、制御部３１２は、処理をステップＳ１５に進める。
【００６１】
（Ｓ１４）制御部３１２は、ＤＥ３００内のＨＤＤ３２１〜３２４のうち、コネクションが確立されているＨＤＤ以外のすべてのＨＤＤをスリープモードに遷移させる。そして、制御部３１２は、処理を終了する。
【００６２】
（Ｓ１５）制御部３１２は、ＤＥ３００内にスリープモードのＨＤＤが存在するか否かを判定する。すなわち、制御部３１２は、ステップＳ１４を実行済みであるか否かを判定する。スリープモードのＨＤＤが存在する場合、制御部３１２は、処理をステップＳ１６に進める。スリープモードのＨＤＤが存在しない場合、制御部３１２は、処理を終了する。
【００６３】
（Ｓ１６）制御部３１２は、スリープモードのＨＤＤに対して、スリープモードを解除させる。そして、制御部３１２は、処理を終了する。
図９は、２段目以降のエクスパンダにおける省電力制御処理の一例を示すフローチャートである。図８の処理は、エクスパンダ４１０、５１０，６１０がそれぞれ実行する。以下、図９に示す処理をステップ番号に沿って説明する。
【００６４】
（Ｓ２１）エクスパンダの制御部は、前段のエクスパンダからコネクション数の増減通知を受信する。すなわち、制御部は、ＢＲＯＡＤＣＡＳＴ（＋）プリミティブまたはＢＲＯＡＤＣＡＳＴ（−）プリミティブを受信する。
【００６５】
ＢＲＯＡＤＣＡＳＴ（＋）プリミティブを受信した場合、制御部は、同じエクスパンダ内の記憶部に記憶された管理テーブル８００のコネクション数を１つ加算する。一方、ＢＲＯＡＤＣＡＳＴ（−）プリミティブを受信した場合、制御部は、管理テーブル８００のコネクション数を１つ減算する。
【００６６】
（Ｓ２２）制御部は、後段のエクスパンダが存在するか否かを判定する。例えば、後段のエクスパンダとは、図９の処理をエクスパンダ４１０の制御部が実行する場合、エクスパンダ５１０である。
【００６７】
後段のエクスパンダが存在する場合、制御部は、処理をステップＳ２３に進める。後段のエクスパンダが存在しない場合、制御部は、処理をステップＳ２４に進める。
（Ｓ２３）制御部は、ステップＳ２１で受信した増減通知を後段のエクスパンダに転送する。
【００６８】
（Ｓ２４）制御部は、同じエクスパンダ内の記憶部に記憶された管理テーブル８００を参照し、コネクション数が最大経路数と同じであるか否かを判定する。コネクション数が最大経路数と同じ場合、制御部は、処理をステップＳ２５に進める。コネクション数が最大経路数より小さい場合、制御部は、処理をステップＳ２６に進める。
【００６９】
（Ｓ２５）制御部は、同じエクスパンダに接続されたＨＤＤのうち、コネクションが確立されているＨＤＤ以外のすべてのＨＤＤをスリープモードに遷移させる。そして、制御部は、処理を終了する。
【００７０】
（Ｓ２６）制御部は、同じエクスパンダに接続されたＨＤＤの中にスリープモードのＨＤＤが存在するか否かを判定する。スリープモードのＨＤＤが存在する場合、制御部は、処理をステップＳ２７に進める。スリープモードのＨＤＤが存在しない場合、制御部は、処理を終了する。
【００７１】
（Ｓ２７）制御部は、同じエクスパンダに接続されたＨＤＤのうち、スリープモードのＨＤＤに対して、スリープモードを解除させる。そして、制御部は、処理を終了する。
次に、図１０〜図１２を用いて、第２の実施の形態における省電力制御処理の具体例について説明する。なお、図１０〜図１２では、コネクションが確立されている通信経路を実線で示し、コネクションが確立されていない通信経路を破線で示す。また、スリープモードのＨＤＤに対してハッチングを施して示す。
【００７２】
図１０は、第２の実施の形態における省電力制御処理の具体例（その１）である。図１０では例として、ＩＯＣ２０６と、ＨＤＤ３２１，３２２，４２４との間でコネクションが確立されている。この場合、エクスパンダ３１０，４１０，５１０，６１０に保持されている管理テーブル８００には、コネクション数「３」が登録されている。
【００７３】
このとき、エクスパンダ３１０，４１０，５１０，６１０は、コネクション数「３」が最大経路数「４」より小さいと判定する。このように、確立されているコネクション数が最大経路数より小さい場合には、現在コネクションが確立されていないいずれかのＨＤＤに対して、新たにコネクション確立のためのＩＯＣ２０６からのアクセスが発生する可能性がある。このため、エクスパンダ３１０，４１０，５１０，６１０は、自装置に接続されているどのＨＤＤもスリープモードに遷移させない。すなわち、ＨＤＤ３２１〜３２４，４２１〜４２４，５２１〜５２４，６２１〜６２４のすべてが、スリープモードでない通常の動作モード（「アクティブモード」とする）となるように制御される。これにより、コネクションが確立されていないどのＨＤＤに対してＩＯＣ２０６からアクセスされたとしても、そのＨＤＤは動作モードを変更することなく、ＩＯＣ２０６に対して短時間で応答できる。
【００７４】
図１１は、第２の実施の形態における省電力制御処理の具体例（その２）である。図１１では、図１０の状態から、ＩＯＣ２０６とＨＤＤ５２３との間で新たにコネクションが確立されたとする。
【００７５】
この場合、１段目のエクスパンダ３１０は、ＩＯＣ２０６とＨＤＤ５２３との間でコネクションが確立されたことを検出して、コネクション数が増加したことをエクスパンダ４１０に通知する。この通知は、エクスパンダ４１０，５１０，６１０の順に転送される。その結果、エクスパンダ３１０，４１０，５１０，６１０に保持されている管理テーブル８００では、コネクション数が「３」から「４」に更新される。
【００７６】
これにより、エクスパンダ３１０，４１０，５１０，６１０は、コネクション数「４」が最大経路数「４」と一致したと判定する。このように、確立されているコネクション数が最大経路数と一致した場合、ＩＯＣ２０６は、これ以上他のＨＤＤとのコネクションを確立することができない。このため、現在コネクションが確立されていないどのＨＤＤに対しても、ＩＯＣ２０６からアクセスされることはない。したがって、これらのＨＤＤをスリープモードに遷移させたとしても、これらのＨＤＤに対してＩＯＣ２０６からアクセスされ、その応答がスリープモードを解除する分だけ遅くなる、という現象は発生しない。
【００７７】
このような理由から、エクスパンダ３１０は、ＤＥ３００内のＨＤＤ３２１〜３２４のうち、コネクションが確立されていないＨＤＤ３２３，３２４をスリープモードに遷移させる。同様に、エクスパンダ４１０は、ＤＥ４００内のＨＤＤ４２１〜４２４のうち、コネクションが確立されていないＨＤＤ４２１〜４２３をスリープモードに遷移させる。エクスパンダ５１０は、ＤＥ５００内のＨＤＤ５２１〜５２４のうち、コネクションが確立されていないＨＤＤ５２１，５２２，５２４をスリープモードに遷移させる。エクスパンダ６１０は、ＤＥ６００内のコネクションが確立されていないＨＤＤ６２１〜６２４を、スリープモードに遷移させる。
【００７８】
図１２は、第２の実施の形態における省電力制御処理の具体例（その３）である。図１２では、図１１の状態から、ＩＯＣ２０６とＨＤＤ４２４との間のコネクションが切断されたとする。
【００７９】
この場合、１段目のエクスパンダ３１０は、ＩＯＣ２０６とＨＤＤ４２４との間のコネクションが切断されたことを検出して、コネクション数が減少したことをエクスパンダ４１０に通知する。この通知は、エクスパンダ４１０，５１０，６１０の順に転送される。その結果、エクスパンダ３１０，４１０，５１０，６１０に保持されている管理テーブル８００では、コネクション数が「４」から「３」に更新される。
【００８０】
これにより、エクスパンダ３１０，４１０，５１０，６１０は、コネクション数「３」が最大経路数「４」より小さいと判定する。この状態では、図１１の状態と同様に、現在コネクションが確立されていないいずれかのＨＤＤに対して、新たにコネクション確立のためのＩＯＣ２０６からのアクセスが発生する可能性がある。このため、エクスパンダ３１０，４１０，５１０，６１０は、自装置に接続されているＨＤＤのうち、スリープモードのＨＤＤをアクティブモードに遷移させる。具体的には、エクスパンダ３１０は、ＨＤＤ３２３，３２４をアクティブモードに遷移させる。エクスパンダ４１０は、ＨＤＤ４２１〜４２３をアクティブモードに遷移させる。エクスパンダ５１０は、ＨＤＤ５２１，５２２，５２４をアクティブモードに遷移させる。エクスパンダ６１０は、ＨＤＤ６２１〜６２４をアクティブモードに遷移させる。
【００８１】
以上の第２の実施の形態によれば、確立されているコネクション数と最大経路数との比較により、各ＨＤＤは、ＩＯＣ２０６からアクセスされないことが保証される期間にのみスリープモードとなるように制御される。これにより、スリープモードのＨＤＤに対してアクセスされ、そのＨＤＤがアクティブモードに遷移してから応答するために応答時間が長くなる、という事態が発生しなくなる。したがって、ストレージシステム全体として、消費電力を低減しつつ、アクセス性能を向上させることができる。
【００８２】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第３の実施の形態のストレージシステムは、前述の第２の実施の形態における省電力制御処理の一部を変形したものである。そのため、第２の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。なお、第３の実施の形態のストレージシステムの構成は、第２の実施の形態のストレージシステムと同じである。
【００８３】
図１３は、第３の実施の形態における省電力制御処理の具体例（その１）である。図１３では、図１１の状態から、ＩＯＣ２０６とＨＤＤ４２４との間のコネクションが切断されたとする。
【００８４】
第２の実施の形態ではこの場合、図１２に示したように、すべてのＨＤＤがアクティブモードになるように制御された。これに対して、第３の実施の形態では、１段目のエクスパンダ３１０のみ第２の実施の形態と同様に動作するものの、２段目以降のエクスパンダ４１０，５１０，６１０は、接続されているスリープモードのＨＤＤを、アクティブモードに遷移させない。これにより、図１３に示すように、エクスパンダ３１０に接続されているＨＤＤ３２３，３２４はアクティブモードに遷移する。しかし、エクスパンダ３１０に接続されたＨＤＤ３２３，３２４と、エクスパンダ４１０に接続されたＨＤＤ４２１〜４２３と、エクスパンダ５１０に接続されたＨＤＤ５２１，５２２，５２４と、エクスパンダ６１０に接続されたＨＤＤ６２１〜６２４は、スリープモードのまま維持される。
【００８５】
図１４は、第３の実施の形態における省電力制御処理の具体例（その２）である。図１４では、図１３の状態から、ＤＥ４００内のＨＤＤ４２１に対してコネクション確立を要求するためのＯＰＥＮメッセージが、ＩＯＣ２０６から送信されたものとする。
【００８６】
第３の実施の形態のエクスパンダ３１０，４１０，５１０は、ＩＯＣ２０６から送信されたＯＰＥＮメッセージを受信すると、ＯＰＥＮメッセージを受信したことを通知するための受信通知を後段のエクスパンダに送信する。本実施の形態では、例えば、「ＯＰＥＮ＿ＲＣＶ」というプリミティブによってＯＰＥＮメッセージの受信が通知される。２段目以降のエクスパンダ４１０，５１０，６１０は、ＯＰＥＮメッセージの受信通知を受信すると、自装置に接続されているＨＤＤのうち、スリープモードのＨＤＤをアクティブモードに遷移させる。
【００８７】
図１４の例では、エクスパンダ３１０は、ＩＯＣ２０６からＨＤＤ４２１宛てのＯＰＥＮメッセージを受信すると、エクスパンダ４１０に対してＯＰＥＮメッセージの受信通知を送信する。エクスパンダ４１０は、ＯＰＥＮメッセージの受信通知を受信すると、ＨＤＤ４２１〜４２３をアクティブモードに遷移させる。
【００８８】
ここで、エクスパンダ４１０は、受信したＯＰＥＮメッセージの宛先を解読し、その宛先に対応するポートに対して受信したＯＰＥＮメッセージを転送するまでに、ある程度の時間がかかる。これに対して本実施の形態では、エクスパンダ４１０は、ＯＰＥＮメッセージを受信すると、そのＯＰＥＮメッセージを宛先に対応するポートに転送する前に、後段のエクスパンダ４１０に対してＯＰＥＮメッセージの受信通知を送信する。これにより、エクスパンダ４１０は、ＨＤＤ４２１宛てのＯＰＥＮメッセージをエクスパンダ３１０から受信するまでに、ＨＤＤ４２１をアクティブモードに遷移させることができる。
【００８９】
このように、エクスパンダは、確立されているコネクション数が最大経路数より小さくなった場合ではなく、その後に前段のエクスパンダがＯＰＥＮメッセージを受信したことを検知した場合に、接続されているスリープモードのＨＤＤをアクティブモードに遷移させる。これにより、第２の実施の形態と比較して、ＨＤＤがスリープモードになっている期間が長くなる。したがって、第２の実施の形態と同様のアクセス性能を実現しながらも、第２の実施の形態よりストレージシステムの消費電力を低減できる。
【００９０】
なお、図１４の例ではさらに、エクスパンダ４１０は、ＯＰＥＮメッセージをエクスパンダ３１０から受信すると、ＯＰＥＮメッセージの受信通知を後段のエクスパンダ５１０に送信する。エクスパンダ５１０は、ＯＰＥＮメッセージの受信通知を受信すると、図１４に示すようにＨＤＤ５２１，５２２，５２４をアクティブモードに遷移させる。しかし、エクスパンダ４１０からエクスパンダ５１０にはＯＰＥＮメッセージは送信されないので、エクスパンダ５１０はＯＰＥＮメッセージの受信通知を後段のエクスパンダ６１０に送信しない。このため、エクスパンダ６１０に接続されたＨＤＤ６２１〜６２４はスリープモードのまま維持される。このように、第３の実施の形態では、第２の実施の形態と比較して、後段のエクスパンダほど、接続されているＨＤＤがスリープモードとなる期間が長くなる可能性が高まる。
【００９１】
以下、第３の実施の形態のストレージシステムの処理について、フローチャートを用いて説明する。
図１５は、ＯＰＥＮメッセージ受信処理の一例を示すフローチャートである。図１５の処理は、エクスパンダ３１０，４１０，５１０，６１０がそれぞれ実行する。以下、図１５に示す処理をステップ番号に沿って説明する。
【００９２】
（Ｓ３１）エクスパンダの制御部は、ＯＰＥＮメッセージを受信する。制御部は、ステップＳ３２の処理とステップＳ３３の処理とを並列に実行する。
（Ｓ３２）制御部は、ＯＰＥＮメッセージの転送制御処理を実行する。例えば、制御部は、受信したＯＰＥＮメッセージから宛先のＨＤＤを解読し、ＯＰＥＮメッセージを転送するためのポートを特定する。制御部は、特定したポートにＯＰＥＮメッセージを転送するようにスイッチを制御する。これにより、ＯＰＥＮメッセージが宛先に対応する通信経路を介して転送される。
【００９３】
（Ｓ３３）制御部は、後段のエクスパンダが存在するか否かを判定する。後段のエクスパンダが存在する場合、制御部は、処理をステップＳ３４に進める。後段のエクスパンダが存在しない場合、制御部は、処理を終了する。
【００９４】
（Ｓ３４）制御部３１２は、ＯＰＥＮ＿ＲＣＶプリミティブを用いて、ＯＰＥＮメッセージの受信通知を後段のエクスパンダに送信する。そして、制御部は、処理を終了する。ステップＳ３４での受信通知の送信は、ステップＳ３２の処理が完了する前に実行される。
【００９５】
また、第３の実施の形態では、１段目のエクスパンダ３１０は、図１５の処理とともに、図８の処理も実行する。一方、２段目以降のエクスパンダ４１０，５１０，６１０は、図９に示した処理の代わりに、次の図１６、図１７の処理を実行する。
【００９６】
図１６は、スリープモード解除制御処理の一例を示すフローチャートである。図１６の処理は、エクスパンダ４１０，５１０，６１０が実行する。以下、図１６に示す処理をステップ番号に沿って説明する。
【００９７】
（Ｓ４１）エクスパンダの制御部は、前段のエクスパンダから、ＯＰＥＮメッセージの受信通知を受信する。
（Ｓ４２）制御部は、同じＤＥ内にスリープモードのＨＤＤが存在するか否かを判定する。スリープモードのＨＤＤが存在する場合、制御部は、処理をステップＳ４３に進める。スリープモードのＨＤＤが存在しない場合、制御部は、処理を終了する。
【００９８】
（Ｓ４３）制御部は、同じエクスパンダに接続されたＨＤＤのうちスリープモードのＨＤＤに対して、スリープモードを解除させる。
図１７は、スリープモード遷移制御処理の一例を示すフローチャートである。図１７の処理は、エクスパンダ４１０，５１０，６１０が実行する。以下、図１７に示す処理をステップ番号に沿って説明する。
【００９９】
（Ｓ５１）エクスパンダの制御部は、前段のエクスパンダからコネクション数の増減通知を受信する。すなわち、制御部は、ＢＲＯＡＤＣＡＳＴ（＋）プリミティブまたはＢＲＯＡＤＣＡＳＴ（−）プリミティブを受信する。
【０１００】
ＢＲＯＡＤＣＡＳＴ（＋）プリミティブを受信した場合、制御部は、同じエクスパンダ内の記憶部に記憶された管理テーブル８００のコネクション数を１つ加算する。一方、ＢＲＯＡＤＣＡＳＴ（−）プリミティブを受信した場合、制御部は、管理テーブル８００のコネクション数を１つ減算する。
【０１０１】
（Ｓ５２）制御部は、後段のエクスパンダが存在するか否かを判定する。後段のエクスパンダが存在する場合、制御部は、処理をステップＳ５３に進める。後段のエクスパンダが存在しない場合、制御部は、処理をステップＳ５４に進める。
【０１０２】
（Ｓ５３）制御部は、ステップＳ５１で受信した増減通知を後段のエクスパンダに転送する。
（Ｓ５４）制御部は、ステップＳ５１で受信した増減通知がコネクション数の増加を示していたか否かを判定する。増減通知がコネクション数の増加を示していた場合、制御部は、処理をステップＳ５５に進める。増減通知がコネクション数の減少を示していた場合、制御部は、処理を終了する。
【０１０３】
（Ｓ５５）制御部は、同じエクスパンダ内の記憶部に記憶された管理テーブル８００を参照し、コネクション数が最大経路数と同じであるか否かを判定する。コネクション数が最大経路数と同じ場合、制御部は、処理をステップＳ５６に進める。コネクション数が最大経路数より小さい場合、制御部は、処理を終了する。
【０１０４】
（Ｓ５６）制御部は、同じエクスパンダに接続されたＨＤＤのうち、コネクションが確立されているＨＤＤ以外のすべてのＨＤＤをスリープモードに遷移させる。そして、制御部は、処理を終了する。
【０１０５】
なお、第１の実施の形態の情報処理は、例えば、接続制御装置２２に搭載されるプロセッサに、プログラムを実行させることで実現できる。第２，第３の実施の形態の情報処理は、例えば、エクスパンダ３１０，４１０，５１０，６１０の制御部にプログラムを実行させることで実現できる。
【０１０６】
これらのプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１０９】
また、以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数の第１の記憶装置に対するアクセスを制御する制御装置と、
前記複数の第１の記憶装置のうち複数の第２の記憶装置と、２以上の第１の数の通信経路を介して前記制御装置に接続された接続制御装置と、を備えるストレージ装置と、
を有し、
前記接続制御装置は、
前記制御装置と前記複数の第１の記憶装置との間の通信を中継するスイッチ回路と、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、前記第２の数が前記第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する制御回路と、
を有するストレージシステム。
【０１１０】
（付記２）  前記複数の第１の記憶装置のうち複数の第３の記憶装置と、前記接続制御装置を介して前記制御装置に接続する他の接続制御装置と、を備える他のストレージ装置をさらに有し、
前記他の接続制御装置は、
前記制御装置と、前記複数の第１の記憶装置のうち前記複数の第２の記憶装置以外の第１の記憶装置との間の通信を中継する他のスイッチ回路と、
前記第２の数を判定し、前記第２の数が前記第１の数と一致する期間において、前記複数の第３の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第３の記憶装置が省電力状態になるように制御する他の制御回路と、
を有する付記１記載のストレージシステム。
【０１１１】
（付記３）  前記制御回路は、前記制御装置から送信されるコネクション確立要求の監視結果に基づいて前記第２の数を判定し、前記第２の数に基づく通知情報を前記他の制御回路に送信し、
前記他の制御回路は、前記通知情報に基づいて前記第２の数を判定する、
付記２記載のストレージシステム。
【０１１２】
（付記４）  前記制御装置は、前記第２の数が、前記第１の数と一致する状態から前記第１の数より小さくなった場合、前記複数の第２の記憶装置のうち省電力状態の第２の記憶装置について、省電力状態を解除する、
付記１乃至３のいずれか１つに記載のストレージシステム。
【０１１３】
（付記５）  前記制御装置は、前記複数の第１の記憶装置のいずれかに対するコネクション確立要求を前記制御装置から受信すると、前記コネクション確立要求の転送先が決定される前に前記コネクション確立要求を受信したことを示す受信通知を前記他の制御回路に送信し、
前記他の制御回路は、前記受信通知を受信した場合、前記複数の第３の記憶装置のうち省電力状態の第３の記憶装置について、省電力状態を解除する、
付記２または３記載のストレージシステム。
【０１１４】
（付記６）  制御装置と、前記制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の通信を中継するスイッチ回路と、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、前記第２の数が、前記制御装置が前記複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する制御回路と、
を有する接続制御装置。
【０１１５】
（付記７）  前記スイッチ回路が、前記第１の数の前記通信経路を介して前記制御装置に直接接続されている場合、前記制御回路は、前記制御装置から送信されるコネクション確立要求の監視結果に基づいて前記第２の数を判定する、
付記６記載の接続制御装置。
【０１１６】
（付記８）  前記スイッチ回路が、前記制御装置と前記複数の第１の記憶装置のうち複数の第３の記憶装置との間の通信を中継する他のスイッチ回路を介して、前記制御装置に接続されている場合、前記制御回路は、前記他のスイッチ回路から送信される通知情報に基づいて前記第２の数を判定する、
付記６記載の接続制御装置。
【０１１７】
（付記９）  前記制御回路は、前記第２の数が、前記第１の数と一致する状態から前記第１の数より小さくなった場合、前記複数の第２の記憶装置のうち省電力状態の第２の記憶装置について、省電力状態を解除する、
付記６乃至８のいずれか１つに記載の接続制御装置。
【０１１８】
（付記１０）  前記スイッチ回路が、前記制御装置と前記複数の第１の記憶装置のうち複数の第３の記憶装置との間の通信を中継する他のスイッチ回路を介して、前記制御装置に接続されている場合、前記制御回路は、前記複数の第１の記憶装置のいずれかに対するコネクション確立要求を受信したことを示す受信通知を、前記他のスイッチ回路から受信したとき、前記複数の第２の記憶装置のうち省電力状態の第２の記憶装置について、省電力状態を解除する、
付記６記載の接続制御装置。
【０１１９】
（付記１１）  コンピュータに、
制御装置と、前記制御装置からアクセスされる複数の第１の記憶装置のうち少なくとも複数の第２の記憶装置との間の接続を制御し、
前記制御装置が前記複数の第１の記憶装置のうちいくつの第１の記憶装置との間でコネクションを確立しているかを示す第２の数を判定し、
前記第２の数が、前記制御装置が前記複数の第１の記憶装置にアクセスするために使用する通信経路の数を示す第１の数と一致する期間において、前記複数の第２の記憶装置のうち、前記制御装置との間でコネクションが確立されていないすべての第２の記憶装置が省電力状態になるように制御する、
処理を実行させるストレージ制御プログラム。
【符号の説明】
【０１２０】
１０  制御装置
１１，１２  通信経路
２０，３０  ストレージ装置
２１ａ，２１ｂ，３１ａ，３１ｂ  記憶装置
２２  接続制御装置
２２ａ，３２  スイッチ回路
２２ｂ  制御回路
Ｓ１，Ｓ２  ステップ
【図１】
2019003462.tif 000003
【図２】
2019003462.tif 000004
【図３】
2019003462.tif 000005
【図４】
2019003462.tif 000006
【図５】
2019003462.tif 000007
【図６】
2019003462.tif 000008
【図７】
2019003462.tif 000009
【図８】
2019003462.tif 000010
【図９】
2019003462.tif 000011
【図１０】
2019003462.tif 000012
【図１１】
2019003462.tif 000013
【図１２】
2019003462.tif 000014
【図１３】
2019003462.tif 000015
【図１４】
2019003462.tif 000016
【図１５】
2019003462.tif 000017
【図１６】
2019003462.tif 000018
【図１７】
2019003462.tif 000019