(57)【要約】【課題】情報処理システムの可用性を向上させる処理装置を提供する。【解決手段】情報処理システムを構築する処理装置は、処理装置を構築するデバイスと、デバイスの異常を検知し、検知したデバイスの異常の回数を計測し、計測したデバイスの異常の回数が閾値以上の場合、デバイスを情報処理システムから論理的に切り離す処理部と、を含むことにより、上記課題の解決を図る。【選択図】図１
2014191401.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムを構築する処理装置であって、
前記処理装置を構築するデバイスと、
前記デバイスの異常を検知し、検知した前記デバイスの前記異常の回数を計測し、計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す処理部と、
を備えることを特徴とする処理装置。
【請求項２】
前記処理部は、前記検知したデバイスの異常の回数が閾値より小さい場合には、前記デバイスのリブートを実行する
ことを特徴とする請求項１に記載の処理装置。
【請求項３】
前記処理部は、他の前記処理装置より該他の前記処理装置のデバイスの動作状況に関する動作状況情報を取得し、該動作状況情報に基づいて前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立しているか否かを判定し、判定した結果に基づいて前記デバイスに関して前記異常の回数についての前記閾値を調整する
ことを特徴とする請求項２に記載の処理装置。
【請求項４】
前記処理部は、前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立していない場合には、該デバイスの冗長状態が成立している場合に設定する前記閾値よりも大きい値の閾値を設定する
ことを特徴とする請求項３に記載の処理装置。
【請求項５】
前記処理部は、前記デバイス間の異常を検出した場合において、該デバイス間に存在するいずれかの該デバイスをリブートし、所定時間内に異常を検出しなかった場合には、リブートした該デバイスを障害箇所と特定し、該所定時間内に、再度、該デバイス間の異常を検出した場合には、該デバイス間のうち、前回リブートを行ったデバイス以外のデバイスをリブートし、所定時間内に異常を検出しなかった場合には、該リブートした該デバイスを障害箇所と特定し、障害箇所として特定されたデバイスの異常として計測する
ことを特徴とする請求項１〜４のうちいずれか１項に記載の処理装置。
【請求項６】
情報処理システムを構築する処理装置におけるコンピュータに、
前記処理装置を構築するデバイスの異常を検知し、
検知した前記デバイスの前記異常の回数を計測し、
計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す
処理を実行させることを特徴とする制御プログラム。
【請求項７】
情報処理システムを構築する処理装置の制御方法であって、
前記処理装置を構築するデバイスの異常を検知し、
検知した前記デバイスの前記異常の回数を計測し、
計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
ストレージシステムやサーバシステムなどの情報処理システムにおいて、システムを構成する情報処理装置の冗長化により、いずれかの情報処理装置に異常が発生しても、システム全体として稼動を継続することができ、システムの信頼性を向上させることができる。
【０００３】
システムに障害が発生した場合に、その障害からの復旧を効率よく行う技術として、例えば、次の技術がある。
【０００４】
第１の技術では、主制御部と構成モジュールとを通信ラインで接続した装置において、主制御部で、通信に障害が発生したとき、チェック動作を実行して、その応答に基づいて障害を特定する障害特定手段を設け、該手段で障害を特定する。これにより、主制御部、構成モジュール、または通信ラインといった障害部分が把握できて、その復旧のための保守時間が大幅に短縮され、迅速な復旧ができ、その結果、装置の利用度を向上させることができる。
【０００５】
また、第２の技術として、既存の回線交換網とＩＰネットワークとを接続するゲートウェイ装置に関し、種々のメディア種別、ネットワーク種別に対してフレキシブル対応可能にし、また、信頼性、保守性の向上を図る技術がある。第２の技術では、回線交換網インターフェース部、ＰＣＭ信号とＩＰパケットとの変換機能を有する処理部、ＩＰインターフェース部、装置全体を制御する制御部の機能ブロックにハードウェアを分離した装置構成とする。それらハードウェアブロックを、対向するネットワーク及びメディア種別に合わせて交換することにより、各種回線交換網やＩＰネットワーク及びＶｏＩＰやＮＡＳ／ＲＡＳ等の種々のサービスに対応可能にする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２７８９２５号公報
【特許文献２】特開２００３−１８８９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報処理システムにおいて、異常が発生した場合、システムからの異常発生個所の切り離し箇所が多くなれば、システムの可用性、信頼性を低下させてしまう。そのため、発生した異常発生個所のうち、切り離すべき異常発生個所を特定して切り離すのが望ましい。しかしながら、第１及び第2の技術では、切り離すべき異常発生個所を特定して切り離すことは行っていない。したがって、切り離しの要/不要にかかわらず、異常発生個所の切り離しを行う結果、システムの可用性を低下させるおそれがある。
【０００８】
本発明の一側面では、情報処理システムの可用性を向上させる処理装置を提供する。
【課題を解決するための手段】
【０００９】
本実施形態に係る情報処理システムを構築する処理装置は、処理装置を構築するデバイスと、処理部と、を備える。処理部は、デバイスの異常を検知し、検知したデバイスの異常の回数を計測し、計測した前記デバイスの異常の回数が閾値以上の場合、デバイスを情報処理システムから論理的に切り離す。
【発明の効果】
【００１０】
本発明の一側面によれば、情報処理システムの可用性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態における情報処理システムの一例を示す。
【図２】本実施形態におけるストレージシステムの構成例を示す。
【図３】本実施形態における状態確認パケットの一例を示す。
【図４】本実施形態における状態監視レジスタを説明するための図である。
【図５】本実施形態における各機能ブロックについての切り離し閾値格納テーブルの一例を示す。
【図６】本実施形態における状態監視レジスタの表記方法について説明するための図である。
【図７】本実施形態における正常時のＣＭの動作フローの一例を示す。
【図８Ａ】本実施形態における、片系異常発生時の切離し動作フロー（経路障害以外）の一例（その１）を示す。
【図８Ｂ】本実施形態における、片系異常発生時の切離し動作フロー（経路障害以外）の一例（その２）を示す。
【図８Ｃ】本実施形態における、片系異常発生時の切離し動作フロー（経路障害以外）の一例（その３）を示す。
【図９Ａ】本実施形態における、系異常発生時の切離し動作フロー（経路障害）の一例（その１）を示す。
【図９Ｂ】本実施形態における、系異常発生時の切離し動作フロー（経路障害）の一例（その２）を示す。
【図９Ｃ】本実施形態における、系異常発生時の切離し動作フロー（経路障害）の一例（その３）を示す。
【図１０Ａ】１回目の障害時に障害箇所であった場合の系異常発生時の切離し動作フロー（経路障害）の一例（その１）を示す。
【図１０Ｂ】１回目の障害時に障害箇所であった場合の系異常発生時の切離し動作フロー（経路障害）の一例（その２）を示す。
【図１０Ｃ】１回目の障害時に障害箇所であった場合の系異常発生時の切離し動作フロー（経路障害）の一例（その３）を示す。
【図１１Ａ】本実施形態における保守時動作フロー（ＦＥの交換の場合）の一例（その１）を示す。
【図１１Ｂ】本実施形態における保守時動作フロー（ＦＥの交換の場合）の一例（その２）を示す。
【図１２Ａ】本実施形態における保守時（ＦＥの取り外しができない場合）の動作フローの一例（その１）を示す。
【図１２Ｂ】本実施形態における保守時（ＦＥの取り外しができない場合）の動作フローの一例（その２）を示す。
【図１３Ａ】本実施形態における状態管理部が故障した場合の動作フローの一例（その１）を示す。
【図１３Ｂ】本実施形態における状態管理部が故障した場合の動作フローの一例（その２）を示す。
【図１４】本実施形態における、ＣＭ０とＣＭ１それぞれで、異なるブロックが切り離されたときの保守のフローの一例を示す。
【図１５】本実施形態における、ＣＭ０とＣＭ１それぞれで、異なる機能ブロックが切り離されたときの保守のフローの他の例を示す。
【図１６】本実施形態における発生した異常の回数に応じて機能ブロックの切り離しを行うフローの一例を示す。
【図１７】本実施形態における機能ブロックの冗長性が保持されているか否かに応じて、機能ブロックを切り離すために用いる閾値を調整するフローの一例を示す。
【発明を実施するための形態】
【００１２】
冗長化された情報処理装置を備えた情報処理システムにおいて、異常が発生した場合、システムからの異常発生個所の切り離し箇所が多くなれば、システムの可用性、信頼性を低下させてしまう。そのため、発生した異常発生個所のうち、切り離すべき異常発生個所を特定して切り離すのが望ましい。しかしながら、第１及び第２の技術では、切り離すべき異常発生個所を特定して切り離すことは行っていない。したがって、異常が発生した個所の冗長化が失われる可能性が多くなる結果、システムの可用性を低下させるおそれがある。
【００１３】
システム内のデバイス間を接続する経路上で異常が発生した場合、中央演算処理装置（ＣＰＵ）、Ｃｈｉｐｓｅｔ等を含む制御部は、その異常箇所の切り離しを行う。切り離された箇所は、保守作業者によって交換される。しかしながら、被疑箇所が分からないため、制御部は経路全体を切り離す。それにより交換箇所も経路全体となる。
【００１４】
例えば、ＲＡＩＤ装置内において、フロントエンド（ＦＥ：ホストポート接続部）−ＦＥ中継デバイス−制御部間で経路上の異常が発生した場合、ＦＥ−ＦＥ中継デバイス−制御部がまとめて切り離される。しかしながら、異常原因がＦＥまたはＦＥ中継デバイスにある場合、制御部の切り離しは無駄である。さらにコントローラモジュール（ＣＭ）本体の交換も必要となる。この場合、メモリ（ユーザーデータ格納先）も冗長性を失う。また、交換部材が過剰に発生してしまう。また、システム復旧時間（ＭＴＴＲ）も長くなる。
【００１５】
同様に、例えば、バックエンド（ＢＥ：ディスク接続部）−ＢＥ中継デバイス−制御部間で経路上の異常が発生した場合、ＢＥ−ＢＥ中継デバイス−制御部がまとめて切り離される。しかしながら、異常原因がＢＥにある場合、制御部、ＢＥ中継デバイスの切り離しは無駄である。さらにＣＭ本体の交換も必要となる。この場合、メモリ（ユーザーデータ格納先）とバックエンドの一部経路も冗長性を失う。また、交換部材が過剰に発生してしまう。また、システム復旧時間（ＭＴＴＲ）も長くなる。
【００１６】
また、異常原因がＢＥ中継デバイスにある場合、制御部とＢＥの切り離しは無駄である。さらにＣＭ本体の交換も必要となる。この場合、メモリ（ユーザーデータ格納先）とバックエンドの一部経路も冗長性を失う。交換部材が過剰に発生してしまう。また、システム復旧時間（ＭＴＴＲ）も長くなる。異常原因が制御部にある場合、ＢＥとＢＥ中継デバイスの切り離しは無駄である。この場合、バックエンド経路の冗長性も失ってしまう。
【００１７】
そこで、本実施形態の一例では、故障個所の切り分けを行い、被疑部位を切り離す。
また、異常発生時に制御部が動作しないと故障個所を切り離して復旧処理を行うことができず、故障個所不明でＣＭを切り離すことになる。制御部はシステム全体の制御を行っていることから、他のデバイスの異常が制御部の動作にも影響を与えてしまうことがある。そのため、ＣＭ切り離しの頻度も多くなる。制御部が動作しなくなる状況としては例えば以下がある。 
・制御部以外の部位の故障や処理遅延に引きずられて制御部の処理が停滞／異常動作してしまったとき（例えば、制御部が配下のデバイスにコマンドを発行したが、それに対して正常な応答結果を得られなかったとき）
・上述の通り、過剰に制御部が切り離されてしまったとき（この場合、制御部が動作不良になるとＣＭ故障につながってしまう。結果的にＣＭ故障になる頻度が高い。）
そこで、本実施形態の一例では、故障箇所の切り離し処理を、他のデバイス動作に影響を受けない状態管理部に集約する。
【００１８】
図１は、本実施形態における情報処理システムの一例を示す。情報処理システム１は、複数の処理装置２によって冗長化されて、いずれかの処理装置が故障しても業務を継続できるように構築されている。処理装置２は、処理装置を構築するデバイス３と、処理部４とを含む。デバイス３は、本実施形態でいえば、フロントエンド（ＦＥ）１４、ＦＥ中継デバイス１５、制御部１６、メモリ１７，２０、状態管理部１８、バックエンド（ＢＥ）２２、ＢＥ中継デバイス２１等の機能ブロックのことである。
【００１９】
処理部４は、デバイスまたはデバイス間の異常を検知する。処理部４は、検知したデバイス３の異常の回数を計測する。処理部４は、計測したデバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す。論理的に切り離すとは、例えば、そのデバイスの動作を停止させたり、そのデバイスとの通信を切断したり、そのデバイスの電源をＯＦＦにすることを含む。処理部４は、例えば本実施形態でいえば、状態管理部１８に相当する。
【００２０】
このように構成することにより、過去の障害状況（障害履歴）に基づいて、システムから論理的に切り離すデバイスを特定し、切り離し箇所を低減することにより、情報処理システムの可用性を向上させることができる。
【００２１】
処理部４は、検知したデバイス３の異常の回数が閾値より小さい場合には、デバイス３のリブートを実行する。
【００２２】
処理部４は、他の処理装置２ａから、他の処理装置２ａのデバイス３の動作状況に関する動作状況情報を取得する。処理部４は、動作状況情報に基づいてデバイス３を論理的に切り離した場合にデバイスの冗長状態が成立しているか否かを判定する。処理部４は、判定した結果に基づいてデバイス３に関する異常の回数についての閾値を調整する。
【００２３】
このように構成することにより、デバイスが冗長状態か否かに応じて、閾値を調整することができる。
【００２４】
処理部４は、デバイス３を論理的に切り離した場合にデバイス３の冗長状態が成立していない場合には、デバイス３の冗長状態が成立している場合に設定する閾値よりも大きい値の閾値を設定する。
【００２５】
このように構成することにより、デバイス３を論理的に切り離した場合にデバイス３の冗長状態が成立していない場合には、閾値を高くすることにより、切り離しよりもシステムの稼動を優先させることができる。
【００２６】
処理部４は、デバイス間の異常を検出した場合において、デバイス３間に存在するいずれかのデバイス３をリブートする。処理部４は、所定時間内に異常を検出しなかった場合には、リブートしたデバイス３を障害箇所と特定する。一方、処理部４は、所定時間内に、再度、デバイス３間の異常を検出した場合には、デバイス３間のうち、前回リブートを行ったデバイス以外のデバイスをリブートする。処理部４は、所定時間内に異常を検出しなかった場合には、リブートしたデバイスを障害箇所と特定する。処理部４は、障害箇所として特定されたデバイスの異常として計測する。
【００２７】
このように構成することにより、経路間（デバイス間）で発生した異常の発生個所を局所化して、特定することができる。
【００２８】
図２は、本実施形態におけるストレージシステムの構成例を示す。ストレージシステムは、ホスト１１、ストレージ装置(ＲＡＩＤ装置)１２を含む。ホスト１１は、サーバ等の、ＲＡＩＤ装置と接続されているホスト装置である。
【００２９】
ＲＡＩＤ装置１２は、複数のコントローラモジュール（ＣＭ）１３（１３−０，１３−１）、ミッドプレーン２３、ディスク部２４を含む。ディスク部２４は、複数のＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶デバイスを含む。ＣＭ１３（１３−０，１３−１）は、ホスト１１から送信されたデータをディスク装置２４に書き込んだり、ホスト１１からの要求に応じて、ディスク部２４からデータを読み出すためのコントローラモジュールであり、ディスク部２４の動作制御を行う。ＲＡＩＤ装置１２は、ＣＭ１３を２以上有することで、冗長性を確保する。ここで、一方のＣＭ１３を自系ＣＭとしてＣＭ０（１３−０）で表し、他方のＣＭを他系ＣＭとしてＣＭ１（１３−１）で表す。
【００３０】
ＣＭ１３（ＣＭ０，ＣＭ１）は、フロントエンド（ＦＥ）１４、ＦＥ中継デバイス１５、制御部１６、メモリ１７，２０、状態管理部１８、バックエンド（ＢＥ）２２、ＢＥ中継デバイス２１等の機能ブロックを含む。具体的には、ＣＭ０（１３−０）は、ＦＥ１４−０、ＦＥ中継デバイス１５−０、制御部１６−０、メモリ１７−０，２０−０、状態管理部１８−０、ＢＥ２２−０、ＢＥ中継デバイス２１−０を含む。ＣＭ１（１３−１）も同様に、ＦＥ１４−１、ＦＥ中継デバイス１５−１、制御部１６−１、メモリ１７−１，２０−１、状態管理部１８−１、ＢＥ２２−１、ＢＥ中継デバイス２１−１を含む。
【００３１】
ここで、ＣＭ０に関する構成要素については、符号の末尾に「−０」を付与して表し、ＣＭ１に関する構成要素については、符号の末尾に「−１」を付与して表す。なお、ＣＭ０，ＣＭ１に共通する事項については、符号の末尾に「−０」または「−１」を付さないで説明する。
【００３２】
ＦＥ１４、ＦＥ中継デバイス１５、制御部１６、メモリ１７，２０、状態管理部１８、ＢＥ２２、ＢＥ中継デバイス２１は、内部バスを介して接続されている。
【００３３】
ＦＥ１４（ホストポート接続部）は、ホスト１１と接続されるインターフェース及びその周辺回路を示す。ＢＥ（ディスク接続部）は、ＲＡＩＤ装置１２内のディスク部２４と接続されるインターフェース及びその周辺回路を示す。
【００３４】
ＦＥ中継デバイス１５、ＢＥ中継デバイス２１は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｓｗｉｔｃｈ等のデバイスを示す。ＦＥ中継デバイス１５、ＢＥ中継デバイス２１は、システムによっては搭載されていないこともある。この場合、ＦＥと制御部が直結し、ＢＥと制御部が直結していてもよい。
【００３５】
ＦＥ（ＦＥ中継デバイスを含むこともある）１４、ＢＥ（ＢＥ中継デバイスを含むこともある）２２はＣＭ１３に搭載されているが、システム構成によっては単独でＣＭ１３から取り外し可能なものもある。このようなシステム構成の場合、制御部搭載ボードを「ＣＭ本体」と表記することにする。制御部１６は、ＣＰＵ、Ｃｈｉｐｓｅｔ等を含み、ＣＭ１３全体を制御する。制御部１６−状態管理部１８間には別途通信用のバスがある（不図示）。
【００３６】
状態管理部１８は、自系ＣＭ１３内の構成ユニット（機能ブロック）の状態を一元管理する（第１機能）。状態管理部１８は、例えば、Programmable Logic Device（PLD）、Field-Programmable Gate Array等のプログラマブルなデバイスを用いてもよい。状態管理部１８によって管理された情報は、２台のＣＭ間で共有される。具体的には、状態管理部１８は、自系ＣＭ１３内の各機能ブロックに対して、ポーリングを行うことにより各機能ブロックの状態監視を行う。また、状態管理部１８は、状態監視レジスタ１９を含む。状態監視レジスタ１９は、両系ＣＭ１３内の各機能ブロックの状態についての情報を格納する。
【００３７】
また、状態管理部１８は、自系ＣＭ内の各機能ブロックから故障した箇所を通知する故障通知を受け、その故障通知に従って、故障した機能ブロックについて、リカバリ処理（すなわちリブート処理、またはシステムからの切り離し処理）を行う（第２機能）。細い破線２６（２６−０、２６−１）は、状態管理部１８から故障した機能ブロックへ送信されるリブート信号を示す。なお、システムからの機能ブロックの切り離し処理とは、システムから機能ブロックを論理的に切り離すことをいい、例えば、その機能ブロックの動作を停止させたり、その機能ブロックとの通信を切断したり、その機能ブロックの電源をＯＦＦにすることを含む。これにより、制御部がシステムの構成要素としてその機能ブロックを認識することができなくなる。
【００３８】
また、状態管理部１８は、機能ブロックのリブート、システムからの切り離しを、その機能ブロックと接続している接続先の機能ブロックに通知する。各機能ブロックはその通知を受け取ると、リブートまたはシステムから切り離しされる機能ブロックとの接続ポートについて、リクエストに対応する応答の待ち時間のタイムアウト設定をマスクまたは使用不可とする。
【００３９】
また、状態管理部１８は、リブート完了またはシステムからの切り離し状態の解除を、その機能ブロックと接続している接続先の機能ブロックに通知する。リブートまたは切離し状態の解除通知を受けた時は、各機能ブロックは、接続ポートのタイムアウト設定のマスクの解除または接続ポートを使用可能にする。
【００４０】
また、状態管理部１８は、他系ＣＭ１３の状態管理部１８をリブートする。また、状態管理部１８は、可用性向上のため、障害発生時に過去の障害履歴を参照して、該当機能ブロックに過去の障害履歴がない場合はリブートを試みる（間欠故障状態の修復）。
【００４１】
また、状態管理部１８は、故障箇所の絞り込みを行う（第３機能）。状態管理部１８は、機能ブロック同士の接続経路上の障害等で、各機能ブロックから受けた故障通知内容から故障箇所を特定できない場合は、被疑箇所の診断を実施して、故障箇所の絞り込みを行う。状態管理部１８は、故障箇所の特定をし次第、故障機能ブロックをリブート、または、システムからの切り離しを行う。このように、状態管理部１８は、経路障害時に切離しブロックを最小限に留めるため、被疑箇所の切り分けを行う。
【００４２】
また、状態管理部１８は、異常が発生した箇所の切り離しまでの異常発生を判別するための閾値の制御を行う（第４機能）。ＲＡＩＤ装置１２のようにシステム内で冗長性を確保するシステムでは、次の制御が行われることがある。すなわち、「冗長性が保たれている場合は異常発生時に異常箇所の即時切り離しを行い、システムの早期復旧を行う。しかし、故障により非冗長となってしまった場合はシステムダウン防止のためそれ以上の切り離しをしないようにする」といった制御が行われることがある。これを実現するために、状態管理部１８は、各機能ブロックの切り離しまでの異常発生を判別するための閾値について、冗長性が保たれている場合（冗長時）と故障により非冗長となってしまった場合（非冗長時）の２値を持つ。状態管理部１８は、故障箇所通知を受けた際、故障した機能ブロックが冗長性を保っているか否かによって、それぞれの閾値に従って、リブートするか、切り離しするかを判断し、実行する。すなわち、状態管理部１８は、他系ＣＭの一部の機能ブロックが切り離された場合、自系ＣＭの該当ブロックについて異常発生を判別するための閾値を非冗長時の設定に変更する。一方、状態管理部１８は、他系ＣＭの機能ブロックの異常が修復されたときは、自系ＣＭの該当ブロックについて異常発生を判別するための閾値を冗長時の設定に戻す。なお、第４機能は、第１機能でのＣＭ内の状態情報をお互いのＣＭで共有することによって実現できる。
【００４３】
メモリ１７，２０は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等の情報を記録するデバイスである。メモリ２０には、各機能ブロックの切離し閾値が格納されており、その閾値には機能ブロックごとに冗長時に設定される閾値と、非冗長時に設定される閾値の２値がある。
【００４４】
ミッドプレーン２３は、ＣＭ１３（ＣＭ０−ＣＭ１）間、またはＣＭ１３−ディクス部２４間を中継するボードである。
【００４５】
通信線２５は、ＣＭ１３（ＣＭ０−ＣＭ１）間を通信可能に接続する。通信線２９は、一方の機能ブロックが故障した場合に他方の機能ブロックへ迂回させる。経路２７（太字の実線）は、状態管理部１８からＣＭ１３内の各機能ブロックへ状態確認を行うパケットを送信する経路を示す。経路２８（太字の破線）は、経路２７で採取した情報を各ＣＭ１３の状態管理部１８間で共有するための経路を示す。経路２７，２８で取得された情報は、ＣＭ０及びＣＭ１の状態監視レジスタ１９に格納される。
【００４６】
次に、本実施形態の動作について説明する。まず、経路２７に関して、状態管理部１８がマスターとなる場合（状態管理部１８が状態確認を能動的に行う）について説明する。状態管理部１８は、ポーリングにより、自系ＣＭ１３内の各機能ブロックへ状態確認パケット（コマンド）を送信する。各機能ブロックは、状態監視コマンドを受信した場合、自身の状態情報（自身の機能ブロック内のエラー発生の有無）を状態管理部１８へ送信する。状態管理部１８は、各機能ブロックより受信した状態情報を状態監視レジスタ１９に格納する。状態管理部１８は、各機能ブロックより受信した状態情報の中に致命的エラーがあった場合、障害箇所の切り分け及び切離しを行う。ここで、エラー通知した機能ブロックに応じて、どの部分を被疑故障箇所とするかは予めルールを決めて状態管理部１８内に設定しておく。受信したパケットが異常（パケットヘッダ及びパケットエンドの異常、パリティ異常）の場合、受信側は送信側に再送を要求する。各機能ブロックから一定時間応答がない場合は、状態管理部１８は、その機能ブロックを異常と判定して、その機能ブロックの切り離しを行う。
【００４７】
次に、経路２７に関して、各機能ブロックがマスターとなる場合（状態管理部１８が状態確認を受動的に行う。つまり、各機能ブロックが自分の異常状態を示す状態情報を状態管理部１８に通知する。）について説明する。致命的エラーが発生した場合は、各機能ブロックは、エラー通知パケット（コマンド）を送信する。状態管理部１８は、各機能ブロックから受信した状態情報を状態監視レジスタ１９に格納する。状態管理部１８は、障害箇所の切り分け及びシステムからの切り離しを行う。受信したパケットが異常の場合でも、状態管理部１８は、送信側の機能ブロックの異常と判定し、その機能ブロックをシステムから切り離す。なお、受信したパケットが異常の場合は再送を要求し、再度異常であれば、状態管理部１８は、送信側の機能ブロックの異常と判定し、その機能ブロックをシステムから切り離してもよい。
【００４８】
次に、リブート処理と切り離し処理の判定方法について説明する。状態管理部１８は、各機能ブロックの障害履歴を管理する。機能ブロックについて異常が発生しても、その機能ブロックについて過去に障害が発生していない場合は、状態管理部１８はリブート指示を行う。その機能ブロックについて過去に障害が発生した履歴がある場合は、状態管理部１８はその機能ブロックを、システムから切り離すように指示を行う。なお、システムからの切り離しを実行するまでの過去障害数の閾値は、自由に設計できる。
【００４９】
制御部が被疑故障箇所に含まれる場合のシステムからの切り離し処理を行う場合、状態管理部１８は制御部についての異常箇所の確認を最後に行う。状態管理部１８は、システムからの所定の機能ブロックの切離しを行う際には、切り離し対象となる機能ブロックと接続されている機能ブロックに事前通知する。切り離し対象となる機能ブロックと接続されている機能ブロック（隣接ブロック）に事前通知する理由は、突然の切り離しに伴って予期しないエラーが、隣接ブロックにより検出されるのを防止するためである。例えば、仕掛中の入出力（Ｉ／Ｏ）処理が突然中断されて、Ｉ／Ｏエラーが検出されるのを防止するため、隣接ブロックに接続ポートを使用不可にさせる。
【００５０】
次に、経路２８に関して説明する。状態管理部１８−０，１８−１は、定期的にお互いの状態監視レジスタ１９の情報を通信し合う。状態管理部１８は、相手側から受信したデータを、自身の状態監視レジスタ１９に格納する。この通信に対して、相手方から一定期間応答がない場合は、状態管理部１８は、相手側の異常と判断し、相手側のリブート処理を行う。
【００５１】
図３は、本実施形態における状態確認パケットの一例を示す。状態確認パケットは、「ヘッダ」３１、「送信元識別子」３２、「コマンドまたはデータ識別子」３３．「コマンドまたはデータ（状態確認またはエラー通知）」３４、「致命的エラーフラグ」３５、「処理中キューＩＤ」３６、「パリティ」３７、「パケットエンド」３８のデータ項目を含む。本実施形態では、状態確認パケットは一例として、「処理中キューＩＤ」３６、「パリティ」３７、「パケットエンド」３８を含むが、これらのデータ項目は、仕様に応じて設定されるものである。したがって、仕様によっては、状態確認パケットは「処理中キューＩＤ」３６、「パリティ」３７、及び「パケットエンド」３８を有さない場合や、またはこれらのデータ項目のうちの一部を有する場合もある。
【００５２】
「ヘッダ」３１には、状態確認パケットを送信または受信するために所定の通信プロトコルで用いられるヘッダ情報が格納される。「送信元識別子」３２は、当該パケットを送信した機能ブロックについて付与された一意の識別子が設定される。「コマンドまたはデータ識別子」３３には、パケットがコマンドであるか、またはデータであるかを判定するための情報が設定される。
【００５３】
「コマンドまたはデータ（状態確認またはエラー通知）」３４には、コマンド（状態管理部１８からの状態確認または各機能ブロックからのエラー通知）またはデータ（エラー発生の有無）が設定される。
【００５４】
「致命的エラーフラグ」３５には、致命的エラーが発生しているか否かを示すフラグ情報が格納される。ここで致命的エラーについて説明する。まず、致命的でないエラーとは、例えば、単位時間あたりに発生する回数が規定値未満であれば、許容されるエラーのことである。致命的なエラーとは、単位時間あたりに発生する回数が規定値以上になったエラーや修復不能のエラーのことである。致命的エラーが発生している場合、そのエラー情報は状態管理部１８へ通知される。
【００５５】
「処理中キューＩＤ」３６は、各機能ブロックが処理中のキューのＩＤを格納する。状態管理部１８はこのキューのＩＤが一定回数以上連続して同じ（更新がない）場合に、その機能ブロックが処理遅延（停滞）していると判断し、システムからその機能ブロックを切り離す。これにより、そのデバイスと通信しているデバイスへの影響（異常波及）を防止する。
【００５６】
「パリティ」３７には、パリティチェックのための情報が格納される。「パケットエンド」３８には、パケットの終端を示す情報が格納される。
【００５７】
図４は、本実施形態における状態監視レジスタを説明するための図である。状態監視レジスタ１９には、経路２７及び経路２８を介して受信された情報が格納される。すなわち、状態監視レジスタ１９には、各ＣＭ１３において、ＣＭ０及びＣＭ１の各機能ブロックの情報が格納される。
【００５８】
本実施形態において、状態監視レジスタ１９は、各機能ブロックに対応する、機能ブロック状態レジスタ４１、障害監視レジスタ４２、処理中キューＩＤレジスタ４３、非致命的エラー監視レジスタ４４を含む。なお、以下で説明する各レジスタのビット長は、一例であり、仕様に応じて自由に変更してもよい。
【００５９】
機能ブロック状態レジスタ４１は、「リブート状態」（０ビット目）、「デグレード（Degrade）状態」（１ビット目）、「リザーブ」（２〜３ビット目）の４ビットで形成されている。
【００６０】
「リブート状態」（０ビット目）には、“０”＝正常、または“１”＝リブート処理中が格納される。
【００６１】
「デグレード（Degrade）状態」（１ビット目）には、“０”＝正常（切り離されていない）、または“１”＝デグレード（切り離し状態）が格納される。「デグレード状態」＝“１”の場合、障害監視レジスタ［１ビット目］=“１”の状態で、さらに“異常”状態を示す通知を受信すると、機能ブロック状態レジスタ［１ビット目］=“１”となり、状態管理部１８は切り離し処理を行う。
【００６２】
「リザーブ」（２〜３ビット目）は、予備のビット領域である。
障害監視レジスタ４２は、「致命的エラーフラグ」（０ビット目）、「過去障害発生数」（１ビット目）、「リザーブ」（２〜３ビット目）の４ビットで形成される。
【００６３】
「致命的エラーフラグ」（０ビット目）には、“０”＝正常（エラーなし）、または“１”＝異常が格納される。“異常”状態を示す通知が受信されなくても、一定時間内に応答がない場合はタイムアウトとなる。この場合、状態管理部１８は異常と判定し、「致命的エラーフラグ」＝１（異常）と更新する。
【００６４】
「過去障害発生数」（１ビット目）には、“０”＝過去に障害履歴なし、“１”＝過去に障害履歴ありが格納される。「致命的エラーフラグ」＝“１”の状態確認パケットを受信後、リブート処理が完了すると、状態管理部１８は、「過去障害発生数」＝“１”と更新する。
【００６５】
「リザーブ」（２〜３ビット目）は、予備のビット領域であり、例えば、「過去障害発生数」レジスタとして使用することも可能である。この場合、「過去障害発生数」レジスタとして３ビットを利用することができる。そこで、状態管理部１８は、過去障害として最大７回までカウントし、８回目の障害発生で切り離し処理を行うこともできる。
【００６６】
状態監視レジスタ１９のテーブルは、システム設計時に予め決めていてもよいが、システム起動時に採取された構成情報を用いて生成されることも可能である。システム起動時に採取された構成情報を用いて生成される場合、システム設計後に新たに追加された機能ブロックに対しても状態監視レジスタ１９を利用した監視、及びリブート処理／切り離し処理が可能となる。
【００６７】
処理中キューＩＤレジスタ４３は、「処理中キューＩＤ」（０〜３１ビット目）の３２ビットで表されるデータ項目を含む。なお、本実施形態では、「処理中キューＩＤ」の一例として３２ビットとしているが、これに限定されず、例えば１２ビット程度であってもく、また、仕様に応じて自由に設計してもよい。状態管理部１８は、「処理中キューＩＤ」の値が一定回数以上連続して同じ値となった場合に処理停滞と判定し、致命的エラー発生である判定し、障害監視レジスタ［０］＝１と設定する。
【００６８】
非致命的エラー監視レジスタ４４は、「非致命的エラー発生数」（０〜３１ビット目）の３２ビットで表されるデータ項目を含む。なお、本実施形態では、「非致命的エラー発生数」の一例として３２ビットとしているが、これに限定されず、例えば１２ビット程度であってもよい。「非致命的エラー発生数」には、非致命的エラー発生数が格納される。状態管理部１８は、非致命的エラーが一定期間内に一定回数以上発生した場合に異常と判定する。この場合、状態管理部１８は、致命的エラー発生であると判定し、障害監視レジスタ［０］＝１と設定する。
【００６９】
図５は、本実施形態における各機能ブロックについての切り離し閾値格納テーブルの一例を示す。切り離し閾値格納テーブル５０は、メモリ２０に格納され、各機能ブロックの切り離し閾値を、システムが冗長構成の場合と非冗長構成の場合とで２値を保持する。この閾値は、状態監視レジスタ１９の「過去障害発生数」、「致命的エラーフラグ」、「処理中キューＩＤ監視タイマ」に基づいて、切り離し閾値回数を規定したり、切り離しを行うか否かを規定する。また、この閾値は、状態監視レジスタ１９の「非致命的エラー発生数」に基づいて、切離し閾値数を規定したり、切離しを行うか否かを規定する。
【００７０】
図６は、本実施形態における状態監視レジスタの表記方法について説明するための図である。ここでは、後述するフローで用いる状態監視レジスタの表記方法について説明する。状態監視レジスタは、左から、「ＣＭ名」、「機能ブロック名」、「状態監視レジスタ値」を表す。「状態監視レジスタ値」は、「機能ブロック状態レジスタ［１:０］、障害監視レジスタ［１:０］」で表される。機能ブロック状態レジスタ［１:０］は、機能ブロック状態レジスタの１ビット目（［Degrade状態］）と、０ビット目（［Reboot状態］）を示す。障害監視レジスタ［１:０］は、障害監視レジスタの１ビット目（［過去障害発生数］）と０ビット目（［致命的エラーフラグ］）を示す。また、ハッチング部分は、その時点の動作での確認または更新対象のレジスタを示す。
【００７１】
次に、図７−図１５を用いて、様々な状況でのＣＭ間の動作について説明する。なお、図７−１５において、（１）〜（４）の数字はそれぞれ、上述した第１〜第４機能に対応する。
【００７２】
図７は、本実施形態における正常時のＣＭの動作フローの一例を示す。各ＣＭ１３の状態管理部１８−０，１８−１は、自系の機能ブロックに対して、ポーリングにより状態確認パケットを送信して、各機能ブロックの状態確認を行う（Ｓ１）。図７のフローでは、フロントエンド（ＦＥ）１４の場合を例に説明する。
【００７３】
ＦＥ１４は、その応答として“正常”である旨を示す状態確認パケットを送信する（Ｓ２）。状態管理部１８は、ＦＥ１４から送信された状態確認パケットを受信し、その状態確認パケットを用いて状態監視レジスタ１９を更新する（Ｓ３）。すると、ＣＭ０及びＣＭ１のＦＥ１４の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【００７４】
それから、状態管理部１８−０と状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ４）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ５）。すると、ＣＭ０において、ＣＭ１のＦＥの状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。また、ＣＭ１において、ＣＭ０のＦＥの状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【００７５】
図８Ａ−図８Ｃは、本実施形態における、片系異常発生時の切離し動作フロー（経路障害以外）の一例を示す。図８Ａ−図８Ｃでは、ＦＥ側、またはＦＥ中継デバイス側で異常が発生した場合を例に説明するが、ＢＥ側、ＢＥ中継デバイス側で異常が発生でも同様である。
【００７６】
状態管理部１８−０は、ポーリングにより自系の機能ブロックに状態確認パケットを送信して、各機能ブロック（ＦＥ１４−０，ＦＥ中継デバイス１５−０）の状態確認を行う（Ｓ１１）。ＣＭ０のＦＥ１４−０には異常が発生しているので、ＦＥ１４−０は、異常発生を示す状態確認パケットを送信するか、または応答不能状態である（Ｓ１２）。または、ＦＥ１４−０が異常割り込み可能な状態であれば、ＦＥ１４−０が異常割り込みを状態管理部１８−０へ通知してもよい。
【００７７】
状態管理部１８−０は、ポーリングの結果、ＦＥ１４−０から異常発生を示す状態確認パケットを受信するか、または応答待ち時間を超過（タイムアウト）した場合、異常発生と判定する。または、異常割り込みが通知された場合、状態管理部１８−０は、異常発生と判定する。
【００７８】
状態管理部１８−０は、ＦＥ中継デバイス１５−０から、正常である旨を示す状態確認パケットを受信する（Ｓ１３）。
【００７９】
状態管理部１８−０は、ポーリング結果を用いて、状態監視レジスタ１９を更新する（Ｓ１４）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，０１）と更新される。
【００８０】
状態管理部１８−０は、ＦＥ中継デバイス１５−０に対して、ＦＥ１４−０をリブートする旨を通知する（Ｓ１５）。ＦＥ中継デバイス１５−０は、状態管理部１８−０からその通知を受信すると、ＦＥ１４−０に対する応答待ち時間の超過によりタイムアウトになる機能をマスクする、またはＦＥ１４−０との経路を切断する（Ｓ１６）。
【００８１】
状態管理部１８は、ＦＥ１４−０に対して、リブート指示を行い（Ｓ１７）、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ２１）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（０１，０１）と更新される。
【００８２】
ＦＥ１４−０では、状態管理部１８−０からのリブート指示を受信すると、リブートが行われる（Ｓ１９）。リブートが完了した場合、ＦＥ１４−０は、リブート完了を状態管理部１８へ通知する（Ｓ２０）。
【００８３】
状態管理部１８−０は、ＦＥ１４−０からリブート完了の通知を受けると、ＦＥ１４−０についての状態監視レジスタを更新する（Ｓ１８）。すると、ＣＭ０のＦＥの状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される（Ｓ２１）。
【００８４】
それから、状態管理部１８−０は、ＦＥ中継デバイス１５−０に対して、ＦＥ１４−０のリブートが完了したことを通知する（Ｓ２２）。ＦＥ中継デバイス１５−０は、状態管理部１８−０からＦＥ１４−０のリブートが完了した旨の通知を受信する。すると、ＦＥ中継デバイス１５−０は、ＦＥ１４−０に対する応答待ち時間の超過によりタイムアウトになる機能に対して行ったマスクを解除する、またはＦＥ１４−０との経路を接続する(開く)（Ｓ２３）。
【００８５】
それから、状態管理部１８−０と状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ２４）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、自身の状態監視レジスタ１９を更新する（Ｓ２５）。すると、ＣＭ０において、ＣＭ１のＦＥ１４−１の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。また、ＣＭ１において、ＣＭ０のＦＥ１４−０の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される。
【００８６】
その後、ＦＥ１４−０に再度異常が発生したとする。状態管理部１８−０は、ポーリングにより自系の機能ブロックに状態確認パケットを送信して、各機能ブロック（ＦＥ１４−０，ＦＥ中継デバイス１５−０）の状態確認を行う（Ｓ２６）。ＦＥ１４−０には異常が発生しているので、ＦＥ１４−０は、異常発生を示す状態確認パケットを送信するか、または応答不能状態である（Ｓ２７）。または、ＦＥ１４−０が異常割り込み可能な状態であれば、ＦＥ１４−０が異常割り込みを状態管理部１８−０へ通知してもよい。
状態管理部１８は、ポーリングの結果、ＦＥ１４−０から異常発生を示す状態確認パケットを受信するか、または応答待ち時間を超過（タイムアウト）した場合、異常発生と判定する。または、異常割り込みが通知された場合、状態管理部１８−０は、異常発生と判定する。
【００８７】
状態管理部１８−０は、ＦＥ中継デバイス１５−０から、正常である旨を示す状態確認パケットを受信する（Ｓ２８）。
【００８８】
状態管理部１８−０は、ポーリング結果を用いて、状態監視レジスタ１９を更新する（Ｓ２９）。ここでは、ＦＥ１４−０から異常発生を示す状態確認パケットを受信するか、またはＦＥ１４−０について異常が発生していると判定されているので、ＣＭ０のＦＥ１４−０についての障害監視レジスタの「致命的エラーフラグ」には、“１”が設定される。すなわち、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１１）と更新される。
【００８９】
さらに、ＣＭ０のＦＥ１４−０についての障害監視レジスタの「過去障害発生数」に、“１”が設定されている状態で、ＦＥに異常が発生しているので、状態管理部１８−０は、状態監視レジスタ１９を更新する（Ｓ３０）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（１０，００）と更新される。
【００９０】
状態管理部１８−０は、状態管理部１８−１に対し、ＣＭ０からＦＥ１４−０を切り離す旨を通知する（Ｓ３１）。
【００９１】
状態管理部１８−０と状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ３２）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ３３）。すると、ＣＭ０において、ＣＭ１のＦＥ１４−１の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。また、ＣＭ１において、ＣＭ０のＦＥ１４−０の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（１０，００）と更新される。
【００９２】
状態管理部１８−０は、ＦＥ中継デバイス１５−０に、ＦＥ１４−０を切り離す旨を通知する（Ｓ３４）。ＦＥ中継デバイス１５−０は、状態管理部１８−０からＦＥを切り離す旨の通知を受信すると、ＦＥと接続する経路を切断する（Ｓ３５）。
【００９３】
状態管理部１８−１は、切り離し閾値格納テーブル５０から非冗長時のＦＥ切り離し閾値を読み出し、状態管理部１８−１内の所定の記憶領域に設定する（Ｓ３６）。状態管理部１８−１は、制御部１６−１に、ＣＭ０のＦＥ１４−０の動作を引き継ぐように指示する（Ｓ３７）。制御部１６−１は、ＣＭ０のＦＥ１４−０の動作の引き継ぎが完了すると、状態管理部１８−１に、その完了を通知する（Ｓ３８）。状態管理部１８−１は、状態管理部１８−０に、ＣＭ０のＦＥ１４−０の動作の引き継ぎが完了した旨を通知する（Ｓ３９）。状態管理部１８−０は、ＦＥ１４−０にリセット信号を送信し、ＣＭ０からのＦＥ１４−０の切り離し処理を行う（Ｓ４０）。
【００９４】
図９Ａ−図９Ｃは、本実施形態における、系異常発生時の切離し動作フロー（経路障害）の一例を示す。図９Ａ−図９Ｃでは、ＦＥ−制御部間での異常発生、具体的にはＣＭ０のＦＥ−ＦＥ中継デバイス間に異常が発生した場合を例に説明するが、ＢＥ−制御部間での異常発生でも同様である。また、図９Ａ−図９Ｃでは、ＦＥ中継デバイスを“Ａ”で表す。
【００９５】
ＣＭ０のＦＥ１４−０とＦＥ中継デバイス（Ａ）１５−０のうちの一方または両方で経路異常が発生したとする。すると、ＦＥ１４−０、ＦＥ中継デバイス１５−０のうち、異常を検出した機能ブロックは、状態管理部１８−０に、異常割り込みを通知する（Ｓ５１）。
【００９６】
状態管理部１８−０は、その異常割り込み通知を受信すると、状態監視レジスタ１９を参照し、機能ブロックの過去の障害履歴を確認する（Ｓ５２）。この場合、ＦＥ１４−０及びＦＥ中継デバイス（Ａ）１５−０の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）であるから、ともに過去障害の履歴はない。
【００９７】
この場合、状態管理部１８−０は、障害箇所の特定とリブート動作を行う。まずは、状態管理部１８−０は、ＦＥ中継デバイス（Ａ）１５−０に対して、ＦＥ１４−０をリブートする旨を通知する（Ｓ５３）。ＦＥ中継デバイス１５−０は、状態管理部１８−０からその通知を受信すると、ＦＥ１４−０に対する応答待ち時間の超過によりタイムアウトになる機能をマスクする、またはＦＥ１４−０との経路を切断する（Ｓ５４）。
【００９８】
状態管理部１８−０は、ＦＥ１４−０に対して、リブート指示を行い（Ｓ５５）、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ５６）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（０１，００）と更新される。
【００９９】
ＦＥ１４−０では、状態管理部１８−０からのリブート指示を受信すると、リブートが行われる（Ｓ５７）。リブートが完了した場合、ＦＥ１４−０は、リブート完了を状態管理部１８−０へ通知する（Ｓ５８）。
【０１００】
状態管理部１８−０は、ＦＥ１４−０からリブート完了の通知を受けると、ＦＥ１４−０についての状態監視レジスタを更新する（Ｓ５９）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１０１】
状態管理部１８−０は、ＦＥ中継デバイス１５−０に対して、ＦＥ１４−０のリブートが完了したことを通知する（Ｓ６０）。ＦＥ中継デバイス１５−０は、状態管理部１８−０からＦＥ１４−０のリブートが完了した旨の通知を受信すると、ＦＥ１４−０に対する応答待ち時間の超過によりタイムアウトになる機能に対して行ったマスクを解除する（Ｓ６１）。
【０１０２】
状態管理部１８−０は、経路障害が発生していないか一定時間確認する（Ｓ６２）。すなわち、状態管理部１８−０は、一定時間異常割り込みが通知されるのを待つか、各機能ブロックへのポーリング結果を一定時間監視する。一定時間異常割り込みが通知されない場合（タイムアウト）、またはポーリングに対して一定時間異常発生が通知されない場合、状態管理部１８−０は、経路障害が発生していないと判定する。このとき、状態管理部１８−０は、先ほどの障害がＦＥ１４−０によるものであると判定し、ＦＥ１４−０を障害箇所と特定する。
【０１０３】
Ｓ６２の処理後、障害復旧を行う場合と、障害再発の場合とがある。まずは、障害復旧を行う場合について説明する。状態管理部１８は、Ｓ６２での特定結果に応じて、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ６３）。すると、ＣＭ０のＦＥ１４−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される。ＣＭ０のＦＥ中継デバイス（Ａ）の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１０４】
次に、障害再発の場合について説明する。再度、ＣＭ０のＦＥ１４−０とＦＥ中継デバイス（Ａ）１５−０のうちの一方または両方で経路異常が発生したとする。すると、ＦＥ１４−０、ＦＥ中継デバイス１５−０のうち、異常を検出した機能ブロックは、状態管理部１８−０に、異常割り込みを通知する（状態管理部１８−０は、ポーリングの結果を用いて異常を検出してもよい。）（Ｓ６４）。
【０１０５】
状態管理部１８は、その異常割り込み通知を受信すると、今回は、ＦＥ１４−０に対して、ＦＥ中継デバイス（Ａ）をリブートする旨を通知する（Ｓ６５）。ＦＥ１４−０は、状態管理部１８−０からその通知を受信すると、ＦＥ中継デバイス（Ａ）１５−０に対する応答待ち時間の超過によりタイムアウトになる機能をマスクする、またはＦＥ１４−０と接続する経路を切断する（Ｓ６６）。
【０１０６】
状態管理部１８−０は、ＦＥ中継デバイス（Ａ）１５−０に対して、リブート指示を行い（Ｓ６７）、ＦＥ中継デバイス（Ａ）１５−０についての状態監視レジスタ１９を更新する（Ｓ６８）。すると、ＣＭ０のＦＥ中継デバイス（Ａ）１５−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（０１，００）と更新される。
【０１０７】
ＦＥ中継デバイス（Ａ）１５−０では、状態管理部１８−０からのリブート指示を受信すると、リブートが行われる（Ｓ６９）。リブートが完了した場合、ＦＥ中継デバイス（Ａ）１５−０は、リブート完了を状態管理部１８−０へ通知する（Ｓ７０）。
【０１０８】
状態管理部１８−０は、ＦＥ中継デバイス（Ａ）１５−０からリブート完了の通知を受けると、ＦＥ中継デバイス（Ａ）１５−０についての状態監視レジスタ１９を更新する（Ｓ７１）。すると、ＣＭ０のＦＥ中継デバイス（Ａ）１５−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１０９】
状態管理部１８−０は、ＦＥ１４−０に対して、ＦＥ中継デバイス（Ａ）１５−０のリブートが完了したことを通知する（Ｓ７２）。ＦＥ１４−０は、状態管理部１８−０からＦＥ中継デバイス（Ａ）１５−０のリブートが完了した旨の通知を受信する。すると、ＦＥ１４−０は、ＦＥ中継デバイス（Ａ）１５−０に対する応答待ち時間の超過によりタイムアウトになる機能に対して行ったマスクを解除する、またはＦＥ中継デバイス（Ａ）１５−０と接続する経路を接続する（Ｓ７３）。
【０１１０】
状態管理部１８−０は、経路障害が発生していないか一定時間確認する（Ｓ７４）。すなわち、状態管理部１８−０は、一定時間異常割り込みが通知されるのを待つか、各機能ブロックへのポーリング結果を一定時間監視する。一定時間異常割り込みが通知されない場合（タイムアウト）、またはポーリングに対して一定時間異常発生が通知されない場合、状態管理部１８−０は、経路障害が発生していないと判定する。このとき、状態管理部１８−０は、先ほどの障害がＦＥ中継デバイス（Ａ）１５−０によるものであると判定し、ＦＥ中継デバイス（Ａ）１５−０を障害箇所と特定する。
【０１１１】
状態管理部１８は、Ｓ７４での特定結果に応じて、ＦＥ中継デバイス（Ａ）１５−０についての状態監視レジスタ１９を更新する（Ｓ７５）。すると、ＣＭ０のＦＥ中継デバイス（Ａ）１５−０の状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される。
【０１１２】
なお、ここでも故障が直らない場合、状態管理部１８は、ＦＥとＦＥ中継デバイス（Ａ）の両方をデグレードする。すなわち、状態管理部１８は、ＦＥとＦＥ中継デバイス（Ａ）の両方を切り離す。その手順は、ＦＥを切離すときと同様である。
【０１１３】
次に、１回目の障害時にＦＥ１４−０が障害箇所であった場合を考える。
図１０Ａ−図１０Ｃは、１回目の障害時に障害箇所であった場合の系異常発生時の切離し動作フロー（経路障害）の一例を示す。図１０Ａ−図１０Ｃでは、ＦＥ中継デバイスを“Ａ”で表す。
【０１１４】
ＣＭ０の状態管理部１８とＣＭ１の状態管理部１８は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ７６）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ７７）。すると、ＣＭ０において、ＣＭ１のＦＥの状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。また、ＣＭ０において、ＣＭ１のＦＥ中継デバイス（Ａ）の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。一方、ＣＭ１において、ＣＭ０のＦＥの状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される。また、ＣＭ１において、ＣＭ０のＦＥ中継デバイス（Ａ）の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１１５】
再度、ＦＥ１４−０とＦＥ中継デバイス（Ａ）１５−０のうちの一方又は両方で経路異常が発生したとする。すると、ＦＥ１４−０、ＦＥ中継デバイス１５−０のうち、異常を検出した機能ブロックは、状態管理部１８−０に、異常割り込みを通知する（Ｓ７８）。
【０１１６】
状態管理部１８−０は、その異常割り込み通知を受信すると、各機能ブロックの障害監視レジスタの「過去障害発生数」を参照して、機能ブロックの過去障害履歴を確認する（Ｓ７９）。この例では、状態管理部１８−０は、ＦＥ１４−０において過去に障害が発生していると判定する。
【０１１７】
すると、状態管理部１８−０は、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ８０）。ここでは、ＣＭ０のＦＥ１４−０についての障害監視レジスタの「過去障害発生数」に、“１”が設定されている状態で、異常割り込み通知を受信しているので、状態管理部１８は、次の処理を行う。すなわち、状態管理部１８は、ＣＭ０のＦＥ１４−０についての機能ブロック状態レジスタの「デグレード状態」を、“１”に更新し、障害監視レジスタ［１］を、“０”で更新する。
【０１１８】
ＣＭ０の状態管理部１８−０とＣＭ１の状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ８１）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ８２）。すると、ＣＭ０において、ＣＭ１のＦＥ１４−０の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（１０，００）と更新される。また、ＣＭ１において、ＣＭ０のＦＥ１４−０の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１１９】
ＣＭ０の状態管理部１８−０は、ＦＥ中継デバイス（Ａ）１５−０に、ＦＥ１４−０を切り離す旨を通知する（Ｓ８３）。ＦＥ中継デバイス（Ａ）１５は、状態管理部１８からＦＥ１４−０を切り離す旨の通知を受信すると、ＦＥ１４−０と接続する経路を切断する（Ｓ８４）。
【０１２０】
ＣＭ１の状態管理部１８は、切り離し閾値格納テーブル５０から非冗長時のＦＥ切り離し閾値を読み出し、状態管理部１８−１内の所定の記憶領域に設定する（Ｓ８５）。ＣＭ１の状態管理部１８−１は、制御部１６−１に、ＣＭ０のＦＥ１４−０の動作を引き継ぐように指示する（Ｓ８６）。制御部１６−１は、ＣＭ０のＦＥ１４−０の動作の引き継ぎが完了すると、状態管理部１８−１に、その完了を通知する（Ｓ８７）。状態管理部１８−１は、状態管理部１８−０に、ＣＭ０のＦＥ１４−０の動作の引き継ぎが完了した旨を通知する（Ｓ８８）。状態管理部１８−０は、ＦＥ１４−０にリセット信号を送信し、ＣＭ０からのＦＥ１４−０の切り離し処理を行う（Ｓ８９）。
【０１２１】
図１１Ａ及び図１１Ｂは、本実施形態における保守時動作フロー（ＦＥの交換の場合）の一例を示す。なお、ＢＥ側または制御部側での異常発生時でも同様である。ＦＥ中継デバイス１５−０とＦＥとは、ＣＭ０から切り離された状態（デグレード状態）になっている。また、ＣＭ１側の状態管理部１８−１は、ＦＥ切り離し閾値を、非冗長構成時に用いる値に設定している。
【０１２２】
保守者によって、ＦＥ中継デバイス（Ａ）１５−０から、ＦＥ１４−０が外されると、状態管理部１８はＦＥ中継デバイス（Ａ）１５−０からＦＥ１４−０が外されたことを認識する（Ｓ９１）。なお、状態管理部１８は自らＦＥ１４−０が外れたことを認識する。ＦＥ中継デバイス（Ａ）１５−０はＦＥ１４−０と接続する経路を切断しているので、ＦＥ１４−０が外れたこと及び搭載されたことを認識できない。
【０１２３】
保守者によって、ＦＥ中継デバイス（Ａ）１５−０に、交換されたＦＥ１４−０が接続されると、ＦＥ中継デバイス（Ａ）１５−０は、その旨を状態管理部１８−０に通知する。状態管理部１８−０は、その通知を受信すると、ＦＥ１４−０が搭載されたことを認識する（Ｓ９２）。
【０１２４】
状態管理部１８−０は、ＦＥ中継デバイス（Ａ）１５−０に対して、ＦＥ１４−０を組み込む旨を通知する（Ｓ９３）。ＦＥ中継デバイス（Ａ）１５−０は、ＦＥ１４−０を組み込む旨の通知を受信すると、ＦＥ１４−０と接続する経路を接続する（Ｓ９４）。
【０１２５】
状態管理部１８−０は、ＦＥ１４−０に対して、組み込み指示（リブート解除指示）を行い（Ｓ９５）、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ９６）。すると、ＣＭ０のＦＥの状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（０１，００）と更新される。
【０１２６】
ＦＥ１４−０は、状態管理部１８−０からの組み込み指示（リブート解除指示）を受信すると、ブートを行う（Ｓ９７）。ブートが完了すると、ＦＥ１４−０は、ブート完了を状態管理部１８−０へ通知する（Ｓ９８）。
【０１２７】
状態管理部１８−０は、ＦＥ１４−０からブート完了の通知を受けると、ＦＥ１４−０についての状態監視レジスタ１９を更新する（Ｓ９９）。すると、ＣＭ０のＦＥの状態監視レジスタ１９の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１２８】
状態管理部１８−０と状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ１００）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ１０１）。すると、ＣＭ０において、ＣＭ１のＦＥ１４−１の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。また、ＣＭ１において、ＣＭ０のＦＥ１４−０の状態監視レジスタ値が、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１２９】
状態管理部１８−１は、制御部１６−１に、ＣＭ０のＦＥ１４−０の動作引き継ぎを中止するように指示する（Ｓ１０２）。制御部１６−１は、ＣＭ０のＦＥ１４−０の動作の引き渡しが完了すると、状態管理部１８−１に、その完了を通知する（Ｓ１０３）。状態管理部１８−１は、切り離し閾値格納テーブル５０から冗長時のＦＥ切り離し閾値を読み出し、状態管理部１８−１内の所定の記憶領域に設定する（Ｓ１０４）。
【０１３０】
図１２Ａ及び図１２Ｂは、本実施形態における保守時（ＦＥの取り外しができない場合）の動作フローの一例を示す。図１２Ａ及び図１２Ｂは、ＦＥのみの取り外しができないので、その他のデバイスも併せて交換する場合のフローを示す。なお、ＢＥ側または制御部側での異常発生時でも同様である。ＦＥは、障害のために、システムから切り離された状態（デグレード状態）になっている。また、ＣＭ１側の状態管理部１８は、ＦＥ切り離し閾値を非冗長構成時で用いる閾値に設定している。
【０１３１】
まず、保守者による手動での作業により、ＣＭ０を交換する旨の命令をＣＭ１へ入力する（Ｓ１１１）。
【０１３２】
ＣＭ１の状態管理部１８−１は、ＣＭ１内の全機能ブロックのＦＥ切り離し閾値を非冗長で用いる閾値に変更する（Ｓ１１２）。ＣＭ１の状態管理部１８−１は、制御部１６−１に、ＣＭ０の動作を引き継ぐように指示する（Ｓ１１３）。制御部１６−１は、ＣＭ０のＦＥ１４−０の動作の引き継ぎが完了すると、状態管理部１８−１に、その完了を通知する（Ｓ１１４）。
【０１３３】
状態管理部１８−１は、制御部１６−１からＣＭ０の動作引き継ぎ完了の通知を受けると、ＣＭ０内のＦＥ以外の機能ブロックについての状態監視レジスタ１９を更新する（Ｓ１１５）。すると、ＣＭ０のすべての機能ブロックの状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（１０，００）と更新される。
【０１３４】
状態管理部１８−１は、ＲＡＩＤ装置１２からＣＭ０を取り外しても問題ない状態になるので（Ｓ１１６）、保守者は、ＲＡＩＤ装置１２からＣＭ０を取り外す。すると、状態管理部１８−１は、ＲＡＩＤ装置１２からＣＭ０が取り外されたことを認識する（Ｓ１１７）。保守者は、手動作業により、ＲＡＩＤ装置１２に新たなＣＭ０を搭載する。すると、状態管理部１８−１は、新たに搭載されたＣＭ０のＦＥを認識する（Ｓ１１８）。その後、ＣＭ０は自動でブートされる。
【０１３５】
状態管理部１８−０は、ＣＭ０の状態監視レジスタ１９を更新する（Ｓ１１９）。すると、ＣＭ０のすべての機能ブロックの状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１３６】
状態管理部１８−０と状態管理部１８−１は、相互に、ポーリングして状態監視レジスタの情報（ＣＭ状態情報）を送信して、ＣＭ状態情報を共有する（Ｓ１２０）。各状態管理部１８は、相手方のＣＭ状態情報を受信すると、ＣＭ状態情報を用いて、状態監視レジスタ１９を更新する（Ｓ１２１）。すると、ＣＭ０において、ＣＭ１のＦＥの状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。ＣＭ１において、ＣＭ０のＦＥ以外の機能ブロックの状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）と更新される。
【０１３７】
状態管理部１８−１は、制御部１６−１に、ＣＭ０内の機能ブロックの全動作の引き渡しを指示する（Ｓ１２２）。制御部１６−１は、ＣＭ０内の機能ブロックの全動作の引き渡しが完了すると、状態管理部１８−１に、その完了を通知する（Ｓ１２３）。
【０１３８】
状態管理部１８−１は、切り離し閾値格納テーブル５０から全ブロックの冗長時の切り離し閾値を読み出し、状態管理部１８−１内の所定の記憶領域に設定する（Ｓ１２４）。
【０１３９】
図１３Ａ及び図１３Ｂは、本実施形態における状態管理部が故障した場合の動作フローの一例を示す。図１３Ａ及び図１３Ｂでは、状態管理部をＳＭと表記する。
【０１４０】
ＣＭ０の状態管理部１８−０に異常が発生した場合、ＣＭ１の状態管理部１８−１はその異常を検出する（Ｓ１３１）。状態管理部１８−１は状態監視レジスタ１９を確認する（Ｓ１３２）。この場合、ＣＭ０のＦＥ１４−０及び状態管理部の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，００）であるから、ともに過去障害の履歴はない。
【０１４１】
状態管理部１８−１は、状態管理部１８−０に対して、リブート指示を行い（Ｓ１３３）、状態管理部１８−０についての状態監視レジスタ１９を更新する（Ｓ５６）。すると、状態管理部１８−０の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（０１，００）と更新される（Ｓ１３４）。状態管理部１８−１は、規定時間内に、状態管理部１８−１からブート完了が通知されることを監視する（Ｓ１３６）。
【０１４２】
ＣＭ０の状態管理部１８−０では、状態管理部１８−１からのリブート指示を受信すると、リブートが行われる（Ｓ１３５）。
【０１４３】
Ｓ１３５の処理において、ブートが完了しない場合と、ブートが完了する場合とがある。まずは、ブートが完了しない場合について説明する。規定時間内に、ＣＭ０の状態管理部１８−０からブート完了が通知されない場合（タイムアウトの場合）、状態管理部１８−１は、状態管理部１８−０についての状態監視レジスタを更新する（Ｓ１３７）。すると、ＣＭ０の状態管理部１８−０の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（１０，００）と更新される（Ｓ１３７）。
【０１４４】
状態管理部１８−１は、状態管理部１８−０をシステムから切り離す（リセット処理）旨を通知する（Ｓ１３８）。
【０１４５】
次に、ブートが完了する場合について説明する。状態管理部１８−０は、ブートが完了すると、その旨を状態管理部１８−１に通知する（Ｓ１３９）。状態管理部１８−１は、状態管理部１８−０についての状態監視レジスタを更新する（Ｓ１４０）。すると、ＣＭ０の状態管理部１８−０の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）と更新される。
【０１４６】
再び、状態管理部１８−０に異常が発生した場合、状態管理部１８−１はその異常を検出する（Ｓ１４１）。状態管理部１８−１は状態監視レジスタ１９を確認する（Ｓ１４２）。この場合、ＣＭ０の状態管理部（ＳＭ）の状態監視レジスタ１９の状態監視レジスタ値は、（機能ブロック状態レジスタ［１：０］，障害監視レジスタ［１：０］）＝（００，１０）であるから、ＣＭ０の状態管理部（ＳＭ）について過去の障害の履歴がある。
【０１４７】
すると、状態管理部１８−１は、状態管理部（ＳＭ）１８−０についての状態監視レジスタ１９を更新する（Ｓ１４３）。ここでは、ＣＭ０の状態管理部（ＳＭ）についての障害監視レジスタの「過去障害発生数」に、“１”が設定されている状態で、ＣＭ０から異常通知を受信しているので、状態管理部１８は、次の処理を行う。すなわち、状態管理部１８は、状態管理部（ＳＭ）１８−０についての機能ブロック状態レジスタの「デグレード状態」を、“１”に更新し、障害監視レジスタ［１：０］に、（００）を更新する。
【０１４８】
状態管理部１８−１は、状態管理部１８−０をシステムから切り離す（リセット処理）旨を通知する（Ｓ１４４）。
【０１４９】
図１４は、本実施形態における、ＣＭ０とＣＭ１それぞれで、異なるブロックが切り離されたときの保守のフローの一例を示す。図１４は、ＣＭ０のＦＥがデグレード状態で、ＣＭ１のＢＥがデグレード状態の場合であって、ＦＥ、ＢＥそれぞれ単独での取り外しが可能な場合を示す。
【０１５０】
ＣＭ０について、ＦＥ１４−０がデグレード状態であり、状態管理部１８−０にはＢＥ切り離し閾値が非冗長構成時に用いられる値に変更されている。ＣＭ１について、ＢＥ１４−１がデグレード状態であり、状態管理部１８−１にはＦＥ切り離し閾値が非冗長構成時に用いられる値に変更されている。この場合、図１１と同様のフローで、ＣＭ０のＦＥを交換し、ＣＭ１のＢＥを交換することができる。
【０１５１】
このように、図１４ではＦＥ、ＢＥそれぞれが単独で取り外しが可能な場合に、システムを停止しないで保守が可能となる。
【０１５２】
図１５は、本実施形態における、ＣＭ０とＣＭ１それぞれで、異なる機能ブロックが切り離されたときの保守のフローの他の例を示す。図１４は、ＣＭ０のＦＥがデグレード状態で、ＣＭ１のＢＥがデグレード状態の場合であって、ＦＥ、ＢＥそれぞれ単独での取り外しができない場合を示す。
【０１５３】
ＣＭ０について、ＦＥがデグレード状態であり、状態管理部１８−０にはＢＥ切り離し閾値が非冗長設定に変更されている。ＣＭ１について、ＢＥがデグレード状態であり、状態管理部１８−１にはＦＥ切り離し閾値が非冗長構成時に用いられている値に変更されている。この場合、ＣＭ０及びＣＭ１を交換する。
【０１５４】
このように、ＦＥ、ＢＥそれぞれ単独での取り外しができない場合に、保守時にシステム停止を伴う。なお、制御部の異常発生でも同様である。システム動作継続性向上のためには、ＦＥやＢＥ等がそれぞれ単独で取り外し可能であるほうが有利である。
【０１５５】
以下では、発生した異常の回数に応じて機能ブロックの切り離しを行う場合について説明する。
【０１５６】
図１６は、本実施形態における発生した異常の回数に応じて機能ブロックの切り離しを行うフローの一例を示す。図１６は、図８−図１３において、リブート指示及び切り離し処理の際に実行されるフローの例である。図１６のフローは、状態管理部１８が本実施形態に係るプログラムを読み込むことにより実行される。
【０１５７】
状態管理部１８は、自系ＣＭ内の機能ブロックまたは機能ブロック間の異常を検出すると（Ｓ１５１）、障害監視レジスタ４２の「過去障害発生数」をインクリメントする（Ｓ１５２）。なお、図９−図１０の経路間の障害においては、障害箇所として特定されたデバイスについての異常として計測する。
【０１５８】
状態管理部１８は、障害監視レジスタ４２の「過去障害発生数」と閾値とを比較する（Ｓ１５３）。「過去障害発生数」＜閾値の場合には、状態管理部１８は、異常を検出した機能ブロック、または異常を検出した機能ブロック間のいずれかの機能ブロックをリブートし（Ｓ１５４）、Ｓ１５１へ戻る。
【０１５９】
Ｓ１５３において、「過去障害発生数」≧閾値の場合には、状態管理部１８は、その機能ブロックを、システムから切り離す（Ｓ１５５）。
【０１６０】
このようにして、過去の障害履歴に応じて、切り離し対象となる機能ブロックを特定することができ、特定した機能ブロックを切り離すことができる。その結果、システムの可用性を向上させることができる。なお、図１６では、「過去障害発生数」を切り離しの評価対象に用いたが、これに限定されず、「非致命的エラー発生数」、「致命的エラー発生数」等を評価対象としてもよい。
【０１６１】
次に、機能ブロックの冗長性が保持されているか否かに応じて、機能ブロックを切り離すために用いる閾値を調整する場合について説明する。
【０１６２】
図１７は、本実施形態における機能ブロックの冗長性が保持されているか否かに応じて、機能ブロックを切り離すために用いる閾値を調整するフローの一例を示す。図１７のフローは、状態管理部１８が本実施形態に係るプログラムを読み込むより実行される。
【０１６３】
状態管理部１８は、他系ＣＭから、切り離し指示とＣＭ状態情報を取得する（Ｓ１６１）。状態管理部１８は、取得したＣＭ状態情報を用いて状態監視レジスタ１９を更新する（Ｓ１６２）。
【０１６４】
状態管理部１８は、ＣＭ状態情報の各機能ブロックの「デグレード状態」の値が「０」（正常）か否かを判定する（Ｓ１６３）。
【０１６５】
「デグレード状態」の値が「０」（正常）の場合において、状態管理部１８は、前回取得した「デグレード状態」の値と今回取得した「デグレード状態」の値が異なる場合、その機能ブロックについて冗長性が成立するか判定する（Ｓ１６４）。機能ブロックの冗長性が成立する場合、状態管理部１８は、切り離し閾値を冗長時に用いる閾値に変更する（Ｓ１６５）。
【０１６６】
「デグレード状態」の値が「０」以外（異常）の場合において、状態管理部１８は、前回取得した「デグレード状態」の値と今回取得した「デグレード状態」の値が異なる場合、その機能ブロックの冗長性を確認する（Ｓ１６６）。すなわち、状態管理部１８は、その機能ブロックを切り離してもその機能ブロックの冗長性が維持できるかを判定する。その機能ブロックの冗長性が維持できないと判定した場合、状態管理部１８は、切り離し閾値を非冗長時に用いる閾値に変更する（Ｓ１６７）。
【０１６７】
状態管理部１８は、変更した閾値を他系ＣＭへ通知する（Ｓ１６８）。
このように、機能ブロックの冗長性が保持されているか否かに応じて、機能ブロックを切り離すために用いる閾値を調整することができる。
【０１６８】
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１６９】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
情報処理システムを構築する処理装置であって、
前記処理装置を構築するデバイスと、
前記デバイスの異常を検知し、検知した前記デバイスの前記異常の回数を計測し、計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す処理部と、
を備えることを特徴とする処理装置。
（付記２）
前記処理部は、前記検知したデバイスの異常の回数が閾値より小さい場合には、前記デバイスのリブートを実行する
ことを特徴とする付記１に記載の処理装置。
（付記３）
前記処理部は、他の前記処理装置より該他の前記処理装置のデバイスの動作状況に関する動作状況情報を取得し、該動作状況情報に基づいて前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立しているか否かを判定し、判定した結果に基づいて前記デバイスに関して前記異常の回数についての前記閾値を調整する
ことを特徴とする付記２に記載の処理装置。
（付記４）
前記処理部は、前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立していない場合には、該デバイスの冗長状態が成立している場合に設定する前記閾値よりも大きい値の閾値を設定する
ことを特徴とする付記３に記載の処理装置。
（付記５）
前記処理部は、前記デバイス間の異常を検出した場合において、該デバイス間に存在するいずれかの該デバイスをリブートし、所定時間内に異常を検出しなかった場合には、リブートした該デバイスを障害箇所と特定し、該所定時間内に、再度、該デバイス間の異常を検出した場合には、該デバイス間のうち、前回リブートを行ったデバイス以外のデバイスをリブートし、所定時間内に異常を検出しなかった場合には、該リブートした該デバイスを障害箇所と特定し、障害箇所として特定されたデバイスの異常として計測する
ことを特徴とする付記１〜４のうちいずれか１項に記載の処理装置。
（付記６）
情報処理システムを構築する処理装置に、
前記処理装置を構築するデバイスの異常を検知し、
検知した前記デバイスの前記異常の回数を計測し、
計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す
処理を実行させることを特徴とする復旧プログラム。
（付記７）
前記デバイスの論理的な切り離しにおいて、前記検知したデバイスの異常の回数が閾値より小さい場合には、前記デバイスのリブートを実行する
ことを特徴とする付記６に記載の復旧プログラム。
（付記８）
前記デバイスの論理的な切り離しにおいて、他の前記処理装置より該他の前記処理装置のデバイスの動作状況に関する動作状況情報を取得し、該動作状況情報に基づいて前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立しているか否かを判定し、判定した結果に基づいて前記デバイスに関して前記異常の回数についての前記閾値を調整する
ことを特徴とする付記７に記載の復旧プログラム。
（付記９）
前記デバイスの論理的な切り離しにおいて、前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立していない場合には、該デバイスの冗長状態が成立している場合に設定する前記閾値よりも大きい値の閾値を設定する
ことを特徴とする付記８に記載の復旧プログラム。
（付記１０）
前記デバイスの論理的な切り離しにおいて、前記デバイス間の異常を検出した場合において、該デバイス間に存在するいずれかの該デバイスをリブートし、所定時間内に異常を検出しなかった場合には、リブートした該デバイスを障害箇所と特定し、該所定時間内に、再度、該デバイス間の異常を検出した場合には、該デバイス間のうち、前回リブートを行ったデバイス以外のデバイスをリブートし、所定時間内に異常を検出しなかった場合には、該リブートした該デバイスを障害箇所と特定し、障害箇所として特定されたデバイスの異常として計測する
ことを特徴とする付記６〜９のうちいずれか１項に記載の復旧プログラム。
（付記１１）
情報処理システムを構築する処理装置は、
前記処理装置を構築するデバイスの異常を検知し、
検知した前記デバイスの前記異常の回数を計測し、
計測した前記デバイスの異常の回数が閾値以上の場合、該デバイスを前記情報処理システムから論理的に切り離す
ことを特徴とする復旧方法。
（付記１２）
前記処理装置は、
前記デバイスの論理的な切り離しにおいて、前記検知したデバイスの異常の回数が閾値より小さい場合には、前記デバイスのリブートを実行する
ことを特徴とする付記１１に記載の復旧方法。
（付記１３）
前記処理装置は、
前記デバイスの論理的な切り離しにおいて、他の前記処理装置より該他の前記処理装置のデバイスの動作状況に関する動作状況情報を取得し、該動作状況情報に基づいて前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立しているか否かを判定し、判定した結果に基づいて前記デバイスに関して前記異常の回数についての前記閾値を調整する
ことを特徴とする付記１２に記載の復旧方法。
（付記１４）
前記処理装置は、
前記デバイスの論理的な切り離しにおいて、前記デバイスを論理的に切り離した場合に該デバイスの冗長状態が成立していない場合には、該デバイスの冗長状態が成立している場合に設定する前記閾値よりも大きい値の閾値を設定する
ことを特徴とする付記１３に記載の復旧方法。
（付記１５）
前記処理装置は、
前記デバイスの論理的な切り離しにおいて、前記デバイス間の異常を検出した場合において、該デバイス間に存在するいずれかの該デバイスをリブートし、所定時間内に異常を検出しなかった場合には、リブートした該デバイスを障害箇所と特定し、該所定時間内に、再度、該デバイス間の異常を検出した場合には、該デバイス間のうち、前回リブートを行ったデバイス以外のデバイスをリブートし、所定時間内に異常を検出しなかった場合には、該リブートした該デバイスを障害箇所と特定し、障害箇所として特定されたデバイスの異常として計測する
ことを特徴とする付記１１〜１４のうちいずれか１項に記載の復旧方法。
【符号の説明】
【０１７０】
１      情報処理システム
２      処理装置
３      デバイス
４      処理部
１１    ホスト
１２    ＲＡＩＤ装置
１３（１３−０、１３−１）    コントローラモジュール（ＣＭ）
１４（１４−０、１４−１）    フロントエンド（ＦＥ）
１５（１５−０、１５−１）    ＦＥ中継デバイス
１６（１６−０、１６−１）    制御部
１７（１７−０、１７−１）    メモリ
１８（１８−０、１８−１）    状態管理部
１９（１９−０、１９−１）    状態監視レジスタ
２０（２０−０、２０−１）    メモリ
２１（２１−０、２１−１）    ＢＥ中継デバイス
２２（２２−０、２２−１）    バックエンド（ＢＥ）
２３    ミッドプレーン
２４    ディスク部
２５    通信線
２６（２６−０、２６−１）    経路
２７（２７−０、２７−１）    経路
２８    経路
【図１】
2014191401.tif 000003
【図２】
2014191401.tif 000004
【図３】
2014191401.tif 000005
【図４】
2014191401.tif 000006
【図５】
2014191401.tif 000007
【図６】
2014191401.tif 000008
【図１６】
2014191401.tif 000009
【図１７】
2014191401.tif 000010
【図７】
2014191401.tif 000011
【図８Ａ】
2014191401.tif 000012
【図８Ｂ】
2014191401.tif 000013
【図８Ｃ】
2014191401.tif 000014
【図９Ａ】
2014191401.tif 000015
【図９Ｂ】
2014191401.tif 000016
【図９Ｃ】
2014191401.tif 000017
【図１０Ａ】
2014191401.tif 000018
【図１０Ｂ】
2014191401.tif 000019
【図１０Ｃ】
2014191401.tif 000020
【図１１Ａ】
2014191401.tif 000021
【図１１Ｂ】
2014191401.tif 000022
【図１２Ａ】
2014191401.tif 000023
【図１２Ｂ】
2014191401.tif 000024
【図１３Ａ】
2014191401.tif 000025
【図１３Ｂ】
2014191401.tif 000026
【図１４】
2014191401.tif 000027
【図１５】
2014191401.tif 000028