(57)【特許請求の範囲】
【請求項１】
上位装置からの要求を受け付ける第１記憶制御装置と、この第１記憶制御装置に通信可能に接続された少なくとも１つ以上の第２記憶制御装置とを備えたストレージシステムであって、
前記第１記憶制御装置は、前記第２記憶制御装置の有する第２記憶領域を、前記第１記憶制御装置の有する第１記憶領域として、前記上位装置に提供可能となっており、
前記第１記憶制御装置及び前記第２記憶制御装置の負荷状況をそれぞれ検出する状況検出部と、
前記第１記憶制御装置及び前記第２記憶制御装置がそれぞれ備える機能のうち、実行可能な機能を予め選択する機能選択部と、
前記各記憶制御装置毎に、前記機能選択部により選択された機能をそれぞれ管理するための機能管理部と、
前記上位装置から前記機能管理部により管理されている機能の実行を要求された場合には、前記状況検出部と前記機能管理部とを用いることにより、前記各記憶制御装置の負荷状況及び前記実行を要求された機能の内容に基づいて、前記各記憶制御装置のうちいずれの記憶制御装置で前記実行を要求された機能を実行すべきか判断する実行先判断部と、
前記実行先判断部により実行先の記憶制御装置として決定された記憶制御装置に、前記実行を要求された機能の実行を指示する実行指示部と、
を備え、
前記第１記憶制御装置及び前記第２記憶制御装置でそれぞれ実行可能な機能は、前記各記憶制御装置がそれぞれ実行可能な共通機能と、前記各記憶制御装置のうちいずれか一方のみが実行可能な固有機能とに分けることができ、
前記実行先判断部は、
（１）前記共通機能については、前記第１記憶制御装置が前記共通機能を実行可能な場合に、前記第１記憶制御装置に前記共通機能を実行させ、前記第１記憶制御装置で実行不能な場合に、前記第２記憶制御装置の負荷状況に基づいて、前記第２記憶制御装置に前記共通機能を実行させ、
（２）前記固有機能については、前記第２記憶制御装置の負荷状況に基づいて、前記第２記憶制御装置に前記固有機能を実行させる、
ストレージシステム。
【請求項２】
前記各記憶制御装置がそれぞれ実行可能な機能の動作モードを設定するための動作モード設定部をさらに備えた請求項１に記載のストレージシステム。
【請求項３】
前記各記憶制御装置がそれぞれ実行可能な機能には、この機能を実行させるための条件が予め設定されており、
前記実行先判断部は、前記各記憶制御装置の負荷状況及び前記実行を要求された機能に予め対応付けられている前記条件に基づいて、前記各記憶制御装置のうちいずれの記憶制御装置で前記実行を要求された機能を実行すべきかを判断する請求項１に記載のストレージシステム。
【請求項４】
前記条件として、前記第１記憶制御装置の負荷が予め設定された第１閾値以上の場合に、前記実行を要求された機能を前記第２記憶制御装置で実行すべき旨が設定されている請求項３に記載のストレージシステム。
【請求項５】
前記条件として、前記第２記憶制御装置の負荷が予め設定された第２閾値未満の場合に、前記実行を要求された機能を前記第２記憶制御装置で実行すべき旨が設定されている請求項３に記載のストレージシステム。
【請求項６】
前記条件として、前記第１記憶制御装置の負荷が予め設定された第１閾値以上の場合であって、かつ、前記第２記憶制御装置の負荷が予め設定された第２閾値未満の場合に、前記実行を要求された機能を前記第２記憶制御装置で実行すべき旨が設定されている請求項３に記載のストレージシステム。
【請求項７】
前記機能管理部により管理されている機能は、圧縮処理または暗号化処理の少なくともいずれか一方を含んでいる請求項１に記載のストレージシステム。
【請求項８】
前記上位装置は、前記第１記憶領域について、前記機能管理部により管理されている機能の実行を要求し、
前記実行指示部は、前記実行先判断部によって前記第２記憶制御装置が前記実行先の記憶制御装置として決定された場合に、前記第２記憶領域に関して前記実行を要求された機能を実行させるための実行指示を発行する請求項１に記載のストレージシステム。
【請求項９】
前記第１記憶制御装置には、複数の前記第２記憶制御装置が通信可能にそれぞれ接続されており、かつ、該各第２記憶制御装置同士も通信可能に接続されており、
前記実行指示部は、前記複数の第２記憶制御装置のうち、前記実行先判断部によって前記実行先の記憶制御装置として決定された前記第２記憶制御装置に前記実行を要求された機能を実行させるための実行指示を発行し、
この発行された実行指示は、前記複数の第２記憶制御装置のうち、前記実行先判断部により前記実行先の記憶制御装置として選択されなかった前記第２記憶制御装置を経由して、前記実行先の記憶制御装置として決定された前記第２記憶制御装置に伝達させるようになっている請求項１に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及び記憶制御装置に関する。
【背景技術】
【０００２】
例えば、企業や政府機関あるいは教育機関等のユーザが管理すべきデータは、日々増大するため、ユーザの必要とする記憶容量も増加する一方である。このため、ユーザは、既存の記憶制御装置に新たな記憶デバイスを追加したり、より大容量の記憶資源を有する記憶制御装置を新規に購入する。
【０００３】
このようにして、ユーザは、複数の記憶制御装置を利用することになり、ストレージシステム内には複数の記憶制御装置が混在する。そこで、複数の記憶制御装置を有効に利用すべく、第１の記憶制御装置に他の記憶制御装置を接続することにより、ストレージシステム内の記憶資源を仮想化して上位装置に提供する技術が提案されている（特許文献１，特許文献２，特許文献３）。
【特許文献１】特開平１０−２８３２７２号公報
【特許文献２】特開２００４−２２０４５０号公報
【特許文献３】特開２００５−９２４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記各文献に記載の従来技術では、第１の記憶制御装置によって、ストレージシステム内の記憶資源を仮想化する機能が開示されている。また、特開２００５−９２４２４号公報には、第１の記憶制御装置の負担を軽減すべく、バックアップ処理等の負荷の重い処理を第２の記憶制御装置で実行させる技術が開示されている。
【０００５】
しかし、前記各文献に記載の従来技術では、上位装置から要求された機能の実行を、ストレージシステム内のいずれの記憶制御装置で実行させるのが最適であるかについて、検討の余地がある。
【０００６】
例えば、ストレージシステムが有する機能群は、各記憶制御装置がそれぞれ実行可能な共通機能と、所定の記憶制御装置のみが実行可能な固有機能とに大別可能である。ここで、上位装置から実行を要求された機能が共通機能の場合、いずれの記憶制御装置でも実行可能である。
【０００７】
しかし、その共通機能の実行が、ある１つの記憶制御装置に集中し、この１つの記憶制御装置内で複数の共通機能がそれぞれ起動された場合は、処理性能が低下する。従って、その共通機能に関して、ストレージシステム全体としての性能が低下する。
【０００８】
また、前記各文献に記載の従来技術では、第１の記憶制御装置の有する各機能は利用することはできるが、第２の記憶制御装置のみで実行可能な固有機能を有効に利用することができない。第１の記憶制御装置で実行不可能な機能を上位装置が要求した場合、第１の記憶制御装置は、直ちにエラー応答を返す可能性があるためである。
【０００９】
本発明は、上記の問題点に鑑みてなされたもので、その目的は、複数の記憶制御装置間で処理負荷を適切に分散させることができるようにしたストレージシステム及び記憶制御装置を提供することにある。本発明の他の目的は、第１記憶制御装置に接続された第２記憶制御装置のみで実行可能な固有機能の実行を上位装置から要求された場合に、この固有機能を第２記憶制御装置で実行させることができるようにしたストレージシステム及び記憶制御装置を提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明に従うストレージシステムは、上位装置からの要求を受け付ける第１記憶制御装置と、この第１記憶制御装置に通信可能に接続された少なくとも１つ以上の第２記憶制御装置とを備えたストレージシステムであって、第１記憶制御装置は、第２記憶制御装置の有する第２記憶領域を、第１記憶制御装置の有する第１記憶領域として、上位装置に提供可能となっている。さらに、第１記憶制御装置及び第２記憶制御装置の状況をそれぞれ検出する状況検出部と、第１記憶制御装置及び第２記憶制御装置でそれぞれ実行可能な機能を管理するための機能管理部と、上位装置から所定の機能の実行を要求された場合には、状況検出部と機能管理部とを用いることにより、各記憶制御装置の状況及び所定の機能の内容に基づいて、各記憶制御装置のうちいずれの記憶制御装置で所定の機能を実行すべきか判断する実行先判断部と、実行先判断部により実行先の記憶制御装置として決定された記憶制御装置に、所定の機能の実行を指示する実行指示部と、を備える。
【００１１】
本発明の実施形態では、各記憶制御装置がそれぞれ備える機能のうち、実行可能な機能を予め選択するための機能選択部をさらに備え、機能管理部は、各記憶制御装置毎に、機能選択部により選択された機能をそれぞれ管理する。
【００１２】
本発明の実施形態では、各記憶制御装置がそれぞれ実行可能な機能の動作モードを設定するための動作モード設定部をさらに備える。
【００１３】
本発明の実施形態では、各記憶制御装置がそれぞれ実行可能な機能には、この機能を実行させるための条件が予め設定されており、実行先判断部は、各記憶制御装置の状況及び所定の機能に予め対応付けられている条件に基づいて、各記憶制御装置のうちいずれの記憶制御装置で所定の機能を実行すべきかを判断する。
【００１４】
本発明の実施形態では、条件として、第１記憶制御装置の負荷が予め設定された第１閾値以上の場合に、所定の機能を第２記憶制御装置で実行すべき旨が設定されている。
【００１５】
本発明の実施形態では、条件として、第２記憶制御装置の負荷が予め設定された第２閾値未満の場合に、所定の機能を第２記憶制御装置で実行すべき旨が設定されている。
【００１６】
本発明の実施形態では、条件として、第１記憶制御装置の負荷が予め設定された第１閾値以上の場合であって、かつ、第２記憶制御装置の負荷が予め設定された第２閾値未満の場合に、所定の機能を第２記憶制御装置で実行すべき旨が設定されている。
【００１７】
本発明の実施形態では、第１記憶制御装置及び第２記憶制御装置でそれぞれ実行可能な機能は、各記憶制御装置がそれぞれ実行可能な共通機能と、各記憶制御装置のうちいずれか一方のみが実行可能な固有機能とに分けることができ、共通機能については、各記憶制御装置のうち、いずれの記憶制御装置で実行させるかを予め設定することができる。
【００１８】
本発明の実施形態では、第１記憶制御装置及び第２記憶制御装置でそれぞれ実行可能な機能は、各記憶制御装置がそれぞれ実行可能な共通機能と、各記憶制御装置のうちいずれか一方のみが実行可能な固有機能とに分けることができ、実行先判断部は、（１）共通機能については、第１記憶制御装置が共通機能を実行可能な場合に、第１記憶制御装置に共通機能を実行させ、第１記憶制御装置で実行不能な場合に、第２記憶制御装置の状況に基づいて、第２記憶制御装置に共通機能を実行させ、（２）固有機能については、第２記憶制御装置の状況に基づいて、第２記憶制御装置に固有機能を実行させる。
【００１９】
本発明の実施形態では、所定の機能は、データ内容の加工を伴う機能であって、第１記憶制御装置及び第２記憶制御装置は、所定の機能をそれぞれ実行可能であり、第１記憶制御装置が所定の機能を実行する場合には、第１記憶制御装置による所定の機能の実行を有効に設定すると共に、第２記憶制御装置による所定の機能の実行を無効に設定し、第２記憶制御装置が所定の機能を実行する場合には、第１記憶制御装置による所定の機能の実行を無効に設定すると共に、第２記憶制御装置による所定の機能の実行を有効に設定する、ようになっている。
【００２０】
本発明の実施形態では、データ内容の加工を伴う機能は、圧縮処理または暗号化処理の少なくともいずれか一方を含むことができる。
【００２１】
本発明の実施形態では、上位装置は、第１記憶領域について、所定の機能の実行を要求し、実行指示部は、実行先判断部によって第２記憶制御装置が実行先の記憶制御装置として決定された場合に、第２記憶領域に関して所定の機能を実行させるための実行指示を発行する。
【００２２】
本発明の実施形態では、第１記憶制御装置には、複数の第２記憶制御装置が通信可能にそれぞれ接続されており、かつ、該各第２記憶制御装置同士も通信可能に接続されており、実行指示部は、複数の第２記憶制御装置のうち、実行先判断部によって実行先の記憶制御装置として決定された第２記憶制御装置に所定の機能を実行させるための実行指示を発行し、この発行された実行指示は、複数の第２記憶制御装置のうち、実行先判断部により実行先の記憶制御装置として選択されなかった第２記憶制御装置を経由して、実行先の記憶制御装置として決定された第２記憶制御装置に伝達させるようになっている。
【００２３】
ここで、本発明の実施形態では、第２記憶制御装置を経由して伝達される前記所定の機能は、第２記憶領域内でのデータコピーまたは第２記憶領域を構成する記憶デバイスの電源制御機能の少なくともいずれか一方を含むことができる。
【００２４】
本発明の他の観点に従う記憶制御装置は、所定の機能の実行を要求する上位装置及び第２記憶制御装置とそれぞれ通信可能に接続される記憶制御装置であって、第２記憶制御装置の有する第２記憶領域を、自装置の有する第１記憶領域として、上位装置に仮想的に提供可能となっており、自装置及び第２記憶制御装置の状況をそれぞれ検出する状況検出部と、自装置及び第２記憶制御装置でそれぞれ実行可能な機能を管理するための機能管理部と、上位装置から所定の機能の実行を要求された場合には、状況検出部と機能管理部とを用いることにより、自装置及び第２記憶制御装置の状況と、所定の機能の内容とに基づいて、自装置または第２記憶制御装置のうちいずれの記憶制御装置で所定の機能を実行すべきか判断する実行先判断部と、実行先判断部により実行先の記憶制御装置として決定された記憶制御装置に、所定の機能の実行を指示する実行指示部と、を備える。
【００２５】
本発明のさらに別の観点に従うストレージシステムは、上位装置からの要求を受け付ける第１記憶制御装置と、この第１記憶制御装置に通信可能に接続された複数の第２記憶制御装置とを備えたストレージシステムであって、第１記憶制御装置は、少なくとも第１コントローラを備えており、各第２記憶制御装置は、指示された機能を実行するための第２コントローラ及び複数の記憶デバイスをそれぞれ備えている。
【００２６】
そして、第１コントローラは、第１記憶制御装置内に仮想的に設けられる１つまたは複数の中間記憶デバイスに、各第２記憶制御装置の有する各記憶デバイスによって提供される物理的記憶領域を対応付けることにより、中間記憶デバイス上に生成される論理ボリュームを上位装置に提供するようになっており、さらに、第１コントローラは、論理ボリュームと中間記憶デバイス及び各第２記憶制御装置の有する各記憶デバイスとの対応関係を管理するボリューム管理テーブルと、第１記憶制御装置及び各第２記憶制御装置でそれぞれ実行可能な機能が予め登録された機能管理テーブルと、機能管理テーブルに登録された各機能のうち、各第２記憶制御装置のいずれかで実行される可能性のある機能群については、これらの機能毎に、各第２記憶制御装置のいずれで実行させるかを予め設定する機能実行先管理テーブルと、第１記憶制御装置及び第２記憶制御装置の負荷状況をそれぞれ検出する状況検出部と、上位装置から所定の機能の実行を要求された場合には、状況検出部と機能管理テーブル及び機能実行先管理テーブルとを用いることにより、第１記憶制御装置または各第２記憶制御装置の状況及び所定の機能の内容に基づいて、第１記憶制御装置または各第２記憶制御装置のうちいずれの記憶制御装置で所定の機能を実行すべきか判断する実行先判断部と、実行先判断部により実行先の記憶制御装置として決定された記憶制御装置の有する第１コントローラまたは第２コントローラに、所定の機能の実行を指示する実行指示部と、を備えている。
【００２７】
本発明の各手段、各部の少なくとも一部は、コンピュータプログラムによって実行可能な場合がある。そして、このコンピュータプログラムは、各種記録媒体に固定された状態で配布したり、あるいは、通信媒体を介して送信することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面に基づき、本発明の実施形態を説明する。まず、図１は、本実施形態によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、１つの接続元記憶制御装置１と、少なくとも１つ以上の接続先記憶制御装置２，３とを含んで構成することができる。
【００２９】
ここで、接続元記憶制御装置１は、「第１記憶制御装置」に対応する。第１接続先記憶制御装置２及び第２接続先記憶制御装置３は、「第２記憶制御装置」に対応する。また、ホストコンピュータ（以下「ホスト」）４は、「上位装置」に対応する。接続元記憶制御装置１の有する仮想ボリューム１Ｂは、「第１記憶領域」に対応する。各接続先記憶制御装置２，３が有する実ボリューム２Ｂ，３Ｂは「第２記憶領域」に対応する。
【００３０】
接続元記憶制御装置１は、ホスト４からの各種要求を受け付けて処理し、その結果を返すものである。接続元記憶制御装置１には、複数の接続先記憶制御装置２，３が接続されている。接続元記憶制御装置１は、各接続先記憶制御装置２，３の有する実ボリューム２Ｂ，３Ｂを自分自身のボリューム１Ｂであるかのようにして、ホスト４に提供することができる。接続元記憶制御装置１は、ホスト４から要求されたデータ処理（機能）を実行し、その結果をホスト４に返す。このように、接続元記憶制御装置１は、複数の記憶制御装置１，２，３が混在するストレージシステムにおいて、ストレージシステムを代表する窓口としての役割を果たす。
【００３１】
接続元記憶制御装置１の構成を説明する。接続元記憶制御装置１は、例えば、制御部１Ａと、仮想ボリューム１Ｂと、上位通信部１Ｃ及び下位通信部１Ｄを備えて構成することができる。なお、上位通信部１Ｃ及び下位通信部１Ｄを制御部１Ａの外部に配置しているが、制御部１Ａ内に各通信部１Ｃ，１Ｄを設けてもよい。
【００３２】
後述のように、接続元記憶制御装置１は、ユーザデータを記憶するための物理的な記憶領域を備えている必要はない。従って、接続元記憶制御装置１は、ディスクアレイサブシステムのように構成することもできるし、ネットワークスイッチのように構成することもできる。
【００３３】
上位通信部１Ｃは、通信ネットワークCN１を介して、ホスト４に接続されており、ホスト４との間で双方向のデータ通信を行う。通信ネットワークCN１としては、例えば、LAN（Local Area Network）やSAN（Storage Area Network）等を用いることができる。即ち、上位通信部１Ｃとホスト４とは、TCP/IP（Transmission Control Protocol/Internet Protocol）や、FCP（Fibre Channel Protocol）を利用するデータ通信を行うことができる。
【００３４】
下位通信部１Ｄは、通信ネットワークCN２を介して、第１接続先記憶制御装置２に接続されている。また、下位通信部１Ｄは、通信ネットワークCN３を介して、第２接続先記憶制御装置３にも接続されている。通信ネットワークCN２，CN３としては、LANやSAN等を挙げることができる。また、通信ネットワークCN１，CN２，CN３は、同一のネットワークとして構成してもよい。
【００３５】
仮想ボリューム１Ｂは、ホスト４によって利用される論理的な記憶デバイスであり、論理ボリュームとも呼ばれる。以下の説明では、仮想ボリューム１Ｂを論理ボリューム１Ｂと呼ぶことがある。仮想ボリューム１Ｂには、ホスト４によって利用されるデータ（ユーザデータ）が記憶されている。しかし、仮想ボリューム１Ｂは、物理的な実体を備えていない。ユーザデータを実際に格納しているのは、第１接続先記憶制御装置２の有する実ボリューム２Ｂである。
【００３６】
実ボリューム２Ｂを仮想ボリューム１Ｂにマッピングすることにより、仮想ボリューム１Ｂのアドレス空間と実ボリューム２Ｂのアドレス空間とが対応付けられる。ホスト４が、仮想ボリューム１Ｂの所定アドレスを指定してライトデータを送信すると、このライトデータは、第１接続先記憶制御装置２に転送されて、実ボリューム２Ｂ内の所定アドレスに対応するアドレスに書き込まれる。ホスト４が、仮想ボリューム１Ｂの所定アドレスを指定してデータの読出しを要求すると、実ボリューム２Ｂ内の所定アドレスに対応するアドレスからデータが読み出され、第１接続先記憶制御装置２から接続元記憶制御装置１に送信される。接続元記憶制御装置１は、第１接続先記憶制御装置２から受信したデータをホスト４に送信する。
【００３７】
このように、ホスト４は、仮想ボリューム１Ｂの実体がストレージシステム内のどこに存在するかを全く意識することなく、仮想ボリューム１Ｂに対してデータの読み書きを行うことができる。接続元記憶制御装置１内の仮想ボリューム１Ｂに接続先記憶制御装置２の実ボリューム２Ｂを対応付けることにより、接続元記憶制御装置１の外部に存在する実ボリューム２Ｂをあたかも接続元記憶制御装置１内の論理ボリュームであるかのようにしてホスト４に提供する機能を、本明細書では、外部接続機能と呼ぶ。
【００３８】
制御部１Ａの構成を説明する。制御部１Ａは、上述した外部接続機能の他に、例えば、機能実行部１Ａ１と、実行先判断部１Ａ２と、機能管理部１Ａ３と、状況検出部１Ａ４と、実行指示部１Ａ５と、動作モード設定部１Ａ６及び機能選択部１Ａ７を備えて構成することができる。
【００３９】
機能実行部１Ａ１は、ホスト４から要求された機能を実行するためのものである。ここで、機能としては、例えば、ローカルボリュームコピー機能、リモートコピー機能、スナップショット機能、暗号化処理（復号化処理を含む）機能、圧縮処理（伸張処理を含む）機能等を挙げることができる。
【００４０】
ローカルボリュームコピー機能とは、コピー元ボリューム及びコピー先ボリュームの両方が同一の筐体内に存在する場合において、コピー元ボリュームからコピー先ボリュームへデータの全部または一部をコピーさせる機能である。従って、ローカルボリュームコピー機能は、筐体内ボリュームコピー機能と呼ぶこともできる。
【００４１】
リモートコピー機能とは、コピー元ボリュームとコピー先ボリュームとが別々の筐体内に存在する場合において、コピー元ボリュームからコピー先ボリュームへデータの全部または一部をコピーさせる機能である。リモートコピー機能は、筐体間ボリュームコピー機能と呼ぶこともできる。また、リモートコピー機能は、同期式リモートコピー機能と非同期式リモートコピー機能とに大別することができる。同期式リモートコピー機能とは、上位装置からコピー元ボリュームへのライト要求に対し、データ転送先（コピー先ボリュームを持つ記憶制御装置）におけるライト処理完了を確認してから、上位装置へライト完了応答を行う機能である。非同期式リモートコピー機能とは、上位装置からコピー元ボリュームへのライト要求に対し、データ転送先におけるライト処理完了を確認することなく、上位装置へライト完了応答を行う機能である。
【００４２】
スナップショット機能とは、指示された所定時点における論理ボリューム１Ｂの静止化された記憶イメージを作成する機能である。スナップショット機能は、ボリュームコピー機能を利用して作成した同期したボリュームを保存することによって実現する方法や、上位装置からのライト要求が発生した際にライト対象領域の旧データを別領域に退避（コピー）した後に新データを書き込むことによって実現する方法や、上位装置から静止化された領域にライト要求があった場合は別領域に新データを書き込むことによって実現する方法等がある。
【００４３】
マイグレーション機能とは、指示された所定の論理ボリューム１Ｂの一部または全部を、ホストのアクセスパスを変えることなく別の論理ボリューム１Ｂに移動させる機能である。マイグレーション機能の実現方法には、ボリュームコピー機能等を利用して同期したボリュームを作成した後に、ホストから移動元へのデータアクセスを移動先へのデータアクセスに変換する方法や、先にアクセスを移動先に変換してから、移動元のデータを順次移動先へとコピーしていく方法等がある。
【００４４】
暗号化処理機能とは、データを所定の暗号アルゴリズムに基づいて暗号化したり、暗号化されたデータを復号化する機能である。圧縮処理機能とは、データを圧縮アルゴリズムに基づいて圧縮したり、圧縮されたデータを伸張する機能である。
【００４５】
機能実行部１Ａ１は、上述した各機能の全部または一部を実行する。上記各機能のうち、接続元記憶制御装置１及び各接続先記憶制御装置２，３が共通に備えている機能を共通機能Ｆ１と呼び、共通機能Ｆ１以外の機能を固有機能Ｆ２と呼ぶことができる。図１に示す例では、接続元記憶制御装置１は、共通機能Ｆ１のみを実行可能であり、各接続先記憶制御装置２，３は、共通機能Ｆ１及び固有機能Ｆ２をそれぞれ実行可能である。従って、固有機能Ｆ２は、例えば、接続先記憶制御装置２，３でのみ実行可能な機能と呼ぶことができる。
【００４６】
実行先判断部１Ａ２は、ホスト４から実行を要求された機能を、各記憶制御装置１，２，３のいずれで実行させるべきかを判断するものである。実行先判断部１Ａ２は、機能管理部１Ａ３と状況検出部１Ａ４とを用いることにより、ホスト４から要求された機能を実行すべき記憶制御装置を１つ選択する。
【００４７】
機能管理部１Ａ３は、各記憶制御装置１，２，３のそれぞれにおいて、実行可能な（利用可能な）機能がどれであるかを管理する。機能選択部１Ａ７は、各記憶制御装置１，２，３が有する複数の機能のうち、いずれの機能を実行可能とするかを選択する。即ち、機能管理部１Ａ３は、機能選択部１Ａ７によって各記憶制御装置１，２，３毎にそれぞれ選択された機能を管理する。従って、実行先判断部１Ａ２は、機能管理部１Ａ３を用いることにより、どの記憶制御装置がどの機能を実行可能であるかを把握できる。
【００４８】
状況検出部１Ａ４は、各記憶制御装置１，２，３の状況をそれぞれ検出する。状況としては、例えば、各記憶制御装置１，２，３の負荷状態を挙げることができる。負荷状態を検出するためのパラメータとしては、例えば、単位時間あたりのデータ入出力要求の数（IOPS）、CPU（Central Processing Unit）の使用率、キャッシュメモリの使用率等を挙げることができる。これらのパラメータを複数組み合わせて、負荷状態を判断することもできる。なお、記憶制御装置の状況としては、負荷状態に限らず、例えば、各記憶制御装置１，２，３が起動しているか否か等を用いてもよい。保守作業等で停止している場合は、その記憶制御装置を選択しても、ホスト４から要求された機能を実行させることができないためである。
【００４９】
実行先判断部１Ａ２は、状況検出部１Ａ４を用いることにより、各記憶制御装置１，２，３の状況を把握することができる。実行先判断部１Ａ２は、ホスト４から実行を要求された機能が各記憶制御装置１，２，３のいずれで実行可能であるかと、各記憶制御装置１，２，３の現在状況とに基づいて、実行を要求された機能の実行先を選択する。
【００５０】
実行指示部１Ａ５は、実行先判断部１Ａ２によって選択された記憶制御装置に向けて、ホスト４が実行を要求する機能を実行させるための指示を発行する。もしも、実行先記憶制御装置として接続元記憶制御装置１が選択された場合、実行指示部１Ａ５は、機能実行部１Ａ１に、実行指示を与える。もしも、実行先記憶制御装置として接続先記憶制御装置２，３のいずれかが選択された場合、実行指示部１Ａ５は、選択された接続先記憶制御装置２または３のいずれかに、実行指示を与える。
【００５１】
動作モード設定部１Ａ６は、実行可能な機能について、その動作モードを設定するためのものである。ある機能が複数の動作モードを備えており、各動作モードを切り替え可能である場合、動作モード設定部１Ａ６は、いずれか１つの動作モードを選択するように設定する。例えば、データを圧縮するための圧縮モードと圧縮データを伸張するための伸張モードとを切り替えて実行可能な圧縮処理機能の場合、動作モード設定部１Ａ６は、いずれかのモードを選択する。同様に、データを暗号化させるための暗号化モードと暗号データを復号化するための復号モードとを切り替えて実行可能な暗号化処理機能の場合、動作モード設定部１Ａ６は、いずれかのモードを選択する。
【００５２】
次に、第１接続先記憶制御装置２の構成を説明する。第１接続先記憶制御装置２は、接続元記憶制御装置１に物理的な記憶領域を提供する。従って、第１接続先記憶制御装置２は、制御部２Ａと、実ボリューム２Ｂと、上位通信部２Ｃを備えている。また、第１接続先記憶制御装置２は、第２接続先記憶制御装置３と連携して動作可能である。このため、第１接続先記憶制御装置２は、下位通信部２Ｄを備えている。第１接続先記憶制御装置２は、例えば、ディスクアレイサブシステムのように構成される。
【００５３】
制御部２Ａは、第１接続先記憶制御装置２の動作を制御するものであり、機能実行部２Ａ１を備えている。機能実行部２Ａ１は、共通機能Ｆ１及び固有機能Ｆ２をそれぞれ実行可能であり、指示された機能を実行する。
【００５４】
実ボリューム２Ｂは、データを記憶するための物理的実体に結びつけられた論理的記憶デバイス（論理ボリューム）である。本明細書では、物理的実体に結びつけられている論理ボリュームを実ボリュームと呼び、物理的実体に直接的に結びつけられていない論理ボリュームを仮想ボリュームと呼ぶことがある。より詳しくは、例えば、ハードディスクドライブのような複数の記憶デバイスがそれぞれ有する物理的記憶領域を統合して仮想化し、この仮想化された物理的記憶デバイス（中間記憶デバイスとも呼ぶ）の有する記憶領域上に、実ボリュームを生成する。
【００５５】
上位通信部２Ｃは、接続元記憶制御装置１と通信ネットワークCN２を介して接続されており、接続元記憶制御装置１との間で双方向のデータ通信を行う。下位通信部２Ｄは、第２接続先記憶制御装置３と通信ネットワークCN４を介して接続されており、第２接続先記憶制御装置３との間で双方向のデータ通信を行う。通信ネットワークCN４としては、SANやLAN等を用いることができる。また、通信ネットワークCN４と通信ネットワークCN１，CN２，CN３とを同一のネットワークとして構成することもできる。
【００５６】
第２接続先記憶制御装置３は、第１接続先記憶制御装置２と同様に、接続元記憶制御装置１に物理的な記憶領域を提供する。従って、第２接続先記憶制御装置３は、第１接続先記憶制御装置２と同様に、例えば、制御部３Ａと、実ボリューム３Ｂとを備えたディスクアレイサブシステムのように構成することができる。なお、紙面の都合上、通信部の構成を省略しているが、第２接続先記憶制御装置３も、上位通信部を備えている。また、第２接続先記憶制御装置３の下流にさらに別の記憶制御装置を接続する場合、第２接続先記憶制御装置３に下位通信部が設けられる。
【００５７】
制御部３Ａは、第２接続先記憶制御装置３の動作を制御するものであり、機能実行部３Ａ１を備えている。機能実行部３Ａ１は、共通機能Ｆ１及び固有機能Ｆ２をそれぞれ実行可能であり、指示された機能を実行する。実ボリューム３Ｂは、接続元記憶制御装置１の仮想ボリューム１Ｂに対応付けることができる。なお、後述の実施例のように、第１接続先記憶制御装置２に外部接続機能を設け、第１接続先記憶制御装置２内の仮想ボリュームに第２接続先記憶制御装置３の実ボリューム３Ｂを対応付けることもできる。
【００５８】
次に、本ストレージシステムの動作を説明する。外部接続機能によるデータのリード処理及びライト処理については、既に述べたので割愛する。ホスト４は、リード要求及びライト要求以外の所定の機能（ボリュームコピー機能や圧縮機能等）の実行を、接続元記憶制御装置１に要求する。この実行要求には、所定の機能を適用すべきボリュームを特定するための情報が含まれている。
【００５９】
実行先判断部１Ａ２は、ホスト４からの実行要求を受領すると、機能管理部１Ａ３及び状況検出部１Ａ４を用いることにより、実行を要求された機能を各記憶制御装置１，２，３のいずれで実行させるべきかを決定する。
【００６０】
機能管理部１Ａ３によって管理されている複数の機能の全部または一部には、予め実行条件を設定しておくことができる。条件としては、例えば、「接続元記憶制御装置の負荷が高い場合には、接続先記憶制御装置で実行させる。」、「接続先記憶制御装置の負荷が低い場合には、その接続先記憶制御装置で代行処理させる。」、「接続元記憶制御装置の負荷が高く、かつ、接続先記憶制御装置の負荷が低い場合には、その接続先記憶制御装置で実行させる。」等を挙げることができる。
【００６１】
実行先判断部１Ａ２は、実行を要求された所定の機能がいずれの記憶制御装置１，２，３で実行可能であるかを確認し、実行可能な記憶制御装置の現在の状況が実行条件を満足するか否かを判定する。そして、実行先判断部１Ａ２は、実行条件を満たす記憶制御装置を実行先記憶制御装置として選択する。
【００６２】
実行指示部１Ａ５は、実行先として決定された記憶制御装置の機能実行部１Ａ１，２Ａ１，３Ａ１に向けて、所定の機能の実行を指示する。実行指示部１Ａ５は、ホスト４からの実行要求をそのままで、あるいは、ホスト４からの実行要求を他の実行要求に変換して、実行を指示する。
【００６３】
例えば、接続元記憶制御装置１が２つの仮想ボリューム１Ｂを有しており、一方の仮想ボリューム１Ｂは第１接続先記憶制御装置２の実ボリューム２Ｂに、他方の仮想ボリューム１Ｂは第２接続先記憶制御装置３の実ボリューム３Ｂに、それぞれ対応付けられているとする。この構成において、ホスト４が、一方の仮想ボリューム１Ｂから他方の仮想ボリューム１Ｂへのデータコピーの実行を要求したとする。
【００６４】
接続元記憶制御装置１が実行先記憶制御装置として選択されている場合、実行指示部１Ａ５は、ローカルボリュームコピー機能の実行を機能実行部１Ａ１に指示する。機能実行部１Ａ１は、ローカルボリュームコピー機能を実行することにより、一方の仮想ボリューム１Ｂから読み出したデータを、他方の仮想ボリューム１Ｂに書き込ませる。
【００６５】
第１接続先記憶制御装置２が実行先記憶制御装置として選択されている場合、実行指示部１Ａ５は、リモートコピー機能の実行を機能実行部２Ａ１に指示する。機能実行部２Ａ１は、実ボリューム２Ｂから読み出したデータを、リモートコピー機能によって第２接続先記憶制御装置３に送信し、実ボリューム３Ｂに記憶させる。
【００６６】
このように、ホスト４の望む実行結果が得られるように、実行指示部１Ａ５は、実行先として選択された記憶制御装置及び所定の機能の内容（ホスト４が期待する処理内容）とに基づいて、ホスト４からの実行要求を変換できるようになっている。
【００６７】
本実施形態は、上述のように構成されるため、以下の効果を奏する。第１に、本実施形態では、ホスト４が実行を要求する所定の機能の内容及び各記憶制御装置１，２，３の状況に基づいて、所定の機能を実行すべき記憶制御装置を選択する。従って、特定の記憶制御装置の処理負担が増加するのを抑制することができ、ストレージシステム内で、より適切な負荷分散を行うことができる。
【００６８】
第２に、本実施形態では、接続先記憶制御装置２，３のみで実行可能な固有機能Ｆ２の実行をホスト４が要求した場合、接続先記憶制御装置２，３の状況に応じて、適切な実行先記憶制御装置を選択し、実行させる。従って、接続元記憶制御装置１が有していない機能であっても、接続先記憶制御装置２，３で実行可能な機能Ｆ２であれば、その機能Ｆ２を実行させることができる。これにより、接続先記憶制御装置２，３でのみ実行可能な機能Ｆ２を有効に利用することができ、この機能Ｆ２を接続元記憶制御装置１に実装することなく、接続元記憶制御装置１を、見かけ上高機能化させることができる。
【００６９】
接続元記憶制御装置１に実装されておらず、接続先記憶制御装置２，３にのみ実装されている機能Ｆ２を利用するためには、その機能Ｆ２の実行指示を受け付けるためのインターフェースが必要となる。この非実装機能の実行指示を受け付けるためのインターフェースは、例えば、上位通信部１Ｃに設けることができる。このようなインターフェースの実装方法としては、例えば、標準化団体等によって推進される共通インタフェースを実装する方法、特殊な論理デバイスの特定アドレスに対するリード命令やライト命令を接続先記憶制御装置２，３における機能Ｆ２の実行指示に予め関連付けておく方法、ベンダユニークコマンドとして予め定義しておく方法、接続先記憶制御装置２，３で使用されているインターフェースを接続元記憶制御装置１に実装し直す方法等を挙げることができる。
【００７０】
上述した第２の作用効果に着目すると、本実施形態は、例えば、
「上位装置（４）からの要求を受け付ける第１記憶制御装置（１）と、この第１記憶制御装置に通信可能に接続された少なくとも１つ以上の第２記憶制御装置（２，３）とを備えたストレージシステムであって、
第１記憶制御装置は、第２記憶制御装置の有する第２記憶領域（２Ｂ）を、第１記憶制御装置の有する第１記憶領域（１Ｂ）として、上位装置に提供可能となっており、
第２記憶制御装置にのみ実装されている機能（Ｆ２）の実行要求が上位装置から発行された場合には、この実行指示を受け付ける受付部（１Ｃ）と、
第１記憶制御装置及び第２記憶制御装置でそれぞれ実行可能な機能を管理するための機能管理部（１Ａ３）と、
受付部を介して、上位装置から所定の機能（Ｆ２）の実行を要求された場合には、機能管理部を用いることにより、所定の機能を実行可能な第２記憶制御装置を選択する実行先判断部（１Ａ２）と、
実行先判断部により実行先の記憶制御装置として決定された接続先記憶制御装置に、所定の機能の実行を指示する実行指示部と、を備えたストレージシステム。」のように、表現することができる。
【００７１】
なお、ホスト４から記憶制御装置１への指示や記憶制御装置１から記憶制御装置２，３への指示は、いわゆるインバンド方式またはアウトオブバンド方式のいずれかを用いて行うことができる。即ち、データ入出力用のネットワークを介して指示を与えることもできるし（インバンド方式）、管理用のネットワークを介して指示を与えることもできる（アウトオブバンド方式）。以下、本実施形態を詳細に説明する。
【実施例１】
【００７２】
図２は、本実施例によるストレージシステムの全体構成を示す説明図である。このストレージシステムは、例えば、１つの接続元記憶制御装置１００と、複数の接続先記憶制御装置２００と、１つまたは複数のホスト１０と、１つまたは複数の管理サーバ２０と、を備えて構成することができる。
【００７３】
図２に示す構成と図１に示す構成との対応関係を説明すると、接続元記憶制御装置１００は図１中の接続元記憶制御装置１に、第１接続先記憶制御装置２００は図１中の第１接続先記憶制御装置２に、第２接続先記憶制御装置３００は図１中の第２接続先記憶制御装置３に、ホスト１０は図１中のホスト４に、それぞれ対応する。また、仮想ボリューム１１３は図１中の仮想ボリューム１Ｂに、実ボリューム２１３，３１３は図１中の実ボリューム２Ｂ，３Ｂにそれぞれ対応する。
【００７４】
接続元記憶制御装置１００は、接続先記憶制御装置２００，３００を代表して、ホスト１０からの各種コマンドを受け付ける装置である。接続先記憶制御装置２００，３００は、接続元記憶制御装置１００に実ボリューム２１３，３１３を提供するものである。各記憶制御装置１００，２００，３００の詳細は、後述する。
【００７５】
ホスト１０は、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成されるコンピュータ装置である。ホスト１０には、例えば、ＲＡＩＤ（Redundant Array of Independent Disks）を管理するためのプログラムや、パスを管理するためのプログラム、各種アプリケーションプログラム等を設けることができる。
【００７６】
ホスト１０は、接続元記憶制御装置１００のボリューム１１３にアクセスし、データの読み書きを行う。管理サーバ２０は、管理用の通信ネットワークCN１３を介して、ホスト１０及び各記憶制御装置１００，２００，３００にそれぞれ接続されている。
【００７７】
管理サーバ２０は、各ホスト１０及び各記憶制御装置１００，２００，３００の状態等を管理するものである。管理用の通信ネットワークCN３としては、例えば、LANを挙げることができる。
【００７８】
ホスト１０と接続元記憶制御装置１００とは、例えば、SAN等の通信ネットワークCN１１を介して接続されている。また、接続元記憶制御装置１００と各接続先記憶制御装置２００，３００とは、例えば、SAN等の通信ネットワークCN１２を介して、それぞれ接続されている。
【００７９】
ここで、SANは、FCPを用いるFC_SANでもよいし、または、IP（Internet Protocol）を用いるIP_SANでもよい。また、ネットワークCN１１をFC_SANとして、ネットワークCN１２をIP_SANとして構成する場合のように、CN１１とCN１２とを別々のSANとして構成することもできる。また、CN１１とCN１２とを統合し、共通のネットワークによって、ホスト１０と各記憶制御装置１００，２００，３００及び各記憶制御装置１００，２００，３００同士をそれぞれ接続する構成でもよい。
【００８０】
図３は、各記憶制御装置１００，２００，３００のハードウェア構成を示す構成説明図である。図３では、接続元記憶制御装置１００の構成例を中心に示している。接続元記憶制御装置１００は、例えば、コントローラ１０１と、記憶部１１０とを備えたディスクアレイサブシステムのように構成することができる。なお、、接続元記憶制御装置１００は、例えば、スイッチングデバイスのような中継装置として構成することもできる。
【００８１】
コントローラ１０１は、接続元記憶制御装置１００の動作を制御する。コントローラ１０１は、例えば、複数のチャネルアダプタ（以下「CHA」）１２０と、複数のディスクアダプタ（以下「DKA」）１３０と、キャッシュメモリ１４０と、共有メモリ１５０と、接続制御部１６０と、サービスプロセッサ（以下「SVP」）１７０とを備えて構成できる。なお、コントローラ１０１の構成は、図３に示すものに限らない。ホスト１０及び接続先記憶制御装置２００，３００との通信機能や外部接続機能、実行先判断機能等を実現できる構成であればよい。
【００８２】
CHA１２０は、ホスト１０との間のデータ通信を制御するものである。CHA１２０は、例えば、マイクロプロセッサやメモリ、プロトコルチップ、データ転送チップ等を備えたコンピュータ装置として構成することができる。CHA１２０は、複数の通信ポート１２１を備えている。各通信ポート１２１には、例えば、IPアドレスやWWN（World wide Name）のようなネットワークアドレスが、それぞれ割り当てられている。
【００８３】
通信ポート１２１には、例えば、イニシエータポート、ターゲットポートのような役割を設定可能である。ターゲットポートに設定された通信ポート１２１は、ホスト１０に接続される。イニシエータポート（外部接続用ポート）に設定された通信ポート１２１は、接続先記憶制御装置２００，３００に接続される。なお、ホスト１０と接続元記憶制御装置１００との間、接続元記憶制御装置１００と各接続先記憶制御装置２００，３００との間を、それぞれ複数の通信パスで接続してもよい。これにより、通信負荷を分散させたり、耐障害性を向上させることができる。
【００８４】
DKA１３０は、記憶部１１０との間のデータ通信を制御するものである。DKA１３０は、CHA１２０と同様に、マイクロプロセッサやメモリ等を備えたコンピュータ装置として構成される。DKA１３０の通信ポート１３１は、通信ネットワークCN２１を介して、記憶部１１０に接続されている。
【００８５】
キャッシュメモリ１４０は、ホスト１０から受信したライトデータや、記憶部１１０から読み出されたリードデータ等を記憶する。共有メモリ１５０は、記憶制御装置１００の動作を制御するために必要な各種の制御情報や管理情報等が記憶される。なお、複数のキャッシュメモリ１４０を設け、記憶部１１０に書き込まれていないデータ（いわゆるダーティデータ）を冗長記憶するようにしてもよい。また、キャッシュメモリ１４０と共有メモリ１５０とを同一のメモリパッケージとして構成してもよい。さらに、あるメモリの一部を制御メモリ領域として使用し、残りの部分をキャッシュメモリ領域として使用する構成でもよい。
【００８６】
接続制御部１６０は、例えば、クロスバスイッチ等のように構成される。接続制御部１６０は、各CHA１２０，各DKA１３０を、キャッシュメモリ１４０，共有メモリ１５０にそれぞれ接続させる。
【００８７】
SVP１７０は、内部LAN等を介して、CHA１２０やLANインターフェース１８０に接続されている。SVP１７０は、記憶制御装置１００内の各種ステータス等の情報を定期的にまたは不定期に収集し、収集した情報に基づいて、警告信号や解析結果等を出力する。
【００８８】
図３では、紙面の都合上省略しているが、SVP１７０は、図２に示す管理端末３１に接続されている。管理端末３１は、例えば、パーソナルコンピュータや携帯情報端末等のように構成される。管理端末３１は、SVP１７０を介して、記憶制御装置１００の内部状態を把握することができる。また、ユーザは、管理端末３１からSVP１７０を介して、記憶制御装置１００の設定を変更することもできる。
【００８９】
LANインターフェース１８０は、管理用ネットワークCN１３に接続されている。SVP１７０は、LANインターフェース１８０を介して、管理サーバ２０やホスト１０にも接続可能である。従って、管理サーバ２０やホスト１０は、管理用ネットワークCN１３を介して、記憶制御装置１００の情報を取得したり、記憶制御装置１００を管理可能である。ホスト１０から記憶制御装置１００を管理する場合は、管理用プログラムを予めホスト１０に実装しておく。
【００９０】
記憶部１１０は、例えば、アレイ状に接続された複数のディスクドライブ１１１を備えている。ディスクドライブ１１１は、「記憶デバイス」に該当する。ディスクドライブ１１１は、例えば、ハードディスクドライブ、半導体メモリドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープドライブ等のような種々の記憶デバイスとして構成することができる。
【００９１】
ハードディスクドライブの場合、例えば、FC（Fibre Channel）ディスク、SATA（Serial AT Attachment）ディスク、SCSI（Small Computer System Interface）ディスクのように、種々の種類のハードディスクドライブを利用可能である。また、記憶部１１０内に、異なる種類の記憶デバイスを混在させることもできる。
【００９２】
例えば、４台や８台等のような所定数のディスクドライブ１１１によって、一つのグループが構成される。このグループをRAIDグループ（パリティグループ）１１２と呼ぶ。RAIDグループ１１２に参加する各ディスクドライブ１１１は、それぞれ物理的な記憶領域を提供し、これら物理的な記憶領域の集合体が形成される。従って、RAIDグループ１１２は、物理的記憶デバイスと呼ぶことができる。RAIDレベルによっても相違するが、グループ１１２に参加する各ディスクドライブ１１１のうち、一つまたは複数のディスクドライブ１１１は、パリティデータの格納に使用される。なお、後述のように、RAIDグループ１１２には、中間記憶デバイス１１２Ｖが設定される。
【００９３】
RAIDグループ１１２の物理的記憶領域には、一つまたは複数の論理ボリューム１１３を設定することができる。論理ボリューム１１３は、CHA１２０の通信ポート１２１に割り当てられ、ホスト１０からのアクセス対象となる。論理ボリューム１１３は、論理的記憶デバイスと呼ぶことができる。
【００９４】
概念的には、記憶部１１０内には、点線で示すように、仮想的な論理ボリューム（仮想ボリューム）１１３も設けられる。但し、仮想ボリューム１１３の物理的実体は、記憶部１１０内に存在せず、接続先記憶制御装置２００，３００内に存在する。接続元記憶制御装置１００は、上述の外部接続機能によって、接続先記憶制御装置２００，３００の記憶資源を、自分自身の記憶資源であるかのように取り込むことができる。従って、記憶制御装置１００は、必ずしもディスクドライブ１１１を備えている必要はなく、ネットワークスイッチのように構成することもできる。
【００９５】
次に、第１接続先記憶制御装置２００の構成を説明する。この接続先記憶制御装置２００は、例えば、コントローラ２０１と、記憶部２１０とを備えるディスクアレイサブシステムとして構成することができる。
【００９６】
コントローラ２０１は、接続先記憶制御装置２００の動作を制御するもので、上述したコントローラ１０１と同様に、CHA機能、DKA機能、キャッシュメモリ、共有メモリ等を備えている。コントローラ２０１は、通信ポート２２１を介して、コントローラ１０１の通信ポート１２１に接続されている。コントローラ２０１とコントローラ１０１との間には、通信パスＰ１が設定されている。また、コントローラ２０１は、通信ポート２３１を介して、記憶部２１０に接続されている。
【００９７】
記憶部２１０は、上述した記憶部１１０と同様に、複数のディスクドライブ２１１を備えている。そして、複数のディスクドライブ２１１によってRAIDグループ２１２が構成されている。このRAIDグループ２１２には、論理ボリューム（実ボリューム）２１３が設けられる。
【００９８】
第２接続先記憶制御装置３００は、第１接続先記憶制御装置２００と同様に、コントローラ３０１と、記憶部３１０とを備えるディスクアレイサブシステムとして構成することができる。
【００９９】
コントローラ３０１は、接続先記憶制御装置３００の動作を制御する。コントローラ３０１は、コントローラ２０１と同様に、CHA機能、DKA機能、キャッシュメモリ、共有メモリ等を備えている。コントローラ３０１は、通信ポート３２１を介して、コントローラ１０１の通信ポート１２１に接続されている。コントローラ３０１とコントローラ１０１との間には、通信パスＰ２が設定されている。また、コントローラ３０１は、通信ポート３２１を介して、コントローラ２０１の通信ポート２２１と接続されている。コントローラ３０１とコントローラ２０１との間には、通信パスＰ３が設定されている。
【０１００】
記憶部３１０は、記憶部２１０と同様に、複数のディスクドライブ３１１と、RAIDグループ３１２及び論理ボリューム（実ボリューム）３１３を備えている。
【０１０１】
なお、紙面の都合上、接続先記憶制御装置を２台のみ示しているが、これに限らず、３台以上の接続先記憶制御装置を設けることもできる。また、接続先記憶制御装置にも外部接続機能を搭載することにより、ある接続先記憶制御装置を接続元として、別の接続先記憶制御装置に接続させることもできる。
【０１０２】
ここで、先に、CHA１２０及びDKA１３０による通常のリードコマンド処理及びライトコマンド処理を説明する。CHA１２０は、ホスト１０から発行されたリードコマンドを受信すると、このリードコマンドを共有メモリ１５０に記憶させる。DKA１３０は、随時、共有メモリ１５０を参照している。
【０１０３】
DKA１３０は、未処理のリードコマンドを発見すると、このリードコマンドに含まれる読出し先アドレスをディスクドライブ１１１の物理的なアドレスに変換し、所定のディスクドライブ１１１からデータを読み出す。DKA１３０は、ディスクドライブ１１１から読出したデータを、キャッシュメモリ１４０に記憶させる。CHA１２０は、キャッシュメモリ１４０に記憶されたデータを読み出して、ホスト１０に送信する。
【０１０４】
CHA１２０がホスト１０から発行されたライトコマンドを受信した場合、CHA１２０は、ライトデータを記憶させるための領域をキャッシュメモリ１４０に確保し、ライトコマンドを共有メモリ１５０に記憶させる。次に、CHA１２０は、ホスト１０から受信したライトデータをキャッシュメモリ１４０に記憶させる。
【０１０５】
DKA１３０は、共有メモリ１５０に記憶されたライトコマンドを確認し、キャッシュメモリ１４０からライトデータを読み出す。DKA１３０は、上述のアドレス変換を行った後、所定のディスクドライブ１１１にライトデータを記憶させる。
【０１０６】
なお、ライトデータをキャッシュメモリ１４０に記憶させた時点で、CHA１２０は、ライトコマンドの処理が完了した旨をホスト１０に通知することができる（非同期処理）。あるいは、DKA１３０がライトデータをディスクドライブ１１１に書き込んだことを確認した時点で、CHA１２０は、ホスト１０にライトコマンドの処理完了を通知することもできる（同期処理）。
【０１０７】
以上が、記憶制御装置１００の実ボリュームに対するデータ入出力処理である。次に、仮想ボリュームに対するデータ入出力処理を説明する。ここでは、接続元記憶制御装置１００内の仮想ボリューム１１３が、第１接続先記憶制御装置２００内の実ボリューム２１３に対応付けられているものとして説明する。
【０１０８】
まず、仮想ボリュームに対するリードコマンドが発行された場合、CHA１２０は、リードコマンドのボリューム識別子やアドレスを、実ボリューム２１３のものに変換し、リードコマンドを接続先記憶制御装置２００に送信する。接続先記憶制御装置２００は、このリードコマンドに従って実ボリューム２１３からデータを読出し、読出したデータを接続元記憶制御装置１００に送信する。CHA１２０は、接続先記憶制御装置２００からデータを受信すると、このデータをキャッシュメモリ１４０に記憶させる。そして、CHA１２０は、キャッシュメモリ１４０に記憶されたデータをホスト１０に送信する。
【０１０９】
仮想ボリュームに対するライトコマンドが発行された場合、CHA１２０は、ライトコマンドのボリューム識別子やアドレスを、実ボリューム２１３のものに変換する。また、CHA１２０は、ホスト１０から受信したライトデータをキャッシュメモリ１４０に記憶させる。CHA１２０は、ライトコマンド及びライトデータを、接続先記憶制御装置２００に送信する。接続先記憶制御装置２００は、接続元記憶制御装置１００から受信したライトデータを実ボリューム２１３に記憶させる。
【０１１０】
図４は、ストレージシステムの記憶構成を模式的に示す説明図である。接続元記憶制御装置１００は、複数の論理ボリューム１１３を備えることができる。各論理ボリュームは、実ボリュームと仮想ボリュームとに大別される。図４中では、実線で示す実ボリュームを「R-LU」と、点線で示す仮想ボリュームを「V-LU」として区別している。
【０１１１】
各論理ボリューム１１３は、実ボリュームであるか仮想ボリュームであるかを問わずに、中間記憶デバイス（VDEV）１１２Ｖに接続されている。
【０１１２】
この中間記憶デバイス１１２Ｖは、RAIDグループ１１２に対応する。但し、物理的実体を伴わない中間記憶デバイス１１２Ｖは、仮想的な中間記憶デバイスであり、キャッシュメモリ１４０上に存在する。物理的実体を伴わない中間記憶デバイスとは、接続元記憶制御装置１００内のディスクドライブ１１１に結びつけられていないデバイスのことであり、即ち、仮想ボリュームが設けられるデバイスを意味する。
【０１１３】
これらの仮想的な中間記憶デバイス（VDEV＃１２，VDEV＃１３，VDEV＃１４）１１２Ｖは、最終的に、いずれかの実ボリュームに対応付けられる。図４中に「VDEV＃１２，VEDV＃１３」として示す中間記憶デバイス１１２Ｖは、第１接続先記憶制御装置２００の実ボリューム（R-LU＃２１）２１３，第１接続先記憶制御装置２００の実ボリューム（R-LU＃２２）２１３及び第２接続先記憶制御装置３００の実ボリューム（R-LU＃３１）３１３に、それぞれ対応付けられている。
【０１１４】
なお、「VDEV＃１４」として示す中間記憶デバイス１１２Ｖは、第１接続先記憶制御装置２００内の仮想ボリューム（V-LU＃２３）２１３を介して、第２接続先記憶制御装置３００内の実ボリューム（R-LU＃３２）に接続されている。このように、ホスト１０に提供される仮想ボリュームを、別の仮想ボリュームを経由して、実ボリュームに対応付けることも可能である。
【０１１５】
各接続先記憶制御装置２００，３００も、接続元記憶制御装置１００の記憶階層と同様に、物理的記憶層（ディスクドライブ２１１，３１１）と、物理的記憶層を仮想化してなる中間記憶層（２１２Ｖ，３１２Ｖ）と、中間記憶層の記憶領域を切り取るかのようにして設けられる論理的記憶層（２１３，３１３）を備えることができる。
【０１１６】
なお、図４に示す構成は、説明のための例示であり、これに限定されない。例えば、１つのディスクドライブに中間記憶デバイスを設けることもできる。あるいは、１つの中間記憶デバイスから複数の論理ボリュームを構成することもできるし、または、複数の中間記憶デバイスから１つの論理ボリュームを構成することもできる。
【０１１７】
図５は、ストレージシステム内の論理ボリュームを管理するためのボリューム管理テーブルＴ１を示す説明図である。このボリューム管理テーブルＴ１は、接続元記憶制御装置１００の共有メモリ１５０に記憶させることができる。また、テーブルＴ１の全部または一部を、例えば、各CHA１２０内のローカルメモリにコピーさせることもできる。さらに、このテーブルＴ１を、接続先記憶制御装置２００，３００にもコピーし、全記憶制御装置が共有することもできる。
【０１１８】
ボリューム管理テーブルＴ１は、例えば、ボリューム番号と、ボリュームサイズと、中間記憶デバイス番号と、中間記憶デバイスのサイズと、デバイス種別と、装置番号と、アドレス情報とを対応付けて管理している。なお、以下の説明でも同様であるが、各図中のボリューム番号は、説明の便宜のために各図毎にそれぞれ設定された値であって、互いに関連しない。
【０１１９】
ボリューム番号（図中、番号を「＃」と略記）とは、ストレージシステム内において、各論理ボリュームを一意に特定するための識別情報である。ボリュームサイズとは、論理ボリュームの記憶容量である。中間記憶デバイス番号とは、論理ボリュームが設けられている中間記憶デバイス（VDEV）を識別するための情報である。中間記憶デバイスのサイズとは、中間記憶デバイスの記憶容量である。デバイス種別とは、中間記憶デバイスに関連づけられている物理的実体（ディスクドライブ）の種別を示す情報である。装置番号とは、論理ボリュームのデータ格納先（即ち、ディスクドライブや実ボリューム）を有する記憶制御装置を識別するための情報である。アドレス情報とは、論理ボリュームのデータ格納先にアクセスするための情報である。
【０１２０】
接続元記憶制御装置１００内の実ボリュームは、接続元記憶制御装置１００内のディスクドライブ１１１に対応付けられている。従って、記憶制御装置１００内の実ボリュームには、対応付けられているディスクドライブ１１１を識別するためのドライブ番号リストが、アドレス情報に設定される。これに対し、接続元記憶制御装置１００内の仮想ボリュームは、接続先記憶制御装置２００，３００内の実ボリューム２１３，３１３に対応付けられている。従って、記憶制御装置１００内の仮想ボリュームには、対応付けられている外部の実ボリュームにアクセスするための通信パス情報が、アドレス情報として設定されている。
【０１２１】
ここで、接続元記憶制御装置１００の外部に存在する実ボリューム、即ち、接続先記憶制御装置２００，３００が有する実ボリューム２１３，３１３を外部ボリュームと呼び、接続元記憶制御装置１００内に存在する実ボリューム１１３を内部ボリュームと呼ぶことができる。接続元記憶制御装置１００内の仮想ボリュームに設定されるアドレス情報（通信パス情報）には、例えば、外部ボリュームのLUN（Logical Unit Number）やWWN等を含めることができる。
【０１２２】
ボリューム管理テーブルＴ１の構成は、図５に示すものに限定されない。接続元記憶制御装置１００内の各論理ボリューム１１３と、これら各論理ボリューム１１３に対応するディスクドライブ１１１または外部ボリューム２１３，３１３との関係を特定できる情報が含まれていればよい。
【０１２３】
また、ボリューム管理テーブルＴ１とは別に、論理ボリュームの各種状態を管理するためのボリュームステータス管理テーブル等を用意することもできる。このような管理テーブルでは、コピーペアを形成するボリュームの情報や空き容量等を管理する。
【０１２４】
図６は、各記憶制御装置１００，２００，３００においてそれぞれ利用可能な機能を管理するための機能管理テーブルＴ２を示す説明図である。この管理テーブルＴ２は、例えば、接続元記憶制御装置１００の共有メモリ１５０に記憶させることができる。
【０１２５】
機能管理テーブルＴ２は、例えば、装置番号毎に、１つまたは複数のサポート機能を対応付けることにより構成することができる。サポート機能とは、その記憶制御装置において利用可能な機能を意味する。管理テーブルＴ２に登録されたサポート機能は、その記憶制御装置が有する全ての機能に等しい場合もあるし、その記憶制御装置の有する一部の機能のみがサポート機能として管理テーブルＴ２に登録される場合もある。
【０１２６】
後述のように、ユーザは、管理サーバ２０等を介して、各記憶制御装置１００，２００，３００で実行可能な機能（サポート機能）を選択できる。即ち、各記憶制御装置の有する全機能のうち、ユーザは、任意の機能を選択し、この選択した機能のみを各記憶制御装置内で実行可能な機能として、管理テーブルＴ２に登録させることができる。
【０１２７】
図７は、ホスト１０から実行を指示された機能の実行先を管理するための機能実行先管理テーブルＴ３を示す説明図である。この管理テーブルＴ３は、テーブルＴ１，Ｔ２と同様に、接続元記憶制御装置１００の共有メモリ１５０に記憶させることができる。
【０１２８】
機能実行先管理テーブルＴ３は、各機能毎の実行先を個別に管理するための個別機能実行先管理テーブルＴ３１〜Ｔ３３を備えて構成されている。例えば、テーブルＴ３１は、ローカルボリュームコピー機能をいずれの記憶制御装置で実行させるか等を管理する。また、テーブルＴ３２は、暗号化機能をいずれの記憶制御装置で実行させるか等を管理する。テーブルＴ３３は、圧縮機能をいずれの記憶制御装置で実行させるか等を管理する。
【０１２９】
機能実行先管理テーブルＴ３１〜Ｔ３３は、例えば、実行される機能が適用されるボリュームを特定するための情報（ボリューム番号）と、実行先の記憶制御装置を特定するための情報（装置番号）と、機能を実行させるための条件（実行条件）とを対応付けることにより構成されている。実行条件については、さらに後述する。
【０１３０】
ローカルボリュームコピー機能の実行先を管理するテーブルＴ３１に着目すると、このテーブルＴ３１は、コピー元ボリュームの番号と、コピー先ボリュームの番号と、実行先の装置番号及び実行条件とを対応付けて管理している。ここで、テーブルＴ３１の最終行に示すように、ローカルボリュームコピーは、リモートコピーによって実現される場合がある。例えば、コピー元ボリューム及びコピー先ボリュームの実体（実ボリューム）が、それぞれ接続先記憶制御装置２００，３００内に分散している場合、各接続先記憶制御装置２００，３００間のリモートコピー機能によって、仮想ボリューム間のコピーが実現される。
【０１３１】
暗号化機能の実行先を管理するテーブルＴ３２及び圧縮機能の実行先を管理するテーブルＴ３３も、機能の適用対象となるボリュームを特定する情報と、機能を実行する記憶制御装置を特定する情報と、実行条件とを含んで構成される。
【０１３２】
実行条件について説明する。上述の通り、実行条件とは、その機能を実行させるための起動条件である。実行条件は、例えば、「無し」、「実行依頼元の記憶制御装置（接続元記憶制御装置）が所定の閾値以上の負荷を有する場合」、「実行依頼先の記憶制御装置（接続先記憶制御装置）が所定の閾値未満の負荷である場合」、「実行依頼元の記憶制御装置が所定の閾値以上の負荷を有し、かつ、実行依頼先の記憶制御装置が他の所定の閾値未満の負荷を有する場合」等のように、設定可能である。
【０１３３】
実行条件に「無し」が設定されている機能は、実行先装置として登録されている記憶制御装置において、無条件に実行される。実行条件に閾値と現在負荷との関係が登録されている機能は、その条件を満足した場合にのみ、実行先装置として登録されている記憶制御装置において実行される。
【０１３４】
ここで、負荷以外の条件で実行条件を定義することもできる。例えば、「機能の実行を要求された時間が、予め指定された時間帯に入っている場合にのみ、実行を許可する。」、「機能の実行を要求するホストが、予め指定されたホストである場合には、実行を許可する。」等のように、実行条件を設定してもよい。または、時間帯や要求元のホスト番号、負荷状態を組み合わせて、実行条件を設定してもよい。
【０１３５】
なお、機能実行先管理テーブルＴ３の構成は、図７に示すものに限定されない。例えば、図７に示すように論理ボリューム単位で管理することもできるし、あるいは、ボリューム内のブロック単位で機能の実行先を管理してもよい。あるいは、複数のボリュームをグループ化して管理し、グループ単位で機能の実行先を管理することもできる。さらに、記憶制御装置単位で機能の実行先を管理してもよい。また、機能毎に、それぞれ異なる管理単位（ボリューム単位、ブロック単位、グループ単位等）を設定する構成でもよい。
【０１３６】
図８は、ユーザに提供されるユーザインターフェースの一例を示す。図８に示す画面Ｇ１，Ｇ２は、例えば、管理サーバ２０や管理端末３１の画面に表示される。まず、図８の上側には、各記憶制御装置で利用する機能をユーザが選択するための画面Ｇ１が示されている。
【０１３７】
この画面Ｇ１は、例えば、装置番号指定部Ｇ１１と、機能表示部Ｇ１２と、利用可否設定部Ｇ１３と、実行条件設定部Ｇ１４と、登録ボタンＢ１１及び取消ボタンＢ１２を備えることができる。
【０１３８】
装置番号指定部Ｇ１１は、記憶制御装置１００，２００，３００のいずれかを選択するためのものである。機能表示部Ｇ１２は、選択された記憶制御装置の有する全ての機能の名称を一覧表示させるものである。利用可否設定部Ｇ１３は、表示された機能名の中から、利用したい機能（実行を予定する機能）を選択するためのものである。実行条件設定部Ｇ１４は、選択された機能を実行させるための条件を設定するためのものである。なお、図中では、利用可否設定部Ｇ１３の取りうる値を示すために、第１接続先記憶制御装置２００は、ローカルボリュームコピー機能を利用しないかのように、示している。また、紙面の都合上、実行条件設定部Ｇ１４の表示内容を簡略化して示してある。
【０１３９】
図８の下側には、ユーザにより選択された機能を実行させる記憶制御装置を設定するための画面Ｇ２が示されている。この画面Ｇ３は、例えば、機能名選択部Ｇ２１と、対象ボリューム表示部Ｇ２２と、実行先装置番号設定部Ｇ２３と、登録ボタンＢ２１及び取消ボタンＢ２２を備えることができる。
【０１４０】
機能名選択部Ｇ２１は、画面Ｇ１で登録された機能からいずれかの機能を選択するためのものである。対象ボリューム表示部Ｇ２２は、選択された機能が適用されるボリューム番号を表示するものである。実行先装置番号設定部Ｇ２３は、対象ボリュームについて機能を実行する場合に、どの記憶制御装置で実行させるかを設定するものである。
【０１４１】
なお、図８に示すユーザインターフェースは、一例であって、これに限定されない。画面Ｇ１と画面Ｇ２とを１つの画面に統合したり、各画面Ｇ１，Ｇ２をそれぞれ複数の画面から構成することもできる。また、各画面Ｇ１，Ｇ２には、図８に示す以外の要素（表示項目、設定項目等）を含めることもできる。
【０１４２】
次に、図９，図１０に基づいて、機能の実行先を適切な記憶制御装置に割り当てるための動作を説明する。図９は、機能の実行先を割り当てるためのフローチャートを示し、図１０は、図９中の分担処理（Ｓ１３）の詳細を示すフローチャートである。以下の説明では、ステップを「Ｓ」と略記する。また、以下の説明でも同様であるが、各フローチャートは、発明の理解と実施に必要な限りにおいて作成されており、実際のコンピュータプログラムとは相違する。本処理は、接続元記憶制御装置１００のコントローラ１０１によって実行される。
【０１４３】
コントローラ１０１は、ホスト１０から所定の機能の実行を指示される（Ｓ１１）。所定の機能とは、サポート機能として登録されている機能である。ホスト１０は、対象のボリュームや機能を特定するための情報を含んだ所定のコマンドを発行することにより、所定の機能の実行を要求することができる。
【０１４４】
ここで、ホスト１０は、I/O用の通信ネットワークCN１１を介して、コントローラ１０１に所定のコマンドを送信することにより、所定の機能の実行を要求できる。例えば、ホスト１０から発行されたコマンドをコントローラ１０１が直接的に受信して処理することもできるし、あるいは、コマンドを受け付けるための専用の論理ボリューム（コマンドデバイスとも呼ぶ）にコマンドを記憶させてから処理することもできる。さらに、ホスト１０は、管理用の通信ネットワークCN１３を介して、コントローラ１０１に所定の機能の実行を要求することもできる。
【０１４５】
コントローラ１０１は、ホスト１０から所定機能の実行を要求されると、この所定機能が接続元記憶制御装置１００で実行可能であるか否かを判定する（Ｓ１２）。接続元記憶制御装置１００が所定機能を実行可能な場合（S12:YES）、図１０に示す分担処理が実行される（Ｓ１３）。この分担処理は、接続元記憶制御装置１００と各接続先記憶制御装置２００，３００との間で、ホスト１０から要求された所定の機能の実行を分担するためのものである。分担処理については、図１０と共に後述する。
【０１４６】
所定の機能を接続元記憶制御装置１００で実行できない場合（S12:NO）、コントローラ１０１は、所定の機能の適用対象となっているボリューム１１３に対応する外部の実ボリューム２１２，３１３を検索する（Ｓ１４）。この検索は、ボリューム管理テーブルＴ１を参照することにより行われる。
【０１４７】
コントローラ１０１は、所定の機能の実行対象となっているボリューム１１３に、外部の実ボリューム２１３，３１３が対応付けられているか否かを判定する（Ｓ１５）。対象となっているボリューム１１３に外部の実ボリュームが対応付けられていない場合（S15:NO）、コントローラ１０１は、ホスト１０にエラーを通知する（Ｓ１６）。例えば、所定の機能の適用対象とされたボリュームが、記憶制御装置１００内の実ボリュームであり、かつ、その所定の機能を記憶制御装置１００で実行できない場合である。このような場合、コントローラ１０１は、要求された所定の機能を実施不可能である旨を、ホスト１０に通知する。
【０１４８】
これに対し、所定の機能の適用対象とされたボリューム１１３が仮想ボリュームであって、外部の実ボリューム２１３，３１３のいずれかに対応付けられている場合（S15:YES）、コントローラ１０１は、対応付けられている実ボリュームを有する接続先記憶制御装置を特定する（Ｓ１７）。この特定には、ボリューム管理テーブルＴ１または機能実行先管理テーブルＴ３を用いることができる。
【０１４９】
次に、コントローラ１０１は、機能管理テーブルＴ２を参照し、その特定された接続先記憶制御装置（２００または３００）が、所定の機能を実行可能であるか否かを判断する（Ｓ１８）。その特定された接続先記憶制御装置が、所定の機能を実行できない場合（S18:NO）、コントローラ１０１は、ホスト１０にエラーを通知する（Ｓ２４）。
【０１５０】
特定された接続先記憶制御装置が所定の機能を実行可能である場合（S18:YES）、コントローラ１０１は、その特定された接続先記憶制御装置の状況を取得する（Ｓ１９）。接続先記憶制御装置の状況を取得する方法としては、種々の方法を挙げることができる。
【０１５１】
例えば、コントローラ１０１から接続先記憶制御装置のコントローラに向けて、負荷等の状況を問い合わせるための問合せコマンドを発行し、このコマンドへの応答によって、接続先記憶制御装置の状況を検出可能である。あるいは、各接続先記憶制御装置２００，３００が、定期的にまたは不定期に、自身の状況を接続元記憶制御装置１００に通知する構成でもよい。または、各記憶制御装置１００，２００，３００が、自身の状況をそれぞれ管理サーバ２０に通知し、管理サーバ２０で各記憶制御装置の状況を管理する構成でもよい。この場合、コントローラ１０１は、管理サーバ２０に問い合わせることにより、実行先として登録されている接続先記憶制御装置の状況を取得することができる。
【０１５２】
次に、コントローラ１０１は、ホスト１０から実行を要求された所定の機能に設定されている実行条件を満足するか否かを判定する（Ｓ２０）。即ち、コントローラ１０１は、実行先として登録されている接続先記憶制御装置の状況が、実行条件を満たすか否かを判定する。実行条件を満たさない場合（S20:NO）、所定の機能を実行させることができないため、コントローラ１０１は、ホスト１０にエラーを通知する（Ｓ２４）。
【０１５３】
実行条件を満たす場合（S20:YES）、コントローラ１０１は、実行先として登録されている接続先記憶制御装置に、所定の機能の実行を指示する（Ｓ２１）。コントローラ１０１は、ホスト１０の期待する結果を得られるように、ホスト１０からの指示内容を適宜変換することにより、接続先記憶制御装置に送信する。
【０１５４】
そして、コントローラ１０１は、所定の機能の実行を指示した接続先記憶制御装置から処理完了通知が送信されるのを待つ（Ｓ２２）。例えば、予め設定された所定時間内に、接続先記憶制御装置からの処理完了通知が届かない場合（S22:NO）、コントローラ１０１は、所定の機能が正常に実行されなかったものと判断し、ホスト１０にエラーを通知することができる（Ｓ２４）。
【０１５５】
所定の機能の実行を依頼した接続先記憶制御装置から正常に処理を完了した旨の通知を受信した場合（S22:YES）、コントローラ１０１は、ホスト１０に所定の機能の実行が正常に完了した旨を通知する（Ｓ２３）。
【０１５６】
なお、接続先記憶制御装置に所定の機能の実行を依頼した時点（Ｓ２１）で、この接続先記憶制御装置から処理完了通知を受信するのを待たずに、ホスト１０に処理完了を通知する構成でもよい。
【０１５７】
図１０を参照して、図９中のＳ１３に示す分担処理を説明する。コントローラ１０１は、所定の機能の適用対象となっているボリュームに対応する外部の実ボリュームを検索する（Ｓ１３００）。コントローラ１０１は、適用対象のボリュームに外部の実ボリュームが対応付けられているか否かを判定する（Ｓ１３０１）。
【０１５８】
適用対象ボリュームに外部の実ボリュームが対応付けられていない場合（S1301:NO）、即ち、適用対象ボリュームが接続元記憶制御装置１００内の実ボリュームである場合、コントローラ１０１は、所定の機能を実行する（Ｓ１３０２）。即ち、ホスト１０から要求された所定の機能は、接続元記憶制御装置１００内で、対象の実ボリュームに対して実施される。そして、コントローラ１０１は、正常に処理を完了した旨をホスト１０に通知する（Ｓ１３０３）。
【０１５９】
これに対し、所定の機能の適用対象となっているボリュームが仮想ボリュームの場合（S1301:YES）、コントローラ１０１は、その仮想ボリュームに対応する外部の実ボリュームを有する接続先記憶制御装置を特定する（Ｓ１３０４）。
【０１６０】
そして、コントローラ１０１は、図９中のＳ１８〜Ｓ２３で述べたと同様のステップをそれぞれ実行する。即ち、コントローラ１０１は、特定された接続先記憶制御装置が所定の機能を実行可能であると判断した場合（S1305:YES）、その接続先記憶制御装置の状況を取得する（Ｓ１３０６）。
【０１６１】
コントローラ１０１は、ホスト１０から実行を要求された所定の機能に予め設定されている実行条件と接続先記憶制御装置の状況とを比較し、実行条件が満たされているか否かを判定する（Ｓ１３０７）。実行条件を満足する場合（S1307:YES）、コントローラ１０１は、その接続先記憶制御装置に、所定の機能の実行を指示する（Ｓ１３０８）。
【０１６２】
コントローラ１０１は、接続先記憶制御装置からの処理完了通知を受信すると（S1309:YES）、ホスト１０に、所定の機能が対象ボリュームに正常に適用された旨を通知する（Ｓ１３１０）。
【０１６３】
なお、図９で述べたと同様に、特定された接続先記憶制御装置が所定の機能を備えていない場合（S1305:NO）、所定の機能の実行条件を満たさない場合（S1307:NO）、所定の機能の実行を依頼した接続先記憶制御装置から処理完了通知を受信できなかった場合（S1309:NO）のいずれかの場合には、コントローラ１０１は、ホスト１０にエラーを通知する（Ｓ１３１１）。
【０１６４】
なお、所定の機能の実行指示は、ホスト１０のみに限らず、管理サーバ２０や管理端末３１からであってもよい。
【０１６５】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、接続元記憶制御装置１００が備えていない機能であっても、各接続先記憶制御装置２００，３００が備えている場合には、実行可能な接続先記憶制御装置に、その機能の実行を依頼する構成とした。従って、各接続先記憶制御装置２００，３００でのみ実行可能な機能であっても、接続元記憶制御装置１００は、ホスト１０からの依頼を受け付けて処理させることができる。これにより、ホスト１０から見た場合、接続元記憶制御装置１００を高機能化させることができる。換言すれば、ストレージシステムの処理受付窓口となる接続元記憶制御装置１００の機能を、仮想的に拡張することができる。
【０１６６】
従って、例えば、それぞれ独自の特徴を備えた接続先記憶制御装置２００，３００が混在するストレージシステムにおいて、窓口となる接続元記憶制御装置１００が一部または全ての機能を実装していない場合でも、それら特徴的な機能の全てを実行させることができ、使い勝手が向上する。
【０１６７】
本実施例では、ホスト１０から実行を要求された所定の機能の内容と実行先として登録された接続先記憶制御装置２００，３００の状況とに基づいて、実行先として登録されている接続先記憶制御装置に所定の機能の実行を依頼するか否かを判断する。即ち、実行先として登録されている接続先記憶制御装置が実行条件を満たす場合に、所定の機能の実行を指示する。従って、接続先記憶制御装置の負荷が高くなりすぎるのを抑制することができ、適切な負荷分散を行うことができる。
【０１６８】
本実施例では、各記憶制御装置毎に利用可能な機能をそれぞれ予め登録し、さらに、利用可能な機能として登録された機能毎に、その実行先を予め設定可能な構成とした。従って、機能単位で、負荷を分散させることができ、使い勝手が向上する。また、記憶制御装置毎に利用可能な機能を設定できるため、各記憶制御装置１００，２００，３００間で役割を分担させることができる。
【実施例２】
【０１６９】
次に、図１１〜図１４に基づいて、第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当する。以下の各実施例では、上述した構成と重複する構成の説明を割愛し、特徴部分を中心に説明する。本実施例では、圧縮機能（圧縮処理及び伸張処理を含む）が、各記憶制御装置１００，２００，３００でそれぞれ利用可能な場合を説明する。
【０１７０】
図１１は、本実施例によるストレージシステムの全体構成を示す説明図である。各記憶制御装置１００，２００，３００は、圧縮部及び伸張部をそれぞれ備えている。接続元記憶制御装置１００は、圧縮部１０２及び伸張部１０３を備える。同様に、第１接続先記憶制御装置２００は、圧縮部２０２及び伸張部２０３を備える。第２接続先記憶制御装置３００は、圧縮部３０２及び伸張部３０３を備える。
【０１７１】
圧縮部１０２，２０２，３０２は、入力されたデータを所定の圧縮アルゴリズムに従って圧縮し、圧縮データを出力する。伸張部１０３，２０３，３０３は、入力された圧縮データを、この圧縮データに使用された圧縮アルゴリズムに基づいて、圧縮前の状態に復元し、出力する。
【０１７２】
これら圧縮部１０２，２０２，３０２及び伸張部１０３，２０３，３０３は、例えば、ASIC（Application Specific Integrated Circuit）のようなハードウェア回路として構成することができる。あるいは、圧縮部１０２，２０２，３０２及び伸張部１０３，２０３，３０３を、コンピュータプログラムとして構成し、このコンピュータプログラムをコントローラ内のCPUが読み込んで実行するようにしてもよい。さらには、例えば、圧縮部をハードウェア回路として構成し、伸張部をコンピュータプログラムとして構成することも可能である。
【０１７３】
図１２は、ストレージシステム内で圧縮機能を実行するために使用される各種管理情報の一例を示す説明図である。図１２の上側には、各記憶制御装置１００，２００，３００によって保持されている管理情報が示されており、図１２の下側には、管理情報の詳細が示されている。なお、上述の実施例で述べた各テーブルＴ１〜Ｔ３も接続元記憶制御装置１００は備えているが、図１２では図示を省略している。
【０１７４】
接続元記憶制御装置１００は、圧縮機能設定管理テーブルＴ４と、圧縮状態管理テーブルＴ５及び圧縮管理情報Ｔ６を保持している。各接続先記憶制御装置２００，３００は、圧縮機能設定管理テーブルＴ４及び圧縮管理情報Ｔ６を、それぞれ保持可能である。
【０１７５】
圧縮機能設定管理テーブルＴ４は、適用対象の各ボリューム毎に、圧縮機能の動作モードをそれぞれ設定するためのテーブルである。このテーブルＴ４は、例えば、圧縮機能の適用対象となるボリューム番号と、圧縮処理を行わせるか否かを設定するための圧縮動作設定値と、伸張処理を行わせるか否かを設定するための伸張動作設定値と、使用する圧縮アルゴリズムとを、対応付けることにより構成される。
【０１７６】
圧縮動作設定値には、「圧縮」または「非圧縮」のいずれかの値が設定される。「圧縮」が設定された場合、その圧縮部は、圧縮処理を行う。この場合、圧縮部は、入力されたデータを圧縮して出力する。即ち、記憶制御装置は、受信したデータを圧縮してボリュームに記憶させる。「非圧縮」が設定された場合、その圧縮部は、圧縮処理を行わない。この場合、入力されたデータは、何ら加工されることなく、そのまま出力される。即ち、記憶制御装置は、受信データを圧縮することなく、そのままボリュームに記憶させる。
【０１７７】
伸張動作設定値には、「伸張」または「非伸張」のいずれかの値が設定される。「伸張」が設定された場合、その伸張部は、伸張処理を行う。この場合、記憶制御装置は、ボリュームから読出したデータを、伸張してから転送する。「非伸張」が設定された場合、その伸張部は、伸張処理を行わない。この場合、入力されたデータは、何ら加工されることなく、そのまま出力される。即ち、記憶制御装置は、ボリュームから読み出したデータを、そのまま転送する。
【０１７８】
圧縮アルゴリズムには、例えば、ランレングス法やハフマン法等の公知の種々の圧縮アルゴリズムを用いることができる。
【０１７９】
圧縮状態管理テーブルＴ５は、各ボリューム毎に圧縮状態を管理するものである。このテーブルＴ５は、例えば、ボリューム番号と、圧縮状態と、圧縮アルゴリズムとを対応付けることにより構成される。圧縮状態には、「圧縮」または「非圧縮」のいずれかの状態が設定される。「圧縮」に設定されたボリュームは、圧縮データを記憶していることを意味する。「非圧縮」に設定されたボリュームは、圧縮されていないデータを記憶していることを意味する。
【０１８０】
圧縮管理情報Ｔ６は、圧縮処理によって変化する種々の情報を管理する。圧縮管理情報Ｔ６には、例えば、ボリューム番号と、圧縮前のアドレスと、圧縮後のアドレスと、圧縮アルゴリズムとを対応付けておくことができる。記憶制御装置（コントローラ）は、圧縮管理情報Ｔ６を参照することにより、圧縮されたデータに対するリード要求やライト要求に対応することができる。
【０１８１】
本実施例では、圧縮管理情報Ｔ６を各記憶制御装置１００，２００，３００が共有する構成である。従って、圧縮処理または伸張処理を実行させる記憶制御装置を切り替えることができる。
【０１８２】
次に、圧縮処理及び伸張処理の動作について説明する。ここでは、接続元記憶制御装置１００のみが圧縮処理及び伸張処理を実行する場合を例に挙げて説明する。図１３は、圧縮処理を示すフローチャートである。このフローチャートでは、仮想ボリュームに書き込まれるライトデータを接続元記憶制御装置１００（コントローラ２０１）が圧縮し、この圧縮されたデータを接続先記憶制御装置（ここでは、第１接続先記憶制御装置２００とする）の実ボリューム２１３に記憶させる。
【０１８３】
まず、コントローラ１０１は、接続先記憶制御装置２００の圧縮機能の動作モードを「非圧縮」及び「非伸張」に設定させる（Ｓ３１，Ｓ３２）。即ち、コントローラ２０１において、データ圧縮機能を停止させる。
【０１８４】
この状態で、コントローラ１０１は、ホスト１０からのライトデータを受信すると（Ｓ３３）、ライトデータをキャッシュメモリ１４０に記憶させ（Ｓ３４）、ホスト１０にライトコマンドの処理を完了した旨を通知する（Ｓ３５）。上述のように、ライトコマンドの処理方法としては、同期式及び非同期式が知られている。従って、接続先記憶制御装置２００でのライトデータの記憶を確認してから、ホスト１０にライトコマンドの処理完了を通知する構成でもよい。
【０１８５】
コントローラ１０１は、接続先記憶制御装置２００に向けて、データ格納先の実ボリューム２１３を明示し、ライトコマンドを発行する（Ｓ３６）。接続先記憶制御装置２００のコントローラ２０１は、ライトコマンドを受信すると、ライトデータを記憶するためのキャッシュ領域を確保する（Ｓ３７）。
【０１８６】
コントローラ１０１は、圧縮部１０２によってライトデータを圧縮し（Ｓ３８）、この圧縮したライトデータをコントローラ２０１に送信する（Ｓ３９）。コントローラ２０１は、圧縮されたライトデータを受信し（Ｓ４０）、この圧縮されたライトデータをキャッシュメモリまたは実ボリューム２１３に記憶させる（Ｓ４１）。
【０１８７】
ここで、接続先記憶制御装置２００は、圧縮処理の作動が停止されているため、コントローラ２０１は、コントローラ１０１から受信した圧縮済みのライトデータを、そのままの状態で、実ボリューム２１３に記憶させる。なお、コントローラ２０１は、圧縮済みのライトデータをキャッシュメモリに記憶させた後、適当なタイミングを見計らって、実ボリューム２１３を構成する各ディスクドライブ２１１に記憶させることができる。
【０１８８】
そして、コントローラ１０１は、圧縮管理情報Ｔ６のアドレス情報等を更新させる（Ｓ４２）。コントローラ２０１も、圧縮管理情報Ｔ６を更新させる（Ｓ４３）。例えば、コントローラ２０１は、圧縮データを受信する毎に、コントローラ１０１に更新後の圧縮管理情報Ｔ６を問合せることにより、コントローラ２０１内の圧縮管理情報Ｔ６を更新することができる。あるいは、コントローラ１０１からコントローラ２０１に、圧縮管理情報Ｔ６の更新部分を通知する構成でもよい。さらには、複数の記憶制御装置間で共用される管理情報用ボリュームを設け、この管理情報用ボリューム内に圧縮管理情報Ｔ６を記憶させる構成でもよい。また、管理サーバ２０等で、圧縮管理情報Ｔ６を一元的に管理する構成でもよい。
【０１８９】
図１４は、伸張処理を示すフローチャートである。コントローラ１０１は、仮想ボリュームからのデータ読出しを要求するリードコマンドをホスト１０から受信すると（Ｓ５１）、接続先記憶制御装置２００に別のリードコマンドを発行する（Ｓ５２）。このリードコマンドには、圧縮データを実際に記憶している実ボリューム２１３へアクセスするための情報や読出し先アドレス等が含まれている。コントローラ１０１は、圧縮管理情報Ｔ６を参照することにより、ホスト１０の要求するデータを実ボリューム２１３から読み出させることができる。
【０１９０】
接続先記憶制御装置２００のコントローラ２０１は、コントローラ１０１からのリードコマンドを受信すると（Ｓ５３）、データを一時的に記憶させるためのキャッシュ領域を確保し、実ボリューム２１３に対応するディスクドライブ２１１から圧縮データを読み出す（Ｓ５４）。コントローラ２０１は、圧縮データをキャッシュメモリに記憶させた後、この圧縮データをコントローラ１０１に送信する（Ｓ５５）。ここで、接続先記憶制御装置２００は、伸張処理の作動が停止されているため、圧縮データは、圧縮されたままの状態でディスクドライブ２１１から読み出され、コントローラ１０１に送信される。
【０１９１】
コントローラ１０１は、コントローラ２０１から圧縮データを受信すると（Ｓ５６）、この圧縮データを伸張させ（Ｓ５７）、この伸張されたデータをホスト１０に送信させる（Ｓ５８）。
【０１９２】
このように構成される本実施例でも、前記第１実施例と同様の作用効果を奏する。これに加えて、本実施例では、各記憶制御装置１００，２００，３００にそれぞれ共通の圧縮機能を備えさせ、各圧縮機能の動作モードを適宜設定することができる。従って、ユーザは、どの記憶制御装置で圧縮または伸張させるかを自由に設定することができ、負荷の分散が可能となり、使い勝手が向上する。
【実施例３】
【０１９３】
図１５〜図１７に基づいて第３実施例を説明する。本実施例では、１つの接続先記憶制御装置のみが、圧縮機能を有する場合に、この圧縮機能を利用して、コピー元ボリュームのデータを圧縮し、コピー先ボリュームへ格納させる。
【０１９４】
図１５は、本実施例によるストレージシステムの全体構成を示す説明図である。説明の便宜上、以下の説明では、圧縮機能（圧縮部及び伸張部）を備える接続先装置は、第１接続先記憶制御装置２００であるとする。そして、コピー元ボリュームＶ１ａは、接続元記憶制御装置１００の実ボリュームであるとし、コピー先ボリュームＶ１ｃは、第２接続先記憶制御装置３００の実ボリュームＶ３ｃに対応付けられている仮想ボリュームであるとする。
【０１９５】
図１５に示すように、接続元記憶制御装置１００は、コピー元ボリュームＶ１ａと、圧縮用の中継ボリュームＶ１ｂと、コピー先ボリュームＶ１ｃを備える。コピー元ボリュームＶ１ａは、記憶制御装置１００内の実ボリュームである。中継ボリュームＶ１ｂは、仮想ボリュームであり、第１接続先記憶制御装置２００の実ボリュームＶ２ｂに対応付けられている。コピー先ボリュームＶ１ｃは、仮想ボリュームであり、第２接続先記憶制御装置３００の実ボリュームＶ３ｃに対応付けられている。そして、第１接続先記憶制御装置２００のみが、圧縮部２０２及び伸張部２０３を備えている。
【０１９６】
なお、以上の前提は説明の便宜のためのものであって、これに限定されない。例えば、コピー元ボリュームＶ１ａ及びコピー先Ｖ１ｃは、ホスト１０によって認識されているボリュームであれば、どこに存在しても構わない。圧縮用ボリュームの実体（実ボリューム）が、圧縮機能を有する記憶制御装置２００に存在していればよい。
【０１９７】
図１６は、コピー元ボリュームＶ１ａからコピー先ボリュームＶ１ｃに、データを圧縮して書き込む場合の処理を示すフローチャートである。コントローラ１０１は、ホスト１０または管理サーバ２０あるいは管理端末３１から、「コピー元ボリュームＶ１ａのデータを、圧縮用の中継ボリュームＶ１ｂを経由して圧縮し、コピー先ボリュームＶ１ｃに記憶させる。」という内容の圧縮コピー要求を受信する（Ｓ６１）。
【０１９８】
コントローラ１０１は、コントローラ２０１の圧縮機能を「圧縮」及び「非伸張」に設定させる（Ｓ６２，Ｓ６３）。即ち、コントローラ２０１において、圧縮処理の作動が有効に設定され、伸張処理の作動が停止される。
【０１９９】
コントローラ１０１は、圧縮機能を有するコントローラ２０１に圧縮コピー要求を発行し（Ｓ６４）、コピー元ボリュームＶ１ａからデータを読出す（Ｓ６５）。そして、コントローラ１０１は、コピー元ボリュームＶ１ａから読み出したデータをコントローラ２０１に送信する（Ｓ６７）。
【０２００】
そして、コントローラ２０１は、コントローラ１０１からデータを受信すると（Ｓ６８）、この受信データを圧縮し（Ｓ６９）、中継用ボリュームＶ１ｂに対応する実ボリュームＶ２ｂに記憶させる（Ｓ７０）。この実ボリュームＶ２ｂは、圧縮用の実ボリュームと呼ぶこともできる。
【０２０１】
コントローラ２０１は、受信データの圧縮記憶が完了した旨をコントローラ１０１に通知する（Ｓ７１）。コントローラ１０１は、この通知を受信すると、圧縮状態管理テーブルＴ５中の圧縮用ボリュームＶ１ｂの圧縮状態を「圧縮」に設定する（Ｓ７２）。
【０２０２】
コントローラ２０１は、第２接続先記憶制御装置３００のコントローラ３０１に、ライトコマンドを発行する（Ｓ７３）。コントローラ３０１は、コントローラ２０１からのライトコマンドを受信すると（Ｓ７４）、ライトデータを受信するためのキャッシュ領域を確保する。
【０２０３】
コントローラ２０１は、圧縮用の実ボリュームＶ２ｂに記憶されている圧縮データを読み出して（Ｓ７５）、この圧縮データをコントローラ３０１に送信する（Ｓ７６）。コントローラ３０１は、圧縮データを受信すると（Ｓ７７）、この圧縮データをコピー先ボリュームＶ１ｃに対応する実ボリュームＶ３ｃに記憶させる（Ｓ７８）。
【０２０４】
コントローラ２０１は、コントローラ３０１へ圧縮データの送信を完了すると、圧縮データのコピーが完了した旨を、コントローラ１０１に通知する（Ｓ７９）。コントローラ１０１は、この通知を受信すると、圧縮コピーが完了した旨をホスト１０に通知し（Ｓ８０）、圧縮状態管理テーブルＴ５中のコピー先ボリュームＶ１ｃの圧縮状態を「圧縮」に設定する（Ｓ８１）。
【０２０５】
そして、コントローラ２０１は、圧縮コピー処理の完了が反映された圧縮管理情報Ｔ６を、コントローラ１０１に送信する（Ｓ８２）。コントローラ１０１は、自己の管理する圧縮管理情報Ｔ６を更新させる（Ｓ８３）。
【０２０６】
なお、圧縮管理情報Ｔ６は、接続元記憶制御装置１００（コントローラ１０１）で管理する必要は必ずしもなく、コピー先ボリュームを有する第２接続先記憶制御装置３００で管理する構成でもよい。また、圧縮機能を有する第１接続先記憶制御装置２００で圧縮管理情報Ｔ６を管理する構成でもよいし、管理サーバ２０で管理させてもよい。圧縮データに対するホスト１０からのリードコマンドまたはライトコマンドを処理するためには、圧縮管理情報Ｔ６が必要となる。
【０２０７】
図１７は、伸張コピー処理を示すフローチャートである。この処理では、図１６に示す圧縮コピー処理とは逆に、ボリュームＶ１ｃに記憶されている圧縮データを、伸張させて、ボリュームＶ１ａにコピーさせる。従って、本処理では、コピー元ボリュームはＶ１ｃとなり、コピー先ボリュームはＶ１ａとなる。
【０２０８】
コントローラ１０１は、ホスト１０または管理サーバ２０等から「コピー元ボリュームＶ１ｃに記憶されているデータ（圧縮データ）を、伸張用の中継ボリュームＶ１ｂを経由して伸張し、コピー先ボリュームＶ１ａに記憶させる。」という内容の伸張コピー要求を受信する（Ｓ９１）。コントローラ１０１は、伸張コピー要求を受信すると、コントローラ２０１の圧縮機能を「非圧縮」及び「伸張」に設定させる（Ｓ９２）。これにより、コントローラ２０１では、圧縮部２０２の作動が停止され、伸張部２０３の作動が許可される（Ｓ９３）。
【０２０９】
次に、コントローラ１０１は、圧縮管理情報Ｔ６をコントローラ２０１に送信し（Ｓ９４）、コントローラ２０１に圧縮管理情報Ｔ６を記憶させる（Ｓ９５）。圧縮管理情報Ｔ６を、第１接続先記憶制御装置２００（コントローラ２０１）で管理している場合は、Ｓ９４，Ｓ９５を省略することができる。また、圧縮管理情報Ｔ６を、管理サーバ２０等の外部システムで管理している場合は、当該システムへの問合せが必要となる。
【０２１０】
このようにして伸張コピーを行うための準備が完了した後、コントローラ１０１は、伸張コピー要求をコントローラ２０１に発行する（Ｓ９６）。コントローラ２０１は、伸張コピー要求を受信すると（Ｓ９７）、第２接続先記憶制御装置３００のコントローラ３０１に、リードコマンドを発行する（Ｓ９８）。
【０２１１】
コントローラ３０１は、コントローラ２０１からのリードコマンドを受信すると（Ｓ９９）、コピー元ボリュームＶ３ｃから圧縮データを読出して（Ｓ１００）、この圧縮データをコントローラ２０１に送信する（Ｓ１０１）。
【０２１２】
コントローラ２０１は、コントローラ３０１から圧縮データを受信すると（Ｓ１０２）、この圧縮データを、圧縮することなくそのままの状態で、中継用の実ボリュームＶ２ｂに記憶させる（Ｓ１０３）。コントローラ２０１は、圧縮データの記憶が完了した旨を、コントローラ１０１に通知する（Ｓ１０４）。コントローラ１０１は、この通知を受信すると、圧縮状態管理テーブルＴ５中の中継ボリュームＶ１ｂの圧縮状態を「圧縮」に設定する（Ｓ１０５）。
【０２１３】
次に、コントローラ２０１は、コントローラ１０１に向けてライトコマンドを発行する（Ｓ１０６）。コントローラ１０１は、コントローラ２０１からのライトコマンドを受信すると（Ｓ１０７）、コントローラ２０１から受信したデータを記憶するための領域をキャッシュメモリ１４０に確保する。なお、データ転送は、コントローラ１０１からコントローラ２０１に向けたリードコマンドによって実現してもよい。
【０２１４】
コントローラ２０１は、中継用の実ボリュームＶ２ｂから圧縮データを読出し（Ｓ１０８）、この圧縮データを伸張させる（Ｓ１０９）。そして、コントローラ２０１は、伸張されたデータをコントローラ１０１に送信する（Ｓ１１０）。なお、圧縮データを読出しながら伸張してもよいし、圧縮データを全て読出した後で伸張してもよい。
【０２１５】
コントローラ１０１は、コントローラ２０１から伸張済みのデータを受信すると（Ｓ１１１）、この伸張データをコピー先ボリュームＶ１ａに記憶させる（Ｓ１１２）。そして、コントローラ１０１は、圧縮状態管理テーブルＴ５中のコピー先ボリュームＶ１ａの圧縮状態を「非圧縮」に設定する（Ｓ１１３）。
【０２１６】
コントローラ１０１は、伸張コピー処理が完了した旨をホスト１０に通知し（Ｓ１１４）、圧縮管理情報Ｔ６を更新させる（Ｓ１１５）。なお、上記同様に、圧縮管理情報Ｔ６は、コントローラ２０１等で管理することもできる。
【０２１７】
このように構成される本実施例も前記第１実施例と同様の作用効果を奏する。これに加えて、本実施例では、ストレージシステム内で１つの記憶制御装置２００のみが圧縮機能を備える場合に、この圧縮機能を有効に利用して、ボリュームデータのコピーや移動を行うことができ、使い勝手が向上する。
【０２１８】
また、複数の記憶制御装置がそれぞれ圧縮機能を備えている場合でも、例えば、記憶容量の少ない記憶制御装置２００の圧縮機能のみを有効に設定し、１つの記憶制御装置に圧縮処理及び伸張処理を集約させることができる。これにより、空いている記憶容量の少ない記憶制御装置２００の処理性能を有効に利用することができる。
【０２１９】
さらに、圧縮機能を有する記憶制御装置２００の空き記憶容量が少ない場合でも、圧縮データを他の記憶制御装置３００の記憶領域に退避させることにより、圧縮機能を有する記憶制御装置２００の空き記憶容量が圧迫されるのを防止することができる。
【実施例４】
【０２２０】
図１８，図１９に基づいて、第４実施例を説明する。本実施例では、接続元記憶制御装置１００から、第１接続先記憶制御装置２００を経由して、第２接続先記憶制御装置３００に機能の実行を要求する。
【０２２１】
図１８は、本実施例によるストレージシステムの全体構成を示す説明図である。本実施例では、接続元記憶制御装置１００内の仮想ボリュームＶ１ａ，Ｖ１ｂは、第１接続先記憶制御装置２００内の仮想ボリュームＶ２ａ，Ｖ２ｂを介して、第２接続先記憶制御装置３００内の実ボリュームＶ３ａ，Ｖ３ｂに対応付けられているものとする。そして、第２接続先記憶制御装置３００は、ローカルボリュームコピー機能Ｆ２１及びドライブ電源制御機能Ｆ２２を備えているものとする。ドライブ電源制御機能Ｆ２２とは、ディスクドライブ３１１の電源をオンオフさせたり、低消費電力モード（スタンバイモード）に移行させるための機能である。
【０２２２】
図１９は、本ストレージシステムの動作を示すフローチャートである。ホスト１０は、仮想ボリュームＶ１ａ，Ｖ１ｂ間のボリュームコピーまたは仮想ボリュームＶ１ａ，Ｖ１ｂを構成するディスクドライブ３１１の電源制御を指示する（Ｓ１２１）。以下の説明では、これらボリュームコピー機能Ｆ２１及びドライブ電源制御機能Ｆ２２を所定の機能と呼ぶ場合がある。
【０２２３】
接続元記憶制御装置１００のコントローラ１０１は、ホスト１０から所定の機能の実行に関する指示を受信すると（Ｓ１２２）、図９と共に述べた実行先割当処理を実行する（Ｓ１２３）。コントローラ１０１は、ホスト１０から要求された所定の機能を自身で実行できないため、ホスト１０からの指示を第１接続先記憶制御装置２００に送信し、このホスト１０からの指示を第２接続先記憶制御装置３００に転送させる。
【０２２４】
第１接続先記憶制御装置２００のコントローラ２０１は、コントローラ１０１からの指示を受信すると（Ｓ１２４）、この指示を第２接続先記憶制御装置３００のコントローラ３０１に転送する（Ｓ１２５）。
【０２２５】
第２接続先記憶制御装置３００のコントローラ３０１は、コントローラ２０１からの指示を受信すると（Ｓ１２６）、指示された内容を実行し（Ｓ１２７）、処理が完了した旨をコントローラ２０１に通知する（Ｓ１２８）。
【０２２６】
コントローラ２０１は、コントローラ３０１から処理完了通知を受領すると（Ｓ１２９）、コントローラ１０１に処理完了を通知する（Ｓ１３０）。コントローラ１０１は、コントローラ２０１からの処理完了通知を受信すると（Ｓ１３１）、ホスト１０に処理完了を通知する（Ｓ１３２）。ホスト１０は、コントローラ１０１からの通知を受信し（Ｓ１３３）、Ｓ１２１で指示した処理が正常に行われたことを確認する。
【０２２７】
このように、本実施例では、第１接続先記憶制御装置２００をコマンド中継装置として利用し、第２接続先記憶制御装置３００をコマンドの最終処理装置として利用する。これにより、本実施例では、複数の記憶制御装置１００，２００，３００を、外部接続機能を用いて縦続接続させることができ、適切な記憶制御装置においてホスト１０から要求された機能を実行させることができる。
【０２２８】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０２２９】
【図１】本発明の実施形態によるストレージシステムの全体概念を示す説明図である。
【図２】ストレージシステムの全体構成を示す説明図である。
【図３】ストレージシステムのハードウェア構成を示す説明図である。
【図４】ストレージシステムの記憶構成を示す説明図である。
【図５】ボリューム管理テーブルを示す説明図である。
【図６】機能管理テーブルを示す説明図である。
【図７】機能実行先管理テーブルを示す説明図である。
【図８】機能を選択するための画面及び実行先の記憶制御装置を設定するための画面を示すユーザインターフェース説明図である。
【図９】実行先割当処理を示すフローチャートである。
【図１０】図９中の分担処理を示すフローチャートである。
【図１１】第２実施例に係るストレージシステムの全体構成を示す説明図である。
【図１２】圧縮機能を利用するために使用される各テーブルの内容及び各テーブルの保持先を示す説明図である。
【図１３】ライトデータを圧縮して記憶させるための処理を示すフローチャートである。
【図１４】圧縮データを読み出して伸張させるための処理を示すフローチャートである。
【図１５】第３実施例に係るストレージシステムの全体構成を示す説明図である。
【図１６】圧縮コピー処理を示すフローチャートである。
【図１７】伸張コピー処理を示すフローチャートである。
【図１８】第４実施例に係るストレージシステムの全体構成を示す説明図である。
【図１９】ストレージシステムの動作を示すフローチャートである。
【符号の説明】
【０２３０】
１…接続元記憶制御装置、１Ａ…制御部、１Ａ１…機能実行部、１Ａ２…実行先判断部、１Ａ３…機能管理部、１Ａ４…状況検出部、１Ａ５…実行指示部、１Ａ６…動作モード設定部、１Ａ７…機能選択部、１Ｂ…論理ボリューム（仮想ボリューム）、１Ｃ…上位通信部、１Ｄ…下位通信部、２…接続先記憶制御装置、２Ａ…制御部、２Ａ１…機能実行部、２Ｂ…実ボリューム、２Ｃ…上位通信部、２Ｄ…下位通信部、３…接続先記憶制御装置、３Ａ…制御部、３Ａ１…機能実行部、３Ｂ…実ボリューム、４…ホスト、１０…ホスト、２０…管理サーバ、３１〜３３…管理端末、１００…接続元記憶制御装置、１０１…コントローラ、１０２…圧縮部、１０３…伸張部、１１０…記憶部、１１１…ディスクドライブ、１１２…RAIDグループ、１１２Ｖ…中間記憶デバイス、１１３…ボリューム、１２０…チャネルアダプタ（CHA）、１２１…通信ポート、１３０…ディスクアダプタ（DKA）、１３１…通信ポート、１４０…キャッシュメモリ、１５０…共有メモリ、１６０…接続制御部、１７０…サービスプロセッサ（SVP）、１８０…LANインターフェース、２００…第１接続先記憶制御装置、２０１…コントローラ、２０２…圧縮部、２０３…伸張部、２１０…記憶部、２１１…ディスクドライブ、２１２…RAIDグループ、２１３…ボリューム、２２１，２３１…通信ポート、３００…第２接続先記憶制御装置、３０１…コントローラ、３０２…圧縮部、３０３…伸張部、３１０…記憶部、３１１…ディスクドライブ、３１２…RAIDグループ、３１３…ボリューム、３２１，３３１…通信ポート
【図１】
0004757038.tif 000002
【図２】
0004757038.tif 000003
【図３】
0004757038.tif 000004
【図４】
0004757038.tif 000005
【図５】
0004757038.tif 000006
【図６】
0004757038.tif 000007
【図７】
0004757038.tif 000008
【図８】
0004757038.tif 000009
【図９】
0004757038.tif 000010
【図１０】
0004757038.tif 000011
【図１１】
0004757038.tif 000012
【図１２】
0004757038.tif 000013
【図１３】
0004757038.tif 000014
【図１４】
0004757038.tif 000015
【図１５】
0004757038.tif 000016
【図１６】
0004757038.tif 000017
【図１７】
0004757038.tif 000018
【図１８】
0004757038.tif 000019
【図１９】
0004757038.tif 000020