(57)【要約】【課題】  専用の監視装置やオペレータを必要とせず通信負荷を増大させずに多重化でき、低コストでシステムの信頼性を向上できる簡易的なサーバ切替方法を提供する。【解決手段】  複数台で冗長化されたサーバ10-1〜10-n間で相互に監視し合い、現用系サーバの障害発生を検出した待機系サーバが自動でサーバ切替えを実施、クライアント１２からの要求電文は現用系に成り代わったサーバが受け付けサービスの提供を継続する。サーバ10-2はサーバ10-1を監視し、サーバ10-3はサーバ10-2を監視、サーバ10-1はサーバ10-nを監視、という様に、サーバ同士が互いを円環状に監視し合う。周期的な監視処理および障害検知時の切り替え処理は汎用的なＯＳに標準的に搭載されている機能で実装できる。【選択図】        図１
2006229512.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に冗長配備され監視周期ごとに他の１つのサーバを重複することなく監視して現用系サーバに異常であるときは待機系サーバに切り替えるサーバ切替方法であって、
前記各サーバは初期状態でONに設定される切替フラグを保持する段階と、
現用系サーバに対する監視サーバの前記切替フラグをOFFにする段階と、
前記監視において各監視サーバは監視対象サーバに対して実IPアドレスの疎通チェックを行う段階と、
前記実IPアドレスの疎通チェックの結果が肯定であるときに各監視サーバは監視対象サーバに対してプロセス起動チェックを行う段階と、
前記プロセス起動チェックの結果が肯定であるときに当該監視サーバは自己の切替フラグをOFFにする段階と、
前記プロセス起動チェックの結果が否定であるときに当該監視サーバは自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする段階とを有することを特徴とするサーバ切替方法。
【請求項２】
前記疎通チェックの結果が否定であるときに当該監視サーバは当該ネットワーク機器に対してブロードキャスト疎通チェックを行う段階と、
前記ブロードキャスト疎通チェックの結果が肯定であるときに当該監視サーバは自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする段階とを有することを特徴とする請求項１に記載のサーバ切替方法。
【請求項３】
前記各サーバは、起動時に、現用系サーバが保持する仮想IPアドレスに疎通チェックを行う段階と、
前記仮想IPアドレスの疎通チェックの結果により各々のサーバが現用系サーバか待機系サーバを判断する段階と有することを特徴とする請求項１または請求項２に記載のサーバ切替方法。
【請求項４】
前記各サーバ同士は、前記ネットワークへの接続位置により前置されたサーバを円環状に監視することを特徴とする請求項１ないし請求項３のいずれかに記載のサーバ切替方法。
【請求項５】
ネットワーク上に冗長配備され監視周期ごとに他の１つのサーバを重複することなく監視するサーバにおいて、
初期状態でONに設定される切替フラグを記憶装置に保持する手段と、
現用系サーバに対する監視サーバの前記切替フラグをOFFにする手段と、
前記監視において監視対象サーバに対して実IPアドレスの疎通チェックを行う手段と、
前記実IPアドレスの疎通チェックの結果が肯定であるときに監視対象サーバに対してプロセス起動チェックを行う手段と、
前記プロセス起動チェックの結果が肯定であるときに自己の切替フラグをOFFにする手段と、
前記プロセス起動チェックの結果が否定であるときに自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする手段とを有することを特徴とするサーバ。
【請求項６】
ネットワーク上に冗長配備され監視周期ごとに他の１つのサーバを重複することなく監視する各サーバにおいて実行されるサーバ切替プログラムであって、
前記各サーバは初期状態でONに設定される切替フラグを保持する手順と、
現用系サーバに対する監視サーバの前記切替フラグをOFFにする手順と、
前記監視において監視対象サーバに対して実IPアドレスの疎通チェックを行う手順と、
前記実IPアドレスの疎通チェックの結果が肯定であるときに監視対象サーバに対してプロセス起動チェックを行う手順と、
前記プロセス起動チェックの結果が肯定であるときに自己の切替フラグをOFFにする手順と、
前記プロセス起動チェックの結果が否定であるときに自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする手順とを有することを特徴とするサーバ切替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に複数台で多重化されたサーバの切替に関し、特に、現用系サーバに障害が発生したら待機系サーバに処理を引き継ぎ、サービス停止時間を最小限に留めるサーバ切替に関する。
【背景技術】
【０００２】
昨今、インターネットを介して多くのユーザに様々なサービスを提供するシステムが数多く見受けられるが、このようなシステムにおけるサーバは、年中無休で１日24時間の連続運転が当然のこととされる。しかし、如何なる堅牢なシステムにおいてもサーバのハードウェア障害やソフトウェアの不具合によってサービスが停止する可能性は存在する。そこで、サーバに障害が発生した場合に備えて代替のサーバを待機させておき、障害が発生したら直ぐにサーバの切り替え処理を実施し、サービスを継続させる運用手法が一般に採用されている。この種のサーバ切替え方式は、冗長化された複数のサーバを監視するための専用の監視装置を配し、監視装置が現用系サーバの障害を検知すると待機系サーバへの切替え処理を実施する。
【０００３】
また、プロセス制御ユニットによる仲介の下に冗長化された複数台の監視制御サーバが自律的にシステム支配権の獲得競争を行い、現用系サーバを決定する冗長待機運転方法が提案されている（例えば、特許文献１参照）。
【０００４】
また、ネットワーク上に運用系のLANエミュレーションサーバおよび予備系のLANエミュレーションサーバを配し、運用系のLANエミュレーションサーバの障害発生を予備系のLANエミュレーションサーバが検出して自動的に切り替わり、サービスを継続する二重化方式が提案されている（例えば、特許文献２参照）。
【０００５】
また、一つのサーバにデータが格納される場合に、他の２つ以上のサーバにも該データを格納して、これらのサーバ間で相互に監視し合い、故障が検出されると、データ容量に余裕のあるサーバの中から代替サーバを決定して当該データを転送・格納するバックアップシステムが提案されている（例えば、特許文献３参照）。
【０００６】
【特許文献１】特開平10-49505（第１頁−第２頁、図１）
【特許文献２】特開平11-68790（第１頁−第２頁、図１）
【特許文献３】特開2002215474（第１頁−第２頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来のサーバ切替え方式では、現用系サーバの障害を検知し切替えを実施するための専用の監視装置、または特許文献１に記載のようなシステム支配権の獲得競争を仲介するためのプロセス制御ユニットが必須である。このように監視装置等を介して切替えを行うためには、監視装置等自体が正常に動作していなければならず、監視装置等に障害が発生している間は切替えが行えなくなるため、年中無休１日24時間の連続運転を常とするためには、常時専門のオペレータが監視業務を行っているか、監視装置等を二重化するなどして、システム全体としての信頼性を向上させる手段を考慮しなければならないという問題点がある。
【０００８】
更に、監視装置等にはサーバを監視するためのソフトウェアを搭載する必要があり、監視対象となるサーバには監視マネージャに障害情報を通知するためのソフトウェアを搭載する必要があるため、監視装置等を要しないシステムと比較してハードウェア・ソフトウェアの両面で高コストであるという問題点もある。
【０００９】
また、特許文献２に記載の技術のように、専用の監視装置を置かずに予備系サーバが現用系サーバを監視し冗長切り替えを行う方式では、２台以上の冗長化が困難であるという問題点がある。その理由は、１台の現用系を他の２台以上の予備系サーバが監視した場合、現用系の障害発生時に複数台の予備系が同時に切替え処理を実施しようとし、同時に複数台の現用系が起動してしまうためである。
【００１０】
また、特許文献３に記載の技術のように、専用の監視装置を置かずに３台以上のサーバを冗長化するために、予備系同士も含めた複数台のサーバ同士が相互に監視し合うことで冗長切り替えを行う方式では、サーバ台数が増える毎に通信量も増加し、冗長化のための通信負荷によって本来のサービスが圧迫されるという問題点がある。
【００１１】
本発明は、上述した諸問題点に鑑みてなされたものであり、その目的は、専用の監視装置やオペレータを必要とせず、また通信負荷を増大させずに多重化でき、簡単かつ低コストでシステムの信頼性を向上できるサーバ切替え方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明のサーバ切替方法は、ネットワーク上に冗長配備され監視周期ごとに他の１つのサーバを重複することなく監視して現用系サーバに異常であるときは待機系サーバに切り替えるサーバ切替方法であって、各サーバは初期状態でONに設定される切替フラグを保持する段階と、現用系サーバに対する監視サーバの前記切替フラグをOFFにする段階と、監視において各監視サーバは監視対象サーバに対して実IPアドレスの疎通チェックを行う段階と、実IPアドレスの疎通チェックの結果が肯定であるときに各監視サーバは監視対象サーバに対してプロセス起動チェックを行う段階と、プロセス起動チェックの結果が肯定であるときに当該監視サーバは自己の切替フラグをOFFにする段階と、プロセス起動チェックの結果が否定であるときに当該監視サーバは自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする段階とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によって得られる第１の効果は、サーバ同士で互いを監視し合い、自動でサーバ切替えを実施するため、専用の監視装置や専門のオペレータを備える必要がないということである。
【００１４】
また、第２の効果は、汎用的なオペレーションシステムに標準で組み込まれている処理によって実装できる仕組みであるため、特殊な装置やソフトウェアを必要としないということである。
【００１５】
また、第３の効果は、冗長化するサーバ台数が増えても相互監視による通信量が増大しない仕組みであるため、通信負荷を気にすることなく何台でもサーバを多重化できるということである。
【発明を実施するための最良の形態】
【００１６】
本発明のサーバ切替方法は、ネットワーク上に冗長配備され監視周期ごとに他の１つのサーバを重複することなく監視して現用系サーバに異常であるときは待機系サーバに切り替える。各サーバは初期状態でONに設定される切替フラグを保持し、また現用系サーバに対する監視サーバの切替フラグはOFFとされる。各監視サーバは監視対象サーバに対して実IPアドレスの疎通チェックを行う。
【００１７】
実IPアドレスの疎通チェックの結果が肯定であるときに各監視サーバは監視対象サーバに対してプロセス起動チェックを行い、プロセス起動チェックの結果が肯定であるときに当該監視サーバは自己の切替フラグをOFFにする。プロセス起動チェックの結果が否定であるときに当該監視サーバは自己の切替フラグがOFFであるときに限り現用系サーバに切り替わり、かつ自己の切替フラグをONにする。
【００１８】
各サーバは、起動時に、現用系サーバが保持する仮想IPアドレスに疎通チェックを行う。また、仮想IPアドレスの疎通チェックの結果により各々のサーバが現用系か待機系を判断する。さらに、監視サーバは、自身と監視サーバとの間のネットワーク状態が正常であることの確認がとれないときにはブロードキャスト疎通チェックを行い、その結果により自身のネットワーク状態が異常の場合にはサーバ切替えを行わない。
【実施例１】
【００１９】
図１は、本発明が適用されるネットワークシステムを示している。図１において、１台を現用系サーバとし、他を待機系サーバとする、n（nは２以上）台のサーバ10-1，10-2，10-3〜10-ｎがネットワーク１１に接続された構成において、サーバ10-2はサーバ10-1の障害を周期的に監視し、サーバ10-3はサーバ10-2を、サーバ10-nはサーバ10-（n-1）を、サーバ10-1はサーバ10-nを、という様に円環状に、前置されたサーバを監視する。ネットワーク１１には複数のクライアント１２が接続されており、サーバ１０によるサービスを享受できる。サーバ１０とはサーバ10-1〜10-nの総称である。
【００２０】
n台のサーバ10-1〜10-nは何れも現用系サーバとなり得るが、例えば、サーバ10-1が現用系サーバであった場合、サーバ10-1に障害が発生してサービスの提供が不能になると、サーバ10-2が障害を検知してサーバ10-1の処理を引き継ぎ、サービス提供を継続する。
【００２１】
現用系サーバが待機系サーバと異なるのは、現用系であることを表す仮想IPアドレスを保有している点である。仮想IPアドレスとは、現用系サーバを表象するアドレスであって、現用系サーバのメモリに保持される。そして、現用系サーバは、正常な動作においては、サービスを提供するためのプロセスが動作しており、また、サービス提供に必要なデータをバックアップする処理が周期的に行われている。
【００２２】
クライアント１２からサーバ１０への要求電文は仮想IPアドレスに対して送信される。そのため、クライアント１２からの要求電文に対しては仮想IPアドレスを保持する現用系サーバのみが応答し、待機系サーバが応答することはない。
【００２３】
最初に立ち上がる１台目のサーバ１０は、起動時に仮想IPアドレスに対して数回の疎通チェック（ping：Packet InterNet Groper）を行う。仮想IPアドレスの疎通チェックを数回行うのは、ネットワーク接続に起因する不安定要素を除去するためである。応答が無ければ現用系サーバが未だ存在しないと判断して、仮想IPアドレスを取得し、自ら現用系サーバとして動作する。これ以降に起動したサーバも同様に仮想IPアドレスへの疎通チェックを行うが、この場合は応答が返ってくるため、既に現用系が存在していると判断して待機系として動作することになる。
【００２４】
サーバ１０は、サーバ切替制御のために切替フラグをメモリに備えている。切替フラグは、サーバ切替え処理が実施済みか未済みかを判断するためのものである。初期状態では全てのサーバ１０についてONに設定されており、サーバ１０が現用系サーバになると、そのサーバを監視しているサーバ（監視サーバ）の切替フラグはOFFとされる。監視対象のサーバ１０に異常があると、監視サーバが現用系サーバに成り代わるが、そのときサーバ切替が既に実施されているか否かを切替フラグのON/OFFによって判断し、必要に応じてサーバ切替を実施する。
【００２５】
次に、図２のフローチャートを参照して本実施例における監視サーバ１０の動作について詳細に説明する。
【００２６】
各サーバ１０は、前置されているサーバ１０を円環状で周期的に監視している。監視サーバは、監視周期を迎えると（図２のステップＳ１）、監視対象サーバに対して実IPアドレスへの疎通チェックを行う（ステップＳ２）。疎通チェック結果がOKであれば（ステップＳ３）、自身と監視サーバとの間のネットワーク状態が正常であることの確認がとれたことになる。
【００２７】
引き続きサービス提供に必要なプロセス起動チェックを行う（ステップＳ４）。プロセス起動チェック結果もOKであれば、その監視対象サーバは現用系サーバであると判断し、監視サーバの切替フラグをOFFにして（ステップＳ６）、その周期での監視処理を終了する。もっとも、監視対象サーバが元々現用系サーバであるなら切替フラグはOFFの状態を維持する。
【００２８】
プロセス起動チェックで連続NGだった場合は（ステップＳ７）、監視サーバは正常だが、監視対象サーバは現用系サーバでないか又は現用系サーバではあるがその動作が異常と判断できる。プロセス起動チェックを連続して行うのは、ネットワーク接続に起因する不安定要素を除去するためである。
【００２９】
切替フラグがOFFとなるのは（ステップＳ６）、監視対象サーバに対するプロセス起動チェックが正常の場合、すなわち監視対象サーバが現用系サーバであり、かつ、現用系サーバとして正常に動作している場合のみである。したがって、ステップＳ７に続いて切替フラグのチェック（ステップＳ８）を行い、その結果により切替フラグがOFFであった場合は、これまで正常であった監視対象サーバが異常になったものと見なせるため、サーバ切替を実施する。すなわち、その監視対象サーバは待機系サーバとなり、監視サーバが現用系サーバとなる（ステップＳ９）。そして、新現用系サーバの切替フラグをONとする（ステップＳ１０）。
【００３０】
切替フラグのチェック（ステップＳ８）の結果により、切替フラグがONであった場合は、サーバ切替は既に実施済みであるか、または監視対象サーバは待機系サーバということになる。したがって、この場合は、監視サーバが現用系サーバに切り替わろうとすることはなく、そのまま終了する。このように、サーバ切替え処理が実施済みか未済みかは切替フラグによって判断できる。
【００３１】
いま、現用系サーバ10-1をサーバ10-2が監視し、サーバ10-2をサーバ10-3が監視しているとする。このとき、サーバ10-2の切替フラグはOFF、サーバ10-1，10-3の切替フラグはONである。監視対象サーバ10-1に異常があって、現用系サーバがサーバ10-2に切り替わったとすると、サーバ10-1，10-2，10-3の切替フラグはONになる。そして、次の周期の監視処理では、サーバ10-3の切替フラグがOFFに変わることになる。このことは、次に現用系サーバＳ２に障害が発生した時は、サーバ10-3が現用系サーバに切り替わる順である、ということをサーバ10-3が認識することになる。
【００３２】
切替フラグのチェックを行う意義の１つは、一度、監視対象サーバの異常を検出してサーバ切替え処理（ステップＳ９）を実施した後に、次の監視周期で再び監視対象サーバを異常と判断して何度もサーバ切替え処理が実施されるのを防ぐためである。
【００３３】
一方、監視対象サーバへの疎通チェック（ステップＳ２）でNGだった場合は（ステップＳ３）、連続して数回同チェックを行う（ステップＳ１１）。連続チェックの意義はステップＳ７と同様である。連続してNGだった場合は次のステップへ進む。ただし、この段階では、監視サーバ自身のネットワーク状態が異常であることも考えられるため、自身の正常性を確認するために、ネットワーク全体へのブロードキャスト疎通チェックを行う（ステップＳ１２）。
【００３４】
ブロードキャスト疎通チェックで（ステップＳ１３）連続NGだった場合（ステップＳ１４）、自サーバ異常と判断して監視処理を終了する。ブロードキャスト疎通チェックとは、当該サーバからネットワーク上で同一セグメントに属する全てのネットワーク装置へ信号を送り、その応答があるか否かを調べるチェックをいう。
【００３５】
ブロードキャスト疎通チェック（ステップＳ１２）でOKだった場合は（ステップＳ１３）、監視サーバは正常だが監視対象サーバは異常であることが確認できたことになる。この場合に切替フラグがONであれば（ステップＳ８）、サーバ切替は既に実施済みであるか、または監視対象サーバは待機系サーバということになり、そのまま処理を終える。一方、切替フラグがOFFであれば、これまで正常であった現用系サーバが異常になったものと見なせるため、サーバ切替を実施し（ステップＳ９）、切替フラグをONとする（ステップＳ１０）。
【００３６】
現用系サーバは定期的に、サービス提供に必要なデータのバックアップ処理を行う。バックアップ周期を迎えると（１）サービス提供に必要なデータを圧縮し、（２）圧縮したデータを待機系サーバに転送する。転送先は、現用系サーバを監視している待機系サーバ、すなわち現在の現用系サーバに障害が発生したら次に現用系サーバと成り代わってサービス提供を継続するサーバである。
【００３７】
切替え実施（ステップＳ９）によって行われる処理内容は、（１）監視対象サーバ、すなわち前現用系サーバが保持する仮想IPアドレスの解放、（２）前現用系サーバからバックアップ転送されたデータのリストア、（３）サービス提供に必要なプロセスの起動、（４）周期的にデータをバックアップする処理の開始、（５）現用系サーバへの障害発生と切替え実施をサーバ管理者に知らせるための電子メールの送信である。
【００３８】
本実施例で使用する各種処理を列記すると、「ネットワーク上の装置間の疎通チェック（Ping）およびデータ転送（Ftp）、プロセス起動チェック、圧縮・解凍、電子メール送信、仮想IPの獲得・解放、ファイル入出力（切り替え済みフラグの操作）」であり、何れも汎用的なオペレーションシステムに標準的に搭載されている機能であるため、特殊なソフトウェアを開発することなく容易にシステムに適用できる。
【図面の簡単な説明】
【００３９】
【図１】本発明が適用されるネットワークシステムを示すブロック図
【図２】本発明における監視サーバの動作を示すフローチャート
【符号の説明】
【００４０】
10-1〜10-n  サーバ
１１        ネットワーク
１２        クライアント
【図１】
2006229512.tif 000003
【図２】
2006229512.tif 000004