(57)【要約】【課題】  サーバ間のハートビート伝送経路異常等により、待機モードのサーバが誤った判断を行い、切り替え動作を行った場合であっても、クラスタシステムが提供するＩＰアドレスに複数のＭＡＣアドレスが対応付く状態を回避し、ネットワークにおける通信障害を防止するクラスタシステムにおけるサーバ切り替え方法を提供する。【解決手段】  クラスタシステムを構成する待機モードのサーバ１２０１において、実行モードのサーバ１１０１からのハートビート途絶を検出した場合、待機モードのサーバ１２０１から実行モードのサーバ１１０１に対し、クライアントのＩＰアドレスにネットワーク上存在しないＭＡＣアドレスを対応付けたＡＲＰパケットを送信し、通信不能な状態とし、一方のサーバはネットワークから切り離された状態とする。【選択図】図１
2009003491.tif 000002
【特許請求の範囲】
【請求項１】
実行モードのサーバと待機モードのサーバが相互監視用の伝送経路で接続され、ハートビートの確認によって相互に他サーバの停止を監視し、一方のサーバがアドレスを用いてネットワークを介して他の機器と通信を行うクラスタシステムであって、前記待機モードのサーバが、前記実行モードのサーバからのハートビートの途絶を確認した時には、前記待機モードのサーバから、前記実行モードのサーバにネットワーク上に存在しない偽装アドレスを送信して通信を利用不可の状態とし、ネットワークから切り離すクラスタシステムにおけるサーバ切り替え方法。
【請求項２】
前記アドレスが上位アドレスと下位アドレスから構成され、クラスタを構成するサーバ間では同じ上位アドレスを排他利用し、前記下位アドレスに前記偽装アドレスを設定する請求項１に記載のクラスタシステムにおけるサーバ切り替え方法。
【請求項３】
前記上位アドレスがＩＰアドレス、前記下位アドレスがＭＡＣアドレスであり、前記偽装アドレスを含むＡＲＰリプライパケットとして送信される請求項２に記載のクラスタシステムにおけるサーバ切り替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラスタシステムにおけるサーバの切り替え方法に係り、特に、クラスタを構成するサーバが相互に他サーバの状態を正常に認識できない場合に複数のサーバが実行モードとなり、ネットワーク上に同じアドレスが存在することによって発生するシステム障害を防止できるクラスタシステムにおけるサーバ切り替え方法に関する。
【背景技術】
【０００２】
クラスタシステムとは、２台のサーバで構成され、サーバ上でオペレーティングシステム，クラスタソフト，アプリケーションが動作し、サーバ間で共通のＩＰアドレス（以下、仮想ＩＰアドレスと呼ぶ）を排他利用して、ネットワーク上で仮想的に１台のサーバに見せるシステムのことをいう。
【０００３】
このシステムでは、いずれか一方のサーバは実行モードであり、クライアントコンピュータとクラスタシステムとの間でネットワーク通信を行うための仮想ＩＰアドレスを有効化する。実行モードのサーバが停止した場合、もう１台の待機モードのサーバが同じ仮想ＩＰアドレスを有効化することでサーバの切り替えを行う。この時、同じネットワーク上に存在するクライアントコンピュータに対して、有効化したＩＰアドレスと自サーバのＭＡＣ（Media Access Control address）アドレスとを関連付けたＡＲＰ（Address Resolution Protocol）パケットをブロードキャスト形式で送信することで、クライアントのＡＲＰテーブル（ＩＰアドレスとＭＡＣアドレスの対応表）を更新する。これによってクライアントコンピュータは、仮想ＩＰアドレスを有効化しているサーバが切り替わったことを意識せずに通信を再開することが可能となる。
【０００４】
クラスタシステムで他サーバの停止を検出する方法には、サーバ間に伝送経路を設け、相互にハートビートと呼ぶ電文の送受信を行い、一定時間ハートビートの受信が途絶したときに他サーバの停止を検出する方法がある。
【０００５】
しかし、サーバ間の伝送経路が異常となった場合、実行モードのサーバが一時的に高負荷状態となり、ハートビートの送信処理が動作不可または遅延した場合は、サーバは停止していないにも関わらず、ハートビートが途絶することで、待機モードのサーバは、他サーバが停止したものと誤った判断をし、実行モードへの切り替え動作を行う。これによって両方のサーバが実行モードとなり、ネットワーク上に同じ仮想ＩＰアドレスに対して複数のＭＡＣアドレスが対応付いた状態となり、クライアントコンピュータとクラスタシステムを構成するサーバが通信を行う際に、電文の欠落や、通信不能などの障害が発生する。
【０００６】
このため、〔特許文献１〕に記載のように、クラスタシステムのサーバとは別に、クラスタシステムのデータを共有するための共有ディスクを接続し、共有ディスクの占有権によって排他制御を行い、誤った判断をした場合でも、一方のサーバのみが実行モードとなるようにする方式がある。また、同様なものに、〔特許文献２〕に記載のものがある。
【０００７】
また、〔特許文献３〕に記載のように、各々のサーバに特殊機器を接続し、ハートビートの受信が途絶したときに、特殊機器を利用して他サーバを強制停止する方式がある。
【０００８】
【特許文献１】特許第３５７３０９２号公報
【特許文献２】特開２００６−２５３９００号公報
【特許文献３】特開２００６−１１９９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したハートビートの受信が途絶したときにサーバの停止を検出する方式では、サーバ間の伝送経路異常、実行モードのサーバで高負荷状態が発生した際に、相互に他サーバの停止を誤って検出し、待機モードのサーバが切り替え動作を行うことでネットワーク上に同じ仮想ＩＰアドレスに対応付く複数のＭＡＣアドレスが存在する状態となる。この結果、クライアントコンピュータとクラスタシステムを構成するサーバ間で通信障害が発生するという問題がある。
【００１０】
また、〔特許文献１〕に記載のように、共有ディスクを使用する場合は、複数のサーバが共有ディスクに接続されているということが前提となるため、共有ディスクを使用しないシステムでは適用できないという問題がある。また、共有ディスクを使用した場合、その共有部位での故障によりシステム全体が停止してしまうという問題がある。
【００１１】
また、〔特許文献２〕に記載の技術では、クラスタシステムを構成するサーバに、問題を解決するための専用の機器が前提となるため、システム価格が高くなり、パーソナルコンピュータなどの汎用品でのシステム構築ができない。
【００１２】
本発明の目的は、サーバ間のハートビート伝送経路異常、実行モードのサーバにおける一時的な高負荷によって待機モードのサーバが誤った判断を行い、切り替え動作を行った場合であっても、クラスタシステムが提供するＩＰアドレスに複数のＭＡＣアドレスが対応付く状態を回避し、ネットワークにおける通信障害を防止するクラスタシステムにおけるサーバ切り替え方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、両方のサーバが実行モードとなった際に、一方のサーバで有効化されている仮想ＩＰアドレスを利用した通信を不能な状態とすることでネットワークから論理的に切り離すようにしたものである。これにより、ネットワーク上でクラスタシステムが提供する仮想ＩＰアドレスに対応するＭＡＣアドレスは１つとなるため、クライアントコンピュータとクラスタシステムとの通信が正常に行われる。
【発明の効果】
【００１４】
本発明によれば、特別な機器を利用しない安価なクラスタ構成において、ハートビート伝送経路の異常、実行モードのサーバにおける一時的な高負荷状態によって待機モードのサーバが他サーバの停止を誤って判断した場合でも、一方のサーバをネットワークから切り離し、クラスタシステムを構成するサーバとクライアント間の通信障害の発生を防止したサーバ切り替えが可能となる。
【発明を実施するための最良の形態】
【００１５】
本発明の一実施例を図１から図５により説明する。図１は、本実施例のクラスタシステムの構成図である。
【００１６】
図１に示すように、ネットワーク１４０２を介して、サーバＡ１１０１，サーバＢ１２０１，クライアントコンピュータ１３０１が接続されている。クラスタシステムを構成するサーバＡ１１０１，サーバＢ１２０１は、伝送経路１４０１で相互に接続される。
【００１７】
サーバＡ１１０１，サーバＢ１２０１では、サーバ毎にクラスタ制御機構１１０３，１２０２，ネットワーク通信機構１１０５，１２０４、アプリケーション１１０２を有している。クラスタ制御機構１１０３，１２０２には、それぞれＡＲＰ制御部１１０４，１２０３が設けられ、ネットワーク通信機構１１０５，１２０４には、それぞれＡＲＰテーブル１１０６，１２０５、仮想ＩＰアドレス１１０７，ＭＡＣアドレスＡ１１０８，ＭＡＣアドレスＢ１２０６が設けられる。ここで、仮想ＩＰアドレスを上位アドレス、ＭＡＣアドレスを下位アドレスともいう。
【００１８】
クライアントコンピュータ１３０１には、アプリケーション１３０２，ネットワーク通信機構１３０３を有しており、ネットワーク通信機構１３０３には、ＡＲＰテーブル１３０４，クライアントＩＰアドレス１３０５，ＭＡＣアドレス１３０６が設けられる。
【００１９】
アプリケーション１１０２はクラスタ制御機構１１０３の持つ運転モードに従い、処理を行うか否かが制御される。図１に示す例では、サーバＡ１１０１がアプリケーションの処理を行う場合を示している。
【００２０】
実行モードのサーバＡ１１０１は、アプリケーション１１０２と、クライアントコンピュータ１３０１のアプリケーション１３０２が通信を行うための仮想ＩＰアドレス１１０７を有効化している。仮想ＩＰアドレスに対応するＭＡＣアドレスは、実行モードのサーバＡ１１０１のＭＡＣアドレスＣ１１０８であり、クライアントコンピュータ１３０１のネットワーク通信機構１３０３では、この対応付けをＡＲＰテーブル１３０４にエントリしている。エントリの内容は、クライアントのＡＲＰエントリ（１）１３０７に示すように、仮想ＩＰアドレス１１０７とＭＡＣアドレスＡ１１０８である。
【００２１】
実行モードのサーバＡ１１０１のネットワーク通信機構１１０５においても、クライアントのＩＰアドレスとＭＡＣアドレスの対応付けをＡＲＰテーブル１１０６にエントリしている。エントリの内容は、サーバＡのＡＲＰエントリ（１）１１０９に示すように、クライアントのＩＰアドレス１３０５とＭＡＣアドレスＣ１３０６である。
【００２２】
これらのＩＰアドレスとＭＡＣアドレスの対応付けによってネットワーク１４０２における通信を行っている。
【００２３】
図１に示す構成において、サーバＡ１１０１が停止した場合、サーバＢ１２０１のクラスタ制御機構１２０２は、サーバＡ１１０１が停止したことを検出し、サーバＢ１２０１上でアプリケーションが処理を行うようにクラスタ制御機構１２０２が制御する。
【００２４】
他のサーバが停止したことの検出は、ハートビート受信の途絶によって判定する。これは、サーバ毎のクラスタ制御機構１１０３，１２０２がハートビート用の伝送経路１４０１を利用して定周期で電文の送受信を行い、両方のクラスタ制御機構１１０３，１２０２で一定期間の受信が行われない場合には、サーバが停止したと判断する。待機モードのサーバＢ１２０１が、実行モードのサーバＡ１１０１が停止したと判断した場合には、待機モードから実行モードへの移行を行う。
【００２５】
図１に示す構成において、伝送経路１４０１が異常となった場合、もしくは、実行モードのサーバＡ１１０１内でアプリケーション１１０２の処理負荷が高くなったため、クラスタ制御機構１１０３がハートビートを送信できなかった場合は、待機モードのクラスタ制御機構１２０２は、実行モードのサーバＡ１１０１の停止を誤って判断する。
【００２６】
待機モードのサーバＢ１２０１が実行モードに移行する際、待機モードのＡＲＰ制御部１２０３は、停止したと判断したサーバＡ１１０１（以下、旧実行サーバと呼ぶ）に対し、ネットワーク１４０２に接続されているクライアントコンピュータ１３０１のＩＰアドレスとネットワーク上に存在しないＭＡＣアドレスとを関連付けたＡＲＰリプライパケット（以下、偽装ＡＲＰと呼ぶ）を送信する。
【００２７】
旧実行サーバ１１０１が停止していなかった場合、偽装ＡＲＰを受けることでネットワーク通信機構１１０５のＡＲＰテーブル１１０６が更新または追加される。このときのＡＲＰテーブル１１０６のエントリ内容は、サーバＡのＡＲＰエントリ（２）１１１０に示すように、クライアントＩＰアドレス１３０５とＭＡＣアドレスＸである。図１では、ネットワーク上に存在しないＭＡＣアドレスの例をｘとしている。このため、旧実行サーバ１１０１からクライアントコンピュータ１３０１に対する通信は存在しないＭＡＣアドレス宛となり、旧実行サーバ１１０１を通信不能な状態として、ネットワークから切り離す。
【００２８】
また、ＡＲＰテーブルのエントリは保持時間があり、設定された時間を経過すると消去されるため、実行モードとなるサーバＢ１２０１（以下、新実行サーバと呼ぶ）のＡＲＰ制御部１２０３は、設定された時間より短い間隔で旧実行サーバ１１０１のネットワーク通信機構１１０５に対して偽装ＡＲＰを送信することによってエントリの消去を防止する。ＡＲＰエントリの保持時間は、オペレーティングシステムの仕様によって異なるため、偽装ＡＲＰの送信時間間隔は設定可能となっている。
【００２９】
偽装ＡＲＰの送信は、旧実行サーバ１１０１のクラスタ制御機構１１０３からのハートビートを再度受信し、状態が確認できるまで継続する。
【００３０】
この後、新実行サーバ１２０１のＡＲＰ制御部１２０３は、有効化する仮想ＩＰアドレス１１０７と自サーバのＭＡＣアドレス１２０６を対応付けたＡＲＰパケットをネットワーク上にブロードキャスト形式で送信し、クライアントコンピュータ１３０１のＡＲＰテーブル１３０４を更新する。このときのエントリ内容は、クライアントのＡＲＰエントリ（２）１３０８に示すように、仮想ＩＰアドレス１１０７とＭＡＣアドレスＢ１２０６である。
【００３１】
また、仮想ＩＰアドレスに対応するＡＲＰテーブルのエントリを持たないクライアントから、新たに通信を開始する場合は、ネットワーク１４０２上に仮想ＩＰアドレスに対するＡＲＰリクエストパケットをブロードキャストし、旧実行サーバ１１０１のネットワーク通信機構１１０５がＡＲＰリプライを応答することによって偽装ＡＲＰによるエントリ１１１０が存在するＭＡＣアドレスのエントリに更新され、通信可能な状態に回復するケースが考えられる。
【００３２】
この状態を防止するため、新実行サーバ１２０１のＡＲＰ制御部１２０３は、ネットワーク１４０２上のＡＲＰリクエストパケットを監視し、仮想ＩＰアドレスに対するＡＲＰリクエストを検出した場合には、旧実行サーバ１１０１のネットワーク通信機構１１０５に偽装ＡＲＰを再送し、ＡＲＰリクエスト送信元のクライアントに新実行サーバ１２０１のＭＡＣアドレス１２０６を設定したＡＲＰリプライを複数回に渡って送信することで補正を行う。
【００３３】
これによって、待機モードのサーバが他サーバの停止を誤って判断した場合でも、ネットワーク上で仮想ＩＰアドレスに複数のＭＡＣアドレスが対応付く状態を防止する。
【００３４】
図２は、クラスタ制御機構のフロー図を、図３はクラスタ制御機構における引き継ぎ処理のフロー図を、図４はクラスタ制御機構における偽装ＡＲＰ送信処理のフロー図を、図５はクラスタ制御機構におけるＡＲＰ監視処理のフロー図を示す。
【００３５】
図２は、クラスタ制御機構の処理を示す流れ図である。ステップＳ１では、自サーバの運転モードの初期状態を決定する。他サーバが実行モード以外である場合には実行モードとなり、他サーバが実行モードである場合には待機モードとなる。
【００３６】
ステップＳ２では、決定した運転モードの判定を行う。運転モードが実行の場合は、ステップＳ３で仮想ＩＰアドレスの有効化を行い、ステップＳ４でアプリケーションを起動する。
【００３７】
ステップＳ５では、定期的な時間間隔で、他サーバへハートビートを送信し、他サーバからのハートビートの受信確認を行う。ステップＳ６では、ハートビートの受信が一定期間途絶したかの判定を行う。ハートビート受信の途絶を検出した場合、他サーバが停止したと判断する。
【００３８】
ステップＳ７では、現在のサーバの運転モードを判定し、待機モードである場合には、ステップＳ８で、実行モードとなるための引き継ぎ処理を実行する。
【００３９】
ステップＳ９では、ステップＳ５でのハートビート受信の確認により、停止していた他サーバからのハートビート受信が再開したかの判定を行う。
【００４０】
他サーバからのハートビート受信の再開を検知した場合には、引き継ぎ処理で開始した処理を停止するため、ステップＳ１０で、仮想ＡＲＰの送信を停止し、ステップＳ１１で、ＡＲＰ監視処理を停止する。
【００４１】
図３は、待機モードのサーバが実行モードとなる際の引き継ぎ処理のフロー図を示す。ステップＳ１２では、ステップＳ６で停止と判断したサーバに対して偽装ＡＲＰを送信する処理を開始し、ステップＳ１３で、仮想ＩＰアドレスを有効化する。
【００４２】
ステップＳ１４で、ＡＲＰ監視処理を開始した後、ステップＳ１５でアプリケーションを起動し、ステップＳ１６で自サーバの運転モードを実行モードに更新する。
【００４３】
図４は、偽装ＡＲＰの送信処理のフロー図を示す。この処理は、図３のステップＳ１２で開始され、図２のステップＳ１０で停止される。
【００４４】
ステップＳ１７では、他サーバに偽装ＡＲＰを送信する間隔の設定を読み込む。ステップＳ１８では、ネットワークに接続し、クラスタシステムを構成するサーバと通信を行うためのクライアントのＩＰアドレスを取得する。
【００４５】
ステップＳ１９では、ステップＳ１８で取得したクライアントのＩＰアドレスに、ネットワーク上に存在しないＭＡＣアドレスを設定したＡＲＰリプライパケットを生成し、他サーバに送信する。ステップＳ２０は、偽装ＡＲＰを他サーバに送信する間隔を生成する。
【００４６】
図５はＡＲＰ監視処理のフロー図を示す。この処理は、図３のステップＳ１４で開始され、図２のステップＳ１１で停止される。
【００４７】
ステップＳ２１では、ネットワーク上に流れるＡＲＰパケットを監視する。ＡＲＰパケットを検出した場合、ステップＳ２２で、仮想ＩＰアドレスに対するＡＲＰリクエストかを判定する。仮想ＩＰアドレスに対するＡＲＰリクエストを検出した場合は、ステップＳ２３で、他サーバに対して、ＡＲＰリクエスト送信元のＩＰアドレスにネットワーク上に存在しないＭＡＣアドレスを設定した偽装ＡＲＰを送信する。また、ステップＳ２４では、仮想ＩＰアドレスに対するＭＡＣアドレスを自サーバのＭＡＣアドレスとしたＡＲＰリプライパケットを送信する。これらの送信は、他サーバがＡＲＰリプライの応答が送信された後に、更にＡＲＰテーブルが更新されるよう、複数回に渡って送信を行う。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施例であるクラスタシステムの構成図である。
【図２】ノード停止監視機構のネットワーク送受信処理のフロー図である。
【図３】クラスタ制御機構における引き継ぎ処理のフロー図である。
【図４】クラスタ制御機構における偽装ＡＲＰ送信処理のフロー図である。
【図５】クラスタ制御機構におけるＡＲＰ監視処理のフロー図である。
【符号の説明】
【００４９】
１１０１  サーバＡ
１１０２  アプリケーション
１１０３，１２０２  クラスタ制御機構
１１０４，１２０３  ＡＲＰ制御部
１１０５，１２０４  ネットワーク通信機構
１２０１  サーバＢ
１３０１  クライアントコンピュータ
１４０１  伝送経路
１４０２  ネットワーク
【図１】
2009003491.tif 000003
【図２】
2009003491.tif 000004
【図３】
2009003491.tif 000005
【図４】
2009003491.tif 000006
【図５】
2009003491.tif 000007