(57)【要約】【課題】筐体内に複数のＣＰＵブレード装置を備えたサーバシステムにおいて、新たな管理装置を設けることなしに、各々のＣＰＵブレード装置の電力供給制御を自動的に行う。【解決手段】複数のＣＰＵブレード装置のＢＭＣのいずれか１つに、消費電力制御部を置く。各々のＣＰＵブレード装置のＢＭＣは、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として消費電力制御部に送信する。消費電力制御部は、各々のＢＭＣより、ＣＰＵ負荷情報を取得する。消費電力制御部は、取得した各々のＣＰＵ負荷情報に基づいて、各々のＣＰＵブレード装置へ供給する電力比率を算出し、電力比率と総電力量から、各々の供給電力量を算出し、各々のＢＭＣに送信する。各々のＢＭＣは、取得した供給電力量に対応したＣＰＵ動作レベルを算出し、ＣＰＵに設定する。【選択図】図１
2012173926.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵブレード装置と、前記複数のＣＰＵブレード装置に電力供給を行う電源部と、を１つの筐体に備えたサーバシステムであって、
前記複数のＣＰＵブレード装置は、各々、ベースボード管理コントローラを有し、
前記複数のベースボード管理コントローラのいずれか１つが、消費電力制御部を備え、
前記複数のベースボード管理コントローラは、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として前記消費電力制御部に送信し、
前記消費電力制御部は、各々の前記ＣＰＵ負荷情報を取得し、各々の前記ＣＰＵ負荷情報に基づいて、各々の前記ＣＰＵブレード装置の電力比率を算出し、
各々の前記電力比率と総電力量から、各々の前記ＣＰＵブレード装置への供給電力量を算出して、各々の前記ベースボード管理コントローラに送信し、
前記複数のベースボード管理コントローラは、各々、前記供給電力量を取得し、前記供給電力量よりＣＰＵ動作レベルを算出し、前記ＣＰＵブレード装置のＣＰＵに設定すること、
を特徴とするサーバシステム。
【請求項２】
前記複数のベースボード管理コントローラにおいて、計測した所定時間内のＣＰＵ負荷の平均値を前記ＣＰＵ負荷情報とすることを特徴とする請求項１に記載のサーバシステム。
【請求項３】
前記消費電力制御部において、各々の前記ＣＰＵ負荷情報を、前記複数のＣＰＵブレード装置毎に、計測した時間帯と対応付けて、統計データとして蓄積し、
前記消費電力制御部が取得した最新のＣＰＵ負荷情報と、前記最新のＣＰＵ負荷情報と同じ時間帯の前記統計データのＣＰＵ負荷情報に基づいて、各々の前記ＣＰＵブレード装置の電力比率を算出することを特徴とする請求項１または２に記載のサーバシステム。
【請求項４】
前記最新のＣＰＵ負荷情報の値が、前記同じ時間帯の統計データのＣＰＵ負荷情報の平均値に対して、所定範囲内である場合には、前記電力比率の算出に使用するＣＰＵ負荷情報を、前記最新のＣＰＵ負荷情報とし、
それ以外の場合には、前記電力比率の算出に使用するＣＰＵ負荷情報を、前記同じ時間帯の統計データのＣＰＵ負荷情報の平均値とすることを特徴とする請求項３に記載のサーバシステム。
【請求項５】
前記総電力量は、前記電源部の供給可能総電力量、及び、全ての前記ＣＰＵブレード装置のＣＰＵ負荷情報を合計したＣＰＵ総負荷に基づいて算出され、
前記ＣＰＵ総負荷が所定値以上の場合は、前記総電力量は、前記供給可能総電力量とし、
それ以外の場合には、前記総電力量は、前記供給可能総電力量より小さくすることを特徴とする請求項１乃至４のいずれか１項に記載のサーバシステム。
【請求項６】
前記消費電力制御部は、スロット番号が最小の前記ＣＰＵブレード装置のベースボード管理コントローラの内部に配されることを特徴とする請求項１乃至５のいずれか１項に記載のサーバシステム。
【請求項７】
前記消費電力制御部を持たないベースボード管理コントローラと、前記消費電力制御部間の前記ＣＰＵ負荷情報、及び、前記供給電力量の送信は、前記筐体内のバスを介して行われることを特徴とする請求項１乃至６のいずれか１項に記載のサーバシステム。
【請求項８】
１つの筐体に備えられた複数のＣＰＵブレード装置に、電力供給を行う電力供給制御方法であって、
前記複数のＣＰＵブレード装置は、各々、ベースボード管理コントローラを有し、
前記複数のベースボード管理コントローラのいずれか１つを、消費電力制御部に設定し、
前記複数のベースボード管理コントローラが、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として前記消費電力制御部に送信するステップと、
前記消費電力制御部が、各々の前記ＣＰＵブレード装置の前記ＣＰＵ負荷情報を取得するステップと、
前記消費電力制御部が、取得した各々の前記ＣＰＵ負荷情報に基づいて、各々の前記ＣＰＵブレード装置の電力比率を算出するステップと、
前記消費電力制御部が、各々の前記電力比率と総電力量から、各々の前記ＣＰＵブレード装置への供給電力量を算出するステップと、
前記消費電力制御部が、各々の前記供給電力量を、前記消費電力制御部から各々の前記ベースボード管理コントローラに送信するステップと、
前記複数のベースボード管理コントローラが、各々、前記供給電力量を取得し、前記供給電力量よりＣＰＵ動作レベルを算出するステップと、
前記複数のベースボード管理コントローラが、各々、前記ＣＰＵ動作レベルを、前記ＣＰＵブレード装置のＣＰＵに設定するステップと、
を含むことを特徴とする電力供給制御方法。
【請求項９】
前記消費電力制御部において、各々の前記ＣＰＵ負荷情報を、前記複数のＣＰＵブレード装置毎に、計測した時間帯と対応付けて、統計データとして蓄積するステップをさらに含み、
前記電力比率を算出するステップは、
取得した最新の前記ＣＰＵ負荷情報の値が、同じ時間帯の前記統計データの前記ＣＰＵ負荷情報の平均値に対して、所定範囲内である場合には、前記電力比率の算出に使用する前記ＣＰＵ負荷情報を、前記最新のＣＰＵ負荷情報とし、
それ以外の場合には、前記電力比率の算出に使用するＣＰＵ負荷情報を、前記同じ時間帯の統計データのＣＰＵ負荷情報の平均値とすることを特徴とする請求項８に記載の電力供給制御方法。
【請求項１０】
供給可能総電力量、及び、全ての前記ＣＰＵブレード装置の前記ＣＰＵ負荷情報を合計したＣＰＵ総負荷に基づいて、前記総電力量を算出するステップをさらに含み、
前記総電力量を算出するステップにおいて、
前記ＣＰＵ総負荷が所定値以上の場合は、前記総電力量は、前記供給可能総電力量とし、
それ以外の場合には、前記総電力量は、前記供給可能総電力量より小さくすることを特徴とする請求項８または９に記載の電力供給制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステム、及びそのサーバシステムにおける電力供給制御方法に関する。特に、本発明は、筐体内に複数のＣＰＵブレード装置を備えたサーバシステム、及びそのサーバシステムにおける電力供給制御方法に関する。
【背景技術】
【０００２】
近年、１枚の基板に、メモリやハードディスク、ＣＰＵ等、コンピュータとして必要な要素を実装し、必要な枚数の基板を接続して、１つの筐体内に構成するブレードサーバと呼ばれるサーバ専用機が、使用されている。ここで、本明細書では、以降、サーバ専用機における各々の基板を、「ＣＰＵブレード装置」と呼び、サーバ専用機を、「サーバシステム」と呼ぶことにする。そのサーバシステムの筐体にはＣＰＵブレード装置の差込口が並び、また、各々のＣＰＵブレード装置に電力供給を行う電源部、放熱ファンなどが用意されている。
【０００３】
このような複数のＣＰＵブレード装置を筐体に備えたサーバシステムにおいて、ＣＰＵ性能の向上に伴い、必要とされる消費電力が増える傾向にある。しかしながら、単純に、電源部の電源容量を大きくするだけでは、コストアップになってしまい、望ましくない。また、近年の地球温暖化対策の観点からも、電力を効率よく利用し、且つ、無駄な電力を使用しないようにするシステムが望まれている。
【０００４】
一般に、電力管理を行う仕組みとしては、パソコンで用いられているＡＰＭ（Ａｄｖａｎｃｅｄ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）やＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）が知られている。一方、ブレードサーバにおいては、「ＥＭカード」などの専用のハードウェアにより、電力管理を行う方法が知られている。
【０００５】
また、特許文献１には、社内におけるＯＡ機器、画像形成装置、空調装置、照明装置等を社内ＬＡＮに接続し、全体の消費電力を管理制御するネットワークシステムが開示されている。そのシステムでは、全体の消費電力を予測し、その予測電力量と供給可能な最大電力量を比較し、予測電力量が最大電力量より大きいと判断されると、各々の装置の使用条件を変更したシミュレーションを行うことにより、消費電力が最大電力量を超えないように装置の使用条件を設定する方法が行われている。
【０００６】
また、特許文献２には、サーバがクライアントから要求された処理を行い、結果をクライアントに返すシステムにおいて、サーバの無駄な電力消費を抑えるために管理装置を設けて、管理装置がクライアントとサーバ間の通信を監視し、通信が行われていないと判断した場合には、サーバの動作モードを消費電力が小さい省電力モードに切り替えるように指示する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１５９２９８号公報
【特許文献２】特開２００８−３０５２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以下の分析は、本発明により与えられる。
【０００９】
しかしながら、特許文献１に記載された方法では、ＬＡＮに接続された各装置を制御する電力管理装置が必要になるため、システムが大掛かりになり、コストアップになってしまうという問題がある。
【００１０】
特許文献２に記載された方法では、サーバの電力を制御するのに、別の管理装置（管理サーバ）が必要になるため、システムが大掛かりになり、コストアップになってしまうという問題がある。
【００１１】
上述したように、特許文献１、２に開示された方法では、電力供給制御を行うのに、新たな管理装置が必要になり、コストアップになるという問題がある。
【００１２】
また、従来のサーバシステムにおいて、適切な供給電力設定やＣＰＵ動作レベルの設定を実現するためには、サーバシステムの管理者が事前に各ＣＰＵブレード装置の消費電力の計測を行い、その結果を解析して、傾向と分析を行う必要があり、システム管理者の負担になるという問題がある。
【００１３】
また、一度、供給電力設定やＣＰＵ動作レベルを制限する設定を行った場合、時間帯によって、処理が集中する場合に対しても、供給電力を制限した設定で運用することになってしまい、サーバシステムの最大性能を発揮させることができなくなるという問題が生じる。
【００１４】
そこで、本発明の目的は、新たに管理装置を設けることなしに、複数のＣＰＵブレード装置を有するサーバシステムの電力供給制御を自動的に行うことが可能なサーバシステムを提供することである。
【課題を解決するための手段】
【００１５】
本発明の第１の視点によるサーバシステムは、複数のＣＰＵブレード装置と、前記複数のＣＰＵブレード装置に電力供給を行う電源部と、を１つの筐体に備えたサーバシステムであって、前記複数のＣＰＵブレード装置は、各々、ベースボード管理コントローラを有し、前記複数のベースボード管理コントローラのいずれか１つが、消費電力制御部を備え、前記複数のベースボード管理コントローラは、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として前記消費電力制御部に送信し、前記消費電力制御部は、各々の前記ＣＰＵ負荷情報を取得し、各々の前記ＣＰＵ負荷情報に基づいて、各々の前記ＣＰＵブレード装置の電力比率を算出し、各々の前記電力比率と総電力量から、各々の前記ＣＰＵブレード装置への供給電力量を算出して、各々の前記ベースボード管理コントローラに送信し、前記複数のベースボード管理コントローラは、各々、前記供給電力量を取得し、前記供給電力量よりＣＰＵ動作レベルを算出し、前記ＣＰＵブレード装置のＣＰＵに設定する。
【００１６】
本発明の第２の視点による電力供給制御方法は、１つの筐体に備えられた複数のＣＰＵブレード装置に、電力供給を行う電力供給制御方法であって、前記複数のＣＰＵブレード装置は、各々、ベースボード管理コントローラを有し、前記複数のベースボード管理コントローラのいずれか１つを、消費電力制御部に設定し、前記複数のベースボード管理コントローラが、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として前記消費電力制御部に送信するステップと、前記消費電力制御部が、各々の前記ＣＰＵブレード装置の前記ＣＰＵ負荷情報を取得するステップと、前記消費電力制御部が、取得した各々の前記ＣＰＵ負荷情報に基づいて、各々の前記ＣＰＵブレード装置の電力比率を算出するステップと、前記消費電力制御部が、各々の前記電力比率と総電力量から、各々の前記ＣＰＵブレード装置への供給電力量を算出するステップと、前記消費電力制御部が、各々の前記供給電力量を、前記消費電力制御部から各々の前記ベースボード管理コントローラに送信するステップと、前記複数のベースボード管理コントローラが、各々、前記供給電力量を取得し、前記供給電力量よりＣＰＵ動作レベルを算出するステップと、前記複数のベースボード管理コントローラが、各々、前記ＣＰＵ動作レベルを、前記ＣＰＵブレード装置のＣＰＵに設定するステップと、を含む。
【発明の効果】
【００１７】
本発明のサーバシステムによれば、複数のＣＰＵブレード装置のベースボード管理コントローラのいずれか１つを、消費電力制御部に設定している。そのため、新たに電力管理のための管理装置を設ける必要がない。また、消費電力制御部が、各々のＣＰＵブレード装置のＣＰＵ負荷情報に基づいて、各々のＣＰＵブレード装置への供給電力量を自動で算出するようにしたから、複数のＣＰＵブレード装置の電力供給制御を自動的に行うことが可能なサーバシステムを提供することができる。
【００１８】
本発明の電力供給制御方法によれば、消費電力制御部が、各々のＣＰＵブレード装置のＣＰＵ負荷情報に基づいて、各々のＣＰＵブレード装置への供給電力量を自動で算出するようにしたから、複数のＣＰＵブレード装置の電力供給制御を自動的に行うことが可能な電力供給制御方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例１に係るサーバシステムのブロック図である。
【図２】図１における消費電力制御部を有するＢＭＣ（ベースボード管理コントローラ）の詳細を示すブロック図である。
【図３】図１における消費電力制御部を持たないＢＭＣ（ベースボード管理コントローラ）の詳細を示すブロック図である。
【図４】本発明の実施例１に係る電力供給制御方法を示すフローチャートである。
【図５】本発明の実施例１に係るサーバシステムにおけるＣＰＵブレード装置のＣＰＵ負荷情報の一例である。
【図６】本発明の実施例１の消費電力−ＣＰＵ動作レベル対応テーブルの一例である。
【図７】本発明の実施例１において、ＣＰＵブレード装置の構成の変更があった場合に行われる消費電力制御部の設定を示すフローチャートである。
【図８】本発明の実施例１の総電力量補正テーブルの一例である。
【発明を実施するための形態】
【００２０】
本発明の実施形態について、必要に応じて図面を参照して説明する。なお、実施形態の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【００２１】
本発明の第１の実施形態によるサーバシステム１は、図１に示すように、複数のＣＰＵブレード装置（１２、２２、３０）と、複数のＣＰＵブレード装置（１２、２２、３０）に電力供給を行う電源部４０と、を１つの筐体１０に備えたサーバシステムであって、複数のＣＰＵブレード装置（１２、２２、３０）は、各々、ベースボード管理コントローラ（１６、２６、３４）を有し、複数のベースボード管理コントローラ（１６、２６、３４）のいずれか１つが、消費電力制御部１８を備え、複数のベースボード管理コントローラ（１６、２６、３４）は、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として消費電力制御部１８に送信し、消費電力制御部１８は、各々のＣＰＵ負荷情報を取得し、各々のＣＰＵ負荷情報に基づいて、各々のＣＰＵブレード装置（１２、２２、３０）の電力比率を算出し、各々の電力比率と総電力量から、各々のＣＰＵブレード装置（１２、２２、３０）への供給電力量を算出して、各々のベースボード管理コントローラ（１６、２６、３４）に送信し、複数のベースボード管理コントローラ（１６、２６、３４）は、各々、供給電力量を取得し、供給電力量よりＣＰＵ動作レベルを算出し、ＣＰＵブレード装置（１２、２２、３０）のＣＰＵ（１４、２４、３２）に設定する。
【００２２】
本発明の第２の実施形態による電力供給制御方法は、図１、図４に示すように、１つの筐体１０に備えられた複数のＣＰＵブレード装置（１２、２２、３０）に、電力供給を行う電力供給制御方法であって、複数のＣＰＵブレード装置（１２、２２、３０）は、各々、ベースボード管理コントローラ（１６、２６、３４）を有し、複数のベースボード管理コントローラ（１６、２６、３４）のいずれか１つを、消費電力制御部１８に設定し、複数のベースボード管理コントローラ（１６、２６、３４）が、各々、ＣＰＵ負荷を計測し、ＣＰＵ負荷情報として消費電力制御部１８に送信するステップと、消費電力制御部１８が、各々のＣＰＵブレード装置（１２、２２、３０）のＣＰＵ負荷情報を取得するステップと、消費電力制御部１８が、取得した各々のＣＰＵ負荷情報に基づいて、各々のＣＰＵブレード装置（１２、２２、３０）の電力比率を算出するステップと、消費電力制御部１８が、各々の電力比率と総電力量から、各々のＣＰＵブレード装置（１２、２２、３０）への供給電力量を算出するステップと、消費電力制御部１８が、各々の供給電力量を、消費電力制御部１８から各々のベースボード管理コントローラ（１６、２６、３４）に送信するステップと、複数のベースボード管理コントローラ（１６、２６、３４）が、各々、供給電力量を取得し、供給電力量よりＣＰＵ動作レベルを算出するステップと、複数のベースボード管理コントローラ（１６、２６、３４）が、各々、ＣＰＵ動作レベルを、ＣＰＵブレード装置（１２、２２、３０）のＣＰＵ（１４、２４、３２）に設定するステップと、を含む。
【００２３】
以下、実施例について、図面を参照して詳しく説明する。
【実施例１】
【００２４】
［実施例１の構成］
図１は本発明の実施例１に係るサーバシステムを示すブロック図である。サーバシステム１において、Ｎ個のＣＰＵブレード装置（１２、２２、３０）が、各々、スロット（スロット＃１、スロット＃２、．．．．スロット＃Ｎ）に差し込まれ、共通の電源部４０、放熱ファンなどを備えた１つの筐体１０内に構成されている。スロット＃１にはＣＰＵブレード装置１２が、スロット＃２にはＣＰＵブレード装置２２が、スロット＃ＮにはＣＰＵブレード装置３０が、差し込まれている。各々のＣＰＵブレード装置（１２、２２、３０）は、ＣＰＵ（１４、２４、３２）、及び、ベースボード管理コントローラ（１６、２６、３４）を有している。ここで、本明細書では、以降、ベースボード管理コントローラのことを、ＢＭＣと呼ぶ。ＢＭＣは、Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒの頭文字を取ったものである。また、各々のＣＰＵブレード装置には、基板上に、メモリやハードディスクなど、コンピュータとして必要な要素が実装されている。また、ＣＰＵが、チップセットと併せて、動作レベルを設定するように構成される場合には、ＣＰＵ（１４、２４、３２）は、チップセットを含んでいるとする。また、複数のＣＰＵブレード装置（１２、２２、３０）は、スロットを介して、筐体内バス３８で接続され、お互いに通信可能に構成されている。また、電源部４０は、各々のＣＰＵブレード装置に対して、電力供給線２０、２８、３６を介して、電力供給を行っている。
【００２５】
また、サーバシステム１では、スロット番号が最小のＣＰＵブレード装置（図１では、スロット＃１に差してあるＣＰＵブレード装置１２）のＢＭＣ１６内に、消費電力制御部１８が置かれ、サーバシステム１の電力供給の制御を行う。
【００２６】
次に、図２は、消費電力制御部１８を有するＢＭＣ１６の詳細なブロック図である。ＢＭＣ１６は、消費電力制御部１８と、消費電力制御部１８以外のブロック４２を有している。ブロック４２は、ＣＰＵブレード装置１２のＣＰＵ１４のＣＰＵ負荷を計測するＣＰＵ負荷監視センサ４８を有している。また、ブロック４２は、ＣＰＵ動作レベルを算出するＣＰＵ動作レベル算出部４６を有している。また、ＣＰＵブレード装置１２に供給される供給電力量からＣＰＵ動作レベルを算出する際に使用する消費電力−ＣＰＵ動作レベル対応テーブル４４を有している。ここで、消費電力−ＣＰＵ動作レベル対応テーブル４４は、予め、ＣＰＵ動作レベルに対する消費電力を計測した結果に基づいて算出し、テーブルにしたものである。図６にその一例を示す。ここで、動作レベルは、例えば、ＣＰＵの駆動周波数であり、Ｌｅｖｅｌ０が、そのＣＰＵで可能な最高の駆動周波数であり、Ｌｅｖｅｌ５が、最低の駆動周波数である。
【００２７】
次に、消費電力制御部１８は、各々のＣＰＵブレード装置の電力比率を算出する電力比率算出部５０と、各々のＣＰＵブレード装置に供給する供給電力量を算出する供給電力量算出部５４を有している。また、電力比率算出部５０が使用するＣＰＵ負荷統計データ５２と、供給電力量算出部５４が使用する総電力量補正テーブル５６、供給可能総電力量５８が格納されている。これらの詳細については後述する。ＢＭＣ１６で動作するＣＰＵ動作レベル算出部４６、電力比率算出部５０、供給電力量算出部５４は、ＢＭＣ１６内のＲＯＭに書き込まれたプログラムとしてもよいし、あるいはＣＰＵブレード装置１２のハードディスクにプログラムを格納しておき、電源起動時にＢＭＣ内のメモリにダウンロードするように構成してもよい。また、ＢＭＣ１６で使用するデータである消費電力−ＣＰＵ動作レベル対応デーブル４４、ＣＰＵ負荷統計データ５２、総電力量補正テーブル５６、供給可能総電力量５８は、不揮発性メモリやＣＰＵブレード装置１２のハードディスクに格納され、必要時にＢＭＣ１６内のメモリにロードされ、使用される。
【００２８】
次に、図３は、スロット＃２〜スロット＃Ｎに差してあるＣＰＵブレード装置のＢＭＣ（２６、３４）の詳細なブロック図である。この部分は、図２におけるＢＭＣで消費電力制御部１８以外のブロック４２と同じ構成であるため、詳細な説明は省略する。
【００２９】
［実施例１の動作］
次に、実施例１の動作について、図１、２、３のブロック図、及び、図４示すフローチャートを参照しながら、詳細に説明する。図４のフローチャートは、左側が消費電力制御部１８、右側が各々のＢＭＣの動作を示している。まず、サーバシステム１において、複数のＢＭＣのうち、スロット番号が最小のＣＰＵブレード装置のＢＭＣ１６が、消費電力制御部１８に設定される（ステップＳ１００）。この設定後、ＢＭＣ１６のメモリに、消費電力制御部１８の処理プログラム、処理に使用するテーブル、データ等が、自動的にロードされる。ステップＳ１００は、一度行われた後、システム構成が変更されるまでは、行う必要はない。
【００３０】
次に、各々のＢＭＣは、ＣＰＵ負荷監視センサ（４８、６４等)によりＣＰＵ負荷を計測している（ステップＳ２００）。各々のＣＰＵ負荷監視センサは、所定時間を、例えば、１時間に設定し、計測後、所定時間が経過したか否かを判定する（ステップＳ２０１）。そして、未だ、所定時間が経過していないと判定した場合（ステップＳ２０１で、ＮＯ）、ＣＰＵ負荷の計測（ステップＳ２００）を繰り返す。一方、所定時間が経過したと判定した場合（ステップＳ２０１で、ＹＥＳ）、所定時間内のＣＰＵ負荷の平均値を算出する（ステップＳ２０２）。図５は、各々のＣＰＵブレード装置のＢＭＣで計測したＣＰＵ負荷に対して、１時間毎の平均値を算出したグラフを示している。図５のグラフは、時刻が８時から２０時までを示しているが、それ以外の不図示の時刻も同様にＣＰＵ負荷を１時間毎に算出している。グラフ上の×の位置は、各々、８時〜９時、９時〜１０時、．．．．、１９時〜２０時のＣＰＵ負荷の平均値を示している。このように、１時間毎の平均を取ることにより、一時的にＣＰＵ負荷が上下する箇所は平滑化され、滑らかな特性のデータが得られる。
【００３１】
次に、図４のフローチャートに戻り、説明を行う。各々のＢＭＣ（１６、２６、３４）は、消費電力制御部１８に、１時間内で平均化したＣＰＵ負荷をＣＰＵ負荷情報として、送信する（ステップＳ２０４）。ＢＭＣ１６の場合は、同じＢＭＣ内に消費電力制御部１８を有しているので、ＣＰＵ負荷情報の送信は、ＢＭＣ１６内で行われる（図２のＳ１）。一方、消費電力制御部１８を持たないＢＭＣ（２６、３４）の場合、ＣＰＵ負荷情報は、筐体内バス３８を介して、消費電力制御部１８に送信される（図２、図３のＳ３）。そして、消費電力制御部１８は、各々のＣＰＵブレード装置のＣＰＵ負荷情報を取得する（ステップＳ１０２）。図４のフローチャートに、「ＣＰＵ負荷情報」の送信を、Ｓ２０４からＳ１０２への矢印で示している。
【００３２】
次に、消費電力制御部１８は、取得した各々のＣＰＵ負荷情報を、計測した時間帯と対応付けて、ＣＰＵ負荷統計データ５２として、蓄積する（ステップＳ１０４）。例えば、現在時刻が１４時０５分で、１３時〜１４時に計測したＣＰＵ負荷情報を取得した場合、消費電力制御部１８における最新のＣＰＵ負荷情報は、各々のＣＰＵブレード装置の１３時〜１４時のＣＰＵ負荷情報である。
【００３３】
次に、消費電力制御部１８の電力比率算出部５０において、各々のＣＰＵブレード装置の電力比率を算出する（ステップＳ１０６）。以下に、ステップＳ１０６について、より詳細に説明する。電力比率算出部５０は、最新のＣＰＵ負荷情報と、ＣＰＵ負荷統計データ５２に格納された同じ時間帯のＣＰＵ負荷情報を読み出して、各々のＣＰＵブレード装置の電力比率を算出する。例えば、現在時刻が１４時０６分であるとすると、最新のＣＰＵ負荷情報の時刻は、１３〜１４時である。そこで、ＣＰＵ負荷統計データ５２より、スロット＃１〜＃ＮのＣＰＵブレード装置毎に、過去の１３〜１４時のＣＰＵ負荷情報を読み出す。このようにして、スロット＃１〜＃ＮのＣＰＵブレード装置毎に、最新のＣＰＵ負荷情報と、それと同じ時間帯の過去の１３〜１４時のＣＰＵ負荷情報を得る。
【００３４】
また、曜日毎に、過去のＣＰＵ負荷の傾向に差がある場合には、同じ時間帯で、且つ、同じ曜日のＣＰＵ負荷情報をＣＰＵ負荷統計データ５２より読み出すようにする。例えば、現在が、２月３日（木）の１４：０６の場合、最新のＣＰＵ負荷情報は、２月３日（木）の１３時〜１４時である。また、ＣＰＵ負荷統計データ５２からは、例えば、１週間前の１月２７日（木）の１３時〜１４時のＣＰＵ負荷情報、２週間前の１月２０日（木）の１３時〜１４時のＣＰＵ負荷情報、３週間前の１月１３日（木）の１３時〜１４時のＣＰＵ負荷情報、４週間前の１月６日（木）の１３時〜１４時のＣＰＵ負荷情報を読み出す。ここで、過去のデータとして４週分のデータを読み出す場合について例示しているが、それに限定させるものではない。
【００３５】
そして、各々のＣＰＵブレード装置毎に、過去の４週分のＣＰＵ負荷情報の平均値を算出する。ここで、スロット＃１、＃２、．．．＃ＮのＣＰＵブレードの過去４週分の平均値を、各々、Ｂ１、Ｂ２、．．．、ＢＮとする。また、スロット＃１、＃２、．．．＃ＮのＣＰＵブレードの最新のＣＰＵ負荷情報を、各々、Ａ１、Ａ２、．．．、ＡＮとする。Ａｉ、Ｂｉ（ｉ＝１、２、．．．、Ｎ）より、電力比率の算出に用いるＣＰＵ負荷情報Ｃｉ（ｉ＝１、２、．．．、Ｎ）を以下の式（１）、（２）により算出する。
【００３６】
Ｃｉ  ＝  Ａｉ      （０．９Ｂｉ≦Ａｉ≦１．１Ｂｉ  の場合）  式（１）
Ｃｉ  ＝  Ｂｉ      （上記以外の場合）                        式（２）
（ここで、ｉ＝１、２、．．．、Ｎ）
【００３７】
次に、Ｃｉ（ｉ＝１、２、．．．、Ｎ）より、式（３）により、各々のＣＰＵブレード装置の電力比率ｒｉ（ｉ＝１、２、．．．、Ｎ）を算出する。
【００３８】
ｒｉ  ＝  Ｃｉ／（Ｃ１＋Ｃ２＋．．．＋ＣＮ）                  式（３）
【００３９】
式（１）、（２）において、最新のＣＰＵ負荷情報Ａｉが過去の平均値Ｂｉに対して所定範囲内である場合は、最新のＣＰＵ負荷情報Ａｉを使用し、一方、所定範囲内にない場合は、過去の平均値Ｂｉを使用している。所定範囲は、ここでは、過去の平均値の±１０％範囲内であるとしている。最新のＣＰＵ負荷情報が所定範囲内にない場合（式（２）の条件の場合）には、次の１時間の時間帯には、過去の傾向から考えて、ＣＰＵ負荷が変化し、過去の平均値に近づくことが予測されるから、式（２）のように電力比率の算出に使用するＣＰＵ負荷情報ＣｉをＢｉとしている。一方、最新のＣＰＵ負荷情報が所定範囲内にある場合には、電力比率の算出に使用するＣＰＵ負荷情報ＣｉをＡｉとすることにより、最新の情報に基づいた高精度な制御を行うようにしている。
【００４０】
また、式（３）に示すように、各々のＣＰＵブレード装置の電力比率を算出することにより、ＣＰＵ負荷が大きなＣＰＵブレード装置は大きな電力比率で電力供給がなされ、ＣＰＵ負荷が小さなＣＰＵブレード装置は小さな電力比率で電力供給がなされるため、各々のＣＰＵブレード装置のＣＰＵ負荷に応じた効率のよい電力供給の配分をすることが可能になる。
【００４１】
次に、図４のフローチャートに戻り、説明を行う。消費電力制御部１８は、ＣＰＵ総負荷を算出する（ステップＳ１０８）。より具体的には、各々のＣＰＵブレード装置のＣＰＵ負荷情報を合計し、ＣＰＵ総負荷とする。ＣＰＵ総負荷は、式（３）において、電力比率を算出する過程で得られるＣ１＋Ｃ２＋．．．＋ＣＮの値であるため、その値を使用することができる。
【００４２】
次に、供給電力量算出部５４が、総電力量を算出する（ステップＳ１０９）。ステップＳ１０９の詳細について、以下に説明する。図８は、消費電力制御部１８の総電力量補正テーブル５６の一例を示している。総電力量は、筐体内の全てのＣＰＵブレード装置に供給する電力量の合計である。総電力量補正テーブル５６は、ＣＰＵ総負荷に対し、総電力量の補正係数の値を持つテーブルである。図８に示すように、ＣＰＵ総負荷が所定値ｘ２より大きい場合には、補正係数は最大値の１．０である。また、ＣＰＵ総負荷が、もう１つの所定値であるｘ１より小さい場合には、補正係数を、１．０より小さな値であるＫｍｉｎにする。また、ＣＰＵ総負荷が、２つの所定値ｘ１、ｘ２の間である場合には、図８に示すように、補正係数を、ｘ１の点とｘ２の点を結ぶ直線にする。ここで、ｘ１、ｘ２、Ｋｍｉｎの３つのパラメータは、最適な電力供給制御がなされるような値を、予め求めておく。
【００４３】
供給電力量算出部５４は、ステップＳ１０８で算出したＣＰＵ総負荷から、上記した総電力量補正テーブル５６を参照して、補正係数を求める。そして、供給電力量算出部５４は、電源部４０の供給電力の最大値である供給可能総電力量５８を読み出し、供給可能総電力量５８に補正係数を掛算することにより、総電力量を算出する。
【００４４】
次に、図４のフローチャートにおいて、各々のＣＰＵブレード装置に供給する供給電力量を算出する（ステップＳ１１０）。具体的には、ステップＳ１０８で算出した総電力量をＰｔｏｔａｌとすると、各々の供給電力量Ｐｉ（ｉ＝１、２、．．．、Ｎ）は、式（４）により算出される。式（４）において、ｒｉは、ステップＳ１０６で算出した各々の電力比率である。
【００４５】
Ｐｉ  ＝  Ｐｔｏｔａｌ×ｒｉ  （ｉ＝１、２、．．．、Ｎ）    式（４）
【００４６】
次に、各々のＣＰＵブレード装置に供給する供給電力量Ｐｉを、各々のＢＭＣに対して、送信する（ステップＳ１１２）。そして、各々のＢＭＣは、供給電力量を取得する（ステップＳ２０６）。ここで、ＢＭＣ１６の場合は、同じＢＭＣ内に消費電力制御部１８を有しているので、供給電力量の送信は、ＢＭＣ１６内で行われる（図２のＳ２）。一方、消費電力制御部１８を持たないＢＭＣ（２６、３４）の場合、供給電力量は、筐体内バス３８を介して、ＢＭＣ（２６、３４）に送信される（図２、図３のＳ４）。そして、各々のＢＭＣは、送信された各々の供給電力量を取得する（ステップＳ２０６）。図４のフローチャートに、「供給電力量」の送信を、Ｓ１１２からＳ２０６への矢印で示している。
【００４７】
次に、図４のフローチャートにおいて、各々のＢＭＣのＣＰＵ動作レベル算出部４６は、ＣＰＵ動作レベルを算出する（ステップＳ２０８）。具体的には、ＣＰＵ動作レベル算出部４６は、ステップＳ２０６で取得した供給電力量を消費電力量とし、図６に示される消費電力−ＣＰＵ動作レベル対応テーブルを参照することにより、ＣＰＵ動作レベルを算出する。ここで、ＣＰＵ動作レベルは、Ｌｅｖｅｌ０〜Ｌｅｖｅｌ５の６段階に分類され、レベル数が小さいほうが（Ｌｅｖｅｌ０側）、駆動周波数が高くなっている。図６から分かるように、供給電力量が大きい場合は、レベル数の小さい（Ｌｅｖｅｌ０側）のＣＰＵ動作レベルが算出され、供給電力量が小さい場合は、レベル数の大きい（Ｌｅｖｅｌ５側）のＣＰＵ動作レベルが算出される。
【００４８】
最後に、図４のフローチャートにおいて、ステップＳ２０８で算出したＣＰＵ動作レベルを各々のＣＰＵブレード装置のＣＰＵに設定する（ステップＳ２１０）。ステップＳ２１０で示したように、ＣＰＵ動作レベルを設定することにより、消費電力制御部１８が、ステップＳ１１０で算出した各々の供給電力量に対応した消費電力が、各々のＣＰＵブレード装置で消費されるようになる。このようにして、サーバシステム１の供給電力制御が行われる。
【００４９】
ここで、図８に示す総電力量補正テーブル５６の効果について、以下に説明する。例として、本発明のサーバシステム１を、銀行のシステムで使用した場合、銀行では、１日の時間帯によって、サーバシステムの処理量に差が生じる。例えば、午前中は客が少ないため、処理が少なく、午後３時辺りは、その日の締め処理等で処理が多くなる。従って、ステップＳ１０８、Ｓ１０９において、ＣＰＵ総負荷は、午前中は小さく、午後３時頃は大きくなる。図８に示すように、午前中のＣＰＵ総負荷はｘ１より小さく、午後３時のＣＰＵ総負荷はｘ２より大きくなる。そこで、図８に示すような総電力量補正テーブル５６を用いて、総電力量を算出すると、午後３時では、総電力量補正テーブル５６による補正係数は１．０となり、総電力量は、電源部４０の最大電力供給量である供給可能総電力量５８に等しくなり、ＣＰＵ動作レベルを落とさずにフルに動作させることが可能になる。一方、午前中では、総電力量補正テーブル５６による補正係数はＫｍｉｎになり、総電力量は、供給可能総電力量５８より小さくなり、サーバシステム１を低消費電力で動作させることが可能になる。
【００５０】
また、図５に示すように、各々のＣＰＵブレード装置によって、ＣＰＵ負荷のかかる時間帯が異なっているような場合があるとする。図５では、ＣＰＵブレード装置＃１は、１５：３０頃にＣＰＵ負荷がピークになっているのに対して、ＣＰＵブレード装置＃３は、１５：３０ではＣＰＵ負荷は低く、１１：３０頃、１９：３０頃のＣＰＵ負荷が高くなっている。すなわち、ＣＰＵブレード装置＃１とＣＰＵブレード装置＃３では、ＣＰＵ負荷のかかる時間帯が逆になっている。このような場合には、ステップＳ１０６で説明したように、各々の電力比率の算出を、各々のＣＰＵ負荷に基づいて算出することによって、その時間帯で、ＣＰＵ負荷のかかるＣＰＵブレード装置に対して、供給電力を多くし、ＣＰＵ負荷の少ないＣＰＵブレード装置の供給電力を小さくできるので、サーバシステム全体として最適な電力供給の配分をすることが可能である。
【００５１】
次に、図１に示すサーバシステム１において、スロット番号が最小、すなわちスロット＃１に差してあるＣＰＵブレード装置のＢＭＣに、消費電力制御装置１８を配すると説明したが、サーバシステムの構成が変わった場合、消費電力制御装置１８の設定を見直す必要が生じる。図７は、ＣＰＵブレード装置の構成の変更があった場合に行われる消費電力制御部の設定を示すフローチャートである。
【００５２】
まず、システムの構成に変更があったか否かを判定する（ステップＳ４００）。具体的には、各々のＢＭＣは、自基板が、差してあるスロット番号を知ることができるので、それにより構成に変更があったか否かを判定することができる。構成に変更があったと判定された場合（ステップＳ４００で、ＹＥＳ）、消費電力制御部１８のスロット番号より、小さなスロットＩＤのＣＰＵブレード装置を検索する（ステップＳ４０２）。次に、検索により、消費電力制御部１８のスロット番号より、小さなスロットＩＤのＣＰＵブレード装置があったかどうかの判定を行う（ステップＳ４０３）。装置がないと判定された場合（ステップＳ４０３で、ＮＯ）、処理を終了する。一方、装置があったと判定された場合（ステップＳ４０３で、ＹＥＳ）、現在の消費電力制御部１８の処理を終了する（Ｓ４０４）。そして、検索された小さなスロットＩＤのＣＰＵブレード装置のＢＭＣを新しい消費電力制御部とし、そこに、統計データ、及びその他データの移動を行う（ステップＳ４０５）。そして、新しい消費電力制御部の処理を開始する（ステップＳ４０６）。
【００５３】
ここで、図７に示す処理は、以下の理由により必要とされる。サーバシステムの筐体は、各々、スロット番号に上限があるため、構成変更前に消費電力制御部を備えていたＣＰＵブレードを、途中のスロットに差す変更を行った場合、それよりもスロット番号の小さいスロットに空きを作らずに、ＣＰＵブレードを差すことが必要になる。また、そのような場合、最小のスロット番号のＣＰＵブレード装置のＢＭＣに、消費電力制御部１８を移動することにより、各々のＢＭＣ、及び消費電力制御部における設定変更を行わずに済ませることができる。
【００５４】
以下に、実施例１の効果について纏める。実施例１に係るサーバシステムによれば、複数のＣＰＵブレード装置のＢＭＣのいずれか１つに、消費電力制御部を置くように構成したから、新たに電力管理装置を設ける必要がなくなり、低コストな電力供給制御を行うことが可能である。また、ＢＭＣと消費電力制御部との通信は、筐体内のバスで行うため、ネットワークの設定などは不要である。
【００５５】
また、実施例１に係るサーバシステムによれば、従来、システム管理者が行う必要があったＣＰＵ負荷の計測や、ＣＰＵ動作レベルの設定などの作業工数を削減することができる。その理由は、複数のＣＰＵブレード装置のＢＭＣのいずれか１つが、消費電力制御部に設定され、各々のＢＭＣがＣＰＵ負荷計測を行い、消費電力制御部が計測されたＣＰＵ負荷情報を基に、ＣＰＵ動作レベルの設定を自動で行うようにすることができるからである。
【００５６】
また、実施例１に係るサーバシステムによれば、時間帯に適合したＣＰＵ動作レベルの設定が自動で行うことができる。各々のＣＰＵブレード装置において、ＣＰＵ負荷の少ない時間帯には、ＣＰＵ動作レベルが制限され、消費電力を抑えることが可能になり、一方、ＣＰＵ負荷が多い時間帯では、ＣＰＵ動作レベルを上げて、性能低下がないようにすることが可能になる。その理由は、各々のＣＰＵブレード装置のＣＰＵ負荷情報を時間帯に対応付けて統計データとして蓄積し、各々の電力比率を算出する際に過去の同じ時間帯のＣＰＵ負荷情報の傾向から、適切な電力比率を設定するようにしたからである。
【００５７】
また、各々のＣＰＵ負荷情報の合計であるＣＰＵ総負荷に基づいて、使用する総電力量を算出することにより、ＣＰＵ総負荷の少ない時間帯には、全体の総電力量を制限して、消費電力を抑えることが可能になり、一方、ＣＰＵ総負荷が多い時間帯では、全体の総電力量を供給可能総電力量にして、性能低下がないようにすることができる。
【００５８】
また、電源部の供給可能総電力量により全体の最大電力量を規定することにより、個々の装置の最大電力量の設定は不要となる利点が得られる。また、消費電力制御部が全ての装置の供給電力をまとめて制御しているので、各々の装置に対する変更のタイミングを揃えることができるため、安定した電力制御を行うことができるという効果が得られる。
【産業上の利用可能性】
【００５９】
本発明のサーバシステム及び電力供給制御方法は、データセンターなどに設定される複数のＣＰＵブレード装置を有するサーバシステムに適用可能である。
【００６０】
なお、本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６１】
１：サーバシステム
１０：筐体
１２、２２、３０：ＣＰＵブレード装置
１４、２４、３２：ＣＰＵ
１６、２６、３４：ＢＭＣ（ベースボード管理コントローラ）
１８：消費電力制御部
２０、２８、３６：電力供給線
３８：筐体内バス
４０：電源部
４２：ＢＭＣで消費電力制御部１８以外のブロック
４４、６０：消費電力−ＣＰＵ動作レベル対応テーブル
４６、６２：ＣＰＵ動作レベル算出部
４８、６４：ＣＰＵ負荷監視センサ
５０：電力比率算出部
５２：ＣＰＵ負荷統計データ
５４：供給電力量算出部
５６：総電力量補正テーブル
５８：供給可能総電力量
【図１】
2012173926.tif 000003
【図２】
2012173926.tif 000004
【図３】
2012173926.tif 000005
【図４】
2012173926.tif 000006
【図５】
2012173926.tif 000007
【図６】
2012173926.tif 000008
【図７】
2012173926.tif 000009
【図８】
2012173926.tif 000010