(57)【要約】【課題】サーバ間の引き継ぎ動作後に、クライアントが引き継ぎ先のサーバと直ちに通信できるようにする。【解決手段】障害が発生したサーバからサービスを引き継ぐ引き継ぎ先のサーバは、仮想サーバ名（特定コンピュータ名）を引き継ぐと共に、ネームサーバのデータベースに登録されている、仮想サーバ名と障害発生サーバのネットワークアドレスとの対応を示す情報を、仮想サーバ名と引き継ぎ先サーバのネットワークアドレスとの対応を示す情報に更新させる（ステップＳ１，Ｓ２）。引き継ぎ先サーバはまた、仮想サーバ名の引き継ぎ時に、ネームサーバのデータベースに登録されているクライアントを探し、そのクライアントに対して、名前キャッシュテーブルの情報を仮想サーバ名と自身のネットワークアドレスとの対応を示す情報に更新させるためのメッセージを通知する（Ｓ３乃至Ｓ５）。【選択図】    図５
2004326667.tif 000002
【特許請求の範囲】
【請求項１】
クライアント計算機にサービスを提供する複数のサーバ計算機を備え、当該複数のサーバ計算機のうちのサービスを提供しているサーバ計算機に障害が発生した場合に、残りのいずれかのサーバ計算機が当該サービスを継続するクラスタシステムと、コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機とがネットワーク接続されたネットワークシステムにおいて適用されるコンピュータ名引き継ぎ時の名前解決方法であって、
前記クラスタシステム内でクライアント計算機にサービスを提供しているサーバ計算機に障害が発生した場合に、当該サービスを提供しているサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名を当該サービスを引き継ぐ他のサーバ計算機に引き継ぐステップと、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生したサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と当該特定コンピュータ名を引き継いだサーバ計算機のネットワークアドレスとの対応を示す情報に更新するように、当該特定コンピュータ名を引き継いだサーバ計算機から前記ネームサーバ計算機に要求するステップと、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該特定コンピュータ名と当該特定コンピュータ名を引き継いだサーバ計算機のネットワークアドレスとの対応を示す情報に更新するように、当該特定コンピュータ名を引き継いだサーバ計算機から要求するステップと
を具備することを特徴とするコンピュータ名引き継ぎ時の名前解決方法。
【請求項２】
クライアント計算機にサービスを提供する複数のサーバ計算機を備え、当該複数のサーバ計算機のうちのサービスを提供しているサーバ計算機に障害が発生した場合に、残りのいずれかのサーバ計算機が当該サービスを継続するクラスタシステムと、コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機とがネットワーク接続されたネットワークシステムにおいて適用されるコンピュータ名引き継ぎ時の名前解決方法であって、
前記クラスタシステム内でクライアント計算機にサービスを提供しているサーバ計算機に障害が発生した場合に、当該サービスを提供しているサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名を当該サービスを引き継ぐ他のサーバ計算機に引き継ぐステップと、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生したサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と当該特定コンピュータ名を引き継いだサーバ計算機のネットワークアドレスとの対応を示す情報に更新するように、当該特定コンピュータ名を引き継いだサーバ計算機から前記ネームサーバ計算機に要求するステップと、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該情報を削除するように、当該特定コンピュータ名を引き継いだサーバ計算機から要求するステップと
を具備することを特徴とするコンピュータ名引き継ぎ時の名前解決方法。
【請求項３】
前記ネームサーバ計算機の前記データベースに登録されている情報により特定される全てのクライアント計算機が、前記特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えていると、前記特定コンピュータ名を引き継いだサーバ計算機が見なすステップを更に具備することを特徴とする請求項１または請求項２記載のコンピュータ名引き継ぎ時の名前解決方法。
【請求項４】
前記ネームサーバ計算機のデータベースには、前記コンピュータ名とネットワークアドレスとの対応を示す情報に対し、当該情報で特定される計算機からの問い合わせに対して名前解決したコンピュータ名の情報が付加されており、
前記特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機が、前記データベースに登録されている情報のうち、前記名前解決したコンピュータ名の情報として前記特定コンピュータ名の情報が付加されている情報で特定されることを特徴とする請求項１または請求項２記載のコンピュータ名引き継ぎ時の名前解決方法。
【請求項５】
コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機と、クラスタサーバ計算機を含む複数のサーバ計算機とがネットワーク接続されたネットワークシステムにおけるクラスタサーバ計算機であって、
前記複数のサーバ計算機のうち前記クラスタサーバ計算機を除く他のサーバ計算機に障害が発生した結果、当該他のサーバ計算機が提供しているサービスを前記クラスタサーバ計算機自身が引き継ぐ場合に、当該他のサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名をも引き継ぐ手段と、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生した前記他のサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と自身のネットワークアドレスとを示す情報に更新するように前記ネームサーバ計算機に要求する手段と、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該特定コンピュータ名と自身のネットワークアドレスとの対応を示す情報に更新するように要求する手段と
を具備することを特徴とするクラスタサーバ計算機。
【請求項６】
コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機と、クラスタサーバ計算機を含む複数のサーバ計算機とがネットワーク接続されたネットワークシステムにおけるクラスタサーバ計算機であって、
前記複数のサーバ計算機のうち前記クラスタサーバ計算機を除く他のサーバ計算機に障害が発生した結果、当該他のサーバ計算機が提供しているサービスを前記クラスタサーバ計算機自身が引き継ぐ場合に、当該他のサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名をも引き継ぐ手段と、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生した前記他のサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と自身のネットワークアドレスとを示す情報に更新するように前記ネームサーバ計算機に要求する手段と、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該情報を削除するように要求する手段と
を具備することを特徴とするクラスタサーバ計算機。
【請求項７】
コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機と、クラスタサーバ計算機を含む複数のサーバ計算機とがネットワーク接続されたネットワークシステムにおけるクラスタサーバ計算機に、
前記複数のサーバ計算機のうち前記クラスタサーバ計算機を除く他のサーバ計算機に障害が発生した結果、当該他のサーバ計算機が提供しているサービスを前記クラスタサーバ計算機自身が引き継ぐ場合に、当該他のサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名をも引き継ぐステップと、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生した前記他のサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と前記クラスタサーバ計算機自身のネットワークアドレスとを示す情報に更新するように前記ネームサーバ計算機に要求するステップと、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該特定コンピュータ名と前記クラスタサーバ計算機自身のネットワークアドレスとの対応を示す情報に更新するように要求するステップと
を実行させるためのクラスタサービスプログラム。
【請求項８】
コンピュータ名とネットワークアドレスとの対応を示す情報を登録したデータベースに従って、コンピュータ名をネットワークアドレスに解決するネームサーバ計算機と、コンピュータ名をネットワークアドレスに解決するための前記ネームサーバ計算機に対する問い合わせに対して、当該ネームサーバ計算機により解決されたコンピュータ名とネットワークアドレスとの対応を示す情報を格納するための名前記憶手段を備えたクライアント計算機と、クラスタサーバ計算機を含む複数のサーバ計算機とがネットワーク接続されたネットワークシステムにおけるクラスタサーバ計算機に、
前記複数のサーバ計算機のうち前記クラスタサーバ計算機を除く他のサーバ計算機に障害が発生した結果、当該他のサーバ計算機が提供しているサービスを前記クラスタサーバ計算機自身が引き継ぐ場合に、当該他のサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名をも引き継ぐステップと、
前記特定コンピュータ名の引き継ぎ時に、前記ネームサーバ計算機の前記データベースに登録されている、前記特定コンピュータ名と前記障害が発生した前記他のサーバ計算機のネットワークアドレスとの対応を示す情報を、当該特定コンピュータ名と前記クラスタサーバ計算機自身のネットワークアドレスとを示す情報に更新するように前記ネームサーバ計算機に要求するステップと、
前記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアント計算機に対して、当該情報を削除するように要求するステップと
を実行させるためのクラスタサービスプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クラスタシステムを構成する複数のサーバ計算機のうちのクライアント計算機にサービスを提供しているサーバ計算機に障害が発生した結果、クラスタシステム内の残りのいずれかのサーバ計算機が当該サービスを継続すると共に、当該サービスを提供しているサーバ計算機のみに一時的に割り当てられている特定のコンピュータ名を当該サービスを引き継ぐ他のサーバ計算機に引き継ぐ場合に好適な、コンピュータ名引継ぎ時の名前解決方法、クラスタサーバ計算機及びクラスタサービスプログラムを提供することにある。
【０００２】
【従来の技術】
近年、計算機システムの可用性を高めたシステムとして、クラスタシステムが注目を集めている。このクラスタシステムでは、クライアント（クライアント計算機）に対して継続的にサービスを供給するために、サーバ（サーバ計算機）を２重化して、一方のサーバ（主系サーバ、現用機）が障害等で運用を停止した場合に、そのサーバが提供していたサービスを他方のサーバ（待機系サーバ、予備機）で引き継ぐという、サーバのクラスタリングに関する技術が適用される（例えば、特許文献１参照）。
【０００３】
特許文献１に記載された技術では、クライアント（他のシステム）に対してサービスを提供していた、ネットワークアドレス（ＩＰアドレス）がＡのサーバが障害等で運用を停止した場合、ネットワークアドレス（ＩＰアドレス）がＢのサーバから当該クライアント（他のシステム）へコネクション（制御用コネクション）接続が実行されると共に、系切り替え通知が実行される。クライアントは、この系切り替え通知を受け取ると、自身が管理する相手サーバ情報テーブル上のネットワークアドレスをＡからＢに更新する。クライアントは、この更新されたネットワークアドレスＢをもとにコネクション（データ用コネクション）を実行する。これにより、２重化されたサーバのうちの一方のサーバが提供していたサービスを他方のサーバで引き継ぐことができる。
【０００４】
【特許文献１】
特開２００１−１４４７６８号公報（段落００１３乃至段落００１５、図３及び図４）
【０００５】
【発明が解決しようとする課題】
しかしながら上記した従来技術においては、障害が発生したサーバとの間にコネクションが接続されていなかったクライアントの相手サーバ情報テーブルには、サービスを引き継いだサーバのネットワークアドレスは反映されない。このため、この種のクライアント（例えば、障害が発生したサーバのネットワークアドレスが登録された相手サーバ情報テーブルを持つクライアント）は、サービスを引き継いだサーバと接続することができない。そこで、この種のクライアントが持つ相手サーバ情報テーブルも正しく更新できるようにするためには、サーバは過去にサービスを要求した全てのクライアントを記憶していなければならない。
【０００６】
ところで、クラスタシステムにおいて、クライアントがサーバと通信しようとする際に、コンピュータ名で宛先のサーバ（サービスを要求するサーバ）を指定することがある。この場合、クライアントをサーバに実際に接続するためには、宛先のサーバのコンピュータ名を当該サーバのネットワークアドレスに解決する必要がある。そのためには、ブロードキャストを用いた問い合わせ、或いはネームサーバへの問い合わせ等が適用される。これらの通信によるネットワークの負荷を軽減するため、このように名前解決を行った結果はクライアントのローカルな名前キャッシュテーブル（名前記憶手段）に例えば一定時間保存される。そこで、名前キャッシュテーブルにエントリが残っている間は、当該キャッシュテーブルを利用して名前解決を行うのが一般的である。
【０００７】
ここで、２重化されたサーバを備えたクラスタシステムにおいて、一方のサーバに障害が発生した結果、他方のサーバがサービスを引き継ぐために、サービスを提供するサーバ計算機にのみ一時的に割り当てられるコンピュータ名（例えば仮想サーバ名と呼ばれる特定コンピュータ名）を引き継ぐ場合を考える。この時点でクライアントの名前キャッシュテーブルにサーバのコンピュータ名に対応するネットワークアドレスが存在している場合、そのネットワークアドレスは引継ぎ前のサーバのネットワークアドレスである。しかし、実際には引継ぎ後のサーバのネットワークアドレスが、サービスを要求すべきサーバの本当のアドレスである。したがって、この状態でクライアントがサーバと通信を行おうとすると、通信先のネットワークアドレスに対応するサーバが見つからないために接続に失敗してしまう。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、サーバ計算機がコンピュータ名（特定コンピュータ名）の引継ぎを行った際に、その引き継ぎをクライアント計算機に反映でき、これによりサーバ計算機間の引き継ぎ動作後に、クライアント計算機が引き継ぎ先のサーバ計算機と直ちに通信できる、コンピュータ名引き継ぎ時の名前解決方法、クラスタサーバ計算機及びクラスタサービスプログラムを提供することにある。
【０００９】
【課題を解決するための手段】
本発明の１つの観点によれば、クラスタシステム内でクライアント（クライアント計算機）にサービスを提供しているサーバ（サーバ計算機）に障害が発生した場合に、当該サービスを提供しているサーバのみに一時的に割り当てられている特定のコンピュータ名を、当該サービスを引き継ぐ他のサーバ（引き継ぎ先サーバ）に引き継ぐ、コンピュータ名引継ぎ時の名前解決方法が提供される。この方法は、上記特定コンピュータ名の引き継ぎ時に、ネームサーバ（ネームサーバ計算機）のデータベースに登録されている、上記特定コンピュータ名と障害が発生したサーバのネットワークアドレスとの対応を示す情報を、上記特定コンピュータ名と引き継ぎ先サーバのネットワークアドレスとの対応を示す情報に更新するように、当該引き継ぎ先サーバから上記ネームサーバに要求するステップと、上記特定コンピュータ名の引き継ぎ時に、当該特定コンピュータ名とネットワークアドレスとの対応を示す情報を格納した名前記憶手段を備えているクライアントに対して、当該特定コンピュータ名と引き継ぎ先サーバのネットワークアドレスとの対応を示す情報に更新するように、当該引き継ぎ先サーバから要求するステップとを備えている。
【００１０】
このように上記構成においては、クラスタシステム内のサーバ（クラスタサーバ）が特定コンピュータ名（仮想サーバ名）の引き継ぎを行った際に、当該サーバ（即ち引き継ぎ先サーバ）からネームサーバに対し、ネームサーバのデータベースに登録されている、特定コンピュータ名と障害発生サーバのネットワークアドレスとの対応を示す情報（旧情報）を、当該特定コンピュータ名と引き継ぎ先サーバのネットワークアドレスとの対応を示す情報（新情報）に更新するように要求される。また、引き継ぎ先サーバから旧情報がキャッシュされている名前記憶手段を備えたクライアントに対して、当該旧情報を上記新情報に更新するように要求される。これにより、クライアントは、自身の名前記憶手段にキャッシュされている旧情報を新情報に更新し、以後当該新情報に従い、引き継ぎ先サーバの正しいネットワークアドレスを用いて当該サーバと通信することが可能となる。つまり上記の構成においては、サーバがコンピュータ名（特定コンピュータ名）の引継ぎを行った際に、その引き継ぎをクライアントに反映でき、これによりサーバ間の引き継ぎ動作後に、クライアントは引き継ぎ先のサーバと直ちに通信できる。
【００１１】
ここで、クライアントの名前記憶手段に格納されている旧情報を新情報に更新させる代わりに、当該旧情報を削除させるようにしても構わない。この場合、旧情報が削除された名前記憶手段を有するクライアントが引き継ぎ先サーバと通信を行おうとする際には、特定コンピュータ名に対するネットワークアドレスの問い合わせがネームサーバに対して行われ、当該ネームサーバにより上記引き継ぎ先サーバの正しいネットワークアドレスに解決される。これにより、サーバ間の引き継ぎ動作後に、クライアントは引き継ぎ先のサーバと直ちに通信できる。
【００１２】
また、ネームサーバのデータベースに登録されている情報により特定される全てのクライアントを、上記旧情報をキャッシュしている名前記憶手段を備えたクライアントと見なすとよい。このようにすると、クラスタサーバ自身がクライアントに関するデータベースを所持する必要なしに上記旧情報を新情報に更新するように要求するクライアントを簡単に特定できる。この場合、上記旧情報をキャッシュしていない名前記憶手段を備えたクライアントに対しても、更新要求が通知される可能性がある。しかし、旧情報をキャッシュしていない名前記憶手段を備えたクライアントでは、その要求は無視されるため、何ら問題とならない。但し、ネットワークの負荷は増大する。
【００１３】
そこで、ネームサーバのデータベースに、コンピュータ名とネットワークアドレスとの対応を示す情報に対し、当該情報で特定される計算機からの問い合わせに対して名前解決したコンピュータ名の情報が付加される構造を適用するならば、上記旧情報（特定コンピュータ名とネットワークアドレスとの対応を示す情報）を格納した名前記憶手段を備えているクライアントを、上記データベースに登録されている情報のうち、名前解決したコンピュータ名の情報として上記特定コンピュータ名の情報が付加されている情報で確実に特定できる。このようにすると、引き継ぎ先サーバは、上記旧情報を格納した名前記憶手段を備えているクライアントだけに上記更新要求を通知できるようになり、ネットワークの負荷の増大を防ぐことができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。図１は本発明の一実施形態に係るネットワークシステムの構成を示すブロック図である。図１のネットワークシステムは、クラスタシステム１０を備えている。クラスタシステム１０は、クライアント（クライアント計算機）に対してサービスを提供する、複数、例えば２台のサーバ（クラスタサーバ計算機）１１−１，１１−２から構成される。サーバ１１−１，１１−２はネットワークセグメント１２により相互接続されている。
【００１５】
図１の状態では、サーバ１１−１，１１−２のうちのサーバ１１−１がクライアント（クライアント計算機）に対してサービスを提供する主系サーバとして動作し、サーバ１１−２はサーバ１１−１に障害が発生した場合にサーバ１１−１が提供していたサービスを引き継ぐ待機系サーバとして動作しているものとする。サーバ１１−１には、コンピュータ名“ｓｅｒｖｅｒ１”とネットワークアドレス“１９２．１６８．１．２”とが割り当てられている。一方、サーバ１１−２には、コンピュータ名“ｓｅｒｖｅｒ２”とネットワークアドレス“１９２．１６８．１．３”とが割り当てられている。また、主系のサーバ１１−１には、上記コンピュータ名“ｓｅｒｖｅｒ１”に加えて、仮想サーバ名“ｖｓｅｒｖｅｒ”が割り当てられている。仮想サーバ名“ｖｓｅｒｖｅｒ”は、サービスを提供しているサーバ（主系サーバ）のみに一時的に割り当てられる特定のコンピュータ名である。
【００１６】
サーバ１１−１及びサーバ１１−２は、クラスタサービス機構１１０−１，１１０−２を有する。クラスタサービス機構１１０−１，１１０−２は互いに通信をしながら動作して、サーバ１１−１，１１−２のクラスタリングを行う。クラスタサービス機構１１０−１，１１０−２は、サーバ１１−１，１１−２のうちクライアントにサービスを提供しているサーバに障害が発生した場合に、もう一方のサーバで当該サービス（または同様のサービス）を継続できるよう支援する機能を有する。この支援機能には、仮想サーバ名“ｖｓｅｒｖｅｒ”を引き継ぐ機能が含まれている。クラスタサービス機構１１０−１，１１０−２は、サーバ１１−１，１１−２（内の図示せぬＣＰＵ）が当該サーバ１１−１，１１−２が有する記憶装置（図示せず）に格納されているクラスタサービスプログラムを読み取って実行することにより実現される機能ブロックである。
【００１７】
図１のネットワークシステムはまた、ネームサーバ（ネームサーバ計算機）２１と、クライアント（クライアント計算機）２２とを備えている。ネームサーバ２１及びクライアント２２はいずれもネットワークセグメント１２に接続されている。なお、ネットワークセグメント１２には、クライアント２２以外の多数のクライアント（図示せず）も接続されている。このように、図１のネットワークシステムでは、ネームサーバ２１及びクライアント２２（を含む複数のクライアント）は、いずれもサーバ１１−１，１１−２が接続されているのと同一のネットワークセグメント１２に接続されている。しかし、サーバ１１−１，１１−２、ネームサーバ２１及びクライアント２２（を含む複数のクライアント）が同一のネットワークセグメントに接続されている必要はない。
【００１８】
ネームサーバ２１は、通信の際に、コンピュータ名からネットワークアドレスへの解決を支援する。そのためネームサーバ２１は、コンピュータ名とネットワークアドレスの対応を記憶したデータベース２１０を有している。ネームサーバ２１には、コンピュータ名“ｎａｍｅｓｅｒｖｅｒ”とネットワークアドレス“１９２．１６８．１．１”とが割り当てられている。図１のネットワークシステムにおいて、ネームサーバ２１が有するデータベース２１０の内容の一例を図２に示す。この図２では、仮想サーバ名“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスが“１９２．１６８．１．２”であること、つまり仮想サーバ名“ｖｓｅｒｖｅｒ”がサーバ１１−１に割り当てられていることを示している。
【００１９】
クライアント２２は、クラスタシステム１０内の主系サーバ（ここではサーバ１１−１）からサービスの提供を受ける計算機（端末）である。クライアント２２には、コンピュータ名“ｃｌｉｅｎｔ１”とネットワークアドレス“１９２．１６８．１．４”とが割り当てられている。クライアント２２は名前キャッシュテーブル２２０を有する。この名前キャッシュテーブル２２０のエントリには、クライアント２２が過去に通信した、或いは現在通信しているサーバのコンピュータ名とネットワークアドレスとの対応を示す情報が記憶される。つまり名前キャッシュテーブル２２０は、コンピュータ名とネットワークアドレスとの対応を示す情報を記憶するための記憶手段である。この名前キャッシュテーブル２２０の領域には、例えば、クライアント２２が有する記憶装置（図示せず）の一部の領域が割り当てられる。名前キャッシュテーブル２２０のエントリの情報は、例えば一定時間だけ保存される。なお、名前キャッシュテーブル２２０のエントリ（の情報）をＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）法に従って管理することも可能である。
【００２０】
クライアント２２はコンピュータ名を使ってサービスを提供するサーバ１１−ｉ（ｉは１または２）との通信を行う。この際の、コンピュータ名からネットワークアドレスの解決には、次の手順
▲１▼クライアント２２が有する名前キャッシュテーブル（つまりローカルの名前キャッシュテーブル）２２０を参照
▲２▼ネームサーバ２１への問い合わせ（▲１▼で解決できなかった場合）
が用いられる。サービスを提供するサーバ１１−ｉのコンピュータ名にはクラスタサービス機構１１０−ｉが提供する仮想サーバ名“ｖｓｅｒｖｅｒ”が使用される。
【００２１】
上記したように、クライアント２２の名前キャッシュテーブル２２０に仮想サーバ名“ｖｓｅｒｖｅｒ”とネットワークアドレスとの対応を示す情報が記憶されていない場合、当該クライアント２２は、ネームサーバ２１に対し、ネットワークセグメント１２を介して仮想サーバ名“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスの問い合わせを行う。この問い合わせに従い、ネームサーバ２１により仮想サーバ名“ｖｓｅｒｖｅｒ”が対応するネットワークアドレスに解決される。図２の例では、ネームサーバ２１のデータベース２１０には、仮想サーバ名“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスとして、サーバ１１−１のネットワークアドレス“１９２．１６８．１．２”が記憶されている。この場合、クライアント２２は、仮想サーバ名（コンピュータ名）“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスの解決結果として“１９２．１６８．１．２”を取得する。クライアント２２は、仮想サーバ名（コンピュータ名）“ｖｓｅｒｖｅｒ”とネームサーバ２１により名前解決されたネットワークアドレス“１９２．１６８．１．２”との対応を示す情報を、当該クライアント２２の名前キャッシュテーブル２２０に格納する。このときの名前キャッシュテーブル２２０の内容の一例を図３に示す。
【００２２】
次に、図１のネットワークシステムにおける仮想サーバ名の引き継ぎについて、図４の動作説明図及び図５のフローチャートを参照して説明する。まず、クラスタシステム１０内のサーバ１１−１が主系サーバとなって、クライアント２２を含む複数のクライアントにサービスを提供しているものとする。この状態で、サーバ１１−１に障害４１が発生したものとする。このサーバ１１−１で障害４１が発生したことは、クラスタシステム１０内のサーバ１１−２のクラスタサービス機構１１０−２によって認識される。
【００２３】
クラスタサービス機構１１０−２は、サーバ１１−１での障害４１の発生を認識すると、仮想サーバ名“ｖｓｅｒｖｅｒ”をコンピュータ名が“ｓｅｒｖｅｒ２”のサーバ１１−２に引き継がせることを決定する。この場合、クラスタサービス機構１１０−２は、図４において矢印４２で示すように、仮想サーバ名“ｖｓｅｒｖｅｒ”を引き継ぎ先のサーバ１１−２に追加する（図５ステップＳ１）。これにより、仮想サーバ名“ｖｓｅｒｖｅｒ”が割り当てられるサーバの実体は、コンピュータ名が“ｓｅｒｖｅｒ１”のサーバ１１−１からコンピュータ名が“ｓｅｒｖｅｒ２”のサーバ１１−２に引き継がれたことになる。この段階で、“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスはサーバ１１−１のネットワークアドレス“１９２．１６８．１．２”から、引き継ぎ先のサーバ１１−２のネットワークアドレス“１９２．１６８．１．３”に切り替わる。
【００２４】
そこでクラスタサービス機構１１０−２は、ネームサーバ２１のデータベース２１０に登録されている仮想サーバ名“ｖｓｅｒｖｅｒ”とネットワークアドレスとの対応を示す情報を、この新たな対応を示す情報、つまり仮想サーバ名“ｖｓｅｒｖｅｒ”と引き継ぎ先サーバ１１−２のネットワークアドレス“１９２．１６８．１．３”との対応を示す情報に更新するように、図４において矢印４３で示すようにネームサーバ２１に対して要求する（図５ステップＳ２）。この更新後のデータベース２１０の内容を図６に示す。
【００２５】
次にクラスタサービス機構１１０−２は、ネームサーバ２１のデータベース２１０を参照し、仮想サーバ名“ｖｓｅｒｖｅｒ”に対応付けて引き継ぎ前のサーバ１１−１のネットワークアドレス（つまり誤ったネットワークアドレス）“１９２．１６８．１．２”をキャッシュしている可能性のあるクライアントを探す（図５ステップＳ３）。このクライアントの探索は次のように行われる。まずクラスタサービス機構１１０−２は、仮想サーバ名“ｖｓｅｒｖｅｒ”及び（クラスタシステム１０を構成するサーバ１１−１，１１−２の）コンピュータ名“ｓｅｒｖｅｒ１”，“ｓｅｒｖｅｒ２”は認識できる。そこでクラスタサービス機構１１０−２は、これら“ｖｓｅｒｖｅｒ”，“ｓｅｒｖｅｒ１”，“ｓｅｒｖｅｒ２”以外のコンピュータ名をデータベース２１０から全て検索する。そしてクラスタサービス機構１１０−２は、検索できたコンピュータ名に対応付けられているネットワークアドレスを、誤ったネットワークアドレス“１９２．１６８．１．２”をキャッシュしている可能性のあるクライアントのネットワークアドレスであると判定する。つまりクラスタサービス機構１１０−２は、検索できたコンピュータ名に対応付けられているネットワークアドレスを、誤ったネットワークアドレス“１９２．１６８．１．２”をキャッシュしているクライアントのネットワークアドレスであると見なす。この例のように、データベース２１０の内容が図６の場合、コンピュータ名が“ｃｌｉｅｎｔ１”でネットワークアドレスが“１９２．１６８．１．４”のコンピュータ、つまりクライアント２２が見つけ出される。
【００２６】
クラスタサービス機構１１０−２は、目的とするクライアント（コンピュータ）を見つけ出すと、見つけ出した全てのクライアント（コンピュータ）に対して、当該クライアント（コンピュータ）が有する名前キャッシュテーブルの内容を更新させるためのメッセージ（更新要求メッセージ）を送信する（図５ステップＳ４）。この例では、図４の矢印４４で示すように、クラスタサービス機構１１０−２からクライアント２２に対して更新要求メッセージが送信される。この更新要求メッセージには、仮想サーバ名“ｖｓｅｒｖｅｒ”と引き継ぎ先サーバ１１−２のネットワークアドレス“１９２．１６８．１．３”との対応を示す情報が含まれている。
【００２７】
クライアント２２は、クラスタサービス機構１１０−２から送信された更新要求メッセージを受信すると、当該メッセージに含まれている仮想サーバ名“ｖｓｅｒｖｅｒ”が登録されているエントリが存在するかを調べ、この例のように存在するならば（図３参照）、そのエントリ中のネットワークアドレスを、当該メッセージに含まれているネットワークアドレス“１９２．１６８．１．３”に更新する（図５ステップＳ５）。この更新後の名前キャッシュテーブル２２０の内容を図７に示す。
【００２８】
このようにクライアント２２は、クラスタサービス機構１１０−２から受け取った更新要求メッセージに従い、名前キャッシュテーブル２２０の内容を正しい内容に更新する。これ以後クライアント２２は、更新された名前キャッシュテーブル２２０に仮想サーバ名“ｖｓｅｒｖｅｒ”と対応付けて登録されている正しいネットワークアドレス“１９２．１６８．１．３”を用いることにより、障害が発生したサーバ１１−１からサービスを引き継いだサーバ１１−２と通信を行うことができる。
【００２９】
［第１の変形例］
上記実施形態では、サービスを引き継ぐサーバ１１−２のクラスタサービス機構１１０−２からの更新要求メッセージにより、クライアント２２の名前キャッシュテーブル２２０の誤った内容を、正しい情報（仮想サーバ名“ｖｓｅｒｖｅｒ”と引き継ぎ先サーバ１１−２のネットワークアドレス“１９２．１６８．１．３”との対応を示す情報）に更新している。しかし、クライアント２２の名前キャッシュテーブル２２０の誤った内容（旧情報）を削除するだけでも構わない。そこで、図１のネットワークシステムにおいて、クライアント２２の名前キャッシュテーブル２２０の誤った旧情報を新情報に更新する代わりに、当該旧情報（が登録されているエントリ）を削除するようにした、上記実施形態の第１の変形例について、図８のフローチャートを参照して説明する。
【００３０】
まず、サーバ１１−１に障害が発生した場合、サーバ１１−２のクラスタサービス機構１１０−２は、図５中のステップＳ１乃至Ｓ３と同様の処理を実行する。即ちクラスタサービス機構１１０−２は、仮想サーバ名“ｖｓｅｒｖｅｒ”を引き継ぎ先のサーバ１１−２に追加してから、仮想サーバ名“ｖｓｅｒｖｅｒ”に対応付けて引き継ぎ前のサーバ１１−１のネットワークアドレス“１９２．１６８．１．２”をキャッシュしている可能性のあるクライアントを探すまでの処理（図８ステップＳ１１〜Ｓ１３）を実行する。
【００３１】
次にクラスタサービス機構１１０−２は、ステップＳ１３で目的とするクライアントを探し出すと、そのクライアント、即ちクライアント２２の名前キャッシュテーブル２２０の誤った内容（旧情報）を削除させるためのメッセージ（削除要求メッセージ）を、当該クライアント２２に送信する（図８ステップＳ１４）。この更新要求メッセージには、仮想サーバ名“ｖｓｅｒｖｅｒ”が含まれている。クライアント２２は、このクラスタサービス機構１１０−２からの削除要求メッセージを受け取ると、名前キャッシュテーブル２２中の対応するエントリ（つまり仮想サーバ名“ｖｓｅｒｖｅｒ”を含む情報が登録されているエントリ）を探し、この例のように当該エントリが存在するならば（図３参照）、当該エントリ（の情報）を、図９に示すように名前キャッシュテーブル２２０から削除する（ステップＳ１５）。
【００３２】
さて、名前キャッシュテーブル２２０から仮想サーバ名“ｖｓｅｒｖｅｒ”とネットワークアドレスとの対応を示すエントリの情報が削除されている状態で、クライアント２２が当該仮想サーバ名“ｖｓｅｒｖｅｒ”でサーバにアクセスするものとする。この場合、クライアント２２は仮想サーバ名“ｖｓｅｒｖｅｒ”に対応するネットワークアドレスをネームサーバ２１に問い合わせる。
【００３３】
ネームサーバ２１は、クライアント２２からの問い合わせに従ってデータベース２１０を参照し、仮想サーバ名“ｖｓｅｒｖｅｒ”を、サーバ１１−１からサービスを引き継いだサーバ１１−２のネットワークアドレス“１９２．１６８．１．３”に解決する。このように、クライアント２２が仮想サーバ名“ｖｓｅｒｖｅｒ”でサーバに接続しようとする際に、ネームサーバ２１に問い合わせることにより、仮想サーバ名“ｖｓｅｒｖｅｒ”は正しいネットワークアドレスに解決される。これによりクライアント２２は、障害が発生したサーバ１１−１からサービスを引き継いだサーバ１１−２と正しく通信を行うことができる。つまり、クラスタサービス機構１１０−２からクライアント２２に更新要求メッセージを送信した場合と同様の効果が得られる。また、これ以後、仮想サーバ名“ｖｓｅｒｖｅｒ”とサーバ１１−２のネットワークアドレス“１９２．１６８．１．３”との対応を示す情報が名前キャッシュテーブル２２０に登録される。
【００３４】
［第２の変形例］
上記実施形態（及び同実施形態の第１の変形例）において、クラスタサービス機構１１０−２がネームサーバ２１のデータベース２１０を参照することにより検索されるクライアントには、目的とするクライアント以外のコンピュータも含まれている可能性がある。そこで、図１のネットワークシステムにおいて、目的とするクライアント、つまり仮想サーバ名“ｖｓｅｒｖｅｒ”と障害が発生したサーバ１１−１のネットワークアドレスとの対応を示す誤った情報が登録された名前キャッシュテーブルを有するクライアントを特定できるようにした、上記実施形態の第２の変形例について説明する。
【００３５】
この第２の変形例では、ネームサーバ２１に、図２のデータ構造のデータベース２１０に代えて、図１０に示すデータ構造のデータベース２１０’が保持される。このデータベース２１０’の特徴は、コンピュータ名とネットワークアドレスとの対応を示す情報に対して、当該情報で特定されるコンピュータからのコンピュータ名によるアクセスで対応するネットワークアドレスに名前解決した際の、当該コンピュータ名の情報が付加されている点にある。
【００３６】
図１０のデータベース２１０’の例では、コンピュータ名が“ｃｌｉｅｎｔ１”でネットワークアドレスが“１９２．１６８．１．４”のコンピュータ（即ちクライアント２２）からの仮想サーバ名（コンピュータ名）“ｖｓｅｒｖｅｒ”によるアクセス（仮想サーバ名“ｖｓｅｒｖｅｒ”に対する名前解決の問い合わせ）に対して名前解決したことが示されている。したがって、クラスタサービス機構１１０−２は、データベース２１０’内のエントリのうち、名前解決したコンピュータ名が“ｖｓｅｒｖｅｒ”のエントリだけを検索すればよい。
【００３７】
この場合、仮想サーバ名“ｖｓｅｒｖｅｒ”と障害が発生したサーバ１１−１のネットワークアドレスとの対応を示す誤った情報が格納された名前キャッシュテーブルを有するクライアントだけを検索できる。つまり、名前キャッシュテーブル内エントリの更新を要求する更新要求メッセージ、または名前キャッシュテーブル内エントリの削除を要求する削除要求メッセージを送信すべきクライアントだけを検索できる。これにより、更新要求メッセージまたは削除要求メッセージを送信すべきクライアントを限定することができ、ネットワークの負荷を軽減できる。
【００３８】
図１０に示したデータベース２１０’の例では、コンピュータ名が“ｃｌｉｅｎｔ１”のコンピュータ（つまりクライアント２２）が過去にネームサーバ２１に問い合わせを行ってコンピュータ名“ｖｓｅｒｖｅｒ”をネットワークアドレスに解決したことが示されている。この状態で、サーバ１１−２のクラスタサービス機構１１０−２がサービスの引き継ぎ処理を行った場合、コンピュータ名が“ｃｌｉｅｎｔ１”のコンピュータ（クライアント２２）だけが、仮想サーバ名“ｖｓｅｒｖｅｒ”と障害が発生したサーバ１１−１のネットワークアドレスとの対応を示す誤った情報が格納された名前キャッシュテーブルを有するクライアントとして検索される。したがって、コンピュータ名が“ｃｌｉｅｎｔ１”のコンピュータ（クライアント２２）に対してのみ、名前キャッシュテーブル内エントリの更新要求メッセージまたは削除要求メッセージが送信される。つまり、他のコンピュータ、例えばコンピュータ名が“ｃｌｉｅｎｔ２”のコンピュータ（クライアント）に対しては、当該メッセージは送信されない。これにより、上記実施形態または上記第１の変形例に比べて、更新要求メッセージまたは削除要求メッセージの送信に伴うネットワーク負荷を軽減できる。
【００３９】
なお、本発明は、上記実施形態及び変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態及び変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００４０】
【発明の効果】
以上詳述したように本発明によれば、サーバ計算機がコンピュータ名（特定コンピュータ名）の引継ぎを行った際に、その引き継ぎをクライアント計算機に直接または間接に反映できるため、サーバ計算機間の引き継ぎ動作後に、クライアント計算機が引き継ぎ先のサーバ計算機と直ちに通信できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るネットワークシステムの構成を示すブロック図。
【図２】図１中のネームサーバ２１が有するデータベース２１０の内容の一例を示す図。
【図３】図１中のクライアント２２が有する名前キャッシュテーブル２２０の内容の一例を示す図。
【図４】同実施形態における仮想サーバ名の引き継ぎ動作を説明するための図。
【図５】同実施形態で適用される仮想サーバ名の引き継ぎ手順を示すフローチャート。
【図６】図５中のステップＳ２の実行後におけるデータベース２１０の内容例を示す図。
【図７】図５中のステップＳ５の実行後における名前キャッシュテーブル２２０の内容例を示す図。
【図８】同実施形態の第１の変形例で適用される仮想サーバ名の引き継ぎ手順を示すフローチャート。
【図９】同第１の変形例における名前キャッシュテーブル２２０内エントリの削除を説明するための図。
【図１０】同実施形態の第２の変形例で適用されるデータベース２１０’のデータ構造例を示す図。
【符号の説明】
１０…クラスタシステム、１１−１，１１−２…サーバ（サーバ計算機）、１２…ネットワークセグメント、２１…ネームサーバ（ネームサーバ計算機）、２２…クライアント（クライアント計算機）、１１０−１，１１０−２…クラスタサービス機構、２１０，２１０’…データベース、２２０…名前キャッシュテーブル（名前記憶手段）。
【図１】
2004326667.tif 000003
【図２】
2004326667.tif 000004
【図３】
2004326667.tif 000005
【図４】
2004326667.tif 000006
【図５】
2004326667.tif 000007
【図６】
2004326667.tif 000008
【図７】
2004326667.tif 000009
【図８】
2004326667.tif 000010
【図９】
2004326667.tif 000011
【図１０】
2004326667.tif 000012