(57)【特許請求の範囲】
【請求項１】
ジョブの実行予定に関する予定情報と、前記ジョブのストレージデバイスごとのアクセス履歴に関する履歴情報と、を記憶する記憶部と、
前記予定情報と前記履歴情報とに基づいて所定の時間区分における前記ジョブから前記ストレージデバイスへのアクセスを推定し、推定結果に基づいて前記ストレージデバイスへの電源供給を制御する制御部と、を備え、
前記履歴情報は、前記ジョブが起動されてからの経過時間に対応する時間区分ごとのアクセス履歴を含み、
前記制御部は、前記所定の時間区分に実行が予定される前記ジョブに対応する前記アクセス履歴に基づいて、前記ジョブから前記ストレージデバイスへの前記所定の時間区分におけるアクセスを推定する、
ストレージ制御装置。
【請求項２】
前記制御部は、
前記所定の時間区分に実行が予定される前記ジョブと同じジョブ属性である複数のジョブそれぞれの前記アクセス履歴に基づいて、前記所定の時間区分に対応する、前記アクセス履歴における時間区分に実行中であった前記ジョブ属性のジョブの総数に対して、前記アクセス履歴における当該時間区分に前記ストレージデバイスへアクセスした前記ジョブ属性のジョブの数の比率を計算することで、前記所定の時間区分に実行が予定される前記ジョブが前記ストレージデバイスへアクセスする事後確率を算出し、前記事後確率に基づいて前記ジョブから前記ストレージデバイスへのアクセスを推定する、
請求項１に記載のストレージ制御装置。
【請求項３】
前記履歴情報は、第１の開始時間に起動した第１のジョブに関する第１のアクセス履歴と、第２の開始時間に起動した、前記第１のジョブと同じ前記ジョブ属性である第２のジョブに関する第２のアクセス履歴とを含み、
前記制御部は、前記所定の時間区分に実行が予定される、前記第１のジョブと同じ前記ジョブ属性である第３のジョブが前記ストレージデバイスへアクセスする前記事後確率を、前記第１のアクセス履歴と前記第２のアクセス履歴とに基づいて算出する、
請求項２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
前記所定の時間区分において、前記ストレージデバイスへの電源をオフしたときに削減される第１の電力消費量と、前記ストレージデバイスへの電源をオフしたときに前記ストレージデバイスへのアクセスが発生し、前記ストレージデバイスが利用可能となるまでの期間に消費される第２の電力消費量と、を前記事後確率を用いて算出し、前記第１の電力消費量と前記第２の電力消費量とに基づき、前記ストレージデバイスへの電源供給を制御する、
請求項２または３に記載のストレージ制御装置。
【請求項５】
コンピュータに、
ジョブの実行予定に関する予定情報と、前記ジョブのストレージデバイスごとのアクセス履歴に関する履歴情報と、に基づいて所定の時間区分における前記ジョブから前記ストレージデバイスへのアクセスを推定し、
推定結果に基づいて前記ストレージデバイスへの電源供給を制御し、
前記履歴情報は、前記ジョブが起動されてからの経過時間に対応する時間区分ごとのアクセス履歴を含み、
前記ストレージデバイスへのアクセスの推定では、前記所定の時間区分に実行が予定される前記ジョブに対応する前記アクセス履歴に基づいて、前記ジョブから前記ストレージデバイスへの前記所定の時間区分におけるアクセスを推定する、
処理を実行させるストレージ制御プログラム。
【請求項６】
コンピュータが、
ジョブの実行予定に関する予定情報と、前記ジョブのストレージデバイスごとのアクセス履歴に関する履歴情報と、に基づいて所定の時間区分における前記ジョブから前記ストレージデバイスへのアクセスを推定し、
推定結果に基づいて前記ストレージデバイスへの電源供給を制御し、
前記履歴情報は、前記ジョブが起動されてからの経過時間に対応する時間区分ごとのアクセス履歴を含み、
前記ストレージデバイスへのアクセスの推定では、前記所定の時間区分に実行が予定される前記ジョブに対応する前記アクセス履歴に基づいて、前記ジョブから前記ストレージデバイスへの前記所定の時間区分におけるアクセスを推定する、
処理を実行するストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関する。
【背景技術】
【０００２】
近年、コンピュータシステムが取り扱うデータ量は増加の一途をたどっており、データを保管するストレージシステムも大規模化している。大規模化したストレージシステムには、複数のストレージ装置を備え、この複数のストレージ装置をストレージ制御装置が制御するものがある。
【０００３】
ところで、ストレージシステムの大規模化は、システムの電力消費量の増大を招く。そこで、ストレージ制御装置がストレージ装置へのアクセスを監視し、一定時間ストレージ装置にアクセスがないときに、このストレージ装置への電力供給を停止し、電力消費量を抑える制御を行う技術がある。また、ストレージ制御装置が、事前に所定の時間帯ごとのストレージ装置へのアクセス履歴を生成し、アクセス履歴に基づいてストレージ装置へのアクセスパターンを推定する技術がある。ストレージ制御装置が、推定したストレージ装置へのアクセスパターンに基づいてストレージ装置の電源制御を行うことによって、より効果的に消費電力を削減することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３２１１２３号公報
【特許文献２】特開２００９−１５７５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ストレージ制御装置が、所定の時間帯のアクセス履歴に基づいてストレージ装置の電源制御を行っても、消費電力を効果的に削減できない場合がある。
ホストやサーバなどの外部装置からストレージ装置へアクセス要求を行うアクセスパターンは、外部装置が実行するジョブによって異なることが多い。多くのホストやサーバでは複数のジョブを並行して実行しており、また、実行しているジョブを終了し、他のジョブを開始するジョブの入れ替えも適宜行われる。このため、アクセス履歴の採取時と、ストレージ制御装置による電源制御時とでは、外部装置が実行しているジョブが異なり、外部装置からストレージ装置へのアクセスパターンが異なる場合がある。ストレージ制御装置は、アクセス履歴に基づいてストレージ装置へのアクセスパターンを推定し、推定結果に基づいてストレージ装置の電源制御を行う。このため、ストレージ制御装置が、外部装置が実行しているジョブが異なる状態において採取されたアクセス履歴に基づいてストレージ装置の電源制御を行うと、ストレージ装置の消費電力削減を効果的に行えない場合がある。
【０００６】
１つの側面では、本発明は、ストレージ装置の消費電力をストレージ装置へのアクセスパターンに応じて効果的に削減することが可能なストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、以下に示すようなストレージ制御装置が提供される。ストレージ制御装置は、記憶部と、制御部と、を備える。記憶部は、ジョブの実行予定に関する予定情報と、ジョブのストレージデバイスごとのアクセス履歴に関する履歴情報と、を記憶する。制御部は、予定情報と履歴情報とに基づいて所定の時間区分におけるジョブからストレージデバイスへのアクセスを推定し、推定結果に基づいてストレージデバイスへの電源供給を制御する。履歴情報は、ジョブが起動されてからの経過時間に対応する時間区分ごとのアクセス履歴を含む。制御部は、所定の時間区分に実行が予定されるジョブに対応するアクセス履歴に基づいて、ジョブからストレージデバイスへの所定の時間区分におけるアクセスを推定する。
【０００８】
また、１つの態様では、コンピュータに処理を実行させるストレージ制御プログラムが提供される。また、１つの態様では、コンピュータが実行するストレージ制御方法が提供される。
【発明の効果】
【０００９】
１態様によれば、ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法において、ストレージ装置の消費電力を、ストレージ装置へのアクセスパターンに応じて効果的に削減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態のストレージ制御装置の構成を示す図である。
【図２】第２の実施形態のコンピュータシステムの構成の一例を示す図である。
【図３】第２の実施形態のメタデータサーバのハードウェア構成の一例を示す図である。
【図４】第２の実施形態の各サーバの処理機能の構成の一例を示すブロック図である。
【図５】第２の実施形態のジョブ管理表の一例を示す図である。
【図６】第２の実施形態のアクセスログの一例を示す図である。
【図７】第２の実施形態のアクセスパターンの一例を示す図である。
【図８】第２の実施形態のアクセス集計表の一例を示す図である。
【図９】第２の実施形態の電源状態表の一例を示す図である。
【図１０】第２の実施形態のジョブの起動とジョブによるアクセス要求時の処理を示す図である。
【図１１】第２の実施形態のジョブ起動処理のフローチャートを示す図である。
【図１２】第２の実施形態のジョブ割当処理のフローチャートを示す図である。
【図１３】第２の実施形態のメタデータサーバの電力削減処理のフローチャートを示す図である。
【図１４】第２の実施形態の電源管理処理のフローチャートを示す図である。
【図１５】第２の実施形態のアクセス推定処理を説明する図である。
【図１６】第２の実施形態のアクセス確率算出処理のフローチャートを示す図である。
【図１７】第２の実施形態の電源制御指示処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
図１は、第１の実施形態のストレージ制御装置の構成を示す図である。第１の実施形態のストレージ制御装置１は、ジョブＡ（４ａ）、ジョブＢ（４ｂ）を実行する外部装置（たとえばホストやサーバなど）からのアクセス要求を受け付け、受け付けたアクセス要求に応じてストレージ装置２を制御する。ストレージ装置２は、ストレージデバイス２ａ，２ｂと、ストレージデバイス２ａ，２ｂに電源を供給する電源供給部２ｄを有する。ストレージデバイス２ａ，２ｂは、たとえば、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などである。電源供給部２ｄは、ストレージデバイス２ａ，２ｂに対し、個別に電源供給を行う。
【００１２】
ストレージ制御装置１は、記憶部１ａと制御部１ｂとを有する。記憶部１ａは、予定情報３ａと履歴情報３ｂを記憶する。記憶部１ａは、たとえば、ＲＡＭ（Random Access Memory）などである。
【００１３】
予定情報３ａは、ジョブＡ（４ａ）、ジョブＢ（４ｂ）の実行予定時間を含むジョブの実行予定に関する情報である。予定情報３ａは、利用者あるいは外部装置がジョブＡ（４ａ）、ジョブＢ（４ｂ）の実行予約を行ったときに生成され、記憶部１ａに格納される。図１に示す予定情報３ａには、実行予定のジョブ［Ａ］およびジョブＡの実行が予定される利用時間帯［ｔａ］と、実行予定のジョブ［Ｂ］およびジョブＢの実行が予定される利用時間帯［ｔｂ］と、が登録されている。
【００１４】
履歴情報３ｂは、ジョブＡ（４ａ）、ジョブＢ（４ｂ）によるストレージデバイス２ａ，２ｂごとのアクセス履歴に関する情報である。制御部１ｂは、ジョブＡ（４ａ）からのアクセス要求を受け付け、ストレージデバイス２ａ，２ｂにアクセスしたときにアクセス履歴を生成する。ジョブＢ（４ｂ）についても同様である。図１に示す履歴情報３ｂのアクセス履歴には、アクセス時のジョブと、アクセスしたストレージデバイスと、アクセスした時間区分とが関連付けて記録されている。時間区分は、ジョブが開始されてからの経過時間を予め決められた時間区分の長さ（単位時間）で区切った時間帯である。時間区分には、たとえば、ジョブの開始に対応する時間区分を１とし、時間の経過にしたがって順に番号を付す。アクセス履歴に登録された時間区分の番号により、アクセスがジョブの開始からどのくらい時間が経過してから実行されたのかを知ることができる。たとえば、履歴情報３ｂの１行目には、ジョブ［Ａ］がストレージデバイス［２ａ］に対し、時間区分［ｐａ１］にアクセスしたことが記録されている。履歴情報３ｂには、所定の期間に生成されたアクセス履歴が蓄積されている。
【００１５】
制御部１ｂは、ストレージ装置２のストレージデバイス２ａ，２ｂに配置されるデータへのアクセス制御と、ストレージデバイス２ａ，２ｂの電源制御とを行う。
アクセス制御では、制御部１ｂは、ジョブＡ（４ａ）、ジョブＢ（４ｂ）を実行する外部装置からのアクセス要求を受け付け、受け付けたアクセス要求に応じてストレージデバイス２ａ，２ｂの記憶領域へアクセスする。また、制御部１ｂは、ストレージデバイス２ａ，２ｂに対するアクセス処理を行うごとにアクセス履歴を生成し、履歴情報３ｂに蓄積する。制御部１ｂは、たとえば、ジョブＡ（４ａ）、ジョブＢ（４ｂ）の開始時刻および単位時間を外部装置から取得し、ジョブの経過時間を単位時間で区切って時間区分を設定する。図１に示す履歴情報３ｂの例では、制御部１ｂは、ジョブＡ（４ａ）の開始から一つの単位時間が経過するまでの時間区分をｐａ１とし、順次ｐａ２，ｐａ３，・・・，ｐａｎ（ｎはｎ≧１の整数）と設定する。制御部１ｂは、同様に、ジョブＢ（４ｂ）の開始からの経過時間を区切り、ｐｂ１，ｐｂ２，・・・，ｐｂｍ（ｍはｍ≧１の整数）としている。時間区分の単位時間は、ジョブＡ（４ａ）とジョブＢ（４ｂ）とで共通にする。このような履歴情報３ｂを記録することにより、制御部１ｂは、ジョブの時間区分ごとのアクセスパターンを推定することができる。
【００１６】
電源制御では、制御部１ｂは、予定情報３ａと履歴情報３ｂとに基づいて、所定の時間区分において実行が予定されるジョブＡ（４ａ）、ジョブＢ（４ｂ）のストレージデバイス２ａ，２ｂへのアクセスを推定する。なお、時間区分は、たとえば、ストレージ制御装置１あるいはシステムを起動してからの経過時間を所定の単位時間で区切った時間帯である。制御部１ｂは、システムの起動時に対応する時間区分を１とし、順に番号を付して時間区分を管理する。所定の時間区分は、システム起動後の任意の時間区分を指す。時間区分に用いた単位時間の長さは、ジョブの起動時から開始する時間区分の単位時間と同じであることが好ましい。制御部１ｂは、履歴情報３ｂに蓄積したアクセス履歴に基づくジョブの過去のアクセスパターンから、対象の時間区分において実行が予定されるジョブからのアクセスを推定する。制御部１ｂは、推定結果に基づいてストレージデバイス２ａ，２ｂへの電源供給を制御する。制御部１ｂは、電源供給部２ｄに指示してストレージデバイス２ａ，２ｂへの電源制御を行う。
【００１７】
このようなストレージ制御装置１における電源制御処理を、図１に示す例を用いて説明する。履歴情報３ｂには、ジョブＡ（４ａ）、ジョブＢ（４ｂ）が１回以上実行されたときのアクセス履歴が蓄積されているとする。履歴情報３ｂには、ジョブＡ（４ａ）の時間区分ｐａ１からｐａｎのアクセス履歴と、ジョブＢ（４ｂ）の時間区分ｐｂ１からｐｂｎのアクセス履歴とが蓄積されている。制御部１ｂは、所定の時間区分Ｔに実行が予定されるジョブによるストレージデバイス２ａに対するアクセスを推定する。制御部１ｂは、予定情報３ａに基づき、所定の時間区分Ｔに実行が予定されるジョブＡ（４ａ）を特定し、所定の時間区分ＴにおけるジョブＡ（４ａ）の時間区分ｐａｉ（１≦ｉ≦ｎ）を検出する。これにより制御部１ｂでは、予定情報３ａの開始時刻から処理を開始したジョブＡ（４ａ）は、所定の時間区分Ｔでは、開始から時間区分ｐａｉが経過した時間区分ｐａｉにおける処理を実行していると推定する。制御部１ｂは、履歴情報３ｂからジョブＡ（４ａ）が時間区分ｐａｉにおいてストレージデバイス２ａにアクセスしたアクセス履歴を抽出する。制御部１ｂは、抽出したアクセス履歴に基づいて、所定の時間区分Ｔにおいて実行が予定されるジョブＡ（４ａ）のストレージデバイス２ａへのアクセスを推定する。また、制御部１ｂは、ジョブＢ（４ｂ）について、所定の時間区分Ｔに実行が予定される時間区分ｐｂｊ（１≦ｊ≦ｍ）を検出し、同様の処理を行う。そして、制御部１ｂは、ジョブ間のアクセスは独立しているとして、ジョブＡ（４ａ）、ジョブＢ（４ｂ）それぞれの推定結果に基づき、所定の時間区分Ｔにおけるストレージデバイス２ａに対する全ジョブからのアクセスを推定する。制御部１ｂは、全ジョブによるアクセスの推定結果に基づき、電力供給を停止した場合の消費電力の低減効果やジョブ処理の性能へ与える影響などを評価し、評価結果に基づいてストレージデバイス２ａへの電力供給を制御する。さらに、制御部１ｂは、同様の処理をストレージデバイス２ｂに対して実行し、ストレージデバイス２ｂへの電力供給を制御する。なお、たとえば、利用分野や処理内容などの属性が同じジョブをまとめ、同属性のジョブ単位に推定結果を算出し、これを用いて全ジョブによるアクセスの推定を行うとしてもよい。
【００１８】
このようなストレージ制御装置１によれば、制御部１ｂは、アクセス要求に応じてアクセス処理を行うとき、アクセス要求を行ったジョブ、アクセスしたストレージデバイスおよび時間区分を含むアクセス履歴を生成する。制御部１ｂは、アクセス履歴を履歴情報３ｂに登録し、記憶部１ａに格納する。制御部１ｂは、蓄積した履歴情報３ｂと、予定情報３ａとに基づいて、所定の時間区分における所定のストレージデバイスへのアクセスをジョブごとに推定する。制御部１ｂは、ジョブごとに推定した推定結果を用いて所定のストレージデバイスへのアクセスを推定し、推定結果に基づいてこのストレージデバイスへの電源供給を制御する。
【００１９】
このように、ストレージ制御装置１は、ジョブのストレージデバイスごとのアクセス履歴を蓄積した履歴情報３ｂと、ジョブの予定情報３ａに基づいて所定の時間区分において実行が予定されるジョブごとのストレージデバイスへのアクセスを推定する。これにより、所定の時間区分において実行が予定されるジョブのアクセスパターンに基づいてストレージデバイスへのアクセス推定をより正確に行うことが可能となり、ストレージ装置の消費電力を効果的に削減することが可能となる。
【００２０】
［第２の実施形態］
次に、第２の実施形態のコンピュータシステムについて説明する。まず、第２の実施形態の構成について説明し、続いてストレージ装置へのアクセス要求に対応するアクセス処理と、ストレージ装置の消費電力を削減するための電力削減処理について説明する。
【００２１】
（１）構成
図２は、第２の実施形態のコンピュータシステムの構成の一例を示す図である。
第２の実施形態のコンピュータシステムは、メタデータサーバ群２０と、データサーバ群３０と、ジョブ管理サーバ５０と、ジョブ実行サーバ群６０と、がネットワーク（伝送路）７０を介して接続する。メタデータサーバ群２０と、データサーバ群３０とは、ファイルシステム１０に含まれ、ジョブ実行サーバ群６０はジョブの実行時にファイルシステム１０へアクセスする。
【００２２】
メタデータサーバ群２０は、複数のメタデータサーバ２００ａ，２００ｂを有する。メタデータサーバ２００ａ，２００ｂは、ファイルデータが格納されるデータサーバとＨＤＤを登録したディスク情報を有し、アクセス管理と電源管理を行う。メタデータサーバ２００ａ，２００ｂは、ジョブ実行サーバ６００ａ，６００ｂからの要求を受け付け、ディスク情報に基づいてストレージ装置４００ａ，４００ｂを管理するデータサーバ３００ａ，３００ｂにアクセス指示を行う。また、メタデータサーバ２００ａ，２００ｂは、データサーバ群３０の各ＨＤＤの電源管理を行う。メタデータサーバ群２０は、図１のストレージ制御装置１の一実施形態である。
【００２３】
データサーバ群３０は、複数のデータサーバ３００ａ，３００ｂを有する。データサーバ３００ａ，３００ｂは、それぞれストレージ装置４００ａ，４００ｂが接続されており、メタデータサーバ２００ａ，２００ｂからの指示に応じてストレージ装置４００ａ，４００ｂへのアクセス制御と電源制御を行う。ストレージ装置４００ａには、複数のＨＤＤ４１１ａ，４１２ａ，４１３ａ，４１４ａが実装されている。同様に、ストレージ装置４００ｂには、複数のＨＤＤ４１１ｂ，４１２ｂ，４１３ｂ，４１４ｂが実装されている。各ストレージ装置４００ａ，４００ｂは、内蔵するＨＤＤを用いたＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムであってもよい。ファイルシステム１０が管理するファイルデータは、各ＨＤＤの記憶領域に格納される。各ＨＤＤは、それぞれ一意に割り当てられたディスクＩＤによって管理される。データサーバ群３０は、図１のストレージ装置２の一実施形態である。以下では、ＨＤＤを特に限定して説明する必要がないときは、ストレージ装置４００ａ，４００ｂに実装されるＨＤＤをディスク４１０と表記する。
【００２４】
ジョブ管理サーバ５０は、ジョブの実行予定に関する情報が登録されるジョブ管理表に基づき、ジョブの実行のスケジューリングを行う。
ジョブ実行サーバ群６０は、複数のジョブ実行サーバ６００ａ，６００ｂを有する。ジョブ実行サーバ６００ａ，６００ｂは、ジョブ管理サーバ５０から割り当てられたジョブを実行する。ジョブ実行時、ジョブ実行サーバ６００ａ，６００ｂでは、ファイルシステム１０が保持するファイルへアクセスする際、メタデータサーバ２００ａ，２００ｂに対してアクセス要求を行う。
【００２５】
なお、ジョブ管理サーバ５０、メタデータサーバ２００ａ，２００ｂ、データサーバ３００ａ，３００ｂおよびジョブ実行サーバ６００ａ，６００ｂは、システム全体で同期がとれているシステム時間によって動作する。したがって、各サーバが計時するシステム時間は、サーバ間で一致する。
【００２６】
次に、第２の実施形態のメタデータサーバのハードウェア構成について図３を用いて説明する。図３は、第２の実施形態のメタデータサーバのハードウェア構成の一例を示す図である。以下において、メタデータサーバ２００ａ，２００ｂを特定する必要がないときは、メタデータサーバ２００と表記する。データサーバ３００、ストレージ装置４００およびジョブ実行サーバ６００についても同様である。
【００２７】
メタデータサーバ２００は、ＣＰＵ（Central Processing Unit）２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０８を介してＲＡＭ２０２と複数の周辺機器が接続されている。
【００２８】
ＲＡＭ２０２は、メタデータサーバ２００の主記憶装置として使用される。ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。
【００２９】
バス２０８に接続されている周辺機器としては、ＨＤＤ２０３、グラフィック処理装置２０４、入力インタフェース２０５、光学ドライブ装置２０６、および通信インタフェース２０７がある。
【００３０】
ＨＤＤ２０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ２０３は、メタデータサーバ２００の二次記憶装置として使用される。ＨＤＤ２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３１】
グラフィック処理装置２０４には、モニタ２１１が接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令にしたがって、画像をモニタ２１１の画面に表示させる。モニタ２１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３２】
入力インタフェース２０５には、キーボード２１２とマウス２１３とが接続されている。入力インタフェース２０５は、キーボード２１２やマウス２１３から送られてくる信号をＣＰＵ２０１に送信する。なお、マウス２１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３３】
光学ドライブ装置２０６は、レーザ光などを利用して、光ディスク２１４に記録されたデータの読み取りを行う。光ディスク２１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３４】
通信インタフェース２０７は、ネットワーク７０に接続されている。通信インタフェース２０７は、ネットワーク７０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３５】
以上のようなハードウェア構成によって、本実施形態の処理機能を実現することができる。なお、図３にはメタデータサーバ２００のハードウェア構成を示したが、データサーバ３００、ジョブ管理サーバ５０およびジョブ実行サーバ６００も同様のハードウェア構成を有する。
【００３６】
次に、ジョブ管理サーバ５０、メタデータサーバ２００、データサーバ３００およびジョブ実行サーバ６００の各サーバの処理機能の構成について図４を用いて説明する。図４は、第２の実施形態の各サーバの処理機能の構成の一例を示すブロック図である。
【００３７】
ジョブ管理サーバ５０は、記憶部５１０と、ジョブスケジューラ５２０と、を有する。記憶部５１０は、たとえば、ＲＡＭなどであり、ジョブ管理表８１０を含むジョブの実行に関連する情報を格納する。ジョブ管理表８１０は、ジョブの実行をスケジューリングした情報であり、ジョブスケジューラ５２０が生成し、記憶部５１０に格納する。ジョブ管理表８１０には、たとえば、各ジョブに一意に割り当てられたジョブＩＤと、ジョブを実行するジョブ実行サーバ６００のノードＩＤと、ジョブの動作時間帯などが登録される。ノードＩＤは、ジョブ実行サーバ６００に一意に割り当てられた識別情報である。
【００３８】
ジョブスケジューラ５２０は、利用者あるいは他のサーバからの要求を受け付け、ジョブのスケジューリングを行い、スケジューリング結果をジョブ管理表８１０に反映する。ジョブスケジューラ５２０は、ジョブの実行要求を受け付けたとき、ジョブ実行サーバ群６０、メタデータサーバ群２０およびデータサーバ群３０など利用可能な資源をもとに、ジョブの実行をスケジューリングし、ジョブ管理表８１０に反映する。また、ジョブスケジューラ５２０は、ジョブ管理表８１０に基づいて、ジョブの起動と終了を管理する。ジョブスケジューラ５２０は、ジョブ管理表８１０に登録されているジョブの起動時間に、ジョブに必要な資源を割り当て、ジョブ実行サーバ６００にジョブを割り当てて起動を指示する。また、ジョブスケジューラ５２０は、ジョブ管理表８１０に登録されているジョブの終了時間に、ジョブ実行サーバ６００にジョブの終了を指示する。ジョブスケジューラ５２０は、ジョブが動作している期間に、ジョブを起動した開始時刻を含むジョブの実行状態に関するジョブ実行情報を記憶部５１０に格納しておく。なお、ジョブスケジューラ５２０は、ジョブ実行情報を、ジョブ管理表８１０の追加情報として、ジョブ管理表８１０とともに管理してもよい。さらに、ジョブスケジューラ５２０は、メタデータサーバ２００からの要求に応じて、ジョブ管理表８１０およびジョブ実行情報を含むジョブに関する情報を提供する。
【００３９】
ジョブ実行サーバ６００は、ジョブ管理サーバ５０からの指示によって、割り当てられたジョブを実行する。ジョブ実行サーバ６００は、ジョブ実行時にファイルシステム１０へアクセスする際、メタデータサーバ２００に対してアクセス要求を送信する。
【００４０】
メタデータサーバ２００は、記憶部２２０と、アクセス管理部２３０と、集計処理部２４０と、電源管理部２５０と、を有し、データサーバ３００を管理する。メタデータサーバ２００は、メタデータサーバ２００の起動時またはシステムの起動時からの経過時間を所定の単位時間で区切った時間区分を基準として処理を行う。以下の説明では、メタデータサーバ２００またはシステムの起動時を起点として、単位時間が経過するごとに順に番号を付した時間区分を単に時間区分とする。一方、ジョブごとに、ジョブの開始に対応する時間区分を１としてジョブの終了まで順に番号を付した時間区分を経過時間区分とする。また、単位時間は、利用者が適宜設定する。利用者は、たとえば、ジョブによるアクセス頻度等に応じて、アクセスパターンを把握可能で、電源制御による電力削減の効果が見込める時間を想定して設定する。第２の実施形態では、一例として単位時間を５分とする。
【００４１】
記憶部２２０は、たとえば、ＲＡＭ２０２の記憶領域に形成され、アクセスログ８２０と、アクセス集計表８３０と、ディスク情報８５０と、を格納する。アクセスログ８２０は、アクセス管理部２３０が行ったアクセス処理をアクセスごとに個別に記録した情報である。アクセス集計表８３０は、集計処理部２４０が、アクセスログ８２０に基づいてジョブ属性ごとに集計した経過時間区分における所定のディスク４１０へアクセスしたジョブ数と、実行された全ジョブ数を含む。ディスク情報８５０は、ファイルシステム１０が管理するファイルに関し、ファイルデータが存在するデータサーバ３００を特定する情報、ファイルデータが存在するディスク４１０を特定する情報、ファイルサイズなどが登録されている情報である。なお、ファイルデータが存在するディスク４１０を特定する情報によってデータサーバ３００が特定できるときは、データサーバ３００を特定する情報がなくてもよい。
【００４２】
アクセス管理部２３０は、ジョブ実行サーバ６００からのアクセス要求を受け付け、ディスク情報８５０に基づいて、対応するデータサーバ３００に対し、アクセス要求の実行を指示する。また、アクセス管理部２３０は、このときのアクセス処理に関するログデータを生成し、アクセスログ８２０に登録する。アクセス管理部２３０は、アクセスごとに生成したログデータをアクセスログ８２０に登録し、ログデータを蓄積していく。アクセス管理部２３０は、アクセス要求を行ったジョブ実行サーバ６００を指定してジョブ管理サーバ５０に問い合わせ、たとえば、アクセス要求を行ったジョブと、ジョブの開始時刻と、経過時間区分の単位時間を含むアクセスジョブ関連情報を取得する。なお、単位時間は、１度取得すれば、再度取得しなくてもよい。アクセス管理部２３０は、取得したジョブの開始時刻と、現在の時刻と、経過時間区分の単位時間とに基づいて、アクセスを行った現在の経過時間区分を算出する。アクセス管理部２３０は、こうして得られたアクセスを要求したジョブと、アクセスを行った経過時間区分に加え、ディスク情報８５０に基づくアクセス先のディスク４１０と、を含むログデータを生成し、アクセスログ８２０に登録する。なお、ログデータは第１の実施形態のアクセス履歴の一実施形態であり、アクセスログ８２０は第１の実施形態の履歴情報３ｂの一実施形態である。
【００４３】
集計処理部２４０は、所定のタイミングで周期的にアクセスログ８２０の集計処理を行い、アクセス集計表８３０を生成する。集計処理部２４０は、たとえば、アクセスログ８２０を解析し、同じジョブ属性を有するジョブが対象のディスク４１０にアクセスしたアクセスジョブ数を経過時間区分ごとに集計する。また、集計処理部２４０は、アクセスジョブ数を集計した経過時間区分において実行された同じジョブ属性を有する全ジョブ数をジョブ管理サーバ５０から取得し、アクセスジョブ数に関連付けてアクセス集計表８３０に登録する。
【００４４】
電源管理部２５０は、データサーバ３００からストレージ装置４００のＨＤＤ４１１，４１２，４１３の電源状態を示す電源状態表８４０を取得する。電源状態表８４０には、ＨＤＤ４１１，４１２，４１３の電源がオンしているか、オフしているかを示す情報が登録されている。電源管理部２５０は、アクセス集計表８３０に基づき、所定の時間区分におけるＨＤＤ４１１，４１２，４１３へのアクセスを推定する。電源管理部２５０は、電源状態表８４０に基づくＨＤＤ４１１，４１２，４１３への電源供給状態と、推定結果とに基づき、ＨＤＤ４１１，４１２，４１３への電源供給を制御する。電源管理部２５０は、たとえば、所定の時間区分におけるＨＤＤ４１１，４１２，４１３にアクセスが行われるアクセス確率を算出し、アクセス確率に基づいて電源をオンする場合とオフする場合の消費電力量を評価する。電源管理部２５０は、評価結果に基づき、より消費電力量を低減することができる電源状態を選択する。そして、電源管理部２５０は、電源状態表８４０に基づき、選択した電源状態が現状の電源状態と異なるときは、電源状態を制御する指示をデータサーバ３００へ出力する。
【００４５】
データサーバ３００は、アクセス制御部３１０と、記憶部３２０と、電源制御部３３０と、ＨＤＤインタフェース３４０と、を有し、ＨＤＤインタフェース３４０を介してストレージ装置４００に接続する。
【００４６】
アクセス制御部３１０は、メタデータサーバ２００のアクセス管理部２３０からアクセス要求の実行指示を取得し、対象のファイルデータを格納するＨＤＤ４１１，４１２，４１３の記憶領域にデータを書き込む、または、データを読み込む。
【００４７】
記憶部３２０は、たとえば、ＲＡＭなどであり、電源状態表８４０を格納する。電源状態表８４０は、電源４２０が、ＨＤＤ４１１，４１２，４１３それぞれの電源をオンしているか、オフしているかを示す情報である。電源状態表８４０の初期値は、電源制御部３３０が、電源４２０から状態を取得し、記憶部３２０に格納する。
【００４８】
電源制御部３３０は、メタデータサーバ２００の電源管理部２５０からの要求に応じて、電源状態表８４０を電源管理部２５０に通知する。また、電源管理部２５０からの電源制御指示を受け付け、電源４２０に対してディスク４１０への電源供給の停止あるいは開始を指示する。また、電源管理部２５０からの指示に応じてディスク４１０への電源状態を変更したときは、変更に合わせて電源状態表８４０を更新する。
【００４９】
ストレージ装置４００は、複数のＨＤＤ４１１，４１２，４１３と、各ＨＤＤ４１１，４１２，４１３に個別に電源を供給する電源４２０とを有する。
ＨＤＤ４１１，４１２，４１３は、ファイルデータを保持する記憶領域を有する。ＨＤＤ４１１はディスクＩＤ＝１、ＨＤＤ４１２はディスクＩＤ＝２、ＨＤＤ４１３はディスクＩＤ＝３が付されている。アクセス制御部３１０は、ディスクＩＤによってＨＤＤ４１１，４１２，４１３を管理する。
【００５０】
電源４２０は、データサーバ３００の電源制御部３３０に接続し、電源制御部３３０の指示にしたがってＨＤＤ４１１，４１２，４１３に供給する電源のオンオフを制御する。また、電源４２０は、ＨＤＤ４１１，４１２，４１３に対する電源状態を保持しており、電源制御部３３０からの要求に応じて電源状態を通知する。
【００５１】
次に、第２の実施形態のジョブ管理表８１０、アクセスログ８２０、アクセス集計表８３０および電源状態表８４０について順次説明する。
図５は、第２の実施形態のジョブ管理表の一例を示す図である。
【００５２】
ジョブ管理表８１０ａは、ジョブの起動と終了に関する管理情報として、ユーザＩＤ、グループＩＤ、ジョブＩＤ、使用するノードＩＤおよび利用時間帯の情報項目を有する。
ユーザＩＤは、各利用者（ユーザ）に対して一意に割り当てられる番号である。グループＩＤは、ユーザの所属や業務内容などが共通するグループに対して一意に割り当てられる番号である。ユーザＩＤおよびグループＩＤを合わせてジョブ属性とする。なお、ジョブ属性はこれに限定されず、たとえば、ジョブの有する他の特徴をジョブ属性に含むとしてもよい。第２の実施形態では、ジョブ属性が同じジョブは、ジョブ実行サーバ６００がジョブを実行したときのアクセスパターンが同様であると推定する。
【００５３】
ジョブＩＤは、各ジョブに対して一意に割り当てられる番号である。
使用するノードＩＤは、ジョブ管理サーバ５０がジョブの割り当てに使用するジョブ実行サーバ６００を特定する情報である。ノードＩＤは、それぞれジョブ実行サーバ群６０に含まれるジョブ実行サーバ６００に対し一意に割り当てられる番号である。ジョブ管理サーバ５０は、利用者からジョブの実行を指示されてスケジューリングを行うとき、資源の利用状況に基づいてジョブ実行サーバ６００にジョブを割り当てる。
【００５４】
利用時間帯は、ジョブ実行サーバ６００が割り当てられたジョブを実行する時間帯である。
図６は、第２の実施形態のアクセスログの一例を示す図である。
【００５５】
アクセスログ８２０ａは、ジョブＩＤ、ジョブ属性、ディスクＩＤおよびアクセスのあった経過時間区分の情報項目を有する。ジョブＩＤは、アクセス要求を行ったジョブの識別情報である。ジョブ属性は、ジョブＩＤに登録されているジョブが有する固有の属性であり、図６の例では、グループＩＤ（ＧＩＤ）およびユーザＩＤ（ＵＩＤ）である。ディスクＩＤは、アクセスを行ったディスク４１０の識別情報である。アクセスのあった経過時間区分は、アクセス管理部２３０がデータサーバ３００にアクセスを指示した経過時間区分である。なお、前述のように、経過時間区分はジョブ属性ごとに計時の開始点が異なる。たとえば、図５のジョブ管理表８１０ａに示すように、ジョブ［１］は１３：００に起動され、ジョブ［２］は１９：００に起動される。経過時間区分の単位時間を５分とすると、ジョブ［１］の経過時間区分１は１３：００−１３：０５に相当する。同様に、ジョブ［２］の経過時間区分１は、１９：００−１９：０５に相当する。
【００５６】
アクセスログ８２０ａは、ジョブ実行サーバ６００が、ジョブＩＤが［１］のジョブと、ジョブＩＤが［２］のジョブをそれぞれ１回以上実行したときに得られるログデータを示している。
【００５７】
図７は、第２の実施形態のアクセスパターンの一例を示す図である。アクセスパターン８２０ｂは、アクセスログ８２０ａのログデータを採取したときに、ジョブ［１］と、ジョブ［２］が経過時間区分ごとにアクセスしたＨＤＤのディスクＩＤを時系列に並べた図である。（）内の数字は、ＨＤＤのディスクＩＤを示している。たとえば、ジョブ［１］は、経過時間区分１で（１）、経過時間区分３で（１０）、経過時間区分５で（１０）、経過時間区分７で（５）と（１０）、経過時間区分９，１０で（５）にアクセスしている。一方、ジョブ［２］は、経過時間区分１，２で（２）、経過時間区分４，７で（１０）にアクセスしている。図７に示すように、ジョブが起動後にディスク４１０にアクセスするアクセスパターンは、ジョブごとに特徴を有する。
【００５８】
第２の実施形態のアクセス管理部２３０は、ジョブによるディスク４１０ごとのアクセスに関するログデータを採取し、アクセスログ８２０ａに蓄積することにより、ジョブごとにアクセスパターンを解析することができる。
【００５９】
図８は、第２の実施形態のアクセス集計表の一例を示す図である。アクセス集計表８３０ａは、図６に示すアクセスログ８２０ａを集計した情報である。
アクセス集計表８３０ａは、ディスクＩＤおよびジョブ属性と、経過時間区分ごとの集計値の情報項目を有する。ディスクＩＤおよびジョブ属性は、図６に示すアクセスログ８２０ａと同様である。以下では、説明を簡単にするために、異なるジョブ属性をそれぞれＡ（ＧＩＤ：２，ＵＩＤ：５）、Ｂ（ＧＩＤ：４，ＵＩＤ：６）、Ｃ（ＧＩＤ：２，ＵＩＤ：８）、Ｄ（ＧＩＤ：７，ＵＩＤ：３）、Ｅ（ＧＩＤ：１，ＵＩＤ：５）とする。
【００６０】
経過時間区分ごとの集計値は、アクセスジョブ数と、全ジョブ数の２つの項目を有する。アクセスジョブ数は、経過時間区分Ｎ（ＮはＮ≧１の整数）において、所定のディスク４１０にアクセスした所定のジョブ属性のジョブ数である。集計処理部２４０は、たとえば、図６に示すアクセスログ８２０ａの経過時間区分Ｎにおいて所定のディスク４１０にアクセスを行ったジョブの数を集計してアクセスジョブ数を算出する。経過時間区分内において、１つのジョブが同じディスク４１０に複数回アクセスした場合、アクセスジョブ数は１とカウントする。全ジョブ数は、アクセスジョブ数を集計した経過時間区分Ｎにおいて実行された同じジョブ属性を有する全ジョブの数である。全ジョブ数には、ディスク４１０にアクセスしなかったジョブが含まれる。たとえば、図８の１行目は、ジョブ属性Ａのジョブの経過時間区分１において、実行された同ジョブ属性の全ジョブ数は［４０］であり、そのうちディスクＩＤ［１］のディスクにアクセスしたジョブ数は［１２］であることを示す。
【００６１】
集計処理部２４０は、集計処理を行う際、全ジョブ数をジョブ管理サーバ５０から取得する。集計処理部２４０は、ジョブ管理サーバ５０に対し、ジョブ属性と経過時間区分とを指定し、その経過時間区分に処理を行っていた該当ジョブの総数を要求し、ジョブ管理サーバ５０が集計した全ジョブ数を取得する。
【００６２】
なお、経過時間区分ごとに集計するアクセスジョブ数と全ジョブ数は、メタデータサーバ２００がアクセスログ８２０の取得を開始して以降の累積値である。ジョブ管理サーバ５０は、ジョブ管理表８１０に基づいて、ジョブ属性が同じジョブを繰り返し実行させている。集計処理部２４０は、異なる開始時間に起動された同じジョブ属性のジョブによるアクセスログ８２０を解析し、該当するログデータをすべて集計し、累積値を算出する。集計処理部２４０は、たとえば、アクセスログ８２０ａに基づいて、経過時間区分ごとに所定のディスク４１０にアクセスしたアクセスジョブ数を集計する。集計処理部２４０は、集計したアクセスジョブ数をアクセス集計表８３０ａの対応するアクセスジョブ数欄の値に加算し、アクセスジョブ数欄の値を更新する。集計処理部２４０は、全ジョブ数についても同様に、ジョブ管理サーバ５０から取得した全ジョブ数を対応する全ジョブ欄の値に加算し、全ジョブ欄の値を更新する。
【００６３】
集計したアクセスジョブ数と、全ジョブ数とを用いて、所定のジョブ属性を有するジョブが所定の時間区分において対象ＨＤＤへアクセスするアクセス比率を算出することができる。このように、本システムの運用が開始されてからのアクセスしたジョブ数と全ジョブ数を累積することにより、算出されるアクセス比率を平準化することができる。
【００６４】
図９は、第２の実施形態の電源状態表の一例を示す図である。電源状態表８４０ａは、ディスクＩＤとＨＤＤの状態の項目を有する。ディスクＩＤは、ストレージ装置４００が有するＨＤＤに一意に付された番号である。ＨＤＤの状態は、ディスクＩＤによって識別されるＨＤＤの電源がオンまたはオフのいずれの状態であるかを示す情報である。
【００６５】
データサーバ３００の電源制御部３３０は、データサーバ３００の起動時に、電源４２０から電源状態を取得して電源状態表８４０ａを設定する。それ以降は、メタデータサーバ２００の電源管理部２５０からの電源状態の変更指示に応じてディスク４１０の電源状態を変更し、電源状態表８４０を書き換える。
【００６６】
このような構成により、第２の実施形態のストレージ制御が行われる。
（２）アクセス処理
第２の実施形態のアクセス処理について図１０を用いて説明する。図１０は、第２の実施形態のジョブの起動とジョブによるアクセス要求時の処理を示す図である。ここでは、全体の処理の流れについて説明する。
【００６７】
ジョブ管理サーバ５０は、たとえば、ジョブ実行サーバ６００がジョブの実行を完了するごとに、ジョブ起動処理９０１を開始する。ジョブ起動処理９０１では、ジョブ管理表８１０に基づき、起動予定時刻が過ぎたジョブを起動する処理を行う。ジョブ管理サーバ５０は、起動するジョブがあるときは、ファイルシステム１０（メタデータサーバ２００とデータサーバ３００）に対し、ジョブに必要なファイルシステム１０資源を割り当てる資源割当９０２を指示する。ジョブ管理サーバ５０は、資源割当９０２の送信後、ジョブ実行サーバ６００に対しジョブを割り当てるジョブ割当９０５を送信し、ジョブの起動を指示する。ジョブ管理サーバ５０によるジョブ起動処理９０１の詳細は、図１１を用いて後で説明する。
【００６８】
メタデータサーバ２００とデータサーバ３００は、資源割当９０２の要求に応じて、ジョブが利用するファイルデータをディスク４１０に割り付ける。このとき、メタデータサーバ２００は、ファイルデータをどのディスク４１０に割り当てたかをディスク情報８５０に登録する。また、メタデータサーバ２００は、ジョブ実行サーバ６００において新たなジョブが起動されるので、電源管理処理９０３を行う。そして、電源管理処理９０３による判定結果に応じて、ディスク４１０の電源状態を制御する電源制御指示９０４をデータサーバ３００に出力する。電源管理処理９０３の詳細は、図１４を用いて後で説明する。
【００６９】
ジョブが割り当てられたジョブ実行サーバ６００は、ジョブ実行処理９０６を開始する。ジョブ実行サーバ６００は、ジョブ実行処理９０６において、ファイルへのアクセスが必要となったとき、メタデータサーバ２００に対し、ファイルを指定してアクセス要求９０７を送信する。メタデータサーバ２００は、アクセス要求９０７を受信し、アクセス処理９０８を開始する。メタデータサーバ２００は、アクセス処理９０８において、ディスク情報８５０に基づいてアクセス要求９０７に対応するデータサーバ３００に対し、アクセス要求実行指示９０９を送信する。データサーバ３００は、アクセス要求実行指示９０９を受信すると、対象のＨＤＤにアクセスするアクセス処理９１０を実行し、応答９１１をメタデータサーバ２００に送信する。メタデータサーバ２００は、データサーバ３００から応答９１１を受信し、ジョブ実行サーバ６００に応答９１２を送信する。これにより、ジョブ実行サーバ６００によるアクセス処理は終了する。
【００７０】
メタデータサーバ２００は、アクセス処理９０８終了後、実行したアクセスに関するアクセスログを生成するアクセスログ生成処理９１３を実行する。メタデータサーバ２００は、アクセスログ生成処理９１３において、アクセス要求９０７を送信してきたジョブ実行サーバ６００のノードＩＤを用いて、ジョブ管理サーバ５０にアクセスしたジョブに関するアクセスジョブ関連情報の問い合わせ９１４を送信する。ジョブ管理サーバ５０は、問い合わせ９１４を受信し、ジョブ管理表８１０と、ジョブの実行状況を登録したジョブ実行情報とに基づき、問い合わせを受けたノードＩＤのジョブに関する情報を抽出する問い合わせ処理９１５を行う。ジョブ管理サーバ５０は、問い合わせ処理９１５において、問い合わせを受けたノードＩＤのジョブＩＤ、ジョブ属性、ジョブの開始時間を含むアクセスジョブ関連情報９１６を作成し、メタデータサーバ２００へ送信する。メタデータサーバ２００は、アクセスジョブ関連情報９１６を受信して今回のアクセス要求９０７に関するジョブのジョブＩＤと、ジョブ属性と、ジョブの開始時間を取得する。メタデータサーバ２００は、ジョブの開始時間と、メタデータサーバ２００上のシステム時間と、経過時間区分の単位時間とからアクセス要求９０７に対応する経過時間区分を算出する。メタデータサーバ２００は、たとえば、ジョブの開始時間とＴｓ、システム時間をＴｓｙｓ、経過時間区分の単位時間をΔＴとし、経過時間区分ｔを次の式（１）で算出する。
【００７１】
ｔ＝（Ｔｓｙｓ−Ｔｓ）÷ΔＴ                                    ・・・（１）
また、メタデータサーバ２００は、ディスク情報８５０に基づいて、アクセス要求９０７に対応するディスクＩＤを特定する。こうして、メタデータサーバ２００は、アクセス要求９０７に対応するジョブＩＤ、ジョブ属性、ディスクＩＤおよびアクセスのあった経過時間区分を特定する。メタデータサーバ２００は、たとえば、アクセスログ８２０ａのジョブＩＤ、ジョブ属性、ディスクＩＤの項目が一致するアクセスのあった経過時間区分の欄に、算出した時間区分ｔを追加登録する。なお、一致する項目がないときは、新たにレコードを作成する。
【００７２】
以上のジョブ実行サーバ６００によるアクセス要求９０７からメタデータサーバ２００によるアクセスログ生成処理９１３までの処理は、ジョブ実行サーバ６００がジョブ実行処理９０６においてアクセス要求９０７があるごとに実行される。
【００７３】
次に、ジョブ管理サーバ５０によるジョブ起動処理９０１について説明する。     図１１は、第２の実施形態のジョブ起動処理のフローチャートを示す図である。
ジョブ管理サーバ５０は、たとえば、ジョブの実行が完了するごと、あるいは、所定の周期でジョブ起動処理９０１を開始し、以下の処理手順を実行する。
【００７４】
［ステップＳ１１］ジョブ管理サーバ５０は、現在時刻を取得する。現在時刻は、システム全体で同期のとれているシステム時間Ｔｓｙｓである。
［ステップＳ１２］ジョブ管理サーバ５０は、ジョブ管理表８１０を読み出し、ジョブ管理表８１０にジョブを起動していない未処理のエントリがあるかどうかを判定する。ジョブ管理サーバ５０は、未処理のエントリがあるときは処理をステップＳ１３に進め、未処理のエントリがないときは処理を終了する。
【００７５】
［ステップＳ１３］ジョブ管理サーバ５０は、ジョブ管理表８１０に未処理のエントリがあるときは、未処理のエントリを１つ選択する。ジョブ管理サーバ５０は、選択したエントリに登録される対象のジョブの利用時間帯を調べ、対象のジョブの開始時刻と、現在時刻とを比較する。現在時刻が対象のジョブの開始時刻を過ぎているときは、処理をステップＳ１４にを進め、開始時刻を過ぎていないときは処理をステップＳ１２に進める。
【００７６】
［ステップＳ１４］ジョブ管理サーバ５０は、対象のジョブの開始時刻を過ぎているときは、ジョブ実行情報に基づき、ジョブが未実行であるか否かを判定する。ジョブ管理サーバ５０は、ジョブが未実行であるときは、処理をステップＳ１５に進め、ジョブが未実行でなければ処理をステップＳ１２に進める。
【００７７】
［ステップＳ１５］ジョブ管理サーバ５０は、対象のジョブが未実行であるときは、ファイルシステム１０内のメタデータサーバ２００とデータサーバ３００に対し、対象のジョブに必要な資源の割り当てを指示する。これにより、ファイルシステム１０内にジョブの実行に必要な資源が確保される。
【００７８】
［ステップＳ１６］ジョブ管理サーバ５０は、ジョブ実行サーバ６００に対象のジョブを割り当てるジョブ割当処理を行う。ジョブ管理サーバ５０は、ジョブ管理表８１０に基づき、対象のジョブを割り当てるジョブ実行サーバ６００に対してジョブを割り当て、ジョブの起動を指示する。ジョブ管理サーバ５０は、ジョブ割当処理の後、処理を終了する。
【００７９】
ジョブ管理サーバ５０によるジョブ割当処理について説明する。図１２は、第２の実施形態のジョブ割当処理のフローチャートを示す図である。
［ステップＳ１６１］ジョブ管理サーバ５０は、ジョブ管理表８１０からジョブの実行に使用するジョブ実行サーバ６００のノードＩＤを読み出す。図５に示すジョブ管理表８１０ａの例では、ジョブＩＤが［１］のジョブに対し、使用するノードＩＤとして［０−６３，１２８−２５５］のジョブ実行サーバ６００が登録されている。
【００８０】
［ステップＳ１６２］ジョブ管理サーバ５０は、ジョブが未割当のノード（ジョブ実行サーバ６００）の有無を判定する。たとえば、上記の例であれば、ノードＩＤが０から６３と、１２８から２５５のジョブ実行サーバ６００にジョブが未割当のものがあるかどうかを判定する。ジョブ管理サーバ５０は、たとえば、ジョブの実行状況に関する情報を記録するジョブ実行情報を参照して判定を行う。ジョブ管理サーバ５０は、ジョブを未割当のノードがあるときは、処理をステップＳ１６３に進める。ジョブを未割当のノードがないときは、処理をステップＳ１６５に進める。
【００８１】
［ステップＳ１６３］ジョブ管理サーバ５０は、ジョブが未割当のノードがあるときは、そのノードＩＤを有するジョブ実行サーバ６００に対し、ジョブを割り当てる。
［ステップＳ１６４］ジョブ管理サーバ５０は、ジョブを割り当てたノードの情報をジョブ実行情報に登録する。ジョブ管理サーバ５０は、ジョブ実行情報に、たとえば、ジョブを割り当てたノードＩＤ、割り当てたジョブのジョブＩＤ、開始時刻などの情報を登録する。ジョブ管理サーバ５０は、ジョブ実行情報の登録後、処理をステップＳ１６２に進める。
【００８２】
［ステップＳ１６５］ジョブ管理サーバ５０は、ジョブ管理表８１０の使用するノードＩＤに登録されているすべてのノードＩＤにジョブを割り当てたので、すべてのノードに対し、ジョブ開始指令を送信する。これにより、ジョブを割り当てられたジョブ実行サーバ６００によって対象のジョブが一斉に開始される。
【００８３】
図１０、図１１および図１２に示す処理手順が実行されることにより、ジョブ管理サーバ５０は、ジョブ管理表８１０に基づいてジョブ実行サーバ６００にジョブを割り当てる。ジョブ実行サーバ６００は、割り当てられたジョブを実行し、ファイルシステム１０に対し、ファイルアクセスを要求する。また、ジョブ実行サーバ６００がファイルシステム１０に対しファイルアクセスを要求したときのログデータは、メタデータサーバ２００が生成し、アクセスログ８２０として蓄積する。
【００８４】
なお、図１０では、メタデータサーバ２００およびデータサーバ３００に対し、資源割当９０２が行われたとき、メタデータサーバ２００において電源管理処理９０３が行われるとした。この電源管理処理９０３については、（３）電力削減処理において説明する。
【００８５】
（３）電力削減処理
電力削減処理では、メタデータサーバ２００は、アクセス集計表８３０に基づいて所定の時間区分Ｔにおけるディスク４１０へのアクセスを推定し、推定結果に基づいて消費電力が削減されるように電源管理を行う。
【００８６】
電力削減処理について図１３を用いて説明する。なお、上記で説明したように、メタデータサーバ２００は、資源割当９０２を取得したときにも電力削減のため、電源管理処理を行う。資源割当９０２の取得は、ファイルシステム１０にアクセス要求を行うジョブが新たに追加されることを示すので、ジョブ実行サーバ６００からのアクセスパターンが変わる。そこで、資源割当９０２の取得時に、新たに実行されるジョブに合わせて電源管理処理を行うことにより、より効果的に消費電力を低減することができる。なお、ジョブの動作状況に合わせた通常の電源管理処理は、時間区分の単位時間（ΔＴ）ごとに定周期で行う。電源管理処理の基準となる時間区分は、システムの起動時からの経過時間を単位時間（ΔＴ）で区切った時間帯である。第２の実施形態では、単位時間は、ジョブの経過時間を区切る単位時間と共通とする。なお、システムの起動時からカウントする時間区分と、ジョブの起動時からカウントする経過時間区分とは、時間区分の開始時点が異なるが、時間区分の切り替わるタイミングは同じである。たとえば、システムの起動時からカウントする時間区分に付す番号に１を加算するタイミングで、ジョブの経過時間に付す番号に１を加算する。
【００８７】
次に、第２の実施形態のメタデータサーバによる電力削減処理について説明する。図１３は、第２の実施形態のメタデータサーバの電力削減処理のフローチャートを示す図である。
【００８８】
［ステップＳ２１］メタデータサーバ２００は、資源割当９０２があったか否かを判定する。資源割当９０２があったときは、処理をステップＳ２８に進める。また、メタデータサーバ２００は、資源割当９０２がなかったときは、処理をステップＳ２２に進める。
【００８９】
［ステップＳ２２］メタデータサーバ２００は、アクセスログ８２０を解析するアクセスログ解析処理の実行周期（ΔＴ）であるか否かを判定する。メタデータサーバ２００は、アクセスログ解析処理の実行周期であるときは、処理をステップＳ２３に進める。また、メタデータサーバ２００は、アクセスログ解析処理の実行周期でないときは、処理をステップＳ２１に進める。
【００９０】
［ステップＳ２３］メタデータサーバ２００は、記憶部２２０に格納されているアクセスログ８２０を読み出す。メタデータサーバ２００は、たとえば、アクセスログ８２０から前回のアクセスログ解析処理終了後に採取されたログデータを抽出する。
【００９１】
［ステップＳ２４］メタデータサーバ２００は、読み出したアクセスログ８２０を解析し、ディスクＩＤとジョブ属性が同じエントリを抽出し、経過時間区分ごとにアクセスジョブ数を集計する。たとえば、図６に示すアクセスログ８２０ａは、ディスクＩＤが［１］、かつ、ジョブ属性が［ＧＩＤ：２，ＵＩＤ５］のジョブに対応付けて、アクセスのあった経過時間区分が登録されている。この場合、メタデータサーバ２００は、経過時間区分１に対応するアクセスジョブ数の集計値に１を加算する。ディスクＩＤとジョブ属性が同じエントリが他にあるときは、同様の処理を行う。
【００９２】
［ステップＳ２５］メタデータサーバ２００は、ジョブ属性と経過時間区分を指定し、ジョブ管理サーバ５０に対し、指定に該当する全ジョブ数を要求する。メタデータサーバ２００は、たとえば、ステップＳ２４において、アクセスしたジョブ数を更新したジョブ属性と経過時間区分を記憶しておき、これを指定してジョブ管理サーバ５０に同じジョブ属性を有するジョブがこの経過時間区分において実行された全ジョブ数を要求する。
【００９３】
［ステップＳ２６］メタデータサーバ２００は、集計したアクセスしたジョブ数と、ジョブ管理サーバ５０より取得した全ジョブ数を、アクセス集計表８３０の対応するディスクＩＤ、ジョブ属性および経過時間区分におけるアクセスしたジョブ数と全ジョブ数に加算する。これにより、アクセス集計表８３０を更新する。このように、新たに集計したアクセスしたジョブ数と全ジョブ数を、前回までの集計値に加算していくことにより、このジョブ属性のジョブにおける経過時間区分ごとのアクセスしたジョブ数と全ジョブ数のシステムの起動時からの累積値が得られる。
【００９４】
［ステップＳ２７］メタデータサーバ２００は、全ディスクＩＤとジョブ属性についてアクセス集計処理が終了したか否かを判定する。メタデータサーバ２００は、アクセス集計処理が終了したときは、処理をステップＳ２８に進める。アクセス集計処理が終了していないときは、処理をステップＳ２４に進める。
【００９５】
［ステップＳ２８］メタデータサーバ２００は、アクセス集計表８３０の更新が終了したので、電源管理処理を実行する。電源管理処理では、ストレージ装置４００の電力消費を削減するように電源を管理する。なお、メタデータサーバ２００は、集計処理に用いたエントリをアクセスログ８２０から削除するとしてもよい。メタデータサーバ２００は、電源管理処理の終了後、処理をステップＳ２１に進める。
【００９６】
上記のフローチャートでは、アクセス解析処理内において資源割当９０２の有無を判定して電源管理処理を起動しているが、たとえば、資源割当９０２の受付処理内で電源制御指示処理を起動するとしてもよい。
【００９７】
次に、第２の実施形態の電源制御について図１４を用いて説明する。図１４は、第２の実施形態の電源管理処理のフローチャートを示す図である。第２の実施形態の電源管理処理では、現時の時間区分の次の時間区分を対象時間区分として電源管理を行う。
【００９８】
［ステップＳ３１］メタデータサーバ２００は、今回の電源管理処理において、まだ電源管理の対象となっていないＨＤＤの有無を判定する。メタデータサーバ２００は、電源管理の対象となっていないＨＤＤがあるときは、処理をステップＳ３２に進める。また、メタデータサーバ２００は、すべてのＨＤＤに対する電源管理処理が終了し、電源管理の対象となっていないＨＤＤがないときは、電源管理処理を終了する。
【００９９】
［ステップＳ３２］メタデータサーバ２００は、電源管理の対象となっているＨＤＤ（Ｄ）について、ＨＤＤ（Ｄ）が対象時間区分においてアクセスされるアクセス確率を算出するアクセス確率算出処理を行う。アクセス確率算出処理の詳細は、図１６を用いて後で説明する。
【０１００】
［ステップＳ３３］メタデータサーバ２００は、電源制御の対象となっているＨＤＤ（Ｄ）について、ステップＳ３２において算出したアクセス確率に基づいて、各ＨＤＤ（Ｄ）の電源をオンしたときと、オフしたときと、電源状態を維持したときのコストを算出する。コスト計算処理の詳細は、後で説明する。
【０１０１】
［ステップＳ３４］メタデータサーバ２００は、ステップＳ３３で算出したコストに基づいて、ＨＤＤ（Ｄ）の消費電力を最も削減することができる電源状態に制御する電源制御指示処理を行う。電源制御指示処理の詳細は、図１７を用いて後で説明する。
【０１０２】
以上の処理手順が実行されることにより、メタデータサーバ２００は、各ディスク４１０のアクセス確率を推定し、アクセス確率に基づいて最も消費電力量を削減する電源状態を決定するので、効果的に電力消費量を削減することができる。
【０１０３】
次に、第２の実施形態のアクセス確率算出処理について説明する。まず、アクセス推定処理について図１５を用いて説明する。図１５は、第２の実施形態のアクセス推定処理を説明する図である。
【０１０４】
システム時間（Ｔｓｙｓ）は、システム全体で同期がとれている時間である。図１５に示す点線は、時間区分の区切りであり、経過時間を単位時間（ΔＴ）で区切った線である。現在の時間区分をＴ０として、次の時間区分はＴ１とし、時間区分ごとにＴ２，Ｔ３，Ｔ４，・・・と表す。一方、Ｔ０より前の過去の時間区分は、１つ前の時間区分をＴ−１とし、時間区分をさかのぼるごとにＴ−２，Ｔ−３，・・・と表す。ここで、第２の実施形態では、電源制御のためのアクセス推定処理において、次の時間区分Ｔ１を対象時間区分とし、対象時間区分Ｔ１におけるジョブのアクセスを推定して電源制御を行うとする。
【０１０５】
ジョブ属性Ａ、ジョブ属性Ｂ、ジョブ属性Ｃ、ジョブ属性Ｄは、ジョブ実行サーバ６００が実行するそれぞれ異なるジョブ属性を有するジョブである。また、各ジョブ属性のジョブは、Ｔ−３よりも前に、１回以上実行され、アクセスログ８２０には、経過時間区分ごとのログデータが登録されている。ジョブ実行サーバ６００によるジョブ実行時、メタデータサーバ２００は、ジョブ実行サーバ６００がファイルシステム１０にアクセスしたときにログデータを生成し、アクセスログ８２０に蓄積している。また、メタデータサーバ２００は、アクセスログ８２０を集計したアクセス集計表８３０を生成し、記憶部２２０に格納している。
【０１０６】
アクセス推定を行う対象時間区分Ｔ１の近傍において実行されるジョブについて説明する。ジョブ属性Ａのジョブは、システム時間の時間区分Ｔ−１からＴ４の間に実行される。ｔａ１，ｔａ２，ｔａ３，ｔａ４，ｔａ５，ｔａ６は、ジョブ属性Ａのジョブを起動したときからの経過時間区分を示す。たとえば、ｔａ１は、ジョブ属性Ａのジョブが起動を開始してから最初の経過時間区分である。ジョブ属性Ｂ、ジョブ属性Ｃ、ジョブ属性Ｄについても同様である。メタデータサーバ２００は、ジョブ管理表８１０に基づいて、対象時間区分Ｔ１において実行が予定されるジョブと、そのジョブの経過時間区分とを検出する。図１３の例では、ジョブ属性Ａのジョブは対象時間区分Ｔ１において実行が予定され、ジョブの経過時間区分はｔａ３である。ジョブ属性Ｂのジョブは対象時間区分Ｔ１において実行が予定され、ジョブの経過時間区分はｔｂ２である。ジョブ属性Ｃのジョブは対象時間区分Ｔ１において実行が開始される予定であり、ジョブの経過時間区分はｔｃ１である。ジョブ属性Ｄのジョブは、対象時間区分Ｔ１では終了しており、対象外である。
【０１０７】
メタデータサーバ２００は、このようにして検出した対象時間区分Ｔ１において実行予定のジョブとジョブの経過時間区分とを特定し、アクセス集計表８３０に基づいて、所定の時間区分Ｔ１における所定のディスク４１０へのアクセスを推定する。
【０１０８】
メタデータサーバ２００は、アクセス集計表８３０に登録されている観測された事象から推定したい事柄（着目する対象時間区分Ｔ１において所定のディスク４１０にアクセスが発生すること）を確率的に推論する。第２の実施形態では、このような確率論的推論の手法としてベイズ推定を用いる。たとえば、メタデータサーバ２００は、対象時間区分Ｔ１において実行が予定されるジョブ属性のジョブが、対象のディスク４１０へアクセスするアクセス確率を事後確率として、アクセス推定を行う。メタデータサーバ２００は、アクセス集計表８３０ａから過去に同じ条件（対象のディスク４１０、ジョブ属性、経過時間区分が一致）で実行されたジョブの情報を取得し、実行されたジョブ数に対するアクセスを行ったジョブ数のアクセス比率を算出する。すなわち、メタデータサーバ２００は、アクセス集計表８３０ａに基づく観測結果から算出したアクセス比率に基づいて、アクセス確率を推定する。メタデータサーバ２００は、一例として、ｊｋをジョブ属性、Ｄを対象のＨＤＤ、ｔｋをジョブの経過時間区分として、アクセス確率Ｐ（ｊｋ，Ｄ，ｔｋ）を次の式（２）で求める。なお、全ジョブ数をｎとして、ｋは１≦ｋ≦ｎの整数である。Ｄは全ＨＤＤの数をｍとして１≦Ｄ≦ｍの整数である。
【０１０９】
Ｐ（ｊｋ，Ｄ，ｔｋ）
＝Ｎ＿ａｃｃｅｓｓｅｄ（ｊｋ，Ｄ，ｔｋ）÷Ｎ＿ｔｏｔａｌ（ｊｋ，Ｄ，ｔｋ）
・・・（２）
Ｎ＿ａｃｃｅｓｓｅｄ（ｊｋ，Ｄ，ｔｋ）は、アクセス集計表８３０のディスクＩＤがＨＤＤ（Ｄ）のジョブ属性ｊｋの経過時間区分ｔｋにおける「ジョブアクセス数」から取得することができる。Ｎ＿ｔｏｔａｌ（ｊｋ，Ｄ，ｔｋ）は、「ジョブアクセス数」に対応する「全ジョブ数」から取得することができる。
【０１１０】
具体例を挙げて説明する。メタデータサーバ２００は、特定した実行予定のジョブとジョブの経過時間区分とに基づいてアクセス集計表８３０を検索する。たとえば、対象のディスクＩＤを［１］としたとき、アクセス集計表８３０ａには、ジョブ属性Ａのジョブが、対象時間区分Ｔ１において経過時間区分ｔａ３の処理を行うことが登録されている。メタデータサーバ２００は、アクセス集計表８３０ａから経過時間区分３の情報を読み出し、アクセスジョブ数［４］と、全ジョブ数［４０］とを得る。抽出したアクセスジョブ数と全ジョブ数を式（２）に適用し、Ｐ（Ａ，１，３）＝４／４０を得る。なお、（Ａ，１，３）は、それぞれＰ（ｊｋ，Ｄ，ｔｋ）のｊｋ＝ジョブ属性Ａ、Ｄ＝ディスクＩＤ１、経過時間区分＝ｔａ３を表す。
【０１１１】
同様にして、対象時間区分Ｔ１においてディスク［１］にアクセスする他のジョブ属性Ｂ、Ｃのジョブが、対象時間区分Ｔ１においてディスク［１］にアクセスするアクセス確率を算出する。たとえば、ジョブ属性Ｂは、対象時間区分Ｔ１における経過時間区分がｔｂ２であるので、式（２）とアクセス集計表８３０ａに基づき、アクセス確率はＰ（Ｂ，１，２）＝２／３５となる。ジョブ属性Ｃは、対象時間区分Ｔ１における経過時間区分がｔｃ１であるので、式（２）とアクセス集計表８３０ａに基づき、アクセス確率はＰ（Ｃ，１，１）＝４／２０となる。
【０１１２】
このようにして、対象時間区分Ｔ１において実行が予定される全ジョブについて、個々のジョブによるアクセス確率を算出する。ジョブ間でのＨＤＤ（Ｄ）へのアクセスがすべて独立であるとすれば、ＨＤＤ（Ｄ）に対して全ジョブが対象時間区分Ｔにアクセスするアクセス確率Ｐ（Ｄ）は次の式で求めることができる。
【０１１３】
Ｐ（Ｄ）＝１−Π（１−ｐ（ｊｋ，Ｄ，ｔｋ））                      ・・・（３）
このように、対象時間区分Ｔ１において実行が予定されるジョブごとのアクセスログ８２０ａを集計したアクセス集計表８３０ａに基づいてアクセスを推定するので、アクセス推定の精度を上げることができる。また、高い精度のアクセス推定に基づいて電源制御を行うことにより、消費電力量をより確実に低減することができる。
【０１１４】
次に、上記のアクセス確率を算出するアクセス確率算出処理の手順について説明する。図１６は、第２の実施形態のアクセス確率算出処理のフローチャートを示す図である。以下の説明では、対象のＨＤＤをＨＤＤ（Ｄ）、対象時間区分をＴ、対象時間区分Ｔにおいて起動している全ジョブ属性をｊ１，ｊ２，・・・，ｊｎとする。
【０１１５】
［ステップＳ３２１］メタデータサーバ２００は、コスト計算の対象のＨＤＤ（Ｄ）と、対象時間区分Ｔを取得する。
［ステップＳ３２２］メタデータサーバ２００は、ジョブ管理サーバ５０に対し、対象時間区分Ｔを指定して、対象時間区分Ｔにおいて起動している全ジョブ属性ｊ１，ｊ２，・・・，ｊｎの情報を要求する。ジョブ管理サーバ５０は、ジョブ管理表８１０に基づいて、対象時間区分Ｔにおいて実行が予定される全ジョブ属性ｊ１，ｊ２，・・・，ｊｎを抽出し、メタデータサーバ２００に送信する。実行が予定されるジョブは、既に起動され、実行中のジョブと、次の時間区分において起動されるジョブと、を含む。
【０１１６】
［ステップＳ３２３］メタデータサーバ２００は、ジョブ管理サーバ５０から取得したジョブ属性から未処理のジョブ属性ｊｋを抽出し、対象時間区分Ｔにおけるジョブ属性ｊｋの経過時間区分ｔｋを算出する。
【０１１７】
［ステップＳ３２４］メタデータサーバ２００は、アクセス集計表８３０を検索して、ジョブ属性ｊｋの経過時間区分ｔｋに対応するアクセスジョブ数と全ジョブ数とを抽出する。メタデータサーバ２００は、抽出したアクセスジョブ数と全ジョブ数とに基づいて、経過時間区分ｔｋにおいてＨＤＤ（Ｄ）にアクセスしたアクセス比率を算出する。メタデータサーバ２００は、式（２）を用いて、算出したアクセス比率に基づいて、対象時間区分Ｔにおけるジョブ属性ｊｋのジョブのＨＤＤ（Ｄ）へのアクセス確率Ｐ（ｊｋ，Ｄ，ｔｋ）を算出する。
【０１１８】
［ステップＳ３２５］メタデータサーバ２００は、全ジョブ属性の処理が終了したか否かを判定する。メタデータサーバ２００は、全ジョブ属性の処理が終了しているときは、処理をステップＳ３２６に進め、終了していないときは処理をステップＳ３２３に進める。
【０１１９】
［ステップＳ３２６］メタデータサーバ２００は、対象時間区分Ｔにおいて実行が予定される各ジョブのＨＤＤ（Ｄ）へのアクセス確率を算出したので、式（３）を用いて、対象時間区分ＴにおけるＨＤＤ（Ｄ）へのアクセス確率Ｐ（Ｄ）を算出する。
【０１２０】
上記の処理手順が実行されることにより、アクセス集計表８３０に基づいて対象時間区分Ｔにおいて実行が予定されるジョブによるＨＤＤ（Ｄ）へのアクセス確率が得られる。
次に、コスト計算処理について説明する。
【０１２１】
コスト計算処理では、上記のアクセス推定によって推定した対象時間区分Ｔにおいて所定のディスクＨＤＤ（Ｄ）にアクセスされるアクセス確率に応じたコストを算出する。
対象時間区分Ｔにおける対象のＨＤＤ（Ｄ）へのアクセス確率Ｐ（Ｄ）に基づき、電源制御を行ったときのコストを計算する。第２の実施形態では、コストの指標として電源制御を行ったときの電力消費量を算出する。ここでは、対象時間区分Ｔの開始時点において対象のＨＤＤ（Ｄ）の電源がオンであり、対象時間区分Ｔの区間もオンを継続していた場合を基準として電力消費量を考える。ＨＤＤ（Ｄ）の電源がオンで、オンを継続した場合のコストＣ０（Ｄ）は、電源制御による電力消費量の削減は生じないので、次の式（４）で求めることができる。
【０１２２】
Ｃ０（Ｄ）＝０                                                    ・・・（４）
一方、電源をオフしたときは、対象時間区分Ｔの区間（ΔＴ）において、ＨＤＤ（Ｄ）が消費する電力消費量を削減することができる。ディスクの単位時間当たりの電力消費量をＷｄとしたとき、ＨＤＤ（Ｄ）のオフによる電力消費量の期待値は、（−Ｗｄ）×ΔＴ×（１−Ｐ（Ｄ））と表すことができる。しかし、ＨＤＤ（Ｄ）の電源をオフしているときに、ジョブ実行サーバ６００からアクセス確率Ｐ（Ｄ）でアクセスが発生する。アクセスが発生したときは、ＨＤＤ（Ｄ）の電源をオンし、ＨＤＤ（Ｄ）へのアクセスが可能となるまでシステム全体が待ち状態になる。たとえば、電源オフのＨＤＤ（Ｄ）に対してアクセスが発生した場合にアクセスが可能となるまでの起動時間をＴｉｎｃ、単位時間当たりのシステム全体の電力消費量をＷｓとする。このとき、ＨＤＤ（Ｄ）電源オフ時にアクセスが発生した場合に必要となる電力消費量の期待値は、（Ｔｉｎｃ×Ｗｓ）×Ｐ（Ｄ）と表すことができる。したがって、電源をオフしたときの消費電力量に応じたコストＣ１（Ｄ）は、ＨＤＤ（Ｄ）の電源オフによって削減が可能な電力消費量の期待値と、電源オフのときにアクセスが発生したときに必要となる電力消費量の期待値の合計になる。コストＣ１は、次の式（５）で算出することができる。
【０１２３】
Ｃ１（Ｄ）＝（Ｔｉｎｃ×Ｗｓ）×Ｐ（Ｄ）＋（−Ｗｄ）×ΔＴ×（１−Ｐ（Ｄ））
・・・（５）
メタデータサーバ２００は、このようにしてＨＤＤ（Ｄ）の電源がオンのとき、対象時間区分Ｔにおいて電源オンを維持したときのコストＣ０（Ｄ）と、電源をオフしたときのコストＣ１（Ｄ）と、を算出する。メタデータサーバ２００は、算出したコストＣ０（Ｄ）と、コストＣ１（Ｄ）を比較し、コストの小さい方を選択することができる。たとえば、次のように電源制御を指示することができる。
【０１２４】
Ｃ１（Ｄ）＞Ｃ０（Ｄ）であれば、ＨＤＤ（Ｄ）の電源はオンを継続する。
Ｃ１（Ｄ）＜Ｃ０（Ｄ）であれば、ＨＤＤ（Ｄ）の電源はオフする。
なお、対象時間区分Ｔの開始時点において対象のＨＤＤ（Ｄ）の電源がオフであったときも同様にコストを算出することができる。ＨＤＤ（Ｄ）の電源オフを継続する場合のコストＣ２（Ｄ）は、ＨＤＤ（Ｄ）の電源をオンからオフにした場合と同様に、次の式（６）で算出することができる。
【０１２５】
Ｃ２（Ｄ）＝（Ｔｉｎｃ×Ｗｓ）×Ｐ（Ｄ）＋（−Ｗｄ）×ΔＴ×（１−Ｐ（Ｄ））
・・・（６）
一方、電源をオフからオンにした場合のコストＣ３（Ｄ）は、次の式（７）で算出することができる。
【０１２６】
Ｃ３（Ｄ）＝（−Ｗｄ）×ΔＴ×Ｐ（Ｄ）                          ・・・（７）
メタデータサーバ２００は、このようにしてＨＤＤ（Ｄ）の電源がオフのとき、対象時間区分Ｔにおいて電源オフを維持したときのコストＣ２（Ｄ）と、電源をオンしたときのコストＣ３（Ｄ）と、を算出する。メタデータサーバ２００は、算出したコストＣ２（Ｄ）と、コストＣ３（Ｄ）を比較し、コストの小さい方を選択することができる。たとえば、次のように電源制御を指示することができる。
【０１２７】
Ｃ３（Ｄ）＞Ｃ２（Ｄ）であれば、ＨＤＤ（Ｄ）の電源はオフを継続する。
Ｃ３（Ｄ）＜Ｃ２（Ｄ）であれば、ＨＤＤ（Ｄ）の電源はオンする。
メタデータサーバ２００は、アクセス確率に基づいて、ＨＤＤ（Ｄ）の電源制御を行ったときのコストをそれぞれの場合について算出し、算出したコストに基づいて、よりコストが小さくなるように電源制御を行う。
【０１２８】
次に、電源制御指示処理について図１７を用いて説明する。図１７は、第２の実施形態の電源制御指示処理のフローチャートを示す図である。なお、以下のフローチャートにおいて（）で囲む処理は、メタデータサーバ２００の指示を受けたデータサーバ３００による処理を示す。
【０１２９】
［ステップＳ３４１］メタデータサーバ２００は、電源状態表８４０をデータサーバ３００より取得する。メタデータサーバ２００は、取得した電源状態表８４０に基づいて、対象のＨＤＤ（Ｄ）の電源がオンしているか否かを判定する。メタデータサーバ２００は、対象のＨＤＤ（Ｄ）の電源がオンしているときは、処理をステップＳ３４２に進め、オンしていないときは処理をステップＳ３４４に進める。
【０１３０】
［ステップＳ３４２］メタデータサーバ２００は、対象のＨＤＤ（Ｄ）の電源をオフしたときのコストＣ１（Ｄ）と、オンを維持したときのコストＣ０（Ｄ）を比較する。メタデータサーバ２００は、比較の結果、オフのコストＣ１（Ｄ）＜オン維持のコストＣ０（Ｄ）であるときは、処理をステップＳ３４３に進める。メタデータサーバ２００は、オフのコストＣ１（Ｄ）＜オン維持のコストＣ０（Ｄ）でないときは、電源状態を変更せずに処理を終了する。
【０１３１】
［ステップＳ３４３］メタデータサーバ２００は、データサーバ３００に対し、対象のＨＤＤ（Ｄ）の電源オフを指示し、処理をステップＳ３４６に進める。（指示を受けたデータサーバ３００は、電源４２０を制御し、対象のＨＤＤ（Ｄ）への電源供給を停止する。）
［ステップＳ３４４］メタデータサーバ２００は、対象のＨＤＤ（Ｄ）の電源をオンしたときのコストＣ３（Ｄ）と、オフを維持したときのコストＣ２（Ｄ）を比較する。メタデータサーバ２００は、比較の結果、オンのコストＣ３（Ｄ）＜オフ維持のコストＣ２（Ｄ）であるときは、処理をステップＳ３４５に進める。メタデータサーバ２００は、オンのコストＣ３（Ｄ）＜オフ維持のコストＣ２（Ｄ）でないときは、電源状態を変更せずに処理を終了する。
【０１３２】
［ステップＳ３４５］メタデータサーバ２００は、データサーバ３００に対し、対象のＨＤＤ（Ｄ）の電源オンを指示し、処理をステップＳ３４６に進める。（指示を受けたデータサーバ３００は、電源４２０を制御し、対象のＨＤＤ（Ｄ）への電源供給を開始する。）
［ステップＳ３４６］メタデータサーバ２００は、データサーバ３００に対し、対象のＨＤＤ（Ｄ）の電源オフを電源状態表８４０に反映し、電源状態表８４０を更新するように指示し、処理を終了する。（指示を受けたデータサーバ３００は、電源状態表８４０を更新する。）
以上の処理手順が実行されることにより、メタデータサーバ２００は、各ＨＤＤ（Ｄ）へのアクセス確率を推定し、推定したアクセス確率から算出したコストに基づいて、ＨＤＤ（Ｄ）の電源制御を行う。
【０１３３】
このように、メタデータサーバ２００は、ジョブごとに異なるアクセスパターンが反映されるアクセス履歴に基づいて、所定の時間区分における対象のＨＤＤ（Ｄ）へのジョブからのアクセス確率を算出する。メタデータサーバ２００は、算出したアクセス確率に基づいて、電力消費量に応じたコストが最も小さくなるように電源制御を行う。これにより、アクセスパターンを考慮しない電源制御と比べ、より効率的にストレージ装置の電力消費を削減することが可能となる。
【０１３４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１３５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１３８】
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。たとえば、実施形態に示される全構成要素を適宜組み合わせてもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能である。
【符号の説明】
【０１３９】
１  ストレージ制御装置
１ａ  記憶部
１ｂ  制御部
２  ストレージ装置
２ａ，２ｂ  ストレージデバイス
２ｄ  電源供給部
３ａ  予定情報
３ｂ  履歴情報
４ａ  ジョブＡ
４ｂ  ジョブＢ
１０  ファイルシステム
２０  メタデータサーバ群
３０  データサーバ群
５０  ジョブ管理サーバ
６０  ジョブ実行サーバ群
７０  ネットワーク
２００，２００ａ，２００ｂ  メタデータサーバ
２２０  記憶部
２３０  アクセス管理部
２４０  集計処理部
２５０  電源管理部
３００，３００ａ，３００ｂ  データサーバ
３１０  アクセス制御部
３２０  記憶部
３３０  電源制御部
３４０  ＨＤＤインタフェース
４００，４００ａ，４００ｂ  ストレージ装置
４２０  電源
５１０  記憶部
５２０  ジョブスケジューラ
６００，６００ａ，６００ｂ  ジョブ実行サーバ
【図１】
0006540409.tif 000002
【図２】
0006540409.tif 000003
【図３】
0006540409.tif 000004
【図４】
0006540409.tif 000005
【図５】
0006540409.tif 000006
【図６】
0006540409.tif 000007
【図７】
0006540409.tif 000008
【図８】
0006540409.tif 000009
【図９】
0006540409.tif 000010
【図１０】
0006540409.tif 000011
【図１１】
0006540409.tif 000012
【図１２】
0006540409.tif 000013
【図１３】
0006540409.tif 000014
【図１４】
0006540409.tif 000015
【図１５】
0006540409.tif 000016
【図１６】
0006540409.tif 000017
【図１７】
0006540409.tif 000018