(57)【特許請求の範囲】
【請求項１】
ディスク装置と接続され、キャッシュメモリを有するディスク制御装置において、前記ディスク制御装置は伝送路を介して他のディスク制御装置と接続され、両ディスク制御装置の各々は、主電源の障害を検出する手段と、主電源障害を検出したとき予備電源によって電力供給される間に前記キャッシュメモリ上のデータを退避先のディスク制御装置に送信する手段と、主電源障害が回復した後の装置再起動の際に前記退避先のディスク制御装置から退避されたデータを受信し前記キャッシュメモリ上に格納してデータ回復する手段と、退避要求元のディスク制御装置から退避データを受信し前記キャッシュメモリを介して接続される前記ディスク装置に格納する手段と、前記ディスク装置上の前記退避データを前記退避要求元のディスク制御装置へ送信する手段とを有することを特徴とするディスク制御装置。
【請求項２】
前記ディスク制御装置は、さらに前記予備電源の残電力量と前記キャッシュメモリのデータを保持するに要する電力量との比が所定の数値を下回ったか否かを判定する手段を設け、前記比が所定の数値を下回ったとき、前記退避先のディスク制御装置に送信する手段によるデータ退避を実行することを特徴とする請求項１記載のディスク制御装置。
【請求項３】
前記退避先のディスク制御装置に送信する手段は、さらに前記キャッシュメモリに格納されるデータのうち前記ディスク装置への未反映データを選択して退避することを特徴とする請求項１記載のディスク制御装置。
【請求項４】
前記ディスク制御装置は、さらに他のディスク制御装置からデータの退避要求を受けたとき、ディスク領域のうち、要求元装置に対応するあらかじめ退避用に確保されたディスク領域があればそのディスク領域へデータ退避を行い、ディスク領域が確保されていない場合には、退避要求受領時におけるディスクの空き領域を割り当てることを特徴とする請求項１記載のディスク制御装置。
【請求項５】
記憶装置を有する計算機とネットワークを介して接続されるストレージシステムであって、データを格納するディスク装置と、前記ディスク装置を制御するディスク制御装置と、データを格納する前記ディスク制御装置内のキャッシュメモリと、前記ストレージシステムへ電源を供給する主電源装置と、前記主電源装置の電源障害を検出する手段と、前記主電源装置の電源障害が検出されると、前記ストレージシステムに電源を供給する予備電源装置と、前記予備電源装置により電源供給される間に前記キャッシュメモリ上のデータを前記計算機へ向けて前記ネットワークに送信するインタフェース手段と、電源障害回復後に前記計算機から前記ネットワークを介して前記送信したデータを受け取り、前記キャッシュメモリに格納する手段とを有することを特徴とするストレージシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを有するディスク制御装置に係わり、特にディスク制御装置の電源障害時にキャッシュ上のデータを退避するディスク制御装置に関する。
【０００２】
【従来の技術】
上位の計算機と大容量のディスク装置群との間に介在し、両者の間のデータ転送を制御するディスク制御装置の多くは、転送されるデータの一時記憶機構としてのキャッシュメモリを備えている。このキャッシュメモリは揮発性のメモリのために、電力供給が停止すると格納されているデータが消失する。従来、ディスク制御装置内に予備電源を備え、この予備電源の電力が有効なうちにキャッシュメモリ上のデータをディスク装置上に退避していた。そのために予備電源は、データ退避処理の間、キャッシュメモリと退避先のディスク装置に供給する電力容量を有するものでなければならず、大容量のものを必要としていた。なお電源障害時のデータ消失を防止する技術として、例えば特開平９−２１８７５０号公報に記載された技術等がある。
【０００３】
【発明が解決しようとする課題】
上記従来技術によれば、電源障害時に予備電源によってデータ退避先のディスク装置を駆動しなければならず、大容量の予備電源を必要とするという問題があった。またデータ退避中にディスク装置に障害が発生して書き込み不能になったとき、キャッシュメモリ上のデータを消失する危険性があった。さらに電源障害が早い時期に回復した場合には、結果として無用なデータ退避と退避したデータの無用な回復が発生する。
【０００４】
本発明の目的は、ディスク制御装置の電源障害時に予備電源によるディスク駆動を回避するようなディスク制御装置を提供することにある。
【０００５】
本発明の他の目的は、予備電源の残電力量に応じてできるだけデータ退避の実行を遅延させるようなディスク制御装置を提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、キャッシュメモリを有するディスク制御装置において、主電源の障害を検出する手段と、主電源障害を検出したとき予備電源によって電力供給される間にキャッシュメモリ上のデータを他ディスク制御装置に退避する手段と、主電源障害が回復した後の装置再起動の際に退避されたデータを元のキャッシュメモリ上に回復する手段とを有するディスク制御装置を特徴とする。
【０００７】
また本発明は、さらに予備電源の残電力量とキャッシュメモリのデータを保持するに要する電力量との比が所定の数値を下回ったか否かを判定する手段を設け、この比が所定の数値を下回ったとき、上記の退避する手段によるデータ退避を実行するディスク制御装置を特徴とする。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【０００９】
図１は、本発明による第１の実施形態のシステム構成を示す図である。ディスク制御装置１１は、光ファイバーケーブル１３によって上位装置である中央処理装置１０と接続されている。ディスク制御装置１１には複数のディスク装置１１０が接続されている。ディスク制御装置２１も同様に光ファイバーケーブル１３によって上位装置である中央処理装置２０と接続され、複数のディスク装置２１０と接続されている。ディスク制御装置１１とディスク制御装置２１とは、光ファイバーケーブル３０によって接続されている。ディスク制御装置１１と、接続されるディスク装置１１０とは、ＡＣ電源を主電源として第１のＡＣ電源によって電力供給を受け、ディスク制御装置２１と、接続されるディスク装置２１０とは、第２のＡＣ電源によって電力供給を受け、両者のＡＣ電源の系統が異なる。
【００１０】
ディスク制御装置１１は、チャネルＩＦ（インターフェース）部１４、制御装置間ＩＦ部１５、キャッシュメモリ１６、データ転送制御部１７、障害回復部１２、電源状態検出部１９及び予備電源１８を有する。チャネルＩＦ部１４は、中央処理装置１０のチャネルと通信するためのインターフェース機構を有し、中央処理装置１０から受けたコマンドを解釈し、中央処理装置１０とキャッシュメモリ１６との間のデータ転送を制御する。データ転送制御部１７は、キャッシュメモリ１６とディスク装置１１０との間のデータ転送を制御する。電源状態検出部１９は、ＡＣ電源の障害状態及び復旧状態を検出する。障害回復部１２は、電源状態検出部１９からＡＣ電源障害の報告を受けてキャッシュメモリ１６上のディスク未反映データの退避と回復を制御する。制御装置間ＩＦ部１５は、他のディスク制御装置２１などと通信するためのインターフェース機構を有し、退避データを他のディスク制御装置との間に送受信するときの転送制御を行う。予備電源１８は、ＡＣ電源が供給停止になったとき、制御装置間ＩＦ部１５、キャッシュメモリ１６、障害回復部１２および電源状態検出部１９に電力を供給するためのバッテリを含む。ディスク制御装置２１の障害回復部２２から電源状態検出部２９までの機構は、ディスク制御装置１１の対応する機構と同じ機能を有する。
【００１１】
図２は、ディスク制御装置１１の中で本発明と関連して注目すべき部分のブロック図である。キャッシュメモリ１６は、中央処理装置１０とディスク装置１１０との間で転送されるデータブロックとブロック対応の制御情報を一時記憶するための揮発性メモリである。制御情報はそのデータブロックの属性及び処理ステータスの情報である。不揮発性メモリ３５は、フラッシュメモリなど電力供給なしで情報を保持するメモリであり、他装置用制御情報テーブル４０、回復用制御情報テーブル５０、未反映データ制御テーブル３６などの情報を保持する。他装置用制御情報テーブル４０は、他のディスク制御装置２１等のためのデータ退避領域を設定するテーブルである。回復用制御情報テーブル５０はディスク制御装置１１がデータ退避したときの制御情報を格納するテーブルである。未反映データ制御テーブル３６は、キャッシュメモリ１６上のデータブロックごとにディスク装置１１０に反映されているか未反映かを区分する情報を格納するとともに各データブロックの格納場所も示すビットマップテーブルである。
【００１２】
データ転送制御部１７は、未反映データ制御テーブル３６にアクセスし、キャッシュメモリ１６上に未反映データブロックが格納されたとき未反映データ制御テーブル３６の対応する制御ビットを未反映とする。また未反映データブロックがディスク装置１１０に書き込まれたとき、対応する制御ビットを反映済に更新する。
【００１３】
電源状態検出部１９の電源障害検出機構３１は、ＡＣ電源の障害を検出する。また電源回復検出機構３２はＡＣ電源の回復を検出する。障害回復部１２は、マイクロプロセッサを有し、その制御プログラムは、電源障害検出機構３１から電源障害の報告を受け、かつ予備電源１８のバッテリ残量からみてキャッシュメモリ１６の情報を保持可能な限界に達したと判定したとき、制御装置間ＩＦ部１５を起動してキャッシュメモリ１６の未反映データ及び制御情報を他のディスク制御装置２１等に退避して回復用制御情報テーブル５０にデータ退避の履歴を記録する。またＡＣ電源が回復してディスク制御装置１１が再起動されたとき、他ディスク制御装置２１等に退避した情報をキャッシュメモリ１６上に回復するために制御装置間ＩＦ部１５を起動する。
【００１４】
制御装置間ＩＦ部１５は、マイクロプロセッサを有し、その制御プログラムは、障害回復部１２からの指令を受けて他のディスク制御装置２１等へ退避要求および退避情報の送信要求を送信する。また未反映データ制御テーブル３６を参照しながらキャッシュメモリ１６の未反映データとその制御情報を退避先の装置へ転送する。また未反映データ制御テーブル３６を参照しながら退避先の装置から受けた退避情報をキャッシュメモリ１６上に回復する。さらに他の装置からデータ退避要求を受けたとき、制御装置間ＩＦ部１５は、他装置用制御情報テーブル４０を参照した後に退避情報を受信し、受信した退避情報を退避用ボリュームに格納するためにキャッシュメモリ１６に一時記憶する。また他の装置から退避情報の送信要求を受けたとき、データ転送制御部１７に指令し、退避用ボリュームから読み出されキャッシュメモリ１６に格納された退避情報を要求元装置へ送信する。
【００１５】
ディスク制御装置２１など他の装置も不揮発性メモリ３５を有し、不揮発性メモリ３５上に他装置用制御情報テーブル４０、回復用制御情報テーブル５０、未反映データ制御テーブル３６などを格納し、同様に動作する。
【００１６】
図３は、他装置用制御情報テーブル４０のデータ構成を示す図である。他装置用制御情報テーブル４０は、光ファイバーケーブル３０を介して当該ディスク制御装置に接続される他のディスク制御装置のための退避用ディスク領域などを設定するテーブルであり、各エントリは、接続先装置ＩＤ４１、退避用ボリューム４２、要求元障害発生日時４３及びデータ退避中フラグ４４を格納する。接続先装置ＩＤ４１は接続先ディスク制御装置の識別子である。退避用ボリューム４２は、接続先装置のキャッシュメモリの内容を退避するに足る容量をもつ退避用ボリュームの論理ボリューム番号を設定する。この論理ボリュームに対応してスペアドライブとして確保されたディスク装置１１０，２１０の領域が割り当てられる。ディスク領域を固定的に割り当てしない場合には、スペースなどによって未割当を示す。要求元障害発生日時４３は、その接続先装置から退避要求があったとき、格納される電源障害の発生日時である。データ退避中フラグ４４はその接続先についてデータ退避がされているか否かを示すフラグであり、初期値オフであり、データ退避を受け入れるときオンにセットされる。接続先装置ＩＤ４１及び退避用ボリューム４２の値は、中央処理装置１０，２０からのコマンドによるか、またはディスク制御装置１１，２１に接続されるコンソールから設定可能である。
【００１７】
図４は、回復用制御情報テーブル５０のデータ構成を示す図である。回復用制御情報テーブル５０は、当該ディスク制御装置が他のディスク制御装置にデータ退避したときの回復用制御情報を記憶するためのテーブルであり、そのエントリは、退避データ回復要フラグ５１、退避先装置ＩＤ５２、退避データ量５３及び障害発生日時５４を格納する。退避データ回復要フラグ５１は、データ退避がされているか否かを示すフラグであり、初期値オフであり、データ退避をするとオンにセットされる。退避先装置ＩＤ５２は退避データの存在する装置の識別子を示し、接続先装置ＩＤ４１のいずれか１つである。退避データ量５３は退避データの量である。障害発生日時５４は電源障害の発生した日時を格納する。
【００１８】
図５は、電源障害発生時の障害回復部１２及び制御装置間ＩＦ部１５の処理の流れを示すフローチャートである。予備電源１８はＡＣ電源によって充電されながら常時、制御装置間ＩＦ部１５、キャッシュメモリ１６、障害回復部１２および電源状態検出部１９に予備電力を供給するよう構成されている。電源障害検出機構３１が当該ディスクサブシステムのＡＣ電源障害を検出すると、障害回復部１２に報告する（ステップ６１）。障害回復部１２は、電源回復検出機構３２から電源回復の信号を受けなければ（ステップ６２ＮＯ）、予備電源１８のバッテリ残量を検出する（ステップ６３）。バッテリ残量はバッテリの残り電力量でありワット時による数値で表現される。次に図示しない構成管理テーブルを参照してキャッシュメモリ１６の記憶容量（ＭＢ）を取得する（ステップ６４）。次に予備電源１８のバッテリがキャッシュメモリ１６上のデータを保持可能な残り時間Ｔ２を算出する（ステップ６５）。Ｔ２は、バッテリ残量÷［キャッシュ上の１ＭＢのデータを保持するに要する電力量×キャッシュの記憶容量（ＭＢ）］によって計算される。次にＴ２をあらかじめ設定された残り時間の下限Ｔ１と比較し、Ｔ２≧Ｔ１であれば（ステップ６６ＮＯ）、ステップ６２に戻り、電源障害回復を待つ。Ｔ２≧Ｔ１の間に電源回復検出機構３２から電源回復の信号を受ければ（ステップ６２ＹＥＳ）、電源障害が回復したものとみなし、データ退避の処理を行わない。
【００１９】
Ｔ２＜Ｔ１になったとき（ステップ６６ＹＥＳ）、他装置用制御情報テーブル４０の最初のエントリの接続先装置ＩＤ４１を参照して（ステップ６７）、その他装置にデータ退避要求を送信する（ステップ６８）。このとき要求とともにキャッシュ上の未反映データ量（すなわち退避データ量）と障害発生日時を他の装置へ送信する。この退避要求が受け付けられなければ（ステップ６９ＮＯ）、ステップ６７に戻り、他装置用制御情報テーブル４０の次のエントリの接続先装置ＩＤ４１を参照して、次の他装置についてステップ６８および６９の処理を繰り返す。他装置用制御情報テーブル４０上の接続先装置が尽きたとき、処理を終了する。他装置から退避要求受理の通知を受けたとき（ステップ６９ＹＥＳ）、制御装置間ＩＦ部１５は、未反映データ制御テーブル３６を参照し、キャッシュメモリ１６上の未反映データとその付属の制御情報をそのデータブロックのキャッシュ格納順にその退避先装置へ転送する（ステップ７０）。なお反映／未反映にかかわらずキャッシュメモリ１６上のすべてのデータ及び制御情報を退避先装置へ転送してもよく、これも１つの実施形態であるが、データ転送時間を短縮するために本実施形態では未反映データとその制御情報を退避先装置へ転送することにしている。退避先装置から受信終了のステータスを受信したとき、回復用制御情報テーブル５０の退避データ回復要フラグ５１をオンにし、退避先装置ＩＤ５２に退避先装置のＩＤ、退避データ量５３に未反映データ量、障害発生日時５４に障害発生日時を格納する（ステップ７１）。
【００２０】
図６は、退避先装置の制御装置間ＩＦ部２５の処理の流れを示すフローチャートである。制御装置間ＩＦ部２５は、他装置からデータ退避要求を受信すると（ステップ８１）、他装置用制御情報テーブル４０について要求のあった他装置の退避用ボリューム４２を参照する（ステップ８２）。該当する退避用ボリューム４２に退避用ボリュームが設定してなければ（ステップ８３ＮＯ）、ディスクの空き領域の容量を調べ、受信した退避データ量≦空き領域容量であれば（ステップ８４ＹＥＳ）、ディスクの空き領域の一部を退避用ボリュームに割り当て（ステップ８５）、ステップ８６へ行く。
【００２１】
退避用ボリュームを設定済であれば（ステップ８３ＹＥＳ）、退避要求元へ退避要求受理を応答する（ステップ８６）。次に制御装置間ＩＦ部２５は、要求元装置から退避データ及び制御情報を受信し（ステップ８７）、キャッシュメモリ２６に格納した後にデータ転送制御部２７を介してディスク装置２１０上の割り当てた退避用ボリュームに格納する（ステップ８８）。制御装置間ＩＦ部２５によるデータの受信とデータ転送制御部２７によるディスク装置２１０への書き込みは非同期に行われる。制御装置間ＩＦ部２５は、受信したデータの量を計数し、先に受信した退避データ量と比較して両者が一致した時点で要求元装置へ受信終了のステータスを送信する。次に他装置用制御情報テーブル４０の該当するエントリの要求元障害発生日時４３に受信した障害発生日時を格納し、データ退避中フラグ４４をオンにして（ステップ８９）、処理を終了する。
【００２２】
受信した退避データ量＞空き領域容量であれば（ステップ８４ＮＯ）、制御装置間ＩＦ部２５は、要求元装置へ退避不可を応答し（ステップ９０）、処理を終了する。
【００２３】
図７は、ディスク制御装置１１の起動時の処理の流れを示すフローチャートである。ディスク制御装置１１のＡＣ電源が投入され、ディスク制御装置１１がその装置起動処理を開始し（ステップ９１）、電源障害検出機構３１から電源障害の報告がないことを確認する。次に障害回復部１２に制御が渡り、障害回復部１２は、回復用制御情報テーブル５０の退避データ回復要フラグ５１を参照し（ステップ９２）、退避データ回復要フラグ５１がオン、すなわち電源障害後の起動か否か判定する（ステップ９３）。電源障害後の起動であれば（ステップ９３ＹＥＳ）、退避先装置ＩＤ５２に設定されているデータ退避先装置へ制御装置間ＩＦ部１５を介して退避情報の送信要求を送信する（ステップ９４）。このとき制御装置間ＩＦ部１５は、要求とともにディスク制御装置１１の装置ＩＤと障害発生日時５４を送信する。
【００２４】
退避情報の送信要求が受け付けられたとき（ステップ９５ＹＥＳ）、制御装置間ＩＦ部１５は、退避先装置から退避情報、すなわちディスク未反映データ及び制御情報を受信し（ステップ９６）、未反映データ制御テーブル３６を参照してこれらの退避情報をキャッシュメモリ１６上の元の格納場所にキャッシュ格納順に格納し、回復する（ステップ９７）。制御装置間ＩＦ部１５は、受信したデータ量を計数し、退避データ量５３と比較して一致したとき、退避先装置へ受信終了のステータスを送信する。次に障害回復部１２は、回復用制御情報テーブル５０を初期化し（ステップ９８）、退避データ回復要フラグ５１をオフにする。次にディスク制御装置１１は、後続の起動処理を行う（ステップ９９）。
【００２５】
図８は、退避情報の送信要求を受けた退避先装置の制御装置間ＩＦ部２５の処理の流れを示すフローチャートである。制御装置間ＩＦ部２５は、他装置から退避情報の送信要求を受信すると（ステップ１０１）、他装置用制御情報テーブル４０を参照して（ステップ１０２）、受信した装置ＩＤに該当するエントリを取り出し、その要求元障害発生日時４３が受信した障害発生日時に一致し、データ退避中フラグ４４がオンか否かチェックする。その結果が妥当であれば、要求元装置へ要求受理を応答する。次にデータ転送制御部１７に指令し、要求元の退避用ボリューム４２に該当するディスク領域または退避用ボリュームとして動的に割り当てられたディスク領域からディスク未反映データ及び制御情報をキャッシュメモリ２６に読み出し（ステップ１０３）、要求元装置へこれらの退避情報を送信する（ステップ１０４）。要求元装置から受信終了のステータスを受信したとき、当該要求元装置について退避用ボリュームを確保済か、すなわち退避用ボリューム４２が設定済か否か判定する（ステップ１０５）。退避用ボリュームを確保済であれば（ステップ１０５ＹＥＳ）、ステップ１０７へ行く。退避用ボリュームを確保してなければ（ステップ１０５ＮＯ）、一時的に割り当てた退避用ボリュームのディスク領域を解放して空き領域とする（ステップ１０６）。次に他装置用制御情報テーブル４０の要求元装置のエントリのデータ退避中フラグ４４をオフにする（ステップ１０７）。
【００２６】
図９は、第２の実施形態のシステム構成を示す図である。ディスク制御装置７２１は光ファイバーケーブル１３によって中央処理装置７２０に接続され、ディスク制御装置７２４は中央処理装置７２３に接続され、ディスク制御装置７２７は中央処理装置７２６に接続されている。またディスク制御装置７２１と、ディスク制御装置７２４と、ディスク制御装置７２７とが光ファイバーケーブル３０を介して装置間接続されている。各ディスク制御装置７２１，７２４，７２７は、それぞれ接続されるディスク装置７２２，７２５，７２８とともにそれぞれ異なる３系統のＡＣ電源によって電力供給を受けるか、または少なくとも２系統のＡＣ電源によって電力供給を受けている。
【００２７】
ディスク制御装置７２１の他装置用制御情報テーブル４０は接続先装置ＩＤ４１がディスク制御装置７２４及び７２７について退避用ボリューム４２を設定し、ディスク制御装置７２４の他装置用制御情報テーブル４０はディスク制御装置７２１及び７２７について退避用ボリューム４２を設定し、ディスク制御装置７２７の他装置用制御情報テーブル４０はディスク制御装置７２１及び７２４について退避用ボリューム４２を設定している。
【００２８】
ディスク制御装置７２１で電源障害が発生したとき、ディスク制御装置７２１は、その他装置用制御情報テーブル４０に最初に設定されている装置であるディスク制御装置７２４に対してデータの退避要求を発行する。第２の実施形態によれば、ディスク制御装置７２４ですでに電源障害が発生していてデータ退避の受付不可能の状態になっていたとしても、ディスク制御装置７２１は、他装置用制御情報テーブル４０で次に設定されている装置であるディスク制御装置７２７に対してデータの退避要求を発行することができる。
【００２９】
第３の実施形態は、図９のシステム構成を適用するが、各ディスク制御装置７２１，７２４および７２７が保持する他装置用制御情報テーブル４０の内容が異なる。ディスク制御装置７２１の他装置用制御情報テーブル４０は、ディスク制御装置７２４，７２７の退避用ボリューム４２をなしに設定し、ディスク制御装置７２４の他装置用制御情報テーブル４０は、ディスク制御装置７２１，７２７の退避用ボリューム４２をなしに設定し、ディスク制御装置７２７の他装置用制御情報テーブル４０は、ディスク制御装置７２１，７２４の各々について各々のキャッシュデータを格納するに足るボリュームを退避用ボリューム４２として設定する。すなわちディスク制御装置７２７のみがディスク制御装置７２１，７２４の確実なデータ退避先となる。各ディスク制御装置７２１，７２４，７２７の他装置用制御情報テーブル４０をこのように設定することによって、特にデータ退避用ボリュームを確保するのがディスク制御装置７２７のみで済む。
【００３０】
なお上述したように特にデータ退避用ボリュームを確保してなくても、ディスクの空き領域があれば、ディスク制御装置７２１，７２４は、退避用ボリュームを動的に割り当てることができ、スペアディスク上の空き領域を効率的に利用することができる。例えばディスク制御装置７２１，７２４，７２７のすべての他装置用制御情報テーブル４０が退避用ボリューム４２を設定しないで、他装置から退避要求を受けたときディスクの空き領域から退避用ボリュームを一時的に割り当てることも可能である。
【００３１】
図１０は、第４の実施形態のシステム構成を示す図である。マスタ側ディスク制御装置７１１は、光ファイバーケーブル１３によって中央処理装置７１０に接続される。またマスタ側ディスク制御装置７１１は、光ファイバーケーブル３０を介してリモート側ディスク制御装置７１３と接続されている。マスタ側ディスク制御装置７１１にはディスク装置７１２が接続され、リモート側ディスク制御装置７１３にはディスク装置７１４が接続されており、ディスク装置７１２上のデータとディスク装置７１４上のデータが２重化するようにマスタ側ディスク制御装置７１１及びリモート側ディスク制御装置７１３が構成され動作する。すなわちマスタ側ディスク制御装置７１１が中央処理装置７１０からディスク装置７１２に対するライトコマンドを受けたとき、ディスク装置７１２のデータブロックに対して書き込みするとともに、光ファイバーケーブル３０を介してリモート側ディスク制御装置７１３へそのデータブロックの書き込み要求を送り、リモート側ディスク制御装置７１３がディスク装置７１４上に同一データブロックの書き込みをする。
【００３２】
第４の実施形態では、マスタ側ディスク制御装置７１１は、電源障害時にキャッシュメモリ１６上の未反映データ及び制御情報をリモート側ディスク制御装置７１３へ退避する必要はなく、単にリモート側ディスク制御装置７１３へ転送すべき残りのデータブロックが尽きるまでデータブロックの書き込み要求を継続すればよい。リモート側ディスク制御装置７１３が残りのデータブロックを受け取った後は、中央処理装置７１０とリモート側ディスク制御装置７１３を光ファイバーケーブル１３によって直接接続すれば、中央処理装置７１０は、マスタ側ディスク制御装置７１１の代わりにリモート側ディスク制御装置７１３に対して入出力要求の発行を継続できる。
【００３３】
図１１は、第５の実施形態を示すＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）システムの構成を示す図である。ディスク制御装置１１およびディスク制御装置２１は、高速の伝送路２００およびハブ４００を介して相互に接続されるとともに、中央処理装置１０、中央処理装置２０および計算機３００と接続されるＳＡＮを構成し、伝送路２００を介してこれら装置同士が相互に通信可能である。計算機３００はＳＡＮ管理用の計算機であり、固有のディスク装置など不揮発性の記憶装置を有する。光ファイバーケーブル３０がないので、制御装置間ＩＦ部１５は不要であるが、電源障害後もチャネルＩＦ部１４に相当する部分が動作するので、予備電源１８による電力供給を必要とする。ディスク制御装置２１についても同様である。ディスク制御装置１１は、他装置用制御情報テーブル４０の接続先装置ＩＤ４１としてディスク制御装置２１を設定する。ディスク制御装置２１は、他装置用制御情報テーブル４０の接続先装置ＩＤ４１としてディスク制御装置１１を設定する。計算機３００も他装置用制御情報テーブル４０を設け、接続先装置ＩＤ４１としてディスク制御装置１１及びディスク制御装置２１を設定する。ディスク制御装置１１の障害回復部１２が電源障害を検出して障害回復しないとき、伝送路２００を介してまず計算機３００へ退避要求を送信し、不受理であれば伝送路２００を介してディスク制御装置２１へデータ退避要求を送信する。ディスク制御装置２１も同様である。計算機３００は、ディスク制御装置からデータ退避要求を受けたとき、図６に示す処理を実行する。また計算機３００は、退避情報の送信要求を受けたとき、図８に示す処理を実行する。第５の実施形態によれば、ディスク制御装置の電源障害時に伝送路２００を利用して退避データの高速転送ができる。また計算機３００が確実なデータの退避先装置となる。
【００３４】
【発明の効果】
以上述べたように本発明によれば、ディスク制御装置の電源障害時に緊急退避先としてのディスク装置へ書き込みを行わないため、ディスク装置の駆動のために必要な電力を回避でき、予備電源のバッテリー保持時間を長くするか、もしくは小型化が可能である。また予備電源のバッテリー残量とキャッシュメモリの所要電力とから予備電源に余裕がある限りデータ退避を遅延させて電源障害回復を待つので、無駄なデータ退避を回避できる。またキャッシュ上のディスク未反映データをデータ退避の対象とすることができ、データ退避時間を短縮できる。さらにデータ退避先として複数の他のディスク制御装置や他の計算機を設定可能であり、データ退避失敗によるデータ消失の危険性を減らすことができる。
【図面の簡単な説明】
【図１】第１の実施形態のシステム構成図である。
【図２】第１の実施形態のディスク制御装置１１の関連部分のブロック図である。
【図３】実施形態の他装置用制御情報テーブル４０のデータ構成を示す図である。
【図４】実施形態の回復用制御情報テーブル５０のデータ構成を示す図である。
【図５】第１の実施形態の電源障害発生時のディスク制御装置１１の処理の流れを示すフローチャートである。
【図６】第１の実施形態の退避先装置の処理の流れを示すフローチャートである。
【図７】第１の実施形態のディスク制御装置１１起動時の処理の流れを示すフローチャートである。
【図８】第１の実施形態の退避情報の送信要求を受けた退避先装置の処理の流れを示すフローチャートである。
【図９】第２の実施形態のシステム構成図である。
【図１０】第４の実施形態のシステム構成図である。
【図１１】第５の実施形態のシステム構成図である。
【符号の説明】
１１，２１：ディスク制御装置、１２，２２：障害回復部、１５，２５：制御装置間ＩＦ部、１６，２６：キャッシュメモリ、１８，２８：予備電源、１９，２９：電源状態検出部、４０：他装置用制御情報テーブル、５０：回復用制御情報テーブル
【図１】
0003611763.tif 000002
【図２】
0003611763.tif 000003
【図３】
0003611763.tif 000004
【図４】
0003611763.tif 000005
【図５】
0003611763.tif 000006
【図６】
0003611763.tif 000007
【図７】
0003611763.tif 000008
【図８】
0003611763.tif 000009
【図９】
0003611763.tif 000010
【図１０】
0003611763.tif 000011
【図１１】
0003611763.tif 000012