JP5246157B2 - 負荷分散システム - Google Patents
負荷分散システム Download PDFInfo
- Publication number
- JP5246157B2 JP5246157B2 JP2009510636A JP2009510636A JP5246157B2 JP 5246157 B2 JP5246157 B2 JP 5246157B2 JP 2009510636 A JP2009510636 A JP 2009510636A JP 2009510636 A JP2009510636 A JP 2009510636A JP 5246157 B2 JP5246157 B2 JP 5246157B2
- Authority
- JP
- Japan
- Prior art keywords
- load distribution
- servers
- load
- distribution information
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
フロントエンドと呼ばれる最上位層のノード装置111〜113が、クライアント装置(以下、単に「クライアント」と示す)C1及びC2からネットワークNを経由して処理要求を受信すると、この処理要求は上位層のノードから下位層のノードへと順次転送される。そして末端に至るまでの途中にて負荷分散ノード121及び141〜143が複数のノードに処理要求を分配し、これによって各ノードの負荷が分散される。
また、最上位層のノード装置111〜113は、サーバ装置に限られず、負荷分散装置や、ファイヤウオール装置又はファイヤウオール機能付き負荷分散装置など、様々な装置としてよい。
このように、階層型負荷分散システム1は、様々な構成によって実現することが可能である。以下、本明細書では、説明の目的のみのために特定の構成例を用いるが、本発明はこれら特定の構成に限られることなく、様々な構成の階層型負荷分散システム1に適用することができる。
負荷分散装置21は、各種の負荷分散方式のうち状況に応じた方式に従って、サーバ11〜13から受信した処理要求を1つ下の層(第3層)に配置されたサーバ31〜39へと分配して送信する。負荷分散方式としては、例えば最小コネクション(Least Connection)、ラウンドロビン(Round Robin)のほか、処理要求の送信先や送信元のアドレスのハッシュ(Hash)関数の値により分散先を決定する方法(以下、本明細書において「Hash法」と示す)、処理要求のHTTPヘッダの内容に応じて分散先を決定する方法(以下、本明細書において「HTTPヘッダ法」と示す)、及び重み付け法が、一般に使用されている。
第4層に配置された負荷分散装置41は、上記の各種の負荷分散方式のうち状況に応じた方式に従って、サーバ31〜33から受信した処理要求を最下層(第5層)に配置されたサーバ51〜53へ分配する。同様に、負荷分散装置42はサーバ34〜36から受信した処理要求をサーバ54〜56へと分配し、負荷分散装置43はサーバ37〜39から受信した処理要求をサーバ57〜59へと分配する。
そのため、例えば図3に示すように、階層途中の負荷分散装置41に障害が生じても、負荷分散装置41よりも2階層上の負荷分散装置21は、このような事情に関係なく負荷分散装置41の上の階層に配置されたサーバ31〜33へ処理要求を送信してしまう。その結果、これら処理要求が無駄になり、またサーバ31〜33から負荷分散装置41への要求の再送信が繰り返し行われ処理遅延が生じていた。
上記問題点に鑑み、本発明は、従来の階層型負荷分散システムに生じていた処理遅延とサーバ間の負荷量の偏りを防止することを目的とする。
本発明によれば、負荷分散情報を一括して1つのノード(以下「マスタノード」と記す)で管理することができるようになるため、このマスタノードにて、階層構造に含まれる全てのノードの負荷処理状態が把握できる。このため例えば障害などの負荷処理が困難な状態にあるノードへの無駄な処理要求を避けて処理遅延を防ぐことができる。また、負荷分散情報を一括して管理することにより、マスタノードにて、階層構造に含まれる全てのノードの負荷状態のバランスを把握することができる。これにより、階層構造中のノード間の負荷量の偏りが低減するように、各負荷分散ノードにて行われる負荷分散処理の内容を決定することが可能となる。
11〜13、31〜39、51〜59 サーバ
21、41〜43 負荷
C1、C2 クライアント
N ネットワーク
図5は、図4に示す負荷分散システム1において最上位層(第1層)に配置されるサーバ11〜13のうちのサーバ11の概略構成図である。サーバ12及び13の構成もサーバ11と同様である。
負荷分散制御プログラム104の動作と負荷分散情報105については後述する。
サーバ31は、CPU201と、CPU201により実行されるプログラムやCPU201による処理に必要なデータを記憶する記憶部202と、負荷分散システム1内の他の装置のうちサーバ31が接続されているより上位の装置(すなわち負荷分散装置21)及びより下位の装置(すなわち負荷分散装置41)と通信を行うための通信インタフェース203と、を備えている。
但し、負荷分散システム1の末端、すなわち最下層(第5層)に配置されるサーバ51〜59の場合には、より下位の装置を持たず、受信した処理要求を自ら処理する。
負荷分散装置21は、CPU301と、CPU301により実行されるプログラムやCPU301による処理に必要なデータを記憶する記憶部302と、負荷分散システム1内の他の装置のうち負荷分散装置21が接続されているより上位の装置(すなわちサーバ11〜13)と通信を行うための通信インタフェース303及びより下位の装置(すなわちサーバ31〜39)と通信を行うための通信インタフェース304と、を備えている。
負荷分散装置21は、サーバ11〜13から送信された処理要求を通信インタフェース303を介して受信し、受信した処理要求の分配先を下位層のサーバ31〜39のいずれかに決定し、これら処理要求を通信インタフェース304を介して各々サーバ31〜39へと送信する。
以下、第1実施例による負荷分散システム1の説明においてこれらサーバ31〜39及び51〜59、並びに負荷分散装置21及び41〜43をまとめて「下位層装置」と記すことがある。
例えば、当該装置がサーバ31〜39及び51〜59などの負荷分散装置から処理要求を分配される装置である場合には、負荷分散情報には、当該装置における処理受付数及び処理実行数や、当該装置のノードの接続状況及び負荷状況、また当該装置に対して行われる負荷分散方式を示す情報が含まれる。
また当該装置が負荷分散装置21及び41〜43である場合には、負荷分散情報には、前記負荷分散手段が行う負荷分散方式を示す情報が含まれる。
図8に装置1台あたりの負荷分散情報のデータ構造の例を示す。負荷分散情報は、図8に示すデータ構造を各装置毎に有する。以下の説明において、図8に示すデータ構造を持つある負荷分散情報が、ある装置Xの状態を示すものであるときには、「装置Xに関する負荷分散情報」と記載する。
ID=「1」のデータは、当該装置が配置される階層の番号を示し、例えばサーバ11に関する負荷分散情報の場合にはこのデータは「1」の値を有し、負荷分散装置41に関する負荷分散情報の場合にはこのデータは「4」の値を有する。
ID=「2」のデータは、負荷分散システム1内において当該装置に割り当てられた階層毎のシーケンス番号を示す。また、ID=「3」のデータは当該装置に割り当てられたIPアドレスを示す。ID=「4」のデータは同階層にある全装置数を示す。
ID=「7」のデータは、当該装置が負荷分散を行う手段の種別を示す。例えば図4に示す構成例では、負荷分散装置21及び41〜43が負荷分散処理を行うが、後述するように負荷分散アプリケーションプログラムや、負荷分散ミドルウエアが負荷分散処理を行うように、負荷分散システム1を構成してもよい。
負荷分散方式の種別としては、例えばラウンドロビン、Least Connection及び重み付け法(以下、これらをまとめて「ラウンドロビン等」と記すことがある)や、処理要求の分配先が一意に特定されるHash法及びHTTPヘッダ法(以下、これらをまとめて「Hash法等」と記すことがある)がある。また、ID=「8」のデータは、当該装置に対して負荷分散が行われない場合には「対象外」を示す値を有する。例えば、負荷分散装置41の上流の装置であるサーバ31は、負荷分散処理を行なわず処理要求を全て負荷分散装置41に送信するため、このような負荷分散装置41に関する負荷分散情報においては、ID=「8」のデータは「対象外」を示す値を有する。
また同様に、Hash法により処理要求を分配し、次に分配先として特定される複数の装置の間で最小コネクション法や重み付け法を用いて処理要求を分配する場合には、ID=「8」のデータは、それぞれ「Hash-最小コネクション法」及び「Hash-重み付け法」の値を有する。
また例えば、HTTPヘッダ法により処理要求を分配し、次に分配先として特定される複数の装置の間でラウンドロビン、最小コネクション法又は重み付け法を用いて処理要求を分配する場合には、ID=「8」のデータは、それぞれ「HTTPヘッダ-ラウンドロビン」、「HTTPヘッダ-最小コネクション法」又は「HTTPヘッダ-重み付け法」の値を有する。
ID=「11」のデータ(「処理受付数」)は当該装置が受け付けた処理要求の数を示す。
ID=「12」のデータ(「処理実行数」)は、当該装置が受け付けた処理要求のうち下位層への送信が完了した処理要求の数を示す。当該装置が最下位層のサーバ(本構成例ではサーバ51〜59)である場合には当該サーバにより処理が完了した処理要求の数を示す。
ID=「13」のデータは、当該装置と負荷分散システム1内の他の装置との間にIPコネクションが確立しているか否かを示し、IPコネクションが確立している場合及び確立していない場合にそれぞれ「IPコネクション確立」及び「IPコネクション未確立」の値を有する。
ID=「14」のデータは、当該装置が現在使用しているIPコネクション数を示し、ID=「15」のデータは、当該装置に残されている使用可能なIPコネクション数を示す。
ID=「17」の領域に記録された判定回数とID=「18」の領域に記録されている閾値を比較した後、ID=「17」の領域の値はリセットされる。
ID=「21」のデータは、当該装置のメモリ使用率を示し、ID=「22」のデータは当該装置のメモリ使用率として許容される値の閾値を与える。
ID=「23」のデータは、当該装置のプロセス使用率を示し、ID=「24」のデータは当該装置のプロセス使用率として許容される値の閾値を与える。
ID=「25」のデータは、当該装置のリソース使用量を示し、ID=「26」のデータは当該装置のリソース使用量として許容される値の閾値を与える。
ID=「28」の領域に記録された判定回数とID=「29」の領域に記録されている閾値を比較した後、ID=「28」の領域の値はリセットされる。
ID=「32」のデータは、最上位層の装置に関する負荷分散情報として用意され、当該装置の正常及び障害状態を、クライアントC1及びC2並びに負荷分散システム1内の他の装置に通知したか否かを示す。
ID=「34」のデータは、当該装置に接続されかつ当該装置よりも1階層下の階層の装置の数を示し、当該装置が負荷分散装置である場合には当該装置の負荷分散処理によって処理要求が分配される装置数を示す。
ID=「35」のデータは、当該装置に接続されかつ当該装置よりも1階層下の階層の装置のそれぞれの装置番号を示し、このような1階層下の装置が複数ある場合には、ID=「35」のデータはこれらの装置の数分のデータを有する。
ID=「36」のデータは、当該装置に接続されかつ当該装置よりも1階層下の装置が負荷分散を行う場合にはその負荷分散方式の種別を示す。このような1階層下の装置が複数ある場合には、ID=「36」のデータはこれらの装置の数分のデータを有する。
ID=「38」のデータは、当該装置に接続されかつ当該装置よりも1階層下の装置が負荷分散を行う場合には、その負荷分散処理が、負荷分散装置、サーバ上で動作する負荷分散アプリケーションプログラム、負荷分散ミドルウエアのいずれにより行われるかを示す。このような1階層下の装置が複数ある場合にはID=「38」のデータはこれらの装置の数分のデータを有する。
ID=「40」のデータは、当該装置に接続されかつ当該装置よりも1階層下の階層の装置の各々が、末端のサーバ51〜59まで処理要求を送信できる有効経路を有しているか否かを示し、有効経路がある場合には「有効」の値を有し、ない場合には「無効」の値を有する。このような1階層下の装置が複数ある場合には、ID=「40」のデータはこれらの装置の数分のデータを有する。
最上位層のサーバ11〜13は、同じ階層の他の最上位層のサーバ、及び下位層装置から、これらの装置とネットワーク層にて確立されたリンクを介して負荷分散情報を収集する。また下位層装置のいずれかが障害状態にある場合には、その装置に接続され且つその装置よりも1つ上位層に配置された装置から、その障害状態にある装置の負荷分散情報を収集する。
また、最下位層にあるサーバ51〜59は、各々自分自身である当該装置に関する負荷分散情報のみを、その記憶部202に記憶する。
そしてステップS102において、最上位層のサーバ11〜13の各々は、他の最上位層のサーバが正常に動作しているかどうかを判定する最上位サーバの死活監視処理を行う。
ステップS112ではサーバ11は、ステップS111の送信結果が正常であるか否かを判定する。送信結果が正常であるとき処理をステップS113へ進める。
そしてステップS116において、最上位層のサーバ11は、その記憶部102に記憶された最上位層のサーバ12に関する負荷分散情報中のデータ「通知済み情報」の値を、「OFF」にする。データ「通知済み情報」の値が「OFF」にされることにより、「以前にクライアントC1及びC2並びに負荷分散システム1内の下位層装置に最上位層のサーバ12が正常であることを通知し、かつその後に異常になったことをまだ通知していないこと」が記憶される。その後、処理をステップS121へ進める。
ステップS117では、最上位層のサーバ11の記憶部102に記憶された最上位層のサーバ12に関する負荷分散情報中のデータ「通知済み情報」を参照する。そして、このデータが「OFF」を示すときは、最上位層のサーバ11は、ステップS118においてクライアントC1及びC2に最上位層のサーバ12が異常であることを通知し、ステップS119において負荷分散システム1内の下位層装置に最上位層のサーバ12が異常であることを通知する。
そしてステップS120において、最上位層のサーバ11は、記憶部102に記憶された最上位層のサーバ12に関する負荷分散情報中のデータ「通知済み情報」の値を、「ON」にする。
サーバ11〜13が送信する負荷分散情報送信要求のデータ構成例を図15に示す。
「要求種別」は、送信された通信データの内容の種別を示すデータである。「要求種別」は、通信データの内容の種別が、負荷分散情報抽出要求、並びに後述する負荷分散情報返送、負荷分散情報補正要求、負荷分散情報補正完了通知、負荷分散情報通知、負荷分散情報通知への応答、装置の障害通知及び装置の復旧通知などのいずれであるかを示す。
図15に示す負荷分散情報抽出要求の場合、「要求種別」には、送信されたデータが負荷分散情報抽出要求であることを示す種別データが入力され、ID=1〜4であるデータのみが有効データとなる。そして負荷分散情報中のデータ「階層番号」(ID=1)及び「装置番号」(ID=2)によって、負荷分散情報の送信が要求される装置を特定する。
これら中間層にあるサーバ31〜39並びに負荷分散装置21及び41〜43と、これらの装置より1階層下にある装置との間で負荷分散情報を授受する際に行われる処理は、上述した最上位層11〜13と下位層装置との間で負荷分散情報を収集する処理と同様である。
また、負荷分散情報に含まれる矛盾の他の例は、装置間の上下関係に関する矛盾、すなわち上位装置に関する負荷分散情報中のデータ「装置状態」の値が「障害」又は「無効」であるのにも関わらず、その上位装置の下流にある装置に関する負荷分散情報中のデータ「装置状態」の値が「正常」である等の矛盾であってもよい。
ステップS130において、各最上位層のサーバ11〜13は、負荷分散システム1内の全装置のうち、各装置から前回に収集した負荷分散情報と、今回のステップS103で収集した負荷分散情報とを比べて、情報に変化があった装置を選択する。そしてここで選択した当該装置について、以下のステップS131〜S134を実行する。このように前回に収集した負荷分散情報と今回収集した負荷分散情報との間の相違点に絞って処理を行うことで、負荷分散情報矛盾解消処理を迅速に行うことができる。
また各最上位層のサーバ11〜13は、ステップS131において当該装置に関する負荷分散情報中の「装置状態」を参照し、その値が「障害」である場合にはステップS132にて負荷分散情報中のデータ「IPコネクション確立状態」(ID=13)の値を「IPコネクション未確立」にする。
またさらに各最上位層のサーバ11〜13は、ステップS131において当該装置に関する負荷分散情報中のデータ「IPコネクション確立状態」を参照し、その値が「IPコネクション未確立」である場合にはステップS132にて負荷分散情報中のデータ「装置状態」(ID=5)の値を「障害」にする。
なお、ステップS131において、当該装置に適用される負荷分散方式がHash法等である場合には、現在使用されている負荷分散方式を優先して使用するために、処理要求の分配先が単独構成であるか否かに関わらず処理を終了してもよい。
ステップS140において各最上位層のサーバ11〜13は、当該装置が最下位層にある装置であるか否かを判定し、当該装置が最下位層にある場合には何もせずに処理を終了する。
ステップS141において各最上位層のサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「装置状態」の値が「正常」であるか否かを判定し、「正常」である場合には何もせずに処理を終了する。
ステップS145では、選択した下位装置及びその下流にある装置についての上下関係の矛盾を解消するように上下関係矛盾解消処理の再帰呼び出しを行う。
ステップS146では、当該装置に接続されかつ当該装置よりも1つ下位層装置の全てについてステップS143〜S145を実行したか否かを判定する。そして全ての下位装置について実行した場合には処理を終了し、そうでない場合には、次の下位装置を選択して(ステップS147)、処理をステップS143に戻す。
ステップS160においてサーバ11〜13は、負荷分散システム1内の下から2番目の階層(本構成例では第4層)を処理対象層として選択する。そしてステップS161においてサーバ11〜13は、選択された階層中のいずれかの装置を、処理対象とすべき当該装置として選択する。
データ「1階層下のルート状態」の値が全て「無効」と判定された場合には、当該装置はその下流の末端に処理要求を送信できる有効な経路を有さないことを意味する。したがってサーバ11〜13は、ステップS163において当該装置の負荷分散情報中のデータ「装置状態」の値を「無効」に設定する。
ステップS165においてサーバ11〜13は、ステップS163及びステップS164によって変更された負荷分散情報の内容を、その記憶部202に記憶される負荷分散情報にマージする。その後、処理はステップS172に移る。
データ「装置状態」が「正常」でないと判定された場合、サーバ11〜13はステップS164において、当該装置に接続された1階層上の装置に関する負荷分散情報中のデータ「1階層下のルート状態」の中の、当該装置に関するデータの値を「無効」にする。また当該装置の負荷分散情報中のデータ「上位装置からのルート状態」の値を「無効」にする。
ステップS165においてサーバ11〜13は、ステップS164によって変更された負荷分散情報の内容を、記憶部202に記憶される負荷分散情報にマージする。その後、処理はステップS172に移る。
当該装置に対してその上流の装置が行う負荷分散方式がラウンドロビン等である場合は、サーバ11〜13はステップS168にて負荷分散方式変更処理を呼び出す。ステップS169においてサーバ11〜13は、ステップS168によって変更された負荷分散情報の内容を、記憶部202に記憶される負荷分散情報にマージする。その後、処理はステップS172に移る。
負荷分散方式変更処理及び分配先指定時負荷分散方式変更処理については後述する。当該装置が負荷分散の対象外である場合には、処理はステップS172に移る。
これによりサーバ11〜13は、負荷分散システム1の各装置がその下流の末端に処理要求を送信できる有効な経路を持っているか否かに応じて、その装置への処理要求の送信の可否を決定する。したがって負荷分散制御プログラム104は、特許請求の範囲に記載された送信可否決定手段に対応する。
ステップS180において、サーバ11〜13は、負荷分散情報補正処理を前回行ったときから現在までに、処理対象である当該装置と同じ階層の他の装置に適用される負荷分散処理方式に変更があったか否かを判定する。
変更があったと判定された場合には、当該装置に対しても同じ負荷分散処理を行うことが好ましいと仮定できるので、ステップS181においてサーバ11〜13は、当該装置に適用する負荷分散方式を変更する。
このように負荷分散情報を変更することによって、後に述べるようにこの変更された負荷分散情報が当該装置の1階層上の装置に送信されたとき、この負荷分散情報は、負荷分散方式を変更すべきことを当該装置の1階層上の装置に知らせることになる。
ステップS183において処理数チェック処理の戻り値が「0」であるときは、サーバ11〜13は処理をステップS184に移す。ステップS184では、当該装置が有するコネクション数がチェックされる。図23にコネクション数チェック処理のフローチャートを示す。
IPコネクションが確立していない場合又は残りIPコネクション数がない場合は、コネクション数チェック処理は、当該装置への処理要求の分配を無効とすべきことを示す値「−1」を戻り値として呼び出し元に返す(ステップS212)。IPコネクションが確立しておりかつ残りIPコネクション数があるときは、コネクション数チェック処理は、戻り値として負荷分散方式を変更するか否か判定することが必要であることを示す値「0」を呼び出し元に返す(ステップS213)。
ステップS185においてコネクション数チェック処理の戻り値が「0」であるときは、サーバ11〜13は処理をステップS186に移す。ステップS186では、当該装置に適用される負荷分散方式を、通常のラウンドロビンからLeast Connectionへと変更すべきか否かが判定される。図24は、ステップS186で呼び出される処理分散方式の変更要否の判定処理のフローチャートである。
ステップS221においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「Least Connectionへの切替に使用するカウント数の閾値」(ID=18)(以下、ステップS186の説明において単に「閾値」と記す)を参照し、カウント数と閾値を比較する。
ステップS221での比較においてカウント数が閾値を超えるとき、呼び出し元への戻り値が「要」にセットされ(ステップS223)、そうでない場合には戻り値は「不要」にセットされる(ステップS224)。
ステップS225の判定において保有時間が経過している場合には、ステップS226においてサーバ11〜13は「カウント数」の値を0に戻す。
一方で戻り値が「要」であるときは、ステップS188においてサーバ11〜13は、当該装置に処理要求を分配する1階層上の負荷分配装置の負荷分散方式を、Least Connection に変更する。このときサーバ11〜13は、記憶部202に記憶された負荷分散情報のうち、当該装置に対して処理要求を分配する1階層上の装置に関する負荷分散情報中のデータ「負荷分散方式切替」(ID=10)の値を「Least Connection」に変更する。また、この1階層上の装置に関する負荷分散情報中のデータ「負荷分散方式切替フラグ」(ID=9)の値を「OFF」から「ON」に変更する。
そしてステップS195においてサーバ11〜13は、当該装置に接続された1階層上の装置に関する負荷分散情報中のデータ「1階層下のルート状態」のうち当該装置に関するデータの値を「有効」に設定する。また、当該装置の負荷分散情報中のデータ「上位装置からのルート状態」の値を「有効」にして処理を終了する。
図25は、負荷チェック処理S189として呼び出されるCPU使用率チェック処理のフローチャートである。
ステップS230においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「CPU使用率」(ID=19)とデータ「CPU使用率閾値」(ID=20)を比較する。CPU使用率チェック処理は、CPU使用率がCPU使用率閾値よりも小さくない場合に、当該装置への処理要求の分配を無効とすべきことを示す戻り値「−1」を呼び出し元に返し(ステップS231)、CPU使用率がCPU使用率閾値よりも小さい場合には、戻り値として値「0」を呼び出し元に返す(ステップS232)。
ステップS240においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「メモリ使用率」(ID=21)とデータ「メモリ使用率閾値」(ID=22)を比較する。メモリ使用率チェック処理は、メモリ使用率がメモリ使用率閾値よりも小さくない場合に戻り値「−1」を呼び出し元に返し(ステップS241)、メモリ使用率がメモリ使用率閾値よりも小さい場合には、戻り値「0」を呼び出し元に返す(ステップS242)。
ステップS250においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「プロセス使用率」(ID=23)とデータ「プロセス使用率閾値」(ID=24)を比較する。プロセス使用率チェック処理は、プロセス使用率がプロセス使用率閾値よりも小さくない場合に、戻り値「−1」を呼び出し元に返し(ステップS251)、プロセス使用率がプロセス使用率閾値よりも小さい場合には、戻り値「0」を呼び出し元に返す。
ステップS260においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「リソース使用量」(ID=25)とデータ「リソース使用量閾値」(ID=26)を比較する。プロセス使用率チェック処理は、プロセス使用率がプロセス使用率閾値よりも大きく残りリソース量が所定の許容値よりも小さい場合には、戻り値「−1」を呼び出し元に返し(ステップS261)、プロセス使用率がプロセス使用率閾値よりも小さい場合には、戻り値「0」を呼び出し元に返す(ステップS262)。
ステップS190において負荷チェック処理の戻り値が「0」であるときは、サーバ11〜13は処理をステップS191に移す。ステップS191では、当該装置に適用される負荷分散方式を、ラウンドロビンやLeast Connectionから重み付け法へと変更すべきか否かが判定される。
ステップS220においてサーバ11〜13は、記憶部102に記憶されている当該装置に関する負荷分散情報中のデータ「重み付け法への切替に使用するカウント数」(ID=28)(以下、ステップS191の説明において単に「カウント数」と記す)を1だけ増加させる。
ステップS221においてサーバ11〜13は、当該装置に関する負荷分散情報中のデータ「重み付け法への切替に使用するカウント数の閾値」(ID=29)(以下、ステップS191の説明において単に「閾値」と記す)を参照し、カウント数と閾値を比較する。
ステップS221での比較においてカウント数が閾値を超えるとき、呼び出し元への戻り値が「要」にセットされ(ステップS223)、そうでない場合には戻り値は「不要」にセットされる(ステップS224)。
ステップS225の判定において保有時間が経過している場合には、ステップS226においてサーバ11〜13は「カウント数」の値を0に戻す。
一方で戻り値が「要」であるときは、ステップS193においてサーバ11〜13は、当該装置に処理要求を分配する1階層上の負荷分配装置の負荷分散方式を、重み付け法に変更する。このときサーバ11〜13は、記憶部202に記憶された負荷分散情報のうち、当該装置に対して処理要求を分配する1階層上の装置に関する負荷分散情報中のデータ「負荷分散方式切替」の値を「重み付け法」に変更する。また、この1階層上の装置に関する負荷分散情報中のデータ「負荷分散方式切替フラグ」の値を「OFF」から「ON」に変更する。
そしてステップS195においてサーバ11〜13は、当該装置に接続された1階層上の装置に関する負荷分散情報中のデータ「1階層下のルート状態」のうち当該装置に関するデータの値を「有効」に設定する。当該装置の負荷分散情報中のデータ「上位装置からのルート状態」の値を「有効」にして処理を終了する。
分散先指定時処理が呼び出される場合、当該装置に対してその上流の装置が行う負荷分散方式がHash法等であるため、処理要求の分配先がそれぞれの処理要求に応じて指定されている。したがって各サーバの負荷状態のチェックのみを行い負荷分散方式の変更は行わない。
ステップS270では、サーバ11〜13は当該装置に関する負荷分散情報中のデータ「負荷分散方式(既存)」(ID=8)を参照し、Hash法等による処理要求の分配先が冗長な構成を有しているか否かを判定する。分配先が冗長な構成を有していない場合には、ステップS276においてサーバ11〜13は、当該装置に接続された1階層上の装置に関する負荷分散情報中の「1階層下のルート状態」のうち当該装置に関するデータの値を「有効」に設定する。当該装置の負荷分散情報中のデータ「上位装置からのルート状態」の値を「有効」にして、処理を終了する。
分配先が冗長な構成を有している場合には、ステップS271においてサーバ11〜13は、図22を参照して説明した処理数チェック処理を行う。
なお、ステップS270において、Hash法等による処理要求の分配先が冗長な構成を有しているか否かに関わらず処理をステップS276を実行するように負荷分散制御プログラム104を作成してもよい。
サーバ11〜13上で実行される負荷分散制御プログラム104は、サーバ11〜13の記憶部102に記憶され、かつステップS104及びステップS105によって変更された、下位層装置に関する負荷分散情報を含んだ負荷分散情報補正要求を、それぞれの装置へ送信する処理をサーバ11〜13に行わせる。
すなわち、最下位層のサーバ51〜59に送信される負荷分散情報補正要求は、送信先のサーバ自身に関する負荷分散情報のみを含んでいる。中間層のサーバ31〜39並びに負荷分散装置21及び41〜43へ送信される負荷分散情報補正要求は、送信先の装置自身に関する負荷分散情報に加えて、送信先の装置に接続されかつ当該装置よりも1つ下の層にある装置の負荷分散情報も含んでいる。
このようにサーバ31〜39及び51〜59が、記憶部202に記憶されている負荷分散情報205の値を、最上位層のサーバ11〜13から送信された負荷分散情報が持つ値へ更新することにより、これらサーバ31〜39及び51〜59が保持する負荷分散情報が最上位層のサーバ11〜13が保持する負荷分散情報に整合する。
このように負荷分散装置21及び41〜43が、記憶部302に記憶されている負荷分散情報306の値を、最上位層のサーバ11〜13から送信された負荷分散情報が持つ値に更新することにより、これら負荷分散装置21及び41〜43が保持する負荷分散情報が最上位層のサーバ11〜13が保持する負荷分散情報に整合する。
したがって負荷分散情報補正要求は、特許請求の範囲に記載される可否通知に対応する。また、負荷分散情報補正要求を送信する処理をサーバ11〜13に行わせる負荷分散制御プログラム104及びサーバ11〜13の通信インタフェース103は、特許請求の範囲に記載される送信可否通知手段に対応する。
同様に負荷分散装置21及び41〜43上で実行される負荷分散プログラム305は、特許請求の範囲に記載される負荷分配手段に対応し、負荷分散プログラム305及び負荷分散装置21及び41〜43の通信インタフェース303は、特許請求の範囲に記載される可否通知受信手段に対応する。
同様に負荷分散プログラム305及び負荷分散装置21及び41〜43の通信インタフェース303は、特許請求の範囲に記載される分散方式変更通知受信手段に対応する。
負荷分散システム1は、立ち上げ終了後、ステップS102〜ステップS106を定期的に繰り返す。
図34に障害通知のデータ構成例を示す。「要求種別」には、このデータが障害通知であることを示す種別データが設定され、ID=1〜40を有するデータが全て有効データとなる。但し最下位層にあるサーバ51〜59から送信されるデータはID=33〜40を有するデータが無効データとなる。
また、負荷分散情報通知のデータ構成は、図16に示す負荷分散情報の返送データの構成と同様であり、その「要求種別」データに本データが負荷分散情報通知であることを示す種別データが設定されている。
そして負荷分散制御プログラム104は、ステップS283において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、障害が生じた負荷分散装置41に接続されかつその下流に配置されたサーバ51〜サーバ53に関する負荷分散情報中のデータ「上位装置からのルート状態」の値が「無効」に変更される。
またこれ以後、負荷分散プログラム305は、更新された負荷分散情報に従って、より上位の装置から受信した処理要求を1階層下の装置へ分配する処理を、負荷分散装置21に行わせる。
負荷分散装置21は、1階層下のサーバ31〜39へ処理要求を分配する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。そして、負荷分散装置21は、これら1階層下のサーバ31〜39のうち末端のサーバ51〜59へ処理要求を送信できる有効経路を有していないサーバ31〜33に対しては、処理要求の送信を行わない。
負荷分散装置41は負荷分散情報補正要求を受信し、自己が記憶する負荷分散情報を更新し終えると、ステップS288においてサーバ11〜13へ負荷分散情報補正完了通知を送信する。
そして負荷分散制御プログラム104は、ステップS293において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。
負荷分散制御プログラム104は、ステップS295において、サーバ31〜33へ負荷分散情報通知への応答を送信する処理をサーバ11〜13に送信する。
その後、負荷分散装置21は、1階層下のサーバ31〜39へ処理要求を分配する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。サーバ39に関するデータ「階層下のルート状態」の値は「無効」であるので、負荷分散装置21は、サーバ39に対しては処理要求の送信を行わない。
図35において、負荷分散装置41が障害から復旧したとき、ステップS300において、負荷分散装置41上で実行される負荷分散プログラム305は、記憶部302に記憶された負荷分散装置41に関する負荷分散情報中のデータ「装置状態」の値を「正常」に設定する処理と、記憶部302に記憶されたサーバ51〜サーバ53に関する負荷分散情報中のデータ「上位装置からのルート状態」の値を「有効」に設定する処理とを、負荷分散装置41に実行させる。
図37に復旧通知のデータ構成例を示す。「要求種別」には、このデータが復旧通知であることを示す種別データが設定され、ID=1〜40を有するデータが全て有効データとなる。但し最下位層にあるサーバ51〜59から送信されるデータはID=33〜40を有するデータが無効データとなる。
その後負荷分散制御プログラム104は、ステップS303において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、負荷分散装置41へ処理要求を送信するサーバ31〜33に関する負荷分散情報中のデータ「1階層下のルート状態」の値が「有効」に変更される。またサーバ31〜33の1階層上の負荷分散装置21に関する負荷分散情報中のデータ「1階層下のルート状態」のうちサーバ31〜33に関するデータの値が「有効」に変更され、サーバ31〜33に関する負荷分散情報中のデータ「上位装置からのルート状態」の値も「有効」に変更される。
サーバ31〜33上で実行される制御プログラム204は、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部202に記憶されている負荷分散情報205の値をこの負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理とを、サーバ31〜33に行わせる(ステップS305)。またこれ以後、制御プログラム204は、更新された負荷分散情報に従って、サーバ11〜サーバ13から受信した処理要求をサーバ51〜53へ分配する処理を、サーバ31〜33に行わせる。
その後サーバ31〜33は、1階層下の負荷分散装置41へ処理要求を送信する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。このデータの値はサーバ11〜13により「有効」に変更されているので、サーバ31〜33はサーバ51〜53への処理要求の分配を再開する。
サーバ31〜33は、ステップS356においてサーバ11〜13へ負荷分散情報補正完了通知を送信する。
負荷分散装置21上で実行される負荷分散プログラム305は、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部302に記憶されている負荷分散情報306の値をこの負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理とを、負荷分散装置21に行わせる(ステップS308)。またこれ以後、負荷分散プログラム305は、更新された負荷分散情報に従って、より上位の装置から受信した処理要求を1階層下の装置へ送信する処理を、負荷分散装置21に行わせる。
負荷分散装置21は、1階層下のサーバ31〜39へ処理要求を送信する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。そのうちサーバ31〜33に関するデータの値は「有効」に変更されているので、負荷分散装置21はサーバ31〜33への処理要求の送信を再開する。
その後負荷分散装置21は、ステップS309においてサーバ11〜13へ負荷分散情報補正完了通知を送信する。
サーバ11〜13上で実行される負荷分散制御プログラム104は、サーバ39から復旧通知を受信する処理と、記憶部102に記憶する負荷分散情報の値を、受信した負荷分散情報が持つ値に更新する処理とをサーバ11〜13に行わせる。そして負荷分散制御プログラム104は、ステップS312において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。その結果、サーバ39の復旧による負荷分散情報の変化により生じる、記憶部102内に記憶された負荷分散情報の矛盾が解消される。
その後、負荷分散制御プログラム104は、ステップS313において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、サーバ39へ処理要求を分配する負荷分散装置21に関する負荷分散情報中のデータ「1階層下のルート状態」のうちサーバ39に関するデータの値が「有効」に変更される。
負荷分散装置21上で実行される負荷分散プログラム305は、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部302に記憶されている負荷分散情報306の値をこの負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理とを、負荷分散装置21に行わせる(ステップS315)。またこれ以降、負荷分散プログラム305は、更新された負荷分散情報に従って、より上位の装置から受信した処理要求を1階層下の装置へ分配する処理を、負荷分散装置21に行わせる。
負荷分散装置21は、1階層下のサーバ31〜39へ処理要求を送信する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。そのうちサーバ39に関するデータの値はサーバ11〜13により「有効」に変更されているので、負荷分散装置21はサーバ39への処理要求の送信を再開する。
そしてステップS316において、負荷分散装置21は、サーバ11〜13へ負荷分散情報補正完了通知を送信する。
最上位層(第1層)にあるサーバ11〜13はクライアントC1及びC2が要求した処理要求を受け付ける。サーバ11〜13は、その上で実行される負荷分散アプリケーションプログラムにより、受信した処理要求を1つ下の層(第2層)に配置されたサーバ31〜39へと分配して送信する。負荷分散アプリケーションプログラムによる負荷分散処理は、各種の負荷分散方式のうち状況に応じた方式に従って行われる。
本構成によるサーバ11は、図5に示すサーバと同様の構成を有しており、同一の構成要素には同じ参照番号を付して説明を省略する。記憶部102には、通信インタフェース103を介して受信した処理要求を、サーバ11に接続されている下位層のサーバ31〜39へと分配する負荷分散処理をCPU101に実行させるアプリケーションプログラムである負荷分散プログラム106を有している。
サーバ11は、クライアントC1及びC2が発した処理要求を通信インタフェース103を介して受信し、受信した処理要求を下位層のサーバ31〜39へと分配し、分配された処理要求を通信インタフェース103を介して各々サーバ31〜39へと送信する。
また、サーバ11〜13の記憶部102に記憶される負荷分散情報105には、負荷分散システム11に含まれる全てのサーバ11〜13、31〜39及び51〜59に関する負荷分散情報が含まれる。
本構成によるサーバ31は、図6に示すサーバと同様の構成を有しており、同一の構成要素には同じ参照番号を付して説明を省略する。記憶部202には、通信インタフェース203を介して受信した処理要求を、サーバ31に接続されている下位層のサーバ51〜53へと分配する負荷分散処理をCPU201に実行させるアプリケーションプログラムである負荷分散プログラム206を有している。
サーバ31は、サーバ11〜13から送信された処理要求を通信インタフェース203を介して受信し、受信した処理要求を下位層のサーバ51〜59へと分配し、分配された処理要求を通信インタフェース203を介して各々サーバ51〜59へと送信する。
また、最下位層のサーバ51〜59は、図6を参照して説明した構成と同様である。
以下、第2実施例による負荷分散システム1の説明においてこれらサーバ31〜39及び51〜59をまとめて「下位層装置」と記すことがある。
そしてステップS102において、最上位層のサーバ11〜13の各々は、図14を参照して説明した最上位サーバの死活監視処理を行う。
最上位層のサーバ11〜13とその下位層にある全装置との間のTCP/IPリンクの接続の可否が確定すると、ステップS103において負荷分散制御プログラム104は、図11に示した立ち上げシーケンスと同様に、負荷分散システム1内の全ての装置に関する負荷分散情報を収集する処理を実行させる。
またサーバ51〜59上で動作する制御プログラム204は、負荷分散情報抽出要求を受信すると、各サーバが各々記憶部202に記憶している自己に関する負荷分散情報205を最上位層のサーバ11〜13に返送する処理を、各々のサーバに実行させる。
返送される負荷分散情報のデータ構成は図16を参照して説明した構成と同様である。
ステップS104では、最上位層のサーバ11〜13の各々は、ステップS103で収集した負荷分散情報に含まれる矛盾を解消する。この処理は図17及び図18を参照して説明した負荷分散情報矛盾解消処理を実行することにより行われる。
ステップS105では、各最上位層のサーバ11〜13は図19〜図29を参照して説明した負荷分散情報補正処理を実行し、サーバ11〜13の記憶部102に記憶された負荷分散情報を補正する。
このとき、サーバ11〜13は、1階層下のサーバ31〜39へ処理要求を送信する際に、負荷分散情報中のデータ「1階層下のルート状態」を参照する。そして、これら1階層下のサーバ31〜39のうちサーバXが、末端のサーバ51〜59まで処理要求を送信できる有効経路を有していないときは、サーバ11〜13はこのサーバXへの処理要求の分配を行わない。
サーバ31〜39上で実行される負荷分散プログラム206は、これらのサーバに、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部202に記憶されている負荷分散情報205の値を負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理を行わせる。
またこれ以後、負荷分散プログラム206は、更新された負荷分散情報に従って、サーバ11〜13から受信した処理要求を下位層のサーバへ分配する処理を、サーバ31〜39に行わせる。
このときサーバ31〜39は、負荷分散情報中のデータ「1階層下のルート状態」を参照する。そして、これら1階層下のサーバ31〜39のうちサーバXが、末端のサーバ51〜59まで処理要求を送信できる有効経路を有していないときは、サーバ31〜39はサーバXへの処理要求の分配を行わない。
下位層装置は負荷分散情報補正要求を受信し、自己が記憶する負荷分散情報を更新し終えると、図13に示したシーケンスと同様にサーバ11〜13へ負荷分散情報補正完了通知を送信する。そして負荷分散システム1は、立ち上げ終了後、ステップS102〜ステップS106を定期的に繰り返す。
そして負荷分散制御プログラム104は、ステップS343において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。
また、負荷分散制御プログラム104は、ステップS345において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、サーバ11〜13に関する負荷分散情報中のデータ「1階層下のルート状態」のうちサーバ31〜33に関するデータの値が「無効」に変更される。
その後サーバ11〜13は、負荷分散プログラム106によって1階層下のサーバ31〜39へ対する負荷分散処理を行う際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。そして、サーバ11〜13は、これら1階層下のサーバ31〜39のうち末端のサーバ51〜59へ処理要求を送信できる有効経路を有していないサーバ31〜33に対しては、処理要求の送信を行わない。
そして、サーバ11〜13上で動作する負荷分散制御プログラム104は、ステップS347において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。また、負荷分散制御プログラム104は、ステップS348において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。
ここで送信される復旧通知のデータ項目は、図37を参照して説明した復旧通知と同じである。
そして負荷分散制御プログラム104は、ステップS353において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。その結果、サーバ51〜53の復旧による負荷分散情報の変化により生じる、記憶部102内に記憶された負荷分散情報の矛盾が解消される。
サーバ31〜33上で実行される負荷分散プログラム206は、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部202に記憶されている負荷分散情報205の値をこの負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理とを、サーバ31〜33に行わせる(ステップS356)。
その後サーバ31〜33は、サーバ51〜59へ処理要求を分配する際に、負荷分散情報中のデータ「階層下のルート状態」を参照する。データ「階層下のルート状態」のうちサーバ51〜53に関するデータの値は「有効」に変更されているので、サーバ31〜33はサーバ51〜53への処理要求の送信を再開する。
ステップS357においてサーバ31〜33へ負荷分散情報補正完了通知を送信する。
サーバ11〜13上で実行される負荷分散制御プログラム104は、サーバ39から復旧通知を受信する処理と、記憶部102に記憶する負荷分散情報の値を、受信した負荷分散情報が持つ値に更新する処理とをサーバ11〜13に行わせる。
そして負荷分散制御プログラム104は、ステップS360において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。その結果、サーバ39の復旧による負荷分散情報の変化により生じる、記憶部102内に記憶された負荷分散情報の矛盾が解消される。
負荷分散制御プログラム104は、ステップS361において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、サーバ11〜13に関する負荷分散情報中のデータ「1階層下のルート状態」のうちサーバ39に関するデータの値が「有効」に変更される。
その後、サーバ11〜13は、サーバ31〜39への負荷分散処理を行う際に負荷分散情報中のデータ「階層下のルート状態」を参照する。データ「階層下のルート状態」のうちサーバ39に関するデータの値は「有効」に変更されているので、サーバ11〜13はサーバ39への処理要求の送信を再開する。
図45は、負荷分散ミドルウエアにより負荷分散処理を行う最上位層に配置されるサーバ11の概略構成図である。サーバ12及び13の構成もサーバ11と同様である。本構成によるサーバ11は、図5に示すサーバと同様の構成を有しており、同一の構成要素には同じ参照番号を付して説明を省略する。以下、特に説明がない限り同じ参照符号が付された構成要素同士は同じ機能を有する。
記憶部102には、通信インタフェース103を介して受信した処理要求を、サーバ11に接続されている下位層のサーバ31〜39へと分配する負荷分散処理をCPU101に実行させる負荷分散ミドルウエア107を有している。
負荷分散ミドルウエア107は、自身の動作のために使用する負荷分散情報108を、記憶部102内に記憶する。この負荷分散情報108には、サーバ11自身に関する負荷分散情報と、サーバ11が処理要求を分配する階層のサーバ31〜39に関する負荷分散情報を含む。
記憶部202には、通信インタフェース203を介して処理要求を受信した制御プログラム204からこの処理要求を受信して、サーバ31に接続されている下位層のサーバ51〜53へと分配する負荷分散処理をCPU201に実行させる負荷分散ミドルウエア207を有している。
負荷分散ミドルウエア207は、自身の動作のために使用する負荷分散情報208を、記憶部202内に記憶する。この負荷分散情報208には、サーバ31自身に関する負荷分散情報と、サーバ31が処理要求を分配する階層のサーバ51〜53に関する負荷分散情報を含む。
下位層装置は、最上位層のサーバ11〜13に対してTCP/IPリンクの確立を要求することによって、最上位層のサーバ11〜13との間のTCP/IPリンクを確立する(ステップS101)。
そしてステップS102において、最上位層のサーバ11〜13の各々は、図14を参照して説明した最上位サーバの死活監視処理を行う。
最上位層のサーバ11〜13とその下位層にある全装置との間のTCP/IPリンクの接続の可否が確定すると、ステップS103において負荷分散制御プログラム104は、図12に示した立ち上げシーケンスと同様に、サーバ31〜39及びに51〜59に関する負荷分散情報を収集する処理を実行させる。
返送される負荷分散情報のデータ構成は図16を参照して説明した構成と同様である。
サーバ11〜13の負荷分散制御プログラム104は、他の最上位層のサーバ及び下位層装置から送信された負荷分散情報を受信する処理と、受信した負荷分散情報を各々の記憶部102に記憶する処理とを、サーバ11〜13に実行させる。
そしてサーバ11〜13上で実行される負荷分散制御プログラム104は、サーバ11〜13に関する負荷分散情報と、1階層下のサーバ31〜39に関する負荷分散情報を、サーバ11〜13で実行される負荷分散ミドルウエア107へ通知する処理を、サーバ11〜13に実行させる。負荷分散ミドルウエア107は、負荷分散ミドルウエア107用に用意された記憶部102内の記憶領域に、これら通知された負荷分散情報を記憶する処理をサーバ11〜13に行わせる。
サーバ31〜39上で実行される制御プログラム204は、これらのサーバに、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部202に記憶されている負荷分散情報205の値を負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理を行わせる。
また制御プログラム204は、それぞれのサーバ自身に関する負荷分散情報と、それぞれのサーバ自身に接続された1階層下のサーバに関する負荷分散情報を、サーバ31〜39で実行される負荷分散ミドルウエア207へ通知する処理を、サーバ31〜39に実行させる。負荷分散ミドルウエア207は、負荷分散ミドルウエア207用に用意された記憶部202内の記憶領域に、これら通知された負荷分散情報を記憶する処理をサーバ31〜39に行わせる。
またサーバ31〜39上で実行される負荷分散ミドルウエア207は、制御プログラム204から受信した処理要求を下位層のサーバへ分配する処理を、サーバ31〜39に行わせる。これら負荷分散ミドルウエア107及び207は、上述した負荷分散プログラム106及び206と同様の負荷分散処理を行う。
図48において、サーバ51〜53に障害が生じた場合にはこれらサーバからの応答信号が途絶えるので、ステップS371において、1階層上のサーバ31〜33は、サーバ51〜53に障害が生じたことを検出する。サーバ31〜33上で動作する制御プログラム204は、記憶部202に記憶されたサーバ51〜53に関する負荷分散情報中のデータ「装置状態」の値を「障害」に変更する処理と、サーバ31〜33自身に関する負荷分散情報中のデータ「1階層下のルート状態」のうち、サーバ51〜53に関するデータの値を「無効」にする処理と、をサーバ31〜33に行わせる。
そして負荷分散制御プログラム104は、ステップS374において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。
また、負荷分散制御プログラム104は、ステップS375において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、記憶部102に記憶する負荷分散情報のうち、サーバ11〜13に関する負荷分散情報中のデータ「1階層下のルート状態」のうちサーバ31〜33に関するデータの値が「無効」に変更される。
負荷分散制御プログラム104は、ステップS376において、サーバ31〜33へ負荷分散情報通知への応答を送信する処理をサーバ11〜13に行わせる。
負荷分散ミドルウエア207は、負荷分散ミドルウエア207用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS378)と、制御プログラム204へ応答メッセージを送信する処理(ステップS379)とを、サーバ31〜33に実行させる。
負荷分散ミドルウエア107は、負荷分散ミドルウエア107用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS381)と、負荷分散制御プログラム104へ応答メッセージを送信する処理(ステップS382)とを、サーバ11〜13に実行させる。
またサーバ31〜39上で実行される負荷分散ミドルウエア207は、制御プログラム204から受信した処理要求を下位層のサーバへ分配する処理を、サーバ31〜39に行わせる。
このときサーバ11〜13上で動作する負荷分散制御プログラム104は、記憶部102に記憶されたサーバ39に関する負荷分散情報中のデータ「装置状態」の値を「障害」に変更する処理と、サーバ11〜13自身に関する負荷分散情報中のデータ「1階層下のルート状態」のうち、サーバ39に関するデータの値を「無効」にする処理と、をサーバ11〜13に行わせる。
サーバ11〜13上で動作する負荷分散制御プログラム104は、ステップS390において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。また、負荷分散制御プログラム104は、ステップS391において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。
負荷分散ミドルウエア107は、負荷分散ミドルウエア107用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS393)と、負荷分散制御プログラム104へ応答メッセージを送信する処理(ステップS394)とを、サーバ11〜13に実行させる。
以後、サーバ11〜13上で実行される負荷分散ミドルウエア107は、補正された負荷分散情報に従ってクライアントC1及びC2から受信した処理要求を1階層下の装置へ送信する処理と、をサーバ11〜13に行わせる。
図50において、サーバ51〜53が障害から復旧したとき、ステップS400において、サーバ51〜53上で実行される制御プログラム204は、記憶部202に記憶されたサーバ51〜53自身に関する負荷分散情報中のデータ「装置状態」の値を「正常」に設定する処理を、サーバ51〜53に実行させる。
その後制御プログラム204は、ステップS401において、サーバ51〜53が復旧したことを知らせる復旧通知を最上位層のサーバ11〜13へ送信する処理をサーバ51〜53に実行させる。
サーバ31〜33上で実行される制御プログラム204は、サーバ11〜13からの負荷分散情報補正要求を受信する処理と、記憶部202に記憶されている負荷分散情報205の値をこの負荷分散情報補正要求に含まれている負荷分散情報が持つ値へ更新する処理(ステップS405)と、負荷分散情報補正完了通知をサーバ11〜13へ送信する処理(ステップS406)とを、サーバ31〜33に行わせる。
負荷分散ミドルウエア207は、負荷分散ミドルウエア207用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS408)と、制御プログラム204へ応答メッセージを送信する処理(ステップS409)とを、サーバ31〜33に実行させる。
負荷分散ミドルウエア107は、負荷分散ミドルウエア107用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS411)と、負荷分散制御プログラム104へ応答メッセージを送信する処理(ステップS412)とを、サーバ11〜13に実行させる。
そして負荷分散制御プログラム104は、ステップS422において、図17に示す負荷分散情報矛盾解消処理をサーバ11〜13に行わせる。その結果、サーバ39の復旧による負荷分散情報の変化により生じる、記憶部102内に記憶された負荷分散情報の矛盾が解消される。
負荷分散制御プログラム104は、ステップS423において、図19に示す負荷分散情報補正処理をサーバ11〜13に行わせる。その結果、サーバ11〜13に関する負荷分散情報中のデータ「1階層下のルート状態」が変更される。
負荷分散ミドルウエア107は、負荷分散ミドルウエア107用の記憶領域に記憶される負荷分散情報の値を、通知された負荷分散情報の値に更新する処理(ステップS425)と、負荷分散制御プログラム104へ応答メッセージを送信する処理(ステップS426)とを、サーバ11〜13に実行させる。
各層が1つ以上のノードを含み、上位層のノードから下位層のノードへと処理要求が順次送信される階層構造を有し、これらノードのいずれかを負荷分散手段とすることにより末端のノードへ処理要求を分散させる負荷分散システムであって、
前記ノードのいずれかであるマスタノードは、
該マスタノードと別の他の当該ノードが有する所定の負荷分散情報を、当該ノード又はそれより上位層にある他のノードから受信する負荷分散情報受信手段と、
前記階層構造に含まれる全てのノードに関する各々の前記負荷分散情報を一括して記憶する負荷分散情報記憶手段と、
を備えることを特徴とする負荷分散システム。
前記所定の負荷分散情報は、前記負荷分散手段から処理要求を分配される前記ノードにおける処理受付数及び処理実行数、前記負荷分散手段から処理要求を分配される前記ノードの接続状況及び負荷状況、並びに前記負荷分散手段が行う負荷分散方式のいずれかを示す情報であることを特徴とする付記1に記載の負荷分散システム。
前記マスタノードは、
前記負荷分散情報記憶手段に記憶された前記負荷分散情報から判定される、当該ノードからその下流にある末端へ至る有効経路の有無に応じて、当該ノードへの処理要求の可否を決定する送信可否決定手段と、
当該ノードへ処理要求を送信する他のノードへ、当該ネットワークへの処理要求の可否を知らせる可否通知を送信する送信可否通知手段と、
を備えることを特徴とする付記2に記載の負荷分散システム。
前記マスタノードは、
当該ノードに関する前記負荷分散情報が示す負荷状態が所定の基準を満たすとき、当該ノードに処理要求を分配する当該負荷分散手段の負荷分散方式を変更する負荷分散方式変更手段と、
変更された前記負荷分散方式を知らせる負荷分散方式変更通知を当該負荷分散手段へ送信する負荷分散方式通知手段と、
を更に備えることを特徴とする付記2又は3に記載の負荷分散システム。
前記マスタノードは、
前記負荷分散情報記憶手段に当該ノードについて記憶した前記負荷分散情報と、当該ノードが有している前記負荷分散情報と、の間の整合処理を行うデータ整合手段を、更に備えることを特徴とする付記2又は3に記載の負荷分散システム。
前記データ整合手段は、前記マスタノードが負荷分散処理を開始した時に及び/又は周期的に前記整合処理を行うことを特徴とする付記5に記載の負荷分散システム。
前記マスタノードは、
前記ノードのいずれかが障害状態となったことをその1階層上の他のノードが通知する障害通知を受信する障害通知受信手段を有し、
前記データ整合手段は、前記障害通知を受信したとき前記整合処理を行うことを特徴とする付記5に記載の負荷分散システム。
前記マスタノードは、
前記ノードのいずれかが障害状態から復旧したことをそのノードが通知する復旧通知を受信する復旧通知受信手段を有し、
前記データ整合手段は、前記復旧通知を受信したとき前記整合処理を行うことを特徴とする付記5に記載の負荷分散システム。
前記マスタノードは、
前記負荷分散情報記憶手段に記憶された前記負荷分散情報に存在する矛盾をチェックするデータチェック手段を、更に備えることを特徴とする付記2又は3に記載の負荷分散システム。
前記データチェック手段は、前回受信した負荷分散情報と今回受信した負荷分散情報と間の相違点をチェックすることを特徴とする付記9に記載の負荷分散システム。
前記データチェック手段は、各前記ノードについて各々記憶された前記負荷分散情報が、それぞれの前記ノードを正常及び無効のいずれと示すかに関して、前記負荷分散情報に存在する矛盾をチェックすることを特徴とする付記9に記載の負荷分散システム。
前記データチェック手段は、各前記ノードが末端へ至る有効経路の有無に応じてそのノードの有効及び無効を判定することを特徴とする付記9に記載の負荷分散システム。
前記データチェック手段は、最上位層のノードから各前記ノードへ至る有効経路の有無に応じてそのノードの有効及び無効を判定することを特徴とする付記9に記載の負荷分散システム。
前記データチェック手段は、当該ノードから末端へ至る有効経路が無いとき、又は最上位層のノードから当該ノードへ至る有効経路が無いとき、当該ノードについて前記負荷分散情報記憶手段に記憶された前記負荷分散情報に当該ノードが無効であることを設定することを特徴とする付記9に記載の負荷分散システム。
前記負荷分散方式変更手段は、当該負荷分散手段により前記処理要求が分配される各ノードの負荷状態が所定の許容範囲内に維持されている間、当該負荷分散手段の負荷分散方式を前記現状の負荷分散方式に維持することを特徴とする付記4に記載の負荷分散システム。
前記負荷分散方式変更手段は、当該負荷分散手段の負荷分散方式が、当該負荷分散手段にて受信した各前記処理要求の分配先をそれぞれの処理要求に応じて決定する方式であるとき、当該負荷分散手段の負荷分散方式を現状の負荷分散方式に維持することを特徴とする付記4に記載の負荷分散システム。
前記階層構造の最上位層に、複数のノードがそれぞれ前記マスタノードとして配置され、
これらマスタノードの各々は、他のマスタノードが障害であるか否かを相互に監視する死活監視手段を備える、付記2又は3に記載の負荷分散システム。
前記マスタノードは、前記他のマスタノードの障害通知及び/又は障害復旧通知を、前記負荷分散システムに処理要求を送信するクライアント装置及び/又は下位層のノードへ送信する障害通知手段を備えることを特徴とする付記17に記載の負荷分散システム。
前記下位層ノードは、
前記障害通知及び/又は障害復旧通知を受信する受信手段と、
前記所定の負荷分散情報と各前記マスタノードの死活状態を記憶する記憶手段と、
記憶する所定の負荷分散情報を、障害状態でない前記マスタノードへ送信する負荷分散情報送信手段と、
を備えることを特徴とする付記18に記載の負荷分散システム。
前記負荷分散手段は、上位層の前記ノードから送信された処理要求を1つ下位の層の前記ノードへと分配する負荷分散装置、並びに前記ノード上にて実行されることにより上位層の前記ノードから送信された処理要求を1つ下位の層の前記ノードへと分配する負荷分散処理をこのノードに実行させるアプリケーションプログラム及びミドルウエアのいずれかであることを特徴とする付記1〜19のいずれか一項に記載の負荷分散システム。
付記1又は2に記載の負荷分散システムにおける前記マスタノードとして動作するノード装置であって、
該マスタノードと別の他の当該ノードが有する所定の負荷分散情報を、当該ノード又はそれより上位層にある他のノードから受信する負荷分散情報受信手段と、
前記階層構造に含まれる全てのノードに関する各々の前記負荷分散情報を一括して記憶する負荷分散情報記憶手段と、
を備えることを特徴とするノード装置。
前記負荷分散情報記憶手段に記憶された前記負荷分散情報から判定される、当該ノードからその下流にある末端へ至る有効経路の有無に応じて、当該ノードへの処理要求の可否を決定する送信可否決定手段と、
当該ノードへ処理要求を送信する他のノードへ、当該ネットワークへの処理要求の可否を知らせる可否通知を送信する送信可否通知手段と、
を備えることを特徴とする付記21に記載のノード装置。
当該ノードに関する前記負荷分散情報が示す負荷状態が所定の基準を満たすとき、当該ノードに処理要求を分配する当該負荷分散手段の負荷分散方式を変更する負荷分散方式変更手段と、
変更された前記負荷分散方式を知らせる負荷分散方式変更通知を当該負荷分散手段へ送信する負荷分散方式通知手段と、
を更に備えることを特徴とする付記21又は22に記載のノード装置。
付記3に記載の負荷分散システムにおける前記負荷分散手段として動作する負荷分散装置であって、
前記可否通知を前記マスタノードから受信する可否通知受信手段と、
受信した前記可否通知に従って処理要求の分配を行う負荷分配手段と、
を備えることを特徴とする負荷分散装置。
付記4、15又は16に記載の負荷分散システムにおける前記負荷分散手段として動作する負荷分散装置であって、
前記負荷分散方式変更通知を前記マスタノードから受信する分散方式変更通知受信手段と、
受け付けた処理要求の分配を変更された前記負荷分散方式に従って行う負荷分配手段と、
を備えることを特徴とする負荷分散装置。
各層が1つ以上のノードを含み、上位層のノードから下位層のノードへと処理要求が順次送信される階層構造を有し、これらノードのいずれかを負荷分散手段とすることにより末端のノードへ処理要求を分散させる負荷分散システムにおける、前記ノードのいずれかであるマスタノードで実行される負荷分散制御プログラムであって、
該マスタノードと別の他の当該ノードが有する所定の負荷分散情報を、当該ノード又はそれより上位層にある他のノードから受信する処理と、
前記階層構造に含まれる全てのノードに関する各々の前記負荷分散情報を一括して、前記マスタノードに設けられた所定の負荷分散情報記憶手段に記憶する処理と、
を前記マスタノードに実行させることを特徴とする負荷分散制御プログラム。
前記所定の負荷分散情報は、前記負荷分散手段から処理要求を分配される前記ノードにおける処理受付数及び処理実行数、前記負荷分散手段から処理要求を分配される前記ノードの接続状況及び負荷状況、並びに前記負荷分散手段が行う負荷分散方式のいずれかを示す情報であることを特徴とする付記26に記載の負荷分散制御プログラム。
前記負荷分散情報記憶手段に記憶された前記負荷分散情報から判定される、当該ノードからその下流にある末端へ至る有効経路の有無に応じて、当該ノードへの処理要求の可否を決定する処理と、
当該ノードへ処理要求を送信する他のノードへ、当該ネットワークへの処理要求の可否を知らせる可否通知を送信する処理と、
を前記マスタノードに実行させることを特徴とする付記27に記載の負荷分散制御プログラム。
当該ノードに関する前記負荷分散情報が示す負荷状態が所定の基準を満たすとき、当該ノードに処理要求を分配する当該負荷分散手段の負荷分散方式を変更する処理と、
変更された前記負荷分散方式を知らせる負荷分散方式変更通知を当該負荷分散手段へ送信する処理と、
を前記マスタノードに実行させることを特徴とする付記27又は28に記載の負荷分散制御プログラム。
付記3に記載の負荷分散システムのいずれかのノードにおいて前記負荷分散手段として実行される負荷分散プログラムであって、
前記可否通知を前記マスタノードから受信する処理と、
受信した前記可否通知に従って前記処理要求の分配を行う処理と、
を前記いずれかのノードに実行させることを特徴とする負荷分散プログラム。
付記4、15又は16に記載の負荷分散システムのいずれかのノードにおいて前記負荷分散手段として実行される負荷分散プログラムであって、
前記負荷分散方式変更通知を前記マスタノードから受信する処理と、
前記負荷分散方式変更通知により変更された前記負荷分散方式に従って、処理要求の分配を行う処理と、
を前記いずれかのノードに実行させることを特徴とする負荷分散プログラム。
前記ノードにインストールされるアプリケーションプログラム又はミドルウエアであることを特徴とする付記30又は付記31に記載の負荷分散プログラム。
各層が1つ以上のノードを含み、上位層のノードから下位層のノードへと処理要求が順次送信される階層構造を有し、これらノードのいずれかが負荷分散手段とすることにより末端のノードへ処理要求を分散させる負荷分散システムにおける負荷分散方法であって、
前記ノードのいずれかであるマスタノードにおいて、
該マスタノードと別の他の当該ノードが有する所定の負荷分散情報を、当該ノード又はそれより上位層にある他のノードから受信し、
前記階層構造に含まれる全てのノードに関する各々の前記負荷分散情報を一括して、前記マスタノードに設けられた所定の負荷分散情報記憶手段に記憶する、
ことを特徴とする負荷分散方法。
前記所定の負荷分散情報は、前記負荷分散手段から処理要求を分配される前記ノードにおける処理受付数及び処理実行数、前記負荷分散手段から処理要求を分配される前記ノードの接続状況及び負荷状況、並びに前記負荷分散手段が行う負荷分散方式のいずれかを示す情報であることを特徴とする付記33に記載の負荷分散方法。
前記マスタノードにおいて、
前記負荷分散情報記憶手段に記憶された前記負荷分散情報から判定される、当該ノードからその下流にある末端へ至る有効経路の有無に応じて、当該ノードへの処理要求の可否を決定し、
当該ノードへ処理要求を送信する他のノードへ、当該ネットワークへの処理要求の可否を通知する、
を備えることを特徴とする付記34に記載の負荷分散方法。
前記マスタノードにおいて、
当該ノードに関する前記負荷分散情報が示す負荷状態が所定の基準を満たすとき、当該ノードに処理要求を分配する当該負荷分散手段の負荷分散方式を変更し、
変更された前記負荷分散方式を当該負荷分散手段へ通知する、
を更に備えることを特徴とする付記34又は35に記載の負荷分散方法。
前記マスタノードにおいて、
前記負荷分散情報記憶手段に当該ノードについて記憶した前記負荷分散情報と、当該ノードが有している前記負荷分散情報と、の間の整合処理を行うことを特徴とする付記34又は35に記載の負荷分散方法。
前記マスタノードが負荷分散処理を開始した時に及び/又は周期的に前記整合処理を行うことを特徴とする付記37に記載の負荷分散方法。
前記マスタノードにおいて、
前記ノードのいずれかが障害状態となったことをその1階層上の他のノードが通知する障害通知を受信し、
前記障害通知を受信したとき前記整合処理を行うことを特徴とする付記37に記載の負荷分散方法。
前記マスタノードにおいて、
前記ノードのいずれかが障害状態から復旧したことをそのノードが通知する復旧通知を受信し、
前記復旧通知を受信したとき前記整合処理を行うことを特徴とする付記37に記載の負荷分散方法。
前記マスタノードにおいて、
前記負荷分散情報記憶手段に記憶された前記負荷分散情報に存在する矛盾をチェックすることを特徴とする付記34又は35に記載の負荷分散方法。
前回受信した負荷分散情報と今回受信した負荷分散情報と間の相違点をチェックすることを特徴とする付記41に記載の負荷分散方法。
各前記ノードについて各々記憶された前記負荷分散情報が、それぞれの前記ノードを正常及び無効のいずれと示すかに関して、前記負荷分散情報に存在する矛盾をチェックすることを特徴とする付記41に記載の負荷分散方法。
各前記ノードが末端へ至る有効経路の有無に応じてそのノードの有効及び無効を判定することを特徴とする付記41に記載の負荷分散方法。
最上位層のノードから各前記ノードへ至る有効経路の有無に応じてそのノードの有効及び無効を判定することを特徴とする付記41に記載の負荷分散方法。
当該ノードから末端へ至る有効経路が無いとき、又は最上位層のノードから当該ノードへ至る有効経路が無いとき、当該ノードについて前記負荷分散情報記憶手段に記憶された前記負荷分散情報に当該ノードが無効であることを設定することを特徴とする付記41に記載の負荷分散方法。
当該負荷分散手段により前記処理要求が分配される各ノードの負荷状態が所定の許容範囲内に維持されている間、当該負荷分散手段の負荷分散方式を前記現状の負荷分散方式に維持することを特徴とする付記36に記載の負荷分散方法。
当該負荷分散手段の負荷分散方式が、当該負荷分散手段にて受信した各前記処理要求の分配先をそれぞれの処理要求に応じて決定する方式であるとき、当該負荷分散手段の負荷分散方式を現状の負荷分散方式に維持することを特徴とする付記36に記載の負荷分散方法。
前記負荷分散システムの前記階層構造の最上位層に、複数のノードがそれぞれ前記マスタノードとして配置され、
これらマスタノードの各々は、他のマスタノードが障害であるか否かを相互に監視することを特徴とする付記34又は35に記載の負荷分散方法。
前記マスタノードは、前記他のマスタノードの障害通知及び/又は障害復旧通知を、前記負荷分散方法に処理要求を送信するクライアント装置及び/又は下位層のノードへ送信することを特徴とする付記49に記載の負荷分散方法。
前記下位層ノードにおいて、
前記障害通知及び/又は障害復旧通知を受信し、
前記所定の負荷分散情報と各前記マスタノードの死活状態を記憶し、
記憶する所定の負荷分散情報を、障害状態でない前記マスタノードへ送信する、
ことを特徴とする付記50に記載の負荷分散方法。
前記負荷分散手段は、上位層の前記ノードから送信された処理要求を1つ下位の層の前記ノードへと分配する負荷分散装置、並びに前記ノード上にて実行されることにより上位層の前記ノードから送信された処理要求を1つ下位の層の前記ノードへと分配する負荷分散処理をこのノードに実行させるアプリケーションプログラム及びミドルウエアのいずれかであることを特徴とする付記33〜51のいずれか一項に記載の負荷分散方法。
Claims (2)
- 各層が1つ以上のノードを含み、上位層のノードから下位層のノードへと処理要求が順次送信される階層構造を有し、これらノードのいずれかを負荷分散手段とすることにより末端のノードへ処理要求を分散させる負荷分散システムであって、
前記階層構造は、最上位層より下位の第1層に位置する負荷分散手段と、第1層より一階層低い第2層に位置して前記負荷分散手段により分配される処理要求を受信する第1ノードと、第2層より一階層低い第3層に位置する1つ以上の第2ノードを有し、
前記最上位層のノードであるマスタノードは、
前記マスタノード以外のノードが有する所定の負荷分散情報を、前記負荷分散情報を有するノード又はそれより上位層に位置するノードから受信する負荷分散情報受信手段と、
前記階層構造に含まれる全てのノードに関する各々の前記負荷分散情報を一括して記憶する負荷分散情報記憶手段と、
前記負荷分散手段による第1ノードへの処理要求の送信可否を決定する送信可否決定手段と、
第1ノードへの処理要求の送信可否を前記負荷分散手段へ通知する送信可否通知手段と、
第1ノードに関する前記負荷分散情報が示す負荷状態が所定の基準を満たすとき、第1ノードに処理要求を分配する当該負荷分散手段の負荷分散方式をラウンドロビン方式から最小コネクション方式へと変更する負荷分散方式変更手段と、
変更された前記負荷分散方式を知らせる負荷分散方式変更通知を前記負荷分散手段へ送信する負荷分散方式通知手段と、
を備え、
前記負荷分散情報記憶手段に記憶される負荷分散情報は、第1ノードから処理要求が送信される経路上の全ての第2ノードの装置状態に関する情報を含み、
前記送信可否決定手段は、第1ノードから処理要求が送信される経路上の全ての第2ノードの前記装置状態に関する情報が全て異常状態を示すか否かに応じて、第1ノードへの処理要求の送信可否を決定する、ことを特徴とする負荷分散システム。 - 前記所定の負荷分散情報は、前記負荷分散手段から処理要求を分配される前記ノードにおける処理受付数及び処理実行数、前記負荷分散手段から処理要求を分配される前記ノードの接続状況及び負荷状況、並びに前記負荷分散手段が行う負荷分散方式のいずれかを示す情報であることを特徴とする請求項1に記載の負荷分散システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/057582 WO2008129597A1 (ja) | 2007-04-04 | 2007-04-04 | 負荷分散システム、ノード装置、負荷分散装置、負荷分散制御プログラム、負荷分散プログラム及び負荷分散方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008129597A1 JPWO2008129597A1 (ja) | 2010-07-22 |
JP5246157B2 true JP5246157B2 (ja) | 2013-07-24 |
Family
ID=39875146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009510636A Expired - Fee Related JP5246157B2 (ja) | 2007-04-04 | 2007-04-04 | 負荷分散システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8086714B2 (ja) |
JP (1) | JP5246157B2 (ja) |
WO (1) | WO2008129597A1 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5293161B2 (ja) * | 2008-12-24 | 2013-09-18 | 株式会社リコー | 無停電電源装置監視システム、無停電電源装置監視方法及び無停電電源装置監視プログラム |
JP2010238051A (ja) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | 負荷分散プログラム及び負荷分散装置 |
JP5439219B2 (ja) * | 2010-02-18 | 2014-03-12 | 株式会社日立製作所 | メッセージ配信システム及びメッセージ配信方法 |
US8892632B2 (en) * | 2010-06-04 | 2014-11-18 | Microsoft Corporation | Client-server interaction frequency control |
US8402530B2 (en) * | 2010-07-30 | 2013-03-19 | Microsoft Corporation | Dynamic load redistribution among distributed servers |
EP2645261B1 (en) * | 2010-11-26 | 2018-09-26 | Fujitsu Limited | Management apparatus, management system, management method and set of an application source program, a first program and a second program |
JP5853378B2 (ja) * | 2011-03-04 | 2016-02-09 | 日本電気株式会社 | 通信切替システム、通信切替方法、及びプログラム |
JP5588936B2 (ja) * | 2011-07-19 | 2014-09-10 | 日本電信電話株式会社 | 通信装置及びネットワーク管理方法及びプログラム |
US8914502B2 (en) | 2011-09-27 | 2014-12-16 | Oracle International Corporation | System and method for dynamic discovery of origin servers in a traffic director environment |
US8683099B1 (en) * | 2012-06-14 | 2014-03-25 | Emc Corporation | Load balancing of read/write accesses on a single host device |
US8891364B2 (en) * | 2012-06-15 | 2014-11-18 | Citrix Systems, Inc. | Systems and methods for distributing traffic across cluster nodes |
US9465648B2 (en) * | 2012-07-31 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Distributed transaction processing through commit messages sent to a downstream neighbor |
JP5914245B2 (ja) * | 2012-08-10 | 2016-05-11 | 株式会社日立製作所 | 多階層の各ノードを考慮した負荷分散方法 |
US9558043B2 (en) * | 2013-01-25 | 2017-01-31 | Cisco Technology Inc. | System and method for abstracting and orchestrating mobile data networks in a network environment |
US9276860B2 (en) * | 2013-03-13 | 2016-03-01 | Microsoft Technology Licensing, Llc | Distributed data center technology |
US9712634B2 (en) | 2013-03-15 | 2017-07-18 | Cisco Technology, Inc. | Orchestrating mobile data networks in a network environment |
TW201441834A (zh) * | 2013-04-22 | 2014-11-01 | Hon Hai Prec Ind Co Ltd | 介面擴展裝置及串列連接介面擴展器 |
US9270709B2 (en) | 2013-07-05 | 2016-02-23 | Cisco Technology, Inc. | Integrated signaling between mobile data networks and enterprise networks |
US10863387B2 (en) | 2013-10-02 | 2020-12-08 | Cisco Technology, Inc. | System and method for orchestrating policy in a mobile environment |
US9414215B2 (en) | 2013-10-04 | 2016-08-09 | Cisco Technology, Inc. | System and method for orchestrating mobile data networks in a machine-to-machine environment |
US20150189009A1 (en) * | 2013-12-30 | 2015-07-02 | Alcatel-Lucent Canada Inc. | Distributed multi-level stateless load balancing |
US10397313B2 (en) * | 2015-03-18 | 2019-08-27 | Nokia Of America Corporation | Data stream load balancing utilizing multiple sets of servers |
US10412020B2 (en) | 2015-04-30 | 2019-09-10 | Amazon Technologies, Inc. | Background processes in update load balancers of an auto scaling group |
US10341426B2 (en) * | 2015-04-30 | 2019-07-02 | Amazon Technologies, Inc. | Managing load balancers associated with auto-scaling groups |
US10038640B2 (en) | 2015-04-30 | 2018-07-31 | Amazon Technologies, Inc. | Managing state for updates to load balancers of an auto scaling group |
US10242018B2 (en) * | 2016-04-18 | 2019-03-26 | International Business Machines Corporation | Page allocations for encrypted files |
JP6903960B2 (ja) * | 2017-03-10 | 2021-07-14 | 富士通株式会社 | 監視方法,監視装置,及びプログラム |
CN110914805A (zh) * | 2017-07-12 | 2020-03-24 | 华为技术有限公司 | 用于分层任务调度的计算*** |
JP7085094B2 (ja) | 2018-02-05 | 2022-06-16 | Gve株式会社 | システム及び管理装置 |
US10963375B1 (en) * | 2018-03-23 | 2021-03-30 | Amazon Technologies, Inc. | Managing maintenance operations for a distributed system |
US11108694B2 (en) * | 2018-03-30 | 2021-08-31 | Ricoh Company, Ltd. | Communication system and upload method |
CN110022376A (zh) * | 2019-04-19 | 2019-07-16 | 成都四方伟业软件股份有限公司 | 任务调度方法、装置及*** |
CN110308983B (zh) * | 2019-04-19 | 2022-04-05 | 中国工商银行股份有限公司 | 资源负载均衡方法及***、服务节点和客户端 |
EP3848937A1 (en) * | 2020-01-09 | 2021-07-14 | F. Hoffmann-La Roche AG | Techniques for controlling automated analyzers |
CN113093682B (zh) * | 2021-04-09 | 2022-07-05 | 天津商业大学 | 一种非集中递归式动态负载均衡计算*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302564A (ja) * | 2003-03-28 | 2004-10-28 | Hitachi Ltd | ネームサービス提供方法及びその実施装置並びにその処理プログラム |
JP2005182641A (ja) * | 2003-12-22 | 2005-07-07 | Hitachi Information Systems Ltd | 動的負荷分散システム及び動的負荷分散方法 |
JP2005352576A (ja) * | 2004-06-08 | 2005-12-22 | Ntt Docomo Inc | 処理システム及び処理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
CA2267953C (en) * | 1996-07-25 | 2011-10-18 | Mark Kriegsman | Web serving system with primary and secondary servers |
US6119143A (en) * | 1997-05-22 | 2000-09-12 | International Business Machines Corporation | Computer system and method for load balancing with selective control |
US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6327622B1 (en) * | 1998-09-03 | 2001-12-04 | Sun Microsystems, Inc. | Load balancing in a network environment |
US6587878B1 (en) * | 1999-05-12 | 2003-07-01 | International Business Machines Corporation | System, method, and program for measuring performance in a network system |
US6820133B1 (en) * | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
JP3969089B2 (ja) | 2001-12-25 | 2007-08-29 | 株式会社日立製作所 | 階層構成サーバシステム |
-
2007
- 2007-04-04 JP JP2009510636A patent/JP5246157B2/ja not_active Expired - Fee Related
- 2007-04-04 WO PCT/JP2007/057582 patent/WO2008129597A1/ja active Application Filing
-
2009
- 2009-09-30 US US12/570,252 patent/US8086714B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004302564A (ja) * | 2003-03-28 | 2004-10-28 | Hitachi Ltd | ネームサービス提供方法及びその実施装置並びにその処理プログラム |
JP2005182641A (ja) * | 2003-12-22 | 2005-07-07 | Hitachi Information Systems Ltd | 動的負荷分散システム及び動的負荷分散方法 |
JP2005352576A (ja) * | 2004-06-08 | 2005-12-22 | Ntt Docomo Inc | 処理システム及び処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8086714B2 (en) | 2011-12-27 |
WO2008129597A1 (ja) | 2008-10-30 |
JPWO2008129597A1 (ja) | 2010-07-22 |
US20100036956A1 (en) | 2010-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5246157B2 (ja) | 負荷分散システム | |
US10674486B2 (en) | System, security and network management using self-organizing communication orbits in distributed networks | |
US8375001B2 (en) | Master monitoring mechanism for a geographical distributed database | |
Moazzeni et al. | On reliability improvement of software-defined networks | |
US9787771B2 (en) | Data access and management system as well as a method for data access and data management for a computer system | |
JP2007164264A (ja) | 負荷分散プログラム、負荷分散装置、サービスシステム | |
JP2010098591A (ja) | 障害監視システム、サーバ装置およびノード装置 | |
US20210120097A1 (en) | Scheduling solution configuration method and apparatus, computer readable storage medium thereof, and computer device | |
JP5526780B2 (ja) | 負荷分散システム、サービス処理サーバ、負荷分散方法及び負荷分散プログラム | |
CN104488227A (zh) | 用于在大型数据处理***中进行孤立异常检测的方法 | |
JP5326308B2 (ja) | コンピュータリンク方法及びシステム | |
CN111917870A (zh) | 请求处理方法、***、装置、电子设备及存储介质 | |
JP2011145833A (ja) | データ分散管理システム及びデータ分散管理方法 | |
JP6117345B2 (ja) | 処理性能低下を回避するメッセージシステム | |
CN113890850B (zh) | 路由容灾***及方法 | |
JP2006246152A (ja) | パケット転送装置、パケット転送ネットワークシステムおよびパケット転送方法 | |
CN117880227B (zh) | 一种芯片路由***、方法以及相关装置 | |
JP7498731B2 (ja) | クラスタシステム、復旧方法 | |
CN102148847B (zh) | 基于reload的客户端接入对等网络的方法和*** | |
JP6674272B2 (ja) | 情報処理方法および制御方法 | |
CN117880276A (zh) | 一种基于nginx的传输任务调度方法及应用 | |
Menaceur et al. | Fault Tolerance and Failure Recovery Techniques in Software-Defined Networking: A Comprehensive Approach | |
CN117082066A (zh) | 一种进程跨云迁移的方法、装置、设备以及可读存储介质 | |
KR20220132808A (ko) | 소프트웨어 정의 네트워크 기반 장애 예측 제어 관리 방법 및 장치 | |
CN116633764A (zh) | ***切换方法、装置、计算机设备、存储介质和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120709 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130206 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130213 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130325 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160419 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |