以下、図面を参照しながら、実施形態を詳細に説明する。
図1は、本実施形態に係るBBシステムの例を説明する図である。図1のBBシステム100は、マスタSP120を備える情報処理装置101と、スタンバイSP130を備える情報処理装置102と、スレイブSP140aを備える情報処理装置103aと、スレイブSP140bを備える情報処理装置103bを含む。各情報処理装置は、SP以外にさらに、プロセッサ(すなわち処理装置)とメモリを含み、それぞれ情報を処理することができる。情報処理装置は、プロセッサとメモリを1つの筐体に収めた1台のコンピュータであってもよく、又、プロセッサとメモリを搭載した1枚のシステムボードであってもよい。
BBシステム100は、複数の処理装置と、それら複数の処理装置を管理する複数の管理装置を含む情報処理システムの例である。各管理装置が管理する処理装置の数は、1以上の任意の数であってよい。図1の各SPは、自情報処理装置内の(つまり、当該SP自体が搭載されている情報処理装置内の)プロセッサ(処理装置)やメモリなどのハードウェア装置を管理する管理装置の例である。各SPは、例えば、MPU、フラッシュメモリなどの不揮発性メモリ、及び揮発性メモリを備える。
情報処理装置103bは、入出力装置110(以下、「Input/Output(I/O)装置」と略す)と接続されている。I/O装置110は、例えば、キーボード、マウス、モニタなどの装置である。I/O装置110は、情報処理装置101、102、103aの何れにも接続可能であり、情報処理装置103b以外の情報処理装置に接続されていてもよい。I/O装置110が省略されていてもよい。
以下では、情報処理装置103aと情報処理装置103bをまとめて「情報処理装置103」と称する。また、スレイブSP140aとスレイブSP140bをまとめて「スレイブSP140」と称する。
マスタSP120、スタンバイSP130、スレイブSP140などの各SPは、自情報処理装置内のプロセッサ(処理装置)やメモリなどのハードウェア装置の制御や監視を行い、該ハードウェア装置の装置情報を、「SPデータ」として記憶する。各ハードウェア装置の装置情報は、少なくとも当該ハードウェア装置の状態を示す。各SPは、当該SPが搭載されている情報処理装置にI/O装置110が接続されている場合は、I/O装置110も監視する。SPがI/O装置110を監視する場合、I/O装置110の装置情報も、SPデータに含まれる。更に、各SPは、自情報処理装置と接続されている他情報処理装置を検出し、どの情報処理装置が自情報処理装置に接続されているのかを示す情報を、SPデータとして記憶する。
マスタSP120は、スタンバイSP130及びスレイブSP140を統括するSPである。言い換えると、マスタSP120は、スタンバイSP130とスレイブSP140が管理している処理装置などのハードウェア装置を、スタンバイSP130とスレイブSP140を介して、管理することができる。その管理のために、マスタSP120は、スタンバイSP130とスレイブSP140が記憶するSPデータを収集する。
スタンバイSP130は、マスタSP120が故障した場合にマスタSP120のバックアップとして動作するSPである。そのため、スタンバイSP130は、マスタSP120が収集したSPデータ(少なくとも、そのうちスレイブSP130から収集されたSPデータ)及びマスタSP120のSPデータを、マスタSP120から受信する。スタンバイSP130は、マスタSP120が記憶しているSPデータと同じデータを記憶することで、マスタSP120で障害が発生した場合でもマスタSP120の代替としてスレイブSP140を統括するSPとなれる。
情報処理装置101は、情報処理装置102と2本の通信ケーブル(すなわち通信路151と通信路152)で接続されている。通信路152は、情報処理装置101のマスタSP120から情報処理装置102のスタンバイSP130にSPデータを送信するために用いられる。通信路151は、情報処理装置102のスタンバイSP130から情報処理装置101のマスタSP120にSPデータを送信するために用いられる。
情報処理装置101は、通信路153aで情報処理装置103aと、通信路153bで情報処理装置103bと、接続されている。また、情報処理装置102は、通通信路154aで情報処理装置103aと、通信路154bで情報処理装置103bと、接続されている。
なお、図1の例では、情報処理装置101と情報処理装置102が2本の通信ケーブルで接続されているものの、実施形態によっては、双方向に通信可能な通信ケーブル1本で情報処理装置101と情報処理装置102が接続されていてもよい。
ここで、通信路152で障害が発生した場合、マスタSP120は、通信路152を用いたスタンバイSP130へのSPデータの送信ができなくなる。すると、マスタSP120が記憶するSPデータとスタンバイSP130が記憶するSPデータが異なる、という状況が生じ得る。マスタSP120とスタンバイSP130とが異なるSPデータを記憶している場合、スタンバイSP130は、マスタSP120で障害が発生すると、マスタSP120のバックアップとして動作できなくなる。
本実施形態のマスタSP120は、通信路152で障害が発生した場合、情報処理装置103a又は情報処理装置103bを介した別の通信路を形成し、SPデータをスタンバイSP130に送信する。別の通信路を形成するために、マスタSP120は、スレイブSP140が管理する処理装置などのハードウェア装置の状態を示す情報を指標化した値を取得する。この値は、スレイブSP140により算出される。スレイブSP140は、スレイブSP140が管理する処理装置などのハードウェア装置の状態を示す情報を指標化する際に、図9とともに後述する係数情報を用いてもよい。図1のBBシステム100では、マスタSP120は、スレイブSP140a〜140bからそれぞれ取得した値に基づいて、スレイブSP140aを選択する。マスタSP120は、通信路153aと通信路154aを用い、スレイブSP140aを介してスタンバイSP130にSPデータを送信する。
上記の実施形態のように、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152で障害が発生しても、スレイブSP140を介して、マスタSP120はSPデータをスタンバイSP130に送信できる。つまり、マスタSP120とスタンバイSP130とが同じSPデータを記憶する状態を維持することができる。マスタSP120とスタンバイSP130とが同じSPデータを記憶することで、スタンバイSP130は、マスタSP120のバックアップとして動作可能である。
以上のように、BBシステム100は、複数の処理装置を管理する複数の管理装置を含む情報処理システムの例である。マスタSP120は、複数の管理装置のうち、データ(例えば、マスタSP120のSPデータと、スレイブSP140から収集されたSPデータ)を記憶する第1の管理装置の例である。スタンバイSP130は、複数の管理装置のうち、上記データを第1の管理装置から通信路(例えば通信路152)を介して受信し、受信したデータを記憶する第2の管理装置の例である。
通信路に障害が発生すると、第1の管理装置は、他の1台以上の管理装置の中から、第1の管理装置および第2の管理装置と接続されている第3の管理装置を選択する。例えば、スレイブSP140aが第3の管理装置の例である。第3の管理装置の選択は、他の1台以上の管理装置の状態に基づいて行われる。具体的には、第3の管理装置の選択は、例えば、上記のとおりスレイブSP140a〜140bに搭載される処理装置などのハードウェア装置の状態を示す情報に基づいて行われてもよい。
第1の管理装置は、第3の管理装置を選択すると、第3の管理装置を介してデータを第2の管理装置に送信する。その結果、上記通信路に障害が発生しても、第1の管理装置から第2の管理装置へのデータ送信を継続することが可能となる。
上記のようにマスタSP120とスタンバイSP130の間のデータ同期のためにデータ送信が行われる場合、データ送信の継続によりデータ同期が維持される。データ同期が維持されていれば、マスタSP120で障害が発生した際に、マスタSP120からスタンバイSP130へのフェイルオーバが適切に行われる。
なお、上記の例とは逆に、スタンバイSP130が第1の管理装置に対応し、かつ、マスタSP120が第2の管理装置に対応するような実施形態も可能である。すなわち、スタンバイSP130が記憶するデータのマスタSP120への送信を継続するために、スタンバイSP130が、通信路の障害に応じて第3の管理装置を選択し、第3の管理装置を介してデータをマスタSP120に送信してもよい。
図2は、通信経路で障害が発生した場合のBBシステムの処理の例(その1)を説明する図である。図2のBBシステム100において、図1と同じ構成要素には、図1と同じ符号を付す。図2では、簡略化のために、I/O装置110を記載していない。I/O装置110は、情報処理装置101〜103の何れにも接続可能である。
図2のBBシステム100は、それぞれスレイブSP140a〜140nを備える情報処理装置103a〜103nを備える。図2におけるスレイブSP140a〜140nや情報処理装置103a〜103nの例示は、情報処理装置103及びスレイブSP140の数を制限する趣旨のものではない。以下では、情報処理装置103a〜103nをまとめて「情報処理装置103」と称することがある。また、以下では、スレイブSP140a〜140nをまとめて「スレイブSP140」と称することがある。
情報処理装置101は、情報処理装置103a〜103nと、それぞれの通信路153a〜通信路153nを介して接続されている。情報処理装置102は、情報処理装置103a〜103nと、それぞれ通信路154a〜通信路154nを介して接続されている。
マスタSP120は、記憶部121、同期部122、データ制御部123、検出部124を含む。スタンバイSP130は、記憶部131、同期部132、データ制御部133、検出部134を含む。スレイブSP140a〜140nは、それぞれ、記憶部141a〜141n、データ経由部142a〜142n、管理部143a〜143n、検出部144a〜144n、同期部145a〜145nを含む。以下では、記憶部141a〜141nをまとめて、「記憶部141」と称する。データ経由部142a〜142nをまとめて、「データ経由部142」と称する。管理部143a〜143nをまとめて、「管理部143」と称する。検出部144a〜144nをまとめて、「検出部144」と称する。同期部145a〜145nをまとめて、「同期部145」と称する。
スレイブSP140の管理部143は、自情報処理装置内のプロセッサ(処理装置)やメモリなどのハードウェア装置を管理する。具体的には、管理部143は、自情報処理装置103に搭載されているハードウェア装置を認識し、ハードウェア装置の故障を監視する。管理部143は、認識したハードウェア装置の情報や、パーティション(詳しくは後述する)の起動、停止などを示す情報などを、スレイブSPデータ163として記憶部141に記憶する。係数情報164(詳しくは、図9とともに説明する)は、予め記憶部141に設定されている。図2には、スレイブSPデータ163と係数情報164の例として、スレイブSP140内の記憶部141aに記憶されるスレイブSPデータ163aと係数情報164aが図示されている。
スレイブSP140の検出部144は、自情報処理装置103と接続された他情報処理装置101〜102やI/O装置110などの装置を検出し、検出した装置に関する情報も、スレイブSPデータ163として記憶部141に記憶する。検出部144は、更に、自情報処理装置103と情報処理装置101を接続する通信路153に障害が発生すると、障害を検出する。また、検出部144は、自情報処理装置103と情報処理装置102を接続する通信路154に障害が発生すると、障害を検出する。
同期部145は、定期的に、又は、スレイブSP140のスレイブSPデータ163に更新があると、スレイブSPデータ163を、マスタSP120の同期部122に送信する。同期部122は、受信したスレイブSP140のスレイブSPデータ163を記憶部121に記憶する。データ経由部142については、後述する。
スタンバイSP130の検出部134は、自情報処理装置102と接続された他情報処理装置101や103、I/O装置110などの装置を検出し、検出した装置に関する情報をスタンバイSPデータ162として記憶部131に記憶する。検出部134は、検出した情報処理装置103の情報を、経由情報166として記憶部131に記憶する。経由情報166は、通信路151に障害が発生し、スタンバイSP130が情報処理装置103a〜103nの何れかを介した別の通信路を形成する際の、選択候補となる情報処理装置の一覧情報を含む。
検出部134は、更に、通信路151、通信路152に障害が発生すると、障害を検出する。また、検出部134は、自情報処理装置102と情報処理装置103を接続する通信路154に障害が発生すると、障害を検出する。
同期部132は、定期的に、又は、スタンバイSPデータ162に更新があると、スタンバイSPデータ162をマスタSP120の同期部122に送信する。マスタSP120の同期部122は、受信したスタンバイSPデータ162を記憶部121に記憶する。データ制御部133については後述する。
マスタSP120の検出部124は、自情報処理装置101と接続された他情報処理装置102〜103、I/O装置110などの装置を検出し、検出した装置に関する情報をマスタSPデータ161として記憶部121に記憶する。検出部124は、検出した情報処理装置103の情報を、経由情報165として記憶部121に記憶する。経由情報165は、通信路152に障害が発生し、マスタSP120が情報処理装置103a〜103nの何れかを介した別の通信路を形成する際の、選択候補となる情報処理装置103の一覧情報を含む。
検出部124は、更に、通信路151、通信路152に障害が発生すると、障害を検出する。また、検出部124は、自情報処理装置101と情報処理装置103を接続する通信路153に障害が発生すると、障害を検出する。
同期部122は、定期的に、又は、マスタSPデータ161に更新があると、マスタSPデータ161をスタンバイSP130の同期部132に送信する。スタンバイSP130の同期部132は、受信したマスタSPデータ161を、記憶部131に記憶する。データ制御部123については後述する。
同期部122は、マスタSP120が故障した場合に、スタンバイSP130がマスタSP120の代替として動作できるようにするために、スタンバイSP130に、マスタSP120の記憶部121と同じSPデータを記憶させる。具体的には、同期部122は、マスタSPデータ161と、スレイブSP140a〜140nから受信したスレイブSPデータ163a〜163nとを、スタンバイSP130の同期部132に送信する。スタンバイSP130の同期部132は、同期部122から受信したマスタSPデータ161と、スレイブSPデータ163a〜163nとを、記憶部131に記憶する。スタンバイSP130は、マスタSP120が使用する最新のスレイブSPデータ163a〜163nを記憶部131に記憶することで、マスタSP120が故障してもマスタSP120の代わりにスレイブSP140a〜140nを管理できるようになる。なお、マスタSP120が故障している間は、スレイブSP140の同期部145は、スタンバイSP130の同期部132に、スレイブSPデータ163を送信する。
ここで、マスタSP120の同期部122からスタンバイSP130の同期部132にSPデータを送信するための通信路152で障害が発生した場合、通信路152を用いたマスタSP120からスタンバイSP130へのSPデータの送信ができなくなる。すると、マスタSP120が記憶するSPデータとスタンバイSP130が記憶するSPデータが異なる、という状況が生じ得る。マスタSP120とスタンバイSP130とが異なるSPデータを記憶している場合、スタンバイSP130は、マスタSP120で障害が発生すると、マスタSP120のバックアップとして動作できなくなる。
そのため、本実施形態のマスタSP120は、通信路152で障害が発生した場合、情報処理装置103a〜103nの何れかを介した(より具体的には、スレイブ140a〜140nの何れかを介した)別の通信路を形成する。この別の通信路を、以下において、代替経路と称する。代替経路を形成する処理では、まず、マスタSP120の検出部124が、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152で障害を検出すると、障害を検出したことを、データ制御部123に通知する。データ制御部123は、記憶部121に記憶されている経由情報165に含まれるマスタSP120と通信可能なスレイブSP140のデータ経由部142に計算命令を送信する。計算命令は、スレイブSP140が管理する処理装置などのハードウェア装置の状態を示す情報であるスレイブSPデータ163を、係数情報164を用いて指標化するように求める命令である。計算命令を受信したデータ経由部142は、スレイブSPデータ163と、記憶部141の係数情報164に含まれる情報とから、データ転送に悪影響を与える要因を指標化したリスク指標値を計算する。データ転送に悪影響を与える要因の例は、データ経由部142の搭載された情報処理装置103内の各ハードウェア装置の故障や、情報処理装置103内の各処理装置の負荷などである。データ経由部142は、計算したリスク指標値を、マスタSP120のデータ制御部123に送信する。
マスタSP120のデータ制御部123は、計算命令を送信した全スレイブSP140から、リスク指標値を受け取ると、該リスク指標値に基づいて記憶部121の経由情報165を更新する。マスタSP120のデータ制御部123は、リスク指標値に基づいて(詳しくは、図9とともに後述する)、1つのスレイブSP140を選択する。マスタSP120のデータ制御部123は、選択したスレイブSP140を介した代替経路を形成する。
リスク指標値は、スレイブSP140が管理する1台以上の処理装置などのハードウェア装置の状態が当該スレイブSP140を介したデータ送信に悪影響を与える程度に基づく指標値の例である。本実施形態では、リスク指標値によりスレイブSP140の状態が表される。リスク指標値により表される状態とは、換言すれば、代替経路が経由する中継点としてスレイブ140がどの程度適しているか、という度合いである。本実施形態では、リスク指標値により表される状態に基づいて、1つのスレイブSP140が選択される。
代替経路が形成されると、マスタSP120の同期部122は、スタンバイSP130に送信するSPデータ(マスタSPデータ161とスレイブSPデータ163)を、データ制御部123に出力する。データ制御部123は、同期部122から受け取ったSPデータを、選択したスレイブSP140のデータ経由部142に送信する。データ経由部142は、受信したSPデータを、スタンバイSP130のデータ制御部133に送信する。データ制御部133は、受信したSPデータを同期部132に出力する。同期部132は、データ制御部133から受け取ったSPデータを、記憶部131に記憶する。
このように、マスタSP120が代替経路を形成することで、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152で障害が発生しても、マスタSP120は、SPデータをスタンバイSP130に送信し続けることができる。マスタSP120とスタンバイSP130とが同じSPデータを記憶することで、スタンバイSP130は、マスタSP120のバックアップとして動作可能な状態を維持することができる。
図3は、情報処理装置のハードウェア構成の例(その1)を説明する図である。図1〜図2に示す情報処理装置101〜103は、同じハードウェア構成である。そのため、情報処理装置101〜103を纏めて「情報処理装置200」と称す。情報処理装置200は、CPU Memory Unit(CMU)210と、サービスプロセッサ(SP)220を備える。CPUは、Central Processing Unitの略である。
CMU210は、プロセッサ211とメモリ212を備える。プロセッサ211は、SP220により管理される処理装置の例である。プロセッサ211は、任意の処理回路であってよく、例えばCentral Processing Unit(CPU)であってもよい。メモリ212は、プロセッサ211の動作により得られたデータや、プロセッサ211の処理に用いられるデータを、適宜記憶する。
なお、図3には情報処理装置200が1つのCMU210を有する例が示されているが、情報処理装置200が2つ以上のCMU210を有していてもよい。また、1つのCMU210が2つ以上のプロセッサ211を有していてもよい。
SP220は、プロセッサ221とメモリ222を備える。プロセッサ221は、任意の処理回路であってよく、例えばCentral Processing Unit(CPU)であってもよい。マスタSP120において、プロセッサ221は、プログラムを実行することにより、検出部124、同期部122、データ制御部123として動作する。スタンバイSP130において、プロセッサ221は、プログラムを実行することにより、検出部134、同期部132、データ制御部133として動作する。スレイブSP140において、プロセッサ221は、プログラムを実行することにより、同期部145、検出部144、データ経由部142、管理部143として動作する。
マスタSP120において、メモリ222は、記憶部121として使われ、スタンバイSP130のSPデータのコピー、スレイブSP140のSPデータのコピー、マスタSP120のSPデータ及び経由情報165を保持する。スタンバイSP130において、メモリ222は、記憶部131として使われ、スタンバイSP130のSPデータ、スレイブSP140のSPデータのコピー、マスタSP120のSPデータのコピー及び経由情報165を保持する。スレイブSP140において、メモリ222は、記憶部141として使われ、スレイブSP140のSPデータと係数情報164を保持する。さらに、メモリ222は、プロセッサ221の動作により得られたデータや、プロセッサ221の処理に用いられるデータも、適宜、記憶する。
図4は、情報処理装置のハードウェア構成の例(その2)を説明する図である。情報処理装置200は、プロセッサ11、メモリ12、バス15、外部記憶装置16、ネットワーク接続装置19、SP20を備える。さらにオプションとして、情報処理装置200は、入力装置13、出力装置14、媒体駆動装置17を備えてもよい。あるいは、入力装置13、出力装置14、媒体駆動装置17のうち少なくとも1つが情報処理装置200の外部にあって情報処理装置200に接続されていてもよい。情報処理装置200は、例えば、コンピュータなどで実現されることがある。
プロセッサ11は、図3のCMU210のプロセッサ211である。メモリ12は、CMU210のメモリ212である。プロセッサ11は、例えば、外部記憶装置16に記憶されたプログラムをメモリ12にロードして実行することができる。ネットワーク接続装置19は、他の装置との通信に使用される。ネットワーク接続装置19は、例えば、ネットワークアダプタなどの通信回路である。SP20は、図3のSP220である。
入力装置13は、例えば、ボタン、キーボード、マウス等であってもよく、出力装置14は、ディスプレイなどであってもよい。バス15は、プロセッサ11、メモリ12、入力装置13、出力装置14、外部記憶装置16、媒体駆動装置17、ネットワーク接続装置19、SP20の間を相互にデータの受け渡しが行えるように接続する。SP20は、ネットワーク接続装置19(およびケーブル等の物理的通信路)を介して、他の情報処理装置200に搭載された他のSP20と通信することが可能である。外部記憶装置16には、プログラムやデータなどが格納される。外部記憶装置16は、例えば、Hard Disk Drive(HDD)でもよく、Solid-State Drive(SSD)でもよい。外部記憶装置16に格納されている情報は、適宜、プロセッサ11などに提供される。媒体駆動装置17は、メモリ12や外部記憶装置16に記憶されているデータを可搬型記録媒体18に送信することができ、また、可搬型記録媒体18からプログラムやデータ等を読み出すことができる。ここで、可搬型記録媒体18は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)などの、持ち運びが可能な任意の記録媒体とすることができる。可搬型記録媒体18はフラッシュメモリなどの半導体メモリカードであってもよく、媒体駆動装置17はメモリカード用のリーダ及びライタであってもよい。
図5は、通信路で障害が発生した場合のBBシステムの処理の例(その2)を説明する図である。図5のBBシステム100において、図2と同じ構成要素には、図2と同じ符号を付す。
スタンバイSP130の同期部132からマスタSP120の同期部122にSPデータを送信するための通信路151で障害が発生した場合、通信路151を用いたスタンバイSP130からマスタSP120へのSPデータの送信ができなくなる。すると、マスタSP120が記憶するSPデータとスタンバイSP130が記憶するSPデータが異なる、という状況が生じ得る。マスタSP120とスタンバイSP130とが異なるSPデータを記憶している場合、スタンバイSP130は、マスタSP120で障害が発生すると、マスタSP120のバックアップとして動作できなくなる。
そのため、本実施形態のスタンバイSP130は、通信路151で障害が発生した場合、障害が発生した通信路151の代替経路を形成する処理を開始する。代替経路を形成する処理では、まず、スタンバイSP130の検出部134が、スタンバイSP130からマスタSP120にSPデータを送信するための通信路151で障害を検出すると、障害を検出したことを、データ制御部133に通知する。データ制御部133は、記憶部131に記憶されている経由情報166に基づいて、スタンバイSP130と通信可能なスレイブSP140を特定する。データ制御部133は、特定したスレイブSP140のデータ経由部142に、スレイブSPデータ163を、係数情報164を用いて指標化するように求める計算命令を送信する。計算命令を受信したデータ経由部142は、スレイブSPデータ163と、記憶部141の係数情報164とから、データ転送に悪影響を与える要因を指標化したリスク指標値を計算する。データ経由部142は、計算したリスク指標値を、スタンバイSP130のデータ制御部133に送信する。
スタンバイSP130のデータ制御部133は、計算命令を送信した全スレイブSP140から、リスク指標値を受け取ると、該リスク指標値に基づいて記憶部131の経由情報166を更新する。スタンバイSP130のデータ制御部133は、リスク指標値に基づいて(詳しくは、図9とともに後述する)、1つのスレイブSP140を選択する。スタンバイSP130のデータ制御部133は、選択したスレイブSP140を介した代替経路を形成する。
代替経路が形成されると、スタンバイSP130の同期部132は、マスタSP120に送信するSPデータ(スタンバイSPデータ162)を、スタンバイSP130のデータ制御部133に出力する。スタンバイSP130のデータ制御部133は、同期部132から受け取ったSPデータを、選択したスレイブSP140のデータ経由部142に送信する。データ経由部142は、受信したSPデータを、マスタSP120のデータ制御部123に送信する。マスタSP120のデータ制御部123は、受信したSPデータを同期部122に出力する。同期部122は、データ制御部123から受け取ったSPデータを、記憶部121に記憶する。
このように、スタンバイSP130が代替経路を形成することで、スタンバイSP130からマスタSP120にSPデータを送信するための通信路151で障害が発生しても、スタンバイSP130は、SPデータをマスタSP120に送信し続けることができる。マスタSP120とスタンバイSP130とが同じSPデータを記憶することで、スタンバイSP130は、マスタSP120のバックアップとして動作可能な状態を維持することができる。
なお、図2と図5のBBシステム100では、SPデータの送信元となるマスタSP120又はスタンバイSP130が、SPデータの送信に使用する通信路の障害を検出し、代替経路を形成する。送信元となるSPが代替経路を形成することで、マスタSP120とスタンバイSP130は、同じSPデータを記憶することができる。
図6は、通信路で障害が発生した場合のBBシステムの処理の例(その3)を説明する図である。図6のBBシステム100において、図2と同じ構成要素には、図2と同じ符号を付す。図6のBBシステム100は、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152と、スタンバイSP130からマスタSP120にSPデータを送信するための通信路151の双方で障害が発生した場合の例である。
マスタSP120の検出部124は、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152で障害を検出すると、障害を検出したことを、データ制御部123に通知する。同様に、スタンバイSP130の検出部134は、スタンバイSP130からマスタSP120にSPデータを送信するための通信路151で障害を検出すると、障害を検出したことを、データ制御部133に通知する。
データ制御部123は、記憶部121に記憶されている経由情報165に基づいて、マスタSP120と通信可能なスレイブSP140を特定する。データ制御部123は、特定したスレイブSP140のデータ経由部142に、スレイブSPデータ163を、係数情報164を用いて指標化するように求める計算命令を送信する。
データ制御部133は、記憶部131に記憶されている経由情報166に基づいて、スタンバイSP130と通信可能なスレイブSP140を特定する。データ制御部133は、特定したスレイブSP140のデータ経由部142に、スレイブSPデータ163を、係数情報164を用いて指標化するように求める計算命令を送信する。なお、データ制御部123及びデータ制御部133の処理は、異なる情報処理装置内で実行されるため、実行タイミングは異なってよい。
データ経由部142は、マスタSP120のデータ制御部123からの計算命令を受けると、リスク指標値を計算し、計算したリスク指標値を、マスタSP120のデータ制御部123に送信する。また、データ経由部142は、スタンバイSP130のデータ制御部133からの計算命令を受けると、リスク指標値を計算し、計算したリスク指標値を、スタンバイSP130のデータ制御部133に送信する。
なお、スレイブSP140のデータ経由部142は、リスク指標値を送信する際に、併せて、スレイブSP140自身が既に代替経路として選択済みであるかを示す予約情報を送信する。
マスタSP120のデータ制御部123は、計算命令を送信した全スレイブSP140から、リスク指標値及び予約情報を受け取ると、記憶部121の経由情報165に、リスク指標値及び予約情報を追加する。マスタSP120のデータ制御部123は、リスク指標値に基づいて(詳しくは、図9とともに後述する)、1つのスレイブSP140bを選択する。なお、既に代替経路として選択されていることが予約情報により示されているスレイブSP140は、選択対象から外される。マスタSP120のデータ制御部123は、選択したスレイブSP140bを介した代替経路を形成する。選択されたスレイブSP140bは、代替経路を形成する処理の際に、スレイブSP140b自身が代替経路として選択されたことを示す情報を、係数情報164として記憶部141bに記憶する。マスタSP120のデータ制御部123は、代替経路の形成が完了すると、代替経路の形成が完了したことを示すように、記憶部121の経由情報165を更新する。
スタンバイSP130のデータ制御部133は、計算命令を送信した全スレイブSP140から、リスク指標値及び予約情報を受け取ると、記憶部131の経由情報166に、リスク指標値の情報及び予約情報を追加する。スタンバイSP130のデータ制御部133は、リスク指標値に基づいて(詳しくは、図9とともに後述する)、1つのスレイブSP140aを選択する。なお、既に代替経路として選択されていることが予約情報により示されているスレイブSP140bは、選択対象から外される。スタンバイSP130のデータ制御部133は、選択したスレイブSP140aを介した代替経路を形成する。選択されたスレイブSP140aは、代替経路を形成する処理の際に、スレイブSP140a自身が代替経路として選択されたことを示す情報を、スレイブSPデータ163として記憶部141aに記憶する。スタンバイSP130のデータ制御部133は、代替経路の形成が完了すると、代替経路の形成が完了したことを示すように、記憶部131の経由情報165を更新する。
なお、BBシステム100に、スレイブSP140が1つしかない場合は、マスタSP120とスレイブSP140は、予約情報によらず、その1つのスレイブSP140を代替経路として選択する。
代替経路が形成されると、マスタSP120の同期部122は、スタンバイSP130に送信するSPデータ(マスタSPデータ161とスレイブSPデータ163a〜163n)を、データ制御部123に出力する。データ制御部123は、同期部122から受け取ったSPデータを、選択したスレイブSP140bのデータ経由部142bに送信する。データ経由部142bは、受信したSPデータを、スタンバイSP130のデータ制御部133に送信する。データ制御部133は、受信したSPデータを同期部132に出力する。同期部132は、データ制御部133から受け取ったSPデータを、記憶部131に記憶する。
同様に、スタンバイSP130の同期部132は、マスタSP120に送信するSPデータ(スタンバイSPデータ162)を、スタンバイSP130のデータ制御部133に出力する。スタンバイSP130のデータ制御部133は、同期部132から受け取ったSPデータを、選択したスレイブSP140aのデータ経由部142aに送信する。データ経由部142aは、受信したSPデータを、マスタSP120のデータ制御部123に送信する。マスタSP120のデータ制御部123は、受信したSPデータを同期部122に出力する。同期部122は、データ制御部123から受け取ったSPデータを、記憶部121に記憶する。
このように、SPデータの送信元となるマスタSP120又はスタンバイSP130が、SPデータの送信に使用する通信路の障害を検出し、代替経路を形成する。送信元となるSPが代替経路を形成することで、マスタSP120とスタンバイSP130は、同じSPデータを記憶することができる。マスタSP120とスタンバイSP130とが同じSPデータを記憶することで、スタンバイSP130は、マスタSP120のバックアップとして動作可能な状態を維持することができる。また、既に代替経路として選択されていることが予約情報により示されているスレイブSP140が、選択対象から外されることで、同じスレイブSP140が代替経路として二重に選ばれることを防ぐことができる。1つのスレイブSP140が2つの代替経路の中継点として二重に選択されることを防ぐことにより、データ送信を中継するためにスレイブSP140にかかる負荷が過大になることを防ぐことができる。
図7は、代替経路を形成する処理の例を説明する図である。図7のBBシステム100において、図2と同じ構成要素には、図2と同じ符号を付す。
図7のBBシステム100では、通信路151で障害が発生している。そのため、スタンバイSP130は、1つのスレイブSP140を選択し、選択したスレイブSP140を介した代替経路の形成を開始する。以下に、代替経路の形成処理を、順番に示す。
ステップS1で、スタンバイSP130のデータ制御部133は、自スタンバイSP130内の同期部132に、SPデータを送信する処理を停止するよう求める停止命令を出力する。停止命令により、スタンバイSP130の同期部132から、マスタSP120の同期部122へのデータ送信が停止される。
ステップS2で、スタンバイSP130のデータ制御部133は、同期部132に設定されている接続先情報を、バックアップ166として記憶部131に記憶する。同期部132に設定されている接続先情報は、通信路151に対応する情報処理装置101側のInternet Protocol address(IP)アドレスやPort番号などを含む。
ステップS3で、スタンバイSP130のデータ制御部133は、同期部132の接続先情報に、データ制御部133に割り当てられているIPアドレスとPort番号を設定する。
ステップS4で、スタンバイSP130のデータ制御部133は、同期部132を再起動する。
再起動により、ステップS5で、スタンバイSP130の同期部132は、ステップS3で接続先情報として設定されたIPアドレスとPort番号を認識し、データ制御部133との間の通信路を形成する。同期部132とデータ制御部133との間の通信路は、具体的には、ソケットを利用したプロセス間通信のための論理的な通信路である。なお、同期部132の再起動に伴い、通信路152も一度切断されるが、リトライ処理などで自動的に通信路152は再形成される。つまり、通信路152上のコネクションは一度切断されるが、通信路152を実現するための物理的なケーブルには障害がないため、通信路152上のコネクションはリトライ処理などにより再確立される。通信路152上のコネクションは、具体的には、例えばTransmission Control Protocol(TCP)コネクションである。
ステップS6で、スタンバイSP130のデータ制御部133は、記憶部131に記憶されている経由情報165を参照し、選択(予約)されたスレイブSP140を特定する。
ステップS7で、スタンバイSP130のデータ制御部133は、選択されたスレイブSP140のデータ経由部142に、代替経路の形成依頼を送信する。
ステップS8で、スレイブSP140のデータ経由部142は、マスタSP120のデータ制御部123に、データ経由部142に設定されているIPアドレスやPort番号を含む接続先情報、及び代替経路の形成依頼を、送信する。ここで、データ経由部142のIPアドレスを、192.168.200とし、ポート番号を、1001とする。そのため、ステップS8では、スレイブSP140のデータ経由部142は、IPアドレスが192.168.200で、ポート番号が1001の接続先情報を、マスタSP120のデータ制御部123に送信する。
ステップS9で、マスタSP120のデータ制御部123は、代替経路の形成依頼を受信すると、IPアドレスが192.168.200で、ポート番号が1001の接続先情報を用いて、スレイブSP140との間の通信路を形成する。具体的には、データ制御部123は、データ制御部123とデータ経由部142の間のコネクションを確立する。
ステップS10で、マスタSP120のデータ制御部123は、同期部122との通信路を形成する。同期部122とデータ制御部123との間の通信路は、具体的には、ソケットを利用したプロセス間通信のための論理的な通信路である。
ステップS11で、マスタSP120のデータ制御部123は、スレイブSP140のデータ経由部142に、代替経路の形成依頼に対応する処理が完了したことを示す情報を送信する。
ステップS12で、マスタSP120のデータ制御部123は、選択(予約)されたスレイブSP140が、代替経路として選択済みであることを示す情報を、記憶部121の経由情報165に追加する。ステップS12の処理は、ステップS11と並列されて行われてもよい。また、ステップS12の処理は、ステップS11よりも先に行われても良い。
ステップS13で、スレイブSP140のデータ経由部142は、スタンバイSP130のデータ制御部133に、マスタSP120のデータ制御部123側で代替経路の形成依頼に対応する処理が完了したことを示す情報を送信する。併せて、スレイブSP140のデータ経由部142は、データ経由部142に設定されているIPアドレスやPort番号を含む接続先情報を、スタンバイSP130のデータ制御部133に送信する。データ経由部142は、スレイブSP140のデータ制御部123に送信する接続先情報は、ステップS8の接続先情報とは、ポート番号が異なる。例えば、ステップS13で送信する接続先情報は、データ経由部142のIPアドレスを、192.168.200とポート番号を、1000である。
ステップS14で、スタンバイSP130のデータ制御部133は、受信した接続情報に含まれるIPアドレスやPort番号を用いて、スレイブSP140との間の通信路を形成する。具体的には、データ制御部133は、データ制御部133とデータ経由部142の間のコネクションを確立する。
以上のように、データ経由部142とマスタSP120のデータ制御部123との間の通信路をデータ制御部123が形成するとともに、データ経由部142とスタンバイSP130のデータ制御部133との間の通信路をデータ制御部133が形成する。その結果、スレイブSP140(より具体的にはデータ経由部142)は、マスタSP120とスタンバイSP130の間のデータの送受信を中継することが可能となる。
なお、図7は、通信路151で障害が発生した場合の例である。通信路152で障害が発生した場合は、ステップS1〜S7・S14と同様の処理をマスタSP120が行い、ステップS8・S10・S12と同様の処理をスタンバイSP130が行う。また、通信路152で障害が発生した場合は、ステップS8の送信はスレイブSP140からスタンバイSP130への送信に置き換えられ、ステップS13の送信はスレイブSP140からマスタSP120への送信に置き換えられる。
図8は、経由情報の例を説明する図である。マスタSP120の経由情報165及びスレイブSP130の経由情報166は、自SPが通信可能なスレイブSP140についての情報、スレイブSP140への問い合わせが済んだか否かを示す問い合わせ情報、経由状況情報、リスク指標値、選択情報を含む。図8の経由情報の例は、図5に示すスタンバイSP130の経由情報166の例である。
図8の経由情報には、スタンバイSP130が通信可能なスレイブSP140として、スレイブSP140a〜140nを示す情報(例えばスレイブSP140a〜140nそれぞれの識別子)が含まれる。スタンバイSP130の経由情報166は、スタンバイSP130が通信可能なスレイブSP140の情報として、検出部134が検出した情報処理装置103a〜103nにそれぞれ搭載されたスレイブSP140a〜140nの各々を示す情報を含む。なお、マスタSP120の経由情報165では、マスタSP120が通信可能なスレイブSP140の情報として、検出部124が検出した情報処理装置103a〜103nにそれぞれ搭載されたスレイブSP140a〜140nの各々を示す情報が含まれる。
図8の経由情報の例は、スタンバイSP130が通信可能なスレイブSP140の各々への問い合わせが済んだか否かを示す問い合わせ情報を含む。問い合わせ情報は、スタンバイSP130のデータ制御部133がスレイブSP140に、スレイブSPデータ163を、係数情報164を用いて指標化するように求める計算命令を、既に送信したかどうかを示す情報である。スタンバイSP130のデータ制御部133が、既にスレイブSP140に対して計算命令を送信済みである場合、問い合わせ情報には、計算命令が送信済みであることを示す「済」が設定される。スレイブSP140に対して計算命令がまだ送信されていない場合、問い合わせ情報には、計算命令が送信されていないことを示す「未」が設定される。なお、マスタSP120の経由情報165でも、同様に、スレイブSP140に対して計算命令が送られているかを示す情報が、問い合わせ情報に設定される。
図8の経由情報は、スタンバイSP130が通信可能なスレイブSP140の各々に対応する経由状況情報を含む。経由状況情報は、各スレイブSP140の通信状況を示す情報である。経由状況情報は、「経由OK」、「経由NG」、「経由予約中」、「経由中」、「不明」などの値により示される。経由状況情報は、リスク指標値の計算命令に応じて、スレイブSP140から受信される。「経由OK」は、スレイブSP140が、マスタSP120とスタンバイSP130の両方と通信可能であることを示す。「経由NG」は、スレイブSP140が、マスタSP120又はスタンバイSP130の少なくともどちらか一方と、通信ができない状態を示す。スタンバイSP130の経由情報166内における「経由予約中」は、マスタSP120側からスレイブSP140が代替経路の形成依頼を受けている状態を示す。なお、マスタSP120の経由情報165における「経由予約中」は、スタンバイSP130側からスレイブSP140が代替経路の形成依頼を受けている状態を示す。「経由中」は、該スレイブSP140が、既に代替経路として使用されていることを示す。「不明」は、スレイブSP140がマスタSP120及びスタンバイSP130と通信可能であるか否かということが、未確認であるため不明である、ということを示す。また、「不明」は、スレイブSP140に搭載されている処理装置などのハードウェア装置の状態が不明であることも示す。
リスク指標値は、スレイブSP140のデータ経由部142が、記憶部141の係数情報164に含まれる情報を用いて、スレイブSPデータ163から、データ転送に悪影響を与える要因を指標化した値である(詳しくは、図9とともに後述する)。リスク指標値は、スレイブSP140からスタンバイSP130に送信され、経由情報165の一部として記憶部131に書き込まれる。リスク指標値は、データ転送に悪影響を与える要因を指標化した値であるため、数値が小さい(悪影響が少ない)ものほど好ましい。図8の経由情報166では、スレイブSP140aに対するリスク指標値は1、スレイブSP140bに対するリスク指標値は25、スレイブSP140nに対するリスク指標値は20である。すると、リスク指標値が最も小さいスレイブSP140aが、データ転送に悪影響を与える要因が少なく、データを中継するのに望ましいと判断できる。そのため、マスタSP120のデータ制御部123及びスタンバイSP130のデータ制御部133は、代替経路を形成するために用いるスレイブSP140を選択する場合に、リスク指標値の値が最も小さいスレイブSP140を選択する。
選択情報は、各スレイブSP140が、代替経路として選択されているかを示す情報である。マスタSP120のデータ制御部123及びスタンバイSP130のデータ制御部133は、代替経路の形成に用いたスレイブSP140に対応する選択情報に、「選択」を設定する。なお、代替経路として用いられないスレイブSP140に対応する選択情報には、「未選択」が設定される。
図9は、係数情報の例を説明する図である。係数情報164は、スレイブSP140の記憶部141に予め設定されている。係数情報164は、スレイブSP140が搭載されている自情報処理装置103の状態を指標化するために用いられる。
スレイブSP140は、自情報処理装置内のプロセッサ(処理装置)やメモリなどのハードウェア装置を管理する。実際には、スレイブSP140は、各処理装置などのハードウェア装置を管理する管理部143を備える。データ経由部142は、マスタSP120のデータ制御部123又はスタンバイSP130のデータ制御部133から計算命令を受信すると、管理部143に、各ハードウェア装置の状態を問い合わせる。データ経由部142は、管理部143から各処理装置の状態を示す情報(すなわち、スレイブSPデータ163の少なくとも一部)を受け取ると、管理部143から受け取った情報と記憶部141内の係数情報164とを用いて、リスク指標値を算出する。
ここで、係数情報164は、処理装置などのハードウェア装置の状態を示す情報と、その状態情報により示される状態がスレイブSP140を介したデータ送信に悪影響を与える程度を指標化した指標値と、を含む。換言すれば、各指標値は、各状態に対応する係数である。ハードウェア装置の状態には、以下のような例がある。
・パーティションON実行中(高負荷処理中)
・パーティションON実行中(低負荷処理中)
・パーティションON状態
・パーティションOFF実行中
・パーティションOFF状態
・一部のハードウェア装置が故障
・I/O装置が接続されている状態
・4つの情報処理装置が1つのパーティションに所属
・3つの情報処理装置が1つのパーティションに所属
・2つの情報処理装置が1つのパーティションに所属
・1つの情報処理装置が1つのパーティションに所属
上記のような、ハードウェア装置の状態情報の各々に対応して、係数情報164では、指標値が設定されている。1つのパーティションには1つ以上の情報処理装置が所属し、1つのパーティション上では1つのOperating System(OS)が実行される。具体的には、1つのパーティションに所属する1つ以上の情報処理装置に搭載された1つ以上の処理装置により、1つのOSが実行される。こうして、1つのパーティションに所属する1つ以上の情報処理装置により、論理的に1つの情報処理装置が実現される。
パーティションONとは、1つ以上の情報処理装置を、論理的に1つの情報処理装置として動作させるための処理であり、論理的にパーティションを形成する処理である。パーティションON実行(準備)処理は、高負荷の期間と、低負荷の期間に分けられる。高負荷の期間のほうが、低負荷の期間よりも、データ送信に悪影響を及ぼす。そのため、図9の係数情報164では、「パーティションON実行中(高負荷処理中)」の指標値は50であり、「パーティションON実行中(低負荷処理中)」の指標値は40である。「パーティションON状態」では、1つ以上の情報処理装置を論理的に1つの情報処理装置として動作させる環境が既に整っているため、情報処理装置に対するパーティション設定の処理は行われない。「パーティションON実行中」よりも「パーティションON状態」の方が、データ送信に悪影響を及ぼす要因が少ない。そのため、「パーティションON状態」には、指標値30が設定されている。
「パーティションOFF実行中」は、論理的に1つの情報処理装置として動作していた環境を止める処理を実行している最中であることを示す。「パーティションOFF実行中」は、OSが停止されるため、OSが実行されている「パーティションON状態」よりもデータ送信に悪影響を及ぼす要因が少ない。そのため、「パーティションOFF実行中」には、指標値20が設定されている。「パーティションOFF状態」は、既にパーティションOFF処理が完了しているため、各情報処理装置が、パーティションに関連する処理をしていない状態である。「パーティションOFF状態」は、「パーティションOFF実行中」よりもデータ送信に悪影響を及ぼす要因が少ない。そのため、「パーティションOFF状態」には、指標値10が設定されている。
スレイブSP140が搭載されている情報処理装置103に含まれる処理装置のうち、一部のハードウェア装置が故障している場合は、当該スレイブSP140を介したデータ送信に悪影響があることが考えられる。そのため、一部のハードウェア装置が故障している場合の指標値には、100が設定されている。スレイブSP140が搭載されている情報処理装置103にI/O装置が接続されている場合、スレイブSP140内の該I/O装置を別の処理に使用する可能性があるため、スレイブSP140のデータ送信処理に悪影響が及ぶことが考えられる。そのため、I/O装置が接続されている場合の指標値には、20が設定されている。
係数情報164では、更に、パーティションに所属する情報処理装置の数に応じて、指標値が設定されている。例えば、ある処理装置が搭載されている情報処理装置が所属するパーティションに所属する情報処理装置の数が3のとき、当該処理装置の状態情報は、「3つの情報処理装置が1つのパーティションに所属」と表される。例えば、情報処理装置が4つあると、4つの情報処理装置のうち少なくとも1つの情報処理装置に障害が発生する確率は、情報処理装置が1つの場合の約4倍となる。そのため、1つのパーティションに所属する情報処理装置が4つの場合、指標値は40と設定されている。1つのパーティションに所属する情報処理装置が1つの場合、指標値は10と設定されている。
なお、上記の指標値に設定されている値は、変更可能であり、数値を限定するものではない。また、処理装置などのハードウェア装置の状態も、更に異なる状態を示す情報があってよい。
データ経由部142は、スレイブSPデータ163により表される処理装置の状態に対応した指標値を足し合わせることで、リスク指標値を算出する。マスタSP120のデータ制御部123及びスレイブSP130のデータ制御部133は、データ経由部142からリスク指標値を受信すると、リスク指標値の小さい情報処理装置103(より具体的にはスレイブSP140)を、代替経路の形成のために選択する。
図10は、マスタSPの代替経路形成処理の例を説明するフローチャートである。検出部124は、同期部122が同期部132にSPデータを送信するのに用いる通信路152の障害がある場合に、障害があることを検出する(ステップS101)。通信路152に障害がない場合(ステップS101でNO)、検出部124は、ステップS101の処理(すなわち通信路152の監視)を繰り返す。通信路152に障害がある場合(ステップS101でYES)、検出部124は、データ制御部123に、障害が発生していることを通知する(ステップS102)。
データ制御部123は、経由情報165を参照し、マスタSP120と通信可能なスレイブSP140があるかを判定する(ステップS103)。マスタSP120と通信可能なスレイブSP140がない場合(ステップS103でNO)、マスタSP120は、代替経路形成処理を終了する。マスタSP120と通信可能なスレイブSP1401つ以上がある場合(ステップS103でYES)、データ制御部123は、通信可能な全スレイブSP140に、リスク指標値を計算するよう求める計算命令を送信する(ステップS104)。
データ制御部123は、リスク指標値を、通信可能な全スレイブSP140から受信したかを判定する(ステップS105)。通信可能な全スレイブSP140からリスク指標値を受信していない場合(ステップS105でNO)、データ制御部123は、ステップS105の処理を繰り返す。通信可能な全スレイブSP140からリスク指標値を受信した場合(ステップS105でYES)、データ制御部123は、リスク指標値の最も小さいスレイブSP140を選択する(ステップS106)。
データ制御部123は、選択したスレイブSP140を用いて代替経路を形成する(ステップS107)。代替経路を形成すると、データ制御部123は、代替経路形成処理を終了する。代替経路が形成されると、マスタSP120の同期部122は、データ制御部123と代替経路を介して、スタンバイSP130のデータ制御部133にSPデータを送信する。
図11は、スタンバイSPの代替経路形成処理の例を説明するフローチャートである。検出部134は、同期部132が同期部122にSPデータを送信するのに用いる通信路151の障害がある場合に、障害があることを検出する(ステップS201)。通信路151に障害がない場合(ステップS201でNO)、検出部134は、ステップS201の処理(すなわち通信路151の監視)を繰り返す。通信路151に障害がある場合(ステップS201でYES)、検出部134は、データ制御部133に、障害が発生していることを通知する(ステップS202)。
データ制御部133は、経由情報166を参照し、スタンバイSP130と通信可能なスレイブSP140があるかを判定する(ステップS203)。スタンバイSP130と通信可能なスレイブSP140がない場合(ステップS203でNO)、スタンバイSP130は、代替経路形成処理を終了する。スタンバイSP130と通信可能なスレイブSP1401つ以上がある場合(ステップS203でYES)、データ制御部133は、通信可能な全スレイブSP140に、リスク指標値を計算するよう求める計算命令を送信する(ステップS204)。
データ制御部133は、リスク指標値を、通信可能な全スレイブSP140から受信したかを判定する(ステップS205)。通信可能な全スレイブSP140からリスク指標値を受信していない場合(ステップS205でNO)、データ制御部133は、ステップS205の処理を繰り返す。通信可能な全スレイブSP140からリスク指標値を受信した場合(ステップS205でYES)、データ制御部133は、リスク指標値の最も小さいスレイブSP140を選択する(ステップS206)。
データ制御部133は、選択したスレイブSP140を用いて代替経路を形成する(ステップS207)。ステップS207の詳細は、図7を参照して説明したとおりである。代替経路を形成すると、データ制御部133は、代替経路形成処理を終了する。代替経路が形成されると、スタンバイSP130の同期部132は、データ制御部133と代替経路を介して、マスタSP120のデータ制御部123にSPデータを送信する。
図12A及び図12Bは、スレイブSPのリスク指標値の算出処理の例を説明するフローチャートである。データ経由部142は、マスタSP120のデータ制御部123又はスタンバイSP130のデータ制御部133からリスク指標値を算出するようい求める計算命令を受信すると、図12A〜12Bの算出処理を開始する。
検出部144は、スレイブSP140が、マスタSP120とスタンバイSP130の双方と通信可能かを判定する(ステップS301)。スレイブSP140がマスタSP120とスタンバイSP130の双方と通信可能な場合(ステップS301でYES)、データ経由部142は、情報処理装置103に搭載された各ハードウェア装置の状態を管理部143に問い合わせる(ステップS302)。データ経由部142は、各ハードウェア装置の状態を示すスレイブSPデータ163を管理部143から受け取る。そして、データ経由部142は、受け取ったスレイブSPデータ163により表されるハードウェア装置の状態に対応する指標値が、係数情報164に含まれるかを判定する(ステップS303)。なお、データ経由部142は、少なくとも1台のハードウェア装置について、当ハードウェア装置の状態に対応する指標値が係数情報164に含まれるかを判定する。処理装置の状態に対応する指標値が係数情報164に含まれない場合(ステップS303でNO)、データ経由部142は、計算命令の送信元であるデータ制御部123又はデータ制御部133に、「不明」を示す情報を送信する(ステップS304)。スレイブSP140がマスタSP120とスタンバイSP130のうち少なくとも一方と通信できない場合(ステップS301でYES)、データ経由部142は、計算命令の送信元であるデータ制御部123又はデータ制御部133に、「経由NG」を示す情報を送信する(ステップS305)。ステップS304又はステップS305の処理が完了すると、スレイブSP140は、リスク指標値の算出処理を終了する。
少なくとも1台以上のハードウェア装置の状態に対応する指標値が状態情報164に含まれる場合(ステップS303でYES)、データ経由部142は、ハードウェア装置の状態に対応する指標値を全て足し合わせることでリスク指標値を算出する(ステップS306)。なお、ハードウェア装置が複数台ある場合には、各ハードウェア装置の状態に対応するリスク指標値を、更に合計する。データ経由部142は、データ経由部142を含むスレイブSP140が搭載された自情報処理装置103が、すでに経由予約中又は経由中かを判定する(ステップS307)。なお、「経由予約中」・「経由中」などの情報は、データ経由部142の内部データとして保持されている。
該情報処理装置103が、経由予約中や経由中でない場合(ステップS307でNO)、データ経由部142は、リスク指標値と「経由OK」を示す予約情報を、計算命令の送信元であるデータ制御部123又はデータ制御部133に送信する(ステップS308)。該情報処理装置103が経由予約中または経由中である場合(ステップS307でYES)、データ経由部142は、データ経由部142を含むスレイブSP140が搭載された情報処理装置103が経由中であるかを判定する(ステップS309)。該情報処理装置103が経由中でない場合(ステップS309でNO)、データ経由部142は、リスク指標値と「経由予約中」を示す予約情報を、計算命令の送信元であるデータ制御部123又はデータ制御部133に送信する(ステップS310)。該情報処理装置103が経由中の場合(ステップS309でYES)、データ経由部142は、リスク指標値と「経由中」を示す予約情報を、計算命令の送信元であるデータ制御部123又はデータ制御部133に送信する(ステップS311)。ステップS308、ステップS310又はステップS311の処理が完了すると、スレイブSP140は、リスク指標値の算出処理を終了する。
図13A及び図13Bは、スレイブSPの選択処理の例を説明するフローチャートである。図12A及び図12Bに示したように、リスク指標値と経由状態を示す予約情報がスレイブSP140からマスタSP120のデータ制御部123又はスタンバイSP130のデータ制御部133に送信される。リスク指標値と予約情報を受信すると、マスタSP120のデータ制御部123又はスタンバイSP130のデータ制御部133は、受信したリスク指標値と予約情報にしたがって、経由情報165内の経由状況情報とリスク指標値を更新する。経由情報165の更新後、データ制御部123又はデータ制御部133は図13A及び図13Bの選択処理を開始する。以下では説明の便宜上、マスタSP120のデータ制御部123がスレイブSP140の選択処理を開始する場合について、具体的に説明する。
マスタSP120のデータ制御部123は、経由情報165を参照し、経由OKのスレイブSP140があるかを判定する(ステップS401)。経由OKのスレイブSP140についてのエントリが経由情報165に含まれる場合(ステップS401でYES)、データ制御部123は、経由情報165を参照し、経由OKのスレイブSP140の中でリスク指標値の数値が一番小さいスレイブSP140を選択する(ステップS402)。データ制御部123は、選択したスレイブSP140のデータ経由部142に、代替経路の形成依頼を送信する(ステップS403)。
例えば図6に例示したように、通信路151と通信路152にほぼ同時に障害が発生した場合、リスク指標値の計算命令が、データ制御部123とデータ制御部133の各々からほぼ同時にデータ経由部142に送信される。この場合、リスク指標値と「経由OK」という予約情報が、データ経由部142から、データ制御部123とデータ制御部133の各々に対して、ほぼ同時に送信され得る。また、この場合、図7のステップS7に関して説明した代替経路の形成依頼も、データ制御部123とデータ制御部133の各々からほぼ同時にデータ経由部142に送信され得る。つまり、データ制御部123とデータ制御部133の各々が、ほぼ同時にステップS403の処理を実行する場合があり得る。この場合、データ経由部142は、先に受信した形成依頼にしたがって、図7のステップS8〜S13のような処理を行う。
例えば、データ経由部142がデータ制御部133から先に形成依頼を受信した場合、データ経由部142は、図7のステップS13に示すように、形成依頼に対応する処理が完了したことをデータ制御部133に通知する。この通知は、換言すれば、形成依頼に対する「OK」という返答である。また、データ経由部142がデータ制御部133から先に形成依頼を受信した場合、データ経由部142は、データ制御部123に対しては、「NG」という返答を返す。「NG」という返答は、データ経由部142が既に「経由予約中」であるためデータ制御部123からの形成依頼に応えられないことを示す。
ステップS403〜S406は、通信路151と通信路152にほぼ同時に障害が発生する場合に2つの異なる代替経路が形成されるようにするためのステップである。具体的には、データ制御部123は、ステップS402で選択したスレイブSP140のデータ経由部142からの返答が、OKかを判定する(ステップS404)。選択したスレイブSP140を経由する代替経路の形成が可能である場合(ステップS404でYES)、データ制御部123は、経由情報165のうち、選択したスレイブSP140に対応する選択情報に、「選択」を設定する(ステップS405)。選択したスレイブSP140を経由する代替経路の形成ができない場合(ステップS404でNO)、データ制御部123は、経由情報165のうち、選択したスレイブSP140に対応する経由状況情報を「経由予約中」に変更する(ステップS406)。ステップS406が終了すると、データ制御部123は、処理をステップS401から繰り返す。
経由OKのスレイブSP140についてのエントリが経由情報165に含まれない場合(ステップS401でNO)、データ制御部123は、経由情報165を参照し、経由予約中又は経由中と設定されているスレイブSP140があるかを判定する(ステップS407)。経由情報165に経由予約中又は経由中と設定されているスレイブSP140がない場合(ステップS407でNO)、データ制御部123は、スレイブSP140を経由する代替経路を形成することができないと判定し、選択処理を終了する(ステップS408)。
経由情報165において経由予約中又は経由中と設定されているスレイブSP140がある場合(ステップS407でYES)、データ制御部123は、経由予約中又は経由中と設定されているスレイブSP140を選択する(ステップS409)。なお、経由予約中又は経由中と設定されているスレイブSP140は、多くても1つしか存在しないことに注意されたい。ステップS409の処理が終了すると、データ制御部123は、ステップS405から処理を開始する。なお、通信路151で障害がある場合には、図13A〜13BのステップS401〜S410の処理と同様の処理を、スタンバイSP130のデータ制御部133が実行する。
図14は、代替経路の形成処理の例(その1)を説明するフローチャートである。マスタSP120のデータ制御部123は、同期部122に、SPデータを送信する処理の停止命令を送信する(ステップS501)。同期部122は、SPデータの送信処理を停止する(ステップS502)。データ制御部123は、同期部122に設定されているIPアドレスとPort番号を含む接続先情報を、記憶部121にバックアップする(ステップS503)。データ制御部123は、同期部122の接続先情報に、データ制御部123に割り当てられているIPアドレスとPort番号を設定する(ステップS504)。
データ制御部123は、同期部122を再起動する命令を同期部122に送信する(ステップS505)。すると、同期部122は、再起動する(ステップS506)。同期部122は、再起動により、接続先情報として設定されたIPアドレスとPort番号(すなわち、データ制御部123に割り当てられているIPアドレスとPort番号)を認識し、データ制御部123との間の通信路を形成する(ステップS507)。ステップS501〜S507は、図7のステップS1〜S5と類似である。
データ制御部123は、経由情報165を参照し、選択(予約)されたスレイブSP140を特定する(ステップS508)。データ制御部123は、選択したスレイブSP140に、代替経路の形成依頼を送信する(ステップS509)。ステップS508〜S509は、図7のステップS6〜S7と類似である。
データ制御部123は、代替経路形成依頼に対応する処理が完了したことを示す情報を、スレイブSP140のデータ経由部142から受信したかを判定する(ステップS510)。代替経路の形成依頼に対応する処理が完了したことを示す情報を、スレイブSP140のデータ経由部142から受信していない場合(ステップS510でNO)、データ制御部123は、ステップS510の処理を繰り返す。
なお、図13AのステップS403〜S406に関して説明したように、まれに、データ制御部123がデータ経由部142から「NG」という返答を受信する場合がある。ただし、図示の簡単化のため、図14ではこの場合について省略されている。「NG」という返答を受信した場合、データ制御部123は図14の処理を終了する。
他方、代替経路の形成依頼に対応する処理が完了したことを示す情報を、スレイブSP140のデータ経由部142から受信した場合(ステップS510でYES)、データ制御部123は、データ経由部142との通信路を形成する(ステップS511)。なお、代替経路の形成依頼に対応する処理が完了したことを示す情報の送信は、図7のステップS13と類似である。また、この情報は、形成依頼に対する「OK」という返答である(図13AのステップS404を参照)。ステップS511は図7のステップS14と類似である。
データ制御部123は、同期部122に、SPデータの同期処理の開始命令を送信する(ステップS512)。マスタSP120の同期部122は、データ経由部142を介したスタンバイSP130の同期部132へのSPデータの送信を開始する(ステップS513)。データ制御部123は、代替経路の形成処理を終了する。なお、通信路151で障害が発生した場合には、図14のS501〜S513の処理と同様の処理を、スタンバイSP130のデータ制御部133と同期部132が実行する。
図15は、代替経路の形成処理の例(その2)を説明するフローチャートである。図15の処理は、図14のステップS509の代替経路の形成依頼をマスタSP120側から受信したスレイブSP140において実行される処理の例である。なお、図14のステップS509の代替経路の形成依頼をスレイブSP140がスタンバイ130から受信した場合も、スレイブSP140は図15と類似の処理を実行する(図7も参照)。
データ経由部142は、スタンバイSP130のデータ制御部133に、データ経由部142に設定されているIPアドレスとPort番号を含む接続先情報および代替経路の形成依頼を送信する(ステップS601)。ステップS601は図7のステップS8と類似である。データ経由部142は、スタンバイSP130側での代替経路形成処理が完了したかを判定する(ステップS602)。例えば、データ経由部142は、代替経路の形成依頼に対応する処理が完了したことを示す情報(図7のステップS11で送信される情報と類似の情報)がデータ制御部133から受信されたか否かを判定する。
スタンバイSP130側での代替経路の形成処理が完了していない場合(ステップS602でNO)、データ経由部142は、ステップS602の処理を繰り返す。スタンバイSP130側での代替経路の形成が完了した場合(ステップS602でYES)、データ経由部142は、スレイブSP130側での代替経路の形成処理が完了したことを、マスタSP120のデータ制御部123に送信する(ステップS603)。ステップS603の通知は、図7のステップS13の通知と類似である。なお、ステップS603では、併せてデータ経由部142は、データ経由部142に設定されているIPアドレスとPort番号を含む接続先情報を、マスタSPのデータ制御部123に送信する。ステップS603の処理が完了すると、図14のステップS510の処理が開始される。
図16は、代替経路の形成処理の例(その3)を説明するフローチャートである。図16の処理は、図15のステップS601の代替経路の形成依頼を受信した後の、スタンバイSP130側の処理の例である。
スタンバイSP130のデータ制御部133は、代替経路の形成依頼を接続先情報とともに受信すると、受信した接続先情報に含まれるIPアドレスやPort番号を用いて、スレイブSP140との通信路を形成する(ステップS701)。データ制御部133は、同期部132との通信路を形成する(ステップS702)。データ制御部133は、スタンバイSP130のデータ経由部142に、代替経路の形成依頼(つまりステップS601で送信された依頼)に対応する処理が完了したことを示す情報を送信する(ステップS703)。ステップS701〜S703は、図7のステップS9〜S11と類似である。ステップS703の処理が完了すると、図15のステップS602に処理が移行する。なお、通信路151で障害がある場合は、図16のステップS701〜S703と類似の処理を、マスタSP120が実行する(図7のステップS9〜S11を参照)。
図17は、通信路の障害が回復した後の処理の例を説明するフローチャートである。検出部124は、通信路152の障害の回復を検出する(ステップS801)。検出部124は、データ制御部123に、通信路152の障害が回復したことを示す情報を送信する(ステップS802)。データ制御部123は、経由情報165を参照し、代替経路としてスレイブSP140を使用しているかを判定する(ステップS803)。代替経路としてスレイブSP140を使用していない場合(ステップS803でNO)、データ制御部123は、図17の処理を終了する。代替経路としてスレイブSP140を使用している場合(ステップS803でYES)、データ制御部123は、同期部122に、SPデータの送信を停止するよう求める停止命令を送信する(ステップS804)。
同期部122は、SPデータの送信を停止する(ステップS805)。データ制御部123は、図14のステップS504で同期部122に設定した接続先情報をリセットする(ステップS806)。データ制御部123は、図14のステップS503で記憶部121にバックアップした接続先情報を参照し、同期部122の接続先として、スタンバイSP130の同期部132のIPアドレスおよびPort番号を設定する(ステップS807)。データ制御部123は、同期部122の再起動をする命令を、同期部122に送信する(ステップS808)。
同期部122は、再起動する(ステップS809)。同期部122は、スタンバイSP130の同期部132との間の通信路を形成する(ステップS810)。データ制御部123は、通信路の障害が回復した後の処理を終了する。なお、通信路151の障害の回復は、検出部134で検出する。通信路151の障害の回復については、スタンバイSP130が、図17と類似の処理を行う。
図18は、リスク指標値の再計算の処理の例を説明するフローチャートである。各スレイブSP140は、リスク指標値の算出結果をマスタSP120又はスタンバイSP130に送信した後も、定期的に、リスク指標値を算出しなおすことが好ましい。スレイブSP140のリスク指標値は、一定ではない。そのため、選択されたスレイブSP140のリスク指標値が、所定の閾値よりも高くなると、他のスレイブSP140を代替経路として用いることが望ましい。図18に示すスレイブSP140の処理は、定期的に行われることが好ましい。
データ経由部164は、管理部143から処理装置の状態情報(具体的にはスレイブSPデータ163の少なくとも一部)を取得し、リスク指標値を算出する(ステップS901)。データ経由部164は、算出したリスク指標値が、所定の閾値よりも高いかを判定する(ステップS902)。算出したリスク指標値が所定の閾値よりも低い場合(ステップS902でNO)、データ経由部164は、リスク指標値の再計算処理を終了する。算出したリスク指標値が所定の閾値よりも高い場合(ステップS902でYES)、データ経由部164は、リスク指標値の計算命令の送信元のデータ制御部に、スレイブSP140の再選択命令を送信する(ステップS903)。データ経由部164は、再計算処理を終了する。
データ制御部123は、再選択命令を受信すると、図10のステップS104〜S107の処理を実行する。データ制御部133は、再選択命令を受信すると、図11のステップS204〜S207の処理を実行する。
以上のように、マスタSP120からスタンバイSP130にSPデータを送信するための通信路152で障害が発生しても、スレイブSP140を介して、マスタSP120はSPデータをスタンバイSP130に送信できる。また、スタンバイSP130からマスタSP120にSPデータを送信するための通信路151で障害が発生しても、スレイブSP140を介して、スタンバイSP130はSPデータをマスタSP120に送信できる。マスタSP120とスタンバイSP130とが同じSPデータを記憶することで、スタンバイSP130は、マスタSP120のバックアップとして動作可能な状態を維持することができる。