(57)【要約】【課題】システム内で負荷分散のために必要とされる相互通信をできるだけ少なくすること、負荷分散装置の台数に比例した性能を得ること、を実現する負荷分散処理システムを提供する。【解決手段】受信パケットに含まれる高位レイヤ情報を解析して該受信パケットの属性情報を生成し、該属性情報を付加したパケットを送出する第１の負荷分散装置１１と、パケットのトラヒック状況情報と第１の負荷分散装置１１から送出された前記属性情報とに基づいて、各パケットを振り分けるべき最適な前記サーバを決定して前記パケットを送出する第２の負荷分散装置１２と、を備え、さらに好ましくは、前記受信パケットを、複数の第１の負荷分散装置１１のうちのいずれかに振り分ける第３の負荷分散装置１３を備える。【選択図】      図２
2004158977.tif 000002
【特許請求の範囲】
【請求項１】
クライアント側から受信した受信パケットに含まれる高位レイヤ情報を解析して該受信パケットの属性情報を生成し、該属性情報を付加したパケットを送出する第１の負荷分散装置と、
配下に接続される各サーバに送出されたパケットのトラヒック状況を各該サーバ対応に監視し、そのトラヒック状況情報と前記第１の負荷分散装置から送出された前記属性情報とに基づいて、各前記パケットを振り分けるべき最適な前記サーバを決定し、当該決定サーバに対し該パケットを送出する第２の負荷分散装置と、
を備えることを特徴とする負荷分散処理システム。
【請求項２】
前記第１の負荷分散装置はパケット解析手段を有し、該パケット解析手段は、前記高位レイヤ情報によりアプリケーションを特定する特定情報とそのアプリケーションに係る一連のトランザクションを識別する識別情報とを前記属性情報として生成し、さらに、該一連のトランザクションが終了したときにその終了情報を生成して、これらの情報を前記受信パケットに付加し前記第２の負荷分散装置に送出することを特徴とする請求項１に記載の負荷分散処理システム。
【請求項３】
前記第２の負荷分散装置はサーバ選択手段を有し、該サーバ選択手段は、前記トラヒック状況情報として、パケットの流量ならびに前記トランザクションの数に関する統計情報を取得すると共に、受信した前記特定情報に基づいて当該アプリケーションを実行可能な一群の前記サーバを特定しさらに前記統計情報をもとにそのサーバ群のうち最適な宛先サーバを決定して前記パケットを送出することを特徴とする請求項２に記載の負荷分散処理システム。
【請求項４】
前記サーバ選択手段は、各前記サーバの縮退と復旧に関する縮退／復旧情報を取得し、縮退中のサーバを前記宛先サーバの決定対象から除外することを特徴とする請求項３に記載の負荷分散処理システム。
【請求項５】
前記サーバ選択手段は、前記サーバ群の特定と前記宛先サーバの決定に要する各種情報を格納する各種テーブルを有することを特徴とする請求項４に記載の負荷分散処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、負荷分散処理システム、特にネットワークを介してクライアントから送信されてきたパケット（サービス要求）を、複数のサーバのうちのいずれかを適切に選択して、振り分けるための負荷分散処理システムに関する。
【０００２】
【従来の技術】
近年、ネットワークにおけるサービスの複雑化や大規模化に呼応して、サーバに対してもその高性能化が強く求められている。これに対処すべくサーバを複数設置してそのサービスを複数のサーバに分散させて処理するという、いわゆる負荷分散の技術が一般に採用されるようになった。
【０００３】
例えば下記の〔特許文献１〕〜〔特許文献５〕や、本出願人による特願２００１−３７２８３６号等が、上記負荷分散を実現する従来技術として提案されている。このうち、〔特許文献１〕、特願２００１−３７２８３６号および〔特許文献２〕については、それぞれ図１４、図１５，１６および図１７を参照しながら、後に詳述する。
【０００４】
図１４に示す従来例１（米国特許第６，０９７，８８２号明細書）による負荷分散処理システムは、外部網から受信したパケットを解析することにより、パケット処理が可能な１または複数のサーバを選択する。そのとき該当サーバ（候補）が複数存在する場合には、サーバの処理性能、例えばスループットや呼処理能力など、から見て最も適切な１つのサーバに、当該パケットを振り分ける、というものである。
【０００５】
また図１５，１６に示す従来例２（特願２００１−３７２８３６号）による負荷分散処理システムは、図１４に示す負荷分散装置（α）そのものを、複数の負荷分散装置（α１…αＮ）に分散させ、さらにこれらの装置（α１…αＮ）の前段に単純な振り分け用負荷分散装置（β）を設ける、というものである。
【０００６】
さらにまた図１７に示す従来例３（米国特許第５，７７４，６６８号公報）による負荷分散処理システムは、図１５，１６に示す負荷分散装置（α１…αＮ）のいずれもが、いずれのサーバにもパケットを振り分けることができるようにする、というものである。
【０００７】
【特許文献１】
米国特許第６，０９７，８８２号明細書
【特許文献２】
米国特許第５，７７４，６６８号明細書
【特許文献３】
特開２００１−１０１１３４号公報（請求項１、段落〔００２１〕〜〔００２４〕、〔００２５〕の第１〜３行、〔００４０〕、〔００４１〕の第１４〜１６行、〔００４２〕）
【特許文献４】
特開２００１−１６７０７４号公報
【特許文献５】
特開２００２−１４１９３６号公報
【０００８】
【発明が解決しようとする課題】
後に図１４、図１５，１６および図１７を参照して説明するように、上記従来例１〜従来例３には次のような問題がある。
【０００９】
従来例１（図１４）においては、上記負荷分散処理システム１におけるパケットの解析に複雑な処理を適用したい、という要求が生じたとき、上記負荷分散装置αの処理性能で当該システム全体の処理性能が決まってしまうことから、結局、この負荷分散装置αがシステムの処理性能を向上させる上で、ボトルネックになる、という第１の問題がある。
【００１０】
また従来例２（図１５，１６）においては、ある負荷分散装置（例えばα１）が過負荷になったとき、その装置（α１）の配下のサーバ群の処理能力に余裕があったとしても、その装置（α１）が過負荷になる直前での処理能力迄しかシステムを働かせることができない、という第２の問題がある。このとき、上記の過負荷を解消するために、負荷分散装置（α１…αＮ）に対しさらにもう１台新たに負荷分散装置を増設したとすると、この増設した負荷分散装置を所期のとおり稼動させるためにその配下に、所定数のサーバを、システム全体としては、上記のとおり、サーバ群の処理能力に余裕があるにも拘らず、増設しなければならない、という第３の問題がある。
【００１１】
さらに従来例３（図１７）においては、各サーバに対して複数の負荷分散装置（α１…αＮ）が接続するので、これら負荷分散装置間でパケットの振り分けに競合が生じてはならない。このために、全ての負荷分散装置が常時同一の振り分け情報を共有している必要がある。つまりその共有のための通信を、各負荷分散装置と全てのサーバとの間で、もしくは全ての負荷分散装置の間で、常時行う必要がある、という第４の問題がある。加えて、全てのサーバに均等にパケットを振り分けるためには、各サーバからその状態情報を全ての負荷分散装置に対して常時提供する必要があり、上記通信に要する通信量は相当大きなものになる、という第５の問題がある。
【００１２】
したがって本発明は、上記諸問題点に鑑み、負荷分散処理に必要とされるシステム内での負担、すなわち各サーバからの状態情報の収集に要する通信に係る負担を大幅に軽減し、かつ、負荷分散装置の台数に単純に比例したシステム性能を得ることのできる負荷分散処理システムを提供することを目的とするものである。
【００１３】
【課題を解決するための手段】
図１は本発明に係る負荷分散処理システムの基本構成を示す図である。なお、全図を通じて、同一の構成要素には同一の参照番号または記号を付して示す。
【００１４】
本図において、本発明の負荷分散処理システム１における主要構成部分は、第１の負荷分散装置１１および第２の負荷分散装置１２である。好ましくは、第２の負荷分散装置１２の前段に、第３の負荷分散装置１３を設ける。
【００１５】
第１の負荷分散装置１１は、外部網２側すなわちクライアント側から受信した受信パケットＰＫに含まれる高位レイヤ情報を解析してその受信パケットのアプリケーションを特定し、かつ、そのトランザクションを識別するための属性情報を生成し、この属性情報を付加したパケットを送出するものであり、また第２の負荷分散装置１２は、配下に接続される各サーバ５に送出されたパケットのトラヒック状況を各サーバ５対応に監視し、そのトラヒック状況情報と第１の負荷分散装置１１から送出された属性情報とに基づいて、上記の各パケットを振り分けるべき最適なサーバを決定し、当該決定サーバに対し上記のパケットを送出するものである。
【００１６】
さらに具体的には、負荷分散処理システム１は、複数の第１の負荷分散装置１１−１〜１１−Ｎと、これら第１の負荷分散装置に共有される第２の負荷分散装置１２とから構成すると共に、受信パケットＰＫを、ハッシュ計算などによる所定のアルゴリズムに従って複数の第１の負荷分散装置１１−１〜１１−Ｎのうちのいずれかに振り分ける第３の負荷分散装置１３をさらに備える。
【００１７】
前述した高位レイヤ情報の解析に要する処理量はかなり大きいので、第１の負荷分散装置１１は複数（１１−１〜１１−Ｎ）に分散させるのが望ましく、そのためには第３の負荷分散装置１３を必要とする。
【００１８】
すなわち、負荷分散装置１１−１〜１１−Ｎ間で、振り分け情報を、システムネットワークを用いずに共有しつつ分散構成とすることを可能とするため、従来のように、図１４〜図１７に示す、パケット解析処理とサーバの処理性能による負荷分散処理の各機能（負荷分散装置α）を、図１のように、パケット解析処理（第１の負荷分散装置１１）とサーバの処理性能による負荷分散処理（第２の負荷分散装置１２）の各機能に分割した上で、システム性能のボトルネックとなる該装置１１を分散構成とし、該装置１２は集中構成とする。
【００１９】
かくして本発明によれば、負荷分散処理に必要とされるシステム１内での負担、すなわち各サーバ５からの状態情報の収集に要する通信に係る負担を大幅に軽減し、かつ、負荷分散装置１１−１〜１１−Ｎの台数（Ｎ）に単純に比例したシステム性能が得られる負荷分散処理システムを実現することが可能となる。
【００２０】
【発明の実施の形態】
以下、本発明に係る実施例について述べるが、その前に、既述した従来例１〜従来例３に関する図１４〜図１７について説明しておく。
【００２１】
図１４は従来例１を示す図、
図１５は従来例２を示す図（その１）、
図１６は同図（その２）、
図１７は従来例３を示す図である。
【００２２】
まず図１４を参照すると、従来例１による負荷分散処理システム１は、インターネットあるいはイントラネットなどの外部網２を介してクライアント（図示せず）から送信されてくるパケットＰＫに付与されたＩＰアドレスを解析して、適切なサーバ５にそのパケットを振り分ける負荷分散装置（α）４を主体として構成される。
【００２３】
すなわち、既述したように、外部網２から受信したパケットＰＫを解析して、パケット処理が可能な１または複数のサーバ５を選択し、そのとき該当サーバ（候補）が複数存在する場合には、サーバ５の処理性能、例えばスループットや呼処理能力など、から見て最も適切な１つのサーバに、当該パケットＰＫを振り分ける。しかしこの従来例によると、既述した第１の問題を生じさせる。
【００２４】
なお、図中、サーバ５に付された記号Ａ，Ｂ…Ｋは、それらのサーバが実行すべきアプリケーションの種別を表す。またＡ１，Ａ２のように、記号Ａに付された１，２は、同一のアプリケーションＡを実行する例えば２台のサーバの区別をするための番号である。
【００２５】
次に図１５および１６を参照すると、従来例２による負荷分散処理システム１は、ＩＰアドレスを用いる図１４のような単純なアルゴリズムによる負荷分散装置４ではなく、さらに高度な、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やレイヤ７の情報を使用する高性能な負荷分散装置を複数並列して構成される。
【００２６】
そして、これら複数の並列接続された負荷分散装置４のうちの適切な１つを選択するための、単純なアルゴリズムによる負荷分散装置（β）３をさらに追加する。しかし、この従来例２によると、既述した第２および第３の問題を生じさせる。
【００２７】
さらに図１７を参照すると、従来例３による負荷分散処理システム１は、複数の並列接続された負荷分散装置（α１…αＮ）は、そのいずれもが全てのサーバ５を共有できる構成となっている。したがって本従来例３によるシステム１は、上述した従来例２（図１５，１６）における上記第２および第３の問題を解消できる、という利点が得られる。ところが反面、既述した第４および第５の問題を生じさせてしまう。
【００２８】
そこで本発明は、上述した各従来例に固有のいずれの問題をも生じさせない負荷分散処理システム１を提供する。その実施例は以下に詳述するとおりである。
【００２９】
図２は図１の基本構成をさらに具体的に示す図である。本図では、パケット解析手段１５（１５−１〜１５−Ｎ）と、サーバ選択手段１６と、テーブル１７とが新たに図示されている。
【００３０】
第１の負荷分散装置１１は各々パケット解析手段１５を有する。このパケット解析手段１５は、高位レイヤ情報によりアプリケーションを特定する特定情報とそのアプリケーションに係る一連のトランザクションを識別する識別情報とを前述した属性情報として生成し、さらに、これら一連のトランザクションが終了したときにその終了情報を生成する。さらにこれらの情報を受信パケットＰＫに付加して第２の負荷分散装置１２に送出する。
【００３１】
上記のパケット解析手段１５は、上記一連のトランザクションが開始する都度識別情報を当該パケットに割り当て、一連のトランザクションの継続中は同一の該識別情報を使用し、一連のトランザクションが終了したときに該識別情報を解放する。
【００３２】
一方、第２の負荷分散装置１２はサーバ選択手段１６を有する。このサーバ選択手段１６は、前述したトラヒック状況情報として、パケットの流量ならびにトランザクションの数に関する統計情報を取得すると共に、受信した上記の特定情報に基づいて当該アプリケーションを実行可能な一群のサーバ５を特定する。さらにその統計情報をもとにそのサーバ群のうち最適な宛先サーバ５を決定して受信パケットＰＫを、その宛先サーバに送出する。
【００３３】
上記のサーバ選択手段１６は、各サーバ５の縮退と復旧に関する縮退／復旧情報を取得して、縮退中のサーバは上記の宛先サーバの決定対象から除外するようにする。
【００３４】
さらに上記のサーバ選択手段１６は、前述の識別情報から、一連のトランザクションの開始であるか、継続中であるか、または終了であるか、に応じて上記の宛先サーバを決定する。
【００３５】
さらにまた上記のサーバ選択手段１６は、トラヒック状況の変更に応じて既述のトラヒック状況情報を更新する。
【００３６】
またサーバ選択手段１６は、受信パケットＰＫに付加された前述の属性情報と前述の特定情報と前述の終了情報とを削除して、サーバ５側にそのパケットを送出する。
【００３７】
サーバ選択手段１６は、以上述べた、サーバ群の特定と宛先サーバの決定に要する各種情報を格納する各種のテーブル１７を有する。
【００３８】
以下、さらに具体的に説明する。
【００３９】
パケット解析手段１５はパケットを解析し、アプリケーションの特定（ｈｔｔｐかＦＴＰか、など）やデータ属性（トランザクション数は多いか少ないか、など）を識別し、その識別の結果、ＡＩＤ（Ａｐｐｌｉｃａｔｉｏｎ  ＩＤ）を、前述の特定情報として、割り当てる機能を有する。その識別機能は、汎用処理プロセッサとユーザのアルゴリズムにより実現できる。
【００４０】
また、ＴＣＰセッション管理やより上位層のトランザクション番号などの識別により、同一のトランザクションであるか否かを識別し、識別した結果、同一トランザクションであれば、当該トランザクションのパケットに、同一のＴＩＤ（Ｔｒａｎｓａｃｔｉｏｎ  ＩＤ）を、前述の識別情報として、割り当てる機能を有する。
【００４１】
ＴＣＰより上位層の要素によるトランザクションの識別は、汎用処理プロセッサとユーザのアルゴリズムにより実現できる。
【００４２】
また、トランザクションの終了を検出する機能を有し、この結果が前述の終了情報となる。ＴＣＰより上位層の要素によるトランザクションの終了の判定は、汎用処理プロセッサとユーザのアルゴリズムにより実現できる。
【００４３】
パケット解析手段１５がパケットを解析した結果である、アプリケーションを特定するための情報（特定情報）と、一連のトランザクションであることを識別するための情報（識別情報）と、トランザクションの終了情報とを、サーバ選択手段１６に通知する。
【００４４】
既述したように、アプリケーションを特定するための特定情報はアプリケーションＩＤ（ＡＩＤ）とし、一連のトランザクションであることを識別するための識別情報はトランザクションＩＤ（ＴＩＤ）とすると共に、トランザクションの終了情報をトランザクション終了フラグとして、これらをパケットの一部に、タグ（ＡＩＤとＴＩＤ、トランザクション終了フラグ（ＴＥＦ）から構成される）を埋め込み、サーバ選択手段１６に通知する。
【００４５】
図３は上述したタグの位置付けを示す図である。ただし一例である。
【００４６】
本図の例によれば、各パケットは、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）ヘッダ、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダ、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）ヘッダ、上位ＡＰＰ（Ａｐｐｌｉｃａｔｉｏｎ）ヘッダおよびデータから構成され、さらに上記ＭＡＣヘッダは、ＭＡＣ−ＤＡ（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、ＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）タグおよびＴＹＰＥから構成される。
【００４７】
本発明による上述のタグ（ＡＩＤ，ＴＥＦ，ＴＩＤ）は、上記パケットの中の上記ＳＡとＶＬＡＮタグとの間に埋め込むことができる。
【００４８】
再び図２に戻るとサーバ選択手段１６は、各パケット解析手段１５−１〜１５−Ｎから通知された上記の情報と、サーバ５の負荷を予測する情報（毎秒当たりの振り分けオクテット数（図３のパケット全長）、毎秒当たりのトランザクション開始数、終了していない振り分け済みトランザクションの総数）とから、サーバ同士が連携動作することなく、サービス（パケット）処理が可能であり、かつ、各サーバ５の処理負荷が均等となるようにパケットを振り分けることができる。
【００４９】
一連のトランザクションを同一のサーバに割り当てるために、パケット解析手段１５から通知されたＴＩＤが、特定のサーバに振り分け済みか否か（すなわちトランザクションが開始されているか否か）判断するために、ＴＩＤとサーバのＩＰ−ＤＡ（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）とで構成されるテーブルＡ（第１テーブル）をテーブル１７の中に保持する。
【００５０】
特定のアプリケーションを処理可能なサーバ群を特定するために、ＡＩＤと、サーバのＩＰ−ＤＡと、サーバの縮退を表すフラグとで構成されるテーブルＢをテーブル１７の中に保持する。
【００５１】
そのＡＩＤで指定されたアプリケーションを処理できるサーバ群の中から、現在の処理負荷が最も小さいと判断される１つのサーバを特定するために、そのＩＰ−ＤＡと、このＩＰ−ＤＡに対応する、振り分けたパケットの毎秒当たりのオクテット数、毎秒当たりの開始済みトランザクションの数、終了していない振り分け済みトランザクションの総数、およびサーバが処理可能なトランザクション数、で構成されるテーブルＣをテーブル１７の中に保持する。
【００５２】
また、アプリケーションの特性により、テーブルＣの中でどの振り分け情報を用いるのが最適であるかを判断するために、ＡＩＤと、振り分け情報の重み付け情報とからなるテーブルＤをテーブル１７の中に保持する。
【００５３】
なお、上記のテーブルＢとテーブルＤは、それぞれの検索キーが共にＡＩＤであって一致しているので、これらのテーブルＢとＤを１つのテーブル（第２テーブル）にマージすることが好ましい。
【００５４】
あるサーバ５が縮退した場合に、その縮退したサーバが提供可能なアプリケーションを特定するために、ＩＰ−ＤＡと、ＡＩＤリストとからなるテーブルＥをテーブル１７の中に保持する。
【００５５】
なお、テーブルＣとテーブルＥは、それぞれの検索キーが共にＩＰ−ＤＡであって一致しているので、これらのテーブルＣとＥを１つのテーブル（第３テーブル）にマージすることが好ましい。
【００５６】
以上述べた第１、第２および第３テーブルについて図を参照して説明する。
【００５７】
図４は本発明による第１テーブル、
図５は本発明による第２テーブル、
図６は本発明による第３テーブル、
をそれぞれ示す図である。
【００５８】
まず図４を参照すると、第１テーブル（上記のテーブルＡ）２１が示されている。この第１テーブル２１は、割り当て済みのＴＩＤ（識別情報）と、ＩＰ−ＤＡ（宛先サーバ）との対応テーブルである。
【００５９】
図５には、上記のテーブルＢとテーブルＤをマージした第２テーブル２２が示されている。この第２テーブル２２は、アプリケーションと処理可能サーバ群のＩＰ−ＤＡとの対応テーブルであり、静的に登録する。つまり初期化時に一旦登録されると、その後は固定である。ただし、あるサーバが縮退したときまた復旧したときには、書き替え操作が必要である。また既述した重み情報（図６のテーブル２３の中でどの項目を優先して（重視して）サーバの割り当てを決定すべきかの情報）も本テーブル２２に組み入れている。
【００６０】
図６には、上記のテーブルＣとテーブルＥとをマージした第３テーブル２３が示されている。ここには、各サーバ毎の、パケットの流量、トランザクション数／秒、トランザクション総数、トランザクション数のリミット値（メモリの容量で決まるリミット値）ならびに、ＡＩＤリストが表示される。
【００６１】
これら第１、第２および第３テーブル２１，２２および２３を要約すると以下のとおりである。
【００６２】
〔第１テーブル２１〕
第１テーブル２１は、割り当て済みの識別情報（ＴＩＤ）と当該トランザクションを開始している宛先サーバ５との対応関係を表示する。
【００６３】
また終了情報（ＴＥＦ）がオンとなったとき、上記の対応関係は第１テーブル２１から消去される。
【００６４】
〔第２テーブル２２〕
第２テーブル２２は、特定情報（ＡＩＤ）と当該アプリケーションを処理可能なサーバとの対応関係を表示する。
【００６５】
また受信パケットＰＫについて、識別情報（ＴＩＤ）を未割り当てのときにはこの第２テーブル２２が参照される。
【００６６】
さらに第２テーブル２２内の、アプリケーションを処理可能なサーバ（ＩＰ−ＤＡ）に対応させて、このサーバの縮退／復旧情報（縮退フラグ）も併せて表示することができる。
【００６７】
さらにまた第２テーブル２２内の特定情報（ＡＩＤ）に対応させて、最適な宛先サーバを決定するに際し優先的に重視すべき統計情報（第３テーブル２３の内容）を指定する重み情報も併せて表示することができる。
【００６８】
〔第３テーブル２３〕
第３テーブル２３は、各宛先サーバ（ＩＰ−ＤＡ）に対応させた統計情報（流量、トランザクション数）を表示する。この統計情報を参照して最適な宛先サーバを決定するに際し処理負荷の小さい宛先サーバを割り当てる。なお、この第３テーブル２３は、割り当て済みの識別情報（ＴＩＤ）と当該トランザクションを開始している宛先サーバ（ＩＰ−ＤＡ）との対応関係が第１テーブル２１に存在するときに参照される。
【００６９】
第３テーブル２３はさらに、宛先サーバ（ＩＰ−ＤＡ）に対応させた特定情報リスト（ＡＩＤリスト）も併せて表示する。この特定情報リスト（ＡＩＤリスト）には宛先サーバ毎に、処理可能なアプリケーションおよびデータ属性を登録する。
【００７０】
次に、上述した第１、第２および第３テーブル（１７）と協働するサーバ選択手段１６（図２）と、該サーバ選択手段１６と連携するパケット解析手段１５（図２）とについて、その機能を実現するブロック群の一例を、第３の負荷分散装置１３内のパケット振分け手段１８と共に示す。ただし実際には、その機能はＣＰＵを用いたソフトウェア処理によって実現可能である。
【００７１】
図７は図２に示すパケット振分け手段１８の機能ブロック図、
図８は図２に示すパケット解析手段１５の機能ブロック図、
図９は図２に示すサーバ選択手段１６の機能ブロック図を、それぞれ一例をもって示す図である。
【００７２】
まず図７を参照すると、外部網２から到来したパケットをパケット受信部３１にて受信し、パケット振分け手段１８に入力する。
【００７３】
パケット振分け手段１８ではまず、ＩＰ−ＳＡ取得部３２にて、その受信パケットＰＫからＩＰ−ＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）を抜き出す。次段のハッシュ計算部３３では、その抜き出したＩＰ−ＳＡを用いて、そのＩＰ−ＳＡに応じて異なる第２の負荷分散装置（１１−１〜１１−Ｎのいずれか）にその受信パケットがルーティングされるように、ハッシュ計算を行う。そのハッシュ計算により得たハッシュ値をキーとして、ハッシュテーブル検索部３４は割り当てテーブル（図示せず）を検索し、割り当て先の第２の負荷分散装置を特定する。
【００７４】
かくして上記受信パケットＰＫは、パケット送信部３５から、その特定された第２の負荷分散装置１１へ送信される。
【００７５】
このようにして送信された受信パケットは図８に示す、特定された第２の負荷分散装置１１内のパケット受信部４１にて受信され、パケット解析手段１５に入力される。
【００７６】
このパケット解析手段１５は、受信パケットのデータ属性（アプリケーションやトランザクション）を解析するものであり、まずその受信パケットはアプリケーション解析部４２に入力され、ここで、ＴＣＰ／ＵＤＰポート番号取得部４３およびＡＩＤ取得部４４により処理される。
【００７７】
すなわち、ＴＣＰ／ＵＤＰポート番号などからアプリケーションを特定し、アプリケーションに対応するＡＩＤをテーブル検索などにより取得する。つまりＴＣＰ／ＵＤＰポート番号→ＡＩＤという変換を行う。
【００７８】
上記ＡＩＤを割り当てられた受信パケットは、次にトランザクション解析部４５に入力され、ここでトランザクション特定部４６、トランザクション開始終了判定部４７およびトランザクション番号管理部４８による処理を受ける。
【００７９】
すなわち、アプリケーション毎のトランザクションを識別し、ＴＩＤ（一時的な番号）を決定する。
【００８０】
・トランザクションの開始時には、ＴＩＤを割り当てる。
【００８１】
・トランザクション継続中は、同じＴＩＤを使用する。
【００８２】
・トランザクションの終了時には、ＴＩＤを解放する。
【００８３】
かくしてパケット解析手段１５による処理を受けた受信パケットは、パケット更新部４９に入力され、ここで、上記の特定されたＡＩＤ，ＴＩＤ、トランザクション終了フラグ（ＴＥＦ）が受信パケットＰＫに埋め込まれる（図３参照）。さらに、パケット送信部５０から第２の負荷分散装置１２に出力される。
【００８４】
上記のようにパケット送信部５０から出力されたパケットは、図９のパケット受信部５１にて受信され、サーバ選択手段１６に入力される。
【００８５】
このサーバ選択手段１６では、入力パケットはまずサーバ状態管理部５２に印加され、ここで、サーバ縮退／復旧検出部５３と状態テーブル更新部５４とによって処理される。
【００８６】
すなわち、サーバ５の縮退と復旧を監視する。そして縮退時にはサーバの状態を管理するテーブルＢに縮退フラグを設定し、後述する宛先サーバ決定部５９において、縮退したサーバが選択されないようにする。
【００８７】
サーバ状態管理部５２による処理を受けたパケットは、次に、サーバ選択情報管理部５５に入力される。該管理部５５は、図示するブロック５６〜６１によって構成され、前段の装置１１（図８）から通知された上記のＴＩＤおよびＡＩＤに基づいて、当該パケットに対して割り当てるべき宛先サーバ５を決定する。
【００８８】
まずＴＩＤ管理部５６において、そのＴＩＤから、トランザクションの開始時か継続中かを判定する。また、トランザクション終了フラグ（ＴＥＦ）がＯＮの場合は、そのＴＩＤをテーブルＡから削除する。
【００８９】
ＡＩＤ管理部５７では、上記のＡＩＤから、サービス可能なサーバ群を特定する。
【００９０】
負荷分散情報取得部５８では、トランザクション開始時に、流量およびトランザクション数の取得を行う。
【００９１】
宛先サーバ決定部５９では、トランザクション開始時には、負荷分散情報取得部５８で得られた情報から、宛先サーバを決定する。トランザクション継続時には、ＴＩＤに関するテーブルＡから宛先サーバ５を決定する。
【００９２】
流量更新部６０において、流量情報を更新する。
【００９３】
トランザクション数更新部６１において、トランザクション数情報を更新する。
【００９４】
以上の処理を経たパケットは、パケット更新部６２において、その一部に付加されたＡＩＤ，ＴＩＤ、トランザクション終了フラグ（ＴＥＦ）が削除されてから、パケット送信部６３より、割り当てが決定された宛先サーバ５へ送信される。
【００９５】
上記図７〜図９のように構成された第１、第２および第３の負荷分散装置１１，１２および１３による動作を説明する。
【００９６】
外部網２からファイル転送（ＦＴＰ）およびＷｅｂ参照（ｈｔｔｐ）のトラヒックが発生したとすると、負荷分散装置１３は、そのファイル転送およびＷｅｂ参照のトラヒックを、ＩＰ−ＳＡをもとに、負荷分散装置１１−１〜１１−Ｎに対し分散させる。
【００９７】
装置１１−１〜１１−Ｎでは、ファイル転送トラヒックなのかＷｅｂ参照トラヒックなのかを識別し、パケット毎に、処理可能なサーバ５（ファイル転送ならば５Ａ＊、Ｗｅｂ参照ならば５Ｂ＊とする）を判別する。同時にまたトランザクションの識別も行う。
【００９８】
アプリケーションの識別結果である特定情報（ＡＩＤ）と、トランザクションの識別結果である識別情報（ＴＩＤ）は、受信パケットに付加情報として追加されてから、負荷分散装置１２に送られる。
【００９９】
装置１２では、テーブルＡ（図４）にＴＩＤが登録されているか否かを判別し、トランザクションが既に特定のあるサーバに振り分けられているか、あるいは今からサーバを割り当てる必要があるか、を判別する。
【０１００】
特定のあるサーバに既に振り分けられている場合には、テーブルＡ（図４）からサーバのＩＰ−ＤＡを取得し、送信処理を実施して、テーブルＣ（図６）の流量情報を更新する。
【０１０１】
特定のサーバに未だ振り分けられていない場合には、テーブルＢ（図５）から、サーバのリストおよびアプリケーション毎に適したパケット振り分け情報を取得する。このためにテーブルＢから取得したＩＰ−ＤＡリストを用いて、テーブルＣ（図６）を検索し、アプリケーション毎に適したパケット振り分け情報に基づいて、送信すべきサーバを決定する。また送信処理および流量情報／トランザクション情報（テーブルＣ）を更新する。
【０１０２】
ファイル転送（ＦＴＰ）パケットの場合には、テーブルＢとＤ（図５）から、サーバＡ１とサーバＡ２の各ＩＰ−ＤＡと、サーバの選択に流量を用いるべきであるという重み情報と、を取得する。そしてサーバＡ１とサーバＡ２の各ＩＰ−ＤＡを用いてテーブルＣ（図６）を検索し、流量の少ない方のサーバ５に対して当該パケットを送信する。
【０１０３】
Ｗｅｂ参照（ｈｔｔｐ）パケットの場合には、テーブルＢとＤ（図５）から、サーバＢ１とサーバＢ２の各ＩＰ−ＤＡと、サーバの選択にトランザクション数を用いるべきであるという重み情報と、を取得する。そしてサーバＢ１とサーバＢ２の各ＩＰ−ＤＡを用いて、テーブルＣ（図６）を検索し、トランザクシヨン数が予め設定されたトランザクション数リミットを超えていないことを条件に、トランザクション数／秒の少ない方のサーバに対して当該パケットを送信する。
【０１０４】
例えば、サーバＡ１へのファイル転送（ＦＴＰ）要求は、細い回線から多数の要求（流量では１００Ｍｂｐｓ）であり、サーバＡ２への要求は、太い回線から少数の要求（流量では７００Ｍｂｐｓ）である場合について見ると、トランザクション数から判断すると、新たにサーバを選択する場合はサーバＡ２が選択される。しかし、ＦＴＰでは、トランザクション数よりも流量により、サーバ処理がネックとなることが考えられる。このため、サーバＡ１が選択される。
【０１０５】
以上の動作をもう少し詳しく説明する。
【０１０６】
まず第１の負荷分散装置１１は、前述のとおり、アプリケーションやデータ属性などを識別し、同一のアプリケーションおよび同一のデータ属性をもつパケットに対しては、同一のＡＩＤを付与する。
【０１０７】
また、前述のとおり、トランザクションを識別し、同一のトランザクションについては同一のＴＩＤを付与する。そしてトランザクションの終了時にはトランザクション終了フラグを立てる（ＴＥＮをＯＮ）。
【０１０８】
そして上記ＡＩＤ，ＴＩＤ、トランザクション終了フラグを既述のタグとしてパケットに追加し、第２の負荷分散装置１２に送信する。
【０１０９】
この装置１２は起動時に、テーブルＢ（図５）とテーブルＣ（図６）の初期設定を実施する。そしてそのテーブルＢには、装置１１で識別され割り当てられたＡＩＤの全てを登録する。このＡＩＤに対応するアプリケーションおよびデータ属性を持つパケットを処理可能なサーバのＩＰ−ＤＡについてもそのテーブルＢに登録する。
【０１１０】
なおテーブルＢとテーブルＤをマージする場合（第２テーブル２２）には、ＡＩＤ毎にどの振り分け情報を優先するかの重み情報もそのテーブルに登録する。この重み情報は、ＦＴＰのようなスループット重視のアプリケーションについては、毎秒当たりの振り分けオクテット数を使用して振り分けすべきことを示し、一方呼処理性能が要求されるＷｅｂアクセスアプリケーション（ｈｔｔｐ）については、毎秒当たりの開始済みトランザクションの数を使用して振り分けすべきことを示す。
【０１１１】
テーブルＣ（図６）には、全てのサーバのＩＰ−ＤＡを登録し、また、サーバが処理可能なトランザクションの数も登録する。
【０１１２】
テーブルＣとテーブルＥをマージする場合（第３テーブル２３）は、ＩＰ−ＤＡ毎に、処理可能なアプリケーションおよびデータ属性をＩＰ−ＤＡに対応させた、ＡＩＤリストもそのテーブルに登録する。
【０１１３】
このあとの説明はフローチャートを参照しながら行う。
【０１１４】
図１０は負荷分散装置１１からパケットを受信したときの負荷分散装置１２の動作を表すフローチャート（その１）、
図１１は同フローチャート（その２）、
図１２はサーバが縮退したときの負荷分散装置１２の動作を表すフローチャート、
図１３はサーバが縮退から復旧したときの負荷分散装置１２の動作を表すフローチャートである。
【０１１５】
まず図１０を参照すると、第２の負荷分散装置１２は装置１１からのパケットを受信する（ステップＳ１１）。
【０１１６】
トランザクション終了フラグ（ＴＥＦ）をチェックして（Ｓ１２）、そのトランザクションが未終了のときは（Ｓ１３のＮｏ）、装置１２は装置１１より受信したパケットからＴＩＤを取得し、そのＴＩＤをキー（ｋｅｙ）としてテーブルＡを検索する（Ｓ１８）。
【０１１７】
テーブルＡにそのＴＩＤが登録されている場合は（Ｓ１９のＹｅｓ）、トランザクションは開始されているものと判断し、そのＴＩＤに対応付けられるＩＰ−ＤＡを持つサーバに対して、ＡＩＤとＴＩＤとトランザクション終了フラグ（ＴＥＦ）を削除したパケットを送信する（Ｓ２０）。
【０１１８】
そのパケットを送信後、送信先のＩＰ−ＤＡをキーとしてテーブルＣを検索し（Ｓ２１）、そのＩＰ−ＤＡがヒットすれば（Ｓ２２のＹｅｓ）、そのエントリの毎秒当たりの振り分けオクテット数情報を更新する（Ｓ２３）。
【０１１９】
テーブルＡにＴＩＤが登録されていない場合（Ｓ１９のＮｏ）、トランザクションが開始されていないものと判断する。この場合は、次にＡＩＤをキーとしてテーブルＢ（テーブルＤがマージされたもの）を検索し（Ｓ２５）、ヒットすれば（Ｓ２６のＹｅｓ）、そのパケットを処理可能なサーバのＩＰ−ＤＡリストと、振り分けの重み情報とをテーブルＢ，Ｄから取得する（Ｓ２７）。
【０１２０】
次に各ＩＰ−ＤＡをキーとしてテーブルＣを検索し、振り分け情報を取得する（Ｓ２８）。この情報を用いて、最適なサーバを以下のように選択する。
【０１２１】
開始済みトランザクションの総数が、サーバが処理可能なトランザクション数となっているサーバは選択しない。また振り分けの重み情報に従って、ＦＴＰのようにスループットを重視するときは、毎秒当たりの振り分けオクテット数が最も小さいサーバを選択する。一方、ｈｔｔｐのように呼処理性能を重視するときは、毎秒当たりの、開始済みトランザクションの数が最も小さいサーバを選択する。このようにして選択したサーバに対応するＩＰ−ＤＡに対して、ＡＩＤとＴＩＤとトランザクション終了フラグとを削除したパケットを送信する。
【０１２２】
このパケット送信後に、テーブルＡに、ＴＩＤと、選択したサーバに対応するＩＰ−ＤＡとを登録する（Ｓ３０）。
【０１２３】
なお、ＩＰ−ＤＡに対応するテーブルＣのエントリに対し、毎秒当たりの振り分けオクテット数と、毎秒当たりの開始済みトランザクションの数と、開始済みトランザクションの総数とを更新する（Ｓ２９）。
【０１２４】
トランザクションの終了は、トランザクション終了フラグ（ＴＥＦ）により判別される（Ｓ１２）。トランザクション終了時には（Ｓ１３のＹｅｓ）、テーブルＡを検索し（Ｓ１４）、その終了したＴＩＤがヒットすれば（Ｓ１５のＹｅｓ）、該当のエントリをテーブルＡから削除する（Ｓ１６）。
【０１２５】
テーブルＣにおいて、終了したＴＩＤに対応するＩＰ−ＤＡに対応するエントリにおける、開始済みトランザクションの総数値から−１する。
【０１２６】
図１２を参照すると、サーバの縮退を検出したときは（Ｓ４１）、縮退したサーバのＩＰ−ＤＡをキーとしてテーブルＣを検索する（Ｓ４２）。このキーがヒットすれば（Ｓ４３のＹｅｓ）、このキーに対応するＡＩＤリストをテーブルＥより取得し、流量情報とトランザクション情報を初期化すると共に（Ｓ４４）、取得した各ＡＩＤを検索キーとしてテーブルＢを検索し、対応するエントリにおける対応するＩＰ−ＤＡに付属する縮退フラグをセットする（Ｓ４５）。
【０１２７】
さらにテーブルＡを検索し（Ｓ４６）、そのＩＰ−ＤＡがヒットすれば（Ｓ４７のＹｅｓ）、テーブルＡから該当のエントリを削除する（Ｓ４８）。
【０１２８】
最後に図１３を参照すると、第２の負荷分散装置１２内でサーバの復旧を検出すると（Ｓ５１）、そのサーバのＩＰ−ＤＡをキーとしてテーブルＣを検索し（Ｓ５２）、そのＩＰ−ＤＡがヒットすれば（Ｓ５３のＹｅｓ）、テーブルＥのＡＩＤリストを取得する（Ｓ５４）。このＡＩＤリストをキーとして、テーブルＢを検索し、テーブルＢ内の該当縮退フラグをＯＦＦにする（Ｓ５５）。
【０１２９】
以上詳述した本発明の実施態様は、以下のとおりである。
【０１３０】
（付記１）クライアント側から受信した受信パケットに含まれる高位レイヤ情報を解析して該受信パケットの属性情報を生成し、該属性情報を付加したパケットを送出する第１の負荷分散装置と、
配下に接続される各サーバに送出されたパケットのトラヒック状況を各該サーバ対応に監視し、そのトラヒック状況情報と前記第１の負荷分散装置から送出された前記属性情報とに基づいて、各パケットを振り分けるべき最適な前記サーバを決定し、当該決定サーバに対し前記パケットを送出する第２の負荷分散装置と、
を備えることを特徴とする負荷分散処理システム。
【０１３１】
（付記２）複数の前記第１の負荷分散装置と、該複数の第１の負荷分散装置に共有される前記第２の負荷分散装置とから構成すると共に、前記受信パケットを、所定のアルゴリズムに従って前記複数の第１の負荷分散装置のうちのいずれかに振り分ける第３の負荷分散装置をさらに備えることを特徴とする付記１に記載の負荷分散処理システム。
【０１３２】
（付記３）前記第１の負荷分散装置はパケット解析手段を有し、該パケット解析手段は、前記高位レイヤ情報によりアプリケーションを特定する特定情報とそのアプリケーションに係る一連のトランザクションを識別する識別情報とを前記属性情報として生成し、さらに、該一連のトランザクションが終了したときにその終了情報を生成して、これらの情報を前記受信パケットに付加し前記第２の負荷分散装置に送出することを特徴とする付記１に記載の負荷分散処理システム。
【０１３３】
（付記４）前記パケット解析手段は、前記一連のトランザクションが開始する都度前記識別情報を当該パケットに割り当て、該一連のトランザクションの継続中は同一の該識別情報を使用し、該一連のトランザクションが終了したときに該識別情報を解放することを特徴とする付記３に記載の負荷分散処理システム。
【０１３４】
（付記５）前記第２の負荷分散装置はサーバ選択手段を有し、該サーバ選択手段は、前記トラヒック状況情報として、パケットの流量ならびに前記トランザクションの数に関する統計情報を取得すると共に、受信した前記特定情報に基づいて当該アプリケーションを実行可能な前記のサーバ群を特定しさらに前記統計情報をもとにそのサーバ群のうち最適な宛先サーバを決定して前記受信パケットを送出することを特徴とする付記３に記載の負荷分散処理システム。
【０１３５】
（付記６）前記サーバ選択手段は、各前記サーバの縮退と復旧に関する縮退／復旧情報を取得し、縮退中のサーバを前記宛先サーバの決定対象から除外することを特徴とする付記５に記載の負荷分散処理システム。
【０１３６】
（付記７）前記サーバ選択手段は、前記識別情報から、前記一連のトランザクションの開始であるか、継続中であるか、または終了であるか、に応じて前記宛先サーバを決定することを特徴とする付記５に記載の負荷分散処理システム。
【０１３７】
（付記８）前記サーバ選択手段は、トラヒック状況の変更に応じて前記トラヒック状況情報を更新することを特徴とする付記５に記載の負荷分散処理システム。
【０１３８】
（付記９）前記サーバ選択手段は、前記受信パケットに付加された前記属性情報と前記特定情報と前記終了情報とを削除して、前記サーバ側にそのパケットを送出することを特徴とする付記３に記載の負荷分散処理システム。
【０１３９】
（付記１０）前記サーバ選択手段は、前記サーバ群の特定と前記宛先サーバの決定に要する各種情報を格納する各種テーブルを有することを特徴とする付記６に記載の負荷分散処理システム。
【０１４０】
（付記１１）前記各種テーブルには第１テーブルを含み、該第１テーブルは、割り当て済みの前記識別情報と当該トランザクションを開始している前記宛先サーバとの対応関係を表示することを特徴とする付記１０に記載の負荷分散処理システム。
【０１４１】
（付記１２）前記終了情報がオンとなったとき、前記対応関係を前記第１テーブルから消去することを特徴とする付記１１に記載の負荷分散処理システム。
【０１４２】
（付記１３）前記各種テーブルには第２テーブルを含み、該第２テーブルは、前記特定情報と当該アプリケーションを処理可能な前記サーバとの対応関係を表示することを特徴とする付記１０に記載の負荷分散処理システム。
【０１４３】
（付記１４）前記受信パケットについて前記識別情報を未割り当てのときに、前記第２テーブルを参照することを特徴とする付記１３に記載の負荷分散処理システム。
【０１４４】
（付記１５）前記第２テーブル内の、前記アプリケーションを処理可能な前記サーバに対応させて、このサーバの前記縮退／復旧情報も併せて表示することを特徴とする付記１３に記載の負荷分散処理システム。
【０１４５】
（付記１６）前記第２テーブル内の前記特定情報に対応させて、前記の最適な宛先サーバを決定するに際し優先的に重視すべき前記統計情報を指定する重み情報も併せて表示することを特徴とする付記１３に記載の負荷分散処理システム。
【０１４６】
（付記１７）前記各種テーブルには第３テーブルを含み、該第３テーブルは、各前記宛先サーバに対応させた前記統計情報を表示し、この統計情報を参照して前記の最適な宛先サーバを決定するに際し処理負荷の小さい宛先サーバを割り当てることを特徴とする付記１０に記載の負荷分散処理システム。
【０１４７】
（付記１８）前記第３テーブルは、割り当て済みの前記識別情報と当該トランザクションを開始している前記宛先サーバとの対応関係が存在するときに参照することを特徴とする付記１７に記載の負荷分散処理システム。
【０１４８】
（付記１９）前記第３テーブルはさらに、前記宛先サーバに対応させた特定情報リストも併せて表示し、該特定情報リストには該宛先サーバ毎に、処理可能なアプリケーションおよびデータ属性を登録することを特徴とする付記１７に記載の負荷分散処理システム。
【０１４９】
【発明の効果】
以上説明したように本発明によれば、第２の負荷分散装置１２を導入することにより、システムネットワーク内の制御トラヒックを増やしたり、不必要にサーバを増やすことのない、第１の負荷分散装置１１を実現することができる。
【図面の簡単な説明】
【図１】本発明に係る負荷分散処理システムの基本構成を示す図である。
【図２】図１の基本構成をさらに具体的に示す図である。
【図３】パケットの一部に埋め込まれるタグ（ＡＩＤ，ＴＩＤ，ＴＥＦ）を示す図である。
【図４】本発明による第１テーブルを示す図である。
【図５】本発明による第２テーブルを示す図である。
【図６】本発明による第３テーブルを示す図である。
【図７】図２に示すパケット振分け手段１８の機能ブロック図である。
【図８】図２に示すパケット解析手段１５の機能ブロック図である。
【図９】図２に示すサーバ選択手段１６の機能ブロック図である。
【図１０】負荷分散装置１１からパケットを受信したときの負荷分散装置１２の動作を表すフローチャート（その１）である。
【図１１】負荷分散装置１１からパケットを受信したときの負荷分散装置１２の動作を表すフローチャート（その２）である。
【図１２】サーバが縮退したときの負荷分散装置１２の動作を表すフローチャートである。
【図１３】サーバが縮退から復旧したときの負荷分散装置１２の動作を表すフローチャートである。
【図１４】従来例１を示す図である。
【図１５】従来例２を示す図（その１）である。
【図１６】従来例２を示す図（その２）である。
【図１７】従来例３を示す図である。
【符号の説明】
１…負荷分散処理システム
２…外部網
５…サーバ
１１…第１の負荷分散装置
１２…第２の負荷分散装置
１３…第３の負荷分散装置
１５…パケット解析手段
１６…サーバ選択手段
１７…テーブル
１８…パケット振分け手段
２１…第１テーブル
２２…第２テーブル
２３…第３テーブル
【図１】
2004158977.tif 000003
【図２】
2004158977.tif 000004
【図３】
2004158977.tif 000005
【図４】
2004158977.tif 000006
【図５】
2004158977.tif 000007
【図６】
2004158977.tif 000008
【図７】
2004158977.tif 000009
【図８】
2004158977.tif 000010
【図９】
2004158977.tif 000011
【図１０】
2004158977.tif 000012
【図１１】
2004158977.tif 000013
【図１２】
2004158977.tif 000014
【図１３】
2004158977.tif 000015
【図１４】
2004158977.tif 000016
【図１５】
2004158977.tif 000017
【図１６】
2004158977.tif 000018
【図１７】
2004158977.tif 000019