(57)【特許請求の範囲】
【請求項１】
記憶デバイスを有し、前記記憶デバイスからストレージ記憶領域を作成するストレージ装置と、
前記ストレージ装置にネットワークを経由して接続され、前記ストレージ記憶領域にアクセスすることが可能なサーバ装置と、
前記ストレージ装置及び前記サーバ装置にネットワークを経由して接続され、ストレージ環境を管理する管理装置と、
を有するストレージシステムにおいて、
前記ストレージ装置は、
前記ストレージ記憶領域からなるユニットを、前記記憶デバイスの動作に必要な電源の電源制御の単位とする電源制御対象ユニットとし、前記電源制御を前記電源制御対象ユニットごとに行う電源制御手段を有し、
前記サーバ装置は、
前記ストレージ記憶領域を使用するタスクを実行するアプリケーションを有し、
前記管理装置は、
前記ストレージ記憶領域と前記ストレージ記憶領域が所属する電源制御対象ユニットとの対応関係を定めたストレージ構成情報を記憶する手段と、
前記タスクと前記タスクを実行する場合に前記タスクが使用するストレージ記憶領域との対応関係を定めたタスク管理情報を記憶する手段と、
前記タスクの実行可能時間帯を定めたタスク実行条件を収集する手段と、
前記ストレージ装置における許容ピーク電力の値及び前記電源制御対象ユニットにおける電源の停止回数を定めた電源制御条件を収集する手段と、
前記ストレージ構成情報及び前記タスク管理情報に基づいて、前記タスク実行条件及び前記電源制御条件を満たすように作成されるスケジュール案に従い、前記タスクの実行及び前記電源制御を実行する手段と、
前記スケジュール案を、当該スケジュール案を評価するための評価値と共に表示する表示手段と、
前記表示されたスケジュール案のうちユーザが希望するものを選択することが可能な入力を行う入力手段と、を有し、
前記管理装置は、前記スケジュール案を作成する際、前記電源制御対象ユニットにおける所定期間内の消費電力の合計値、及び前記電源制御対象ユニットを起動して生じる所定期間内のピーク電力の値を、前記スケジュール案を評価するための前記評価値として算出し、前記表示手段に前記スケジュール案を表示する際、前記評価値に基づいて、前記消費電力の合計値の小さい順に前記スケジュール案の並び替えを行って表示することを特徴とするストレージシステム。
【請求項２】
前記管理装置は、
前記入力手段からの入力により選択されたスケジュール案に従い、前記タスクの実行及び前記電源制御を実行することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記タスク管理情報は、それぞれの前記ストレージ記憶領域において、各ストレージ記憶領域に対応する前記タスクの実行に要するタスク実実行時間の情報をさらに含み、
前記管理装置は、
前記ストレージ構成情報及び前記タスク管理情報に基づいて、前記タスク実行条件及び前記電源制御条件を満たすように前記スケジュール案を変更し、
前記変更したスケジュール案に従い、前記タスクの実行及び前記電源制御を実行することを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記管理装置は、
前記ストレージ装置から、前記電源制御対象ユニットごとに電源制御の起動時刻及び停止時刻を含む電源制御のタイミングを受信する手段を有し、
前記電源制御のタイミングに基づいて、前記タスク実実行時間を算出することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
記憶デバイスを有し、前記記憶デバイスからストレージ記憶領域を作成し、前記ストレージ記憶領域からなるユニットを、前記記憶デバイスの動作に必要な電源の電源制御の単位とする電源制御対象ユニットとし、前記電源制御を前記電源制御対象ユニットごとに行う電源制御手段を有するストレージ装置、及び、前記ストレージ装置にネットワークを経由して接続され、前記ストレージ記憶領域にアクセスすることが可能であり、前記ストレージ記憶領域を使用するタスクを実行するアプリケーションを有するサーバ装置にネットワークを経由して接続され、ストレージ環境を管理する管理装置において、
前記ストレージ記憶領域と前記ストレージ記憶領域が所属する電源制御対象ユニットとの対応関係を定めたストレージ構成情報を記憶する手段と、
前記タスクと前記タスクを実行する場合に前記タスクが使用するストレージ記憶領域との対応関係を定めたタスク管理情報を記憶する手段と、
前記タスクの実行可能時間帯を定めたタスク実行条件を収集する手段と、
前記ストレージ装置における許容ピーク電力の値及び前記電源制御対象ユニットにおける電源の停止回数を定めた電源制御条件を収集する手段と、
前記ストレージ構成情報及び前記タスク管理情報に基づいて、前記タスク実行条件及び前記電源制御条件を満たすように作成されるスケジュール案に従い、前記タスクの実行及び前記電源制御を実行する手段と、
前記スケジュール案を、当該スケジュール案を評価するための評価値と共に表示する表示手段と、
前記表示されたスケジュール案のうちユーザが希望するものを選択することが可能な入力を行う入力手段と、を有し、
前記スケジュール案を作成する際、前記電源制御対象ユニットにおける所定期間内の消費電力の合計値、及び前記電源制御対象ユニットを起動して生じる所定期間内のピーク電力の値を、前記スケジュール案を評価するための前記評価値として算出し、前記表示手段に前記スケジュール案を表示する際、前記評価値に基づいて、前記消費電力の合計値の小さい順に前記スケジュール案の並び替えを行って表示することを特徴とする管理装置。
【請求項６】
記憶デバイスを有し、前記記憶デバイスからストレージ記憶領域を作成し、前記ストレージ記憶領域からなるユニットを、前記記憶デバイスの動作に必要な電源の電源制御の単位とする電源制御対象ユニットとし、前記電源制御を前記電源制御対象ユニットごとに行う電源制御手段を有するストレージ装置、及び、前記ストレージ装置にネットワークを経由して接続され、前記ストレージ記憶領域にアクセスすることが可能であり、前記ストレージ記憶領域を使用するタスクを実行するアプリケーションを有するサーバ装置にネットワークを経由して接続され、
前記ストレージ記憶領域と前記ストレージ記憶領域が所属する電源制御対象ユニットとの対応関係を定めたストレージ構成情報及び前記タスクと前記タスクを実行する場合に前記タスクが使用するストレージ記憶領域との対応関係を定めたタスク管理情報を記憶して、ストレージ環境を管理する管理装置における、タスクの実行及び電源制御の実行に関するスケジューリング方法において、
前記タスクの実行可能時間帯を定めたタスク実行条件を収集するステップと、
前記ストレージ装置における許容ピーク電力の値及び前記電源制御対象ユニットにおける電源の停止回数を定めた電源制御条件を収集するステップと、
前記ストレージ構成情報及び前記タスク管理情報に基づいて、前記タスク実行条件及び前記電源制御条件を満たし、前記電源制御対象ユニットにおける所定期間内の消費電力の合計値、及び前記電源制御対象ユニットを起動して生じる所定期間内のピーク電力の値を評価値として算出し、当該評価値に基づいてスケジュール案を作成するステップと、
前記スケジュール案を、前記評価値に基づいて、前記消費電力の合計値の小さい順に前記スケジュール案の並び替えを行って表示するステップと、
前記表示されたスケジュール案のうちユーザが希望するものの選択を受け付けるステップと、
選択されたスケジュール案に従い、前記タスクの実行及び前記電源制御を実行するステップと、
を実行することを特徴とするスケジューリング方法。
【請求項７】
記憶デバイスを有し、前記記憶デバイスからストレージ記憶領域を作成し、前記ストレージ記憶領域からなるユニットを、前記記憶デバイスの動作に必要な電源の電源制御の単位とする電源制御対象ユニットとし、前記電源制御を前記電源制御対象ユニットごとに行う電源制御手段を有するストレージ装置、及び、前記ストレージ装置にネットワークを経由して接続され、前記ストレージ記憶領域にアクセスすることが可能であり、前記ストレージ記憶領域を使用するタスクを実行するアプリケーションを有するサーバ装置にネットワークを経由して接続され、ストレージ環境を管理する管理装置のコンピュータに、タスクの実行及び電源制御の実行に関するスケジューリングを実行させるプログラムにおいて、
前記ストレージ記憶領域と前記ストレージ記憶領域が所属する電源制御対象ユニットとの対応関係を定めたストレージ構成情報を記憶する手段と、
前記タスクと前記タスクを実行する場合に前記タスクが使用するストレージ記憶領域との対応関係を定めたタスク管理情報を記憶する手段と、
前記タスクの実行可能時間帯を定めたタスク実行条件を収集する手段と、
前記ストレージ装置における許容ピーク電力の値及び前記電源制御対象ユニットにおける電源の停止回数を定めた電源制御条件を収集する手段と、
前記ストレージ構成情報及び前記タスク管理情報に基づいて、前記タスク実行条件及び前記電源制御条件を満たし、前記電源制御対象ユニットにおける所定期間内の消費電力の合計値、及び前記電源制御対象ユニットを起動して生じる所定期間内のピーク電力の値を評価値として算出し、当該評価値に基づいてスケジュール案を作成する手段と、
前記スケジュール案を、前記評価値に基づいて、前記消費電力の合計値の小さい順に前記スケジュール案の並び替えを行って表示する手段と、
前記表示されたスケジュール案のうちユーザが希望するものを選択することが可能な入力を行う手段と、
選択されたスケジュール案に従い、前記タスクの実行及び前記電源制御を実行する手段と、
して機能させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置の省電力化技術に関する。
【背景技術】
【０００２】
近年、企業で扱うデータ量の増加に伴い、ストレージ環境が大規模化しており、ストレージ装置の消費する電力が問題となっている。更に、消費電力の増加から、データセンタにおける発熱量の問題がある。このような問題に対して、ストレージ装置ではＭＡＩＤ（Massive Array of Idle Disks）のようにディスクの起動または停止をアレイグループ単位で制御することのできる機能を提供して解決を図っている。たとえば、特許文献１では、低消費電力のストレージシステムを実現するために、ＭＡＩＤに関する技術が開示されている。
【特許文献１】米国特許出願公開第２００４００５４９３９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、一方で、ＭＡＩＤ技術では、アレイグループ単位で起動または停止を行うため、同一アレイグループに対するアクセスが少しでも有る時間帯には、そのアレイグループを停止できない。このため、複数のアクセスが異なる時間帯に発生する場合は、同一の時間帯にこれらのアクセスが発生する場合に比べて、消費電力が増大することになる。また、省電力化を実現するためには、アクセスが無い時間帯に電源を停止すればよいが、頻繁に電源の起動または停止を行うと、物理ディスクの寿命が短くなる可能性がある。更に、複数の物理ディスクが特定期間に集中的に起動すると、ストレージ装置全体のその期間における消費電力が急激に増加するため、装置の安定稼動に影響を与える可能性がある。省電力化を実現する際には、これらの不都合な事態をもたらす可能性を低減させるといった条件下で行うことに留意する必要がある。
【０００４】
上記事情を鑑みて、本発明は、一定の条件下であってもストレージ装置の省電力化を実現することを課題とする。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の手段を用いて、ストレージ装置の省電力を実現する。
（１）複数のタスクが実行されるストレージ装置を対象として、指定されたタスクの実施時期に関する条件を満たし、トータルの消費電力、ピーク時の消費電力、電源の起動または停止回数などを基にして判定した、適切なタスクのスケジュール案を作成し、ユーザに選択してもらうように提示する。
（２）ユーザによって選択されたスケジュール案に基づいてタスクの実行および電源制御対象ユニットの起動停止制御を行う。この起動停止制御に際してはストレージ装置から電源制御に関するタイミングを受信することで、実際のタスクの実行に合わせたスケジューリングを行う。これにより、ストレージ装置の省電力化を実現する。
（３）特定のタスクの実行に追従して他のタスクを実行することにより、省電力化を実現する簡易的なタスクのスケジュール案を提供する。
【発明の効果】
【０００６】
本発明によれば、一定の条件下であってもストレージ装置の省電力化を実現することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の一実施の形態を、図面を参照しながら詳細に説明する。
【０００８】
１．第１の実施の形態
第１の実施の形態は、省電力化を行うためにストレージ装置を管理するにあたり、ユーザに選択してもらうスケジュール案を作成するものである。以下、そのスケジュール案を作成する方法等も含めて詳細に説明する。
【０００９】
１．１．システムの構成
図１は、本発明の第１の実施の形態のストレージシステムのブロック図である。このストレージシステムは、サーバ１０１、ＳＡＮ（Storage Area Network）１０３、ストレージ装置１０４、ストレージ管理サーバ１０８及びＬＡＮ（Local Area Network）１１３により構成される。
【００１０】
１．１．１．ストレージ装置
ストレージ装置１０４は、電源制御機能付きコントローラ１０５、電源制御対象ユニット１０６、論理ボリューム１０７、ＳＡＮインタフェース１１６及びＬＡＮインタフェース１１７を備える。
【００１１】
電源制御機能付きコントローラ１０５は、サーバ１０１から論理ボリューム１０７へのデータの入出力の制御および電源制御対象ユニット１０６への電源の制御を行う制御部である。
【００１２】
論理ボリューム１０７は、ストレージ装置１０４の記憶領域（ストレージ記憶領域）にデータを記憶し、記憶したデータに対して一つまたは複数の管理単位を構成する記憶部である。論理ボリューム１０７は、実際には、一つまたは複数の物理ディスク（ＨＤＤ（Hard Disk Drive）等の記憶デバイス）から一つまたは複数の管理単位を構成するように仮想的に作成されているが、図１では、説明の便宜上、物理ディスクの記載を省略している。サーバ１０１は、ＳＡＮ１０３を介して、ストレージ装置１０４の記憶領域にアクセスし、その記憶領域を論理ボリューム１０７として認識する。このとき、サーバ１０１からすれば、論理ボリューム１０７の仕様によっては、一つの論理ボリューム１０７が複数の物理ディスクを構成しているようにも見えるし、複数の論理ボリューム１０７が一つの物理ディスクを構成しているようにも見える。
【００１３】
電源制御の対象となる電源制御対象ユニット（「ＰＣＵ」（Power Control Unit）と記載する場合もある。）１０６は、一つまたは複数の論理ボリューム１０７からなり、物理ディスクの動作に必要な電源の電源制御の単位である。電源制御対象ユニット１０６は電源制御機能付きコントローラ１０５により、個別に電源制御される。実際には、電源制御対象ユニット１０６は、物理ディスクの単位で電源制御されるように構成しても良いが、図１には、電源制御対象ユニット１０６に含まれる、物理ディスクから作成された論理ボリュームを記載しており、論理ボリュームの単位で制御されることとする。ストレージ装置１０４を動作させるときのリソースの性能を確保しつつも適切な省電力化を実現することができるからである。
【００１４】
ストレージ装置１０４はＳＡＮインタフェース１１６を有し、ＳＡＮインタフェース１１６によりＳＡＮ１０３に接続している。更にストレージ装置１０４はＬＡＮインタフェース１１７を有し、ＬＡＮインタフェース１１７によりＬＡＮ１１３に接続されている。
【００１５】
１．１．２．サーバ
サーバ１０１上では、アプリケーションプログラム（以下、「ＡＰ」(Application Program)と記す。）１０２が動作する。サーバ１０１はＳＡＮインタフェース１１５を有し、ＳＡＮインタフェース１１５によりＳＡＮ１０３に接続している。サーバ１０１はＳＡＮ１０３を介してストレージ装置１０４の電源制御機能付きコントローラ１０５に接続されている。なお、サーバ１０１は、ＳＡＮ１０３の代わりに、ＩＰ−ＳＡＮ（Internet Protocol - Storage Area Network）又はＮＡＳ（Network Attached Storage）等の他のネットワークを介して電源制御機能付きコントローラ１０５に接続されていてもよい。また、サーバ１０１はＬＡＮインタフェース１１４を有し、ＬＡＮインタフェース１１４によりＬＡＮ１１３に接続されている。
【００１６】
ＡＰ１０２は論理ボリューム１０７として認識したストレージ装置１０４の記憶領域を使用するタスクを一つまたは複数実行するソフトウェアである。本実施形態では、一つのサーバ１０１上では一つのＡＰ１０２が動作されるものとするが、複数のＡＰ１０２が動作される場合であっても良い。また、ＡＰ１０２により実行されるタスクを「ＡＰタスク」と記述する場合もある。
【００１７】
また、サーバ１０１は、ダミーアクセス発行部１２２を有している。ダミーアクセス発行部１２２は論理ボリューム１０７に対し、ダミーとして、データの読み取り専用（Ｒｅａｄのみであり、データの書き込み（Ｗｒｉｔｅ）は行わない。）でアクセスするダミーアクセスを発行する。ＡＰ１０２はダミーアクセスを用いたタスクを実行する。
【００１８】
１．１．３．ストレージ管理サーバ
ストレージ管理サーバ１０８は、ＣＰＵ（Central Processing Unit）１０９、メモリ１１０、表示部１１１、入力部１１９、タイマ１２０、ダミーアクセス発行制御部１２１、電源制御タイミング受信部１１２及びＬＡＮインタフェース１１８を備える。ＣＰＵ１０９は、図２で後記するメモリ１１０に記憶されているプログラムを読み出して実行することによって、各種処理を行う。更に、ＣＰＵ１０９は各種処理過程でユーザとのインタラクションを必要とする情報を表示部１１１に表示する。また、ＣＰＵ１０９は前記インタラクションを通じて、入力部１１９から入力された情報を処理する。
【００１９】
ストレージ管理サーバ１０８は、ＬＡＮインタフェース１１８によりＬＡＮ１１３に接続されている。電源制御タイミング受信部１１２はストレージ装置１０４からＬＡＮ１１３を介して電源制御対象ユニット１０６における電源制御のタイミングを受信する。電源制御のタイミングとは、電源制御対象ユニット１０６ごとに電源の起動または停止の制御を実行するタイミングを意味する。タイマ１２０は、計時機能を有し、ＣＰＵ１０９からの命令に従い、時刻の情報を生成する。生成する時刻には、現在時刻、タスクの実行の開始時刻、タスクの実行の終了時刻、電源制御対象ユニットごとに電源制御のタイミングを受信した時の時刻等がある。また、ダミーアクセス発行制御部１２１は、ダミーアクセスの発行をサーバ１０１に要求する。なお、ストレージ管理サーバ１０８は、メモリ１１０に記憶されているプログラムを記録するＲＯＭ（Read Only Memory）等といった記録媒体を備えていても良い。
【００２０】
１．２．メモリの構成
図２は、本発明の第１の実施の形態のストレージ管理サーバ上のメモリのブロック図である。メモリ１１０は、運用管理プログラム２００及び運用管理データベース（以下、「運用管理ＤＢ（Data Base）」と記す。）２０１を記憶している。
【００２１】
運用管理プログラム２００は、ＡＰタスク情報および電源制御条件収集プログラム２００１、ＡＰタスク実行スケジュール案作成・表示プログラム２００２、ＡＰタスク実行および電源制御プログラム２００３及びＡＰタスク実行スケジュール変更プログラム２００４により構成される。また、運用管理ＤＢ２０１は、ストレージ構成情報テーブル２０１１、ＡＰタスク情報テーブル２０１２、許容ピーク電力情報テーブル２０１３、消費電力情報テーブル２０１４、電源停止回数テーブル２０１５、ＡＰタスク実行スケジュールテーブル２０１６、電源制御スケジュールテーブル２０１７及びＡＰタスク実実行時間テーブル２０１８から構成されている。
【００２２】
１．２．１．ＡＰタスク情報および電源制御条件収集プログラム
ＡＰタスク情報および電源制御条件収集プログラム２００１は、ストレージ装置１０４のストレージ構成情報、サーバ１０１上のＡＰ１０２が行うタスクの情報、ストレージ装置１０４全体で許容できる最大の電力の情報であるピーク電力の情報、電源制御対象ユニット１０６ごとの消費電力の情報及び電源制御対象ユニット１０６ごとの電源停止回数の情報をストレージ装置１０４、サーバ１０１、入力部１１９から収集し、それぞれ運用管理ＤＢ２０１のストレージ構成情報テーブル２０１１、ＡＰタスク情報テーブル２０１２、許容ピーク電力情報テーブル２０１３、消費電力情報テーブル２０１４、電源停止回数テーブル２０１５に格納する。ＡＰタスク情報および電源制御条件収集プログラム２００１の処理および各情報の詳細は、図３から図８を用いて後記する。
【００２３】
１．２．２．ＡＰタスク実行スケジュール案作成・表示プログラム
ＡＰタスク実行スケジュール案作成・表示プログラム２００２は、サーバ１０１上のＡＰ１０２が行うタスクのＡＰタスク実行スケジュール案およびストレージ装置１０４の電源制御対象ユニット１０６ごとの電源起動または停止のスケジュールである電源制御スケジュール案を作成し、それぞれ、運用管理ＤＢ２０１のＡＰタスク実行スケジュールテーブル２０１６および電源制御スケジュールテーブル２０１７に格納する。更に、作成した各スケジュール案を表示部１１１に表示する。ＡＰタスク実行スケジュール案作成・表示プログラム２００２の処理および各テーブルの詳細は、図９から図１４を用いて後記する。
【００２４】
１．２．３．ＡＰタスク実行および電源制御プログラム
ＡＰタスク実行および電源制御プログラム２００３は、サーバ１０１に対してＡＰ１０２が行うタスクの実行を要求する。また、電源制御機能付きコントローラ１０５に対して電源制御対象ユニットの電源の起動または停止を要求する。ＡＰタスク実行および電源制御プログラム２００３の処理の詳細は、図１５及び図１６を用いて後記する。
【００２５】
１．２．４．ＡＰタスク実行スケジュール変更プログラム
ＡＰタスク実行スケジュール変更プログラム２００４は、電源制御タイミング受信部１１２において受信した電源制御のタイミングを基にスケジュールの更新を行う。タイマ１２０を用いてタスクの実行の開始時刻及び終了時刻を取得し、そのタスクの実実行時間を求める。求めた実実行時間は、ＡＰタスク実実行時間テーブル２０１８に格納される。そして、電源制御のタイミングを受信した場合、そのタスクの実実行時間をＡＰタスク実実行時間テーブル２０１８から取得する。ＡＰタスク実行スケジュール変更プログラム２００４の処理の詳細は、図１６及び図１７を用いて後記する。
【００２６】
１．３．システムの処理
次に、本発明の第１の実施の形態のストレージシステムの処理について説明する。この処理は、運用管理プログラム２００を構成するＡＰタスク情報および電源制御条件収集プログラム２００１、ＡＰタスク実行スケジュール案作成・表示プログラム２００２、ＡＰタスク実行および電源制御プログラム２００３及びＡＰタスク実行スケジュール変更プログラム２００４によって行われる処理に分類して説明される。以下、それぞれの処理について詳細に説明する。
【００２７】
１．３．１．ＡＰタスク情報および電源制御条件収集処理
図３は、本発明の第１の実施の形態の、ＡＰタスク情報および電源制御条件収集プログラム２００１において行われる、ＡＰタスク情報および電源制御条件収集処理を示すフローチャートである。本フローチャートについて図４から図８を参照し、以下に説明する。
【００２８】
運用管理プログラム２００は、ストレージ装置１０４の構成の変更やサーバ１０１において行われるタスクの増減、ユーザによるストレージ装置１０４の電源制御方針の変更（入力部１１９から変更の旨を入力）などを契機として、本ＡＰタスク情報および電源制御条件の収集を行う。
【００２９】
まず、運用管理プログラム２００はストレージ構成情報の収集ステップを実行する（ステップＳ３０１）。ストレージ構成情報の収集ステップでは、ストレージ装置１０４からストレージ構成情報を収集し、ストレージ構成情報テーブル２０１１に格納する。なお、ストレージ構成情報とは、ストレージ装置１０４の論理ボリューム１０７が、データを記憶するのにどの程度の容量を有しており、また、どの電源制御対象ユニット１０６に属しているかを示す情報である。
【００３０】
図４は、ストレージ構成情報テーブル２０１１の内容を図示したものである。ストレージ構成情報テーブル２０１１はボリューム（本実施形態では論理ボリュームのことを意味する。）を一意に識別するボリュームＩＤ（identification）２０１１Ａ、ボリュームの記憶可能領域の容量を示す容量２０１１Ｂ及び所属する電源制御対象ユニットの識別子である所属電源制御対象ユニットＩＤ２０１１Ｃをフィールドとして含む。例えば、ストレージ装置１０４からストレージ構成情報を収集し、「０：０１」と識別される論理ボリュームの容量が１０ＧＢ（Giga‐Byte）であり、所属する電源制御対象ユニットが「１−１−１」と識別されるものであると判明した場合、ストレージ構成情報テーブル２０１１において、ボリュームＩＤ２０１１Ａのフィールドには「０：０１」という値（ボリューム名）が格納され、容量２０１１Ｂのフィールドには「１０ＧＢ」という値が格納され、所属電源制御対象ユニットＩＤ２０１１Ｃには「１−１−１」という値（電源制御対象ユニットのユニット名）が格納される。
【００３１】
次に、運用管理プログラム２００はＡＰタスク実行可能時間帯の設定ステップを実行する（ステップＳ３０２）。ＡＰタスク実行可能時間帯の設定ステップでは、各サーバ１０１から、サーバ１０１上のＡＰ１０２が実行するタスクのタスク名を取得する。更に、取得したタスク名を基に、ユーザが各タスクの実行可能時間帯を設定する画面を表示部１１１に表示する。
【００３２】
図５は、ユーザが各タスクの実行可能時間帯を設定する画面例を図示したものである。本画面例ではタスクごとに実行可能な時間帯を１日１区間設定することができる。本画面には、「タスク名」、「指定時間」及び「タスク実行可能時間帯」という欄が設けられた表が表示されている。「タスク名」の欄には、サーバ１０１から取得したタスク名が「タスクＡ」、「タスクＢ」、・・・といった具合に順次記載されている。「指定時間」の欄には、「タスク名」の欄に記載されているタスクが現時点で実行可能であるとして指定されている時間帯が記載されている。例えば、図５では、タスクＡの現時点で指定されている時間帯は「１７：００〜６：００」である。「タスク実行可能時間帯」の欄には、ユーザが入力部１１９から、これから設定したいタスクの実行可能な時間帯を入力できるように、タスク名ごとにボックスが設けられている。ユーザはそのボックスに前記時間帯を表す区間の開始時刻及び終了時刻を入力する。例えば、図５では、タスクＡの実行可能時間帯の開始時刻を「１７：００」と入力し、その終了時刻を「６：００」と入力する。
【００３３】
なお、他の画面例として、ひとつのタスクに対して、他の期間や複数の実行可能時間帯で設定できる画面としてもよい。具体的には、例えば、１週間の範囲で２つの時間帯の設定ができる画面としてもよい。本画面においてユーザがタスクごとの実行可能時間帯の設定を行うと、運用管理プログラム２００は、画面において入力された実行可能時間帯をＡＰタスク情報テーブル２０１２に格納する。
【００３４】
図６は、ＡＰタスク情報テーブル２０１２の内容を図示したものである。ＡＰタスク情報テーブル２０１２は、サーバ１０１上のＡＰ１０２が実行するタスク名２０１２Ａ、タスクが使用するボリュームを識別する使用ボリュームＩＤ２０１２Ｂ、タスクの実行可能時間帯の開始時刻２０１２Ｃ、タスクの実行可能時間帯の終了時刻２０１２Ｄ及びタスクの使用するボリュームごとのタスクを実行するために必要とする時間である所要時間２０１２Ｅをフィールドとして含む。
【００３５】
タスク名２０１２Ａは、本ステップにおいて、サーバ１０１から取得したタスク名を格納する。また、使用ボリュームＩＤ２０１２Ｂは、サーバ１０１から取得したタスクの使用するボリュームのＩＤを格納する。また、開始時刻２０１２Ｃ及び終了時刻２０１２Ｄは、タスク実行可能時間帯を設定する画面（図５参照）においてユーザから入力された値を格納する。また、所要時間２０１２Ｅは、使用ボリュームＩＤ２０１２Ｂとストレージ構成情報テーブル２０１１（図４参照）のボリュームＩＤ２０１１Ａを結びつけることにより、使用ボリュームの容量を取得し、その容量から実行時間を見積り、格納する。ここでは、実行時間を容量から見積るとしたが、他にも例えば、実際にサーバ１０１上のＡＰ１０２が行うタスクの実行をモニタすることにより、タイマ１２０からタスクの開始時刻および終了時刻を取得し、（実際の）実行時間を算出してもよい。このようにして、タスクごとに、そのタスクを実行するときにどの論理ボリューム１０７が使用されるのかを示すタスク管理情報が生成される。
【００３６】
図６について具体的に説明すると、タスクＡの使用する論理ボリューム１０７の使用ボリュームＩＤが「０：０１」及び「０：０４」であり、ユーザにより、入力部１１９からタスク実行可能時間帯が「１７：００〜６：００」と設定されたとする。この場合、ストレージ構成情報テーブル２０１１（図４参照）の容量２０１１０Ｂを参照すれば、「０：０１」及び「０：０４」の論理ボリュームの容量は「１０ＧＢ」であるので、実行時間は双方とも１時間となる。なお、説明を簡単にするため、１０ＧＢの容量に対しては、実行時間は１時間と見積もることにする。２０ＧＢの容量に対しては、実行時間は２時間と見積もることになる。従って、ＡＰタスク情報テーブル２０１２の「タスクＡ」のレコードに関しては、タスク名２０１２Ａのフィールドには「タスクＡ」という値が格納され、使用ボリュームＩＤ２０１２Ｂのフィールドには「０：０１」及び「０：０４」という値が格納され、開始時刻２０１２Ｃのフィールドには「１７：００」という値が格納され、終了時刻２０１２Ｄのフィールドには「６：００」という値が格納され、所要時間２０１２Ｅのフィールドには「１時間」（「０：０１」に対応）及び「１時間」（「０：０４」に対応）という値が格納される。
【００３７】
次に、運用管理プログラム２００は許容ピーク電力の設定ステップを実行する（ステップＳ３０３）。図７は、運用管理プログラム２００が行う許容ピーク電力の設定ステップの概要を図示したものである。許容ピーク電力の設定ステップにおいて運用管理プログラム２００は、ユーザが許容ピーク電力情報を設定するための設定画面を表示部１１１に表示する。本実施形態では電源制御対象ユニット１０６ごとの消費電力およびストレージ装置１０４全体で許容できる許容ピーク電力を設定することができる。ここで、「許容」とは、ストレージ装置１０４が安定に稼動することができるという意味である。
【００３８】
本画面には、「電源制御対象ユニット」及び「消費電力（ｋＷ）」という欄が設けられた表と、許容ピーク電力の値を入力部１１９から設定することが可能なボックスが表示されている。「電源制御対象ユニット」の欄には、ストレージ装置１０４から取得した電源制御対象ユニットのユニット名が「１−１−１」、「１−２−１」、・・・といった具合に順次記載される。「消費電力（ｋＷ）」の欄には、「電源制御対象ユニット」の欄に記載されている電源制御対象ユニットにおいて消費される電力の値を入力部１１９から設定することが可能なボックスが設けられている。例えば、図７では、「１−１−１」と識別される電源制御対象ユニットにおける消費電力（ｋＷ）を「１０」と入力し、許容ピークの電力値（ｋＷ）を「３０」と入力する。
【００３９】
本画面においてユーザが入力部１１９から許容ピーク電力の設定を行うと、運用管理プログラム２００は、画面において入力された電源制御対象ユニットごとの消費電力およびストレージ装置１０４全体で許容できる許容ピーク電力を、それぞれ許容ピーク電力情報テーブル２０１３および消費電力情報テーブル２０１４に格納する。
【００４０】
図７において、許容ピーク電力情報テーブル２０１３は、許容できるピーク電力を設定した対象のストレージ装置名２０１３Ａ及び設定した許容ピーク電力２０１３Ｂをフィールドとして含む。
【００４１】
ストレージ装置名２０１３Ａのフィールドには、本ステップにおいて、本実施形態のストレージシステムを構成するストレージ装置の装置名を（例えば、「装置１」のように）格納する。また、許容ピーク電力２０１３Ｂのフィールドには、設定画面（図７参照）において、ユーザから入力された値を（例えば、「３０ｋＷ」のように）格納する。
【００４２】
図７において、消費電力情報テーブル２０１４は、消費電力を設定した電源制御対象ユニット１０６の識別子である電源制御対象ユニットＩＤ２０１４Ａ及びユーザが許容ピーク電力情報を設定する画面において設定した消費電力である消費電力２０１４Ｂをフィールドとして含む。
【００４３】
電源制御対象ユニットＩＤ２０１４Ａのフィールドには、本ステップにおいて、電源制御対象ユニットのユニット名を（例えば、「１−１−１」のように）格納する。また、消費電力２０１４Ｂのフィールドには、設定画面（図７参照）において、電源制御対象ユニットごとに、ユーザから入力された値を（例えば、「１０ｋＷ」のように）格納する。
【００４４】
本実施形態では、各電源制御対象ユニット１０６の消費電力はユーザによる入力部１１９からの入力により取得するとしたが、電源制御対象ユニット１０６の電力消費をモニタリングする手段を、ストレージ管理サーバ１０８が具備することにより、取得してもよい。
【００４５】
次に、運用管理プログラム２００は電源停止回数の設定ステップを実行する（ステップＳ３０４）。図８は、運用管理プログラム２００が行う電源停止回数の設定ステップの概要を図示したものである。電源停止回数の設定ステップにおいて運用管理プログラム２００は、ユーザが電源停止回数を設定するための設定画面を表示部１１１に表示する。本実施形態では電源制御対象ユニット１０６ごとの一日の電源停止回数の制限値を入力することができる。
【００４６】
本画面には、「電源制御対象ユニット」及び「電源停止回数（回／日）」という欄が設けられて表示されている。「電源制御対象ユニット」の欄には、ストレージ装置１０４から取得した電源制御対象ユニットのユニット名が「１−１−１」、「１−２−１」、・・・といった具合に順次記載される。「電源停止回数（回／日）」の欄には、「電源制御対象ユニット」の欄に記載されている電源制御対象ユニットの電源を停止する回数の値を入力部１１９から設定することが可能なボックスが設けられている。例えば、図８では、「１−１−１」と識別される電源制御対象ユニットにおける電源停止回数（回／日）を「１」と入力する。
【００４７】
本画面においてユーザが電源停止回数の設定を行うと、運用管理プログラム２００は、画面において入力された電源制御対象ユニットごとの電源停止回数を、電源停止回数テーブル２０１５に格納する。
【００４８】
図８において、電源停止回数テーブル２０１５は、電源停止回数を設定した電源制御対象ユニット１０６の識別子である電源制御対象ユニットＩＤ２０１５Ａ及びユーザが電源停止回数を設定する画面において設定した電源停止回数である電源停止回数２０１５Ｂをフィールドとして含む。
【００４９】
電源制御対象ユニットＩＤ２０１５Ａのフィールドには、本ステップにおいて、電源制御対象ユニットのユニット名を（例えば、「１−１−１」のように）格納する。また、電源停止回数２０１５Ｂのフィールドには、設定画面（図８参照）において、電源制御対象ユニットごとに、ユーザから入力された値を（例えば、「１回」のように）格納する。
【００５０】
以上により、ＡＰタスク情報および電源制御条件収集処理を終了する。
【００５１】
１．３．２．スケジュール案作成処理
図９は、本発明の第１の実施の形態の、スケジュール案作成・表示プログラム２００２において運用管理プログラム２００により行われる、スケジュール案作成処理を示すフローチャートである。本フローチャートでは、ＡＰタスク情報および電源制御条件収集プログラム２００１において収集した電源制御対象ユニット１０６ごとの消費電力とストレージ装置全体で許容できる許容ピーク電力および電源制御対象ユニット１０６ごとの一日の電源停止回数の制限値の情報を基に、これらの条件を満たす、ＡＰタスクの実行及び電源制御のスケジューリングを行う。本スケジュール案作成処理は、例えばユーザによる入力部１１９からのスケジュール案作成の指示を契機として実行する。
【００５２】
まず、作成するスケジュール案における、同時に実行するＡＰタスクの数（以下、「ＡＰタスク同時実行数」という。）を１として、スケジュール案の作成を行う（ステップＳ９０１）。ここで、ＡＰタスク同時実行数は、作成するスケジュール案に、その数で同時に実行されるタスクの組合せがひとつ以上存在するということを示している。
【００５３】
ステップＳ９０２では、ステップＳ９０１のＡＰタスク同時実行数において、実行可能なＡＰタスクの実行順序の組合せを求める。このとき、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、開始時刻２０１２Ｃのフィールド及び終了時刻２０１２Ｄのフィールドから各ＡＰタスクの実行可能時間帯の開始時間及び終了時間を取得し、実行可能時間帯内で実行したときの実行順序の組合せを求める。
【００５４】
次に、ステップＳ９０２で求めた組合せが存在するかどうか判定する（ステップＳ９０３）。「Ｎｏ」と判定された場合、ステップＳ９０６へ、「Ｙｅｓ」と判定された場合、ステップＳ９０４へ移る。まず、「Ｙｅｓ」と判定されたとして、ステップＳ９０４へ移る場合について説明する。
【００５５】
ステップＳ９０４では、ステップＳ９０２で作成した組合せについて、ＡＰタスクの実行順序の早いものから順に、各ＡＰタスクの実行可能時間帯に並べ、ＡＰタスクを並べた組合せからＡＰタスク実行スケジュール案を作成する。このとき、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、所要時間２０１２Ｅのフィールドから各ＡＰタスクのボリュームごとの所要時間を取得し、同時に実行するＡＰタスク間同士以外は、そのＡＰタスクの実行時間中は実行しないように並べる。更に、このとき、可能な限りＡＰタスクがひとつも実行されていない時間がなくなるように、各ＡＰタスクの実行可能時間帯内で近づけて並べる。
【００５６】
次に、ＡＰタスク同時実行数をインクリメント（１を加算）する（ステップＳ９０５）。ステップＳ９０５の完了後、再度、ステップＳ９０２へ移る。以降、ＡＰタスク同時実行数が２の場合、３の場合、・・・、と順次ステップＳ９０２からステップＳ９０５の処理を繰り返し、各々の場合におけるＡＰタスクの実行順序の組合せを求め、その組み合わせからＡＰタスク実行スケジュール案を作成する。
【００５７】
次に、ステップＳ９０２で作成した組合せの存在の判定（ステップＳ９０３）において、「Ｎｏ」と判定されたとして、ステップＳ９０６へ移る。もし、ＡＰタスク同時実行数が、組合せを構成しているＡＰタスクの個数、つまり、ＡＰタスク情報テーブル２０１２のタスク名２０１２Ａのフィールドに格納されているタスク名の個数を超えることになった場合、その組合せは実現不可能であるため、ステップＳ９０３において組合せが存在しないと判定し（「Ｎｏ」）、ステップＳ９０６へ移る。また、ＡＰタスク同時実行数が、組合せを構成しているＡＰタスクの個数以下であっても、ＡＰタスクの実行可能時間帯がいつであるかによって、特定の組合せが実現不可能になる場合がある（図１１Ａ参照）。
【００５８】
ステップＳ９０６では、ステップＳ９０４で作成された実行順序の組合せごとのＡＰタスク実行スケジュール案について、電源制御対象ユニット１０６ごとの電源停止回数の条件を満たし、最も電源停止時間が大きくなるように、電源制御スケジュール案を求める。ここで電源制御対象ユニット１０６ごとの電源停止回数は、電源停止回数テーブル２０１５（図８参照）を参照して、電源停止回数２０１５Ｂのフィールドから取得する。従って、ある電源制御対象ユニットのある期間において、ＡＰタスクが実行されていなくても、電源停止回数を超える場合は、物理ディスクの寿命を考慮して、電源を起動しておくように電源制御スケジュール案を作成する。
【００５９】
ここで、上記の電源制御スケジュール案を作成するための電源制御スケジュール案作成処理について詳細に説明する。図１０は、本発明の第１の実施の形態の電源制御スケジュール案作成処理を示すフローチャートである。ここでは、電源制御対象ユニットごとにステップＳ１００２からステップＳ１００５を繰り返すループ処理が実行される（ステップＳ１００１）。
【００６０】
ステップＳ１００２では、ステップＳ９０４（図９参照）にて作成されたＡＰタスク実行スケジュール案から、対象の電源制御対象ユニットにおいてＡＰタスクの未実行な時間帯である未実行時間帯を取得する。
【００６１】
ステップＳ１００３では、ステップＳ１００２で取得したＡＰタスクの未実行時間帯を時間の長い順にソートして並び替える。
【００６２】
ステップＳ１００４では、ステップＳ１００３で並び替えたＡＰタスクの未実行時間帯の時間が長い期間から順に電源停止回数分の期間を選び、その期間を「電源停止期間」とする。
【００６３】
ステップＳ１００５では、ステップＳ１００４で選ばれた電源停止期間以外の期間を「電源起動期間」とする。このように各期間を定めた後、対象とする電源制御対象ユニットにおける電源制御スケジュール案を作成する。
【００６４】
すべての電源制御対象ユニットに対して電源制御スケジュール案を作成した後、本処理を完了する。
【００６５】
ただ、作成した電源制御スケジュール案によっては、タスクのアクセスがなく、電源を起動しておく必要のある期間が存在し、ストレージ装置１０４の電源制御機能が一定期間のアクセスがないと電源制御対象ユニット１０６への電源を停止するようなものである場合、つまり、外部のストレージ管理サーバ１０８により電源制御対象ユニット１０６の電源の起動または停止の制御が出来ない場合がある。この場合、タスクからのアクセスがなく電源を起動しておく必要のある期間に対して、ダミーアクセス発行部１２２から発行される（Ｒｅａｄのみの）ダミーアクセスを行うタスクを、電源制御スケジュール案に登録する。このダミーアクセスを行うタスクは、ストレージ装置１０４の電源が停止するまでの一定期間より短い間隔で行う。ダミーアクセス発行制御部１２１は、ダミーアクセスの発行、及びタスクがダミーアクセスを行う間隔をダミーアクセス発行部１２２に指示する。
【００６６】
図９に戻って説明を続ける。ステップＳ９０７では、ステップＳ９０６で作成した電源制御スケジュール案についてピーク電力を求め、ピーク電力の上限である許容ピーク電力を満たさない電源制御スケジュール案を除く。ここで、ピーク電力はある特定の期間において同時に起動している電源制御対象ユニット１０６の消費電力の総和で求められる。電源制御対象ユニット１０６ごとの消費電力は、消費電力情報テーブル２０１４（図７参照）を参照して、消費電力２０１４Ｂのフィールドから取得する。更に、ストレージ装置１０４全体の許容ピーク電力は許容ピーク電力情報テーブル２０１３（図７参照）を参照して、許容ピーク電力２０１３Ｂのフィールドから取得する。
【００６７】
ステップＳ９０８では、ステップＳ９０６で作成した電源制御スケジュール案から、各電源制御対象ユニットのトータル消費電力を求める。ここで、トータル消費電力は電源制御対象ユニット１０６ごとの消費電力と総起動時間の積の総和で求められる。電源制御対象ユニット１０６ごとの消費電力は、消費電力情報テーブル２０１４（図７参照）を参照して、消費電力２０１４Ｂのフィールドから取得する。更に、電源制御対象ユニット１０６ごとの総起動時間はステップＳ９０６で作成した電源制御スケジュール案から取得する。
【００６８】
ステップＳ９０９では、ステップＳ９０１からステップＳ９０６まで作成した、ＡＰタスク実行スケジュール案及び電源制御スケジュール案をそれぞれＡＰタスク実行スケジュールテーブル２０１６及び電源制御スケジュールテーブル２０１７に格納する。
【００６９】
以上でスケジュール案作成処理を終了する。なお、ステップＳ９０７で求められたピーク電力及びステップＳ９０８で求められたトータル消費電力は、このスケジュール案作成処理によって作成されたスケジュール案を評価するための評価値として用いられる。この評価値は、ユーザに選択されるように提示するスケジュール案とともに提示される。ユーザは提示された評価値を参考にして、ストレージ環境の状況を踏まえて省電力化において適切なスケジュール案を容易に選択することができる。また、ストレージ管理サーバ１０８は、評価値を指標にしてスケジュール案を表示する場合に、スケジュール案を、例えば、トータル消費電力の小さい順やピーク電力の小さい順のように適宜並べ替えて表示することができる。
【００７０】
図１２は、ＡＰタスク実行スケジュールテーブル２０１６を図示したものである。ＡＰタスク実行スケジュールテーブル２０１６は、ＡＰタスク実行スケジュール案の名前である案２０１６Ａ、スケジューリングを行ったタスク名であるタスク２０１６Ｂ、スケジューリングされたタスクのタスク実行時間の開始時刻である開始時刻２０１６Ｃ及びスケジューリングされたタスクのタスク実行時間の終了時刻である終了時刻２０１６Ｄをフィールドとして含む。
【００７１】
図１２について、具体的に説明すると、ＡＰタスク情報テーブル２０１２（図６参照）に格納されているすべてのタスク（タスクＡ、タスクＢ、タスクＣ、タスクＤ）に対し、実現可能なすべてのＡＰタスク実行スケジュール案を作成していくことになる。このとき、作成した案は、「案１」、「案２」、・・・のように順次作成し、案２０１６Ａのフィールドに格納される。「案３」に着目すると、タスク２０１６Ｂのフィールドには、対象となるタスクのタスク名として、「タスクＡ」、「タスクＢ」、「タスクＣ」、「タスクＤ」という値が格納される。開始時刻２０１６Ｃのフィールドには、タスクの開始時刻として、タスクＡ、タスクＢ、タスクＣ、タスクＤに対してそれぞれ、「１：００」、「２３：００」、「０：００」、「３：００」という値が格納される。また、終了時刻２０１６Ｄのフィールドには、タスクの終了時刻として、タスクＡ、タスクＢ、タスクＣ、タスクＤに対してそれぞれ、「２：００」、「２：００」、「１：００」、「４：００」という値が格納される。
【００７２】
また、図１３は、電源制御スケジュールテーブル２０１７を図示したものである。電源制御スケジュールテーブル２０１７は、電源制御スケジュール案の名前である案２０１７Ａ、スケジューリングを行った電源制御対象ユニットを一意に表す電源制御対象ユニットＩＤ２０１７Ｂ、スケジューリングされた電源制御対象ユニット１０６ごとの電源起動期間の起動時刻である起動時刻２０１７Ｃ、スケジューリングされた電源制御対象ユニット１０６ごとの電源停止期間の停止時刻である停止時刻２０１７Ｄ、スケジューリングされた電源制御対象ユニット１０６ごとの停止回数である停止回数２０１７Ｅ、作成された電源制御スケジュール案ごとのトータル消費電力であるトータル消費電力２０１７Ｆ及び作成された電源制御スケジュール案ごとのピーク電力であるピーク電力２０１７Ｇをフィールドとして含む。
【００７３】
図１３について、具体的に説明すると、ＡＰタスク実行スケジュールテーブル２０１６（図１２参照）の案２０１６Ａのフィールドに格納されているすべての案（「案１」、「案２」、「案３」、・・・）に対して、電源制御スケジュール案を作成していくことになる。このとき、案２０１７Ａのフィールドには、案２０１６Ａのフィールドに格納されているすべての案である「案１」、「案２」、「案３」、・・・という値が格納される。「案３」に着目すると、電源制御対象ユニットＩＤ２０１７Ｂのフィールドには、案２０１７Ａのフィールドの「案３」において格納されているタスク名（「タスクＡ」、「タスクＢ」、「タスクＣ」、「タスクＤ」）が使用するボリュームが所属する電源制御対象ユニットを一意に表す電源制御対象ユニットＩＤとして「１−１−１」、「１−２−１」、「１−３−１」という値が格納される（図４のストレージ構成情報テーブル２０１１及び図６のＡＰタスク情報テーブル２０１２参照）。また、起動時刻２０１７Ｃのフィールドには、「１−１−１」、「１−２−１」、「１−３−１」で表される電源制御対象ユニットの起動時刻としてそれぞれ「１：００」、「２３：００」、「２３：００」という値が格納される。また、停止時刻２０１７Ｄのフィールドには、「１−１−１」、「１−２−１」、「１−３−１」で表される電源制御対象ユニットの停止時刻としてそれぞれ「４：００」、「２：００」、「１：００」という値が格納される。また、停止回数２０１７Ｅのフィールドには、電源制御対象ユニットごとに電源停止回数テーブル２０１５（図８参照）に格納された値と同じ値（「１−１−１」、「１−２−１」、「１−３−１」で表される電源制御対象ユニットにつき「１回」）が格納される。また、トータル消費電力２０１７Ｆのフィールドには、ステップＳ９０８にて求められたトータル消費電力として「１００ｋＷ」という値が格納される。また、ピーク電力２０１７Ｇのフィールドには、ステップＳ１００５において定められた電源起動期間において生じ得るピーク電力として「３０ｋＷ」という値が格納される。
【００７４】
以上、ＡＰタスク実行スケジュールテーブル２０１６及び電源制御スケジュールテーブル２０１７に対し、所定の値を格納することが完了して本スケジュール案作成処理は終了する。
【００７５】
本スケジュール案作成処理の具体例を、図１１Ａおよび図１１Ｂを用いて説明する。各ＡＰタスクにはタスク実行可能時間帯が存在する（図６のＡＰタスク情報テーブル２０１２参照）。また、各ＡＰタスクの使用するボリュームは各電源制御対象ユニット（ＰＣＵ）を使用している。更に、各ＡＰタスクには実行に掛かる実行時間が存在する。例えば図１１Ａ中の「タスクＡ」は１７時から６時の間が実行可能な時間帯であり、また、電源制御対象ユニット１−１−１および１−２−１を使用している。更に、タスクＡを実行するのにかかる所要時間は１時間（１ｈ）であることを表す。以上のＡＰタスクの情報から実行可能なＡＰタスクの実行順序の組合せを求める。組合せはＡＰタスク同時実行数を１から順に増やして求める。
【００７６】
図１１Ａ中ではＡＰタスク同時実行数が２の場合の組合せを求めている。例えば図１１Ａ中の｛［タスクＢ、タスクＣ］、タスクＡ、タスクＤ｝（１１０１）という組合せは、タスクＢとタスクＣを同時に実行し、次にタスクＡ、最後にタスクＤを実行する、という組合せを表している。また、｛[タスクＤ、タスクＣ]、[タスクＢ、タスクＡ]｝（１１０２）のような組合せは、各ＡＰタスクのタスク実行可能時間帯において、実行不可能である（タスクＤのタスク実行可能時間帯「３：００〜６：００」が、タスクＢの実行可能時間帯「１８：００〜１：００」よりも後に存在している）ため除かれる。実際には組合せが存在するすべてのＡＰタスク同時実行数で組合せを求める。求めた組合せからＡＰタスク実行スケジュール案を作成する。このとき各ＡＰタスクのタスク実行可能時間帯内で、ＡＰタスク間の実行時間を近づけて並べる。
【００７７】
図１１Ｂ中では｛［タスクＢ、タスクＣ］、タスクＡ、タスクＤ｝の順で各ＡＰタスクのタスク実行可能時間帯内で近づけて並べることで、電源制御スケジュール案を作成する例を示している。ここで、作成した電源制御スケジュール案から許容ピーク電力を満たさないものは除く（図９ステップＳ９０７参照。）。既に求めたＡＰタスク実行スケジュール案から、電源制御対象ユニットごとの電源停止回数の条件を満たし、最も電源停止時間が大きくなるように、電源制御スケジュール案を作成する。図１１Ｂ中では各電源制御対象ユニットの電源停止回数の上限１を満たし、最も停止期間が長くなるように、電源制御スケジュール案を作成している。例えば、図１１Ｂでは電源制御対象ユニット１−１−１は、電源停止回数の上限が１で、４時から１時の期間がタスク未実行である期間として最も長いため、この期間を停止する。逆に、１時から４時の期間は起動する。従って、図１１Ｂでは電源制御対象ユニット１−１−１、１−２−１、１−３−１はそれぞれ、１時から４時、２３時から２時、２３時から１時の間起動することとなる。
【００７８】
ここで、タスクのアクセスがなく電源を起動しておく必要のある期間が存在し、外部のストレージ管理サーバ１０８により電源制御対象ユニット１０６電源の起動または停止の制御が出来ない場合、Ｒｅａｄのみのダミーアクセスを行うタスクを電源制御スケジュール案に登録する。例えば、図１１Ｂでは、電源制御対象ユニット１−１−１における２時から３時の間にダミーアクセスを行うタスクを登録する。以上のようにＡＰタスクの実行スケジュールおよび電源制御対象ユニットの電源制御スケジュールを作成する。
【００７９】
以上のスケジュール案作成処理を行うことによって、ＡＰタスクの要件であるＡＰタスクのタスク実行可能時間帯および電源制御の条件であるストレージ装置１０４全体で許容できる許容ピーク電力および電源制御対象ユニット１０６ごとの１日の電源停止回数の制限値を満たすスケジュール案を作成することができる。
【００８０】
図１４は、本発明の第１の実施の形態の、ＡＰタスク実行スケジュール案作成・表示プログラム２００２において、表示部１１１により表示されるＡＰタスク実行スケジュール案を提示、選択するための画面例を図示したものである。本画面には、図９のスケジュール案作成処理において、作成されたスケジュール案を、図１２のＡＰタスク実行スケジュールテーブル２０１６および図１３の電源制御スケジュールテーブル２０１７から取得し、「案３」、「案１」などと記されたスケジュール案ごとに、「タスク実行スケジュール」、「電源制御スケジュール」、「トータル消費電力」及び「ピーク電力」という欄が設けられた表を表示する。「電源制御スケジュール」の欄については、更に「電源制御対象ユニット」、「電源ＯＮ期間」及び「停止回数」という欄に分類した表を表示する。
【００８１】
ここで、運用管理プログラム２００は本画面の表示を行う際には、スケジュール案を消費電力の観点から並び替えを行い、順に表示する。これにより、ユーザはより消費電力を低減することのできるＡＰタスク実行スケジュール案及び電源制御スケジュール案を選択することができる。具体的には各スケジュール案のトータル消費電力またはピーク電力、停止回数などで並び替えを行うことによって表示する。
【００８２】
本画面例では、トータル消費電力の小さいスケジュール案の順に並び替えを行って表示されている。「案３」のトータル消費電力は、「１００ｋＷ」であり、「案１」のそれは「１２０ｋＷ」である。従って、図１４において「案３」、「案１」の順で表示されている。そして、本画面によりユーザにより入力部１１９から選択されたスケジュール案に基づき、ＡＰタスクの実行および電源制御対象ユニットの制御が行われる。図１４では、ラジオボタンで「案３」が選択されている。
【００８３】
１．３．３．ＡＰタスク実行および電源制御処理
図１５Ａ、図１５Ｂおよび図１５Ｃは、本発明の第１の実施の形態の、ＡＰタスク実行および電源制御プログラム２００３において運用管理プログラム２００により行われる、ＡＰタスク実行および電源制御処理を表すフローチャートである。本処理は図１４のＡＰタスク実行スケジュール案を提示、選択するための画面においてユーザにより入力部１１９から選択されたスケジュール案に基づき、運用管理プログラム２００が実行する。また、本処理は例えば図１４のＡＰタスク実行スケジュール案を提示、選択するための画面においてユーザの選択が完了したことを契機として、運用管理プログラム２００が実行する。
【００８４】
まず、ＡＰタスク実行スケジュールテーブル２０１６（図１２参照）に格納された案であってユーザによって選択されたものに対応付けられたＡＰタスクが実行中かそうでないかを表すＡＰタスク実行フラグ、及び当該ＡＰタスクが使用するボリュームが属する電源制御対象ユニットが起動中かどうかを表す電源制御対象ユニット起動フラグをともに、ＦＡＬＳＥに設定する（ステップＳ１４０１）。ＡＰタスク実行フラグは、ＡＰタスクが実行中である場合「ＴＲＵＥ」であり、実行中でない場合「ＦＡＬＳＥ」である。また、電源制御対象ユニット起動フラグは、電源制御対象ユニットが起動中である場合「ＴＲＵＥ」であり、起動中でない場合「ＦＡＬＳＥ」である。
【００８５】
次に、現在時刻をタイマ１２０から取得する（ステップＳ１４０２）。
【００８６】
次に、未実行のＡＰタスクで現在時刻以前に開始する予定のタスクがあるか否か判定する（ステップＳ１４０３）。つまり、ステップＳ１４０１にて設定したＡＰタスク実行フラグがＦＡＬＳＥで、ステップＳ１４０２で取得した現在時刻において実行すべきＡＰタスクが存在するか否か判定する。ここでは、ＡＰタスク実行フラグがＦＡＬＳＥであるＡＰタスクの名前をＡＰタスク実行スケジュールテーブル２０１６（図１２参照）から取得する。更に、取得したＡＰタスクの名前でＡＰタスク実行スケジュールテーブル２０１６（図１２参照）を参照して開始時刻２０１６Ｃのフィールドから取得した開始時刻が現在時刻より前であるＡＰタスクが存在するか否か判定する。存在する場合、そのＡＰタスクは実行すべきＡＰタスクであり、「Ｙｅｓ」としてステップＳ１４０４へ移る。存在しない場合、そのＡＰタスクはまだ実行すべきでないＡＰタスクであり、「Ｎｏ」としてステップＳ１４１０に移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４０４へ移る。
【００８７】
ステップＳ１４０４では、ステップＳ１４０３において実行すべきと判定したＡＰタスクを起動してもピーク電力の上限を満たすかどうか判定する。ＡＰタスク実行フラグがＴＲＵＥのＡＰタスクの名前の一覧及びステップＳ１４０３において実行すべきと判定したＡＰタスクの名前をＡＰタスク実行スケジュールテーブル２０１６（図１２参照）から取得し、ＡＰタスクの名前でＡＰタスク情報テーブル２０１２（図６参照）を参照して、使用ボリュームＩＤ２０１２ＢのフィールドからＡＰタスクにより使用されているボリュームＩＤの一覧を取得する。更に、使用ボリュームＩＤの一覧に基づいて、ストレージ構成情報テーブル２０１１（図４参照）を参照して、所属電源制御対象ユニットＩＤ２０１１Ｃのフィールドから所属電源制御対象ユニットＩＤの一覧を取得する。更に、所属電源制御対象ユニットＩＤの一覧に基づいて、消費電力情報テーブル２０１４（図７参照）を参照して、電源制御対象ユニットの一覧の消費電力２０１４Ｂのフィールドから消費電力を取得し、消費電力の総和を求める。そして、許容ピーク電力情報テーブル２０１３（図７参照）の許容ピーク電力２０１３Ｂのフィールドに格納された許容ピーク電力と求めた電源制御対象ユニットの一覧の消費電力２０１４Ｂのフィールドに格納された消費電力の総和を比べる。もし、求めた電源制御対象ユニットの消費電力の総和が許容ピーク電力よりも小さかった場合「Ｙｅｓ」としてステップＳ１４０５へ、大きかった場合「Ｎｏ」としてステップＳ１４１０へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４０５へ移る。
【００８８】
ステップＳ１４０５では、ステップＳ１４０３において実行すべきと判定した対象のＡＰタスクが使用する電源制御対象ユニットが未起動かどうか判定する。ここでは、ステップＳ１４０３において実行すべきと判定したＡＰタスクの名前をＡＰタスク実行スケジュールテーブル２０１６（図１２参照）から取得し、ＡＰタスクの名前でＡＰタスク情報テーブル２０１２（図６参照）を参照して、使用ボリュームＩＤ２０１２ＢのフィールドからＡＰタスクにより使用されているボリュームＩＤ２０１２Ｂの一覧を取得する。更に、使用ボリュームＩＤの一覧に基づいて、ストレージ構成情報テーブル２０１１（図４参照）を参照して、所属電源制御対象ユニットＩＤ２０１１Ｃのフィールドから所属電源制御対象ユニットＩＤの一覧を取得する。更に、所属電源制御対象ユニットＩＤの一覧の電源制御対象ユニット起動フラグを確認し、（その起動フラグがＦＡＬＳＥとなっている）未起動の電源制御対象ユニットＩＤの一覧を取得する。もし、未起動の電源制御対象ユニットが存在した場合「Ｙｅｓ」としてステップＳ１４０６へ、存在しなかった場合「Ｎｏ」としてステップＳ１４０８へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４０６へ移る。
【００８９】
ステップＳ１４０６では、ステップＳ１４０５において未起動であると判定した、対象のＡＰタスクが使用するボリュームが属する電源制御対象ユニット１０６の電源を起動する。ここではステップＳ１４０５で取得した未起動の電源制御対象ユニットＩＤの一覧を用いて、ストレージ装置１０４の電源制御機能付きコントローラ１０５へ電源の起動を要求する。
【００９０】
次に、ステップＳ１４０６において起動した電源制御対象ユニット１０６の電源制御対象ユニット起動フラグをＴＲＵＥに更新する（ステップＳ１４０７）。
【００９１】
ステップＳ１４０５において「Ｎｏ」と判定した後、またはステップＳ１４０７が完了した後、ステップＳ１４０８では、ステップＳ１４０３において実行すべきと判定した、対象のＡＰタスクを実行する。ここでは、ステップＳ１４０３において実行すべきと判定したＡＰタスクの名前で、サーバ１０１上のＡＰ１０２へＡＰタスクの実行を要求する。更にステップＳ１４０２で取得した現在時刻を、対象のＡＰタスクの実行開始時刻として保持する。
【００９２】
次に、ステップＳ１４０８において実行したＡＰタスクのＡＰタスク実行フラグをＴＲＵＥに更新する（ステップＳ１４０９）。本ステップ完了後、再度、ステップＳ１４０２へ移る。
【００９３】
ステップＳ１４０３において「Ｎｏ」と判定した後、またはステップＳ１４０４において「Ｎｏ」と判定した後、ステップＳ１４１０では、ステップＳ１４０８において実行したＡＰタスクが完了したかどうか判定する。ここでは、ＡＰタスク実行フラグがＴＲＵＥであるＡＰタスクの名前で、サーバ１０１上のＡＰ１０２へＡＰタスクの実行を問い合わせる。問い合わせたＡＰタスクがひとつでも実行中でなかった場合（つまり、問い合わせたＡＰタスクがすべて完了した場合）「Ｙｅｓ」としてステップＳ１４１１へ、ひとつでも実行中であった場合（つまり、問い合わせたＡＰタスクが完了していない場合）「Ｎｏ」としてステップＳ１４１３へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４１１へ移る。
【００９４】
ステップＳ１４１１では、ステップＳ１４０９において実行中であった（ＡＰタスク実行フラグをＴＲＵＥに更新していた）、対象のＡＰタスクの実実行時間を更新する。ここでは、ステップＳ１４０９において実行中であったＡＰタスクについて、ステップＳ１４０２で取得した現在時刻とステップＳ１４０８において設定した実行開始時刻の差分を実実行時間として求め、ＡＰタスク実実行時間テーブル２０１８の実実行時間２０１８Ｃのフィールドに格納されている値を更新する。
【００９５】
図１６は、ＡＰタスク実実行時間テーブル２０１８を図示したものである。ＡＰタスク実実行時間テーブル２０１８は、サーバ上のＡＰ１０２が実行するタスクのタスク名２０１８Ａ、タスクが使用するボリュームを識別する使用ボリュームＩＤ２０１８Ｂ、タスクの実実行時間である実実行時間２０１８Ｃをフィールドとして含む。このようにして、タスクごとに、実行したタスクの実実行時間がどの程度であるかを示すタスク実実行時間情報が生成される。
【００９６】
図１６について、具体的に説明すると、タスク名２０１８Ａのフィールドには、サーバ上のＡＰ１０２が実行するタスクのタスク名として、ＡＰタスク実行スケジュールテーブル２０１６（図１２参照）に格納された案であってユーザに選択されたものに対応付けられたタスクのタスク名である「タスクＡ」、「タスクＢ」、「タスクＣ」、「タスクＤ」という値が格納される。タスクＡに着目すると、使用ボリュームＩＤ２０１８Ｂのフィールドには、タスクＡが使用するボリュームを表すボリュームＩＤとして「０：０１」及び「０：０４」という値が格納される。また、実実行時間２０１８Ｃのフィールドには、ステップＳ１４１１において求めた実実行時間から「１時間」（「０：０１」に対応）及び「１時間」（「０：０４」に対応）という値が格納される。
【００９７】
ステップＳ１４１２では、ステップＳ１４１０において実行中でなかった（完了した）ＡＰタスクのＡＰタスク実行フラグをＦＡＬＳＥに更新する。
【００９８】
ステップＳ１４１０において「Ｎｏ」と判定した後、またはステップＳ１４１２の後、ステップＳ１４１３では、電源制御対象ユニットが停止可能かどうか判定する。ここでは、電源制御対象ユニット起動フラグがＴＲＵＥである起動中の電源制御対象ユニットごとに、電源制御対象ユニットのＩＤで、ストレージ構成情報テーブル２０１１（図４参照）を参照して、電源制御対象ユニット１０６に含まれるボリュームＩＤ２０１１ＡのフィールドからボリュームＩＤの一覧を取得する。更に、取得したボリュームのＩＤの一覧に基づいて、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、タスク名２０１２Ａのフィールドから、ボリュームを使用しているタスク名の一覧を取得する。更に、取得したタスク名の一覧のタスクのＡＰタスク実行フラグを確認し、すべてＦＡＬＳＥであれば、当該電源制御対象ユニットを停止可能電源制御対象ユニットとして判定し、当該電源制御対象ユニットのＩＤを停止可能電源制御対象ユニットのリストに加える。更に、すべての電源制御対象ユニットに対して完了後、もし、停止可能電源制御対象ユニットが存在する場合「Ｙｅｓ」としてステップＳ１４１４へ、存在しない場合「Ｎｏ」としてステップＳ１４０２へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４１４へ移る。
【００９９】
ステップＳ１４１４では、ステップＳ１４１３において停止可能電源制御対象ユニットと判定された電源制御対象ユニットが電源制御スケジュールに基づいて、電源停止期間であるかどうか判定する。ここでは、ステップＳ１４１３の停止可能電源制御対象ユニットのリストに加えられた電源制御対象ユニットごとに、電源制御対象ユニットのＩＤを用いて、電源制御スケジュールテーブル２０１７（図１３参照）を参照して、現在実行中の電源制御スケジュールに関する、電源起動期間の起動時刻２０１７Ｃのフィールド及び停止時刻２０１７Ｄのフィールドから起動時刻及び停止時刻を取得する。更に、ステップＳ１４０２で取得した現在時刻が電源制御対象ユニットの起動時刻と停止時刻の間に含まれない場合、当該電源制御対象ユニットを停止電源制御対象ユニットとして判定し、当該電源制御対象ユニットのＩＤを停止電源制御対象ユニットのリストに加える。更に、すべての停止可能電源制御対象ユニットに対して完了後、もし、停止電源制御対象ユニットが存在する場合、「Ｙｅｓ」としてステップＳ１４１５へ、存在しない場合「Ｎｏ」として１４０２へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１４１５へ移る。
【０１００】
ステップＳ１４１５では、ステップＳ１４１４において停止電源制御対象ユニットと判定された電源制御対象ユニットの電源を停止する。ここでは、ステップＳ１４１４の停止電源制御対象ユニットのリストに加えられた電源停止ユニットのＩＤを用いて、ストレージ装置１０４の電源制御機能付きコントローラ１０５へ電源の停止を要求する。
【０１０１】
ステップＳ１４１６では、ステップＳ１４１５において電源を停止した電源制御対象ユニットの電源制御対象ユニット起動フラグを、ＦＡＬＳＥに更新する。本ステップ完了後、再度、ステップＳ１４０２へ移る。
【０１０２】
以上のＡＰタスク実行および電源制御処理を繰り返し行うことによって、スケジュール案に基づき、タスクの実行および電源の制御を実行することができる。
【０１０３】
１．３．４．ＡＰタスク実行スケジュール変更処理
図１７は、本発明の第１の実施の形態の、ＡＰタスク実行スケジュール変更プログラム２００４において運用管理プログラム２００により行われる、ＡＰタスク実行スケジュール変更処理を表すフローチャートである。
【０１０４】
まず、ステップＳ１６０１では、運用管理プログラム２００はストレージ装置１０４から電源制御対象ユニットの電源停止の通知を受信する。ここでは、ストレージ装置１０４から電源を停止する電源制御対象ユニット１０６のＩＤを受信する。また、電源制御タイミング受信部１１２は、この通知から電源制御のタイミング（電源を停止したというタイミング）を取得する。このストレージ装置１０４からの通知は、例えば、ある一定期間、電源制御対象ユニットが稼動していないことをストレージ装置１０４が確認した後に行われる。
【０１０５】
ステップＳ１６０２では、実際のタスクの実行に掛かった時間を取得する。ここでは、電源制御タイミング受信部１１２における電源制御のタイミングの受信を契機として、ＡＰタスクごとのＡＰタスク実実行時間テーブル２０１８テーブル（図１６参照）を参照して、実実行時間２０１８Ｃのフィールドから実実行時間を取得する。
【０１０６】
ステップＳ１６０３では、タスクの所要時間を更新する。ここでは、ステップＳ１６０２で取得した実実行時間を用いて、ＡＰタスク情報テーブル２０１２（図６参照）の所要時間２０１２Ｅのフィールドに格納されている所要時間（使用するボリュームの容量から見積もった所要時間）の値を、その実実行時間に更新する。
【０１０７】
ステップＳ１６０４では、ステップＳ１６０３で変更した情報（実実行時間が格納されたＡＰタスク情報テーブル２０１２（図６参照）から定まる情報）を基に、図９で示したスケジュール案作成処理を実行する。
【０１０８】
ステップＳ１６０４を完了後、ＡＰタスク実行スケジュール変更処理を完了する。
【０１０９】
以上のＡＰタスク実行スケジュール変更処理を行うことによって、実際のＡＰタスクの実行に合わせて動的にスケジュールを変更することができる。更に、変更されたスケジュールに基づき、ＡＰタスク実行および電源制御プログラム２００３において運用管理プログラム２００により行われる、ＡＰタスク実行および電源制御処理（図１５Ａから図１５Ｃ）が行われることにより、実際のＡＰタスクの実行に合わせて動的にＡＰタスクの実行および電源の制御を実行することができる。
【０１１０】
１．４．第１の実施の形態のまとめ
第１の実施形態により、以下の効果を奏する。すなわち、複数のタスクが実行されるストレージ装置を対象として、論理ボリュームが属する電源制御対象ユニットにより電源制御を行うにあたり、タスクの実行可能時間帯、トータルの消費電力、ピーク電力、電源の起動または停止回数といった一定の条件下において最適な省電力化を実現するという効果を奏する。
【０１１１】
上記電源制御においては、タスクの実行スケジュール及び電源制御のスケジュールに着目したスケジュール案を作成し、それをユーザに提示することにより、ユーザはストレージシステムの運用状況を考慮して、都合の良いスケジュール案を選択することができる。
【０１１２】
また、実際にタスクを実行するにあたり、電源制御を行った場合のタイミングに基づいて、スケジュール案を動的に変更し、実行したタスクに合わせて別のタスクを実行および電源の制御をすることができ、スケジューリングの効率性が増す。
【０１１３】
２．第２の実施の形態
第１の実施の形態では、タスクの実行および電源制御のスケジュール案を作成し、作成したスケジュール案に基づきタスクの実行および電源の制御を行う例を説明した。第２の実施の形態では、より簡易的にスケジューリングを行い、タスク実行および電源の制御を行うことにより、省電力化を実現するストレージシステムの例である。第１の実施の形態では、タスクの省電力化を実現する最適なスケジュール案をユーザとのインタラクションを経て決定した。本実施の形態の特徴は、第１の実施の形態と異なり、ユーザが意識せず省電力化を実現するスケジューリングが行われることにある。従って、本実施の形態は、明確な実行可能時間帯が存在しないタスク、ユーザが実行可能時間帯を明確に定めることができないタスク、またはタスク間の実行順序に関する依存性がないタスクについて適応し易いという利点がある。第２の実施の形態について、第１の実施の形態との相違点を中心に説明する。
【０１１４】
２．１．システムの構成
図１８は、本発明の第２の実施の形態のストレージ管理サーバ上のメモリのブロック図である。運用管理プログラム２００に、ＡＰタスク実行スケジュール案作成・表示プログラム２００２、ＡＰタスク実行および電源制御プログラム２００３及びＡＰタスク実行スケジュール変更プログラム２００４が含まれず、ＡＰタスク実行監視プログラム２００５が含まれ、また運用管理ＤＢ２０１に許容ピーク電力情報テーブル２０１３、消費電力情報テーブル２０１４、電源停止回数テーブル２０１５、ＡＰタスク実行スケジュールテーブル２０１６、電源制御スケジュールテーブル２０１７が含まれず、ＡＰタスク実行情報テーブル２０１９が含まれる点が本発明の第１の実施の形態と異なる（図２参照）。なお、本実施の形態では、ＡＰタスク情報テーブル２０１２（図６参照）について、実行可能時間帯の開始時刻２０１２Ｃのフィールドおよび終了時刻２０１２Ｄのフィールドには、開始時刻及び終了時刻の値が格納されていないものとする。
【０１１５】
２．１．１．ＡＰタスク情報および電源制御条件収集プログラム
ＡＰタスク情報および電源制御条件収集プログラム２００１は、ストレージ装置１０４全体で許容できる最大の電力の情報であるピーク電力の情報および電源制御対象ユニット１０６の電源停止回数の収集を行わず、ＡＰタスクの実行の情報を収集し、ＡＰタスク実行情報テーブル２０１９に格納する点が第１の実施の形態と異なる。ＡＰタスク情報および電源制御条件収集プログラム２００１の処理の詳細は、図１９及び図２０を用いて後記する。
【０１１６】
２．１．２．ＡＰタスク実行監視プログラム
ＡＰタスク実行監視プログラム２００５は、サーバ１０１上のＡＰ１０２が実行しているＡＰタスクを監視し、サーバ１０１のＡＰ１０２に対してＡＰタスクの実行を要求する。ＡＰタスク実行監視プログラム２００５の処理の詳細は、図２１を用いて後記する。
【０１１７】
２．１．３．ＡＰタスク実行情報テーブル
ＡＰタスク実行情報テーブル２０１９は、ＡＰタスクの実行状態を表す情報である。ＡＰタスク実行情報テーブル２０１９の内容は、図２０を用いて後記する。
【０１１８】
２．２．システムの処理
次に、本発明の第２の実施の形態のストレージシステムの処理について説明する。この処理は、運用管理プログラム２００を構成するＡＰタスク情報および電源制御条件収集プログラム２００１及びＡＰタスク実行監視プログラム２００５によって行われる処理に分類して説明される。以下、それぞれの処理について詳細に説明する。
【０１１９】
２．２．１．ＡＰタスク情報および電源制御条件収集の処理
図１９は、本発明の第２の実施の形態の、ＡＰタスク情報および電源制御条件収集プログラム２００１において、運用管理プログラム２００により行われる、ＡＰタスク情報および電源制御条件収集の処理を示すフローチャートである。本フローチャートについては、図１９および図２０を参照し、以下に説明する。
【０１２０】
ストレージ構成情報の収集のステップＳ３０１は第１の実施の形態と同様なため、ここでは省略する（図３参照）。
【０１２１】
ストレージ構成情報の収集のステップＳ３０１の後、運用管理プログラム２００はＡＰタスク実行情報の設定ステップを実行する（ステップＳ１８０１）。
【０１２２】
ＡＰタスク実行情報の設定ステップにおいて、運用管理プログラム２００は、ＡＰタスク情報を収集するために、各サーバ１０１から、サーバ１０１上のＡＰ１０２が実行するタスクのタスク名を取得する。更に取得したタスク名を基に、ユーザが各タスクの完了間隔を設定する画面を表示部１１１に表示する。「完了間隔」とは、各タスクの完了周期に相当し、あるタスクが完了した後に、次にそのタスクを完了するまでの最長の時間である。各タスクは、実行が完了してから、完了間隔に収まる時間に再実行される。つまり、このタスクの完了間隔は、各タスクの実行契機として用いられる。例えば、実行されるタスクがストレージ装置のバックアップ処理であった場合には、この完了間隔とはＲＰＯ（Recovery Point Object）に相当する。
【０１２３】
図２０は、本発明の第２の実施の形態の運用管理プログラム２００が行うＡＰタスク実行情報の設定ステップの概要を図示したものである。図２０には、ユーザが各タスクの完了間隔を設定する画面例が図示されており、この画面で設定された完了間隔を満たしながらタスクはスケジューリングされ、実行される。本画面には、「タスク名」の欄と「タスク完了間隔」の欄が設けられた表が表示されており、「タスク完了間隔」の欄においては、ユーザがタスクごとにタスクが完了する間隔を設定することができるように入力用のボックスが設けられている。本画面においてユーザが入力部１１９からタスクごとの完了間隔の設定を行うと、運用管理プログラム２００は、画面において入力された完了間隔を、図２０のＡＰタスク実行情報テーブル２０１９の完了間隔２０１９Ｂのフィールドに格納する。
【０１２４】
また、図２０には、ＡＰタスク実行情報テーブル２０１９が図示されており、ＡＰタスク実行情報テーブル２０１９はサーバ１０１上のＡＰ１０２が実行するＡＰタスク名２０１８Ａ、ＡＰタスクが完了する間隔である完了間隔２０１９Ｂ、前回ＡＰタスクが完了した日時である前回完了時刻２０１９Ｃをフィールドとして含む。
【０１２５】
図２０のＡＰタスク実行情報テーブル２０１９について具体的に説明すると、タスク２０１９Ａのフィールドには、サーバ１０１から取得したタスクのタスク名である「タスクＡ」、「タスクＢ」、「タスクＣ」及び「タスクＤ」という値が格納される。また、タスクＡに着目すると、タスク情報の完了間隔２０１９Ｂのフィールドには、ユーザにより入力部１１９から入力された完了間隔として「２４時間」という値が格納される。また、タスク情報の前回完了時刻２０１９Ｃのフィールドには、タイマ１２０から取得した、タスクＡが前回に完了した時刻として「２００７／０１／０２／１２：００（西暦２００７年１月２日の１２：００）」という値が格納される。
【０１２６】
２．２．２．ＡＰタスク実行監視および電源制御処理
図２１Ａおよび図２１Ｂは、本発明の第２の実施の形態の、ＡＰタスク実行監視プログラム２００５において運用管理プログラム２００により行われる、ＡＰタスク実行監視および電源制御処理を表すフローチャートである。
【０１２７】
まず、ステップＳ１９０１では、運用管理プログラム２００はサーバ１０１上で動作するＡＰタスクのＡＰタスク名をＡＰタスク情報テーブル２０１２（図６参照）から取得する。更にそのＡＰタスクごとに、ＡＰタスクが実行中かそうでないかを表すＡＰタスク実行フラグを用意し、ＦＡＬＳＥに設定する。ＡＰタスク実行フラグは、ＡＰタスクが実行中である場合「ＴＲＵＥ」であり、実行中でない場合「ＦＡＬＳＥ」である。
【０１２８】
ステップＳ１９０２では、現在時刻をタイマ１２０から取得する。
【０１２９】
ステップＳ１９０３では、ステップＳ１９０２で取得した現在時刻に完了間隔が満たされなくなるＡＰタスクが存在するかどうか判定する。ここでは、ＡＰタスクごとにステップＳ１９０２で取得した現在時刻と、ＡＰタスク実行情報テーブル２０１９（図２０参照）の前回完了時刻２０１９Ｃのフィールドに格納された前回完了時刻との差を求め、その差を経過時間とする。更に、ＡＰタスクごとにＡＰタスク情報テーブル２０１２（図６参照）を参照して、所要時間２０１２Ｅのフィールドから所要時間を取得する。そして、ＡＰタスクごとに、経過時間と所要時間の和が、ＡＰタスク実行情報テーブル２０１９の完了間隔２０１９Ｂのフィールドから取得した完了間隔より大きい場合、完了間隔が満たされないと判定し、「Ｙｅｓ」としてステップＳ１９０４へ、小さい場合、完了間隔が満たされると判定し、「Ｎｏ」としてステップＳ１９０９へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１９０４へ移る。
【０１３０】
ステップＳ１９０４では、ステップＳ１９０３において完了間隔が満たされないと判定された、対象のＡＰタスクを実行ＡＰタスクリストに加える。
【０１３１】
ステップＳ１９０５では、対象のＡＰタスクの使用するボリュームが所属する電源制御対象ユニットと同じ電源制御対象ユニットに所属するボリュームを使用するＡＰタスクを実行ＡＰタスクリストに加える。ここでは、実行ＡＰタスクリストに加えられたＡＰタスクの名前で、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、使用ボリュームＩＤ２０１２Ｂのフィールドから、使用されるボリュームの使用ボリュームＩＤの一覧を取得する。更に、使用ボリュームＩＤの一覧に基づいて、ストレージ構成情報テーブル２０１１（図４参照）を参照して、所属電源制御対象ユニットＩＤ２０１１Ｃのフィールドから所属電源制御対象ユニットＩＤの一覧を取得し、この所属電源制御対象ユニットＩＤの一覧に所属するボリュームＩＤの一覧を、ボリュームＩＤ２０１１Ａのフィールドから取得する。更に、所属するボリュームＩＤの一覧に基づいて、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、タスク名２０１２Ａのフィールドからこれらのボリュームを使用するタスク名を取得し、取得したタスク名に係るＡＰタスクを実行ＡＰタスクリストに加える。
【０１３２】
ステップＳ１９０６では、ステップＳ１９０５までで作成した実行ＡＰタスクリストに加えられたＡＰタスクが使用する電源制御対象ユニットの電源を起動する。ここでは、ステップＳ１９０５で取得した所属電源制御対象ユニットのＩＤを用いて、ストレージ装置１０４の電源制御機能付きコントローラ１０５へ電源の起動を要求する。
【０１３３】
ステップＳ１９０７では、ステップＳ１９０５までで作成した実行ＡＰタスクリストに含まれるＡＰタスクを実行する。ここでは、ステップＳ１９０５までで作成した実行ＡＰタスクリストに加えられたＡＰタスクの名前を用いて、サーバ１０１上のＡＰ１０２へＡＰタスクの実行を要求する。
【０１３４】
ステップＳ１９０８では、ステップＳ１９０７において実行したＡＰタスク実行フラグをＴＲＵＥに更新するように設定する。
【０１３５】
ステップＳ１９０３において、「Ｎｏ」と判定された場合、またはステップＳ１９０８が完了した後、ステップＳ１９０９が実行される。ステップＳ１９０９では、ステップＳ１９０８において実行した（ＡＰタスク実行フラグをＴＲＵＥに設定した）ＡＰタスクの実行開始時刻をタイマ１２０から取得する。
【０１３６】
ステップＳ１９１０では、実行中のＡＰタスクが完了したかどうか判定が行われる。ここではＡＰタスク実行フラグがＴＲＵＥであるタスクの名前をＡＰタスク情報テーブル２０１２（図６参照）から取得する。更に、取得したＡＰタスクの名前で、サーバ１０１上のＡＰ１０２へＡＰタスクの実行を問い合わせる。もし、完了しているＡＰタスクが存在した場合「Ｙｅｓ」としてステップＳ１９１１へ、存在しない場合「Ｎｏ」としてステップＳ１９０２へ移る。ここでは「Ｙｅｓ」と判定したとして、ステップＳ１９１１へ移る。
【０１３７】
ステップＳ１９１１では、ステップＳ１９１０で完了したＡＰタスクの所要時間を更新する。ここでは、ステップＳ１９０２で取得した現在時刻と、ステップＳ１９０９において取得した実行開始時間の差から所要時間を求める。更に、求めた所要時間については、ＡＰタスク情報テーブル２０１２（図６参照）において、対象のＡＰタスクの所要時間２０１２Ｅのフィールドに格納された値を、求めた所要時間に更新する。
【０１３８】
ステップＳ１９１２では、完了したＡＰタスクの前回完了時刻を更新する。ステップＳ１９０２で取得した現在時刻については、ＡＰタスク実行情報テーブル２０１９（図２０参照）において、対象のタスクの前回完了時刻２０１９Ｃのフィールドに格納された値を、取得した現在時刻に更新する。
【０１３９】
ステップＳ１９１３では、ステップＳ１９１０において完了したと判定されたＡＰタスク実行フラグをＦＡＬＳＥに更新するように設定する。
【０１４０】
ステップＳ１９１４では、ステップＳ１９１０において完了したと判定されたＡＰタスクを実行ＡＰタスクリストから削除する。
【０１４１】
ステップＳ１９１５では、完了したＡＰタスクの使用するボリュームが所属する電源制御対象ユニットに、他の実行中のＡＰタスクの使用するボリュームが所属するか判定する。つまり、完了したＡＰタスクと同じ電源制御対象ユニットを使用する実行中ＡＰタスクが存在するか否か判定する。ここでは、完了したタスクの名前で、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、使用ボリュームＩＤ２０１２Ｂのフィールドから使用しているボリュームＩＤの一覧を取得する。更に、取得したボリュームＩＤの一覧で、ストレージ構成情報テーブル２０１１（図４参照）を参照して、所属電源制御対象ユニットＩＤ２０１１Ｃのフィールドから、ボリュームが所属している所属電源制御対象ユニットＩＤの一覧を取得する。更に、取得した所属電源制御対象ユニットＩＤで、ストレージ構成情報テーブル２０１１のボリュームＩＤ２０１１Ａのフィールドから電源制御対象ユニットに所属するボリュームのボリュームＩＤの一覧を取得する。更に、取得したボリュームＩＤの一覧で、ＡＰタスク情報テーブル２０１２（図６参照）を参照して、タスク名２０１２Ａのフィールドから取得したボリュームＩＤを使用するタスク名を取得する。そして、取得したタスク名のＡＰタスク実行フラグを確認し、ひとつでもＴＲＵＥとなるＡＰタスクが存在する場合「Ｙｅｓ」としてステップＳ１９０２へ、ひとつもＴＲＵＥとなるＡＰタスクが存在しない場合「Ｎｏ」としてステップＳ１９１６へ移る。ここでは、「Ｎｏ」と判定したとして、ステップＳ１９１６へ移る。
【０１４２】
ステップＳ１９１６では、ステップＳ１９１０において完了したと判定されたＡＰタスクの使用するボリュームが所属する電源制御対象ユニットの電源を停止する。ここでは、ステップＳ１９１５で取得した所属電源制御対象ユニットＩＤの一覧を用いて、ストレージ装置１０４の電源制御機能付きコントローラ１０５へ電源の停止を要求する。
【０１４３】
以上により、ＡＰタスク実行監視および電源制御処理を終了する。
【０１４４】
以上の、ＡＰタスク実行監視および電源制御処理を行うことによって、ＡＰタスクの要件であるＡＰタスクの完了間隔を満たしながら、ＡＰタスクの実行および電源の制御を行うことができる。
【０１４５】
なお、本実施の形態では、ＡＰタスクの起動契機として、各ＡＰタスクの完了間隔を設定する例を示したが、この他にもユーザによりあるＡＰタスクが実行されたことを契機とする方法も考えられる。これらの例のように、本実施の形態は、タスクの実行の開始のタイミングを定めてタスクの実行状況を監視する。そして、あるタスクの実行に追従して、他のタスクを実行するようスケジューリングすることにより省電力化を実現することを可能とする。
【０１４６】
２．３．第２の実施の形態のまとめ
第２の実施形態により、以下の効果を奏する。すなわち、複数のタスクが実行されるストレージ装置を対象として、論理ボリュームが属する電源制御対象ユニットにより電源制御を行うにあたり、タスクの完了間隔に従い、特定のタスクの実行に追従して他のタスクを実行することにより、最適な省電力化を実現するという効果を奏する。電源を起動しているにもかかわらず、タスクを実行していないといった状況が起こる可能性を低減することになるからである。
【０１４７】
ユーザがタスクごとに完了間隔さえ設定すれば、スケジュール案を選択するなどといったインタラクションを経ることなく、ユーザが意識することのない簡易的な、タスクのスケジューリングを行うことができる。
【０１４８】
ストレージ環境は刻々と変化するものであるため、タスクごとに一律にタスク実行可能時間帯を設定することが困難な場合がある。また、タスクによっては、あるタスクを実行するためには他のタスクを実行していなければならないといったタスク間の実行順序に気を配ってスケジュール案を作成しなければならない場合がある。本実施の形態では元々タスク実行可能時間帯を設定する必要がなく、かつ、完了間隔からタスクの実行の完了を想定している以上、タスク間の実行順序を気にする必要がないので、簡易的にスケジューリングを行うことができる。
【０１４９】
なお、上述した形態は、本発明を実施するための最良のものであるが、かかる実施形式に限定する趣旨ではない。従って、本発明の要旨を変更しない範囲内において、その実施形式を種々変形することが可能である。
【図面の簡単な説明】
【０１５０】
【図１】本発明の第１の実施の形態のストレージシステムのブロック図である。
【図２】本発明の第１の実施の形態のストレージ管理サーバ上のメモリのブロック図である。
【図３】本発明の第１の実施の形態のＡＰタスク情報および電源制御条件収集を示すフローチャートである。
【図４】本発明の第１の実施の形態のストレージ構成情報テーブル２０１１の内容を図示したものである。
【図５】ユーザが各タスクの実行可能時間帯を設定する画面例を図示したものである。
【図６】本発明の第１の実施の形態のＡＰタスク情報テーブル２０１２の内容を図示したものである。
【図７】本発明の第１の実施の形態の運用管理プログラム２００が行う許容ピーク電力の設定ステップの概要を図示したものである。
【図８】本発明の第１の実施の形態の運用管理プログラム２００が行う電源停止回数の設定ステップの概要を図示したものである。
【図９】本発明の第１の実施の形態のスケジュール案作成処理を示すフローチャートである。
【図１０】本発明の第１の実施の形態の電源制御スケジュール案作成処理を示すフローチャートである。
【図１１Ａ】本発明の第１の実施形態のスケジュール案作成処理の具体例を示す図その１である。
【図１１Ｂ】本発明の第１の実施形態のスケジュール案作成処理の具体例を示す図その２である。
【図１２】ＡＰタスク実行スケジュールテーブル２０１６を図示したものである。
【図１３】電源制御スケジュールテーブル２０１７を図示したものである。
【図１４】ＡＰタスク実行スケジュール案を提示、選択するための画面例を図示したものである。
【図１５Ａ】本発明の第１の実施の形態のＡＰタスク実行および電源制御処理を表すフローチャートその１である。
【図１５Ｂ】本発明の第１の実施の形態のＡＰタスク実行および電源制御処理を表すフローチャートその２である。
【図１５Ｃ】本発明の第１の実施の形態のＡＰタスク実行および電源制御処理を表すフローチャートその３である。
【図１６】ＡＰタスク実実行時間テーブル２０１８を図示したものである。
【図１７】本発明の第１の実施の形態のＡＰタスク実行スケジュール変更処理を表すフローチャートである。
【図１８】本発明の第２の実施の形態のストレージ管理サーバ上のメモリのブロック図である。
【図１９】本発明の第２の実施の形態のＡＰタスク情報および電源制御条件収集を表すフローチャートである。
【図２０】本発明の第２の実施の形態の運用管理プログラム２００が行うＡＰタスク実行情報の設定ステップの概要を図示したものである。
【図２１Ａ】本発明の第２の実施の形態のＡＰタスク実行監視および電源制御処理を表すフローチャートその１である。
【図２１Ｂ】本発明の第２の実施の形態のＡＰタスク実行監視および電源制御処理を表すフローチャートその２である。
【符号の説明】
【０１５１】
１０１  サーバ
１０２  ＡＰ（アプリケーション）
１０３  ＳＡＮ
１０４  ストレージ装置
１０５  電源制御機能付きコントローラ
１０６  電源制御対象ユニット
１０７  論理ボリューム
１０８  ストレージ管理サーバ
１０９  ＣＰＵ
１１０  メモリ
１１１  表示部
１１２  電源制御タイミング受信部
１１３  ＬＡＮ
１１４  ＬＡＮインタフェース
１１５  ＳＡＮインタフェース
１１６  ＳＡＮインタフェース
１１７  ＬＡＮインタフェース
１１８  ＬＡＮインタフェース
１１９  入力部
１２０  タイマ
１２１  ダミーアクセス発行制御部
１２２  ダミーアクセス発行部
２００  運用管理プログラム
２０１  運用管理ＤＢ
２００１  ＡＰタスク情報および電源制御条件収集プログラム
２００２  ＡＰタスク実行スケジュール案作成・表示プログラム
２００３  ＡＰタスク実行および電源制御プログラム
２００４  ＡＰタスク実行スケジュール変更プログラム
２００５  ＡＰタスク実行監視プログラム
２０１１  ストレージ構成情報テーブル
２０１２  ＡＰタスク情報テーブル
２０１３  許容ピーク電力情報テーブル
２０１４  消費電力情報テーブル
２０１５  電源停止回数テーブル
２０１６  ＡＰタスク実行スケジュールテーブル
２０１７  電源制御スケジュールテーブル
２０１８  ＡＰタスク実実行時間テーブル
２０１９  ＡＰタスク実行情報テーブル
【図１】
0005011028.tif 000002
【図２】
0005011028.tif 000003
【図３】
0005011028.tif 000004
【図４】
0005011028.tif 000005
【図５】
0005011028.tif 000006
【図６】
0005011028.tif 000007
【図７】
0005011028.tif 000008
【図８】
0005011028.tif 000009
【図９】
0005011028.tif 000010
【図１０】
0005011028.tif 000011
【図１１Ａ】
0005011028.tif 000012
【図１１Ｂ】
0005011028.tif 000013
【図１２】
0005011028.tif 000014
【図１３】
0005011028.tif 000015
【図１４】
0005011028.tif 000016
【図１５Ａ】
0005011028.tif 000017
【図１５Ｂ】
0005011028.tif 000018
【図１５Ｃ】
0005011028.tif 000019
【図１６】
0005011028.tif 000020
【図１７】
0005011028.tif 000021
【図１８】
0005011028.tif 000022
【図１９】
0005011028.tif 000023
【図２０】
0005011028.tif 000024
【図２１Ａ】
0005011028.tif 000025
【図２１Ｂ】
0005011028.tif 000026