以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としてのストレージシステム1の構成を図1に示す。図1において、ストレージシステム1は、入出力制御装置10と、1つ以上の記憶装置80とを備える。
記憶装置80は、例えば、ハードディスクドライブによって構成される。これらの記憶装置80は、1つ以上の記憶装置80にデータを分散させて格納するRAID(Redundant Arrays of Inexpensive Disks)システムとして構成されていてもよい。また、いずれかの記憶装置80は、他の記憶装置80が故障した際のスペアディスクとして構成されていてもよい。
入出力制御装置10は、上位装置90に接続され、上位装置90からの記憶装置80に対する入出力要求を処理する。なお、図1には、6つの記憶装置80および1つの上位装置90を示しているが、本発明のストレージシステムが備える記憶装置の数および本発明のストレージシステムが接続される上位装置の数を限定するものではない。
また、入出力制御装置10は、入出力制御部11と、消費電力監視部12と、消費電力情報格納部13と、記憶装置情報格納部14と、電源制御部15と、を備える。ここで、入出力制御装置10は、プロセッサと、メモリと、上位装置接続インタフェースと、記憶装置接続インタフェースと、電力測定装置接続インタフェースとによって構成されている。メモリには、コンピュータ装置を本実施の形態の入出力制御装置10として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。プロセッサは、メモリに記憶されたコンピュータ・プログラムおよび各種データを読み込んで実行することにより、入出力制御装置10の各部を制御する。上位装置接続インタフェースは、上位装置90に接続してデータを送受信する。記憶装置接続インタフェースは、記憶装置80に接続してデータを送受信する。電力測定装置接続インタフェースは、ストレージシステム1の電力を測定する装置に接続して測定値を受信する。また、入出力制御部11は、上位装置接続インタフェースと、記憶装置接続インタフェースと、メモリに記憶されたコンピュータ・プログラムおよび各種データを読み込んで実行するプロセッサとによって構成される。また、消費電力監視部12は、電力測定装置接続インタフェースと、メモリに記憶されたコンピュータ・プログラムおよび各種データを読み込んで実行するプロセッサとによって構成される。また、消費電力情報格納部13および記憶装置情報格納部14は、メモリによって構成される。また、電源制御部15は、メモリに記憶されたコンピュータ・プログラムおよび各種データを読み込んで実行するプロセッサによって構成される。なお、入出力制御装置10およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
入出力制御部11は、上位装置90からの入出力要求に応じて記憶装置80に対する入出力を制御する。具体的には、入出力制御部11は、上位装置90から入出力要求を受信すると、入出力要求の対象となる記憶装置80を特定する。もし、記憶装置80がRAIDシステムを構成している場合、入出力制御部11は、上位装置90からの入出力要求の内容に応じて、入出力要求の対象データが分散されて格納される記憶装置80の識別番号を特定すればよい。そして、入出力制御部11は、入出力要求を受信したことを、対象となる記憶装置80の情報と共に、電源制御部15に通知する。これにより、入出力要求の対象となる記憶装置80の電源が、電源制御部15によりオンとなる。電源制御部15の詳細については後述する。そして、入出力制御部11は、対象の記憶装置80に対して、要求された入出力処理を実行すればよい。
消費電力監視部12は、ストレージシステム1の消費電力を監視する。ストレージシステム1の消費電力とは、例えば、電源がオンとなっている記憶装置80の消費電力や、入出力制御装置10の消費電力等を含む。例えば、消費電力監視部12は、ストレージシステム1に電力を供給する電源に設置された電力測定装置から所定間隔で消費電力の値を取得してもよい。また、消費電力監視部12は、取得した消費電力の値を、後述の消費電力情報格納部13に格納させる。
消費電力情報格納部13は、ストレージシステム1の消費電力の上限値に関するスケジュール情報および消費電力監視部12によって得られた消費電力の値を格納している。スケジュール情報は、例えば、1日がいくつかに分けられた時間帯毎に消費電力の上限値が定められたものであってもよい。その他、スケジュール情報は、例えば、時間、曜日、年、月、日、季節、または、これらの組み合わせなどによる各種条件に対して消費電力の上限値が定められたものであってもよい。
記憶装置情報格納部14は、各記憶装置80の電源がオンであるかオフであるかを表す電源状態情報を少なくとも格納している。例えば、記憶装置情報格納部14は、記憶装置80を識別する識別番号と、電源状態情報とを対応付けて記憶しておけばよい。また、1つ以上の記憶装置80によりRAIDシステムが構成されている場合、記憶装置情報格納部14は、電源状態情報に加えて、RAIDに関する情報を記憶していてもよい。RAIDに関する情報とは、冗長構成情報や構成位置情報等であってもよい。ここでいう冗長構成情報とは、RAIDシステムを構成する記憶装置80の台数やRAIDのレベル等のRAID構成情報である。また、構成位置情報とは、1つの論理的な記憶装置を構成する記憶装置80群における記憶装置80の位置を表す情報である。
電源制御部15は、消費電力情報格納部13および記憶装置情報格納部14に記憶された情報に基づいて、各記憶装置80の電源オン/オフを個別に制御する。例えば、電源制御部15は、入出力制御装置10と記憶装置80との間に設けられている電源制御回路(図示せず)に指示を出すことにより、電源オンまたはオフの対象として選択した記憶装置80の電源をオンまたはオフするよう制御すればよい。
具体的には、電源制御部15は、消費電力情報格納部13に記憶されたスケジュール情報に基づき上限値に変更があることを検出すると、次のように記憶装置80の電源制御を行う。この場合、電源制御部15は、消費電力情報格納部13に記憶されている最新の消費電力の値および上限値が所定の条件を満たすか否かを判断する。所定の条件とは、例えば、消費電力の値が上限値を超えることであってもよい。あるいは、所定の条件とは、消費電力の値が上限値の所定の割合を超えることであってもよい。そして、電源制御部15は、消費電力の値および上限値が所定の条件を満たす場合、記憶装置情報格納部14を参照することにより、電源状態がオンの記憶装置80のうち電源オフ可能な記憶装置80の少なくともいずれかを選択し、選択した記憶装置80の電源をオフにする。電源オフ可能な記憶装置80とは、例えば、その時点で実行中の入出力処理の対象となっていないものであってもよい。このとき、電源制御部15は、消費電力監視部12によって更新される消費電力の値が上限値を超えなくなるまで、いずれかの記憶装置80を選択して電源をオフにする処理を繰り返してもよい。あるいは、電源制御部15は、あらかじめ各記憶装置80に仕様として定められた消費電力を記憶しておくことにより、消費電力の値が上限値を超えなくなるよう電源オフ対象の記憶装置80を選択してもよい。
また、電源制御部15は、上位装置90からの入出力要求を入出力制御部11から通知されると、次のように記憶装置80の電源制御を行う。この場合、電源制御部15は、入出力要求の対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム1の消費電力の値およびこの時点の上限値が所定の条件を満たすか否かを判断する。所定の条件とは、例えば、予想される消費電力の値が上限値を超えることであってもよい。あるいは、所定の条件とは、予想される消費電力の値が上限値の所定の割合を超えることであってもよい。例えば、電源制御部15は、あらかじめ各記憶装置80に仕様として定められた消費電力を記憶しておくことにより、予想される消費電力および上限値が所定の条件を満たすか否かの判断を行ってもよい。この場合、電源制御部15は、入出力要求の対象となる記憶装置80のうち、電源がオフ状態となっているものの仕様上の消費電力と、消費電力監視部12によって取得された現在の消費電力の値とに基づいて、上述の判断処理を行ってもよい。
もし、入出力要求の対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム1の消費電力およびその時点の上限値が所定の条件を満たす場合、電源制御部15は、電源状態がオンの記憶装置80のうち電源オフ可能な記憶装置80の少なくともいずれかの電源をオフにしてから、対象となる記憶装置80の電源をオンにする。このとき、電源制御部15は、対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム1の消費電力が上限値を超えないよう、電源オフ対象の記憶装置80を選択すればよい。
また、入出力要求の対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム1の消費電力およびその時点の上限値が所定の条件を満たさない場合、電源制御部15は、対象となる記憶装置80のうち、電源がオフになっていたものの電源をオンにする。
以上のように構成されたストレージシステム1の動作について、図面を参照して説明する。まず、消費電力の上限値の変更が検出された場合のストレージシステム1における入出力制御装置10の動作について、図2を参照して説明する。なお、図2において、消費電力情報格納部13には、消費電力監視部12による継続的な監視によりストレージシステム1の消費電力について取得された最新の値が記憶されているものとする。
図2では、まず、電源制御部15は、消費電力情報格納部13のスケジュール情報を参照することにより、上限値に変更があるか否かを判断する(ステップS1)。
ここで、上限値に変更がないと判断した場合、電源制御部15は、ステップS1を再度実行する。
一方、上限値に変更があると判断した場合、電源制御部15は、消費電力情報格納部13に記憶されたスケジュール情報に基づき現時点の上限値を取得する(ステップS2)。
次に、電源制御部15は、消費電力情報格納部13に記憶された最新の消費電力の値を取得する(ステップS3)。
次に、電源制御部15は、ステップS2で取得された現時点の上限値と、ステップS3で取得された最新の消費電力の値とが、所定の条件を満たすか否かを判断する(ステップS4)。例えば、前述のように、電源制御部15は、最新の消費電力の値が上限値を上回るか否かを判断してもよい。
ここで、所定の条件を満たさない(例えば、消費電力の値が上限値を超えない)と判断した場合、入出力制御装置10は、ステップS1からの動作を再度実行する。
一方、ステップS4で、所定の条件を満たす(例えば、消費電力の値が上限値を超える)と判断した場合、電源制御部15は、記憶装置情報格納部14を参照し、電源がオンとなっている記憶装置80のうち電源オフ可能な記憶装置80の少なくともいずれかの電源をオフにする(ステップS5)。
例えば、前述のように、電源制御部15は、消費電力の値が上限値を下回るまで、電源オフ可能な記憶装置80の少なくともいずれかの電源をオフにする処理を繰り返してもよいし、仕様上の消費電力に基づいて、消費電力の値が上限値を下回るよう電源オフ対象の記憶装置80を選択して電源をオフにしてもよい。
次に、電源制御部15は、ステップS5で電源をオフにした記憶装置80に関して、記憶装置情報格納部14に記憶された電源状態情報を更新する(ステップS6)。
そして、入出力制御装置10は、ステップS1からの動作を繰り返し実行する。
以上で、上限値の変更が検出された場合の入出力制御装置10の動作の説明を終了する。
次に、上位装置90から入出力要求を受信した場合のストレージシステム1における入出力制御装置10の動作について、図3を参照して説明する。なお、図3において、消費電力情報格納部13には、消費電力監視部12による継続的な監視によりストレージシステム1の消費電力について取得された最新の値が記憶されているものとする。
図3では、まず、入出力制御部11は、上位装置90から入出力要求を受信したか否かを判断する(ステップS11)。
ここで、上位装置90から入出力要求を受信していないと判断した場合、入出力制御装置10は、ステップS11の動作を再度実行する。
一方、上位装置90から入出力要求を受信したと判断した場合、入出力制御部11は、入出力要求の対象となる記憶装置80の情報を取得する(ステップS12)。例えば、前述のように、1つ以上の記憶装置80がRAIDシステムとして構成されている場合、入出力制御部11は、入出力要求対象のデータを分散して格納する記憶装置80の識別番号を取得してもよい。そして、入出力制御部11は、入出力要求を受信したことを、対象となる記憶装置80の情報とともに、電源制御部15に通知する。
次に、電源制御部15は、消費電力情報格納部13に記憶されたスケジュール情報に基づき現時点の上限値を取得する(ステップS13)。
次に、電源制御部15は、消費電力情報格納部13に記憶された最新の消費電力の値を取得する(ステップS14)。
次に、電源制御部15は、ステップS12で取得された対象となる記憶装置80の情報と、ステップS13で取得された現時点の上限値と、ステップS14で取得された最新の消費電力の値とに基づいて、対象となる記憶装置80の電源をオンにした場合のストレージシステム1に予想される消費電力の値および上限値が所定の条件を満たすか否かを判断する(ステップS15)。例えば、前述のように、電源制御部15は、予想される消費電力の値が上限値を上回るか否かを判断してもよい。
ここで、対象となる記憶装置80の電源をオンにした場合に予想される消費電力の値および上限値が所定の条件を満たす(例えば、消費電力の値が上限値を超える)と判断した場合、電源制御部15は、記憶装置情報格納部14を参照し、電源がオンとなっている記憶装置80のうち電源オフ可能な記憶装置80の少なくともいずれかの電源をオフにする(ステップS16)。
例えば、前述のように、電源制御部15は、仕様上の消費電力に基づいて、対象となる記憶装置80の電源をオンにした場合の消費電力の値が上限値を下回るよう、電源オフ対象の記憶装置80を選択して電源をオフにしてもよい。
次に、電源制御部15は、ステップS16で電源をオフにした記憶装置80に関して、記憶装置情報格納部14に記憶された電源状態情報を更新する(ステップS17)。
次に、電源制御部15は、入出力要求の対象となる記憶装置80の電源をオンにするよう制御する(ステップS18)。
次に、電源制御部15は、ステップS18で電源をオンにした記憶装置80に関して、記憶装置情報格納部14に記憶された電源状態情報を更新する(ステップS19)。
次に、入出力制御部11は、対象となる記憶装置80に対する入出力処理を実行する(ステップS20)。ここで、入出力制御部11による処理完了後、電源制御部15は、ステップS18で電源をオンにした記憶装置80の電源をオフにしてもよい。
そして、入出力制御装置10は、ステップS11からの動作を繰り返し実行する。
一方、ステップS15において、対象となる記憶装置80の電源をオンにした場合に予想される消費電力の値および上限値が所定の条件を満たさない(例えば、消費電力の値が上限値を超えない)と判断した場合、入出力制御装置10は、ステップS18〜S20の動作を実行することにより、対象となる記憶装置80の電源をオンにし、入出力処理を実行する。
そして、入出力制御装置10は、ステップS11からの動作を繰り返し実行する。
以上で、上位装置90から入出力要求を受信した場合の入出力制御装置10の動作の説明を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としてのストレージシステムは、1つ以上の物理的な記憶装置を備えたストレージシステムにおいて、電力供給状況の変化に応じて消費電力を効率的に削減することができる。
その理由は、消費電力情報格納部が、ストレージシステムの消費電力の上限値のスケジュール情報を記憶しておき、消費電力監視部がストレージシステムの消費電力を監視し、電源制御部が、スケジュール情報に基づく上限値の変更を検出すると、監視結果の消費電力の値および上限値が所定の条件を満たすか否か(例えば、消費電力の値が上限値を上回るか否か)を判断し、満たす場合には、電源がオンとなっている記憶装置のうち少なくともいずれかの電源をオフにするよう制御するからである。また、入出力制御部が入出力要求を受信すると、電源制御部が、スケジュール情報に基づくその時点での消費電力の上限値を取得し、入出力要求対象の記憶装置の電源をオンにした場合のストレージシステムの上限値およびその時点での消費電力の上限値が所定の条件を満たすか否か(例えば、消費電力の値が上限値を上回るか否か)を判断し、満たす場合には、電源がオンとなっている記憶装置のうち少なくともいずれかの電源をオフにするよう制御するからである。
これにより、本実施の形態としてのストレージシステムは、電力供給状況の変化や電気料金の変化に対応して可変となるようスケジュールされた消費電力の上限値に基づいて各記憶装置の電源のオンオフを制御可能となるからである。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
まず、本発明の第2の実施の形態としてのストレージシステム2の構成を図4に示す。図4において、ストレージシステム2は、本発明の第1の実施の形態としてのストレージシステム1に対して、入出力制御装置10に替えて入出力制御装置20を備える点が異なる。入出力制御装置20は、本発明の第1の実施の形態としての入出力制御装置10と同一のハードウェア構成に加えて、ネットワークインタフェースを備える。入出力制御装置20は、本発明の第1の実施の形態としての入出力制御装置10と同様に、上位装置90および記憶装置80に接続されることに加えて、ネットワークインタフェースを介して管理端末70に接続される。
入出力制御装置20は、本発明の第1の実施の形態としての入出力制御装置10に対して、入出力制御部11に替えて入出力制御部21と、記憶装置情報格納部14に替えて記憶装置情報格納部24と、電源制御部15に替えて電源制御部25とを備え、さらに、差分データ格納部26と、設定情報格納部27と、情報設定部28とを備える点が異なる。差分データ格納部26および設定情報格納部27は、メモリによって構成される。情報設定部28は、ネットワークインタフェースと、メモリに記憶されたコンピュータ・プログラムおよび各種データを読み込んで実行するプロセッサによって構成される。なお、入出力制御装置20およびその各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
入出力制御部21は、本発明の第1の実施の形態における入出力制御部11と同様に構成されることに加えて、電源制御部25からの通知に応じて、入出力要求において書き込み対象となっているデータの少なくとも一部(差分データ)を、差分データ格納部26に格納させる。電源制御部25からの通知については詳細を後述する。
記憶装置情報格納部24は、本発明の第1の実施の形態における記憶装置情報格納部14と同様に各記憶装置80の電源状態情報を格納することに加えて、各記憶装置80について電源がオンオフされた電源オンオフ回数を格納する。電源オンオフ回数は、例えば、電源がオンされた回数であってもよいし、電源がオフされた回数であってもよい。あるいは、電源がオンまたはオフされる度にカウントされる回数であってもよい。
電源制御部25は、本発明の第1の実施の形態における電源制御部15と同様に構成されることに加えて、次のように構成される。
電源制御部25は、電源状態がオンの記憶装置80の少なくともいずれかの電源をオフにする際に、各記憶装置80の電源オンオフ回数に基づく所定の基準による優先順位にしたがって、電源をオフにする記憶装置80を選択する。例えば、電源制御部25は、記憶装置情報格納部24に記憶された電源オンオフ回数がより少ないものから順に、電源オフ対象として選択するようにしてもよい。
また、電源制御部25は、上位装置90からの入出力要求があったときに、電源オフ可能な記憶装置80の電源を全てオフにしたとしても、その入出力要求の対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム2の消費電力が上限値を超える場合、次のように電源制御を行う。この場合、電源制御部25は、対象となる記憶装置80で電源がオフとなっているもののうち、消費電力が上限値を超えない範囲で電源オン可能な記憶装置80を特定する。そして、電源制御部25は、該当する記憶装置80の電源をオンにする。また、この場合、電源制御部25は、対象となる記憶装置80で電源がオフとなっているもののうち、消費電力が上限値を超えるために電源をオンにできない記憶装置80を特定する。そして、電源制御部25は、該当する記憶装置80に書き込まれることになる差分データを差分データ格納部26に書き込むよう、入出力制御部21に通知する。
また、電源制御部25は、入出力制御部21による入出力処理が終了すると、その入出力処理の対象となった記憶装置80の電源をオフにする。ただし、このとき、電源制御部25は、記憶装置情報格納部24を参照することにより、対象となった記憶装置80の電源オンオフ回数を考慮して電源をオフする時期を決定する。具体的には、電源制御部25は、入出力処理が終了した記憶装置80の電源オンオフ回数が所定条件を満たす場合には、所定期間経過後にその記憶装置80の電源をオフにする。ここで、所定期間としては、後述の設定情報格納部27に格納されている電源オン保持期間が適用される。また、電源制御部25は、入出力処理が終了した記憶装置80の電源オンオフ回数が所定条件を満たさない場合には、入出力処理が終了した時点で、その記憶装置80の電源をオフにする。
ここで、所定条件とは、例えば、電源オンオフ回数が閾値を超えたことであってもよい。詳細には、例えば、所定条件とは、その記憶装置80がストレージシステム2に搭載されて以降の通算の電源オンオフ回数が閾値を超えたことであってもよいし、単位時間あたりの電源オンオフ回数が閾値を超えたことであってもよい。
差分データ格納部26は、入出力要求における書き込み対象のデータのうち、書き込み処理が未完了の部分である上述の差分データを格納する。
情報設定部28は、管理端末70から、ストレージシステム2の消費電力の上限値のスケジュール情報を取得することにより、取得したスケジュール情報を、消費電力情報格納部13に格納させる。
また、情報設定部28は、管理端末70から、電源オンオフ回数の閾値および電源オン保持期間を取得することにより、取得した電源オンオフ回数の閾値および電源オン保持期間を、設定情報格納部27に格納させる。なお、情報設定部28は、電源オンオフ回数の閾値および電源オン保持期間として、記憶装置80毎に設定される値を取得してもよい。
設定情報格納部27に記憶される電源オンオフ回数の閾値および電源オン保持期間は、電源制御部25によって、入出力処理終了後の記憶装置80の電源オフ制御が行われる際に用いられる。
例えば、情報設定部28は、消費電力の上限値のスケジュール情報と、電源オンオフ回数の閾値と、電源オン保持期間とを設定させるためのユーザインタフェースを管理端末70に対して提供することにより、これらの情報を取得すればよい。具体的には、情報設定部28は、消費電力の上限値のスケジュール情報と、電源オンオフ回数の閾値と、電源オン保持期間とをそれぞれ入力または選択させる設定画面情報を生成して管理端末70に送信してもよい。この際、情報設定部28は、消費電力情報格納部13および設定情報格納部27に既に設定されているこれらの情報があれば、現在の設定情報を合わせて提示するようにしてもよい。そして、情報設定部28は、管理端末70において入力装置を介して入力された情報を受信することにより、消費電力の上限値のスケジュール情報と、電源オンオフ回数の閾値と、電源オン保持期間とを取得すればよい。
管理端末70は、プロセッサと、メモリと、記憶装置と、ネットワークインタフェースと、入力装置と、表示装置とを含むコンピュータ装置によって構成される。管理端末70は、ストレージシステム2における消費電力の上限値のスケジュール情報と、電源オンオフ回数の閾値と、電源オン保持期間とを、入力装置を介して取得し、取得した情報を入出力制御装置20に対して送信する。このとき、管理端末70は、前述のように、入出力制御装置20から設定画面情報を受信し、受信した設定画面情報を表示装置に表示することにより、入力装置を介してこれらの情報を取得して送信してもよい。
このとき、例えば、管理端末70において入力される電源オン保持期間として望ましい値は、次のように算出される。例えば、記憶装置80の仕様として、電源オンオフ回数50000回、寿命5年が定められていたことを想定する。この場合、この記憶装置80は、1日あたり約27回の電源オンオフが許容されると算出される。したがって、この記憶装置80は、1時間に1回電源オンオフしてもよいことがわかる。この場合、電源オン保持期間を1時間に設定してしまうと、1時間電源オンを保持した後電源オフし、その直後にアクセスが来る場合もある。したがって、この場合、電源オン保持期間は、最低でも2時間に設定されることが好ましい。
以上のように構成されるストレージシステム2の動作について、図面を参照して説明する。
まず、消費電力の上限値に変更が検出された場合の動作については、図2を参照して説明した本発明の第1の実施の形態としての入出力制御装置10の動作と略同様である。ただし、ステップS5において、電源をオフする対象の記憶装置80を、記憶装置情報格納部24に格納された電源オンオフ回数に基づく所定の基準による優先順位にしたがって選択する点が異なる。例えば、入出力制御装置20は、消費電力の上限値に変更が検出された場合、電源オフ可能な記憶装置80のうち、電源オンオフ回数のより少ないものをオフして、消費電力の値が上限値を超えないようにする。
次に、上位装置90から入出力要求があった場合のストレージシステム2における入出力制御装置20の動作について、図5〜図6を参照して説明する。なお、情報設定部28は、管理端末70から消費電力の上限値のスケジュール情報、電源オンオフ回数の閾値および電源オン保持期間を取得することにより、これらの情報を既に消費電力情報格納部13および設定情報格納部27に格納済みであるものとする。また、消費電力情報格納部13には、消費電力監視部12による継続的な監視によりストレージシステム2の消費電力について取得された最新の値が記憶されているものとする。
ここでは、まず、入出力制御装置20は、図3を参照して説明した本発明の第1の実施の形態としての入出力制御装置10と同様にステップS11〜S15まで動作する。そして、入出力制御装置20は、入出力要求の対象となる記憶装置80の電源をオンにして予想される消費電力およびこの時点の上限値が所定の条件を満たさない(例えば、予想される消費電力が上限値を超えない)と判断した場合、ステップS18〜S20を実行することにより、対象となる記憶装置80の電源をオンにして入出力処理を実行する。
次に、電源制御部25は、入出力処理を完了した電源オン状態の記憶装置80のそれぞれについて、記憶装置情報格納部24および設定情報格納部27を参照することにより、電源オンオフ回数が所定の条件を満たすか否かを判断する(ステップS21)。例えば、前述のように、電源制御部25は、各記憶装置80の電源オンオフ回数が閾値を超えているか否かを判断してもよい。
ここで、電源オンオフ回数が所定条件を満たさない(例えば、閾値以下である)と判断した記憶装置80について、電源制御部25は、所定期間を待機することなく、電源をオフにする(ステップS23)。
次に、電源制御部25は、ステップS23で電源をオフにした記憶装置80に関して、記憶装置情報格納部24に記憶された電源状態情報を更新する(ステップS24)。
一方、電源オンオフ回数が所定条件を満たす(例えば、閾値を超えている)と判断した記憶装置80について、電源制御部25は、設定情報格納部27に設定された電源オン保持期間の間待機した後(ステップS22)、電源をオフにする(ステップS23)。
次に、電源制御部25は、ステップS23で電源をオフにした記憶装置80に関して、記憶装置情報格納部24に記憶された電源状態情報を更新する(ステップS24)。
そして、入出力制御装置20は、ステップS11からの動作を繰り返し実行する。
また、ステップS15で、対象となる記憶装置80の電源をオンにした場合の消費電力の値および上限値が所定条件を満たす(例えば、予想される消費電力が上限値を超える)と判断した場合の入出力制御装置20の動作について、図6を参照して説明する。
図6では、まず、電源制御部25は、記憶装置情報格納部24を参照し、電源がオンとなっている記憶装置80の少なくともいずれかの電源をオフにする(ステップS31)。このとき、電源制御部25は、電源をオフする対象の記憶装置80を、記憶装置情報格納部24に格納された電源オンオフ回数に基づく所定の基準による優先順位にしたがって選択する。
次に、電源制御部25は、ステップS31で電源をオフにした記憶装置80に関して、記憶装置情報格納部24に記憶された電源状態情報を更新する(ステップS32)。
次に、電源制御部25は、対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム2の消費電力の値およびその時点の上限値が所定の条件を満たすか否かを再度判断する(ステップS33)。例えば、前述のように、電源制御部25は、予想される消費電力の値が上限値を超えているか否かを判断してもよい。
ここで、ステップS31において少なくともいずれかの記憶装置80の電源がオフにされたことにより、予想される消費電力の値および上限値が所定の条件を満たさない(例えば、予想される消費電力の値が上限値を上回らない)と判断した場合、入出力制御装置20は、図5のステップS18〜S24の動作を実行する。これにより、入出力制御装置20は、対象となる記憶装置80の電源をオンし、入出力処理を実行後、所定のタイミングで電源をオフにする。
そして、入出力制御装置20は、ステップS11からの動作を繰り返し実行する。
一方、ステップS31で電源オフ可能な記憶装置80の電源を全てオフにしても(あるいは、電源オフ可能な記憶装置80がない場合で)、ステップS33において、対象となる記憶装置80の電源をオンにした場合に予想されるストレージシステム2の消費電力の値および上限値が所定の条件を満たす(例えば、予想される消費電力の値が上限値を上回る)と判断した場合、入出力制御装置20は、次のように動作する。この場合、電源制御部25は、対象となる記憶装置80のうち、消費電力の値が上限値を上回らない範囲で電源オン可能な記憶装置80と、オンにすることができない記憶装置80とを特定する(ステップS34)。
次に、電源制御部25は、ステップS34で、オンにすることができないとして特定した記憶装置80を、入出力制御部21に通知する。そして、入出力制御部21は、該当する記憶装置80に書き込まれる予定の差分データを、差分データ格納部26に格納させる(ステップS35)。
次に、入出力制御装置20は、ステップS34で電源オン可能と判断した記憶装置80について、図5のステップS18〜S24の動作を実行する。これにより、入出力制御装置20は、対象となる記憶装置80のうち電源オン可能なものについて電源をオンし、入出力処理を実行後、所定のタイミングで電源をオフにする。
そして、入出力制御装置20は、ステップS11からの動作を繰り返し実行する。
以上で、入出力制御装置20の動作の説明を終了する。
なお、本実施の形態において、入出力制御装置20は、差分データ格納部26に記憶させた差分データについて、本来書き込まれる予定の記憶装置80の電源オンが可能となる任意の時期に該記憶装置80の電源をオンにすることにより、差分データを該記憶装置80に書き込む処理を行えばよい。
次に、以上のように動作する入出力制御装置20により、記憶装置80の電源状態が変化する具体例について、図7〜図11を参照して説明する。なお、図7〜図11において、ドットパターンで塗りつぶされたシリンダ型の図形は、電源オンのまま電源状態が変化しない記憶装置80を表している。また、格子パターンで塗りつぶされたシリンダ型の図形は、電源オンの状態から電源オフの状態に制御された記憶装置80を表している。また、斜線パターンで塗りつぶされたシリンダ型の図形は、電源オフの状態から電源オンの状態に制御された記憶装置80を表している。また、パターンで塗りつぶされていないシリンダ型の図形は、電源オフのまま電源状態が変化しない記憶装置80を表している。また、パターンで塗りつぶされていない図形のうち破線で囲まれたシリンダ型の図形は、電源オンが必要であるものの電源オンできない状態の記憶装置80を表している。また、上述の各パターンの矩形は、その縦の長さにより、該当するパターンに対応する各記憶装置80の消費電力の大きさを模式的に表したものである。また、図7〜図11では、ストレージシステム2が6つの記憶装置80(80a〜80f)を備えるものとして説明を行う。また、図7〜図11では、ストレージシステム2の消費電力は、記憶装置80a〜80fの消費電力の和であると仮定する。
図7は、ストレージシステム2の消費電力の値が、スケジュール情報に基づくその時点の上限値を超えていない状態の一例を表している。図7では、記憶装置80a、80c、および、80eの電源がオンとなっている。これらの記憶装置80の消費電力の和であるストレージシステム2の消費電力は、この時点における消費電力の上限値を超えていない。
図8は、スケジュール情報に基づき消費電力の上限値の変更が検出された場合の各記憶装置80の電源状態の変化の一例を表している。図8において、電源制御部25は、消費電力の上限値(旧)から上限値(新)への変更を検出し(図2のステップS1でYes)、記憶装置80a、80c、80eの消費電力の和である消費電力の値(旧)が、上限値(新)を超えると判断する(ステップS4でYes)。そこで、電源制御部25は、電源がオン状態の記憶装置80a、80c、80eのいずれかを選択する。このとき、電源制御部25は、電源オンオフ回数に基づく優先順位にしたがって記憶装置80cを選択し、その電源をオフにする(ステップS5)。これにより、ストレージシステム2の消費電力の値(新)は、変更後の上限値(新)を超えない。
図9は、入出力要求が受信された場合の各記憶装置80の電源状態の変化の一例を表している。図9において、電源制御部25は、入出力要求の受信を検出し(図5のステップS11)、この入出力要求の対象となる記憶装置80が、記憶装置80a、80b、80cであると特定したとする(ステップS12)。そして、電源制御部25は、対象となる記憶装置80a、80b、80cのうちオフとなっている記憶装置80bの電源をオンにした場合に予想されるストレージシステム2の消費電力の値(新)は、この時点の消費電力の上限値を超えないと判断する(ステップS15でNo)。そこで、電源制御部25は、記憶装置80bの電源をオンにする(ステップS18)。そして、入出力制御部21は、入出力処理を実行する。これにより、ストレージシステム2の消費電力の値(新)は、消費電力の上限値を超えない。
図10は、入出力要求が受信された場合の各記憶装置80の電源状態の変化の他の一例を表している。図10において、電源制御部25は、入出力要求の受信を検出し(図5のステップS11)、この入出力要求の対象となる記憶装置80が、記憶装置80b、80d、80eであると特定したとする(ステップS12)。そして、電源制御部25は、対象となる記憶装置80b、80d、80eのうちオフとなっている記憶装置80b、80dの電源をオンにした場合に予想されるストレージシステム2の消費電力の値は、この時点の消費電力の上限値を超えると判断する(ステップS15でYes)。そこで、電源制御部25は、電源がオン状態の記憶装置80a、80c、80eのいずれかを選択する。このとき、電源制御部25は、今回の入出力要求の対象となっていない記憶装置80aおよび記憶装置80cのうち、電源オンオフ回数に基づいて記憶装置80cを選択する。そして、電源制御部25は、記憶装置80cの電源をオフにする(ステップS31)。これにより、電源制御部25は、対象となる記憶装置80b、80d、80eのうちオフとなっている記憶装置80b、80dの電源をオンにした場合に予想されるストレージシステム2の消費電力の値は、この時点の消費電力の上限値を超えなくなったと判断する(ステップS33でNo)。そこで、電源制御部25は、記憶装置80b、80dの電源をオンにする(ステップS18)。そして、入出力制御部21は、入出力処理を実行する。これにより、ストレージシステム2の消費電力の値(新)は、消費電力の上限値を超えない。
図11は、入出力要求が受信された場合の各記憶装置80の電源状態の変化のさらに他の一例を表している。図11において、電源制御部25は、入出力要求の受信を検出し(図5のステップS11)、この入出力要求の対象となる記憶装置80が、記憶装置80b、80c、80fであると特定したとする(ステップS12)。そして、電源制御部25は、対象となる記憶装置80b、80c、80fのうちオフとなっている記憶装置80b、80fの電源をオンにした場合に予想されるストレージシステム2の消費電力の値は、この時点の消費電力の上限値を超えると判断する(ステップS15でYes)。そこで、電源制御部25は、電源がオン状態の記憶装置80a、80c、80eのいずれかを選択する。このとき、電源制御部25は、記憶装置80a、80c、80eのいずれもが、今回の入出力要求または他の処理の対象となっており、電源オフ不可であると判断する。したがって、電源制御部25は、対象となる記憶装置80b、80fの電源をオンにした場合に予想されるストレージシステム2の消費電力の値は、この時点の消費電力の上限値を依然として超えると判断する(ステップS33でYes)。そこで、電源制御部25は、記憶装置80b、80fのうち、記憶装置80bを電源オン可能とし、記憶装置80fの電源をオンにできないと特定する(ステップS34)。これにより、入出力制御部21は、記憶装置80fに書き込まれる予定の差分データを、差分データ格納部26に格納させる(ステップS35)。そして、電源制御部25は、記憶装置80bの電源をオンにして(ステップS18)、入出力制御部21は、入出力処理を実行する。これにより、ストレージシステム2の消費電力の値(新)が消費電力の上限値を超えることがない。
以上で、入出力制御装置20により、記憶装置80の電源状態が変化する具体例の説明を終了する。
次に、本発明の第2の実施の形態の効果について説明する。
本発明の第2の実施の形態としてのストレージシステムは、電力供給状況の変化に応じて消費電力を効率的に削減しながらも、消費電力を削減するための電源オフ回数の増加に伴う記憶装置の信頼性の劣化を低減することができる。
その理由は、電源制御部が、ストレージシステムの消費電力および上限値が所定の条件を満たす場合に、電源がオンとなっている記憶装置のうち電源をオフする対象を、各記憶装置の電源オンオフ回数に基づく所定の基準による優先順位にしたがって選択するからである。例えば、電源制御部により、電源オンオフ回数がより少ない記憶装置を選択して電源をオフにすることにより、ストレージシステムの消費電力が上限値を超えることを抑えつつ、電源オンオフ回数のより多い記憶装置の信頼性の低下を低減することができる。さらなる理由は、電源制御部が、消費電力を削減するために入出力処理終了後の記憶装置の電源をオフする際に、電源オンオフ回数が所定条件を満たす記憶装置については、所定期間経過後に電源をオフするからである。これにより、本実施の形態は、例えば、電源オンオフ回数が閾値を超えている記憶装置については、該記憶装置を対象とする入出力要求を処理後、所定期間内に再度、該記憶装置を対象とする入出力要求が受信されるような場合に、電源オンオフ回数を増加させることがなく、信頼性の低下を低減可能となる。
また、本発明の第2の実施の形態としてのストレージシステムは、1つ以上の物理的な記憶装置を備えたストレージシステムにおいて、電力供給状況の変化に応じて消費電力を効率的に削減しながらも、入出力処理性能の低下を防止することができる。
その理由は、電源制御部が、電源オフ可能な記憶装置の全ての電源をオフにしても(あるいは電源オフ可能な記憶装置がない場合)、対象となる記憶装置の電源を全てオンにすると消費電力および上限値が所定の条件を満たす(たとえば、消費電力の値が上限値を超える)と判断した場合、電源をオンにできない記憶装置に書き込まれる予定の差分データを、差分データ格納部に格納させるからである。これにより、本実施の形態の入出力制御装置は、消費電力を削減するために入出力要求対象の記憶装置の電源がオンにできないことによる入出力性能の低下を防止することができる。
なお、上述した本発明の各実施の形態において、電源制御部は、スケジュール情報に基づく上限値に変更を検出した場合、および、上位装置からの入出力要求を受信した場合に、記憶装置の電源制御を行うものとして説明した。これに加えて、各実施の形態における電源制御部は、ある記憶装置が故障した場合に、スペアディスクとして設定された記憶装置の電源をオンにする制御を行ってよい。
また、上述した本発明の各実施の形態において、電源制御部は、ストレージシステムの消費電力またはストレージシステムに予想される消費電力が上限値を超えるか否かを所定の条件として判断を行う例を中心に説明を行った。この他、電源制御部は、消費電力が上限値の所定割合を超えるか否かを所定の条件として判断処理を行ってもよいし、消費電力および上限値に基づくその他の各種条件を所定の条件として判断処理を行ってもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した入出力制御装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に記憶しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。