(57)【要約】【課題】ストレージ装置の消費電力を削減できるストレージ装置及び電源の制御方法を提案しようとするものである。【解決手段】仮想ボリュームに割り当てられた各記憶領域に対するアクセスの時間帯の履歴を記録する第１の記録部と、複数のプール領域のそれぞれに属する複数の記憶領域に対するアクセスの時間帯の履歴に基づき、所定の演算を実行し、演算結果を複数のプール領域毎に記録する第２の記録部と、第１の記録部から、複数の記憶領域のうちの任意の記憶領域に対するアクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を、第２の記録部に記録された演算結果と比較する比較部と、比較部での比較の結果に基づいて、取得したアクセスの時間帯の履歴と類似する計算結果であるプール領域を複数のプール領域から選択して、選択されたプール領域中の記憶領域に任意の記憶領域に格納されているデータを移動する移動部と、を有することとした。【選択図】図１
2010015446.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に対して仮想的な記憶領域を提供する仮想ボリュームと、
前記ホスト装置から前記仮想ボリュームに対するアクセスに基づいて前記仮想ボリュームに割り当てられる複数の記憶領域をそれぞれ備えた複数のプール領域と、
前記仮想ボリュームに割り当てられた各記憶領域に対するアクセスの時間帯の履歴を記録する第１の記録部と、
前記複数のプール領域のそれぞれに属する前記複数の記憶領域に対する前記アクセスの時間帯の履歴に基づき、所定の演算を実行し、演算結果を前記複数のプール領域毎に記録する第２の記録部と、
前記第１の記録部から、前記複数の記憶領域のうちの任意の記憶領域に対する前記アクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を、前記第２の記録部に記録された演算結果と比較する比較部と、
前記比較部での比較の結果に基づいて、前記取得したアクセスの時間帯の履歴と類似する前記計算結果であるプール領域を前記複数のプール領域から選択して、選択されたプール領域中の記憶領域に前記任意の記憶領域に格納されているデータを移動する移動部と、
を有することを特徴とするストレージ装置。
【請求項２】
前記移動部では、所定の時間間隔ごとに前記任意の記憶領域と前記複数のプール領域とのアクセスの時間帯の類似度によって、前記任意の記憶領域に格納されているデータを移動することを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記比較部では、前記取得したアクセスの時間帯の履歴と前記第２の記録部に記録された演算結果とをビット演算することで類似度値を算出し、前記類似度値と、前記取得したアクセスの時間帯の履歴と前記第２の記録部に記録された演算結果とのアクセス時間帯の一致の有無を判断する閾値と、を比較することを特徴とする請求項２記載のストレージ装置。
【請求項４】
前記比較の結果により前記任意の記憶領域のアクセスの時間帯が類似する前記計算結果であるプール領域が存在しない場合には、前記任意の記憶領域に対するアクセスの時間帯の履歴と同一のアクセスの時間帯の履歴を保持するプール領域を作成する作成部をさらに有することを特徴とする請求項３記載のストレージ装置。
【請求項５】
１又は複数のＲＡＩＤグループを構成する複数のハードディスクドライブを備え、
前記任意のプール領域は前記１又は複数のＲＡＩＤグループのいずれかを包含し、他のプール領域は前記任意のプール領域に包含されるＲＡＩＤグループを包含しないことを特徴とする請求項１記載のストレージ装置。
【請求項６】
前記第２の記録部では、所定の時間間隔で前記第２の記録部に記録された演算結果を更新することを特徴とする請求項４記載のストレージ装置。
【請求項７】
任意のＲＡＩＤグループに所属する記憶領域に対してアクセスのない時間が所定の時間を経過している場合に、前記任意のＲＡＩＤグループを構成するハードディスクドライブを、ＲＡＩＤグループ単位で、省電力動作とする又は当該ハードディスクドライブの電源をオフすることを特徴とする請求項１記載のストレージ装置。
【請求項８】
任意のＲＡＩＤグループに所属する記憶領域に対してアクセスがある場合に、ＲＡＩＤグループ単位で、前記任意のＲＡＩＤグループを構成するハードディスクドライブの回転速度を規定値まで上げることを特徴とする請求項７記載のストレージ装置。
【請求項９】
ホスト装置からのアクセスに対して記憶領域を提供する複数のボリュームと、
前記複数のボリュームのグループにより構成される複数のボリュームグループと、
前記ボリュームに対するアクセスの時間帯の履歴を記録する第１の記録部と、
前記ボリュームグループに属する前記ボリュームに対する前記アクセスの時間帯の履歴に基づいて所定の演算を実行し、演算結果を前記ボリュームグループ毎に記録する第２の記録部と、
前記第１の記録部から、任意のボリュームに対する前記アクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を前記第２の記録部に記録された演算結果と比較する比較部と、
前記比較部での比較の結果に基づいて、前記取得したアクセスの時間帯の履歴に類似する傾向の計算結果であるボリュームグループを前記ボリュームグループのうちから選択して、選択されたボリュームグループのボリュームに前記任意のボリュームに格納されたデータを移動する移動部と、
を有することを特徴とするストレージ装置。
【請求項１０】
同一ＲＡＩＤグループに属するボリュームから前記ボリュームグループを構成することを特徴とする請求項９に記載のストレージ装置。
【請求項１１】
ホスト装置からのアクセスに対して仮想的な記憶領域を提供する仮想ボリュームと、前記ホスト装置から前記仮想ボリュームに対するアクセスに基づいて前記仮想ボリュームに割り当てられる複数の記憶領域をそれぞれ備えた複数のプール領域と、を有するストレージ装置の電源の制御方法において、
前記仮想ボリュームに割り当てられた各記憶領域に対するアクセスの時間帯の履歴を第１の記録部に記録するステップと、
前記複数のプール領域のそれぞれに属する前記複数の記憶領域に対する前記アクセスの時間帯の履歴に基づき、所定の演算を実行し、演算結果を前記複数のプール領域毎に第２の記録部に記録するステップと、
前記第１の記録部から、前記複数の記憶領域のうちの任意の記憶領域に対する前記アクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を前記第２の記録部に記録された演算結果と比較部で比較するステップと、
前記比較部での比較の結果に基づいて、前記取得したアクセスの時間帯の履歴に類似する前記計算結果であるプール領域を前記複数のプール領域から選択して、選択されたプール領域中の記憶領域に前記任意の記憶領域に格納されているデータを移動するステップと、
を備えることを特徴とする電源の制御方法。
【請求項１２】
前記移動するステップでは、所定の時間間隔ごとに前記任意の記憶領域と前記複数のプール領域とのアクセスの時間帯の類似度によって、前記任意の記憶領域に格納されているデータを移動することを特徴とする請求項１１記載の電源の制御方法。
【請求項１３】
前記比較するステップでは、前記取得したアクセスの時間帯の履歴と前記第２の記録部に記録された演算結果とをビット演算することで類似度値を算出し、前記類似度値と、前記取得したアクセスの時間帯の履歴と前記第２の記録部に記録された演算結果とのアクセス時間帯の一致の有無を判断する閾値と、を比較することを特徴とする請求項１２記載の電源の制御方法。
【請求項１４】
前記比較の結果により前記任意の記憶領域のアクセスの時間帯が類似する前記計算結果であるプール領域が存在しない場合には、前記任意の記憶領域に対するアクセスの時間帯の履歴と同一のアクセスの時間帯の履歴を保持するプール領域を作成するステップをさらに有することを特徴とする請求項１３記載の電源の制御方法。
【請求項１５】
１又は複数のＲＡＩＤグループを構成する複数のハードディスクドライブを備え、
前記任意のプール領域は前記１又は複数のＲＡＩＤグループのいずれかを包含し、他のプール領域は前記任意のプール領域に包含されるＲＡＩＤグループを包含しないことを特徴とする請求項１１記載の電源の制御方法。
【請求項１６】
前記第２の記録部に記録するステップでは、所定の時間間隔で前記第２の記録部に記録された演算結果を更新することを特徴とする請求項１４記載の電源の制御方法。
【請求項１７】
任意のＲＡＩＤグループに所属する記憶領域に対してアクセスのない時間が所定の時間を経過している場合に、前記任意のＲＡＩＤグループを構成するハードディスクドライブを、ＲＡＩＤグループ単位で、省電力モードとする又は当該ハードディスクドライブの電源をオフする、ステップを有することを特徴とする請求項１１記載の電源の制御方法。
【請求項１８】
任意のＲＡＩＤグループに所属する記憶領域に対してアクセスがある場合に、ＲＡＩＤグループ単位で、前記任意のＲＡＩＤグループを構成するハードディスクドライブの回転速度を規定値まで上げる、ステップを有することを特徴とする請求項１７記載の電源の制御方法。
【請求項１９】
ホスト装置からのアクセスに対して記憶領域を提供する複数のボリュームのグループにより複数のボリュームグループを構成するステップと、
前記ボリュームに対するアクセスの時間帯の履歴を第１の記録部で記録するステップと、
前記ボリュームグループに属する前記ボリュームに対する前記アクセスの時間帯の履歴に基づいて所定の演算を実行し、演算結果を前記ボリュームグループ毎に第２の記録部で記録するステップと、
前記第１の記録部から、任意のボリュームに対する前記アクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を前記第２の記録部に記録された演算結果と比較部で比較するステップと、
前記比較部での比較の結果に基づいて、前記取得したアクセスの時間帯の履歴に類似する傾向の計算結果であるボリュームグループを前記ボリュームグループのうちから選択して、選択されたボリュームグループのボリュームに前記任意のボリュームに格納されたデータを移動するステップと、
を有することを特徴とする電源の制御方法。
【請求項２０】
同一ＲＡＩＤグループに属するボリュームから前記ボリュームグループを構成することを特徴とする請求項１９に記載の電源の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及び電源の制御方法に関し、特に消費電力の削減を必要とするストレージ装置について適用する。
【背景技術】
【０００２】
ストレージ装置は、複数のハードディスクドライブ（以下、ハードディスクドライブ群という）を搭載しており、このハードディスクドライブ群をＲＡＩＤ（Redundant Array of Independent/Inexpensive Disks）方式で管理する装置である。
ハードディスクドライブ群には、複数のデータをまとめたファイルや、複数のデータのバックアップデータなどが格納されているが、これらのデータを使用する管理者やそのデータの内容によって、ストレージ装置がそのファイルやバックアップデータを格納するハードディスクドライブ群にアクセスしない時間帯がある。
特許文献１には、データにアクセスしてから次にアクセスするまでの間隔時間によってストレージ装置がデータを分類し、間隔時間が長く頻繁にアクセスされないデータを高性能で高価格なハードディスクドライブから低価格で大容量のハードディスクドライブに移動し、低価格で大容量のハードディスクドライブの回転を停止させる技術が開示されている。特許文献１によれば、分類したデータを格納した低価格で大容量のハードディスクドライブの回転を停止するため、省エネルギー化を図ることができる。
【特許文献１】特開２００７−２１９７０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１の技術では、アクセスの間隔時間でデータを分類しているので、例えば、５時にアクセスされ、その５時間後の１０時にアクセスされる任意のデータと、８時にアクセスされ、その５時間後の１３時にアクセスされる他のデータとは、アクセスの間隔時間が５時間で同じであるため、同一のハードディスクドライブに移動されてしまう。このためストレージ装置は、移動させたハードディスクドライブを停止させるものの、５時、８時、１０時及び１３時のアクセスに対応させるため、停止させたハードディスクドライブをこれらの時間に再び起動させなければならない。複数のデータが低価格で大容量のハードディスクドライブに移動した場合には、ストレージ装置はこのハードディスクドライブの停止又は起動の頻繁に制御しなければならない。このように、アクセス時間の時間間隔に応じてデータを分類すると、ストレージ装置が頻繁にハードディスクを起動、停止しなければならない場合もあり、十分に消費電力を削減することができない、という問題が生じる。
【０００４】
そこで、本発明は、時間的なアクセスパターンが類似するデータでグループ分けすることにより、ストレージ装置の消費電力を削減できるストレージ装置及び電源の制御方法を提案する。
【課題を解決するための手段】
【０００５】
このような課題を解決するため、本発明は、ホスト装置に対して仮想的な記憶領域を提供する仮想ボリュームと、ホスト装置から仮想ボリュームに対するアクセスに基づいて仮想ボリュームに割り当てられる複数の記憶領域をそれぞれ備えた複数のプール領域と、仮想ボリュームに割り当てられた各記憶領域に対するアクセスの時間帯の履歴を記録する第１の記録部と、複数のプール領域のそれぞれに属する複数の記憶領域に対するアクセスの時間帯の履歴に基づき、所定の演算を実行し、演算結果を複数のプール領域毎に記録する第２の記録部と、第１の記録部から、複数の記憶領域のうちの任意の記憶領域に対するアクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を、第２の記録部に記録された演算結果と比較する比較部と、比較部での比較の結果に基づいて、取得したアクセスの時間帯の履歴と類似する計算結果であるプール領域を複数のプール領域から選択して、選択されたプール領域中の記憶領域に任意の記憶領域に格納されているデータを移動する移動部と、を有することを特徴とする。
【０００６】
その結果、時間的なアクセスパターンが類似するデータをプール領域ごとにグループ分けすることができる。
【０００７】
また、本発明においては、ホスト装置からのアクセスに対して記憶領域を提供する複数のボリュームと、複数のボリュームのグループにより構成される複数のボリュームグループと、ボリュームに対するアクセスの時間帯の履歴を記録する第１の記録部と、ボリュームグループに属するボリュームに対するアクセスの時間帯の履歴に基づいて所定の演算を実行し、演算結果をボリュームグループ毎に記録する第２の記録部と、第１の記録部から、任意のボリュームに対するアクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を第２の記録部に記録された演算結果と比較する比較部と、比較部での比較の結果に基づいて、取得したアクセスの時間帯の履歴に類似する傾向の計算結果であるボリュームグループをボリュームグループのうちから選択して、選択されたボリュームグループのボリュームに任意のボリュームに格納されたデータを移動する移動部と、を有することを特徴とする。
【０００８】
その結果、時間的なアクセスパターンが類似するデータをプール領域ごとにグループ分けすることができる。
【０００９】
また、本発明においては、ホスト装置からのアクセスに対して仮想的な記憶領域を提供する仮想ボリュームと、ホスト装置から仮想ボリュームに対するアクセスに基づいて仮想ボリュームに割り当てられる複数の記憶領域をそれぞれ備えた複数のプール領域と、を有するストレージ装置の電源の制御方法において、仮想ボリュームに割り当てられた各記憶領域に対するアクセスの時間帯の履歴を第１の記録部に記録するステップと、複数のプール領域のそれぞれに属する複数の記憶領域に対するアクセスの時間帯の履歴に基づき、所定の演算を実行し、演算結果を複数のプール領域毎に第２の記録部に記録するステップと、第１の記録部から、複数の記憶領域のうちの任意の記憶領域に対するアクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を第２の記録部に記録された演算結果と比較部で比較するステップと、比較部での比較の結果に基づいて、取得したアクセスの時間帯の履歴に類似する計算結果であるプール領域を複数のプール領域から選択して、選択されたプール領域中の記憶領域に任意の記憶領域に格納されているデータを移動するステップと、を備えることを特徴とする。
【００１０】
その結果、時間的なアクセスパターンが類似するデータをプール領域ごとにグループ分けすることができる。
【００１１】
さらに、本発明においては、ホスト装置からのアクセスに対して記憶領域を提供する複数のボリュームのグループにより複数のボリュームグループを構成するステップと、ボリュームに対するアクセスの時間帯の履歴を第１の記録部で記録するステップと、ボリュームグループに属するボリュームに対するアクセスの時間帯の履歴に基づいて所定の演算を実行し、演算結果をボリュームグループ毎に第２の記録部で記録するステップと、第１の記録部から、任意のボリュームに対するアクセスの時間帯の履歴を取得し、当該取得したアクセスの時間帯の履歴を第２の記録部に記録された演算結果と比較部で比較するステップと、比較部での比較の結果に基づいて、取得したアクセスの時間帯の履歴に類似する傾向の計算結果であるボリュームグループをボリュームグループのうちから選択して、選択されたボリュームグループのボリュームに任意のボリュームに格納されたデータを移動するステップと、を有することを特徴とする。
【００１２】
その結果、時間的なアクセスパターンが類似するデータをプール領域ごとにグループ分けすることができる。
【発明の効果】
【００１３】
本発明によれば、アクセスの時間帯が類似するデータを同一のＲＡＩＤグループ（プール領域）にグループ分けすることができるため、ストレージ装置の消費電力を削減できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）ストレージシステムの構成
図１において、１は全体として本実施の形態によるストレージシステムを示している。このストレージシステムは、ホスト装置２がＳＡＮ３（Storage Area Network）を介してストレージ装置４と接続され、ストレージ装置４が管理ネットワーク５を介して管理端末６と接続される構成である。
ホスト装置２は、ＣＰＵ（図示せず）やメモリ（図示せず）等の情報処理資源を備えたコンピュータ装置であり、ストレージ装置４に対してデータの入出力要求の発行等を行う。
ホスト装置２とストレージ装置４との通信には、ファイバチャネルプロトコルやｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  ＳＣＳＩ）が使用される。
ストレージ装置４は、複数のハードディスクドライブから構成されるドライブ群Ｄと、複数のハードディスクドライブをＲＡＩＤ方式で動作するように統制するコントローラ群Ｃと、で構成される。
ドライブ群を構成するハードディスクドライブは、例えばＳＣＳＩディスクやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）等のアクセス性能の高い高価なディスクや、ＳＡＴＡディスクや光ディスク等のアクセス性能の低い安価なディスク等が用いられる。
コントローラ群は、ホストインタフェース４０（図中、ホストＩＦと表記）、管理インタフェース４１（図中、管理ＩＦと表記）、ＣＰＵ４２、不揮発性メモリ４３、主メモリ４４、キャッシュメモリ４５、及びハードディスクドライブインタフェース４６（図中、ＨＤＤ ＩＦと表記）から構成される。
ホストインタフェース４０は、ホスト装置２とストレージ装置４との間で、データやデータの入出力要求の送受信を行う。また管理インタフェース４１は、管理端末６とストレージ装置４との間で、ストレージ装置４の情報の送受信を行う。
ＣＰＵ４２は、インタフェース４０、４１を介して送受信されるデータやストレージ装置４の情報の入出力を制御する。また、ＣＰＵ４２は、不揮発性メモリ４３に格納される各種テーブルや各種プログラムを主メモリ４４に読み出し、読み出したプログラムを実行する。
不揮発性メモリ４３は、主にストレージ装置４を制御するために必要な情報を格納するメモリである。不揮発性メモリ４３には、管理端末６と通信するための管理端末通信プログラム７、仮想ボリュームに実容量を割り当てための仮想化プログラム８、ホスト装置２からのアクセスをアクセスの時間帯の履歴として記録するためのアクセス履歴記録プログラム９、仮想ボリュームに割り当てられる実容量の単位であるページを時間的なアクセスパターンが類似するハードディスクドライブ群に移動するためのページ移動プログラム１０、時間帯によってアクセスされないデータを保存するハードディスクドライブ群の電源のオン・オフを制御するためのＨＤＤ電源制御プログラム１１が格納されている。なお、アクセスとは、ホストからのライト要求又は、リード要求、又はその他の設定状態の取得、変更要求などをいう。また、不揮発性メモリには、ハードディスクドライブテーブル１２（図中、ＨＤＤテーブルと表記）、ＲＡＩＤグループテーブル１３、実ボリュームテーブル１４、プールテーブル１５、仮想ボリュームテーブル１６、マッピングテーブル１７、及び、ページテーブル１８が格納されている。各種テーブルの説明は後述する。
キャッシュメモリ４５は、主にストレージ装置４に入出力されるデータを一時的に格納する。
ハードディスクドライブインタフェース４６を介して、ドライブ群Ｄとコントローラ群Ｃとの間でデータの送受信を行う。
管理端末６は、管理ネットワーク５を介してストレージ装置４の動作や状態を管理するためのコンピュータ装置である。管理端末６は、図２に示すように、管理インタフェース６１（図中、管理ＩＦと表記）、マウスを示すポインティング装置６２、キーボードを示す入力装置６３、画面を示す出力装置６４、ＣＰＵ６５、主メモリ６６、及び、ハードディスクドライブ（図中、ＨＤＤと表記）から構成される。
管理インタフェース６１を介して、管理端末６とストレージ装置４との間で通信を行う。
ＣＰＵ６５は、管理インタフェース６１を介してストレージ装置４へ送信されるストレージ装置４の情報の取得要求や、ストレージ装置４から送信され管理端末６にて受信されるストレージ装置４の情報の入力を制御する。また、ＣＰＵ６５は、ハードディスクドライブに格納される各種プログラム６７、６８を主メモリ６６に読み出し、読み出したプログラムを実行する。
ハードディスクドライブには、ＵＩ（User Interface）制御プログラム６７とストレージ通信プログラム６８とが格納されている。ＵＩ制御プログラム６７は、受信したストレージ装置４の情報を出力装置６４に表示し、入力装置６３からの入力受付を行うためのプログラムである。ストレージ通信プログラム６８は、管理端末６がストレージ装置４と通信するためのプログラムである。ＣＰＵ４２が、ストレージ通信プログラム６８を実行することにより、ストレージ装置４から管理インタフェース６１を介してストレージ装置４の情報を受信することができる。
【００１６】
（２）ドライブ群の論理的な構成
本実施の形態によるストレージシステム１では、図３に示すように、ドライブ群Ｄを構成する複数のハードディスクドライブのうち、数台のハードディスクドライブで１つのＲＡＩＤグループが構成される。そしてこの１つのＲＡＩＤグループの記憶領域上に、１以上の実ボリュームＲが形成される。１以上の実ボリューム群から構成される記憶領域群をプールＰと呼ぶ。１つのプールＰは、１つのＲＡＩＤグループ又は複数のＲＡＩＤグループに対応する。一方で、ストレージ装置４は、ホスト装置２がアクセスできる仮想的な記憶領域（以下、仮想ボリュームＶという）をホスト装置２に提供する。仮想ボリュームＶとは、ホスト装置２から仮想ボリュームＶに対してデータのライト要求があると、プールＰにある実ボリュームＲから実際の記憶容量が割り当てられるボリュームである。このように、プールＰにある実ボリュームＲから実際の記憶容量が仮想ボリュームＶに割り当てられる記憶領域の単位をページと呼ぶ。したがって、実ボリュームＲの記憶領域（実ページＲＰ）と仮想ボリュームＶの記憶領域（仮想ページＶＰ）は、ページ単位で対応付けられている。
このように、仮想ボリュームＶに、適宜実際に使用する記憶容量を割り当てるので、ホスト装置に対して余分な記憶容量を提供する必要がなくプールＰの記憶容量を有効に活用することができる。
【００１７】
（３）不揮発性メモリに格納される各テーブル
それでは次に、不揮発性メモリ４３に格納される各テーブルについて説明する。
【００１８】
（３−１）ハードディスクドライブテーブル
ハードディスクドライブテーブル１２（図中、ＨＤＤテーブルと表記）は、ストレージ装置４に搭載される全てのハードディスクドライブを管理するためのテーブルである。ハードディスクドライブテーブル１２は、ハードディスクドライブを識別するための「ＨＤＤ ＩＤ」欄１２０と「状態」欄１２１とから構成される。「状態」欄１２１は、そのハードディスクドライブがＲＡＩＤグループを構成するために使用されているか否かを示す欄である。例えば、図４に示すハードディスクドライブテーブル１２では、ハードディスクドライブ「Ｈ００」はＲＡＩＤグループを構成するために使用されているので「状態」欄１２１には「使用中」という情報が登録される。一方、ハードディスクドライブ「Ｈ０８」はＲＡＩＤグループを構成するために使用されていないので「状態」欄１２１には「未使用」という情報が登録される。
【００１９】
（３−２）ＲＡＩＤグループテーブル
ＲＡＩＤグループテーブル１３（図中、ＲＧテーブルと表記）は、ＲＡＩＤグループを構成するハードディスクドライブの動作状態を管理するためのテーブルである。ＲＡＩＤグループテーブル１３は、ＲＡＩＤグループを識別するための「ＲＧ ＩＤ」欄１３０と、そのＲＡＩＤグループを構成するハードディスクドライブを識別するための「ＨＤＤ ＩＤ」欄１３１と、そのハードディスクドライブが省電力で動作しているか否かを示す「状態」欄１３２と、から構成される。省電力とは、ＲＡＩＤグループを構成するハードディスクドライブを動かすときに通常使用される電力より小さい電力又は電力がゼロである電力をいう。例えば、図５に示すＲＡＩＤグループテーブル１３では、ハードディスクドライブ「Ｈ００」、「Ｈ０１」、「Ｈ０２」及び「Ｈ０３」がＲＡＩＤグループ「ＲＧ００」を構成し、これらのハードディスクドライブは通常の回転で動作する「スピンアップ」の状態であることを示している。また、ハードディスクドライブ「Ｈ０４」、「Ｈ０５」、「Ｈ０６」及び「Ｈ０７」がＲＡＩＤグループ「ＲＧ０１」を構成し、これらのハードディスクドライブは省電力で動作する「スピンダウン」の状態であることを示している。なお、スピンダウンとは、通電しているハードディスクドライブではあるが、ハードディスクドライブの回転を停止させた状態をいう。図５では、省電力動作として「スピンダウン」のみを例示したが、他には、回転速度の低減（Low RPM）やハードディスクドライブ全体への通電offなどの省電力動作もある。
【００２０】
（３−３）実ボリュームテーブル
実ボリュームテーブル１４は、実ボリュームＲに対してアクセスされる時刻を管理し、実ボリュームＲが所属するＲＡＩＤグループの省電力動作を管理するためのテーブルである。実ボリュームテーブル１４は、実ボリュームＲを識別する「Ｒ ＩＤ」欄１４０と、その実ボリュームＲの記憶容量を示す「サイズ」欄１４１と、その実ボリュームＲが所属するＲＡＩＤグループを識別する「ＲＧ ＩＤ」欄１４２と、その実ボリュームＲに対してアクセスされた最終時刻を示す「最終アクセス時刻」欄１４３と、「状態」欄１４４と、から構成される。
「状態」欄１４４は、その実ボリュームＲに対するアクセスが最終アクセス時刻から所定の時間間隔を超えていて、その実ボリュームＲが所属するＲＡＩＤグループの省電力動作が可能か否かを示す欄である。
例えば、図６に示す実ボリュームテーブル１４では、実ボリューム「Ｒ００」に対してアクセスされた最終アクセス時刻は「2008年4月1日12:00」であり、この最終アクセス時刻から所定の時間間隔は経過していないため、実ボリューム「Ｒ００」が所属するＲＡＩＤグループ「ＲＧ００」は省電力で動作はできない状態「スピンダウン不可」であることを示している。また、実ボリューム「Ｒ０１」に対してアクセスされた最終アクセス時刻は「2008年１月1日00:00」であり、この最終アクセス時刻から所定の時間間隔は経過しているため、実ボリューム「Ｒ０１」が所属するＲＡＩＤグループ「ＲＧ０１」は省電力での動作はできる状態「スピンアップ可」であることを示している。
【００２１】
（３−４）プールテーブル
プールテーブル１５は、プールＰを構成する実ボリュームＲを管理し、この実ボリュームＲに対してアクセスされた時間帯の履歴の集約データを管理するテーブルである。
プールテーブル１５は、プールＰを識別するための「Ｐ ＩＤ」欄１５０と、そのプールＰを構成する実ボリュームＲを識別するための「Ｒ ＩＤ」欄１５１と、この実ボリュームＲに対してアクセスされたか否かの記録を集約した「アクセス履歴サマリ」欄１５２と、から構成される。
また、プールＰに割り当てられた実ボリュームＲのＲＡＩＤグループＲＧ中の、他の実ボリュームＲを、他のプールＰに割り当てない。
「アクセス履歴サマリ」欄１５２には、所定の時間毎に、そのプールＰを構成する実ボリュームＲに対してアクセスされたか否かをビットで示している。本実施の形態では、２時間毎のアクセス履歴サマリを示している。そして、それぞれのビットがそれぞれの時間帯に対応している。例えば、最下位ビットは２２時から０時に対応しており、最上位ビットは０時から２時に対応している。本実施の形態では、プールＰを構成する実ボリュームＲに対して２時間毎にアクセスがあった場合には「０」、アクセスがなかった場合には「１」、としてビットで示している。
例えば、図７に示すプールテーブル１５において、プール「Ｐ０１」を構成する実ボリューム「Ｒ０１」は、０時から２時、２時から４時、４時から６時、及び６時から８時、までの時間帯にはアクセスされなかったことを示している。８時から０時の時間帯には実ボリューム「Ｒ０１」にアクセスされたことを示している。なお、プール「Ｐ００」はデフォルトプールであり、常にアクセスされる実ボリューム「Ｒ００」が所属するプールＰを予め作成しておく。仮想ボリュームＶを作成する時、ストレージ装置４はこのデフォルトプールを構成する実ボリュームＰからページを割り当てる。
【００２２】
（３−５）仮想ボリュームテーブル
仮想ボリュームテーブル１６は、仮想ボリュームＶの数やその容量を管理するためのテーブルである。仮想ボリュームテーブル１６は、仮想ボリュームＶを識別するための「Ｖ ＩＤ」欄１６０と、その仮想ボリュームの記憶容量を示す「サイズ」欄１６１と、から構成される。「サイズ」欄１６１に登録される記憶容量が、仮想的にホスト装置２に提供されていることになる。ただし、実ボリュームは仮想ボリュームに対して「サイズ」分割り当てられておらず、データの格納時に適宜必要な容量の実ボリュームがページ単位で仮想ボリュームＶに割り当てられる。例えば、図８に示す仮想ボリュームテーブル１６では、仮想ボリューム「Ｖ００」、「Ｖ０１」ともに「８０ＧＢ」の記憶容量がホスト装置２に仮想的に提供されていることを示す。
【００２３】
（３−６）マッピングテーブル
マッピングテーブル１７は、仮想ボリュームＶと実ボリュームＲとの対応関係を示すテーブルである。マッピングテーブル１７は、仮想ボリュームＶを識別するための「Ｖ ＩＤ」欄１７０と、仮想ボリュームＶの仮想ページＶＰを識別するための「仮想ページＮｏ」欄１７１と、その仮想ボリュームＶと対応付けられた実ボリュームＲを識別するための「Ｒ ＩＤ」欄１７２と、その仮想ボリュームＶの仮想ページＶＰと対応付けられた実ボリュームＲの実ページＲＰを識別するための「実ページＮｏ」欄１７３と、から構成される。例えば、図９に示すマッピングテーブル１７では、仮想ボリューム「Ｖ００」の仮想ページ「ＶＰ０１」は、実ボリューム「Ｒ００」の実ページ「ＲＰ０１」の記憶容量が割り当てられていることを示している。なお、仮想ボリュームＶの仮想ページＶＰに実際の記憶容量が割り当てられていない場合には、実ボリュームＲの「Ｒ ＩＤ」欄１７２と「実ページＮｏ」欄１７３には、「null（割り当てなし）」が登録される。
【００２４】
（３−７）ページテーブル
ページテーブル１８は、実ボリュームＲの実ページＲＰに対してアクセスされた時間帯の履歴を管理するテーブルである。ページテーブル１８は、実ボリュームＲを識別するための「Ｒ ＩＤ」欄１８０と、その実ボリュームＲの実ページＲＰを識別するための「実ページＮｏ」欄１８１と、その実ページＲＰに仮想ボリュームＶの仮想ページＶＰが割り当てられているか否かを識別するための「状態」欄１８２と、所定の時間内にその実ページＲＰに何回アクセスがあったかを数える「アクセスカウンタ」欄１８３と、所定の時間毎にその実ページＲＰに対してアクセスがあったか否かを履歴として記録する「アクセス履歴」欄１８４と、から構成される。
「アクセス履歴」欄１８４は、実ページＲＰに対して、所定の時間ごとのアクセス履歴をビットで示している。本実施の形態では、２時間毎のアクセス履歴を示している。そして、それぞれのビットがそれぞれの時間帯に対応している。例えば、最下位ビットは２２時から０時に対応しており、最上位ビットは０時から２時に対応している。
例えば、図１０に示すページテーブル１８は、２３時に管理者が参照しているテーブルとする。ストレージ装置４は２時間ごとにそのページに対してアクセスがあったか否かを履歴として記録している。
実ボリューム「Ｒ０１」のページ「ＲＰ０１」のアクセス履歴をみると、０時から２時、２時から４時、及び６時から８時の時間帯にはアクセスがなかったことを示している。本実施の形態では、アクセスがなかった場合には、該当する時間帯に対応するビットに「１」が登録され、アクセスがあった場合には、該当する時間帯に対応するするビットに「０」が登録される。また、２３時現在において、実ボリューム「Ｒ０１」の実ページ「ＲＰ０１」には一度もアクセスがないことを示している。０時までに一度もアクセスがない場合には、２２時から０時の時間帯を示すアクセス履歴の右端のビットに「１」（アクセスなし）が登録されることになる。
一方、実ボリューム「Ｒ００」の実ページ「ＲＰ０２」には、２３時現在において、２２時から２３時までに、１６回のアクセスがあったことを示している。この場合、２２時から０時の時間帯を示すアクセス履歴の右端のビットには「０」（アクセスあり）が登録されることになる。
上述したプールテーブル１５のアクセス履歴サマリは、プールＰに含まれる全ての実ページＲＰのアクセス履歴の論理積（ＡＮＤ）が出力される。ある所定の時間帯において、プールＰに含まれる全実ページＲＰのアクセス履歴のビットが全て「１」であるなら、プールテーブル１５のアクセス履歴サマリのビットには「１」が登録されるが、アクセス履歴のビットが全て「１」でなければ、アクセス履歴サマリのビットには「０」が登録される。すなわち、プールＰに含まれる全実ページＲＰにアクセスがなかった場合にのみ、アクセス履歴サマリのビットには「１」が登録される。なお、本実施の形態では、アクセス履歴サマリとして、プールＰに含まれる全実ページＲＰのアクセス履歴の論理積（ＡＮＤ）を時間帯ごとに出力させているが、時間帯ごとにプールＰに含まれる全実ページのアクセスの有無が分かれば良く、論理積を用いて算出するだけに限られない。
【００２５】
（４）アクセスカウンタの更新処理
ここで、ページテーブル１８のアクセスカウンタを更新する処理について、図１１のフローチャートを用いて説明する。この更新処理は、ストレージ装置４のＣＰＵ４２がアクセス履歴記録プログラム９に基づいて実行する。
まず、ＣＰＵ４２は、実ページＲＰに対して、リード又はライト要求を受領すると、この更新処理を開始する。そして、ＣＰＵ４２は、実ページＲＰに対してリード又はライトが行われると、その実ページＲＰに対応するページテーブル１８のアクセスカウンタ１８３をインクリメントして（Ｓ１）、この処理を終了する。例えば、アクセスカウンタに１を加算する。
このようにある時間帯において、任意の実ボリュームＲに対してリード又はライトが行われると、アクセスカウンタがインクリメントされる。
【００２６】
（５）アクセス履歴の記録処理
次に、ページテーブル１８のアクセス履歴を記録する処理について、図１２のフローチャートを用いて説明する。この処理も、更新処理と同様に、ストレージ装置４のＣＰＵ４２がアクセス履歴記録プログラム９に基づいて実行する。
まずＣＰＵ４２は、所定の時間間隔でこの処理を開始する。本実施の形態では、２時間間隔でＣＰＵ４２がこの処理を開始する。
ＣＰＵ４２は、任意の実ボリュームＲの最初の実ページＲＰを処理対象に設定すると（Ｓ１１）、処理対象の実ページＲＰが仮想ボリュームＶの仮想ページＶＰに割り当てられているか否か、つまり実ボリュームテーブル１４の「状態」欄が使用中となっているか否かを判断する（Ｓ１２）。処理対象の実ページＲＰが仮想ボリュームＶの仮想ページＶＰに割り当てられている場合には（Ｓ１２：ＹＥＳ）、ＣＰＵ４２は引き続きアクセスカウンタがゼロか否かを判断する（Ｓ１３）。
アクセスカウンタがゼロである場合には（Ｓ１３：ＹＥＳ）、処理対象の実ページＲＰには２時間のうちにアクセスが一度もなかったことを示しているので、ＣＰＵ４２はページテーブル１８のアクセス履歴の最近２時間を表すビットにアクセスなしを示す「１」を記録する（Ｓ１４）。
一方、アクセスカウンタがゼロではない場合には（Ｓ１３：ＮＯ）、処理対象の実ページＲＰに２時間のうちにアクセスカウンタの回数分だけアクセスがあったことを示しているので、ＣＰＵ４２はページテーブル１８のアクセス履歴の最近２時間を表すビットにアクセスありを示す「０」を記録する（Ｓ１５）。その後、ＣＰＵ４２は、ページテーブル１８のアクセスカウンタを「０」に戻してリセットする（Ｓ１６）。
ＣＰＵ４２はアクセス履歴に登録し終えると、次に処理対象となる実ページＲＰを選択し（Ｓ１７：ＮＯ、Ｓ１８）、ステップＳ１２からステップＳ１６までの処理を行う。そしてＣＰＵ４２は、任意の実ボリュームＲの全ての実ページＲＰについてアクセス履歴の記録を行うと（Ｓ１７：ＹＥＳ）、この処理を終了する。
【００２７】
（６）実ページの移動処理
上述で説明したようにアクセス履歴をストレージ装置４によって管理される実ページＲＰを、アクセス有無の時間帯が類似する実ページごとにグループ分けする、ページ移動処理について図１３を用いて説明する。ページ移動処理は、ストレージ装置４のＣＰＵ４２がページ移動プログラム１０に基づいて、所定の間隔で実行する。この間隔は、アクセス履歴の記録処理の間隔より長い間隔となる。本実施の形態においては、ＣＰＵ４２は例えば１日毎にページ移動処理を実行する。
ＣＰＵ４２は、任意の実ボリュームＲの最初の実ページＲＰを処理対象に設定すると（Ｓ２１）、処理対象の実ページＲＰが仮想ボリュームＶの仮想ページＶＰに割り当てられているか否か、つまり実ボリュームテーブル１４の「状態」欄１４４が使用中となっているか否かを判断する（Ｓ２２）。処理対象の実ページＲＰが仮想ボリュームＶの仮想ページＶＰに割り当てられている場合には（Ｓ２２：ＹＥＳ）、ＣＰＵ４２は実ページＲＰのアクセス履歴と、その実ページＲＰが所属するプールＰのアクセス履歴サマリと、の類似度を計算する（Ｓ２３）。具体的には、ＣＰＵ４２は、実ページＲＰのアクセス履歴（図１０の１８４）と、その実ページＲＰが所属するプールＰのアクセス履歴サマリ（図７の１５２）と、の論理積（ＡＮＤ）を計算する。ＣＰＵ４２は、論理積を計算した算出結果にもとづき、算出結果の「１」を示すビットの個数を類似度値とする。ＣＰＵ４２は、処理対象の実ページＲＰが、現在所属しているプールＰに依然として所属していてもいいのか否かを判断するために、類似度値を算出する。なお、類似度値の算出には、処理対象の実ページＲＰに対してアクセスのあった時間がどのくらいあるのかを判断基準にしてもよく、「０」と「１」のビット配列が類似するか否かを判断できればよい。
例えば、実ページＲＰのアクセス履歴が「000011001111」であり、その実ページＲＰが所属するプールＰのアクセス履歴サマリが「000010001111」であったとする。ＣＰＵ４２が実ページＲＰのアクセス履歴と、その実ページＲＰが所属するプールＰのアクセス履歴サマリとのビット演算（論理積）を計算した結果、「１」を示すビット個数は「５」である。このとき、類似度値は「５」となる。
算出した類似度値が予め設定されている閾値未満である場合には（Ｓ２４：ＹＥＳ）、ＣＰＵ４２は、処理対象の実ページＲＰに対してアクセスがない時間帯と現在所属しているプールに対してアクセスがない時間帯との一致度が低いため、処理対象の実ページＲＰを、アクセスがない時間帯の一致度が高い、他のプールＰに移動する必要があると、判断する。ここでいう閾値とは、アクセスの時間帯の類似度を判断するための境界値をいう。この閾値は管理者によって任意に設定される。
例えば、閾値が「８」で設定されている場合には、類似度値「５」は閾値「８」未満なので、ＣＰＵ４２は他のプールＰに移動する必要のある実ページＲＰであると判断する。
引き続きＣＰＵ４２は、移動先のプールＰが存在するか否かを判断する（Ｓ２５）。すなわち、ＣＰＵ４２は、処理対象の実ページＲＰのアクセス履歴と、他のプールＰのアクセス履歴サマリとの類似度値をステップＳ２３と同様の手順で算出し、算出した類似度値が閾値以上か否かを判断する。
移動先のプールＰが存在しない場合には（Ｓ２５：ＮＯ）、ＣＰＵ４２は、プール作成処理を実行して（Ｓ３０）、移動先のプールＰを新しく作成する。プール作成処理については、後述する。ＣＰＵ４２は、ステップＳ３０で作成した移動先のプールＰに処理対象の実ページのデータをコピーすると、ステップＳ３１の処理を引き続き実行することになる。
一方、移動先のプールＰが存在する場合には（Ｓ２５：ＹＥＳ）、ＣＰＵ４２は実ページＲＰをその移動先のプールＰに移動するために、移動先のプールＰに所属する未使用の実ページＲＰを特定する（Ｓ２６）。ＣＰＵ４２は、プールテーブル１５を参照して移動先のプールＰに所属する実ボリュームＲをピックアップすると、ページテーブル１８を参照してピックアップした実ボリュームＲを構成する実ページＲＰのうち「状態」欄１４４が「未使用」である実ページＲＰを検索する。
ＣＰＵ４２は「未使用」である実ページＲＰを検索すると、検索した実ページＲＰの「状態」欄１４４を「未使用」から「使用中」に更新する（Ｓ２７）。
その後、ＣＰＵ４２は、処理対象の実ページＲＰのデータを、特定した実ページＲＰにコピーすると（Ｓ２８）、処理対象の実ページＲＰに該当するページテーブル１８の「状態」欄１８２を「使用中」から「未使用」に更新する（Ｓ２９）。
ＣＰＵ４２は、処理対象となる次の実ページＲＰを設定すると（Ｓ３１：ＮＯ、Ｓ３２）、次の実ページＲＰに対して、ステップＳ２２からステップＳ３０までの処理を行う。そしてＣＰＵ４２は、任意の実ボリュームＲの全ての実ページＲＰについてグループ分けを行うと（Ｓ３１：ＹＥＳ）、この処理を終了する。
なお、ステップＳ２２において処理対象の実ページＲＰが未使用の場合（Ｓ２２：ＮＯ）、ステップＳ２４において類似度値が閾値以上であるため実ページＲＰを移動させる必要のない場合には（Ｓ２４：ＮＯ）、ＣＰＵ４２は処理対象となる次の実ページＲＰを設定する（Ｓ３１：ＮＯ、Ｓ３２）。
１つのプールＰは1以上のＲＡＩＤグループに対応して形成されているが、実ページのデータを他のプールに移動するということは、そのデータは移動前のプールが保持するアクセスの時間帯とは異なるアクセスの時間帯を保持する他のＲＡＩＤグループに格納されたことになる。このように、本実施の形態のグループ分けはプール毎に行われる。
また、本実施の形態においては、アクセスのない時間帯が類似する実ページＲＰごとにグループ分けをしているが、アクセスのある時間帯が類似する実ボリュームＲごとにグループ分けしてもよい。さらに、閾値は、アクセスなしの時間帯の一致度を判断するための境界値をいったが、アクセスあり又はアクセスなしの時間帯であるアクセスパターンの一致度が判断できる値であればよい。
以上のように、アクセスがある時間帯又はアクセスがない時間帯のアクセスパターンが類似するプールＰに実ページＲＰのデータを移動することで、該アクセスパターンが類似するデータを同一のＲＡＩＤグループに保存することができる。
【００２８】
（７）プールの作成処理
引き続き、ステップＳ３０のプール作成処理について、図１４のフローチャートを用いて説明する。プール作成処理は、ストレージ装置４のＣＰＵ４２が仮想化プログラム８に基づいて実行する。ＣＰＵ４２が移動先のプールＰは存在しないと判断した場合にプール作成処理を開始する。
ＣＰＵ４２は、ハードディスクドライブテーブル１２の「状態」欄１２１を参照して、ＲＡＩＤグループを構成できる台数分の「未使用」のハードディスクドライブＨＤＤがある場合には（Ｓ４１：ＹＥＳ）、「未使用」のハードディスクドライブＨＤＤでＲＡＩＤグループを新しく形成させる（Ｓ４２）。
そしてＣＰＵ４２は、新しく形成させたＲＡＩＤグループの記憶領域から実ボリュームＲを作成し（Ｓ４３）、作成した実ボリュームＲからプールＰを作成する（Ｓ４４）。
ＣＰＵ４２は、作成されたプールＰのアクセス履歴サマリを処理対象の実ページＲＰのアクセス履歴と同じ内容に設定する（Ｓ４５）。
その後ＣＰＵ４２は、ステップＳ４６からステップＳ４９までの処理を、ステップＳ２６からステップＳ２９までの処理と同じ手順で実行すると、プール作成処理を終了する。
【００２９】
（８）アクセス履歴サマリの更新処理
次に、プールテーブル１５のアクセス履歴サマリを更新する処理について、図１５のフローチャートを用いて説明する。この更新処理は、ストレージ装置４のＣＰＵ４２がアクセス履歴記録プログラム９に基づいて、所定の間隔で実行する。この間隔は、アクセス履歴の記録処理の間隔より長くなる。本実施の形態においては、ＣＰＵ４２は例えば１日毎に、実ページの移動処理の直前に更新処理を実行する。
実行する。
ＣＰＵ４２は、任意のプールＰを最初のプールＰとして処理対象に設定すると（Ｓ５１）、プールテーブル１５を参照して、処理対象のプールＰに所属する全ての実ボリュームＲを特定する（Ｓ５２）。引き続きＣＰＵ４２は、ページテーブル１８を参照し、特定した実ボリュームＲに含まれる全ての実ページＲＰを特定する（Ｓ５３）。そしてＣＰＵ４２は、特定した全ての実ページＲＰのアクセス履歴に基づいて、プールＰのアクセス履歴サマリを算出する（Ｓ５４）。本実施の形態では、上述したように、プールＰに含まれる全ての実ページＲＰのアクセス履歴の論理積（ＡＮＤ）が出力される。すなわち、ある所定の時間帯において、プールＰに含まれる全実ページＲＰのアクセス履歴のビットが全て「１」であるなら、プールテーブル１５のアクセス履歴サマリのビットには「１」が登録されるが、アクセス履歴のビットが全て「１」でなければ、アクセス履歴サマリのビットには「０」が登録される。
こうしてＣＰＵ４２は、全てのプールＰのアクセス履歴サマリを更新するまで、この処理を繰り返し実行すると（Ｓ５５：ＮＯ、Ｓ５６）、この処理を終了する。
このように、ストレージ装置４がプールＰを作成し、プールＰのアクセス履歴サマリを随時更新することもできる。
なお、プールテーブル１５のアクセス履歴サマリは、更新しなくてもよい。例えば、ステップＳ４５で説明したように、プールテーブル１５を作成する際にアクセス履歴サマリを算出してしまえば、この算出したアクセス履歴サマリを初期値として固定してもよい。このように、アクセス履歴サマリの更新を行わないことにより、アクセス履歴サマリの更新処理に伴うアクセス性能の低下を防止できる。
【００３０】
（９）管理者の指示に基づくプールの作成処理
プールの作成は、上述のようにストレージ装置４が実行するのではなく、管理者の希望に沿った指示に基づいてストレージ装置４が実行することもできる。図１６は、管理者がプールＰを作成する際に出力される管理端末６の画面Ｓ１の一例を示している。この画面Ｓ１は、プールＩＤ欄Ａ１、実ボリューム欄Ａ２、アクセス履歴サマリ欄Ａ３、ＯＫボタンＢ１、及び、CancelボタンＢ２から構成されている。プールＩＤ欄Ａ１には、管理者が入力するプールＩＤを受け付ける。実ボリュームＩＤ欄Ａ２には、プールＰに所属しない全ての実ボリュームＩＤが表示される。管理者は、プールＰを構成する実ボリュームＩＤを選択する。アクセス履歴サマリ欄Ａ３には、時間帯ごとのアクセスの有無が表示されている。画面Ｓ１には、時間帯とアクセスの有無に対応したラジオボタンＲＢが配置されている。管理者は、アクセスの有無を時間帯ごとにラジオボタンＲＢにチェックしていくことで、そのプールＰに対して、管理者が希望するアクセスの時間帯のパターンを形成することができる。画面例では、管理者は、１８時から０時、０時から６時までの時間帯はアクセスのないプールＰを作成することを希望している。
管理者がＯＫボタンＢ１を押すと、希望した内容でプールＰを作成する処理が開始される。管理者の指示でプールＰを作成する場合には、管理端末６がストレージ装置４に作成指示を送信し、ストレージ装置４がその作成指示を受信すると、ストレージ装置４のＣＰＵ４２が仮想化プログラム８に基づいてプールＰの作成処理を実行する。この場合には、ＣＰＵ４２は、プールの作成画面で指定されたプールＩＤ、実ボリュームＩＤ、及び、アクセス履歴サマリをプールテーブル１５に登録し、作成指示に従ったプールＰを作成する。
このように、管理者がアクセス履歴サマリを指定してプールＰを作成することができる。管理者がプール作成を指示する場合には、上述で説明したプール作成処理（図１４）及び後述するアクセス履歴サマリの更新処理（図１５）は実行されない。
【００３１】
（１０）スピンダウン処理
グループ分けをしたＲＡＩＤグループを、どの様な手順で通常の電力から省電力への制御が行われるのかについて、図１７及び図１８に示すフローチャートを用いて説明する。図１７及び図１８に示すスピンダウン処理は、ＲＡＩＤグループの電力量を小さく又はゼロになるように制御するための一例の処理であり、このスピンダウンに限られず、ディスクの回転数の低減や、ハードディスクドライブ全体への電源供給の遮断等もある。スピンダウン処理は、ストレージ装置４のＣＰＵ４２がＨＤＤ電源制御プログラム１１に基づいて、所定の間隔で実行する。本実施の形態においては、ＣＰＵ４２は５分毎にスピンダウン処理を実行する。
ＣＰＵ４２は、任意の実ボリュームＲを最初の実ボリュームＲとして処理対象に設定すると（Ｓ６１）、実ボリュームテーブル１４を参照して、処理対象の実ボリュームＲの「状態」欄１４４が「スピンダウン不可」か「スピンアップ可」か、を判断する（Ｓ６２）。
「状態」欄１４４がスピンダウン不可になっている場合には（Ｓ６２：ＹＥＳ）、次にＣＰＵ４２は、「最終アクセス時刻」欄１４３を参照し、最終アクセス時刻から現在時刻までの経過時間が閾値時間を経過しているか否かを判断する（Ｓ６３）。ここでいう閾値時間とは、ＣＰＵ４２が処理対象の実ボリュームに対して省電力の制御を行ってもよいと判断するか否かの境界時間である。例えば、最終アクセス時刻が「2008年1月1日0：00」であり、現在時刻が「2008年1月1日0：10」であり、閾値時間が5分で設定されているとすると、最終アクセス時刻から現在時刻までの経過時間「10分」は閾値時間「5分」を超えていることになるので、処理対象の実ボリュームはスピンダウン可能と判断される。
経過時間が閾値時間を超えている場合には（Ｓ６３：ＹＥＳ）、処理対象の実ボリュームＲに対してしばらくアクセスがないことを示しているので、ＣＰＵ４２は処理対象の実ボリュームＲの「状態」欄１４４を「スピンダウン不可」から「スピンダウン可」に更新する（Ｓ６４）。
ＣＰＵ４２は、全ての実ボリュームＲに対して、実ボリュームテーブル１４の「状態」欄１４４を更新するまで実行すると（Ｓ６５）、任意のＲＡＩＤグループを最初のＲＡＩＤグループとして処理対象に設定する（Ｓ６６）。そして、ＣＰＵ４２はＲＡＩＤグループテーブル１３を参照し、処理対象のＲＡＩＤグループの「状態」欄１３２が「スピンアップ」か「スピンダウン」か、を判断する（Ｓ６７）。
「状態」欄１３２が「スピンアップ」の場合には（Ｓ６７：ＹＥＳ）、ＣＰＵ４２は実ボリュームテーブル１４を参照し、処理対象のＲＡＩＤグループに所属する全ての実ボリュームを特定する（Ｓ６８）。そして特定した全ての実ボリュームＲの「状態」欄１４４が「スピンダウン可」ならば（Ｓ６９：ＹＥＳ）、ＣＰＵ４２はＲＡＩＤグループテーブル１３を参照し、処理対象のＲＡＩＤグループを構成する全てのハードディスクドライブを特定する（Ｓ７０）。そうしてＣＰＵ４２は、処理対象のＲＡＩＤグループを構成する全てのハードディスクドライブをスピンダウンすると（Ｓ７１）、ＲＡＩＤグループテーブル１３の「状態」欄１３２を「スピンアップ」から「スピンダウン」に更新する（Ｓ７２）。
ＣＰＵ４２は、全てのＲＡＩＤグループに対してスピンダウンが可能か否かを判断し、スピンダウンが可能なＲＡＩＤグループに対してスピンダウン処理を実行すると（Ｓ７３）、この処理を終了する。
なお、ＲＡＩＤグループの「状態」欄１３２が「スピンダウン」の場合（Ｓ６７：ＮＯ）及び特定した全ての実ボリュームの「状態」欄１４４に１つでも「スピンダウン不可」がある場合（Ｓ６９：ＮＯ）には、スピンダウン処理は実行されない。
【００３２】
（１１）スピンアップ処理
スピンダウン処理によって省電力の制御が行われているＲＡＩＤグループを通常の電力を消費するようなスピンアップ処理を、図１９のフローチャートを用いて説明する。スピンアップ処理は、ストレージ装置４のＣＰＵ４２がＨＤＤ電源制御プログラム１１に基づいて実行する。
ＣＰＵ４２は、実ボリュームＲに対して、ライト要求又はリード要求を受信した場合にスピンアップ処理を開始する。
ＣＰＵ４２は、実ボリュームテーブル１４を読み出すと、ライト要求又はリード要求対象の実ボリュームＲの「最終アクセス時刻」欄１４３に現在の時刻を登録する（Ｓ８１）。そして、ＣＰＵ４２は、実ボリュームテーブル１４の「状態」欄１４４が「スピンダウン可」になっている場合には（Ｓ８２：ＹＥＳ）、「スピンダウン不可」に更新する（Ｓ８３）。
ＣＰＵ４２は、ライト要求又はリード要求対象の実ボリュームが所属するＲＡＩＤグループを、実ボリュームテーブル１４の「ＲＧ ＩＤ」欄１４２から特定すると（Ｓ８４）、特定したＲＡＩＤグループに該当するＲＡＩＤグループテーブル１３の「状態」欄１３２を読み出す。そしてＲＡＩＤグループテーブル１３の「状態」欄１３２が「スピンダウン」ならば（Ｓ８５：ＹＥＳ）、ＣＰＵ４２は特定したＲＡＩＤグループを構成する全てのハードディスクドライブＨＤＤをＲＡＩＤグループテーブル１３から特定し（Ｓ８６）、特定した全てのハードディスクドライブＨＤＤをスピンアップする（Ｓ８７）。その後ＣＰＵ４２は、ＲＡＩＤグループテーブル１３の「状態」欄１３２を「スピンダウン」から「スピンアップ」に更新すると（Ｓ８８）、この処理を終了する。
なお、実ボリュームテーブル１４の「状態」欄１４４が「スピンダウン不可」になっている場合（Ｓ８２：ＮＯ）及びＲＡＩＤグループテーブル１３の「状態」欄１３２が「スピンアップ」になっている場合（Ｓ８５：ＮＯ）には、ＣＰＵ４２はスピンアップ処理を実行する必要がないため、この処理を終了する。
以上のように、時間的なアクセスパターンが類似するデータが格納されているＲＡＩＤグループごとにスピンダウン又はスピンアップを実行することができる。
【００３３】
（１２）管理画面
ここで、アクセスの時間帯のパターンを視覚的に表示した様子を、図２０を用いて説明する。図２０は、プールＰ毎のアクセス履歴サマリを視覚的に表示した画面Ｓ２の一例である。図２０の画面Ｓ２には、「プールＩＤ」Ａ４、２時間間隔の「アクセス履歴」Ａ５、及び、「アクセスのない時間帯の割合」Ａ６、が出力されている。本実施の形態によるアクセスの有無は、アクセスありＡ７を色付き、アクセスなしＡ８を色なし、で示している。例えば、プール「Ｐ０１」は、０時から８時、２０時から２２時の間アクセスされないデータを保存する実ページＲＰ（実ボリュームＲ）で構成されていることがわかる。実ページＲＰに対してアクセスされない時間帯の割合は、「42％」であることが示されている。このように、管理者はプール毎のアクセス履歴サマリを確認することができる。なお、管理者が確認後に「ＯＫ」ボタンＢ３を押すと、この画面Ｓ２は終了する。
図２１は、ストレージ装置４がＲＡＩＤグループに対して省電力の制御を実行した場合に削減される消費電力の様子を表示した画面Ｓ３の一例である。この画面により、管理者はどのくらいの消費電力が削減できているのかを確認することができる。図２１の画面には、「プールＩＤ」Ａ９、プールにどのくらいのデータが格納されているのかを示す「容量割合」Ａ１０、「アクセスのない時間帯の割合」Ａ１１、及び「消費電力の削減率」Ａ１２が出力されている。例えば、図２１の画面Ｓ３では、プール「Ｐ０１」を構成するＲＡＩＤグループに対してスピンダウンを実行したため、「３４％」の消費電力が削減できたことを示している。なお、管理者が確認後に「ＯＫ」ボタンを押すと、この画面は終了する。
【００３４】
（１３）本実施の形態の効果
以上のように、本実施の形態によれば、アクセスがある時間帯とアクセスがない時間帯のアクセスパターンが類似するデータを同一のＲＡＩＤグループ（プール領域）にグループ分けすることができる。このため、ストレージ装置はアクセスのない時間帯にはハードディスクドライブの回転数を下げるか、回転を停止するため、ストレージ装置が消費する電力を削減することができる。
【００３５】
（１４）その他の実施の形態
本実施例においては、仮想ボリュームＶにライトアクセスなどがあったときに、適宜実際に使用する記憶容量を実ページ単位等で割り当てるストレージ装置を前提にしているがこれに限られるものではない。例えば、仮想ボリュームが存在せず、複数のハードディスクドライブにより、ボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ（ＬＵ）等）を形成し、該ボリュームをホスト計算機に提供するストレージ装置にも適用できる。そして、複数のボリュームにより、ボリュームグループを形成する。
つまり、ボリュームごとに、アクセスのある時間帯とない時間帯を記録したアクセスの時間帯の履歴を管理する。また、ボリュームグループごとに、ビット計算などにより、アクセスの時間帯の履歴サマリを管理する。そして、アクセスの時間帯の履歴とアクセスの時間帯の履歴サマリを比較し、類似するボリュームグループ中のボリュームに、データを移動する。
【００３６】
また、上述した実施の形態では、ストレージ装置はＲＡＩＤグループごとにスピンダウン又はスピンアップを実行しているが、この形態に限られない。例えば、スピンダウンの代わりに、ストレージ装置が、ＲＡＩＤグループを構成するハードディスクドライブが通常要する電力より小さい電力で動作するように制御し、又は、ハードディスクドライブの電源を停止してしまってもよい。また、ストレージ装置がハードディスクドライブの回転数を少なくするように制御してもよい。さらに、最終アクセス時刻から現在時刻までの経過時間に応じて、ストレージ装置が、「アンロード」、「スピンダウン」、「電源オフ」、といったように順次省電力の制御モードを下げるように制御してもよい。例えば、経過時間が短い場合にはストレージ装置は省電力の制御モードが小さい「アンロード」を実行する。経過時間が長い場合には、ストレージ装置は省電力の制御モードが大きな、電源オフを実行する。そして、いずれの省電力の制御モードに該当しない場合に、ストレージ装置がスピンダウンを実行するようにしてもよい。
【産業上の利用可能性】
【００３７】
本発明は、１又は複数のストレージ装置を有するストレージシステムや、その他の形態のストレージシステムに広く適用することができる。
【図面の簡単な説明】
【００３８】
【図１】本実施の形態のストレージシステムの構成を示すブロック図である。
【図２】本実施の形態の管理端末の構成を示すブロック図である。
【図３】本実施の形態のドライブ群の論理的な構成を示す説明図である。
【図４】本実施の形態のハードディスクドライブテーブルを示す図表である。
【図５】本実施の形態のＲＡＩＤグループテーブルを示す図表である。
【図６】本実施の形態の実ボリュームテーブルを示す図表である。
【図７】本実施の形態のプールテーブルを示す図表である。
【図８】本実施の形態の仮想ボリュームテーブルを示す図表である。
【図９】本実施の形態のマッピングテーブルを示す図表である。
【図１０】本実施の形態のページテーブルを示す図表である。
【図１１】本実施の形態におけるアクセスカウンタの更新処理を示すフローチャートである。
【図１２】本実施の形態におけるアクセス履歴の記録処理を示すフローチャートである。
【図１３】本実施の形態におけるページ移動処理を示すフローチャートである。
【図１４】本実施の形態におけるプール作成処理を示すフローチャートである。
【図１５】本実施の形態におけるアクセス履歴サマリの更新処理を示すフローチャートである。
【図１６】本実施の形態において管理者がプールの作成を指示する画面図である。
【図１７】本実施の形態におけるスピンダウン処理を示すフローチャートである。
【図１８】本実施の形態におけるスピンダウン処理を示すフローチャートである。
【図１９】本実施の形態におけるスピンアップ処理を示すフローチャートである。
【図２０】本実施の形態におけるアクセス履歴を視覚的に示した画面図である。
【図２１】本実施の形態におけて省電力の制御を実行した画面図である。
【符号の説明】
【００３９】
１……ストレージシステム、２……ホスト装置、３……ＳＡＮ、４……ストレージ装置、５……管理ネットワーク、６……管理端末、Ｄ……ドライブ群、Ｃ……コントローラ群、７……管理端末通信プログラム、８……仮想化プログラム、９……アクセス履歴記録プログラム、１０……ページ移動プログラム、１１……ＨＤＤ電源制御プログラム、１２……ハードディスクドライブテーブル、１３……ＲＡＩＤグループテーブル、１４……実ボリュームテーブル、１５……プールテーブル、１６……仮想ボリュームテーブル、１７……マッピングテーブル、１８……ページテーブル、Ｒ……実ボリューム、ＲＰ……実ページ、Ｖ……仮想ボリューム、ＶＰ……仮想ページ。
【図１】
2010015446.tif 000003
【図２】
2010015446.tif 000004
【図３】
2010015446.tif 000005
【図４】
2010015446.tif 000006
【図５】
2010015446.tif 000007
【図６】
2010015446.tif 000008
【図７】
2010015446.tif 000009
【図８】
2010015446.tif 000010
【図９】
2010015446.tif 000011
【図１０】
2010015446.tif 000012
【図１１】
2010015446.tif 000013
【図１２】
2010015446.tif 000014
【図１３】
2010015446.tif 000015
【図１４】
2010015446.tif 000016
【図１５】
2010015446.tif 000017
【図１６】
2010015446.tif 000018
【図１７】
2010015446.tif 000019
【図１８】
2010015446.tif 000020
【図１９】
2010015446.tif 000021
【図２０】
2010015446.tif 000022
【図２１】
2010015446.tif 000023