(57)【要約】【課題】ストレージサブシステムのキャッシュメモリに外部ストレージの記憶領域に転送されずに残存するデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、ストレージサブシステムのＩＯの処理性能を良好に維持可能なストレージシステムを提供する。【解決手段】外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として提供するストレージシステムにおいて、外部ボリュームに転送されないでストレージサブシステムのキャッシュメモリに残っているダーティデータを退避するボリュームを備え、キャッシュメモリが圧迫される状態を判定して、ダーティデータを退避ボリュームに退避させることよってキャッシュメモリの過負荷を解消する。【選択図】図１
2009295045.tif 000002
【特許請求の範囲】
【請求項１】
上位計算機がアクセスする第１のボリュームと、
前記第１のボリュームにマッピングされた第２のボリュームと、
前記第１のボリュームに対して前記上位計算機から発行されたライトデータを一時記憶するキャッシュメモリと、
前記キャッシュメモリのライトデータの退避用としての第３のボリュームと、
前記ライトデータの転送を制御するコントローラと、
前記キャッシュメモリのライトデータを前記第３のボリュームに転送するか否かを決する規則を記憶した管理メモリと、
を備え、
前記コントローラは、前記管理メモリに記憶された前記規則に基づいて、前記第２のボリュームへ転送されないで前記キャッシュメモリに残っている前記ライトデータを、前記転送規則に基づいて、前記第３のボリュームに転送するか否かを制御する、ストレージシステム。
【請求項２】
前記コントローラは、前記キャッシュメモリから前記第２のボリュームへの前記ライトデータの転送が前記規則に合致する状態であれば、当該ライトデータを前記キャッシュメモリから前記第３のボリュームに転送し、前記規則に合致しない状態であれば、前記ライトデータを前記キャッシュメモリから前記第２のボリュームに転送する、請求項１記載のストレージシステム。
【請求項３】
前記第１のボリュームは、前記上位計算機が認識可能ではあるが、記憶領域を有しない仮想領域であり、
前記第２のボリュームは、前記キャッシュメモリの前記ライトデータを格納可能な領域を備え、
前記第３のボリュームは前記ライトデータを記憶する領域を備える、
請求項１記載のストレージシステム。
【請求項４】
前記第１のボリュームと、前記キャッシュメモリと、前記管理メモリと、前記コントローラと、を有する主ストレージサブシステムと、
前記第２のボリュームを有する外部ストレージサブシステムと、
を備え、
前記コントローラは、前記上位装置から前記第１のボリュームに対して発行された前記ライトデータを、前記キャッシュメモリを介して前記第２のボリュームに転送し、
前記第３のボリュームは、前記主ストレージサブシステム及び前記外部ストレージサブシステムの少なくとも一方に存在する、請求項１記載のストレージシステム。
【請求項５】
前記規則は前記第２のボリュームの過負荷状態であり、前記コントローラは当該第２のボリュームが当該規則に一致したことを判定すると、前記第２のボリュームに転送されないで前記キャッシュメモリに残っている前記ライトデータを前記第２のボリュームではなく前記第３のボリュームに転送する、請求項１記載のストレージシステム。
【請求項６】
前記第１のボリュームと、前記キャッシュメモリと、前記管理メモリと、前記コントローラと、を有する主ストレージサブシステムと、
前記第２のボリュームを有する外部ストレージサブシステムと、
を備え、
前記コントローラは、前記上位装置から前記第１のボリュームに対して発行された前記ライトデータを、前記キャッシュメモリを介して前記第２のボリュームに転送し、
前記第３のボリュームは、前記外部ストレージサブシステムに存在し、
前記規則は、前記第２のボリュームと前記第３のボリュームとを接続する前記主ストレージサブシステムと前記外部ストレージサブシステム間の複数のパスの少なくともと１つに生じた障害であり、
前記コントローラは前記障害を判定すると、前記ライトデータを前記キャッシュメモリから前記第２のボリュームではなく前記第３のボリュームに転送する、請求項１記載のストレージシステム。
【請求項７】
前記第２のボリュームが複数存在し、
前記規則が、複数ある前記第２のボリュームのそれぞれ毎に決定される、請求項１記載のストレージシステム。
【請求項８】
前記外部ストレージサブシステムが複数存在し、
前記複数の外部ストレージサブシステムのそれぞれは、１つ又は複数の前記第２のボリュームを備え、
さらに、前記規則を前記複数の外部ストレージサブシステムのそれぞれごとに一括して設定する管理装置を備える、請求項４記載のストレージサブシステム。
【請求項９】
前記外部ストレージサブシステムが複数存在し、
前記複数の外部ストレージサブシステムのそれぞれは、１つ又は複数の前記第２のボリュームを備え、
前記複数の外部ストレージサブシステムが性能に応じて複数のグループに分けられ、
前記規則を前記複数のグループ毎に一括して設定する管理装置を備える、請求項４記載のストレージシステム。
【請求項１０】
前記複数のパスがシングルパスモードに設定されている場合、前記コントローラは、前記障害として、前記複数のパスのうち優先度が高いパスの切断を判定すると、前記ライトデータを前記キャッシュメモリから前記第３のボリュームに退避させる、請求項６記載のストレージシステム。
【請求項１１】
前記複数のパスがマルチモードに設定されており、前記コントローラは、前記障害として、前記複数のパスの少なくとも１つが切断され、残りのパス数が閾値より小さいことを判定すると、前記ライトデータを前記キャッシュメモリから前記第３のボリュームに退避させる、請求項６記載のストレージシステム。
【請求項１２】
前記コントローラは、前記第２ボリュームへ転送されることなく前記キャッシュメモリに存在するライトデータが使用する当該キャッシュメモリ容量が閾値を越えることを前記規則に合致する状態であると判定して、当該ライトデータを前記第３のボリュームに退避させる、請求項２記載のストレージシステム。
【請求項１３】
上位計算機に記憶領域を提供するストレージサブシステムであって、
前記上位計算機がアクセスする仮想領域と、
前記仮想領域に対して前記上位計算機から発行されたライトデータを一時記憶する第１の記憶領域と、
前記仮想領域に外部ストレージの第２の記憶領域をマッピングする情報を記憶する第１のメモリと、
前記ライトデータを、前記マッピング情報に基づいて、前記第１の記憶領域から前記第２の記憶領域に転送する第１のコントローラと、
前記第１の記憶領域に一時記憶された前記ライトデータを前記第１の記憶流域から退避させる条件を判定し、当該条件の成立を判定した際、第３の記憶領域を確保し、前記第１の記憶領域に一時記憶されている前記ライトデータを前記第３の記憶領域に転送する第２のコントローラと、
前記第１の記憶領域からの前記ライトデータのデステージ先が、前記第２の記憶領域か前記第３の記憶領域過の情報を記録した第２のメモリと、
を備える、ストレージサブシステム。
【請求項１４】
ストレージサブシステムが、
上位装置に仮想記憶領域を見せるステップと、
当該上位装置から前記仮想記憶領域に発行されたデータを受信するステップと、
前記ライトデータをキャッシュメモリに一時記憶するステップと、
前記キャッシュメモリに記憶された前記ライトデータを前記仮想記憶領域にマッピングされた外部実記憶領域に転送するステップと、
前記ライトデータを前記キャッシュメモリから退避させる条件を判定するステップと、
前記条件を肯定して前記キャッシュメモリに記憶された前記ライトデータを退避させる退避先を確保するステップと、
を実施する、記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに係わり、詳しくは、ストレージサブシステムに外部ストレージが接続されているストレージシステムに関するものである。
【背景技術】
【０００２】
データ量やトラフィック量の増加によって急変するシステム環境に対応するために、仮想化機能を搭載したストレージサブシステムが知られている。ストレージサブシステムに外部ストレージを接続すると、この仮想化機能によって、ストレージサブシステムは、自身が備える記憶領域と外部ストレージが持つ記憶領域とを一つのストレージプールとして仮想化してユーザに提供することができる。
【０００３】
この種のストレージサブシステムを備える従来技術として、例えば、米国特許７１１１３８号公報に記載のものが存在する。この公報に記載されたストレージシステムは、第１のストレージサブシステムに第２のストレージサブシステムが外部接続されるものであり、詳しくは、第１のストレージサブシステムは、第２のストレージシステムの実ボリュームがマッピングされる仮想ボリュームを備えている。ホスト装置から仮想ボリュームに対して発行されたライトデータは、第１のストレージサブシステムから第２のストレージサブシステムに転送されて仮想ボリュームにマッピングされた実ボリュームに保存される。
【特許文献１】米国特許７１１１３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
既述のストレージシステムでは、外部ストレージに対するライト処理が高頻度で発生するなど外部ストレージが過負荷状態になったり、あるいは外部ストレージの保守や外部ストレージへのパス障害など、ストレージサブシステムと外部ストレージとの間で通信障害が生じると、ストレージサブシステムのキャッシュメモリに外部ストレージに転送されないデータが蓄積し、キャッシュメモリの過負荷状態を招いてホスト装置からストレージサブシステムへのＩＯの処理性能が低下してしまうという問題があった。
【０００５】
そこで、本発明は、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として上位装置に提供するストレージシステムにおいて、ストレージサブシステムのキャッシュメモリに前記外部ストレージの記憶領域に転送されないデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、以って、ストレージサブシステムのＩＯの処理性能を良好に維持可能なストレージシステムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
この目的を達成するために、本発明は、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として提供するストレージシステムにおいて、外部ボリュームに転送されないでストレージサブシステムのキャッシュメモリに残っているダーティデータを退避するボリュームを備え、キャッシュメモリが圧迫される状態を判定して、ダーティデータを退避ボリュームに退避させることよってキャッシュメモリの過負荷を解消することを特徴とするものである。
【発明の効果】
【０００７】
以上説明したように、本発明によれば、外部ストレージがストレージサブシステムに接続され、ストレージサブシステムが外部ストレージの記憶領域を自己の記憶領域として上位装置に提供するストレージシステムにおいて、ストレージサブシステムのキャッシュメモリに前記外部ストレージの記憶領域に転送されないデータが蓄積されてキャッシュメモリを圧迫することを防ぎ、以って、ストレージサブシステムのＩＯの処理性能を良好に維持可能なストレージシステムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
次に、本発明の実施形態を図面に基づいて説明する。図１は、本発明に係わるストレージシステムのブロック図である。このストレージシステムは、ホスト装置１０に接続する主ストレージサブシステム２０に、外部ストレージサブシステム（４０Ａ・・・・４０Ｎ）が外部接続されているシステムである。
【０００９】
外部接続とは、主ストレージサブシステムが外部ストレージを自己の記憶領域であるようにホスト装置に見せる方式をいう。すなわち、主ストレージサブシステム２０は、仮想ボリューム３２をホスト装置１０に提供し、そして、仮想ボリューム３２に外部ストレージサブシステム４０Ａの論理ボリューム４２Ａをマッピングしている。したがって、主ストレージサブシステム２０は、ホスト装置１０に対して、第１の外部ストレージサブシステムの記憶領域４２Ａをあたかも自分の記憶領域であるかのようにして振舞う。
【００１０】
上位装置としてのホスト装置１０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。
【００１１】
ホスト装置１０は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置と、モニタディスプレイやスピーカー等の情報出力装置とを備えている。
【００１２】
さらに、ホスト装置１０は、例えば、主ストレージサブシステム２０が提供する記憶領域（３１,３２）を使用するデータベースソフトウェア等のアプリケーションプログラム１１と、スイッチ回路ＳＷを備えて構成される通信ネットワークＣＮ１を介して主ストレージサブシステム２０にアクセスするためのアダプタ１２とを備えている。
【００１３】
通信ネットワークＣＮ１は、例えば、ＬＡＮ、ＳＡＮ、インターネット、専用回線、公衆回線等である。ＬＡＮを介するデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ホスト装置１０がＬＡＮを介して第１の記憶制御装置２０に接続される場合、ホスト装置１０は、ファイル名を指定してファイル単位でのデータ入出力を主ストレージサブシステム２０に対して要求する。
【００１４】
一方、ホスト装置１０がＳＡＮを介して主ストレージサブシステム２０に接続する場合、ホスト装置１０は、ファイバチャネルプロトコルに従って、複数の記憶デバイスにより提供される記憶領域のデータ管理単位であるブロックを単位としてデータ入出力を要求する。
【００１５】
通信ネットワークＣＮ１がＬＡＮである場合、アダプタ１２はＬＡＮ対応のネットワークカードである。通信ネットワークＣＮ１がＳＡＮの場合、アダプタ１２は、例えばホストバスアダプタである。
【００１６】
スイッチ回路ＳＷは通信ネットワークに接続されたルータや交換機から構成される。スイッチ回路ＳＷは、チャネルアダプタ２１のポート２１−１とホスト装置１０のＨＢＡ１２とを接続し、チャネルアダプタのポート２１Ａのポート２１−１と第１の外部ストレージサブシステム４０Ａのポート４１とを接続し、・・・・、チャネルアダプタ２１Ｎのポート２１−１とＮ番目の外部ストレージサブシステム４０Ｎのポート４１とを接続する。
【００１７】
外部ストレージサブシステムはこのように複数存在し、それぞれがボリューム４２（４２Ａ・・・４２Ｎ）を備えている。これらボリュームは主ストレージサブシステム２０から見ると外部に存在するために以後外部ボリュームと称して、主ストレージサブシステム２０が有する内部ボリューム３１と区別する。
【００１８】
主ストレージサブシステム２０は、例えば、ディスクアレイサブシステムとして構成される。外部ストレージサブシステム４０Ａ・・・４０Ｎも同様である。外部ストレージサブシステムは主ストレージサブシステムと同様な構成要素を備えているものとする。
【００１９】
なお、ホスト装置１０はチャネルアダプタ２１のターゲットポートに接続される。外部ストレージサブシステムが接続されるチャネルアダプタ２１Ａ・・・２１Ｎのポートはエクスターナルポート或いはイニシエータポートである。外部ストレージサブシステムのターゲットポートが通信ネットワークＣＮ１と接続される。
【００２０】
主ストレージサブシステム２０は、コントローラ部１と、記憶装置部３０とに大別することができ、コントローラ部１は、既述の複数のチャネルアダプタ（ＣＨＡ）２１・・・２１Ｎと、複数のディスクアダプタ（ＤＫＡ）２２ａ・・２２ｎと、サービスプロセッサ（ＳＶＰ）２３と、キャッシュメモリ２４と、共有メモリ２５と、接続部２６とを備えている。
【００２１】
ＣＨＡ２１は、それぞれマイクロプロセッサやローカルメモリ等を備えたマイクロコンピュータシステムとして構成され、ホスト装置１０から受信した各種コマンドを解釈して実行する。ＣＨＡ２１Ａ・・・２１Ｎも同様な構成を備えている。複数の外部ストレージサブシステ４０Ａ・・・４０Ｎがそれぞれ有する外部ボリューム４２Ａ・・・４２Ｎは、仮想ボリューム３２にマッピングされて、ホスト装置１０から仮想ボリューム３２に送られたデータを格納するボリューム、或いはキャッシュメモリ２４に存在するダーティデータを退避するボリュームとして主ストレージサブシステム２０に利用される。
【００２２】
チャネルアダプタ２１・・・２１Ｎのポート２１−１には、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられている。複数のホスト装置が存在する場合、チャネルアダプタはホスト装置毎に設けられている。図１では、ホスト装置１０は一基としている。また、外部ストレージサブシステムのＮ基（４２Ａ・・・４２Ｎ）が主ストレージサブシステム２０に接続している。
【００２３】
チャネルアダプタ２１は、ホスト装置１０からリードコマンドを受信すると、読出しコマンドを共有メモリ２５に記憶する。ディスアダプタ（ＤＫＡ）２２ａ・・・２２ｎは、共有メモリ２５を随時参照しており、未処理の読出しコマンドを発見すると、記憶装置３０の記憶デバイスであるハードディスクドライブ（ＨＤＤ）からデータを読み出して、キャッシュメモリ３４に一時記憶させる。ＣＨＡ２１は、キャッシュメモリ２４にステージングされたデータを読み出し、コマンド発行元のホスト装置１０に送信する。
【００２４】
ＣＨＡ２１が、ホスト装置１０からライトコマンドを受信すると、ＣＨＡは、書込みコマンドを共有メモリ２５に記憶させると共に、受信データをキャッシュメモリ２４に一時記憶して、そしてコマンド発行元のホスト装置１０にデータの書き込みが完了した旨を通知する。
【００２５】
主ストレージサブシステム２０内の実ボリューム３１に対して発行されたライトデータは、ＤＫＡによって内部ボリューム３１の記憶領域にライトコマンドとは非同期にキャッシュメモリ２４から書き込まれる（デステージング）。
【００２６】
仮想ボリューム３２に対して、ホスト装置からライトコマンドに伴って発行されたライトデータは、記憶装置３０に書き込まれること無く、ＣＨＡによって、キャッシュメモリ２４から、４２Ａから４２Ｎまである外部ボリュームのうち目的の外部ボリュームに転送される（デステージング）。
【００２７】
ホスト装置からリードコマンドが仮想ボリューム３２に対して発行された場合は、ＣＨＡは、リード対象のデータを、目的の外部ボリュームからキャッシュメモリ２４に転送する（ステージング）。
【００２８】
ＤＫＡは、記憶装置３０の複数の記憶デバイスとデータの授受を制御する。符号３１は、ハードディスクドライブなどの記憶デバイスの記憶領域に対応する論理ボリュームである。符号３２は仮想ボリュームである。
【００２９】
符号３１の論理ボリュームは、記憶装置３０の実記憶領域が割り当てられたボリュームである。符号３２の仮想ボリュームは、記憶装置３０の実記憶領域が割り当てられていない仮想的なものである。
【００３０】
ホスト装置１０は仮想ボリューム３２を認識して、これにライトコマンド又はリードコマンドを発行する。但し、ライトデータは、仮想ボリューム３２にマッピングされた、目的の外部ボリューム（４２Ａ・・・４２Ｎの１つ又は複数）に対して書き込まれ、リードデータは目的の外部ボリュームからリードされる。
【００３１】
ＤＫＡ２２ａ・・・・２２ｎは、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成されている。ＤＫＡは、ホスト装置からのコマンドに含まれる論理的なアドレスを物理的なアドレスに変換して、記憶デバイスにアクセスする。ＤＫＡは、記憶装置３０の記憶領域がＲＡＩＤに従って管理されている場合は、ＲＡＩＤ構成に応じたデータアクセスを行う。各ＤＫＡにはそれぞれ複数の記憶デバイスが接続している。
【００３２】
各ＤＫＡは記憶デバイスの状態を随時監視しており、この監視結果はＳＶＰ（サービスプロセッサ）２３に送信される。ＳＶＰはポート２３Ａを介して管理クライアント２３Ｂに接続されている。管理クライアントは、例えばＪＡＶＡ（登録商標）アプレット上に管理用プログラムが実装されたパソコンである。管理クライアントは管理者からの入力をＳＶＰに供給する。
【００３３】
ＳＶＰは、主ストレージサブシステム２０のボリューム定義やパス定義などの構成情報をＣＨＡ、ＤＫＡなどに参照させるために、様々な管理テーブルを設定、定義するためのものである。また、ＳＶＰ２３は主ストレージサブシステム２０内の構成要素の障害発生を監視して管理用クライアントに表示する処理を実行する。
【００３４】
さらにまた、ＳＶＰは仮想ボリュームにマッピングされる外部ボリュームを１つ又は複数設定し、これをマッピングテーブルとして設定する。ＳＶＰ２３は、キャッシュメモリ２４からこの外部ボリュームにデステージング処理されずにダーティデータとして蓄積されるデータを退避すべき退避ボリュームを管理テーブルに定義する処理を行う。
【００３５】
図１において、符号３４は主ストレージサブシステム２０内に設定された内部退避ボリュームである。ＳＶＰは外部ボリュームの１つ又は複数を、退避先外部ボリュームとして設定する。なお、仮想ボリュームにマッピングされる外部ボリュームを、退避先外部ボリュームから区別するために、退避元外部ボリュームと呼ぶことにする。様々な管理テーブルは共有メモリ２５に格納される。
【００３６】
複数のＣＨＡ及び複数のＤＫＡは、共有メモリ２５を介して、コマンドや管理テーブルをお互いに参照することができるために、相互に関連或いは連携した処理が可能となる。
【００３７】
接続部２６は、各チャネルアダプタ２１，各ディスクアダプタ２２，ＳＶＰ２３，キャッシュメモリ２４，共有メモリ２５を相互に接続する。接続部２６は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成される。
【００３８】
記憶装置３０を構成する記憶デバイスとしては、主としてハードディスクドライブ（ＨＤＤ）であるが、その他、フラッシュメモリなどの半導体メモリ、磁気テープ、光ディスクなどでもよいのようなデバイスを用いることができる。また、例えば、FC（Fibre Channel）ディスクやSATA（Serial AT Attachment）ディスク等のように、異種類のディスクを記憶装置３０内に混在させることもできる。
【００３９】
なお、主ストレージサブシステム２０にホスト装置１０と外部ストレージサブシステム４０Ａ・・・４０Ｎを直接に接続することもできる。
【００４０】
外部ストレージサブシステム４０Ａ・・・４０Ｎのポート４1には、ユニークな識別情報であるＷＷＮが割り当てられており、外部ストレージサブシステムの論理ボリューム４２Ａ・・・４２Ｎには、ＬＵＮ番号が対応付けられているので、ＷＷＮ及びＬＵＮ番号の組み合せによって、主ストレージサブシステム２０から目的の外部ボリュームへ論理パスを設定することができる。
【００４１】
なお、以後の説明するフローチャートの実行主体を明りょうにする観点から、外部ストレージサブシステム４０Ａと４０Ｂの外部ボリューム４２Ａ，４２Ｂが退避元外部ボリュームであるとし、外部ストレージサブシステム４０Ｎのボリューム４２Ｎが退避先外部ボリュームであるとする。ＣＨＡ２１Ａが外部ストレージサブシステム４０Ａに接続し、ＣＨＡ２１Ｂが外部ストレージサブシステム４０Ｂに接続し、ＣＨＡ２１Ｎが外部ストレージサブシステム４０Ｎに接続している。
【００４２】
図２は、主ストレージサブシステム２０の仮想ボリューム３４に、外部ストレージサブシステム４０Ａの退避元外部ボリューム４２Ａと、外部ストレージサブシステム４０Ｂの退避元外部ボリューム４２Ｂとがそれぞれマッピングされている状態を示すブロック図である。
【００４３】
主ストレージサブシステム２０の仮想ボリューム１'には外部ボリューム４２Ａ（１）がマッピングされ、仮想ボリューム２'には外部ボリューム４２Ａ（２）がマッピングされ、以後同様に、仮想ボリューム３'乃至５'には、外部ボリューム４２Ｂ（３）乃至（５）がそれぞれマッピングされている。この関係は、既述のとおり、ＳＶＰ３２を介して共有メモリ２５にマッピングテーブルとして設定される。
【００４４】
管理クライアント２３Ｂは、ＳＶＰ２３を介して、主ストレージサブシステム２０と外部ストレージサブシステム４０Ａと、そして、外部ストレージサブシステム４０Ｂとの間に論理パスを設定する。パス定義情報は共有メモリ２５に登録される。
【００４５】
図２において、仮想ボリューム１'はポート０とポート１に接続され、ポート０と外部ストレージサブシステムのポート（ＷＷＮ：００）との間にパスＰ１が設定され、ポート１とポート（ＷＷＮ：０１）との間にパスＰ２が設定されている。
【００４６】
さらに、ポート（ＷＷＮ：００）はＬＵＮ０とＬＵＮ１に接続され、ＬＵＮ０は外部ボリューム1に接続され、ＬＵＮ１は外部ボリューム２に接続されている。ポート（ＷＷＮ：０１）はＬＵＮ０とＬＵＮ１に接続され、ＬＵＮ０は外部ボリューム1に接続され、ＬＵＮ１は外部ボリューム２に接続されている。
【００４７】
パスＰ１とパスＰ２とによって、主ストレージサブシステム２０と外部ストレージサブシステム４０Ａとの間に交替パス構造が実現されている。パスＰ３，Ｐ４についても同様である。主ストレージサブシステム２０は、仮想ボリューム１'に対するライトデータを、パスＰ１とパスＰ２のいずれを介しても、目的の外部ボリューム1に転送することができる。仮想ボリューム２'についても同様である。
【００４８】
パスＰ１とパスＰ２とのパスモードはシングルモードである。パスモードとはパスの運用方式であって、シングルパスモードとは、交替パスを設定していても、通常は優先度が高い１つのパスがデータ通信に使用される。外部ストレージサブシステムの保守作業やパスの障害などで優先度が高いパスが制限されると、優先度が低いパスが優先度が高いパスに切り替わってデータ通信に使用される。
【００４９】
仮想ボリューム３'乃至５'については図２に示すとおりである。なお、パスＰ３とＰ４とは、マルチモードで運用される。マルチモードとは、負荷を分散しながら、複数のポートからの複数のパスを同時に使用に使用してデータ通信を行うモードである。パスモードは主ストレージサブシステム２０に接続する外部ストレージサブシステム４０Ａ，４０Ｂの種類によって決まる。
【００５０】
仮想ボリュームと退避元外部ボリューム又は退避先外部ボリュームとの間のデータの転送はキャッシュメモリ２４を介して実行される。
【００５１】
図２では、主ストレージサブシステム２０が転送元外部ボリュームと接続されている様子を示したが、主ストレージサブシステム２０に転送先外部ボリュームを接続する場合も同様である。
【００５２】
図３は外部ボリュームの管理テーブルである。主ストレージサブシステム２０が外部ストレージサブシステム４０Ａ・・・４０ＮにＳＣＳＩ規格のInquiryコマンドを発行する。主ストレージサブシステム２０はこのコマンドに対する応答に基づいて、パスモード、ベンダ名、装置名、装置製番、ＬＤＥＶ番号、ＷＷＮ、ＬＵＮを決定し、これを外部ボリューム番号（＃）毎に管理テーブルに登録する。外部ボリューム管理テーブルは共有メモリ２５に登録される。
【００５３】
管理者は、図３の外部ボリュームから退避元外部ボリュームと退避先外部ボリュームとを設定することができる。退避元外部ボリュームは仮想ボリュームとのマッピングテーブルに登録される。退避先外部ボリュームは退避先ボリュームとして後述の管理テーブルに登録される。なお、図３の管理テーブルは図２のブロック図に合わせて記載されている。
【００５４】
次に、ホスト装置１０から仮想ボリューム３２に対して発行されたデータが、キャッシュメモリ２４を圧迫することについて説明する。これは、次の場合に発生又はその可能性がある。
【００５５】
第１に、外部ストレージサブシステムの退避元外部ボリュームに対するＩＯが高頻度に発生して（退避元外部ボリュームの過負荷状態）、仮想ボリューム３２に対して、ホスト装置１０から発行されたデータがキャッシュメモリ２４にダーティデータとして閾値を越えて蓄積される場合である。なお、退避元外部ボリュームへのＩＯ頻度を測定してその過負荷状態を判定してもよい。
【００５６】
第２に、主ストレージサブシステム２０と外部ストレージサブシステム４０Ａ・・・４０Ｎとの間でパス切れなどのパス障害が生じる場合である。この場合も、仮想ボリューム３２に対して、ホスト装置１０から発行されたデータがキャッシュメモリ２４から退避元外部ボリュームに転送できずにキャッシュメモリ２４にダーティデータとして蓄積される。
【００５７】
第３に、外部ストレージサブシステムの退避元ボリュームに対応するＨＤＤなどの記憶デバイスを閉塞する場合である。
【００５８】
図４に示すように、ＣＨＡのローカルメモリ４００は（必要に応じてＤＫＡのローカルメモリも）、仮想ボリューム３２から退避元外部ボリューム４２Ａ，４２Ｂ（図２参照）に転送されないダーティデータが占有しているキャッシュメモリの容量（キャッシュ使用量）を検出するキャッシュ使用量検出プログラム、主ストレージサブシステムと外部ストレージサブシステムとの間のパス状態検出プログラム、キャッシュメモリと、退避元外部ボリューム又は退避先外部ボリュームとの間でデータの転送を制御するデータ転送制御プログラム、そして、後述のフローチャートを実施するためのその他各種管理プログラムを格納している。
【００５９】
管理クライアント２３Ｂは、ＳＶＰ２３を介して、各退避元外部ボリュームについて、退避元外部ボリュームに退避されることなくキャッシュメモリに残っているダーティデータを退避ボリュームへ退避する条件を設定する。図５は、そのための管理テーブルである。図５において、外部ボリューム♯は、図３の退避元外部ボリューム♯に一致する。
【００６０】
退避元外部ボリュームに対するパス切れの際に、データを退避する場合には、“パス切れ時退避”にその旨を意味するフラグを設定する。“キャッシュメモリ使用量閾値（％）“には、ダーティデータがキャッシュメモリを使用する量として、がキャッシュメモリの何％を占めた場合に、退避を行うか否かの情報が記録される。退避先には退避ボリュームのアドレス、識別情報が登録される。退避ボリュームには、主ストレージサブシステム２０内の内部ボリュームと、外部ストレージサブシステム内の退避先外部ボリュームとがある。
【００６１】
“キャッシュ使用量”には、ダーティデータが占有する、キャッシュメモリの容量である。退避元外部ボリュームに接続するＣＨＡのマイクロプロセッサがキャッシュ使用量を周期的に計算して、退避元外部ボリューム管理テーブル（図５）に登録する。なお、図５の“パス切れ時退避”及び／又は“キャッシュメモリ使用量閾値（％）が退避条件の一例である。その他、ＨＤＤの閉塞、退避元外部ボリュームに対するＩＯ頻度を退避条件に定めることができる。
【００６２】
ダーティデータがキャッシュメモリに蓄積する状態は、退避元外部ボリュームを有する外部装置単位で発生し易い。そこで、複数の退避元外部ボリュームをグループ化して、統一して退避条件を決めるのが好ましい。
【００６３】
図６は、退避元外部ボリュームのグループを定義するためのテーブルであり、管理クライアントに表示される操作画面である。ＳＶＰ２３は共有メモリ２５に存在する図３の外部ボリューム管理テーブルを参照して、グループ定義テーブルを作成し、これを管理クライアントに提供する。図６において、退避元外部ボリューム１と退避元外部ボリューム２とは同一装置のボリュームとして表示されている。退避元外部ボリューム３−５も同一装置のものとして表示されている。
【００６４】
図６において、管理者が、同じ装置の複数のボリュームのチェック欄をクリックすると、ＳＶＰはこの複数のボリュームをグループ化する。
【００６５】
図７は退避元外部ボリュームの複数をグループ化するための、ＳＶＰが実行するフローチャートである。管理クライアントは、図６に示す表示画面に対して、ボリューム１と２を第１のグループとし、ボリューム３−５を第２のグループとする入力を実行する。ＳＶＰはこの入力情報に基づいて、グループ♯を決定する(図７のステップ７００)。
【００６６】
ＳＶＰは、図８に係る退避元外部ボリュームのグループ管理テーブルのグループ♯欄に新規エントリを追加し、これにグループ♯（α、β・・・・）を設定する（７０２）。
【００６７】
図８のテーブルは、図５と同様にパス切れ時の退避の要否、キャッシュ使用量、キャッシュ使用量閾値、退避先の欄を備えている。キャッシュ使用量、閾値は、グループに属する全退避元外部ボリュームの合計値である。図５及び図８の退避先には１つ又は複数のボリュームが設定される。
【００６８】
管理クライアントが図８のテーブルにおいてのこれらの欄に入力を行うと、ＳＶＰはこの入力結果を図５の管理テーブルの個別の退避元外部ボリュームに自動的に反映させる。例えば、グループに対するキャッシュ使用量閾値は、グループに属する複数の退避元外部ボリュームに対して均等又は各退避元外部ボリュームの容量を考慮して不均等に分配される。また、グループに対する“パス切れ時の挙動”は、各転送元外部ボリュームに対して同様に設定される。退避先についても同様である。
【００６９】
なお、図６において、管理者が装置製番を選択すると、この装置に属するボリュームがグループ化される。このように、管理者は、退避元外部ボリュームをグループ化して、キャッシュ使用量の閾値などの退避条件を設定することにより、各退避元外部ボリュームへの退避条件の設定を簡素化できる。
【００７０】
図９は、退避元外部ボリュームをグループ化する他の実施形態を示す、ストレージシステムのブロック図である。この実施形態は複数の外部ボリュームが、異なる外部装置を跨いでグループ化されていることを示している。
【００７１】
符号９０４は、外部装置４０、４０-１、４０-２に属する複数のボリューム４２のグループであり、符号９０６は、外部装置４０−３，４０−４に属する複数の外部ボリュームのグループである。符号９００はグループ９０４の複数の外部ボリュームに対応付けられた複数の仮想ボリューム３２のグループであり、符号９０２はグループ９０６の複数の外部ボリュームに対応付けられた複数の仮想ボリューム３２のグループである。
【００７２】
主ストレージサブシステム１０は仮想ボリューム３２と実ボリューム３１とを備えている。実ボリューム３１はアクセス頻度の高いデータを格納している。グループ９０４に属する外部ストレージサブシステム４０,４０-１,４０-２はいずれも、例えば、ローエンドのストレージサブシステムであり、アクセス頻度が低いデータが退避元外部ボリューム４２に格納されている。
【００７３】
一方、グループ９０６に属する外部ストレージサブシステムは、ミッドレンジ又はハイエンドのストレージサブシステムであり、アクセス頻度が高いデータが退避元外部ボリューム４２に格納されている。
【００７４】
外部装置の性能や使用形態の差は、グループ毎に異なる退避条件を設定できることに表われている。例えば、ローエンドストレージサブシステムはＩＯの処理速度が劣るため、ローエンドストレージサブシステムの退避元外部ボリュームに対するキャッシュメモリの閾値をハイエンドストレージサブシステムの外部ボリュームに対するキャッシュメモリの閾値より少ない値にして、キャッシュメモリのデータが退避先ボリュームに早い段階で転送されるようにする。
【００７５】
なお、図９では複数の外部ストレージサブシステムを性能ごとにグループ化したが、グループを分ける基準は外部ストレージサブシステムの用途、目的、蓄積されるデータの用途、目的、或いは特性であってもよい。
【００７６】
なお、グループ化される対象を複数の退避元外部ボリュームとしたが、主ストレージサブシステム１０の内部ボリュームを混ぜてグループ化することを避けることがよい。退避先ボリュームが主ストレージサブシステムの内部ボリュームである場合に、主ストレージサブシステム内の退避元ボリュームから内部の退避先ボリュームへのデータの退避が生じて、主ストレージサブシステムに対してＩＯ負荷を生じさせるためである。また、退避先ボリュームとして、内部ボリュームより外部ボリュームの方がよい。内部ボリュームが退避先とすると、主ストレージサブシステムに対してその分ＩＯ負荷が発生するからである。
【００７７】
次に、前記管理テーブルに退避条件を設定する処理について説明する。図１０はそのためのフローチャートあり、これはＳＶＰによって実行される。
【００７８】
ＳＶＰは管理クライアントからの入力をチェックして、退避条件の設定対象が退避元外部ボリューム自体か、あるいは退避元外部ボリュームのグループかを判定する（１０００）。ＳＶＰが、退避条件の設定対象が退避元外部ボリューム自体であればステップ１００２に移行し、管理クライアントからの入力に基づいて、外部ボリュームに対して、パス切れ時の動作、キャッシュ使用量閾値、残パス数閾値を設定する。
【００７９】
なお、パスモードがシングルモードの場合は、アクティブパス（優先度がＨｉ）が切れた時点で退避を実行する。パスモードがマルチモードの場合には、パス切れ後の残パス数が閾値を下回った場合に退避を実行する。退避とはキャッシュメモリのダーティデータを退避先の内部ボリューム或いは外部ボリューム、その組み合わせからなる退避先に転送することをいう。退避ボリュームは単数でも複数でもよい。
【００８０】
ステップ１０００において、退避元外部ボリュームグループが設定対象であると判定された場合、ＳＶＰはステップ１００４において、退避元外部ボリュームグループを管理テーブル（図８）に登録されているもの（グループ♯）から選択する（１００４）。
【００８１】
次いで、ＳＶＰはステップ１００６において、グループに属する各退避元外部ボリュームへのパスの経路・パスモードが全ての退避元外部ボリュームについて同一か否かを図３の管理テーブルをチェックして判定する。
【００８２】
グループ内の全ての外部ボリュームへのパスが共通でないのであれば、ステップ１０００に戻って各退避元ボリュームについて退避条件が設定される。図２を参照明すると、外部ボリューム３,４,５のグループにおいて、外部ボリューム３へのパスはＰ３だけであるのに対して、ボリューム４,５へのパスはともにＰ３とＰ４である。したがって、ボリューム３,４,５についてパスが共通していないと判定される。パスが共通していないと、グループに属する全てのボリュームについて退避条件を同一にするのは妥当でないからである。
【００８３】
ステップ１００６で全てのボリュームへのパスが共有である場合には、ステップ１００８において、ＳＶＰはグループ単位で退避条件を設定する（図８参照）。図２を参照すると、ボリューム１とボリューム２へのパスが共通であると判定される、なお、グループ単位で退避条件を設定すると、既述のように、ＳＶＰは設定内容を退避元外部ボリューム毎の退避条件に反映させる（図６参照）。
【００８４】
なお、複数の装置に跨る複数の外部ボリュームをグループ化すると、必ず、複数の外部ボリュームへの複数のパスは共通でなくなり、ステップ１００６の判定では、退避条件を設定するための処理がステップ１００２へ誘導され、ステップ１００８における利点を享受することができない。この場合、キャッシュ使用量に係る閾値をグループ化された複数の外部ボリュームに対して統一された値にすることまで躊躇する必要も無いために、ステップ１００４とステップ１００６との間で、グループ化された複数の外部ボリュームに対して共通の閾値を設定してもよい。
【００８５】
次に、退避先を設定する処理について説明する。図１１は、退避先候補となる、全ＬＤＥＶの管理テーブルである。ＤＫＡは内部ボリュームの情報を収集し、ＣＨＡは、図３の管理テーブルから、退避元外部ボリュームとして設定されていない外部ボリュームであって、図５で退避条件が設定されていない外部ボリュームを収集し、これらのボリュームを退避先の候補ＬＤＥＶとして、図１１に登録する。図１１に示す管理テーブルは、共有メモリ２５に登録される。ＳＶＰはＬＤＥＶを退避先として選定した場合には、図１１のテーブルを更新する。
【００８６】
図１１において、“パス定義”とは、パス定義がされているか否かの情報である。“退避先設定”とは、既述の退避先として扱われているか否かの情報である。ＬＤＥＶが第１のストレージサブシステムではない外部の装置にある場合に、“装置製番”に情報が登録される。情報が登録されていない場合には、ＬＤＥＶは、内部ボリューム、すなわち、主トレージサブシステムのボリュームであることを意味している。
【００８７】
退避先ボリュームが外部ボリュームの場合には、外部退避先ボリュームへの“パスモード”が登録される。さらに、図１１の管理テーブルにはＬＤＥＶのアドレスを含む識別情報が登録されている。
【００８８】
図１２は、退避先を設定するためのフローチャートである。このフローチャートは、ＳＶＰが管理クライアントからの入力に基づいて実行される。
【００８９】
ＳＶＰは、図５又は図８の管理テーブルを参照することによって、退避元ボリュームとして、外部ボリューム単独或いは外部ボリュームのグループを設定する（１１００）。
【００９０】
外部ボリュームが選択された場合には、ＳＶＰは、ステップ１１０２からステップ１１０４に進み、グループ化されている外部ボリュームは個別に退避元ボリュームとして設定できないことを管理クライアントに表示する（１１０６）。これは、パス切れなど退避を必要とする状況はグループ単位で生じる可能性があることに配慮したためである。
【００９１】
退避元として、外部ボリュームのグループが選択された場合、又は退避元としてグループに属しない外部ボリュームが選択された場合、ステップ１１０８において、ＳＶＰは退避先ボリュームとして、ＬＤＥＶあるいはプールを選択する。プールとは固定された記憶容量を持たずに、ＩＯに基づいて順次容量が拡張されるボリュームである。プールが選択された場合には、外部ボリューム管理テーブル（図５,図８）の退避先にプールの情報が登録される（１１００）。プールボリュームは通常主ストレージサブシステム２０内に設定される。
【００９２】
図１３は、プールに登録されているＬＤＥＶを管理する管理テーブルである。図１４は、プールへＬＤＥＶを追加する処理を説明するフローチャートである。ＳＶＰが図１１のＬＤＥＶ管理テーブルから退避先に設定されていないＬＤＥＶを選択すると（１４００）、選択されたＬＤＥＶ♯は、図１３のプール管理テーブルのエントリ（♯）に順番に登録される（１４０２）。
【００９３】
プール管理テーブルに登録されたＬＤＥＶ♯では、図１１のＬＤＥＶ管理テーブルにおいて、転送先設定の欄にプールに選択されたことが登録される。複数のＣＨＡ及びＤＫＡは、プールに登録されているＬＤＥＶをプールに順次割り当てて退避先として扱う。
【００９４】
ステップ１１０８においてＬＤＥＶが選択されると、ＳＶＰは図１１を参照してＬＤＥＶが内部ボリュームか外部退避先ボリュームかを判定し（１１１４）、内部ボリュームの場合には図５及び図８に示す管理テーブルの退避先にＬＤＥＶ♯を登録する（１１２０）。このＬＤＥＶ♯の詳細情報は図１１に登録されている。次いで、ＬＤＥＶ管理テーブル（図１１）のＬＤＥＶ♯の退避先設定欄をオンにする。さらに、退避先の設定処理を追加する場合には、ステップ１１１４にリターンし、そうでない場合には処理を終了する（１１２４）。
【００９５】
ステップ１１０８において、既にパスが設定されているＬＤＥＶを退避先とすることは好ましくない。そこで、管理者に当該ＬＤＥＶを退避先に選択できない旨をＳＶＰは管理クライアントに表示する。また、選択されたＬＤＥＶと同一ＥＣＣグループ内の他のＬＤＥＶにパス定義がある場合には、ＳＶＰは管理クライアントに注意喚起の表示を行う。このパス定義がある場合には、ＳＶＰは図１１の管理テーブルにこの旨を表示する。退避先ＬＤＥＶとしては、パス定義がないためにＩＯ負荷がないＥＣＣグループのボリュームであることが好ましい。
【００９６】
ステップ１１１４において、退避先として外部ボリュームが選択されると、ＳＶＰは図３の管理テーブルを参照して退避先ボリュームへのパスモードとパス数を判定する。ＳＶＰは、パスモードがシングルモード、又はパス数が１の場合にはパスの冗長性が無いために、退避先として設定できない旨を管理クライアントに表示する（１１２６）。パスモードがシングルであると、外部装置の保守時（ＨＤＤの閉塞を含む）にキャッシュメモリ内のデータを、パスを介して退避先外部ボリュームに転送できないことがある。
【００９７】
一方、ＳＶＰがステップ１１１６を否定判定すると、ステップ１１１８に移行する。ＳＶＰは、選択された転送先外部ボリュームが、パス切れ時の退避にオンが設定された退避元外部ボリュームと同一の外部装置（同一の装置製番・ベンダ名）に存在するものであるか否かを判定する。選択された退避際外部ボリュームが退避元外部ボリュームと同じ筐体のものである場合には、退避元外部ボリュームについて発生した障害が選択された退避先外部ボリュームについて発生するおそれがあるからである。次に、ＳＶＰはステップ１１２６に移行し、異なる筐体であれば選択された退避先外部ボリュームを転送先に設定することができるのでステップ１１２０に移行する。
【００９８】
次に、キャッシュメモリから退避先ボリュームへのデータの退避処理について説明する。この退避処理は、キャッシュメモリ２４内のダーティデータの存在量が閾値を越えた場合と、主ストレージサブシステムから退避元外部ボリュームへのパス障害と、退避元外部ボリュームを有する外部装置の保守（ＨＤＤの閉塞を含む）などの少なくとも１つの場合に実行される。
【００９９】
退避先が外部ボリュームである場合の退避処理は、退避先外部ボリュームに接続するＣＨＡ２１Ｎのマイクロプロセッサが実行する。退避先が内部ボリュームである場合の退避処理は、ホスト装置１０に接続する内部ボリュームの記憶領域に制御権を有するＤＫＡによって実施される。
【０１００】
退避を制御するＣＨＡは、退避元外部ボリューム又はそのグループについて、キャッシュメモリのダーティデータの合計量（キャッシュ使用量）を算出して、これを外部ボリューム管理テーブル（図５、図８）のキャッシュ使用量の欄に登録する。管理クライアントは、管理テーブルを参照してキャッシュ使用量の現在値を知ることができる。
【０１０１】
チャネルアダプタは、また、パス状態監視プログラムを有しており、図１５に示すように、転送元外部ボリュームへと転送先外部ボリュームへのパス状態を周期的に監視している。また、図１６は、転送元外部ボリューム及び転送先ボリュームへのパスを管理するテーブルである。ＣＨＡ２１Ａ，２１Ｂは、図３の転送元外部ボリューム管理テーブルなどを参照して、外部ボリューム♯、パスモード、パス数を決定して、図１６のテーブルに登録する。図１６の管理テーブルは共有メモリ２５に登録される。このテーブルの“残パス数”とは、パス数のうちパス障害（パス切れ）が発生していない正常なパス数である。残パス数は図１５のフローチャートの処理によって更新される。
【０１０２】
ＣＨＡは、図１６の管理テーブルの外部ボリューム♯を順次チェックして、共有メモリ２５内の構成情報を参照し、パス切れが生じた退避元ボリューム又は退避先ボリュームの情報を取得する（１５００）。
【０１０３】
次いで、この外部ボリュームに係る残パス数をデクリメントする（１５０２）。図１６の全ての外部ボリュームについてチェックを完了させるとこのフローチャートを終了する。
【０１０４】
図１７は退避処理の要否を判定するフローチャートである。退避元外部ボリュームに接続するＣＨＡ２１Ａ，２１Ｂは、全ての退避元外部ボリュームについて、このフローチャートを適用する。
【０１０５】
先ずＣＨＡはパス数と残パス数とを比較する。“パス数”とは主ストレージサブシステムから退避元外部ボリュームへ形成されたパスの数であり、“残パス数”とは既述のとおり、パス数からパス切れになったパスを除いたパスの数である。
【０１０６】
先ず、ＣＨＡは、図３の管理テーブルを参照して、“残パス数”が零であるか否かを判定する（１７０２）。残パス数が零である場合には、パスに冗長性が無いためにステップ１７１６に移行して、“退避要”と判定する。残パス数が零で無い場合には、ステップ１７０４に移行してパスモードがシングルであり、かつ優先度が高い方のパスが優先度の低い交替パスに切り替え中か否かを判定して、これを肯定するとステップ１７１６に移行する。
【０１０７】
ステップ１７０２とステップ１７０４とからステップ１７１６までの経過について、他の図面を利用して具体的に説明する。
【０１０８】
図１８の（Ａ）において、退避元外部ボリューム２へのパス数は“パス２”を経由する“１”である。（Ｂ）のように、“パス２”が切れると“残パス数”が“０”になるために、退避元外部ボリューム２について、キャッシュメモリのダーティデータを退避先ボリュームに退避することが必要と判定される。
【０１０９】
次に図１９（Ａ）において、退避元外部ボリューム１へのパス数は、パス１乃至３をそれぞれ経由する“３”である。退避元外部ボリューム１へのパス１乃  至３はマルチパスモードで運用されている。ここで（Ｂ）のように、“パス１”が切れても“残パス数”は“２”であり、そして、パスモードはシングルでパス切り替え中でもないためにそれだけで退避の必要はない。
【０１１０】
次に、図２０（Ａ）において、退避元外部ボリューム１へのパス数は、パス１乃至３をそれぞれ経由する“３”である。退避元外部ボリューム１へのパス１はシングルモードでのアクティブパスとして運用されている。今ここで（Ｂ）のように、“パス１”が切れると、“残パス数”は“２”であるが、“パス１”を“パス２”に切り替えて、即ち、“パス２”をアクティブパスとする必要があるために退避要と判定される。一方、（Ｃ）のように、“パス２”がアクティブパスの場合には“パス１”が切れてもそれだけで退避の必要は無いと判定される。
【０１１１】
図１７に戻り説明を続けると、ステップ１７０２及びステップ１７０４で退避不要と判定されると、ＣＨＡは、ステップ１７０６において、退避元外部ボリュームに対応する仮想ボリュームのキャッシュ使用量と閾値とを比較する。キャッシュ使用量が閾値以下の場合には退避は不要と判定される。
【０１１２】
一方、キャッシュ使用量が閾値を越える場合には、ＣＨＡは図５の管理テーブルを参照して、退避元外部ボリュームが属するグループがあるか否かを判定する（１７０８）。この判定を否定すると、ステップ１７１０でこのグループに属する他の退避元外部ボリュームも含めた、キャッシュの全体の使用量と、グループについての閾値とを比較する（１７１０）。これらの値は、図８の管理テーブルを参照することによって得られる。特定の退避元外部ボリュームについてのキャッシュ使用量が当該ボリュームについての閾値を越えていても、グループ全体のボリュームについて閾値を越えていない場合には、退避が不要と判定する。
【０１１３】
一方、ステップ１７０８において、退避元外部ボリュームが属するグループが無いと判定され（ＹＥＳ）、また、ステップ１７１０でグループに属する全ボリュームについてキャッシュ使用量の合計が閾値を越える場合（ＹＥＳ）は、退避が必要と判定する（１７１６）。
【０１１４】
次に、キャッシュメモリに残存するデータを退避先ボリュームにデステージングするか、退避元外部ボリュームにデステージングするかの処理について説明する。キャッシュメモリのダーティデータが退避先ボリュームに退避されているか否かは図２１の退避先管理テーブルと図２２にビットマップによって管理される。
【０１１５】
図２１の退避先管理テーブルの各管理♯は、退避元外部ボリュームの記憶領域を、例えば、スロット単位に分割した個々のスロットに対応する。ＬＤＥＶ♯は退避先ボリュームを特定或いは識別する情報であり、退避先♯は退避データが存在する、ＬＤＥＶ♯内のアドレスである。
【０１１６】
図２２はビットマップテーブルであり、各ビットが図２１の管理者♯に対応している。管理♯に退避先が登録されている場合には、この管理♯に対応するビットをオンする。図２２の２２０はオンされたビットを示す。ビットがオフであることは、データが退避先ではなく退避元外部ボリュームの対応するスロット位置に反映されていることを示している。退避先管理テーブル及びビットマップの設定、更新はチャネルアダプタが行う。退避先管理テーブル及びビットマップは共有メモリ２５に格納されている。
【０１１７】
図２３は，ＣＨＡ及び／又はＤＫＡによって実行される、デステージング処理を説明するフローチャートである。ＣＨＡは、キャッシュメモリのデータが退避元外部ボリュームのどのスロット位置に対するものかを算出する。チャネルアダプタはこのスロットに対する管理♯を求め、この管理♯に対応するビットマップのビットをチェックしてビットがオンされているか否かを判定する。ビットがオンされている場合には退避がありと判定する。退避がありと判定されると（２３００）、退避先管理テーブルのこの管理♯から退避先情報をリードして、この退避先をキャッシュメモリのデータをデステージングする先として設定する（２３０２）。
【０１１８】
次に、ＣＨＡは、図１７の退避要否判定の処理結果に基づいて（２３０４）、退避が不要である場合には、キャッシュメモリのデータを退避元外部ボリュームに転送できるので、ビットマップのビット及び退避先管理テーブルをクリア、即ち、ビットをオフし、退避先管理テーブルの退避先をＮＵＬＬクリアする（２３０６）。次いで、デステージ先に退避元ボリュームの管理♯に対応するスロットに再設定する（２３０８）。次いで、ＣＨＡは退避元外部ボリュームにキャッシュメモリのダーティデータをデステージングする。
【０１１９】
一方、退避要と判定された場合、次のステップ２３１２において、“図１７のステップ１７０２＝Ｎｏ,ａｎｄ,図１７のステップ１７０４＝Ｎｏ,ａｎｄ  “退避元ボリュームへのＩＯレスポンスの平均値＞退避先ボリュームへのＩＯレスポンスの平均値”の肯定又は否定を判定する。この判定が否定された場合は、退避先ボリュームへのＩＯ負荷が高いと判定して、ステップ２３０６に移行して退避元外部ボリュームをデステージ先に設定する。
【０１２０】
一方、ステップ２３１２の判定が肯定された場合には、退避先ボリュームをデステージ先とすることを維持する。次いで、ＣＨＡは退避先ボリュームをデステージ先として、キャッシュメモリのデータをデステージング処理する（２３１０）。
【０１２１】
一方、ステップ２３００において退避先が無いと判定されると、ステップ２３１４において、図１７の処理結果に基づいて退避要否の判定を行う。退避が不要の場合にはキャッシュメモリのダーティデータを退避元外部ボリュームの特定スロットにデステージング処理する。
【０１２２】
ステップ２３１４において、退避が必要と判定されると、ＣＨＡは、退避先の確保をこころみ（２３１６）、退避先確保の成功又は不成功を判定する（２３１８）。成功を判定した場合には、ステップ２３２２がステップ２３１２と同様な処理を行い、この処理を肯定判定すると、デステージ先に退避先を設定し（２３２２）、退避ビットマップの特定ビットをオンし、退避先管理テーブルの特定管理♯に退避先を登録する（２３２４）。退避先確保の成功或いは失敗は後述のフローチャートに基づいて決定される。
【０１２３】
一方、ステップ２３２２を否定判定する場合には、退避元外部ボリュームの特定スロットに対してデステージングを実施する。なお、ＣＨＡは退避先外部ボリューム及び退避元外部ボリュームについてのＩＯレスポンスの平均値を他のフローチャートに基づいて周期的に計算している。退避先ボリュームが内部ボリュームの場合には、ＤＫＡによって退避先内部ボリュームのＩＯレスポンスが求められている。
【０１２４】
図２４は、主ストレージサブシステム２０が退避先を確保するための処理について説明したものである。ＣＨＡは、退避元外部ボリューム管理テーブル（図５、図８）を参照して、退避先がプールかＬＤＥＶかをチェック判定する。退避先がプールの場合には、プール管理テーブル（図１３）を参照して、このテーブルに登録されている複数のＬＤＥＶ中から１つのＬＤＥＶをラウンドロビンで選択する（２３０６）。
【０１２５】
一方、退避先がプールでないＬＤＥＶの場合には、外部ボリューム管理テーブルに退避先として設定されているＬＤＥＶを選択する（２４０２）。複数のＬＤＥＶが管理テーブルに登録されている場合には、ランドロビンで１つのＬＤＥＶを選択する。
【０１２６】
次いで、ＣＨＡは選択したＬＤＥＶから未使用のエリアの取得をこころみる（２４０８）。ステップ２４１０では未使用のエリアの存在、不存在を判定し、未使用エリアが存在する場合には、退避先確保成功と判定する（２４１４）。一方、選択したＬＤＥＶに未使用のエリアが存在しない場合には、退避先として管理テーブルに登録されている全ＬＤＥＶについて未使用エリアが存在するか否かを判定し（２４１２）、これを否定判定する場合にはステップ２４００にリターンし、これを肯定判定する場合は退避先確保失敗と判定する（２４１６）。
【０１２７】
次に、キャッシュメモリへのステージング処理を図２５に基づいて説明する。ＣＨＡがホスト装置１０から仮想ボリューム３２へリード要求を受信すると、キャッシュメモリを参照してキャッシュヒットミス判定を行う。キャッシュヒットを判定すると、このデータをキャッシュメモリ２４からリードしてホスト装置１０に転送する。
【０１２８】
一方、キャッシュヒットミスを判定した場合には、退避元外部ボリュームに接続するＣＨＡ２１Ａは、共有メモリ２５からリードコマンドを読み、退避元外部ボリュームのリード先スロットに対応する管理♯を求め、さらにこの管理♯に対するビットマップ（図２２）をチェックして退避先があるか否かをチェックする（２５００）。
【０１２９】
退避先がない場合には、ＣＨＡは退避元外部ボリュームからデータをリードして、キャッシュメモリにステージングする（２５０４）。一方、退避先がある場合には、ＣＨＡは、退避先管理テーブル（図２１）の前記管理♯から退避先を取得し（２５０２）、この退避先からデータを取得してキャッシュメモリにステージングする（２５０４）。ステージングされたデータはチャネルアダプタによってホスト装置に転送される。
【０１３０】
次に、退避元外部ボリュームを提供する、外部装置のＨＤＤに障害が発生して、これを閉塞する場合のデータの退避処理を図２６のフローチャートに基づいて説明する。退避元外部ボリュームに接続するＣＨＡは、キャッシュメモリ２４をチェックして、一定時間キャッシュメモリに存在するダーティデータがあるか否かをチェックする（２６００）。
【０１３１】
これを否定判定する場合は、ＨＤＤの閉塞に伴うデータの退避が必要ないとして、このフローチャートを終了する。この判定を肯定する場合には、ダーティデータのライト先が退避元外部ボリュームであり、かつ当該ボリュームの記憶領域を提供するドライブが閉塞された否かをチェックする（２６０２）。これを否定判定する場合は、退避先を確保する必要がないのでフローチャートを終了する。一方、ＨＤＤが閉塞されていると、ステップ２６０２が肯定判定され、ステップ２６００で特定されたダーティデータを他のボリュームに退避する必要がある。
【０１３２】
そこで、ＣＨＡはダーティデータに対して、転送先が設定されているか否かを、転送先管理テーブル（図２１）及びビットマップ（図２２）を参照して判定する（２６０４）。この判定を肯定した場合には、退避先を転送先管理テーブルから取得して、これをデステージ先に設定して（２６０６）、転送先にデージング処理を行う。退避先が外部ボリュームの場合は、この外部ボリュームに接続するＣＨＡがデステージングを実施する。一方、退避先ボリュームが内部ボリュームの場合には、内部ボリュームにアクセス可能なＤＫＡによってデステージングが実施される（２６１４）。
【０１３３】
ステップ２６０４の判定を否定した場合には、退避先確保（２６０８）、退避先確保成功？（２６１０）の各処理を行い、退避先の確保に失敗した場合には、この旨をＳＶＰに通知する。ＳＶＰは管理クライアントに必要な表示を行う。
【０１３４】
一方、退避先が確保できた場合には、退避先管理テーブル（図２１）及びビットマップ（図２２）を更新して、退避先にデステージング処理を行う（２６１４）。
【０１３５】
次に、退避先ボリュームから退避元外部ボリュームに退避データをリストアする回復処理を図２７に基づいて説明する。ＣＨＡ２１Ａは、退避元外部ボリュームについて図２２に示すビットマップをサーチして（２７００）、退避あり（オンビットあり）又は退避なし（オンビットなし）を判定する。ＣＨＡは、オンビットを回復が必要な範囲として設定し、オンビットに対応する管理♯から退避先を求める。
【０１３６】
次いで、ＣＨＡは、退避元外部ボリュームについて、図１７のフローチャートの結果に基づき、退避要否を判定する（２７０６）。退避が必要な場合は、退避先から退避元外部ボリュームの特定スロットにデータを転送できないために、退避データの回復を行うことなくフローチャートを終了する。一方、退避が必要でない場合には、退避データの回復は可能であるので、退避先からキャッシュメモリに退避データをステージングする（２７０８）。
【０１３７】
次いで、ステージングされたデータを、回復先である退避元外部ボリュームへデスデージング（リストア）するとともに（２７１０）、退避管理テーブルの退避元管理♯の情報をクリアし、かつビットマップのオンビットをクリアする（２７１２）。なお、退避データを退避元外部ボリュームに回復する場合には、ビットマップにおいて連続してオンになっているビット部分を優先することが、退避データを退避元外部ボリュームに転送する際にシーケンシャル処理になるために効率がよい。
【０１３８】
次に、主ストレージサブシステムから退避先外部ボリュームへのパスを開放する場合、或いは、退避先外部ボリュームを有する外部装置を主ストレージサブシステムから切り離す際の処理を図２８に基づいて説明する。
【０１３９】
ＣＨＡ２１Ｎは、退避先管理テーブル及びビットマップを参照して、主ストレージサブシステムから切り離されようとしている外部ボリュームにデータの退避があるか否かを判定する（２８００）。ＣＨＡはこの外部ボリュームをＳＶＰからの通知によって認識する。
【０１４０】
ステップ２８００において、データの退避がないと判定されると、ＣＨＡはＳＶＰ経由で外部ボリュームの切り離しが可能であることを管理クライアントに通知する。管理クライアントは管理者にボリュームの切断の実行の有無を確認する表示を行う。
【０１４１】
退避がある場合には、ステップ２８０４において、ＣＨＡは、切断されようとしている外部ボリュームに退避元外部ボリュームに未反映のデータが存在することをＳＶＰ経由で管理クライアントに通知する（２８０６）。
【０１４２】
ＳＶＰは、管理クライアントに外部ボリュームの強制切断の要否の確認を求める（２８０６）。強制切断を許可すると、ステップ２８０２で外部ボリュームの切り離しが可能である表示を管理クライアントに対し行う（２８０２）。一方、管理者が退避データの回復処理を選択する場合には、ＣＨＡは、図２７のフローチャートを直ちに実行して、外部ボリュームの退避データを退避元外部ボリュームにリストアする（２８０８）。
【０１４３】
図２９は、退避元外部ボリュームの過負荷時、データの退避、及びパス切れ時でのホスト装置、管理者への通知に関するフローチャートである。外部ボリュームを、ホスト装置に対しては主ストレージサブシステム２０のボリュームとして見せているため、なるべく外部装置の一時的な障害や保守などの影響はストレージサブシステム側で吸収してホストに対しては見せないようにしている。例えば、パスが切れてもキャッシュメモリのデータが退避されるのでＬＤＥＶ閉塞としてホストへ見せるまでの時間は、本発明を用いることで延ばすことが可能となる。
【０１４４】
既述の実施形態では、退避先ボリュームを主ストレージサブシステムの内部ボリューム及び外部ボリュームにすることができることを説明した。退避先ボリュームを内部ボリュームとすると、内部ボリュームへデータを退避する際、内部ボリュームに対してIOが発生してしまうため、ストレージサブシステムのIO処理に影響を与える可能性があるものの、次の利点がある。
【０１４５】
すなわち、退避先ボリュームが内部ボリュームとすると、システム構成の観点から、外部ボリュームより内部ボリュームの方が性能が良い為、外部ボリュームを備える外部資源に対する負荷が高いとき、内部ボリュームにデータを退避すれば、高速の処理が可能であり、キャッシュメモリに対する過負荷を回避し易い。
【０１４６】
一方、退避先ボリュームを外部ボリュームとすると、パス切れや外部装置の保守の際など、外部特有の現象で退避先ボリュームの使用が制限されたり、システムの構成上、外部ボリュームは内部ボリュームより性能が低いケースが多く、退避先外部ボリュームが過負荷になることがあるのに対して、データをボリュームに退避する際に、主ストレージ装置のIO処理性能には影響を与えないという利点がある。
【図面の簡単な説明】
【０１４７】
【図１】本発明に係わるストレージシステムのブロック図である。
【図２】仮想ボリュームに外部ストレージサブシステム退避元外部ボリュームがマッピングされている状態を示すブロック図である。
【図３】外部ボリュームの管理テーブルである。
【図４】ＣＨＡのローカルメモリのブロック図である。
【図５】退避元外部ボリュームの管理テーブルである。
【図６】退避元外部ボリュームのグループを定義するためのテーブルである。
【図７】退避元外部ボリュームの複数をグループ化するための、ＳＶＰが実行するフローチャートである。
【図８】退避元外部ボリュームのグループ管理テーブルである。
【図９】退避元外部ボリュームをグループ化する他の実施形態を示す、ストレージシステムのブロック図である。
【図１０】管理テーブルに退避条件を設定する処理のためのフローチャートである。
【図１１】退避先候補となる、全ＬＤＥＶの管理テーブルである。
【図１２】退避先を設定するためのフローチャートである。
【図１３】プールに登録されているＬＤＥＶを管理する管理テーブルである。
【図１４】プールへＬＤＥＶを追加する処理を説明するフローチャートである。
【図１５】パス状態監視プログラムである。
【図１６】転送元外部ボリューム及び転送先ボリュームへのパスを管理するテーブルである。
【図１７】退避処理の要否を判定するフローチャートである。
【図１８】パス切れの際の退避処理を説明するブロック図である。
【図１９】同退避処理の他の例を説明するためのブロック図である。
【図２０】さらに他の例を説明するためのブロック図である。
【図２１】退避先管理テーブルである。
【図２２】退避先管理のためのビットマップである。
【図２３】デステージング処理を説明するフローチャートである。
【図２４】主ストレージサブシステムが退避先を確保するためのフローチャートである。
【図２５】ステージング処理を説明するフローチャートである。
【図２６】外部装置のＨＤＤに障害が発生して、これを閉塞する場合のデータの退避処理のフローチャートである。
【図２７】退避先ボリュームから退避元外部ボリュームに退避データをリストアする回復処理を説明するフローチャートである。
【図２８】退避先外部ボリュームを主ストレージサブシステムから切り離す処理を説明するフローチャートである。
【図２９】退避元外部ボリュームの過負荷時、データの退避、及びパス切れ時でのホスト装置、管理者への通知に関するフローチャートである。
【符号の説明】
【０１４８】
１０  ホスト装置、１２  主ストレージサブシステム、２１  チャネルアダプタ、２２  ディスクアダプタ  ３１  内部ボリューム、３２  仮想ボリューム、３４  退避先内部ボリューム、４２  外部ボリューム（退避元外部ボリューム、退避先外部ボリューム）４０  外部ストレージサブシステム
【図１】
2009295045.tif 000003
【図２】
2009295045.tif 000004
【図３】
2009295045.tif 000005
【図４】
2009295045.tif 000006
【図５】
2009295045.tif 000007
【図６】
2009295045.tif 000008
【図７】
2009295045.tif 000009
【図８】
2009295045.tif 000010
【図９】
2009295045.tif 000011
【図１０】
2009295045.tif 000012
【図１１】
2009295045.tif 000013
【図１２】
2009295045.tif 000014
【図１３】
2009295045.tif 000015
【図１４】
2009295045.tif 000016
【図１５】
2009295045.tif 000017
【図１６】
2009295045.tif 000018
【図１７】
2009295045.tif 000019
【図１８】
2009295045.tif 000020
【図１９】
2009295045.tif 000021
【図２０】
2009295045.tif 000022
【図２１】
2009295045.tif 000023
【図２２】
2009295045.tif 000024
【図２３】
2009295045.tif 000025
【図２４】
2009295045.tif 000026
【図２５】
2009295045.tif 000027
【図２６】
2009295045.tif 000028
【図２７】
2009295045.tif 000029
【図２８】
2009295045.tif 000030
【図２９】
2009295045.tif 000031
【手続補正書】
【提出日】平成20年9月9日(2008.9.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
この種のストレージサブシステムを備える従来技術として、例えば、米国特許７１１１１３８号公報に記載のものが存在する。この公報に記載されたストレージシステムは、第１のストレージサブシステムに第２のストレージサブシステムが外部接続されるものであり、詳しくは、第１のストレージサブシステムは、第２のストレージシステムの実ボリュームがマッピングされる仮想ボリュームを備えている。ホスト装置から仮想ボリュームに対して発行されたライトデータは、第１のストレージサブシステムから第２のストレージサブシステムに転送されて仮想ボリュームにマッピングされた実ボリュームに保存される。
【特許文献１】米国特許７１１１１３８号公報