情報処理装置、動作制御方法およびプログラム
【課題】冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現した情報処理装置を提供する。
【解決手段】実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。
【解決手段】実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置に好適な動作制御技術に関する。
【背景技術】
【0002】
耐故障性を高めるため、または、負荷分散を図るために、複数の情報処理装置を疎結合して冗長構成を構築することが広く行われている。インターネットを介して各種サービスを提供するサーバ機能は、冗長構成で構築することがもはや一般的となっている。
【0003】
そして、この冗長構成については、例えば異常発生箇所を速やかに特定するための機構など、様々な仕組みがこれまでも提案されている。
【0004】
なお、近年のパブリックネットワークでの技術として、クラウド技術が存在する。クラウドでは、サーバの冗長構成だけではなく、サーバシステムで提供するサービスを構成するデータベース等のアプリケーション層を含む冗長構成技術が提案されている。クラウドで実現されている冗長構成技術としては、「コンシステントハッシング」、「分散ハッシュテーブル(DHT)」などがある。
【0005】
コンシステントハッシングは、複数のサーバで構成されるデータベースを維持するために、データの配置とサーバの増加(または入れ替え)とを実現する手法である。整数値を取るIDを生成するハッシュ関数を使用した空間を設定する。ID空間は、使用するハッシュ関数により2**128−1(MD5)や2**160−1(SHA−1)の規模である。格納したいデータのキーから当該ハッシュ関数によりハッシュ値を求め、そのハッシュ値の範囲を担当するサーバにデータを送信する。サーバを追加した場合、このハッシュ値の担当範囲を分割または再配置する。
【0006】
分散ハッシュテーブルを用いた実装としては、「Windows(登録商標)AzureTable」が製品化されている。「Windows(登録商標)AzureTable」では、前述したコンシステントハッシングのアルゴリズムを使用して、入力されたデータのキーからハッシュ値を求め、データを管理するサービスインスタンス(サーバ上のソフトウェア)にデータを送信する。
【0007】
サービスインスタンスは、受信したデータを格納するが、このとき隣接するサービスインスタンスにデータの複製を送信する。これにより、3つのサービスインスタンスでデータを保持することになる。隣接するサービスインスタンスは、プライマリでデータを管理するサービスインスタンスが消滅(サーバ障害、メンテナンスなどで停止)した場合、代替サーバとして動作することになる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平8−95931号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、専用サーバ機種ではないパーソナルコンピュータ(PC)等でサーバ機能の冗長構成を構築する場合、従来のサーバ機種の管理ソフトウェアのように24時間運用が必ずしも必須要件ではないことが多い。また、環境への配慮のため、PCの電源設定状態により、電源断、ハイバネーション、スリープなどのPC機能の停止または制限運用状態への対応が必要である。
【0010】
また、複数台のPCで構成を組む場合、従来方式のサーバ監視方式で相互間監視を実施するとなると、組み合わせ数が膨大になる虞があり(nC2の組み合わせ)、また、特定の管理サーバで管理を集中する場合、管理サーバでの問題が発生すると代替サーバに切り替える必要があるが、この代替サーバを柔軟に設定することは難しかった。
【0011】
本発明は、このような事情を考慮してなされたものであり、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現した情報処理装置、動作制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。
【図面の簡単な説明】
【0013】
【図1】実施形態の情報処理装置の概略的なハードウェア構成を示す図。
【図2】実施形態の情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図。
【図3】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ作成時の各ノードの動作原理を説明するための概念図。
【図4】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークID要求のメッセージフォーマットの一例を示す図。
【図5】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークID応答/ユニークID更新のメッセージフォーマットの一例を示す図。
【図6】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるライフメッセージのメッセージフォーマットの一例を示す図。
【図7】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへのノード追加時の各ノードの動作原理を説明するための概念図。
【図8】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループからのノード脱退時の各ノードの動作原理を説明するための概念図。
【図9】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられる脱退メッセージのメッセージフォーマットの一例を示す図。
【図10】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理を説明するための概念図。
【図11】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第1の概念図。
【図12】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第2の概念図。
【図13】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ノードの開始処理手順を示すタイミングチャート。
【図14】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における参加ノードの開始処理手順を示すタイミングチャート。
【図15】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへの参加ノードの追加処理手順を示すタイミングチャート。
【図16】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における代替管理ノードの処理手順を示すタイミングチャート。
【発明を実施するための形態】
【0014】
以下、実施の形態について図面を参照して説明する。
【0015】
図1は、実施形態の情報処理装置の概略的なハードウェア構成を示す図である。
【0016】
図1に示すように、本情報処理装置は、プロセッサ1、主メモリ2、外部記憶装置3、入力装置4、表示装置5および通信装置6を有している。
【0017】
プロセッサ1は、外部記憶装置3から主メモリ2にロードされる各種プログラムを実行することによって本情報処理装置内の各部の動作を制御する処理装置である。主メモリ2は、プロセッサ1によって実行される各種プログラムや当該各種プログラムによって入出力される各種データを一時的に記憶する記憶装置である。外部記憶装置3は、主メモリ2の補助装置として各種プログラムおよび各種データを大量かつ恒久的に記憶する記憶装置である。
【0018】
入力装置4は、本情報処理装置が提供するユーザインタフェースのインプット側を司る装置である。表示装置5は、本情報処理装置が提供するユーザインタフェースのアウトプット側を司る装置である。そして、通信装置5は、ネットワークを介して他の情報処理装置との間で実行されるデータ通信を制御する装置である。
【0019】
以上のようなハードウェア構成を持つ本情報処理装置は、ネットワークを介して他の情報処理装置(クライアント)に各種サービスを提供するサーバとして動作することが可能である。そこで、本情報処理装置は、ネットワークを介して接続される他の情報処理装置とサーバ機能の冗長構成を構築するにあたって、この冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現したものであり、以下、この点について詳述する。
【0020】
図2は、本情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図である。
【0021】
本情報処理装置の冗長構成の運用機能は、管理ループ運用プログラム10によって実現される。なお、この管理ループ運用プログラム10は、冗長構成を構築する情報処理装置の追加・削除等の運用機能を実現するものであって、複数の情報処理装置間での負荷分散制御等は既知の手法で別途司られているものとしてここでは考慮しない。また、ネットワークプロトコル20は、管理ループ運用プログラム10を含む各種ソフトウェアがハードウェアである通信装置6を用いて他の情報処理装置上の各種ソフトウェアとの間でネットワークを介したデータ通信を行うために設けられるプログラムである。OS(Operating system)/ドライバ30は、本情報処理装置のリソース管理やハードウェア制御を行うためのプログラムである。これら管理ループ運用プログラム10、ネットワークプロトコル20およびOS/ドライバ30のいずれも、外部記憶装置3から主メモリ2にロードされてプロセッサ1によって実行されることによって機能する。
【0022】
図2に示すように、管理ループ運用プログラム10は、ノード管理機能モジュール11、参加ノード機能モジュール12、管理ノード機能モジュール13、ライフメッセージ管理機能モジュール14、ユニークIDメッセージ管理機能モジュール15、メッセージ送受信機能モジュール16およびユーザインタフェース機能モジュール17の処理部と、収集ノード一覧テーブル18のデータ部とを有している。
【0023】
本情報処理装置が他の情報処理装置と構築する冗長構成では、当該冗長構成を構築する情報処理装置間でライフメッセージを巡回させる。ライフメッセージは、冗長構成を構築する複数の情報処理装置の中のいずれかの情報処理装置に異常が発生した場合に、この異常を(異常を発生させた情報処理装置以外の)他の情報処理装置が検出するために巡回させるメッセージである。このライフメッセージの巡回ルートを、ここでは、管理ループと称する。また、冗長構成を構築する情報処理装置であって、この管理ループ上でライフメッセージの送受信を実行する情報処理装置を、ここではノードと称する。ノードは、管理ループの管理を司るマスタの役割を担う1つの管理ノードと、管理ノード(マスタ)の配下で管理ループにスレーブとして参加するその他の参加ノードとに大別される。管理ループ運用プログラム10は、本情報処理装置を管理ノードまたは参加ノードのいずれとしても動作させることができるソフトウェアである。以下、管理ノードとして動作する情報処理装置を単に管理ノード、参加ノードとして動作する情報処理装置を単に参加ノードと称することがある。
【0024】
参加ノード機能モジュール12は、本情報処理装置を参加ノードとして動作させるためのモジュールである。また、管理ノード機能モジュール13は、本情報処理装置を管理ノードとして動作させるためのモジュールである。そして、ノード管理機能モジュール11は、参加ノード機能モジュール12または管理ノード機能モジュール13のいずれを稼働させるか、即ち、本情報処理装置を管理ノードまたは参加ノードのいずれとして動作させるかを決定するモジュールである。
【0025】
管理ループ運用プログラム10が起動した際における初期動作として、ノード管理機能モジュール11は、本情報処理装置を参加ノードとして動作させるべく参加ノード機能モジュール12を稼働させるための設定を実施する。また、この初期動作時に、管理者等により管理ノードとして動作すべき指示が入力された場合には、ノード管理機能モジュール11は、本情報処理装置を管理ノードとして動作させるべく管理ノード機能モジュール13を稼働させるための設定を実施する。ユーザインタフェース機能モジュール17は、管理者等に対して情報の受け渡しのための仕組みを提供するモジュールである。
【0026】
さらに、ノード管理機能モジュール11は、本情報処理装置が参加ノードとして動作を開始した後、管理ノードとして動作する他の情報処理装置がその動作を停止した場合、代替管理ノードへの移行を決断して、参加ノード機能モジュール12の稼働状態から管理ノード機能モジュール13の稼働状態へと移行するための設定を実施する。
【0027】
管理ノード機能モジュール13は、管理ループの作成および管理を実行する。本情報処理装置が管理ノードとして動作している場合、管理ノード機能モジュール13は、他の情報処理装置から送信されてくるユニークID要求によって、管理ループに参加ノードとして参加する当該他の情報処理装置を認識する。ユニークIDは、各ノードが自分の参加する管理ループを識別するための識別情報である。
【0028】
管理ノード機能モジュール13は、このユニークID要求に対してユニークID応答を返信し、当該他の情報処理装置を参加ノードとして管理ループに追加する。ユニークIDメッセージ管理機能モジュール15は、このユニークID要求やユニークID応答、後述する管理ループからの脱退メッセージなどを作成するモジュールであり、メッセージ送受信機能モジュール16は、このユニークID要求やユニークID応答、後述する管理ループからの脱退メッセージなどの、管理ノードおよび参加ノード間におけるメッセージの送受信を実行するモジュールである。
【0029】
管理ノード機能モジュール13は、例えば、本情報処理装置が管理ノードとして動作を開始した後、他の情報処理装置から最初にユニークID要求を受けた時、当該他の情報処理装置との間で管理ループを作成するためのユニークIDを発番し、このユニークIDをユニークID応答として返信する。また、この管理ループの作成後にさらに別の情報処理装置からユニークID要求を受けた場合には、管理ノード機能モジュール13は、作成済みの管理ループへの参加が要求されたと判断する。この参加ノードの追加時、管理ノード機能モジュール13は、当該管理ループ用のユニークIDを再発番して更新し、すべての参加ノードにユニークID応答として送信する。
【0030】
また、参加ノードの追加時、管理ノード機能モジュール13は、収集ノード一覧テーブル18を更新する。収集ノード一覧テーブル18は、管理ループ上の参加ノードに関する情報を保持するテーブルである。収集ノード一覧テーブル18に保持される情報は、ライフメッセージの生成に用いられる。ライフメッセージ管理機能モジュール14は、ライフメッセージの作成および送信を実行するモジュールであり、本情報処理装置が管理ノードとして動作している時、管理ノード機能モジュール13は、予め定められた期間毎に、ライフメッセージ管理機能モジュールに対し、ライフメッセージの作成および送信の実行を指示する。管理ノード機能モジュール13は、参加ノードを巡回してライフメッセージ管理機能モジュールによって回収されたライフメッセージを参照して、参加ノードの動作状況を確認する。
【0031】
ライフメッセージが回収されなかった場合、管理ノード機能モジュール13は、いずれかの参加ノードが停止したと判断して、(停止した参加ノード以外の)その他の参加ノードとの間で新たな管理ループを再作成する。そのために、管理ノード機能モジュール13は、(停止した参加ノード以外の)その他の参加ノードからのユニークID要求の送信を待機する。ユニークID要求を受信したら、管理ノード機能モジュール13は、再作成する管理ループ用のユニークIDを改めて発番して、このユニークIDをユニークID応答として返信する。また、この時、管理ノード機能モジュール13は、収集ノード一覧テーブル18の更新も実行する。これにより、管理ループの再作成および再作成された管理ループでのライフメッセージの巡回が実現される。
【0032】
参加ノード機能モジュール12は、管理ループへの参加処理を実行する。管理ループ運用プログラム10が起動して本情報処理装置が参加ノードとして動作を開始した時、参加ノード機能モジュール12は、参加ノードとして管理ループに参加するべく前述のユニークID要求をブロードキャスト送信する。参加ノード機能モジュール12は、管理ノードから前述のユニークID応答が返信されたか否かによって管理ループへの参加可否を判断する。また、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14によるライフメッセージの送受信状況から自ノードが管理ループへ正しく参加できたことを確認する。
【0033】
ライフメッセージには、ユニークIDのほか、管理ノードによってその巡回順位が記録されており、参加ノードとして管理ループに加わった後、参加ノード機能モジュール12は、この巡回順位に従って、ライフメッセージ管理機能モジュール14を介してライフメッセージの送受信を実行する。この時、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14によって送受信されるライフメッセージに、自ノードによる当該ライフメッセージの受信状況を記録する。
【0034】
また、参加ノードとして管理ループに加わった後、ライフメッセージが予め定められた期間を越えて受信されない時、または、ライフメッセージの送信が失敗した時、参加ノード機能モジュール12は、いずれかの参加ノードが停止したと判断して、管理ノードによって再作成されるであろう管理ループに加わるためのユニークID要求の送信を管理ノードに対して実行する。このユニークID要求に対して、ユニークID応答として新たなユニークIDが返信されてきたら、前述の手順で参加ノードとしての動作を再開する。
【0035】
もし、ユニークID応答が返信されなかった場合、参加ノード機能モジュール12は、管理ノードが停止したと判断する。この場合、参加ノード機能モジュール12は、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。
【0036】
自ノードでなかった場合、参加ノード機能モジュール12は、代替管理ノードとなるべき他ノードにユニークID要求を送信する。その後は、参加ノードとしての動作を再開する。一方、自ノードであった場合には、参加ノード機能モジュール12は、代替管理ノードへの移行指示をノード管理機能モジュール11に通知する。この通知を受けたノード管理機能モジュール11は、参加ノード機能モジュール12の稼働状態から管理ノード機能モジュール13の稼働状態へと本情報処理装置を移行させるための設定を実施する。この場合、他ノードからユニークID要求が送られてくるので、ユニークIDの発番やユニークID応答の返信、収集ノード一覧テーブル18の更新、ライフメッセージの作成および送信など、管理ノードとして動作を再開する。
【0037】
また、参加ノード機能モジュール12は、ユニークID要求を受信すると、新たなノードが管理ループへの参加を要求していると判断し、当該新たなノードを加えた管理ループを再作成した管理ノードが送ってくるであろうユニークID応答を待機して受信する。このユニークID応答を受信すると、参加ノード機能モジュール12は、参加ノードとしての動作を再開する。
【0038】
管理ノードからの脱退は、脱退メーセージをブロードキャスト送信することによって実施する。管理ノードとして参加ノードから脱退メーセージを受けた場合、管理ノード機能モジュール13は、この参加ノードに関する情報を削除すべく収集ノード一覧テーブル18を更新し、新たなユニークIDを発番してその他の参加ノードに対してユニークID更新として送信する。これにより、脱退メッセージを送信してきた参加ノードを除いた管理ループが再作成される。
【0039】
また、参加ノードとして脱退メーセージを受けた場合、参加ノード機能モジュール12は、それが管理ノードからのものか否かを調べ、管理ノードからのものでなければ、管理ノードから送信されてくるであろうユニークID更新を待機する。一方、管理ノードからのものであった場合には、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。代替管理ノードに移行すべきノードが自ノードでなければ、代替管理ノードから送信されてくるであろうユニークID更新を待機する。
【0040】
そして、代替管理ノードに移行すべきノードが自ノードであった場合は、代替管理ノードへの移行指示をノード管理機能モジュール11に通知する。これに伴って稼働された管理ノード機能モジュール13は、最後に送受信されたライフメッセージから収集ノード一覧テーブル18を作成し、新たなユニークIDを発番してその他の参加ノードに対してユニークID更新として送信する。これにより、脱退メッセージを送信してきた管理ノードが除かれ、かつ、自ノードが代替管理ノードとなった管理ループが再作成される。
【0041】
なお、前述したように、ライフメッセージの巡回が途絶えると、いずれかのノードが停止したものと各ノードが判断し、管理ループを再作成すべく各々動作するので、脱退メーセージを用いることなく、脱退させたいノードを停止させることもできる。
【0042】
つまり、以上のような構成を持つ本情報処理装置が(同等の構成を持つ)他の情報処理装置と構築する冗長構成は、当該冗長構成を構築する複数の情報処理装置それぞれが適応的に動作することで、全体として、適切な運用機能が実現される。
【0043】
次に、図3乃至図12を参照して、本情報処理装置が他の情報処理装置と構築する冗長構成で実現される運用機能の基本原理の概要について説明する。
【0044】
まず、図3乃至図6を参照して、管理ループ作成時の各ノードの動作原理について説明する。
【0045】
ここでは、図3に示すように、ノードAが管理ノード、ノードBが参加ノードとして動作を開始したものとする。
【0046】
参加ノードとして動作を開始したノードBは、ネットワーク上に存在すると思われる管理ノードに向けてユニークID要求a1を送信する(図3の(A))。このユニークID要求は、ブロードキャストまたはマルチキャストのネットワークプロトコル(例えばTCP/IP、NetBIOS、MACなど)によって送信される。図4は、ユニークID要求のメッセージフォーマットの一例を示す図である。
【0047】
一方、管理ノードとして動作を開始したノードAは、このブロードキャストを受信すると、ライフメッセージの送信リスト、つまり収集ノード一覧テーブル18にノードBを追加し、ユニークID応答a2をブロードキャストまたはマルチキャストのネットワークプロトコルで返信する(図3の(B))。図5は、ユニークID応答/ユニークID更新のメッセージフォーマットの一例を示す図である。
【0048】
参加ノードは、ユニークID応答を受信後、ライフメッセージの受信待ちに入る。管理ノードが同一ネットワークに存在する場合、参加ノードは、最初に受信したユニークID応答に含まれるユニークIDを識別子として、対応する管理ノードから直接送信されるか参加ノード間で転送されるライフメッセージを受信待ちする。図6は、ライフメッセージのメッセージフォーマットの一例を示す図である。
【0049】
そして、参加ノードは、(ライフメッセージに含まれる)送信リストへの登録順位に従って、このライフメッセージの転送(a3)を実行する(図3の(C))。ライフメッセージを転送する際、参加ノードは、自ノード情報のシーケンス番号の更新し、前回メッセージ受信時刻からの差分時間を更新する。なお、自ノードが参加ノードとして接続直後の場合は、前回メッセージ受信時刻からの差分時間は0とする。
【0050】
一方、管理ノードは、ライフメッセージが参加ノードを一周して最後の参加ノードから返信された時間を元にライフメッセージに記載するタイムアウト値を更新し、各ノードにライフメッセージにより通知する。
【0051】
図7は、管理ループへのノード追加時の各ノードの動作原理について説明するための概念図である。
【0052】
ここでは、ノードA(管理ノード)およびノードB(参加ノード)による既存の管理ループが存在し、既にライフメッセージを交換している状態で、新規の参加要求ノード(ノードC)が現れた場合を想定する。
【0053】
参加要求ノードであるノードCは、前述のように、ユニークID要求b2をブロードキャスト(またはマルチキャスト)する(図7の(A))。このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換(b1)を停止して、管理ノードからのユニークID応答を待つ(図7の(B))。また、管理ノードは、このノードCを追加すべく送信リストを更新し、かつ、ユニークIDを更新して、すべての参加ノードにユニークID応答b3を送信する。
【0054】
管理ノードより更新後のユニークIDが含まれるユニークID応答が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信b4が再開される(図7の(C))。
【0055】
次に、図8および図9を参照して、管理ループからのノード脱退時の各ノードの動作原理について説明する。
【0056】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、1つの参加ノード(ノードC)が管理ループから脱退する場合を想定する。
【0057】
管理ループから脱退するノードCは、脱退メッセージc2をブロードキャスト(またはマルチキャスト)する(図8の(A))。図9は、ユニークID要求のメッセージフォーマットの一例を示す図である。
【0058】
このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換(c1)を停止して、管理ノードからのユニークID更新c3を待つ。また、管理ノードは、このノードCを削除すべく送信リストを更新し、かつ、ユニークIDを更新して、残りのすべての参加ノードにユニークID更新c3を送信する(図8の(B))。
【0059】
管理ノードより更新後のユニークIDが含まれるユニークID応答が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信c4が再開される(図8の(C))。
【0060】
図10は、管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【0061】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、1つの参加ノード(ノードC)からのライフメッセージ送信が停止された場合を想定する。
【0062】
管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図6に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードC自体の故障発生やネットワークの切断などによりライフメッセージd1の交換が止まった状態となると(図10の(A))、その他のすべてのノードでタイムアウトが検出されることになる。
【0063】
そうすると、すべての参加ノードが、管理ノードに対してユニークID要求d2を送信する(図10の(B))。管理ノードは、ユニークID要求を送信してきたノードからなる送信リストを再作成し、かつ、ユニークIDを更新して、当該ユニークID要求を送信してきたノードにユニークID更新d3を送信する(図10の(C))。
【0064】
管理ノードより更新後のユニークIDが含まれるユニークID更新が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信d4が再開される(図10の(D))。
【0065】
また、図11および図12は、管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【0066】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、管理ノードであるノードAからのライフメッセージ送信が停止された場合を想定する。
【0067】
前述したように、管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図6に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードA自体の故障発生やネットワークの切断などによりライフメッセージe1の交換が止まった状態となると(図11の(A))、その他のすべてのノードでタイムアウトが検出されることになる。
【0068】
そうすると、すべての参加ノードが、管理ノードに対してユニークID要求e2を送信する(図10の(B))。しかしながら、管理ノードが存在しない状態のため、今度はユニークID要求に対するユニークID応答待ち処理がタイムアウトとなる。そこで、各参加ノードは、管理ノードが停止したものと判断する。
【0069】
この場合、図6に示すライフメッセージの順位番号で上位の参加ノードが代替管理ノードに昇格する。代替管理ノードに昇格した参加ノード以外の参加ノードは、昇格した代替管理ノードに対してユニークID要求e3を改めて送信する(図12の(A))。ここでは、ノードCよりも先に管理ループに参加したノードBが代替管理ノードに昇格している例を示しているが、ライフメッセージの順位番号は、管理ループへの参加順に限定されるものではない。管理ループを作成し直す都度、管理ノードが、ライフメッセージの効率的な巡回ルートを探索し、その結果に応じて決定するようにしてもよい。
【0070】
昇格した代替管理ノードは、ユニークID要求を送信してきたノードからなる送信リストを作成し、かつ、ユニークIDを更新して、当該ユニークID要求を送信してきたノードにユニークID更新e4を送信する(図12の(B))。
【0071】
昇格した代替管理ノードより更新後のユニークIDが含まれるユニークID更新が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、昇格した代替管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信e5が再開される(図12の(C))。
【0072】
また、図13乃至図16は、本情報処理装置の冗長構成の運用機能に関わる動作手順を示すタイミングチャートである。
【0073】
まず、図13を参照して、管理ノードの開始処理の動作手順について説明する。
【0074】
管理ノードの開始処理は、ノード管理機能モジュール11によって管理ノード初期設定読込処理が実行された場合に起動する(図13のf1)。この場合、ノード管理機能モジュール11は、管理ノードを構成すべく、管理ノード機能モジュール13に対し、初期化処理の実行を指示する(図13のf2)。これにより、管理ノード機能モジュール13の制御下で、ユニークIDメッセージ管理機能モジュール15、ライフメッセージ管理機能モジュール14、メッセージ送受信機能モジュール16の初期化処理が実行されることになる(図13のf3,f4,f5)。
【0075】
この初期化処理が終了すると、管理ノード機能モジュール13が、管理ループの構成処理を開始し(図13のf6)、ユニークIDメッセージ管理機能モジュール15に対し、参加ノード情報の収集処理を指示する(図13のf7)。ユニークIDメッセージ管理機能モジュール15は、ユニークIDの収集を開始し(図13のf71)、メッセージ送受信機能モジュール16に対し、ユニークIDメッセージの受信要求を通知する(図13のf711)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図13のf7111)。
【0076】
メッセージ送受信機能モジュール16は、ユニークIDメッセージを受信すると、その旨をユニークIDメッセージ管理機能モジュール15に通知する(図13のf8)。ユニークIDメッセージ管理機能モジュール15は、管理ノード機能モジュール13に対し、参加ノードの追加を要求する(図13のf81)。管理ノード機能モジュール13は、この要求に対する返答を行い、収集ノード一覧の更新を実行する(図13のf9)。一方、管理ノード機能モジュール13からの返答を受けたユニークIDメッセージ管理機能モジュール15は、メッセージ送受信機能モジュール16に対し、ユニークID応答メッセージの送信要求を通知する(図13のf82)。これにより、メッセージ送受信機能モジュール16によるメッセージ送信処理が実行される(図13のf821)。
【0077】
また、管理ノード機能モジュール13は、ライフメッセージ処理を起動する(図13のf10)。このライフメッセージ処理において、管理ノード機能モジュール13は、収集ノード一覧に基づくライフメッセージ情報の作成処理を行い(図13のf101)、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図13のf102)。ライフメッセージ管理機能モジュール14は、ライフメッセージ処理を起動し(図13のf1021)、メッセージ送受信機能モジュール16に対し、参加ノードへのライフメッセージの送信を指示する(図13のf10211)。これにより、メッセージ送受信機能モジュール16による参加ノードへのライフメッセージの送信が実行される(図13のf102111)。
【0078】
次に、ライフメッセージ管理機能モジュール14は、メッセージ送受信機能モジュール16に対し、ライフメッセージの受信要求を通知する(図13のf11)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図13のf111)。メッセージ送受信機能モジュール16は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール14に通知する(図13のf112)。ライフメッセージ管理機能モジュール14は、ライフメッセージの確認処理を行い(図13のf1121)、問題がなければ、ライフメッセージの送信をメッセージ送受信機能モジュール16に指示する(図13のf1122)。以降、このライフメッセージの送信が繰り返される(図13のf11221,…)。
【0079】
図14は、参加ノードの開始処理手順を示すタイミングチャートである。
【0080】
参加ノードの開始処理では、まず、ノード管理機能モジュール11が、参加ノードを構成すべく、参加ノード機能モジュール12に対し、初期化処理の実行を指示する(図14のg1)。これにより、参加ノード機能モジュール12の制御下で、ユニークIDメッセージ管理機能モジュール15、ライフメッセージ管理機能モジュール14、メッセージ送受信機能モジュール16の初期化処理が実行されることになる(図14のg2,g3,g4)。
【0081】
この初期化処理が終了すると、参加ノード機能モジュール12が、管理ループへの参加処理を開始し(図14のg5)、ユニークIDメッセージ管理機能モジュール15に対し、管理ループへの参加処理を指示する(図14のg51)。ユニークIDメッセージ管理機能モジュール15は、メッセージ送受信機能モジュール16に対し、ユニークID要求メッセージの送信要求を通知する(図14のg511)。これにより、メッセージ送受信機能モジュール16によるメッセージ送信処理が実行される(図14のg5111)。
【0082】
メッセージ送受信機能モジュール16は、ユニークID応答メッセージを受信すると、その旨をユニークIDメッセージ管理機能モジュール15に通知する(図14のg6)。ユニークIDメッセージ管理機能モジュール15は、参加ノード機能モジュール12に対し、管理ループへの参加確認を指示する(図14のg61)。
【0083】
また、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図14のg7)。ライフメッセージ管理機能モジュール14は、ライフメッセージ処理を起動し(図14のg71)、メッセージ送受信機能モジュール16に対し、ライフメッセージの受信要求を通知する(図14のg711)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図14のg7111)。
【0084】
メッセージ送受信機能モジュール16は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール14に通知する(図14のg8)。ライフメッセージ管理機能モジュール14は、受信されたライフメッセージの更新処理を行い(図14のg81)、メッセージ送受信機能モジュール16に対し、更新後のライフメッセージの送信を指示する(図14のg811)。これにより、メッセージ送受信機能モジュール16によるライフメッセージの送信が実行される(図14のg8111)。
【0085】
以降、ライフメッセージ管理機能モジュール14は、このライフメッセージの送受信を繰り返す(図14のg82,…)。
【0086】
また、図15は、管理ループへの参加ノードの追加処理手順を示すタイミングチャートである。
【0087】
管理ループへの参加ノードの追加処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において(図15のh1,…,h12)、新たなノード(参加要求ノード)の参加ノード機能モジュール12が管理ループへの参加処理を開始させたことによって起動する(図15のh2)。参加要求ノードの参加ノード機能モジュール12は、ユニークIDメッセージ管理機能モジュール15に対し、管理ループへの参加処理を指示する(図15のh3)。これにより、参加要求ノードからユニークID要求メッセージがブロードキャストされる(図15のh31,h32)。
【0088】
管理ノードでは、このユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15が、管理ノード機能モジュール13に対し、参加ノード追加要求を通知する(図15のh311)。これに応答して、管理ノード機能モジュール13は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の停止を指示する(図15のh3111)。また、ユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15は、参加要求ノードに対し、ユニークID応答メッセージを送信する(図15のh312)。
【0089】
一方、参加ノードでは、ユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15が、参加ノード機能モジュール12に対し、(自ノードが実行するライフメッセージ送受信のための)管理ループ再構成処理を指示する(図15のh321)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の再初期化を指示する(図15のh3211)。この初期化後、ライフメッセージ管理機能モジュール14は、ライフメッセージの受信待ち処理に入る(図15のh32111)。
【0090】
参加要求ノードのユニークIDメッセージ管理機能モジュール15は、管理ノードからのユニークID応答メッセージを受けると、参加ノード機能モジュール12に対し、管理ループ参加確認を指示する(図15のh3121)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図15のh31211)。これにより、ライフメッセージ管理機能モジュール14は、ライフメッセージ受信待ち処理に入る(図15のh312111)。
【0091】
また、管理ノードでは、管理ノード機能モジュール13が、収集ノード一覧の更新処理を実行して(図15のh4)、ライフメッセージ処理を再開する(図15のh5)。管理ノード機能モジュール13は、更新後の収集ノード一覧に基づき、ライフメッセージ情報の作成処理を実行し(図15のh51)、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理開始を要求する(図15のh52)。これにより、ライフメッセージ管理機能モジュール14によるライフメッセージの送信が実行され(図15のh521)、以降、参加要求ノードを追加した管理ループでのライフメッセージの送受信が実行されることになる(図15のh5211,…)。
【0092】
図16は、代替管理ノードの処理手順を示すタイミングチャートである。
【0093】
代替管理ノードの処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において(図16のj1,…,j121221)、管理ノードによるライフメッセージの送信が停止したことによって起動する(図16のj2)。各参加ノードのライフメッセージ管理機能モジュール14は、ライフメッセージ受信タイムアウト処理を開始し(図16のj3,j4)、参加ノード機能モジュール12に対し、管理ノードへの送信エラー通知処理を指示する(図16のj31,j41)。これに応答して、参加ノード機能モジュール12は、ユニークIDメッセージ管理機能モジュール15に対し、ユニークID再取得処理を指示する(図16のj311,j411)。
【0094】
しかしながら、管理ノードは停止しているので、各参加ノードのユニークIDメッセージ管理機能モジュール15は、ユニークID要求送信タイムアウト処理を開始することになる(図16のj3111,j4111)。ユニークIDメッセージ管理機能モジュール15は、参加ノード機能モジュール12に対し、ユニークID取得エラーを通知する(図16のj3112,j4112)。この通知を受けた参加ノード機能モジュール12は、代替管理ノード移行判断処理を実行する(図16のj31121,j41121)。これにより、いずれか1つの参加ノードが代替管理ノードに昇格する。昇格した代替管理ノードの管理ノード機能モジュール13は、ユニークIDメッセージ管理機能モジュール15に対し、ユニークID受信処理を指示する(図16のj311211)。それ以外の参加ノードの参加ノード機能モジュール12は、ユニークID再取得処理を再度指示する(図16のj411211)。
【0095】
そうすると、ユニークID再取得処理を再度指示された参加ノードのユニークIDメッセージ管理機能モジュール15と、ユニークID受信処理を指示された代替管理ノードのユニークIDメッセージ管理機能モジュール15との間で、ユニークID要求が送受信され(図16のj5)、代替管理ノードのユニークIDメッセージ管理機能モジュール15は、管理ノード機能モジュール13に対し、管理ループへの追加を指示する(図16のj51)。
【0096】
これに応答して、代替管理ノードの管理ノード機能モジュール12は、収集ノード一覧の更新処理を実行して(図16のj511)、管理ループへの追加の完了をIDメッセージ管理機能モジュール15に回答する(図16のj512)。これを受けて、IDメッセージ管理機能モジュール15は、参加ノードのユニークIDメッセージ管理機能モジュール15に対し、ユニークID応答を送信する(図16のj5121)。
【0097】
参加ノードのユニークIDメッセージ管理機能モジュール15は、ユニークID応答を受信すると、参加ノード機能モジュール12に対し、管理ループへの参加完了を通知する(図16のj51211)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図16のj512111)。
【0098】
一方、代替管理ノードの管理ノード機能モジュール13も、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図16のj6)。これにより、新たな管理ループによるライフメッセージの送受信が開始される。
【0099】
以上のように、本情報処理装置は、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現する。
【0100】
なお、本実施形態の動作制御処理は、ソフトウェア(プログラム)によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、本実施形態と同様の効果を容易に実現することができる。
【0101】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0102】
1…プロセッサ、2…主メモリ、3…外部記憶装置、4…入力装置、5…表示装置、6…通信装置、10…管理ループ運用プログラム、11…ノード管理機能モジュール、12…参加ノード機能モジュール、13…管理ノード機能モジュール、14…ライフメッセージ管理機能モジュール、15…ユニークIDメッセージ管理機能モジュール、16…メッセージ送受信機能モジュール16、17…ユーザインタフェース機能モジュール、18…収集ノード一覧テーブル、20…ネットワークプロトコル、30…OS(Operating system)/ドライバ。
【技術分野】
【0001】
本発明の実施形態は、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置に好適な動作制御技術に関する。
【背景技術】
【0002】
耐故障性を高めるため、または、負荷分散を図るために、複数の情報処理装置を疎結合して冗長構成を構築することが広く行われている。インターネットを介して各種サービスを提供するサーバ機能は、冗長構成で構築することがもはや一般的となっている。
【0003】
そして、この冗長構成については、例えば異常発生箇所を速やかに特定するための機構など、様々な仕組みがこれまでも提案されている。
【0004】
なお、近年のパブリックネットワークでの技術として、クラウド技術が存在する。クラウドでは、サーバの冗長構成だけではなく、サーバシステムで提供するサービスを構成するデータベース等のアプリケーション層を含む冗長構成技術が提案されている。クラウドで実現されている冗長構成技術としては、「コンシステントハッシング」、「分散ハッシュテーブル(DHT)」などがある。
【0005】
コンシステントハッシングは、複数のサーバで構成されるデータベースを維持するために、データの配置とサーバの増加(または入れ替え)とを実現する手法である。整数値を取るIDを生成するハッシュ関数を使用した空間を設定する。ID空間は、使用するハッシュ関数により2**128−1(MD5)や2**160−1(SHA−1)の規模である。格納したいデータのキーから当該ハッシュ関数によりハッシュ値を求め、そのハッシュ値の範囲を担当するサーバにデータを送信する。サーバを追加した場合、このハッシュ値の担当範囲を分割または再配置する。
【0006】
分散ハッシュテーブルを用いた実装としては、「Windows(登録商標)AzureTable」が製品化されている。「Windows(登録商標)AzureTable」では、前述したコンシステントハッシングのアルゴリズムを使用して、入力されたデータのキーからハッシュ値を求め、データを管理するサービスインスタンス(サーバ上のソフトウェア)にデータを送信する。
【0007】
サービスインスタンスは、受信したデータを格納するが、このとき隣接するサービスインスタンスにデータの複製を送信する。これにより、3つのサービスインスタンスでデータを保持することになる。隣接するサービスインスタンスは、プライマリでデータを管理するサービスインスタンスが消滅(サーバ障害、メンテナンスなどで停止)した場合、代替サーバとして動作することになる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平8−95931号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、専用サーバ機種ではないパーソナルコンピュータ(PC)等でサーバ機能の冗長構成を構築する場合、従来のサーバ機種の管理ソフトウェアのように24時間運用が必ずしも必須要件ではないことが多い。また、環境への配慮のため、PCの電源設定状態により、電源断、ハイバネーション、スリープなどのPC機能の停止または制限運用状態への対応が必要である。
【0010】
また、複数台のPCで構成を組む場合、従来方式のサーバ監視方式で相互間監視を実施するとなると、組み合わせ数が膨大になる虞があり(nC2の組み合わせ)、また、特定の管理サーバで管理を集中する場合、管理サーバでの問題が発生すると代替サーバに切り替える必要があるが、この代替サーバを柔軟に設定することは難しかった。
【0011】
本発明は、このような事情を考慮してなされたものであり、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現した情報処理装置、動作制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
実施形態によれば、ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置は、前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、を具備する。
【図面の簡単な説明】
【0013】
【図1】実施形態の情報処理装置の概略的なハードウェア構成を示す図。
【図2】実施形態の情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図。
【図3】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ作成時の各ノードの動作原理を説明するための概念図。
【図4】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークID要求のメッセージフォーマットの一例を示す図。
【図5】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるユニークID応答/ユニークID更新のメッセージフォーマットの一例を示す図。
【図6】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられるライフメッセージのメッセージフォーマットの一例を示す図。
【図7】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへのノード追加時の各ノードの動作原理を説明するための概念図。
【図8】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループからのノード脱退時の各ノードの動作原理を説明するための概念図。
【図9】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成で用いられる脱退メッセージのメッセージフォーマットの一例を示す図。
【図10】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理を説明するための概念図。
【図11】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第1の概念図。
【図12】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理を説明するための第2の概念図。
【図13】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ノードの開始処理手順を示すタイミングチャート。
【図14】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における参加ノードの開始処理手順を示すタイミングチャート。
【図15】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における管理ループへの参加ノードの追加処理手順を示すタイミングチャート。
【図16】実施形態の情報処理装置が他の情報処理装置と構築する冗長構成における代替管理ノードの処理手順を示すタイミングチャート。
【発明を実施するための形態】
【0014】
以下、実施の形態について図面を参照して説明する。
【0015】
図1は、実施形態の情報処理装置の概略的なハードウェア構成を示す図である。
【0016】
図1に示すように、本情報処理装置は、プロセッサ1、主メモリ2、外部記憶装置3、入力装置4、表示装置5および通信装置6を有している。
【0017】
プロセッサ1は、外部記憶装置3から主メモリ2にロードされる各種プログラムを実行することによって本情報処理装置内の各部の動作を制御する処理装置である。主メモリ2は、プロセッサ1によって実行される各種プログラムや当該各種プログラムによって入出力される各種データを一時的に記憶する記憶装置である。外部記憶装置3は、主メモリ2の補助装置として各種プログラムおよび各種データを大量かつ恒久的に記憶する記憶装置である。
【0018】
入力装置4は、本情報処理装置が提供するユーザインタフェースのインプット側を司る装置である。表示装置5は、本情報処理装置が提供するユーザインタフェースのアウトプット側を司る装置である。そして、通信装置5は、ネットワークを介して他の情報処理装置との間で実行されるデータ通信を制御する装置である。
【0019】
以上のようなハードウェア構成を持つ本情報処理装置は、ネットワークを介して他の情報処理装置(クライアント)に各種サービスを提供するサーバとして動作することが可能である。そこで、本情報処理装置は、ネットワークを介して接続される他の情報処理装置とサーバ機能の冗長構成を構築するにあたって、この冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現したものであり、以下、この点について詳述する。
【0020】
図2は、本情報処理装置の冗長構成の運用機能に関わるソフトウェア構成を示す図である。
【0021】
本情報処理装置の冗長構成の運用機能は、管理ループ運用プログラム10によって実現される。なお、この管理ループ運用プログラム10は、冗長構成を構築する情報処理装置の追加・削除等の運用機能を実現するものであって、複数の情報処理装置間での負荷分散制御等は既知の手法で別途司られているものとしてここでは考慮しない。また、ネットワークプロトコル20は、管理ループ運用プログラム10を含む各種ソフトウェアがハードウェアである通信装置6を用いて他の情報処理装置上の各種ソフトウェアとの間でネットワークを介したデータ通信を行うために設けられるプログラムである。OS(Operating system)/ドライバ30は、本情報処理装置のリソース管理やハードウェア制御を行うためのプログラムである。これら管理ループ運用プログラム10、ネットワークプロトコル20およびOS/ドライバ30のいずれも、外部記憶装置3から主メモリ2にロードされてプロセッサ1によって実行されることによって機能する。
【0022】
図2に示すように、管理ループ運用プログラム10は、ノード管理機能モジュール11、参加ノード機能モジュール12、管理ノード機能モジュール13、ライフメッセージ管理機能モジュール14、ユニークIDメッセージ管理機能モジュール15、メッセージ送受信機能モジュール16およびユーザインタフェース機能モジュール17の処理部と、収集ノード一覧テーブル18のデータ部とを有している。
【0023】
本情報処理装置が他の情報処理装置と構築する冗長構成では、当該冗長構成を構築する情報処理装置間でライフメッセージを巡回させる。ライフメッセージは、冗長構成を構築する複数の情報処理装置の中のいずれかの情報処理装置に異常が発生した場合に、この異常を(異常を発生させた情報処理装置以外の)他の情報処理装置が検出するために巡回させるメッセージである。このライフメッセージの巡回ルートを、ここでは、管理ループと称する。また、冗長構成を構築する情報処理装置であって、この管理ループ上でライフメッセージの送受信を実行する情報処理装置を、ここではノードと称する。ノードは、管理ループの管理を司るマスタの役割を担う1つの管理ノードと、管理ノード(マスタ)の配下で管理ループにスレーブとして参加するその他の参加ノードとに大別される。管理ループ運用プログラム10は、本情報処理装置を管理ノードまたは参加ノードのいずれとしても動作させることができるソフトウェアである。以下、管理ノードとして動作する情報処理装置を単に管理ノード、参加ノードとして動作する情報処理装置を単に参加ノードと称することがある。
【0024】
参加ノード機能モジュール12は、本情報処理装置を参加ノードとして動作させるためのモジュールである。また、管理ノード機能モジュール13は、本情報処理装置を管理ノードとして動作させるためのモジュールである。そして、ノード管理機能モジュール11は、参加ノード機能モジュール12または管理ノード機能モジュール13のいずれを稼働させるか、即ち、本情報処理装置を管理ノードまたは参加ノードのいずれとして動作させるかを決定するモジュールである。
【0025】
管理ループ運用プログラム10が起動した際における初期動作として、ノード管理機能モジュール11は、本情報処理装置を参加ノードとして動作させるべく参加ノード機能モジュール12を稼働させるための設定を実施する。また、この初期動作時に、管理者等により管理ノードとして動作すべき指示が入力された場合には、ノード管理機能モジュール11は、本情報処理装置を管理ノードとして動作させるべく管理ノード機能モジュール13を稼働させるための設定を実施する。ユーザインタフェース機能モジュール17は、管理者等に対して情報の受け渡しのための仕組みを提供するモジュールである。
【0026】
さらに、ノード管理機能モジュール11は、本情報処理装置が参加ノードとして動作を開始した後、管理ノードとして動作する他の情報処理装置がその動作を停止した場合、代替管理ノードへの移行を決断して、参加ノード機能モジュール12の稼働状態から管理ノード機能モジュール13の稼働状態へと移行するための設定を実施する。
【0027】
管理ノード機能モジュール13は、管理ループの作成および管理を実行する。本情報処理装置が管理ノードとして動作している場合、管理ノード機能モジュール13は、他の情報処理装置から送信されてくるユニークID要求によって、管理ループに参加ノードとして参加する当該他の情報処理装置を認識する。ユニークIDは、各ノードが自分の参加する管理ループを識別するための識別情報である。
【0028】
管理ノード機能モジュール13は、このユニークID要求に対してユニークID応答を返信し、当該他の情報処理装置を参加ノードとして管理ループに追加する。ユニークIDメッセージ管理機能モジュール15は、このユニークID要求やユニークID応答、後述する管理ループからの脱退メッセージなどを作成するモジュールであり、メッセージ送受信機能モジュール16は、このユニークID要求やユニークID応答、後述する管理ループからの脱退メッセージなどの、管理ノードおよび参加ノード間におけるメッセージの送受信を実行するモジュールである。
【0029】
管理ノード機能モジュール13は、例えば、本情報処理装置が管理ノードとして動作を開始した後、他の情報処理装置から最初にユニークID要求を受けた時、当該他の情報処理装置との間で管理ループを作成するためのユニークIDを発番し、このユニークIDをユニークID応答として返信する。また、この管理ループの作成後にさらに別の情報処理装置からユニークID要求を受けた場合には、管理ノード機能モジュール13は、作成済みの管理ループへの参加が要求されたと判断する。この参加ノードの追加時、管理ノード機能モジュール13は、当該管理ループ用のユニークIDを再発番して更新し、すべての参加ノードにユニークID応答として送信する。
【0030】
また、参加ノードの追加時、管理ノード機能モジュール13は、収集ノード一覧テーブル18を更新する。収集ノード一覧テーブル18は、管理ループ上の参加ノードに関する情報を保持するテーブルである。収集ノード一覧テーブル18に保持される情報は、ライフメッセージの生成に用いられる。ライフメッセージ管理機能モジュール14は、ライフメッセージの作成および送信を実行するモジュールであり、本情報処理装置が管理ノードとして動作している時、管理ノード機能モジュール13は、予め定められた期間毎に、ライフメッセージ管理機能モジュールに対し、ライフメッセージの作成および送信の実行を指示する。管理ノード機能モジュール13は、参加ノードを巡回してライフメッセージ管理機能モジュールによって回収されたライフメッセージを参照して、参加ノードの動作状況を確認する。
【0031】
ライフメッセージが回収されなかった場合、管理ノード機能モジュール13は、いずれかの参加ノードが停止したと判断して、(停止した参加ノード以外の)その他の参加ノードとの間で新たな管理ループを再作成する。そのために、管理ノード機能モジュール13は、(停止した参加ノード以外の)その他の参加ノードからのユニークID要求の送信を待機する。ユニークID要求を受信したら、管理ノード機能モジュール13は、再作成する管理ループ用のユニークIDを改めて発番して、このユニークIDをユニークID応答として返信する。また、この時、管理ノード機能モジュール13は、収集ノード一覧テーブル18の更新も実行する。これにより、管理ループの再作成および再作成された管理ループでのライフメッセージの巡回が実現される。
【0032】
参加ノード機能モジュール12は、管理ループへの参加処理を実行する。管理ループ運用プログラム10が起動して本情報処理装置が参加ノードとして動作を開始した時、参加ノード機能モジュール12は、参加ノードとして管理ループに参加するべく前述のユニークID要求をブロードキャスト送信する。参加ノード機能モジュール12は、管理ノードから前述のユニークID応答が返信されたか否かによって管理ループへの参加可否を判断する。また、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14によるライフメッセージの送受信状況から自ノードが管理ループへ正しく参加できたことを確認する。
【0033】
ライフメッセージには、ユニークIDのほか、管理ノードによってその巡回順位が記録されており、参加ノードとして管理ループに加わった後、参加ノード機能モジュール12は、この巡回順位に従って、ライフメッセージ管理機能モジュール14を介してライフメッセージの送受信を実行する。この時、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14によって送受信されるライフメッセージに、自ノードによる当該ライフメッセージの受信状況を記録する。
【0034】
また、参加ノードとして管理ループに加わった後、ライフメッセージが予め定められた期間を越えて受信されない時、または、ライフメッセージの送信が失敗した時、参加ノード機能モジュール12は、いずれかの参加ノードが停止したと判断して、管理ノードによって再作成されるであろう管理ループに加わるためのユニークID要求の送信を管理ノードに対して実行する。このユニークID要求に対して、ユニークID応答として新たなユニークIDが返信されてきたら、前述の手順で参加ノードとしての動作を再開する。
【0035】
もし、ユニークID応答が返信されなかった場合、参加ノード機能モジュール12は、管理ノードが停止したと判断する。この場合、参加ノード機能モジュール12は、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。
【0036】
自ノードでなかった場合、参加ノード機能モジュール12は、代替管理ノードとなるべき他ノードにユニークID要求を送信する。その後は、参加ノードとしての動作を再開する。一方、自ノードであった場合には、参加ノード機能モジュール12は、代替管理ノードへの移行指示をノード管理機能モジュール11に通知する。この通知を受けたノード管理機能モジュール11は、参加ノード機能モジュール12の稼働状態から管理ノード機能モジュール13の稼働状態へと本情報処理装置を移行させるための設定を実施する。この場合、他ノードからユニークID要求が送られてくるので、ユニークIDの発番やユニークID応答の返信、収集ノード一覧テーブル18の更新、ライフメッセージの作成および送信など、管理ノードとして動作を再開する。
【0037】
また、参加ノード機能モジュール12は、ユニークID要求を受信すると、新たなノードが管理ループへの参加を要求していると判断し、当該新たなノードを加えた管理ループを再作成した管理ノードが送ってくるであろうユニークID応答を待機して受信する。このユニークID応答を受信すると、参加ノード機能モジュール12は、参加ノードとしての動作を再開する。
【0038】
管理ノードからの脱退は、脱退メーセージをブロードキャスト送信することによって実施する。管理ノードとして参加ノードから脱退メーセージを受けた場合、管理ノード機能モジュール13は、この参加ノードに関する情報を削除すべく収集ノード一覧テーブル18を更新し、新たなユニークIDを発番してその他の参加ノードに対してユニークID更新として送信する。これにより、脱退メッセージを送信してきた参加ノードを除いた管理ループが再作成される。
【0039】
また、参加ノードとして脱退メーセージを受けた場合、参加ノード機能モジュール12は、それが管理ノードからのものか否かを調べ、管理ノードからのものでなければ、管理ノードから送信されてくるであろうユニークID更新を待機する。一方、管理ノードからのものであった場合には、管理ループに参加する参加ノードの中で代替管理ノードに移行すべきノードを最後に送受信されたライフメッセージに記録された巡回順位に基づいて選定する。代替管理ノードに移行すべきノードが自ノードでなければ、代替管理ノードから送信されてくるであろうユニークID更新を待機する。
【0040】
そして、代替管理ノードに移行すべきノードが自ノードであった場合は、代替管理ノードへの移行指示をノード管理機能モジュール11に通知する。これに伴って稼働された管理ノード機能モジュール13は、最後に送受信されたライフメッセージから収集ノード一覧テーブル18を作成し、新たなユニークIDを発番してその他の参加ノードに対してユニークID更新として送信する。これにより、脱退メッセージを送信してきた管理ノードが除かれ、かつ、自ノードが代替管理ノードとなった管理ループが再作成される。
【0041】
なお、前述したように、ライフメッセージの巡回が途絶えると、いずれかのノードが停止したものと各ノードが判断し、管理ループを再作成すべく各々動作するので、脱退メーセージを用いることなく、脱退させたいノードを停止させることもできる。
【0042】
つまり、以上のような構成を持つ本情報処理装置が(同等の構成を持つ)他の情報処理装置と構築する冗長構成は、当該冗長構成を構築する複数の情報処理装置それぞれが適応的に動作することで、全体として、適切な運用機能が実現される。
【0043】
次に、図3乃至図12を参照して、本情報処理装置が他の情報処理装置と構築する冗長構成で実現される運用機能の基本原理の概要について説明する。
【0044】
まず、図3乃至図6を参照して、管理ループ作成時の各ノードの動作原理について説明する。
【0045】
ここでは、図3に示すように、ノードAが管理ノード、ノードBが参加ノードとして動作を開始したものとする。
【0046】
参加ノードとして動作を開始したノードBは、ネットワーク上に存在すると思われる管理ノードに向けてユニークID要求a1を送信する(図3の(A))。このユニークID要求は、ブロードキャストまたはマルチキャストのネットワークプロトコル(例えばTCP/IP、NetBIOS、MACなど)によって送信される。図4は、ユニークID要求のメッセージフォーマットの一例を示す図である。
【0047】
一方、管理ノードとして動作を開始したノードAは、このブロードキャストを受信すると、ライフメッセージの送信リスト、つまり収集ノード一覧テーブル18にノードBを追加し、ユニークID応答a2をブロードキャストまたはマルチキャストのネットワークプロトコルで返信する(図3の(B))。図5は、ユニークID応答/ユニークID更新のメッセージフォーマットの一例を示す図である。
【0048】
参加ノードは、ユニークID応答を受信後、ライフメッセージの受信待ちに入る。管理ノードが同一ネットワークに存在する場合、参加ノードは、最初に受信したユニークID応答に含まれるユニークIDを識別子として、対応する管理ノードから直接送信されるか参加ノード間で転送されるライフメッセージを受信待ちする。図6は、ライフメッセージのメッセージフォーマットの一例を示す図である。
【0049】
そして、参加ノードは、(ライフメッセージに含まれる)送信リストへの登録順位に従って、このライフメッセージの転送(a3)を実行する(図3の(C))。ライフメッセージを転送する際、参加ノードは、自ノード情報のシーケンス番号の更新し、前回メッセージ受信時刻からの差分時間を更新する。なお、自ノードが参加ノードとして接続直後の場合は、前回メッセージ受信時刻からの差分時間は0とする。
【0050】
一方、管理ノードは、ライフメッセージが参加ノードを一周して最後の参加ノードから返信された時間を元にライフメッセージに記載するタイムアウト値を更新し、各ノードにライフメッセージにより通知する。
【0051】
図7は、管理ループへのノード追加時の各ノードの動作原理について説明するための概念図である。
【0052】
ここでは、ノードA(管理ノード)およびノードB(参加ノード)による既存の管理ループが存在し、既にライフメッセージを交換している状態で、新規の参加要求ノード(ノードC)が現れた場合を想定する。
【0053】
参加要求ノードであるノードCは、前述のように、ユニークID要求b2をブロードキャスト(またはマルチキャスト)する(図7の(A))。このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換(b1)を停止して、管理ノードからのユニークID応答を待つ(図7の(B))。また、管理ノードは、このノードCを追加すべく送信リストを更新し、かつ、ユニークIDを更新して、すべての参加ノードにユニークID応答b3を送信する。
【0054】
管理ノードより更新後のユニークIDが含まれるユニークID応答が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信b4が再開される(図7の(C))。
【0055】
次に、図8および図9を参照して、管理ループからのノード脱退時の各ノードの動作原理について説明する。
【0056】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、1つの参加ノード(ノードC)が管理ループから脱退する場合を想定する。
【0057】
管理ループから脱退するノードCは、脱退メッセージc2をブロードキャスト(またはマルチキャスト)する(図8の(A))。図9は、ユニークID要求のメッセージフォーマットの一例を示す図である。
【0058】
このブロードキャストを受け取った、管理ループに参加するノードは、ライフメッセージの交換(c1)を停止して、管理ノードからのユニークID更新c3を待つ。また、管理ノードは、このノードCを削除すべく送信リストを更新し、かつ、ユニークIDを更新して、残りのすべての参加ノードにユニークID更新c3を送信する(図8の(B))。
【0059】
管理ノードより更新後のユニークIDが含まれるユニークID応答が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信c4が再開される(図8の(C))。
【0060】
図10は、管理ループ内の参加ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【0061】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、1つの参加ノード(ノードC)からのライフメッセージ送信が停止された場合を想定する。
【0062】
管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図6に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードC自体の故障発生やネットワークの切断などによりライフメッセージd1の交換が止まった状態となると(図10の(A))、その他のすべてのノードでタイムアウトが検出されることになる。
【0063】
そうすると、すべての参加ノードが、管理ノードに対してユニークID要求d2を送信する(図10の(B))。管理ノードは、ユニークID要求を送信してきたノードからなる送信リストを再作成し、かつ、ユニークIDを更新して、当該ユニークID要求を送信してきたノードにユニークID更新d3を送信する(図10の(C))。
【0064】
管理ノードより更新後のユニークIDが含まれるユニークID更新が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信d4が再開される(図10の(D))。
【0065】
また、図11および図12は、管理ループ内の管理ノードの応答が停止した時の各ノードの動作原理について説明するための概念図である。
【0066】
ここでは、ノードA(管理ノード)とノードBおよびノードC(参加ノード)とによる既存の管理ループが存在し、既にライフメッセージを交換している状態で、管理ノードであるノードAからのライフメッセージ送信が停止された場合を想定する。
【0067】
前述したように、管理ノードを含むすべてのノードは一定時間のタイムアウト値を共有しており、図6に示したライフメッセージフォーマットの「前回メッセージ受信時刻からの差分時間」から起算したタイムアウト処理の管理を各々が実施する。従って、ノードA自体の故障発生やネットワークの切断などによりライフメッセージe1の交換が止まった状態となると(図11の(A))、その他のすべてのノードでタイムアウトが検出されることになる。
【0068】
そうすると、すべての参加ノードが、管理ノードに対してユニークID要求e2を送信する(図10の(B))。しかしながら、管理ノードが存在しない状態のため、今度はユニークID要求に対するユニークID応答待ち処理がタイムアウトとなる。そこで、各参加ノードは、管理ノードが停止したものと判断する。
【0069】
この場合、図6に示すライフメッセージの順位番号で上位の参加ノードが代替管理ノードに昇格する。代替管理ノードに昇格した参加ノード以外の参加ノードは、昇格した代替管理ノードに対してユニークID要求e3を改めて送信する(図12の(A))。ここでは、ノードCよりも先に管理ループに参加したノードBが代替管理ノードに昇格している例を示しているが、ライフメッセージの順位番号は、管理ループへの参加順に限定されるものではない。管理ループを作成し直す都度、管理ノードが、ライフメッセージの効率的な巡回ルートを探索し、その結果に応じて決定するようにしてもよい。
【0070】
昇格した代替管理ノードは、ユニークID要求を送信してきたノードからなる送信リストを作成し、かつ、ユニークIDを更新して、当該ユニークID要求を送信してきたノードにユニークID更新e4を送信する(図12の(B))。
【0071】
昇格した代替管理ノードより更新後のユニークIDが含まれるユニークID更新が送信されると、各ノードは、保持していたユニークIDを更新して、ライフメッセージ受信待ち状態に移行する。これにより、昇格した代替管理ノードを基点とした、新たなユニークIDに基づくライフメッセージ送信e5が再開される(図12の(C))。
【0072】
また、図13乃至図16は、本情報処理装置の冗長構成の運用機能に関わる動作手順を示すタイミングチャートである。
【0073】
まず、図13を参照して、管理ノードの開始処理の動作手順について説明する。
【0074】
管理ノードの開始処理は、ノード管理機能モジュール11によって管理ノード初期設定読込処理が実行された場合に起動する(図13のf1)。この場合、ノード管理機能モジュール11は、管理ノードを構成すべく、管理ノード機能モジュール13に対し、初期化処理の実行を指示する(図13のf2)。これにより、管理ノード機能モジュール13の制御下で、ユニークIDメッセージ管理機能モジュール15、ライフメッセージ管理機能モジュール14、メッセージ送受信機能モジュール16の初期化処理が実行されることになる(図13のf3,f4,f5)。
【0075】
この初期化処理が終了すると、管理ノード機能モジュール13が、管理ループの構成処理を開始し(図13のf6)、ユニークIDメッセージ管理機能モジュール15に対し、参加ノード情報の収集処理を指示する(図13のf7)。ユニークIDメッセージ管理機能モジュール15は、ユニークIDの収集を開始し(図13のf71)、メッセージ送受信機能モジュール16に対し、ユニークIDメッセージの受信要求を通知する(図13のf711)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図13のf7111)。
【0076】
メッセージ送受信機能モジュール16は、ユニークIDメッセージを受信すると、その旨をユニークIDメッセージ管理機能モジュール15に通知する(図13のf8)。ユニークIDメッセージ管理機能モジュール15は、管理ノード機能モジュール13に対し、参加ノードの追加を要求する(図13のf81)。管理ノード機能モジュール13は、この要求に対する返答を行い、収集ノード一覧の更新を実行する(図13のf9)。一方、管理ノード機能モジュール13からの返答を受けたユニークIDメッセージ管理機能モジュール15は、メッセージ送受信機能モジュール16に対し、ユニークID応答メッセージの送信要求を通知する(図13のf82)。これにより、メッセージ送受信機能モジュール16によるメッセージ送信処理が実行される(図13のf821)。
【0077】
また、管理ノード機能モジュール13は、ライフメッセージ処理を起動する(図13のf10)。このライフメッセージ処理において、管理ノード機能モジュール13は、収集ノード一覧に基づくライフメッセージ情報の作成処理を行い(図13のf101)、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図13のf102)。ライフメッセージ管理機能モジュール14は、ライフメッセージ処理を起動し(図13のf1021)、メッセージ送受信機能モジュール16に対し、参加ノードへのライフメッセージの送信を指示する(図13のf10211)。これにより、メッセージ送受信機能モジュール16による参加ノードへのライフメッセージの送信が実行される(図13のf102111)。
【0078】
次に、ライフメッセージ管理機能モジュール14は、メッセージ送受信機能モジュール16に対し、ライフメッセージの受信要求を通知する(図13のf11)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図13のf111)。メッセージ送受信機能モジュール16は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール14に通知する(図13のf112)。ライフメッセージ管理機能モジュール14は、ライフメッセージの確認処理を行い(図13のf1121)、問題がなければ、ライフメッセージの送信をメッセージ送受信機能モジュール16に指示する(図13のf1122)。以降、このライフメッセージの送信が繰り返される(図13のf11221,…)。
【0079】
図14は、参加ノードの開始処理手順を示すタイミングチャートである。
【0080】
参加ノードの開始処理では、まず、ノード管理機能モジュール11が、参加ノードを構成すべく、参加ノード機能モジュール12に対し、初期化処理の実行を指示する(図14のg1)。これにより、参加ノード機能モジュール12の制御下で、ユニークIDメッセージ管理機能モジュール15、ライフメッセージ管理機能モジュール14、メッセージ送受信機能モジュール16の初期化処理が実行されることになる(図14のg2,g3,g4)。
【0081】
この初期化処理が終了すると、参加ノード機能モジュール12が、管理ループへの参加処理を開始し(図14のg5)、ユニークIDメッセージ管理機能モジュール15に対し、管理ループへの参加処理を指示する(図14のg51)。ユニークIDメッセージ管理機能モジュール15は、メッセージ送受信機能モジュール16に対し、ユニークID要求メッセージの送信要求を通知する(図14のg511)。これにより、メッセージ送受信機能モジュール16によるメッセージ送信処理が実行される(図14のg5111)。
【0082】
メッセージ送受信機能モジュール16は、ユニークID応答メッセージを受信すると、その旨をユニークIDメッセージ管理機能モジュール15に通知する(図14のg6)。ユニークIDメッセージ管理機能モジュール15は、参加ノード機能モジュール12に対し、管理ループへの参加確認を指示する(図14のg61)。
【0083】
また、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図14のg7)。ライフメッセージ管理機能モジュール14は、ライフメッセージ処理を起動し(図14のg71)、メッセージ送受信機能モジュール16に対し、ライフメッセージの受信要求を通知する(図14のg711)。これにより、メッセージ送受信機能モジュール16は、メッセージ受信待ち処理に入る(図14のg7111)。
【0084】
メッセージ送受信機能モジュール16は、ライフメッセージを受信すると、その旨をライフメッセージ管理機能モジュール14に通知する(図14のg8)。ライフメッセージ管理機能モジュール14は、受信されたライフメッセージの更新処理を行い(図14のg81)、メッセージ送受信機能モジュール16に対し、更新後のライフメッセージの送信を指示する(図14のg811)。これにより、メッセージ送受信機能モジュール16によるライフメッセージの送信が実行される(図14のg8111)。
【0085】
以降、ライフメッセージ管理機能モジュール14は、このライフメッセージの送受信を繰り返す(図14のg82,…)。
【0086】
また、図15は、管理ループへの参加ノードの追加処理手順を示すタイミングチャートである。
【0087】
管理ループへの参加ノードの追加処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において(図15のh1,…,h12)、新たなノード(参加要求ノード)の参加ノード機能モジュール12が管理ループへの参加処理を開始させたことによって起動する(図15のh2)。参加要求ノードの参加ノード機能モジュール12は、ユニークIDメッセージ管理機能モジュール15に対し、管理ループへの参加処理を指示する(図15のh3)。これにより、参加要求ノードからユニークID要求メッセージがブロードキャストされる(図15のh31,h32)。
【0088】
管理ノードでは、このユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15が、管理ノード機能モジュール13に対し、参加ノード追加要求を通知する(図15のh311)。これに応答して、管理ノード機能モジュール13は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の停止を指示する(図15のh3111)。また、ユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15は、参加要求ノードに対し、ユニークID応答メッセージを送信する(図15のh312)。
【0089】
一方、参加ノードでは、ユニークID要求メッセージを受信したユニークIDメッセージ管理機能モジュール15が、参加ノード機能モジュール12に対し、(自ノードが実行するライフメッセージ送受信のための)管理ループ再構成処理を指示する(図15のh321)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の再初期化を指示する(図15のh3211)。この初期化後、ライフメッセージ管理機能モジュール14は、ライフメッセージの受信待ち処理に入る(図15のh32111)。
【0090】
参加要求ノードのユニークIDメッセージ管理機能モジュール15は、管理ノードからのユニークID応答メッセージを受けると、参加ノード機能モジュール12に対し、管理ループ参加確認を指示する(図15のh3121)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図15のh31211)。これにより、ライフメッセージ管理機能モジュール14は、ライフメッセージ受信待ち処理に入る(図15のh312111)。
【0091】
また、管理ノードでは、管理ノード機能モジュール13が、収集ノード一覧の更新処理を実行して(図15のh4)、ライフメッセージ処理を再開する(図15のh5)。管理ノード機能モジュール13は、更新後の収集ノード一覧に基づき、ライフメッセージ情報の作成処理を実行し(図15のh51)、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理開始を要求する(図15のh52)。これにより、ライフメッセージ管理機能モジュール14によるライフメッセージの送信が実行され(図15のh521)、以降、参加要求ノードを追加した管理ループでのライフメッセージの送受信が実行されることになる(図15のh5211,…)。
【0092】
図16は、代替管理ノードの処理手順を示すタイミングチャートである。
【0093】
代替管理ノードの処理は、管理ループに参加するノード間でライフメッセージの送受信が行われている状態において(図16のj1,…,j121221)、管理ノードによるライフメッセージの送信が停止したことによって起動する(図16のj2)。各参加ノードのライフメッセージ管理機能モジュール14は、ライフメッセージ受信タイムアウト処理を開始し(図16のj3,j4)、参加ノード機能モジュール12に対し、管理ノードへの送信エラー通知処理を指示する(図16のj31,j41)。これに応答して、参加ノード機能モジュール12は、ユニークIDメッセージ管理機能モジュール15に対し、ユニークID再取得処理を指示する(図16のj311,j411)。
【0094】
しかしながら、管理ノードは停止しているので、各参加ノードのユニークIDメッセージ管理機能モジュール15は、ユニークID要求送信タイムアウト処理を開始することになる(図16のj3111,j4111)。ユニークIDメッセージ管理機能モジュール15は、参加ノード機能モジュール12に対し、ユニークID取得エラーを通知する(図16のj3112,j4112)。この通知を受けた参加ノード機能モジュール12は、代替管理ノード移行判断処理を実行する(図16のj31121,j41121)。これにより、いずれか1つの参加ノードが代替管理ノードに昇格する。昇格した代替管理ノードの管理ノード機能モジュール13は、ユニークIDメッセージ管理機能モジュール15に対し、ユニークID受信処理を指示する(図16のj311211)。それ以外の参加ノードの参加ノード機能モジュール12は、ユニークID再取得処理を再度指示する(図16のj411211)。
【0095】
そうすると、ユニークID再取得処理を再度指示された参加ノードのユニークIDメッセージ管理機能モジュール15と、ユニークID受信処理を指示された代替管理ノードのユニークIDメッセージ管理機能モジュール15との間で、ユニークID要求が送受信され(図16のj5)、代替管理ノードのユニークIDメッセージ管理機能モジュール15は、管理ノード機能モジュール13に対し、管理ループへの追加を指示する(図16のj51)。
【0096】
これに応答して、代替管理ノードの管理ノード機能モジュール12は、収集ノード一覧の更新処理を実行して(図16のj511)、管理ループへの追加の完了をIDメッセージ管理機能モジュール15に回答する(図16のj512)。これを受けて、IDメッセージ管理機能モジュール15は、参加ノードのユニークIDメッセージ管理機能モジュール15に対し、ユニークID応答を送信する(図16のj5121)。
【0097】
参加ノードのユニークIDメッセージ管理機能モジュール15は、ユニークID応答を受信すると、参加ノード機能モジュール12に対し、管理ループへの参加完了を通知する(図16のj51211)。これに応答して、参加ノード機能モジュール12は、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図16のj512111)。
【0098】
一方、代替管理ノードの管理ノード機能モジュール13も、ライフメッセージ管理機能モジュール14に対し、ライフメッセージ処理の開始を指示する(図16のj6)。これにより、新たな管理ループによるライフメッセージの送受信が開始される。
【0099】
以上のように、本情報処理装置は、冗長構成を構築する情報処理装置を適宜に追加・削除すること等を可能とする冗長構成の運用機能を実現する。
【0100】
なお、本実施形態の動作制御処理は、ソフトウェア(プログラム)によって実現することができるので、このソフトウェアを格納したコンピュータ読み取り可能な記憶媒体を通じてこのソフトウェアを通常のコンピュータにインストールして実行することにより、本実施形態と同様の効果を容易に実現することができる。
【0101】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0102】
1…プロセッサ、2…主メモリ、3…外部記憶装置、4…入力装置、5…表示装置、6…通信装置、10…管理ループ運用プログラム、11…ノード管理機能モジュール、12…参加ノード機能モジュール、13…管理ノード機能モジュール、14…ライフメッセージ管理機能モジュール、15…ユニークIDメッセージ管理機能モジュール、16…メッセージ送受信機能モジュール16、17…ユーザインタフェース機能モジュール、18…収集ノード一覧テーブル、20…ネットワークプロトコル、30…OS(Operating system)/ドライバ。
【特許請求の範囲】
【請求項1】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置において、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、
を具備する情報処理装置。
【請求項2】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項1記載の情報処理装置。
【請求項3】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項2記載の情報処理装置。
【請求項4】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項3記載の情報処理装置。
【請求項5】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項4記載の情報処理装置。
【請求項6】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項2記載の情報処理装置。
【請求項7】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項6記載の情報処理装置。
【請求項8】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項7記載の情報処理装置。
【請求項9】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置における動作制御方法であって、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出することと、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えることと、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わることと、
を具備する動作制御方法。
【請求項10】
前記異常を検出することは、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記冗長構成への参加要求として前記識別情報を要求し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項9記載の動作制御方法。
【請求項11】
前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱することをさらに具備し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する情報処理装置に送信し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項10記載の動作制御方法。
【請求項12】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項11記載の動作制御方法。
【請求項13】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項12記載の情報処理装置。
【請求項14】
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項10記載の動作制御方法。
【請求項15】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項14記載の動作制御方法。
【請求項16】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項15記載の動作制御方法。
【請求項17】
ネットワークを介して接続される他のコンピュータと冗長構成を構築するコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段、
として動作させるものであるプログラム。
【請求項18】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項15記載のプログラム。
【請求項19】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項18記載のプログラム。
【請求項20】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項19記載のプログラム。
【請求項21】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項20記載のプログラム。
【請求項22】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項18記載のプログラム。
【請求項23】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項22記載のプログラム。
【請求項24】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項23記載のプログラム。
【請求項1】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置において、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段と、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段と、
を具備する情報処理装置。
【請求項2】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項1記載の情報処理装置。
【請求項3】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項2記載の情報処理装置。
【請求項4】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項3記載の情報処理装置。
【請求項5】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項4記載の情報処理装置。
【請求項6】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項2記載の情報処理装置。
【請求項7】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項6記載の情報処理装置。
【請求項8】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項7記載の情報処理装置。
【請求項9】
ネットワークを介して接続される他の情報処理装置と冗長構成を構築する情報処理装置における動作制御方法であって、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出することと、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えることと、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わることと、
を具備する動作制御方法。
【請求項10】
前記異常を検出することは、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記冗長構成への参加要求として前記識別情報を要求し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項9記載の動作制御方法。
【請求項11】
前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱することをさらに具備し、
前記ライフメッセージの巡回ルートをマスタとして管理することは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する情報処理装置に送信し、
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項10記載の動作制御方法。
【請求項12】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項11記載の動作制御方法。
【請求項13】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項12記載の情報処理装置。
【請求項14】
前記ライフメッセージの巡回ルートにスレーブとして加わることは、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項10記載の動作制御方法。
【請求項15】
前記ライフメッセージの巡回ルートにスレーブとして参加している時、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理することをさらに具備し、
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、稼働時、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項14記載の動作制御方法。
【請求項16】
前記ライフメッセージの巡回ルートを代替マスタとして管理することは、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に稼働する請求項15記載の動作制御方法。
【請求項17】
ネットワークを介して接続される他のコンピュータと冗長構成を構築するコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータを、
前記冗長構成を構築する情報処理装置間でライフメッセージを巡回させて異常を検出するためのライフメッセージ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理し、他の情報処理装置から前記冗長構成への参加要求を受信した場合に、当該他の情報処理装置を前記ライフメッセージの巡回ルートにスレーブとして加えるためのマスタ処理手段、
前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して前記冗長構成への参加要求を送信して、前記ライフメッセージの巡回ルートにスレーブとして加わるためのスレーブ処理手段、
として動作させるものであるプログラム。
【請求項18】
前記ライフメッセージ処理手段は、前記冗長構成を構築する情報処理装置間で共有される識別情報に基づいて前記ライフメッセージの送受信を実行し、
前記スレーブ処理手段は、前記冗長構成への参加要求として前記識別情報を要求し、
前記マスタ処理手段は、前記冗長構成への参加要求を受信した場合、新たな識別情報を生成して、当該冗長構成への参加要求の要求元を含む前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項15記載のプログラム。
【請求項19】
前記スレーブ処理手段および前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加している他の情報処理装置に対して前記冗長構成からの脱退要求を送信して前記ライフメッセージの巡回ルートから離脱する手段を有し、
前記マスタ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たな識別情報を生成して、当該冗長構成からの脱退要求の要求元を除いた前記ライフメッセージの巡回ルートに参加する他の情報処理装置に送信し、
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートに参加する他の情報処理装置から前記冗長構成からの脱退要求を受信した場合、新たに生成された識別情報の受信を待機する、
請求項18記載のプログラム。
【請求項20】
前記スレーブ処理手段は、前記冗長構成からの脱退要求を受信した後、予め定められた期間を越えて新たに生成された識別情報が受信されない場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項19記載のプログラム。
【請求項21】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項20記載のプログラム。
【請求項22】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されない場合、前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求する請求項18記載のプログラム。
【請求項23】
前記スレーブ処理手段は、前記ライフメッセージが予め定められた期間を越えて受信されないことに起因して前記ライフメッセージの巡回ルートをマスタとして管理する他の情報処理装置に対して新たな識別情報を要求した際、当該他の情報処理装置から新たな識別情報が返送されてこなかった場合、前記ライフメッセージの巡回ルートを代替マスタとして管理すべく前記マスタ処理手段を稼働させる手段を有し、
前記マスタ処理手段は、自装置が前記ライフメッセージの巡回ルートにスレーブとして参加している状態から前記ライフメッセージの巡回ルートを代替マスタとして管理すべく稼働した場合、新たな識別情報を生成して、前記ライフメッセージの巡回ルートにスレーブとして参加する他の情報処理装置に送信する、
請求項22記載のプログラム。
【請求項24】
前記スレーブ処理手段は、前記ライフメッセージの巡回ルートにスレーブとして参加する情報処理装置の中で前記ライフメッセージの中継順位が最も高い場合に、前記マスタ処理手段を稼働させるための処理を実行する請求項23記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−138841(P2012−138841A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2010−291093(P2010−291093)
【出願日】平成22年12月27日(2010.12.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願日】平成22年12月27日(2010.12.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]