(57)【特許請求の範囲】
【請求項１】
複数の制御サーバに接続される複数の被制御サーバに対し、前記複数の制御サーバが所定の処理を実行する分散サーバ制御方法であって、
前記複数の制御サーバは、記憶手段に接続されていて、
前記複数の制御サーバの各々は、
前記記憶手段に格納されている、前記被制御サーバを特定するための特定情報及び処理内容が含まれる処理情報と処理情報読み出しログとを読み出し、
前記記憶手段から前記処理情報を読み出した際に、前記記憶手段に前記処理情報読み出しログを残し、
前記処理情報及び前記処理情報読み出しログに基づいて、読み出した前記処理情報に含まれる特定情報に対応する被制御サーバに対して、前記所定の処理を実行するか否かを決定し、
前記所定の処理を実行すると決定した場合、当該被制御サーバに対して、前記所定の処理を実行する、
分散サーバ制御方法。
【請求項２】
前記処理情報読み出しログから決定される経過時間及び所定の時間に基づいて、前記制御サーバは、前記所定の処理を実行するか否か決定し、
前記所定の時間は、前記所定の処理に要する最大時間である、
請求項１に記載の分散サーバ制御方法。
【請求項３】
前記所定の処理を実行する前記制御サーバは、前記所定の処理の実行が正常終了した場合、前記記憶手段に終了ログを残し、
前記制御サーバは、
前記記憶手段に格納されている、前記被制御サーバを特定するための特定情報及び処理内容が含まれる処理情報と、処理情報読み出しログと、終了ログとを読み出し、
前記処理情報、前記処理情報読み出しログ及び前記終了ログに基づいて、読み出した前記処理情報に含まれる特定情報に対応する被制御サーバに対して、前記所定の処理を実行するか否かを決定する、
請求項１に記載の分散サーバ制御方法。
【請求項４】
前記所定の処理として、前記制御サーバは、前記被制御サーバの生存状態を確認する、
請求項１ないし３のいずれか１項に記載の分散サーバ制御方法。
【請求項５】
複数の制御サーバに接続される複数の被制御サーバに対し、前記複数の制御サーバが所定の処理を実行する分散サーバシステムであって、
記憶手段と、
前記記憶手段に接続された複数の制御サーバと、
前記複数の制御サーバによって、所定の処理が実行される、複数の被制御サーバと、を備え、
前記制御サーバは、
前記記憶手段に格納されている、前記被制御サーバを特定するための特定情報及び処理内容が含まれる処理情報と処理情報読み出しログとを読み出し、
前記記憶手段から前記処理情報を読み出した際に、前記記憶手段に前記処理情報読み出しログを残し、
前記処理情報及び前記処理情報読み出しログに基づいて、読み出した前記処理情報に含まれる特定情報に対応する被制御サーバに対して、前記所定の処理を実行するか否かを決定し、
前記所定の処理を実行すると決定した場合、当該被制御サーバに対して、前記所定の処理を実行する、
分散サーバシステム。
【請求項６】
前記処理情報読み出しログから決定される経過時間及び所定の時間に基づいて、前記制御サーバは、前記所定の処理を実行するか否か決定し、
前記所定の時間は、前記所定の処理に要する最大時間である、
請求項５に記載の分散サーバシステム。
【請求項７】
前記所定の処理を実行する前記制御サーバは、前記所定の処理の実行が正常終了した場合、前記記憶手段に終了ログを残し、
前記制御サーバは、
前記記憶手段に格納されている、前記被制御サーバを特定するための特定情報及び処理内容が含まれる処理情報と、処理情報読み出しログと、終了ログとを読み出し、
前記処理情報、前記処理情報読み出しログ及び前記終了ログに基づいて、読み出した前記処理情報に含まれる特定情報に対応する被制御サーバに対して、前記所定の処理を実行するか否かを決定する、
請求項５に記載の分散サーバシステム。
【請求項８】
前記所定の処理として、前記制御サーバは、前記被制御サーバの生存状態を確認する、
請求項５ないし７のいずれか１項に記載の分散サーバシステム。
【請求項９】
請求項１ないし４のいずれか１項に記載の分散サーバ制御方法を記憶手段および制御サーバに実行させるコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納した、コンピュータによって読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバによって所定の処理を効率的に実行するための制御方法、分散サーバシステム、前記方法を実行するためのコンピュータプログラムおよび当該プログラムを格納した記憶媒体に関するものである。
【０００２】
従来、高いフェイルセーフ機能を確保する必要があるサーバについては、二重化構造を有するハードウェアを準備して本番系（通常使用する機器系統）および待機系（本番系の障害時にのみ使用する機器系統）を構成し、障害時に切り替えを行ってフェイルセーフ機能を確保していた。
【０００３】
その結果、従来の構成によった場合には、待機系の機器（ホットスタンバイまたはコールドスタンバイ機器）は障害時以外は処理を行っていないので、通常時も障害時も準備したハードウェアの半分の能力で処理を行うことになり、フェイルセーフのために費用対効果はほぼ１／２になるという問題があった。また、二重化したハードウェアは一般に単体２台分よりも高価であり、一層コストパフォーマンスを低下させる原因にもなっていた。
【０００４】
一方、複数のサーバを制御する際に、一台の制御サーバから複数の被制御サーバに処理情報を送信して処理を実行させる方法も考えられる。この場合、全ての被制御サーバが正常に動作している間はもちろん問題ないが、被制御サーバのうちの１つが障害を生じた場合の処理は複雑になる。すなわち、被制御サーバの障害が発見された場合は、制御サーバから当該被制御サーバに対する処理の実行を指示しないようにして、その間に障害のある被制御サーバを交換する等の対処をすることになる。しかし、制御サーバを通常通り起動したまま、制御サーバが当該被制御サーバに対して処理の実行を指示しないようにすることは一般に容易でなく、通常はそのために制御サーバを一時的に停止させ、結果的にシステム全体を停止することが必要になる。
【０００５】
しかし、制御サーバを一時的であれ停止させることは、間断なく処理を行うことが要求される多くのサーバーシステムにとっては大きな問題である。また、被管理サーバを追加するような場合にも、管理サーバの選択肢に新たなサーバを追加するためには管理サーバを一時停止させること等が必要になる。したがって、上記のような従来のサーバ構成では障害時および機器構成の変更・追加に柔軟に対応することが困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、従来技術が有する上記の問題を解決することを目的としたものであって、より具体的には、複数のサーバによって所定の処理を行う分散サーバ制御のための方法であって、サーバの障害時にもシステム全体を停止させる必要がなく、サーバの追加・削減等の構成の変更に対しても無停止で柔軟に対応でき、かつ構成全体を安価に実現できる分散サーバ制御方法および同システム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明は、処理情報を格納した記憶手段と、該記憶手段に接続された複数のサーバとを備え、
各サーバに、前記記憶手段に格納された処理情報を読み出させて、これに基づき必要な処理を実行させる分散サーバ制御方法を提案する。
【０００８】
本明細書に於いて処理情報とは、サーバが所定の処理を実行するために必要な情報であって、例えば、当該サーバが他のコンピュータを管理するための管理サーバであれば、被管理コンピュータの特定情報、管理すべき内容等である。記憶手段とは、サーバによって読み出し可能な形態で必要な情報を記録または記憶する手段であればその形態を問わない。例えば、磁気ディスク、光磁気ディスク、メモリーチップ等である。記憶手段は、サーバからのアクセスを処理し、必要に応じてログを残すために必要な演算ユニットを具備するのが望ましい。
【０００９】
本発明においてサーバとは所定のデータ処理を行うコンピュータを総称する意味で用いており、当該コンピュータの呼称（例えば、サーバ、コンピュータ、クライアント）にはよらない。
【００１０】
各サーバからの処理情報の読み出しは、処理情報を格納した記憶手段あるいは別途設けた管理サーバからの指示に起因して行うのではなく、ここのサーバ自体の独立した処理の結果として行うのが好ましい。例えば、サーバによる処理情報の読み出しは、前の処理が終了し次第、前の処理が終了して所定の時間が経過した際、所定の時間間隔で、あるいは所定の時刻表に従って行うことができる。
【００１１】
複数のサーバが複数の被管理コンピュータを管理しているような場合であっても、特定のサーバのみが特定の被管理コンピュータを管理可能なように構成するのではなく、どのサーバも全ての被管理コンピュータを管理可能に構成して、サーバは互いに代替可能に構成しておくのが好ましい。
【００１２】
サーバが記憶手段から処理情報を読み出した際には、記憶手段に処理情報読み出しログを残しておくのが好ましい。このことによって、サーバが処理情報を読み出した際、最後に読み出しが行われたのはいつかを判断することができ、現時点で処理を実行すべきか否かの決定に用いることができる。その際の判断基準は例えば、最終読み出し時刻から所定の時間以上が経過していることを条件に前記必要な処理の実行を開始することであってもよい。
【発明を実施するための最良の形態】
【００１３】
以下に、実施例に基づき本発明を実施するための形態について記載する。以下に記載する実施例は本発明の理解を助けるために記載するものであって、本発明が以下に記載する実施例に限定されることを意味するものではないことは言うまでも無い。
【実施例】
【００１４】
図１は、従来技術に基づく現用系サーバと待機系サーバの切り替えを示す概念図である。通常は現用系のみが処理を行っているが、現用系に支障が生じた場合は待機系に切り替わる。つまり、通常時および障害時を通じて現用系サーバと待機系サーバのうちの何れか一方は休止しているので、設備効率が低い。
【００１５】
図２は、本発明に基づく分散サーバシステムの概念を示す図である。複数の監視サーバ１０１、１０２、１０３が処理情報（監視情報）を格納した記憶手段２００に接続されている。記憶手段２００は、それ自体サーバであってもよい。複数の監視サーバ１０１、１０２、１０３は全体として被管理（被監視）コンピュータ３０１ａ、３０１ｂ、３０１ｃ、３０１ｄを管理（監視）する。ここで、各監視サーバ１０１、１０２、１０３は、それぞれ独自に単独で被管理（被監視）コンピュータ３０１ａ、３０１ｂ、３０１ｃ、３０１ｄの何れをも管理可能なように構成されている。被管理（被監視）コンピュータはサーバと称しても本来支障はないが、監視サーバとの混同を避けるためにあえて用語を分けたものである。
【００１６】
各監視サーバ１０１、１０２、１０３は、それぞれ独自に、記憶手段２００から処理情報（監視情報）を読み出し、当該情報に基づいて被管理（被監視）コンピュータ３０１ａ、３０１ｂ、３０１ｃ、３０１ｄのいずれかを管理するプログラムを実行する。監視サーバは、記憶手段から処理情報を読み出した際は、読み出しの事実を示す読み出しログを残し、管理プログラムを正しく終了した際は管理終了ログを残す（処理情報には対象となる被監視コンピュータの特定情報が含まれる）。このようにしておくことによって、記憶手段から処理情報を読み出した監視サーバは、ログに基づいて、最後に管理が実行されてからもっとも長い時間が経過している被監視コンピュータを決定し、当該被監視コンピュータに対して管理プログラムを実行することができる。
【００１７】
例えば監視サーバ１０１が被管理コンピュータ３０１ａの管理プログラムを実行して、その結果をａという見出しをつけて記憶手段に記憶させる。また、監視サーバ１０２は被管理コンピュータ３０１ｃについて管理プログラムを実行して、その結果をｃという見出しをつけて記憶手段に記憶させる。その結果には管理プログラムの実行を終了した時刻を含めるのが好ましい。ここでは、監視サーバ１０１が被管理コンピュータ３０１ａを監視すると記載したが、被管理コンピュータ３０１ａは監視サーバ１０２または１０３によって監視されることもできるし、監視サーバ１０１は被管理コンピュータ３０１ａ〜３０１ｄのいずれをも管理できる。図２は４台の被管理コンピュータに対して８つの管理終了ログを残す場合の例を示した。これは例えば、各被管理コンピュータについて最新の二つの管理ログを残す場合である。所定時間での監視情報を事前にツール等で作成しても良いし、繰り返して読むように１重としても良い。
【００１８】
あるいは記憶手段には処理情報の読み出しログのみを残すようにしてもよい。この場合は、最も長い間処理情報の読み出しが行われていない被監視コンピュータについて管理プログラムを実行することができる。その際、管理プログラムの実行に必要な最大時間よりも大きな打ち切り時間を予め設定しておき、最後の処理情報読み出しからの経過時間が打ち切り時間よりも短ければ、まだ管理プログラムの実行中である可能性があると考えて当該被監視コンピュータについては未だ管理プログラムを実行しないように構成すれば、同一の被監視コンピュータに対して２つの管理プログラムが平行して実行されることを排除できる。２つの管理プログラムが相互に干渉しないものであれば、同時に実行されることを許してもよい。
【００１９】
上記のように構成された本発明に基づく分散サーバシステムにおいて、仮に監視サーバ１０１に障害が発生した場合、何らの対策が採られなかったとしても残るサーバ１０２、１０３によって、サーバ全体としての処理能力（主に処理速度）が１台分低下することを除いて、本来と違いの無い処理が実行される。それは、サーバ１０２、１０３が順次処理情報（監視情報）を読み取り、当該情報に従って被監視コンピュータ３０１ａ〜３０１ｄの監視を実行するからである。したがって、障害の発生したサーバ１０１をネットワークから解除して他のサーバと交換するか修理後に復旧させるとしても、その間、他のサーバおよび記憶手段２００は通常通り動作したままでよい。被監視コンピュータの数が増加した場合など、監視サーバの増設を行う際も、新しい監視サーバを適宜ネットワークに接続するだけでよい点は、障害対策の場合と同じである。
【００２０】
図３は、サーバによって監視を行う場合の監視項目の例である。丸付きの１から８で各監視内容の概要を示す。監視サーバはそれぞれ対象となる被監視コンピュータに対して記載のコマンドを実行して正常な応答の有無を確認する。
【００２１】
図４は、図３では丸付きの１で示したＰｉｎｇ監視を例にとって、具体的な監視項目の内容を説明したものである。監視方法としては、監視サーバから被監視コンピュータに対してＰｉｎｇコマンドを送信して、被監視コンピュータから所定時間内に正常なレスポンスがあったか否かによって被監視サーバが正常に動作しているか否かを監視するものである。
【００２２】
図５は、どの監視サーバがどの被監視コンピュータの監視プログラムを実行するかについて説明するための図面である。記憶手段には処理情報（監視情報）として、Ｐｉｎｇ監視の結果が順次累積記憶されている。たとえば被監視コンピュータ１〜３に関するＰｉｎｇ監視結果であるＰｉｎｇ１〜Ｐｉｎｇ３が記憶されており、最新の結果がＰｉｎｇ２その前の結果がＰｉｎｇ１であるとすると、最も長時間Ｐｉｎｇ監視が行われていないコンピュータ（つまり次にＰｉｎｇ監視すべきコンピュータ）はコンピュータ３であることが分かる。一方、この時どのサーバが記憶手段からＰｉｎｇ監視結果を読み出すかは予め決められていない。例えば、各サーバが前の処理を終了した時点で記憶手段にアクセスして処理情報を読み出すように設定されているからである。
【００２３】
図５は図２に示した監視情報をＰｉｎｇを例に説明したものである。図５では被監視コンピュータが１〜３までの３台なので、各監視コンピュータのＰｉｎｇ監視情報をＰｉｎｇ１〜Ｐｉｎｇ３と表現している。監視情報には監視済みであるか、未監視であるかを表す情報が含まれる。監視済みとは例えば、監視情報が書き込まれてからまだ所定の時間が経過していない状態をいう。未監視とは例えば、最後の監視を実行した後、所定の時間が経過した場合である。
【００２４】
図６は、監視情報データベースに記載される項目を例示したものである。項目には、監視する情報の種類と内容を示す情報、監視が完了しているか監視中であるかを示す情報（監視処理中状況項目）、監視を行った日時を示す情報、監視サーバのグループ名などが含まれる。監視を行った日時は監視の正常終了ごとに上書きを行い、監視処理中状況は監視の開始によって１を、終了で０を書き込むことによって、最後に正常な監視が行われたのはいつか、現在監視中であるか否かが把握できる。
【００２５】
以上はサーバによって被監視コンピュータを監視する場合を例にとって本発明を説明したが、本発明を適用するサーバは監視サーバに限られず、本発明の技術思想は、複数のサーバが互いに互換性のある機能を有する場合に広く適用可能であることは自明である。
【図面の簡単な説明】
【００２６】
【図１】従来技術に基づいてフェイルセーフ機能を実現する構成を示す概念図
【図２】本発明の一実施例によるフェイルセーフ機能を示す概念図
【図３】本発明に基づく監視項目の例
【図４】本発明に基づく監視操作コマンドの例
【図５】本発明に基づいて、どの監視サーバがどの被監視コンピュータの監視プログラムを実行するかについて説明するための図
【図６】本発明に基づいて監視情報データベースに記載される項目の例
【図１】
0005227637.tif 000002
【図２】
0005227637.tif 000003
【図３】
0005227637.tif 000004
【図４】
0005227637.tif 000005
【図５】
0005227637.tif 000006
【図６】
0005227637.tif 000007