(57)【要約】【課題】消費電力の大幅な削減が可能な分散処理システムを提供する。【解決手段】分散処理システム１は、クライアント５からの要求を負荷分散装置３により複数のサーバ２に分散させて処理する。負荷分散装置３は、各サーバ２の負荷を監視し、システム負荷が大きい場合、停止中のサーバ２の電源を投入して起動し、このサーバ２に他のサーバから負荷を移す一方、システム負荷が小さくなると、負荷の小さいサーバ２の負荷を負荷の大きいサーバ２に移し、このサーバ２を無負荷状態にして電源を遮断する。【選択図】図４
2010086145.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの要求を負荷分散装置により複数のサーバに分散させて処理する分散処理システムにおいて、前記負荷分散装置は、各サーバの負荷を監視し、システム負荷が大きい場合、停止中のサーバの電源を投入して起動し、当該サーバに他のサーバから負荷を移す一方、前記システム負荷が小さくなると、負荷の小さいサーバの負荷を負荷の大きいサーバに移し、当該サーバを無負荷状態にして電源を遮断することを特徴とする分散処理システム。
【請求項２】
前記負荷分散装置は、各サーバの負荷の合計値をサーバの負荷上限値で除してサーバの必要稼動数を求め、これを超える数のサーバが稼動している場合、超過分のサーバの電源を遮断することを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記各サーバを接続するネットワーク上にファイルサーバを設け、このファイルサーバに前記サーバの実行中のメモリイメージを書き込ませた後に、このサーバへのパケット転送を停止することを特徴とする請求項１または請求項２に記載の分散処理システム。
【請求項４】
前記負荷分散装置は、所定時間内におけるＣＰＵの実行プロセスの平均値によって前記サーバの負荷状態を判断することを特徴とする請求項１ないし請求項３のいずれか１項に記載の分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからの要求を負荷分散装置により複数のサーバに分散させて処理する分散処理システムに関する。
【背景技術】
【０００２】
インターネット上のＷｅｂサーバにはクライアントからの要求が特定の時間帯に集中する傾向がある。その時間帯でも良好な応答を可能にするため、ピーク時の負荷に合わせてシステムの規模を設計する必要がある。このため、複数のサーバを負荷分散装置で束ねてクラスタ構成にし、負荷分散装置から各サーバにパケットを振り分け、各サーバの負荷を均衡させているシステムが提案されている（特許文献１参照）。
【特許文献１】特開平９−２１８８４２号公報（段落００２７〜００２９、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この種のシステムでは、クライアントからの要求が少ない軽負荷時には何台かのサーバを待機状態にして消費電力の削減を図っている。しかし、サーバは待機状態でもある程度の電力（高負荷時の半分程度）を消費するため、省電力化は必ずしも十分でない。
【０００４】
本発明は、このような事情に鑑み、消費電力の大幅な削減が可能な分散処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するための本発明は、クライアントからの要求を負荷分散装置により複数のサーバに分散させて処理する分散処理システムにおいて、前記負荷分散装置は、各サーバの負荷を監視し、システム負荷が大きい場合、停止中のサーバの電源を投入して起動し、当該サーバに他のサーバから負荷を移す一方、前記システム負荷が小さくなると、負荷の小さいサーバの負荷を負荷の大きいサーバに移し、当該サーバを無負荷状態にして電源を遮断することを特徴とする。ここで、無負荷状態とは、クライアントからのアクセスがなくて、電源の遮断が可能な状態をいう。つまり、全ての処理を実行していない状態を要求されるわけではない。
【０００６】
前記負荷分散装置は、各サーバの負荷の合計値をサーバの負荷上限値で除してサーバの必要稼動数を求め、これを超える数のサーバが稼動している場合、超過分のサーバの電源を遮断するのが好ましい。
【０００７】
前記各サーバを接続するネットワーク上にファイルサーバを設け、このファイルサーバに前記サーバの実行中のメモリイメージを書き込ませた後に、このサーバへのパケット転送を停止するのが好ましい。
【０００８】
前記負荷分散装置は、所定時間内におけるＣＰＵの実行プロセスの平均値によって前記サーバの負荷状態を判断するのが好ましい。
【発明の効果】
【０００９】
本発明によれば、システム負荷が小さくなると、負荷分散装置が負荷の小さいサーバの負荷を負荷の大きいサーバに移し、このサーバを無負荷状態にして電源を遮断するので、無負荷のサーバを待機状態にしておく場合に較べて、消費電力を大幅に削減できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態を添付図面を参照しながら詳細に説明する。
図１は本発明の分散処理システムを示すブロック図、図２はサーバの起動シーケンスを説明する図、図３は負荷分散装置の管理テーブルを示す図、図４はサーバの電源制御方法を示すフローチャート、図５〜図８はサーバの負荷移動方法を説明する図である。
【００１１】
この分散処理システム１は複数のサーバ２を負荷分散装置３で束ねてクラスタ構成にしたもので、負荷分散装置３はインターネット４を介してクライアント５に接続してある。サーバ２を接続するネットワーク６上にはファイルサーバ７が設けてある。ファイルサーバ７は、サーバ２にインストールされるゲストＯＳイメージを格納する記憶部７ａと、サーバ２の実行中のメモリイメージを格納する記憶部７ｂと、サーバ２の利用に供するコンテンツを格納する記憶部７ｃとを備えている。
【００１２】
負荷分散装置３は、各サーバ２に対するパケットの振り分けを行うパケット振分部３ａと、各サーバ２の負荷を監視する負荷監視部３ｂと、各サーバ２の電源をＯＮ／ＯＦＦする電源制御部３ｃとを備えている。パケット振分部３ａは、サーバ２の負荷をバランスさせるべく、ＩＰアドレスを変更してパケットをサーバ２に振り分ける。なお、この技術は特開平９−２１８８４２号公報等により公知であるので、詳細な説明を省略する。負荷監視部３ｂは、サーバ２のロードアベレージ（所定時間内におけるＣＰＵ（Ｃｅｎｔｒａｌ    Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の実行プロセスの平均値）から負荷状態を判断する。電源制御部３ｃはネットワーク６上にマジックパケットを発生させてサーバ２の電源をＯＮ／ＯＦＦする。なお、この技術はＷＯＬ（Ｗａｋｅ  Ｏｎ Ｌａｎ）という公知なものであるので、詳細な説明を省略する。
【００１３】
この分散処理システム１では、負荷変動に伴うサーバ２の起動停止に際し、クライアント５に対するサービスの停止を防止するため、サーバ２のタスクを他のサーバに移動させる所謂ライブマグレーションを実行している。例えば、あるサーバ２を停止する場合、そのサーバ２に対するパケット転送の停止に先立って、サーバ２の実行中のメモリイメージをファイルサーバ７の記憶部７ｂに書き出しておき、これを他のサーバ２が利用してタスクの引き継ぎを行っている。
【００１４】
このようなライブマグレーションを実行するため、サーバ２はＸｅｎ（１つのハードウェアで複数のＯＳを並列実行するソフトウェア）によって仮想化されたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を使用している。つまり、図２に示すようにホストＯＳの上でゲストＯＳが起動される。ゲストＯＳはＸｅｎに対応した準仮想化ＯＳを採用する。Ｗｅｂのコンテンツは全てファイルサーバ７上に展開し、サーバ２からＮＦＳマウントする。サーバ２は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）へのマジックパケットの入力によって起動し、起動シーケンスは、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）, ホストＯＳ, ゲストＯＳの順となる。ゲストＯＳは、専用パーティション、ファイル、Ｓｐａｒｓｅファイルの３通りの方法でインストールできるが、パフォーマンスを考慮してホストＯＳ上で分割されたパーティションにインストールする。なお、ファイルの場合はバックアップが簡単である。ゲストＯＳはサーバ２にインストールしておくのではなく、ファイルサーバ７経由で取得する。なお、ＢＩＯＳの設定でＷＯＬを可能な状態にしおく。
【００１５】
ところで、ライブマイグレーションの実行には数十秒程度の時間がかかるため、監視対象のデータ（サーバの負荷状態）が閾値を超えた場合には、ライブマイグレーションを実行する準備として、ホストＯＳ上でゲストＯＳの実行イメージを採取し、ファイルサーバ７に保存する。そして、ライブマイグレーションの準備が完了した時点で、対象サーバの監視対象データが閾値を超えたままであって、かつ、代替可能なサーバが存在する場合、ライブマイグレーションを実施する。ただし、対象サーバの監視対象データがその時点で閾値を下回っている場合には、ライブマイグレーションは実行しない。
【００１６】
次に、サーバ２の電源制御方法を図４のフローチャートを参照しながら説明する。
負荷分散装置３は、各サーバ２のロードアベレージをバランスさせるべくパケットの振り分けを行う。また、システム負荷（各サーバ２のロードアベレージの合計）の変動に伴って、サーバ２の稼働台数を調整する。このため、負荷監視部３ｂで各サーバ２のロードアベレージを所定のタイミングで測定し、その結果を図３に示す管理テーブルに記憶させる。ロードアベレージには上限値が設けてあり、これを超える負荷がサーバ２にかかると、サーバ２の処理速度の低下が著しくなる。そして、ロードアベレージが負荷上限値を超えている場合、ロードアベレージから負荷上限値を引いた値を負荷割当量と定義し、これが他のサーバ２に分担させるべき負荷量となる。また、ロードアベレージが負荷上限値を下回っている場合、負荷上限値からロードアベレージを引いた値を負荷受付量と定義し、これが他のサーバ３から引き受け可能な負荷量となる。
【００１７】
まず、稼動中の各サーバ２のロードアベレージを取得し、負荷割当量を算出する（Ｓ１）。次いで、稼動中の各サーバ２の負荷受付量を算出する（Ｓ２）。そして、負荷割当量が正であるサーバ（ロードアベレージが負荷上限値を超えて過負荷状態で稼動しているもの）２があるか否かを判断し（Ｓ３）、負荷割当量が正のサーバ２がある場合、負荷割当量の合計以上の負荷受付量を持つサーバ２があるか否かを判断する（Ｓ４）。つまり、負荷割当量が正のサーバ２は過負荷状態になっているため、その負荷の一部を単独で引き受けることが可能なサーバ２を検索するのである。そして、負荷割当量の合計以上の負荷受付量を持つサーバ２がある場合は、そのサーバ２に過負荷状態のサーバ２から負荷割当量分の負荷を移動させる（Ｓ５）。図５はこの場合の負荷移動を示している。なお、過負荷状態のサーバ２が複数ある場合、各サーバ２から負荷を移動させることになる。
【００１８】
一方、負荷割当量の合計以上の負荷受付量を持つサーバ２がない場合には、各サーバ２の負荷受付量の合計が負荷割当量の合計以上であるか否かを判断する（Ｓ６）。負荷受付量の合計が負荷割当量の合計以上である場合、過負荷状態のサーバ２から他のサーバ２に負荷割当量分の負荷を分配する（Ｓ７）。なお、当然のことであるが、負荷を分配するサーバ２は負荷上限値を超えてはならない。図６はこの場合の負荷移動を示している。
【００１９】
一方、負荷受付量の合計が負荷割当量の合計よりも小さい場合には、負荷割当量の合計をサーバ２の負荷上限値で割った値の小数点第1位を繰り上げて、サーバ２の追加台数を求め（Ｓ８）、必要台数分のサーバ２は確保可能（停止中のサーバ２の台数が追加台数以上である）であるか否かを判断する（Ｓ９）。サーバ２の確保が可能な場合、停止中のサーバ２を追加台数分だけ起動し、過負荷状態のサーバ２から負荷割当量分の負荷を分配する（Ｓ１０）。図７はこの場合の負荷移動を示している。
【００２０】
一方、サーバ２の確保ができない場合（停止中のサーバ２の台数が追加台数に満たない場合）には、停止中の全サーバ２を起動し（Ｓ１１）、取り敢えず、過負荷状態のサーバ２から他のサーバ２に負荷を分配しておく（Ｓ１２）。この場合、各サーバ２は過負荷状態で稼動することになるので、システムの管理者に対してアラートを発する（Ｓ１３）。
【００２１】
一方、負荷割当量が正であるサーバ２がない場合には、システム全体のロードアベレージ（各サーバ２のロードアベレージの合計）を算出し、その値を負荷上限値で割り、小数点第一位を切り上げ、この値をサーバ２の必要稼動数とする（Ｓ１４）。例えば、システム全体のロードアベレージが１０.４で、負荷上限値が２.０の場合、想定リアルサーバ台数は６台である。つまり、この場合はシステム全体の負荷に対してサーバ２の稼動数が多く、無駄な電力が消費されていると想定されるので、サーバ２の必要稼動数を求めているのである。
【００２２】
そして、稼働中のサーバ２の台数が必要稼動数よりも多いか否かを判断し（Ｓ１５）、サーバ２の稼動数が多過ぎる場合は、負荷の少ない順に停止すべきサーバ２を決定し（Ｓ１６）、停止すべきサーバ２の負荷を他のサーバ２に集約し（Ｓ１７）、無負荷になったサーバ２の電源を遮断する（Ｓ１８）。図８はこの場合の負荷移動を示している。
【００２３】
この分散処理システムでは、稼働中のサーバ２の台数が必要稼動数よりも多くなると、負荷の小さいサーバは、その負荷が負荷の大きいサーバに移され、無負荷状態になって電源が遮断されるので、停止中のサーバ３の消費電力は、ＮＩＣへの通電分（０.１Ｗ程度）だけで済む。つまり、無負荷のサーバを待機状態にしておく場合に較べて、消費電力を大幅に削減できる。
【００２４】
また、サーバ２の起動停止に際してライブマグレーションを実行しているので、クライアント５に対するサービスを停止することなく、サーバ２の稼働台数を変更することができる。
【００２５】
本発明は以上の実施形態に限定されるものではなく、種々の変形が可能である。
例えば、以上の実施形態では、サーバ２の負荷状態をロードアベレージにより判断しているが、ＩＣＰＭエコーリクエストに対する応答速度により判断してもよい。
【図面の簡単な説明】
【００２６】
【図１】本発明の分散処理システムを示すブロック図である。
【図２】図２はサーバの起動シーケンスを説明する図である。
【図３】負荷分散装置の管理テーブルを示す図である。
【図４】サーバの電源制御方法を示すフローチャートである。
【図５】サーバの負荷移動方法を説明する図である。
【図６】サーバの負荷移動方法を説明する図である。
【図７】サーバの負荷移動方法を説明する図である。
【図８】サーバの負荷移動方法を説明する図である。
【符号の説明】
【００２７】
１      分散処理システム
２      サーバ
３      負荷分散装置
３ａ    パケット振分部
３ｂ    負荷監視部
３ｃ    電源制御部
４      インターネット
５      クライアント
６      ネットワーク
７      ファイルサーバ
【図１】
2010086145.tif 000003
【図２】
2010086145.tif 000004
【図３】
2010086145.tif 000005
【図４】
2010086145.tif 000006
【図５】
2010086145.tif 000007
【図６】
2010086145.tif 000008
【図７】
2010086145.tif 000009
【図８】
2010086145.tif 000010