(57)【要約】【課題】より消費電力を低減すること。【解決手段】省電力モードに設定可能な記憶装置３１の動作モードを制御し、記憶装置３１に格納されたデータのうち該記憶装置３１の監視のためのアクセスを要求された際に応答するデータａを該記憶装置３１とは異なる記憶領域に複製し、省電力モードに設定した記憶装置３１に対する監視のためのアクセスが要求された場合にデータａを複製した記憶領域をアクセス先にする制御部２１を有するストレージ制御装置２０が提供される。【選択図】図１
2016212511.tif 000002
【特許請求の範囲】
【請求項１】
省電力モードに設定可能な記憶装置の動作モードを制御し、
前記記憶装置に格納されたデータのうち該記憶装置の監視のためのアクセスを要求された際に応答するデータを該記憶装置とは異なる記憶領域に複製し、
前記省電力モードに設定した前記記憶装置に対する前記監視のためのアクセスが要求された場合に前記データを複製した前記記憶領域をアクセス先にする制御部を有する
ストレージ制御装置。
【請求項２】
前記制御部は、複数の前記記憶装置を管理し、前記データを前記記憶領域に複製する際、該データを有する前記記憶装置が前記省電力モードに設定されている間、前記省電力モードが設定されない他の前記記憶装置を該記憶領域として利用する
請求項１に記載のストレージ制御装置。
【請求項３】
アクセスを要求する上位装置毎に、該上位装置による特定アドレスへのアクセス間隔及び該特定アドレスへのアクセスで要求するデータのサイズを記憶する記憶部を有し、
前記制御部は、前記記憶部が記憶する前記アクセス間隔及び前記サイズに基づいて、要求を受けたアクセスが前記監視のためのアクセスか否かを判定する
請求項１又は２に記載のストレージ制御装置。
【請求項４】
前記制御部は、前記アクセス間隔が一定であり、設定された閾値よりも前記データのサイズが小さい場合に前記監視のためのアクセスであると判定する
請求項３に記載のストレージ制御装置。
【請求項５】
コンピュータが、
省電力モードに設定可能な記憶装置の動作モードを制御し、
前記記憶装置に格納されたデータのうち該記憶装置の監視のためのアクセスを要求された際に応答するデータを該記憶装置とは異なる記憶領域に複製し、
前記省電力モードに設定した前記記憶装置に対する前記監視のためのアクセスが要求された場合に前記データを複製した前記記憶領域をアクセス先にする
ストレージ制御方法。
【請求項６】
コンピュータに、
省電力モードに設定可能な記憶装置の動作モードを制御し、
前記記憶装置に格納されたデータのうち該記憶装置の監視のためのアクセスを要求された際に応答するデータを該記憶装置とは異なる記憶領域に複製し、
前記省電力モードに設定した前記記憶装置に対する前記監視のためのアクセスが要求された場合に前記データを複製した前記記憶領域をアクセス先にする
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御方法、及びプログラムに関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）技術などを用いて複数の記憶装置（ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）など）を冗長化し、高速なデータアクセス及び大容量化を実現したディスクアレイが広く利用されている。他方、ディスクアレイの容量を増やすために記憶装置の数が増えるとディスクアレイが消費する電力量が大きくなるため、ランニングコストや環境負荷を低減する見地から、ディスクアレイの省電力化に関する研究開発が進められている。
【０００３】
ディスクアレイの省電力化技術としては、例えば、ＭＡＩＤ（Massive Array of Idle Disks）技術がある。ＭＡＩＤ技術は、ディスクアレイの中で、データアクセスが発生していない記憶装置を省電力モードに遷移（例えば、ディスク回転数の低下・停止、ディスクヘッドの退避、電源オフなど）させて消費電力を削減する技術である。省電力モードの状態にある記憶装置に対してデータアクセスが発生した場合、記憶装置を制御するコントローラは、データアクセスを受けた記憶装置を通常の動作モードへと復帰させる。
【０００４】
記憶装置を省電力モードの状態に維持する時間が長ければ、その分だけ電力消費を抑制する効果が大きくなる。そのため、省電力モードの状態にある記憶装置に対するデータアクセスが発生した際、その記憶装置を通常の動作モードへと復帰させずにデータアクセスを正常に処理できれば更なる省電力化に寄与する。
【０００５】
なお、ＨＤＤを有するディスクアレイにＳＳＤを設け、ディスクの回転が停止しているＨＤＤに対して、ホストコンピュータから書き込み要求を受けた場合にデータをＳＳＤに書き込む技術が提案されている。このディスクアレイは、ＳＳＤへのデータの書き込み状況が一定の条件を満たしたら、ＨＤＤのディスクを回転させてＳＳＤのデータをＨＤＤに転送する。また、ＲＡＩＤを構成する複数のＨＤＤのうち停止中のＨＤＤに対して書き込みが要求された際、他のＨＤＤにデータを書き込む技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−２０６００９号公報
【特許文献２】特開２０１１−２３８０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
省電力モードの設定スケジュールは、例えば、ディスクアレイを有するストレージシステムの用途や運用方針などに応じて決められる。例えば、バックアップに用いるストレージシステムの場合、バックアップオペレーションの実施時間帯に応じて、実施対象外の記憶装置が省電力モードとなるように設定スケジュールを決めることができる。このようなシステムでは、予め決めた設定スケジュールに基づいて動作モードを制御することによって効率的に消費電力を抑制できる。
【０００８】
但し、予定していないデータアクセスが生じると、データアクセスの対象となる記憶装置を通常の動作モードへと復帰させる処理が発生する。そのため、このような復帰処理の発生機会を減らすことができれば、より効率的に消費電力を抑制することができる。予定していないデータアクセスの中には、例えば、上位装置のＯＳ（Operating System）や特定のアプリケーションプログラムなどがデバイス診断などを目的として行うものがある。
【０００９】
このような監視を目的とするデータアクセスは記憶装置に対するデータの書き込みや読み出しを主目的とするものではないため、省電力モードの状態にある記憶装置を直ちに通常の動作モードへ復帰させてまで実行しなくてもよいことが多い。そのため、監視目的のデータアクセスに対し、省電力モードの状態にある記憶装置を通常の動作モードへ復帰させずに正しく応答できるようにすれば、より効率的に消費電力を抑制することが可能になる。
【００１０】
本発明の目的は、より消費電力を低減することが可能な、ストレージ制御装置、ストレージ制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本開示の１つの側面によれば、省電力モードに設定可能な記憶装置の動作モードを制御し、記憶装置に格納されたデータのうち該記憶装置の監視のためのアクセスを要求された際に応答するデータを該記憶装置とは異なる記憶領域に複製し、省電力モードに設定した記憶装置に対する監視のためのアクセスが要求された場合にデータを複製した記憶領域をアクセス先にする制御部を有するストレージ制御装置が提供される。
【発明の効果】
【００１２】
本発明によれば、より消費電力を低減することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係るストレージシステムの一例を示した図である。
【図２】第２実施形態に係るストレージシステムの一例を示した図である。
【図３】第２実施形態に係るコントローラが有する機能の一例を示したブロック図である。
【図４】第２実施形態に係るポーリングＩ／Ｏ管理テーブルの一例を示した図である。
【図５】第２実施形態に係るポーリングＩ／Ｏ管理テーブルの更新方法を示した図である。
【図６】第２実施形態に係るコントローラが実行するログイン受信時の処理フローを示したフロー図である。
【図７】第２実施形態に係るコントローラが実行するＩ／Ｏ受信時の処理フローを示した第１のフロー図である。
【図８】第２実施形態に係るコントローラが実行するＩ／Ｏ受信時の処理フローを示した第２のフロー図である。
【図９】第２実施形態に係るコントローラが実行するポーリングＩ／Ｏ判断時の処理フローを示した第１のフロー図である。
【図１０】第２実施形態に係るコントローラが実行するポーリングＩ／Ｏ判断時の処理フローを示した第２のフロー図である。
【図１１】第２実施形態に係るコントローラが実行するＩ／Ｏアクセス監視時の処理フローを示した第１のフロー図である。
【図１２】第２実施形態に係るコントローラが実行するＩ／Ｏアクセス監視時の処理フローを示した第２のフロー図である。
【図１３】第２実施形態に係るコントローラが実行するモータ制御処理（オフ→オン）のフローを示した第１のフロー図である。
【図１４】第２実施形態に係るコントローラが実行するモータ制御処理（オフ→オン）のフローを示した第２のフロー図である。
【図１５】第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第１のフロー図である。
【図１６】第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第２のフロー図である。
【図１７】第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第３のフロー図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１５】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。
第１実施形態は、ストレージシステムの省電力化技術に関し、監視目的のデータアクセスに対して省電力モードの状態にある記憶装置を通常の動作モードへ復帰させずに正しく応答できるようにする方法を提供する。第１実施形態によれば、より効率的に消費電力を抑制することが可能になる。なお、図１は、第１実施形態に係るストレージシステムの一例を示した図である。図１に例示したストレージシステム５は、第１実施形態に係るストレージシステムの一例である。
【００１６】
図１に示すように、ストレージシステム５は、上位装置１１、１２と、ストレージ制御装置２０と、ストレージ装置３０とを含む。上位装置１１、１２は、例えば、サーバ装置などのコンピュータである。ストレージ制御装置２０は、ストレージ装置３０に対するデータアクセス及びストレージ装置３０の動作を制御するコンピュータである。ストレージ装置３０は、例えば、データを記憶するディスクアレイである。ストレージ装置３０は、記憶装置３１及び代替装置３２を有する。
【００１７】
記憶装置３１は、例えば、複数のＨＤＤをＲＡＩＤ技術により冗長化したＲＡＩＤ装置である。代替装置３２は、例えば、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。また、代替装置３２は、記憶装置３１と同様に複数のＨＤＤを冗長化したＲＡＩＤ装置であってもよい。
【００１８】
上位装置１１、１２は、ストレージ装置３０に対するデータの書き込みや読み出しをストレージ制御装置２０に要求する。ストレージ制御装置２０は、上位装置１１、１２の要求に応じてストレージ装置３０にアクセスし、上位装置１１、１２の要求に対して応答する。
【００１９】
例えば、上位装置１１から書き込み要求を受けた場合、ストレージ制御装置２０は、要求されたデータをストレージ装置３０に書き込み、書き込み完了を上位装置１１に通知する。上位装置１１から読み出し要求を受けた場合、ストレージ制御装置２０は、要求されたデータをストレージ装置３０から読み出して上位装置１１に転送する。
【００２０】
ストレージ制御装置２０は、制御部２１及び記憶部２２を有する。上記のような書き込み要求や読み出し要求に対する応答は、制御部２１が実行する。
なお、制御部２１は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、制御部２１は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。制御部２１は、例えば、記憶部２２又は他のメモリに記憶されたプログラムを実行する。記憶部２２は、ＲＡＭなどの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。
【００２１】
また、制御部２１は、省電力モードに設定可能な記憶装置３１の動作モードを制御する。省電力モードでは、例えば、ディスク回転数の低下・停止、ディスクヘッドの退避、電源オフなどの制御が行われる。図１の例では、記憶装置３１が省電力モードに設定されている。この場合、制御部２１は、記憶装置３１に格納されたデータのうち記憶装置３１の監視のためのアクセスを要求された際に応答するデータａを該記憶装置３１とは異なる記憶領域（例えば、代替装置３２）に複製する。
【００２２】
上述した監視のためのアクセスとは、例えば、上位装置１１、１２のＯＳや特定のアプリケーションプログラムが実行するデバイス診断などの処理で、記憶装置３１に対して行われるデータアクセスである。以下、このアクセスのことをポーリングＩ／Ｏ（Input/Output）と呼ぶ場合がある。ポーリングＩ／Ｏは、定期的に（例えば、一定の時間間隔で）、特定のアドレスに対して実行される。また、ポーリングＩ／Ｏで要求されるデータ（例えば、データａ）のサイズは一定であるか、又は所定のサイズより小さい。
【００２３】
制御部２１は、上記のようなポーリングＩ／Ｏの性質に基づいて、ポーリングＩ／Ｏを特定し、省電力モードに設定した記憶装置３１に対する監視のためのアクセス（ポーリングＩ／Ｏ）が要求された場合にデータａを複製した記憶領域をアクセス先にする。つまり、図１の例では、複製したデータａを有する代替装置３２がアクセス先とされる。この例では、データａが正しく上位装置１１に応答され、記憶装置３１の省電力モードが維持されたまま、ポーリングＩ／Ｏによる監視処理も正常に完了する。
【００２４】
上記のように、ポーリングＩ／Ｏの応答に用いるデータａを省電力モードの記憶装置３１とは異なる代替装置３２に保持しておくことで、ポーリングＩ／Ｏの要求を受けた場合に代替装置３２から読み出したデータａで制御部２１が応答できる。その結果、記憶装置３１の省電力モードを維持することが可能になり、より効率的に電力消費を抑制することが可能になる。
【００２５】
なお、代替装置３２として、記憶装置３１と同様に、ディスクアレイの一部として機能するＲＡＩＤ装置を利用することも可能である。例えば、記憶装置３１が省電力モードの間、通常の動作モードで稼働する記憶装置を代替装置３２として利用すれば、省電力モードを解除せずにポーリングＩ／Ｏに正しく応答することができる。
【００２６】
また、制御部２１は、上位装置１１、１２のそれぞれについて、ポーリングＩ／Ｏによるアクセス先の特定アドレス、その特定アドレスへのアクセス間隔、及び要求されたデータのサイズを記憶部２２に記憶させ、ポーリングＩ／Ｏの判別に利用してもよい。図１の例では、上位装置１１から、特定アドレスＡ１をアクセス先として３０秒間隔でサイズ１０ｋＢのデータが要求されていることなどが記憶部２２に記録されている。
【００２７】
アクセス先、アクセス間隔、及びデータサイズのうち少なくとも１つについて、記憶部２２の記憶内容と上位装置１１、１２から受けた要求内容とを対比すれば、要求を受けたアクセスがポーリングＩ／Ｏであるか否かを容易に判別することができる。例えば、同じアクセス先に対するアクセスであることと、一定のアクセス間隔であることとを条件として組み合わせることでポーリングＩ／Ｏを判別することができる。
【００２８】
このように、制御部２１がポーリングＩ／Ｏを判別してアクセス先を代替装置３２に切り替えることにより、省電力モードを解除する機会を減らし、効率的に電力消費を抑制することができる。
【００２９】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。
【００３０】
第２実施形態は、ＲＡＩＤ技術を適用して複数のディスク（例えば、ＨＤＤ）を冗長化したＲＡＩＤグループを複数有し、ＲＡＩＤグループ毎にディスクの動作モードを制御して電力消費を抑制する省電力化技術に関する。以下では、説明の都合上、ディスクのモータをオフ状態にするＥＣＯモードと、ディスクのモータをオン状態にする通常モードとをＲＡＩＤグループ毎に切り替えて省電力化を実現する例について説明する。
【００３１】
［２−１．システム］
図２を参照しながら、第２実施形態に係るストレージシステムについて説明する。図２は、第２実施形態に係るストレージシステムの一例を示した図である。図２に例示したストレージシステム１００は、第２実施形態に係るストレージシステムの一例である。
【００３２】
図２に示すように、ストレージシステム１００は、サーバ１０１ａ、１０１ｂ、スイッチ１０２ａ、１０２ｂ、及びストレージ装置１０３を有する。サーバ１０１ａ、１０１ｂは、スイッチ１０２ａ、１０２ｂを介してストレージ装置１０３に接続されている。サーバ１０１ａ、１０１ｂは、ＣＰＵ、ＲＡＭ、ＨＤＤなどを有するコンピュータである。サーバ１０１ａ、１０１ｂは、ストレージ装置１０３に対し、データの書き込みや読み出しを要求する。
【００３３】
ストレージ装置１０３は、チャネルアダプタ１１１ａ、１１１ｂ、１１１ｃ、１１１ｄ、コントローラ１１２ａ、１１２ｂ、ディスク制御部１１３ａ、１１３ｂ、複数のディスクで構成されるＲＡＩＤグループ１１４ａ、１１４ｂ、１１４ｃ、１１４ｄを有する。
【００３４】
チャネルアダプタ１１１ａ、１１１ｂ、１１１ｃ、１１１ｄは、スイッチ１０２ａ、１０２ｂとのインタフェースとなるアダプタデバイスである。コントローラ１１２ａ、１１２ｂは、ＣＰＵ及びメモリを有し、ＲＡＩＤグループ１１４ａ、１１４ｂ、１１４ｃ、１１４ｄに対するデータアクセスの処理や動作モードの制御を実施する。ディスク制御部１１３ａ、１１３ｂは、ＲＡＩＤグループ１１４ａ、１１４ｂ、１１４ｃ、１１４ｄのディスクに対するデータの読み書き処理などを実行する。
【００３５】
［２−２．コントローラの機能］
ここで、コントローラ１１２ａ、１１２ｂの機能について、さらに説明する。但し、コントローラ１１２ａ、１１２ｂの機能は同じであるため、コントローラ１１２ａの機能について説明し、コントローラ１１２ｂの機能については説明を省略する。図３は、第２実施形態に係るコントローラが有する機能の一例を示したブロック図である。
【００３６】
図３に示すように、コントローラ１１２ａは、記憶部１２１、Ｉ／Ｏ制御部１２２、ＥＣＯモード制御部１２３、及びＩ／Ｏアクセス監視部１２４を有する。さらに、コントローラ１１２ａは、ポーリングＩ／Ｏ管理部１２５、ポーリングＩ／Ｏ判断部１２６、擬似Ｉ／Ｏ制御部１２７、及びデータ配置制御部１２８を有する。
【００３７】
ＥＣＯモード制御部１２３、及びＩ／Ｏアクセス監視部１２４、ポーリングＩ／Ｏ管理部１２５、ポーリングＩ／Ｏ判断部１２６、擬似Ｉ／Ｏ制御部１２７、及びデータ配置制御部１２８は、ＣＰＵ等のプロセッサを制御して処理を実行させるプログラムで実現してもよい。
【００３８】
記憶部１２１には、図４に示すようなポーリングＩ／Ｏ管理テーブルが格納される。ポーリングＩ／Ｏ管理テーブルは、サーバ１０１ａ、１０１ｂがデバイス診断などの監視目的でＲＡＩＤグループのディスクに対して定期的に行うＩ／Ｏアクセス（ポーリングＩ／Ｏ）に関連する情報（エントリ情報）を登録したテーブルである。図４は、第２実施形態に係るポーリングＩ／Ｏ管理テーブルの一例を示した図である。
【００３９】
エントリ情報のメンバは、例えば、サーバ、ＬＵＮ（Logical Unit Number）、ＬＵＮアドレス、データサイズ、最終アクセス時刻、監視ステータス、ポーリングＩ／Ｏ判断結果、ポーリングＩ／Ｏ属性を含む。さらに、エントリ情報のメンバは、ポーリングＩ／Ｏアクセス時刻（最新）、ポーリングＩ／Ｏアクセス時刻（前回）、ポーリングＩ／Ｏインターバル、ポーリングＩ／Ｏ受信カウンタ、代替先、代替先アドレスを含む。
【００４０】
サーバの欄には、ポーリングＩ／Ｏの送信元として監視するサーバを特定するための情報（例えば、ＷＷＮ（World Wide Name））が登録される。ＬＵＮの欄には、監視対象のサーバによるアクセス先の論理ボリュームを特定するＬＵＮが登録される。ＬＵＮアドレスの欄には、監視対象のサーバがアクセスした論理ボリュームのアドレス（ポーリングＩ／Ｏによるアクセス先；例えば、ＬＢＡ（Logical Block Address））が登録される。データサイズの欄には、監視対象のサーバがアクセスしたデータのサイズ（ポーリングＩ／Ｏによるアクセスサイズ）が登録される。
【００４１】
最終アクセス時刻の欄には、ポーリングＩ／Ｏ以外のアクセスが最後にあった時刻が登録される。監視ステータスの欄には、ポーリングＩ／Ｏの監視状況（監視前（0x00）、監視中（0x01）、監視済（0xFF））が登録される。ポーリングＩ／Ｏ判断結果の欄には、ポーリングＩ／Ｏを受信しているか否かの判断結果（有（0x01）、無（0xFF）、N/A（0x00））が登録される。ポーリングＩ／Ｏ属性の欄には、ポーリングＩ／Ｏの属性（ライト属性（0x01）、リード属性（0x02）、N/A（0x00））が登録される。
【００４２】
ポーリングＩ／Ｏアクセス時刻（最新）の欄には、最新のポーリングＩ／Ｏによるアクセス時刻が登録される。ポーリングＩ／Ｏアクセス時刻（前回）の欄には、前回（最新の前）のポーリングＩ／Ｏによるアクセス時刻が登録される。ポーリングＩ／Ｏインターバルの欄には、ポーリングＩ／Ｏの発生した時間間隔（インターバル）が登録される。ポーリングＩ／Ｏ受信カウンタの欄には、ポーリングＩ／Ｏの受信回数が登録される。
【００４３】
代替先の欄には、ＥＣＯモードに設定されたＲＡＩＤグループにある特定のデータをコピーしたコピー先に関する情報（メモリ（0x01,0xFFFF）、別のＲＡＩＤグループ（0x02,0x0001）、N/A（0x00,0x0000））が登録される。例えば、代替先の種類を示す番号（0x02など）、及びＬＵＮなどの代替先を特定する番号（0x0001）が登録される。代替先アドレスの欄には、代替先にコピーした特定のデータがあるアドレスが登録される。例えば、メモリアドレス、キャッシュページ、ディスクＬＢＡなどの情報が登録される。
【００４４】
後述するように、コントローラ１１２ａは、ポーリングＩ／Ｏへの応答に用いる特定のデータを代替先へコピーしておき、ＥＣＯモードに設定されたＲＡＩＤグループへのポーリングＩ／Ｏを受信した場合に、ポーリングＩ／Ｏのアクセス先を代替先にする制御（擬似Ｉ／Ｏ制御）を実施する。その際、ポーリングＩ／Ｏ管理テーブルの代替先及び代替先アドレスの欄に記載された内容が参照される。
【００４５】
再び図３を参照する。Ｉ／Ｏ制御部１２２は、サーバ１０１ａ、１０１ｂから受けた書き込み要求や読み出し要求（以下、リクエストＩ／Ｏ）を処理する。ＥＣＯモード制御部１２３は、動作モードを切り替える際に、対象となるＲＡＩＤグループのディスクについてモータのオン／オフを制御する。
【００４６】
Ｉ／Ｏアクセス監視部１２４は、ＥＣＯモードが設定されているＲＡＩＤグループに対してサーバ１０１ａ、１０１ｂから受けるアクセスを監視する。また、Ｉ／Ｏアクセス監視部１２４は、ポーリングＩ／Ｏ管理テーブルにエントリがないポーリングＩ／Ｏを受けた場合に、そのポーリングＩ／Ｏを監視対象としてポーリングＩ／Ｏ管理テーブルにエントリする。
【００４７】
ポーリングＩ／Ｏ管理部１２５は、サーバ１０１ａ、１０１ｂから受信したリクエストＩ／Ｏに応じてポーリングＩ／Ｏ管理テーブルを更新する。ポーリングＩ／Ｏ判断部１２６は、サーバ１０１ａ、１０１ｂから受信したリクエストＩ／ＯがポーリングＩ／Ｏか通常のＩ／Ｏアクセスかを判断する。
【００４８】
擬似Ｉ／Ｏ制御部１２７は、ポーリングＩ／Ｏ管理テーブルを参照し、ＥＣＯモードに設定されているＲＡＩＤグループに対するポーリングＩ／Ｏを受信した場合に代替先へアクセスし、擬似的にポーリングＩ／Ｏに対して応答する。データ配置制御部１２８は、ＥＣＯモードに遷移するＲＡＩＤグループからポーリングＩ／Ｏのアクセス先ブロックにあるデータ（以下、応答データ）を読み出し、その応答データを代替先に配置する。
【００４９】
（ポーリングＩ／Ｏ管理テーブルの更新方法）
上記のように、コントローラ１１２ａは、ポーリングＩ／Ｏ管理テーブルを利用してポーリングＩ／Ｏをサーバ毎に管理する。ここで、図５を参照しながら、ポーリングＩ／Ｏ管理テーブルの更新方法について、さらに説明する。図５は、第２実施形態に係るポーリングＩ／Ｏ管理テーブルの更新方法を示した図である。
【００５０】
ここでは、図４に示したポーリングＩ／Ｏ管理テーブルのうちエントリ＃１のエントリ情報を例に更新方法について説明する。
（Ｓ１）ポーリングＩ／Ｏではない通常のリクエストＩ／Ｏ（通常Ｉ／Ｏ）を受信した場合、最終アクセス時刻の欄に登録された内容が、その通常Ｉ／Ｏを受信した時刻に更新される。
【００５１】
（Ｓ２）ポーリングＩ／Ｏの監視を開始した場合、監視ステータスの欄に登録された内容（監視前）が、ポーリングＩ／Ｏの監視状態であることを示す内容（監視中）に更新される。
【００５２】
（Ｓ３）ポーリングＩ／Ｏを受信した場合、ポーリングＩ／Ｏ判断結果の欄に登録された内容が、ポーリングＩ／Ｏを検出した旨を示す内容（有）に更新される。なお、図５の例は、監視開始後、２回目の受信時における更新方法を示している。また、ポーリングＩ／Ｏ属性の欄に登録された内容が、受信したポーリングＩ／Ｏの属性を示す内容（リード属性）に更新される。
【００５３】
また、ポーリングＩ／Ｏアクセス時刻（前回）の欄に登録された内容が、ポーリングＩ／Ｏアクセス時刻（最新）の欄に登録された内容で上書きされる。そして、ポーリングＩ／Ｏアクセス時刻（最新）の欄に登録された内容が、今回ポーリングＩ／Ｏを受信した時刻に更新される。また、ポーリングＩ／Ｏインターバルの欄に登録された内容が、更新後のポーリングＩ／Ｏアクセス時刻（前回・最新）から算出されたインターバルに更新される。そして、ポーリングＩ／Ｏ受信カウンタがインクリメントされる。
【００５４】
（Ｓ４）ポーリングＩ／Ｏの監視を終了した場合、監視ステータスの欄に登録された内容（監視中）が、ポーリングＩ／Ｏの監視状態を解除されたことを示す内容（監視済）に更新される。なお、ポーリングＩ／Ｏを受信するとともに監視を終了した場合、Ｓ３と同様に、ポーリングＩ／Ｏアクセス時刻（最新・前回）、ポーリングＩ／Ｏインターバル、ポーリングＩ／Ｏ受信カウンタの内容が更新される。また、応答データが代替先にコピーされた場合には、代替先及び代替先アドレスの欄に登録された内容が更新される。
【００５５】
上記のように、ポーリングＩ／Ｏを監視し、所定回数のポーリングＩ／Ｏについて、ポーリングＩ／Ｏ管理テーブルの内容を更新することで、ポーリングＩ／Ｏを判断するために有用なポーリングＩ／Ｏインターバルなどの情報が得られる。
【００５６】
［２−３．処理フロー］
ここで、図６〜図１７を参照しながら、コントローラ１１２ａが実行する処理について、さらに説明する。なお、図中ではポーリングＩ／Ｏ管理テーブルを単に管理テーブルと表記している。また、コントローラ１１２ｂが実行する処理についても同様である。
【００５７】
（２−３−１．ログイン受信時の処理）
図６を参照しながら、サーバ１０１ａ、１０１ｂからログイン要求を受信した場合の処理について説明する。図６は、第２実施形態に係るコントローラが実行するログイン受信時の処理フローを示したフロー図である。
【００５８】
（Ｓ１０１）Ｉ／Ｏアクセス監視部１２４は、受信したログインの対象が、ＥＣＯモード対象外のＬＵＮ（ＥＣＯモードを設定しないＲＡＩＤグループに対応するＬＵＮ）へのアクセスであるか否かを判定する。ＥＣＯモード対象外のＬＵＮへのアクセスである場合、図６に示した一連の処理は終了する。一方、ＥＣＯモード対象外のＬＵＮへのアクセスでない場合、処理はＳ１０２へと進む。
【００５９】
（Ｓ１０２）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバと、対象のＬＵＮとの組み合わせに対応するエントリがポーリングＩ／Ｏ管理テーブルにあるか否かを判定する。該当するエントリがポーリングＩ／Ｏ管理テーブルにある場合、図６に示した一連の処理は終了する。一方、該当するエントリがポーリングＩ／Ｏ管理テーブルにない場合、処理はＳ１０３へと進む。
【００６０】
（Ｓ１０３）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバに対応するエントリがポーリングＩ／Ｏ管理テーブルにあるか否かを判定する。該当するエントリがポーリングＩ／Ｏ管理テーブルにある場合、処理はＳ１０５へと進む。一方、該当するエントリがポーリングＩ／Ｏ管理テーブルにない場合、処理はＳ１０４へと進む。
【００６１】
（Ｓ１０４）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバと、対象のＬＵＮとの組み合わせに対応するエントリ情報をポーリングＩ／Ｏ管理テーブルに追加する。このとき、ポーリングＩ／Ｏ管理部１２５は、追加したエントリ情報の監視ステータスを監視前に設定する。Ｓ１０４の処理が完了すると、図６に示した一連の処理は終了する。
【００６２】
（Ｓ１０５）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視済であるか否かを判定する。監視ステータスが監視済である場合、処理はＳ１０６へと進む。一方、監視ステータスが監視済でない場合、処理はＳ１０７へと進む。
【００６３】
（Ｓ１０６）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバに対応するエントリ情報のポーリングＩ／Ｏ判断結果を参照し、ポーリングＩ／Ｏ判断結果が無であるか否かを判定する。ポーリングＩ／Ｏ判断結果が無である場合、図６に示した一連の処理は終了する。ポーリングＩ／Ｏ判断結果が無でない場合、処理はＳ１０７へと進む。
【００６４】
（Ｓ１０７）ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバと、対象のＬＵＮとの組み合わせに対応するエントリ情報をポーリングＩ／Ｏ管理テーブルに追加する。このとき、ポーリングＩ／Ｏ管理部１２５は、ログイン元のサーバに対応するエントリ情報の一部（監視ステータス、ポーリングＩ／Ｏ判断結果）をコピーする。Ｓ１０７の処理が完了すると、図６に示した一連の処理は終了する。
【００６５】
（２−３−２．Ｉ／Ｏ受信時の処理）
次に、図７及び図８を参照しながら、サーバ１０１ａ、１０１ｂからリクエストＩ／Ｏを受信した場合にコントローラ１１２ａが実行する処理について説明する。なお、コントローラ１１２ｂが実行する処理についても同様である。
【００６６】
図７は、第２実施形態に係るコントローラが実行するＩ／Ｏ受信時の処理フローを示した第１のフロー図である。図８は、第２実施形態に係るコントローラが実行するＩ／Ｏ受信時の処理フローを示した第２のフロー図である。
【００６７】
（Ｓ１１１）Ｉ／Ｏアクセス監視部１２４は、受信したログインの対象が、ＥＣＯモード対象外のＬＵＮ（ＥＣＯモードを設定しないＲＡＩＤグループに対応するＬＵＮ）へのアクセスであるか否かを判定する。ＥＣＯモード対象外のＬＵＮへのアクセスである場合、処理はＳ１１２へと進む。一方、ＥＣＯモード対象外のＬＵＮへのアクセスでない場合、処理はＳ１１３へと進む。
【００６８】
（Ｓ１１２）Ｉ／Ｏ制御部１２２は、受信したリクエストＩ／Ｏに応じた処理（ＲＡＩＤグループへのアクセス）を実行し、リクエストＩ／Ｏに対する応答処理を実行する。Ｓ１１２の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００６９】
（Ｓ１１３）ポーリングＩ／Ｏ判断部１２６は、受信したリクエストＩ／ＯがポーリングＩ／Ｏであるか否かを判断する処理（ポーリングＩ／Ｏ判断処理）を実行する。ポーリングＩ／Ｏ判断処理については後述する。
【００７０】
（Ｓ１１４）Ｓ１１３でリクエストＩ／ＯがポーリングＩ／Ｏであると判断された場合、処理はＳ１１５へと進む。一方、Ｓ１１３でリクエストＩ／ＯがポーリングＩ／Ｏではないと判断された場合、処理はＳ１１７へと進む。
【００７１】
（Ｓ１１５）ポーリングＩ／Ｏ管理部１２５は、ポーリングＩ／Ｏ管理テーブルのうち、ポーリングＩ／Ｏアクセス時刻（最新）の内容を、ポーリングＩ／Ｏアクセス時刻（前回）にセットする。また、ポーリングＩ／Ｏ管理部１２５は、今回ポーリングＩ／Ｏを受信した時刻をポーリングＩ／Ｏアクセス時刻（最新）にセットする。
【００７２】
また、ポーリングＩ／Ｏ管理部１２５は、更新後のポーリングＩ／Ｏアクセス時刻（前回・最新）の内容からインターバルを計算し、その計算結果をポーリングＩ／Ｏインターバルにセットする。また、ポーリングＩ／Ｏ管理部１２５は、ポーリングＩ／Ｏ受信カウンタをインクリメントする。このように、ポーリングＩ／Ｏ管理部１２５は、ポーリングＩ／Ｏ管理テーブルのエントリ情報を更新する（図５（Ｓ３）参照）。
【００７３】
（Ｓ１１６）ポーリングＩ／Ｏ管理部１２５は、更新したエントリ情報の監視ステータスが「監視済」か否かを判定する。監視ステータスが監視済である場合、処理は図８のＳ１２０へと進む。一方、監視ステータスが監視済でない場合、処理はＳ１１８へと進む。
【００７４】
（Ｓ１１７）ポーリングＩ／Ｏ管理部１２５は、ポーリングＩ／Ｏ管理テーブルのうち、今回リクエストＩ／Ｏを受信した時刻を最終アクセス時刻にセットする。
（Ｓ１１８）ＥＣＯモード制御部１２３は、リクエストＩ／Ｏのアクセス先となるＲＡＩＤグループがＥＣＯモードに設定されている場合、そのＲＡＩＤグループに属するディスクのモータをオンにする。リクエストＩ／Ｏのアクセス先となるＲＡＩＤグループがＥＣＯモードではない場合、ＥＣＯモード制御部１２３は、モータの制御を行わない。モータをオンにする制御処理については後述する。
【００７５】
（Ｓ１１９）Ｉ／Ｏ制御部１２２は、受信したリクエストＩ／Ｏに応じた処理（ＲＡＩＤグループへのアクセス）を実行し、リクエストＩ／Ｏに対する応答処理を実行する。Ｓ１１９の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００７６】
（Ｓ１２０）データ配置制御部１２８は、ポーリングＩ／Ｏによるアクセス先のデータ（応答データ）が展開（データ複製）済みか否かを判定する。つまり、データ配置制御部１２８は、ポーリングＩ／Ｏ管理テーブルの代替先を参照し、応答データを代替先にコピー済みか否かを判定する。展開済みである場合、処理はＳ１２１へと進む。一方、展開済みでない場合、処理はＳ１２２へと進む。
【００７７】
（Ｓ１２１）擬似Ｉ／Ｏ制御部１２７は、ポーリングＩ／Ｏ管理テーブルから該当する代替先の情報（代替先及び代替先アドレス）を読み出してＩ／Ｏ制御部１２２に通知する（擬似Ｉ／Ｏ処理）。Ｉ／Ｏ制御部１２２は、擬似Ｉ／Ｏ制御部１２７から通知された情報が示す代替先をポーリングＩ／Ｏのアクセス先として応答処理を実行する。Ｓ１２１の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００７８】
（Ｓ１２２）ＥＣＯモード制御部１２３は、ポーリングＩ／Ｏのアクセス先となるＲＡＩＤグループがＥＣＯモードに設定されている場合、そのＲＡＩＤグループに属するディスクのモータをオンにする。ポーリングＩ／Ｏのアクセス先となるＲＡＩＤグループがＥＣＯモードではない場合、ＥＣＯモード制御部１２３は、モータの制御を行わない。モータをオンにする制御処理については後述する。
【００７９】
（Ｓ１２３）データ配置制御部１２８は、ポーリングＩ／Ｏのアクセス先となるＲＡＩＤグループの応答データをコピーする代替先を確保する。
代替先としては、例えば、コピー元となるＲＡＩＤグループとは異なるＲＡＩＤグループ、ＲＡＩＤグループのディスクとは別に設けた代替用のメモリ、或いは、キャッシュとして利用するキャッシュメモリなどを利用することができる。異なるＲＡＩＤグループを代替先とする場合には、コピー元となるＲＡＩＤグループがＥＣＯモードに設定されている間、通常モードで稼働するＲＡＩＤグループが代替先の候補となる。
【００８０】
（Ｓ１２４、Ｓ１２５）データ配置制御部１２８は、ポーリングＩ／Ｏのアクセス先となるＲＡＩＤグループのディスクからデータを読み出す。そして、データ配置制御部１２８は、読み出したデータをＳ１２３で確保した代替先に書き込む。
【００８１】
（Ｓ１２６）データ配置制御部１２８は、Ｓ１２３で確保した代替先と、データを書き込んだアドレス（代替先アドレス）とをポーリングＩ／Ｏ管理テーブルのエントリ情報にセットする。
【００８２】
（Ｓ１２７）擬似Ｉ／Ｏ制御部１２７は、ポーリングＩ／Ｏ管理テーブルのエントリ情報にセットした代替先の情報（代替先及び代替先アドレス）をＩ／Ｏ制御部１２２に通知する（擬似Ｉ／Ｏ処理）。Ｉ／Ｏ制御部１２２は、擬似Ｉ／Ｏ制御部１２７から通知された情報が示す代替先をポーリングＩ／Ｏのアクセス先として応答処理を実行する。Ｓ１２７の処理が完了すると、図７及び図８に示した一連の処理は終了する。
【００８３】
（２−３−３．ポーリングＩ／Ｏ判断時の処理）
ここで、図９及び図１０を参照しながら、リクエストＩ／ＯがポーリングＩ／Ｏであるかを判断するポーリングＩ／Ｏ判断処理（Ｓ１１３を参照）について説明する。図９は、第２実施形態に係るコントローラが実行するポーリングＩ／Ｏ判断時の処理フローを示した第１のフロー図である。図１０は、第２実施形態に係るコントローラが実行するポーリングＩ／Ｏ判断時の処理フローを示した第２のフロー図である。
【００８４】
（Ｓ１３１）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏを送信したサーバと、対象のＬＵＮとの組み合わせに対応するエントリがポーリングＩ／Ｏ管理テーブルにあるか否かを判定する。該当するエントリがポーリングＩ／Ｏ管理テーブルにある場合、処理はＳ１３２へと進む。一方、該当するエントリがポーリングＩ／Ｏ管理テーブルにない場合、処理はＳ１３８へと進む。
【００８５】
（Ｓ１３２）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏを送信したサーバに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視前であるか否かを判定する。監視ステータスが監視前である場合、処理はＳ１３８へと進む。一方、監視ステータスが監視前でない場合、処理はＳ１３３へと進む。
【００８６】
（Ｓ１３３）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏを送信したサーバに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視済であるか否かを判定する。監視ステータスが監視済である場合、処理はＳ１３４へと進む。一方、監視ステータスが監視済でない場合、処理は図１０のＳ１３９へと進む。
【００８７】
（Ｓ１３４）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏを送信したサーバに対応するエントリ情報のポーリングＩ／Ｏ判断結果を参照し、ポーリングＩ／Ｏ判断結果が無であるか否かを判定する。ポーリングＩ／Ｏ判断結果が無である場合、処理はＳ１３８へと進む。ポーリングＩ／Ｏ判断結果が無でない場合、処理はＳ１３５へと進む。
【００８８】
（Ｓ１３５）ポーリングＩ／Ｏ判断部１２６は、該当するエントリ情報を参照し、リクエストＩ／Ｏのアクセス先となるＬＵＮアドレス及び対象となるデータのデータサイズがポーリングＩ／Ｏの条件に一致するか否かを判定する。
【００８９】
例えば、ポーリングＩ／Ｏ判断部１２６は、エントリ情報に記載のＬＵＮアドレスが、今回受信したリクエストＩ／Ｏのアクセス先となるＬＵＮアドレスと一致するか否かを判定する。さらに、ポーリングＩ／Ｏ判断部１２６は、エントリ情報に記載のデータサイズと、今回受信したリクエストＩ／Ｏによりアクセスするデータのデータサイズとが一致するか否かを判定する。なお、判定の順番は逆でもよい。いずれも一致した場合、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏの条件に一致すると判定する。
【００９０】
ポーリングＩ／Ｏの条件に一致する場合、処理はＳ１３６へと進む。一方、ポーリングＩ／Ｏの条件に一致しない場合、処理はＳ１３８へと進む。
（Ｓ１３６）ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのうち、ポーリングＩ／Ｏアクセス時刻（最新）の内容を、ポーリングＩ／Ｏアクセス時刻（前回）にセットする。また、ポーリングＩ／Ｏ判断部１２６は、今回リクエストＩ／Ｏを受信した時刻をポーリングＩ／Ｏアクセス時刻（最新）にセットする。
【００９１】
また、ポーリングＩ／Ｏ判断部１２６は、更新後のポーリングＩ／Ｏアクセス時刻（前回・最新）の内容からインターバルを計算し、その計算結果をポーリングＩ／Ｏインターバルにセットする。また、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ受信カウンタをインクリメントする。このように、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのエントリ情報を更新する。
【００９２】
（Ｓ１３７）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／ＯがポーリングＩ／Ｏであると判断し、図９及び図１０に示した一連の処理を終了する。
（Ｓ１３８）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／ＯがポーリングＩ／Ｏではないと判断し、図９及び図１０に示した一連の処理を終了する。
【００９３】
（Ｓ１３９）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏによりアクセスするデータのデータサイズが予め設定した閾値を超過しているか否かを判定する。データサイズが閾値を超過している場合、処理はＳ１４４へと進む。一方、データサイズが閾値を超過していない場合、処理はＳ１４０へと進む。
【００９４】
なお、閾値は、過去に同じサーバから受信したポーリングＩ／Ｏの応答データのサイズと同程度の値（そのサイズ＋許容誤差）に設定してもよいし、ポーリングＩ／Ｏの応答データとして通常利用されるデータのサイズと同程度の値に設定してもよい。過去のポーリングＩ／Ｏによりアクセスされたデータのデータサイズは、該当するエントリがあれば、ポーリングＩ／Ｏ管理テーブルのエントリ情報から抽出しうる。
【００９５】
（Ｓ１４０）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／Ｏのアクセス先となるＬＵＮアドレスは前回受信したリクエストＩ／Ｏのアクセス先と同じか否かを判定する。ＬＵＮアドレスが前回と同じ場合、処理はＳ１４２へと進む。ＬＵＮアドレスが前回と同じではない場合、処理はＳ１４１へと進む。このように、同じアクセス先に続けてアクセスするリクエストＩ／ＯはポーリングＩ／Ｏの性質に合致するため、アクセス先のＬＵＮアドレスを対比することでポーリングＩ／Ｏを判別することができる。
【００９６】
（Ｓ１４１）ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのうち、ポーリングＩ／Ｏアクセス時刻（最新）の内容を、ポーリングＩ／Ｏアクセス時刻（前回）にセットする。また、ポーリングＩ／Ｏ判断部１２６は、今回リクエストＩ／Ｏを受信した時刻をポーリングＩ／Ｏアクセス時刻（最新）にセットする。
【００９７】
また、ポーリングＩ／Ｏ判断部１２６は、更新後のポーリングＩ／Ｏアクセス時刻（前回・最新）の内容からインターバルを計算し、その計算結果をポーリングＩ／Ｏインターバルにセットする。また、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ受信カウンタを０にリセットする。このようにして、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのエントリ情報を更新する。Ｓ１４１の処理が完了すると、処理はＳ１４３へと進む。
【００９８】
（Ｓ１４２）ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのうち、ポーリングＩ／Ｏアクセス時刻（最新）の内容を、ポーリングＩ／Ｏアクセス時刻（前回）にセットする。また、ポーリングＩ／Ｏ判断部１２６は、今回リクエストＩ／Ｏを受信した時刻をポーリングＩ／Ｏアクセス時刻（最新）にセットする。
【００９９】
また、ポーリングＩ／Ｏ判断部１２６は、更新後のポーリングＩ／Ｏアクセス時刻（前回・最新）の内容からインターバルを計算し、その計算結果をポーリングＩ／Ｏインターバルにセットする。また、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ受信カウンタをインクリメントする。このように、ポーリングＩ／Ｏ判断部１２６は、ポーリングＩ／Ｏ管理テーブルのエントリ情報を更新する。
【０１００】
（Ｓ１４３）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／ＯがポーリングＩ／Ｏであると判断し、図９及び図１０に示した一連の処理を終了する。
（Ｓ１４４）ポーリングＩ／Ｏ判断部１２６は、リクエストＩ／ＯがポーリングＩ／Ｏではないと判断し、図９及び図１０に示した一連の処理を終了する。
【０１０１】
（２−３−４．Ｉ／Ｏアクセス監視時の処理）
次に、図１１及び図１２を参照しながら、リクエストＩ／Ｏを監視している状態でコントローラ１１２ａが実行する処理について説明する。なお、コントローラ１１２ｂが実行する処理についても同様である。
【０１０２】
図１１は、第２実施形態に係るコントローラが実行するＩ／Ｏアクセス監視時の処理フローを示した第１のフロー図である。図１２は、第２実施形態に係るコントローラが実行するＩ／Ｏアクセス監視時の処理フローを示した第２のフロー図である。
【０１０３】
なお、図１１及び図１２に示した処理は、当該処理を終了する際に起動したタイマが満了した時点で実行される。タイマの満了時間は任意に設定可能である。
（Ｓ１５１、Ｓ１５８）Ｉ／Ｏアクセス監視部１２４は、ポーリングＩ／Ｏ管理テーブルの各エントリについてＳ１５８に至るＳ１５２以降の処理を実行する。ポーリングＩ／Ｏ管理テーブルにある全てのエントリについて当該処理を実行し終えた場合、処理はＳ１５９へと進む。以下、処理対象となるエントリを対象エントリと呼ぶ場合がある。
【０１０４】
（Ｓ１５２）Ｉ／Ｏアクセス監視部１２４は、対象エントリに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視済であるか否かを判定する。監視ステータスが監視済である場合、処理はＳ１５３へと進む。一方、監視ステータスが監視済でない場合、処理はＳ１５５へと進む。
【０１０５】
（Ｓ１５３）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報に登録されている最終アクセス時刻を参照し、最終アクセスから時間Ｔ１を経過したか否かを判定する。なお、時間Ｔ１は予め設定される。時間Ｔ１は、アクセスのないアクセス先に対応するエントリ情報を削除するまでの時間を規定するパラメータであり、任意に設定可能である。最終アクセスから時間Ｔ１を経過した場合、処理はＳ１５４へと進む。一方、最終アクセスから時間Ｔ１が経過していない場合、処理はＳ１５８へと進む。
【０１０６】
（Ｓ１５４）Ｉ／Ｏアクセス監視部１２４は、対象エントリに対応するアクセス先についてアクセス無しと判断し、対応するエントリ情報をポーリングＩ／Ｏ管理テーブルから削除する。このように、一定時間アクセスがないアクセス先のエントリを削除することで、ポーリングＩ／Ｏ管理テーブルのサイズを抑制し、エントリの検索を効率化できる。Ｓ１５４の処理が完了すると、処理はＳ１５８へと進む。
【０１０７】
（Ｓ１５５）Ｉ／Ｏアクセス監視部１２４は、対象エントリに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視中であるか否かを判定する。監視ステータスが監視中である場合、処理は図１２のＳ１６０へと進む。一方、監視ステータスが監視中でない場合、処理はＳ１５６へと進む。
【０１０８】
（Ｓ１５６）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報に登録されている最終アクセス時刻を参照し、最終アクセスから時間Ｔ２を経過したか否かを判定する。なお、時間Ｔ２は予め設定される。時間Ｔ２は、最終アクセス後、監視前の状態が一定時間継続している場合に監視を開始するためのトリガーとなるパラメータであり、任意に設定可能である。最終アクセスから時間Ｔ２を経過した場合、処理はＳ１５７へと進む。一方、最終アクセスから時間Ｔ２が経過していない場合、処理はＳ１５８へと進む。
【０１０９】
（Ｓ１５７）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報のうち監視ステータスを監視中にセットし、エントリ情報を更新する。
（Ｓ１５９）Ｉ／Ｏアクセス監視部１２４は、タイマを起動させる。Ｓ１５９の処理が完了すると、図１１及び図１２に示した一連の処理は終了する。
【０１１０】
（Ｓ１６０）Ｉ／Ｏアクセス監視部１２４は、ポーリングＩ／Ｏを受信済みであるか否かを判定する。例えば、Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報のうちポーリングＩ／Ｏ判断結果を参照し、ポーリングＩ／Ｏ判断結果が有であれば、ポーリングＩ／Ｏを受信済みであると判定する。なお、Ｉ／Ｏアクセス監視部１２４は、判定の際にポーリングＩ／Ｏ受信カウンタの値などを参照してもよい。ポーリングＩ／Ｏを受信済みである場合、処理はＳ１６３へと進む。一方、ポーリングＩ／Ｏを受信済みでない場合、処理はＳ１６１へと進む。
【０１１１】
（Ｓ１６１）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報に登録されている最終アクセス時刻を参照し、最終アクセスから時間Ｔ３を経過したか否かを判定する。なお、時間Ｔ３は予め設定される。時間Ｔ３は、最終アクセス後、監視中の状態が一定時間継続している場合に監視を終了するためのトリガーとなるパラメータであり、任意に設定可能である。最終アクセスから時間Ｔ３を経過した場合、処理はＳ１６２へと進む。一方、最終アクセスから時間Ｔ３が経過していない場合、Ｓ１５８へと進む。
【０１１２】
（Ｓ１６２）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報のうち監視ステータスを監視済にセットし、ポーリングＩ／Ｏ判断結果を無にセットしてエントリ情報を更新する。Ｓ１６２の処理が完了すると、処理はＳ１５８へと進む。
【０１１３】
（Ｓ１６３）Ｉ／Ｏアクセス監視部１２４は、対象エントリのポーリングＩ／Ｏ受信カウンタを参照し、ポーリングＩ／Ｏ受信カウンタが閾値を超過しているか否かを判定する。なお、この判定に用いる閾値は、監視を終了するためのトリガーとなるパラメータであり、任意に設定可能である。ポーリングＩ／Ｏ受信カウンタが閾値を超過している場合、処理はＳ１６４へと進む。一方、ポーリングＩ／Ｏ受信カウンタが閾値を超過していない場合、処理はＳ１６５へと進む。
【０１１４】
（Ｓ１６４）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報のうち監視ステータスを監視済にセットし、ポーリングＩ／Ｏ判断結果を有にセットしてエントリ情報を更新する。Ｓ１６４の処理が完了すると、処理はＳ１５８へと進む。
【０１１５】
（Ｓ１６５）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報に登録されているポーリングＩ／Ｏアクセス時刻（最新）を参照し、ポーリングＩ／Ｏによる最終アクセスから時間Ｔ３を経過したか否かを判定する。ポーリングＩ／Ｏによる最終アクセスから時間Ｔ３を経過した場合、処理はＳ１６６へと進む。一方、ポーリングＩ／Ｏによる最終アクセスから時間Ｔ３が経過していない場合、Ｓ１５８へと進む。
【０１１６】
（Ｓ１６６）Ｉ／Ｏアクセス監視部１２４は、対象エントリのエントリ情報のうち監視ステータスを監視済にセットし、ポーリングＩ／Ｏ判断結果を無にセットしてエントリ情報を更新する。Ｓ１６６の処理が完了すると、処理はＳ１５８へと進む。
【０１１７】
（２−３−５．モータ制御処理）
次に、図１３〜図１７を参照しながら、ＥＣＯモードの設定及び解除に伴うディスクのモータ制御に際してコントローラ１１２ａが実行する処理について説明する。なお、コントローラ１１２ｂが実行する処理についても同様である。
【０１１８】
ＥＣＯモードの設定及び解除は、ＲＡＩＤグループ単位で予め決められたスケジュールに沿って実行される。例えば、バックアップシステムとして利用する場合、ＥＣＯモード制御部１２３は、予め決められたスケジュールで実行されるバックアップオペレーションの時間は対象となるＲＡＩＤグループのＥＣＯモードを解除し、それ以外はＥＣＯモードを維持しようとする。
【０１１９】
但し、スケジュールにない処理（イレギュラーオペレーション）が発生した場合、ポーリングＩ／Ｏでなければ、ＥＣＯモード制御部１２３は、その対象となるＲＡＩＤグループのＥＣＯモードを解除する。一方、ポーリングＩ／Ｏについては、擬似Ｉ／Ｏ制御部１２７が代替先の応答データを利用して応答処理を実行するため、対象となるＲＡＩＤグループのＥＣＯモードは解除されない。以下では、このようなＥＣＯモードの設定及び解除に伴うモータ制御の処理について説明する。
【０１２０】
（オフ→オン）
まず、図１３及び図１４を参照しながら、ディスクのモータをオフの状態からオンの状態に切り替える際の処理（Ｓ１１８、Ｓ１２２参照）について説明する。図１３は、第２実施形態に係るコントローラが実行するモータ制御処理（オフ→オン）のフローを示した第１のフロー図である。図１４は、第２実施形態に係るコントローラが実行するモータ制御処理（オフ→オン）のフローを示した第２のフロー図である。
【０１２１】
なお、ＥＣＯモード制御部１２３は、ＲＡＩＤグループ毎にディスクのモータがどのような状態にあるかを管理する情報（モータステータス）を保持している。モータステータスは、モータがオンの状態では「モータオン」、モータがオフの状態では「モータオフ」、モータをオンにする処理の途中では「モータオン処理中」、モータをオフにする処理の途中では「モータオフ処理中」にセットされる。
【０１２２】
（Ｓ１７１）ＥＣＯモード制御部１２３は、ＥＣＯモードから通常モードへと復帰させるＲＡＩＤグループ（対象のＲＡＩＤグループ）のモータステータスを「モータオフ」から「モータオン処理中」に変更する。
【０１２３】
（Ｓ１７２）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループに属するディスクのモータをオンにする。
（Ｓ１７３、Ｓ１７６）ＥＣＯモード制御部１２３は、ポーリングＩ／Ｏ管理テーブルの各エントリについてＳ１７６に至るＳ１７４以降の処理を実行する。ポーリングＩ／Ｏ管理テーブルにある全てのエントリについて当該処理を実行し終えた場合、処理はＳ１７７へと進む。以下、処理対象となるエントリを対象エントリと呼ぶ場合がある。
【０１２４】
（Ｓ１７４）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループを示すＬＵＮに対応するエントリがポーリングＩ／Ｏ管理テーブルにあるか否かを判定する。ポーリングＩ／Ｏ管理テーブルに該当するエントリがある場合、処理はＳ１７５へと進む。一方、ポーリングＩ／Ｏ管理テーブルに該当するエントリがない場合、処理はＳ１７６へと進む。
【０１２５】
（Ｓ１７５）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の監視ステータスを参照し、監視ステータスが監視済であるか否かを判定する。監視ステータスが監視済である場合、処理は図１４のＳ１７８へと進む。一方、監視ステータスが監視済でない場合、処理はＳ１７６へと進む。
【０１２６】
（Ｓ１７７）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループのモータステータスを「モータオン処理中」から「モータオン」に変更する。Ｓ１７７の処理が完了すると、図１３及び図１４に示した一連の処理は終了する。
【０１２７】
（Ｓ１７８）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報のポーリングＩ／Ｏ属性を参照し、ポーリングＩ／Ｏ属性がライト属性であるか否かを判定する。ポーリングＩ／Ｏ属性がライト属性である場合、処理はＳ１７９へと進む。一方、ポーリングＩ／Ｏ属性がライト属性でない場合、処理はＳ１７６へと進む。
【０１２８】
（Ｓ１７９）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループについてポーリングＩ／Ｏに応答するためのデータ（応答データ）が代替先に展開（データ複製）済みか否かを判定する。例えば、ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の代替先及び代替先アドレスを参照し、応答データを代替先にコピー済みか否かを判定する。展開済みである場合、処理はＳ１８０へと進む。一方、展開済みでない場合、処理はＳ１７６へと進む。
【０１２９】
（Ｓ１８０、Ｓ１８１）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の代替先及び代替先アドレスを参照し、代替先の代替先アドレスにあるデータを読み出す。そして、ＥＣＯモード制御部１２３は、読み出したデータを対象のＲＡＩＤグループのディスクに書き込む。この処理により、対象のＲＡＩＤグループがＥＣＯモードの期間に、代替先へのアクセスで生じたデータの変更が当該ＲＡＩＤグループのディスクに格納されている展開元のデータに反映される。
【０１３０】
（Ｓ１８２）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の代替先及び代替先アドレスを未指定の状態（図４参照）にリセットする。Ｓ１８２の処理が完了すると、処理はＳ１７６へと進む。
【０１３１】
（オン→オフ）
次に、図１５〜図１７を参照しながら、ディスクのモータをオンの状態からオフの状態に切り替える際の処理について説明する。なお、ここでは、説明の都合上、コントローラ１１２ａが実行する処理を例に説明する。但し、コントローラ１１２ｂにより実行されるモータ制御の処理も同様である。
【０１３２】
図１５は、第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第１のフロー図である。図１６は、第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第２のフロー図である。図１７は、第２実施形態に係るコントローラが実行するモータ制御処理（オン→オフ）のフローを示した第３のフロー図である。
【０１３３】
（Ｓ１９１）ＥＣＯモード制御部１２３は、通常モードからＥＣＯモードへと遷移させるＲＡＩＤグループ（対象のＲＡＩＤグループ）のモータステータスを「モータオン」から「モータオフ処理中」に変更する。
【０１３４】
（Ｓ１９２、Ｓ１９５）ＥＣＯモード制御部１２３は、ポーリングＩ／Ｏ管理テーブルの各エントリについてＳ１９５に至るＳ１９３以降の処理を実行する。ポーリングＩ／Ｏ管理テーブルにある全てのエントリについて当該処理を実行し終えた場合、処理はＳ１９６へと進む。以下、処理対象となるエントリを対象エントリと呼ぶ場合がある。
【０１３５】
（Ｓ１９３）ＥＣＯモード制御部１２３は、対象エントリが、コントローラ１１２ａが管理するＲＡＩＤグループ（自ＲＡＩＤ）のＬＵＮに対応するエントリであるか否かを判定する。対象エントリが自ＲＡＩＤのＬＵＮに対応するエントリである場合、処理は図１６のＳ１９８へと進む。一方、対象エントリが自ＲＡＩＤのＬＵＮに対応するエントリでない場合、処理はＳ１９４へと進む。
【０１３６】
（Ｓ１９４）ＥＣＯモード制御部１２３は、対象エントリが、自ＲＡＩＤを代替先とするエントリであるか否かを判定する。対象エントリが自ＲＡＩＤを代替先とするエントリである場合、処理は図１７のＳ２０２へと進む。一方、対象エントリが自ＲＡＩＤを代替先とするエントリでない場合、処理はＳ１９５へと進む。
【０１３７】
（Ｓ１９６）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループに属するディスクのモータをオフにする。
（Ｓ１９７）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループのモータステータスを「モータオフ処理中」から「モータオフ」に変更する。Ｓ１９７の処理が完了すると、図１５〜図１７に示した一連の処理は終了する。
【０１３８】
（Ｓ１９８）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報のポーリングＩ／Ｏ属性を参照し、ポーリングＩ／Ｏ属性がライト属性であるか否かを判定する。ポーリングＩ／Ｏ属性がライト属性である場合、処理はＳ１９９へと進む。一方、ポーリングＩ／Ｏ属性がライト属性でない場合、処理はＳ１９５へと進む。
【０１３９】
（Ｓ１９９、Ｓ２００）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の代替先及び代替先アドレスを参照し、代替先の代替先アドレスにあるデータを読み出す。そして、ＥＣＯモード制御部１２３は、読み出したデータを対象のＲＡＩＤグループのディスクに書き込む。この処理により、対象のＲＡＩＤグループがＥＣＯモードの期間に、代替先へのアクセスで生じたデータの変更が当該ＲＡＩＤグループのディスクに格納されている展開元のデータに反映される。
【０１４０】
（Ｓ２０１）ＥＣＯモード制御部１２３は、対象エントリに対応するエントリ情報の代替先及び代替先アドレスを未指定の状態（図４参照）にリセットする。Ｓ２０１の処理が完了すると、処理はＳ１９５へと進む。
【０１４１】
（Ｓ２０２）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループに対するポーリングＩ／Ｏのアクセス先となる応答データをコピーする代替先を確保する。
代替先としては、例えば、コピー元となるＲＡＩＤグループとは異なるＲＡＩＤグループ、ＲＡＩＤグループのディスクとは別に設けた代替用のメモリ、或いは、キャッシュとして利用するキャッシュメモリなどを利用することができる。異なるＲＡＩＤグループを代替先とする場合には、コピー元となるＲＡＩＤグループがＥＣＯモードに設定されている間、通常モードで稼働するＲＡＩＤグループが代替先の候補となる。
【０１４２】
（Ｓ２０３、Ｓ２０４）ＥＣＯモード制御部１２３は、対象のＲＡＩＤグループのディスクからデータを読み出す。そして、ＥＣＯモード制御部１２３は、読み出したデータをＳ２０２で確保した代替先に書き込む。この処理により、対象のＲＡＩＤグループに対するポーリングＩ／Ｏに応答するためのデータ（応答データ）が代替先へとコピーされ、対象のＲＡＩＤグループがＥＣＯモードの期間、代替先の応答データによる擬似Ｉ／Ｏ処理が可能になる。
【０１４３】
（Ｓ２０５）ＥＣＯモード制御部１２３は、応答データをコピーした代替先及び代替先アドレスを、対象エントリに対応するエントリ情報の代替先及び代替先アドレスにセットする。Ｓ２０５の処理が完了すると、処理はＳ１９５へと進む。
【０１４４】
以上説明したように、第２実施形態によれば、ポーリングＩ／Ｏ管理テーブルを利用してリクエストＩ／ＯがポーリングＩ／Ｏであるかを判別することができる。また、ＥＣＯモードに設定されたＲＡＩＤグループに対するリクエストＩ／ＯがポーリングＩ／Ｏである場合に擬似Ｉ／Ｏ処理を実施することで、ＥＣＯモードの設定を解除せずに済むため、電力消費量を抑制することができる。その結果、デバイス診断などの監視処理を実行するサーバが接続される環境下において、より効率的に消費電力を抑えることができる。
【０１４５】
以上、第２実施形態について説明した。
【符号の説明】
【０１４６】
５  ストレージシステム
１１、１２  上位装置
２０  ストレージ制御装置
２１  制御部
２２  記憶部
３０  ストレージ装置
３１  記憶装置
３２  代替装置
Ａ１、Ｂ１  アドレス
ａ  データ
【図１】
2016212511.tif 000003
【図２】
2016212511.tif 000004
【図３】
2016212511.tif 000005
【図４】
2016212511.tif 000006
【図５】
2016212511.tif 000007
【図６】
2016212511.tif 000008
【図７】
2016212511.tif 000009
【図８】
2016212511.tif 000010
【図９】
2016212511.tif 000011
【図１０】
2016212511.tif 000012
【図１１】
2016212511.tif 000013
【図１２】
2016212511.tif 000014
【図１３】
2016212511.tif 000015
【図１４】
2016212511.tif 000016
【図１５】
2016212511.tif 000017
【図１６】
2016212511.tif 000018
【図１７】
2016212511.tif 000019