(57)【要約】【課題】冗長システムを構成するノード装置において、稼動系として動作する場合には、要求を処理するための性能を確保した上で消費電力を低減できるようにし、待機系として動作する場合には高い省電力効果を得られるようにする。【解決手段】電力制御手段３は、自ノード装置１が稼動系として動作している場合は、第１、第２の下降閾値Ｔｈ１、Ｔｈ２（Ｔｈ１＜Ｔｈ２）の内、第１の下降閾値Ｔｈ１と負荷検出手段２によって検出された自ノード装置１の負荷とを比較することにより、自ノード装置１内のＣＰＵに供給するクロックの周波数を通常状態よりも低減させるか否かを判定する。これに対して、自ノード装置１が待機系として動作している場合は、第２の閾値Ｔｈ２と負荷検出手段２の検出結果とを比較することにより、クロックの周波数を通常状態よりも低減させるか否かを判定する。【選択図】図１
2010102477.tif 000002
【特許請求の範囲】
【請求項１】
第１の下降閾値と、該第１の下降閾値よりも大きい第２の下降閾値とが登録された閾値記憶部と、
自ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部と、
自ノード装置の負荷を検出する負荷検出手段と、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、自ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段とを備えることを特徴とするノード装置。
【請求項２】
請求項１記載のノード装置において、
前記閾値記憶部には、前記第１の下降閾値および前記第２の下降閾値に加えて、前記第１の下降閾値よりも大きい第１の上昇閾値と、前記第２の下降閾値よりも大きい第２の上昇閾値とが登録され、
前記電力制御手段は、前記ノード状態情報が稼動系を示している場合は、前記第１の上昇閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の上昇閾値と前記負荷検出手段の検出結果との比較結果により、自ノード装置の電力制御状態を省電力状態から通常状態に切り替えるか否かを判定することを特徴とするノード装置。
【請求項３】
請求項１または２記載のノード装置において、
前記電力制御手段によって自ノード装置の電力制御状態を通常状態から省電力状態に切り替えると判定された場合は、自ノード装置の消費電力を通常状態の消費電力よりも低減させ、前記電力制御手段によって自ノード装置の電力制御状態を省電力状態から通常状態に切り替えると判定された場合は、自ノード装置の消費電力を通常状態の消費電力に戻す切り替え手段を備えることを特徴とするノード装置。
【請求項４】
請求項３記載のノード装置において、
前記切り替え手段は、自ノード装置の消費電力を通常状態の消費電力よりも低減させる際、前記ノード状態情報が待機系を示している場合は稼動系を示している場合よりも大きく低減させることを特徴とするノード装置。
【請求項５】
請求項３または４記載のノード装置において、
前記切り替え手段は、自ノード装置内のＣＰＵに供給するクロックの周波数を低減させることにより、自ノード装置の消費電力を低減させることを特徴とするノード装置。
【請求項６】
請求項１乃至５の何れか１項に記載のノード装置において、
前記負荷検出手段は、前記ＣＰＵの使用率を自ノード装置の負荷として検出することを特徴とするノード装置。
【請求項７】
請求項１乃至５の何れか１項に記載のノード装置において、
前記負荷検出手段は、記憶装置に対する入出力負荷を自ノード装置の負荷として検出することを特徴とするノード装置。
【請求項８】
請求項１乃至５の何れか１項に記載のノード装置において、
前記負荷検出手段は、ネットワーク負荷を自ノード装置の負荷として検出することを特徴とするノード装置。
【請求項９】
稼動系として動作するノード装置と、待機系として動作するノード装置とを備え、
前記ノード装置がそれぞれ、
第１の下降閾値と、該第１の下降閾値よりも大きい第２の下降閾値とが登録された閾値記憶部と、
自ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部と、
自ノード装置の負荷を検出する負荷検出手段と、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、自ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段とを備えることを特徴とする冗長システム。
【請求項１０】
第１の下降閾値および該第１の下降閾値よりも大きい第２の下降閾値が登録された閾値記憶部と、ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部とを備えたコンピュータが、前記ノード装置の負荷を検出する第１のステップと、
前記コンピュータが、前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する第２のステップとを含むことを特徴とする電力制御方法。
【請求項１１】
第１の下降閾値および該第１の下降閾値よりも大きい第２の下降閾値が登録された閾値記憶部と、ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部とを備えたコンピュータを、
前記ノード装置の負荷を検出する負荷検出手段、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長システムの稼動系としても待機系としても動作可能なノード装置に対する省電力技術に関する。
【背景技術】
【０００２】
稼動系のノード装置（コンピュータ）と待機系のノード装置とを備え、稼動系のノード装置に障害が発生した場合、待機系のノード装置を稼動系に切り替えて処理を引き継がせるようにした冗長システムは高い信頼性を有する。しかし、冗長システムは、複数のノード装置が必要になるため、消費電力が多くなる。
【０００３】
一方、複数のプロセッサを備えたマルチプロセッサシステムに対する省電力技術として、次にような技術が知られている（例えば、特許文献１参照）。この特許文献１に記載されている技術は、複数のプロセッサを備えたマルチプロセッサシステムにおいて、各プロセッサ毎に、そのプロセッサの負荷と予め定められている閾値とを比較し、負荷が閾値以下になった場合、例えばそのプロセッサに供給するクロック周波数を通常状態よりも低下させることにより消費電力を低減させるというものである。
【０００４】
【特許文献１】特開平８−６６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されている技術によれば、システムの運用状況に応じて消費電力を低減することができる。しかし、特許文献１が対象にしているマルチプロセッサシステムのプロセッサは、本発明が対象にしている冗長システムのノード装置のようにノード状態の切り替え（待機系から稼動系への切り替えや、稼動系から待機系への切り替え）が行われないものであるので、特許文献１を利用して冗長システムの消費電力を低減しようとした場合には、次のような問題が生じる。
【０００６】
特許文献１に記載されている技術を利用して冗長システムの消費電力を低減させようとした場合の構成は、ノード装置毎に、そのノード装置の負荷と予め定められている閾値とを比較し、負荷が閾値以下になったとき、ノード装置の消費電力を低減させるという構成になる。ここで、ノード装置の消費電力の低減はクロック周波数の変更などのように、ノード装置の処理能力と密接に関係するパラメータの変更により行われるため、ノード装置の消費電力を低減させた場合には、一般的にその性能は低下することになる。
【０００７】
上記構成において、閾値として小さな値（例えば１０％）を設定した場合を考えてみる。この場合は、ノード装置の負荷が１０％というようにかなり小さくなるまで、ノード装置の消費電力は低下せず、ノード装置は高い性能を維持する。このことは、応答時間に制限があるジョブ等を処理する稼動系のノード装置にとっては、要求を処理するための性能を確保することができるので都合が良い。しかし、バックアップ処理やファイルロード処理など、処理時間に対する制限が緩い処理を行う待機系のノード装置にとっては、なかなか消費電力が低下しないことになるので、好ましくない。
【０００８】
次に、閾値として大きな値（例えば３０％）を設定した場合を考えてみる。この場合は、ノード装置の負荷が３０％というようにかなり大きくとも、ノード装置の消費電力が低下し、ノード装置の性能が低下してしまう。このことは、処理時間に対する制限が緩いバックアップ処理などを行う待機系にとっては、高い省電力効果を得られるので好ましい。しかし、応答時間に制限があるジョブ等を処理する稼動系にとっては、例えば、要求されている応答時間内に応答を返すことができなくなるなど、要求を処理するための性能を確保できなくなる危険性が高まるので好ましくない。
【０００９】
このように、特許文献１に記載されている技術を利用して冗長システムの消費電力を低減しようとした場合は、閾値の設定の仕方により、稼動系のノード装置が要求を処理するための処理能力を確保できなくなるという問題、あるいは、待機系のノード装置が十分な省電力効果を得ることができないという問題が発生する。
【００１０】
〔発明の目的〕
そこで、本発明の目的は、稼動系のノード装置として動作する場合には要求を処理するための性能を確保した上で消費電力を低減できるようにし、待機系のノード装置として動作する場合には高い省電力効果を得られるようにすることにある。
【課題を解決するための手段】
【００１１】
本発明にかかる第１のノード装置は、
第１の下降閾値と、該第１の下降閾値よりも大きい第２の下降閾値とが登録された閾値記憶部と、
自ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部と、
自ノード装置の負荷を検出する負荷検出手段と、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、自ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段とを備える。
【００１２】
本発明にかかる冗長システムは、
稼動系として動作するノード装置と、待機系として動作するノード装置とを備え、
前記ノード装置がそれぞれ、
第１の下降閾値と、該第１の下降閾値よりも大きい第２の下降閾値とが登録された閾値記憶部と、
自ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部と、
自ノード装置の負荷を検出する負荷検出手段と、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、自ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段とを備える。
【００１３】
本発明にかかる電力制御方法は、
第１の下降閾値および該第１の下降閾値よりも大きい第２の下降閾値が登録された閾値記憶部と、ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部とを備えたコンピュータが、前記ノード装置の負荷を検出する第１のステップと、
前記コンピュータが、前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する第２のステップとを含む。
【００１４】
本発明にかかるプログラムは、
第１の下降閾値および該第１の下降閾値よりも大きい第２の下降閾値が登録された閾値記憶部と、ノード装置が稼動系として動作しているのか待機系として動作しているのかを示すノード状態情報が登録されたノード状態記憶部とを備えたコンピュータを、
前記ノード装置の負荷を検出する負荷検出手段、
前記ノード状態情報が稼動系を示している場合は、前記第１の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード状態情報が待機系を示している場合は、前記第２の下降閾値と前記負荷検出手段の検出結果との比較結果により、前記ノード装置の電力制御状態を通常状態から省電力状態に切り替えるか否かを判定する電力制御手段として機能させる。
【発明の効果】
【００１５】
本発明によれば、稼動系のノード装置として動作する場合には、要求を処理するための性能を確保した上で消費電力を低減することができ、待機系のノード装置として動作する場合には、高い省電力効果を得ることができる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１７】
〔本発明の第１の実施の形態〕
図１を参照すると、本発明の第１の実施の形態にかかるノード装置１は、負荷検出手段２と、電力制御手段３と、クロック周波数切り替え手段４と、記憶装置５とを備えている。ノード装置１は、冗長システムの稼動系としても、待機系としても動作可能なものである。
【００１８】
記憶装置５には、閾値記憶部５１と、ノード状態記憶部５２とが設けられている。
【００１９】
閾値記憶部５１には、自ノード装置１が稼動系として動作している場合に使用する第１の下降閾値Ｔｈ１と、待機系として動作している場合に使用する第２の下降閾値Ｔｈ２とが登録されている。ここで、第１、第２の下降閾値Ｔｈ１、Ｔｈ２は、Ｔｈ１＜Ｔｈ２の関係を有する。
【００２０】
ノード状態記憶部５２には、現在、自ノード装置１が稼動系として動作しているのか、待機系として動作しているのかを示すノード状態情報が登録されている。
【００２１】
負荷検出手段２は、自ノード装置１の負荷を検出する。本実施の形態では、負荷検出手段２は、自ノード装置１が備えているＣＰＵ（図示せず）の使用率（ＣＰＵ使用率）を、自ノード装置１の負荷として検出するものとする。なお、ノード装置１の負荷として、入出力負荷や、ネットワーク負荷を検出するようにしても構わない。
【００２２】
電力制御手段３は、ノード状態記憶部５２に登録されているノード状態情報が「稼動系」を示している場合は、第１の下降閾値Ｔｈ１と負荷検出手段２で検出されたＣＰＵ使用率とを比較し、その比較結果に基づいて自ノード装置１の電力制御状態を通常状態から省電力状態（消費電力が通常状態よりも少ない状態）へ切り替えるか否かを判定する。また、ノード状態記憶部５２に登録されているノード状態情報が「待機系」を示している場合は、第２の下降閾値Ｔｈ２と負荷検出手段２で検出されたＣＰＵ使用率とを比較し、その比較結果に基づいて自ノード装置１の電力制御状態を通常状態から省電力状態へ切り替えるか否かを判定する。そして、切り替えると判定した場合は、クロック周波数切り替え手段４に対してクロック周波数の低減を指示する低減指示を出力する。
【００２３】
クロック周波数切り替え手段４は、電力制御手段３から低減指示が与えられると、ノード装置１内のＣＰＵ（図示せず）に供給するクロック周波数を、通常状態用の周波数ｆ１から省電力状態用の周波数ｆ２（ｆ２＜ｆ１）に切り替えることにより、消費電力を低減させる。
【００２４】
このような機能を有するノード装置１は、コンピュータにより実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをノード装置１として機能させるためのプログラムを記録したディスク、半導体メモリなどの記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に負荷検出手段２、電力制御手段３およびクロック周波数切り替え手段４を実現する。
【００２５】
〔第１の実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。
【００２６】
電力制御手段３は、図２のフローチャートに示すように、ノード状態記憶部５２からノード状態情報を入力し、この情報に基づいて自ノード装置１のノード状態が稼動系であるのか、待機系であるのかを判断する（ステップＳ２０１、Ｓ２０２）。
【００２７】
そして、稼動系であると判定した場合（ステップＳ２０２がＹｅｓ）は、閾値記憶部５１から第１の下降閾値Ｔｈ１を入力し、更に、負荷検出手段３から負荷（ＣＰＵ使用率）を入力し、両者を比較する（ステップＳ２０３〜Ｓ２０５）。
【００２８】
そして、負荷が第１の下降閾値Ｔｈ１以下の場合は、クロック周波数切り替え手段４に対して、クロック周波数の低減を指示する低減指示を出力する（ステップＳ２０５がＹｅｓ、Ｓ２０６）。これにより、クロック周波数切り替え手段４は、ＣＰＵに供給しているクロックの周波数を、通常状態用の周波数ｆ１から省電力状態用の周波数ｆ２に切り替える。なお、既に省電力状態用の周波数ｆ２に切り替えている場合には、周波数の切り替え処理は行わない。
【００２９】
これに対して、負荷が第１の下降閾値Ｔｈ１よりも大きい場合（ステップＳ２０５がＮｏ）は、電力制御手段３はその処理を終了する。
【００３０】
一方、自ノード装置１が待機系であると判断した場合（ステップＳ２０２がＮｏ）は、閾値記憶部５１から第２の下降閾値Ｔｈ２を入力し、更に、負荷検出手段２から負荷（ＣＰＵ使用率）を入力し、両者を比較する（ステップＳ２０７〜Ｓ２０９）。
【００３１】
そして、負荷が第２の下降閾値Ｔｈ２以下の場合は、前述したステップＳ２０６の処理を行い、負荷が上記閾値Ｔｈ２よりも大きい場合は、その処理を終了する。なお、図２に示した処理は、例えば、周期的に行われる。
【００３２】
〔第１の実施の形態の効果〕
本実施の形態によれば、稼動系のノード装置においては要求を処理するための性能を確保した上で消費電力を低減することができ、待機系のノード装置においては極めて高い省電力効果を得ることができる。その理由は、ノード装置１が稼動系として動作している場合には負荷検出手段２の検出結果と第１の下降閾値Ｔｈ１との比較結果により、待機系として動作している場合は負荷検出手段２の検出結果と第２の下降閾値Ｔｈ２（Ｔｈ１＜Ｔｈ２）との比較結果により、電力制御状態を通常状態から省電力状態へ切り替えるか否かを判定するようにしてるからである。
【００３３】
〔本発明の第２の実施の形態〕
次に、本発明の第２の実施の形態について詳細に説明する。図３を参照すると、本実施の形態にかかる冗長構成サーバシステム１０は、複数のノード装置２０、２１、３０、３１、…を備えている。各ノード装置は、稼動系としても待機系としても動作可能なものであり、現時点では、ノード装置２０、３０、…が稼動系、ノード装置２１、３１、…が待機系として動作している。また、ノード装置２０と２１がペアになり、ノード装置３０と３１がペアとなっており、稼動系のノード装置に障害が発生した場合、ペアになっている待機系のノード装置が処理を引き継ぐようになっている。
【００３４】
ノード装置２０は、ノード状態管理表１００と、電力制御管理表１０１と、電力制御状態管理表１０２と、ＣＰＵ(Central Processor Unit)１１１の使用率を測定するＣＰＵ使用率測定部１０３と、自ノード装置２０に対するネットワーク負荷を測定するネットワーク負荷測定部１０４と、ハードディスクアクセスに対する入出力負荷（Ｉ／Ｏ負荷）を測定するＩ／Ｏ負荷測定部１０５と、電力制御部１０６と、自ノード装置２０の電力制御状態を外部から参照可能にする電力制御状態表示部１０７、電力制御状態の変化をログファイル（図示せず）に保存する電力制御ログ出力部１０８と、オペレーティングシステム（ＯＳ）１０９と、ハードウェアの入出力情報を制御するＢＩＯＳ(Basic Input/Output System)１１０、ハードウェアの状態を監視するＢＭＣ(Baseboard Management Controller)１１２とから構成されている。なお、他のノード装置も同様の構成を有している。
【００３５】
ノード状態管理表１００、電力制御管理表１０１および電力制御状態管理表１０２の各管理表は、ディスク装置などの記憶装置上に構成されている。
【００３６】
ノード状態管理表１００には、図４に示すように、自ノード装置２０のノード番号と、現在の自ノード装置２０のノード状態を示すノード状態情報とが登録されている。本実施の形態では、ノード状態情報は、ノード装置２０のノード状態が「稼動中」「待機中」「切離中」「障害中」「初期化中」「状態遷移中」「その他状態」の何れであるかを表示する。ここで、「稼動中」はノード装置２０が稼動系として動作している状態を示し、「待機中」はノード装置２０が待機系として動作している状態を示し、「切離中」はノード装置２０が冗長構成サーバシステム１０から切り離されている状態を示している。また、「障害中」「初期化中」「状態遷移中」は、それぞれ、ノード装置２０に障害が発生している状態、ノード装置２０が初期化処理を行っている状態、ノード装置２０が状態遷移処理を行っている状態を示す。
【００３７】
電力制御管理表１０１には、図５に示すように、ノード状態に関連付けて、電力制御判定要否フラグと、ＣＰＵ使用率に関する判定要否フラグ、下降閾値および上昇閾値と、Ｉ／Ｏ負荷に関する判定要否フラグ、下降閾値および上昇閾値と、ネットワーク負荷に関する判定要否フラグ、下降閾値および上昇閾値と、ＣＰＵクロック周波数変更幅とが登録されている。
【００３８】
電力制御判定要否フラグは、電力制御を行うか否かを判定するための電力制御判定処理を実行することが必要か否かを示すフラグである。なお、上記電力制御は、ノード装置２０の電力制御状態を通常状態から省電力状態へ切り替えたり、電力制御状態を省電力状態から通常状態へ復帰させるための制御を意味している。
【００３９】
ＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する判定要否フラグは、それぞれ電力制御判定処理において、ＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷を判定条件とすることが必要か否かを示すフラグである。ＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する下降閾値は、それぞれＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に基づいて電力制御状態を通常状態から省電力状態へ切り替えるか否かを判定するために使用する閾値である。また、ＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する上昇閾値は、それぞれＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に基づいて電力制御状態を通常状態に復帰させるか否かを判定するために使用する閾値である。なお、図５では、ノード状態「稼動中」に対応するＩ／Ｏ負荷、ネットワーク負荷に関する要否判定フラグが「不要」になっているが、「要」としても構わない。
【００４０】
ＣＰＵクロック周波数変更幅（単に変更幅という場合もある）は、電力制御状態を通常状態から省電力状態へ切り替える際、ＣＰＵ１１１に供給するクロックの周波数を通常状態に比較してどの程度低下させるかを示す情報である。本実施の形態では、ノード状態が待機中（待機系）の場合は、ノード状態が稼動中（稼動系）の場合よりも、周波数を大きく低減させるようにしている。これにより、待機系のノード装置では、極めて高い省電力効果を得ることができる。
【００４１】
電力制御状態管理表１０２には、図６に示すように、ノード番号と、現在の電力制御状態と、電力制御を起動した要因である電力制御起動要因と、電力制御を起動した際の閾値と、現在の電力制御起動要因値と、現在のＣＰＵクロック周波数値と、ＣＰＵクロック周波数の初期値（電力制御状態が通常状態のときのＣＰＵクロック周波数）と、現在の消費電力と、通常状態における消費電力（初期値消費電力）と、現在の消費電力と初期値消費電力から算出される省電力率とが登録されている。
【００４２】
電力制御部１０６は、電力制御管理表１０１に登録されている下降閾値と各測定部１０３〜１０５の測定結果とを比較することにより、自ノード装置２０の電源制御状態を通常状態から省電力状態に切り替えるか否かを判定する機能や、電力制御管理表１０１に登録されている上昇閾値と各測定部１０３〜１０５の測定結果とを比較することにより、自ノード装置２０の電力制御状態を通常状態に復帰させるか否かを判定する機能を有する。更に、電力制御部１０６は、電力制御状態を通常状態から省電力状態に切り替えると判定した場合は、ＯＳ１０９に対して、ＣＰＵ１１１に供給しているクロックの周波数を、電力制御管理表１０１から取得したＣＰＵクロック周波数変更幅だけ低減することを要求する機能や、電力制御状態を通常状態に復帰させると判定した場合は、ＯＳ１０９にＣＰＵクロック周波数変更幅を渡し、ＣＰＵ１１１に供給しているクロックの周波数を元に戻すことを要求する機能を有している。
【００４３】
このような機能を有するノード装置２０は、コンピュータにより実現可能であり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをノード装置２０として機能させるためのプログラムを記録したディスク、半導体メモリなどの記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、ＣＰＵ使用率測定部１０３、ネットワーク負荷測定部１０４、Ｉ／Ｏ負荷測定部１０５、電力制御部１０６、電力制御状態表示部１０７、電力制御ログ出力部１０８を実現する。
【００４４】
〔第２の実施の形態の動作の説明〕
次に、図７のフローチャートを参照して本実施の形態の動作について詳細に説明する。なお、以下の説明では、ノード装置２０の動作を例に挙げて説明するが、他のノード装置においても同様の動作が行われる。また、図７のフローチャートに示す処理は、周期的に行われるものである。
【００４５】
ノード装置２０内の電力制御部１０６は、先ず、ノード状態管理表１００から自ノード装置２０のノード状態を示すノード状態情報を入力する（ステップＳ７０１）。次いで、電力制御部１０６は、電力制御状態管理表１０２から現在の電力制御状態を入力する（ステップＳ７０２）。その後、電力制御部１０６は、ステップＳ７０１で入力したノード状態情報と関連付けて登録されている電力制御判定要否フラグを電力制御管理表１０１から検索し、その値に基づいて現在のノード状態が電力制御判定処理を行う状態になっているか否かを判定する（ステップＳ７０３）。例えば、電力制御管理表１０１の内容が図５に示すものである場合は、ノード状態が「稼動中」「待機中」「切離中」の何れかであれば、電力制御判定処理を行うノード状態になっていると判定し、それ以外の場合は電力制御判定処理を行わないノード状態になっていると判定する。
【００４６】
そして、電力制御判定処理を行わないノード状態になっていると判定した場合（ステップＳ７０３がＮｏ）は、ステップＳ７０２で入力した電力制御状態が「通常状態」であれば（ステップＳ７０７がＮｏ）、ステップＳ７０５の処理に移行し、「省電力状態」であれば（ステップＳ７０７がＹｅｓ）、電力制御状態を「通常状態」に戻すための電力制御を行い（ステップＳ７０８）、その後、ステップＳ７０５の処理に移行する。なお、電力制御状態を「通常状態」に戻すための電力制御については、後で詳しく説明する。
【００４７】
これに対して、電力制御判定処理を行うノード状態になっていると判定した場合（ステップＳ７０３がＹｅｓ）は、電力制御判定処理を行い、その判定結果に応じて電力制御を行う（ステップＳ７０４）。このステップＳ７０４で行う処理を、図８のフローチャートを参照して詳細に説明する。
【００４８】
先ず、電力制御部１０６は、電力制御フラグの値を「０」に初期化する（ステップＳ８０１）。電力制御フラグは、消費電力を下げる電力制御（電力制御状態を「通常状態」から「省電力状態」へ切り替える電力制御）を行うのか、消費電力を上げる電力制御（電力制御状態を「省電力状態」から「通常状態」へ復帰させる電力制御）を行うのか、電力制御を実行しないのかを示すフラグである。ここで、電力制御フラグの値「０」は、電力制御を実行しないことを示し、「１」は消費電力を上げる電力制御を示し、「２」は消費電力を下げる電力制御を示す。
【００４９】
その後、電力制御部１０６は、ステップＳ７０１で入力したノード状態情報に関連付けて登録されているＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する判定要否フラグ、下降閾値および上昇閾値を電力制御管理表１０１から検索する（ステップＳ８０２）。例えば、ステップＳ７０１で入力したノード状態情報が「待機中」で、電力制御管理表１０１の内容が図５に示すものであるとすると、ＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する判定要否フラグ、下降閾値および上昇閾値として、それぞれ「要、３０％、６０％」「要、３０％、６０％」「要、３０％、６０％」が検索されることになる。
【００５０】
次に、電力制御部１０６は、ステップＳ８０２で検索したＣＰＵ使用率に関する判定要否フラグの値に基づいて、ＣＰＵ使用率を判定条件とした電力制御判定処理を行うか否かを判定する（ステップＳ８０３）。そして、ＣＰＵ使用率に関する判定要否フラグの値が「要」である場合（ステップＳ８０３がＹｅｓ）は、ＣＰＵ使用率を判定条件とした電力制御判定処理を行い、判定結果に応じた値を電力制御フラグに設定する（ステップＳ８０４）。このステップＳ８０４で行う処理を、図９のフローチャートを参照して詳しく説明する。
【００５１】
電力制御部１０６は、先ず、ＣＰＵ使用率測定部１０３から現在のＣＰＵ使用率を入力する（ステップＳ９０１）。その後、電力制御部１０６は、現在のＣＰＵ使用率がステップＳ８０２で入力した、現在のノード状態に対応したＣＰＵ使用率に関する下降閾値以下であるか否かを判定する（ステップＳ９０２）。
【００５２】
そして、ＣＰＵ使用率が下降閾値以下である場合は、現在の電力制御状態が「省電力状態」でないことを条件にして電力制御フラグに「２」を設定する（ステップＳ９０２がＹｅｓ、Ｓ９０３がＮｏ、Ｓ９０４）。
【００５３】
これに対して、ＣＰＵ使用率が下降閾値よりも大きい場合（ステップＳ９０２がＮｏ）は、現在のＣＰＵ使用率がステップＳ８０２で入力した、現在のノード状態に対応したＣＰＵ使用率に関する上昇閾値以上であるか否かを判定する（ステップＳ９０５）。
【００５４】
そして、ＣＰＵ使用率が上昇閾値未満である場合（ステップＳ９０５がＮｏ）は、その処理を終了する。これに対して、ＣＰＵ使用率が上昇閾値以上である場合は、現在の電力制御状態が「省電力状態」であることを条件にして電力制御フラグに「１」を設定する（ステップＳ９０５がＹｅｓ、Ｓ９０６がＹｅｓ、Ｓ９０７）。以上が、ステップＳ８０４で行う処理の詳細である。
【００５５】
ステップＳ８０４の処理が終了すると、電力制御部１０６は、電力制御フラグの値が「０」であるか否かを調べる（ステップＳ８０５）。なお、ステップＳ８０３の判定結果がＮｏとなった場合にも、ステップＳ８０５の処理が行われる。
【００５６】
そして、電力制御フラグの値が「０」でない場合（ステップＳ８０５がＮｏ）は、後述するステップＳ８１２以降の処理を行う。これに対して、電力制御フラグの値が「０」である場合（ステップＳ８０５がＹｅｓ）は、ステップＳ８０２で検索したＩ／Ｏ負荷に関する判定要否フラグの値に基づいて、Ｉ／Ｏ負荷を判定条件とした電力制御判定処理を行うか否かを判定する（ステップＳ８０６）。
【００５７】
そして、電力制御判定処理を行うと判定した場合（ステップＳ８０６がＹｅｓ）は、Ｉ／Ｏ負荷を判定条件とした電力制御判定処理を行い、判定結果に応じた値を電力制御フラグに設定する（ステップＳ８０７）。図１０にステップＳ８０７で行う処理の詳細を示す。この図１０のステップＳ１００１〜Ｓ１００７で行う処理は、下記の点を除いて図９のステップＳ９０１〜Ｓ９０７で行う処理と同じである。
【００５８】
・ステップＳ１００１…このステップでは、Ｉ／Ｏ負荷測定部１０５から現在のＩ／Ｏ負荷を入力する。
・ステップＳ１００２…このステップでは、現在のＩ／Ｏ負荷が、ステップＳ８０２で入力した、現在のノード状態に対応したＩ／Ｏ負荷に関する下降閾値以下であるか否かを判定する。
・ステップＳ１００５…このステップでは、現在のＩ／Ｏ負荷が、ステップＳ８０２で入力した、現在のノード状態に対応したＩ／Ｏ負荷に関する上昇閾値以上であるか否かを判定する。
【００５９】
ステップＳ８０７の処理が終了すると、電力制御部１０６は、電力制御フラグの値が「０」であるか否かを判定する（ステップＳ８０８）。また、ステップＳ８０６の判定結果がＮｏの場合もステップＳ８０８の処理が行われる。
【００６０】
そして、電力制御フラグの値が「０」でない場合（ステップＳ８０８がＮｏ）は、後述するステップＳ８１２以降の処理を行う。これに対して、電力制御フラグの値が「０」である場合（ステップＳ８０８がＹｅｓ）は、ステップＳ８０２で検索した、ノード状態に対応したネットワーク負荷に関する判定要否フラグの値に基づいて、ネットワーク負荷を判定条件とした電力制御判定処理を行うか否かを判定する（ステップＳ８０９）。
【００６１】
そして、電力制御判定処理を行うと判定した場合（ステップＳ８０９がＹｅｓ）は、ネットワーク負荷を判定条件とした電力制御判定処理を行い、その判定結果に応じた値を電力制御フラグに設定する（ステップＳ８１０）。図１１は、ステップＳ８１０で行う処理の詳細を示したフローチャートである。このステップＳ８１０で行うステップＳ１１０１〜１１０７の処理は、下記の点を除いて図９のステップＳ９０１〜Ｓ９０７で行う処理と同じである。
【００６２】
・ステップＳ１１０１…このステップでは、ネットワーク負荷測定部１０４から現在のネットワーク負荷を入力する。
・ステップＳ１１０２…このステップでは、現在のネットワーク負荷が、ステップＳ８０２で入力した、現在のノード状態に対応したネットワーク負荷に関する下降閾値以下であるか否かを判定する。
・ステップＳ１１０５…このステップでは、現在のネットワーク負荷が、ステップＳ８０２で入力した、現在のノード状態に対応したネットワーク負荷に関する上昇閾値以上であるか否かを判定する。
【００６３】
ステップＳ８１０の処理が終了した場合およびステップＳ８０９の判断結果がＮｏとなった場合、電力制御部１０６は、電力制御フラグが「０」（制御なし）になっているか否かを判定する（ステップＳ８１１）。そして、電力制御フラグが「０」になっている場合は、処理を終了する。これに対して「０」になっていない場合は、以下に述べるステップＳ８１２以降の処理を行う。
【００６４】
電力制御部１０６は、電力制御フラグの値が「２」（下げる）になっている場合（ステップＳ８１２がＮｏ）は、現在の電力制御状態が「省電力状態」になっているか否かを判定する（ステップＳ８１３）。そして、「省電力状態」になっている場合（ステップＳ８１３がＹｅｓ）は処理を終了し、「省電力状態」になっていない場合（ステップＳ８１３がＮｏ）は、電力制御管理表１０１から現在のノード状態に関連付けて登録されているＣＰＵクロック周波数変更幅を入力し、上記変更幅を含んだクロック周波数下降要求をＯＳ１０９に渡す（ステップＳ８１４）。これにより、ＯＳ１０９は、自ノード装置２０内のＣＰＵ１１１に供給するクロックの周波数を、上記変更幅だけ低減させ、自ノード装置２０の消費電力を低減させる。例えば、電力制御状態が「通常状態」のときにＣＰＵ１１１に供給しているクロックの周波数が「Ｆ」であり、上記要求に含まれている変更幅が「５０％」である場合には、ＣＰＵ１１１に供給するクロックの周波数を「０．５Ｆ」に変更する。
【００６５】
これに対して、電力制御フラグの値が「１」（上げる）になっている場合（ステップＳＳ８１２がＹｅｓ）は、現在の電力制御状態が「省電力状態」になっているか否かを判定する（ステップＳ８１５）。そして、「省電力状態」になっていない場合（ステップＳ８１５がＮｏ）は、処理を終了する。これに対して、「省電力状態」になっている場合（ステップＳ８１５がＹｅｓ）は、電力制御管理表１０１から現在のノード状態に対応する変更幅を入力し、入力した変更幅を含んだクロック周波数復帰要求をＯＳ１０９に渡す（ステップＳ８１６）。これにより、ＯＳ１０９は、ＣＰＵ１１１に供給するクロックの周波数を、「通常状態」のときに供給していた周波数に戻す。例えば、現在ＣＰＵ１１１に供給しているクロックの周波数が「０．５Ｆ」で、クロック周波数復帰要求に含まれている変更幅が「５０％」である場合は、０．５Ｆ÷（１−０．５）なる演算を行うことにより、「通常状態」のときに供給していた周波数Ｆを求め、ＣＰＵ１１１の供給するクロックの周波数を「０．５Ｆ」から「Ｆ」に変更する。以上が、ステップＳ７０４で行われる処理の詳細である。
【００６６】
再び、図７のフローチャートに戻り、電力制御部１０６は、ステップＳ７０４の処理が終了すると、電力制御状態管理表１０２に反映するデータを計算し、計算した値に基づいて電力制御状態管理表１０２を更新する（ステップＳ７０５）。このステップＳ７０５の処理を図１２のフローチャートを参照して詳しく説明する。なお、ステップＳ７０８の処理が終了した場合およびステップＳ７０７の判定結果がＮｏとなった場合にも、ステップＳ７０５の処理が行われる。
【００６７】
図１２を参照すると、電力制御部１０６は、先ず、ノード状態管理表１００から現在のノード状態を示すノード状態情報を入力する（ステップＳ１２０１）。その後、電力制御部１０６は、電力制御管理表１０１からステップＳ１２０１で入力したノード状態と関連付けて登録されているＣＰＵ使用率、Ｉ／Ｏ負荷およびネットワーク負荷に関する下降閾値および上昇閾値を入力する（ステップＳ１２０２）。
【００６８】
更に、電力制御部１０６は、現在の電力制御状態、電力制御起動要因および電力制御起動要因値を取得する（ステップＳ１２０３）。なお、図８のステップＳ８１４を実行した場合は、現在の電力制御状態は「省電力状態」、ステップＳ８１６を実行した場合は、現在の電力制御状態は「通常状態」となる。また、ステップＳ８１１がＹｅｓとなった場合は、現在の電力制御状態は、電力制御状態管理表１０２に登録されているものとなる。また、ステップＳ８１３がＹｅｓとなった場合の電力制御状態は「省電力状態」、ステップＳ８１５がＮｏとなったときの電力制御状態は「通常状態」となる。また、ステップＳ８０５、Ｓ８０８、Ｓ８１１の判定結果がＮｏとなったときの電力制御起動要因はそれぞれ「ＣＰＵ使用率」「Ｉ／Ｏ負荷」「ネットワーク負荷」となる。また、電力制御起動要因値は、電力制御起動要因が「ＣＰＵ使用率」「Ｉ／Ｏ負荷」「ネットワーク負荷」の場合、それぞれ図９、図１０、図１１のステップＳ９０１、Ｓ１００１、Ｓ１１０１で入力した値となる。
【００６９】
その後、電力制御部１０６は、ＯＳ１０９に対して要求を出すことにより、ＣＰＵクロック周波数の初期値および現在値と、消費電力の現在値および初期値とを取得し、更に、消費電力の現在値と初期値とから省電力率を計算する（ステップＳ１２０４〜Ｓ１２０６）。そして、最後に電力制御部１０６は、取得した情報で電力制御状態管理表１０２を更新する（ステップＳ１２０７）。以上がステップＳ７０５で行う処理の詳細である。
【００７０】
その後、電力制御ログ出力部１０８が、電力制御状態管理表１０２のデータを、タイムスタンプおよびノード番号と共に図示を省略したログファイルに出力する（ステップＳ７０６）。
【００７１】
〔第２の実施の形態の効果〕
本実施の形態によれば、待機系のノード装置における省電力効果を極めて高いものとすることができる。その理由は、ノード装置の消費電力を低減させる際、現在のノード状態情報が待機系を示している場合は稼動系を示している場合よりも大きく低減させるようにしているからである。
【００７２】
また、本実施の形態によれば、電力制御状態が頻繁に切り替えられるという事態の発生を防ぐことができる。その理由は、消費電力を低減させるか否かを判定するための閾値と、消費電力を元に戻すか否かを判定するための閾値とを異なるものとしているからである。
【産業上の利用可能性】
【００７３】
本発明は、稼動系と待機系のノード装置を１組以上有する冗長システムにおいて、消費電力を低減させるといった用途に適用できる。
【図面の簡単な説明】
【００７４】
【図１】本発明の第１の実施の形態の構成例を示すブロック図である。
【図２】第１の実施の形態の処理例を示すフローチャートである。
【図３】本発明の第２の実施の形態の構成例を示すブロック図である。
【図４】ノード状態管理表１００の内容例を示す図である。
【図５】電力制御管理表１０１の内容例を示す図である。
【図６】電力制御状態管理表１０２の内容例を示す図である。
【図７】第２の実施の形態の動作の概要を示したフローチャートである。
【図８】電力制御判定処理および電力制御を行う際の電力制御部１０６の処理を詳細に示したフローチャートである。
【図９】ＣＰＵ使用率を判定条件とした電力制御判定処理の処理例を示すフローチャートである。
【図１０】Ｉ／Ｏ負荷を判定条件とした電力制御判定処理の処理例を示すフローチャートである。
【図１１】ネットワーク負荷を判定条件とした電力制御判定処理の処理例を示すフローチャートである。
【図１２】電力制御状態管理表１０２の更新処理の詳細を示すフローチャートである。
【符号の説明】
【００７５】
１、２０、２１、３０、３１…ノード装置
２…負荷検出手段
３…電力制御手段
４…クロック周波数切り替え手段
５…記憶装置
５１…閾値記憶部
５２…ノード状態記憶部
１０…冗長構成サーバシステム
１００…ノード状態管理表
１０１…電力制御管理表
１０２…電力制御状態管理表
１０３…ＣＰＵ使用率測定部
１０４…ネットワーク負荷測定部
１０５…Ｉ／Ｏ負荷測定部
１０６…電力制御部
１０７…電力制御状態表示部
１０８…電力制御ログ出力部
１０９…ＯＳ(Operating System)
１１０…ＢＩＯＳ(Basic Input/Output System)
１１１…ＣＰＵ(Central Processor Unit)
１１２…ＢＭＣ(Baseboard Management Controller)
【図１】
2010102477.tif 000003
【図２】
2010102477.tif 000004
【図３】
2010102477.tif 000005
【図４】
2010102477.tif 000006
【図５】
2010102477.tif 000007
【図６】
2010102477.tif 000008
【図７】
2010102477.tif 000009
【図８】
2010102477.tif 000010
【図９】
2010102477.tif 000011
【図１０】
2010102477.tif 000012
【図１１】
2010102477.tif 000013
【図１２】
2010102477.tif 000014