(57)【要約】【課題】  ストレージシステム内の記憶資源を有効に利用し、ストレージシステムのコストを低減し、使い勝手を向上させる。【解決手段】  ストレージシステムは、第１ストレージ装置１及び第２ストレージ装置２を備える。ホスト３が仮想ボリューム１Ｂにデータを書き込むと（S1）、このデータはプール領域１Ｄに書き込まれる（S2）。管理テーブル１Ｃは、仮想ボリューム１Ｂのアドレスとプール領域１Ｄに記憶されたデータを指し示すポインタとを対応付ける。プール領域１Ｄの使用量は監視されている（S3）。プール領域１Ｄの使用量が所定値に達すると、空き容量の探索が行われる（S4）。未使用の外部ボリューム２Ｂが検出され、外部接続ボリューム１Ｅに対応付けられる（S5）。プール領域１Ｄに記憶されたデータが外部接続ボリューム１Ｅにコピーされる（S6）。【選択図】        図１
2007072519.tif 000002
【特許請求の範囲】
【請求項１】
記憶制御装置と該記憶制御装置とは異なる他の記憶制御装置とを通信可能に接続して構成され、上位装置からのリクエストに応じたデータ処理を行うストレージシステムであって、
前記記憶制御装置は、
仮想的に構築される第１ボリュームと、
この第１ボリュームを対象とするデータを記憶するための第２ボリュームと、
前記第１ボリュームの記憶空間と前記第２ボリュームの記憶空間との対応関係を管理する管理部と、
前記他の記憶制御装置の有する記憶領域に対応付けられて生成される第３ボリュームと、
前記第１ボリュームを対象とする前記上位装置からのアクセス要求に基づいて前記第２ボリュームへのデータ入出力を行い、かつ、所定の場合に、前記第２ボリュームに記憶されている前記第１ボリュームのデータを前記第３ボリュームに記憶させる制御部と、
を備えたストレージシステム。
【請求項２】
前記制御部は、前記上位装置へのデータ提供元を前記第１ボリュームから前記第３ボリュームに切り替える請求項１に記載のストレージシステム。
【請求項３】
前記制御部は、前記第２ボリュームに記憶されている前記第１ボリュームのデータの量が予め設定された所定値に達した場合に、前記第２ボリュームに記憶されている前記第１ボリュームのデータを前記第３ボリュームに記憶させる請求項１に記載のストレージシステム。
【請求項４】
前記制御部は、前記所定の場合が到来したときに、前記第３ボリュームを前記記憶領域に対応付けて生成させる請求項１に記載のストレージシステム。
【請求項５】
前記他の記憶制御装置は複数設けられており、
前記制御部は、前記所定の場合が到来したときに、前記複数の他の記憶制御装置のうち、最大の未使用記憶領域を有する他の記憶制御装置を選択し、この選択された他の記憶制御装置の有する未使用記憶領域に対応付けて前記第３ボリュームを生成させる請求項１に記載のストレージシステム。
【請求項６】
前記他の記憶制御装置は複数設けられており、
前記制御部は、前記所定の場合が到来したときに、前記複数の他の記憶制御装置のうち、未来の所定時点において最大の未使用記憶領域を有する記憶制御装置を選択し、この選択された他の記憶制御装置の有する現在の未使用記憶領域に対応付けて前記第３ボリュームを生成させる請求項１に記載のストレージシステム。
【請求項７】
前記記憶制御部は固有の記憶領域を備えており、
前記制御部は、前記固有の記憶領域に所定サイズ以上の未使用記憶領域が存在しない場合に、前記他の記憶制御装置の有する記憶領域に対応付けて前記第３ボリュームを生成させる請求項１に記載のストレージシステム。
【請求項８】
前記制御部は、前記他の記憶制御装置の有する未使用記憶領域のうち、前記上位装置によって使用されている未使用記憶領域を開放させ、この開放された未使用記憶領域に対応付けて前記第３ボリュームを生成させる請求項１に記載のストレージシステム。
【請求項９】
記憶制御装置と該記憶制御装置とは異なる他の記憶制御装置とを通信可能に接続して構成され、上位装置からのリクエストに応じたデータ処理を行うストレージシステムの制御方法であって、
仮想的に構築される第１ボリュームと該第１ボリュームを対象とするデータを記憶するための第２ボリュームとを対応付けるステップと、
前記上位装置から前記第１ボリュームを対象とするアクセス要求に基づいて、前記第２ボリュームへのデータ入出力を行うステップと、
前記第２ボリュームに記憶されている前記第１ボリュームのデータが予め設定された所定値に達したか否かを監視するステップと、
前記第２ボリュームに記憶されている前記第１ボリュームのデータが前記所定値に達した場合は、前記他の記憶制御装置の有する記憶領域に対応付けられる第３ボリュームを生成させるステップと、
前記第２ボリュームに記憶されている前記第１ボリュームのデータを前記第３ボリュームに記憶させるステップと、
前記上位装置へのデータ提供元を前記第１ボリュームから前記第３ボリュームに切り替えるステップと、
を含んだストレージシステムの制御方法。
【請求項１０】
他の記憶制御装置及び上位装置にそれぞれ異なる通信ネットワークを介して接続される記憶制御装置であって、
仮想的に構築される第１ボリュームと、
この第１ボリュームを対象とするデータを記憶するための第２ボリュームと、
前記第１ボリュームの記憶空間と前記第２ボリュームの記憶空間との対応関係を管理する管理部と、
前記他の記憶制御装置の有する記憶領域に対応付けられて生成される第３ボリュームと、
前記第１ボリュームを対象とする前記上位装置からのアクセス要求に基づいて前記第２ボリュームへのデータ入出力を行い、かつ、所定の場合に、前記第２ボリュームに記憶されている前記第１ボリュームのデータを前記第３ボリュームに記憶させる制御部と、
を備えた記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
【背景技術】
【０００２】
例えば、政府、企業、大学等の各種機関では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、ディスクアレイ装置等から構成される。ディスクアレイ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、例えば、RAID（Redundant Array of Independent Disks）に基づく記憶領域を提供する。記憶デバイス群が提供する物理的な記憶領域上には少なくとも１つ以上の論理ボリュームが形成され、この論理ボリュームがホストコンピュータ（より詳しくは、ホストコンピュータ上で稼働するデータベースプログラム）に提供される。ホストコンピュータ（以下、「ホスト」と略記）は、所定のコマンドを送信することにより、論理ボリュームに対してデータの書込み、読み出しを行うことができる。
【０００３】
各機関で管理すべきデータは、日々増大する。このため、将来の需要増を見込んで、予めストレージシステムに多めの記憶領域を設けておくことが考えられる。しかし、記憶デバイスの単価は年々低下する傾向にあるため、将来の需要増大に備えて記憶デバイスを多めに購入すると、過大な先行投資になるおそれがある。新たな記憶領域が必要となった時点で、記憶デバイスを適宜購入する方がストレージシステムのコストが低下する。
【０００４】
これに対し、現在の需要に応じた記憶領域だけを用意する場合、新たな需要に即座に対応することができず、ストレージシステムの使い勝手が低下する。コストと変化への対応能力とはトレードオフの関係にある。そこで、ストレージシステムに存在する各記憶デバイスの記憶領域を仮想化して管理し、ホストに割り当てられている未使用の記憶領域を開放して他のホストに割り当てる技術も提案されている（特許文献１）。
【特許文献１】特開２００５−３１９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記文献に記載の技術では、あるホストが占有している未使用の記憶領域を強制的に開放させて、新たな記憶領域を必要とする別のホストに割り当てることができる。従って、ストレージシステム内の記憶資源を有効に利用することができる。
【０００６】
しかし、ホストが新たな記憶領域を必要とする場合でも、その記憶領域の全体を最初から必要とするわけではない。ホスト上で行われるデータ処理サービスの進展に応じて、その記憶領域に徐々にデータが蓄積されていく。即ち、初期段階では、記憶領域に記憶されるデータ量は少なく、時間の経過につれてデータ量が増大していく。従って、前記文献に記載の技術では、初期段階における記憶領域の無駄を排除することができない。
【０００７】
本発明は、上記の問題点に鑑みてなされたもので、本発明の一つの目的は、効率的に記憶領域を使用できるようにしたストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の一つの目的は、必要なときに必要なだけの記憶領域を適宜追加できるようにしたストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の一つの目的は、複数の記憶制御装置に分散して配置された記憶領域を有効に利用して、必要なときに必要なだけの記憶領域を確保できるようにしたストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明に従うストレージシステムは、記憶制御装置と該記憶制御装置とは異なる他の記憶制御装置とを通信可能に接続して構成され、上位装置からのリクエストに応じたデータ処理を行うもので、記憶制御装置は、仮想的に構築される第１ボリュームと、この第１ボリュームを対象とするデータを記憶するための第２ボリュームと、第１ボリュームの記憶空間と第２ボリュームの記憶空間との対応関係を管理する管理部と、他の記憶制御装置の有する記憶領域に対応付けられて生成される第３ボリュームと、第１ボリュームを対象とする上位装置からのアクセス要求に基づいて第２ボリュームへのデータ入出力を行い、かつ、所定の場合に、第２ボリュームに記憶されている第１ボリュームのデータを第３ボリュームに記憶させる制御部と、を備える。
【０００９】
記憶制御装置としては、例えば、ディスクアレイ装置等のようなストレージ装置や、高機能化されたスイッチ（ファイバチャネルスイッチ等）を用いることができる。第１ボリュームは、仮想的に構築される。仮想的に構築されるとは、実体を持たない仮想的なボリュームであることを意味する。第１ボリュームは、論理ボリュームとして上位装置に認識されるが、データを記憶するための物理的な記憶領域を備えていない。第１ボリュームの記憶空間を指定するデータは、第２ボリュームに記憶される。
【００１０】
例えば、第２ボリュームは、上位装置から第１ボリュームへのライト要求に応じて、そのライトデータを順番に書き込んでいく。第２ボリュームに記憶されたライトデータの位置と第１ボリュームにおけるアドレスとの対応関係は、管理部によって管理される。即ち、第１ボリュームの仮想的な記憶領域のうち、上位装置によって使用された領域に対応する領域のみが、第２ボリュームの記憶領域に順番に設定されていく。第１ボリュームのデータを読み出す場合は、要求されたリードデータの格納場所を管理部を用いて特定し、そのリードデータを第２ボリュームから読み出せばよい。つまり、仮想的に構築された第１ボリュームの全領域のうち、実際に使用された（上位装置によってアクセスされた）範囲のみが、第２ボリュームの記憶領域に設定される。「第１ボリュームを対象とするデータを記憶するための第２ボリューム」とは、例えば、「第１ボリュームの全記憶領域のうち上位装置によってアクセスされた範囲に対応して、記憶領域が順番に使用される第２ボリューム」と言い換え可能である。
【００１１】
従って、第１ボリュームの記憶領域が大きく設定されている場合でも、上位装置によって実際に使用される領域が少なければ、第２ボリュームの使用量は少なくなる。このため、小容量の第２ボリュームによって、大容量に定義されている第１ボリュームに対応可能である。なお、第２ボリュームは、複数の第１ボリュームにそれぞれ対応付けることもできる。第１ボリューム自身は、物理的な記憶領域を備える必要がないため、大容量に設定してもストレージシステムのコストに殆ど影響を与えない。
【００１２】
そして、例えば、上位装置による第１ボリュームへのライトデータの書き込みが増加し、第２ボリュームの未使用記憶領域が少なくなったような場合、制御部は、第２ボリュームに記憶されている第１ボリュームのデータを第３ボリュームにコピーさせる。これにより、第１ボリュームのデータは第３ボリュームに移行する。このデータ移行によって、仮想的な第１ボリュームのデータは、外部の物理的実体に結びつけられた第３ボリュームに移される。これを本明細書では、「実体化」と呼ぶ場合がある。
【００１３】
ここで、第３ボリュームは、他の記憶制御装置の有する記憶領域に対応付けられているボリュームである。第３ボリュームを対象とするライトデータは、記憶制御装置から他の記憶制御装置に送信され、他の記憶制御装置の記憶領域に記憶される。第３ボリュームからデータを読み出す場合、他の記憶制御装置の記憶領域からリードデータが読み出されて記憶制御装置に送信される。第１ボリュームと第２ボリュームとの関係、第３ボリュームと他の記憶制御装置の記憶領域との関係は、記憶制御装置内で処理され、上位装置はその内部処理を意識せずにストレージシステムを利用可能である。
【００１４】
第３ボリュームと他の記憶制御装置の有する記憶領域とは、直接的に接続することもできるし、間接的に接続することもできる。間接的に接続するとは、例えば、第３ボリュームと他の記憶制御装置の有する記憶領域との間に中間的な記憶領域を設定し、この中間的な記憶領域を介して両者を接続することを意味する。
【００１５】
本発明の実施形態では、制御部は、上位装置へのデータ提供元を第１ボリュームから第３ボリュームに切り替える。これにより、以後、上位装置は、第３ボリュームにアクセスしてデータの読み書きを行うことができる。
【００１６】
本発明の実施形態では、制御部は、第２ボリュームに記憶されている第１ボリュームのデータの量が予め設定された所定値に達した場合に、第２ボリュームに記憶されている第１ボリュームのデータを第３ボリュームに記憶させる。所定値は、ユーザが自由に設定できるようにしてもよいし、自動的に定まった値を用いることもできる。例えば、第２ボリュームに記憶される第１ボリュームのデータの合計サイズが、第１ボリュームのサイズに等しくなったか、あるいは、第１ボリュームのサイズの所定割合に達した場合に、第２ボリュームから第３ボリュームへのデータ移行を実行させることができる。
【００１７】
本発明の実施形態では、制御部は、所定の場合が到来したときに、第３ボリュームを記憶領域に対応付けて生成させる。即ち、第３ボリュームを予め用意しておくこともできるし、第２ボリュームから第３ボリュームへのデータ移行を行うべき時期が到来したときに、第３ボリュームを生成するようにしてもよい。必要に応じて第３ボリュームを生成する場合は、未使用の第３ボリュームを長時間遊ばせることがなく、ストレージシステムの記憶資源を有効に利用することができる。
【００１８】
本発明の実施形態では、他の記憶制御装置は複数設けられており、制御部は、所定の場合が到来したときに、複数の他の記憶制御装置のうち、最大の未使用記憶領域を有する他の記憶制御装置を選択し、この選択された他の記憶制御装置の有する未使用記憶領域に対応付けて第３ボリュームを生成させる。即ち、第３ボリュームが必要になった時点において、最大の未使用記憶領域を有する他の記憶制御装置を選択して使用する。
【００１９】
本発明の別の実施形態では、他の記憶制御装置は複数設けられており、制御部は、所定の場合が到来したときに、複数の他の記憶制御装置のうち、未来の所定時点において最大の未使用記憶領域を有する記憶制御装置を選択し、この選択された他の記憶制御装置の有する現在の未使用記憶領域に対応付けて第３ボリュームを生成させる。現時点で最大の未使用記憶領域を備えていても、その記憶領域の消費速度が速いとき、即ち、その未使用記憶領域が比較的短時間のうちに多量に使用されている場合、この未使用記憶領域を有する他の記憶制御装置を選択することは適切ではないことがある。そこで、未使用記憶領域の使用量を定期的または不定期に監視し、未来の所定時点における未使用記憶領域のサイズを予測する。そして、この予測されたサイズに基づいて、第３ボリュームに対応付けるか否かを判断する。
【００２０】
本発明の実施形態では、記憶制御部は固有の記憶領域を備えており、制御部は、固有の記憶領域に所定サイズ以上の未使用記憶領域が存在しない場合に、他の記憶制御装置の有する記憶領域に対応付けて第３ボリュームを生成させる。
【００２１】
本発明のさらに別の実施形態では、制御部は、他の記憶制御装置の有する未使用記憶領域のうち、上位装置によって使用されている未使用記憶領域を開放させ、この開放された未使用記憶領域に対応付けて第３ボリュームを生成させる。
【００２２】
本発明の他の観点に従うストレージシステムの制御方法は、記憶制御装置と該記憶制御装置とは異なる他の記憶制御装置とを通信可能に接続して構成され、上位装置からのリクエストに応じたデータ処理を行うストレージシステムの制御方法であって、仮想的に構築される第１ボリュームと該第１ボリュームを対象とするデータを記憶するための第２ボリュームとを対応付けるステップと、上位装置から第１ボリュームを対象とするアクセス要求に基づいて、第２ボリュームへのデータ入出力を行うステップと、第２ボリュームに記憶されている第１ボリュームのデータが予め設定された所定値に達したか否かを監視するステップと、第２ボリュームに記憶されている第１ボリュームのデータが所定値に達した場合は、他の記憶制御装置の有する記憶領域に対応付けられる第３ボリュームを生成させるステップと、第２ボリュームに記憶されている第１ボリュームのデータを第３ボリュームに記憶させるステップと、上位装置へのデータ提供元を第１ボリュームから第３ボリュームに切り替えるステップと、を含む。
【００２３】
本発明のさらに別の観点に従う記憶制御装置は、他の記憶制御装置及び上位装置にそれぞれ異なる通信ネットワークを介して接続される記憶制御装置であって、仮想的に構築される第１ボリュームと、この第１ボリュームを対象とするデータを記憶するための第２ボリュームと、第１ボリュームの記憶空間と第２ボリュームの記憶空間との対応関係を管理する管理部と、他の記憶制御装置の有する記憶領域に対応付けられて生成される第３ボリュームと、第１ボリュームを対象とする上位装置からのアクセス要求に基づいて第２ボリュームへのデータ入出力を行い、かつ、所定の場合に、第２ボリュームに記憶されている第１ボリュームのデータを第３ボリュームに記憶させる制御部と、を備える。
【００２４】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【００２５】
図１は、本発明の実施形態の全体概要を示す構成説明図である。本実施形態の記憶制御装置は、後述のように、外部に存在する記憶領域（記憶デバイス）を、あたかも自己の内部ボリュームとして取り込んで使用することができる。
【００２６】
本実施形態のストレージシステムは、例えば、「記憶制御装置」に該当する第１ストレージ装置１と、「他のストレージ装置」に該当する第２ストレージ装置２と、「上位装置」に該当するホスト３とを備えて構成可能である。
【００２７】
第１ストレージ装置１は、例えば、ディスクアレイ装置として構成される。第１ストレージ装置１は、例えば、論理ユニット（以下、ＬＵ」１Ａと、「第１ボリューム」に該当する仮想ボリューム１Ｂと、「管理部」に該当する管理テーブル１Ｃと、「第２ボリューム」に該当するプール領域１Ｄと、「第３ボリューム」に該当する外部接続ボリューム１Ｅと、記憶部１Ｆとを備えて構成可能である。
【００２８】
ＬＵ１Ａは、ホスト３によって認識され、アクセスされる対象である。ＬＵ１Ａには、仮想ボリューム１Ｂが接続されている。仮想ボリューム１Ｂは、仮想的に構築されたボリュームであり、物理的な記憶領域を備えていない。ホスト３が仮想ボリューム１Ｂに書き込んだデータは、プール領域１Ｄに記憶される。
【００２９】
プール領域１Ｄは、記憶部１Ｆによって提供される物理的記憶領域に設定された実ボリュームである。プール領域１Ｄには、ホスト３がＬＵ１Ａを介して仮想ボリューム１Ｂに書き込んだデータが順番に記憶される。プール領域１Ｄは、いわゆる通常のジャーナルボリュームとは異なり、同一アドレスへのライトデータは同一の場所に記憶する。即ち、プール領域１Ｄには、仮想ボリューム１Ｂの全記憶領域のうちホスト３によってアクセスされた範囲に対応する範囲が、順番に確保（設定）されていく。
【００３０】
管理テーブル１Ｃは、仮想ボリューム１Ｂの記憶空間とプール領域１Ｄの記憶空間との対応付けを管理する。管理テーブル１Ｃには、仮想ボリューム１Ｂに書き込まれたデータについて、仮想ボリューム１Ｂ内のアドレスとプール領域１Ｄ内のアドレスとが対応付けられている。データそのものは、上述のように、プール領域１Ｄに記憶されている。
【００３１】
外部接続ボリューム１Ｅは、第２ストレージ装置２の有する外部ボリューム２Ｂに対応付けられている実ボリュームである。第１ストレージ装置１から見て外部に存在する第２ストレージ装置２内のボリューム２Ｂに接続されているため、ここでは、外部接続ボリュームと呼ぶ。
【００３２】
記憶部１Ｆは、複数の記憶デバイスを備えており、物理的な記憶領域を提供する。この物理的な記憶領域上にプール領域１Ｄが設けられている。従って、プール領域１Ｄに書き込まれたデータは、最終的には記憶部１Ｆ内の記憶デバイスに記憶される。記憶デバイスとしては、例えば、ハードディスクドライブ、半導体メモリドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープドライブ等を用いることができる。
【００３３】
第２ストレージ装置２は、例えば、ＬＵ２Ａと、ボリューム２Ｂと、記憶部２Ｃとを備えて構成することができる。第２ストレージ装置２は、第１ストレージ装置１の外部に設けられた別のストレージ装置であるため、外部ストレージ装置と呼ぶ場合がある。第２ストレージ装置２内の実ボリューム２Ｂを、外部ボリューム２Ｂと呼ぶ場合がある。
【００３４】
ＬＵ２Ａは、ＬＵ１Ａと同様に、ボリューム２Ｂにデータを読み書きするための窓口となる。ボリューム２Ｂは、記憶部２Ｃが提供する物理的な記憶領域上に設定された実ボリュームである。記憶部２Ｃは、記憶部１Ｆと同様に、ハードディスクドライブや半導体メモリドライブ等の記憶デバイスを複数備えることができる。
【００３５】
ホスト３と第１ストレージ装置１とは、例えば、SAN（Storage Area Network）等のネットワークを介して接続されている。第１ストレージ装置１と第２ストレージ装置２とは、例えば、SAN等の別のネットワークを介して接続されている。第１ストレージ装置１と第２ストレージ装置２との間の通信ネットワークとホスト３と第１ストレージ装置１との間の通信ネットワークとは、それぞれ別々のネットワークとして構成することができる。なお、SANに限らず、例えば、LAN（Local Area Network）等のネットワークを利用する構成でもよい。
【００３６】
次に、ストレージシステムの全体動作を説明する。ホスト３は、ＬＵ１Ａを介して仮想ボリューム１Ｂにデータを書き込む（Ｓ１）。実際のデータは、プール領域１Ｄに書き込まれる（Ｓ２）。管理テーブル１Ｃは、ホスト３から書き込まれるデータのアドレスが既に登録されているか否かを判定する。そのアドレスが未登録の場合、そのアドレスについて新たなエントリが作成される。このエントリには、仮想ボリューム１Ｂにおけるアドレスとプール領域１Ｄに記憶されたデータを指し示すためのポインタとが格納される。
【００３７】
プール領域１Ｄは、順番に使用される。ジャーナルボリュームとは異なり、同一アドレスについて複数回の書き込みがされた場合でも、プール領域１Ｄには、同一箇所でデータが上書きされる。プール領域１Ｄの全記憶領域のうち使用される記憶領域の合計サイズは、仮想ボリューム１Ｂが実際に使用された範囲（ホスト３によってアクセスされた範囲）の合計サイズに等しい。
【００３８】
第１ストレージ装置１は、プール領域１Ｄに書き込まれるデータの合計サイズ、即ち、プール領域１Ｄの使用量を監視している（Ｓ３）。プール領域１Ｄの使用量が予め設定された所定値に達した場合、空き容量の探索が行われる（Ｓ４）。空き容量とは、どのホスト３にも割り当てられていない未使用の記憶領域を意味する。
【００３９】
第１ストレージ装置１は、第２ストレージ装置２が所定サイズ以上の未使用記憶領域（外部ボリューム２Ｂ）を有するか否か判定する。所定サイズとは、プール領域１Ｄに記憶されている仮想ボリューム１Ｂのデータの合計サイズである。所定サイズ以上の未使用の外部ボリューム２Ｂが検出された場合、第１ストレージ装置１は、この外部ボリューム２Ｂを外部接続ボリューム１Ｅに対応付ける（Ｓ５）。この外部ボリューム２Ｂに外部接続ボリューム１Ｅを対応付けて接続する処理を、マッピング処理とも呼ぶ。
【００４０】
マッピング処理が完了すると、外部接続ボリューム１Ｅの準備が完了し、プール領域１Ｄに記憶されたデータが外部接続ボリューム１Ｅにコピーされる（Ｓ６）。外部接続ボリューム１Ｅにコピーされるデータは、通信ネットワークを介して第２ストレージ装置２に転送され、外部ボリューム２Ｂに記憶される。そして、ＬＵ１Ａは、仮想ボリューム１Ｂから外部接続ボリューム１Ｅに繋ぎ直される。以後、ホスト３は、ＬＵ１Ａを介して、外部接続ボリューム１Ｅにアクセスし、データの読み書きを行う。なお、これらの処理は、ホスト３に対して隠されており、ホスト３は、実際のデータの記憶先を意識せずにデータの読み書きを行うことができる。
【００４１】
このように構成される本実施形態によれば、物理的実体を備えない仮想ボリューム１Ｂを定義し、仮想ボリューム１Ｂのうち実際にアクセスされた範囲のみをプール領域１Ｄに設定する構成とした。従って、仮想ボリューム１Ｂのサイズよりも小さいサイズのプール領域１Ｄによって、仮想ボリューム１Ｂへのデータ読み書きを処理可能である。このため、記憶デバイスを新たに追加せずに、より大きなボリュームを速やかに構築してホスト３に提供することができ、ストレージシステムの使い勝手が向上する。
【００４２】
本実施形態では、物理的実体を備えない仮想ボリューム１Ｂによってホスト３からのデータを受け付け、データ量が所定値に達した場合に、外部接続ボリューム１Ｅにデータを移行させる構成とした。従って、記憶デバイスを予め多めに備えておく必要がなく、過大な先行投資を防止して、ストレージシステムのコストを低減させることができる。
【００４３】
本実施形態では、仮想ボリューム１Ｂのデータをプール領域１Ｄから外部接続ボリューム１Ｅに移行させる構成とした。従って、第１ストレージ装置１の外部に存在する外部ボリューム２Ｂを利用することができ、ストレージシステムの記憶資源を有効に利用することができる。以下、本実施形態をより詳細に説明する。
【実施例１】
【００４４】
図２は、本実施例によるストレージシステムの全体構成を示す説明図である。先に図１との対応関係を明らかにする。ホスト１０は図１中のホスト３に、第１ストレージ装置１００は図１中の第１ストレージ装置１に、第２ストレージ装置２００は図１中の第２ストレージ装置２００（または第３ストレージ装置３００）に、それぞれ対応する。
【００４５】
このストレージシステムは、例えば、少なくとも一つのホスト１０と、少なくとも一つの第１ストレージ装置１００と、少なくとも一つの外部ストレージ装置２００，３００と、各ストレージ装置１００，２００，３００にそれぞれ接続された管理端末２１，２２，２３とを含んで構成することができる。なお、管理端末２１，２２，２３は、それぞれ別々に構成される必要はなく、一つの管理端末が複数のストレージ装置を管理する構成でもよい。
【００４６】
ホスト１０は、例えば、CPU（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト１０は、例えば、SAN等の通信ネットワークＣＮ１を介して第１ストレージ装置１００に接続されている。
【００４７】
第１ストレージ装置１００は、ストレージシステムの中心的役割を果たすメインストレージ装置である。詳細は後述するが、第１ストレージ装置１００は、コントローラ１１０と記憶部１２０とを備えて構成可能である。第１ストレージ装置１００は、通信ネットワークＣＮ１を介して各ホスト１０にそれぞれ接続されている。また、第１ストレージ装置１００は、別の通信ネットワークＣＮ２を介して、他のストレージ装置２００，３００にそれぞれ接続されている。別の通信ネットワークＣＮ２としては、例えば、SAN等を用いることができる。
【００４８】
第２ストレージ装置２００及び第３ストレージ装置３００は、それぞれ第１ストレージ装置１００の外部に位置する外部ストレージ装置である。第２ストレージ装置２００は、コントローラ２１０と記憶部２２０とを備えて構成される。同様に、第３ストレージ装置３００も、コントローラ３１０と記憶部３２０とを備えて構成される。これら各ストレージ装置２００，３００は、後述のように、内部の実ボリュームを第１ストレージ装置１００に提供することができる。
【００４９】
管理端末２１は第１ストレージ装置１００に、管理端末２２は第２ストレージ装置２００に、管理端末２３は第３ストレージ装置３００に、それぞれ接続されており、システム管理者等のユーザによって操作される。各管理端末２１，２２，２３は、それぞれが接続されているストレージ装置の状態を監視したり、必要な指示を与えることができる。管理端末２１，２２，２３は、例えば、パーソナルコンピュータや携帯情報端末等のコンピュータ装置として構成される。各管理端末２１，２２，２３は、例えば、LAN等の通信ネットワークＣＮ３を介して、相互に接続されている。従って、各管理端末２１，２２，２３は、通信ネットワークＣＮ３を介して、相互に通信を行うことができる。なお、これに代えて、各管理端末２１，２２，２３が、ストレージ装置間の通信ネットワークＣＮ２を介して、通信を行う構成でもよい。
【００５０】
図３は、ストレージシステムのブロック図である。紙面の都合上、第１ストレージ装置１００及び第２ストレージ装置２００の構成を中心に示している。
【００５１】
ホスト１０は、例えば、ストレージ装置との間の通信を行うためのHBA（Host Bus Adapter）１１Ａと、データベースソフトウェア等のアプリケーションプログラム１２Ａと、を備えることができる。さらに、ホスト１０には、例えば、パス管理ソフトウェアやストレージ管理ソフトウェア等を搭載することもできる。パス管理ソフトウェアは、例えば、ホスト１０と第１ストレージ装置１００との間に複数のパスが設定されている場合に、負荷分散を行ったり、障害発生時のパス切替を制御する。ストレージ管理ソフトウェアは、第１ストレージ装置１００に構成変更等を指示することができる。
【００５２】
第１ストレージ装置１００は、例えば、ディスクアレイサブシステムとして構成されるものである。但し、これに限らず、第１ストレージ装置１００を、高機能化されたインテリジェント型のスイッチとして構成することもできる。第１ストレージ装置１００は、外部のストレージ装置２００、３００の有する記憶資源を自己の論理ボリュームとして利用可能であるから、大容量の記憶デバイスを備えている必要はない。第１ストレージ装置１００は、プール領域を実現するだけの記憶デバイスを備えていれば足りる。
【００５３】
上述のように、第１ストレージ装置１００は、コントローラ１１０と記憶部１２０とに大別することができる。コントローラ１１０は、例えば、複数のチャネルアダプタ（以下、「CHA」）１１１と、複数のディスクアダプタ（以下、「DKA」）１１２と、キャッシュメモリ１１３と、共有メモリ１１４と、接続制御部１１５とを備えている。
【００５４】
各CHA１１１は、ホスト１０との間のデータ通信を行うものである。一つまたは複数のCHA１１１は、ホスト１０と通信を行うための通信ポート１１１Ｔを備えている。また、別の一つまたは複数のCHA１１１は、外部のストレージ装置２００，３００と通信を行うための通信ポート１１１Ｅを備えている。
【００５５】
各CHA１１１は、それぞれCPUやメモリ等を備えたマイクロコンピュータシステムとして構成されており、ホスト１０から受信した各種コマンドを解釈して実行する。各CHA１１１には、それぞれを識別するためのネットワークアドレス（例えば、IPアドレスやWWN）が割り当てられている。ホスト１０に接続されるCHA１１１は、それぞれが個別にNAS（Network Attached Storage）として振る舞うことも可能である。複数のホスト１０が存在する場合、CHA１１１は、各ホスト１０からの要求をそれぞれ個別に受け付けて処理する。
【００５６】
各DKA１１２は、記憶部１２０が有するディスクドライブ１２１との間でデータ授受を行うものである。各DKA１１２は、CHA１１１と同様に、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成される。各DKA１１２は、例えば、CHA１１１がホスト１０から受信したデータを、所定のディスクドライブ１２１の所定のアドレスに書込む。また、各DKA１１２は、所定のディスクドライブ１２１の所定のアドレスからデータを読み出し、ホスト１０または外部ストレージ装置２００，３００に送信させる。ディスクドライブ１２１との間でデータ入出力を行う場合、各DKA１１２は、論理的なアドレスを物理的なアドレスに変換する。各DKA１１２は、ディスクドライブ１２１がRAIDに従って管理されている場合は、RAID構成に応じたデータアクセスを行う。例えば、各DKA１１２は、同一のデータを別々のディスクドライブ群（RAIDグループ）にそれぞれ書き込んだり、あるいは、パリティ計算を実行し、データ及びパリティをディスクドライブ群に書き込む。
【００５７】
キャッシュメモリ１１３は、ホスト１０または外部のストレージ装置２００，３００から受信したデータを記憶したり、あるいは、ディスクドライブ１２１から読み出されたデータを記憶する。
【００５８】
共有メモリ（制御メモリとも呼ばれる）１１４には、第１ストレージ装置１００の作動に使用するための各種制御情報等が格納される。また、共有メモリ１１４には、ワーク領域が設定されるほか、後述するマッピングテーブル等の各種テーブル類も格納される。テーブルの構成は後述する。テーブルは、例えば、管理端末２１からの指示に基づいて生成され、共有メモリ１１４に記憶される。そして、テーブルの記憶内容の全部または一部を、CHA１１１，DKA１１２内にそれぞれコピーしておくこともできる。
【００５９】
なお、ディスクドライブ１２１のいずれか１つあるいは複数を、キャッシュ用のディスクとして使用してもよい。また、キャッシュメモリ１１３と共有メモリ１１４とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。
【００６０】
接続制御部１１５は、各CHA１１１，各DKA１１２，キャッシュメモリ１１３及び共有メモリ１１４を相互に接続させるものである。接続制御部１１５は、例えば、高速スイッチング動作によってデータ伝送を行うクロスバスイッチやバスとして構成可能である。
【００６１】
記憶部１２０は、複数のディスクドライブ１２１を備えている。ディスクドライブ１２１としては、例えば、ハードディスクドライブ、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリドライブ、光ディスクドライブ等のような各種記憶デバイス及びこれらの均等物を用いることができる。また、例えば、FC（Fibre Channel）ディスクやSATA（Serial AT Attachment）ディスク等のように、異種類のディスクを記憶部１２０内に混在させることもできる。
【００６２】
サービスプロセッサ（SVP）１１６は、例えば、LAN等の通信ネットワークＣＮ４を介して、第１ストレージ装置１００内の各種情報を収集したり、共有メモリ１１４に制御情報を書き込んだりする。図中では、SVP１１６を各CHA１１１に接続する場合を示しているが、これに限らず、SVP１１６と各CHA１１１及び各DKA１１２とをそれぞれ通信ネットワークＣＮ４を介して接続することもできる。
【００６３】
管理端末２１は、LAN等の通信ネットワークを介してSVP１１６と接続されており、ストレージ管理部２１Ａを備えている。ストレージ管理部２１Ａは、ストレージ装置の管理を行うためのソフトウェアである。管理端末２１は、SVP１１６を介して、第１ストレージ装置１００内の各種情報を収集したり、または、第１ストレージ装置１００に各種の指示を与える。
【００６４】
第２ストレージ装置２００は、上述のように、コントローラ２１０及び記憶部２２０を備えている。第２ストレージ装置２００は、通信ポート２１１を介して、第１ストレージ装置１００に接続されている。第２ストレージ装置２００は、第１ストレージ装置１００とほぼ同様の構成を備えることもできるし、第１ストレージ装置１００よりも簡易な構成を採用することもできる。第２ストレージ装置２００の記憶部２２０には、複数のディスクドライブ２２１が設けられている。これら各ディスクドライブ２２１が提供する物理的な記憶領域は、第１ストレージ装置１００の内部記憶領域であるかのようにして扱われる場合がある。
【００６５】
管理端末２２は、管理端末２１と同様に、LAN等の通信ネットワークを介して、第２ストレージ装置２００に接続されており、ストレージ管理部２２Ａを備えている。なお、第３ストレージ装置３００は、第２ストレージ装置２００と同様に構成可能であるので、その説明を省略する。
【００６６】
図４は、ストレージシステムの機能構成を示す説明図である。第１ストレージ装置１００は、一つまたは複数の仮想ボリューム１２３Ｖと、少なくとも一つのプール領域１２３Ｐと、外部接続ボリューム１２３Ｅと、プール領域管理テーブルＴ１と、使用量監視部１１０Ａと、未使用記憶領域検出部１１０Ｂと、マッピング部１１０Ｃと、データ移行部１１０Ｄと、切替部１１０Ｅと、LU-LDEV管理テーブルＴ２と、マッピングテーブルＴ３とを備えることができる。
【００６７】
仮想ボリューム１２３Ｖは、物理的な実体を有さない仮想的なボリュームであるが、ホスト１０は、物理的実体の有無を意識することなく、各仮想ボリューム１２３Ｖにアクセスすることができる。各仮想ボリューム１２３Ｖは、プール領域管理テーブルＴ１を介して、プール領域（プールボリュームと呼ぶこともできる）１２３Ｐにそれぞれ対応付けられている。
【００６８】
プール領域１２３Ｐは、第１ストレージ装置１００の記憶部１２０により提供される物理的な記憶領域上に設けられた実ボリュームである。実ボリュームとは、物理的実体を備えたボリュームという意味である。プール領域１２３Ｐには、各仮想ボリューム１２３Ｖを対象とするライトデータが順番に記憶されていく。従って、各仮想ボリューム１２３Ｖとプール領域１２３Ｐとはそれぞれ異なるサイズにすることができ、両者の記憶空間の構造は相違する。なお、外部接続ボリューム１２３Ｅと同様に、外部のストレージ装置２００，３００の有する実ボリュームを利用して、プール領域１２３Ｐを生成してもよい。この場合、第１ストレージ装置１００は、記憶部１２０を備える必要はない。
【００６９】
プール領域管理テーブルＴ１は、各仮想ボリューム１２３Ｖのアドレスとプール領域１２３Ｐのアドレスとの対応関係を管理する制御情報である。プール領域管理テーブルＴ１の構成例は後述する。
【００７０】
外部接続ボリューム１２３Ｅは、外部のストレージ装置２００が有する実ボリューム２２３に対応付けられるボリュームである。外部接続ボリューム１２３Ｅへのライトデータは、外部のストレージ装置２００の有するボリューム２２３に記憶される。外部接続ボリューム１２３Ｅと外部ボリューム２２３とは、同一サイズに構成することができ、両者の記憶空間の構造も同一にすることができる。外部接続ボリューム１２３Ｅの所定のアドレスを指定するライトデータは、外部ボリューム内の対応するアドレスに記憶される。なお、図では、外部のストレージ装置として第２ストレージ装置２００を示すが、これに限らず、第３ストレージ装置３００のボリュームと外部接続ボリューム１２３Ｅとを接続させる構成でもよい。
【００７１】
第１ストレージ装置１００のコントローラ１１０は、各機能１１０Ａ〜１１０Ｅをそれぞれ実現する。使用量監視部１１０Ａは、プール領域１２３Ｐに記憶された仮想ボリューム１２３Ｖのデータ量（プール領域１２３Ｐの使用量）が所定値に達したか否かを監視するものである。所定値としては、例えば、仮想ボリューム１２３Ｖの定義サイズや、定義サイズの所定割合（例えば、定義サイズの７０％等）を挙げることができる。
【００７２】
プール領域１２３Ｐの使用量が所定値に達すると、未使用記憶領域検出部１１０Ｂは、外部のストレージ装置２００が所定サイズ以上の空きボリューム２２３を有しているか否かを検出する。所定サイズとは、プール領域１２３Ｐに記憶されている仮想ボリューム１２３Ｖの全データ量と等しいかそれ以上の値である。
【００７３】
所定サイズの空きボリューム２２３が検出されると、マッピング部１１０Ｃは、その空きボリューム２２３と外部接続ボリューム１２３Ｅとの対応関係をマッピングテーブルＴ３に登録する。これにより、外部接続ボリューム１２３Ｅは、外部ボリューム２２３に接続される。マッピングテーブルＴ３の一例は後述する。
【００７４】
データ移行部１１０Ｄは、プール領域１２３Ｐに記憶されている全データのうち、データ移行対象の仮想ボリューム１２３Ｖに関するデータを全て読出し、この読み出されたデータを外部接続ボリューム１２３Ｅに記憶させる。このコピー処理をデータ移行処理とも呼ぶ。上述のように、外部接続ボリューム１２３Ｅの物理的実体は、外部ボリューム２２３であるから、プール領域１２３Ｐから読み出されたデータは、通信ネットワークＣＮ２を介して第２ストレージ装置２００に転送され、外部ボリューム２２３の所定のアドレスに書き込まれる。
【００７５】
切替部１１０Ｅは、データ移行処理が完了すると、LU-LDEV管理テーブルＴ２を書き換えることにより、ホスト１０のアクセス先デバイスを仮想ボリューム１２３Ｖから外部接続ボリューム１２３Ｅに切替えさせる。LU−LDEV管理テーブルＴ２の一例は後述する。
【００７６】
図５は、ストレージシステムの記憶構造を模式的に示す説明図である。第１ストレージ装置１００の記憶構造は、例えば、物理的記憶階層と論理的記憶階層とに大別することができる。物理的記憶階層は、物理的なディスクであるディスクドライブ１２１により構成される。
【００７７】
論理的記憶階層は、複数の（例えば２種類の）階層から構成可能である。一つの論理的階層は、VDEV（Virtual Device）１２２である。他の一つの論理的階層は、LDEV（Logical Device）１２３である。
【００７８】
VDEV１２２は、例えば、４個１組（３Ｄ＋１Ｐ）、８個１組（７Ｄ＋１Ｐ）等のような所定数のディスクドライブ１２１をグループ化して構成される。グループに属する各ディスクドライブ１２１がそれぞれ提供する記憶領域が集合して一つのRAID記憶領域が形成される。このRAID記憶領域がVDEV１２２となる。
【００７９】
一方、全てのVDEV１２２が物理的な記憶領域上に直接生成されるわけではなく、少なくとも一部のVDEV１２２は、仮想的な中間記憶デバイスとして構成可能である。図中の右側に示すVDEV１２２は、第２ストレージ装置２００のＬＵ（Logical Unit）２２４をマッピングするための受け皿となっている。
【００８０】
LDEV１２３は、論理ボリュームであり、VDEV１２２上に、それぞれ少なくとも一つ以上設けることができる。LDEV１２３は、例えば、VDEV１２２を固定長で分割することにより構成することができる。ホスト１０がオープン系ホストの場合、LDEV１２３がＬＵ１２４にマッピングされることにより、ホスト１０は、LDEV１２３を一つの物理的なディスクとして認識する。オープン系のホストは、LUN（Logical Unit Number ）や論理ブロックアドレスを指定することにより、所望のLDEV１２３にアクセスする。なお、メインフレーム系ホストの場合は、LDEV１２３を直接認識する。
【００８１】
LDEV１２３のうち仮想ボリューム１２３Ｖ（図５中「V-VOL」と表示）は、プール領域管理テーブルＴ１を介して、プール領域１２３Ｐに関連付けられている。プール領域１２３Ｐは、上述のように、ディスクドライブ１２１の有する記憶領域上に設けられる。また、LDEV１２３のうち外部接続ボリューム１２３Ｅは、仮想的な中間記憶デバイスVDEVを介して、第２ストレージ装置２００のLDEV２２３に関連付けられる。
【００８２】
ＬＵ１２４は、SCSIの論理ユニットとして認識可能なデバイスである。ＬＵ１２４は、ターゲットポート１１１Ｔを介してホスト１０に接続される。ＬＵ１２４には、少なくとも一つ以上のLDEV１２３をそれぞれ関連付けることができる。一つのＬＵ１２４に複数のLDEV１２３を関連付けることにより、ＬＵサイズを仮想的に拡張することもできる。
【００８３】
CMD（Command Device）１２５は、ホスト１０上で稼働するI/O制御プログラムとストレージ装置１００のコントローラ１１０（CHA１１１，DKA１１２）との間で、コマンドやステータスを受け渡すために使用される専用のＬＵである。ホスト１０からのコマンドは、CMD１２５に書き込まれる。ストレージ装置１００のコントローラ１１０は、CMD１２５に書き込まれたコマンドに応じた処理を実行し、その実行結果をステータスとしてCMD１２５に書き込む。ホスト１０は、CMD１２５に書き込まれたステータスを読出して確認し、次に実行すべき処理内容をCMD１２５に書き込む。このようにして、ホスト１０は、CMD１２５を介して、ストレージ装置１００に各種の指示を与えることができる。
【００８４】
なお、ホスト１０から受信したコマンドを、CMD１２５に格納することなく、処理することもできる。また、例えば、CHA１１１は、ホスト１０から受信したコマンドを共有メモリ１１４に書き込み、この共有メモリ１１４に記憶されたコマンドをCHA１１１又はDKA１１２が処理して、その処理結果を共有メモリ１１４に書き込み、CHA１１１からホスト１０にその処理結果を送信することもできる。
【００８５】
ところで、第１ストレージ装置１００の外部接続用のイニシエータポート（External Port）１１１Ｅには、通信ネットワークＣＮ２を介して、第２ストレージ装置２００が接続されている。第２ストレージ装置２００は、複数のディスクドライブ２２１と、ディスクドライブ２２１の提供する記憶領域上に設定されたVDEV２２２と、VDEV２２２上に少なくとも一つ以上設定可能なLDEV２２３とを備えている。LDEV２２３は、ＬＵ２２４に関連付けられる。この第２ストレージ装置２００の有するLDEV２２３は、外部接続ボリューム１２３Ｅに関連付けられ、外部接続ボリューム１２３Ｅに物理的な記憶領域を提供する。
【００８６】
図６は、プール領域管理テーブルＴ１の一例を示す説明図である。プール領域管理テーブルＴ１は、例えば、エントリ番号と、ＬＵ番号と、論理アドレス（LBA）と、データ長と、ポインタとを対応付けることにより構成可能である。
【００８７】
ここで、エントリ番号とは、プール領域１２３Ｐ内に記憶領域が確保された順序を示す情報である。ＬＵ番号とは、ＬＵ１２４を識別するための情報である。LBAとは、仮想ボリューム１２３Ｖ内におけるデータの格納先アドレスを示す情報である。データ長とは、そのデータの長さを示す情報である。ポインタとは、そのデータが実際に記憶されているプール領域１２３Ｐ内の位置を示す情報である。このように、プール領域管理テーブルＴ１は、複数の仮想ボリューム１２３Ｖと一つのプール領域１２３Ｐとを対応付けて管理することができる。プール領域管理テーブルＴ１には、仮想ボリューム１２３Ｖへのデータ書き込み順にエントリが追加され、そのデータの実際の格納先を示すポインタと対応付けられる。既に存在するエントリについて再度のデータ書き込みが行われた場合は、既存のデータ上書きされる。仮想ボリューム１２３Ｖ内の同一アドレスについて、エントリは１つだけ生成される。
【００８８】
図７は、LUN-LDEV管理テーブルＴ２及びマッピングテーブルＴ３をそれぞれ示す説明図である。LUN-LDEV管理テーブルＴ２は、例えば、ＬＵ番号と、LDEV番号と、VDEV番号とを対応付けることにより構成可能である。なお、VDEV番号からLDEV番号やＬＵ番号を逆引きするためのテーブルを用意してもよい。
【００８９】
マッピングテーブルＴ３は、例えば、VDEV番号と、ポート番号と、外部ボリューム２２３にアクセスするためのパス情報とを対応付けることにより構成可能である。パス情報としては、例えば、WWNやＬＵ番号を挙げることができる。
【００９０】
次に、各テーブルＴ２，Ｔ３の使用例を説明する。ホスト１０は、通信ポート１１１Ｔに対して、ＬＵ番号（LUN＃）及び論理ブロックアドレス（LBA）を指定してライトデータを送信する。第１ストレージ装置１００は、このライトデータのアドレス（LUN＃＋LBA）を、テーブルＴ２に基づいて、VDEV用のアドレスに変換する。テーブルＴ２を参照することにより、ホスト１０からのデータ（LUN＃＋LBA）は、VDEV用のデータ（VDEV＃＋SLOT＃＋SUBBLOCK＃）に変換される。
【００９１】
次に、第１ストレージ装置１００は、テーブルＴ３を参照して、VDEV用のデータを、第２ストレージ装置２００のLUN用に送信して記憶させるためのデータに変換する。テーブルＴ３中のポート番号は、ライトデータを第２ストレージ装置２００に送信するためのイニシエータポートを識別するための情報である。テーブルＴ３中のWWNは、データ転送先の通信ポート２１１を特定するための情報であり、ＬＵ番号は第２ストレージ装置２００の通信ポート２１１を介してアクセス可能なＬＵ２２４を識別するための情報である。
【００９２】
これにより、第１ストレージ装置１００は、記憶させるべきデータのアドレス情報を、イニシエータポート番号＃＋WWN＋LUN＃＋LBAの形式に変換する。このようにアドレス情報が変更されたデータは、指定されたイニシエータポートから通信ネットワークＣＮ２を介して、指定された通信ポート２１１に到達する。そして、データは、指定されたLDEV２２３の所定の場所に格納される。
【００９３】
図７（ｃ）は、マッピングテーブルＴ３の別の例を示す。この変換テーブルＴ３ａは、外部ディスクドライブ２２１に関連付けられるVDEVに、ストライプやRAIDを適用する場合に使用される。テーブルＴ３ａは、例えば、VDEV番号（VDEV＃）と、ストライプサイズと、RAIDレベルと、第２ストレージ装置２００を識別するための番号（ＳＳ＃（装置番号））と、イニシエータポート番号と、通信ポート２１１のWWN及びＬＵ番号とを対応付けることにより構成することができる。
【００９４】
図７（ｃ）に示す例では、１つのVDEV（V-VOL）は、ＳＳ＃（１，４，６，７）で特定される合計４つの外部ストレージ装置を利用してRAID１を構成する。また、ＳＳ＃１に割り当てられている３個のＬＵ（＃０，＃０，＃４）は、同一デバイス（VDEV＃）に設定されている。なお、LUN＃０のボリュームは、２個のアクセスデータパスを有する交代パス構造を備えている。このように、複数の外部ストレージ装置がそれぞれ有する論理ボリューム（LDEV）を、第１ストレージ装置１００内の一つのVDEVにそれぞれマッピングし、外部接続ボリューム１２３Ｅとして利用することもできる。このように、本実施例では、外部に存在する複数の論理ボリューム（LDEV）からVDEVを構成することにより、ストライピングやRAID等の機能を追加した上で使用することができる。
【００９５】
図８は、仮想ボリューム１２３Ｖへのデータ入出力処理の全体を示すフローチャートである。この処理は、第１ストレージ装置１００のコントローラ１１０によって実行することができる。なお、以下の説明でも同様であるが、フローチャートは処理の要部を示しており、実際のプログラムとは相違する。
【００９６】
第１ストレージ装置１００は、ホスト１０から発行されたコマンドを受信すると、そのコマンドのタイプを判別する（Ｓ１１）。例えば、ステータス問合せコマンド等のように、リードコマンドまたはライトコマンドのいずれでもない場合は、そのコマンドに応じた処理が行われる（Ｓ１２）。例えば、ステータス問合せコマンドの場合、問い合せされたステータスがホスト１０に返信される。
【００９７】
ホスト１０から受信したコマンドがライトコマンドの場合、第１ストレージ装置１００は、そのライトコマンドによって書き込まれるライトデータがキャッシュメモリ１１３に記憶されているか否かを判定する（Ｓ１３）。ライトデータが既にキャッシュメモリ１１３に記憶されている場合（S13:YES）、第１ストレージ装置１００は、キャッシュメモリ１１３に記憶されている旧データを、ホスト１０から受信したライトデータで上書きし（Ｓ１４）、ホスト１０に書き込み完了を報告する（Ｓ１５）。これに対し、ライトデータがキャッシュメモリ１１３に記憶されていない場合（S13:NO）、第１ストレージ装置１００は、ホスト１０から受信したライトデータをキャッシュメモリ１１３の空き領域に記憶させる（Ｓ１６）。このように、ホスト１０からライトコマンドを受信した場合は、ライトデータをキャッシュメモリ１１３に保存した時点で、ホスト１０にライトコマンドの処理が完了した旨を通知する。キャッシュメモリ１１３に記憶されたライトデータは、第１ストレージ装置１００の負荷状態等を考慮して、適当なタイミングで物理的な記憶領域に記憶される。
【００９８】
一方、ホスト１０から受信したコマンドがリードコマンドの場合、第１ストレージ装置１００は、そのリードコマンドにより要求されたデータがキャッシュメモリ１１３に記憶されているか否かを判定する（Ｓ１７）。ホスト１０から要求されたデータがキャッシュメモリ１１３に記憶されている場合（S17:YES）、第１ストレージ装置１００は、そのデータをキャッシュメモリ１１３から読み出してホスト１０に送信する（Ｓ１８）。
【００９９】
ホスト１０から要求されたデータがキャッシュメモリ１１３に記憶されていない場合（S17:NO）、第１ストレージ装置１００は、その要求されたデータのアドレスがプール領域１２３Ｐに割当て済みのアドレスであるか否かを判定する（Ｓ１９）。そのデータのアドレス（即ち、仮想ボリューム１２３Ｖの記憶空間におけるアドレス）が既にプール記憶領域１２３Ｐに割り当てられている場合（S19:YES）、第１ストレージ装置１００は、プール領域管理テーブルＴ１を参照し、そのデータに対応するポインタを取得する。そして、第１ストレージ装置１００は、そのポインタに基づいてプール領域１２３Ｐからデータを読出し、このデータをキャッシュメモリ１１３に記憶させる（Ｓ２０）。第１ストレージ装置１００は、キャッシュメモリ１１３に記憶されたデータを読み出して、ホスト１０に送信する（Ｓ２１）。
【０１００】
これに対し、ホスト１０から要求されたデータのアドレスがプール領域１２３Ｐに未だ割り当てられていない場合（S19:NO）、第１ストレージ装置１００は、そのアドレスをプール領域１２３Ｐに割り当てる（Ｓ２２）。即ち、第１ストレージ装置１００は、プール領域管理テーブルＴ１に新たなエントリを追加して、そのエントリに要求されたアドレスを登録し、かつ、そのアドレスに割り当てられた領域を示すポインタを対応付ける。そして、第１ストレージ装置１００は、ホスト１０にヌルデータを送信する（Ｓ２３）。
【０１０１】
図９は、キャッシュメモリ１１３に記憶されたライトデータをボリュームに書き込むための処理を示すフローチャートである。この処理は、第１ストレージ装置１００のコントローラ１１０（特にDKA１１２）によって実行することができる。
【０１０２】
キャッシュメモリ１１３に記憶されているライトデータのうち、未だボリュームに書き込まれていないライトデータをダーティデータと呼ぶ。既にボリュームに書き込まれているライトデータをクリーンデータと呼ぶ。
【０１０３】
第１ストレージ装置１００は、キャッシュメモリ１１３に記憶されているダーティデータを発見すると（S31:YES）、そのライトデータのアドレスに基づいて、仮想ボリューム１２３Ｖに書き込まれるべきライトデータであるか否かを判定する（Ｓ３２）。仮想ボリューム１２３Ｖ以外の通常のボリュームを対象とするライトデータの場合（S32:YES）、第１ストレージ装置１００は、その指定されたボリュームを構成するディスクドライブ１２１にライトデータを記憶させる（Ｓ３３）。
【０１０４】
これに対し、仮想ボリューム１２３Ｖが書き込み先となっているライトデータの場合（S32:YES）、第１ストレージ装置１００は、そのライトデータのアドレスがプール領域１２３Ｐに割当て済みか否かを判定する（Ｓ３４）。そのライトデータのアドレスが既にプール領域１２３Ｐに割り当てられている場合（S34:YES）、第１ストレージ装置１００は、そのライトデータをプール領域１２３Ｐに対応するディスクドライブ１２１に記憶させる（Ｓ３５）。
【０１０５】
一方、仮想ボリューム１２３Ｖを対象とするライトデータのアドレスがプール領域１２３Ｐに未だ割り当てられていない場合（S34:NO）、第１ストレージ装置１００は、そのアドレスをプール領域１２３Ｐに割り当てる（Ｓ３６）。そして、第１ストレージ装置１００は、ライトデータをプール領域１２３Ｐに対応するディスクドライブ１２１に記憶させる（Ｓ３７）。
【０１０６】
図１０は、仮想ボリューム１２３Ｖの使用量（プール領域１２３Ｐにおける仮想ボリューム１２３Ｖの使用量）を監視するための処理を示すフローチャートである。この処理は、例えば、第１ストレージ装置１００のコントローラ１１０や管理端末２１によって実行可能である。ここでは、第１ストレージ装置１００のコントローラ１１０が実行するものとして説明する。
【０１０７】
第１ストレージ装置１００は、プール領域管理テーブルＴ１を参照し（Ｓ４１）、各仮想ボリューム１２３Ｖのそれぞれについて、使用量を算出する（Ｓ４２）。具体的には、各仮想ボリューム１２３ＶのＬＵ番号毎に、ライトデータのデータ長をそれぞれ合計することにより、使用量を算出することができる。
【０１０８】
そして、第１ストレージ装置１００は、算出された使用量と予め設定されている所定値とを比較する（Ｓ４３）。この所定値は、例えば、仮想ボリューム１２３Ｖの定義サイズ（最大サイズ）や、定義サイズの所定割合に相当する値として設定可能である。所定値は、ユーザが自由に設定できるように構成することができる。
【０１０９】
一方、使用量が所定値に達していない場合（S43:NO）、第１ストレージ装置１００は、Ｓ４１に戻って監視を続行する。使用量が所定値に達している場合（S43:YES）、第１ストレージ装置１００は、その仮想ボリューム１２３Ｖに関するデータ移行要求を発行する（Ｓ４４）。
【０１１０】
図１１は、データ移行処理を示すフローチャートである。この処理は、例えば、第１ストレージ装置１００のコントローラ１１０や管理端末２１によって実行可能である。ここでは、第１ストレージ装置１００のコントローラ１１０が実行するものとする。第１ストレージ装置１００は、データ移行要求が発行されたか否かを判定する（Ｓ５１）。
【０１１１】
データ移行要求が発行された場合（S51:YES）、第１ストレージ装置１００は、例えば、ボリューム構成管理テーブルＴ４を参照することにより、第１ストレージ装置１００内の未使用記憶領域を検出する（Ｓ５２）。
【０１１２】
ボリューム構成管理テーブルＴ４は、例えば、ＬＵ番号と、ボリュームサイズと、使用状態と、使用率（使用量）と、対応するディスクドライブ１２１のドライブ番号等を対応付けることにより、構成可能である。このボリューム構成管理テーブルＴ４によって、第１ストレージ装置１００は、第１ストレージ装置１００内の記憶領域の使用状態を把握することができる。
【０１１３】
第１ストレージ装置１００は、第１ストレージ装置１００の記憶部１２０内に未使用記憶領域が存在するか否かを判定する（Ｓ５３）。即ち、第１ストレージ装置１００は、第１ストレージ装置１００内に、いずれのホスト１０にも割り当てられていない未使用の記憶領域があるか否かを判定する。
【０１１４】
記憶部１２０に未使用記憶領域が存在する場合（S53:YES）、第１ストレージ装置１００は、その未使用記憶領域をデータ移行先の記憶領域として確保する（Ｓ５４）。第１ストレージ装置１００は、仮想ボリューム１２３Ｖのデータを移行するために必要な所定サイズの未使用領域を確保できたか否かを判定する（Ｓ５５）。所定サイズに達していない場合（S55:NO）、Ｓ５２に戻って新たな未使用記憶領域を検出し、それを確保する。そして、所定サイズの未使用記憶領域を確保できた場合（S55:YES）、第１ストレージ装置１００は、確保された未使用記憶領域に基づいて、データ移行先ボリュームを生成し、このボリュームに、プール領域１２３Ｐに記憶されている仮想ボリューム１２３Ｖのデータをコピーする（Ｓ５６）。
【０１１５】
ところで、第１ストレージ装置１００内に未使用記憶領域が存在しない場合（S53:NO）、第１ストレージ装置１００内において、仮想ボリューム１２３Ｖのデータを実ボリュームにコピーすることはできない。なお、図中では、省略しているが、第１ストレージ装置１００内に所定サイズ以上の未使用記憶領域が存在しない場合も、Ｓ５７に移る。
【０１１６】
そこで、第１ストレージ装置１００は、第１ストレージ装置１００に他のストレージ装置が接続されているか否かを判定する（Ｓ５７）。別のストレージ装置（例えば、ストレージ装置２００，３００）が第１ストレージ装置１００に接続されている場合（S57:YES）、外部ストレージ装置へのデータ移行処理が行われる（Ｓ５８）。外部ストレージ装置へのデータ移行処理は後述する。第１ストレージ装置１００に別のストレージ装置が１台も接続されていない場合（S57:NO）、データ移行先の記憶領域をストレージシステム内で確保することはできない。そこで、エラー処理が行われる（Ｓ５９）。このエラー処理では、例えば、管理端末２１の画面を介して、ユーザに「記憶領域が足りません。ディスクドライブを追加して下さい。」等のエラーメッセージを通知する。
【０１１７】
図１２は、外部ストレージ装置へのデータ移行処理を示すフローチャートである。この処理は、図１１中のＳ５８に対応する。この処理は、例えば、第１ストレージ装置１００のコントローラ１１０または管理端末２１が実行可能である。ここでは、管理端末２１が実行するものとする。
【０１１８】
第１ストレージ装置１００に接続された管理端末２１（第１管理端末２１と呼ぶ場合もある）は、第１ストレージ装置１００に接続されている各外部ストレージ装置２００，３００に対し、未使用記憶領域に関する情報の送信をそれぞれ要求する（Ｓ６１）。より詳しくは、第１ストレージ装置１００に接続された管理端末２１から、外部ストレージ装置２００，３００にそれぞれ接続された管理端末２２，２３に対し、通信ネットワークＣＮ３を介して、未使用記憶領域に関する問合せが行われる。
【０１１９】
第２ストレージ装置２００に接続された管理端末２２（第２管理端末２２とも呼ぶ）と第３ストレージ装置３００に接続された管理端末２３（第３管理端末２３とも呼ぶ）とは、この問合せについて以下の処理をそれぞれ実行する。ここでは、第２管理端末２２を例に挙げる。
【０１２０】
第２管理端末２２は、第１管理端末２１からの問合せ要求を受信すると（Ｓ６２）、構成情報を参照し（Ｓ６３）、第２ストレージ装置２００内の未使用記憶領域を検出する（Ｓ６４）。そして、第２管理端末２２は、第２ストレージ装置２００内の未使用記憶領域について第１管理端末２１に通知する（Ｓ６５）。同様に、第３管理端末２３も、第３ストレージ装置３００内の未使用記憶領域を検出し、第１管理端末２１に通知する。
【０１２１】
第１管理端末２１は、各管理端末２２，２３から未使用記憶領域についての情報を受信すると（Ｓ６７）、いずれかの外部ストレージ装置２００，３００内に所定サイズ以上の未使用記憶領域が存在するか否かを判定する（Ｓ６８）。
【０１２２】
外部のストレージ装置２００，３００が所定サイズ以上の未使用記憶領域を有していない場合（S68:NO）、後述する領域取得処理が行われる（Ｓ６９）。外部ストレージ装置２００，３００の少なくともいずれか一方に所定サイズ以上の未使用記憶領域が存在する場合（S68:YES）、第１管理端末２１は、最大の未使用記憶領域を有する外部ストレージ装置を選択する（Ｓ７０）。ここでは、説明の便宜上、第２ストレージ装置２００が選択されたものとする。
【０１２３】
そして、第１管理端末２１は、選択された第２ストレージ装置２００の第２管理端末２２に向けて、データ移行先となるボリュームの準備を指示する（Ｓ７１）。第２管理端末２２は、第１管理端末２１からの指示を受信すると（Ｓ７２）、指定されたサイズのボリュームを用意し、必要なパス等を設定する（Ｓ７３）。第２管理端末２２は、データ移行先ボリューム、即ち、コピー先ボリューム２２３の準備を完了すると、準備が完了した旨を第１管理端末２１に通知する（Ｓ７４）。
【０１２４】
第１管理端末２１は、第２管理端末２２からの通知を受信すると、第２ストレージ装置２００内に用意されたボリューム２２３を外部接続ボリューム１２３Ｅに接続することにより、ボリューム２２３があたかも第１ストレージ装置１００の内部ボリュームであるかのように使用する（Ｓ７５）。そして、第１管理端末２１は第１ストレージ装置１００のコントローラ１１０に指示を与え、プール領域１２３Ｐに記憶されている仮想ボリューム１２３Ｖのデータを、外部接続ボリューム１２３Ｅにコピーさせる（Ｓ７６）。
【０１２５】
具体的には、プール領域１２３Ｐに対応するディスクドライブ１２１からデータが読み出され、この読み出されたデータは、通信ネットワークＣＮ２を介して第２ストレージ装置２００に送信される。そして、このデータは、第２ストレージ装置２００のコントローラ２１０が有するキャッシュメモリに記憶される。キャッシュメモリに記憶されたデータは、適当なタイミングで、外部ボリューム２２３に対応するディスクドライブ２２１に記憶される。
【０１２６】
図１３は、領域取得処理を示すフローチャートである。この処理は、図１２中のＳ６９に対応する。この処理は、第１ストレージ装置１００のコントローラ１１０または第１管理端末２１のいずれかによって実行可能である。ここでは、第１管理端末２１が実行するものとする。
【０１２７】
第１管理端末２１は、各管理端末２２，２３から受信した情報に基づいて、外部ストレージ装置２００，３００に未使用記憶領域が存在するか否かを判定する（Ｓ８１）。いずれの外部ストレージ装置２００，３００にも未使用記憶領域が存在しない場合（S81:NO）、データ移行先ボリュームを確保することができないため、第１管理端末２１は、エラー処理を実行する（Ｓ８２）。このエラー処理では、例えば、未使用記憶領域の不足を告げるメッセージが第１管理端末２１の画面に表示される。
【０１２８】
外部のストレージ装置２００，３００に未使用記憶領域が存在する場合（S81：YES）、第１管理端末２１は、最初の外部ストレージ装置が有する未使用記憶領域を確保する（Ｓ８３）。例えば、第１管理端末２１は、各ストレージ装置をそれぞれ識別する装置番号が若い順番に、未使用記憶領域を確保する。ここでは、最初に、第２ストレージ装置２００の有する未使用記憶領域がデータ移行先の記憶領域として確保されたものとする。
【０１２９】
第１管理端末２１は、仮想ボリューム１２３Ｖのデータを移行させるのに必要なサイズ（所定サイズ）の未使用記憶領域を確保できたか否かを判定する（Ｓ８４）。確保済みの未使用記憶領域のサイズが所定サイズに達していない場合（S84:NO）、第１管理端末２１は、次の外部ストレージ装置（ここでは、第３ストレージ装置３００とする）の有する未使用記憶領域を確保する（Ｓ８５）。このように、第１管理端末２１は、ストレージシステム内に散在する未使用記憶領域を所定サイズ分だけ確保する。
【０１３０】
そして、第１管理端末２１は、各ストレージ装置２００，３００にそれぞれ確保された未使用記憶領域を中間記憶デバイス（VDEV）１２２にマッピングし、外部接続ボリューム１２３Ｅに接続させる（Ｓ８６）。
【０１３１】
以上詳述した通り、本実施例によれば、仮想ボリューム１２３Ｖのうち実際にアクセスされた範囲のみを、プール領域１２３Ｐ内で順番に使用する構成とした。従って、ディスクドライブ１２１を予め多めに搭載しなくても、ホスト１０からのボリューム割当て要求に速やかに対応することができる。このため、ストレージシステムのコストを低減させつつ、使い勝手を向上させることができる。
【０１３２】
本実施例では、仮想ボリューム１２３Ｖのデータ量が所定値に達した場合に、仮想ボリューム１２３Ｖのデータを、外部ストレージ装置２００，３００の未使用記憶領域に接続される外部接続ボリューム１２３Ｅに移行させる構成とした。従って、ストレージシステム内の未使用記憶領域を有効に利用することができる。
【０１３３】
本実施例では、ストレージシステム内の未使用記憶領域の探索等を管理端末２１，２２，２３が行う構成のため、各ストレージ装置１００，２００，３００の処理負荷をあまり増大させずに、データ移行処理を実行することができる。
【実施例２】
【０１３４】
図１４，図１５に基づいて、本発明の第２実施例を説明する。本実施例を含む以下の実施例は、上述した第１実施例の変形例に相当する。本実施例では、データ移行処理を行う時点における未使用記憶領域の大きさではなく、それよりも未来の時点における未使用記憶領域の大きさを考慮して、データ移行を実行する。
【０１３５】
図１４は、外部ストレージ装置２００，３００の有する未使用記憶領域の使用状態を監視するための処理を示すフローチャートである。この処理は、第１ストレージ装置１００のコントローラ１１０または第１管理端末２１によって実行可能である。ここでは、第１管理端末２１により実行されるものとする。
【０１３６】
第１管理端末２１は、監視タイミングが到来したか否かを判定する（Ｓ９１）。監視タイミングは、定期的または不定期に設定することができ、また、ユーザが自由に設定できるように構成することもできる。
【０１３７】
監視タイミングが到来すると（S91:YES）、第１管理端末２１は、各管理端末２２，２３に、未使用記憶領域に関する情報の送信をそれぞれ要求する（Ｓ９２）。各管理端末２２，２３は、この要求を受信すると（Ｓ６２）、構成情報を参照して未使用記憶領域をそれぞれ検出し（Ｓ６３，Ｓ６４）、未使用記憶領域に関する情報を第１管理端末２１にそれぞれ通知する（Ｓ６５）。
【０１３８】
第１管理端末２１は、各管理端末２２，２３から情報をそれぞれ受信すると（Ｓ９３）、前回の監視データが記憶されているか否かを判定する（Ｓ９４）。前回の監視処理によって得られた監視データが存在する場合（S94:YES）、第１管理端末２１は、前回の監視データを参照し（Ｓ９５）、未使用記憶領域の減少量ΔＶｓを算出する（Ｓ９６）。そして、第１管理端末２１は、算出された減少量ΔＶｓを、前回の監視時と今回の監視時との間の期間で除算し、減少率αを求める（Ｓ９７）。第１管理端末２１は、算出された減少率αを未使用記憶領域監視テーブルＴ５に記憶させる（Ｓ９８）。これに対し、前回の監視データが存在しない場合（S94:NO）、第１管理端末２１は、減少率αとして「０」をセットし（Ｓ９９）、監視テーブルＴ５に記憶させる（Ｓ９８）。
【０１３９】
監視テーブルＴ５は、例えば、第１ストレージ装置１００の共有メモリ１１４及び第１管理端末２１内のローカルメモリに保存させておくことができる。この監視テーブルＴ５は、例えば、ストレージ装置を識別するための装置IDと、そのストレージ装置が有する未使用記憶領域のサイズと、そのストレージ装置における未使用記憶領域の減少率とを対応付けることにより、構成可能である。
【０１４０】
減少率αの算出例を説明する。ある期間Ｔ内に、あるストレージ装置の未使用記憶領域のサイズがＶｓ１からＶｓ２に減少したものとする。未使用記憶領域の減少量ΔＶｓは、Ｖｓ１からＶｓ２を減算した値となる（ΔＶｓ＝Ｖｓ１−Ｖｓ２）。未使用記憶領域の減少率αは、減少量ΔＶｓを期間Ｔで除算した値となる（α＝ΔＶｓ／Ｔ）。期間Ｔとしては、種々の値を採用可能である。
【０１４１】
図１５は、本実施例による外部ストレージ装置へのデータ移行処理を示すフローチャートである。この処理は、前記第１実施例で述べたと同様に、第１ストレージ装置１００のコントローラ１１０または第１管理端末２１のいずれかで実行可能である。ここでは、第１管理端末２１が実行するものとする。
【０１４２】
第１管理端末２１は、外部ストレージ装置２００，３００の有する未使用記憶領域に関する監視処理を行う（Ｓ１０１）。この処理については、図１４と共に説明した。第１管理端末２１は、監視テーブルＴ５を参照し（Ｓ１０２）、各外部ストレージ装置２００，３００の減少率αをそれぞれ取得する（Ｓ１０３）。
【０１４３】
第１管理端末２１は、現時点から所定の予測期間経過後における、各外部ストレージ装置２００，３００の未使用記憶領域の減少量をそれぞれ算出する（Ｓ１０４）。予測期間をＴ１、減少率をαとすれば、現時点からＴ１経過後の減少量ΔＶｓ（T1）は、ΔＶｓ（T1）＝Ｔ１×αとして求められる。
【０１４４】
次に、第１管理端末２１は、現時点から予測期間Ｔ１が経過した後における各外部ストレージ装置２００，３００が有するであろう未使用記憶領域のサイズＶｓｘをそれぞれ算出する（Ｓ１０５）。この予測サイズＶｓｘは、現時点の未使用記憶領域のサイズをＶｓ（ａ）とすると、Ｖｓｘ＝Ｖｓ（ａ）−ΔＶｓ（T1）として求められる。
【０１４５】
このようにして、第１管理端末２１は、各外部ストレージ装置２００，３００のそれぞれについて、未来の未使用記憶領域のサイズを予測し、最大の未使用記憶領域を有するであろうと予測された外部ストレージ装置を選択する（Ｓ１０６）。そして、以下、前記実施例と同様に、その選択された外部ストレージ装置に指示を発行し（Ｓ１０７）、データ移行先ボリュームを準備させ（Ｓ７２〜Ｓ７３）、その外部ボリュームに仮想ボリューム１２３Ｖのデータを移行させる（Ｓ１０８，Ｓ１０９）。
【０１４６】
このように構成される本実施例も、前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、各外部ストレージ装置２００，３００における未使用記憶領域の使用状況を監視し、データ移行処理開始時から所定の予測期間が経過した後における未使用記憶領域のサイズに基づいて、外部ストレージ装置を適切に選択できる。
【０１４７】
例えば、ある外部ストレージ装置が比較的大きな未使用記憶領域を現在有している場合でも、ホスト１０からの更新頻度がが大きい場合は、近い将来において、その未使用記憶領域が枯渇する可能性がある。従って、ホスト１０によって頻繁に利用される外部ストレージ装置を選択することは、必ずしも適切であるとは言えない。これに対し、本実施例では、所定の予測期間経過後（例えば一ヶ月後）の未使用記憶領域のサイズに基づいて、データ移行先となる外部ストレージ装置を適切に選択可能である。
【実施例３】
【０１４８】
図１６に基づいて、第３実施例を説明する。本実施例では、図１３と共に述べた領域取得処理に代えて、ホスト１０が支配している余分な未使用記憶領域を強制的に開放させて使用する。
【０１４９】
図１６は、本実施例による領域取得処理を示すフローチャートである。この処理は、第１ストレージ装置１００のコントローラ１１０または第１管理端末２１のいずれかにより実行可能である。前記同様に、第１管理端末２１が実行するものとする。
【０１５０】
第１管理端末２１は、ホスト−ボリューム対応関係テーブルＴ６及びボリューム構成管理テーブルＴ４を参照し、各ホスト１０が使用している外部ボリュームの未使用記憶領域を検出する（Ｓ１１１）。テーブルＴ６は、例えば、ＬＵ番号とホスト識別情報とを対応付けることにより構成される。
【０１５１】
第１管理端末２１は、外部ストレージ装置の未使用記憶領域を使用しているホスト１０が存在するか否かを判定する（Ｓ１１２）。即ち、第１ストレージ装置１００を介して、外部ストレージ装置２００，３００の有する未使用記憶領域を使用しているホスト１０が存在するか否かを判定する。未使用記憶領域を使用しているホスト１０が存在しない場合（S112:NO）、第１管理端末２１は、データ移行先の記憶領域を確保できないため、エラー処理を行う（Ｓ１１３）。
【０１５２】
未使用記憶領域を使用しているホスト１０が存在する場合（S112:YES）、第１管理端末２１は、その未使用記憶領域を、そのホスト１０から切り離し（Ｓ１１４）、データ移行先の記憶領域として確保する（Ｓ１１５）。所定サイズの未使用記憶領域が得られるまで（Ｓ１１６）、各ホスト１０から余った未使用記憶領域をそれぞれ切り離して確保していく（S116:NO、S117）。そして、所定サイズの未使用記憶領域を確保できた場合（S116:YES）、第１管理端末２１は、この確保された未使用記憶領域を外部接続ボリューム１２３Ｅに対応付け、プール領域１２３Ｐ内のデータを外部接続ボリューム１２３Ｅにコピーさせる（Ｓ１１８）。
【０１５３】
このように構成される本実施例でも前記第１実施例と同様の効果を奏する。これに加えて、本実施例では、ホスト１０が無駄に支配している空き容量を開放させて、データ移行先ボリュームとして使用可能であるため、ストレージシステムの記憶資源を効率的に使用することができる。
【０１５４】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１５５】
【図１】本発明の実施形態の概要を示す説明図である。
【図２】ストレージシステムの全体構成を示す説明図である。
【図３】ストレージシステムのブロック図である。
【図４】ストレージシステムの機能構成の要部を示す説明図である。
【図５】ストレージシステムの記憶構造を模式的に示す説明図である。
【図６】プール領域管理テーブルを示す説明図である。
【図７】LUN-LDEV管理テーブル及びマッピングテーブルをそれぞれ示す説明図であり、（ａ）はLUN-LDEV管理テーブルを、（ｂ）はマッピングテーブルを、（ｃ）はマッピングテーブルの別の例を、それぞれ示す。
【図８】ホストからのアクセス要求を処理するフローチャートである。
【図９】ディステージ処理を示すフローチャートである。
【図１０】仮想ボリュームの使用量を監視する処理を示すフローチャートである。
【図１１】データ移行処理を示すフローチャートである。
【図１２】外部ストレージ装置へのデータ移行処理を示すフローチャートである。
【図１３】領域取得処理を示すフローチャートである。
【図１４】外部ストレージ装置の未使用記憶領域の使用状態を監視する処理を示すフローチャートである。
【図１５】第２実施例に係るストレージシステムにより実行される外部ストレージ装置へのデータ移行処理を示すフローチャートである。
【図１６】第３実施例に係るストレージシステムにより実行される領域取得処理を示すフローチャートである。
【符号の説明】
【０１５６】
１…ストレージ装置、１Ａ…論理ユニット（LU）、１Ｂ…仮想ボリューム、１Ｃ…管理テーブル、１Ｄ…プール領域、１Ｅ…外部接続ボリューム、１Ｆ…記憶部、２…ストレージ装置、２Ａ…LU、２Ｂ…外部ボリューム、２Ｃ…記憶部、３…ホスト、１０…ホスト、１１Ａ…ホストバスアダプタ（HBA）、１２Ａ…アプリケーションプログラム、２１、２２，２３…管理端末、２１Ａ，２２Ａ…ストレージ管理部、１００，２００，３００…ストレージ装置、１１０，２１０，３１０…コントローラ、１２０，２２０，３２０…記憶部、１１０Ａ…使用量監視部、１１０Ｂ…未使用記憶領域検出部、１１０Ｃ…マッピング部、１１０Ｄ…データ移行部、１１０Ｅ…切替部、１１１…チャネルアダプタ（CHA）、１１１Ｅ…外部接続用通信ポート、１１１Ｔ…ターゲットポート、１１２…ディスクアダプタ（DKA）、１１３…キャッシュメモリ、１１４…共有メモリ、１１５…接続制御部、１２１…ディスクドライブ、１２３Ｅ…外部接続ボリューム、１２３Ｐ…プール領域、１２３Ｖ…仮想ボリューム、２２１…ディスクドライブ、２２３…外部ボリューム
【図１】
2007072519.tif 000003
【図２】
2007072519.tif 000004
【図３】
2007072519.tif 000005
【図４】
2007072519.tif 000006
【図５】
2007072519.tif 000007
【図６】
2007072519.tif 000008
【図７】
2007072519.tif 000009
【図８】
2007072519.tif 000010
【図９】
2007072519.tif 000011
【図１０】
2007072519.tif 000012
【図１１】
2007072519.tif 000013
【図１２】
2007072519.tif 000014
【図１３】
2007072519.tif 000015
【図１４】
2007072519.tif 000016
【図１５】
2007072519.tif 000017
【図１６】
2007072519.tif 000018