(57)【要約】【課題】故障などにより一次ストレージと通信できない場合でも階層型ストレージシステムの運用を継続できるようにする。【解決手段】データの読み出し要求を受け付けたとき、一次ストレージ１との通信が不可能であった場合には、データ記録判定部１２により、要求されたデータが一時記憶領域２１に記憶されているか否かが判定される。データが一時記憶領域２１に記憶されていた場合には、読み出し制御部１３の制御の下で、そのデータが一時記憶領域２１から読み出されて、読み出し要求に対する応答として出力される。一方、要求されたデータが一時記憶領域２１に記憶されていなかった場合には、読み出し制御部１３の制御の下で、そのデータが二次ストレージ２から読み出されて一時記憶領域２１に格納されるとともに、そのデータが読み出し要求に対する応答として出力される。【選択図】図１
2010282324.tif 000002
【特許請求の範囲】
【請求項１】
一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置において、
前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御する第１の読み出し制御部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第２の読み出し制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記データ記録判定部が、前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置を通じて前記読み出し要求を受け付ける場合、前記一時記憶領域は、前記要求受け付け装置に個別に接続された記憶装置内に設定されることを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記二次ストレージに対するデータの書き込み要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御する書き込み制御部と、
前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる復帰制御部と、
をさらに有することを特徴とする請求項１記載のストレージ制御装置。
【請求項４】
前記一時記憶領域は、前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置に個別に接続された、前記二次ストレージ以外の記憶装置内に設定されることを特徴とする請求項３記載のストレージ制御装置。
【請求項５】
前記一次ストレージとの通信が再開される前に、前記一時記憶領域に格納された、書き込みが要求されたデータを、前記二次ストレージに移動させる移動制御部と、
前記移動制御部により移動されたデータにより前記二次ストレージ上のデータが更新され、なおかつ、その更新前のデータが前記一次ストレージに記憶されている場合に、前記一次ストレージとの通信が再開されたとき、前記一次ストレージに記憶されていた更新前のデータを削除する削除制御部と、
をさらに有することを特徴とする請求項３記載のストレージ制御装置。
【請求項６】
一次ストレージと、
二次ストレージと、
前記一次ストレージと前記二次ストレージとを階層型ストレージシステムとして動作させるストレージ制御装置と、
前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置と、
を有し、
前記ストレージ制御装置は、
前記二次ストレージに記録されたデータの読み出し要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記要求受け付け装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていた場合に、当該データを当該一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第１の読み出し制御部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記要求受け付け装置の一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第２の読み出し制御部と、
を有することを特徴とするストレージシステム。
【請求項７】
一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するためのストレージ制御方法において、
データ記録判定手段が、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、
第１の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、
第２の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する、
ことを特徴とするストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置、そのようなストレージ制御装置を備えたストレージシステム、および、ストレージ制御方法に関する。
【背景技術】
【０００２】
磁気テープを用いた記録媒体を複数備えたテープライブラリ装置は、データバックアップ用など、大容量の記憶が必要な用途に広く利用されている。磁気テープは、低コストでかつ記憶容量が大きいという利点がある反面、ＨＤＤ（Hard Disk Drive）などと比較してデータアクセス速度が遅い。そこで、近年では、複数のＨＤＤを備えたディスクアレイ装置をキャッシュ機構（一次ストレージ）として用い、より大容量のテープライブラリ装置をバックエンド（二次ストレージ）に配置した階層型ストレージシステムが利用されている。
【０００３】
階層型ストレージシステムでは、例えば、次のような処理が行われる。ホストからデータの書き込み要求があった場合、そのデータは一次ストレージに一旦書き込まれ、書き込みが完了すると、ホストに書き込み完了が報告される。その後、一次ストレージは、書き込まれたデータを二次ストレージに書き込む。また、ホストからデータの読み出し要求があった場合、そのデータが一次ストレージに記憶されていれば、そのデータがホストに転送される。一方、そのデータが一次ストレージに記憶されていなければ、データは二次ストレージから一次ストレージに書き込まれ、書き込みが完了した後、そのデータが一次ストレージからホストに転送される。
【０００４】
しかしながら、このような処理が行われるシステムでは、一次ストレージが故障すると、ホストから書き込みおよび読み出しのための一切のアクセスができなくなってしまうという問題がある。例えば、ホストから読み出し要求があった場合、たとえ二次ストレージに有効なデータが存在していたとしても、ホストはそのデータを取得できなくなってしまう。
【０００５】
なお、一次ストレージの故障対策を施した階層型ストレージシステムとして、一次ストレージに現用記憶部と予備用記憶部とを設けておき、故障した現用記憶部の論理ボリュームを予備用記憶部に復元するものがあった（例えば、特許文献１参照）。ただし、このような技術では、予備用記憶部が必要になる分、一次ストレージの製造コストは高くなる。
【０００６】
また、上記に関連する技術として、メモリの障害発生時に、喪失した障害ページのコピーをトレースキャッシュから二次ストレージに出力することで、障害ページを復旧するようにした計算機システムがあった（例えば、特許文献２参照）。さらに、ミラーリング構成の一次ストレージにおいて、ディスクディグレード発生時に、空きのホットスペアが存在しない場合には、他のディスクペアを解体してその１つを新規ホットスペアとするものがあった（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１９００３９号公報
【特許文献２】特開平９−８１４６４号公報
【特許文献３】国際公開ＷＯ２００６／０８５３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述のように、階層型ストレージシステムでは、一次ストレージが故障すると、ホストからの書き込みおよび読み出しのためのアクセスができなくなってしまい、システムの運用が停止されてしまうという問題があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、故障などにより一次ストレージと通信できない場合でも階層型ストレージシステムの運用を継続できるようにしたストレージ制御装置、ストレージシステムおよびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置が提供される。このストレージ制御装置は、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御する第１の読み出し制御部と、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第２の読み出し制御部と、を有する。
【００１１】
このようなストレージ制御装置では、二次ストレージに記録されたデータの読み出し要求を受け付けたとき、一次ストレージとの通信が不可能であった場合には、データ記録判定部により、読み出しを要求されたデータが一時記憶領域に記憶されているか否かが判定される。ここで、一時記憶領域は、階層型ストレージシステムが備える情報処理装置のうち、一次ストレージおよび二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定されたものである。読み出しを要求されたデータが一時記憶領域に記憶されていた場合には、第１の読み出し制御部の制御の下で、そのデータが一時記憶領域から読み出されて、読み出し要求に対する応答として出力される。一方、読み出しを要求されたデータが一時記憶領域に記憶されていなかった場合には、第２の読み出し制御部の制御の下で、そのデータが二次ストレージから読み出されて一時記憶領域に格納されるとともに、そのデータが読み出し要求に対する応答として出力される。
【００１２】
また、上記目的を達成するために、ストレージシステムおよびストレージ制御方法が提供される。
【発明の効果】
【００１３】
上記のストレージ制御装置によれば、一次ストレージとの通信が不可能となった場合でも、一時記憶領域を用いて階層型ストレージシステムの運用を継続することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るストレージシステムの構成例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【図３】ストレージシステムが備える各制御プロセッサ間の結線図を示す図である。
【図４】ＶＬ制御プロセッサのハードウェア構成例を示す図である。
【図５】ディスクアレイ装置のハードウェア構成例を示す図である。
【図６】ストレージシステムの各制御プロセッサが備える機能を示す図である。
【図７】ＶＬ管理テーブルに格納されるデータの例を示す図である。
【図８】一時記憶管理テーブルに格納されるデータの例を示す図である。
【図９】ストレージシステムでの処理手順を示すフローチャート（その１）である。
【図１０】ストレージシステムでの処理手順を示すフローチャート（その２）である。
【図１１】ストレージシステムでの処理手順を示すフローチャート（その３）である。
【図１２】ストレージシステムでの処理手順を示すフローチャート（その４）である。
【図１３】ストレージシステムでの処理手順を示すフローチャート（その５）である。
【図１４】第３の実施の形態に係るストレージ制御装置の機能を示す図である。
【発明を実施するための形態】
【００１５】
以下、実施の形態を図面を参照して詳細に説明する。
図１は、第１の実施の形態に係るストレージシステムの構成例を示す図である。
図１に示すストレージシステムには、一次ストレージ１と、この一次ストレージ１より大容量であるがアクセス速度の低い二次ストレージ２と、ストレージ制御装置１０とが接続されている。さらに、本実施の形態のストレージシステムには、要求受け付け装置２０およびインタフェース装置３０も接続されている。
【００１６】
ストレージ制御装置１０は、一次ストレージ１および二次ストレージ２を階層型ストレージシステムとして動作させるように制御する。例えば、二次ストレージ２へのデータの書き込みが要求された場合には、そのデータを一次ストレージ１に一旦格納させた後、そのデータを二次ストレージ２にも格納させる。また、二次ストレージ２に記憶されたデータの読み出しが要求された場合には、まず、そのデータが一次ストレージ１にキャッシュされているかを判定する。読み出しを要求されたデータが一次ストレージ１にキャッシュされていれば、キャッシュされているデータを出力させる。一方、読み出しを要求されたデータが一次ストレージ１にキャッシュされていなければ、読み出しを要求されたデータを二次ストレージ２から一次ストレージ１に格納させた後、一次ストレージ１からデータを出力させる。
【００１７】
本実施の形態では、例として、二次ストレージ２に対するデータの書き込み要求や、二次ストレージ２からのデータの読み出し要求は、要求受け付け装置２０によって受け付けられる。この場合、ストレージ制御装置１０は、これらの要求が受け付けられたことを要求受け付け装置２０を通じて検知する。要求受け付け装置２０は、これらの要求を、例えば、ホスト装置などの外部装置から受け付ける。あるいは、要求受け付け装置２０は、これらの要求を、自機に接続された入力デバイスを用いたユーザ操作に応じて受け付けてもよい。
【００１８】
インタフェース装置３０は、二次ストレージ２にアクセスするためのインタフェース機能を提供する装置である。
次に、ストレージ制御装置１０が備える機能について説明する。ストレージ制御装置１０は、通信可否判定部１１、データ記録判定部１２、読み出し制御部１３、書き込み制御部１４および復帰制御部１５を備えている。なお、これらの各機能は、例えば、ストレージ制御装置１０が備えるＣＰＵ（Central Processing Unit）が、所定のプログラムを実行することで実現される。
【００１９】
通信可否判定部１１は、要求受け付け装置２０により書き込み要求や読み出し要求が受け付けられたときに、ストレージ制御装置１０と一次ストレージ１との通信が可能であるか否かを判定する。通信可否判定部１１は、例えば、一次ストレージ１が故障している場合や、一次ストレージ１とストレージ制御装置１０との間の接続経路に障害が発生している場合などに、通信が不可能と判定する。
【００２０】
データ記録判定部１２は、要求受け付け装置２０により読み出し要求が受け付けられたとき、読み出しを要求されたデータが所定の記憶領域に記憶されているか否かを判定する。
【００２１】
読み出し制御部１３は、データ記録判定部１２の判定結果に基づき、読み出しを要求されたデータの記憶領域からの読み出し動作や、読み出しを要求されたデータを要求受け付け装置２０から出力させる動作を制御する。
【００２２】
書き込み制御部１４は、要求受け付け装置２０により書き込み要求が受け付けられたとき、書き込みを要求されたデータを所定の記憶領域へ書き込むための動作を制御する。
復帰制御部１５は、要求受け付け装置２０により書き込み要求が受け付けられたとき、通信可否判定部１１によりストレージ制御装置１０と一次ストレージ１との通信が不可能と判定された場合に動作する機能である。復帰制御部１５は、ストレージ制御装置１０と一次ストレージ１との通信が回復したときのデータ書き込み動作を制御する。
【００２３】
以下、上記各機能の動作を、順を追って説明する。まず、ストレージ制御装置１０と一次ストレージ１との通信が可能な状態での動作について説明する。
要求受け付け装置２０により読み出し要求が受け付けられると、通信可否判定部１１は、ストレージ制御装置１０と一次ストレージ１との通信が可能であるか否かを判定する。ストレージ制御装置１０と一次ストレージ１との通信が可能であった場合、データ記録判定部１２は、読み出しを要求されたデータが一次ストレージ１にキャッシュされているかを判定する。
【００２４】
読み出しを要求されたデータが一次ストレージ１にキャッシュされている場合、読み出し制御部１３は、そのデータを一次ストレージ１から読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置２０が出力するように制御する。一方、読み出しを要求されたデータが一次ストレージ１にキャッシュされていない場合、読み出し制御部１３は、読み出しを要求されたデータを二次ストレージ２から一次ストレージ１に格納させる。そして、一次ストレージ１に格納されたデータを読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置２０が出力するように制御する。
【００２５】
また、要求受け付け装置２０により書き込み要求が受け付けられると、通信可否判定部１１は、ストレージ制御装置１０と一次ストレージ１との通信が可能であるか否かを判定する。ストレージ制御装置１０と一次ストレージ１との通信が可能であった場合、書き込み制御部１４は、書き込みが要求されたデータを一次ストレージ１に格納させた後、格納されたデータを二次ストレージ２にも格納させる。
【００２６】
次に、ストレージ制御装置１０と一次ストレージ１との通信が不可能な状態での動作について説明する。
要求受け付け装置２０により読み出し要求が受け付けられたとき、通信可否判定部１１によりストレージ制御装置１０と一次ストレージ１との通信が不可能と判定されると、データ記録判定部１２は、読み出しを要求されたデータが一時記憶領域２１に記憶されているか否かを判定する。ここで、一時記憶領域２１とは、ストレージシステムが備える情報処理装置のうち、一次ストレージ１および二次ストレージ２を除く情報処理装置に対して個別に接続された記憶装置内に設定される記憶領域である。図１では、このような情報処理装置としてストレージ制御装置１０、要求受け付け装置２０およびインタフェース装置３０が適用可能である。また、一時記憶領域２１は、例えば、これらの情報処理装置の内部に搭載されたＨＤＤなどの不揮発性記憶装置に設定される。
【００２７】
読み出し制御部１３は、読み出しを要求されたデータが一時記憶領域に記憶されていた場合には、読み出しを要求されたデータを一時記憶領域２１から読み出し、読み出したデータを読み出し要求に対する応答として要求受け付け装置２０が出力するように制御する。一方、要求されたデータが一時記憶領域２１に記憶されていなかった場合には、読み出しを要求されたデータを二次ストレージ２から読み出して一時記憶領域２１に格納させる。これとともに、一時記憶領域２１に格納されたデータを、読み出し要求に対する応答として要求受け付け装置２０から出力させる。このような処理により、一時記憶領域２１は、一次ストレージ１と同様に、二次ストレージ２のキャッシュとして利用されるようになる。
【００２８】
ここで、読み出し要求を受け付けた場合には、一時記憶領域として、要求受け付け装置２０に個別に接続された記憶装置に設定される領域（図１の一時記憶領域２１）が優先的に使用されることが望ましい。これにより、要求されたデータが一時記憶領域２１に記憶されていた場合には、一時記憶領域２１内のデータを即座に出力して応答することができる。
【００２９】
要求受け付け装置２０により書き込み要求が受け付けられたとき、通信可否判定部１１によりストレージ制御装置１０と一次ストレージ１との通信が不可能と判定されると、書き込み制御部１４は、書き込みを要求されたデータを一時記憶領域２１に格納させる。復帰制御部１５は、書き込み制御部１４による一時記憶領域２１への書き込み処理が実行された後に、通信可否判定部１１によりストレージ制御装置１０と一次ストレージ１との通信が回復したと判定された場合に、一時記憶領域２１に格納された、書き込みが要求されたデータを、一次ストレージ１に移動させる。さらに、その後に、一次ストレージ１に移動させたデータを、二次ストレージ２にも記憶させる。
【００３０】
このような処理により、書き込みが要求されたデータを一次ストレージ１に格納できない場合でも、そのデータを一時記憶領域に保持しておき、通信復帰後に、一時記憶領域に保持されたデータを一次ストレージ１に格納して、元の動作を再開させることができるようになる。
【００３１】
ここで、書き込み要求を受け付けた場合には、一時記憶領域として、インタフェース装置３０に個別に接続された記憶装置（ただし、二次ストレージ２を除く）に設定される領域（図１の一時記憶領域３１）が優先的に使用されることが望ましい。これにより、例えば、一次ストレージ１との通信が復帰する前に一時記憶領域３１に記憶されたデータを出力しなければならない事態が発生した場合に、一時記憶領域３１に記憶されたデータを短時間で二次ストレージ２に移動させることができるようになる。
【００３２】
以上のストレージシステムでは、ストレージ制御装置１０と一次ストレージ１との通信が不可能な状態で読み出し要求や書き込み要求を受け付けた場合でも、一時記憶領域を一次ストレージ１の代替手段として利用することで、階層型ストレージシステムの運用を継続させることができる。また、一時記憶領域は、ストレージシステム内にすでに用意されたハードウェア資源によって実現されるので、システムの製造コストや装置の設置面積を増大させることなく、上記効果を得ることができる。
【００３３】
なお、ストレージ制御装置１０は、書き込み要求や読み出し要求を、要求受け付け装置２０を介さずに直接受け付けるようにしてもよい。この場合、要求受け付け装置２０は不要となる。そして、ストレージ制御装置１０は、一次ストレージ１との通信不能時に読み出し要求を受け付けた場合には、自機に個別に接続された記憶装置に設定した一時記憶領域を優先的に利用すればよい。
【００３４】
また、ストレージ制御装置１０は、インタフェース装置３０を介さずに、二次ストレージ２に対して直接アクセスできる構成であってもよい。この場合、インタフェース装置３０は不要となる。そして、ストレージ制御装置１０は、一次ストレージ１との通信不能時に書き込み要求を受け付けた場合には、自機に個別に接続された記憶装置に設定した一時記憶領域を優先的に利用すればよい。
【００３５】
次に、一次ストレージとして磁気ディスクを、二次ストレージとして磁気テープをそれぞれ用いた階層型ストレージシステムについて説明する。
図２は、第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【００３６】
図２に示すストレージシステムは、チャネルプロセッサ２００ａ，２００ｂ、仮想ライブラリ制御プロセッサ（以下、“ＶＬ制御プロセッサ”と略称する。ＶＬ：Virtual Library）３００ａ，３００ｂ、ディスクアレイ装置４００ａ，４００ｂおよびデバイスプロセッサ５００ａ，５００ｂを備えている。また、これらの各部は、ファイバチャネルスイッチ６００ａ，６００ｂを介して光ファイバにより相互に接続されている。
【００３７】
なお、本実施の形態では、信頼性の向上や処理負荷の分散などを目的として、チャネルプロセッサ、ＶＬ制御プロセッサ、ディスクアレイ装置およびデバイスプロセッサの各機能がすべて２系統ずつ設けられている。例えば、ＶＬ制御プロセッサ３００ａ，３００ｂについては、一方が他方のバックアップとして機能するように構成されればよい。
【００３８】
また、チャネルプロセッサ２００ａ，２００ｂ、ＶＬ制御プロセッサ３００ａ，３００ｂ、ディスクアレイ装置４００ａ，４００ｂ、およびデバイスプロセッサ５００ａ，５００ｂは、それぞれ２系統の接続経路により相互に接続されている。すなわち、その一方の経路はファイバチャネルスイッチ６００ａを介して接続され、他方の経路はファイバチャネルスイッチ６００ｂを介して接続されている。これにより、接続経路の耐故障性が向上する。
【００３９】
チャネルプロセッサ２００ａ，２００ｂには、例えば光ファイバなどを介してホスト装置１００が接続されている。チャネルプロセッサ２００ａ，２００ｂは、ホスト装置１００に対して、このストレージシステムにより実現される仮想ライブラリにアクセスするためのインタフェース機能を提供する。
【００４０】
ここで、仮想ライブラリとは、デバイスプロセッサ５００ａ，５００ｂに接続されたテープライブラリ装置５１０による大容量の記憶領域を、ホスト装置１００が、ディスクアレイ装置４００ａ，４００ｂを通じて仮想的に利用できるようにしたものである。すなわち、ここでは、ディスクアレイ装置４００ａ，４００ｂを一次ストレージとし、テープライブラリ装置５１０を二次ストレージとした階層型ストレージシステムが構成されている。
【００４１】
チャネルプロセッサ２００ａ，２００ｂは、ホスト装置１００からデータの書き込み要求を受けると、例えばＶＬ制御プロセッサ３００ａの制御の下で、ホスト装置１００からのデータをディスクアレイ装置４００ａ，４００ｂのいずれかに書き込む。また、ホスト装置１００からデータの読み出し要求を受けると、例えばＶＬ制御プロセッサ３００ａの制御の下で、ホスト装置１００からのデータをディスクアレイ装置４００ａ，４００ｂのいずれかから読み出す。そして、ディスクアレイ装置から読み出したデータをホスト装置１００に送信する。なお、チャネルプロセッサ２００ａ，２００ｂには、複数のホスト装置１００が接続されていてもよい。
【００４２】
ＶＬ制御プロセッサ３００ａ，３００ｂは、一次ストレージとしてのディスクアレイ装置４００ａ，４００ｂを、テープライブラリ装置５１０内のデータをキャッシュする一次ストレージとして機能させるように、データの書き込み動作や転送動作を管理する。そして、ＶＬ制御プロセッサ３００ａ，３００ｂは、このような一次ストレージおよび二次ストレージを用いた仮想ライブラリに対してホスト装置１００がアクセスできるように、チャネルプロセッサ２００ａ，２００ｂの動作を制御する。
【００４３】
また、後述するように、ＶＬ制御プロセッサ３００ａ，３００ｂは、ディスクアレイ装置４００ａ，４００ｂに障害が発生した場合でも、ホスト装置１００から仮想ライブラリへのアクセスを継続できるようにするための制御機能も備えている。
【００４４】
ディスクアレイ装置４００ａ，４００ｂは、それぞれ複数枚の磁気ディスクを備え、仮想ライブラリにおける一次ストレージとして機能する。基本的に、ディスクアレイ装置４００ａ，４００ｂのアクセス速度はテープライブラリ装置５１０と比較して高速であるが、その容量はテープライブラリ装置５１０より小さい。
【００４５】
デバイスプロセッサ５００ａ，５００ｂは、テープライブラリ装置５１０にアクセスするためのインタフェース機能を提供する。テープライブラリ装置５１０は、例えば、複数の磁気テープを備え、仮想ライブラリにおける二次ストレージとして機能する。なお、磁気テープは、例えば、それぞれ個別のテープカセットに収納された状態で提供される。
【００４６】
なお、チャネルプロセッサ２００ａ，２００ｂ、ＶＬ制御プロセッサ３００ａ，３００ｂおよびデバイスプロセッサ５００ａ，５００ｂは、例えば、それぞれ個別のコンピュータとして実現される。また、これらの各コンピュータは、１つの筐体内に設置されてもよい。
【００４７】
図３は、ストレージシステムが備える各制御プロセッサ間の結線図を示す図である。
チャネルプロセッサ２００ａ，２００ｂ、ＶＬ制御プロセッサ３００ａ，３００ｂおよびデバイスプロセッサ５００ａ，５００ｂのそれぞれは、例えば、光ファイバだけでなく、ＬＡＮ（Local Area Network）によっても接続されていてもよい。図３の例では、各プロセッサは、ＬＡＮスイッチ６１０ａ，６１０ｂを介してＬＡＮに接続されている。このように接続経路を冗長化することで、耐故障性が向上する。
【００４８】
例えば、本実施の形態では、後述するように、ディスクアレイ装置４００ａ，４００ｂに障害が発生した場合でも、チャネルプロセッサ２００ａ，２００ｂ、ＶＬ制御プロセッサ３００ａ，３００ｂおよびデバイスプロセッサ５００ａ，５００ｂにより仮想ライブラリの運用を継続することができる。ここで、例えば、ＶＬ制御プロセッサ３００ａ，３００ｂが、光ファイバによる接続経路上の問題のために、ディスクアレイ装置４００ａ，４００ｂに接続できなかったとする。このとき、ＶＬ制御プロセッサ３００ａ，３００ｂは、ディスクアレイ装置４００ａ，４００ｂが正常に動作していたとしても、ディスクアレイ装置４００ａ，４００ｂに障害が発生したと認識する場合があり得る。このような場合に、図３のように光ファイバ以外の接続経路を用意しておくことで、チャネルプロセッサ２００ａ，２００ｂ、ＶＬ制御プロセッサ３００ａ，３００ｂおよびデバイスプロセッサ５００ａ，５００ｂにより、仮想ライブラリの運用をより確実に継続することができる。
【００４９】
また、例えば、光ファイバを書き込みデータや読み出しデータの転送用に使用し、ＬＡＮを制御プロセッサ間の制御データの転送用に使用するようにしてもよい。この場合、例えば、光ファイバによる接続経路上に障害が発生した場合には、ＬＡＮを通じて書き込みデータや読み出しデータを転送できるようにすることで、耐故障性が向上する。
【００５０】
なお、図３の例では、一方の系統の制御プロセッサ、すなわち、チャネルプロセッサ２００ａ、ＶＬ制御プロセッサ３００ａおよびデバイスプロセッサ５００ａについては、それぞれＬＡＮスイッチ６１０ａを介して接続されている。また、他方の系統の制御プロセッサ、すなわち、チャネルプロセッサ２００ｂ、ＶＬ制御プロセッサ３００ｂおよびデバイスプロセッサ５００ｂについては、それぞれＬＡＮスイッチ６１０ｂを介して接続されている。
【００５１】
次に、ストレージシステムが備える装置の構成および機能について説明する。なお、以下では説明を簡単にするために、チャネルプロセッサ２００ａ，２００ｂを“チャネルプロセッサ２００”と表し、ＶＬ制御プロセッサ３００ａ，３００ｂを“ＶＬ制御プロセッサ３００”と表し、ディスクアレイ装置４００ａ，４００ｂを“ディスクアレイ装置４００”と表し、デバイスプロセッサ５００ａ，５００ｂを“デバイスプロセッサ５００”と表すことにする。
【００５２】
図４は、ＶＬ制御プロセッサのハードウェア構成例を示す図である。
ＶＬ制御プロセッサ３００は、例えば、図４に示すようなコンピュータによって実現される。このコンピュータは、ＣＰＵ３０１、ＲＡＭ（Random Access Memory）３０２、ＨＤＤ３０３、グラフィック処理部３０４，入力インタフェース（Ｉ／Ｆ）３０５、読み取り部３０６および通信インタフェース（Ｉ／Ｆ）３０７を備えており、これらの各部はバス３０８によって相互に接続されている。
【００５３】
ＣＰＵ３０１は、ＨＤＤ３０３に記憶された各種プログラムを実行することにより、このコンピュータ全体を統括的に制御する。ＲＡＭ３０２は、ＣＰＵ３０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。ＨＤＤ３０３は、ＣＰＵ３０１により実行されるプログラムや、プログラムの実行に必要な各種のデータなどを記憶する。
【００５４】
グラフィック処理部３０４には、例えば、モニタ３０４ａが接続されている。このグラフィック処理部３０４は、ＣＰＵ３０１からの命令に従って、モニタ３０４ａの画面上に画像を表示させる。入力インタフェース３０５には、例えば、キーボード３０５ａやマウス３０５ｂが接続されている。この入力インタフェース３０５は、キーボード３０５ａやマウス３０５ｂからの信号を、バス３０８を介してＣＰＵ３０１に送信する。
【００５５】
読み取り部３０６は、可搬型の記録媒体３０６ａからデータを読み取り、バス３０８を介してＣＰＵ３０１に送信する。記録媒体３０６ａとしては、例えば、光ディスクなどを適用可能である。通信インタフェース３０７は、図示しないコネクタを介して、チャネルプロセッサ２００、ディスクアレイ装置４００、デバイスプロセッサ５００などの外部装置と接続し、外部装置との間でデータの送受信を行う。
【００５６】
なお、ホスト装置１００、チャネルプロセッサ２００およびデバイスプロセッサ５００も、基本的に、図４に示したＶＬ制御プロセッサ３００と同様のハードウェア構成によって実現可能である。
【００５７】
図５は、ディスクアレイ装置のハードウェア構成例を示す図である。
ディスクアレイ装置４００は、制御回路４０１、メモリ４０２、ディスクインタフェース４０３、ディスクアレイ４０４および通信インタフェース４０５を備えている。
【００５８】
制御回路４０１は、ディスクアレイ装置４００全体を統括的に制御する。メモリ４０２は、例えば、制御回路４０１での処理に必要な各種のデータなどを記憶する。ディスクインタフェース４０３は、制御回路４０１からの要求に応じて、ディスクアレイ４０４に対するデータの書き込みや、ディスクアレイ４０４からのデータの読み出しを行う。ディスクアレイ４０４には、複数の磁気ディスクがアレイ状に搭載されている。通信インタフェース４０５は、図示しないコネクタを介して、チャネルプロセッサ２００、ＶＬ制御プロセッサ３００およびデバイスプロセッサ５００などの外部装置と接続し、外部装置との間でデータの送受信を行う。
【００５９】
図６は、ストレージシステムの各制御プロセッサが備える機能を示す図である。
ＶＬ制御プロセッサ３００は、ＶＬ制御部３２１、障害制御部３２２および一時記憶処理部３２３を備えている。これらの機能は、例えば、ＶＬ制御プロセッサ３００が備えるＣＰＵが、所定のプログラムを実行することにより実現される。
【００６０】
ＶＬ制御部３２１は、ＶＬ管理テーブル３３１を参照して、仮想ライブラリにおける基本的なデータの書き込みや転送の動作を制御する。後述するように、ＶＬ管理テーブル３３１には、二次ストレージとしてのテープライブラリ装置５１０内の記憶領域と、一次ストレージとしてのディスクアレイ装置４００内の記憶領域とを対応付けるための情報が格納されている。さらに、ＶＬ管理テーブル３３１には、ディスクアレイ装置４００内のデータに対応するテープライブラリ装置５１０内のデータが最新であるか否かを識別するための情報も格納されている。
【００６１】
障害制御部３２２は、ディスクアレイ装置４００に障害が発生した場合に、仮想ライブラリの運用を継続させるための動作を制御する。障害制御部３２２は、障害発生時に書き込みや読み出しが要求されたデータを、チャネルプロセッサ２００、ＶＬ制御プロセッサ３００およびデバイスプロセッサ５００にそれぞれ設定された一時記憶領域２３１，３３３，５３１のいずれかに一時的に記録する。そして、障害制御部３２２は、障害の復旧後に、一時記憶領域に記録したデータを用いて、仮想ライブラリの運用状態を正常に復帰させる。障害制御部３２２は、一時記憶管理テーブル３３２を用いて、各プロセッサの一時記憶領域に保持されたデータを管理する。
【００６２】
なお、ＶＬ管理テーブル３３１および一時記憶管理テーブル３３２は、例えば、ＶＬ制御プロセッサ３００が備えるＨＤＤなどの記憶領域に格納される。また、これらのテーブルは、外部の機器に記憶されていてもよい。
【００６３】
一時記憶処理部３２３は、ディスクアレイ装置４００に障害が発生した場合に、障害制御部３２２からの要求に応じて、一時記憶領域３３３に対するデータの書き込みや、一時記憶領域３３３からのデータの読み出しを行う。一時記憶領域３３３は、例えば、ＶＬ制御プロセッサ３００が備えるＨＤＤの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部３２３により動的に設定されてもよい。
【００６４】
チャネルプロセッサ２００は、ホストインタフェース（Ｉ／Ｆ）処理部２２１および一時記憶処理部２２２を備えている。これらの機能は、例えば、チャネルプロセッサ２００が備えるＣＰＵが、所定のプログラムを実行することにより実現される。
【００６５】
ホストインタフェース処理部２２１は、ホスト装置１００からのデータの書き込み要求や読み出し要求を受け付ける。そして、ホストインタフェース処理部２２１は、ＶＬ制御プロセッサ３００のＶＬ制御部３２１の制御の下で、ディスクアレイ装置４００にアクセスし、データの書き込み動作や読み出し動作を実行する。
【００６６】
一時記憶処理部２２２は、ディスクアレイ装置４００に障害が発生した場合に、ＶＬ制御プロセッサ３００の障害制御部３２２からの要求に応じて、一時記憶領域２３１に対するデータの書き込みや、一時記憶領域２３１からのデータの読み出しを行う。一時記憶領域２３１は、例えば、チャネルプロセッサ２００が備えるＨＤＤの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部２２２により動的に設定されてもよい。
【００６７】
デバイスプロセッサ５００は、テープインタフェース（Ｉ／Ｆ）処理部５２１および一時記憶処理部５２２を備えている。これらの機能は、例えば、デバイスプロセッサ５００が備えるＣＰＵが、所定のプログラムを実行することにより実現される。
【００６８】
テープインタフェース処理部５２１は、チャネルプロセッサ２００およびＶＬ制御プロセッサ３００からの要求に応じて、テープライブラリ装置５１０内の磁気テープへのデータの書き込みや、磁気テープからのデータの読み出しを行う。
【００６９】
一時記憶処理部５２２は、ディスクアレイ装置４００に障害が発生した場合に、ＶＬ制御プロセッサ３００の障害制御部３２２からの要求に応じて、一時記憶領域５３１に対するデータの書き込みや、一時記憶領域５３１からのデータの読み出しを行う。一時記憶領域５３１は、例えば、デバイスプロセッサ５００が備えるＨＤＤの記憶領域の一部として割り当てられる。このような記憶領域は、所定の容量分だけあらかじめ設定されていてもよいし、一時記憶処理部５２２により動的に設定されてもよい。
【００７０】
図７は、ＶＬ管理テーブルに格納されるデータの例を示す図である。
ＶＬ管理テーブル３３１には、基本的に、テープライブラリ装置５１０内の記憶領域とディスクアレイ装置４００内の記憶領域とを対応付けるための情報が格納されている。図７の例では、このような情報として、テープライブラリ装置５１０内の記憶領域を示す物理ボリュームと、ディスクアレイ装置４００におけるデータの仮想的な記憶領域および記憶位置をそれぞれ示す論理ボリュームおよびアドレスとが格納されている。１つの物理ボリュームは、例えば、１つのテープカセットに対応している。また、図７の例では、１つの物理ボリュームに対して複数の論理ボリュームを割り当てることが可能になっている。
【００７１】
さらに、ＶＬ管理テーブル３３１には、１つのアドレスにより管理される領域のデータの状態を示すデータステータスが格納されている。このデータステータスには、例えば、“Ｄｉｒｔｙ”“Ｈｉｔ”“Ｍｉｓｓ”のいずれかの値が設定される。
【００７２】
“Ｄｉｒｔｙ”は、ディスクアレイ装置４００上には最新のデータが記録されているが、そのデータによりテープライブラリ装置５１０内の対応するデータが更新されていない状態を示す。“Ｈｉｔ”は、ディスクアレイ装置４００上のデータと、テープライブラリ装置５１０上の対応するデータとが等価である状態を示す。“Ｍｉｓｓ”は、ディスクアレイ装置４００上にデータが割り当てられておらず、テープライブラリ装置５１０上にのみデータが記録されている状態を示す。
【００７３】
図８は、一時記憶管理テーブルに格納されるデータの例を示す図である。
一時記憶管理テーブル３３２には、一時記憶領域２３１，３３３，５３１に格納されたデータを管理するための情報が格納される。図８の例では、一時記憶領域におけるデータのアドレスと、その一時記憶領域を識別するための記憶領域種別とが、一次ストレージとしてのディスクアレイ装置４００上のアドレスと対応付けられている。ここで、記憶領域種別は、そのデータが格納された一時記憶領域がどの制御プロセッサに設けられたものかを識別するためのものである。本実施の形態では、記憶領域種別により、そのデータが一時記憶領域２３１，３３３，５３１のうちのどこに格納されているかが識別可能になる。
【００７４】
なお、一時記憶管理テーブル３３２に記録されたディスクアレイ装置４００上のアドレスは、ＶＬ管理テーブル３３１に記録されたアドレスに対応している。このため、例えば、図８に示した一時記憶領域上のアドレスおよび記憶領域種別の情報を、ＶＬ管理テーブル３３１内のアドレスの欄に格納して、一時記憶管理テーブル３３２を用いず、ＶＬ管理テーブル３３１のみを用いて一時記憶領域を管理するようにしてもよい。
【００７５】
次に、図９〜図１３は、ストレージシステムでの処理手順を示すフローチャートである。
まず、図９を用いて、主に、ディスクアレイ装置４００に障害が発生していない場合の処理について説明する。
【００７６】
［ステップＳ１１］ホスト装置１００からＩ／Ｏ（Input/Output）要求が送信されると、チャネルプロセッサ２００のホストインタフェース処理部２２１は、このＩ／Ｏ要求を受け付ける。ホストインタフェース処理部２２１は、Ｉ／Ｏ要求を受け付けたことを、ＶＬ制御プロセッサ３００のＶＬ制御部３２１に通知する。
【００７７】
［ステップＳ１２］ＶＬ制御部３２１は、ディスクアレイ装置４００が正常に動作しているか否かを判定する。ディスクアレイ装置４００が正常に動作している場合には、ステップＳ１３の処理が実行される。一方、正常に動作していない場合、ＶＬ制御部３２１は、障害制御部３２２に障害の発生を通知する。この後、ステップＳ２４の処理が実行される。
【００７８】
なお、このステップＳ１２の判定処理は、例えば、ホストインタフェース処理部２２１からＩ／Ｏ要求の受信通知を受けた時点で、ＶＬ制御部３２１がディスクアレイ装置４００に問い合わせることで行われる。あるいは、ＶＬ制御部３２１は、ディスクアレイ装置４００に対する問い合わせを定期的に行ってもよい。
【００７９】
また、ディスクアレイ装置４００が正常に動作していないと判定されるケースには、ディスクアレイ装置４００自体の動作に異常がある場合の他、接続経路の異常によりディスクアレイ装置４００との通信が不可能である場合なども含まれる。
【００８０】
［ステップＳ１３］ＶＬ制御部３２１は、ホストインタフェース処理部２２１からの通知に基づき、ホスト装置１００からのＩ／Ｏ要求が書き込み要求であったか、あるいは読み出し要求であったかを判定する。書き込み要求であった場合にはステップＳ１４の処理が実行され、読み出し要求であった場合にはステップＳ１９の処理が実行される。
【００８１】
［ステップＳ１４］ホスト装置１００から書き込みが要求されたデータが、ディスクアレイ装置４００に書き込まれる。この処理では、まず、ＶＬ制御部３２１は、ディスクアレイ装置４００におけるデータの書き込みアドレスをホストインタフェース処理部２２１に通知する。ホストインタフェース処理部２２１は、通知された書き込みアドレスに対して、ホスト装置１００からのデータを書き込む。
【００８２】
［ステップＳ１５］ＶＬ制御部３２１は、ホストインタフェース処理部２２１からデータ書き込みの完了通知を受けると、ＶＬ管理テーブル３３１を更新する。例えば、ＶＬ制御部３２１は、データが書き込まれたアドレスに対応するデータステータスを“Ｄｉｒｔｙ”に設定する。ＶＬ管理テーブル３３１の更新処理が終了すると、ＶＬ制御部３２１は、ホストインタフェース処理部２２１に対して処理完了通知を出力する。
【００８３】
［ステップＳ１６］ホストインタフェース処理部２２１は、ＶＬ制御部３２１から処理完了通知を受けると、ホスト装置１００に対して書き込み処理が完了したことを報告する。
【００８４】
［ステップＳ１７］ステップＳ１４においてディスクアレイ装置４００に書き込まれたデータが、テープライブラリ装置５１０にも書き込まれる。この処理では、まず、ＶＬ制御部３２１は、ＶＬ管理テーブル３３１を参照し、データが書き込まれたディスクアレイ装置４００上のアドレスと、書き込み先とするテープライブラリ装置５１０上の物理ボリュームとを取得する。そして、取得したそれらの情報をデバイスプロセッサ５００のテープインタフェース処理部５２１に通知する。テープインタフェース処理部５２１は、ディスクアレイ装置４００上の通知されたアドレスからデータを読み出し、テープライブラリ装置５１０上の通知された物理ボリュームに対応する領域に書き込む。
【００８５】
なお、このステップＳ１７の処理は、ステップＳ１５の処理が終了した後の任意のタイミングで実行されればよい。
［ステップＳ１８］ＶＬ制御部３２１は、ステップＳ１７での処理に従い、ＶＬ管理テーブル３３１を更新する。ここでは例えば、対応するデータステータスが“Ｈｉｔ”に設定される。これにより、ホスト装置１００からデータの書き込みが要求された場合の一連の処理が終了する。
【００８６】
［ステップＳ１９］ＶＬ制御部３２１は、ＶＬ管理テーブル３３１を参照して、ホスト装置１００から読み出しを要求されたデータがディスクアレイ装置４００にキャッシュされているか否かを判定する。ここでは、要求されたデータに対応するデータステータスが“Ｈｉｔ”または“Ｄｉｒｔｙ”の場合に、データがキャッシュされていると判定する。データがディスクアレイ装置４００にキャッシュされている場合には、ステップＳ２２の処理が実行され、キャッシュされていない場合には、ステップＳ２０の処理が実行される。
【００８７】
［ステップＳ２０］ＶＬ制御部３２１は、ホスト装置１００から要求されたデータをテープライブラリ装置５１０から読み出し、ディスクアレイ装置４００上の指定したアドレスに転送するように、デバイスプロセッサ５００のテープインタフェース処理部５２１に依頼する。テープインタフェース処理部５２１は、テープライブラリ装置５１０からデータを読み出し、ディスクアレイ装置４００上の指定されたアドレスに書き込む。
【００８８】
［ステップＳ２１］ＶＬ制御部３２１は、ステップＳ２０での処理に従い、ＶＬ管理テーブル３３１を更新する。ここでは例えば、データを記録したディスクアレイ装置４００上のアドレスに対応するデータステータスが“Ｈｉｔ”に設定される。
【００８９】
［ステップＳ２２］ホスト装置１００から要求されたデータが、ディスクアレイ装置４００から読み出されてホスト装置１００に転送される。この処理では、まず、ＶＬ制御部３２１は、要求されたデータが書き込まれたアドレスをＶＬ管理テーブル３３１から取得し、チャネルプロセッサ２００のホストインタフェース処理部２２１に通知する。ホストインタフェース処理部２２１は、ディスクアレイ装置４００上の通知されたアドレスからデータを読み出し、読み出したデータをホスト装置１００に送信する。データの送信が終了すると、ホストインタフェース処理部２２１は、ＶＬ制御部３２１に対して、データ読み出しの完了通知を出力する。
【００９０】
［ステップＳ２３］ＶＬ制御部３２１は、ホストインタフェース処理部２２１に対して処理完了通知を出力し、ホストインタフェース処理部２２１は、処理完了通知に応じて、ホスト装置１００に対して読み出し処理が完了したことを報告する。この処理により、ホスト装置１００からデータの読み出しが要求された場合の一連の処理が終了する。
【００９１】
［ステップＳ２４］ＶＬ制御部３２１は、ホストインタフェース処理部２２１からの通知に基づき、ホスト装置１００からのＩ／Ｏ要求が書き込み要求であったか、あるいは読み出し要求であったかを判定する。書き込み要求であった場合には、図１０のステップＳ３１の処理が実行され、読み出し要求であった場合には、図１２のステップＳ７１の処理が実行される。
【００９２】
次に、図１０を用いて、ディスクアレイ装置４００における障害発生時に、ホスト装置１００から書き込みが要求された場合の処理について説明する。
［ステップＳ３１］ＶＬ制御プロセッサ３００の障害制御部３２２は、デバイスプロセッサ５００の一時記憶領域５３１に空き領域があるか否かを、デバイスプロセッサ５００の一時記憶処理部５２２に問い合わせる。一時記憶領域５３１に空き領域がある場合には、ステップＳ３２の処理が実行され、空き領域がない場合には、ステップＳ３３の処理が実行される。
【００９３】
なお、空き領域の有無については、例えば、障害制御部３２２が、一時記憶管理テーブル３３２における一時記憶領域ごとの情報登録数などから判定してもよい。
［ステップＳ３２］ホスト装置１００から書き込みを要求されたデータが、デバイスプロセッサ５００の一時記憶領域５３１に書き込まれる。
【００９４】
この処理では、まず、障害制御部３２２は、デバイスプロセッサ５００の一時記憶処理部５２２から、一時記憶領域５３１における空き領域のアドレスを取得する。なお、一時記憶処理部５２２は、例えば、デバイスプロセッサ５００が備える記憶装置（例えばＨＤＤ）における現在の空き領域を、一時記憶領域５３１として確保して、空き領域のアドレスを障害制御部３２２に送信してもよい。
【００９５】
障害制御部３２２は、一時記憶処理部５２２から取得したアドレスを、チャネルプロセッサ２００の一時記憶処理部２２２に対して通知する。一時記憶処理部２２２は、ホスト装置１００からの書き込みデータをホストインタフェース処理部２２１から受け取る。そして、書き込みデータを、障害制御部３２２から通知されたアドレスとともに、デバイスプロセッサ５００の一時記憶処理部５２２に送信し、一時記憶領域５３１にデータを格納するように依頼する。一時記憶処理部５２２は、一時記憶領域５３１内の対応する領域にデータを書き込む。
【００９６】
一時記憶処理部５２２による書き込み処理が終了すると、チャネルプロセッサ２００の一時記憶処理部２２２に対して書き込み完了が通知され、一時記憶処理部２２２は、書き込み完了の通知に応じて、障害制御部３２２に書き込み完了を通知する。この後、ステップＳ３７の処理が実行される。
【００９７】
［ステップＳ３３］障害制御部３２２は、ＶＬ制御プロセッサ３００内の一時記憶領域３３３に空き領域があるか否かを、一時記憶処理部３２３に問い合わせる。一時記憶領域３３３に空き領域がある場合には、ステップＳ３６の処理が実行され、空き領域がない場合には、ステップＳ３４の処理が実行される。
【００９８】
［ステップＳ３４］障害制御部３２２は、一時記憶管理テーブル３３２を参照し、デバイスプロセッサ５００の一時記憶領域５３１にすでにデータが格納されている場合には、このデータをテープライブラリ装置５１０に移動させる。デバイスプロセッサ５００の一時記憶処理部５２２は、障害制御部３２２の制御の下で、一時記憶領域５３１に格納されたデータをテープライブラリ装置５１０に移動させる。これにより、デバイスプロセッサ５００の記憶装置に空き領域が生成される。このとき、障害制御部３２２は、一時記憶管理テーブル３３２から、テープライブラリ装置５１０に移動された一時記憶領域５３１のデータに関する情報を削除する。また、ＶＬ制御部３２１は、テープライブラリ装置５１０に格納したデータに対応するＶＬ管理テーブル３３１上のデータステータスを“Ｍｉｓｓ”に設定する。
【００９９】
［ステップＳ３５］障害制御部３２２は、一時記憶管理テーブル３３２を参照し、ＶＬ制御プロセッサ３００の一時記憶領域３３３にすでにデータが格納されている場合には、このデータを一時記憶処理部３２３を通じて読み出す。そして、デバイスプロセッサ５００の一時記憶処理部５２２にデータを送信し、一時記憶領域５３１に記録させる。これにより、ＶＬ制御プロセッサ３００の記憶装置に空き領域が生成される。このとき、障害制御部３２２は、一時記憶管理テーブル３３２中の、一時記憶領域５３１に記録されたデータに対応するアドレスおよび記憶領域種別を更新する。
【０１００】
［ステップＳ３６］障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２を通じて、ホスト装置１００から書き込みを要求されたデータを取得する。そして、障害制御部３２２は、取得したデータを一時記憶処理部３２３に受け渡し、一時記憶領域３３３に格納させる。一時記憶領域３３３への書き込み処理が終了すると、チャネルプロセッサ２００の一時記憶処理部２２２に対して障害制御部３２２から書き込み完了が通知され、一時記憶処理部２２２は、書き込み完了通知に応じて、障害制御部３２２に書き込み完了を通知する。この後、ステップＳ３７の処理が実行される。
【０１０１】
［ステップＳ３７］障害制御部３２２は、書き込み完了通知を受けると、一時記憶管理テーブル３３２を更新する。ここでは、一時記憶管理テーブルに、一次ストレージ上のアドレス、一時記憶領域上のアドレスおよび記憶領域種別を新たに登録する。ステップＳ３２の処理が実行された場合には、デバイスプロセッサ５００の一時記憶領域５３１のアドレスが一時記憶管理テーブル３３２に登録される。一方、ステップＳ３６の処理が実行された場合には、ＶＬ制御プロセッサ３００の一時記憶領域３３３のアドレスが一時記憶管理テーブル３３２に登録される。このような処理が終了すると、ＶＬ制御部３２１は、ホストインタフェース処理部２２１に対して処理完了通知を出力する。
【０１０２】
［ステップＳ３８］ホストインタフェース処理部２２１は、ＶＬ制御部３２１から処理完了通知を受けると、ホスト装置１００に対して書き込み処理が完了したことを報告する。この後、図１１に示すステップＳ５１の処理が実行される。
【０１０３】
以上の図１０に示した処理では、ホスト装置１００から書き込みが要求された場合、書き込みが要求されたデータを、最初にデバイスプロセッサ５００上の一時記憶領域５３１に書き込むように制御される（ステップＳ３１，Ｓ３２）。これは、一時記憶領域に書き込まれたデータはその後にテープライブラリ装置５１０に書き込まれる可能性があり、そのような場合に、テープライブラリ装置５１０にできるだけ短時間で書き込みができるようにするためである。
【０１０４】
また、デバイスプロセッサ５００に空き領域がない場合には、ＶＬ制御プロセッサ３００の一時記憶領域３３３にデータが格納される（ステップＳ３１，Ｓ３３，Ｓ３６）。さらに、ＶＬ制御プロセッサ３００にも空き領域がない場合には、デバイスプロセッサ５００に空き領域が生成され（ステップＳ３４）、その空き領域に対して、ＶＬ制御プロセッサ３００の一時記憶領域３３３のデータが移動される（ステップＳ３５）。そして、ＶＬ制御プロセッサ３００に生成された空き領域に、書き込みが要求されたデータが格納される（ステップＳ３６）。
【０１０５】
次に、図１１を用いて、ディスクアレイ装置４００が障害から復帰したときの処理について説明する。
［ステップＳ５１］ステップＳ３２，Ｓ３５において一時記憶領域５３１にデータが格納された後、デバイスプロセッサ５００の記憶装置に対して他の種類の処理によりデータが記録されると、デバイスプロセッサ５００の記憶装置の残容量が低下する。障害制御部３２２は、デバイスプロセッサ５００の記憶装置の残容量が一定値以下に低下したか否かを判定する。この判定は、例えば、デバイスプロセッサ５００の一時記憶処理部５２２からの通知を基に行われる。記憶装置の残容量が一定値以下に低下した場合には、ステップＳ５２の処理が実行され、低下していない場合には、ステップＳ５３の処理が実行される。
【０１０６】
［ステップＳ５２］障害制御部３２２は、デバイスプロセッサ５００の一時記憶処理部５２２を制御して、一時記憶領域５３１に格納されたデータをテープライブラリ装置５１０に移動させる。一時記憶処理部５２２は、一時記憶領域５３１から対応するデータを読み出してテープインタフェース処理部５２１に受け渡し、テープライブラリ装置５１０への書き込みを依頼する。
【０１０７】
［ステップＳ５３］障害制御部３２２は、ディスクアレイ装置４００が障害から復帰したか否かを判定する。ディスクアレイ装置４００が障害から復帰した場合には、ステップＳ５４の処理が実行され、復帰していない場合には、ステップＳ５１の処理が再度実行される。
【０１０８】
なお、ステップＳ５１，Ｓ５３による処理ループは、例えば一定時間ごとに繰り返される。また、例えば、ステップＳ５３において障害から復帰したと判定されるまでの間に、ホスト装置１００から新たな書き込み要求または読み出し要求が送信された場合には、図９に示した処理が再度実行されることになる。
【０１０９】
［ステップＳ５４］障害制御部３２２は、ステップＳ５２が実行されて、デバイスプロセッサ５００の一時記憶領域５３１のデータがすでにテープライブラリ装置５１０に移動されたか否かを判定する。一時記憶領域５３１のデータが移動済みである場合には、ステップＳ５５の処理が実行され、データが移動されていない場合には、ステップＳ５８の処理が実行される。
【０１１０】
［ステップＳ５５］障害制御部３２２は、テープライブラリ装置５１０に移動されたデータに対応する更新前のデータが、ディスクアレイ装置４００に記録されているか否かを、ＶＬ制御部３２１に問い合わせる。ＶＬ制御部３２１は、ＶＬ管理テーブル３３１を参照して、この問い合わせに対する返答を行う。ディスクアレイ装置４００に更新前のデータが記録されていた場合には、ステップＳ５６の処理が実行され、記録されていなかった場合には、ステップＳ５７の処理が実行される。
【０１１１】
［ステップＳ５６］障害制御部３２２は、ディスクアレイ装置４００に記録されていた更新前のデータを削除する。これは、ディスクアレイ装置４００上の情報を更新するためにテープライブラリ装置５１０から最新のデータを読み出そうとすると、比較的長時間を要してしまうためである。
【０１１２】
［ステップＳ５７］ＶＬ制御部３２１および障害制御部３２２は、ＶＬ管理テーブル３３１および一時記憶管理テーブル３３２の情報をそれぞれ更新する。ここでは、ＶＬ管理テーブル３３１内の、テープライブラリ装置５１０に移動済みのデータに対応するデータステータスが“Ｍｉｓｓ”に設定される。さらに、一時記憶管理テーブル３３２から、テープライブラリ装置５１０に移動された一時記憶領域５３１のデータに関する登録情報が削除される。
【０１１３】
［ステップＳ５８］障害制御部３２２は、一時記憶領域５３１，３３３に格納された、書き込みを要求されたデータを、ディスクアレイ装置４００に移動させる。例えば、障害制御部３２２は、デバイスプロセッサ５００の一時記憶処理部５２２を制御して、一時記憶領域５３１に格納されたデータをディスクアレイ装置４００に移動させる。また、一時記憶領域３３３に格納されたデータについては、一時記憶処理部３２３を通じてそのデータを読み出し、ディスクアレイ装置４００に移動させる。このとき、書き込みを要求されたデータに対応する古いデータがディスクアレイ装置４００に記録されていた場合には、そのデータが一時記憶領域５３１，３３３からのデータによって更新される。
【０１１４】
［ステップＳ５９］ＶＬ制御部３２１および障害制御部３２２は、ＶＬ管理テーブル３３１および一時記憶管理テーブル３３２の情報をそれぞれ更新する。ここでは、ＶＬ管理テーブル３３１内の、ディスクアレイ装置４００に移動されたデータに対応するデータステータスが“Ｄｉｒｔｙ”に設定される。さらに、一時記憶管理テーブル３３２から、ディスクアレイ装置４００に移動された一時記憶領域５３１または一時記憶領域３３３のデータに関する情報が削除される。
【０１１５】
［ステップＳ６０］ステップＳ５８においてディスクアレイ装置４００に移動されたデータが、テープライブラリ装置５１０にも書き込まれる。この処理手順は、ステップＳ１７で説明した通りである。なお、このステップＳ６０の処理は、ステップＳ５９の処理終了後の任意のタイミングで行われればよい。
【０１１６】
［ステップＳ６１］ＶＬ制御部３２１は、ステップＳ６０での処理に従い、ＶＬ管理テーブル３３１を更新する。ここでは、テープライブラリ装置５１０に書き込まれたデータに対応するデータステータスが“Ｈｉｔ”に設定される。
【０１１７】
以上の図１１に示した処理により、デバイスプロセッサ５００の一時記憶領域５３１に格納されたデータが、ディスクアレイ装置４００またはテープライブラリ装置５１０に移動され、仮想ライブラリの運用が通常状態に復帰される。この処理では、ディスクアレイ装置４００が障害から復帰すると、一時記憶領域に格納されたデータは、基本的に、ディスクアレイ装置４００に移動された後、テープライブラリ装置５１０にも書き込まれる（ステップＳ５８〜Ｓ６１）。
【０１１８】
また、ディスクアレイ装置４００が障害から復帰する前に一時記憶領域のデータがテープライブラリ装置５１０に移動される事態が発生した場合には、そのデータをディスクアレイ装置４００に書き込まないようにして、処理速度の低下を防止している。図１１の例では、ディスクアレイ装置４００が障害から復帰する前に一時記憶領域のデータがテープライブラリ装置５１０に移動されるケースとして、一時記憶領域が設けられた制御プロセッサの残容量が低下した場合を想定している。
【０１１９】
なお、図示しないが、ディスクアレイ装置４００が障害から復帰したとき、ＶＬ制御プロセッサの一時記憶領域３３３にデータが格納されている場合には、このデータは障害制御部３２２の処理により、ディスクアレイ装置４００に移動されればよい。また、一時記憶領域３３３へのデータ格納後に、ＶＬ制御プロセッサ３００の記憶装置の残容量が低下した場合には、例えば、一時記憶領域３３３のデータがテープライブラリ装置５１０に移動されればよい。この場合、ＶＬ管理テーブル３３１では、移動されたデータに対応するデータステータスが“Ｍｉｓｓ”に設定され、一時記憶管理テーブル３３２から、移動されたデータに対応する登録情報が削除される。
【０１２０】
以上の図１０および図１１に示した処理により、ディスクアレイ装置４００に障害が発生した場合でも、ホスト装置１００から書き込みを要求されたデータが消失することなく、仮想ライブラリの運用が続行される。また、書き込みデータは、システム内の既存の記憶領域に一時的に保持されるので、その保持のための専用の記憶装置を新たに用意する必要はなく、製造コストや装置の設置スペースなどが増大することがない。従って、低コストで信頼性の高いシステムを構築することができる。
【０１２１】
次に、図１２および図１３を用いて、ディスクアレイ装置４００における障害発生時に、ホスト装置１００から読み出しが要求された場合の処理について説明する。
［ステップＳ７１］障害制御部３２２は、一時記憶管理テーブル３３２を基にデータが格納済みの一時記憶領域を探索し、読み出しを要求されたデータが一時記憶領域に格納されているか否かを判定する。ここでは、チャネルプロセッサ２００の一時記憶領域２３１またはＶＬ制御プロセッサ３００の一時記憶領域３３３に、データが格納されているか否かが判定される。また、データが格納されていた場合、そのデータは、ステップＳ７１の処理以前にホスト装置１００から読み出しが要求されて、テープライブラリ装置５１０から読み出されたものである。なお、ＶＬ制御プロセッサ３００では、一時記憶領域３３３に格納されたデータが、読み出しを要求されたデータか、あるいは書き込みを要求されたデータかを識別できるようにしておく必要がある。
【０１２２】
一時記憶領域にデータが格納されていた場合には、ステップＳ７２の処理が実行され、格納されていなかった場合には、ステップＳ７３の処理が実行される。
［ステップＳ７２］一時記憶領域に格納されていたデータが、ホスト装置１００に転送される。
【０１２３】
例えば、チャネルプロセッサ２００の一時記憶領域２３１にデータが格納されていた場合、障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２に対して、一時記憶領域２３１からそのデータを読み出してホスト装置１００に転送するように要求する。一時記憶処理部２２２は、読み出しを要求されたデータを一時記憶領域２３１から読み出してホストインタフェース処理部２２１に受け渡し、ホスト装置１００へ送信させる。また、ホスト装置１００へのデータ送信が終了すると、一時記憶処理部２２２は、障害制御部３２２に対してデータ送信の完了通知を送信する。
【０１２４】
また、ＶＬ制御プロセッサ３００の一時記憶領域３３３にデータが格納されていた場合、障害制御部３２２は、一時記憶処理部３２３を通じてそのデータを取得する。そして、取得したデータをチャネルプロセッサ２００の一時記憶処理部２２２に送信し、ホスト装置１００に転送するように要求する。これにより、上記と同様に、データがホストインタフェース処理部２２１からホスト装置１００に送信され、障害制御部３２２にはデータ送信の完了通知が送信される。
【０１２５】
この後、ステップＳ８２の処理が実行される。
［ステップＳ７３］障害制御部３２２は、読み出しを要求されたデータに対応するテープライブラリ装置５１０上のデータが最新のものであるか否かを、ＶＬ制御部３２１に問い合わせる。ＶＬ制御部３２１は、ＶＬ管理テーブル３３１を参照する。そして、読み出しを要求されたデータに対応するデータステータスが“Ｈｉｔ”または“Ｍｉｓｓ”であった場合は、テープライブラリ装置５１０上のデータが最新であると判定し、判定結果を一時記憶処理部３２３に通知する。一方、読み出しを要求されたデータに対応するデータステータスが“Ｄｉｒｔｙ”であった場合は、テープライブラリ装置５１０上のデータが最新でないと判定して、判定結果を一時記憶処理部３２３に通知する。
【０１２６】
テープライブラリ装置５１０上のデータが最新であると判定された場合には、ステップＳ７５の処理が実行され、最新でないと判定された場合には、ステップＳ７４の処理が実行される。
【０１２７】
［ステップＳ７４］障害制御部３２２は、ＶＬ制御部３２１を通じて、チャネルプロセッサ２００のホストインタフェース処理部２２１に対してエラー発生を通知する。ホストインタフェース処理部２２１は、データ読み出しのエラーが発生したことをホスト装置１００に報告する。
【０１２８】
［ステップＳ７５］障害制御部３２２は、読み出しを要求されたデータの物理ボリュームをＶＬ制御部３２１から取得する。そして、取得した物理ボリュームをデバイスプロセッサ５００のテープインタフェース処理部５２１に送信して、送信した物理ボリュームに対応するテープカセットを準備させる。テープライブラリ装置５１０は、テープライブラリ装置５１０を制御して、障害制御部３２２から受信した物理ボリュームに対応するテープカセットをテープデッキ部にマウントさせる。このとき、例えば、読み出すデータの頭出しが行われるなど、データ読み出しが即座に実行可能な状態にしておくことが望ましい。
【０１２９】
［ステップＳ７６］障害制御部３２２は、チャネルプロセッサ２００の一時記憶領域２３１に空き領域があるか否かを、チャネルプロセッサ２００の一時記憶処理部２２２に問い合わせる。一時記憶領域２３１に空き領域がある場合には、ステップＳ８０の処理が実行され、空き領域がない場合には、ステップＳ７７の処理が実行される。
【０１３０】
なお、ステップＳ７５の処理とステップＳ７６の処理は、例えば並列に実行させてもよい。
［ステップＳ７７］障害制御部３２２は、ＶＬ制御プロセッサ３００内の一時記憶領域３３３に空き領域があるか否かを、一時記憶処理部３２３に問い合わせる。一時記憶領域３３３に空き領域がある場合には、ステップＳ７９の処理が実行され、空き領域がない場合には、ステップＳ７８の処理が実行される。
【０１３１】
［ステップＳ７８］障害制御部３２２は、一時記憶管理テーブル３３２を参照し、一時記憶領域３３３にデータがすでに格納されていた場合には、それらのデータのうち最も古いデータを削除するように一時記憶処理部３２３に要求する。これにより、ＶＬ制御プロセッサ３００に空き領域が生成される。このとき、障害制御部３２２は、一時記憶管理テーブル３３２から、一時記憶領域３３３から削除したデータに関する情報を削除する。
【０１３２】
［ステップＳ７９］障害制御部３２２は、一時記憶管理テーブル３３２を参照し、チャネルプロセッサ２００の一時記憶領域２３１にデータが格納されていた場合には、このデータをＶＬ制御プロセッサ３００の一時記憶領域３３３に移動させる。障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２を通じて一時記憶領域２３１からのデータを取得し、一時記憶処理部３２３を通じて一時記憶領域３３３に格納する。このとき、障害制御部３２２は、一時記憶管理テーブル３３２の対応するアドレスおよび記憶領域種別を更新する。
【０１３３】
［ステップＳ８０］読み出しを要求されたデータが、テープライブラリ装置５１０から、チャネルプロセッサ２００の一時記憶領域２３１に転送される。この処理では、例えば、障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２に対して、テープライブラリ装置５１０からデータを読み出すように要求する。一時記憶処理部２２２は、デバイスプロセッサ５００のテープインタフェース処理部５２１を通じてデータを取得し、一時記憶領域２３１に格納する。障害制御部３２２は、一時記憶領域２３１へのデータ格納処理が終了したことを検知すると、一時記憶管理テーブル３３２の対応するアドレスおよび記憶領域種別を更新する。
【０１３４】
なお、ステップＳ７５の処理により、テープライブラリ装置５１０では、データが格納されたテープカセットがすでに準備されている。このため、テープカセットに格納されたデータは比較的短時間に読み出されて、チャネルプロセッサ２００に転送される。
【０１３５】
［ステップＳ８１］チャネルプロセッサ２００の一時記憶領域２３１に格納されていたデータが、ホスト装置１００に転送される。この処理では、障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２に対して、一時記憶領域２３１に格納されていたデータを一時記憶領域２３１から読み出してホスト装置１００に転送するように要求する。一時記憶処理部２２２は、一時記憶領域２３１から対応するデータを読み出してホストインタフェース処理部２２１に受け渡し、ホスト装置１００へ送信させる。また、ホスト装置１００へのデータ送信が終了すると、一時記憶処理部２２２は、障害制御部３２２に対してデータ送信の完了通知を送信する。
【０１３６】
［ステップＳ８２］障害制御部３２２は、チャネルプロセッサ２００の一時記憶処理部２２２からデータ送信の完了通知を受けると、ＶＬ制御部３２１を通じて、チャネルプロセッサ２００のホストインタフェース処理部２２１に対して、処理完了通知を送信する。ホストインタフェース処理部２２１は、ホスト装置１００に対して書き込み処理が完了したことを報告する。
【０１３７】
図１２および図１３に示した処理では、ディスクアレイ装置４００の障害発生時にホスト装置１００から読み出し要求を受けると、テープライブラリ装置５１０からデータが読み出されて、ホスト装置１００に送信される。このとき、テープライブラリ装置５１０から読み出されたデータは一旦一時記憶領域に格納された後（ステップＳ８０）、この一時記憶領域からホスト装置１００に対して送信される（ステップＳ８１）。
【０１３８】
さらに、データが格納された一時記憶領域は、ディスクアレイ装置４００が障害から復旧するまでの間、一次ストレージとして使用される。すなわち、一時記憶領域に格納されたものと同じデータの読み出しがホスト装置１００から要求されると、そのデータが一時記憶領域から読み出されて、ホスト装置１００に送信される（ステップＳ７２）。ここで、テープライブラリ装置５１０から読み出されたデータは、チャネルプロセッサ２００内の一時記憶領域２３１に優先的に格納される。これにより、テープライブラリ装置５１０からのデータが一時記憶領域に格納された後、同じデータの読み出しがホスト装置１００から再度要求されて、一時記憶領域が一次ストレージとして使用されたときに、データを短時間でホスト装置１００に返信できるようになる。
【０１３９】
以上のような読み出し要求時の処理により、ディスクアレイ装置４００に障害が発生した場合でも、要求されたデータを確実にホスト装置１００に送信することができ、仮想ライブラリの運用が続行される。また、読み出しデータは、システム内の既存の記憶領域に一時的に保持されるので、その保持のための専用の記憶装置を新たに用意する必要はなく、製造コストや装置の設置スペースなどが増大することがない。従って、低コストで信頼性の高いシステムを構築することができる。
【０１４０】
なお、第２の実施の形態において、例えば、チャネルプロセッサ２００が備える機能とＶＬ制御プロセッサ３００が備える機能とを、１つの装置において実現してもよい。この場合、図６の一時記憶処理部２２２および一時記憶領域２３１は不要となり、一時記憶領域２３１は一時記憶領域３３３によって実現されればよい。すなわち、ディスクアレイ装置４００の障害発生時にデータの読み出しが要求された場合には、テープライブラリ装置５１０から読み出されたデータは一時記憶領域３３３に格納されればよい。
【０１４１】
また、ＶＬ制御プロセッサ３００およびチャネルプロセッサ２００の機能を、ホスト装置１００に搭載させてもよい。この場合、ホスト装置１００自体が、仮想ライブラリを管理することが可能になる。
【０１４２】
さらに、例えば、デバイスプロセッサ５００が備える機能とＶＬ制御プロセッサ３００が備える機能とを、１つの装置において実現してもよい。この場合、図６の一時記憶処理部５２２および一時記憶領域５３１は不要となり、一時記憶領域５３１は一時記憶領域３３３によって実現されればよい。すなわち、ディスクアレイ装置４００の障害発生時にデータの書き込みが要求された場合には、書き込みデータは一時記憶領域３３３に格納されればよい。
【０１４３】
また、チャネルプロセッサ２００、ＶＬ制御プロセッサ３００およびデバイスプロセッサ５００の各機能を、１つの装置において実現してもよい。ここで、このような場合の構成例を、第３の実施の形態として説明する。
【０１４４】
図１４は、第３の実施の形態に係るストレージ制御装置の機能を示す図である。なお、図１４では、図６に対応する構成要素には同じ符号を付して示し、その説明を省略する。
図１４に示すストレージ制御装置７００は、ホストインタフェース処理部２２１ａ、ＶＬ制御部３２１ａ、障害制御部３２２ａ、一時記憶処理部３２３およびテープインタフェース処理部５２１ａを備えている。なお、ストレージ制御装置７００は、例えば、図３に示した構成のコンピュータとして実現可能である。この場合、上記各機能は、ＣＰＵにより所定のプログラムを実行することで実現可能である。
【０１４５】
ホストインタフェース処理部２２１ａは、ＶＬ制御部３２１ａおよびテープインタフェース処理部５２１ａに対して装置内部の接続経路を介して接続していること、図６の一時記憶処理部２２２との処理を行わないことを除き、図６のホストインタフェース処理部２２１とほぼ同様の機能を有する。
【０１４６】
ＶＬ制御部３２１ａは、ホストインタフェース処理部２２１ａに対して装置内部の接続経路を介して接続していることを除き、図６のＶＬ制御部３２１とほぼ同様の機能を有する。また、参照するＶＬ管理テーブル３３１の内容は、図６に示したものと同じでよい。すなわち、ＶＬ制御部３２１ａは、ディスクアレイ装置４００を一次ストレージとし、テープライブラリ装置５１０を二次ストレージとして利用した仮想ライブラリの基本的なデータ転送動作を制御する。
【０１４７】
障害制御部３２２ａの基本的な機能は、図６の障害制御部３２２と同様である。すなわち、障害制御部３２２ａは、ディスクアレイ装置４００に障害が発生したときに、ホスト装置１００からデータの書き込み要求および読み出し要求が出力された場合に、装置内部の一時記憶領域を一次ストレージとして利用することで、仮想ライブラリの運用を継続させる。
【０１４８】
ただし、図６の障害制御部３２２と異なる点は、書き込みが要求された場合でも、読み出しが要求された場合でも、ストレージ制御装置７００に接続された記憶装置（例えばＨＤＤ）に設定した一時記憶領域３３３に対して、データを格納することである。例えば、障害制御部３２２ａは、ディスクアレイ装置４００の障害発生時にデータの書き込みが要求された場合には、書き込みデータを一時記憶領域３３３に格納させる。また、ディスクアレイ装置４００の障害発生時にデータの読み出しが要求された場合には、テープライブラリ装置５１０から読み出されたデータを一時記憶領域３３３に格納させる。なお、一時記憶管理テーブル３３２ａには、図８に示した記憶領域種別を記録する必要はなくなる。
【０１４９】
テープインタフェース処理部５２１ａは、ホストインタフェース処理部２２１ａ、ＶＬ制御部３２１ａおよび障害制御部３２２ａに対して装置内部の接続経路を介して接続していること、図６の一時記憶処理部５２２との処理を行わないことを除き、図６のテープインタフェース処理部５２１とほぼ同様の機能を有する。
【０１５０】
このようなストレージ制御装置７００によれば、ディスクアレイ装置４００に障害が発生した場合でも、一時記憶領域３３３を一次ストレージとして利用することで、仮想ライブラリの運用を継続することができる。
【０１５１】
なお、このストレージ制御装置７００が備える機能を、ホスト装置１００に搭載させてもよい。
ところで、上記のストレージシステムに設けられた各装置が有する機能や、ストレージ制御装置が有する機能の少なくとも一部は、コンピュータによって実現することができる。その場合には、上記機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【０１５２】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
【０１５３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１５４】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するストレージ制御装置において、
前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御する第１の読み出し制御部と、
読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する第２の読み出し制御部と、
を有することを特徴とするストレージ制御装置。
【０１５５】
（付記２）  前記データ記録判定部が、前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置を通じて前記読み出し要求を受け付ける場合、前記一時記憶領域は、前記要求受け付け装置に個別に接続された記憶装置内に設定されることを特徴とする付記１記載のストレージ制御装置。
【０１５６】
（付記３）  前記第２の読み出し制御部は、前記要求受け付け装置の前記一時記憶領域の空き容量が不足していた場合、当該一時記憶領域に記憶されていたデータを、当該ストレージ制御装置に個別に接続された記憶装置内に設定された前記一時記憶領域に移動させた後、前記二次ストレージから読み出したデータを前記要求受け付け装置の前記一時記憶領域に格納するように制御することを特徴とする付記２記載のストレージ制御装置。
【０１５７】
（付記４）  前記データ記録判定部は、読み出しを要求されたデータが、前記要求受け付け装置の前記一時記憶領域または当該ストレージ制御装置の前記一時記憶領域に記憶されているかを判定し、
前記第１の読み出し制御部は、読み出しを要求されたデータを、前記要求受け付け装置の前記一時記憶領域または当該ストレージ制御装置の前記一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する、
ことを特徴とする付記３記載のストレージ制御装置。
【０１５８】
（付記５）  前記二次ストレージに対するデータの書き込み要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御する書き込み制御部と、
前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる復帰制御部と、
をさらに有することを特徴とする付記１記載のストレージ制御装置。
【０１５９】
（付記６）  前記一時記憶領域は、前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置に個別に接続された、前記二次ストレージ以外の記憶装置内に設定されることを特徴とする付記５記載のストレージ制御装置。
【０１６０】
（付記７）  前記書き込み制御部は、前記インタフェース装置の前記一時記憶領域の空き容量が不足していた場合、当該一時記憶領域に記憶されていたデータを、当該ストレージ制御装置に個別に接続された記憶装置内に設定された前記一時記憶領域に移動させた後、書き込みを要求されたデータを前記インタフェース装置の前記一時記憶領域に格納するように制御することを特徴とする付記６記載のストレージ制御装置。
【０１６１】
（付記８）  前記一次ストレージとの通信が再開される前に、前記一時記憶領域に格納された、書き込みが要求されたデータを、前記二次ストレージに移動させる移動制御部と、
前記移動制御部により移動されたデータにより前記二次ストレージ上のデータが更新され、なおかつ、その更新前のデータが前記一次ストレージに記憶されている場合に、前記一次ストレージとの通信が再開されたとき、前記一次ストレージに記憶されていた更新前のデータを削除する削除制御部と、
をさらに有することを特徴とする付記５記載のストレージ制御装置。
【０１６２】
（付記９）  一次ストレージと、
二次ストレージと、
前記一次ストレージと前記二次ストレージとを階層型ストレージシステムとして動作させるストレージ制御装置と、
前記一次ストレージを介した前記二次ストレージへのアクセス要求を受け付ける要求受け付け装置と、
を有し、
前記ストレージ制御装置は、
前記二次ストレージに記録されたデータの読み出し要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記要求受け付け装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定するデータ記録判定部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていた場合に、当該データを当該一時記憶領域から読み出して、前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第１の読み出し制御部と、
読み出しを要求されたデータが前記要求受け付け装置の一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記要求受け付け装置の一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として前記要求受け付け装置が出力するように制御する第２の読み出し制御部と、
を有することを特徴とするストレージシステム。
【０１６３】
（付記１０）  前記二次ストレージにアクセスするためのインタフェース機能を提供するインタフェース装置をさらに有し、
前記ストレージ制御装置は、
前記二次ストレージに対するデータの書き込み要求を前記要求受け付け装置が受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、書き込みを要求されたデータを前記一時記憶領域に格納するように制御する書き込み制御部と、
前記一次ストレージとの通信が再開された場合に、前記一時記憶領域に格納された、書き込みを要求されたデータを、前記一次ストレージに移動させ、その後、当該データを前記二次ストレージにも記憶させる復帰制御部と、
をさらに有することを特徴とする付記９記載のストレージシステム。
【０１６４】
（付記１１）  一次ストレージと二次ストレージとを備える階層型ストレージシステムの動作を制御するためのストレージ制御方法において、
データ記録判定手段が、前記二次ストレージに記録されたデータの読み出し要求を受け付けたとき、前記一次ストレージとの通信が不可能であった場合に、前記階層型ストレージシステムが備える情報処理装置のうち前記一次ストレージおよび前記二次ストレージを除く情報処理装置に個別に接続された記憶装置内に設定された一時記憶領域に、読み出しを要求されたデータが記憶されているか否かを判定し、
第１の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていた場合に、当該データを前記一時記憶領域から読み出して、前記読み出し要求に対する応答として出力するように制御し、
第２の読み出し制御手段が、読み出しを要求されたデータが前記一時記憶領域に記憶されていなかった場合に、当該データを前記二次ストレージから読み出して前記一時記憶領域に格納するとともに、当該データを前記読み出し要求に対する応答として出力するように制御する、
ことを特徴とするストレージ制御方法。
【符号の説明】
【０１６５】
１  一次ストレージ
２  二次ストレージ
１０  ストレージ制御装置
１１  通信可否判定部
１２  データ記録判定部
１３  読み出し制御部
１４  書き込み制御部
１５  復帰制御部
２０  要求受け付け装置
２１，３１  一時記憶領域
３０  インタフェース装置
【図１】
2010282324.tif 000003
【図２】
2010282324.tif 000004
【図３】
2010282324.tif 000005
【図４】
2010282324.tif 000006
【図５】
2010282324.tif 000007
【図６】
2010282324.tif 000008
【図７】
2010282324.tif 000009
【図８】
2010282324.tif 000010
【図９】
2010282324.tif 000011
【図１０】
2010282324.tif 000012
【図１１】
2010282324.tif 000013
【図１２】
2010282324.tif 000014
【図１３】
2010282324.tif 000015
【図１４】
2010282324.tif 000016