(57)【特許請求の範囲】
【請求項１】
ホストプロセッサとのインタフェースを持つ１または複数のチャネルアダプタと，ディスク装置とのインタフェースを持つ１または複数のデバイスインタフェースと，１または複数の通信用の転送回路とをそれぞれ有し，ホストプロセッサとディスク装置との間のデータ転送を制御する複数のコントローラモジュールを備え，かつ前記複数のコントローラモジュールは，前記転送回路を用いた通信経路によって互いに通信する機能を持つディスク制御装置であって，
前記コントローラモジュールの少なくとも一つは，
前記通信経路上で異常が生じた場合に，その異常が生じた部位を閉塞し，その部位の閉塞によって前記複数のコントローラモジュール間で通信ができなくなった場合に，通信ができなくなったコントローラモジュールのうち，二重化されていないデータを保持するコントローラモジュールを二重化されているデータを保持するコントローラモジュールよりも優先的に切り離し対象として決定する経路閉塞判定手段と，
前記経路閉塞判定手段によって切り離し対象として決定されたコントローラモジュールを使用不可の状態に設定する切り離し制御手段とを備える
ことを特徴とするディスク制御装置。
【請求項２】
請求項１記載のディスク制御装置において，
前記経路閉塞判定手段は，二重化されているデータを保持しているか否かにより切り離し対象のコントローラモジュールを決定できなかった場合に，前記通信経路上において閉塞した部位の位置とその数によって切り離し対象のコントローラモジュールを決定する
ことを特徴とするディスク制御装置。
【請求項３】
請求項２記載のディスク制御装置において，
前記経路閉塞判定手段は，前記通信経路上において閉塞した部位の位置とその数によって切り離し対象のコントローラモジュールを決定できなかった場合に，さらにあらかじめ定められたマスターとなる一つのコントローラモジュール以外のコントローラモジュールを優先的に切り離し対象として決定する
ことを特徴とするディスク制御装置。
【請求項４】
請求項１，請求項２または請求項３記載のディスク制御装置において，
前記経路閉塞判定手段は，自分のコントローラモジュールが切り離し対象の候補となった場合に，前記通信経路を用いた通信とは異なる通信手段によって，他の切り離し対象の候補となっているコントローラモジュールの生存を確認し，生存が確認できなかった場合には，その生存が確認できなかったコントローラモジュールを切り離し対象として決定する
ことを特徴とするディスク制御装置。
【請求項５】
ホストプロセッサとのインタフェースを持つ１または複数のチャネルアダプタと，ディスク装置とのインタフェースを持つ１または複数のデバイスインタフェースと，複数の通信用の転送回路とをそれぞれ有し，ホストプロセッサとディスク装置との間のデータ転送を制御する複数のコントローラモジュールを備え，かつ前記複数のコントローラモジュールは，前記転送回路と該転送回路を接続するスイッチング機能を持つ経路設定装置を用いた複数の通信経路によって互いに通信する機能を持つディスク制御装置であって，
前記通信経路上で異常が生じた場合に，その異常が生じた部位を閉塞し，その部位の閉塞によって前記複数のコントローラモジュール間で通信ができなくなった場合に，その部位の閉塞によってすべての通信経路が閉塞になったコントローラモジュールを切り離し対象として決定し，これにより決定できない場合に，前記通信できなくなったコントローラモジュールのうち，二重化されていないデータを保持するコントローラモジュールを二重化されているデータを保持するコントローラモジュールよりも優先的に切り離し対象として決定する経路閉塞判定手段と，
前記経路閉塞判定手段によって切り離し対象として決定されたコントローラモジュールを使用不可の状態に設定する切り離し制御手段とを備える
ことを特徴とするディスク制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ディスク制御装置に関し，特にディスク制御装置内の複数のコントローラモジュール（以下，ＣＭという）間でのデータ転送経路に異常が発生した場合に，システムに影響が最小となるように閉塞するＣＭを決定し閉塞させるようにした経路閉塞判定機能を持つディスク制御装置に関するものである。
【背景技術】
【０００２】
図１９は，従来のディスク制御装置の例を示す。図１９において，２００はディスク制御装置，２０１はそれぞれホストプロセッサとディスク装置との間のデータ転送制御やエラー処理等を行うコントローラモジュール（ＣＭ），２０２はスイッチング機能を持つ経路設定装置，２０３はホストプロセッサとのインタフェースを持つチャネルアダプタ（ＣＡ），２０４はディスク装置とのインタフェースを持つデバイスアダプタ（ＤＡ）である。なお，経路設定装置２０２は，フロントエンドラウタ（ＦＲＴ）と呼ぶこともある。
【０００３】
ホストプロセッサ（図示省略）からのディスク装置（図示省略）に対する入出力要求は，チャネルアダプタ２０３から経路設定装置２０２を経て，複数のＣＭ２０１の一つに送信され，ＣＭ２０１から経路設定装置２０２を経て，デバイスアダプタ２０４に送られ，ディスク装置への入出力が実行される。
【０００４】
図１９に示すような従来のディスク制御装置２００では，チャネルアダプタ２０３とデバイスアダプタ２０４とが経路設定装置２０２上に載っており，各ＣＭ２０１と，チャネルアダプタ２０３と，デバイスアダプタ２０４とが，経路設定装置２０２を通して，随時任意に接続される構成になっているため，どこかのモジュールに故障等の障害が発生した場合，その部分だけを閉塞して切り離せば，障害の影響範囲を局所化することを比較的簡単に行うことができた。
【０００５】
なお，下記の特許文献１に記載されているディスク制御装置では，複数のチャネルアダプタモジュール，複数のスイッチモジュールおよび一つのキャッシュモジュールで構成されるクラスタのそれぞれに異なる供給元から電源を供給し，各チャネルアダプタモジュールまたはディスクアダプタモジュールは，特定のキャッシュモジュールとの間のデータ転送のための複数のパスを設定可能としている。この特許文献１に示されているディスク制御装置も，障害時におけるモジュールの閉塞，切り離しに関しては，基本的に図１９に示したディスク制御装置と同様な方式を用いている。
【特許文献１】特開２００１−２７９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図２０は，本発明の課題を説明するための図である。本発明者等は，図２０に示すような，従来のディスク制御装置とは異なる新しいディスク制御装置の開発に取り組んでいる。図２０において，１０，１１はそれぞれホストプロセッサとディスク装置との間のデータ転送制御やエラー処理等を行うコントローラモジュール（ＣＭ），７０，７１はスイッチング機能を持つ経路設定装置（ＦＲＴ），４０，４１はホストプロセッサとのインタフェースを持つチャネルアダプタ（ＣＡ），５０，５１はディスク装置とのインタフェースを持つデバイスインタフェース（ＤＩ）であり，図１９のデバイスアダプタに相当するもの，６０，６１はＤＭＡチップ等によって構成されるデータ転送を行う転送回路を表す。
【０００７】
図２０に示すディスク制御装置が，図１９に示したような従来のディスク制御装置２００と大きく異なる点は，ホストインタフェースであるチャネルアダプタと，ディスク装置とのインタフェースであるデバイスインタフェースとが，ＣＭ１０，１１内に存在することである。これは，通常のアクセス時におけるホストプロセッサからディスク装置へのＣＭ１０またはＣＭ１１を介するデータ転送の経路をできるだけ単純化させ，制御の簡易化を図るとともに，チャネルアダプタおよびデバイスインタフェースを含めたＣＭの低コスト化を実現するためである。
【０００８】
なお，ＣＭ１０，１１間のデータ転送は，必要に応じて転送回路６０，６１および経路設定装置７０または７１を介して行われるようになっている。
【０００９】
このように，図２０に示すディスク制御装置では，チャネルアダプタとデバイスインタフェースとがＣＭ１０，１１内に存在するため，例えばＣＭ１１が障害により閉塞すると，そのチャネルアダプタ４１およびデバイスインタフェース５１も閉塞してしまうことになり，システムへの影響が大きくなってしまうという問題がある。なお，閉塞とは，装置や回路等の特定の部位が使用不可の状態になることをいう。
【００１０】
本発明は上記問題点の解決を図り，ＣＭが異常の場合でもＣＭが閉塞した場合の影響を考え，内部の異常部品を部分的に閉塞させることにより，部品またはＣＭの切り離しによる影響が小さくなるようにし，できるだけ運用の継続を可能にすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明は，ホストプロセッサとのインタフェースを持つ１または複数のチャネルアダプタと，ディスク装置とのインタフェースを持つ１または複数のデバイスインタフェースと，１または複数の通信用の転送回路とをそれぞれ有し，ホストプロセッサとディスク装置との間のデータ転送を制御する複数のコントローラモジュール（ＣＭ）を備え，かつ前記複数のＣＭは，前記転送回路を用いた通信経路によって互いに通信する機能を持つディスク制御装置において，装置構成や部品の閉塞具合，データ保持状態かどうかなどの装置状態から判断して運用を継続するために閉塞させるＣＭを決定することをもっとも主要な特徴とする。
【００１２】
すなわち，本発明に係るディスク制御装置内のＣＭの少なくとも一つは，ＣＭ間通信用の通信経路上で異常が生じた場合に，その異常が生じた部位を閉塞し，その部位の閉塞によって前記複数のＣＭ間で通信ができなくなった場合に，通信ができなくなったＣＭのうち，二重化されていないデータを保持するＣＭを二重化されているデータを保持するＣＭよりも優先的に切り離し対象として決定する経路閉塞判定手段と，前記経路閉塞判定手段によって切り離し対象として決定されたＣＭを使用不可の状態に設定する切り離し制御手段とを備える。これによりＣＭの可用性が大きくなり，障害によるシステムへの影響が小さくなる。
【００１３】
さらに，経路閉塞判定手段は，二重化されているデータを保持しているか否かにより切り離し対象のＣＭを決定できなかった場合に，前記通信経路上において閉塞した部位の位置とその数によって切り離し対象のＣＭを決定することもできる。これにより，使用できる可能性の小さいＣＭを優先的に切り離すことができる。
【００１４】
またさらに，経路閉塞判定手段は，前記通信経路上において閉塞した部位の位置とその数によって切り離し対象のＣＭを決定できなかった場合に，あらかじめ定められたマスターとなる一つのＣＭ以外のＣＭを優先的に切り離し対象として決定することもできる。これにより，マスターＣＭに比較して切り離しによる影響の小さいスレーブＣＭを優先的に切り離すことができる。
【００１５】
また，経路閉塞判定手段は，自分のＣＭが切り離し対象の候補となった場合に，通信経路を用いた通信とは異なる通信手段によって，他の切り離し対象の候補となっているＣＭの生存を確認し，生存が確認できなかった場合には，その生存が確認できなかったＣＭを切り離し対象として決定することもできる。これにより，使用できる可能性の小さいＣＭを優先的に切り離すことができる。
【００１６】
ＣＭ間の通信経路が各ＣＭに付随する転送回路と該転送回路を接続するスイッチング機能を持つ経路設定装置とによって構成されるディスク制御装置では，前記経路閉塞判定手段は，異常が生じた通信経路上の部位を閉塞し，その部位の閉塞によってＣＭ間で通信ができなくなった場合に，その部位の閉塞によってすべての通信経路が閉塞になったＣＭを切り離し対象として決定し，これにより決定できない場合に，通信できなくなったＣＭのうち，二重化されていないデータを保持するＣＭを二重化されているデータを保持するＣＭよりも優先的に切り離し対象として決定するように構成される。これにより，特に３個以上のＣＭを持つディスク制御装置において，効果的に切り離し対象のＣＭを選ぶことができるようになる。
【発明の効果】
【００１７】
本発明によれば，ＣＭにおいて異常が検出された場合に，直ちにそのＣＭを閉塞するのではなく，内部の異常部品を部分的に閉塞させ，ＣＭ間の通信経路が存在しＣＭ間通信ができる限りはＣＭを切り離さないで運用を継続する。ＣＭ間の通信経路がなくなり，ＣＭ間通信ができなくなったときには，保持しているデータが二重化されておりデータロストにならないＣＭを優先的に切り離し対象として選択して運用を継続する。したがって，障害によるシステムへの影響を小さくすることができるようになる。
【発明を実施するための最良の形態】
【００１８】
図１は，本発明の実施の形態に係るディスク制御装置の構成例を示す図である。図１に示すディスク制御装置１は，複数のコントローラモジュール（ＣＭ）１０，１１，…と，各ＣＭを接続するためのスイッチング機能を持つ経路設定装置（ＦＲＴ）７０，７１を備える。ＣＭ１０，１１は，ホストプロセッサとディスク装置との間のデータ転送制御やエラー処理等を行うものであり，それぞれホストプロセッサとのインタフェースを持つチャネルアダプタ（ＣＡ）４０，４１，ディスク装置とのインタフェースを持つデバイスインタフェース（ＤＩ）５０，５１およびＣＭ間のデータ転送やメッセージ通信を行うためのＤＭＡチップ等によって構成される転送回路６０，６１を備える。
【００１９】
ディスク制御装置１におけるＣＭの数が２の場合，すなわち２ＣＭ構成の場合には，経路設定装置７０，７１を設けないで，一方のＣＭ１０の転送回路６０と他方のＣＭ１１の転送回路６１とを直接接続した構成にすることもできる。
【００２０】
本実施の形態では，ＣＭ１０は，データ転送制御やエラー処理等を行うためのＣＰＵを備え，ＣＰＵとプログラムとによって実現される経路閉塞判定手段２０と，切り離し制御手段３０とを備える。ＣＭ１１も同様である。
【００２１】
経路閉塞判定手段２０および切り離し制御手段３０が行う処理の概要を，図２〜図４に従って説明する。
【００２２】
図２は，通信経路閉塞の処理を説明する図である。なお，各ＣＭ１０〜１３は，それぞれ２つの転送回路６０〜６３を備え，経路設定装置７０または７１によって設定された通信経路を通してＣＭ−ＣＭ間通信ができるようになっている。本実施の形態において，通信経路閉塞は，次のように行われる。
【００２３】
ＣＭ−ＣＭ間通信で異常を検出した場合，ＣＭ−ＣＭ間のデータ転送やメッセージ通信を行うＤＭＡチップによって構成される転送回路を切り離すことにより，異常を検出した通信経路を使わずに，反対側の通信経路を使ってＣＭ−ＣＭ間通信を行うことで，ＣＭを閉塞させることなく運用を継続する。すなわち，図２（Ａ）に示すように，ＣＭ１１の転送回路６１に障害が発生し，経路設定装置７０を通してＣＭ１０またはＣＭ１３からのＣＭ１１への通信ができなくなった場合，ＣＭ１１を閉塞するのではなく，ＣＭ１１における経路設定装置７０側の転送回路６１を閉塞し，切り離す。これによって，ＣＭ１０またはＣＭ１３からＣＭ１１への通信は，図２（Ｂ）に示すように，他の経路設定装置７１を通して行われ，運用を継続させることができる。
【００２４】
しかし，転送回路の切り離しにより複数の転送回路が閉塞していくと，通信経路がなくなり，通信できないＣＭが出てきてしまう。この問題を解決するため，通信できないＣＭを切り離すことにより運用を継続する。図３（Ａ）の例では，ＣＭ１１における経路設定装置７０側の転送回路６１と，ＣＭ１２における経路設定装置７１側の転送回路６２とが閉塞している。この場合，ＣＭ１１とＣＭ１２との間は通信経路がないため，通信ができない。したがって，ＣＭ１１とＣＭ１２のうち重要でないほうのＣＭ（例えばＣＭ１２）を，図３（Ｂ）に示すように閉塞する。これにより，ＣＭ１１が通信できないＣＭが存在しなくなるため，運用の継続が可能となる。
【００２５】
図４は，ディスク制御装置１が２ＣＭ構成時の場合のＣＭ閉塞の例を示している。ディスク制御装置１が経路設定装置７０，７１なしで，転送回路６０と転送回路６１とが直結された装置構成の場合，図４（Ａ）に示すように，ＣＭ１０とＣＭ１１の転送回路６０，６１が片方ずつ閉塞してしまうと，ＣＭ１０とＣＭ１１の通信経路がなくなってしまう。そこで，このような場合，図４（Ｂ）に示すように，ＣＭ１１を切り離す。こうすることにより，ディスク制御装置１は，一つのＣＭ１０で運用を継続することが可能となる。
【００２６】
なお，この場合にＣＭ１０を切り離すかＣＭ１１を切り離すかによって，システムへの影響が大きく異なることがある。そこで本発明では，後に詳述するように，システムの影響が小さいＣＭを優先的に切り離し対象として選択することを行う。
【００２７】
図５は，コントローラモジュールのブロック構成図である。図１に示すＣＭ１０（ＣＭ１１も同様）は，１または複数のＣＰＵ１００と，メモリ制御ハブ１０１と，メモリ１１０と，ホストプロセッサとのインタフェースを持つ複数のチャネルアダプタ（ＣＡ）４０と，ディスク装置とのインタフェースを持つ複数のデバイスインタフェース（ＤＩ）５０と，ＤＭＡチップ等によってデータ転送を行う複数の転送回路６０と，モジュール管理制御部（ＭＭＣ：Module Management Controller）１０２を備える。
【００２８】
メモリ制御ハブ１０１は，ＣＰＵ１００と，メモリ１１０と，ＣＡ４０と，ＤＩ５０と，転送回路６０と，モジュール管理制御部１０２とを接続する機能を持つ。メモリ１１０には，ディスクキャッシュとして用いられるキャッシュ領域１１１，転送データが一時的に格納されるバッファ領域１１２，各種制御用のテーブルデータが格納されるテーブル領域１１３，ＣＰＵ１００が実行するための制御用のプログラムが格納されるプログラム領域１１４が設けられる。
【００２９】
モジュール管理制御部１０２は，電源監視，温度監視などを行い，また保守管理用の通信機能を持つサービスコントローラ（ＳＶＣ：Service Controller）８０との通信によって，ディスク制御装置１の各種の保守機能を実現するものである。
【００３０】
転送回路６０は，ディスク制御装置１が２台のＣＭで構成される場合には，相手側のＣＭの転送回路に直結され，またディスク制御装置１が３台以上のＣＭで構成される場合には，図１に示す経路設定装置７０，７１に接続される。
【００３１】
図１に示す経路閉塞判定手段２０および切り離し制御手段３０は，ＣＰＵ１００と，メモリ１１０のプログラム領域１１４に格納されたプログラムとによって実現されるが，以下，経路閉塞判定手段２０および切り離し制御手段３０が行う処理について具体的に説明する。
【００３２】
［２ＣＭ構成での経路閉塞発生時の処理］
ディスク制御装置１が２台のＣＭで構成される場合，障害により通信経路がなくなると，どちらかのＣＭを切り離して１ＣＭ構成として運用を行う。この場合，以下の(a) 〜(d) の条件に従い，切り離すＣＭを決定する。条件(a) 〜(d) は，優先順位を(a) ＞(b) ＞(c) ＞(d) とし，優先順位の高いものから条件を探していく。
【００３３】
(a) 二重化データを持っていないＣＭ
活性保守でのＣＭの組み込みや，データの書き戻しが完了していないデータを保持するＣＭが存在することにより，データが二重化できていない状態で，両通信経路が閉塞した場合，データが二重化されていないＣＭを切り離すとデータロストとなってしまうため，データが二重化されているＣＭを切り離す。
【００３４】
データが二重化されていないＣＭは，経路閉塞を検出した場合に，相手ＣＭを切り離す。データが二重化されているＣＭは，基本的には二重化されていないＣＭから切り離されることを期待し，相手ＣＭからの切り離しを待つが，相手ＣＭがハングアップしたことにより，実際には経路障害ではなくＣＭ障害であるにもかかわらず，経路閉塞に見えている可能性もあるので，ＳＶＣ間通信を使ったＣＭ生存確認を行い，相手ＣＭの生存が確認できれば，これ以上無駄な動きをしないため自己Ｐａｎｉｃする。
【００３５】
Ｐａｎｉｃとは，ソフトウェア的にリセットすることであり，通常は，ソフトウェアの矛盾を検出したときなどに処理継続不能となるために行われるものである。自己Ｐａｎｉｃは，相手ＣＭから切り離されることを期待しているが，それ以上不要な動作をしてシステムに悪影響を出さないように，自らソフトウェア的にリセットし，現在の処理を打ち切ることである。
【００３６】
相手ＣＭの生存が確認できない場合，自分が切り離されることが期待できないため，相手ＣＭを切り離す。データが二重化されていないＣＭを切り離すことによりマシンダウンとする。
【００３７】
図６に，ダーティ(Dirty) のないＣＭの切り離しの例を示す。ここで，ダーティのないＣＭとは，データが二重化できていない状態のデータを持っていないＣＭをいう。図６の例では，ＣＭ１０とＣＭ１１とが両経路の閉塞により通信できない状態になっているが，ＣＭ１０が二重化されていない一重化データを持っているので，ＣＭ１１を切り離し，ＣＭ１０により運用を継続する。
【００３８】
(b) 転送回路ノースポート（ＮＰ）閉塞ＣＭ
転送回路は，自分のＣＭの内部側へのポートと，相手側のＣＭ（または経路設定装置）側へのポートを持つが，前者をノースポート（ＮＰ），後者をサウスポート（ＳＰ）と呼ぶ。転送回路ＮＰ異常は，図５に示す転送回路６０とメモリ制御ハブ１０１間のＣＭ１０内部の異常であり，そのＣＭを保守しない限り異常を取り除くことはできない。そこで，転送回路ＮＰが閉塞しているＣＭがある場合には，そのＣＭを切り離す。
【００３９】
ただし，両ＣＭとも転送回路ＮＰに異常がある場合には，次の判定に従う。
・転送回路ＮＰ異常がないＣＭは，経路閉塞を検出したならば相手ＣＭを切り離す。
・転送回路ＮＰ異常があるＣＭは，ＳＶＣ間通信を使ったＣＭ生存確認を行い，相手ＣＭの生存が確認できれば自己Ｐａｎｉｃする。生存が確認できない場合，相手ＣＭを切り離す。
【００４０】
図７に，転送回路ＮＰ閉塞時のＣＭの切り離しの例を示す。図７の例では，ＣＭ１０とＣＭ１１とが両経路の閉塞により通信できない状態になっているが，ＣＭ１１の転送回路６１にＮＰ異常が発生している。そこで，ＣＭ１１を切り離し，ＣＭ１０により運用を継続する。
【００４１】
(c) その他に閉塞しているものがあるＣＭ
転送回路ＮＰ閉塞がない場合や，両ＣＭとも同数の転送回路ＮＰ閉塞がある場合には，その他の部品が閉塞しているＣＭを切り離す。以下の優先順で判断する。
・優先順１：両転送回路が閉塞になるＣＭ。
・優先順２：オンラインのＣＡが存在しないＣＭ。
・優先順３：ＤＩポート閉塞が多いＣＭ。
【００４２】
その他の部品が閉塞していないＣＭは，経路閉塞を検出したときに相手ＣＭを切り離す。その他の部品が閉塞しているＣＭは，ＳＶＣ間通信を使ったＣＭ生存確認を行い，相手ＣＭの生存が確認できれば自己Ｐａｎｉｃする。生存が確認できない場合，相手ＣＭを切り離す。
【００４３】
図８（Ａ）は，転送回路ＳＰ閉塞判定によるＣＭの切り離しの例を示している。図８（Ａ）の例では，ＣＭ１１の二つの転送回路６１がＳＰ（サウスポート）閉塞になっている。したがって，上記優先順１の判断に従ってＣＭ１１を切り離す。
【００４４】
図８（Ｂ）は，ＣＡ閉塞判定によるＣＭの切り離しの例を示している。図８（Ｂ）の例では，ＣＭ１１のすべてのＣＡ４１が閉塞になっている。したがって，上記優先順２の判断に従ってＣＭ１１を切り離す。
【００４５】
図８（Ｃ）は，ＤＩポート（Port）閉塞判定によるＣＭの切り離しの例を示している。図８（Ｃ）の例では，ＣＭ１１のＤＩポート（ディスク装置への接続部）の閉塞数が，ＣＭ１０のものより多い。そこで，上記優先順３の判断に従ってＣＭ１１を切り離す。
【００４６】
(d) スレーブＣＭ
以上の条件に当てはまらない場合には，マスターＣＭを優先して残す。マスターＣＭは，ディスク制御装置１に存在するすべてのＣＭの状態を管理するＣＭであり，ディスク制御装置１内の特定の一つのＣＭが担当する。マスターＣＭ以外のＣＭは，スレーブＣＭと呼ばれる。マスターＣＭが障害により切り離される場合には，スレーブＣＭの中の一つのＣＭが新たにマスターＣＭとして選ばれる。
【００４７】
マスターＣＭは，経路閉塞を検出したならば，スレーブＣＭを切り離す。スレーブＣＭは，マスターＣＭが異常である可能性もあるので，自己ＰａｎｉｃするのではなくＳＶＣ間通信を使ってマスターＣＭの生存確認を行う。生存確認で異常がなければ，切り離されるので自己Ｐａｎｉｃする。この生存確認で異常を検出した場合，マスターＣＭ異常であるのでマスターＣＭを切り離す。
【００４８】
図９は，スレーブＣＭの切り離しの例を示している。図９の例では，マスターＣＭであるＣＭ１０と，スレーブＣＭであるＣＭ１１との両経路が閉塞しているが，マスターＣＭを優先して残すため，スレーブＣＭであるＣＭ１１を切り離し，ＣＭ１０だけで運用を継続する。
【００４９】
［３ＣＭ以上の構成での経路閉塞発生時の処理〕                                    ２ＣＭ構成の場合とは違い，互い違いに転送回路が閉塞することにより，あるＣＭとは通信できるが，あるＣＭとは通信できないというような状態になる場合がある。転送回路閉塞によりＣＭ間通信ができないＣＭが出てきた場合，通常はすでに転送回路が閉塞しているＣＭを切り離す。
【００５０】
図１０は，４ＣＭ構成の場合のＣＭの切り離しの例を示している。図１０（Ａ）の例では，ＣＭ１１の経路設定装置７０側の転送回路（＃０）６１が，すでに切り離し済みになっていたとする。ここで，ＣＭ１２の経路設定装置７１側の転送回路（＃１）６２に異常が発生すると，ＣＭ１１とＣＭ１２間に通信経路がなくなるため，ＣＭ１１とＣＭ１２は通信できなくなる。この場合，図１０（Ｂ）に示すように，すでに転送回路が切り離されているＣＭ１１を切り離す。
【００５１】
以上のように，通常，すでに転送回路が閉塞したＣＭを切り離すが，そのＣＭを切り離した場合にデータロストとなるようなケースでは，後から転送回路閉塞を検出したＣＭを切り離す。後から転送回路閉塞を検出したＣＭを切り離しても運用不能状態やデータロストになる場合には，マシンダウンとしてシステム全体を停止する。
【００５２】
図１１は，４ＣＭ構成の場合のＣＭの切り離しの他の例を示している。図１１（Ａ）の例では，ＣＭ１１の経路設定装置７０側の転送回路（＃０）６１が，すでに切り離し済みになっているが，ＣＭ１１はデータが二重化できていないダーティな状態であったとする。ここで，ＣＭ１２の経路設定装置７１側の転送回路（＃１）６２に異常が発生すると，ＣＭ１１とＣＭ１２間に通信経路がなくなるため，ＣＭ１１とＣＭ１２は通信できなくなる。この場合，図１１（Ｂ）に示すように，すでに転送回路が切り離されいるＣＭ１１ではなく，ＣＭ１２を切り離す。このように，すでに転送回路が閉塞されているＣＭのデータが二重化されていない場合，切り離すとデータロストとなるため，後から転送回路異常を検出したＣＭを切り離す。
【００５３】
同一経路設定装置（ＦＲＴ）側の転送回路が閉塞しているＣＭが複数ある状態で，反対側のパスの転送回路が閉塞した場合，または，すでに転送回路が閉塞しているＣＭがミラーを組んでいない場合，すなわち切り離してもデータロストにはならない場合には，すでに転送回路が閉塞していたＣＭを切り離す。すでに転送回路が閉塞していたＣＭを切り離すことによりデータロストとなる場合には，後から転送回路の閉塞を検出したＣＭを切り離す。
【００５４】
図１２は，４ＣＭ構成の場合のＣＭの切り離しの他の例を示している。図１２（Ａ）に示す状態においては，ＣＭ１０とＣＭ１１，ＣＭ１１とＣＭ１２，ＣＭ１２とＣＭ１３，ＣＭ１３とＣＭ１０とが，それぞれミラーを組んでいたとする。ミラーを組んでいるとは，同一データを保持してデータを二重化している状態をいう。また，ＣＭ１１とＣＭ１３の経路設定装置７０側の転送回路６１，６３が，すでに切り離し済みになっていたとする。
【００５５】
ここで，ＣＭ１２の経路設定装置７１側の転送回路６２に異常が発生すると，ＣＭ１１とＣＭ１２間，ＣＭ１２とＣＭ１３間は通信できなくなる。この場合，ＣＭ１１とＣＭ１３とは，ミラーを組んでいないので，これらを切り離してもデータロストとはならない。そこで，図１２（Ｂ）に示すように，切り離してもデータロストとはならないＣＭ１１とＣＭ１３を切り離す。
【００５６】
同様に，図１３（Ａ）に示す状態においては，ＣＭ１０とＣＭ１１，ＣＭ１１とＣＭ１２，ＣＭ１２とＣＭ１３，ＣＭ１３とＣＭ１０とが，それぞれミラーを組んでいたとする。また，ＣＭ１１とＣＭ１２の経路設定装置７０側の転送回路６１，６２が，すでに切り離し済みになっていたとする。この状態で，ＣＭ１３の経路設定装置７１側の転送回路６３に異常が発生すると，ＣＭ１１とＣＭ１３間，ＣＭ１２とＣＭ１３間は通信できなくなる。この場合，ＣＭ１１とＣＭ１２とは，ミラーを組んでいるため，これらを切り離すとデータロストとなる。そこで，図１３（Ｂ）に示すように，切り離してもデータロストとはならないＣＭ１３を切り離す。
【００５７】
次に，図１４〜図１６に従って，本発明の実施の形態に係る経路閉塞判定の処理フローについて説明する。
【００５８】
転送回路または経路設定装置の異常が検出され，切り離し事象が検出されると（Ｓ１０），閉塞判定が必要かどうかの判定１を行う（Ｓ１１）。今回切り離し対象となった経路の反対側で，すでに閉塞している転送回路等がない場合，または，切り離し中の転送回路もしくは経路設定装置が存在しない場合には，ステップＳ１３へ進み，通常の切り離しを実施する。また，ディスク制御装置１が１ＣＭ構成（判定２）の場合にも（Ｓ１２），ステップＳ１３へ進み，通常の切り離しを実施する。ここで，通常の切り離しとは，異常になった部位だけを閉塞させることをいう。
【００５９】
それ以外の場合にはステップＳ１４へ進み，ディスク制御装置１が２ＣＭ構成かどうかの判定３を行う（Ｓ１４）。ディスク制御装置１が３ＣＭ以上で構成される場合，図１６のステップＳ３０へ進む。
【００６０】
ディスク制御装置１が２ＣＭ構成の場合，相手ＣＭのデータが二重化されているかどうかの判定４を行う（Ｓ１５）。相手ＣＭのデータが二重化されている場合，図１５のステップＳ２０へ進む。
【００６１】
判定４の結果，相手ＣＭのデータが二重化されていない場合，ＳＶＣ間通信で相手ＣＭの生存を確認する（Ｓ１６）。すなわち，２ＣＭ構成の場合，自分が切り離し対象となると判断できたとしても，実際に相手ＣＭが正常に動作するかどうか判断できない。通信経路は両方閉塞しているため，サービスコントローラ（ＳＶＣ）８０を経由した通信を用いて，相手ＣＭの生存を確認する。なお，このＳＶＣ８０を経由した通信は，基本的には運用中は使用しない。
【００６２】
このＳＶＣ通信の結果，相手ＣＭから応答があるかどうかの判定５を行い（Ｓ１７），相手ＣＭから応答があれば，相手ＣＭは生存していると判断し，ステップＳ１８へ進む。一方，相手ＣＭから応答がなければ，相手ＣＭは生存していないと判断し，ステップＳ１９へ進む。
【００６３】
相手ＣＭから応答があった場合には，自ＣＭが相手ＣＭから切り離されることになるが，それ以上不要な動作をしないために自己Ｐａｎｉｃする（Ｓ１８）。なお，自己Ｐａｎｉｃとは，前述のように，相手ＣＭから切り離されることを期待しているが，それ以上不要な動作をしてシステムに悪影響を出さないように，自らソフトウェア的にリセットすることである。
【００６４】
また，相手ＣＭから応答がない場合，本来は自ＣＭを切るべきであるが自ＣＭ以外に生存しているＣＭが存在しないため，相手ＣＭを切り離す（Ｓ１９）。
【００６５】
判定４において相手ＣＭのデータが二重化されていることがわかった場合，図１５のステップＳ２０へ進み，自分のデータも二重化されているかどうかの判定６を行う。自分のデータが二重化されていない場合，ステップＳ２９へ進み，相手ＣＭを切り離す。
【００６６】
自分のデータも二重化されている場合，相手ＣＭと自分との転送回路ＮＰ閉塞数を比較する判定７，判定８を行う（Ｓ２１，Ｓ２２）。相手ＣＭのほうが転送回路ＮＰ閉塞が多い場合，ステップＳ２９へ進み，相手ＣＭを切り離す。また，自分のほうが転送回路ＮＰ閉塞が多い場合，ステップＳ２６へ進む。
【００６７】
相手および自分の両ＣＭとも閉塞していない場合，または転送回路ＮＰ閉塞の数が同数の場合には，ステップＳ２３へ進み，相手ＣＭと自分との閉塞部品数を比較する判定９，判定１０を行う（Ｓ２３，Ｓ２４）。相手ＣＭのほうが閉塞部品を多く持っている場合，ステップＳ２９へ進み，相手ＣＭを切り離す。また，自分のほうが閉塞部品数を多く持っている場合には，ステップＳ２６へ進む。
【００６８】
相手および自分の両ＣＭとも閉塞部品がない場合，または閉塞部品数が同数の場合には，ステップＳ２５へ進み，自分がマスターＣＭかどうかの判定１１を行う。自分がマスターＣＭの場合，ステップＳ２９へ進み，相手ＣＭを切り離す。自分がスレーブＣＭの場合，ステップＳ２６へ進む。
【００６９】
ステップＳ２６では，ＳＶＣ８０を経由した通信を用いて，相手ＣＭの生存を確認する。このＳＶＣ通信の結果，相手ＣＭから応答があるかどうかの判定１２を行い（Ｓ２７），相手ＣＭから応答があれば，相手ＣＭは生存していると判断し，自己Ｐａｎｉｃする（Ｓ２８）。一方，相手ＣＭから応答がなければ，相手ＣＭは生存していないと判断し，ステップＳ２９へ進み，相手ＣＭを切り離す。
【００７０】
図１４の判定３において，ディスク制御装置１が３ＣＭ以上の構成であることがわかった場合，図１６のステップＳ３０へ進み，今回の閉塞で両経路閉塞になるかどうかの判定１３を行う。今回閉塞対象となった転送回路または経路設定装置とは反対側の通信経路（以下，反対経路という）における転送回路切り離しを検出した場合，ステップＳ３１へ進み，両経路閉塞となるＣＭを切り離す。
【００７１】
両経路閉塞にならない場合，反対経路が閉塞しているＣＭのデータが二重化されているかどうかの判定１４を行う（Ｓ３２）。反対経路が閉塞しているＣＭのデータが二重化されていなければ，ステップＳ３６へ進む。
【００７２】
反対経路が閉塞しているＣＭのデータが二重化されていれば，その反対経路が閉塞しているＣＭ数が１かどうかの判定１５を行う（Ｓ３３）。反対経路が閉塞しているＣＭ数が１の場合，ステップＳ３５へ進み，反対経路閉塞ＣＭを切り離す。そのＣＭ数が２以上の場合，反対経路が閉塞しているＣＭがミラーを組んでいるかどうかの判定１６を行う（Ｓ３４）。ミラーを組んでいない場合，すなわち切り離してもデータロストとならない場合，ステップＳ３５へ進み，反対経路閉塞ＣＭを切り離す。ミラーを組んでいて，そのＣＭを切り離すとデータロストとなる場合，ステップＳ３６へ進む。
【００７３】
ステップＳ３６では，今回の検出が転送回路の切り離しかどうかの判定１７を行う。今回の切り離しが転送回路ではなく，経路設定装置の切り離しの場合には，どこを切り離してもデータロストとなり，これ以上の運用継続は不可能になるため，ステップＳ３９へ進みサブシステムダウンとする。なお，サブシステムダウンとは，データが二重化されていないＣＭの切り離しを検出した場合など，システムとしての運用継続が不可能な場合に影響を最小限に抑えるため，ディスク制御装置１のホストインタフェースを閉じて運用を停止させた状態にすることをいう。
【００７４】
今回の検出が転送回路の切り離しの場合，今回，転送回路を切り離すＣＭのデータが二重化されているかどうかの判定１８を行う（Ｓ３７）。二重化されている場合，今回検出のＣＭを切り離す（Ｓ３８）。二重化されていない場合，ステップＳ３９へ進み，サブシステムダウンとする。
【００７５】
なお，２ＣＭ構成のディスク制御装置１においても，ＣＭの切り離しでは，切り離し対象のＣＭのデータが二重化されてない場合があり，このようなＣＭの切り離しを検出した場合にはサブシステムダウンとする。また，ステップＳ３１，Ｓ３５，Ｓ３８において，切り離しを検出したＣＭの切り離し対象が自分であった場合，実際に通信できるかどうかわからないが，マスターＣＭに対して切り離しの検出を通知する（マスターＣＭが切り離しを検出した場合，次にマスターＣＭになるＣＭに対して通知する）。通知の通信結果にかかわらず，その後の処理は何もしないでマスターＣＭから切り離されるのを待つ。
【００７６】
図１７は，本発明の実施の形態に係るＣＭ切り離しの処理フローを示す。図１に示す切り離し制御手段３０によるＣＭの切り離しは，次のように行われる。以下，図１７に示す（Ａ）〜（Ｈ）に従って説明する。この例では，ＣＭ１０がマスターＣＭであり，他のＣＭ１１〜１３がスレーブＣＭであったとする。
【００７７】
（Ａ）スレーブＣＭであるＣＭ１１に異常が発生したとする。
【００７８】
（Ｂ）ＣＭ１１は，異常を検出すると，マスターＣＭであるＣＭ１０へ切り離しを通知する。なお，自分以外の他のＣＭの異常を検出した場合にも，マスターＣＭへの通知を行う。このとき，マスターＣＭ以外のＣＭがマスターＣＭの異常を検出した場合には，次にマスターＣＭになるＣＭに異常を通知する。マスターＣＭが自分の異常を検出した場合には，そのまま切り離し処理を開始する。
【００７９】
（Ｃ）マスターＣＭであるＣＭ１０は，他のスレーブＣＭであるＣＭ１２，１３に，切り離し開始を通知する。
【００８０】
（Ｄ）ＣＭ１２，１３は，ＣＭ１０から切り離し開始の通知を受けたら，以降の切り離し対象ＣＭ１１への通信を中止する。なお，マスターＣＭの切り離しの場合には，新規にマスターになるＣＭが，他のＣＭに対してマスターＣＭの変更情報を配信する。
【００８１】
（Ｅ）マスターＣＭからの指示で，全ＣＭへのホストＩ／Ｏをサスペンド状態にする。すなわち，ホストプロセッサの入出力を一時的に停止状態にする。
【００８２】
（Ｆ）マスターＣＭであるＣＭ１０は，切り離し対象ＣＭ１１のステータスを“デグレード”に変更した構成情報を他のＣＭ１２，１３に配信する。
【００８３】
（Ｇ）マスターＣＭからの指示で，全ＣＭへのホストＩ／Ｏをレジュームする。すなわち，一時的に停止状態にしていたホストプロセッサの入出力を再開する。
【００８４】
（Ｈ）最後にマスターＣＭであるＣＭ１０は，切り離し対象ＣＭ１１をハード的にリセットする。これにより，ＣＭ１１の切り離し処理が完了する。
【００８５】
図１８は，ＣＭ１０における経路閉塞判定手段２０および切り離し制御手段３０が用いる管理用のデータが格納されたテーブルの構成例を示す。これらのテーブルは，メモリ１１０におけるテーブル領域１１３に記憶される。これらのテーブルは，各ＣＭが持つが，マスターＣＭ主導で同期される。すなわち，テーブルの内容に変更があると，その変更情報がマスターＣＭから他のＣＭへ配信され，同一内容が保持されるようになっている。
【００８６】
図１８（Ａ）に示すテーブルは，ＣＭのＣＰＵ情報を保持するテーブルである。このテーブルにおいて，モジュールＩＤは，ＣＰＵのモジュールを識別する識別情報である。ロール（Role）は，該当ＣＭの役割を示す情報であり，このＣＭがマスターＣＭであるかスレーブＣＭであるかを示す。
【００８７】
ダーティフラグ（Dirty Flag）は，ダーティリカバリの状態を示すフラグであり，ＣＭを切り離したり，組み込んだりした場合に，データが一重化状態で二重化されるまでの間にセットされる。このダーティフラグに値がセットされているＣＭが切り離されるとデータロストとなる。ＤＩポートステータスは，デバイスインタフェース（ＤＩ）におけるディスク装置へのポートごとに，ポートが閉塞しているかどうかを示す情報である。
【００８８】
ＣＭのＣＰＵ情報テーブルは，他にも各種の状態情報や定義されている部品のタイプなどの多くの情報を持つが，本発明に関係しないものについては詳しい説明を省略する。
【００８９】
図１８（Ｂ）に示すテーブルは，ＣＭ単位で必要な情報を格納するＣＭ情報テーブルである。このテーブルにおいて，マスターＣＰＵのモジュールＩＤは，ＣＭが複数のＣＰＵを搭載する場合に，マスターとなるＣＰＵを示すモジュールＩＤである。
【００９０】
経路ステータスは，ＣＭと経路設定装置（ＦＲＴ）間の経路についてパス単位で切り離しを行うために用いる状態情報である。転送回路ＮＰステータスは，転送回路ごとにＮＰ閉塞中かどうかを示す状態情報であり，転送回路ＳＰステータスは，転送回路ごとにＳＰ閉塞中かどうかを示す状態情報である。その他にも，例えばモジュール管理制御部１０２などの各種の状態情報を持つ。
【００９１】
図１８（Ｃ）に示すテーブルは，チャネルアダプタ（ＣＡ）単位で必要な情報を格納するＣＡ情報テーブルである。ステータスとして，ＣＡが正常であるか異常であるかなどを示す情報を保持する。
【００９２】
図１８（Ｄ）に示すテーブルは，経路設定装置単位で必要な情報を格納するＦＲＴ情報テーブルである。ステータスとして，経路設定装置が正常であるか異常であるかなどを示す情報を保持する。
【００９３】
図１８（Ｂ）のＣＭ情報テーブルにおける経路ステータスと，図１８（Ｄ）のＦＲＴ情報テーブルにおけるステータスが，経路閉塞判定手段２０において，経路閉塞状態の判断に用いられる。切り離し検出から，これらのステータスが変更されるまでには，多少なりともタイムラグが起こる。そのため，マスターＣＭは，これらの情報テーブル以外に，ローカルに転送回路と経路設定装置について切り離し中か否かの情報を覚えておき，ステータスが変更される前でも，今後ステータスが変わるかどうかを判断できるようにしている。
【００９４】
図１８（Ｂ）のＣＭ情報テーブルにおける転送回路ＮＰステータスが，経路閉塞判定手段２０において，転送回路ＮＰ閉塞の判断に用いられ，また，これと転送回路ＳＰステータス，および図１８（Ａ）のＣＭのＣＰＵ情報テーブルにおけるＤＩポートステータス，図１８（Ｃ）のＣＡ情報テーブルにおけるステータスが，経路閉塞判定手段２０において，閉塞部品数の判断に用いられる。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態に係るディスク制御装置の構成例を示す図である。
【図２】通信経路閉塞の処理を説明する図である。
【図３】３以上のＣＭ構成時のＣＭの切り離し処理を説明する図である。
【図４】２ＣＭ構成時のＣＭの切り離し処理を説明する図である。
【図５】ＣＭのブロック構成図である。
【図６】ダーティのないＣＭの切り離しの例を示す図である。
【図７】転送回路ＮＰ閉塞時のＣＭの切り離しの例を示す図である。
【図８】転送回路ＳＰ閉塞判定，ＣＡ閉塞判定，ＤＩポート閉塞判定によるＣＭの切 り離しの例を示す図である。
【図９】スレーブＣＭの切り離しの例を示す図である。
【図１０】４ＣＭ構成の場合のＣＭの切り離しの例を示す図である。
【図１１】４ＣＭ構成の場合のＣＭの切り離しの例を示す図である。
【図１２】４ＣＭ構成の場合のＣＭの切り離しの例を示す図である。
【図１３】４ＣＭ構成の場合のＣＭの切り離しの例を示す図である。
【図１４】本発明の実施の形態に係る経路閉塞判定の処理フローを示す図である。
【図１５】本発明の実施の形態に係る経路閉塞判定の処理フローを示す図である。
【図１６】本発明の実施の形態に係る経路閉塞判定の処理フローを示す図である。
【図１７】本発明の実施の形態に係るＣＭ切り離しの処理フローを示す図である。
【図１８】ＣＭが用いるテーブルの構成例を示す図である。
【図１９】従来のディスク制御装置の例を示す図である。
【図２０】本発明の課題を説明するための図である。
【符号の説明】
【００９６】
１    ディスク制御装置
１０，１１，１２，１３  コントローラモジュール（ＣＭ）
２０  経路閉塞判定手段
３０  切り離し制御手段
４０，４１  チャネルアダプタ（ＣＡ）
５０，５１  デバイスインタフェース（ＤＩ）
６０，６１，６２，６３  転送回路
７０，７１  経路設定装置（ＦＲＴ）
【図１】
0004414399.tif 000002
【図２】
0004414399.tif 000003
【図３】
0004414399.tif 000004
【図４】
0004414399.tif 000005
【図５】
0004414399.tif 000006
【図６】
0004414399.tif 000007
【図７】
0004414399.tif 000008
【図８】
0004414399.tif 000009
【図９】
0004414399.tif 000010
【図１０】
0004414399.tif 000011
【図１１】
0004414399.tif 000012
【図１２】
0004414399.tif 000013
【図１３】
0004414399.tif 000014
【図１４】
0004414399.tif 000015
【図１５】
0004414399.tif 000016
【図１６】
0004414399.tif 000017
【図１７】
0004414399.tif 000018
【図１８】
0004414399.tif 000019
【図１９】
0004414399.tif 000020
【図２０】
0004414399.tif 000021