説明

冗長サーバシステム及びサーバ装置

【課題】LANとWANの境界に配置され、LAN上のクライアントに対し、LAN及びWANに関するサービスを提供するサーバを、低コストで冗長化する。
【解決手段】LANとWANとの境界に2つのサーバを設け、一方を運用系サーバ10A、他方が待機系サーバ10Bとして動作させる。運用系サーバ10A及び待機系サーバ10BはLAN側のハブ20Lに接続され、LAN上の各クライアント40は、そのハブ20Lに接続される。また運用系サーバ10A及び待機系サーバ10BはWAN側のハブ20Wに接続され、ハブ20WはISP30との接続のためのADSLモデム22に接続される。運用系サーバ10Aと待機系サーバ10Bとは、ハブ20Wを介したWAN側経路とハブ20Lを介したLAN側経路で二重に通信可能であり、その二重経路を通じてヘルスチェックや系切替などのための通信を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、運用系と待機系のサーバを備えた冗長構成のサーバシステムに関する。
【背景技術】
【0002】
サーバを冗長構成とすることで可用性を向上させる仕組みは従来より多く提案されている。このような冗長構成のサーバシステムでは、運用系サーバと待機系サーバのヘルスチェック(稼働しているか否かの確認)や、運用系が停止した場合の待機系への切り替えが行われている。
【0003】
例えば特許文献1には、LANで他の計算機と接続され、同一の論理アドレスを持つ現用系の計算機と予備系の計算機により構成されるホットスタンバイ型の2重化ノードシステムにおいて、予備系の計算機は、現用系の計算機がダウンしたかどうかを監視し、現用系の計算機がダウンしたと認識した場合に、予備系の計算機の論理アドレスを活性化し、かつ2つの系間通信路およびLANを経由して系切替え情報を通知して現用系の計算機の論理アドレスを非活性化する点が開示されている。
【0004】
また特許文献2に示されるシステムでは、現用系サーバは、ヘルスチェックにより待機系サーバの異常を検出するとLANを介してクライアントの接続確認を行うことで自サーバの孤立の判定を行い、孤立と判定した場合に共通IPアドレスを無効化する。一方、待機系サーバは、ヘルスチェックにより現用系サーバの異常を検出するとLANを介して現用系サーバの接続確認を行い、これにより現用系サーバのダウンと判定した場合にLANを介してクライアントの接続確認を行うことで自サーバの孤立の判定を行い、孤立でないと判定した場合に共通IPアドレスを有効化する。
【0005】
【特許文献1】特開2001−344125号公報
【特許文献2】特開2004−171370号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
特許文献1及び2はいずれもLAN(ローカル・エリア・ネットワーク)のみを対象としたサーバに関するものである。
【0007】
一方、LANとWAN(ワイド・エリア・ネットワーク)の境界に位置し、クライアント装置に対してLAN上のサービスのみならずWANへの接続のためのサービスを提供するサーバも存在する。例えばこの種のサーバでは、LANに対してはDHCP(dynamic host configuration protocol)などのネットワークサービスを、またLAN−WAN接続においてISP(internet service provider)認証、ファイアウォール、VPN(virtual private network)などのサービスを一台の装置で提供する例も少なくない。
【0008】
インターネット接続や、同一法人もしくはグループ法人に属する物理的に分散した拠点間接続を行うVPNなどは、近年、業務遂行の上で欠かせないものとなりつつある。このため、LAN−WAN境界に位置するサーバの可用性を向上させることが極めて重要となる。サーバ単体としては、内部の構成要素が二重化されているような高可用性サーバも存在するが、価格が極めて高い。安価に実現可能な、冗長構成のシステムが求められる。
【0009】
特許文献1及び2に示される構成はLANとの間の通信しか考慮していないため、LAN−WAN境界に位置するサーバの冗長構成としては必ずしも好適なものとはいえない。
【課題を解決するための手段】
【0010】
本発明に係る冗長サーバシステムは、LANとWANとの境界に設置され、一方がLAN上のクライアントに対してサービスを提供する運用系、他方がその運用系の予備である待機系として機能する2台のサーバ装置と、前記2台のサーバ装置の各LAN側ネットワークポートと前記LANとを接続するLAN側ハブと、前記2台のサーバ装置の各WAN側ネットワークポートと前記WANとを接続するWAN側ハブと、を備え、前記LAN側ハブを介した前記2台のサーバ装置間の通信経路と、前記WAN側ハブを介した前記2台のサーバ装置間の通信経路と、の両経路を介して前記2台のサーバ装置間での冗長系制御のための通信を行う。
【0011】
好適な態様では、前記2台のサーバ装置のうち運用系は、前記WANとの通信のための論理アドレスとは別に前記WAN側ハブを介して待機系と通信するためのWAN側論理アドレスを有し、待機系は前記WAN側ハブを介して運用系と通信するためのWAN側論理アドレスを有し、前記運用系及び待機系は相互のWAN側論理アドレスを用いて冗長系制御のための通信を行う。
【0012】
別の好適な態様では、前記2台のサーバ装置のうち待機系は、運用系が前記WANと接続できない状態であることを検知した場合、前記WANに対する接続を試み、その接続が成功した場合、運用系に停止を指示し、自らが運用系に切り替わる。
【0013】
更に別の好適な態様では、前記2台のサーバ装置のうち待機系が運用系を監視し、この監視により運用系が停止していることを検知した場合は待機系が自律的に運用系へと切り替わり、前記監視により運用系は稼働しているものの機能不全であることを検知した場合は待機系が運用系に対して停止又は待機系への切替を指示し、その指示に対する処理が完了した後で待機系が運用系へと切り替わる。
【0014】
更に別の好適な態様では、前記2台のサーバ装置のうち運用系は、自らのソフトウエア及びハードウエアの状態を監視し、この監視により異常を発見した場合は、待機系に対し運用系への切替を依頼し、この依頼に応じて待機系が運用系へ切り替わる。
【0015】
更に別の好適な態様では、前記各サーバ装置は、起動時には待機系として機能し、前記LAN側ハブを介した前記2台のサーバ装置間の通信経路と、前記WAN側ハブを介した前記2台のサーバ装置間の通信経路とを介して運用系の存在の有無を確認し、運用系が存在することが確認された場合は待機系としての動作を続行し、運用系が存在しないことが確認された場合は運用系に切り替わる。
【0016】
更に別の好適な態様では、前記2台のサーバ装置は、それぞれ、前記LAN側ハブを介した通信用の論理アドレスとして、LAN上のクライアント装置へのサービス提供のための運用系LAN側論理アドレスと、運用系との冗長系制御のための通信のための待機系LAN側論理アドレスとを保持しており、該サーバ装置が運用系である場合はそれらのうちの運用系LAN側論理アドレスを有効にし、該サーバ装置が待機系である場合はそれらのうちの待機系LAN側論理アドレスを有効にする。
【0017】
本発明の別の側面では、LANとWANとの境界に設置されるサーバ装置であって、2台1組として構成した場合に、一方がLAN上のクライアントに対してサービスを提供する運用系、他方がその運用系の予備である待機系として機能し得るサーバ装置であって、自らが運用系としてLAN上のクライアントに対してサービスを提供する際に用いる運用系WAN側論理アドレス及び運用系LAN側論理アドレスと、自らが待機系として機能する際に用いる待機系WAN側論理アドレス及び待機系LAN側論理アドレスと、を記憶した記憶装置と、自らが運用系になった場合には、当該サーバ装置のWAN側通信ポート及びLAN側通信ポートに運用系WAN側論理アドレス及び運用系LAN側論理アドレスをそれぞれ設定し、自らが待機系になった場合には、前記WAN側通信ポート及びLAN側通信ポートに待機系WAN側論理アドレス及び待機系LAN側論理アドレスをそれぞれ設定するアドレス設定手段と、自らが運用系である場合は、待機系との間の冗長系制御のために、前記WAN側ポートから前記待機系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記待機系LAN側論理アドレスを宛先として通信を行い、自らが待機系である場合は、運用系との間の冗長系制御のために、前記WAN側ポートから前記運用系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記運用系LAN側論理アドレスを宛先として通信を行う冗長系制御手段と、を備えるサーバ装置を提供する。
【0018】
好適な態様では、前記サーバ装置は、起動されたときに前記WAN側通信ポート及びLAN側通信ポートに前記待機系WAN側論理アドレス及び待機系LAN側論理アドレスをそれぞれ設定することにより待機系として機能し、その後前記WAN側ポートから前記運用系WAN側論理アドレスを宛先として通信を試み、前記LAN側ポートから前記運用系LAN側論理アドレスを宛先として通信を試みることで、運用系の有無を確認し、運用系が存在することが確認された場合は待機系としての動作を続行し、運用系が存在しないことが確認された場合は前記WAN側通信ポート及びLAN側通信ポートに前記運用系WAN側論理アドレス及び運用系LAN側論理アドレスをそれぞれ設定することにより運用系に切り替わる。
【発明を実施するための最良の形態】
【0019】
以下、図面を参照して、本発明を実施するための最良の形態(以下「実施形態」と呼ぶ)について説明する。
【0020】
LANとWANと境界に位置し、例えばLANに対してはDHCPなどのネットワークサービスを、またLAN−WAN接続についてはISP認証、ファイアウォール、VPNなどのサービスを提供するサーバが広く普及している。本実施形態では、この種のサーバを二台設置し、一方を運用系、他方をホットスタンバイしている待機系とし、運用系が機能不全に陥ったときに待機系に切り替えることにより可用性を向上させる。
【0021】
図1は本発明に係るシステムの概略構成を示す図である。図1のシステムでは、例えば企業内の内部ネットワークであるLANと、その外部のインターネット等の外部ネットワークであるWANとの境界に2つのサーバ10A,10Bが設けられている。そして図示例ではその一方がLAN上の各クライアント40にサービスを提供する運用系サーバ10Aとして、他方がその運用系サーバ10Aが停止乃至故障した際のバックアップである待機系サーバ10Bとして機能している。
【0022】
LAN側では、運用系サーバ10A及び待機系サーバ10Bは、ハブ20Lに接続されている。そして、LAN上の各クライアント40は、そのハブ20Lに対して直接、又は他のハブを介して間接的に接続されている。
【0023】
WAN側では、運用系サーバ10A及び待機系サーバ10Bは、ハブ20Wに接続されている。このハブ20WはADSLモデム22に接続されており、ADSLモデム22はADSL回線を介してISP(プロバイダ)30に接続されている。ここでは、サーバ10A,10BとISP30との間の接続回線としてADSLを例示したが、これはFTTHや専用線など、他の回線であってももちろん構わない。
【0024】
本実施形態では、運用系サーバ10A及び待機系サーバ10Bは、ハードウエア及びソフトウエア構成としては共通のものを用いる。すなわち、同じ構成を持つ2台のサーバ10が、相互に協調しながら動作することで、一方が運用系サーバ10Aとなり、他方が待機系サーバ10Bとなるようにしている。この共通のサーバ10の構成を、図2を参照して以下に説明する。
【0025】
サーバ10は、LAN側の通信デバイス110Lと、WAN側の通信デバイス110Wを備えている。通信デバイス110L及び110Wは、例えばNIC(network interaface card)である。
【0026】
また、サーバ10は、運用系サーバ10Aとしての処理の実行に用いる運用用データ102及び運用用プログラム104と、もう一方のサーバとの冗長構成の制御のために用いる冗長制御データ106及び冗長制御プログラム108を有している。
【0027】
運用用データ102は、運用系サーバ10Aが提供するサービスのための処理に必要な各種データであり、運用系サーバ10Aが提供するサービスの内容によってデータ項目は様々である。一例として、インターネット接続サービスのためには、図3に示すように、ISPへの接続時の認証に必要なネットワークID1020やパスワード情報1022を挙げることができる。なお、接続時のアクセス認証にどのような情報を必要とするかはISPによって異なるので、ここに挙げたネットワークID1020やパスワード情報1022はあくまで一例に過ぎない。また、LAN上のクライアント40との通信のためのLAN側IPアドレス1024も、運用用データ102の一項目ではあるが、これは後述する冗長制御データ106中の運用系LAN側IPアドレスと同じであるので、運用用データ102に含める必要はない。また、インターネット接続用のIPアドレスとしてISPから固定のIPアドレスが付与されている場合は、そのIPアドレスも運用用データ102の一つになり、サブネットマスクがある場合はそれも運用用データ102の一項目となる。また、DHCPサービスのための割り当て可能なアドレス領域の情報や、ファイヤウォール制御のためのセキュリティポリシーの情報、VPNサービスのための相手側のIPアドレスや認証情報なども運用用データ102に含まれる。このほか、運用系サーバ10Aがクライアント40に対し提供する各種サービスそれぞれに応じた設定データが運用用データ102には含まれる。
【0028】
運用用プログラム104は、サーバ10が運用系サーバ10Aとして動作する際に、各クライアント40に対して提供するサービスのための処理を記述したプログラムである。運用用プログラム104は、上述の運用用データ102を用いて、ISP接続サービス、DHCPサービス、ファイアウォール制御、VPN接続サービスなどの各種サービスのための処理を実行する。
【0029】
なお、運用用データ102及び運用用プログラム104は、LAN−WAN境界でサービスを提供する従来のサーバが備えているものと同様のものでよい。
【0030】
冗長制御データ106は、図4に示すように、運用系フラグ1060、運用系WAN側IPアドレス1062、運用系LAN側IPアドレス1064、待機系WAN側IPアドレス1066、待機系LAN側IPアドレス1068を含んでいる。
【0031】
運用系フラグ1060は、当該サーバ10自身が運用系であるか否かを示すフラグであり、自身が運用系であればオンに、待機系であればオフにセットされる。
【0032】
運用系WAN側IPアドレス1062は、自身が運用系サーバ10Aである時に用いる、待機系サーバ10Bとの通信専用のIPアドレスである。運用系サーバ10Aは、WAN側の通信デバイス110W及びハブ20Wを介して待機系サーバ10Bとの間で冗長系制御のための通信を行う場合に、この運用系WAN側IPアドレス1062を自身のIPアドレスとして用いる。すなわち、本システムでは、運用系サーバ10A−ハブ20W−待機系サーバ10Bという接続経路が、そこだけで独立したサブネットとなる。
【0033】
なお、この運用系WAN側IPアドレス1062は、ISP30を介したインターネット接続において用いるIPアドレスとは別のものである。すなわち、運用系サーバ10Aのインターネット接続のためのIPアドレスは、固定割当又はDHCPによる動的割当のいずれにせよISP30から割り当てられるものであるのに対し、冗長系制御に用いる運用系WAN側IPアドレスは、システム管理者が適宜定め、各サーバ10に登録しておく。
【0034】
運用系LAN側IPアドレス1064は、自身が運用系サーバ10Aの時に用いるLAN側のIPアドレスであり、クライアント40や待機系サーバ10Aとの通信に用いる。クライアント40は、この運用系LAN側IPアドレス1064を宛先として通信を行うことで、運用系サーバ10Aに対して各種のサービスを要求することができる。また、運用系サーバ10Aは、LAN側の通信デバイス110L及びハブ20Lを介して待機系サーバ10Bとの間で冗長系制御のための通信を行う場合、この運用系LAN側IPアドレス1064を自身のIPアドレスとして用いる。
【0035】
待機系WAN側IPアドレス1066は、自身が待機系サーバ10Bであるときに用いる、運用系サーバ10Aとの通信専用のIPアドレスである。待機系サーバ10Bは、WAN側の通信デバイス110W及びハブ20Wを介して運用系サーバ10Aとの間で冗長系制御のための通信を行う場合に、この待機系WAN側IPアドレス1066を自身のIPアドレスとして用いる。
【0036】
待機系LAN側IPアドレス1068は、自身が待機系サーバ10Bであるときに用いる、運用系サーバ10Aとの通信専用のIPアドレスである。待機系サーバ10Bは、LAN側の通信デバイス110L及びハブ20Lを介して運用系サーバ10Aとの間で冗長系制御のための通信を行う場合、この待機系LAN側IPアドレス1068を自身のIPアドレスとして用いる。
【0037】
二重化サーバシステムを構成する2つのサーバ10A,10Bが持つ冗長制御データ106は、運用系フラグ1060の値以外のIPアドレス1062〜1068の値は共通である。すなわち、本実施形態では、2つのサーバ10A,10Bのうち運用系となったものが、それら共通のIPアドレス群のうち運用系のものを用い、待機系となったものが待機系用のものを用いる。したがって、各サーバ10A(又は10B)は、待機系用アドレスと運用系用アドレスのうち、自分が用いていない方を相手のサーバ10B(又は10A)が用いていることが分かる。
【0038】
再び図2に戻り、冗長制御プログラム108は、運用系及び待機系により冗長システムを成り立たせるための処理を記述したプログラムである。以下、この冗長制御プログラム108により実現される処理について説明する。
【0039】
まず、サーバ10が起動したときに実行される処理の手順を図5に示す。図5に示すように、本実施形態では、サーバ10が起動した場合、運用系フラグ1060をオフに設定する(S10)。すなわち、本実施形態では、二重系のどちらのサーバ10も、まず待機系として起動する。その後、待機系として起動したサーバ10は、稼働中の運用系サーバ10Aが存在するかを調べ、存在すればそのまま待機系サーバ10Bとしての動作を続行し、存在しなければ自らが運用系サーバ10Aとなる。
【0040】
図5の処理手順では、S10の後、《WAN側IPアドレス切替制御》S100を実行することにより、WAN側の通信デバイス110Wに対し、IPアドレスとして待機系WAN側IPアドレス1066の値を設定し、また《LAN側IPアドレス切替制御》S200を実行することにより、LAN側の通信デバイス110Lに対し、IPアドレスとして待機系LAN側IPアドレス1068の値を設定する。これらの処理により、起動したサーバ10は、待機系サーバ10Bとして他の装置(例えば存在するかも知れない運用系サーバ10A)と通信可能になる。S100とS200の詳細な処理内容は、後で図6及び図7を参照して説明する。なお、S100とS200はどちらを先に実行してもよい。
【0041】
このようにして、起動したサーバ10が待機系サーバ10Bとして他の装置と通信可能な状態になると、次に《待機系による運用系障害監視》の処理を実行する(S300)。この《待機系による運用系障害監視》(S300)は、運用系サーバ10Aの障害を監視する処理であり、これにより運用系サーバ10Aの障害を検知した場合は、そのS300の処理を実行している自分自身(すなわち待機系サーバ10B)が運用系サーバ10Aに成り代わる。なお、サーバ10が起動したときに、二重化サーバシステム中のもう一方のサーバが稼働していなければ、このS300の処理により、運用系サーバ10Aが不在であることが検知され、これに応じ、最初は待機系として起動したそのサーバ10自身が運用系サーバ10Aになる。なお、S300の処理の詳細は、後で図10を参照して説明する。
【0042】
次に図6を参照してS100の《WAN側IPアドレス切替制御》の詳細について説明する。
【0043】
この処理では、まず当該サーバ10自身が持つ冗長制御データ106中の運用系フラグ1060がオンであるか否かを調べる(S102)。この結果、運用系フラグがオフであれば、そのサーバ10は待機系であるので、図8に示すように、WAN側の通信デバイス110Wに対し、通信のためのIPアドレスとして、待機系WAN側IPアドレス1066の値をセットする(S104)。
【0044】
一方、S102で運用系フラグ1060がオンであれば、そのサーバ10は運用系であり、ISP30に対する接続処理を実行し(S106)、WAN側の通信デバイス110Wに対し、運用系WAN側IPアドレス1062の値をセットする(S108)。ここで、S106のISP接続処理では、ISP30から固定に割り当てられるかDHCPによって動的に割り当てられるかしたインターネット接続用のIPアドレスをWAN側の通信デバイス110Wにセットする。したがって、本実施形態では、サーバ10が運用系である場合、WAN側の通信デバイス110Wには、図9に示すように、インターネット接続用のIPアドレス112と、待機系との通信専用のIPアドレスである運用系WAN側IPアドレス1062とがセットされることになる。1つのNIC(ネットワーク・インタフェース・カード)ポートに対してデバイスドライバ上で複数のIPアドレスを割り当て、複数のNICが存在するのと同等の通信を実現する仕組みは既に存在するので、WAN側の通信デバイス110Wにこの仕組みを利用して2つのIPアドレスを割り当て、2系統の通信を実現することができる。
【0045】
次に図7を参照してS200の《LAN側IPアドレス切替制御》の詳細について説明する。
【0046】
この処理では、まず当該サーバ10自身が持つ冗長制御データ106中の運用系フラグ1060がオンであるか否かを調べる(S202)。この結果、運用系フラグがオフであれば、そのサーバ10は待機系であるので、図8に示すように、LAN側の通信デバイス110Lに対し、通信のためのIPアドレスとして、待機系LAN側IPアドレス1068の値をセットする(S204)。一方、S202で運用系フラグ1060がオンであれば、図9に示すように、LAN側の通信デバイス110Lに対し、運用系LAN側IPアドレス1064をセットする。
【0047】
以上に説明した《WAN側IPアドレス切替制御》及び《LAN側IPアドレス切替制御》の各処理プログラムは、サーバ10が運用系である場合と待機系である場合とに共通したプログラムとなっている。
【0048】
なお、図5の起動処理でのS100の《WAN側IPアドレス切替制御》及びS200の《LAN側IPアドレス切替制御》では、サーバ10は待機系として動作しているので、S104及びS204がそれぞれが実行され、図8に示すように通信デバイス110W、110Lには、それぞれ待機系のときのIPアドレス1066及び1068がセットされることになる。
【0049】
次に、図10を参照して、S300の《待機系による運用系障害監視》の詳細な流れを説明する。この処理は待機系サーバ10Bにより実行される処理であり、必然的に運用系サーバ10Aも存在している。
【0050】
この処理では、待機系サーバ10Bは、まずタイマー計時により所定時間ごとの監視時刻が到来したかどうかを判定し(S302)、監視時刻になるごとに、S304以下の処理を実行する。
【0051】
監視時刻が到来すると、待機系サーバ10Bは、WAN側の通信デバイス110Wのポート、及びLAN側の通信デバイス110Lのポートの双方から、運用系サーバ10Aへのアクセスを試み(S304)、アクセスできるかどうかを判定する(S306)。このときの通信では、自分が持っている冗長制御データ106の中にある運用系WAN側IPアドレス1062と運用系LAN側IPアドレス1064を宛先として用いれば、運用系サーバ10A(もし存在するならば)と通信できる。このアクセス試行において、WAN側の経路(すなわちハブ20Wを経由する経路)とLAN側の経路(すなわちハブ20Lを経由する経路)のいずれを用いても運用系サーバ10Aにアクセスできなければ、待機系サーバ10Bは、運用系サーバ10Aが存在しないか、WAN側及びLAN側のいずれの側からのアクセス要求にも応えられないほど深刻な障害が生じているものと判断し、S400に進み《待機系による系切替》を実行することで、その待機系サーバ10Bが運用系サーバ10Aへと成り代わる。なおS400の《待機系による系切替》の詳細な処理については、後で説明する。
【0052】
WAN側及びLAN側の少なくとも一方の経路で運用系サーバ10Aにアクセスできた場合、運用系サーバ10Aは動作しており、かつ少なくとも一方の経路で通信可能ということである。この場合、待機系サーバ10Bは、その通信可能な経路を用いて(両方とも通信可能なら両方を用いてもよい)、運用系サーバ10Aに対するヘルスチェックを行う(S308)。このヘルスチェックでは、運用系サーバ10Aがサービスに必要な処理を実行しているかどうかを調べる。例えばISP30への接続が実行できているかや、LAN上のクライアント40への接続が実行できているかを調査する。ISP30やクライアント40と通信可能かどうかは、従来手法によりチェックできる。クライアント40へのアクセスが可能かどうかは、1つのクライアント40だけではクライアント40が単に停止しているためアクセスできない可能性もあるため、いくつかのクライアント40に対してアクセス可否を確認する。S308では、このほかにも、従来の冗長サーバシステムでのヘルスチェックで確認している項目を調べるようにしてももちろんよい。このような調査では、例えば待機系サーバ10Bから運用系サーバ10Aに対し各調査項目の処理が実行できているかを問い合わせ、この問い合わせに応じ運用系サーバ10Aが各調査項目の処理が実行できているかを自己診断し、その結果を待機系サーバ10Bに返すようにすればよい。これは、待機系サーバ10Bの主導によるヘルスチェックであるが、この代わりに、運用系サーバ10Aが定期的に各調査項目の自己診断を行い、その結果を定期的に待機系サーバ10Bに通知するような構成でもよい。この構成の場合、S308は、定期的に運用系サーバ10Aから通知されてくる診断結果を確認する処理となる。
【0053】
このヘルスチェックの結果、運用系サーバ10AがISP30に接続不可であるか否かを判定する(S310)。ここで運用系サーバ10AがISP30に接続できなければ、運用系サーバ10Aは現在クライアント40に対してインターネット接続のサービスを提供できないということなので、待機系サーバ10Bが交代できないかを調べる。すなわち、待機系サーバ10BはISP30にアクセスを試み(S312)、アクセスが成功したかどうかを判定する(S314)。そしてS312のアクセスが成功した場合、WAN側のハブ20Wは正常に動作しており、運用系サーバ10AのWAN側ポート(通信デバイス110W)、又は運用系のWAN側ポートとハブ20Wを結ぶケーブルの障害と判断できるので、待機系サーバ10Bが主導的に系切替を実行する。すなわち、待機系サーバ10Bは、ISP接続サービスを提供できるため、運用系サーバに成り代わることができるので、S400に進んで《待機系による系切替》を実行する。一方、S312のアクセスが成功しなかった場合は、運用系サーバ10Aも待機系サーバ10BもISP30に接続できないので、冗長サーバシステムとしてISP接続サービスが提供できないということになる。この場合は、冗長制御では対処できないので、待機系サーバ10B(及び運用系サーバ10A)は冗長制御に関しては何も行わず、S302に戻って監視処理を続ける。
【0054】
S310の判定で、運用系サーバ10AがISP30に接続できると判定した場合、待機系サーバ10Bは、更にヘルスチェックの結果に基づき、運用系サーバ10AがLAN上のクライアント40に接続不可であるか否かを判定する(S316)。ここで運用系サーバ10AがLAN上のクライアント40に接続できなければ、運用系サーバ10Aはクライアント40に対し、各種サービスが提供できないということなので、待機系サーバ10Bは交代を試みる。すなわち、待機系サーバ10Bは、LAN上のいずれかのクライアント40にアクセスを試み(S318)、その結果を判定する(S320)。クライアント40にアクセスできるかどうかは、例えばpingコマンドなどをクライアント40に送信し、それに対する応答があるかどうかで判断すればよい。ここで、クライアント40へのアクセスが成功すればS400に進んで《待機系による系切替》を実行する。すなわち、この場合、運用系サーバ10AのLAN側ポート、又は運用系のWAN側ポートとLAN側のハブ20Lを結ぶケーブルの障害と判断できるので、待機系サーバ10Bが主導的に系切替を実行する。一方、S318のアクセスが成功しなかった場合は、運用系サーバ10Aも待機系サーバ10Bもどちらもクライアント40と通信できない、すなわち冗長サーバシステムがクライアント40と通信できないことになる。この場合は、冗長制御では対処できないので、待機系サーバ10B(及び運用系サーバ10A)は冗長制御に関しては何も行わず、S302に戻って監視処理を続ける。
【0055】
なお、S308のヘルスチェックで、運用系サーバ10AがISP30にもクライアント40にも接続可能であることが分かれば(S310及びS316の判定結果が共に否定(N))、運用系サーバ10Aは正常にサービスを提供できる状態であるので、待機系サーバ10BはS302に戻って監視処理を続行すればよい。
【0056】
次に、図11を参照して、S400の《待機系による系切替》の詳細な手順を説明する。この処理手順は、サーバ10が待機系サーバ10Bにある時に呼び出される処理である。
【0057】
この処理では、まず待機系サーバ10Bは、WAN側及びLAN側の両方の経路から運用系サーバ10Aへのアクセスを試み(S402)、アクセスできるかどうかを判定する(S404)。そして、少なくとも一方の経路でアクセスできた場合、待機系サーバ10Bは、その経路を使って運用系サーバ10Aに停止を指示する(S406)。この指示を受け取った運用系サーバ10Aは、サーバとしての動作を停止する。そして、待機系サーバ10Bは、運用系サーバ10Aが停止したのを確認して、自分が運用系に成り代わるためにS408以降の処理を行う。なお、S404で運用系サーバ10AへのアクセスがWAN側、LAN側のどちらの経路でも失敗した場合、待機系サーバ10Bは、運用系サーバ10A自体が停止しているものと判断し、運用系の停止処理は飛ばし、S408に進んで自らが運用系となるための処理を行う。
【0058】
なお、S406では、運用系サーバ10Aを停止させる代わりに、待機系への切替を指示するようにしてもよい。この場合、指示を受けた運用系サーバ10Aは、WAN側及びLAN側のIPアドレスを待機系のものへと切り替える。そして、この切替が完了した後で、待機系サーバ10Bが運用系へと切り替わる。
【0059】
S408では、待機系サーバ10Bは、自らの運用系フラグ1060をオンに設定する。そして、この状態で、前述の《WAN側IPアドレス切替処理》(S100)及び《LAN側IPアドレス切替処理》(S200)を実行することで、それまで待機系サーバ10Bであったサーバは、運用系サーバ10AとしてのIPアドレスで他の装置と通信可能な状態となり、運用系サーバ10Aとしての動作を開始する。そして、今や運用系サーバ10Aとなったこのサーバは、S500の《運用系自己監視》の処理を実行することで、自己の運用系サーバとしての機能に問題がないかをチェックする。
【0060】
次に図12を参照して、S500の《運用系自己監視》の詳細な手順について説明する。この手順では、サーバ10は、自身の運用系フラグ1060がオンにセットされているか否かを判定し、オンになっていれば、S502以降の処理により、運用系サーバとしての機能の自己診断を行う。
【0061】
まずS502では、タイマー計時により、定期的な診断処理の実行タイミングが来たかどうかを判定し(S502)、実行タイミングが到来した場合には、サーバ10は自己診断プログラムを実行する(S504)。この自己診断プログラムは、運用系サーバ10Aとしてのサービスを提供するために必要な各ハードウエア、ソフトウエアが実際に働いているかどうかを確認する。自己診断では、例えば、ISPへの接続可否、LAN上のクライアントとの通信可否、DHCPサービスやVPNサービスの実行可否、通信デバイスやハードディスクなどの性能などを確認する。そして、この自己診断により、いずれかのソフトウエア又はハードウエアに異常(障害又はその兆候)があるかどうかを判定する(S506)。ここで障害も、その兆候もないと判定した場合は、S502に戻って定期的な診断を実行する。
【0062】
一方、S506でいずれかの機能に異常があると判定した場合は、運用系サーバ10Aは、運用系としての十分な能力を持っていないか、あるいは近い将来そのような事態に陥る可能性が高いと判断できるので、運用系サーバ10Aは、待機系サーバ10Bに運用系の処理を引き継ぐための処理を実行する。すなわち、この場合、運用系サーバ10Aは、WAN側及びLAN側の両経路から待機系サーバ10Bに対してアクセスを試み(S508)、アクセスできれば(S510の判定結果がY)、待機系サーバ10Bに対して《待機系による系切替》の実行を依頼する(S512)。この依頼を受けた待機系サーバ10Bは、図11に示した《待機系による系切替》の処理を実行することで、運用系サーバ10Aを停止させ、自らが新たに運用系サーバとなる。
【0063】
なお、S508での待機系へのアクセスが失敗した場合は、待機系サーバ10Bが存在しない(或いは稼働していない)ということであり、この場合冗長制御では運用系サーバ10Aの能力不足は解消できないので、運用系サーバ10Aは冗長制御に関しては何も行わず、S502に戻って定期的な自己診断を繰り返す。なお、この場合、運用系サーバ10Aが障害のある機能の自己復旧処理を実行するようにしてももちろんよい。
【0064】
以上、冗長サーバシステムを構成するサーバ10の処理手順について説明した。
【0065】
以上の手順では、運用系サーバ10Aとして機能していたサーバ10は、待機系サーバ10Bからの監視により障害発生を検出されるか、或いは自己診断により機能障害やそのおそれが検出した場合、《待機系による系切替》により停止させられる。このあと、その停止されたサーバ10がシステム管理者等により復旧された場合は、単にそのサーバ10を起動すれば、図5の起動処理により、そのサーバ10を待機系サーバ10Bとして冗長サーバシステムに参加させることができる(もちろんこれは運用系サーバ10Aは健在であるとした場合のことである)。
【0066】
また、本実施形態のサーバ10は、1台でも動作可能である。すなわちこの場合は、まずサーバ10は、起動処理により待機系として起動した後、待機系による運用系の障害監視(S300)により、稼働中の運用系サーバ10Aがないことを検知し、自らが運用系へと切り替わる。そして、このサーバ10が、運用系のみの一台構成のサーバとして、クライアント40に対してLAN上及びインターネット接続その他のサービスを提供する。したがって、予算が少ないユーザは、1台のサーバ10のみを導入することもできる。そして、資金的に余裕ができた場合は、もう1台のサーバ10をシステムに追加することで、上述の冗長サーバシステムを実現できる。この場合、追加したサーバは、図5の起動処理により、待機系として機能することになる。
【0067】
なお、システムへのサーバ10の追加のために、例えば、1台しかサーバ10を用いないときでもWAN側及びLAN側のハブ20W及び20Lを設置しておけば、新たに追加するサーバ10をこれらハブ20W及び20Lに接続し、起動するだけで、冗長構成のサーバシステムを構成できる。
【0068】
以上説明した本実施形態のシステムでは、まず2つのサーバ10A及び10B間でのヘルスチェックその他の通信のために、ハブ20Wを経由するWAN側の経路と、ハブ20Lを経由するLAN側の経路の2つの経路を用いることができる。これら2つの経路は、各サーバ10A,10Bがクライアント40やISP30と通信する際にも用いる経路である。すなわち、本実施形態では、ヘルスチェックなど2つのサーバ10A及び10B間での冗長制御のための通信を、専用の通信経路を用いなくても、二重の通信経路を用いて実行することができる。これら2つの通信経路が同時に通信不可となる可能性は極めて低いので、一方のサーバから他方へどちらの通信経路を用いても通信ができなければ、十分に高い確率で他方が停止していると判断できる。
【0069】
本実施形態の冗長サーバ構成は、LAN−WAN境界のサーバが1つしかない従来のシステム構成に比べ、ハードウエア構成上は、サーバ1台と、WAN側及びLAN側で合計2台のハブを追加するだけで済むのでコスト面で有利である。また、LAN側のハブは、LAN構成上もともと設置されている場合が一般的なので、通常はサーバ1台とハブ1台を追加する分のコストアップしかない。また、冗長系を構成する個々のサーバ10は、WAN側及びLAN側にネットワークインタフェースカードなどの通信デバイスを1つずつ持つだけでよいので、サーバ1台当たりの通信デバイスの数も従来から増やす必要がない。
【0070】
また、本実施形態では、一旦停止した運用系サーバが自動的に復旧した場合でも、復旧時の起動処理により、そのサーバは待機系として冗長サーバシステムに参加することとなるので、運用系サーバが重複してしまうという不具合を避けることができる。
【0071】
また、本実施形態のサーバは1台だけでも運用系サーバとして機能できると共に、同じソフトウエア構成のサーバをもう1台追加すれば、追加したサーバが自動的に待機系として動作する。また、2台のサーバの冗長構成で運用している際に、運用系サーバを停止さても、残った待機系が自動的に運用系に成り代わってサービスを引き継ぐ。このように、本実施形態のサーバを用いた冗長サーバシステムは、システム構成を柔軟に壊変することができるという利点を持つ。
【0072】
また、特許文献1及び2に示した従来技術では、サーバ相互間のヘルスチェックは行っていたが、これだけでは、相手方のサーバまでの通信経路が繋がっていることと、相手方のサーバがpingコマンド等の問い合わせに答えられることが分かるだけである。仮にpingの問い合わせに答えられたとしても、それだけでは相手がクライアントに対して必要なサービスを提供できるかまでは分からない。これに対し、本実施形態では、(1)待機系が運用系を監視することで、運用系の停止や、待機系のみが検出可能な運用系の障害を検出でき、(2)運用系自身が自己診断を行うことで外からは分からない内部機能の障害を検出できる。
【0073】
また、本実施形態では、運用系及び待機系が、定期的な監視や自己診断の際に、それぞれISP30やLAN上のクライアント40と通信ができるかどうかを検査するので、孤立検査も実現できる。
【0074】
また、本実施形態の冗長サーバシステムでは、ISP30との接続は、運用系サーバ10Aのみが行うので、ISP30への登録情報など、WAN側の接続系に設定変更を行う必要がない。また、運用系サーバ10Aと待機系サーバ10Bが同時にインターネット接続を行うことがないので、一般的に1台との接続しか許していないISPの契約条件やシステム上の利用制限を満足することができる。
【0075】
また、本実施形態のシステムでは、運用系サーバ10Aは常に一つしか存在せず、そのLAN側のIPアドレスは固定されているので、LAN−WAN境界のサーバが1つしかない従来のシステム構成と比べて、LAN上のクライアント40などサービスを享受する側の装置の持つソフトウエアや設定に変更や追加を加える必要がない。
【0076】
以上の例では、各サーバ10A、10BのWAN側ポートに設定する運用系−待機系間の通信のためのIPアドレス(すなわち運用系WAN側IPアドレス1062と待機系WAN側IPアドレス1066)を、系の切替に応じて切り替えた。しかし、これらは運用系−待機系間の通信専用のIPアドレスであり、LAN上及びWAN上の他のノードには影響を及ぼさないので、そのような切替をせずに、サーバ10Aとサーバ10Bとで固定的に設定しておく方式でも構わない。
【図面の簡単な説明】
【0077】
【図1】本発明に係るシステムの概略構成例を示す図である。
【図2】本実施形態のサーバの構成例を示す図である。
【図3】運用用データの例を示す図である。
【図4】冗長制御データの例を示す図である。
【図5】起動処理の手順を示すフローチャートである。
【図6】WAN側IPアドレス切替制御の手順を示すフローチャートである。
【図7】LAN側IPアドレス切替制御の手順を示すフローチャートである。
【図8】サーバが待機系に設定されたときの、通信デバイスにセットされるIPアドレスを説明するための図である。
【図9】サーバが運用系に設定されたときの、通信デバイスにセットされるIPアドレスを説明するための図である。
【図10】待機系による運用系障害監視の手順を示すフローチャートである。
【図11】待機系による系切替の手順を示すフローチャートである。
【図12】運用系自己監視の手順を示すフローチャートである。
【符号の説明】
【0078】
10A 運用系サーバ、10B 待機系サーバ、20L,20W ハブ、22 ADSLモデム、30 ISP、40 クライアント。

【特許請求の範囲】
【請求項1】
LANとWANとの境界に設置され、一方がLAN上のクライアントに対してサービスを提供する運用系、他方がその運用系の予備である待機系として機能する2台のサーバ装置と、
前記2台のサーバ装置の各LAN側ネットワークポートと前記LANとを接続するLAN側ハブと、
前記2台のサーバ装置の各WAN側ネットワークポートと前記WANとを接続するWAN側ハブと、
を備え、前記LAN側ハブを介した前記2台のサーバ装置間の通信経路と、前記WAN側ハブを介した前記2台のサーバ装置間の通信経路と、の両経路を介して前記2台のサーバ装置間での冗長系制御のための通信を行う冗長サーバシステム。
【請求項2】
前記2台のサーバ装置のうち運用系は、前記WANとの通信のための論理アドレスとは別に前記WAN側ハブを介して待機系と通信するためのWAN側論理アドレスを有し、待機系は前記WAN側ハブを介して運用系と通信するためのWAN側論理アドレスを有し、前記運用系及び待機系は相互のWAN側論理アドレスを用いて冗長系制御のための通信を行うことを特徴とする請求項1記載の冗長サーバシステム。
【請求項3】
前記2台のサーバ装置のうち待機系は、運用系が前記WANと接続できない状態であることを検知した場合、前記WANに対する接続を試み、その接続が成功した場合、運用系に停止を指示し、自らが運用系に切り替わることを特徴とする請求項1記載の冗長サーバシステム。
【請求項4】
前記2台のサーバ装置のうち待機系が運用系を監視し、この監視により運用系が停止していることを検知した場合は待機系が自律的に運用系へと切り替わり、前記監視により運用系は稼働しているものの機能不全であることを検知した場合は待機系が運用系に対して停止又は待機系への切替を指示し、その指示に対する処理が完了した後で待機系が運用系へと切り替わることを特徴とする請求項1記載の冗長サーバシステム。
【請求項5】
前記2台のサーバ装置のうち運用系は、自らのソフトウエア及びハードウエアの状態を監視し、この監視により異常を発見した場合は、待機系に対し運用系への切替を依頼し、この依頼に応じて待機系が運用系への切り替わることを特徴とする請求項1記載の冗長サーバシステム。
【請求項6】
前記各サーバ装置は、起動時には待機系として機能し、前記LAN側ハブを介した前記2台のサーバ装置間の通信経路と、前記WAN側ハブを介した前記2台のサーバ装置間の通信経路とを介して運用系の存在の有無を確認し、運用系が存在することが確認された場合は待機系としての動作を続行し、運用系が存在しないことが確認された場合は運用系に切り替わることを特徴とする、請求項1記載の冗長サーバシステム。
【請求項7】
前記2台のサーバ装置は、それぞれ、前記LAN側ハブを介した通信用の論理アドレスとして、LAN上のクライアント装置へのサービス提供のための運用系LAN側論理アドレスと、運用系との冗長系制御のための通信のための待機系LAN側論理アドレスとを保持しており、該サーバ装置が運用系である場合はそれらのうちの運用系LAN側論理アドレスを有効にし、該サーバ装置が待機系である場合はそれらのうちの待機系LAN側論理アドレスを有効にすることを特徴とする請求項1記載の冗長サーバシステム。
【請求項8】
LANとWANとの境界に設置されるサーバ装置であって、2台1組として構成した場合に、一方がLAN上のクライアントに対してサービスを提供する運用系、他方がその運用系の予備である待機系として機能し得るサーバ装置であって、
自らが運用系としてLAN上のクライアントに対してサービスを提供する際に用いる運用系WAN側論理アドレス及び運用系LAN側論理アドレスと、自らが待機系として機能する際に用いる待機系WAN側論理アドレス及び待機系LAN側論理アドレスと、を記憶した記憶装置と、
自らが運用系になった場合には、当該サーバ装置のWAN側通信ポート及びLAN側通信ポートに運用系WAN側論理アドレス及び運用系LAN側論理アドレスをそれぞれ設定し、自らが待機系になった場合には、前記WAN側通信ポート及びLAN側通信ポートに待機系WAN側論理アドレス及び待機系LAN側論理アドレスをそれぞれ設定するアドレス設定手段と、
自らが運用系である場合は、待機系との間の冗長系制御のために、前記WAN側ポートから前記待機系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記待機系LAN側論理アドレスを宛先として通信を行い、自らが待機系である場合は、運用系との間の冗長系制御のために、前記WAN側ポートから前記運用系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記運用系LAN側論理アドレスを宛先として通信を行う冗長系制御手段と、
を備えるサーバ装置。
【請求項9】
前記サーバ装置は、起動されたときに前記WAN側通信ポート及びLAN側通信ポートに前記待機系WAN側論理アドレス及び待機系LAN側論理アドレスをそれぞれ設定することにより待機系として機能し、その後前記WAN側ポートから前記運用系WAN側論理アドレスを宛先として通信を試み、前記LAN側ポートから前記運用系LAN側論理アドレスを宛先として通信を試みることで、運用系の有無を確認し、運用系が存在することが確認された場合は待機系としての動作を続行し、運用系が存在しないことが確認された場合は前記WAN側通信ポート及びLAN側通信ポートに前記運用系WAN側論理アドレス及び運用系LAN側論理アドレスをそれぞれ設定することにより運用系に切り替わることを特徴とする、請求項8記載のサーバ装置。
【請求項10】
LANとWANとの境界に設置されるサーバ装置であって、2台1組として構成した場合に、一方がLAN上のクライアントに対してサービスを提供する運用系、他方がその運用系の予備である待機系として機能し得るサーバ装置として、コンピュータシステムを機能させるためのプログラムであって、該コンピュータシステムを、
自らが運用系としてLAN上のクライアントに対してサービスを提供する際に用いる運用系WAN側論理アドレス及び運用系LAN側論理アドレスと、自らが待機系として機能する際に用いる待機系WAN側論理アドレス及び待機系LAN側論理アドレスと、を記憶した記憶手段、
自らが運用系になった場合には、当該サーバ装置のWAN側通信ポート及びLAN側通信ポートに運用系WAN側論理アドレス及び運用系LAN側論理アドレスをそれぞれ設定し、自らが待機系になった場合には、前記WAN側通信ポート及びLAN側通信ポートに待機系WAN側論理アドレス及び待機系LAN側論理アドレスをそれぞれ設定するアドレス設定手段、
自らが運用系である場合は、待機系との間の冗長系制御のために、前記WAN側ポートから前記待機系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記待機系LAN側論理アドレスを宛先として通信を行い、自らが待機系である場合は、運用系との間の冗長系制御のために、前記WAN側ポートから前記運用系WAN側論理アドレスを宛先として通信を行うとともに、前記LAN側ポートから前記運用系LAN側論理アドレスを宛先として通信を行う冗長系制御手段、
として機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2006−129094(P2006−129094A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−314880(P2004−314880)
【出願日】平成16年10月28日(2004.10.28)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】