(57)【要約】【課題】サーバを電源ＯＦＦする際に、端末のセッションが一時的に切断される可能性があること。【解決手段】負荷分散制御部は、セッションテーブルにエントリがない端末からパケットを受信した場合、電力制御テーブルの状態情報が電源ＯＮであるサーバのいずれかとのセッションを確立してセッションテーブルに新規エントリを作成し、その後に、セッションテーブルの全エントリのサービス量を基にして、サーバへの電源ＯＮ／ＯＦＦ指示の要否の判定結果を電力計画テーブルに書き込む。電力制御スケジューラ部は、サーバの電源をＯＦＦする場合、電力制御テーブルの状態情報が電源ＯＮであるサーバの中から電源ＯＦＦ対象を決定し、そのサーバの電力制御テーブルの状態情報に電源ＯＦＦと書き込み、そのサーバのエントリがセッションテーブルからなくなった時点で、そのサーバへの電源ＯＦＦを指示するパケットの発行を指示する。【選択図】図１
2011159153.tif 000002
【特許請求の範囲】
【請求項１】
各々が端末とセッションを確立した上で該端末に対してサービスを提供する複数のサーバの負荷を分散する負荷分散装置であって、
セッション毎に、当該セッションにおいて前記サーバが提供しているサービス量が対応付けて書き込まれるセッションテーブルと、
前記サーバへの電源ＯＮ／ＯＦＦ指示を実行する日時毎に、当該日時において電源ＯＮ／ＯＦＦの要否の判定に用いるサービス量の閾値が対応付けて書き込まれる電力計画テーブルと、
前記サーバ毎に、当該サーバの消費電力値と、当該サーバの電源ＯＮ／ＯＦＦの状態を表す状態情報と、が対応付けて書き込まれる電力制御テーブルと、
前記複数のサーバに対して、電源ＯＮ／ＯＦＦを指示するパケットを発行するパケット生成部と、
前記セッションテーブルにエントリがない端末からパケットを受信した場合は、前記電力制御テーブルの状態情報が電源ＯＦＦでないサーバのいずれかとのセッションを確立して前記セッションテーブルに新規エントリを作成し、前記セッションテーブルにエントリがあるサーバまたは端末からパケットを受信した場合は、当該エントリのサービス量を更新し、その後に、前記セッションテーブルの全エントリのサービス量の合計値または最大値と前記電力計画テーブルのサービス量の閾値との比較結果を基にした、前記複数のサーバへの電源ＯＮ／ＯＦＦ指示の要否の判定結果を、閾値チェックとして前記電力計画テーブルの日時に対応付けて前記電力計画テーブルに書き込む負荷分散制御部と、
前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＦＦ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮであるサーバ毎に、前記電力制御テーブルの当該サーバの消費電力値を、前記セッションテーブルの当該サーバが提供しているサービス量で除算した値を算出し、算出した値が最大のサーバを電源ＯＦＦ対象に決定し、前記電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込み、前記セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなった時点で、前記パケット生成部に対し、電源ＯＦＦ対象のサーバへ電源ＯＦＦを指示するパケットを発行するよう指示する電力制御スケジューラ部と、を有する負荷分散装置。
【請求項２】
前記電力制御スケジューラ部は、前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＮ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮでないサーバのうち、前記電力制御テーブルの消費電力値が最小のサーバを電源ＯＮ対象に決定し、前記パケット生成部に対し、電源ＯＮ対象のサーバへ電源ＯＮを指示するパケットを発行するよう指示し、電源ＯＮ対象のサーバから前記サービス量として負荷が通知された時点で、前記電力制御テーブルの電源ＯＮ対象のサーバの状態情報に電源ＯＮと書き込む、請求項１に記載の負荷分散装置。
【請求項３】
前記サービス量は、前記サーバに接続中のコネクション数、前記サーバに接続中の端末数、前記サーバが前記負荷分散装置に転送したデータ量、前記サーバからの応答時間、及び、前記サーバの負荷、という５項目のうちの予め設定された１つ以上であり、
前記負荷分散制御部は、電源ＯＮ／ＯＦＦ指示の要否の判定に際して、前記セッションテーブルにおいて、前記コネクション数の全エントリの合計値が閾値未満、前記端末数の全エントリの合計値が閾値未満、前記データ量の全エントリの合計値が閾値未満、前記応答時間の全エントリの最大値が閾値未満、及び、前記負荷の全エントリの最大値が閾値未満、という５条件のうちの予め設定された１つ以上が、規定回数以上連続している場合は、電源ＯＦＦ指示要と判定し、また、前記コネクション数の全エントリの合計値が閾値以上、前記端末数の全エントリの合計値が閾値以上、前記データ量の全エントリの合計値が閾値以上、前記応答時間の全エントリの最大値が閾値以上、及び、前記負荷の全エントリの最大値が閾値以上、という５条件のうちの予め設定された１つ以上が、規定回数以上連続している場合は、電源ＯＮ指示要と判定し、
前記電力制御スケジューラ部は、電源ＯＦＦ対象のサーバの決定に際して、前記コネクション数、前記端末数、前記データ量、前記応答時間、及び、前記負荷の５項目のサービス量の中から、予め設定された１項目を選択し、選択したサービス量で、前記消費電力値を除算する、請求項１または２に記載の負荷分散装置。
【請求項４】
各々が端末とセッションを確立した上で該端末に対してサービスを提供する複数のサーバの負荷を分散する負荷分散装置による負荷分散方法であって、
前記負荷分散装置は、
セッション毎に、当該セッションにおいて前記サーバが提供しているサービス量が対応付けて書き込まれるセッションテーブルと、
前記サーバに電源ＯＮ／ＯＦＦを指示する日時毎に、当該日時において電源ＯＮ／ＯＦＦの要否の判定に用いるサービス量の閾値が対応付けて書き込まれる電力計画テーブルと、
前記サーバ毎に、当該サーバの消費電力値と、当該サーバの電源ＯＮ／ＯＦＦの状態を表す状態情報と、が対応付けて書き込まれる電力制御テーブルと、を有するものであり、
前記セッションテーブルにエントリがない端末からパケットを受信した場合は、前記電力制御テーブルの状態情報が電源ＯＦＦでないサーバのいずれかとのセッションを確立して前記セッションテーブルに新規エントリを作成し、前記セッションテーブルにエントリがあるサーバまたは端末からパケットを受信した場合は、当該エントリのサービス量を更新する第１のステップと、
前記セッションテーブルの全エントリのサービス量の合計値または最大値と前記電力計画テーブルのサービス量の閾値との比較結果を基にした、前記複数のサーバへの電源ＯＮ／ＯＦＦ指示の要否の判定結果を、閾値チェックとして前記電力計画テーブルの日時に対応付けて前記電力計画テーブルに書き込む第２のステップと、
前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＦＦ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮであるサーバ毎に、前記電力制御テーブルの当該サーバの消費電力値を、前記セッションテーブルの当該サーバが提供しているサービス量で除算した値を算出し、算出した値が最大のサーバを電源ＯＦＦ対象に決定する第３のステップと、
前記電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込み、前記セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなった時点で、電源ＯＦＦ対象のサーバへ電源ＯＦＦを指示するパケットを発行する第４のステップと、を有する負荷分散方法。
【請求項５】
前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＮ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮでないサーバのうち、前記電力制御テーブルの消費電力値が最小のサーバを電源ＯＮ対象に決定する第５のステップと、
電源ＯＮ対象のサーバへ電源ＯＮを指示するパケットを発行し、電源ＯＮ対象のサーバから前記サービス量として負荷が通知された時点で、前記電力制御テーブルの電源ＯＮ対象のサーバの状態情報に電源ＯＮと書き込む第６のステップと、をさらに有する請求項４に記載の負荷分散方法。
【請求項６】
前記サービス量は、前記サーバに接続中のコネクション数、前記サーバに接続中の端末数、前記サーバが前記負荷分散装置に転送したデータ量、前記サーバからの応答時間、及び、前記サーバの負荷、という５項目のうちの予め設定された１つ以上であり、
前記第２のステップでは、電源ＯＮ／ＯＦＦ指示の要否の判定に際して、前記セッションテーブルにおいて、前記コネクション数の全エントリの合計値が閾値未満、前記端末数の全エントリの合計値が閾値未満、前記データ量の全エントリの合計値が閾値未満、前記応答時間の全エントリの最大値が閾値未満、及び、前記負荷の全エントリの最大値が閾値未満、という５条件のうちの予め設定された１つ以上が、規定回数以上連続している場合は、電源ＯＦＦ指示要と判定し、また、前記コネクション数の全エントリの合計値が閾値以上、前記端末数の全エントリの合計値が閾値以上、前記データ量の全エントリの合計値が閾値以上、前記応答時間の全エントリの最大値が閾値以上、及び、前記負荷の全エントリの最大値が閾値以上、という５条件のうちの予め設定された１つ以上が、規定回数以上連続している場合は、電源ＯＮ指示要と判定し、
前記第３のステップでは、電源ＯＦＦ対象のサーバの決定に際して、前記コネクション数、前記端末数、前記データ量、前記応答時間、及び、前記負荷の５項目のサービス量の中から、予め設定された１項目を選択し、選択したサービス量で、前記消費電力値を除算する、請求項４または５に記載の負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバの負荷を分散する負荷分散装置及び負荷分散方法に関する。
【背景技術】
【０００２】
複数のサーバの負荷を分散する負荷分散装置が知られている。
【０００３】
その中には、夜間などサーバへのアクセスが少ない場合やアクセス数が少ない状態が続いている場合に、一部のサーバのみで運用を行い、他のサーバを電源ＯＮ状態のままで待機させる負荷分散装置がある。
【０００４】
しかし、上記の負荷分散装置では、待機中のサーバも電力は消費されているため、サーバ全体としての消費電力は高いままである。
【０００５】
そこで、例えば、特許文献１に記載の負荷分散装置では、最後に運用状態に遷移したサーバの負荷に応じて、運用状態（電源ＯＮ）、待機状態（電源ＯＮ）、省電力状態（電源ＯＦＦ）とするサーバの数を増減させることで、サーバ全体の消費電力を低減させていた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２２５６４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１には、サーバを電源ＯＦＦ（省電力状態）にする場合の具体的な実現方法は何ら記載されていない。
【０００８】
そのため、サーバが、クライアント端末とセッションを確立した上で、そのクライアント端末に対してサービスを提供するものである場合、特許文献１に記載の負荷分散装置では、サーバを電源ＯＦＦする際に、クライアント端末のセッションが一時的に切断される可能性があるという課題がある。
【０００９】
そこで、本発明の目的は、上述した課題を解決することができる負荷分散装置及び負荷分散方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の負荷分散装置は、
各々が端末とセッションを確立した上で該端末に対してサービスを提供する複数のサーバの負荷を分散する負荷分散装置であって、
セッション毎に、当該セッションにおいて前記サーバが提供しているサービス量が対応付けて書き込まれるセッションテーブルと、
前記サーバへの電源ＯＮ／ＯＦＦ指示を実行する日時毎に、当該日時において電源ＯＮ／ＯＦＦの要否の判定に用いるサービス量の閾値が対応付けて書き込まれる電力計画テーブルと、
前記サーバ毎に、当該サーバの消費電力値と、当該サーバの電源ＯＮ／ＯＦＦの状態を表す状態情報と、が対応付けて書き込まれる電力制御テーブルと、
前記複数のサーバに対して、電源ＯＮ／ＯＦＦを指示するパケットを発行するパケット生成部と、
前記セッションテーブルにエントリがない端末からパケットを受信した場合は、前記電力制御テーブルの状態情報が電源ＯＦＦでないサーバのいずれかとのセッションを確立して前記セッションテーブルに新規エントリを作成し、前記セッションテーブルにエントリがあるサーバまたは端末からパケットを受信した場合は、当該エントリのサービス量を更新し、その後に、前記セッションテーブルの全エントリのサービス量の合計値または最大値と前記電力計画テーブルのサービス量の閾値との比較結果を基にした、前記複数のサーバへの電源ＯＮ／ＯＦＦ指示の要否の判定結果を、閾値チェックとして前記電力計画テーブルの日時に対応付けて前記電力計画テーブルに書き込む負荷分散制御部と、
前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＦＦ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮであるサーバ毎に、前記電力制御テーブルの当該サーバの消費電力値を、前記セッションテーブルの当該サーバが提供しているサービス量で除算した値を算出し、算出した値が最大のサーバを電源ＯＦＦ対象に決定し、前記電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込み、前記セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなった時点で、前記パケット生成部に対し、電源ＯＦＦ対象のサーバへ電源ＯＦＦを指示するパケットを発行するよう指示する電力制御スケジューラ部と、を有する。
【００１１】
本発明の負荷分散方法は、
各々が端末とセッションを確立した上で該端末に対してサービスを提供する複数のサーバの負荷を分散する負荷分散装置による負荷分散方法であって、
前記負荷分散装置は、
セッション毎に、当該セッションにおいて前記サーバが提供しているサービス量が対応付けて書き込まれるセッションテーブルと、
前記サーバに電源ＯＮ／ＯＦＦを指示する日時毎に、当該日時において電源ＯＮ／ＯＦＦの要否の判定に用いるサービス量の閾値が対応付けて書き込まれる電力計画テーブルと、
前記サーバ毎に、当該サーバの消費電力値と、当該サーバの電源ＯＮ／ＯＦＦの状態を表す状態情報と、が対応付けて書き込まれる電力制御テーブルと、を有するものであり、
前記セッションテーブルにエントリがない端末からパケットを受信した場合は、前記電力制御テーブルの状態情報が電源ＯＦＦでないサーバのいずれかとのセッションを確立して前記セッションテーブルに新規エントリを作成し、前記セッションテーブルにエントリがあるサーバまたは端末からパケットを受信した場合は、当該エントリのサービス量を更新する第１のステップと、
前記セッションテーブルの全エントリのサービス量の合計値または最大値と前記電力計画テーブルのサービス量の閾値との比較結果を基にした、前記複数のサーバへの電源ＯＮ／ＯＦＦ指示の要否の判定結果を、閾値チェックとして前記電力計画テーブルの日時に対応付けて前記電力計画テーブルに書き込む第２のステップと、
前記電力計画テーブルの日時になった場合、当該日時に対応付けられた閾値チェックが電源ＯＦＦ指示要を示していれば、前記電力制御テーブルの状態情報が電源ＯＮであるサーバ毎に、前記電力制御テーブルの当該サーバの消費電力値を、前記セッションテーブルの当該サーバが提供しているサービス量で除算した値を算出し、算出した値が最大のサーバを電源ＯＦＦ対象に決定する第３のステップと、
前記電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込み、前記セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなった時点で、電源ＯＦＦ対象のサーバへ電源ＯＦＦを指示するパケットを発行する第４のステップと、を有する。
【発明の効果】
【００１２】
本発明によれば、負荷分散装置は、セッションテーブルにエントリがない端末からのパケットを受信した場合は、電力制御テーブルの状態情報が電源ＯＦＦでないサーバのいずれかと新規のセッションを確立するものとし、複数のサーバ全体で提供しているサービス量に応じてサーバの電源をＯＦＦすると決定した場合は、電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込み、セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなった時点で、電源ＯＦＦ対象のサーバへ電源ＯＦＦを指示する。
【００１３】
すなわち、サーバの電源をＯＦＦする場合は、まず、電力制御テーブルの電源ＯＦＦ対象のサーバの状態情報に電源ＯＦＦと書き込むことで、電源ＯＦＦ対象のサーバが新規にセッションを確立しないようにし、セッションテーブルに電源ＯＦＦ対象のサーバのエントリがなくなるまで、すなわち電源ＯＦＦ対象のサーバが確立していたセッションが全て完了するまで待機した後に、電源ＯＦＦ対象のサーバの電源をＯＦＦする。
【００１４】
したがって、端末のセッションが一時的に切断されることなくサーバ全体の消費電力を削減することができるという効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の負荷分散装置の構成およびその周辺構成を示すブロック図である。
【図２】図１に示したセッションテーブルの一例を示す図である。
【図３】図１に示した電力制御テーブルの一例を示す図である。
【図４】図１に示した電力計画テーブルの一例を示す図である。
【図５】図１に示した負荷分散装置において、パケットを受信した場合の動作を説明するフローチャートである。
【図６】図１に示した負荷分散装置において、実サーバへの電源ＯＮ／ＯＦＦ指示の要否を判定する場合の動作を説明するフローチャートである。
【図７】図１に示した負荷分散装置において、実サーバの電源をＯＮ／ＯＦＦする場合の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００１７】
図１を参照すると、本実施形態では、インターネット（３００）に接続されたクライアント端末（不図示）からのアクセスをトリガーにして、サーバ群（２００）を構成する実サーバ（２１０、２２０、２３０）のいずれかが、そのクライアント端末とセッションを確立した上で、そのクライアント端末に対してサービスを提供するものとする。
【００１８】
また、本実施形態の負荷分散装置（１００）は、インターネット（３００）とサーバ群（２００）との間に配置されていて、実サーバ（２１０、２２０、２３０）の負荷を分散するものとする。
【００１９】
本実施形態の負荷分散装置（１００）は、受信部（１０１）と、負荷分散制御部（１０２）と、セッションテーブル（１０３）と、電力制御スケジューラ部（１０４）と、パケット生成部（１０５）と、送信部（１０６）と、タイマ部（１０７）と、電力計画テーブル（１０８）と、電力制御テーブル（１０９）と、を有している。
【００２０】
受信部（１０１）は、仮想ＩＰアドレスが設定されており、インターネット（３００）に接続されたクライアント端末が送信したパケットや、サーバ群（２００）を構成する実サーバ（２１０、２２０、２３０）が送信したパケットを受信する。
【００２１】
セッションテーブル（１０３）には、図２に示すように、現在確立されているセッション毎に、そのセッションを確立しているクライアント端末及び実サーバの情報が対応付けて書き込まれる。具体的には、そのクライアント端末のＩＰアドレスを示す送信元ＩＰアドレス（４０１）と、その実サーバのＩＰアドレスを示す宛先ＩＰアドレス（４０２）と、そのクライアント端末がサービスを受ける場合に生成するＩＰヘッダ内の送信元ポート番号（４０３）と、その実サーバのサービスに割り付けた宛先ポート番号（４０４）と、その実サーバのＭＡＣアドレス（４０５）と、が書き込まれる。さらに、そのセッションにおいて、その実サーバが提供しているサービス量の指標として、その実サーバに接続中のコネクション数（４０６）と、その実サーバに接続中のクライアント数（４０７）と、その実サーバが負荷分散装置（１００）に転送したデータ量（４０８）と、その実サーバからの応答時間（４０９）と、その実サーバのサーバ負荷（４１０）と、が書き込まれる。なお、サーバ負荷（４１０）は、ＣＰＵ負荷・ＩＯ負荷・ディスク負荷の状況を換算して［％］で表したものであり、後述のヘルスチェックにより実サーバ（２１０，２２０，２３０）から負荷分散装置（１００）へ通知される。一方、コネクション数（４０６）、クライアント数（４０７）、データ量（４０８）、及び応答時間（４０９）は、負荷分散装置（１００）が実サーバ（２１０，２２０，２３０）とクライアント端末との間でパケットを中継する過程で取得可能であり、実サーバ（２１０，２２０，２３０）への問い合わせは不要である。
【００２２】
電源制御テーブル（１０９）には、図３に示すように、実サーバ（２１０，２２０，２３０）毎に、その実サーバのＩＰアドレスを示す実サーバＩＰアドレス（５０１）と、その実サーバの消費電力の規格値である消費電力値（５０２）と、その実サーバの電源ＯＮ／ＯＦＦの状態を示す状態情報（５０３）と、が対応付けて書き込まれる。
【００２３】
電力計画テーブル（１０８）には、図４に示すように、実サーバ（２１０，２２０，２３０）への電源ＯＮ／ＯＦＦ指示を実行する日付（６０１）及び計画時刻（６０２）毎に、その時の電源ＯＮ／ＯＦＦの要否の判定に用いるサービス量の閾値（総コネクション数閾値（６０３）、クライアント数閾値（６０４）、合計データ量閾値（６０５）、応答時間閾値（６０６）、及びサーバ負荷閾値（６０７））と、その判定結果を示す閾値チェック（６０８）と、が対応付けて書き込まれる。ここで、総コネクション数閾値（６０３）は、仮想サーバに接続中の総コネクション数の閾値であり、クライアント数閾値（６０４）は、仮想サーバに接続中のクライアント数の閾値であり、合計データ量閾値（６０５）は、実サーバ（２１０，２２０，２３０）から負荷分散装置（１００）に転送する合計データ量の閾値であり、応答時間閾値（６０６）は、全実サーバ（２１０，２２０，２３０）の中で応答時間が最も長い実サーバに許容する応答時間の閾値であり、サーバ負荷閾値（６０７）は、全実サーバ（２１０，２２０，２３０）の中でサーバ負荷が最も多い実サーバに許容するサーバ負荷の閾値である。なお、負荷分散装置（１００）とサーバ群（２００）とで仮想サーバが構築されるものとする。
【００２４】
負荷分散制御部（１０２）は、受信部（１０１）にパケットが受信された場合、そのパケットの送信元がセッション未確立のクライアント端末であれば、電源制御テーブル（１０９）の状態情報（５０３）が電源ＯＦＦでない実サーバのいずれかとのセッションを確立し、そのセッションのエントリをセッションテーブル（１０３）内に新規に作成する。
【００２５】
また、負荷分散制御部（１０２）は、受信部（１０１）に受信されたパケットの送信元がすでにセッションを確立している場合は、そのセッションはセッションテーブル（１０３）にすでにエントリされているため、そのエントリのサービス量のデータを更新する。
【００２６】
なお、負荷分散制御部（１０２）は、セッションが完了すると、そのセッションのエントリをセッションテーブル（１０３）から削除する。クライアント端末は、セッションを保持させるように指定することも可能である。その場合は、クライアント端末は、定期的にキープアライブというパケットを送信し、負荷分散制御部（１０２）は、キープアライブが受信されなくなると、セッションを完了させる。
【００２７】
電力制御スケジューラ部（１０４）は、受信部（１０１）にパケットが受信された場合、その受信日時にしたがって、電力計画テーブル（１０８）のエントリを読み込み、そのエントリのサービス量の閾値を負荷分散制御部（１０２）に通知する。このとき、例えば、電力計画テーブル（１０８）の日付（６０１）及び計画時刻（６０２）が受信日時に最も近いエントリや、受信日時から一定の時間内にあるエントリを読み込む。
【００２８】
負荷分散制御部（１０２）は、受信部（１０１）にパケットが受信された場合、上述のセッションテーブル（１０３）のエントリの新規作成または更新後に、セッションテーブル（１０３）のコネクション数（４０６）、クライアント数（４０７）、データ量（４０８）の全エントリの合計値、応答時間（４０９）、サーバ負荷（４１０）の全エントリの最大値の５項目と、電力制御スケジューラ部（１０４）から通知される閾値とを比較し、その比較結果を基に、電源ＯＮ／ＯＦＦの要否を判定し、その判定結果を電力計画テーブル（１０８）の閾値チェック（６０８）に書き込む。
【００２９】
タイマ部（１０７）は、電力制御スケジューラ部（１０４）に定期的に時刻情報を通知する。
【００３０】
電力制御スケジューラ部（１０４）は、電力計画テーブル（１０８）のエントリの日付（６０１）及び計画時刻（６０２）になると、そのエントリの閾値チェック（６０８）の値にしたがって、実サーバへの電源ＯＮ／ＯＦＦ指示を実行する。
【００３１】
電力制御スケジューラ部（１０４）は、実サーバのいずれかを電源ＯＦＦする場合には、電源制御テーブル（１０９）の状態情報（５０３）が電源ＯＮである実サーバ毎に、電源制御テーブル（１０９）から、その実サーバの消費電力値（５０２）を、セッションテーブル（１０３）から、その実サーバが提供しているサービス量（コネクション数（４０６）、クライアント数（４０７）、データ量（４０８）、応答時間（４０９）、及びサーバ負荷（４１０））の５項目のうちの予め設定された１項目を読み込み、消費電力値（５０２）をサービス量で除算した値が最小の実サーバを電源ＯＦＦ対象に決定する。そして、電源ＯＦＦ対象の実サーバの電源制御テーブル（１０９）の状態情報（５０３）を電源ＯＦＦに変更し、電源ＯＦＦ対象の実サーバのエントリがセッションテーブル（１０３）からなくなった時点で、電源ＯＦＦ対象のサーバへの電源ＯＦＦを指示するダウンパケット（２１１）の発行をパケット生成部（１０５）に指示する。
【００３２】
一方、電力制御スケジューラ部（１０４）は、実サーバのいずれかを電源ＯＮする場合には、電源制御テーブル（１０９）の状態情報（５０３）が電源ＯＮでない実サーバのうち、電源制御テーブル（１０９）の消費電力値（５０２）が最小の実サーバを電源ＯＮ対象に決定する。そして、電源ＯＮ対象の実サーバへの電源ＯＮを指示するＷＡＫＥ  ＯＮ  ＬＡＮのマジックパケット（２１２）の発行をパケット生成部（１０５）に指示し、電源ＯＮ対象の実サーバのヘルスチェックに成功した後に、電源ＯＮ対象の実サーバの電力制御テーブル（１０９）の状態情報（５０３）を電源ＯＮに変更する。
【００３３】
パケット生成部（１０５）は、電力制御スケジューラ部（１０４）の指示によりダウンパケット（２１１）またはマジックパケット（２１２）を生成して、送信部（１０６）に出力する。
【００３４】
送信部（１０６）は、負荷分散制御部（１０２）とパケット生成部（１０５）から出力されたパケットを送信する。
【００３５】
また、各実サーバ（２１０，２２０，２３０）は、パケット受信部（２０１）と、パケット解析部（２０２）と、電源制御部（２０３）と、を有している。なお、図１は、各実サーバ（２１０，２２０，２３０）内のパケット受信に係る構成要素のみを示しており、パケット送信に係る構成要素は省略している。
【００３６】
パケット受信部（２０１）は、負荷分散装置（１００）からパケットを受信する。
【００３７】
パケット解析部（２０２）は、パケット受信部（２０１）で受信したパケットの内でダウンパケット（２１１）とマジックパケット（２１２）を識別し、ダウンパケットの場合は電源制御部（２０３）に電源ＯＦＦを指示し、マジックパケット（２１２）の場合は電源制御部（２０３）に電源ＯＮを指示する。
【００３８】
電源制御部（２０３）は、パケット解析部（２０２）の指示により実サーバの電源ＯＮ／ＯＦＦを制御する。
【００３９】
以下、本実施形態の負荷分散装置（１００）の動作を図１〜７を用いて説明する。
［パケット受信時の動作］
まず、パケット受信時の動作について、図５のフローチャートに沿って説明する。
【００４０】
図５を参照すると、運用前に、ユーザは、電力制御テーブル（１０９）に対し、実サーバ（２１０，２２，２３０）毎に、その実サーバのＩＰアドレス（５０１）と消費電力値（５０２）を設定する（ステップＳ５０１）。この時点で、状態情報（５０３）は空欄になっている。
【００４１】
さらに、ユーザは、電力計画テーブル（１０８）に対し、実サーバ（２１０，２２０，２３０）への電源ＯＮ／ＯＦＦ指示を実行する日付と時刻として、トラフィックの低い日付と時刻を日付（６０１）と計画時刻（６０２）に設定すると共に、総コネクション数閾値（６０３）、クライアント数閾値（６０４）、合計データ量閾値（６０５）、応答時間閾値（６０６）、及びサーバ負荷閾値（６０７）の５つの閾値の中で、実サーバの電源ＯＮ／ＯＦＦの要否の判定に用いる、予め設定された１つ以上の閾値のみ値を設定する（ステップＳ５０２）。
【００４２】
負荷分散装置（１００）は、動作開始後、定期的に、各実サーバ（２１０，２２０，２３０）からサーバ負荷の情報を収集するヘルスチェックを行う（ステップＳ５０３）。
【００４３】
負荷分散装置（１００）の受信部（１０１）は、インターネット（３００）を介してクライアント端末から仮想ＩＰアドレス宛のパケットを受信するか、または、サーバ群（２００）からクライアント端末に送信したパケット受信すると、受信したパケットを負荷分散制御部（１０２）に出力する（ステップＳ５０４）。
【００４４】
次に、負荷分散制御部（１０２）は、受信部（１０１）から出力されたパケット内の送信元ＩＰアドレス、送信元ポート番号、宛先ポート番号を検索キーとして、セッションテーブル（１０３）内に、そのパケットの送信元が確立しているセッションのエントリがあるか否かを検索する（ステップＳ５０５）。
【００４５】
具体的には、ステップＳ５０５において、負荷分散制御部（１０２）は、クライアント端末からのパケットを受信した場合は、そのパケット内の送信元ＩＰアドレス、送信元ポート番号、宛先ポート番号を、それぞれ、セッションテーブル（１０３）内の送信元ＩＰアドレス（４０１）、送信元ポート番号（４０３）、宛先ポート番号（４０４）と照合して、上記エントリを検索し、また、サーバ群（２００）からのパケットを受信した場合は、そのパケット内の送信元ＩＰアドレス、送信元ポート番号、宛先ポート番号を、それぞれ、セッションテーブル（１０３）内の宛先ＩＰアドレス（４０２）、宛先ＩＰポート番号（４０４）、送信元ＩＰポート番号（４０３）と照合して、上記エントリを検索する。
【００４６】
ステップＳ５０５において、セッションテーブル（１０３）内に該当エントリが検索されない場合、受信部（１０１）で受信したパケットはセッション未確立のクライアント端末からの最初のパケットとなる。そのため、負荷分散制御部（１０２）は、電力制御テーブル（１０９）の状態情報（５０３）を読み込み（ステップＳ５０７）、状態情報（５０３）に電源ＯＦＦが書き込まれていない実サーバ（すなわち、空欄か、または、電源ＯＮが書き込まれている実サーバ）のいずれかと、そのクライアント端末とセッションを確立させ、そのセッションのエントリをセッションテーブル（１０３）内に新規に作成する（ステップＳ５０８）。このとき、電力制御テーブル（１０９）の状態情報（５０３）が空欄であった実サーバにセッションを確立させた場合は、電力制御スケジューラ部（１０４）は、その実サーバの状態情報（５０３）に電源ＯＮと書き込む。
【００４７】
一方、ステップＳ５０５において、セッションテーブル（１０３）内に該当エントリが検索された場合、負荷分散制御部（１０２）は、そのエントリのコネクション数（４０６）、クライアント数（４０７）、データ量（４０８）、応答時間（４０９）、及びサーバ負荷（４１０）を更新する（ステップＳ５０６）。なお、サーバ負荷（４１０）には、ステップＳ５０３のヘルスチェックで取得した最新のサーバ負荷の情報を書き込むものとする。
【００４８】
次に、負荷分散制御部（１０２）は、図６の実サーバへの電源ＯＮ／ＯＦＦ指示の要否の判定を行い（ステップＳ５０９）、その判定結果を電力計画テーブル（１０８）の閾値チェック（６０８）に書き込む（ステップＳ５１０）。
【００４９】
その後、負荷分散制御部（１０２）は、受信部（１０１）で受信したパケットを送信部（１０８）へ出力する（ステップＳ５１１）。
［実サーバへの電源ＯＮ／ＯＦＦ指示の要否の判定動作］
次に、実サーバへの電源ＯＮ／ＯＦＦ指示の要否を判定する動作について、図６のフローチャートに沿って説明する。
【００５０】
図６を参照すると、パケット受信によるセッションテーブル（１０３）のエントリの新規作成または更新後（ステップＳ６０１）、負荷分散制御部（１０２）は、セッションテーブル（１０３）の各エントリのコネクション数（４０６）、クライアント数（４０７）、データ量（４０８）、応答時間（４０９）、及びサーバ負荷（４１０）を基に、次の５項目のうち予め設定された１つ以上を算出する（ステップＳ６０２）。以下では、次の５項目の全てを算出し、全てを閾値と比較するものとして説明する。
【００５１】
１項目：全エントリのコネクション数（４０６）の合計値
２項目：全エントリのクライアント数（４０７）の合計値
３項目：全エントリのデータ量（４０８）の合計値
４項目：全エントリの応答時間（４０９）の最大値
５項目：全エントリのサーバ負荷（４１０）の最大値
次に、電力制御スケジューラ部（１０４）は、パケットの受信日時にしたがって、電力計画テーブル（１０８）のエントリを選択し、選択したエントリの総コネクション数閾値（６０３）、クライアント数閾値（６０４）、データ量閾値（６０５）、応答時間閾値（６０６）、サーバ負荷閾値（６０７）の５つの閾値を、負荷分散制御部（１０２）へ通知する（ステップＳ６０３）。
【００５２】
次に、負荷分散制御部（１０２）は、ステップＳ６０２で算出した値とステップＳ６０３で通知された値とを比較し、その比較結果が次の３つのパターンのどれに該当するか否かを判定する（ステップＳ６０４〜Ｓ６０８）。
【００５３】
具体的には、負荷分散制御部（１０２）は、まず、ステップＳ６０４において、コネクション数（４０６）の全エントリの合計値＜総コネクション数閾値（６０３）、クライアント数（４０７）の全エントリの合計値＜クライアント数閾値（６０４）、データ量（４０８）の全エントリの合計値＜データ量閾値（６０５）、応答時間（４０９）の全エントリの最大値＜応答時間閾値（６０６）、サーバ負荷（４１０）の全エントリの最大値＜サーバ負荷閾値（６０７）の条件が規定回数以上連続しているか否かを判定し、連続していれば、ステップＳ６０６において、Ａパターン（電力ＯＦＦ指示要）と判定する。
【００５４】
ステップＳ６０４において、連続していなければ、負荷分散制御部（１０２）は、続いて、ステップＳ６０５において、コネクション数（４０６）の全エントリの合計値≧総コネクション数閾値（６０３）、クライアント数（４０７）の全エントリの合計値≧クライアント数閾値（６０４）、データ量（４０８）の全エントリの合計値≧データ量閾値（６０５）、応答時間（４０９）の全エントリの最大値≧応答時間閾値（６０６）、サーバ負荷（４１０）の全エントリの最大値≧サーバ負荷閾値（６０７）の条件が規定回数以上連続しているか否かを判定し、連続していれば、ステップＳ６０７において、Ｂパターン（電力ＯＮ指示要）と判定する。
【００５５】
ステップＳ６０５において、連続していなければ、負荷分散制御部（１０２）は、ステップＳ６０８において、Ｃパターン（電力ＯＮ／ＯＦＦ指示不要）と判定する。
【００５６】
その後、負荷分散制御部（１０２）は、電力計画テーブル（１０８）の該当エントリの閾値チェック（６０８）へ、Ａパターン、Ｂパターン、またはＣパターンのいずれかを書き込む（ステップＳ６０９）。
［実サーバの電源ＯＮ／ＯＦＦ動作］
次に、実サーバの電源をＯＮ／ＯＦＦする動作について、図７のフローチャートに沿って説明する。
【００５７】
図７を参照すると、タイマ部（１０７）が定期的に時刻情報を電力制御スケジューラ部（１０４）に通知すると（ステップＳ７０１）、電力制御スケジューラ部（１０４）は、通知された時刻情報が示す日付及び時刻を検索キーとして、電力計画テーブル（１０８）内に、その日付及び時刻と日付（６０１）及び計画時刻（６０２）が一致するエントリがあるか否かを検索する（ステップＳ７０２）。
【００５８】
ステップＳ７０２において、電力計画テーブル（１０８）内に該当エントリが検索されない場合は何もしない。
【００５９】
一方、ステップＳ７０２において、電力計画テーブル（１０８）内に該当エントリが検索された場合、そのエントリの閾値チェック（６０８）がＡ１パターンを示していれば、実サーバのいずれかの電源をＯＦＦする必要があると判断し（ステップＳ７０３）、Ｂ１パターンを示していれば、実サーバのいずれかの電源をＯＮする必要があると判断し（ステップＳ７０９）、それ以外は何もしない。
【００６０】
実サーバのいずれかの電源をＯＦＦする場合には、電力制御スケジューラ部（１０４）は、電力制御テーブル（１０９）の状態情報（５０８）に電源ＯＮが書き込まれている稼働中の実サーバ毎に、電源制御テーブル（１０９）から、その実サーバの消費電力値（５０２）を読み込み、また、セッションテーブル（１０３）から、その実サーバが提供しているサービス量（コネクション数（４０６）、クライアント数（４０７）、データ量（４０８）、応答時間（４０９）、及びサーバ負荷（４１０））の５項目のうちの予め設定された１項目を読み込み、消費電力値（５０２）をサービス量で除算した値が最大の実サーバを電源ＯＦＦ対象に決定し（ステップＳ７０４）、電源ＯＦＦ対象の実サーバの電源制御テーブル（１０９）のエントリの状態情報（５０３）に電源ＯＦＦを書き込む（ステップＳ７０５）。
【００６１】
電源ＯＦＦ対象の実サーバの状態情報（５０３）に電源ＯＦＦを書き込むと、以降、負荷分散制御部（１０２）は、セッションテーブル（１０３）に新規エントリを作成する場合に（図５のステップＳ５０８参照）、その実サーバを新規のセッションを確立する対象から除外する（ステップＳ７０６）。
【００６２】
以降、電力制御スケジューラ部（１０４）は、電源ＯＦＦ対象の実サーバのＩＰアドレスを検索キーとして、セッションテーブル（１０３）の全エントリの宛先ＩＰアドレス（４０２）をサーチし（ステップＳ７０７）、ヒットするエントリがなくなるまで、すなわち、電源ＯＦＦ対象の実サーバが確立していたセッションが全て完了するまで待機する。
【００６３】
その後、電力制御スケジューラ部（１０４）は、電源ＯＦＦ対象の実サーバへのダウンパケット（２１１）の発行をパケット生成部（１０５）へ指示し、パケット生成部（１０５）は、ダウンパケット（２１１）を生成して送信部（１１８）から送信する（ステップＳ７０８）。
【００６４】
電源ＯＦＦ対象の実サーバでは、ダウンパケット（２１１）は、パケット受信部（２０１）で受信されて、パケット解析部（２０２）へ出力される。パケット解析部（２０２）では、ダウンパケット（２１１）を解析し電源をＯＦＦすべきと判断して電源制御部（２０３）に指示を出す。電源制御部（２０３）は、パケット解析部（２０２）から出された指示により電源のＯＦＦを行う。
【００６５】
一方、実サーバのいずれかの電源ＯＮする場合は、電力制御スケジューラ部（１０４）は、電力制御テーブル（１０９）の状態情報（５０８）に電源ＯＮが書き込まれていない未稼働の実サーバ（すなわち、空欄か、または、電源ＯＦＦが書き込まれている実サーバ）の中から、消費電力値（５０２）が最小の実サーバを電源ＯＮ対象に決定し（ステップＳ７１０）、マジックパケット（２１２）の生成をパケット生成部（１０５）へ指示し、パケット生成部（１０５）は、マジックパケット（２１２）を生成して送信部（１１８）から送信する（ステップＳ７１１）。
【００６６】
電源ＯＮ対象の実サーバでは、マジックパケット（２１２）は、パケット受信部（２０１）で受信されて、パケット解析部（２０２）へ出力される。パケット解析部（２０２）では、マジックパケット（２１２）を解析し電源をＯＮすべきと判断して電源制御部（２０３）に指示を出す。電源制御部（２０３）は、パケット解析部（２０２）から出された指示により電源のＯＮを行う。
【００６７】
これにより、負荷分散装置（１００）が定期的に行うヘルスチェックにおいて（図５のステップ５０３参照）、電源ＯＮ対象の実サーバからサーバ負荷の情報が通知されることになる。電源ＯＮ対象の実サーバのヘルスチェックに成功した後に（ステップＳ７１２）、電力制御スケジューラ部（１０４）は、電力制御テーブル（１０９）の電源ＯＮ対象の実サーバの状態情報（５０３）に電源ＯＮを書き込む（ステップＳ７１３）。
【産業上の利用可能性】
【００６８】
本発明は、データセンターなどにおいて、１台のサーバに負荷が集中し応答時間が長くなることと特定のサーバのダウンによりシステムが停止することを回避するために負荷分散装置を設置している場合において、サーバ全体としての消費電力を削減するという用途に利用可能である。
【符号の説明】
【００６９】
１００    負荷分散装置
１０１    受信部
１０２    負荷分散制御部
１０３    セッションテーブル
１０４    電力制御スケジューラ部
１０５    パケット生成部
１０６    送信部
１０７    タイマ部
１０８    電力計画テーブル
１０９    電力制御テーブル
２００    サーバ群
２０１    パケット受信部
２０２    パケット解析部
２０３    電源制御部
２１０，２２０，２３０    実サーバ
２１１    ダウンパケット
２１２    マジックパケット
【図１】
2011159153.tif 000003
【図２】
2011159153.tif 000004
【図３】
2011159153.tif 000005
【図４】
2011159153.tif 000006
【図５】
2011159153.tif 000007
【図６】
2011159153.tif 000008
【図７】
2011159153.tif 000009