JP3974925B2 - サーバ装置 - Google Patents

サーバ装置 Download PDF

Info

Publication number
JP3974925B2
JP3974925B2 JP2006086806A JP2006086806A JP3974925B2 JP 3974925 B2 JP3974925 B2 JP 3974925B2 JP 2006086806 A JP2006086806 A JP 2006086806A JP 2006086806 A JP2006086806 A JP 2006086806A JP 3974925 B2 JP3974925 B2 JP 3974925B2
Authority
JP
Japan
Prior art keywords
server
node
request
client
transfer
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
Application number
JP2006086806A
Other languages
English (en)
Other versions
JP2006228243A (ja
Inventor
勝之 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006086806A priority Critical patent/JP3974925B2/ja
Publication of JP2006228243A publication Critical patent/JP2006228243A/ja
Application granted granted Critical
Publication of JP3974925B2 publication Critical patent/JP3974925B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、計算機環境におけるクライアント/サーバシステムのサーバの構成に関し、特に、サーバをクラスタシステム(複数のノードを結合したシステム)で構成する際のノード(サーバ)間の負荷分散を行うサーバ装置に関する。
近年、インターネット等の開放型システムの普及に伴い、クライアント/サーバシステムへの関心が高まり、特に不特定多数のクライアントからの要求が集中することが予想されるサーバシステムを高性能/高可用化する(利用可能率を高くする)ための技術として、クラスタシステムの負荷分散に関する技術の開発が望まれている。
従来のクラスタシステムにおける負荷分散技術の1つに、ルータやパケットフィルタによるリダイレクション(仕事の割り振り)がある。この方式では、サーバはクライアントからのリクエストを受けるフロントエンドノード(FEPノード)と、クライアントからのリクエストを処理する機能を複数台のノードに分散配置したバックエンドノード(BEPノード)群から構成されていた。全てのクライアントはFEPノードに対してリクエストを送り、FEPノードは要求されたサービスに対して適切なBEPノードにリクエストを転送して負荷分散を行っていた。
図7は従来例の説明図(1)、図8は従来例の説明図(2)である。以下図7、図8に基づいて従来例の説明をする。
図7において、従来のリダイレクションを利用した負荷分散の例であり、サーバドメイン1と複数のクライアントドメイン(1) 、(2) がWAN(ワイドエリアネットワーク)を介して接続されている。
サーバドメイン1には、FEPサーバ11、複数のサーバ12(サーバA〜C)、ドメインネイムサーバ(DNS)13、ルータ14が設けてある。クライアントドメイン(1) には、複数のクライアント(1)〜(3)、DNS43、ルータ44が設けてある。クライアントドメイン(2) には、複数のクライアント(4)〜(6)、DNS43、ルータ44が設けてある。
FEPサーバ11は、LAN(ローカルエリアネットワーク)でクライアントからのリクエストを受信し、高速ノード間結合により適切なBEPノードにリクエストを転送する転送制御プロセスを有するFEPノードである。サーバ12(サーバA〜C)は、それぞれ異なる種類のサービスX〜Zを処理するサーバプロセスX〜Zを有するBEPノードである。
DNS13は、LANと接続されておりクライアント等から問い合わせのあったサービス名に対応するIPアドレス(各コンピュータ固有のアドレス)を応答するものである。例えば、図8(b)はIPアドレス例の説明であり、図8(b)のようにクライアントは、DNS13からサービス名「ftp-server」のIPアドレス「133.160.12.5」を取得して、この取得したIPアドレスに向かってリクエストを出すものである。ルータ14は、WANとLAN間の中継処理を行うものである。
複数のクライアント(1)〜(3)、複数のクライアント(4)〜(6)は、それぞれのLANで接続されておりサービス(データ処理)を要求する側である。DNS43は、LANと接続されており問い合わせのあったサービス名に対応するIPアドレス応答するものである。ルータ44は、LANとWAN間の中継処理を行うものである。
図8(a)は仕事の割り振り表の説明であり、FEPノード上のプロセスによって管理される各サーバプロセスの配置を示すものである。図8(a)において、サービス識別子に対応する転送先サーバ識別子が示されている。例えば、サービスXはサーバAに、サービスYはサーバBに、サービスZはサーバCに転送することが示されている。
全てのクライアントからのリクエストは、クライアントドメインのLAN、ルータ44、WAN、ルータ14、サーバドメイン1のLANを介してFEPノードに送られ、FEPノードは、要求されたサービスの種類に応じてリクエストの転送先ノードを決定し、適切なBEPノードに、高速ノード間結合を介してリクエストを転送する。BEPノードA〜C上のサーバプロセスX〜Zは、FEPノードから転送されたリクエストを処理してクライアントにリプライするものであった。
前記従来のリダイレクション方式においては、BEPノード毎に異なるサービスを処理するサーバプロセスを配置し、図8(a)のような表を用いて、クライアントが要求したサービスをキーとして転送先BEPノードを決定していた。このため、1種類のサービスの処理が多くなっても複数台のBEPノードで負荷分散することができない課題があった。
本発明は、このような従来の課題を解決し、同一サービスに対する複数のクライアントからのリクエストを複数台のサーバノードで負荷分散をできるようにし、また、自動的にサーバノード故障隠蔽機能や、負荷調整機能を持つことにより、システム管理コストを削減することを目的とする。
図1は本発明の原理説明図である。図1中、11はフロントエンドサーバ、12はバックエンドサーバ、21はサーバプロセス、22はノード間通信制御部、23はコネクション状態監視機構、111は割当済転送経路一覧表、112はリクエスト転送制御表、113はリクエスト転送制御機構、114は対クライアント通信制御部、115はクラスタ内ノード間通信制御部、121は負荷調整部、122はノード故障検出機構、123はノード負荷監視機構、124はサーバプロセス制御機構、125はユーザインタフェース機構である。
本発明は前記従来の課題を解決するため次のように構成した。
(1):クライアントのリクエストを処理するサーバプロセス21を配置した複数個のバックエンドサーバ12と、クライアントからのリクエストを受信するフロントエンドサーバ11と、該フロントエンドサーバ11に配置し、前記受信したリクエストを適切な前記バックエンドサーバ12に転送するリクエスト転送制御機構113と、サーバの故障を検出するノード故障検出機構122とを備え、前記リクエスト転送制御機構113は、クライアントの識別情報を用いて、同一サービスに対する複数のクライアントからのリクエストを転送する前記バックエンドサーバ12を決定してリクエストを転送し、前記ノード故障検出機構122がバックエンドサーバの故障を検出すると、該故障したバックエンドサーバ12とクライアントのコネクションを切断し、リクエスト転送制御機構113は、故障したバックエンドサーバ12へのリクエスト転送を中止して、クライアントからの再リクエスト時に正常運用している別のバックエンドサーバ12にリクエストを転送する。このため、1種類のサービスの処理を複数台のバックエンドサーバで負荷分散でき、処理性能を向上することができると共に、クライアントからの再リクエストにより、バックエンドサーバの故障をクライアントから隠蔽することができる。
(2):前記(1)のサーバ装置において、前記リクエスト転送制御機構113は、リクエスト転送制御表112を用いて転送するリクエストの比率をバックエンドサーバ12毎に制御する。このため、バックエンドサーバの処理能力に応じた負荷分散ができ、より処理性能を向上することができる。
(3):前記(1)又は(2)のサーバ装置において、前記バックエンドサーバ12の負荷を監視してリクエストの転送比率を変更するノード負荷監視機構123を設け、該ノード負荷監視機構123が負荷が高い前記バックエンドサーバ12を発見すると、リクエスト転送制御機構113は、負荷の高いバックエンドサーバ12への転送比率を下げて、前記バックエンドサーバ12間の負荷を平均化する。このため、常に負荷を平均化することができ、処理性能を向上することができる。
(4):前記(1)〜(3)のサーバ装置において、システム管理者が前記バックエンドサーバ12への転送比率を制御するためのユーザインタフェース機構125を設ける。このため、例えば、活性保守のためのバックエンドサーバの転送比率をゼロとしてノードの一時的な切り離しや再組み込みが可能となる。
(5):前記(1)〜(4)のサーバ装置において、前記サーバプロセス21とクライアントプロセス間のコネクション状態を監視するコネクション状態監視機構23を設け、前記リクエスト転送制御機構113は、前記コネクション状態監視機構23にコネクション状態を問い合わせ、サービス中のコネクションに対しては、該サービス終了後に、転送経路の変更を行う。このため、サービス途中に新たなバックエンドサーバに切り換わることがなく、処理の中断を防止することができる。
(6):前記(1)〜(5)のサーバ装置において、前記サーバプロセス21の制御を行うサーバプロセス制御機構124を設け、あるサービスのサーバプロセス21が配置された各バックエンドサーバ12の負荷が高くなった時に、前記サーバプロセス制御機構124がそのサーバプロセス21が未配置なバックエンドサーバ12にサーバプロセス21を起動する。このため、複数個のバックエンドサーバ全体の負荷を調整することができ、処理性能を向上することができる。
(7):前記(1)〜(6)のサーバ装置において、前記リクエスト転送制御機構113を、ネットワークの通信制御をするネットワークドライバとパケットの処理をするオペレーティングシステムのパケット処理部の中間に配置したパケットフィルタで構成する。このため、パケットフィルタで1種類のサービスの処理を複数台のバックエンドサーバで負荷分散でき、処理性能が向上する。
(8):前記(1)〜(7)のサーバ装置において、前記クライアントの識別情報として、クライアントから受信したリクエストのパケットのソースアドレスとソースポート番号のペアを使用する。このため、クライアントプロセス毎にリクエストの転送先ノードの制御を行うことができる。
以上のように、本発明によれば次のような効果がある。
(1):フロントエンドサーバに配置したリクエスト転送制御機構で受信したクライアントからのリクエストをクライアントの識別情報を用いて、同一サービスに対する複数のクライアントからのリクエストを転送するバックエンドサーバを決定してリクエストを転送し、ノード故障検出機構がサーバの故障を検出すると、リクエスト転送制御機構で、故障したバックエンドサーバへのリクエスト転送を中止して、クライアントからの再リクエスト時に正常運用している別のバックエンドサーバにリクエストを転送するため、1種類のサービスの処理を複数台のバックエンドサーバで負荷分散でき、処理性能を向上することができると共に、クライアントからの再リクエストにより、バックエンドサーバの故障をクライアントから隠蔽することができる。
(2):リクエスト転送制御機構で、リクエスト転送制御表を用いて転送するリクエストの比率をバックエンドサーバ毎に制御するため、バックエンドサーバの処理能力に応じた負荷分散ができ、より処理性能を向上することができる。
(3):ノード負荷監視機構が負荷が高いバックエンドサーバを発見すると、リクエスト転送制御機構で、負荷の高いバックエンドサーバへの転送比率を下げて、前記バックエンドサーバ間の負荷を平均化するため、常に負荷を平均化することができ、処理性能を向上することができる。
(4):ユーザインタフェース機構で、システム管理者がバックエンドサーバへの転送比率を制御するため、例えば、活性保守のためのバックエンドサーバの転送比率をゼロとしてノードの一時的な切り離しや再組み込みが可能となる。
(5):リクエスト転送制御機構は、コネクション状態監視機構にコネクション状態を問い合わせ、サービス中のコネクションに対しては、該サービス終了後に、転送経路の変更を行うため、サービス途中に新たなバックエンドサーバに切り換わることがなく、処理の中断を防止することができる。
(6):あるサービスのサーバプロセスが配置された各バックエンドサーバの負荷が高くなった時に、サーバプロセス制御機構がそのサーバプロセスが未配置なバックエンドサーバにサーバプロセスを起動するため、複数個のバックエンドサーバ全体の負荷を調整することができ、処理性能を向上することができる。
(7):リクエスト転送制御機構を、ネットワークの通信制御をするネットワークドライバとパケットの処理をするオペレーティングシステムのパケット処理部の中間に配置したパケットフィルタで構成するため、パケットフィルタで1種類のサービスの処理を複数台のバックエンドサーバで負荷分散でき、処理性能が向上する。
(8):クライアントの識別情報として、クライアントから受信したリクエストのパケットのソースアドレスとソースポート番号のペアを使用するため、クライアントプロセス毎にリクエストの転送先ノードの制御を行うことができる。
図2〜図6は本発明の実施の形態を示した図である。本発明では、FEPノードにおけるリクエスト転送制御に、クライアントが要求したサービスの種類に加えて、リクエストを送ったクライアント識別子を用い、同一サービスに対するリクエストの転送先BEPノードをクライアント毎に制御するものである。以下、図面に基づいて本発明の実施の形態を説明する。
(1):サーバ装置の説明
(a) :装置構成の説明
図2は装置構成図(1)である。以下、図2に基づいてサーバ装置の説明をする。
図2において、サーバ装置は、FEPサーバ(FEPノード)11と複数のBEPサーバ(BEPノード)12a、12b、12c、・・・がノード間結合3で接続されている。クライアント4は、LANあるいはWAN5を経由してFEPノード11と結合されている。
FEPサーバ11には、割当済転送経路一覧表111、転送制御表112、リクエスト転送処理部113、対クライアント通信制御部114、クラスタ内ノード間通信制御部115、負荷調整部121、ノード故障検出部122、ノード負荷監視部123、サーバプロセス制御部124、システム管理者インタフェース125が設けてある。
BEPサーバ12aには、サーバプロセス21a、ノード間通信制御部22a、コネクション状態監視部23aが設けてあり、BEPサーバ12bには、サーバプロセス21b、ノード間通信制御部22b、コネクション状態監視部23bが設けてあり、BEPサーバ12cにも、サーバプロセス21c、ノード間通信制御部22c、コネクション状態監視部23cが設けてある。
割当済転送経路一覧表111は、クライアント毎に割り当てたリクエストの転送経路を記録したものである。転送制御表112は、リクエストを処理するサーバプロセスの配置とリクエストの振り分け比率を記録したものである。リクエスト転送処理部113は、クライアントからのリクエストをBEPノードに転送するものである。対クライアント通信制御部114は、クライアントとの通信を制御するものである。クラスタ内ノード間通信制御部115は、BEPノードとの通信を制御するものである。負荷調整部121は、システム管理者の要求や発生したイベントに応じて動的に転送制御を調整するものである。ノード故障検出部122は、BEPノードの故障を検出するものである。ノード負荷監視部123は、BEPノードの負荷状態を監視するものである。サーバプロセス制御部124は、BEPノードに必要なサーバプロセスを起動するものである。システム管理者インタフェース125は、システム管理者6にユーザインタフェースを提供するものである。
サーバプロセス21a、21b、21cは、クライアントからのリクエストを処理するプロセスである。ノード間通信制御部22a、22b、22cは、FEPノードとの通信を制御するものである。コネクション状態監視部23a、23b、23cは、クライアントとサーバプロセスとのコネクション状態を監視するものである。
(b) :転送制御表と割当済転送経路一覧表の説明
図3は転送制御表と割当済転送経路一覧表の説明図であり、図3(a)は転送制御表の説明、図3(b)は割当済転送経路一覧表の説明である。
図3(a)において、転送制御表112には、リクエストの宛て先としてのポート番号等を使用するサービス識別子、転送先となる利用可能なBEPノードのIPアドレス等を使用する利用可能BEPノード識別子、同一サービスに対するリクエストの分配比率(転送比率)である比率が設けてある。
図3(b)において、割当済転送経路一覧表111には、リクエストの宛て先としてのポート番号等を使用するサービス識別子、ソースIPアドレスとソースポートのポート番号等を使用するクライアント識別子、転送先のBEPノードのIPアドレス等を使用する転送先BEPノード識別子が設けてある。
(2):サーバ装置の動作の説明
以下、図2に基づいてサーバ装置の動作を説明する。
(a) :クライアントからリクエストがあった場合の説明
クライアント4がリクエストをLANあるいはWAN5を経由してFEPノード11に送ると、対クライアント通信制御部114によって受信されたリクエストはリクエスト転送処理部113に送られる。リクエスト転送処理部113は、まず、割当済転送経路一覧表111を用いて、すでに転送経路を割り当てたことがあるクライアントからのリクエストかどうか調べる。この割当済転送経路一覧表111には、リクエストしたクライアントの識別子と要求したサービスの識別子のペアーをキーとして、割り当てられた転送先BEPノードの識別子が記録されている。
割当済転送経路一覧表111にクライアントのエントリがない場合には、リクエスト転送処理部113は、転送制御表112を参照して、転送先BEPノードを決定する。この転送制御表112には、利用可能BEPノード識別子とリクエストの分配比率がサービス毎に記録されている。
転送制御表112でリクエストの転送先BEPノードが決定すると、リクエスト転送処理部113は、割当済転送経路一覧表111に転送先を割り当てたクライアントのエントリを作り、クラスタ内ノード間通信制御部115、ノード間結合3を経由して、リクエストを転送先として決定したBEPノードに転送する。
このリクエストが転送されたBEPノード(例えば、BEPノード12aとする)では、ノード間通信制御部22aがリクエストを受信してサーバプロセス21aにリクエストを送る。サーバプロセス21aは、リクエストを処理すると、ノード間通信制御部22a、ノード間結合3を経由して、FEPノード11にリプライを送る。FEPノード11は、クラスタ内ノード間通信制御部115でリプライを受け、リクエスト転送処理部113が対クライアント通信制御部114、LANあるいはWAN5を介してクライアント4にリプライを返す。
割当済転送経路一覧表111にエントリが存在するクライアントからのリクエストの場合は、リクエスト転送処理部113は、割当済転送経路一覧表111で割り当てられているBEPノードにリクエストを送ることになる。このような処理を行うことによって、同一のクライアント識別子で識別されるクライアントからのリクエストは同一のBEPサーバに転送されることになる。
(b) :ノード故障の場合の説明
ノード故障検出部122は、定期的に全てのBEPノードが正常動作していることを確認する。ノード故障検出部122は、BEPノードの故障を検出すると、負荷調整部121を経由して転送制御表112を書き換えて、故障したBEPノードへのリクエストの分配を停止する。リクエスト転送処理部113は、割当済転送経路一覧表111内の転送先BEPノードが故障したBEPノードとなっている全てのエントリを削除する。
このBEPノードの故障によって、故障したBEPノードを利用していたクライアントとBEPノード上のサーバプロセスとのコネクションは切断されるが、クライアントがリクエストをリトライすることによって故障は隠蔽される。
クライアントからの再リクエストはリクエスト転送処理部113に送られると、リクエスト転送処理部113は、割当済転送経路一覧表111を調べるが、再リクエストしたクライアントのエントリは既に削除されているため、リクエスト転送処理部113は、転送制御表112に基づいて新たな転送先を決定してリクエストを転送する。リクエストを転送されたBEPノードでは、通常のリクエストと同様にリクエストを処理してリプライする。
(c) :ノード負荷監視の説明
ノード負荷監視部123は、定期的に全てのBEPノードの負荷状態を監視する。ノード負荷監視部123は、負荷が高いBEPノードを発見すると、負荷調整部121を経由して転送制御表112を書き換えて、負荷が高いBEPノードへのリクエストの分配比率を下げる。リクエスト転送処理部113は、分配比率変更時に割り当て済の転送経路の状態を各BEPサーバのコネクション状態監視部23a、23b、23c、・・・に問い合わせ、割当済転送経路一覧表111からアクティブでないコネクションの転送経路のエントリを削除し、その時点のリクエスト分配比率を算出する。
リクエスト転送処理部113は、以降の新規クライアントからのリクエスト転送先の調整や、コネクション状態監視部23a、23b、23c、・・・に問い合わせによる割当済転送経路一覧表111の更新により、書き換えられた転送制御表112で指定された分配比率に実際の分配比率を近付けるようにする。
(d) :サーバプロセスの起動・停止の説明
サーバプロセス制御部124は、クラスタ内ノード間通信制御部115、ノード間結合3を介して各BEPノード上のサーバプロセスを制御するものである。
あるサービスに割り当てられた全てのBEPノードの負荷が高い場合には、ノード負荷監視部123は負荷調整部121にBEPノードの割り当て増を依頼する。各サービスへのBEPノードの割り当てを管理している負荷調整部121は、負荷が高いサービスへのBEPノード割り当ての増を決めると、新たに割り当てたBEPノードへサーバプロセスの起動をサーバプロセス制御部124に依頼する。そこで、サーバプロセス制御部124は、クラスタ内ノード間通信制御部115、ノード間結合3を経由して、指定されたBEPノード上のサーバプロセスを起動する。このサーバプロセスの起動が完了すると、負荷調整部121は、新たに割り当てたBEPノードにリクエストを転送するように転送制御表112を書き換える。
新たに割り当てたBEPノード上で、それまで動作していたサーバプロセスを停止させることが必要な場合、負荷調整部121は、転送制御表112を書き換えてリクエストに対する分配を停止する(分配比率を0とする)。リクエスト転送処理部113は、リクエストの転送の停止が指示されたBEPノードのコネクション状態監視部にコネクションの状態を問い合わせ、割当済転送経路一覧表111の未使用状態のエントリを削除する。負荷調整部121は、割当済転送経路一覧表111を参照して、指定したBEPノードへのコネクションのエントリが無くなった時点で、サーバプロセス制御部124にサーバプロセスの停止を依頼する。サーバプロセス制御部124は、クラスタ内ノード間通信制御部115、ノード間結合3を経由して、指定されたBEPノード上のサーバプロセスを停止する。
(e) :システム管理者インタフェースの説明
システム管理者インタフェース125は、システム管理者6にシステム管理のためのインタフェースを提供するものである。
システム管理者インタフェース125が提供する機能としては、クラスタへの動的な(運用中の)ノードの追加/切り離し、サービスへのBEPノード割り当て指定/変更、その他システム状態の参照等の機能がある。
(3):UNIX(AT&T社の汎用のオペレーティングシステム)マシンによる説明
以下、図4〜図6に従ってUNIXマシンによる説明をする。
(a) :クライアント/サーバシステムの説明
図4はクライアント/サーバシステムの説明図である。以下図4に基づいて説明をする。
図4において、リダイレクションを利用した負荷分散の例であり、サーバドメイン1と複数のクライアントドメイン(1) 、(2) がWANを介して接続されている。
サーバドメイン1には、FEPサーバ11、複数のサーバ12(サーバA〜F)、ドメインネイムサーバ(DNS)13、ルータ14が設けてある。クライアントドメイン(1) には、複数のクライアント(1)〜(5)、DNS43、ルータ44が設けてある。クライアントドメイン(2) には、複数のクライアント(6)〜(10)、DNS43、ルータ44が設けてある。
FEPサーバ11は、LAN(ローカルエリアネットワーク)でクライアントからのリクエストを受信し、高速ノード間結合により適切なBEPノード12にリクエストを転送するパケットフィルタ113を有するFEPノードである。サーバ12(サーバA〜F)は、サービスX、Y、Zを処理するサーバプロセス21(サーバプロセスX、Y、Z)を有するBEPノードである。DNS13は、LANと接続されておりクライアント等から問い合わせのあったサービス名に対応するIPアドレス(各コンピュータ固有のアドレス)を応答するものである。
複数のクライアント(1)〜(5)、複数のクライアント(6)〜(10)は、それぞれのLANで接続されておりサービス(データ処理)を要求する側である。DNS43は、LANと接続されており問い合わせのあったサービス名に対応するIPアドレス応答するものである。ルータ44は、LANとWAN間の中継処理を行うものである。
(b) :サーバ装置の説明
UNIXマシンのサーバ装置(クラスタシステム)における負荷分散について、図2のリクエスト転送処理部113は、ネットワークのデータ処理をするストリーム処理部の最下層に位置するパケットフィルタとして実現される。そして、割当済転送経路一覧表111と転送制御表112はパケットフィルタ内に置かれている。また、図2の負荷調整部121はユーザ空間内のUNIXプロセスである負荷調整プロセスとして実現する。この負荷調整プロセスは、UNIX OS(オペレーティングシステム)が提供するIOCTLシステムコールを利用して、パケットフィルタ内の転送制御表の書き換えを行うものである。
図5は装置構成図(2)である。以下、図5に基づいてサーバ装置の説明をする。
図5において、サーバ装置は、FEPノード11とBEPノード12(実際は複数のBEPノードが設けられる)がノード間結合ネットワーク3で接続されている。クライアントとは、LAN等のネットワーク5を介してFEPノード11と結合されている。
FEPノード11には、カーネル(中枢部分)空間とユーザ空間があり、カーネル空間にはストリーム処理部、外部ネットワークドライバ114、内部ネットワークドライバ115が設けてある。ストリーム処理部には、パケットフィルタ113、IPパケット処理層131、TCPパケット処理層132が設けてあり、パケットフィルタ113には、割当済転送経路一覧表111と転送制御表112が設けてある。ユーザ空間には、負荷調整プロセス121、ノード故障検出プロセス122、ノード負荷監視プロセス123、サーバ制御プロセス124、ユーザI/F処理プロセス125が設けてある。
BEPノード12にも、カーネル空間とユーザ空間があり、カーネル空間にはストリーム処理部、内部ネットワークドライバ22が設けてある。ストリーム処理部には、IPパケット処理層241、TCPパケット処理層242が設けてある。ユーザ空間には、接続監視プロセス23、サーバプロセス21が設けてある。
割当済転送経路一覧表111は、クライアント毎に割り当てたリクエストの転送経路を記録したものである。転送制御表112は、リクエストを処理するサーバプロセスの配置とリクエストの振り分け比率を記録したものである。パケットフィルタ113は、クライアントからのリクエストをBEPノードに転送するものである。外部ネットワークドライバ114は、クライアントとの通信を制御するものである。内部ネットワークドライバ115は、BEPノードとの通信を制御するものである。負荷調整プロセス121は、システム管理者の要求や発生したイベントに応じて動的に転送制御を調整するものである。ノード故障検出プロセス122は、BEPノードの故障を検出するものである。ノード負荷監視プロセス123は、BEPノードの負荷状態を監視するものである。サーバ制御プロセス124は、BEPノードに必要なサーバプロセスを起動するものである。ユーザI/F処理プロセス125は、システム管理者にユーザインタフェースを提供するものである。IPパケット処理層131は、通信プロトコルの一つであるインターネットプロトコル(IP)のパケットの処理を行うものである。TCPパケット処理層132は、通信プロトコルの一つであるTCP(transmission control protocol )のパケットの処理を行うものである。
サーバプロセス21は、クライアントからのリクエストを処理するプロセスである。内部ネットワークドライバ22は、FEPノード11との通信を制御するものである。接続監視プロセス23は、クライアントとサーバプロセスとのコネクション状態を監視するものである。IPパケット処理層241は、インターネットプロトコルのパケットの処理を行うものである。TCPパケット処理層242は、TCPのパケットの処理を行うものである。
(c) :転送制御表と割当済転送経路一覧表の説明
図6は転送制御表と割当済転送経路一覧表の説明図であり、図6(a)は転送制御表の説明、図6(b)は割当済転送経路一覧表の説明である。
図6(a)において、転送制御表112には、サービス識別子、転送先BEPノード識別子、同一サービスに対するリクエストの分配比率である比率が設けてある。
サービス識別子としてデスティネーション(宛て先)ポートのポート番号を使用し、この例では「8080、8081、8082」が記録されている。転送先BEPノード識別子として、デスティネーションIPアドレスを使用し、この例では例えば、サービス「8080」のデスティネーションIPアドレスには「IP−A、IP−B」が記録され、これらの比率として、IP−Aには「1」、IP−Bには「1」と同じ比率が記録されている。
図6(b)において、割当済転送経路一覧表111には、サービス識別子、クライアント識別子、転送先BEPノード識別子が設けてある。
サービス識別子としてデスティネーションポートのポート番号を使用し、この例では「8080、8081、8082」が記録されている。
クライアント識別子としてソースIPアドレスとソースポート番号の組を使用する。ソースIPアドレスはクライアントのIPアドレスであり、ソースポート番号はプロセス毎に設けられている。この例では、(例えば、図4のクライアント(1))ソースIPアドレス「IP−CL1」には3つのソースポート番号「PORT−CL1−xx1」、「PORT−CL1−xx2」、「PORT−CL1−xx3」が示されている。
転送先BEPノード識別子として、デスティネーションIPアドレスを使用し、この例では例えば、サービス「8080」のデスティネーションIPアドレスには「IP−A」と「IP−B」が記録されている。
なお、サービスとポート番号の対応はUNIX OS上のファイルに定義され、クラスタ内の各ノードは、共通のサービスポートを使うものである。
(d) :サーバ装置の動作の説明
a:クライアントからリクエストがあった場合の説明
FEPノード11の外部ネットワークドライバ114は、クライアントからのリクエストを受信して、パケットフィルタ113に送る。パケットフィルタ113は、割当済転送経路一覧表111と転送制御表112を用いてパケットを転送するBEPノードを決定し、ノード間結合ネットワーク3を介してパケットをBEPノード12に送る。
このパケットが転送されたBEPノード12の内部ネットワークドライバ22は、受信したパケットをストリーム処理部に送る。サーバプロセス21には、UNIXが提供するシステムコールインタフェースを用いてTCPパケット処理層242に届いたパケットを読み出して、リクエストを処理する。
サーバプロセス21は、リクエストの処理が完了するとクライアントにリプライするために、UNIXのシステムコールを用いてパケットをストリーム処理部に渡す。このリプライのパケットは、内部ネットワークドライバ22、ノード間結合ネットワーク3を介してFEPノード11に転送された後、FEPノード11によって、クライアントに送られる。
b:ノード故障の場合の説明
ノード故障検出プロセス122は、ユーザプロセスとして実現されている。ノード故障検出プロセス122は、定期的に全てのBEPノードが正常動作していることを確認し、BEPノードの故障を検出すると、負荷調整プロセス121を経由してパケットフィルタ113の転送制御表112を書き換えて、故障したBEPノードへのリクエストの分配を停止する。パケットフィルタ113は、割当済転送経路一覧表111内の転送先BEPノードが故障したBEPノードとなっている全てのエントリを削除する。
このBEPノードの故障によって、故障したBEPノードを利用していたクライアントとBEPノード上のサーバプロセスとのコネクションは切断されるが、クライアントがリクエストをリトライすることによって故障は隠蔽される。
クライアントからの再リクエストはパケットフィルタ113に送られると、パケットフィルタ113は、割当済転送経路一覧表111を調べるが、再リクエストしたクライアントのエントリは既に削除されているため、パケットフィルタ113は、転送制御表112に基づいて新たな転送先を決定してリクエストを転送する。リクエストを転送されたBEPノードでは、通常のリクエストと同様にリクエストを処理してリプライする。
c:ノード負荷監視の説明
ノード負荷監視プロセス123は、定期的にBEPノード12と通信してBEPノード12の負荷状態を監視する。ノード負荷監視プロセス123は、負荷が高いBEPノード12を発見すると、負荷調整プロセス121に通知し、通知を受けた負荷調整プロセス121は、IOCTLシステムコールを用いてパケットフィルタ113内の転送制御表112を書き換える。
パケットフィルタ113は、BEPノード12上の接続監視プロセス23にクライアントの接続の状態を問い合わせる。接続監視プロセス23は、IOCTLを使って自ノードのストリーム処理部にコネクション状態を問い合わせ、パケットフィルタ113に通知する。パケットフィルタ113は、未使用のコネクションの転送先だけを変更して転送比率を調整する。
負荷調整プロセス121は、必要があれば、サーバ制御プロセス124にBEPノード12へのサーバプロセス21の起動あるいは停止を依頼する。
このように、本発明によれば、同一サービスに対する複数のクライアントからのリクエストを複数台のサーバノードで負荷分散することが可能となる。また、自動的なサーバノード故障隠蔽機能や、負荷調整機能を持つことにより、システム管理コストを削減することができる。
本発明の原理説明図である。 実施の形態における装置構成図(1)である。 実施の形態における転送制御表と割当済転送経路一覧表の説明図である。 実施の形態におけるクライアント/サーバシステムの説明図である。 実施の形態における装置構成図(2)である。 実施の形態における転送制御表と割当済転送経路一覧表の説明図である。 従来例の説明図(1)である。 従来例の説明図(2)である。
符号の説明
11 フロントエンドサーバ
12 バックエンドサーバ
21 サーバプロセス
22 ノード間通信制御部
23 コネクション状態監視機構
111 割当済転送経路一覧表
112 リクエスト転送制御表
113 リクエスト転送制御機構
114 対クライアント通信制御部
115 クラスタ内ノード間通信制御部
121 負荷調整部
122 ノード故障検出機構
123 ノード負荷監視機構
124 サーバプロセス制御機構
125 ユーザインタフェース機構

Claims (8)

  1. クライアントのリクエストを処理するサーバプロセスを配置した複数個のバックエンドサーバと、
    クライアントからのリクエストを受信するフロントエンドサーバと、
    該フロントエンドサーバに配置し、前記受信したリクエストを適切な前記バックエンドサーバに転送するリクエスト転送制御機構と、
    サーバの故障を検出するノード故障検出機構とを備え、
    前記リクエスト転送制御機構は、クライアントの識別情報を用いて、同一サービスに対する複数のクライアントからのリクエストを転送する前記バックエンドサーバを決定してリクエストを転送し、
    前記ノード故障検出機構がバックエンドサーバの故障を検出すると、該故障したバックエンドサーバとクライアントのコネクションを切断し、前記リクエスト転送制御機構は、故障したバックエンドサーバへのリクエスト転送を中止して、クライアントからの再リクエスト時に正常運用している別のバックエンドサーバにリクエストを転送することを特徴としたサーバ装置。
  2. 前記リクエスト転送制御機構は、リクエスト転送制御表を用いて転送するリクエストの比率をバックエンドサーバ毎に制御することを特徴とした請求項1記載のサーバ装置。
  3. 前記バックエンドサーバの負荷を監視してリクエストの転送比率を変更するノード負荷監視機構を設け、
    該ノード負荷監視機構が負荷が高い前記バックエンドサーバを発見すると、リクエスト転送制御機構は、負荷の高いバックエンドサーバへの転送比率を下げて、前記バックエンドサーバ間の負荷を平均化することを特徴とした請求項1又は2に記載のサーバ装置。
  4. システム管理者が前記バックエンドサーバへの転送比率を制御するためのユーザインタフェース機構を設けることを特徴とした請求項1〜3のいずれかに記載のサーバ装置。
  5. 前記サーバプロセスとクライアントプロセス間のコネクション状態を監視するコネクション状態監視機構を設け、
    前記リクエスト転送制御機構は、前記コネクション状態監視機構にコネクション状態を問い合わせ、サービス中のコネクションに対しては、該サービス終了後に、転送経路の変更を行うことを特徴とした請求項1〜4のいずれかに記載のサーバ装置。
  6. 前記サーバプロセスの制御を行うサーバプロセス制御機構を設け、
    あるサービスのサーバプロセスが配置された各バックエンドサーバの負荷が高くなった時に、前記サーバプロセス制御機構はそのサーバプロセスが未配置なバックエンドサーバにサーバプロセスを起動することを特徴とした請求項1〜5のいずれかに記載のサーバ装置。
  7. 前記リクエスト転送制御機構を、ネットワークの通信制御をするネットワークドライバとパケットの処理をするオペレーティングシステムのパケット処理部の中間に配置したパケットフィルタで構成することを特徴とした請求項1〜6のいずれかに記載のサーバ装置。
  8. 前記クライアントの識別情報として、クライアントから受信したリクエストのパケットのソースアドレスとソースポート番号のペアを使用することを特徴とした請求項1〜7のいずれかに記載のサーバ装置。
JP2006086806A 2006-03-28 2006-03-28 サーバ装置 Expired - Fee Related JP3974925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006086806A JP3974925B2 (ja) 2006-03-28 2006-03-28 サーバ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006086806A JP3974925B2 (ja) 2006-03-28 2006-03-28 サーバ装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9001970A Division JPH10198642A (ja) 1997-01-09 1997-01-09 サーバ装置

Publications (2)

Publication Number Publication Date
JP2006228243A JP2006228243A (ja) 2006-08-31
JP3974925B2 true JP3974925B2 (ja) 2007-09-12

Family

ID=36989502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006086806A Expired - Fee Related JP3974925B2 (ja) 2006-03-28 2006-03-28 サーバ装置

Country Status (1)

Country Link
JP (1) JP3974925B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9130967B2 (en) * 2010-11-17 2015-09-08 Alcatel Lucent Method and system for network element service recovery
US10397029B2 (en) 2015-07-08 2019-08-27 Toshiba Memory Corporation Relay apparatus
JP2022074496A (ja) * 2020-11-04 2022-05-18 イグドラシルリーヴズ合同会社 ネットワーク処理制御システム

Also Published As

Publication number Publication date
JP2006228243A (ja) 2006-08-31

Similar Documents

Publication Publication Date Title
US7430611B2 (en) System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US6996617B1 (en) Methods, systems and computer program products for non-disruptively transferring a virtual internet protocol address between communication protocol stacks
US6941384B1 (en) Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses
US7443847B1 (en) Stateful failover of service managers
JPH10198642A (ja) サーバ装置
US7991914B2 (en) Technique for addressing a cluster of network servers
EP1652354B1 (en) Distributing and balancing traffic flow in a virtual gateway
US7609619B2 (en) Active-active data center using RHI, BGP, and IGP anycast for disaster recovery and load distribution
US6954784B2 (en) Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US6970913B1 (en) Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US7647427B1 (en) Redundancy support for network address translation (NAT)
US6397260B1 (en) Automatic load sharing for network routers
US7055173B1 (en) Firewall pooling in a network flowswitch
US7152179B1 (en) IP redundancy with improved failover notification
US6430622B1 (en) Methods, systems and computer program products for automated movement of IP addresses within a cluster
US8438254B2 (en) Providing distributed cache services
US6633560B1 (en) Distribution of network services among multiple service managers without client involvement
US7570586B1 (en) Backup service managers for providing reliable network services in a distributed environment
US7042870B1 (en) Sending instructions from a service manager to forwarding agents on a need to know basis
EP1342344B1 (en) Vpn device clustering using a network flow switch
JP5024195B2 (ja) 負荷分散サーバ、ネットワーク負荷分散方法および輻輳回避方法
US7340530B2 (en) Methods, for providing data from network secure communications in a cluster computing environment
JP3583049B2 (ja) ホスト・クラスタのためのネットワーク・ディスパッチャを利用するデータ伝送システムにおけるルータ監視システム
JP4650414B2 (ja) 通信処理システム、パケット処理負荷分散装置及びそれに用いるパケット処理負荷分散方法
US20020141401A1 (en) Distributing packets among multiple tiers of network appliances

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070111

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: 20070612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070615

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: 20100622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees