(57)【特許請求の範囲】
【請求項１】
ネットワークに接続される複数のクライアントと複数のサーバの間に、上記複数のクライアントの要求をサーバ側に転送する、上記クライアントのそれぞれに対応して設けられた複数のクライアント側負荷分散サーバと、上記複数のサーバのそれぞれに一つずつ対応し、クライアント側からのリクエストをサーバに転送する複数のサーバ側負荷分散サーバを設けて、上記クライアント側負荷分散サーバおよび上記サーバ側負荷分散サーバをマルチキャスト通信手段で接続し、
上記マルチキャスト通信手段を用いて、上記クライアント側負荷分散サーバおよび上記複数のサーバ側負荷分散サーバの間で上記複数のサーバの負荷、優先度、データ構成情報をリアルタイムで交換し、
上記クライアント側負荷分散サーバは、上記クライアント側負荷分散サーバおよび上記複数のサーバ側負荷分散サーバの間で交換される情報を用いて上記複数のサーバでの負荷が均等になるようクライアントからのリクエストを分散させて上記複数のサーバ側負荷分散サーバの何れかに転送する
ことを特徴とする負荷分散システム。
【請求項２】
リアルタイムで交換される他サーバの負荷、優先度、データ構成情報により、故障したサーバを認識し、自動的に故障したサーバをサービスから取り除く
ことを特徴とする請求項１記載の負荷分散システム。
【請求項３】
リアルタイムで交換される、他サーバの負荷、優先度、データ構成情報により、自動的に、新たなサーバもしくは故障から復旧したサーバをサービスに加えることを特徴とする請求項１または２記載の負荷分散システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、イントラネット等のネットワーク上の通信負荷を自律的に分散することができる負荷分散システムに関する。
【０００２】
【従来の技術】
現在のＷＷＷでの通信の負荷分散は、各時点でのサーバの負荷ではなく、予めサーバ管理者が各サーバの負荷が最適になるように設定した各サーバの重みに基づいて、クライアント側がトランザクション、あるいは時間を単位に一方的に負荷を分散させることで成り立っている。
【０００３】
【発明が解決しようとする課題】
上記した確率的な方法では、サーバに掛かる負荷を前もって予測しなければならないだけでなく、長い時間間隔の平均として負荷を均衡させることが可能であるが、短い時間間隔では負荷の片寄りが起こってしまう。
計算機は、各時点での負荷が分散していなければ、コンテキスト・スイッチ、ページングなどを頻発し、この部分でオーバヘッドを発生させてしまい、トランザクションを効率よく実行できなくなってしまう。
また、サーバが何らかの故障でダウンしてしまうと、管理者が想定した負荷分散が行われず、負荷がサーバ間で偏在するだけでなく、ときには特定のサーバへの負荷が集中してサービス全体のレスポンスを著しく低下させてしまう。
【０００４】
一方、場合によっては、全てのクライアントを平等に扱うのではなく、優先しなければならないクライアントが存在する。このような場合、現在のＷＷＷ環境では、優先するクライアントのための専用サーバを用意しなければならない。
しかし、ＷＷＷのアクセスは一日を通して一定ではなく、混んでいる時間帯と空いている時間帯があるのが通常であり、混んでいる時間帯に特定のクライアントを優先できれば充分なのに、専用サーバを用意しなければならず、計算機を有効に利用できない。
【０００５】
さらに、現在のＷＷＷの環境の負荷分散の手法では、管理者が負荷の状況に応じて負荷分散のために新たなサーバ、故障から復旧したサーバを追加しても、直ぐにはクライアント全体に反映、通知する手段がないので、負荷分散が効果を表すまでに数十分から数時間のディレーが生じてしまう。
本発明は上記した事情に鑑みなされたものであって、その目的とするところは、マルチキャスト通信を使用して計算機間で負荷、優先、構成情報をリアルタイムで交換することにより、各サーバの負荷を均等に分散させることができる負荷分散システムを提供することである。
【０００６】
【課題を解決するための手段】
サーバからクライアントへの１対１通信を行った場合、クライアントの数に比例した莫大な通信量が必要であるが、１対ｎのマルチキャスト通信では、一定の数の通信量しか必要でない。
これを、インターネット（Internet) のように非常に大きなネットワークで実行すると、ほとんど使われない情報をネットワーク全体に通信することになってしまい、ネットワークのバンド幅を浪費することになる。しかしイントラネット(Intranet)などでは、社内で広く使われるサーバが集約化され集中管理されているので、上記マルチキャスト通信を用いても無駄な通信が少なくなる。
本発明は上記点に着目し、マルチキャスト通信手段を利用して、サーバの負荷状況をクライアントに伝達し、ネットワーク上のサーバの負荷を最適化する。
なお、本発明は、インターネット全体に適用するのは困難であるが、イントラネット、エクストラネット、インターネットの一部ではサーバ管理者の負担を軽減するともに、効率的な自律負荷分散が可能となる。
【０００７】
図１は本発明の原理構成図である。
本発明においては、同図に示すように、上記複数のクライアントの要求をサーバ側に転送する、上記クライアントのそれぞれに対応して設けられた複数のクライアント側負荷分散サーバ１ｂと、上記複数のサーバのそれぞれに一つずつ対応し、クライアント側からのリクエストをサーバに転送する複数のサーバ側負荷分散サーバ２ｂを設けて、上記クライアント側負荷分散サーバ１ｂおよび上記サーバ側負荷分散サーバ２ｂをマルチキャスト通信手段３で接続し、マルチキャスト通信手段３を用いて、上記クライアント側負荷分散サーバ１ｂおよび上記複数のサーバ側負荷分散サーバ２ｂの間で上記複数のサーバの負荷、優先度、データ構成情報をリアルタイムで交換する。
上記クライアント側負荷分散サーバ１ｂは、上記クライアント側負荷分散サーバ１ｂおよび上記複数のサーバ側負荷分散サーバ２ｂの間で交換される情報を用いて上記複数のサーバでの負荷が均等になるようクライアントからのリクエストを分散させて上記複数のサーバ側負荷分散サーバ２ｂの何れかに転送する。
【０００８】
本発明の請求項１〜３の発明においては、上記のようにマルチキャスト通信手段３を用いて、サーバの負荷・優先・構成情報を定期的あるいは適宜クライアントにフィードバックしており、クライアントは各時点で正確なサーバの負荷の状況やサーバの故障、新たなサーバの追加、故障したサーバの復旧等を知ることができるので、クライアントが短い時間間隔で各サーバに均等に負荷を分散させることができる。
さらに、サーバのサービス内容を含めた構成情報をクライアントに通知しているので、サーバのサービス内容を動的に変更することができる。
【０００９】
またさらに、サーバの故障、新たなサーバの追加、故障したサーバの復旧等を知ることができるので、故障したサーバは自動的にサービスから除かれ、また、新たに追加されたサーバ、故障から復旧したサーバは自動的にサービスに加えられる。
本発明のシステムは、既存のクライアント／サーバシステムに変更を加えずに、性能を自動的に最適化し、管理者の運用負担を低減化することができる。しかも、管理者が前もって綿密に負荷分散を計画し、常時負荷変動を監視する必要もない。
【００１０】
【発明の実施の形態】
図２は本発明の実施例のシステムの全体構成を示す図である。
同図において、１３、１４はＷＷＷ負荷分散サーバ（以下、負荷分散サーバという）であり、負荷分散サーバ１４、１３はそれぞれＨＴＴＰ（Hyper Text Transfer Protocol）ＷＷＷサーバ１５（以下、ＷＷＷサーバという）およびＨＴＴＰ  Ｐｒｏｘｙサーバ１２（以下、Ｐｒｏｘｙサーバという）のフロントエンド、バックエンドとして動作する。
負荷分散サーバ１３、１４はマルチキャスト、ネットワーク１６に接続されており、負荷分散サーバが起動されると、マルチキャスト通信により他の既に動作しているサーバの構成、負荷、優先情報を獲得し、これらの間に多重化された通信を可能とするコネクションを張る。
【００１１】
Ｐｒｏｘｙサーバ１２はＨＴＴＰクライアント１１からリクエストを受けると、リクエストを最も近くにある負荷分散サーバ１３へ転送する。負荷分散サーバ１３は、上記リクエストをＷＷＷサーバ１５の近くにある負荷分散サーバ１４へ多重化されたコネクションを使って中継する。
なお、複数のＷＷＷサーバにより負荷分散を行うときは、各ＷＷＷサーバに一つずつ負荷分散サーバ１４を割り当てておく（一対のＷＷＷサーバと負荷分散サーバを同じ計算機上で動作させてもよい）。
【００１２】
また、その際、負荷分散サーバ１３は複数のＷＷＷサーバ１５の負荷、優先度に基づき、所定のアルゴリズムによりリクエストを転送する負荷分散サーバを決定することにより負荷分散を行う。
リクエストを受けた負荷分散サーバ１４はＷＷＷサーバ１５へリクエストを転送し返事を受け取る。そして、リクエストが送られてきたパスを逆にたどって、返事をＰｒｏｘｙサーバ１２へ返す。
【００１３】
図３、図４はそれぞれ負荷分散サーバ１３、負荷分散サーバ１４の構成を示す図であり、図３、図４はＨＴＴＰ送受信器２１、多重化装置２３、送受信器２４の左右の位置が入れ代わった点を除き同一である。
図３、図４において、２１はＨＴＴＰ受信器、２２はＨＴＴＰスイッチ、２３は多重化装置、２４は送受信器である。また、２５は自サーバの負荷を検出する負荷検出器、２６は自サーバの負荷・優先・構成情報を格納するテーブルである。上記テーブル２６には、負荷検出器２５により検出される「自サーバの負荷状態（負荷情報）」、管理者制御インタフェースから設定される「自サーバの優先度を示す優先情報」および「自サーバのデータ構成を示す構成情報」が格納される。
【００１４】
これらの情報は、定期的にあるいは適宜マルチキャスト送受信器２８からマルチキャスト・ネットワーク１６を介して他の負荷分散サーバへ送られる。
２７は他サーバの負荷、優先、構成情報を格納したテーブルであり、負荷分散サーバが起動されると、他サーバのこれらの情報をマルチキャスト通信により獲得し、上記テーブル２７の情報を更新する。
【００１５】
図５、図６は本実施例の負荷分散サーバの処理を説明するフローチャートであり、同図により本実施例について説明する。
(1) 負荷分散サーバが起動されると、まず管理者制御であるかを判定し、管理者制御の場合には、自サーバの負荷・優先・構成情報を前記テーブル２７に設定する（図５のステップＳ１，Ｓ２）。
【００１６】
(2) 管理者制御でない場合には、マルチキャスト受信であるかを調べ、マルチキャスト受信の場合には、マルチキャスト・ネットワーク１６を介して他サーバの負荷・優先・構成情報を獲得し、他サーバの負荷・優先・構成情報テーブル２７を更新する（ステップＳ３，Ｓ４，Ｓ５）。
また、特定のサーバからのマルチキャスト受信が所定時間ないことなどにより故障したサーバを認識し、故障したサーバがあったとき、そのサーバのテーブル情報を変更する（ステップＳ６，Ｓ７）。
上記のように他のサーバが故障したとき、負荷分散サーバのテーブル情報が変更されるので、故障したサーバは自動的にサービスから取り除かれ、また、新たなサーバが追加されたり、故障していたサーバが復旧すると、それに応じて上記テーブル情報が変更されるため、新たに追加されたサーバ、故障から復旧したサーバが自動的にサービスに加えられる。
(3) マルチキャスト受信でない場合には、マルチキャスト送信であるかを調べ、マルチキャスト送信の場合には、自サーバの負荷・優先・構成情報テーブル２７の内容をダンプして、マルチキャスト・ネットワーク１６を介して他サーバへ送信する（ステップＳ８，Ｓ９，Ｓ１０）。
【００１７】
(4) マルチキャスト送信でない場合には、ＨＴＴＰ受信であるかを調べる。ＨＴＴＰ受信の場合には、ＨＴＴＰ送受信器２１で受信したリクエストをＨＴＴＰスイッチ２２へ転送し、他サーバの負荷・優先・構成情報テーブル２７を検索する（図６のステップＳ１１，Ｓ１２，Ｓ１３）。
そして、上記負荷・優先・構成情報に基づき、転送先の負荷分散サーバを設定する（ステップＳ１４）。
例えば、負荷を均等化する場合には、一番負荷の軽いサーバを検索し、そのサーバを転送先サーバとする。
以上のようにして転送先サーバが決まると、多重化装置２３により多重化し、リクエストを送受信器２４から負荷分散サーバへ送信する（ステップＳ１５，Ｓ１６）。
【００１８】
(5) ＨＴＴＰ受信でない場合には、多重化受信であるかを調べ、多重化受信の場合には、リクエストを多重化装置によりデマルチプレックスする。そして、負荷分散サーバ１４からリクエストを転送する場合には、リクエストの転送先を検索し、ＨＴＴＰ送信を行う。また、負荷分散サーバ１３からＰｒｏｘｙサーバへ返事を返すときには、ＨＴＴＰの返事の戻り先を検索し、ＨＴＴＰ送信を行う（ステップＳ１７，Ｓ１８，Ｓ１９，Ｓ２０）。
【００１９】
【発明の効果】
以上説明したように本発明においては、以下の効果を得ることができる。
（１）マルチキャスト通信手段を用いて、サーバの負荷・優先・構成情報を定期的あるいは適宜に交換しているので、短い時間間隔で各サーバに均等に負荷を分散させることができ、また、サーバのサービス内容を動的に変更することができる。
さらに、故障したサーバは自動的にサービスから除かれ、また、新たに追加されたサーバ、故障から復旧したサーバは自動的にサービスに加えられる。
【００２０】
特に、イントラネット等の企業内での通信は、インターネットの通信と比較して負荷の偏りが大きい。また、企業内部に限定されるため、サーバの数が少ない。このため、本発明のシステムをイントラネット等の企業内での通信に適用することにより、オーバヘッドとなる負荷・優先・構成情報のマルチキャスト通信を少なく保ったまま、サーバに掛かる負荷を制御して、負荷を最適に均衡化することができる。
（２）企業内の場合、特定のユーザに対するアクセス・レスポンスを優先しなければならない場合があるが、本発明によれば、新たに専用サーバを導入することなく、動的にユーザへのレスポンスを優先させることができる。
（３）既存のサーバ／クライアントシステムに大きな変更を加えることなく、性能を自動的に最適化することができ、管理者の運用負担を低減化することができる。また、性能に関わる詳しいチューニング技術を習得していない管理者でも、効率的な運用が可能となる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明の実施例のシステムの全体構成図である。
【図３】負荷分散サーバの構成を示す図である。
【図４】負荷分散サーバの構成を示す図である。
【図５】負荷分散サーバの処理を示すフローチャート（１）である。
【図６】負荷分散サーバの処理を示すフローチャート（１）である。
【符号の説明】
１ａ        クライアント
２ａ        サーバ
１ｂ，２ｂ  負荷分散サーバ
３          マルチキャスト通信手段
１１        クライアント
１２        Ｐｒｏｘｙサーバ
１３，１４  負荷分散サーバ
１５        ＷＷＷサーバ
１６        マルチキャスト・ネットワーク
２１        ＨＴＴＰ送受信器
２２        ＨＴＴＰスイッチ
２３        多重化装置
２４        送受信器
２５        負荷検出器
２６        自サーバの負荷・優先・構成情報テーブル
２７        他サーバの負荷・優先・構成情報テーブル
２８        マルチキャスト送受信器
【図１】
0003784137.tif 000002
【図２】
0003784137.tif 000003
【図３】
0003784137.tif 000004
【図４】
0003784137.tif 000005
【図５】
0003784137.tif 000006
【図６】
0003784137.tif 000007