(57)【要約】【課題】待機系ノードから現用系ノードに移行するかの判定に用いられる情報を、待機系ノード間で一致させるフェイルオーバー方法、そのシステム、ノード及びプログラムを提供すること。【解決手段】本発明は、各待機系ノードは、現用系ノードの障害を検出すると、現用系ノードの障害検出後のある時点における自身の待機系ノードの情報を他の待機系ノードに送信し、自身の待機系ノードの情報と他の待機系ノードの情報とを取得し、取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定するフェイルオーバー方法である。【選択図】図１
2010212807.tif 000002
【特許請求の範囲】
【請求項１】
現用系ノードと少なくとも２以上の待機系ノードとを備えるフェイルオーバーシステムを制御する方法であって、
待機系ノードのそれぞれは、
現用系ノードが現用系ノードとして機能していないことを検出すると、前記現用系ノードの検出後のある時点における自身の待機系ノードの情報を他の待機系ノードに送信し、
前記他の待機系ノードの情報を取得し、
自身の待機系ノードの情報と前記取得した他の待機系ノードの情報とを用いて、待機系ノードから現用系ノードに移行するかを判定する
フェイルオーバー方法。
【請求項２】
待機系ノードのそれぞれは、前記判定した結果を、他の待機系ノードに送信しない請求項１に記載のフェイルオーバー方法。
【請求項３】
各待機系ノードは、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードへの移行を判定する判定アルゴリズムを持ち、前記判定アルゴリズムは各待機系ノードで同一である
請求項１又は請求項２に記載のフェイルオーバー方法。
【請求項４】
前記待機系ノードのそれぞれは、自身の待機系ノードの情報として、同一の情報を他の待機系ノードに送信する
請求項１から請求項３のいずれかに記載のフェイルオーバー方法。
【請求項５】
各待機系ノードは、現用系ノードとして機能していないことの検出後、前記自身の待機系ノードの情報を他の待機系ノードに一度送信する請求項１から請求項４のいずれかに記載のフェイルオーバー方法。
【請求項６】
各待機系は、
現用系ノードとして機能していないことを検出した現用系ノードを識別する識別情報を前記自身の待機系ノードの情報に付加して送信し、
同じ識別情報を持つ待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する
請求項１から請求項５のいずれかに記載のフェイルオーバー方法。
【請求項７】
前記待機系ノードの情報は、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報の少なくとも一つである請求項１から請求項６のいずれかに記載のフェイルオーバー方法。
【請求項８】
少なくとも１以上の現用系ノードと、少なくとも２以上の待機系ノードとを有し、
前記待機系ノードのそれぞれは、
前記少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出手段と、
前記検出手段の現用系ノードの検出後のある時点における自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信手段と、
前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定手段と
を有する
フェイルオーバーシステム。
【請求項９】
待機系ノードのそれぞれは、前記判定した結果を、他の待機系ノードに送信しない請求項８に記載のフェイルオーバーシステム。
【請求項１０】
前記判定手段は、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードへの移行を判定する判定アルゴリズムを有し、前記判定アルゴリズムは各待機系ノードで同一である
請求項８又は請求項９に記載のフェイルオーバーシステム。
【請求項１１】
前記待機系ノード情報送信手段は、自身の待機系ノードの情報として、同一の情報を他の待機系ノードに送信する請求項８から請求項１０のいずれかに記載のフェイルオーバーシステム。
【請求項１２】
前記待機系ノード情報送信手段は、前記検出手段の現用系ノードの検出後、自身の待機系ノードの情報を他の待機系ノードに一度送信する請求項８から請求項１１のいずれかに記載のフェイルオーバーシステム。
【請求項１３】
前記待機系ノード情報送信手段は、現用系ノードとして機能していないことを検出した現用系ノードを識別する識別情報を、自身の待機系ノードの情報に付加して、他の待機系ノードに送信し、
前記判定手段は、同じ識別情報を持つ待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する
請求項８から請求項１２のいずれかに記載のフェイルオーバーシステム。
【請求項１４】
前記待機系ノードの情報は、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報の少なくとも一つである請求項８から請求項１３のいずれかに記載のフェイルオーバーシステム。
【請求項１５】
前記各待機系ノードは、前記待機系ノードの情報を送信する待機系ノードの情報が格納される待機系ノード情報記憶手段を有する請求項８から請求項１４のいずれかに記載のフェイルオーバーシステム。
【請求項１６】
前記待機系ノードの情報を送信する待機系ノードの情報が格納される待機系ノード情報記憶手段を有し、
前記各待機系ノードが前記待機系ノード情報記憶手段を共有する
請求項８から請求項１５のいずれかに記載のフェイルオーバーシステム。
【請求項１７】
少なくとも１以上の現用系ノードと少なくとも２以上の待機系ノードとを有するフェイルオーバーシステムにおけるノードであって、
少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出手段と、
前記検出手段の現用系ノードの検出後のある時点の自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信手段と、
前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定手段と
を有するノード。
【請求項１８】
前記ノードは、前記判定した結果を、他の待機系ノードに送信しない請求項１７に記載のノード。
【請求項１９】
前記判定手段は、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードへの移行を判定する判定アルゴリズムを有し、
前記判定アルゴリズムは各待機系ノードで同一である
請求項１７又は請求項１８に記載のノード。
【請求項２０】
前記待機系ノード情報送信手段は、自身の待機系ノードの情報として、同一の情報を他の待機系ノードに送信する請求項１７から請求項１９のいずれかに記載のノード。
【請求項２１】
前記待機系ノード情報送信手段は、前記検出手段の現用系ノードの検出後、自身の待機系ノードの情報を他の待機系ノードに一度送信する請求項１７から請求項２０のいずれかに記載のノード。
【請求項２２】
前記待機系ノード情報送信手段は、現用系ノードが現用系ノードとして機能していないことを検出した現用系ノードを識別する識別情報を、自身の待機系ノードの情報に付加して、他の待機系ノードに送信し、
前記判定手段は、同じ識別情報を持つ待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する
請求項１７から請求項２１に記載のノード。
【請求項２３】
前記待機系ノードの情報は、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報の少なくとも一つである請求項１７から請求項２２のいずれかに記載のノード。
【請求項２４】
前記待機系ノードの情報を送信する待機系ノードの情報が格納される待機系ノード情報記憶手段を有する請求項１３から請求項１７のいずれかに記載のノード。
【請求項２５】
少なくとも１以上の現用系ノードと少なくとも２以上の待機系ノードとを有するフェイルオーバーシステムにおけるノードのプログラムであって、
少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出処理と、
前記現用系ノードの検出後のある時点の自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信処理と、
前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定処理と
をノードに実行させるプログラム。
【請求項２６】
前記判定処理において、前記判定した結果を、他の待機系ノードに送信しない請求項２５に記載のプログラム。
【請求項２７】
前記判定処理は、各待機系ノードで同一である判定アルゴリズムを用いて、待機系ノードから現用系ノードに移行するかを判定する
請求項２５又は請求項２６に記載のプログラム。
【請求項２８】
前記待機系ノード情報送信処理は、自身の待機系ノードの情報として、同一の情報を他の待機系ノードに送信する請求項２５から請求項２７のいずれかに記載のプログラム。
【請求項２９】
前記待機系ノード情報送信処理は、前記現用系ノードの検出後、自身の待機系ノードの情報を他の待機系ノードに一度送信する請求項２５から請求項２８のいずれかに記載のプログラム。
【請求項３０】
前記待機系ノード情報送信処理は、現用系ノードとして機能していないことを検出した現用系ノードを識別する識別情報を、自身の待機系ノードの情報に付加して、他の待機系ノードに送信し、
前記判定処理は、同じ識別情報を持つ待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する
請求項２５から請求項２９のいずれかに記載のプログラム。
【請求項３１】
前記待機系ノードの情報は、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報の少なくとも一つである請求項２５から請求項３０のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェイルオーバー方法、そのシステム、ノード及びプログラムに関する。
【背景技術】
【０００２】
複数のノードから構成される分散計算機システムにおいて、管理対象のノードを管理するマネージャがシステム上に存在する。例えば、ノードに障害が発生した際には、該ノード上で行われている処理を他のノードに引き継ぐことができるため、高可用性を実現でき、また、例えば、複数のノードの情報をもとに、あるノードで行われている処理を他のノードに移行することにより、システム全体としての処理の効率化を図ることが可能となる。
【０００３】
しかし、運用中の現用系マネージャに障害が発生した場合、エージェントを管理することができなくなり、システム全体として処理が停止する。その際に、特定の方法によって、システムを継続させる必要がある。
【０００４】
それを実現する方法の一つとして、あらかじめ待機系マネージャを用意しておき、現用系マネージャに障害が発生した際には、待機系マネージャが障害の発生した現用系マネージャの代替として運用するフェイルオーバー方法がある。
【０００５】
例えば、現用系マネージャに移行することができる待機系マネージャが複数存在する場合、全ての待機系マネージャ間で、どの待機系マネージャを現用系として運用するかを協議し、選ばれた待機系マネージャは現用系としての運用を開始する。これにより、現用系マネージャに障害が発生した場合に、引き続きシステム全体として処理を継続させることができる。
【０００６】
また、特許文献１には、複数台で冗長化されたサーバ間で相互に監視し合い、現用系サーバの障害発生を検出した待機系サーバが自動でサーバ切替えを実施する発明が記載されている。この発明は、第１のサーバは第２のサーバを監視し、第２のサーバは第３のサーバを監視という様に、サーバ同士が互いを円環状に監視し合い、障害検知時に監視サーバが現用系サーバとなるものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２２９５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の技術は、待機系サーバは１台のサーバのみを監視する。従って、現用系サーバに障害が発生した場合、その現用系の処理を引き継ぐ待機系サーバはその現用系サーバを監視していた待機系サーバである。従って、現用系の処理を引き継いだ待機系サーバは、リソースの空き容量等の能力的な面でかならずしも適したものでない場合があった。
【０００９】
また、複数の待機系マネージャの間で協議し、現用系の処理を引き継ぐ待機系サーバを決定する場合、現用系の処理を引き継いだ待機系サーバは能力的に適した場合が多いが、複数の待機系マネージャの間で協議することは容易ではなかった。何故なら、複数の待機系マネージャの間で協議する際、待機系マネージャから現用系マネージャに移行するか否かの判定に用いられる情報が各待機系マネージャによって異なるからである。
【００１０】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は、待機系ノードから現用系ノードに移行するかの判定に用いられる情報を、待機系ノード間で一致させるフェイルオーバー方法、そのシステム、ノード及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決する本発明は、現用系ノードと少なくとも２以上の待機系ノードとを備えるフェイルオーバーシステムを制御する方法であって、待機系ノードのそれぞれは、現用系ノードが現用系ノードとして機能していないことを検出すると、前記現用系ノードの検出後のある時点における自身の待機系ノードの情報を他の待機系ノードに送信し、前記他の待機系ノードの情報を取得し、自身の待機系ノードの情報と前記取得した他の待機系ノードの情報とを用いて、待機系ノードから現用系ノードに移行するかを判定するフェイルオーバー方法である。
【００１２】
上記課題を解決する本発明は、少なくとも１以上の現用系ノードと、少なくとも２以上の待機系ノードとを有し、前記待機系ノードのそれぞれは、前記少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出手段と、前記検出手段の現用系ノードの検出後のある時点における自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信手段と、前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定手段とを有するフェイルオーバーシステムある。
【００１３】
上記課題を解決する本発明は、少なくとも１以上の現用系ノードと少なくとも２以上の待機系ノードとを有するフェイルオーバーシステムにおけるノードであって、少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出手段と、前記検出手段の現用系ノードの検出後のある時点の自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信手段と、前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定手段とを有するノードである。
【００１４】
上記課題を解決する本発明は、少なくとも１以上の現用系ノードと少なくとも２以上の待機系ノードとを有するフェイルオーバーシステムにおけるノードのプログラムであって、少なくとも１以上の現用系ノードが現用系ノードとして機能していないことを検出する検出処理と、前記現用系ノードの検出後のある時点の自身の待機系ノードの情報を他の待機系ノードに送信する待機系ノード情報送信処理と、前記自身の待機系ノードの情報と前記他の待機系ノードの情報とを取得し、前記取得した待機系ノードの情報を用いて、待機系ノードから現用系ノードに移行するかを判定する判定処理とをノードに実行させるプログラムである。
【発明の効果】
【００１５】
本発明によれば、待機系ノードから現用系ノードに移行するかの判定に用いられる情報を、待機系ノード間で一致させることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は本発明の実施の形態の概要を説明するための図である。
【図２】図２は第１の実施の形態のブロック図である。
【図３】図３は第１の実施の形態のシーケンス図である。
【図４】図４は実施例１のブロック図である。
【図５】図５は第２の実施の形態のシステムのブロック図である。
【図６】図６は第３の実施の形態のシステムのブロック図である。
【図７】図７は第３の実施の形態のシーケンス図である。
【図８】図８は実施例２のブロック図である。
【図９】図９は実施例２のシーケンス図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態の概要を説明する。
【００１８】
図１は本発明の実施の形態の概要を説明するための図である。
【００１９】
図１では、３つの待機系ノード１，２，３を示しており、各待機系ノード１，２，３は判定アルゴリズム４を有している。この判定アルゴリズム４は、３つの待機系ノード１，２，３の待機系ノードの情報に基づいて、自身が待機系ノードから現用系ノードに移行するかを判定するアルゴリズムである。
【００２０】
各待機系ノード１，２，３は、現用系ノードの障害を検出すると、現用系ノードの障害検出後のある時点の自身の待機系ノードの情報を他の待機系ノードに送信する。そして、各待機系ノード１，２，３は、他の待機系ノードに送信した自身の待機系ノードの情報と、他の待機系ノードの情報と、これらの情報と判定アルゴリズム４とに基づいて、自身が待機系から現用系に移行するかを判定する。尚、現用系ノードの障害は、現用系ノード自身の障害のみならず、現用系ノード以外の回線等の障害により、現用系ノードとして機能していない場合も含むが、以下の説明では、これらを総称して現用系ノードの障害と記載する。
【００２１】
ここで、自身の待機系ノードの情報を送信する際の現用系ノードの障害検出後のある時点であるが、ひとつの現用系ノードの障害検出に対して、同じ待機系ノードから時間的に異なる複数の待機系ノードの情報が送信されることを排除する趣旨である。何故なら、時間的に異なる複数の待機系ノードの情報が送信されると、全待機系ノードが同じ情報で移行の判定を行えなくなるからである。例えば、待機系ノード１が、時間ｔ１における自身の待機系ノードの情報と、時間ｔ２における自身の待機系ノードの情報とを送信してしまうと、待機系ノード２が時間ｔ１における待機系ノード１の情報を用い、待機系ノード３が時間ｔ２における待機系ノード１の情報を用いてしまう可能性がある。この場合、全待機系ノードで同じ情報を用いて判定することはできない。
【００２２】
このような状態を防ぐ具体的な方法としては、現用系ノードの障害を検出すると、その検出後に一度だけ、自身の待機系ノードの情報を他の待機系ノードに送信する。このようにすれば、ひとつの現用系ノードの障害検出に対して、現用系ノードの障害検出後のある時点の待機系ノードの情報となり、全待機系ノードが同じ情報で移行の判定を行うことができる。但し、ある時点の同じ待機系ノードの情報を複数回送信するのはかまわない。いずれの情報を用いても、同じ情報であるからである。また、障害が検出された現用系ノードを識別する識別情報を待機系ノードの情報に付加して送信するようにすれば、複数の現用系ノードの障害が発生した場合でも、どの現用系ノードの障害に対する待機系ノードの情報なのかが識別できる。
【００２３】
また、待機系ノードの情報とは、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報等であるが、これに限定されない。
【００２４】
更に、判定に用いられる判定アルゴリズム４は、各待機系ノード１，２，３において同じものが好ましい。判定アルゴリズム４が同じであり、判定アルゴリズム４が用いる待機系ノードの情報が共通であれば、各待機系ノード１，２，３の判定結果が同じになるからである。
【００２５】
このような構成により、各待機系ノードから現用系ノードに移行するか否かの判定する為の情報を、全ての待機系ノードの間で一致させることができる。そして、その判定結果は全ての待機系ノードの間で同一となるので、待機系ノードのそれぞれは、判定した結果を、他の待機系ノードに送信する必要がない。但し、本発明は、待機系ノードのそれぞれが、判定結果を他の待機系ノードに送信することを除外するものではなく、送信してもかまわない。
【００２６】
以下、具体的な実施の形態を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図２を参照すると、本発明の第１の実施の形態は、フェイルオーバー方法が実現されるシステムは二つの待機系のマネージャ（ノード）１００，１０１を有する。
【００２７】
マネージャ１００は、待機系リスト記憶部１１０と、情報取得部１２０と、配付部１３０と、集約部１４０と、障害検知部１５０とを含む。
【００２８】
マネージャ１０１は、待機系リスト記憶部１１１と、情報取得部１２１と、配付部１３１と、集約部１４１と、障害検知部１５１とを含む。
【００２９】
これらの装置はそれぞれ概略次のように動作する。
【００３０】
障害検知部１５０は、現用系マネージャの障害を検知した際、配付部１３０にその旨を通知する。配付部１３０は、現用系マネージャの障害を通知されると、待機系リスト記憶部１１０から全ての待機系マネージャの一覧を取得し、情報取得部１２０から自身の待機系マネージャの情報を取得し、この情報を一度だけ各待機系マネージャ内の集約部１４０及び集約部１４１に送信する。
【００３１】
同様に、障害検知部１５１は、現用系マネージャの障害を検知した際、配付部１３１にその旨を通知する。配付部１３１は、現用系マネージャの障害を通知されると、待機系リスト記憶部１１１から全ての待機系マネージャの一覧を取得し、情報取得部１２１から自身の待機系マネージャの情報を取得し、この情報を一度だけ各待機系マネージャ内の集約部１４０及び集約部１４１に送信する。
【００３２】
ここで、待機系ノードの情報は、ＣＰＵの稼働率、リソースの空き容量、故障率、データの送信又は受信に用いられる帯域の情報等であるが、これに限定されない。
【００３３】
集約部１４０は、自待機系マネージャが待機系から現用系に移行するかを判定するアルゴリズム１４０１を有する。尚、このアルゴリズム１４００は、待機系のマネージャ１００，１０１において同一の判定アルゴリズムであるが、判定アルゴリズムの種類は特に問わない。そして、集約部１４０は、各待機系マネージャ内の配付部１３０及び１３１から受信した各待機系マネージャの情報を集約し、集約した情報をデータとして判定アルゴリズム１４００により、自身が現用系マネージャに移行するか否かを判定する。
【００３４】
同様に、集約部１４１は、自待機系マネージャが待機系から現用系に移行するかを判定するアルゴリズム１４０１を有する。尚、このアルゴリズム１４０１は、待機系のマネージャ１００，１０１において同一の判定アルゴリズムであるが、判定アルゴリズムの種類は特に問わない。そして、集約部１４１は、各待機系マネージャ内の配付部１３０及び１３１から受信した各待機系マネージャの情報を集約し、集約した情報をデータとして判定アルゴリズム１４０１により、自身が現用系マネージャに移行するか否かを判定する。
【００３５】
次に、図２及び図３のシーケンス図を参照して本実施の形態の全体の動作について詳細に説明する。
【００３６】
まず、現用系マネージャに障害が発生すると、マネージャ１００の障害検知部１５０が障害を検知し（Ｓ２１０）、障害検知部１５０は配付部１３０に通知する。同様に、現用系マネージャに障害が発生すると、マネージャ１０１の障害検知部１５１が障害を検知し（Ｓ２１１）し、障害検知部１５１は配付部１３１に通知する。
【００３７】
次に、配付部１３０は、待機系リスト記憶部１１０から全ての待機系マネージャの一覧（本例では、マネージャ１００及び１０１）を取得し（Ｓ２２０）、情報取得部１２０からマネージャ１００の情報を取得する（Ｓ２３０）。そして、配付部１３０は、全マネージャの集約部（本例では、集約部１４０及び１４１）に自身の情報を送信する（Ｓ２４０）。同様に、配付部１３１は、待機系リスト記憶部１１１から全ての待機系マネージャの一覧（本例では、マネージャ１００及び１０１）を取得し（Ｓ２２１）、情報取得部１２１からマネージャ１０１の情報を取得する（Ｓ２３１）。そして、配付部１３１は、全マネージャの集約部（本例では、集約部１４０及び１４１）に自身の情報を送信する（Ｓ２４１）。
【００３８】
最後に、集約部１４０は、全マネージャの配付部（本例では、配付部１３０及び１３１）からの情報を集約し（Ｓ２５０）、自身が現用系に移行するか否かを判定する（Ｓ２６０）。同様に、集約部１４１は、全マネージャの配付部（本例では、配付部１３０及び１３１）からの情報を集約し（Ｓ２５１）、自身が現用系に移行するか否かを判定する（Ｓ２６１）。
【００３９】
尚、待機系リスト記憶部１１０及び１１１から全待機系リストを取得する方法（Ｓ２２０及びＳ２２１）、情報取得部１２０及び１２１が持つ情報の具体的内容（Ｓ２３０及びＳ２３１）、配付部１３０及び１３１から集約部１４０及び１４１への通信方法（Ｓ２４０及びＳ２４１）、集約部１４０及び１４１が行う現用系への移行判定の具体的方法（Ｓ２６０及び２６１）は、本発明の趣旨を逸脱しない範囲で適時変更ができる。
【００４０】
このように、本実施の形態では、全ての集約部において現用系への移行判定に用いる情報が同一である。従って、複数の待機系マネージャの中から現用系に移行するマネージャを自律的に選択することができる。
【実施例１】
【００４１】
次に、第１の実施の形態に対応する実施例１を説明する。
【００４２】
実施例１のシステムは、図４に示すように、コンピュータネットワーク４００と、その構成要素であるノード４１０〜４１２，４１９と、各ノード上で動作する４個のマネージャ４２０〜４２２，４２９と、各マネージャが保持している、４個の待機系リスト記憶部４３０〜４３２，４３９と、４個の情報取得部４４０〜４４２，４４９と、４個の配付部４５０〜４５２，４５９と、４個の集約部４６０〜４６２，４６９とを含む。
【００４３】
上述のようなシステムにおいて、ノード４１９上のマネージャ４２９が現用系として動作し、その他のノード４１０〜４１２上のマネージャ４２０〜４２２が待機系として動作している際に、ノード４１９がコンピュータネットワーク４００から切断された場合を説明する。
【００４４】
まず、各々の配付部４５０〜４５２は、各々の待機系リスト記憶部４３０〜４３２より全ての待機系マネージャの一覧であるマネージャ４２０〜４２２を取得し、各々の情報取得部４４０〜４４２より自身の情報を取得し、集約部４６０〜４６２に自身の情報を送信する。
【００４５】
次に、各々の集約部４６０〜４６２は、待機系リスト記憶部４３０〜４３２の全てから受け取ったマネージャ４２０〜４２２の情報を集約し、自身が現用系マネージャに移行するか否かを判定する。
【００４６】
マネージャ４２０〜４２２の情報を集約した結果として、現用系マネージャに移行すべきマネージャが、例えばマネージャ４２１であるとすると、集約部４６０〜４６２の各々はマネージャ４２１が現用系に移行すると判定し、マネージャ４２１は現用系に移行し、マネージャ４２０及び４２２は現用系に移行せず待機系のまま動作を続行する。
【００４７】
従来の方法においては、全てのマネージャにおいて、現用系に移行するか否かを判定するために保持しているマネージャ４２０〜４２２の情報を一致させることができなかったが、本実施例においてはそれが実現できるため、個々のマネージャが現用系に移行するか否かの判定を行うことができる。
【００４８】
尚、上述した実施例１では、配付部４５０〜４５２は、待機系リスト記憶部４３０〜４３２より全ての待機系マネージャの一覧であるマネージャ４２０〜４２２を取得し、集約部４６０〜４６２に情報を送信しているが、現用系マネージャであるマネージャ４２９の集約部４６９にも送信しても良い。また、現用系マネージャであるマネージャ４２９は、他の待機系マネージャ４２０〜４２２と同様な動作を行っても良い。
【００４９】
実施例１の他の例を説明する。
【００５０】
上述した実施例において、マネージャ４２０〜４２２の情報を集約した結果として、現用系マネージャに移行すべきマネージャが例えばマネージャ４２１及び４２２であるとすると、集約手段４６０〜４６２の各々はマネージャ４２１及び４２２が現用系に移行すると判定し、マネージャ４２１及び４２２は現用系に移行し、マネージャ４２０は現用系に移行せず待機系のまま動作を続行する。
【００５１】
実施例１の更に他の例を説明する。
【００５２】
上述した実施例において、マネージャ４２０〜４２２の情報を集約した結果として、現用系マネージャに移行すべきマネージャが例えば存在しないとすると、集約手段４６０〜４６２の各々は現用系に移行するマネージャはないと判定し、マネージャ４２０〜４２２は現用系に移行せず待機系のまま動作を続行する。
＜第２の実施の形態＞
本発明の第２の実施の形態について図面を参照して詳細に説明する。図５は、第２の実施の形態のシステムのブロック図である。
【００５３】
第２の実施の形態のシステムは、二つの待機系のマネージャ２００，２０１と待機系リスト記憶部３１０とを有する。
【００５４】
マネージャ２００は、情報取得部２２０と、配付部２３０と、集約部２４０と、障害検知部２５０とを含む。
【００５５】
マネージャ２０１は、情報取得部２２１と、配付部２３１と、集約部２４１と、障害検知部２５１とを含む。
【００５６】
第２の実施の形態が第１の実施の形態と異なるところは、各マネージャが全ての待機系マネージャの一覧を記憶する待機系リスト記憶部を持たず、各マネージャが共有する待機系リスト記憶部２１０を備える点である。他の部分は、第１の実施の形態と同様なものなので、詳細な説明を省略する。
【００５７】
これらの装置はそれぞれ概略次のように動作する。
【００５８】
マネージャ２００の障害検知部２５０は、現用系マネージャの障害を検知した際、配付部２３０にその旨を通知する。配付部２３０は待機系リスト記憶部２１０から全ての待機系マネージャの一覧を取得し、情報取得部２２０から自身の情報を取得し、各待機系マネージャ内の集約部２４０及び２４１に取得した自身の情報を送信する。
【００５９】
同様に、マネージャ２０１の障害検知部２５１は、現用系マネージャの障害を検知した際、配付部２３１にその旨を通知する。配付部２３１は待機系リスト記憶部２１０から全ての待機系マネージャの一覧を取得し、情報取得部２２１から自身の情報を取得し、各待機系マネージャ内の集約部２４０及び２４１に取得した自身の情報を送信する。
【００６０】
次に、集約部２４０は、各待機系マネージャ内の配付部２３０及び２３１から受信した各待機系マネージャの情報を集約し、判定アルゴリズムにより、自身が現用系マネージャに移行するか否かを判定する。
【００６１】
同様に、集約部２４１は、各待機系マネージャ内の配付部２３０及び２３１から受信した各待機系マネージャの情報を集約し、判定アルゴリズムにより、自身が現用系マネージャに移行するか否かを判定する。
【００６２】
第２の実施の形態では、各マネージャが待機系リスト記憶部を持たず、各マネージャが共有する待機系リスト記憶部２１０から全ての待機系マネージャの一覧を取得するように構成されている。従って、マネージャの一覧等の更新を待機系リスト記憶部２１０についてだけ行うだけでよい。
＜第３の実施の形態＞
本発明の第３の実施の形態について図面を参照して詳細に説明する。図６は第３の実施の形態のシステムのブロック図である。
【００６３】
図５を参照すると、本発明の第３の実施の形態におけるフェイルオーバーシステムは、二つの待機系のマネージャ３００，３０１を有する。
【００６４】
マネージャ３００は、待機系リスト記憶部３１０と、情報取得部３２０と、配付部３３０と、集約部３４０と、障害検知部３５０とを含む。
【００６５】
マネージャ３０１は、待機系リスト記憶部３１１と、情報取得部３２１と、配付部３３１と、集約部３４１と、障害検知部３５１とを含む。
【００６６】
第３の実施の形態が第１の実施の形態と異なる所は、障害検知部３５０，３５１が現用系マネージャの障害を検出するだけではなく、どの現用系マネージャが障害したかを識別し、この情報を各待機系マネージャの配付部３３０，３３１に送信する。そして、配付部３３０，３３１は、障害した現用系マネージャを識別する識別情報を、自身の待機系マネージャの情報に付加して集約部３４０，３４１に送信する点である。更に、各待機系マネージャの集約部３４０，３４１は、障害した現用系マネージャの識別情報が同じ待機系の情報を用いて、移行の判定を行う点が異なる。
【００６７】
このような構成にすることにより、複数の現用系マネージャがほぼ同時に障害した場合にでも、異なる現用系マネージャの障害時の待機系マネージャの情報を用いて判定することがなくなる。
【００６８】
尚、他の部分は、第１の実施の形態と同様なものなので、詳細な説明を省略する。
【００６９】
次に、図６及び図７のシーケンス図を参照して本実施の形態の全体の動作について詳細に説明する。
【００７０】
まず、現用系マネージャに障害が発生すると、マネージャ３００の障害検知部３５０が障害を検知し（Ｓ３１０）、いずれの現用系マネージャの障害を検出したかを配付部３３０に通知する。同様に、現用系マネージャに障害が発生すると、マネージャ３０１の障害検知部３５１が障害を検知し（Ｓ３１１）、いずれの現用系マネージャの障害を検出したかを配付部３３１に通知する。
【００７１】
配付手段３３０は、待機系リスト記憶部３１０から全ての待機系マネージャの一覧（マネージャ３００及び３０１）を取得し、情報取得部３２０からマネージャ３００の情報を取得し、マネージャ３００の情報に障害した現用系マネージャの識別情報を付加して全マネージャの集約部（本例では、集約部３４０及び３４１）に送信する（Ｓ３４０）。
【００７２】
同様に、配付手段３３１は、待機系リスト記憶部３１１から全ての待機系マネージャの一覧（マネージャ３００及び３０１）を取得し、情報取得部３２１からマネージャ３０１の情報を取得し、マネージャ３０１の情報に障害した現用系マネージャの識別情報を付加して全マネージャの集約部（本例では、集約部３４０及び３４１）に送信する（Ｓ３４１）。
これらのステップは、現用系マネージャの障害の検出ごとに行う。
【００７３】
最後に、集約部３４０は、全マネージャの配付部（本例では、配付部３３０及び３３１）からのマネージャの情報を集約し（Ｓ３５０）、障害が発生した現用系マネージャの識別情報が同じマネージャの情報を用いて、自身が現用系に移行するか否かを判定する（Ｓ３６０）。同様に、集約部３４１は、全マネージャの配付部（本例では、配付部３３０及び３３１）からのマネージャの情報を集約し（Ｓ３５０）、障害が発生した現用系マネージャの識別情報が同じマネージャの情報を用いて、自身が現用系に移行するか否かを判定する（Ｓ３６０）。
【００７４】
このように、複数の現用系マネージャがほぼ同時に障害した場合には、各待機系マネージャの情報取得部は、障害が発生した現用系マネージャの数だけ自身の待機系マネージャの情報を取得し、配付部はそれらの情報に障害が発生した現用系マネージャを識別する識別情報を付加して送信する。各待機系マネージャの集約部は、識別情報毎、すなわち、障害が発生した現用系マネージャの数だけ移行判定を行う。このような構成にすることにより、どの現用系マネージャが障害した時点での待機系マネージャの情報に関する情報であるかを判別することができ、全ての集約部において、複数回行われる各移行判定においても、判定に用いる情報は同一となる。
【実施例２】
【００７５】
実施例２として、図８のブロック図、図９のシーケンス図を利用して説明する。本例は、複数の現用系のマネージャがほぼ同時に障害した場合の動作の例を示す。
【００７６】
図５に示すような、コンピュータネットワーク５００と、その構成要素である５個のノード５１０〜５１２，５１８，５１９と、各前記ノード上で動作する５個のマネージャ５２０〜５２２，５２８，５２９と、各前記マネージャが保持している５個の待機系リスト記憶部５３０〜５３２，５３８，５３９と、５個の情報取得部５４０〜５４２，５４８，５４９と、５個の配付部５５０〜５５２，５５８，５５９と、５個の集約部５６０〜５６２，５６８，５６９と、５個の障害検知部５７０〜５７２，５７８，５７９を含むシステムについて、ノード５１８およびノード５１９上のマネージャ５２８および５２９が現用系として動作し、ノード５１０〜５１２上の各マネージャ５２０〜５２２が待機系として動作している際に、ノード５１８およびノード５１９がコンピュータネットワーク５００から切断された場合の動作の形態を説明する。
【００７７】
まず、各々の障害検知部５７０〜５７２は、ノード５１８の障害を検知し、配付部５５０〜５５２に通知する（Ｓ６１０〜Ｓ６１２）。
【００７８】
配付部５５０〜５５２は、障害検知部５７０〜５７２からの通知を受けて、各々の待機系リスト記憶部５３０〜５３２より全ての待機系マネージャの一覧であるマネージャ５２０〜５２２を取得し（Ｓ６２０〜Ｓ６２２）、各々の情報取得部５４０〜５４２より自身の情報を取得する（Ｓ６３０〜Ｓ６３２）。そして、ノード５１８の識別情報を付加して全ての集約部５６０〜５６２に自身の情報を送信する（Ｓ６４０〜Ｓ６４２）。
【００７９】
また、各々の障害検知部５７０〜５７２は、ノード５１９の障害を検知し、配付部５５０〜５５２に通知する（Ｓ６１３〜Ｓ６１５）。
【００８０】
配付部５５０〜５５２は、障害検知部５７０〜５７２からの通知を受けて、各々の待機系リスト記憶部５３０〜５３２より全ての待機系マネージャの一覧であるマネージャ５２０〜５２２を取得し（Ｓ６２３〜Ｓ６２５）、各々の情報取得部５４０〜５４２より自身の情報を取得する（Ｓ６３３〜Ｓ６３５）。そして、ノード５１９の識別情報を付加して全ての集約部５６０〜５６２に自身の情報を送信する（Ｓ６４３〜Ｓ６４５）。
【００８１】
次に、各々の集約部５６０〜５６２は、配付部５５０〜５５２から受信した情報を集約する（Ｓ６５０〜Ｓ６５２）。
【００８２】
続いて、集約部５６０〜５６２は、障害した現用系マネージャの識別情報が同じ情報を用いて判定を行う（Ｓ６６０〜Ｓ６６２）。例えば、集約部５６０は、各配付部５５０〜５５２からそれぞれ２回ずつ情報を受け取り、それら計６個の情報は、現用系マネージャ５２８の障害に関するものと現用系マネージャ５２９の障害とに関するものである。そこで、３個の現用系マネージャ５２８の障害に関する情報を用いて、現用系マネージャ５２８に関する移行の判定を行い、３個の現用系マネージャ５２９の障害に関する情報を用いて、現用系マネージャ５２９に関する移行の判定を行う。各集約部５６０〜５６２が、例えば、現用系マネージャ５２８，５２９それぞれの障害の結果として現用系に移行すべき待機系マネージャがそれぞれ５２１，５２２であると判断した場合、待機系マネージャ５２１および５２２は双方とも現用系に移行し、待機系マネージャ５２０は現用系に移行せず待機系のまま動作を続行する。
【産業上の利用可能性】
【００８３】
複数のノードから構成される分散計算機システムであって、システム内に存在するマネージャによってそれらのノードが管理されているシステムに対して本発明を利用することができる。
【符号の説明】
【００８４】
１００，１０１      マネージャ
１１０，１１１      待機系リスト記憶部
１２０，１２１      情報取得部
１３０，１３１      配付部
１４０，１４１      集約部
１５０，１５１      障害検知部
【図１】
2010212807.tif 000003
【図２】
2010212807.tif 000004
【図３】
2010212807.tif 000005
【図４】
2010212807.tif 000006
【図５】
2010212807.tif 000007
【図６】
2010212807.tif 000008
【図７】
2010212807.tif 000009
【図８】
2010212807.tif 000010
【図９】
2010212807.tif 000011