説明

障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム

【課題】ホストにおいて電文識別子を管理させることなく、且つ、各処理毎に電文識別子を変化させる必要がない方法で、リブートに伴う処理部間での不整合を検出する。
【解決手段】第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置において、前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを前記第1の処理部のブート及びリブートの回数を照らし合わせることにより判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の処理部を含む装置における処理部間の不整合検出に関する。
【背景技術】
【0002】
メインフレーム等の大型コンピュータシステムにおいて、スケーラビリティや可用性の向上のために複数のホストを互いに結合したクラスタシステムが用いられている。
【0003】
クラスタシステムではホスト同士がデータをやり取りしながら処理を行うが、このためのホスト間通信を複数のホストとインタフェースを持つ共有装置を介してホスト同士がメッセージ通信を行うことによって実現する方法がある。
【0004】
この際に使用される共有装置は内部に複数の処理部と、処理部が共有する記憶部を備えている。そして、ここでのメッセージ通信機能とは、ホストからメッセージ送信要求を受け取った処理部が他方の処理部にリクエストを出し、リクエストを受け取った処理部がホストにメッセージを送信。送信に成功すると、元の処理部にリプライを返し、リプライを受け取った処理部が要求元のホストにリプライを返すというものである。
【0005】
ここで、ホストから要求を受け取った処理部が他方の処理部にリクエストを出した直後に障害でリブートし、リブート後にホストから異なる送信要求を受け取った場合について考える。この場合、他方の処理部に本要求に対するリクエストを出した後に、すれ違いで、他方の処理部から前のリクエストに対するリプライが返されると、本リプライを後のリクエストに対するリプライと誤認するという問題があった。
【0006】
このような問題を解消する方法として、例えば特許文献1に記載の技術を用いることが考えられる。特許文献1に記載に記載の技術では、処理要求毎に電文識別子を加え、この電文識別子を参照することにより、各処理を識別することが可能である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−085060号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したように、特許文献1に記載の技術等を用いることにより各処理を識別することが可能となる。
【0009】
しかしながら、特許文献1に記載の技術等では、各処理毎に電文識別子を変化させる必要があり、電文識別子の付与及び確認に伴う処理が煩雑になるという問題があった。
【0010】
また、特許文献1に記載の技術等は、ホストたる各サーバが電文識別子を管理する必要があるという問題があった。加えて、特許文献1に記載の技術等は、共有装置の処理部のリブートを考慮したものではなく、リブートが生じたタイミングによっては処理部間ですれ違いによる不整合が発生してしまうという課題を直接解決するものではなかった。
【0011】
そこで、本実施形態では、ホストにおいて電文識別子を管理させることなく、且つ、各処理毎に電文識別子を変化させる必要がない方法で、リブートに伴う処理部間での不整合を検出することが可能な、障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の第1の観点によれば、第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置において、前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする共有装置が提供される。
【0013】
本発明の第2の観点によれば、第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置が行う不整合検出方法において、前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする不整合検出方法が提供される。
【発明の効果】
【0014】
本発明によれば、共有装置内のブートカウンタエリアの値を要因とすることによりリブートが発生してもリクエストとリプライの対応づけをすることが出来ることから、ホストにおいて電文識別子を管理させることなく、且つ、各処理毎に電文識別子を変化させる必要がない方法で、リブートに伴う処理部間での不整合を検出することが可能となる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施形態の基本的構成を表す図である。
【図2】本発明の実施形態におけるブート回数登録部の基本的動作を表すフローチャートである。
【図3】本発明の実施形態におけるホスト要求処理部の基本的動作を表すフローチャートである。
【図4】本発明の実施形態における他処理部要求部の基本的動作を表すフローチャートである。
【図5】本発明の実施形態における他処理部リプライ処理部の基本的動作を表すフローチャートである。
【発明を実施するための形態】
【0016】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【0017】
図1を参照すると、本実施形態は、共有装置1000と第1のホスト2000と第2のホスト3000とを有している。
【0018】
そして、本実施形態においては、第1のホスト2000と第2のホスト3000が、共有装置1000を介して相互にデータをやり取りしながら処理を行う。なお、やり取りされるデータはどのような規格やプロトコルに準拠したものであってもよい。本実施形態は、任意の通信方式に準拠して実装することが可能である。
【0019】
共有装置1000は、記憶部110と第1の処理部120と第2の処理部130とを有している。
【0020】
また、第1の処理部120は、第1のホスト2000とは直接接続されているが第2のホスト3000とは直接接続されていない。同様に、第2の処理部130は、第2のホスト3000とは直接接続されているが第1のホスト2000とは直接接続されていない。なお、各ホストとの接続は任意の方式により行うことが可能であり、接続方式に特に制限は無い。
【0021】
記憶部110は、記憶装置であり、その用途に応じて複数の領域を有している。具体的には、記憶部110は、ブートカウンタ領域、リクエスト領域、リプライ領域及び通信データ領域を有している。そして、これらの各領域は処理部毎に1つずつ用意されている。そのため、本実施形態では、第1の処理部120用の領域として、第1のブートカウンタ領域111、第1のリクエスト領域113、第1のリプライ領域115及び第1の通信データ領域117を有している。加えて、第2の処理部130用の領域として、第2のブートカウンタ領域112、第2のリクエスト領域114、第2のリプライ領域116、及び第2の通信データ領域118を有している。
【0022】
これらの各領域の具体的用途に関しては後述する。
【0023】
第1の処理部120及び第2の処理部130は、ローカルメモリ(以下の説明及び図中においては、適宜「LM」と呼ぶ。)121及び131を有している。
【0024】
また、第1の処理部120及び第2の処理部130は、それぞれ、ブート回数登録部122及び132と、ホスト要求処理部123及び133と、他処理部要求処理部124及び134と、他処理部リプライ処理部125及び135を有する。
【0025】
ブート回数登録部122及び132は、第1の処理部120及び第2の処理部130のブート時と、リブート時に記憶部110のブートカウンタ領域にインクリメントしたブート回数を登録する機能を有する。
【0026】
ホスト要求処理部123及び133は、自身が接続されているホストから送信要求を受け取った際に、他の処理部に要求を出す機能を有する。
【0027】
他処理部要求処理部124及び134は、他処理部のホスト要求処理部から要求を受け取った際に、自身が接続されているホストにメッセージを送信し、送信成功後に要求元のホスト要求処理部に応答(以下、適宜「リプライ」と呼ぶ)を返す機能を有する。
【0028】
他処理部リプライ処理部125及び135は、他処理部の他処理部要求処理部からリプライを受け取った際に自身が接続されているホストにリプライを返す機能を有する。
【0029】
次に、図2乃至図5のフローチャートを参照して本実施形態の有する各部の動作について詳細に説明する。
【0030】
図2は、ブート回数登録部122及び132の動作を表すフローチャートである。ブート回数登録部122及び132は自身が含まれている処理部がブートする際及びリブートする際に動作を行う。
【0031】
図2を参照すると、ブート時及びリブート時に、ブート回数登録部122及び132は、記憶部110内の自処理部に割り当てられているブートカウンタ領域の値を読み出す(ステップA1)。
【0032】
次に、読み出した値とブートカウンタが取り得る最大値を比較する(ステップA2)。ステップA2における比較の結果、両値が等しければ(ステップA2においてYes)ブートカウンタ領域に1を登録する(ステップA3)。すなわち、処理後のブートカウンタ値は「1」となる。
【0033】
一方、ステップA2における比較の結果、両値が等しくなければ(ステップA2においてNo)、現在のブートカウンタ領域の値に1を加算する(ステップA4)。すなわち、処理後のブートカウンタ値は「現在のブートカウンタ値+1」となる。
【0034】
以上で、ブート回数登録部122及び132の動作は終了する。
【0035】
図3は、ホスト要求処理部123及び133の動作を表すフローチャートである。
【0036】
図3を参照すると、ホスト要求処理部123及び133は、ホストからの通信要求を受信するまで待機をする(ステップB1においてNo)。
【0037】
通信要求を受信すると(ステップB1においてYes)、受信した通信要求に付随する通信メッセージを、通信先ホストが接続されている処理部に割り当てられている通信データ領域に格納する(ステップB2)。
【0038】
次に、記憶部110の自処理部に割り当てられているブートカウンタ領域の値を読み出し(ステップB3)、読み出した値を記憶部110の通信先ホストが接続されている処理部に割り当てられているリクエスト領域に格納する(ステップB4)。その後、再び、ステップB1に戻り、ホストからの通信要求を受信するまで待機をする。
【0039】
図4は、他処理部要求処理部124及び134の動作を表すフローチャートである。
【0040】
図4を参照すると、他処理部要求処理部124及び134は、記憶部110の自処理部に割り当てられているリクエスト領域の値の監視をする(ステップC1)。
【0041】
そして、記憶部110の自処理部に割り当てられているリクエスト領域に0以外の値が書き込まれるまで待機をする(ステップC2においてNo)。
【0042】
0以外の値が書き込まれると(ステップC2においてYes)、書き込まれた値を自処理部内のLMに一時保存する。また、LMに書き込まれた値を一時保存するに伴いリクエスト領域を0でクリアする(ステップC3)。
【0043】
次に、記憶部110の自処理部に割り当てられた通信データ領域に格納されている通信メッセージを読み出す(ステップC4)。
【0044】
そして、自身に接続されているホストにステップC4において読み出した通信メッセージを送信し(ステップC5)、ホストからの応答(リプライ)を受信するまで待機をする(ステップC6においてNo)。
【0045】
そして、ホストからの応答を受信すると(ステップC6においてYes)、リクエスト領域からLMに一時保存していた値を、リクエストの要求元の処理部に割り当てられている記憶部110のリプライ領域に格納する(ステップC7)その後、再びステップC1に戻り、リクエスト領域の値の監視をする。
【0046】
図5は、他処理部リプライ処理部125及び135の動作を表すフローチャートである。
【0047】
図5を参照すると、他処理部リプライ処理部125及び135は、記憶部110の自処理部に割り当てられているリプライ領域の値の監視をする(ステップD1)。
【0048】
記憶部110の自処理部に割り当てられているリプライ領域に0以外の値が書き込まれるまで待機をする(ステップD2においてNo)。
【0049】
0以外の値が書き込まれると(ステップC2においてYes)、書き込まれた値を自処理部内のLMに一時保存する。また、LMに書き込まれた値を一時保存するに伴いリプライ領域を0でクリアする(ステップD3)。
【0050】
次に、一時保存した値と記憶部110の自処理部に割り当てられているブートカウンタ領域の値を比較する(ステップD4)。ステップD4における比較の結果、両値が等しければ(ステップD4においてYes)、自身に接続されているホストに通信完了を報告する(ステップD5)。そして、ステップD1に戻る。
【0051】
一方、ステップD4における比較の結果、両値が等しくなければ(ステップD4においてNo)、何もせずにステップD1に戻る。すなわち、この場合には自身に接続されているホストに通信完了は報告されないこととなる。
【0052】
以上が本実施形態における各部の動作である。
【0053】
次に、本実施形態の動作について、具体的な例を挙げて詳細に説明する。
【0054】
今回の具体例では、第1のホスト2000から第2のホスト3000へのメッセージ通信を行う際に、処理の途中で、第1の処理部120が障害でリブートする、というケースを例に取って説明する。説明の為、このときの第1のブートカウンタ領域111の値は1であったと仮定する(ステップS4)。
【0055】
第1のホスト2000が第1の処理部120にメッセージ通信を要求する。すると、ホストからの通信要求を監視している第1の処理部120のホスト要求処理部123が要求の受信を認識する(ステップB1においてYes)。
【0056】
ホスト要求処理部123は受信した通信要求に付随する通信メッセージを通信先ホストに接続された処理部である第2の処理部130に割り当てられている、第2の通信データ領域118に格納する(ステップB2)。
【0057】
次に、第2の処理部130にリクエストを出すために、第1のブートカウンタ領域111の値を読み出す(ステップB3)。そして、ステップB3において読み出した値を第2のリクエスト領域114に格納する(ステップB4)。
【0058】
次に、自身に割り当てられている第2のリクエスト領域114を監視している第2の処理部130の他処理部要求部134は、第2のリクエスト領域114に0以外の値が書き込まれたことを確認する(ステップC2においてYes)。
【0059】
他処理部要求部134は、書き込まれた値をLM131に一時保存し、第2のリクエスト領域114を0でクリアする(ステップC3)。
【0060】
次に、第2の通信データ領域118に格納されている通信メッセージを読み出し(ステップC4)、第2のホスト3000に当該通信メッセージを送信し(ステップC5)、第2のホスト3000からの応答を待つ(ステップC6)。
【0061】
そして、第2のホスト3000からの応答を受信すると(ステップC6においてYes)、第2のリクエスト領域114からLM131に一時保存していた値を、第1のリプライ領域115に格納する(ステップC7)。
【0062】
次に、自身に割り当てられている第1のリプライ領域115を監視している第1の処理部120の他処理部リプライ処理部125は第1のリプライ領域115に0以外の値が書き込まれたことを認識すると(ステップD2においてYes)、書き込まれた値をLM121に一時保存し、第1のリプライ領域115を0でクリアする(ステップD3)。
【0063】
次に、LM121に一時保存した値と第1のブートカウンタ領域111の値を比較する(ステップD4)。ここで、通常は2つの値は等しくなるため(ステップD4においてYes)、第1のホスト2000に対して通信完了の応答を返す(ステップD5)。
【0064】
ここで、第1の処理部120が、第2の処理部130にリクエストを出した直後にリブートしたとする。このとき、第1の処理部120は、リブート直後にブート回数登録部122によって、第1のブートカウンタ領域111の値が2に更新される(ステップA1、A2においてYes、A3)。
【0065】
この状態で、第2の処理部130からリプライを受け取ると、先の、LM121に一時保存した値と第1のブートカウンタ領域111の値を比較する処理(ステップD4)において、一時保存した値はリブート前の値の1だが、第1のブートカウンタ領域111の値はリブート後の2になっているため、比較は不一致となり(ステップD4においてNo)、第1のホスト2000に対して通信完了の応答は行われない。
【0066】
以上説明した本発明の実施形態は、以下に示すような多くの効果を奏する。
【0067】
第1の効果は、確実に処理部間の通信正常終了を確認出来ることである。
【0068】
その理由はブートカウンタ領域の値を要因とすることによりリブートが発生してもリクエストとリプライの対応づけをすることが出来る為である。リクエストとリプライの対応にずれが生じるのはリブートが発生したときのみである。
【0069】
第2の効果は、処理が軽いことである。
【0070】
その理由はブート処理(リブート処理含む)で一度リクエスト要因であるブートカウンタ領域の値をインクリメントしたらその後、リブートが発生するまで値をインクリメントせずともよい為である。通信発行毎にリクエスト要因をインクリメントする方法と比較し、少ない処理で同等の効果を得ることが出来る。
【0071】
なお、本発明の実施形態である共有装置は、ハードウェアにより実現することもできるが、コンピュータをその共有装置として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【0072】
また、本発明の実施形態による不整合検出方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【0073】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0074】
加えて、本実施形態は、一般的な技術と比べ下記の点で有利な効果を奏している。
【0075】
一般的な技術では、処理要求毎に電文識別子を変化させている。しかし、本実施形態では識別子(ブート回数)を処理要求毎に変化させておらず異なる。すなわち、本実施形態では装置が(リ)ブートしたときのみインクリメントしており、識別子の更新を最小限に留めることで負荷を軽減させることが可能となるという効果を奏する。
【0076】
また、一般的な技術では、例えば各ブートデバイスのブート回数に制限をかける為、ブート回数を利用している。それに対し、本実施形態では処理部間の通信のすれ違いを防止する為、ブート回数を利用できるという効果を奏する。
【0077】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0078】
(付記1) 第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置において、
前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、
前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする共有装置。
【0079】
(付記2) 付記1に記載の共有装置において、
前記判断に際して、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数、が一致した場合には当該リプライが正当なものであると判断して前記第1のホストに対してリプライ処理を行い一致しなかった場合は当該リプライが正当なものでないと判断して当該リプライを廃棄することを特徴とする共有装置。
【0080】
(付記3) 付記1又は2に記載の共有装置において、
前記第1の処理部は前記リクエストを送信する際に前記記憶部に自身のブート及びリブートの回数を記録し、前記第2の処理部は前記リクエストを受け取るとともに前記記録されたブート及びリブートの回数を読み込んで自身が記憶し、前記第2の処理部は前記リプライを送信するとともに前記自身が記憶したブート及びリブートの回数を前記記憶部に記録し、前記第1の処理部は自身が前記記憶部に記録したブート及びリブートの回数と前記第2の処理部が前記記憶部に記録したブート及びリブートの回数を比較することにより前記判断を行うことを特徴とする共有装置。
【0081】
(付記4) 付記1乃至3の何れか1に記載の共有装置において、
前記第1の処理部が第2の処理部としても動作し、前記第2の処理部が第1の処理部としても動作することを特徴とする共有装置。
【0082】
(付記5) 第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置並びに当該共有装置に接続された前記第1のホスト及び前記第2のホストを含んだクラスタシステムにおいて、
前記第1のホスト及び前記第2のホストは前記共有装置を介して通信を行い、
前記共有装置は付記1乃至4の何れか1項に記載の共有装置であることを特徴とするクラスタシステム。
【0083】
(付記6) 第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置が行う不整合検出方法において、
前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、
前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする不整合検出方法。
【0084】
(付記7) 付記6に記載の不整合検出方法において、
前記判断に際して、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数、が一致した場合には当該リプライが正当なものであると判断して前記第1のホストに対してリプライ処理を行い一致しなかった場合は当該リプライ正当なものでないと判断して当該リプライを廃棄することを特徴とする不整合検出方法。
【0085】
(付記8) 付記6又は7に記載の不整合検出方法において、
前記第1の処理部は前記リクエストを送信する際に前記記憶部に自身のブート及びリブートの回数を記録し、前記第2の処理部は前記リクエスト受け取るとともに前記記録されたブート及びリブートの回数を読み込んで自身が記憶し、前記第2の処理部は前記リプライを送信するとともに前記自身が記憶したブート及びリブートの回数を前記記憶部に記録し、前記1の処理部は自身が前記記憶部に記録したブート及びリブートの回数と前記第2の処理部が前記記憶部に記録したブート及びリブートの回数を比較することにより前記判断を行うことを特徴とする不整合検出方法。
【0086】
(付記9) 付記6乃至8の何れか1に記載の不整合検出方法において、
前記第1の処理部が第2の処理部としても動作し、前記第2の処理部が第1の処理部としても動作することを特徴とする不整合検出方法。
【0087】
(付記10) 第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置並びに当該共有装置に接続された前記第1のホスト及び前記第2のホストを含んだクラスタシステムが行う不整合検出において、
前記第1のホスト及び前記第2のホストは前記共有装置を介して通信を行い、
前記共有装置は付記6乃至8の何れか1に記載の不整合検出方法を行うことを特徴とする不整合検出方法。
【産業上の利用可能性】
【0088】
本発明は、メインフレーム等の大型コンピュータシステムにおける、複数のホストを接続したクラスタシステムでホスト間の通信に好適である。
【符号の説明】
【0089】
110 記憶部
111 第1のブートカウンタ領域
112 第2のブートカウンタ領域
113 第1のリクエスト領域
114 第2のリクエスト領域
115 第1のリプライ領域
116 第2のリプライ領域
117 第1の通信データ領域
118 第2の通信データ領域
120 第1の処理部
121、131 ローカルメモリ
122、132 ブート回数登録部
123、133 ホスト要求処理部
124、134 他処理部要求処理部
125、135 他処理部リプライ処理部
130 第2の処理部
1000 共有装置
2000 第1のホスト
3000 第2のホスト

【特許請求の範囲】
【請求項1】
第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置において、
前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、
前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする共有装置。
【請求項2】
請求項1に記載の共有装置において、
前記判断に際して、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数、が一致した場合には当該リプライが正当なものであると判断して前記第1のホストに対してリプライ処理を行い一致しなかった場合は当該リプライが正当なものでないと判断して当該リプライを廃棄することを特徴とする共有装置。
【請求項3】
請求項1又は2に記載の共有装置において、
前記第1の処理部は前記リクエストを送信する際に前記記憶部に自身のブート及びリブートの回数を記録し、前記第2の処理部は前記リクエストを受け取るとともに前記記録されたブート及びリブートの回数を読み込んで自身が記憶し、前記第2の処理部は前記リプライを送信するとともに前記自身が記憶したブート及びリブートの回数を前記記憶部に記録し、前記第1の処理部は自身が前記記憶部に記録したブート及びリブートの回数と前記第2の処理部が前記記憶部に記録したブート及びリブートの回数を比較することにより前記判断を行うことを特徴とする共有装置。
【請求項4】
請求項1乃至3の何れか1項に記載の共有装置において、
前記第1の処理部が第2の処理部としても動作し、前記第2の処理部が第1の処理部としても動作することを特徴とする共有装置。
【請求項5】
第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置並びに当該共有装置に接続された前記第1のホスト及び前記第2のホストを含んだクラスタシステムにおいて、
前記第1のホスト及び前記第2のホストは前記共有装置を介して通信を行い、
前記共有装置は請求項1乃至4の何れか1項に記載の共有装置であることを特徴とするクラスタシステム。
【請求項6】
第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置が行う不整合検出方法において、
前記第1の処理部が前記第1のホストからの第1のメッセージの送信要求を受け取ると、前記第2の処理部に対してリクエストを送信し、当該リクエストを受信した前記第2の処理部が前記メッセージを前記第2のホストに送信すると共にリプライを前記第1の処理部に送信し、前記リプライを受け取った第1の処理部は当該リプライが前記第1のメッセージの送信要求に応じたリプライであるか否かを判断し、
前記判断は、前記記憶部上で、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数を照らし合わせることにより行われることを特徴とする不整合検出方法。
【請求項7】
請求項6に記載の不整合検出方法において、
前記判断に際して、前記リクエスト及び前記リプライにそれぞれ対応付けられた、前記第1の処理部のブート及びリブートの回数、が一致した場合には当該リプライが正当なものであると判断して前記第1のホストに対してリプライ処理を行い一致しなかった場合は当該リプライが正当なものでないと判断して当該リプライを廃棄することを特徴とする不整合検出方法。
【請求項8】
請求項6又は7に記載の不整合検出方法において、
前記第1の処理部は前記リクエストを送信する際に前記記憶部に自身のブート及びリブートの回数を記録し、前記第2の処理部は前記リクエストを受け取るとともに前記記録されたブート及びリブートの回数を読み込んで自身が記憶し、前記第2の処理部は前記リプライを送信するとともに前記自身が記憶したブート及びリブートの回数を前記記憶部に記録し、前記第1の処理部は自身が前記記憶部に記録したブート及びリブートの回数と前記第2の処理部が前記記憶部に記録したブート及びリブートの回数を比較することにより前記判断を行うことを特徴とする不整合検出方法。
【請求項9】
請求項6乃至8の何れか1項に記載の不整合検出方法において、
前記第1の処理部が第2の処理部としても動作し、前記第2の処理部が第1の処理部としても動作することを特徴とする不整合検出方法。
【請求項10】
第1のホストに接続される第1の処理部と、第2のホストに接続される第2の処理部と、前記第1の処理部及び第2の処理部が利用する記憶部と、を有する共有装置並びに当該共有装置に接続された前記第1のホスト及び前記第2のホストを含んだクラスタシステムが行う不整合検出において、
前記第1のホスト及び前記第2のホストは前記共有装置を介して通信を行い、
前記共有装置は請求項6乃至8の何れか1項に記載の不整合検出方法を行うことを特徴とする不整合検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate