(57)【要約】【課題】管理装置を備えることなく安定した電力制御を実現する。【解決手段】複数のノード１０と、電力を供給する複数の電力供給装置２０と、複数のノード１０のそれぞれから読み書き可能な共用の記憶領域３０とを備え、複数のノード１０のそれぞれが、自ノード１０の消費電力情報を記憶領域３０に記憶する記録制御部１０３と、複数の電力供給装置２０のうち一部の電力供給装置２０に異常が検出された場合に、記憶領域３０から読み出した消費電力情報に基づいて、正常電力供給装置２０から自ノード１０への供給電力を制御する制御部１０２とを備える。【選択図】図１
2020008971.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと、
電力を供給する複数の電力供給装置と、
前記複数のノードのそれぞれから読み書き可能な共用の記憶領域とを備え、
前記複数のノードのそれぞれが、
自ノードの消費電力情報を前記記憶領域に記憶する記録制御部と、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する制御部と
を備えることを特徴とする、サーバ装置。
【請求項２】
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力を、動作中の前記ノードの消費電力の割合に応じて動作中のノード１０に配分することで、前記ノードへの供給電力を決定する
ことを特徴とする請求項１記載のサーバ装置。
【請求項３】
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力から動作中の前記ノードの各必要最低消費電力の総和を減算して求める分配対象電力を、前記動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することでノード毎の分配電力を求め、前記分配電力を、各ノードの必要最低消費電力に加算することで、前記ノードへの供給電力を決定する
ことを特徴とする、請求項１記載のサーバ装置。
【請求項４】
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記記録時刻を示す時刻情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出した前記時刻情報の示す値と現在時刻との時間差が閾値以上である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、請求項２または３記載のサーバ装置。
【請求項５】
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記消費電力情報に基づいて作成したエラー検出情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出したエラー検出情報と、前記記憶領域から読み出した前記消費電力情報に基づいて作成したエラー検出情報とが不一致である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、請求項２〜４のいずれか１項に記載のサーバ装置。
【請求項６】
前記制御部が、
前記記録領域から前記時刻情報を所定間隔で繰り返し読み出し、この読み出した前記時刻情報の値に変化がない場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、請求項２〜５のいずれか１項に記載のサーバ装置。
【請求項７】
複数のノードと、電力を供給する複数の電力供給装置とを備えたサーバシステムにおいて、前記複数のノードに備えられたプロセッサに、
自ノードの消費電力情報を、前記複数のノード１０のそれぞれから読み書き可能な共用の記憶領域に記憶し、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する
処理を実行させる、電力制御プログラム。
【請求項８】
複数のノードと、電力を供給する複数の電力供給装置とを備えたサーバシステムにおいて、前記複数のノードのそれぞれに備えられる監視制御装置であって、
自ノードの消費電力情報を前記複数のノードのそれぞれから読み書き可能な共用の記憶領域に記憶する記録制御部と、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する制御部と
を備えることを特徴とする、監視制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置，電力制御プログラムおよび監視制御装置に関する。
【背景技術】
【０００２】
一般的なサーバシステムでは、一部の電力供給装置（ＰＳＵ：Power Supply Unit）の故障等により消費電力が供給可能電力を上回った時に、一時的にＣＰＵ（Central Processing Unit）のクロックを最低レベルまで落とすことで、残ったＰＳＵの供給電力を抑える手法が知られている。
【０００３】
このように、ＰＳＵの供給電力を低減させることで、残ったＰＳＵが供給可能な電力を超えて電力供給を行なうことを阻止して、連鎖的なＰＳＵの故障を防止する。
【０００４】
また、サーバシステムとして、筐体内に複数のノードを備えたマルチノードサーバが知られている。
【０００５】
マルチノードサーバにおいては、システム全体を管理する管理装置（以下、シャーシマネージャという）を備え、このシャーシマネージャが各ノードの電力供給を管理することで、ＰＳＵの供給可能電力を超えないように制御することが知られている。
【０００６】
図７は従来のマルチノードサーバにおける消費電力の遷移を示す図である。なお、図７中において縦軸はサーバにおける消費電力を示し、横軸は経過時間を示す。
【０００７】
ＰＳＵ故障などによる電力不足が発生し、残ったＰＳＵにおける供給可能電力をオーバーすると（矢印Ａ１参照）、シャーシマネージャは、各ノードのＢＭＣ（Baseboard Management Controller）の電力制御部のＣＰＵを最低レベルのクロックに落とし、消費電力を抑える（矢印Ａ２参照）。ＢＭＣは、自身が搭載されたノード（自ノード）におけるハードウェアの状態を監視する監視装置である。
【０００８】
また、シャーシマネージャは、各ノードのＢＭＣに消費電力上限を通知する。各ノードのＢＭＣの電力制御部はＣＰＵのスロットリングを徐々に開放することで、消費電力を徐々に上昇させる（矢印Ａ３参照）。この間に、残ったＰＳＵの供給可能電力内で電力の復旧を試みる。
【０００９】
シャーシマネージャは、マルチノードサーバ全体の消費電力を確認し、ＰＳＵの供給可能電力を超えそうだと判断すると、スロットリングの開放を止め（矢印Ａ４参照）、ノードの消費電力がＰＳＵの供給可能電力に収まるようにする。
【００１０】
一方、開発コストや製造コストの削減を目的として、シャーシマネージャを非搭載のサーバシステムも用いられている。このようなシャーシマネージャを非搭載のマルチノードサーバにおいては、当該マルチノードサーバに備えられた各ノードのＢＭＣの電力制御部としての機能が、それぞれ自ノードの電力制御を行なう。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１２−１７３９２６号公報
【特許文献２】特開２０１６−１６７２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図８は従来のシャーシマネージャ非搭載のマルチノードサーバにおけるＰＳＵ故障発生時の処理を示すシーケンス図である。
【００１３】
この図８に示す従来のシャーシマネージャ非搭載のマルチノードサーバは、２つのＰＳＵ＃００，＃０１と４つのノード＃００〜＃０３とを備える。
【００１４】
このようなシャーシマネージャを非搭載のマルチノードサーバにおいて、例えばＰＳＵ＃００の故障が発生すると（矢印Ｂ１参照）、ＰＳＵ＃０１が各ノード＃００〜＃０３に対して、電力不足の発生を通知する。
【００１５】
通知を受け取った各ノード＃００〜＃０３においては、ＢＭＣの電力制御部が自ノードのＣＰＵを最低レベルのクロックに落とし、消費電力を抑える（スロットリング：矢印Ｂ２参照）。
【００１６】
その後、各ノードのＢＭＣの電力制御部は、それぞれ自ノードのＣＰＵのスロットリングを徐々に開放し、消費電力を徐々に上昇させる（ランプアップ：矢印Ｂ３参照）。すなわち、残ったＰＳＵ＃０１で供給可能電力内で電力の復旧を試みる。
【００１７】
各ノードにおいて、それぞれ消費電力を上昇させることで、全ノードの消費電力の合計値がＰＳＵの供給可能電力をオーバーし、残ったＰＳＵ＃０１による供給電力の不足が発生する（矢印Ｂ４）。
【００１８】
これにより、上記各ノードにおいては、同様の処理が繰り返し行なわれる。すなわち、ＰＳＵ＃０１が各ノード＃００〜＃０３に対して、電力不足の発生を通知する。
【００１９】
通知を受け取った各ノード＃００〜＃０３においては、ＢＭＣの電力制御部が自ノードのＣＰＵを最低レベルのクロックに落とし、消費電力を抑える（スロットリング：矢印Ｂ５参照）。
【００２０】
その後、各ノードのＢＭＣの電力制御部は、それぞれ自ノードのＣＰＵのスロットリングを徐々に開放し、消費電力を徐々に上昇させる（矢印Ｂ６参照）。すなわち、残ったＰＳＵ＃０１で供給可能電力内で電力の復旧を試みる。
【００２１】
各ノードにおいて、他のノードの消費電力を考慮することなく、それぞれ消費電力を上昇させることで、全ノードの消費電力の合計値がＰＳＵの供給可能電力をオーバーし、残ったＰＳＵ＃０１による供給電力の不足が発生する。
【００２２】
図９は図８に示した従来のシャーシマネージャ非搭載のマルチノードサーバにおける消費電力の遷移を示す図である。
【００２３】
この図９に示すように、従来のシャーシマネージャ非搭載のマルチノードサーバにおいては、ＰＳＵによる供給可能電力オーバーの発生と、ＣＰＵのスロットリングとランプアップとが繰り返し行なわれる。
【００２４】
すなわち、ＰＳＵの保護は行なわれても、サーバの消費電力は下降と上昇を繰り返し、サーバの処理性能が安定しないという課題がある。
【００２５】
１つの側面では、本発明は、管理装置非搭載のマルチノードサーバにおいて安定した電力制御を実現することを目的とする。
【課題を解決するための手段】
【００２６】
このため、このサーバ装置は、複数のノードと、電力を供給する複数の電力供給装置と、前記複数のノードのそれぞれから読み書き可能な共用の記憶領域とを備え、前記複数のノードのそれぞれが、自ノードの消費電力情報を前記記憶領域に記憶する記録制御部と、前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する制御部とを備える。
【発明の効果】
【００２７】
一実施形態によれば、管理装置を備えることなく安定した電力制御を実現することができる。
【図面の簡単な説明】
【００２８】
【図１】第１実施形態の一例としてのマルチノードサーバの構成を模式的に示す図である。
【図２】第１実施形態の一例としてのマルチノードサーバにおけるノードのハードウェアを示す図である。
【図３】第１実施形態の一例としてのマルチノードサーバにおけるＢＭＣのハードウェア構成を示す図である。
【図４】（ａ），（ｂ）は、第１実施形態の一例としてのマルチノードサーバにおけるＰＳＵの故障発生時の割当可能電力の決定方法を説明するための図である。
【図５】（ａ），（ｂ）は、第１実施形態の一例としてのマルチノードサーバにおける電力手法を説明するためのシーケンス図である。
【図６】（ａ），（ｂ）は、第２実施形態の一例としてのマルチノードサーバにおけるＰＳＵの故障発生時の割当可能電力の決定方法を説明するための図である。
【図７】従来のマルチノードサーバにおける消費電力の遷移を示す図である。
【図８】従来のシャーシマネージャ非搭載のマルチノードサーバにおけるＰＳＵ故障発生時の処理を示すシーケンス図である
【図９】図８に示した従来のシャーシマネージャ非搭載のマルチノードサーバにおける消費電力の遷移を示す図である。
【発明を実施するための形態】
【００２９】
以下、図面を参照して本サーバ装置，電力制御プログラムおよび監視制御装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００３０】
（Ｉ）第１実施形態の説明
（Ａ）構成
図１は第１実施形態の一例としてのマルチノードサーバ１の構成を模式的に示す図、図２はノード１０−１〜１０−４のハードウェアを示す図、図３はＢＭＣ１４のハードウェア構成を示す図である。
【００３１】
マルチノードサーバ１は、筐体２内に複数（図１に示す例では４つ）のノード１０−１〜１０−４を備えるサーバコンピュータ（情報処理装置）である。
【００３２】
なお、以下、ノードを示す符号としては、複数のノードのうち１つを特定する必要があるときには符号１０−１〜１０−４を用いるが、任意のノードを指すときには符号１０を用いる。また、以下、ノード１０−１をノード＃０という場合がある。同様に、以下、ノード１０−２，１０−３，１０−４を、それぞれノード＃１，ノード＃２，ノード＃３という場合がある。
【００３３】
ノード１０は、演算処理の主体となるコンピュータであり、マルチノードサーバ１における構成単位である。マルチノードサーバ１においては、筐体２内に搭載するノード１０の数を増減することで、処理性能を任意に変更することができる。なお、薄板状に形成され、筐体に抜き差し可能に構成されたブレードコンピュータ（ブレードサーバ）もノード１０に含んでもよい。
【００３４】
ＰＳＵ２０−１，２０−２は、筐体２内に備えられた各部に電力供給を行なう電力供給装置である。なお、以下、ＰＳＵを示す符号としては、複数のＰＳＵのうち１つを特定する必要があるときには符号２０−１，２０−２を用いるが、任意のＰＳＵを指すときには符号２０を用いる。また、以下、ＰＳＵ２０−１をＰＳＵ＃０という場合があり、ＰＳＵ２０−２をＰＳＵ＃１という場合がある。
【００３５】
ＰＳＵ２０は、各ノード１０や筐体記憶領域３０，ＦＡＮ等４０に対して電力供給を行なう。本マルチノードサーバ１においては、複数（図１に示す例では２つ）のＰＳＵ２０を備えることで冗長構成を実現している。
【００３６】
また、ＰＳＵ２０は、自身に異常を検知した場合には、通信線１４６を介して各ノード１０のＢＭＣ１４に対して異常の発生および当該異常に関する情報を通知する。例えば、ＰＳＵ２０は、自身の電力供給能力を超えて電力供給を行なう場合には、その旨の通知を各ノード１０に通知する。
【００３７】
ＦＡＮ等４０は、ＰＳＵ２０から供給される電力により動作する電子機器である。例えば、筐体２内に搭載された電子機器であって、この筐体２内に備えられた発熱源を冷却するＦＡＮやＬＥＤ（Light Emitting Diode）等がＦＡＮ等４０に相当する。また、筐体２内に搭載され、複数のノード１０によって共用されるストレージ装置やディスプレイ装置等をＦＡＮ等４０に含めてもよい。
【００３８】
筐体記憶領域３０は、筐体２内に搭載され、各ノード１０のＢＭＣ１４のそれぞれからデータの読み出し（参照）および書き込みが可能な共用の記憶領域である。例えば、シリアル番号などの装置固有の情報やベンダー固有の情報を格納するために一般的に筐体２に搭載されるＦＲＵ（Field Replacement Unit）デバイスの不揮発性メモリやChassisIDPROMを筐体記憶領域３０として用いてもよい。
【００３９】
筐体記憶領域３０は、各ノード１０のＢＭＣ１４によって共用され、この筐体記憶領域３０には、後述の如く、各ノード１０のＢＭＣ１４の電力記録部１０３によって消費電力情報が記録される。
【００４０】
ノード１０は、図２に示すように、それぞれ、ＣＰＵ１１，メモリ１２，記憶装置１３およびＢＭＣ１４を備える情報処理装置である。
【００４１】
記憶装置１３は、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）、ＳＳＤ（Solid State Drive），ストレージクラスメモリ（Storage Class Memory：ＳＣＭ）や、等の記憶装置であって、種々のデータを格納するものである。
【００４２】
メモリ１２はＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含む記憶メモリである。メモリ１２のＲＯＭには、ＯＳ（Operating System）や各種ソフトウェアプログラム，プログラム用のデータ類が書き込まれている。メモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００４３】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、メモリ１２に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００４４】
ＢＭＣ１４は、自身が搭載されたノード（自ノード）１０において主にハードウェアの状態を監視する監視制御装置である。
【００４５】
図３に示すように、ＢＭＣ１４は、ＣＰＵ１４１，メモリ１４２，不揮発性メモリ１４３およびインタフェース（Ｉ／Ｆ：Interface）１４４，１４５を備える。
【００４６】
インタフェース１４４は、通信線１４７を介して筐体記憶領域３０と接続される通信インタフェース装置である。ＢＭＣ１４はこのインタフェース１４４を介して、筐体記憶領域３０に対してデータの書き込みを行ない、また、この筐体記憶領域３０からデータの読み出しを行なう。インタフェース１４４は、例えば、Ｉ２Ｃ（Inter-Integrated Circuit）の規格に基づいて筐体記憶領域３０との間の通信を行なう。
【００４７】
インタフェース１４５は、通信線１４６を介してＰＳＵ２０−１，２０−２と接続される通信インタフェース装置である。ＢＭＣ１４はこのインタフェース１４５を介して、ＰＳＵ２０−１，２０−２との間で通信を行なう。インタフェース１４５は、例えば、Ｉ２Ｃの規格に基づいてＰＳＵ２０との間の通信を行なう。
【００４８】
不揮発性メモリ１４３は、半導体記憶素子を有する記憶装置であって、ノード１０のハードウェアの監視機能を実現する監視制御プログラムや、このプログラムの実行に用いられる種々のデータを格納するものである。この監視制御プログラムには、自ノード１０への供給電力を制御する電力制御プログラムが含まれる。
【００４９】
メモリ１４２は、ＢＭＣ１０の主記憶装置として使用される。メモリ１４２には、ＣＰＵ１４１に実行させるＯＳやアプリケーションプログラムの少なくとも一部が不揮発性メモリ１４３から読み出され、一時的に格納される。また、メモリ１４２には、ＣＰＵ１４１による処理に必要な各種データが格納される。
【００５０】
メモリ１４２上のアプリケーションプログラムは、ＣＰＵ１４１に適宜読み込まれて実行される。また、メモリ１４２は、一次記憶メモリあるいはワーキングメモリとして利用される。
【００５１】
ＣＰＵ１４１は、種々の制御や演算を行なう処理装置であり、メモリ１４２に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００５２】
そして、ＣＰＵ１４１が監視制御プログラムを実行することで、図１に示す電力監視部１０１，電力制御部１０２および電力記録部１０３としての機能が実現される。
【００５３】
なお、これらの電力監視部１０１，電力制御部１０２および電力記録部１０３としての機能を実現するためのプログラム（電力制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００５４】
電力監視部１０１，電力制御部１０２および電力記録部１０３としての機能を実現する際には、内部記憶装置（本実施形態ではＢＭＣ１４のメモリ１４２や不揮発性メモリ１４３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＢＭＣ１４のＣＰＵ１４１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００５５】
電力監視部１０１は、ＰＳＵ２０から筐体２の全体での電力消費量（全体消費電力）を取得する。また、電力監視部１０１は、自ノード１０の電力消費量（消費電力）を取得する。電力監視部１０１は、自ノード１０の消費電力を、自身で求めてもよく、また、ＰＳＵ２０から取得してもよい。
【００５６】
なお、ＢＭＣ１４における自ノード１０の電力消費量の取得は、既知の種々の手法を用いて実現することができ、その説明は省略する。
【００５７】
また、以下、これらの筐体２の全体消費電力および自ノード１０の電力消費量を消費電力情報という場合がある。また、この消費電力情報は、当該マルチノードサーバ１における電力消費状況を示す。すなわち、以下、消費電力情報を電力消費状況という場合がある。
【００５８】
電力記録部１０３は、電力監視部１０１によって取得された消費電力情報（筐体２の消費電力および自ノード１０の消費電力量）を筐体記憶領域３０に記録する。電力記録部１０３は、記録制御部に相当する。
【００５９】
電力記録部１０３は、定期的（例えば、１秒毎）に消費電力情報を筐体記憶領域３０に記録する。
【００６０】
また、電力記録部１０３は、消費電力情報を筐体記憶領域３０に記録する際に、消費電力情報が更新されたことを示す更新判別情報を、消費電力情報とともに筐体記憶領域３０に記録する。更新判別情報は、筐体記憶領域３０において消費電力情報に対応付けて記録される。
【００６１】
更新判別情報としては、例えば、電力記録部１０３が消費電力情報を筐体記憶領域３０に記録した日時を示す更新時刻情報（タイムスタンプ）を含んでもよく、この更新時刻情報は消費電力情報に対応付けて筐体記憶領域３０に記録される。
【００６２】
この更新時刻情報を参照することで、対応する消費電力情報が記録された日時（時刻）を把握することができ、また、消費電力情報が電力記録部１０３により更新されたことを把握することができる。
【００６３】
また、更新判別情報は、筐体記憶領域３０に記録する消費電力情報に基づいて生成するエラー検出情報を含んでもよい。本マルチノードサーバ１においては、エラー検出情報として、誤り検出符号の１種であるチェックサムを用いる例を示す。すなわち、電力記録部１０３は、消費電力情報に基づいてチェックサムを作成する機能を有する。なお、チェックサムの作成は既知の種々の手法で実現することができ、その説明は省略する。このチェックサムは消費電力情報に対応付けて筐体記憶領域３０に記録される。
【００６４】
例えば、筐体記憶領域３０に記録された消費電力情報に基づいてチェックサムを算出し、算出したチェックサムの値を、筐体記憶領域３０に記録されたチェックサムと比較することで、このチェックサムに対応する消費電力情報が更新された値であることを把握することができる。
【００６５】
筐体記憶領域３０の初期値は不定値である。筐体記憶領域３０から読み出したチェックサムの値が、消費電力情報に基づいて算出したチェックサムと不一致である場合には、当該消費電力情報が未更新であり、初期値のままであると判断することができる。
【００６６】
本マルチノードサーバ１においては、各ＢＭＣ１４の電力記録部１０３は、消費電力情報と更新時刻情報とチェックサムとを筐体記憶領域３０に記録する。電力記録部１０３は、筐体記憶領域３０における特定の記憶領域にこれらの消費電力情報と更新時刻情報とチェックサムとを相互に対応付けて記録してもよい。
【００６７】
なお、電力記録部１０３は、自ノード１０が電源投入状態（パワーオン時）にのみ、消費電力情報と更新時刻情報とチェックサムとを筐体記憶領域３０に記録する。
【００６８】
また、電力記録部１０３は、ノード１０の電力消費量として、ＰＳＵ２０等の故障直前の消費電力や故障前の平均の使用電力を消費電力情報として記録してもよい。また、電力記録部１０３は、過去の自ノード１０の使用実績等から予測した今後の電力消費量を消費電力情報として用いてもよい。
【００６９】
消費電力情報および更新判別情報は、筐体記憶領域３０においてノード１０毎に設けられた所定の領域に記録されることが望ましい。
【００７０】
電力制御部１０２は、ＰＳＵ２０の故障等によりＰＳＵ２０による供給可能電力が不足する場合に、筐体記憶領域３０から筐体２の電力消費状況を取得し、残った正常なＰＳＵ（正常電力供給装置）２０から供給される供給可能電力のうち自ノード１０で使用可能な電力を決定する。
【００７１】
なお、このような、残った正常なＰＳＵ２０から供給される供給可能電力のうち自ノード１０で使用可能な電力は、自ノード１０に対して割り当てられる割当電力に相当する。また、残った正常なＰＳＵ２０から供給される供給可能電力のうち自ノード１０で使用可能な電力は、自ノード１０において消費できる消費電力ということもできる。
【００７２】
電力制御部１０２は、決定した自ノード１０への割当電力に相当する電力が供給されるように、ＰＳＵ２０およびＢＭＣ１４の制御を行なう。なお、この決定された割当電力が自ノード１０に供給されるようにする制御は既知であり、その説明は省略する。
【００７３】
図４（ａ），（ｂ）は第１実施形態の一例としてのマルチノードサーバ１におけるＰＳＵ２０の故障発生時の割当可能電力の決定方法を説明するための図であり、図４（ａ）は故障発生前の状態を示し、図４（ｂ）は故障発生後の状態を示す。
【００７４】
図４（ａ）に例示する状態においては、ＰＳＵ＃０，＃１はそれぞれ1000Wの電力を供給可能であり、全体で2000Wが供給可能電力となっている。また、ノード＃０，＃１，＃２，＃３がそれぞれ動作中（パワーオン中）であり、各消費電力がそれぞれ250W，250W，1000W，0Wである。なお、ノード＃３は未使用（パワーオフ中）の状態である。また、ＦＡＮ等４０の消費電力が200Wである。
【００７５】
以下においては、本マルチノードサーバ１に備えられた２つのＰＳＵ２０のうち、一つのＰＳＵ２０が故障して供給電力が不足した例について示す。
【００７６】
図４（ｂ）に例示する状態においては、ＰＳＵ＃１に故障が発生し、これにより、ＰＳＵ＃０により供給される1000Wが故障発生後の全体での供給可能電力となっている。
【００７７】
このような場合に、動作中のノード＃０〜＃２のＢＭＣ１４において、各電力制御部１０２は、先ず、自ノード１０のＣＰＵ１４１をそれぞれ最低レベルのクロックに落とすことで消費電力を抑える。
【００７８】
その後、各電力制御部１０２は、それぞれ以下の（処理１）〜（処理４）に従って自ノード１０の消費電力、すなわち、１ノードあたりの割当電力を算出する。
【００７９】
（処理１）筐体記憶領域３０から、各ノード１０の電力記録部１０３が記録した消費電力を取得する。
【００８０】
（処理２）ノード１０に割当可能な電力を算出する。
【００８１】
本マルチノードサーバ１においては、動作中のノード１０のほか、ＦＡＮ等４０も電力を消費する。
【００８２】
そこで、電力制御部１０２は、ＦＡＮ等４０が消費する電力を、筐体２全体の消費電力から各ノード１０の消費電力の総和を減算することで求める。以下、ＦＡＮ等４０が消費する電力を［その他の消費電力］という場合がある。この［その他の消費電力］の算出は、いずれのＰＳＵ２０においても故障が検出されていない状態（正常動作状態）で予め行なっておくことが望ましい。
【００８３】
１つのＰＳＵ２０（図４に示す例ではＰＳＵ＃１）に故障が発生した場合に、電力制御部１０２は、残ったＰＳＵ２０（図４に示す例ではＰＳＵ＃０）が供給可能な電力のうち、動作中（パワーオン中）のノード１０全体に割当可能な電力を、以下の式（１）により求める。
【００８４】
［割当可能な電力］=［故障後の供給可能電力］−［その他の消費電力］・・・（１）
図４（ａ）に示す例においては、［故障後の供給可能電力］＝ 1000Wであり、［その他の消費電力］＝200Wである。従って、パワーオン中のノード１０全体に割り当て可能な電力は以下のとおりである。
［割当可能な電力］＝ 1000W − 200W ＝ 800W
【００８５】
（処理３）各ノードへの割当電力の計算
電力制御部１０２は、割当可能な電力をパワーオン中のノード１０で分配した値を各ノード１０への割当電力とする。また、ノード１０間における電力配分は、パワーオン中であり、筐体記憶領域３０において消費電力情報が正常に更新されている各ノード１０に対して行なわれ、これらのノード１０の消費電力の割合に基づいて決定する。これにより、
電力制御部１０２は、自ノード１０に対する割当電力を取得する。
【００８６】
すなわち、電力制御部１０２は、割当可能な電力を、故障発生前における各ノードの消費電力に応じて比例配分（案分）することで、各ノードへの供給可能電力を決定する。
【００８７】
このため、電力制御部１０２は、筐体記憶領域３０において消費電力情報が正常に更新された値であるかを判断（判別）する更新判別機能を有する。消費電力情報が正常に更新されていないと判断した場合には、当該消費電力情報に対応するノード１０は正常に動作していないと考えられる。そこで、電力制御部１０２は、当該消費電力情報を処理対象外とし、また、この消費電力情報に対応するノード１０を動作中のノード１０ではないものとして取り扱う。
【００８８】
なお、この筐体記憶領域３０において消費電力情報が正常に更新された値であるかの判別手法については後述する。
【００８９】
図４（ａ），（ｂ）に示す例においては、ノード＃０〜＃２が電力の割当対象（配分対象）であり、ノード＃３は割当対象外となる。
【００９０】
図４（ａ）に示す例においては、パワーオン中のノード＃０〜＃２における１ノードあたりの消費電力の割合（比率）は以下のとおりである。
ノード＃０：ノード＃１：ノード＃２＝250W：250W：1000W＝1：1：4
【００９１】
この比率に基づいて、［割当可能な電力］である800W をパワーオン中のノード＃０〜＃２間で配分すると、以下のとおりとなる。
ノード＃０：ノード＃１：ノード＃２＝133W：133W：533W
電力制御部１０２は、このようにして求めた割当電力に基づき、自ノード１０に対して配分される割当電力を取得する。
【００９２】
（処理４）電力制御部１０２は、自ノード１０のＣＰＵ１４１のスロットリングを徐々に開放し、上述の如く算出した自ノード１０に対する割当電力に到達するまで消費電力を徐々に上昇させる。
【００９３】
次に、電力制御部１０２による、筐体記憶領域３０において消費電力情報が正常に更新された値であるかの判別手法について説明する。
【００９４】
筐体記憶領域３０に対する書き込みは、ノード１０が筐体２に搭載された状態でのみ行なわれる。また筐体記憶領域３０の初期値は不定値である。
【００９５】
電力制御部１０２が、ノード１０の電力制御モードによって正しく記録された消費電力情報以外の情報を用いて上述の手法に従って１ノードあたりの割当電力を算出すると、不正な値が計算に用いられ、間違った計算結果となってしまう。
【００９６】
そのため、本マルチノードサーバ１においては、該当のノード１０に対する消費電力情報が、例えば、筐体２に未搭載のノード１０についての不正値であるのか、筐体２に搭載されたノード１０より更新済みの正規値であるのか判別することが重要である。
【００９７】
例えば、電力制御部１０２は、以下に示す手法（i）〜（iii）のいずれかを用いて、筐体記憶領域３０に記録された更新判別情報に基づいて、各ノード１０がパワーオン中であるかを判断する。
【００９８】
（i）タイムスタンプを用いる手法
電力制御部１０２は、筐体記憶領域３０からの消費電力情報の読み出し時に、この消費電力情報に付加されているタイムスタンプ（更新時刻情報）を読み出す。
【００９９】
電力制御部１０２は、自ノード１０が有する時刻情報（現在時刻）と、消費電力情報に付されたタイムスタンプ（更新時刻情報）とを比較する。この比較の結果、タイムスタンプの時刻と自ノード１０の有する現在時刻とが所定の閾値以上離れている場合に、当該消費電力情報は正常に更新されていない（未更新である）と判断することができる。
【０１００】
例えば、電力記録部１０３が１秒毎に筐体記憶領域３０の消費電力情報を更新する設定となっている状況において、１０秒以上消費電力情報の更新がされていない場合には、当該消費電力情報は正常に更新されていないと判断することができる。
【０１０１】
（ii）チェックサムを用いる手法
電力制御部１０２は、筐体記憶領域３０からの消費電力情報の読み出し時に、この消費電力情報に付加されているチェックサム（更新時刻情報，エラー検出情報）を読み出す。
【０１０２】
電力制御部１０２は、筐体記憶領域３０から読み出した消費電力情報に基づいてチェックサムを作成し、この作成したチェックサムと、筐体記憶領域３０に記録された消費電力情報に付されたチェックサムとを比較する。この比較の結果、自身が作成したチェックサムと、筐体記憶領域３０から読み出したチェックサムとが不一致である場合に、当該消費電力情報は正常に更新されていない（未更新である）と判断することができる。例えば、筐体記憶領域３０から読み出した消費電力情報の値は、不定値である初期値のままであると考えられる。
【０１０３】
（iii）消費電力情報の変化を用いる手法
電力制御部１０２は、筐体記憶領域３０から消費電力情報の読み出しを所定の間隔（例えば、１秒毎）で複数回繰り返して行なう。この消費電力情報の読み出しを所定の時間継続して行なう。
【０１０４】
電力の特性上、消費電力がずっと同じ値を示すことはほぼない。そこで、所定の時間内において、複数回読んだ消費電力情報の値が変化しない場合、すなわち、毎回同じ値を示す場合は、当該消費電力情報は正常に更新されていない（未更新である）と判断することができる。
【０１０５】
なお、これらの手法（i）〜（iii）は、少なくとも２つ以上の手法を併用してもよい。また、例えば、手法（iii）を、手法（i）または手法（ii）を用いることができない場合の代用手段として用いてもよい。例えば、筐体記憶領域３０から消費電力情報だけしか読み出せず、更新判別情報（タイムスタンプ，チェックサム）を読み出すことができない場合に、手法（iii）を用いてもよい。
【０１０６】
電力制御部１０２は、上述した判別手法によって、筐体記憶領域３０の消費電力情報が未更新と判断した場合に、そのノード１０をパワーオフ状態とみなし、割当電力の分配の対象外とする。
【０１０７】
（Ｂ）動作
上述の如く構成された第１実施形態の一例としてのマルチノードサーバ１における電力手法を、図５（ａ），（ｂ）に示すシーケンス図に従って説明する。なお、図５（ａ）は本マルチノードサーバ１における通常時の処理を示し、図５（ｂ）は本マルチノードサーバ１においてＰＳＵ＃１が故障し電力不足が発生した電力不足時の処理を示す。
【０１０８】
また、この図５（ａ），（ｂ）においては、便宜上、マルチノードサーバ１に備えられた複数のノード１０（ＢＭＣ１４）のうち、１つのノード１０（ＢＭＣ１４）について示す。
【０１０９】
先ず、本第１実施形態のマルチノードサーバ１における通常時、すなわち、電力不足が発生していない状態での処理を説明する。
【０１１０】
通常時においては、図５（ａ）に示すように、ノード１０のＢＭＣ１４において、電力監視部１０１は、各ＰＳＵ＃０，＃１から当該マルチノードサーバ１における全体消費電力を取得する（矢印Ｃ１，Ｃ２参照）。また、電力監視部１０１は、自ノード１０の消費電力を取得する。
【０１１１】
電力記録部１０３は、電力監視部１０１から電力監視部１０１が取得した全体消費電力および自ノード１０の消費電力を、消費電力情報として取得する（矢印Ｃ３参照）。そして、電力記録部１０３は、取得した消費電力情報および更新判別情報を筐体記憶領域３０に記録する（矢印Ｃ４参照）。
【０１１２】
以上の処理は、本マルチノードサーバ１において定期的（例えば、１秒毎）に実施される。
【０１１３】
次に、本本第１実施形態のマルチノードサーバ１における電力不足の発生時の処理を説明する。
【０１１４】
本マルチノードサーバ１において、ＰＳＵ２０（図５に示す例ではＰＳＵ＃１）の故障が発生すると、ＰＳＵ＃０が各ノード１０のＢＭＣ１４（電力制御部１０２）に対して、故障および電力不足の発生を通知する（矢印Ｃ５参照）。
【０１１５】
通知を受け取った各ノード１０においては、電力制御部１０２が、自ノードのＣＰＵを最低レベルのクロックに落とし、消費電力を抑える（スロットリング：矢印Ｃ６参照）。
【０１１６】
その後、電力制御部１０２は、筐体記憶領域３０から消費電力情報および更新判別情報を取得する（矢印Ｃ７参照）。すなわち、電力制御部１０２は、筐体記憶領域３０から、各ノード１０の電力記録部１０３が記録した消費電力情報および更新判別情報を取得する
。
【０１１７】
電力制御部１０２は、取得した消費電力情報および更新判別情報を用いて、各ノードへの割当電力の計算を行なう。
【０１１８】
すなわち、電力制御部１０２は、動作中のノード１０全体へ割当可能な電力を求め、この割当可能な電力を、パワーオン中のノード１０に対して、各ノード１０の消費電力の割合に応じて分配することで、各ノード１０への割当電力を決定する（矢印Ｃ８参照）。
【０１１９】
その後、電力制御部１０２は、それぞれ自ノードのＣＰＵのスロットリングを徐々に開放し、自ノード１０への割当電力に到達するまで消費電力を上昇させる（ランプアップ：矢印Ｃ９参照）。
【０１２０】
（Ｃ）効果
このように、第１実施形態の一例としてのマルチノードサーバ１によれば、複数のノード１０への電力供給を管理する管理装置（シャーシマネージャ）を備えることなく、各ノード１０において自律的に消費電力量を制御することができる。また、シャーシマネージャを構成から省略することができるので、製造コストおよび運用コストを低減することができる。
【０１２１】
本マルチノードサーバ１に備えられる各ノード１０のＢＭＣ１４において、電力監視部１０１が取得した筐体２の全体消費電力および自ノード１０の消費電力を示す消費電力情報と更新判別情報とを、電力記録部１０３が筐体記憶領域３０に記録する。
【０１２２】
これにより、各ノード１０についての消費電力情報および更新判別情報を筐体２内の複数のノード１０（ＢＭＣ１４）で共用することができる。
【０１２３】
そして、いずれかのＰＳＵ２０に障害発生した場合に、各ＢＭＣ１４において電力制御部１０２が、自ノードのＣＰＵを最低レベルのクロックに落とし、消費電力を抑えた後、筐体記憶領域３０から取得した消費電力情報および更新判別情報を用いて、各ノード１０への割当電力を決定する。
【０１２４】
この際、電力制御部１０２が、筐体２全体の消費電力からＦＡＮ等４０によるその他の消費電力情報を減算することで、残ったＰＳＵ２０によって供給される電力のうち、動作中の複数のノード１０に割当可能な電力を容易に求めることができる。
【０１２５】
そして、電力制御部１０２が、動作中の複数のノード１０に割当可能な電力を、パワーオン中のノード１０に対して、各ノード１０の正常動作時の消費電力の割合に応じて分配することで、各ノード１０への割当電力を決定する。これにより、マルチノードサーバ１における複数のノード１０に対して、各ノード１０の稼働状況に応じた電力を配分することができ、効率的な電力配分を行なうことができる。
【０１２６】
その後、電力制御部１０２は、それぞれ自ノードのＣＰＵのスロットリングを徐々に開放し、自ノード１０への割当電力に到達するまで供給電力を上昇させて動作させる。
【０１２７】
このように電力制御部１０２は、自ノード１０に対して、当該自ノード１０への割当電力を超えない範囲で電力供給を行なうことで、残ったＰＳＵ２０からに過負荷を与えることなく、安定した電力供給を行なうことができる。
【０１２８】
（ＩＩ）第２実施形態の説明
上述した第１実施形態のマルチノードサーバ１においては、電力制御部１０２は、ＰＳＵ２０の故障前における複数のノード１０間での消費電力比率に基づいて、各ノード１０への割当電力を計算している。この場合に、ＰＳＵ２０の故障前にアイドル（IDLE）中のノード１０があった場合、ＰＳＵ２０の故障後に割り当てられる電力はそのノード１０の動作可能電力を下回るおそれがある。
【０１２９】
そこで、本第２実施形態の一例としてのマルチノードサーバ１においては、各ノード１０の必要最低消費電力を用いて、いずれかのＰＳＵ２０に障害発生した場合の各ノード１０への電力供給量が各ノード１０の必要最低消費電力を下回ることがないように制御する。
【０１３０】
すなわち、各ノード１０は必要最低電力以下では動作できないため、電力制御部１０２は、各ノード１０への割当電力が当該ノード１０の必要最低消費電力を下回らないように必要最低電力を各ノード１０に確保する。
【０１３１】
具体的には本第２実施形態のマルチノードサーバ１においては、各ノード１０のＢＭＣ１４において電力記録部１０３は、消費電力情報と更新判別情報に加えて、自ノード１０の必要最低電力を筐体記憶領域３０に書き込む。
【０１３２】
なお、このノード１０の必要最低電力は、例えば、スロットリング時における消費電力を用いてもよい。また、ノード１０の必要最低電力を、当該マルチノードサーバ１を構成する各構成部品の必要最低消費電力を加算することで求めてもよく、既知の種々の手法を用いて得ることができる。
【０１３３】
また、電力制御部１０２は、各ノード１０への割当電力の計算を行なう際に、各ノード１０の必要最低消費電力の総計（以下、ノード必要最低消費電力総計）を求め、パワーオン中のノード１０に割り当て可能な電力からこのノード必要最低消費電力総計を減算した電力量を、比率分配可能な消費電力として算出する。
【０１３４】
そして、電力制御部１０２は、この比率分配可能な消費電力を、パワーオン中のノード１０に対して、各ノード１０の消費電力の割合に応じて分配することで、各ノード１０への割当電力を決定する。
【０１３５】
なお、本変形例のマルチノードサーバ１は、以下に示す電力監視部１０１，電力制御部１０２および電力記録部１０３による各処理以外の部分については、前述した一実施形態のマルチノードサーバ１と同様に構成されている。
【０１３６】
図６（ａ），（ｂ）は第２実施形態の一例としてのマルチノードサーバ１におけるＰＳＵ２０の故障発生時の割当可能電力の決定方法を説明するための図であり、図６（ａ）は故障発生前の状態を示し、図６（ｂ）は故障発生後の状態を示す。
【０１３７】
図６（ａ）に例示する状態においては、ＰＳＵ＃０，＃１はそれぞれ1000Wの電力を供給可能であり、全体で2000Wが供給可能電力となっている。また、ノード＃０，＃１，＃２，＃３がそれぞれ動作中（パワーオン中）であり、各消費電力がそれぞれ250W，250W，1000W，0Wである。なお、ノード＃３は未使用（パワーオフ中）の状態である。また、ＦＡＮ等４０の消費電力が200Wである。
【０１３８】
また、ノード＃０，＃１，＃２，＃３の各必要最低消費電力がそれぞれ150W，150W，300W，0Wである。なお、ノード＃３は使用しないものとする。
【０１３９】
以下においては、本マルチノードサーバ１に備えられた２つのＰＳＵ２０のうち、一つのＰＳＵ２０が故障して供給電力が不足した例について示す。
【０１４０】
図６（ｂ）に例示する状態においては、ＰＳＵ＃１に故障が発生し、これにより、ＰＳＵ＃０により供給される1000Wが故障発生後の全体での供給可能電力となっている。
【０１４１】
このような場合に、動作中のノード＃０〜＃２のＢＭＣ１４において、各電力制御部１０２は、先ず、自ノード１０のＣＰＵ１４１をそれぞれ最低レベルのクロックに落とすことで消費電力を抑える。
【０１４２】
その後、各電力制御部１０２は、それぞれ以下の（処理１１）〜（処理１６）に従って自ノード１０の消費電力、すなわち、１ノードあたりの割当電力を算出する。
【０１４３】
（処理１１）筐体記憶領域３０から、各ノード１０の電力記録部１０３が記録した消費電力および必要最低消費電力を取得する。
【０１４４】
（処理１２）ノード１０に割当可能な電力を算出する。
【０１４５】
電力制御部１０２は、ＦＡＮ等４０が消費する電力（その他の消費電力）を、筐体２全体の消費電力から各ノード１０の消費電力の総和を減算することで求める。
【０１４６】
１つのＰＳＵ２０（図６に示す例ではＰＳＵ＃１）に故障が発生した場合に、電力制御部１０２は、残ったＰＳＵ２０（図６に示す例ではＰＳＵ＃０）が供給可能な電力のうち、動作中（パワーオン中）のノード１０全体に割当可能な電力を、以下の式（１）により求める。
［割当可能な電力］=［故障後の供給可能電力］−［その他の消費電力］・・・（１）
【０１４７】
図６（ａ）に示す例においては、［故障後の供給可能電力］＝ 1000Wであり、［その他の消費電力］＝200Wである。従って、パワーオン中のノード１０に割り当て可能な電力は以下のとおりである。
［割当可能な電力］＝ 1000W − 200W ＝ 800W
【０１４８】
（処理１３）ノード必要最低消費電力総計の計算
電力制御部１０２は、各ノード１０の必要最低消費電力を合計することでノード必要最低消費電力総計を算出する。
【０１４９】
図６（ａ）に示す例においては、ノード＃０，＃１，＃２，＃３の各必要最低消費電力がそれぞれ150W，150W，300W，0Wであるので、ノード必要最低消費電力総計は以下の式により求められる。
［ノード必要最低消費電力総計］＝ 150W ＋ 150W ＋ 300W ＝ 600W
【０１５０】
（処理１４）ノード１０に比率分配可能な電力を算出する。
【０１５１】
電力制御部１０２は、［割当可能な電力］から［ノード必要最低消費電力総計］を減算することで動作中（パワーオン中）のノード１０全体に分配可能な電力（比率分配可能な電力：分配対象電力）を算出する。
【０１５２】
図６（ａ）に示す例においては、比率分配可能な電力は以下の式（２）により求められる。
［比率分配可能な電力］＝［割当可能な電力］−［ノード必要最低消費電力総計］
・・（２）
＝800W − 600W  ＝ 200W
【０１５３】
（処理１５）比率分配可能な電力の分配量の計算
電力制御部１０２は、上述の如く求めた比率分配可能な電力を、パワーオン中であり、筐体記憶領域３０において消費電力情報が正常に更新されている各ノード１０に対して分配するための、各ノード１０に対する分配量を計算する。この分配量の計算は、パワーオン中であり、筐体記憶領域３０において消費電力情報が正常に更新されているノード１０の消費電力の割合に基づいて決定する。
【０１５４】
図６（ａ），（ｂ）に示す例においては、ノード＃０〜＃２が電力の割当対象（配分対象）であり、ノード＃３は割当対象外となる。
【０１５５】
図６（ａ）に示す例においては、パワーオン中のノード＃０〜＃２における１ノードあたりの割当電力の割合（比率）は以下のとおりである。
【０１５６】
ノード＃０：ノード＃１：ノード＃２＝250W：250W：1000W＝1：1：4
この比率に基づいて、［比率分配可能な電力］である200W をパワーオン中のノード＃０〜＃２間で配分することで、各ノード１０への分配電力を求める。
【０１５７】
すなわち、電力制御部１０２は、比例分配可能な電力を、故障前における各ノードの消費電力に応じて比例配分（案分）することで決定する。各ノード１０への分配電力は以下のとおりとなる。
ノード＃０：ノード＃１：ノード＃２＝33W：33W：133W
【０１５８】
（処理１６）各ノード１０への割当電力の計算
電力制御部１０２は、各ノード１０に対して求めた分配電力を、各ノード１０の必要最低消費電力に加算することで、各ノード１０への割当電力を算出する。
【０１５９】
すなわち、前述の如く、ノード＃０，＃１、＃２の各必要最低消費電力がそれぞれ150W，150W，300Wであるので、これらに前述の如く求めた分配電力を加算することで、各ノード１０への割当電力は、以下のように求められる。
ノード＃０：150W ＋33W ＝ 183W
ノード＃１：150W ＋33W ＝ 183W
ノード＃２：300W ＋133W ＝ 433W
ノード＃３：0W
【０１６０】
電力制御部１０２は、このようにして求めた割当電力に基づき、自ノード１０に対して配分される割当電力を取得する。
【０１６１】
このように、本発明の第２実施形態としてのマルチノードサーバ１によれば、上述した第１実施形態と同様の作用効果を得ることができる他、一部のＰＳＵ２０に故障が生じた場合であっても、各ノード１０への割当電力が当該ノード１０の必要最低消費電力を下回ることがないので、各ノード１０をより安定して動作させることができる。
【０１６２】
（ＩＩＩ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１６３】
例えば、上述した各実施形態においては、マルチノードサーバ１に２つのＰＳＵ２０を備えた例を示しているが、これに限定されるものではなく、３つ以上のＰＳＵ２０を備えてもよい。
【０１６４】
このように３つ以上のＰＳＵ２０が備えられ、その一部のＰＳＵ２０に故障等が生じた場合には、各ノード１０の電力制御部１０２は、残ったＰＳＵ２０の供給可能電力の合計を、動作中のノード１０に配分するよう割当電力を求める。
【０１６５】
また、上述した各実施形態においては、マルチノードサーバ１に４つのノード１０を備えた例を示しているが、これにされるものではなく、３つ以下または５つ以上のノード１０を備えてもよい。
【０１６６】
さらに、上述した各実施形態においては、更新判別情報として、筐体記憶領域３０に記録する消費電力情報に基づいて生成するチェックサムを用いる例を示しているが、これに限定されるものではない。すなわち、エラー検出情報としてチェックサム以外の情報を用いてもよい。例えば、更新判別情報として消費電力情報にハッシュ関数を適用して算出するハッシュ値を用いてもよく、種々変形して実施することができる。
【０１６７】
なお、例えば、電力記録部１０３が筐体記憶領域３０に消費電力情報等を記録する前にＰＳＵ２０に故障が生じた場合には、ＢＭＣ１４がスロットリングにより自ノード１０のＣＰＵ１１のクロックを低下させて消費電力を低減させた後、消費電力を徐々に上昇させるランプアップを行なう。
【０１６８】
そして、このランプアップの過程において、電力記録部１０３が消費電力情報や更新判別情報等を筐体記憶領域３０に格納する。その後、ＰＳＵ２０より供給電力異常が通知された場合に、この筐体記憶領域３０に格納された消費電力情報や更新判別情報を用いることで、上述した各実施形態の制御を実現することができるのである。
【０１６９】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１７０】
（ＩＶ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１７１】
（付記１）
複数のノードと、
電力を供給する複数の電力供給装置と、
前記複数のノードのそれぞれから読み書き可能な共用の記憶領域とを備え、
前記複数のノードのそれぞれが、
自ノードの消費電力情報を前記記憶領域に記憶する記録制御部と、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する制御部と
を備えることを特徴とする、サーバ装置。
【０１７２】
（付記２）
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力を、動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することで、前記ノードへの供給電力を決定する
ことを特徴とする付記１記載のサーバ装置。
【０１７３】
（付記３）
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力から動作中の前記ノードの各必要最低消費電力の総和を減算して求める分配対象電力を、前記動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することでノード毎の分配電力を求め、前記分配電力を、各ノードの必要最低消費電力に加算することで、前記ノードへの供給電力を決定する
ことを特徴とする、付記１記載のサーバ装置。
【０１７４】
（付記４）
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記記録時刻を示す時刻情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出した前記時刻情報の示す値と現在時刻との時間差が閾値以上である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記２または３記載のサーバ装置。
【０１７５】
（付記５）
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記消費電力情報に基づいて作成したエラー検出情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出したエラー検出情報と、前記記憶領域から読み出した前記消費電力情報に基づいて作成したエラー検出情報とが不一致である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記２〜４のいずれか１項に記載のサーバ装置。
【０１７６】
（付記６）
前記制御部が、
前記記録領域から前記時刻情報を所定間隔で繰り返し読み出し、この読み出した前記時刻情報の値に変化がない場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記２〜５のいずれか１項に記載のサーバ装置。
【０１７７】
（付記７）
複数のノードと、電力を供給する複数の電力供給装置とを備えたサーバシステムにおいて、前記複数のノードに備えられたプロセッサに、
自ノードの消費電力情報を、前記複数のノードのそれぞれから読み書き可能な共用の記憶領域に記憶し、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する
処理を実行させる、電力制御プログラム。
【０１７８】
（付記８）
前記正常電力供給装置から供給可能な供給可能電力を、動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することで、前記ノードへの供給電力を決定する
処理を前記プロセッサに実行させる付記７記載の電力制御プログラム。
【０１７９】
（付記９）
前記正常電力供給装置から供給可能な供給可能電力から動作中の前記ノードの各必要最低消費電力の総和を減算して求める分配対象電力を、前記動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することでノード毎の分配電力を求め、前記分配電力を、各ノードの必要最低消費電力に加算することで、前記ノードへの供給電力を決定する
処理を前記プロセッサに実行させる付記７記載の電力制御プログラム。
【０１８０】
（付記１０）
前記消費電力情報を前記記録領域に記録する際に、前記記録時刻を示す時刻情報を前記記録領域に記録させ、
前記記録領域から読み出した前記時刻情報の示す値と現在時刻との時間差が閾値以上である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
処理を前記プロセッサに実行させる、付記８または９記載の電力制御プログラム。
【０１８１】
（付記１１）
前記消費電力情報を前記記録領域に記録する際に、前記消費電力情報に基づいて作成したエラー検出情報を前記記録領域に記録させ、
前記記録領域から読み出したエラー検出情報と、前記記憶領域から読み出した前記消費電力情報に基づいて作成したエラー検出情報とが不一致である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
処理を前記プロセッサに実行させる、付記８〜１０のいずれか１項に記載の電力制御プログラム。
【０１８２】
（付記１２）
前記記録領域から前記時刻情報を所定間隔で繰り返し読み出し、この読み出した前記時刻情報の値に変化がない場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
処理を前記プロセッサに実行させる、付記８〜１１のいずれか１項に記載の電力制御プログラム。
【０１８３】
（付記１３）
複数のノードと、電力を供給する複数の電力供給装置とを備えたサーバシステムにおいて、前記複数のノードのそれぞれに備えられる監視制御装置であって、
自ノードの消費電力情報を前記複数のノードのそれぞれから読み書き可能な共用の記憶領域に記憶する記録制御部と、
前記複数の電力供給装置のうち一部の電力供給装置に異常が検出された場合に、前記記憶領域から前記消費電力情報を読み出し、当該消費電力情報に基づいて、前記複数の電力供給装置のうち異常が検出されていない正常電力供給装置から自ノードへの供給電力を制御する制御部と
を備えることを特徴とする、監視制御装置。
【０１８４】
（付記１４）
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力を、動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することで、前記ノードへの供給電力を決定する
ことを特徴とする付記１３記載の監視制御装置。
【０１８５】
（付記１５）
前記制御部が、
前記正常電力供給装置から供給可能な供給可能電力から動作中の前記ノードの各必要最低消費電力の総和を減算して求める分配対象電力を、前記動作中の前記ノードの消費電力の割合に応じて動作中のノードに配分することでノード毎の分配電力を求め、前記分配電力を、各ノードの必要最低消費電力に加算することで、前記ノードへの供給電力を決定する
ことを特徴とする、付記１３記載の監視制御装置。
【０１８６】
（付記１６）
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記記録時刻を示す時刻情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出した前記時刻情報の示す値と現在時刻との時間差が閾値以上である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記１４または１５記載の監視制御装置。
【０１８７】
（付記１７）
前記記録制御部が、
前記消費電力情報を前記記録領域に記録する際に、前記消費電力情報に基づいて作成したエラー検出情報を前記記録領域に記録し、
前記制御部が、
前記記録領域から読み出したエラー検出情報と、前記記憶領域から読み出した前記消費電力情報に基づいて作成したエラー検出情報とが不一致である場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記１４〜１６のいずれか１項に記載の監視制御装置。
【０１８８】
（付記１８）
前記制御部が、
前記記録領域から前記時刻情報を所定間隔で繰り返し読み出し、この読み出した前記時刻情報の値に変化がない場合に、前記消費電力情報に対応するノードを動作中のノードではないものとして取り扱う
ことを特徴とする、付記１４〜１７のいずれか１項に記載の監視制御装置。
【符号の説明】
【０１８９】
１    マルチノードサーバ
２    筐体
１０−１〜１０−４，１０    ノード
１１，１４１    ＣＰＵ
１２，１４２    メモリ
１３    記憶装置
１４    ＢＭＣ
２０−１，２０−２，２０    ＰＳＵ
３０    筐体記憶領域
４０    ＦＡＮ等
１０１    電力監視部
１０２    電力制御部
１０３    電力記録部
１４３    不揮発性メモリ
１４４，１４５    インタフェース
１４６，１４７    通信線
【図１】
2020008971.tif 000003
【図２】
2020008971.tif 000004
【図３】
2020008971.tif 000005
【図４】
2020008971.tif 000006
【図５】
2020008971.tif 000007
【図６】
2020008971.tif 000008
【図７】
2020008971.tif 000009
【図８】
2020008971.tif 000010
【図９】
2020008971.tif 000011