(57)【特許請求の範囲】
【請求項１】
キャッシュを備え、ホスト装置からの前記キャッシュを介した複数の記憶装置に対するアクセスを制御するストレージ制御装置において、
前記複数の記憶装置のうち省電力モードで動作させる記憶装置の識別情報と当該記憶装置を前記省電力モードで動作させる期間を示す省電力期間とが登録された装置管理情報を記憶する記憶部と、
前記装置管理情報に登録された記憶装置のうち、現在時刻が前記省電力期間に含まれる記憶装置の動作モードを省電力モードに設定し、前記ホスト装置からのアクセスとは非同期のタイミングで前記複数の記憶装置のいずれかから前記キャッシュにコピーするための候補とするデータの識別情報が登録されたデータ管理情報から、前記装置管理情報に前記省電力期間が登録された記憶装置に格納されたデータの識別情報を削除する制御部と、
を有するストレージ制御装置。
【請求項２】
前記制御部は、前記装置管理情報に前記省電力期間が登録された記憶装置のうち、現在時刻が前記省電力期間に含まれる記憶装置に格納されたデータの識別情報を前記データ管理情報から削除する、
請求項１記載のストレージ制御装置。
【請求項３】
前記キャッシュは、ホスト装置との間でデータを入出力する１次キャッシュと、前記１次キャッシュとの間でデータを入出力する２次キャッシュとを含み、
前記ストレージ制御装置は、前記ホスト装置からの前記１次キャッシュおよび前記２次キャッシュを介した前記複数の記憶装置に対するアクセスを制御し、
前記制御部は、前記複数の記憶装置に記憶されたデータのうち、前記１次キャッシュまたは前記２次キャッシュから追い出された回数を示す追い出し回数が所定の閾値を超えたデータの識別情報を前記データ管理情報に登録し、
前記データ管理情報に登録されたデータは、当該データに対する前記ホスト装置からのアクセスとは非同期のタイミングで前記複数の記憶装置のいずれかから前記２次キャッシュにコピーされる、
請求項１または２記載のストレージ制御装置。
【請求項４】
前記制御部は、前記装置管理情報に前記省電力期間が登録された記憶装置のうち、現在時刻が前記省電力期間に含まれない記憶装置に格納されたデータについて、前記データ管理情報へ登録するかを判定する際に参照する前記追い出し回数を所定値だけ加算する、
請求項３記載のストレージ制御装置。
【請求項５】
前記制御部は、前記装置管理情報に前記省電力期間が登録された記憶装置に格納されたデータの識別情報を前記データ管理情報から削除した後、当該データが前記キャッシュに格納されている場合には前記キャッシュにおける当該データを無効化する、
請求項１乃至４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記複数の記憶装置のそれぞれは、ハードディスクドライブであり、前記省電力モードに設定されたとき、少なくとも、自装置に搭載された磁気ディスクの回転を停止させる、
請求項１乃至５のいずれか１項に記載のストレージ制御装置。
【請求項７】
キャッシュを備え、ホスト装置からの前記キャッシュを介した複数の記憶装置に対するアクセスを制御するとともに、前記複数の記憶装置のうち省電力モードで動作させる記憶装置の識別情報と当該記憶装置を前記省電力モードで動作させる期間を示す省電力期間とが登録された装置管理情報を記憶する記憶部から前記装置管理情報を読み取り可能なコンピュータに、
前記装置管理情報に登録された記憶装置のうち、現在時刻が前記省電力期間に含まれる記憶装置の動作モードを省電力モードに設定し、
前記ホスト装置からのアクセスとは非同期のタイミングで前記複数の記憶装置のいずれかから前記キャッシュにコピーするための候補とするデータの識別情報が登録されたデータ管理情報から、前記装置管理情報に前記省電力期間が登録された記憶装置に格納されたデータの識別情報を削除する、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
近年、消費電力を削減するために、様々な装置に省電力機能が設けられている。例えば、ストレージ装置の中には、任意のＨＤＤ（Hard Disk Drive）を決まった期間だけ省電力モードに設定する機能を備えたものがある。省電力モードに設定されたＨＤＤでは、例えば、磁気ディスクの回転が停止する。これにより、ストレージ装置における消費電力を削減することができる。
【０００３】
ここで、省電力に関する技術の一例として、ＨＤＤが省電力モードに入る際、省電力モードに入らないメモリ上に確保された固定データ領域に、使用状況や使用目的に応じて所定のデータをＨＤＤから転送するようにした情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２５０７１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数の記憶装置を備えるとともに、これらの記憶装置に格納されたデータの一部をキャッシュに保持する機能を備えたストレージ装置の中には、ホスト装置からのデータに対するアクセスとは非同期のタイミングで、このデータを記憶装置からキャッシュへステージングする機能を備えたものがある。このステージング処理は、キャッシュへの先読み処理の一種である。このようなストレージ装置に、任意の記憶装置を決まった期間だけ省電力モードに設定する機能を設けた場合、次のような問題が生じ得る。
【０００６】
ある記憶装置が省電力モードに設定された期間において、その記憶装置に格納されたデータのキャッシュへの先読みが実行されると、その記憶装置では省電力モードが解除されてしまう。記憶装置が省電力モードに設定される期間は、通常、その記憶装置に格納されたデータに対するホスト装置からのアクセスが要求される可能性が低い期間である。このため、そのデータがキャッシュに先読みされても、そのデータに対してホスト装置からすぐにアクセスが要求される可能性は低く、その意味では先読みの実行によるアクセス応答性能の向上効果は低い。したがって、上記期間でデータの先読みが発生した場合、省電力モードを解除する必要性の低い期間であるにもかかわらず省電力モードが解除されてしまうため、余計な電力が消費される可能性があるという問題がある。
【０００７】
１つの側面では、本発明は、消費電力を低減することが可能なストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、キャッシュを備え、ホスト装置からのキャッシュを介した複数の記憶装置に対するアクセスを制御するストレージ制御装置が提供される。このストレージ制御装置は、記憶部と制御部とを有する。記憶部は、複数の記憶装置のうち省電力モードで動作させる記憶装置の識別情報と当該記憶装置を省電力モードで動作させる期間を示す省電力期間とが登録された装置管理情報を記憶する。制御部は、装置管理情報に登録された記憶装置のうち、現在時刻が省電力期間に含まれる記憶装置の動作モードを省電力モードに設定する。また、制御部は、ホスト装置からのアクセスとは非同期のタイミングで複数の記憶装置のいずれかからキャッシュにコピーするための候補とするデータの識別情報が登録されたデータ管理情報から、装置管理情報に省電力期間が登録された記憶装置に格納されたデータの識別情報を削除する。
【０００９】
また、１つの態様では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
【発明の効果】
【００１０】
１つの側面では、消費電力を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】ストレージ装置のハードウェア例を示す図である。
【図３】ストレージ装置が有するＣＭの機能例を示す図である。
【図４】ＲＡＩＤグループテーブルの例を示す図である。
【図５】省電力管理テーブルの例を示す図である。
【図６】１次キャッシュテーブルの例を示す図である。
【図７】２次キャッシュテーブルの例を示す図である。
【図８】カウントテーブルの例を示す図である。
【図９】ステージングテーブルの例を示す図である。
【図１０】無効化処理および加点処理の実行を依頼する際に参照される情報を示す図である。
【図１１】ステージングテーブルへのレコード登録処理の例を示すフローチャートである。
【図１２】省電力制御処理の例（その１）を示すフローチャートである。
【図１３】省電力制御処理の例（その２）を示すフローチャートである。
【図１４】無効化処理の例を示すフローチャートである。
【図１５】先読み制御部による先読み処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージ装置を示す図である。ストレージ装置は、ストレージ制御装置１と複数の記憶装置とを有する。図１では例として、ストレージ装置は、３台の記憶装置２ａ〜２ｃを有するものとする。
【００１３】
ストレージ制御装置１は、記憶装置２ａ〜２ｃに格納されたデータに対する、図示しないホスト装置からの要求に応じたアクセスを制御する。ストレージ制御装置１は、このアクセス制御に利用するキャッシュを有し、ホスト装置からのキャッシュを介した記憶装置２ａ〜２ｃに対するアクセスを制御する。キャッシュの記憶領域は、記憶装置２ａ〜２ｃよりアクセス速度の高い記憶装置によって実現される。
【００１４】
図１では、キャッシュの例として、１次キャッシュ１１と２次キャッシュ１２とを示している。この構成の場合、１次キャッシュ１１は、ホスト装置との間でデータを入出力する。２次キャッシュ１２は、１次キャッシュ１１および記憶装置２ａ〜２ｃとの間でデータを入出力する。そして、ストレージ制御装置１は、ホスト装置からの１次キャッシュ１１および２次キャッシュ１２を介した記憶装置２ａ〜２ｃに対するアクセスを制御する。
【００１５】
なお、１次キャッシュ１１の記憶領域は、２次キャッシュ１２の記憶領域を実現する記憶装置より、アクセス速度の高い記憶装置によって実現される。また、２次キャッシュ１２の記憶領域は、記憶装置２ａ〜２ｃよりアクセス速度の高い記憶装置によって実現される。
【００１６】
ストレージ制御装置１は、記憶部１３と制御部１４を有する。記憶部１３は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置でもよい。制御部１４は、例えばプロセッサである。なお、プロセッサは、例えば、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。また、制御部１４は、マルチプロセッサでもよい。
【００１７】
記憶部１３は、装置管理情報１３ａを記憶する。装置管理情報１３ａには、記憶装置２ａ〜２ｃのうち省電力モードで動作させる記憶装置の識別情報（ＩＤ：identifier）と、その記憶装置を省電力モードで動作させる期間を示す省電力期間とが登録される。なお、装置管理情報１３ａには、省電力期間が記憶装置単位ではなく、複数の記憶装置を単位として登録されてもよい。例えば、装置管理情報１３ａは、複数の記憶装置が属するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループを単位として省電力期間が登録されてもよい。
【００１８】
また、ストレージ制御装置１には、制御部１４の処理に利用される情報の例として、データ管理情報１３ｂが記憶される。データ管理情報１３ｂは、記憶部１３に記憶されてもよい。データ管理情報１３ｂには、記憶装置２ａ〜２ｃに記憶されたデータのうち、先読み処理の候補とするデータの識別情報が登録される。この先読み処理とは、記憶装置２ａ〜２ｃのいずれかに記憶されたデータを、そのデータに対するホスト装置からのアクセスとは非同期のタイミングで、記憶されている記憶装置からキャッシュへコピーする処理である。ストレージ制御装置１は、このような先読み処理によってキャッシュへコピーされたデータに対してホスト装置から読み出しが要求されたとき、そのデータを記憶装置２ａ〜２ｃからではなくキャッシュから読み出すことができる。これにより、読み出し要求に対する応答時間が短縮される。
【００１９】
制御部１４は、装置管理情報１３ａに登録された記憶装置のうち、現在時刻が登録された省電力期間に含まれる記憶装置の動作モードを省電力モードに設定する。なお、省電力モードに設定された記憶装置は、データアクセスが行われる際と比較して消費電力が低くなる。例えば、記憶装置２ａ〜２ｃがＨＤＤである場合、記憶装置２ａ〜２ｃはそれぞれ、省電力モードに設定されると、少なくとも、自装置に搭載された磁気ディスクの回転を停止させる。
【００２０】
また、制御部１４は、装置管理情報１３ａに省電力期間が登録された記憶装置に格納されたデータの識別情報を、データ管理情報１３ｂから削除する。このようにデータ管理情報１３ｂから削除されたデータは、対応する記憶装置からキャッシュに対して先読みされなくなる。
【００２１】
ここで、装置管理情報１３ａには、通常、ホスト装置からのアクセス要求が送信される可能性が低い期間が省電力期間として設定される。このため、装置管理情報１３ａに基づいてある記憶装置が省電力モードに設定されている期間に、その記憶装置内のデータがキャッシュに先読みされたとしても、そのデータに対してホスト装置からのアクセス要求がすぐに送信される可能性は低い。この意味で、当該データが上記期間に先読みされることで得られるアクセス応答速度の向上効果は、あまり高くない。
【００２２】
これに対して、上記のように、制御部１４は、装置管理情報１３ａに省電力期間が設定されている記憶装置に記憶されたデータを、データ管理情報１３ｂから削除する。これにより、省電力モードに設定されている記憶装置に対して、即座にホスト装置からアクセスが要求される可能性が低いデータを先読みするためにストレージ制御装置１がアクセスするという事態が回避される。すなわち、必要性が低いタイミングで記憶装置において省電力モードが解除されることがなくなり、その分だけ記憶装置の消費電力が削減される。したがって、ストレージ装置での消費電力を低減することができる。また、アクセス応答速度の向上効果が低いデータがキャッシュに格納されなくなるので、キャッシュの使用効率が向上する。
【００２３】
以下、制御部１４の処理の具体例について説明する。ここでは、図１のように１次キャッシュ１１と２次キャッシュ１２とが設けられた場合の例について説明する。また、記憶装置２ａ，２ｂ，２ｃのＩＤを、それぞれ０００，００１，００２とする。また、記憶装置２ａにデータＤ１が、記憶装置２ｂにデータＤ２が、記憶装置２ｃにデータＤ３がそれぞれ記憶されているとする。さらに、装置管理情報１３ａには、ＩＤが０００の記憶装置２ａとＩＤが００２の記憶装置２ｃについて、省電力期間が登録されているとする。
【００２４】
また、ここでは例として、１次キャッシュ１１から追い出された追い出し回数が所定の閾値を超えたデータの識別情報が、データ管理情報１３ｂに登録されるものとする。このような追い出し回数に基づく先読み処理は、追い出し回数が多いデータには、その後のどこかのタイミングで再度ホスト装置からアクセス要求が送信される可能性が高い、という考え方に基づく処理である。ストレージ制御装置１の記憶装置には、追い出し回数を管理するための回数管理情報１３ｃが記憶される。回数管理情報１３ｃは、記憶部１３に記憶されてもよい。なお、追い出し回数は、１次キャッシュ１１から追い出された回数ではなく、２次キャッシュ１２から追い出された回数とされてもよい。
【００２５】
制御部１４は、１次キャッシュ１１から追い出されるデータを監視し、データが追い出されるたびに、そのデータについての回数管理情報１３ｃにおける追い出し回数をインクリメントする。ここで、制御部１４が、１次キャッシュ１１からデータＤ３が追い出されたことを検知したとする（ステップＳ１）。このとき、データＤ３の追い出し回数が６となり、あらかじめ決められた閾値“５”を超えたとする。この場合、制御部１４は、データＤ３の識別情報をデータ管理情報１３ｂに登録する（ステップＳ２）。なお、データ管理情報１３ｂには、すでにデータＤ２の識別情報も登録されているものとする。
【００２６】
また、制御部１４は、現在時刻が、装置管理情報１３ａに登録された省電力期間に含まれるかを、例えば一定時刻ごとに判定する。ここで、ＩＤが００２の記憶装置２ｃについて設定された省電力期間に入ったものとする。このとき、制御部１４は、記憶装置２ｃを省電力モードにする（ステップＳ３）。
【００２７】
また、制御部１４は、例えば一定時間ごとに、装置管理情報１３ａに省電力期間が登録された記憶装置に格納されているデータを、データ管理情報１３ｂから削除する。ここで、データ管理情報１３ｂに登録されたデータＤ３は、装置管理情報１３ａに省電力期間が登録された記憶装置２ｃに格納されている。このため、制御部１４は、ステップＳ２でデータＤ３をデータ管理情報１３ｂに登録した後、データＤ３をデータ管理情報１３ｂから削除する（ステップＳ４）。
【００２８】
また、制御部１４は、例えば一定時間ごとに、データ管理情報１３ｂを参照して、データ管理情報１３ｂに登録されたデータを、記憶装置２ａ〜２ｃのうちの対応する記憶装置から２次キャッシュ１２に先読みする。
【００２９】
制御部１４は、ステップＳ４の処理の後にデータ管理情報１３ｂを参照したとき、データ管理情報１３ｂに登録されたデータＤ２を記憶装置２ｂから２次キャッシュ１２に先読みする（ステップＳ５）。また、ステップＳ４でデータ管理情報１３ｂからデータＤ３が削除されているため、データＤ３は記憶装置２ｃから２次キャッシュ１２に先読みされない。このため、記憶装置２ｃは省電力モードに設定されたままになる。
【００３０】
ここで、前述のように、装置管理情報１３ａには、通常、ホスト装置からのアクセス要求が送信される可能性が低い期間が省電力期間として設定される。このため、ステップＳ５のタイミングのように、装置管理情報１３ａに基づいて記憶装置２ｃが省電力モードに設定されている期間に、記憶装置２ｃのデータが２次キャッシュ１２に先読みされたとしても、そのデータに対してホスト装置からのアクセス要求がすぐに送信される可能性は低い。この意味で、上記期間における記憶装置２ｃのデータの先読みによって得られるアクセス応答速度の向上効果は、あまり高くない。
【００３１】
これに対して、上記のように、制御部１４は、装置管理情報１３ａに省電力期間が設定されている記憶装置２ｃのデータＤ３をデータ管理情報１３ｂから削除する。これにより、省電力モードに設定されている記憶装置２ｃに対して、即座にホスト装置からアクセスが要求される可能性が低いデータＤ３を先読みするためにストレージ制御装置１がアクセスするという事態が回避される。すなわち、必要性が低いタイミングで記憶装置２ｃにおいて省電力モードが解除されることがなくなり、その分だけ記憶装置２ｃの消費電力が削減される。したがって、ストレージ装置での消費電力を低減することができる。また、アクセス応答速度の向上効果が低いデータが２次キャッシュ１２に格納されなくなるので、２次キャッシュ１２の使用効率が向上する。
【００３２】
［第２の実施の形態］
図２は、ストレージ装置のハードウェア例を示す図である。ストレージ装置１００とホスト装置２００との間は、ＳＡＳ（Serial Attached SCSI）やファイバチャネル（ＦＣ：Fibre Channel）などのケーブルを用いて接続されている。また、ストレージ装置１００とホスト装置２００とをファイバチャネルやｉＳＣＳＩ（Internet Small Computer System Interface）などを用いたＳＡＮ（Storage Area Network）を介して接続してもよい。
【００３３】
ストレージ装置１００は、ＣＭ（Controller Module）１０１およびＤＥ（Drive Enclosure）１０２を有する。ストレージ装置１００は、複数のＣＭを有していてもよいし、複数のＤＥを有していてもよい。ＣＭ１０１は、ホスト装置２００からの要求に応じたＤＥ１０２に対するデータアクセス、ストレージ装置１００内のハードウェアモジュールの動作などを制御する。
【００３４】
ＤＥ１０２は、ホスト装置２００からのアクセス対象となる記憶装置を、それぞれ複数有する。本実施の形態では、ＤＥ１０２には、このような記憶装置としてＨＤＤが搭載される。
【００３５】
なお、ＣＭ１０１は、図１のストレージ制御装置１の一例であり、ＤＥ１０２が有するＨＤＤは、図１の記憶装置２ａ〜２ｃの一例である。
ＣＭ１０１は、プロセッサ１０３、ＲＡＭ１０４、ＳＳＤ（Solid State Drive）１０５、ＣＡ（Channel Adapter）１０６、ＤＩ（Drive Interface）１０７および読み取り装置１０８を有する。
【００３６】
プロセッサ１０３は、ＣＭ１０１の情報処理を制御する。プロセッサ１０３は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。
ＲＡＭ１０４は、ＣＭ１０１の主記憶装置である。ＲＡＭ１０４は、プロセッサ１０３に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０４は、プロセッサ１０３による処理に用いる各種データを記憶する。
【００３７】
ＳＳＤ１０５は、ＣＭ１０１の補助記憶装置である。ＳＳＤ１０５は、不揮発性の半導体メモリである。ＳＳＤ１０５には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１０１は、補助記憶装置として、ＳＳＤ１０５の代わりにＨＤＤを備えていてもよい。
【００３８】
ＣＡ１０６は、ホスト装置２００と通信するためのインタフェースである。ＤＩ１０７は、ＤＥ１０２と通信するためのインタフェースである。
読み取り装置１０８は、可搬型の記録媒体１０８ａに記録されたプログラムやデータを読み取る装置である。記録媒体１０８ａとして、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０８は、例えば、プロセッサ１０３からの命令に従って、記録媒体１０８ａから読み取ったプログラムやデータをプロセッサ１０３に送信する。
【００３９】
ここで、ＤＥ１０２が有するＨＤＤのそれぞれの記憶領域は、例えば、ＲＡＩＤとして管理される。ＲＡＩＤが適用されるＨＤＤの集合は、ＲＡＩＤグループという単位で管理される。また、ＲＡＩＤグループには、ホスト装置２００からのアクセス対象となる１つ以上の論理ボリュームが設定され、各論理ボリュームにはＬＵＮ（Logical Unit Number）が割り当てられている。ホスト装置２００は、ＬＵＮおよび論理ボリュームのＬＢＡ（Logical Block Address）を指定してアクセス処理を行う。
【００４０】
図３は、ストレージ装置が有するＣＭの機能例を示す図である。ストレージ装置１００のＣＭ１０１は、１次キャッシュ１１１、２次キャッシュ１１２、管理情報記憶部１２０、アクセス制御部１３０および省電力制御部１４０を有する。
【００４１】
１次キャッシュ１１１および２次キャッシュ１１２は、ホスト装置２００からのアクセス要求に応じてＤＥ１０２にアクセスする際のキャッシュ領域として利用される。２次キャッシュ１１２は、ＤＥ１０２内の記憶装置（ＨＤＤ）よりアクセス性能の高い記憶装置に確保された記憶領域として実装され、本実施の形態では、ＳＳＤ１０５に確保された記憶領域として実装される。なお、２次キャッシュ１１２の記憶領域が確保されるＳＳＤは、ＣＭ１０１の補助記憶装置として用いられるＳＳＤ１０５とは別のＳＳＤであってもよい。１次キャッシュ１１１は、２次キャッシュ１１２を実現する記憶装置よりアクセス性能の高い記憶装置に確保された記憶領域として実装され、本実施の形態ではＲＡＭ１０４に確保された記憶領域として実装される。
【００４２】
管理情報記憶部１２０は、例えば、ＲＡＭ１０４またはＳＳＤ１０５に確保した記憶領域として実装される。管理情報記憶部１２０は、アクセス制御部１３０、先読み制御部１３１および省電力制御部１４０の処理に利用される各種の管理情報を記憶する。例えば、管理情報記憶部１２０は、ＲＡＩＤグループテーブル、省電力管理テーブル、１次キャッシュテーブル、２次キャッシュテーブル、カウントテーブルおよびステージングテーブルを記憶する。
【００４３】
ＲＡＩＤグループテーブルには、ＲＡＩＤグループに属するＨＤＤの情報などのＲＡＩＤグループの定義情報が登録される。省電力管理テーブルには、省電力モードを実行する期間の情報が登録される。１次キャッシュテーブルには、１次キャッシュ１１１に格納されているデータに関する情報が登録される。２次キャッシュテーブルには、２次キャッシュ１１２に格納されているデータに関する情報が登録される。カウントテーブルには、データ毎に１次キャッシュ１１１から追い出された回数を示す情報が登録される。ステージングテーブルには、先読み処理の対象データを示す情報が登録される。
【００４４】
また、管理情報記憶部１２０は、先読み処理の対象データを決定するための閾値を記憶する。閾値は、１次キャッシュから追い出された回数を示し、例えば３回である。
アクセス制御部１３０および省電力制御部１４０の処理は、例えば、プロセッサ１０３が所定のプログラムを実行することで実現される。
【００４５】
アクセス制御部１３０は、ホスト装置２００からのアクセス要求に応じたＤＥ１０２内のＨＤＤに対するアクセス制御を実行する。例えば、アクセス制御部１３０は、ホスト装置２００からのアクセス要求に応じてＤＥ１０２内のＨＤＤにアクセスする際、１次キャッシュ１１１および２次キャッシュ１１２を利用する。アクセス制御部１３０は、例えば、ＬＲＵ（Least Recently Used）により１次キャッシュ１１１および２次キャッシュ１１２を用いたキャッシュ制御を行う。
【００４６】
アクセス制御部１３０は、ホスト装置２００から読み出し要求されたデータが１次キャッシュ１１１にも２次キャッシュ１１２にも記憶されていない場合、このデータをＤＥ１０２内の対応するＨＤＤから読み出す。アクセス制御部１３０は、読み出したデータを１次キャッシュ１１１と２次キャッシュ１１２とに格納するとともに、ホスト装置２００に送信する。また、アクセス制御部１３０は、ホスト装置２００から読み出しが要求されたデータが１次キャッシュ１１１に記憶されていないが２次キャッシュ１１２に記憶されている場合、このデータを２次キャッシュ１１２から１次キャッシュ１１１にコピーするとともにホスト装置２００に送信する。
【００４７】
なお、これ以後、ＤＥ１０２のＨＤＤから読み出したデータを１次キャッシュ１１１および２次キャッシュ１１２に格納する処理、および、２次キャッシュ１１２に記憶されたデータを１次キャッシュ１１１にコピーする処理を、「ステージング」と記載する場合がある。
【００４８】
アクセス制御部１３０は、１次キャッシュ１１１にステージングする際に１次キャッシュ１１１に空き領域がない場合には、１次キャッシュ１１１に記憶されたデータのうち最終アクセス時から最も時間が経過しているデータを１次キャッシュ１１１から追い出す。その際、アクセス制御部１３０は、カウントテーブル内の追い出したデータに対応する追い出し回数の値をインクリメントする。また、アクセス制御部１３０は、２次キャッシュ１１２にステージングする際に２次キャッシュ１１２に空き領域がない場合には、２次キャッシュ１１２に記憶されたデータのうち最終アクセス時から最も時間が経過しているデータを２次キャッシュ１１２から追い出す。
【００４９】
また、アクセス制御部１３０は、ＤＥ１０２内のＨＤＤをＲＡＩＤによって管理する。例えば、アクセス制御部１３０は、ＲＡＩＤグループに設定された論理ボリューム内のデータをＤＥ１０２内のＨＤＤから読み出す場合、ＲＡＩＤ管理テーブルに登録された当該ＲＡＩＤグループの定義情報に基づいて、読み出し元のＨＤＤおよびアドレスを判別する。
【００５０】
また、アクセス制御部１３０は、先読み制御部１３１を有する。先読み制御部１３１は、カウントテーブルに基づいて、１次キャッシュ１１１から追い出された回数が所定の閾値を超えたデータに対応するレコードをステージングテーブルに登録する。また、先読み制御部１３１は、定期的にステージングテーブルを参照し、ステージングテーブルに登録された先頭から所定個数のレコードに対応するデータを、ＤＥ１０２から２次キャッシュ１１２にステージングする。
【００５１】
ステージングテーブルに基づくデータのステージングは、当該データに対するホスト装置２００からのアクセス要求とは非同期に行われる、いわゆる「先読み処理」である。すなわち、キャッシュ領域から所定回数以上追い出されたデータは、その後に再度ホスト装置２００からアクセスが要求されてキャッシュ領域にステージングされる可能性が高い。このため、このようなデータを２次キャッシュ１１２に先読みしておくことで、その後にホスト装置２００から当該データに対するアクセス要求を受けた場合の応答速度を向上させることができる。
【００５２】
なお、ステージングテーブルに基づいてステージングされたデータについては、ステージング後にごく短時間でホスト装置２００からアクセスが要求される可能性は低い。このため、ステージングテーブルに基づくステージングは、例えば、１次キャッシュ１１１および２次キャッシュ１１２でキャッシュミスが発生したことに伴うステージングより、実行の優先度が低い。また、キャッシュ領域への先読み処理の他の例としては、ホスト装置２００からのアクセスがシーケンシャルアクセスである場合に、アクセスが予想されるデータをキャッシュ領域にステージングする処理がある。ステージングテーブルに基づくステージングは、このようなシーケンシャルアクセスを検知したことに伴うステージングより、実行の優先度が低い。
【００５３】
また、先読み制御部１３１によって先読みされたデータを、２次キャッシュ１１２だけでなく１次キャッシュ１１１にもステージングしてもよい。ただし、上記のようにこのデータに対して即座にホスト装置２００からアクセスが要求される可能性は低い。このため、このデータを２次キャッシュ１１２にのみステージングし、それよりアクセス要求の緊急性が高いデータが１次キャッシュ１１１に残るようにすることで、キャッシュ領域の使用効率が高まり、全体としてアクセス応答性能を向上させることができる。また、一般的に、１次キャッシュ１１１より２次キャッシュ１１２の容量の方が大きい。このため、先読み制御部１３１によって先読みされたデータのようなアクセス要求の緊急性が高いとは言えないデータを２次キャッシュ１１２に格納したとしても、キャッシュ領域の使用効率は必ずしも悪化しない。すなわち、先読み制御部１３１によって先読みされたデータを２次キャッシュ１１２にのみステージングすることで、キャッシュ容量の使用効率とアクセス応答性能とをバランスをとりながら向上させることができる。
【００５４】
省電力制御部１４０は、省電力管理テーブルに設定されたスケジュールにしたがって、ＤＥ１０２内の各ＨＤＤの動作モードを通常モードと省電力モードのいずれかに制御する。省電力制御部１４０は、ＨＤＤを通常モードにする場合、ＨＤＤに対してスピンアップコマンドを送信する。これにより、ＨＤＤのディスクが回転する。また、省電力制御部１４０は、ＨＤＤの電源がＯＦＦになっている場合、ＷＯＬ（Wake On LAN）機能を用いてそのＨＤＤの電源をＯＮにし、ＨＤＤのディスクを回転させてもよい。なお、通常モードをモータＯＮと記載する場合がある。
【００５５】
一方、省電力モードには、ＨＤＤのディスクの回転を停止させるモード（モータＯＦＦ）とＨＤＤに対する電力供給を停止させるモード（電源ＯＦＦ）がある。モータＯＦＦは、電源ＯＦＦになっておらず、待機状態になっているモードである。省電力制御部１４０は、モータＯＦＦにする場合、スピンダウンコマンドを制御対象のＨＤＤに送信する。これにより、ＨＤＤのディスクの回転が停止される。また、省電力制御部１４０は、電源ＯＦＦにする場合、電源ＯＦＦのコマンドを制御対象のＨＤＤに送信する。これにより、ＨＤＤに対する電力供給が停止する。
【００５６】
省電力管理テーブルには、ＲＡＩＤグループを単位として、ＨＤＤを省電力モードに設定する期間がユーザの操作によって設定される。ユーザは、例えば、あるＲＡＩＤグループに設定された各論理ボリュームへのアクセスが行われない期間に、そのＲＡＩＤグループに属するＨＤＤを省電力モードに設定して、それらのＨＤＤにおける消費電力を削減することができる。
【００５７】
ところで、先読み制御部１３１による先読み処理と省電力制御部１４０による制御処理とが、互いに連携されずに並行して実行される場合には、次のような問題が生じる。先読み制御部１３１による先読み処理は、先読み対象のデータが格納されたＨＤＤについての省電力モードのスケジュールとは関係なく実行される。このため、データが格納されたＨＤＤが省電力モードに設定されている期間であるにもかかわらず、先読み制御部１３１が先読みのためにこのＨＤＤにアクセスする可能性がある。この場合、アクセスされたＨＤＤは自動的に省電力モードから通常モードに遷移する。
【００５８】
上記のように、ＨＤＤが省電力モードに設定されている期間には、ホスト装置２００からこのＨＤＤ内のデータへのアクセスが要求される可能性は低い。それにもかかわらず、当該データを先読みするためにＨＤＤが通常モードに遷移してしまうので、ＨＤＤが無駄な電力を消費してしまう。しかも、ＨＤＤは一旦通常モードに遷移すると所定の時間通常モードのままになるので、消費電力が増大してしまう。このように、アクセスされる可能性の低いＨＤＤが通常モードに遷移してしまい、無駄な電力が消費されてストレージ装置１００の消費電力が増加することが問題となる。
【００５９】
さらに、省電力モードの設定期間が終わるまでホスト装置２００からアクセスが要求される可能性の低いデータが２次キャッシュ１１２に格納されてしまうので、２次キャッシュ１１２の使用効率が低下することも問題となる。
【００６０】
このような問題に対し、省電力制御部１４０は上記処理に加え、省電力モードに設定されているＨＤＤ内のデータに対する先読み制御部１３１による先読み処理を実行させないための処理（以下、「無効化処理」という）の実行をアクセス制御部１３０に依頼する。無効化処理は、少なくとも、省電力モードに設定されているＨＤＤ内のデータに対応するレコードをステージングテーブルから削除する処理を含む。これにより、省電力モードが設定されているＨＤＤに対して先読み制御部１３１がアクセスすることが防止され、そのＨＤＤで無駄な電力が消費される事態が回避される。また、２次キャッシュ１１２の使用効率も改善される。
【００６１】
さらに、省電力制御部１４０は、省電力管理テーブルにスケジュールが設定されているＲＡＩＤグループの属するＨＤＤのうち、通常モードに設定されているＨＤＤ内のデータに対する先読み制御部１３１による先読み処理が実行されやすくするための処理（以下、「加点処理」という）をアクセス制御部１３０に指示する。加点処理とは、上記のＨＤＤに格納されているデータについてのカウントテーブルにおける追い出し回数を増加させる処理である。
【００６２】
次に、管理情報記憶部１２０に記憶される各種の管理情報について説明する。
図４は、ＲＡＩＤグループテーブルの例を示す図である。ＲＡＩＤグループテーブル１２１は、管理情報記憶部１２０に格納される。ＲＡＩＤグループテーブル１２１には、ＲＡＩＤグループごとにレコードが作成される。各レコードは、ＲＡＩＤグループＩＤ、ＲＡＩＤレベル、ディスク番号、ＬＵＮ、ＬＢＡおよび物理アドレスの項目を含む。
【００６３】
ＲＡＩＤグループＩＤの項目には、ＲＡＩＤグループを識別する情報が登録される。ＲＡＩＤレベルの項目には、ＲＡＩＤグループおけるＲＡＩＤレベルを示す情報が登録される。例えば、ＲＡＩＤレベルには、ＲＡＩＤ−１、ＲＡＩＤ−４、ＲＡＩＤ−５などが登録される。ディスク番号の項目には、ＲＡＩＤグループに属するＨＤＤを識別するためのディスク番号が登録される。ＬＵＮの項目には、ＲＡＩＤグループに設定された論理ボリュームを識別するためのＬＵＮが登録される。ＬＢＡの項目には、論理ボリュームにおける末尾のＬＢＡが登録され、これは論理ボリュームのサイズを示す。なお、ＲＡＩＤグループに複数の論理ボリュームが設定される場合、ＬＵＮとＬＢＡの各項目の組が、設定された論理ボリュームの数だけレコードに登録される。物理アドレスの項目には、ＬＵＮおよびＬＢＡの項目に対応するＲＡＩＤグループにおける物理記憶領域を示す情報が登録される。
【００６４】
図５は、省電力管理テーブルの例を示す図である。省電力管理テーブル１２２は、管理情報記憶部１２０に格納される。省電力管理テーブル１２２には、省電力モードのスケジュールが設定されるＲＡＩＤグループごとにレコードが作成される。各レコードは、ＲＡＩＤグループＩＤ、モータＯＦＦ期間および電源ＯＦＦ期間の項目を含む。
【００６５】
ＲＡＩＤグループＩＤの項目には、ＲＡＩＤグループを識別する情報が登録される。モータＯＦＦ期間の項目には、ＲＡＩＤグループに属するＨＤＤをモータＯＦＦにする期間が登録される。電源ＯＦＦ期間の項目には、ＲＡＩＤグループに属するＨＤＤを電源ＯＦＦにする期間が登録される。なお、１つのレコードには、モータＯＦＦ期間と電源ＯＦＦ期間のうちの一方の項目にのみ情報が登録される。また、省電力モードに設定しないＲＡＩＤグループについては省電力管理テーブル１２２には登録されない。
【００６６】
省電力管理テーブル１２２に登録される情報は、例えば、ユーザにより、ＲＡＩＤグループに属するＨＤＤ内のデータに対してホスト装置２００からアクセスされない期間を予測して設定される。すなわち、省電力モード（モータＯＦＦ、電源ＯＦＦ）のスケジュールが登録されたＲＡＩＤグループに属するＨＤＤ内のデータは、モータＯＦＦ期間または電源ＯＦＦ期間が終了するまではアクセスされないデータである。
【００６７】
図６は、１次キャッシュテーブルの例を示す図である。１次キャッシュテーブル１２３は、管理情報記憶部１２０に格納される。１次キャッシュテーブル１２３には、１次キャッシュ１１１に格納されたデータ（ブロック）ごとにレコードが作成される。各レコードは、ＬＵＮ、ＬＢＡおよび１次キャッシュアドレスの項目を含む。
【００６８】
ＬＵＮの項目には、対応するデータが属する論理ボリュームを示すＬＵＮが登録される。ＬＢＡの項目には、対応するデータの論理ボリュームにおけるＬＢＡが登録される。１次キャッシュアドレスの項目には、１次キャッシュ１１１における対応データの格納先記憶領域を示すアドレスが登録される。
【００６９】
アクセス制御部１３０は、１次キャッシュテーブル１２３を参照することにより、ＬＵＮおよびＬＢＡから特定されるデータが１次キャッシュ１１１に格納されているか否かを判定することができる。また、アクセス制御部１３０は、１次キャッシュアドレスの項目を参照することにより、対応するデータの１次キャッシュ１１１における位置を認識することができる。
【００７０】
また、１次キャッシュテーブル１２３のレコードには順位が付与されている。ホスト装置２００からデータのアクセスが要求されると、このデータに対応するレコードは１次キャッシュテーブル１２３の先頭に移動される。このような処理により、１次キャッシュテーブル１２３の最後尾には、最終アクセスからの経過時間が最も長いデータに対応するレコードが登録される。したがって、１次キャッシュテーブル１２３の最後尾のレコードに対応するデータは、１次キャッシュ１１１から最優先で追い出されるデータとなる。
【００７１】
図７は、２次キャッシュテーブルの例を示す図である。２次キャッシュテーブル１２４は、管理情報記憶部１２０に格納される。２次キャッシュテーブル１２４には、２次キャッシュ１１２に格納されたデータ（ブロック）ごとにレコードが作成される。各レコードは、ＬＵＮ、ＬＢＡおよび２次キャッシュアドレスの項目を含む。
【００７２】
ＬＵＮの項目には、対応するデータが属する論理ボリュームを示すＬＵＮが登録される。ＬＢＡの項目には、対応するデータの論理ボリュームにおけるＬＢＡが登録される。２次キャッシュアドレスの項目には、２次キャッシュ１１２における対応データの格納先記憶領域を示すアドレスが登録される。
【００７３】
アクセス制御部１３０は、２次キャッシュテーブル１２４を参照することにより、ＬＵＮおよびＬＢＡから特定されるデータが２次キャッシュ１１２に格納されているか否かを判定することができる。また、アクセス制御部１３０は、２次キャッシュアドレスの項目を参照することにより、対応するデータの２次キャッシュ１１２における位置を認識することができる。
【００７４】
また、２次キャッシュテーブル１２４のレコードには順位が付与されている。ホスト装置２００からデータのアクセスが要求されると、このデータに対応するレコードは２次キャッシュテーブル１２４の先頭に移動される。このような処理により、２次キャッシュテーブル１２４の最後尾には、最終アクセスからの経過時間が最も長いデータに対応するレコードが登録される。したがって、２次キャッシュテーブル１２４の最後尾のレコードに対応するデータは、２次キャッシュ１１２から最優先で追い出されるデータとなる。
【００７５】
なお、ライトバック方式で書き込み制御が行われる場合、１次キャッシュテーブル１２３および２次キャッシュテーブル１２４の各レコードには、ステータスの項目が追加される。ステータスの項目には、対応するキャッシュ領域において更新されたデータが下位層の記憶領域に反映済みであるか否かを示すステータス情報が登録される。
【００７６】
図８は、カウントテーブルの例を示す図である。カウントテーブル１２５は、管理情報記憶部１２０に格納される。カウントテーブル１２５には、キャッシュ領域に格納されたことがあるデータ（ブロック）ごとにレコードが作成される。各レコードは、ＬＵＮ、ＬＢＡおよび追い出し回数の項目を含む。
【００７７】
ＬＵＮの項目には、対応するデータが属する論理ボリュームを示すＬＵＮが登録される。ＬＢＡの項目には、対応するデータの論理ボリュームにおけるＬＢＡが登録される。追い出し回数の項目には、ＬＵＮおよびＬＢＡから特定されるデータが１次キャッシュ１１１から追い出された回数が登録される。
【００７８】
アクセス制御部１３０は、１次キャッシュ１１１からデータを追い出す（デステージングする）際に、当該データに対応するレコードがカウントテーブル１２５に登録されているかを判定する。当該データに対応するレコードが登録されていない場合、アクセス制御部１３０は、当該データに対応するレコードをカウントテーブル１２５に追加する。アクセス制御部１３０は、追加したレコードに当該データについてのＬＵＮおよびＬＢＡを登録するとともに、追加したレコードの追い出し回数の項目に初期値“１”を登録する。一方、当該データに対応するレコードがカウントテーブル１２５に登録済みであった場合、アクセス制御部１３０は、そのレコードの追い出し回数の値をインクリメントする。
【００７９】
図９は、ステージングテーブルの例を示す図である。ステージングテーブル１２６は、管理情報記憶部１２０に格納される。ステージングテーブル１２６には、データ（ブロック）ごとにレコードが登録される。各レコードは、ＬＵＮおよびＬＢＡの項目を含む。ＬＵＮの項目には、対応するデータが属する論理ボリュームを示すＬＵＮが登録される。ＬＢＡの項目には、対応するデータの論理ボリュームにおけるＬＢＡが登録される。
【００８０】
ステージングテーブル１２６に登録されるＬＵＮおよびＬＢＡから特定されるデータは、先読み制御部１３１による先読み処理の対象データである。また、ステージングテーブル１２６のレコードには順位が付与されており、先頭のレコードに対応するデータが先読みの優先度が最も高いデータとなる。
【００８１】
図１０は、無効化処理および加点処理の実行を依頼する際に参照される情報を示す図である。省電力制御部１４０は、省電力管理テーブル１２２を参照することで、ＲＡＩＤグループ毎に、省電力モードに設定される期間内か期間外かを判定する。省電力制御部１４０は、判定した内容を示す一覧表を生成する。
【００８２】
図１０（Ａ）は、省電力制御部１４０により生成される省電力モード対象一覧表１５１の例を示す図である。省電力モード対象一覧表１５１には、モータＯＦＦまたは電源ＯＦＦに設定される期間内のＲＡＩＤグループのＩＤが登録される。省電力制御部１４０は、省電力モード対象一覧表１５１に基づいて、アクセス制御部１３０に無効化処理を依頼する。
【００８３】
図１０（Ｂ）は、省電力制御部１４０により生成された省電力モード対象外一覧表１５２の例を示す図である。省電力モード対象外一覧表１５２には、省電力モードに設定される期間外（すなわち、通常モードに設定される期間内）のＲＡＩＤグループのＩＤが記録される。省電力制御部１４０は、省電力モード対象外一覧表１５２に基づいて、アクセス制御部１３０に加点処理を依頼する。
【００８４】
なお、図示しないが、ＲＡＩＤグループに属さないＨＤＤについても、省電力モード対象外一覧表１５２と同様の一覧表が生成される。この場合、一覧表には、ＲＡＩＤグループＩＤの代わりにディスク番号が記録される。
【００８５】
図１１は、ステージングテーブルへのレコード登録処理の例を示すフローチャートである。以下、図１１の処理をステップ番号に沿って説明する。なお、図１１の処理は、先読み制御部１３１によって定期的に実行される。例えば、先読み制御部１３１は図１１の処理を３０秒間隔で実行する。
【００８６】
（Ｓ１１）先読み制御部１３１は、カウントテーブル１２５を参照し、追い出し回数が所定の閾値を超えたレコードがあるかを判定する。追い出し回数が閾値を超えたレコードがある場合、処理をステップＳ１２に進める。追い出し回数が閾値を超えたレコードがない場合、処理を終了する。
【００８７】
（Ｓ１２）先読み制御部１３１は、２次キャッシュテーブル１２４を参照し、ステップＳ１１で追い出し回数が閾値を超えたと判定されたレコードから、対応するデータが２次キャッシュ１１２に格納されているレコードを除外する。
【００８８】
（Ｓ１３）先読み制御部１３１は、残りのレコード内のＬＵＮおよびＬＢＡをそれぞれ登録したレコードを、ステージングテーブル１２６の末尾に登録する。また、先読み制御部１３１は、これらのレコードに対応するカウントテーブル１２５のレコードを削除する。なお、カウントテーブル１２５内の対応するレコードを削除する代わりに、カウントテーブル１２５内の対応するレコードの追い出し回数を０にリセットしてもよい。
【００８９】
図１２は、省電力制御処理の例（その１）を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。なお、図１２の処理は定期的に実行される。例えば、図１２の処理は３０秒間隔で実行される。
【００９０】
（Ｓ２１）省電力制御部１４０は、省電力管理テーブル１２２のモータＯＦＦ期間および電源ＯＦＦ期間を参照し、現在の時刻に基づいて、ＲＡＩＤグループごとに、省電力モードに設定される期間内であるか否かを判定する。そして、省電力制御部１４０は、省電力モードに設定される期間内であるＲＡＩＤグループを示す省電力モード対象一覧表１５１を生成する。
【００９１】
（Ｓ２２）省電力制御部１４０は、ステップＳ２１の判定結果に基づいて、省電力モードに設定される期間外であるＲＡＩＤグループを示す省電力モード対象外一覧表１５２を生成する。
【００９２】
（Ｓ２３）省電力制御部１４０は、省電力モード対象一覧表１５１からＲＡＩＤグループを１つ選択する。省電力制御部１４０は、選択したＲＡＩＤグループのＩＤをアクセス制御部１３０に通知して、それらのＲＡＩＤグループの無効化処理の実行をアクセス制御部１３０に依頼する。
【００９３】
（Ｓ２４）アクセス制御部１３０は、ステップＳ２３の依頼に応じて、通知されたＲＡＩＤグループに設定された論理ボリュームのデータについて、無効化処理を実行する。なお、無効化処理の内容については図１４で説明する。無効化処理が完了した場合、アクセス制御部１３０は、その旨を省電力制御部１４０に通知する。
【００９４】
（Ｓ２５）省電力制御部１４０は、省電力モード対象一覧表１５１に記録されているＲＡＩＤグループについて、全て処理済みか否かを判定する。全て処理済みの場合、処理をステップＳ２６に進める。全て処理済みでない場合、処理をステップＳ２３に進める。
【００９５】
（Ｓ２６）省電力制御部１４０は、省電力モード対象外一覧表１５２からＲＡＩＤグループを１つ選択する。省電力制御部１４０は、選択したＲＡＩＤグループのＩＤをアクセス制御部１３０に通知して、それらのＲＡＩＤグループの加点処理の実行をアクセス制御部１３０に依頼する。
【００９６】
（Ｓ２７）アクセス制御部１３０は、カウントテーブル１２５を参照し、ステップＳ２６で通知されたＲＡＩＤグループに設定された論理ボリュームに含まれるデータの追い出し回数に、所定数を加算する。具体的には、アクセス制御部１３０は、ＲＡＩＤグループテーブル１２１を参照し、ステップＳ２６で通知されたＲＡＩＤグループに設定された論理ボリュームのＬＵＮを特定する。アクセス制御部１３０は、特定したＬＵＮが登録されたレコードがカウントテーブル１２５に存在するか否かを判定する。特定したＬＵＮが登録されたレコードが存在する場合、アクセス制御部１３０は、それらのレコードにおける追い出し回数の値に所定数を加算する。以上の加算処理が完了した場合、アクセス制御部１３０は、その旨を省電力制御部１４０に通知する。
【００９７】
（Ｓ２８）省電力制御部１４０は、省電力モード対象外一覧表１５２に記録されているＲＡＩＤグループについて、全て処理済みか否かを判定する。全て処理済みの場合、処理をステップＳ２９に進める。全て処理済みでない場合、処理をステップＳ２６に進める。
【００９８】
（Ｓ２９）省電力制御部１４０は、省電力管理テーブル１２２に設定されたスケジュールに基づくＨＤＤの動作モード制御処理を実行する。具体的には、次のような処理が実行される。
【００９９】
省電力制御部１４０は、省電力管理テーブル１２２を参照して、現在の時刻がモータＯＦＦの期間に該当するＲＡＩＤグループを特定する。省電力制御部１４０は、ＲＡＩＤグループテーブル１２１を参照して、特定したＲＡＩＤグループに属するＨＤＤを特定し、特定したＨＤＤにスピンダウンコマンドを送信する。これにより、モータＯＦＦのＲＡＩＤグループに属するＨＤＤのディスクの回転が停止される。なお、すでにモータＯＦＦになっているＨＤＤにはスピンダウンコマンドが送信されなくてもよい。
【０１００】
また、省電力制御部１４０は、省電力管理テーブル１２２を参照して、現在の時刻が電源ＯＦＦの期間に該当するＲＡＩＤグループを特定する。省電力制御部１４０は、ＲＡＩＤグループテーブル１２１を参照して、特定したＲＡＩＤグループに属するＨＤＤを特定し、特定したＨＤＤに電源ＯＦＦのコマンドを送信する。これにより、電源ＯＦＦのＲＡＩＤグループに属するＨＤＤに対する電力供給が停止する。なお、すでに電源ＯＦＦになっているＨＤＤには電源ＯＦＦのコマンドが送信されなくてもよい。
【０１０１】
また、省電力制御部１４０は、省電力管理テーブル１２２を参照して、現在の時刻がモータＯＦＦの期間にも電源ＯＦＦの期間にも該当しない（すなわち、通常モードの期間に該当する）ＲＡＩＤグループを特定する。省電力制御部１４０は、ＲＡＩＤグループテーブル１２１を参照して、特定したＲＡＩＤグループに属するＨＤＤを特定し、特定したＨＤＤにスピンアップコマンドを送信する。これにより、モータＯＦＦまたは電源ＯＦＦになっているＨＤＤが通常モードに遷移する。なお、すでに通常モードになっているＨＤＤにはスピンアップコマンドが送信されなくてもよい。
【０１０２】
そして、処理を図１３のステップＳ３１に進める。
図１３は、省電力制御処理の例（その２）を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１０３】
（Ｓ３１）省電力制御部１４０は、ＤＥ１０２に搭載されたＨＤＤのうち、ＲＡＩＤグループに属していないＨＤＤを特定する。
（Ｓ３２）ＲＡＩＤグループに属していないＨＤＤは、ホスト装置２００からのアクセス対象にはならない。このため、省電力制御部１４０は、ステップＳ３１で特定したＨＤＤを省電力モードに設定する。例えば、省電力制御部１４０は、ステップＳ３１で特定したＨＤＤに対して電源ＯＦＦのコマンドを送信する。そして、処理を終了する。
【０１０４】
図１４は、無効化処理の例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。図１４に示す処理は、ステップＳ２４の処理に対応する。
（Ｓ４１）アクセス制御部１３０の先読み制御部１３１は、ステップＳ２３で通知されたＲＡＩＤグループについてのデータの情報がステージングテーブル１２６に存在する場合、その情報を削除する。
【０１０５】
具体的には、先読み制御部１３１は、ＲＡＩＤグループテーブル１２１を参照し、通知されたＲＡＩＤグループに設定された論理ボリュームのＬＵＮを特定する。先読み制御部１３１は、ステージングテーブル１２６から、特定したＬＵＮが登録されたレコードを特定し、特定したレコードをステージングテーブル１２６から削除する。これにより、先読み制御部１３１は、省電力管理テーブル１２２に省電力モードのスケジュールが登録され、省電力モードにする期間に入ったＲＡＩＤグループに属するＨＤＤが格納しているデータについて、先読み処理を実行できなくなる。
【０１０６】
（Ｓ４２）アクセス制御部１３０は、ステップＳ２３で通知されたＲＡＩＤグループについてのデータが２次キャッシュ１１２に格納されている場合、そのデータを無効化する。
【０１０７】
具体的には、アクセス制御部１３０は、２次キャッシュテーブル１２４を参照し、ステップＳ４１で特定したＬＵＮが登録されたレコードが２次キャッシュテーブル１２４に存在するかを判定する。該当レコードが存在する場合、アクセス制御部１３０は、該当レコードを２次キャッシュテーブル１２４から削除する。これにより、該当レコードに対応する２次キャッシュ１１２内のデータが無効化され、これらのデータが格納されていた領域が解放される。
【０１０８】
（Ｓ４３）アクセス制御部１３０は、ステップＳ２３で通知されたＲＡＩＤグループについてのデータが１次キャッシュ１１１に格納されている場合、そのデータを無効化する。
【０１０９】
具体的には、アクセス制御部１３０は、１次キャッシュテーブル１２３を参照し、ステップＳ４１で特定したＬＵＮが登録されたレコードが１次キャッシュテーブル１２３に存在するかを判定する。該当レコードが存在する場合、アクセス制御部１３０は、該当レコードを１次キャッシュテーブル１２３から削除する。これにより、該当レコードに対応する１次キャッシュ１１１内のデータが無効化され、これらのデータが格納されていた領域が解放される。
【０１１０】
なお、ステップＳ４２とステップＳ４３の処理順は逆であってもよい。一方、ステップＳ４１は、ステップＳ４２，Ｓ４３の前に実行されることが望ましい。これにより、省電力モードに設定される期間に該当するＨＤＤからのデータ読み出しを優先的に抑止することができ、ストレージ装置１００の消費電力を確実に低減することができる。
【０１１１】
以上の図１２〜図１４の処理において、ステップＳ４１では、省電力モード対象一覧表１５１に記録されたＲＡＩＤグループに属するＨＤＤに格納されたデータのレコードが、ステージングテーブル１２６から削除される。これにより、省電力モードに設定されているＨＤＤに格納されたデータは、先読み制御部１３１による先読み処理の対象外となる。よって、ホスト装置２００からすぐにアクセスが要求される可能性が低いデータを先読みするために、省電力モードに設定されたＨＤＤに対するアクセスが発生することがなくなり、省電力モードが解除されることが防止される。したがって、ストレージ装置１００の消費電力を低減できる。
【０１１２】
また、ステップＳ４２，Ｓ４３では、省電力モード対象一覧表１５１に記録されたＲＡＩＤグループに属するＨＤＤに記録されたデータが、１次キャッシュ１１１および２次キャッシュ１１２から実質的に削除される。これにより、１次キャッシュ１１１および２次キャッシュ１１２の記憶領域にすぐにアクセスが要求される可能性がより高いデータを格納することができるようになり、キャッシュ領域の利用効率が向上し、ホスト装置２００に対するアクセス応答性能も向上する。
【０１１３】
また、ステップＳ２７では、省電力モード対象外一覧表１５２に記録されたＲＡＩＤグループに属するＨＤＤに格納されたデータについて、追い出し回数が増加される。これにより、これらのデータを先読み制御部１３１による先読み処理の対象に該当しやすくできる。これらのデータは、通常モードに設定されるようにスケジューリングされたＨＤＤに格納されたものであるので、ホスト装置２００からすぐにアクセスが要求される可能性が高い。そのため、これらのデータを先読み処理の対象に該当しやすくし、２次キャッシュ１１２に予め格納することで、迅速なアクセス処理を実現できる。
【０１１４】
また、ステップＳ３２では、ＲＡＩＤグループに属さないＨＤＤが省電力モードに設定される。ＲＡＩＤグループに属さないＨＤＤはホスト装置２００からのアクセス対象とならないので、これらのＨＤＤを省電力モードに設定することで、アクセス応答性能を損なうことなくストレージ装置１００の消費電力を低減できる。
【０１１５】
図１５は、先読み制御部による先読み処理の例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。なお、図１５の処理は定期的に実行される。例えば、図１５の処理は３０秒間隔で実行される。また、図１５の処理は、例えば、キャッシュミスの発生に伴う１次キャッシュ１１１および２次キャッシュ１１２へのステージングより実行優先度が低い。したがって、図１５の処理は、少なくとも、キャッシュミスの発生に伴うステージングが要求されていない期間に実行されるように制御されることが望ましい。
【０１１６】
（Ｓ５１）先読み制御部１３１は、ステージングテーブル１２６の先頭から所定数のレコードを選択する。
（Ｓ５２）先読み制御部１３１は、ステップＳ５１で選択したレコードに対応するデータを２次キャッシュ１１２へステージングする。ここで、図１４のステップＳ４１の処理により、ステージングテーブル１２６からは、省電力モードに設定されたＨＤＤに格納されたデータに対応するレコードが削除されている。このため、ステップＳ５２では、省電力モードに設定されているＨＤＤに対するアクセスは発生しない。
【０１１７】
（Ｓ５３）先読み制御部１３１は、ステップＳ５１で選択したレコードをステージングテーブル１２６から削除する。
なお、上記の第２の実施の形態では、省電力制御部１４０は、省電力管理テーブル１２２にスケジュールが登録されたＲＡＩＤグループのうち、省電力モードに設定される期間内であるＲＡＩＤグループに属するＨＤＤ内のデータのレコードを、ステージングテーブル１２６から削除した。しかし、他の例として、省電力制御部１４０は、省電力管理テーブル１２２にスケジュールが登録されたすべてのＲＡＩＤグループに属するＨＤＤ内のデータのレコードを、ステージングテーブル１２６から削除してもよい。ただし、前者の処理では、対応するＲＡＩＤグループが省電力モードに設定されていない期間にステージングテーブル１２６に登録されたデータが２次キャッシュ１１２に先読みされる可能性が残る。このため、ＨＤＤでの消費電力を増加させることなく、アクセス応答性能を向上させることができる。また、上記の加点処理を実行可能にもなる。
【０１１８】
なお、第１の実施の形態の情報処理は、ストレージ制御装置１に用いられるプロセッサに、プログラムを実行させることで実現できる。第２の実施の形態の情報処理は、プロセッサ１０３にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。
【０１１９】
また、アクセス制御部１３０および省電力制御部１４０に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。また、アクセス制御部１３０および省電力制御部１４０の機能が別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１０４やＳＳＤ１０５などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【０１２０】
なお、各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
【符号の説明】
【０１２１】
１  ストレージ制御装置
２ａ，２ｂ，２ｃ  記憶装置
１１  １次キャッシュ
１２  ２次キャッシュ
１３  記憶部
１３ａ  装置管理情報
１３ｂ  データ管理情報
１３ｃ  回数管理情報
１４  制御部
【図１】
0006417951.tif 000002
【図２】
0006417951.tif 000003
【図３】
0006417951.tif 000004
【図４】
0006417951.tif 000005
【図５】
0006417951.tif 000006
【図６】
0006417951.tif 000007
【図７】
0006417951.tif 000008
【図８】
0006417951.tif 000009
【図９】
0006417951.tif 000010
【図１０】
0006417951.tif 000011
【図１１】
0006417951.tif 000012
【図１２】
0006417951.tif 000013
【図１３】
0006417951.tif 000014
【図１４】
0006417951.tif 000015
【図１５】
0006417951.tif 000016