(57)【要約】【課題】本発明は、運用ボリュームに対するアクセス負荷を格段的に低減させ得るストレージ装置を提案するものである。【解決手段】ホスト装置から所定世代のスナップショットイメージのデータについての読出し要求を受信したときに、スナップショット管理部に管理されたスナップショットイメージの世代及び当該スナップショットイメージのデータの格納先に基づいて、対応する世代のスナップショットイメージのデータとして、運用ボリュームのデータ又はプールボリュームの差分データを読み出すように制御する制御部とを備え、制御部は、運用ボリュームからデータを読み出すときに、運用ボリュームに格納されたデータを複製データとしてプールボリュームに格納し、運用ボリュームに格納されたデータを再び読み出すときに、プールボリュームに格納された複製データを読み出すように制御する。【選択図】図５
2007199920.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置が送信するデータを格納する運用ボリュームと、前記運用ボリュームのスナップショットイメージを取得した後において、前記運用ボリュームに前記データが格納されるときの更新前のデータである差分データを格納するプールボリュームとを有するストレージ装置において、
所定のタイミングで、前記運用ボリュームのスナップショットイメージを取得するスナップショット取得部と、
前記スナップショット取得部により取得された前記スナップショットイメージの世代及び当該スナップショットイメージのデータの格納先を管理するスナップショット管理部と、
前記ホスト装置から所定世代の前記スナップショットイメージのデータについての読出し要求を受信したときに、前記スナップショット管理部に管理された前記スナップショットイメージの世代及び当該スナップショットイメージのデータの格納先に基づいて、対応する世代のスナップショットイメージのデータとして、前記運用ボリュームの前記データ又は前記プールボリュームの前記差分データを読み出すように制御する制御部と
を備え、
前記制御部は、
前記運用ボリュームから前記データを読み出すときに、前記運用ボリュームに格納された前記データを複製データとして前記プールボリュームに格納し、前記運用ボリュームに格納された前記データを再び読み出すときに、前記プールボリュームに格納された前記複製データを読み出すように制御する
ことを特徴とするストレージ装置。
【請求項２】
前記プールボリュームは、
前記複製データを格納する複製データ格納領域
を有し、
前記複製データ格納領域は、
前記複製データを格納する容量が予め設定されている
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記ホスト装置からの読出し要求を受信した前記複製データの回数を管理する読出し要求回数管理部
を備え、
前記読出し要求回数管理部は、
前記ホスト装置からの読出し要求を受信した回数が多い順に優先度をつけて、前記複製データを管理する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記制御部は、
前記複製データ格納領域に格納された前記複製データが前記容量を越えたときに、前記読出し要求回数管理部に管理された、前記優先度の一番低い前記複製データを削除する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記読出し要求回数管理部は、
新たに前記プールボリュームに格納された前記複製データを、次に新たな複製データが格納されるまで、前記優先度が一番高い前記複製データとして管理する
ことを特徴とする請求項４に記載のストレージ装置。
【請求項６】
前記複製データ格納領域は、
新たな前記複製データを格納する第１の格納領域と、前記第１の格納領域に格納された前記複製データが再び読み出されたときに、当該複製データを格納する第２の格納領域と
を有し、
前記読出し要求回数管理部は、
前記第２の格納領域に格納された前記複製データを、前記ホスト装置からの読出し要求を受信した回数が多い順に優先度をつけて管理する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項７】
前記第１の格納領域は、
前記複製データを格納する第１の容量が予め設定されており、
前記制御部は、
前記第１の格納領域に格納された前記複製データが前記第１の容量を越えたときに、前記第１の格納領域に格納された前記複製データのうち、一番先に前記第１の格納領域に格納された複製データを削除する
ことを特徴とする請求項６に記載のストレージ装置。
【請求項８】
前記第２の格納領域は、
前記複製データを格納する第２の容量が予め設定されており、
前記制御部は、
前記第２の格納領域に格納された前記複製データが前記第２の容量を越えたときに、前記読出し要求回数管理部に管理された、前記優先度の一番低い前記複製データを削除する
ことを特徴とする請求項６に記載のストレージ装置。
【請求項９】
前記読出し回数管理部は、
前記ホスト装置から所定世代の前記運用ボリュームに格納された前記データについての読出し要求を受信したときに、前記運用ボリュームから、対応する前記データを読み出す回数を所定の期間において管理し、
前記制御部は、
前記所定の期間の経過後に、前記優先度の高い所定数の前記運用ボリュームに格納された前記データを前記複製データとして前記プールボリュームに格納し、前記運用ボリュームに格納された前記データを再び読み出すときに、前記プールボリュームに格納された前記複製データを読み出すように制御する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項１０】
ホスト装置が送信するデータを格納する運用ボリュームと、前記運用ボリュームのスナップショットイメージを取得した後において、前記運用ボリュームに前記データが格納されるときの更新前のデータである差分データを格納するプールボリュームとを有するストレージ装置の制御方法において、
所定のタイミングで、前記運用ボリュームのスナップショットイメージを取得する第１のステップと、
前記第１のステップにおいて取得した前記スナップショットイメージの世代及び当該スナップショットイメージのデータの格納先を管理する第２のステップと、
前記ホスト装置から所定世代の前記スナップショットイメージのデータについての読出し要求を受信したときに、前記第２のステップにおいて管理した前記スナップショットイメージの世代及び当該スナップショットイメージのデータの格納先に基づいて、対応する世代のスナップショットイメージのデータとして、前記運用ボリュームの前記データ又は前記プールボリュームの前記差分データを読み出すように制御する第３のステップと
を備え、
前記第３のステップでは、
前記運用ボリュームから前記データを読み出すときに、前記運用ボリュームに格納された前記データを複製データとして前記プールボリュームに格納し、前記運用ボリュームに格納された前記データを再び読み出すときに、前記プールボリュームに格納された前記複製データを読み出すように制御する
ことを特徴とするストレージ装置の制御方法。
【請求項１１】
前記プールボリュームは、
前記複製データを格納する複製データ格納領域
を有し、
前記複製データ格納領域は、
前記複製データを格納する容量が予め設定されている
ことを特徴とする請求項１０に記載のストレージ装置の制御方法。
【請求項１２】
前記第３のステップでは、
前記ホスト装置からの読出し要求を受信した前記複製データの回数を管理し、前記ホスト装置からの読出し要求を受信した回数が多い順に優先度をつけて、前記複製データを管理する
ことを特徴とする請求項１１に記載のストレージ装置の制御方法。
【請求項１３】
前記第３のステップでは、
前記複製データ格納領域に格納された前記複製データが前記容量を越えたときに、前記優先度の一番低い前記複製データを削除する
ことを特徴とする請求項１２に記載のストレージ装置の制御方法。
【請求項１４】
前記第３のステップでは、
新たに前記プールボリュームに格納された前記複製データを、次に新たな複製データが格納されるまで、前記優先度が一番高い前記複製データとして管理する
ことを特徴とする請求項１３に記載のストレージ装置の制御方法。
【請求項１５】
前記複製データ格納領域は、
新たな前記複製データを格納する第１の格納領域と、前記第１の格納領域に格納された前記複製データが再び読み出されたときに、当該複製データを格納する第２の格納領域と
を有し、
前記第３のステップでは、
前記第２の格納領域に格納された前記複製データを、前記ホスト装置からの読出し要求を受信した回数が多い順に優先度をつけて管理する
ことを特徴とする請求項１２に記載のストレージ装置の制御方法。
【請求項１６】
前記第１の格納領域は、
前記複製データを格納する第１の容量が予め設定されており、
前記第３のステップでは、
前記第１の格納領域に格納された前記複製データが前記第１の容量を越えたときに、前記第１の格納領域に格納された前記複製データのうち、一番先に前記第１の格納領域に格納された複製データを削除する
ことを特徴とする請求項１５に記載のストレージ装置の制御方法。
【請求項１７】
前記第２の格納領域は、
前記複製データを格納する第２の容量が予め設定されており、
前記第３のステップでは、
前記第２の格納領域に格納された前記複製データが前記第２の容量を越えたときに、前記優先度の一番低い前記複製データを削除する
ことを特徴とする請求項１５に記載のストレージ装置の制御方法。
【請求項１８】
前記第３のステップでは、
前記ホスト装置から所定世代の前記運用ボリュームに格納された前記データについての読出し要求を受信したときに、前記運用ボリュームから、対応する前記データを読み出す回数を所定の期間において管理し、前記所定の期間の経過後に、前記優先度の高い所定数の前記運用ボリュームに格納された前記データを前記複製データとして前記プールボリュームに格納し、前記運用ボリュームに格納された前記データを再び読み出すときに、前記プールボリュームに格納された前記複製データを読み出すように制御する
ことを特徴とする請求項１２に記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、例えば、任意の世代のスナップショットイメージのデータをホスト装置に対して提供するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
近年、ある時点での運用ボリュームのスナップショットイメージを取得し、当該スナップショットイメージを取得した時点以降に、運用ボリュームにデータが格納されるときの過去のデータ（差分データ）と、当該スナップショットイメージの世代を表す情報とをデータ保持部に記憶して、読み出されるべき世代のスナップショットイメージのデータの読出し元を、運用ボリューム又はデータ保持部に切り替えて読み出すことにより、複数の世代のスナップショットイメージを管理するストレージ装置が広く普及している。
【０００３】
さらに近年では、例えば、特許文献１のように、複数のディスクドライブの記憶領域を用いて生成される運用ボリュームへのデータの読み書きを制御し、運用ボリュームに格納された過去のデータを世代ごとの差分データとしてプールボリュームに書き込むように制御し、差分データを管理する制御プロセッサを有するストレージ装置において、プールボリュームに格納されたデータ量が第１の所定値を超えた場合、プールボリュームに書き込まれた差分データのうち削除する差分データの世代を決定し、当該決定された世代の差分データを削除するストレージ装置が提案されている。
【特許文献１】特開２００５−３０１６２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のようなストレージ装置では、ホスト装置から送信されるデータを運用ボリュームに書き込むと共に、スナップショットイメージのデータを運用ボリュームから読み出すため、運用ボリュームに対するアクセス負荷が増大する。
【０００５】
そして、上述のストレージ装置にように、スナップショットイメージを複数取得し、複数のスナップショットイメージのデータを運用ボリュームから読み出すような場合には、運用ボリュームに対するアクセス負荷がますます増大することとなる。
【０００６】
本発明は以上の点を考慮してなされたもので、運用ボリュームに対するアクセス負荷を格段的に低減させ得るストレージ装置及びその制御方法を提案するものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するために本発明においては、ホスト装置が送信するデータを格納する運用ボリュームと、運用ボリュームのスナップショットイメージを取得した後において、運用ボリュームにデータが格納されるときの更新前のデータである差分データを格納するプールボリュームとを有するストレージ装置において、所定のタイミングで、運用ボリュームのスナップショットイメージを取得するスナップショット取得部と、スナップショット取得部により取得されたスナップショットイメージの世代及び当該スナップショットイメージのデータの格納先を管理するスナップショット管理部と、ホスト装置から所定世代のスナップショットイメージのデータについての読出し要求を受信したときに、スナップショット管理部に管理されたスナップショットイメージの世代及び当該スナップショットイメージのデータの格納先に基づいて、対応する世代のスナップショットイメージのデータとして、運用ボリュームのデータ又はプールボリュームの差分データを読み出すように制御する制御部とを備え、制御部は、運用ボリュームからデータを読み出すときに、運用ボリュームに格納されたデータを複製データとしてプールボリュームに格納し、運用ボリュームに格納されたデータを再び読み出すときに、プールボリュームに格納された複製データを読み出すように制御する。
【０００８】
従って、運用ボリュームに格納されている、ホスト装置からの読出し要求に対応する世代のスナップショットイメージの読出し対象のデータを、プールボリュームから読み出すため、運用ボリュームのアクセスが増大するのを未然かつ有効に防止することができる。
【０００９】
また、本発明においては、ホスト装置が送信するデータを格納する運用ボリュームと、運用ボリュームのスナップショットイメージを取得した後において、運用ボリュームにデータが格納されるときの更新前のデータである差分データを格納するプールボリュームとを有するストレージ装置の制御方法において、所定のタイミングで、運用ボリュームのスナップショットイメージを取得する第１のステップと、第１のステップにおいて取得したスナップショットイメージの世代及び当該スナップショットイメージのデータの格納先を管理する第２のステップと、ホスト装置から所定世代のスナップショットイメージのデータについての読出し要求を受信したときに、第２のステップにおいて管理したスナップショットイメージの世代及び当該スナップショットイメージのデータの格納先に基づいて、対応する世代のスナップショットイメージのデータとして、運用ボリュームのデータ又は前記プールボリュームの差分データを読み出すように制御する第３のステップとを備え、第３のステップでは、運用ボリュームからデータを読み出すときに、運用ボリュームに格納されたデータを複製データとしてプールボリュームに格納し、運用ボリュームに格納されたデータを再び読み出すときに、プールボリュームに格納された複製データを読み出すように制御する。
【００１０】
従って、運用ボリュームに格納されているホスト装置からの読出し要求に対応する世代のスナップショットイメージの読出し対象のデータを、プールボリュームから読み出すため、運用ボリュームのアクセスが増大するのを未然かつ有効に防止することができる。
【発明の効果】
【００１１】
本発明によれば、運用ボリュームからデータを読み出すときに、運用ボリュームに格納されたデータを複製データとしてプールボリュームに格納し、運用ボリュームに格納されたデータを再び読み出すときに、プールボリュームに格納された複製データを読み出すように制御するようにしたことにより、運用ボリュームに格納されているホスト装置からの読出し要求に対応する世代のスナップショットイメージの読出し対象のデータを、プールボリュームから読み出すため、運用ボリュームのアクセスが増大するのを未然かつ有効に防止することができ、かくして、運用ボリュームに対するアクセス負荷を格段的に低減させ得るストレージ装置及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００１２】
以下図面について、本発明の一実施の形態を詳述する。
【００１３】
（１）第１の実施の形態
（１−１）第１の実施の形態によるストレージシステム１の構成
図１は、第１の実施の形態によるストレージシステム１の構成を示す。このストレージシステム１は、複数のホスト装置２がネットワーク３を介してストレージ装置４に接続されることにより構成されている。
【００１４】
上位装置としてのホスト装置２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームコンピュータなどから構成される。ホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えている。
【００１５】
ネットワーク３は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク３を介したホスト装置２及びストレージ装置４間の通信は、例えばネットワーク３がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク３がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１６】
ストレージ装置４は、データの入出力を制御するコントロール部１０と、データを記憶する複数のディスクデバイス２１からなる記憶デバイス部２０とを備えて構成されている。
【００１７】
コントロール部１０は、複数のチャネルアダプタ１１、接続部１２、共有メモリ１３、キャッシュメモリ１４、複数のディスクアダプタ１５及び管理端末１６を備えて構成されている。
【００１８】
各チャネルアダプタ１１は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、それぞれネットワーク３や他のストレージ装置等に接続するためのポートを備える。チャネルアダプタ１１は、ホスト装置２からネットワーク３を介して送信される各種コマンドを解釈して対応する処理を実行する。各チャネルアダプタ１１のポートには、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられており、これにより各チャネルアダプタ１１がそれぞれ個別にＮＡＳ（Network Attached Storage）として振る舞うことができるようになされている。
【００１９】
接続部１２は、チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５と接続されている。チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５間でのデータやコマンドの授受は、この接続部１２を介して行われる。接続部１２は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成されている。
【００２０】
共有メモリ１３及びキャッシュメモリ１４は、チャネルアダプタ１１及びディスクアダプタ１５により共有される記憶メモリである。共有メモリ１３は、主に、ストレージ装置４全体の構成に関するシステム構成情報、各種プログラム、各種テーブル、書込み要求や読出し要求等のコマンドを記憶するために利用される。また、キャッシュメモリ１４は、主に、ストレージ装置４に入出力する書込み対象や読出し対象のデータを一時的に記憶するために利用される。
【００２１】
各ディスクアダプタ１５は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成され、記憶デバイス部２０内のディスクデバイス２１との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ１５は、例えばファイバーチャネルケーブルを介して記憶デバイス部２０内の対応するディスクデバイス２１と接続されており、ファイバーチャネルプロトコルに従ってこれらディスクデバイス２１との間のデータの授受を行う。
【００２２】
管理端末１６は、ストレージ装置４全体の動作を制御する端末装置であり、例えばノート型のパーソナルコンピュータから構成される。管理端末１６は、ＬＡＮ１７を介して各チャネルアダプタ１１とそれぞれ接続され、ＬＡＮ１８を介して各ディスクアダプタ１５Ａとそれぞれ接続されている。オペレータは、管理端末１６を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ１１又はディスクアダプタ１５と接続部１２とを経由して、共有メモリ１３に格納することができる。
【００２３】
一方、記憶デバイス部２０のディスクデバイス２１としては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクが適用される。
【００２４】
記憶デバイス部２０の各ディスクデバイス２１は、コントロール部１０によりＲＡＩＤ方式で運用される。１又は複数のディスクデバイス２１により提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）が設定される。そしてデータは、この論理ボリューム内に所定大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２５】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit Number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２６】
ここで、このストレージシステム１におけるホスト装置２及びストレージ装置４間のデータの入出力の流れについて説明する。ホスト装置２は、ユーザ操作によりストレージ装置４に設定された論理ボリュームに対してデータを書き込むべき旨の指令が入力されると、これに応じたデータ書込み要求及び書込み対象のデータを、ストレージ装置４の所定のチャネルアダプタ１１に送信する。かかるデータ書込み要求には、ストレージ装置４がそれぞれ提供する記憶領域上に設定された各論理ボリュームにそれぞれ付与された仮想的なＬＵと、当該記憶領域内の全ての論理ブロックに通し番号で付与された仮想的なＬＢＡとを組み合わせでなる、書込み対象のデータを書き込むべき仮想的なアドレスが含まれる。
【００２７】
このデータ書込み要求を受信したストレージ装置４のチャネルアダプタ１１は、当該データ書込み要求において指定されたデータを書き込むべき仮想的なアドレスを、ストレージ装置４が認識している実際のアドレスに変更する。そのための手段として、ストレージ装置４の共有メモリ１３には、ストレージ装置４が提供する記憶領域の実際のアドレスと、ホスト装置２が認識している当該記憶領域の仮想化なアドレスとを対応付けたアドレス変換テーブルが格納されている。そしてチャネルアダプタ１１は、このアドレス変換テーブルを参照して、データ書込み要求に含まれるデータを書き込むべき仮想的なアドレスをストレージ装置４が認識する実際のアドレスに書き換える。
【００２８】
そして、かかるチャネルアダプタ１１は、この書き換えたデータ書込み要求を、共有メモリ１３に書き込む。またチャネルアダプタ１１は、これと共にかかる書込み対象のデータをキャッシュメモリ１４に書き込む。
【００２９】
このときディスクアダプタ１５は、共有メモリ１３を常時監視している。そして対応するディスクアダプタ１５は、かかるデータ書込み要求が共有メモリ１３に書き込まれたことを検出すると、仮想的な論理アドレス指定によるデータ書込み要求を、実際の物理アドレス指定によるデータ書込み要求に変換し、さらにキャッシュメモリ１４から書込み対象のデータを読み出して、これを対応するディスクデバイス１５の対応するアドレス位置に書き込む。
【００３０】
一方、ホスト装置２は、ユーザ操作によりストレージ装置４内の所定の論理ボリュームに記憶されているデータを読み出すべき旨の指令が入力されると、これに応じたデータ読出し要求を、ストレージ装置４内の所定のチャネルアダプタ１１に送信する。この場合にも、かかるデータ読出し要求には、読出し対象のデータが書き込まれている位置の仮想的なアドレスが含まれる。
【００３１】
このデータ読出し要求を受信したストレージ装置４のチャネルアダプタ１１は、当該データ読出し要求に含まれるデータを読み出すべき仮想的なアドレスを、上述のアドレス変換テーブルを用いて、ストレージ装置４が認識している実際のアドレスに書き換える。
【００３２】
そして、かかるチャネルアダプタ１１は、この書き換えたデータ読出し要求を、共有メモリ１３に書き込む。また対応するディスクアダプタ１５は、共有メモリ１３に読出しコマンドが書き込まれたことを検出すると、論理アドレス指定によるデータ読出し要求を物理アドレス指定によるデータ読出し要求に変換して、このアドレスに基づいて、対応するディスクデバイス２０の対応するアドレス位置から指定されたデータを読み出す。
【００３３】
また、かかるディスクアダプタ１５は、このディスクデバイス２０から読み出したデータをキャッシュメモリ１４に書き込むと共に、読出しコマンドを共有メモリ１３に書き込む。このとき、チャネルアダプタ１１は、共有メモリ１３を常時監視しており、共有メモリ１３に読出しコマンドが書き込まれたことを検出すると、この読出しコマンドに従って、キャッシュメモリ１４から対応するデータを読み出し、これをネットワーク３を介して対応するホスト装置２に送信する。
【００３４】
このようにしてこのストレージシステム１では、ホスト装置２から送信されたデータ入出力要求に応じて、ホスト装置２から送信されたデータを、ストレージ装置４が提供する記憶領域に読み書きし得るようになされている。
【００３５】
（１−２）第１の実施の形態によるスナップショットイメージ取得処理
次に、第１の実施の形態によるストレージシステム１におけるスナップショットイメージ取得処理について説明する。
【００３６】
図２は、記憶デバイス部２０に設定される論理ボリュームを示す。論理ボリュームは、図２に示すように、ホスト装置２から送信されるデータを格納する運用ボリューム３０と、ある時点での運用ボリューム３０のスナップショットイメージを取得し、当該スナップショットイメージを取得した時点以降に、かかる運用ボリューム３０にデータが格納されるときの更新前のデータ（以下、これを差分データと呼ぶ）を格納するプールボリューム４０と、運用ボリューム３０から取得したスナップショットイメージを世代ごとにホスト装置２に提供するための仮想ボリューム５０から構成されている。
【００３７】
この場合、運用ボリューム３０は、図２に示すように、４つのディスクデバイス２１Ａから構成されており、例えば、ＲＡＩＤ５方式で運用されている。また、プールボリューム４０は、運用ボリューム３０のディスクデバイス２１Ａとは異なる４つのディスクデバイス２１Ｂから構成されており、運用ボリュームと同様にＲＡＩＤ５方式で運用されている。なお、ディスクデバイス２１Ａ及びディスクデバイス２１Ｂについては、運用ボリューム及びプールボリュームが別々のディスクデバイスから構成されることを示すために、「Ａ」及び「Ｂ」を付したものであり、どちらもディスクデバイス２１である。
【００３８】
このようにストレージシステム１では、運用ボリューム３０のディスクデバイスとプールボリューム４０のディスクデバイスとを、別々のディスクデバイス２１Ａ及びディスクデバイス２１Ｂで構成することにより、運用ボリューム３０においてデータの読書き処理が行われている場合にも、プールボリューム４０においてデータの読書き処理を行うことができるようになされている。
【００３９】
なお、本実施の形態では、運用ボリューム３０及びプールボリューム４０がＲＡＩＤ５方式で運用されている場合について述べたが、本発明はこれに限らず、例えば、ＲＡＩＤ１等のこの他種々のＲＡＩＤ方式で運用するようにしても良く、また、ＲＡＩＤ方式以外の方式で運用するようにしても良い。
【００４０】
ここで、仮想ボリューム５０とは、一又は複数の記憶デバイス２０内のディスクデバイス２１からなる仮想的なボリュームであって、実際には運用ボリューム３０内の一部ブロックと差分ボリューム４０内の一部ブロックから構成されている。また、運用ボリューム３０及び各仮想ボリューム５０は、それぞれペア構成されている。
【００４１】
なお、以下においては、第１のストレージ装置４内の世代１の仮想ボリュームを世代１仮想ボリューム５０１と呼び、世代２の仮想ボリュームを世代２仮想ボリューム５０２と呼び、世代ｎの仮想ボリュームを世代ｎ仮想ボリューム５０ｎと呼ぶものとする。
【００４２】
また、共有メモリ１３には、図３に示すように、スナップショット管理プログラム６０及び複製データ管理プログラム７０が格納されており、ディスクアダプタ１５がこのスナップショット管理プログラム６０及び複製データ管理プログラム７０を呼び出して実行することによって、各種の処理が行われるようになされている。さらに、この共有メモリ１３には、スナップショット管理テーブル８０及び複製データ管理テーブル９０（後述）が格納されている。
【００４３】
この場合、ディスクアダプタ１５は、ホスト装置２からのスナップショットイメージの取得要求を受信すると、記憶デバイス部２０の運用ボリューム３０に対するスナップショットイメージを取得する。
【００４４】
そして、ディスクアダプタ１５は、スナップショット管理プログラム６０により、スナップショット管理テーブル８０を用いて、運用ボリューム３０及びプールボリューム４０に格納されたデータを、スナップショットイメージの取得要求の受信時に運用ボリューム３０に格納されていたデータにアクセス可能となるように管理し、取得した運用ボリューム３０のスナップショットイメージを提供するための仮想ボリューム５０をアクセス可能にするようになされている。
【００４５】
また、ディスクアダプタ１５は、ファイルシステムなどが格納される論理ボリューム（運用ボリューム３０）に加え、差分データ、すなわちスナップショットの維持に必要な差分データを格納する論理ボリューム（プールボリューム４０）を管理し、ホスト装置２の要求に応じたデータ入出力処理、スナップショットイメージを維持する処理、及び、スナップショットイメージを利用可能にする処理を行うようになされている。
【００４６】
具体的には、ディスクアダプタ１５は、スナップショットイメージの取得要求を受信すると、まず、スナップショット管理テーブル８０に新しい世代の仮想ボリューム５０の識別情報を登録する。この仮想ボリューム５０のブロックは、最初は、スナップショット管理テーブル８０によって、運用ボリューム３０のブロックアドレスと一対一で対応付けられている。
【００４７】
また、ディスクアダプタ１５は、その後、運用ボリューム３０内のデータが更新される際には、運用ボリューム３０内の更新前のデータ（差分データ）をプールボリューム４０に複写し、この複写後に、運用ボリューム３０の格納内容を更新する。
【００４８】
そして、ディスクアダプタ１５は、更に、データが更新された運用ボリューム３０内のブロックに対応する仮想ボリューム内のブロックアドレスを、スナップショットイメージの取得要求を受信した時点で運用ボリューム３０に格納されていたデータ（すなわち更新前のデータ（差分データ））が格納されているプールボリューム４０上のブロックと対応付けるようスナップショット管理テーブル８０を更新する。
【００４９】
一方、ディスクアダプタ１５は、ホスト装置２からの仮想ボリューム５０に対するアクセス要求を受信すると、スナップショット管理テーブル８０を参照して、仮想ボリューム５０のブロックアドレスと対応付けられている運用ボリューム３０のブロック又はプールボリューム４０のブロックアドレスへのアクセスをホスト装置２に指示する。
【００５０】
従って、ホスト装置２は、仮想ボリューム５０にアクセスすることによって、スナップショットイメージの取得要求が発行された時点での運用ボリューム３０内の情報が利用できる。よって、ストレージ装置４では、ファイルシステムのスナップショットイメージを提供することが可能になる。なお、これらの処理に関しては後に詳述する。
【００５１】
図４は、スナップショット管理テーブル８０の説明図である。図４に示すスナップショット管理テーブル８０は、運用ボリューム３０のブロックアドレスを格納する運用ボリュームブロックアドレス格納欄８１及び世代１〜ｎの仮想ボリュームのプールボリューム４０のブロックアドレスを格納する世代１〜ｎ仮想ボリュームブロックアドレス格納欄８２１〜８２ｎから構成されている。
【００５２】
運用ボリュームブロックアドレス格納欄８１は、運用ボリューム３０のブロックアドレスが登録されており、最初の行（第１行）には、運用ボリューム３０の１番目のブロックアドレス０番が割り当てられ、第２行には、運用ボリューム３０のブロックアドレス１番が割り当てられ、以下順に運用ボリューム３０のブロックアドレスが割り当てられ、最後の行である第ｍ行には、運用ボリューム３０のブロックアドレス（ｍ−１）番が割り当てられる。
【００５３】
世代１〜ｎ仮想ボリュームブロックアドレス格納欄８２１〜８２ｎは、世代ごとの仮想ボリュームの各ブロックアドレスに対応するデータのプールボリューム４０における格納位置が登録される。例えば、世代１仮想ボリュームブロックアドレス格納欄８２１には、スナップショット番号１のデータの格納位置が登録される。この場合、スナップショット番号と仮想ボリューム５０の世代の番号は同一である。例えば、スナップショット番号１には、世代１の仮想ボリューム５０１が対応している。
【００５４】
世代１仮想ボリュームブロックアドレス格納欄８２１の第１行には、世代１の仮想ボリューム５０１のブロックアドレス０番に対応するデータが格納されている格納領域を識別する情報が登録され、以降順番に、第２行目には、世代１の仮想ボリューム５０１のブロックアドレス１番、第３行目には、ブロックアドレス２番・・・に対応するデータの保存位置が登録される。
【００５５】
具体的には、第１行に世代１の仮想ボリューム５０１のブロックアドレス０番のデータの格納位置として登録されている０番は、プールボリューム４０のブロックアドレス０番に対応している。
【００５６】
ディスクアダプタ１５は、スナップショットイメージの取得要求を受信した後に、運用ボリューム３０のブロックアドレス０番のデータが更新されるとき、運用ボリューム３０のブロックアドレス０番に保存されている更新前のデータ（差分データ）を、プールボリューム４０のブロックアドレス０番に書き込み、その後、運用ボリューム３０のブロックアドレス０番のデータを更新する。
【００５７】
この場合、ディスクアダプタ１５は、スナップショットイメージへのアクセスを提供するために、スナップショットイメージの取得要求を受信した際に運用ボリューム３０に格納されていたデータを、記憶デバイス２０内のいずれかのディスクデバイス２１に格納しておく必要がある。
【００５８】
このように、ディスクアダプタ１５は、スナップショット管理テーブル８０において、運用ボリューム３０のブロックアドレス０番と、世代１仮想ボリュームブロックアドレス格納欄８２１に格納されたプールボリューム４０のブロックアドレス０番を対応づけておく。
【００５９】
そして、ディスクアダプタ１５は、世代１仮想ボリュームブロックアドレス格納欄８２１の第１行のブロックアドレス０番（すなわち、プールボリューム４０のブロックアドレス０番）にアクセスすることによって、運用ボリューム３０のブロックアドレス０番の更新前のデータ（差分データ）（世代１の仮想ボリューム５０１のデータ）が得られる。
【００６０】
従って、ディスクアダプタ１５は、世代１の仮想ボリュームのブロックアドレス０番に対するアクセス要求があった場合には、スナップショット管理テーブル８０を参照することによって、プールボリューム４０のブロックアドレス０番をアクセスするようになされている。
【００６１】
この結果、ディスクアダプタ１５は、ホスト装置２に対して、運用ボリューム３０のブロックアドレス０番の更新前のデータ（差分データ）（すなわち、スナップショットイメージの取得要求を受信した時点で運用ボリューム３０のブロックアドレス０番に格納されていた世代１の仮想ボリューム５０１のデータ）が世代１の仮想ボリューム５０１のブロックアドレス０番に書き込まれているのと同様の状態で、世代１の仮想ボリューム５０１に対するアクセス環境を提供することができる。
【００６２】
同様に、世代１仮想ボリュームブロックアドレス格納欄８２１の第２行に、世代１の仮想ボリューム５０１のブロックアドレスのデータの保存位置として登録されている１番は、プールボリューム４０のブロックアドレス１番に対応している。
【００６３】
この場合、ディスクアダプタ１５は、スナップショットイメージの取得要求受信後に運用ボリューム３０のブロックアドレス１番のデータが更新されるとき、運用ボリューム３０のブロックアドレス１番に格納されている更新前のデータ（差分データ）を、プールボリューム４０のブロックアドレス１番に書き込み、その後、運用ボリューム３０のブロックアドレス１番のデータを更新する。
【００６４】
このように、ディスクアダプタ１５は、スナップショット管理テーブル８０において、運用ボリューム３０のブロックアドレス１番と、世代１仮想ボリュームブロックアドレス格納欄８２１に格納されたプールボリューム４０のブロックアドレス１番を対応づけておく。
【００６５】
この結果、ディスクアダプタ１５は、ホスト装置２に対して、運用ボリューム３０のブロックアドレス１番の更新前のデータ（差分データ）（世代１の仮想ボリューム５０１のデータ）が世代１の仮想ボリューム５０１のブロックアドレス１番に仮想的に書き込まれているのと同様の状態で、世代１の仮想ボリューム５０１に対するアクセスを提供することができる。
【００６６】
第３行〜第ｍ行には、世代１の仮想ボリューム５０１のブロックアドレス２番から（ｍ−１）番のデータに対応する格納位置情報として「なし」が格納されている。この「なし」とは運用ボリューム３０の対応するブロックアドレスを示している。従って、世代１の仮想ボリューム５０１のブロックアドレス２〜（ｍ−１）番については、それぞれ運用ボリューム３０のブロックアドレス２〜（ｍ−１）番が対応する。すなわち、「なし」は、最後にスナップショットイメージの取得要求を受信した後、運用ボリューム３０の当該ブロックアドレスは更新（書き替え）がされていないことを示す。
【００６７】
従って、ディスクアダプタ１５は、世代１の仮想ボリューム５０１のブロックアドレス０番（プールボリューム４０のブロックアドレス０番）のデータと、世代１の仮想ボリューム５０１のブロックアドレス１番（プールボリューム４０のブロックアドレス１番）のデータと、運用ボリューム３０のブロックアドレス２〜（ｍ−１）番のデータとによって、ホスト装置２に対して、運用ボリューム３０のブロックアドレス０番及び１番のデータが更新される前の時点における運用ボリューム３０のスナップショットイメージ（世代１の仮想ボリューム５０１）を提供することが可能になる。
【００６８】
一方、世代２仮想ボリュームブロックアドレス格納欄８２２には、世代２の仮想ボリューム５０２のデータの格納位置が登録される。
【００６９】
ディスクアダプタ１５は、スナップショットイメージの取得要求を受信する毎に、取得要求受信時におけるスナップショットイメージを取得すべく新たな世代の仮想ボリューム５０をスナップショット管理テーブル８０に登録する。
【００７０】
この場合、世代２の仮想ボリューム５０２は、スナップショット番号１のスナップショット（世代１の仮想ボリューム５０１に対応）が取得された後に、再びスナップショットイメージの取得要求（世代２仮想ボリューム５０２のスナップショットイメージの取得要求）を受信した際に生成されるスナップショット番号２（世代２）のスナップショットイメージに対応する世代の仮想ボリューム５０である。
【００７１】
世代２仮想ボリュームブロックアドレス格納欄８２２の第１行に、世代２の仮想ボリューム５０２のブロックアドレス０番のデータ格納位置として登録されている０番は、プールボリューム４０のブロックアドレス０番に対応している。
【００７２】
ディスクアダプタ１５は、２番目のスナップショットイメージの取得要求の受信後に、運用ボリューム３０のブロックアドレス０番のデータが更新されるとき、前述したように運用ボリューム３０のブロックアドレス０番に格納されている更新前のデータ（差分データ）を、プールボリューム４０のブロックアドレス０番に複写し、その後に運用ボリューム３０のブロックアドレス０番のデータを更新する。
【００７３】
このとき、ディスクアダプタ１５は、世代１の仮想ボリューム５０１及び世代２の仮想ボリューム５０２のブロックアドレス０番に対応するデータを、プールボリューム４０のブロックアドレス０番に格納したこととなるから、世代１の仮想ボリューム５０１及び世代２の仮想ボリューム５０２のブロックアドレス０番を共に、プールボリューム４０のブロックアドレス０番に対応付けられるようスナップショット管理テーブル８０を書き換える。
【００７４】
また、世代２仮想ボリュームブロックアドレス格納欄８２２の第２行に世代２の仮想ボリューム５０２のブロックアドレス１番のデータの格納位置として登録されている２番は、プールボリューム４０のブロックアドレス２番に対応している。これは、２番目のスナップショットイメージの取得要求受信後、運用ボリューム３０のブロックアドレス１番のデータが更新されたことを示している。
【００７５】
すなわち、２番目（世代２）のスナップショットイメージの取得要求を受信した後に生じた運用ボリューム３０のブロックアドレス１番のデータ更新に際しては、更新前のデータ（差分データ）は、プールボリューム４０のブロックアドレス２番に複写される。これは、プールボリューム４０のブロックアドレス１番に複写すると、世代１の仮想ボリューム５０１のブロックアドレス１番と対応付けられているデータが変更され、１番目のスナップショットイメージが壊れてしまうからである。
【００７６】
世代２仮想ボリュームブロックアドレス格納欄８２２の第３行から第ｍ行は、世代２の仮想ボリューム５０２のブロックアドレス２〜第（ｍ−１）番のデータの格納位置として「なし」が登録されている。この「なし」は、前述したように、仮想ボリューム５０の当該ブロックアドレスが、運用ボリューム３０の対応するブロックアドレスに対応付けられていることを示す。
【００７７】
世代ｎ仮想ボリュームブロックアドレス格納欄８２ｎについての説明は、前述した世代１、世代２仮想ボリュームブロックアドレス格納欄８２１、８２２についての説明と同様なので、省略する。
【００７８】
このようにしてストレージ装置４では、ホスト装置２から送信されるスナップショットイメージの取得要求に基づいて所定の世代のスナップショットイメージを取得し、所定の世代の仮想ボリューム（スナップショットイメージ）に対するアクセス要求があった場合には、スナップショット管理テーブル８０を参照し、プールボリューム４０のデータ又は運用ボリューム３０のデータを読み出すことによって、ホスト装置２に対して、当該世代の仮想ボリュームを提供するようになされている。
【００７９】
（１−３）第１の実施の形態によるデータ読出し時における制御処理
次に、第１の実施の形態によるストレージシステム１のデータ読出し時における制御処理について説明する。第１の実施の形態によるストレージシステム１では、ホスト装置２からある世代のスナップショットイメージのデータについての読出し要求を受信したときに、運用ボリューム３０からデータを読み出す場合には、当該データをプールボリューム４０に格納し、当該データを再び読み出すときに、プールボリューム４０に格納された当該データを読み出すことを特徴の１つとしている。
【００８０】
ここで、ホスト装置２からある世代のスナップショットイメージのデータについての読出し要求が受信されたとき、運用ボリューム３０から読み出され、プールボリューム４０に格納されるデータを複製データと呼ぶ。
【００８１】
図５は、かかるデータ読出し時における制御処理の内容を概略的に示した概念図である。この場合、プールボリューム４０は、図５に示すように、複製データを格納するための複製データ格納領域１００と、前述した差分データを格納するための差分データ格納領域１１０とから構成されており、この複製データ格納領域１００の容量については、管理端末１６の管理者等によって、予め所定の容量に設定されている。
【００８２】
なお、この複製データ格納領域１００の容量については、管理端末１６の管理者等によって、任意の容量に設定することができるようになされており、これにより、管理者等の目的に合わせた種々の形態に適用することができる。
【００８３】
図６は、複製データ管理テーブル９０の説明図である。図６に示す複製データ管理テーブル９０は、複製データ格納領域１００に格納された複製データを管理するようになされており、運用ボリューム３０からプールボリューム４０の複製データ格納領域１００に格納された複製データの情報を格納するための複製データ情報格納欄９１と、運用ボリューム３０に格納されているデータへのホスト装置２からの読出し要求を受信した回数を格納するための読出し要求回数格納欄９２とから構成されている。
【００８４】
また、複製データ管理テーブル９０は、複製データ情報格納欄９１に格納された複製データの情報ごとに優先度が設定されており、運用ボリューム３０に格納されているデータへのホスト装置２からの読出し要求を受信した回数が多いほど、複製データの優先度を高くするように管理するようになされている。
【００８５】
さらに、複製データ管理テーブル９０は、プールボリューム４０の複製データ格納領域１００に新たに格納された複製データを、次に新たな複製データが初めて格納されるまで、一番優先度の高い複製データとして管理するようになされている。
【００８６】
この場合、複製データ管理テーブル９０は、図６に示すように、新たに格納された複製データに対応する読出し要求回数格納欄９２に、例えば、「初回」と格納するようになされている。また、複製データ管理テーブル９０は、次にプールボリューム４０の複製データ格納領域１００に新たに複製データが格納される場合には、当該次に新たに格納される複製データに対応する読出し要求回数格納欄９２に、「初回」と格納すると共に、それまで「初回」と格納されていた読出し要求回数格納欄９２に、対応する回数を格納するようになされている。
【００８７】
ここで、図７は、このストレージシステム１におけるデータ読出し時における制御処理に関するストレージ装置４の具体的な処理手順を示したフローチャートである。
【００８８】
ディスクアダプタ１５は、初期時、複製データ管理プログラム７０を実行することにより、図７に示す第１の複製データ管理処理手順ＲＴ１に従って、ユーザによりホスト装置２が操作され、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待機モードで待ち受ける（Ｓ１）。
【００８９】
やがて、ディスクアダプタ１５は、ホスト装置２からある世代の仮想ボリューム５０のデータの読出し要求を受信すると（Ｓ１：ＹＥＳ）、スナップショット管理テーブル８０を参照することにより、読出し要求に対応する読出し対象のデータが運用ボリューム３０に格納されているか否かをチェックする（Ｓ２）。
【００９０】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されていない場合（Ｓ２：ＮＯ）には、スナップショット管理テーブル８０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の差分データ格納領域１１０の対応するブロックアドレスの番号に格納されている差分データ）をホスト装置２に対して読み出し（Ｓ３）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ１）。
【００９１】
例えば、ディスクアダプタ１５は、図４のスナップショット管理テーブル８０における世代１の仮想ボリューム５０１のブロックアドレス１番のデータの読出し要求をホスト装置２から受信した場合には、世代１の仮想ボリューム５０１のブロックアドレス１番のデータの格納位置として「１」が格納されているため、プールボリューム４０の差分データ格納領域１１０のブロックアドレス１番に対応するデータをホスト装置２に対して読み出すようになされている。
【００９２】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合（Ｓ２：ＹＥＳ）には、複製データ管理テーブル９０を参照することにより、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されているか否か（すなわち、新たに読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納するか否か）をチェックする（Ｓ４）。
【００９３】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されている場合（Ｓ４：ＹＥＳ）には、複製データ管理テーブル９０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の複製データ格納領域１００の対応するブロックアドレスの番号に格納されている複製データ）をホスト装置２に対して読み出す（Ｓ５）。
【００９４】
例えば、ディスクアダプタ１５は、図４のスナップショット管理テーブル８０における世代１の仮想ボリューム５０１のブロックアドレス２番のデータの読出し要求をホスト装置２から受信した場合には、世代１の仮想ボリューム５０１のブロックアドレス１番のデータの格納位置として「なし」が格納されているため、運用ボリューム３０のブロックアドレス２番のデータを読み出すこととなる。
【００９５】
このとき、ディスクアダプタ１５は、図６の複製データ管理テーブル９０に世代１の仮想ボリューム５０１のブロックアドレス２番のデータの情報が格納されているため、プールボリューム４０の複製データ格納領域１００に格納されている運用ボリューム３０のブロックアドレス２番のデータをホスト装置２に対して読み出すようになされている。
【００９６】
続いて、ディスクアダプタ１５は、複製データ管理テーブル９０の読出し要求回数格納欄９２に格納されている、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の複製データ格納領域１００の対応するブロックアドレスの番号に格納されている複製データ）のホスト装置２からの読出し要求を受信した回数を、「１」上げ（Ｓ６）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ１）。
【００９７】
例えば、ディスクアダプタ１５は、プールボリューム４０の複製データ格納領域１００に格納されている運用ボリューム３０のブロックアドレス２番のデータをホスト装置２に対して読み出した場合には、図６の複製データ管理テーブル９０の読出し要求回数格納欄９２に格納されている「５」を「６」に上げるようになされている。
【００９８】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されていない場合（Ｓ４：ＮＯ）には、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納可能か否かをチェックする（Ｓ７）。
【００９９】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納不可能な場合（Ｓ７：ＮＯ）には、複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除する（Ｓ８）。
【０１００】
例えば、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納すると、管理端末１６の管理者等によって予め設定された複製データ格納領域１００の容量を越えるような場合には、図６に示すように、優先度の一番低い複製データである、複製データ管理テーブル９０の読出し要求回数格納欄９２に格納されているホスト装置２からの読出し要求を受信した回数が「１」の、プールボリューム４０の複製データ格納領域１００に格納されている運用ボリューム３０のブロックアドレス１０番のデータを削除するようになされている。
【０１０１】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納可能な場合（Ｓ７：ＹＥＳ）、又は複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除した（Ｓ８）場合には、当該読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納する（Ｓ９）。
【０１０２】
そして、ディスクアダプタ１５は、プールボリューム４０の複製データ格納領域１００に複製データとして格納された、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータを優先度の一番高い複製データとし、当該複製データをホスト装置２に対して読み出し（Ｓ１０）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待ち受ける待機モードに戻る（Ｓ１）。
【０１０３】
例えば、ディスクアダプタ１５は、運用ボリューム３０のブロックアドレス８番のデータが、対応する世代の仮想ボリューム５０の読出し対象のデータとして、初めてホスト装置２からの読出し要求された場合には、図６に示すように、運用ボリューム３０のブロックアドレス８番のデータを複製データ情報格納欄９１に格納すると共に、対応する読出し要求格納欄９２に、優先度の一番高い複製データとする「初回」を格納し、このプールボリューム４０の複製データ格納領域１００に格納された運用ボリューム３０のブロックアドレス８番のデータをホスト装置２に対して読み出すようになされている。
【０１０４】
なお、例えば、ディスクアダプタ１５は、運用ボリューム３０のブロックアドレス８番のデータが複製データ情報格納欄９１に格納されるまで、読出し要求格納欄９２に「初回」が格納されていた複製データが、運用ボリューム３０のブロックアドレス１０番のデータであった場合には、図６に示すように、これまでホスト装置２からの読出し要求を受信した回数である「１」を対応する読出し要求格納欄９２に格納するようになされている。
【０１０５】
このようにして、ストレージ装置４では、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合に、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納し、再び、ホスト装置２からの読出し要求があったときに、プールボリューム４０の複製データ格納領域１００から、対応する世代の仮想ボリューム５０の読出し対象のデータを読み出す。
【０１０６】
従って、ストレージ装置４では、運用ボリューム３０に格納されている、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを、プールボリューム４０の複製データ格納領域１００から読み出すため、運用ボリューム３０のアクセスが増大するのを未然かつ有効に防止することができ、かくして、運用ボリュームに対するアクセス負荷を格段的に低減させることができる。
【０１０７】
これは具体的には、運用ボリューム３０を構成するディスクドライブ２１Ａのデータをプールボリュームを構成するディスクドライブ２１Ｂに格納することで、ディスクドライブ２１Ｂからも読み出し処理を行うことで、ディスクドライブ２１Ａに対するアクセスの集中を回避することを意味する。
【０１０８】
なお、運用ボリューム３０に格納されている読み出し対象データを複製データとしてプールボリューム４０に格納する処理とは、論理的な記憶領域であるボリューム間でデータを複製する処理であり、Ｓ９の時点において、運用ボリューム３０とプールボリューム４０とを構成する物理的なディスクデバイス間での複写処理を、伴わなくとも良い。
【０１０９】
この場合、具体的には、運用ボリューム３０を構成するディスクドライブ２１Ａから、読み出し対象データをステージング処理によってキャッシュメモリ１４上に読み出した後に、プールボリューム４０に論理的に複写し、当該読み出しデータをプールボリューム４０に複写されたデータとしてキャッシュ上で管理する（当該読み出しデータがキャッシュメモリ１４上にステージングされている間に読み出し要求があれば、キャッシュメモリ上から当該読み出しデータをホストに応答する）。
【０１１０】
この後、物理的なデータ処理として、当該読み出し対象データをキャッシュメモリ上からデステージする際に、プールボリューム４０を構成するディスクドライブ２１Ｂに格納する処理を行うようになされている。
【０１１１】
また、ストレージ装置４では、複製データ格納領域１００の容量を、管理端末１６の管理者等によって、予め所定の容量に設定することによって、複製データを無条件にプールボリューム４０に格納して、差分データを格納するための容量を圧迫し、差分データを格納することができないといった事態を未然かつ有効に防止することができる。
【０１１２】
さらに、ストレージ装置４では、複製データ管理テーブル９０により、複製データ格納領域１００に格納された複製データを管理し、複製データ情報格納欄９１に格納された複製データの情報ごとに優先度を設定し、運用ボリューム３０に格納されているデータへのホスト装置２からの読出し要求を受信した回数が多いほど、複製データの優先度を高くすることによって、当該優先度に基づいて、プールボリューム４０の複製データ格納領域１００に格納された複製データを読み出す頻度を把握することができ、プールボリューム４０の複製データ格納領域１００の容量を有効に使用することができる。
【０１１３】
さらに、ストレージ装置４では、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納不可能な場合には、複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除することによって、プールボリューム４０の複製データ格納領域１００に格納された複製データを読み出す頻度が少ない複製データを削除して、プールボリューム４０の複製データ格納領域１００の容量を一段と有効に使用することができる。
【０１１４】
さらに、ストレージ装置４では、プールボリューム４０の複製データ格納領域１００に新たに格納された複製データを、次に新たな複製データが初めて格納されるまで、一番優先度の高い複製データとすることによって、新たにプールボリューム４０の複製データ格納領域１００に格納された複製データがすぐに削除されることなく、ホスト装置２からの読出し要求があったときに、プールボリューム４０の複製データ格納領域１００から、対応する世代の仮想ボリューム５０の読出し対象のデータを読み出すことができる。
【０１１５】
（２）第２の実施の形態
（２−１）第２の実施の形態によるストレージシステム１２０の構成
次に、第２の実施の形態によるストレージシステム１２０の構成を示す。このストレージシステム１２０は、ストレージ装置１２１のプールボリューム１３０を、第１の複製データ格納領域１４０と、第２の複製データ格納領域１５０とから構成すること、複製データ管理テーブル９０により、第２の複製データ格納領域１５０に格納された複製データを管理すること、及びディスクアダプタ１５が図３に示す複製データ管理プログラム１６０を実行することによって、データ読出し時の制御処理を行うことを除いて、前述の第１の実施の形態におけるストレージシステム１と同様に構成されている。
【０１１６】
（２−２）第２の実施の形態によるデータ読出し時における制御処理
次に、第２の実施の形態によるストレージシステム１２０のデータ読出し時における制御処理について説明する。
【０１１７】
図８は、第２の実施の形態におけるデータ読出し時における制御処理の内容を概略的に示した概念図である。この場合、プールボリューム１３０は、図８に示すように、新たな複製データを格納するための第１の複製データ格納領域１４０と、当該第１の格納領域１４０に格納された複製データが再び読み出されたときに、当該複製データを格納する第２の複製データ格納領域１５０と、前述した差分データを格納するための差分データ格納領域１１０とから構成されており、この第１の複製データ格納領域１４０及び第２の複製データ格納領域１５０の容量については、管理端末１６の管理者等によって、予め所定の容量に設定されている。
【０１１８】
なお、この第１の複製データ格納領域１４０及び第２の複製データ格納領域１５０の容量については、管理端末１６の管理者等によって、任意の容量に設定することができるようになされており、これにより、管理者等の目的に合わせた種々の形態に適用することができる。
【０１１９】
ここで、図９及び図１０は、このストレージシステム１２０におけるデータ読出し時における制御処理に関するストレージ装置１２１の具体的な処理手順を示したフローチャートである。
【０１２０】
ディスクアダプタ１５は、初期時、複製データ管理プログラム１６０を実行することにより、図９及び図１０に示す第２の複製データ管理処理手順ＲＴ２に従って、ユーザによりホスト装置２が操作され、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待機モードで待ち受ける（Ｓ２１）。
【０１２１】
やがて、ディスクアダプタ１５は、ホスト装置２からある世代の仮想ボリューム５０のデータの読出し要求を受信すると（Ｓ２１：ＹＥＳ）、スナップショット管理テーブル８０を参照することにより、読出し要求に対応する読出し対象のデータが運用ボリューム３０に格納されているか否かをチェックする（Ｓ２２）。
【０１２２】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されていない場合（Ｓ２２：ＮＯ）には、スナップショット管理テーブル８０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム１３０の差分データ格納領域１１０の対応するブロックアドレスの番号に格納されている差分データ）をホスト装置２に対して読み出し（Ｓ２３）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ２１）。
【０１２３】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合（Ｓ２２：ＹＥＳ）には、第１の複製データ格納領域１４０及び複製データ管理テーブル９０を参照することにより、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０に格納されているか否か（すなわち、新たに読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納するか否か）をチェックする（Ｓ２４）。
【０１２４】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０に格納されていない場合（Ｓ２４：ＮＯ）には、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納可能か否かをチェックする（Ｓ２５）。
【０１２５】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納不可能な場合（Ｓ２５：ＮＯ）には、第１の複製データ格納領域１４０に格納された複製データのうち、一番先に格納された複製データを削除する（Ｓ２６）。
【０１２６】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納可能な場合（Ｓ２５：ＹＥＳ）、又は第１の複製データ格納領域１４０に格納された複製データのうち、一番先に格納された複製データを削除した（Ｓ２６）場合には、当該読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納する（Ｓ２７）。
【０１２７】
そして、ディスクアダプタ１５は、プールボリューム１３０の複製データ格納領域１４０に複製データとして格納された、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータを複製データとしてホスト装置２に対して読み出し（Ｓ２８）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待ち受ける待機モードに戻る（Ｓ２１）。
【０１２８】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０に格納されている場合（Ｓ２４：ＹＥＳ）には、第１の複製データ格納領域１４０を参照することにより、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納されているか否かをチェックする（Ｓ２９）。
【０１２９】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納されている場合（Ｓ２９：ＹＥＳ）には、当該複製データを、プールボリューム１３０の第２の複製データ格納領域１５０に格納可能か否かをチェックする（Ｓ３０）。
【０１３０】
そして、ディスクアダプタ１５は、当該複製データがプールボリューム１３０の第２の複製データ格納領域１５０に格納不可能な場合（Ｓ３０：ＮＯ）には、複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除する（Ｓ３１）。
【０１３１】
これに対して、ディスクアダプタ１５は、当該複製データがプールボリューム１３０の第２の複製データ格納領域１５０に格納可能な場合（Ｓ３０：ＹＥＳ）、又は複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除した（Ｓ３１）場合には、当該複製データを、プールボリューム１３０の第２の複製データ格納領域１５０に格納する（Ｓ３２）。
【０１３２】
そして、ディスクアダプタ１５は、プールボリューム１３０の第２の複製データ格納領域１５０に複製データとして格納された、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータを優先度の一番高い複製データとし、当該複製データをホスト装置２に対して読み出し（Ｓ３３）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待ち受ける待機モードに戻る（Ｓ２１）。
【０１３３】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納されていない場合（Ｓ２９：ＹＥＳ）には、当該複製データがプールボリューム１３０の第２の複製データ格納領域１５０に格納されていることを示しており、複製データ管理テーブル９０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム１３０の第２の複製データ格納領域１５０の対応するブロックアドレスの番号に格納されている複製データ）をホスト装置２に対して読み出す（Ｓ３４）。
【０１３４】
続いて、ディスクアダプタ１５は、複製データ管理テーブル９０の読出し要求回数格納欄９２に格納されている、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム１３０の第２の複製データ格納領域１５０の対応するブロックアドレスの番号に格納されている複製データ）のホスト装置２からの読出し要求を受信した回数を、「１」上げ（Ｓ３５）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ２１）。
【０１３５】
このようにして、ストレージ装置１２１では、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合に、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０に格納し、再び、ホスト装置２からの読出し要求があったときに、プールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０から、対応する世代の仮想ボリューム５０の読出し対象のデータを読み出す。
【０１３６】
従って、ストレージ装置１２１では、運用ボリューム３０に格納されている、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを、プールボリューム１３０の第１の複製データ格納領域１４０又は第２の複製データ格納領域１５０から読み出すため、運用ボリューム３０のアクセスが増大するのを未然かつ有効に防止することができ、かくして、運用ボリュームに対するアクセス負荷を格段的に低減させることができる。
【０１３７】
また、ストレージ装置１２１では、複製データ管理テーブル９０により、第２の複製データ格納領域１５０に格納された複製データを管理し、複製データ情報格納欄９１に格納された複製データの情報ごとに優先度を設定し、運用ボリューム３０に格納されているデータへのホスト装置２からの読出し要求を受信した回数が多いほど、複製データの優先度を高くすることによって、当該優先度に基づいて、プールボリューム１３０の第２の複製データ格納領域１５０に格納された複製データを読み出す頻度を把握することができ、プールボリューム１３０の第２の複製データ格納領域１５０の容量を有効に使用することができる。
【０１３８】
さらに、ストレージ装置１２１では、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第１の複製データ格納領域１４０に格納不可能な場合には、第１の複製データ格納領域１４０に格納された複製データのうち、一番先に格納された複製データを削除することによって、プールボリューム１３０の第１の複製データ格納領域１４０に格納された一番古い複製データを削除して、プールボリューム１３０の第１の複製データ格納領域１４０の容量を一段と有効に使用することができる。
【０１３９】
さらに、ストレージ装置１２１では、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データとしてプールボリューム１３０の第２の複製データ格納領域１５０に格納不可能な場合には、複製データ管理テーブル９０を参照して、優先度の一番低い複製データを削除することによって、プールボリューム４０の複製データ格納領域１００に格納された複製データを読み出す頻度が少ない複製データを削除して、プールボリューム４０の複製データ格納領域１００の容量を一段と有効に使用することができる。
【０１４０】
（３）第３の実施の形態
（３−１）第３の実施の形態によるストレージシステム１７０の構成
次に、第３の実施の形態によるストレージシステム１７０の構成を示す。このストレージシステム１７０は、ストレージ装置１７１の複製データ管理テーブル９０により、所定の期間、運用ボリューム３０に格納されたデータを管理すること、及びディスクアダプタ１５が図３に示す複製データ管理プログラム１８０を実行することによって、データ読出し時の制御処理を行うことを除いて、前述の第１の実施の形態におけるストレージシステム１と同様に構成されている。
【０１４１】
（３−２）第３の実施の形態によるデータ読出し時における制御処理
次に、第３の実施の形態によるストレージシステム１７０のデータ読出し時における制御処理について説明する。第３の実施の形態によるストレージシステム１７０では、複製データ管理テーブルにより、ホスト装置からある世代の運用ボリュームに格納されたデータについての読出し要求を受信したときに、前記運用ボリュームから、対応する前記データを読み出す頻度を所定の期間において管理し、所定の期間の経過後に、優先度の高い所定数の運用ボリュームに格納されたデータを複製データとしてプールボリュームに格納し、運用ボリュームに格納されたデータを再び読み出すときに、プールボリュームに格納された複製データを読み出すことを特徴の１つとしている。
【０１４２】
図１１は、第３の実施の形態におけるデータ読出し時における制御処理の内容を概略的に示した概念図である。また、図１２及び図１３は、このストレージシステム１７０におけるデータ読出し時における制御処理に関するストレージ装置１７１の具体的な処理手順を示したフローチャートである。
【０１４３】
ディスクアダプタ１５は、初期時、複製データ管理プログラム１８０を実行することにより、図１２及び図１３に示す第３の複製データ管理処理手順ＲＴ３に従って、ユーザによりホスト装置２が操作され、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待機モードで待ち受ける（Ｓ４１）。
【０１４４】
やがて、ディスクアダプタ１５は、ホスト装置２からある世代の仮想ボリューム５０のデータの読出し要求を受信すると（Ｓ４１：ＹＥＳ）、スナップショット管理テーブル８０を参照することにより、読出し要求に対応する読出し対象のデータが運用ボリューム３０に格納されているか否かをチェックする（Ｓ４２）。
【０１４５】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されていない場合（Ｓ４２：ＮＯ）には、スナップショット管理テーブル８０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の差分データ格納領域１１０の対応するブロックアドレスの番号に格納されている差分データ）をホスト装置２に対して読み出す（Ｓ４３）。
【０１４６】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合（Ｓ４２：ＹＥＳ）には、複製データ管理テーブル９０を参照することにより、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データ管理テーブル９０に管理されているか否かをチェックする（Ｓ４４）。
【０１４７】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データ管理テーブル９０に管理されている場合（Ｓ４４：ＹＥＳ）には、運用ボリューム３０に格納されている、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータをホスト装置２に対して読み出す（Ｓ４５）。
【０１４８】
続いて、ディスクアダプタ１５は、複製データ管理テーブル９０の読出し要求回数格納欄９２に格納されている、当該対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータのホスト装置２からの読出し要求を受信した回数を、「１」上げる（Ｓ４６）。
【０１４９】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データ管理テーブル９０に管理されていない場合（Ｓ４４：ＮＯ）には、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを複製データ管理テーブル９０に管理し、当該対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータをホスト装置２に対して読み出す（Ｓ４７）。
【０１５０】
やがて、ディスクアダプタ１５は、初期時から、管理端末１６の管理者等により予め設定された所定の期間が経過したか否かをチェックする（Ｓ４８）。そして、ディスクアダプタ１５は、初期時から、管理端末１６の管理者等により予め設定された所定の期間が経過していない場合（Ｓ４８：ＮＯ）には、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待ち受ける待機モードに戻る（Ｓ４１）。これに対して、ディスクアダプタ１５は、初期時から、管理端末１６の管理者等により予め設定された所定の期間が経過した場合（Ｓ４８：ＹＥＳ）には、複製データ管理テーブル９０に管理されている、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータのうち、優先度の高い所定数の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納する（Ｓ４９）
【０１５１】
続いて、ディスクアダプタ１５は、ユーザによりホスト装置２が操作され、ある世代の仮想ボリューム５０のデータの読出し要求を受信するのを待機モードで待ち受ける（Ｓ５０）。
【０１５２】
やがて、ディスクアダプタ１５は、ホスト装置２からある世代の仮想ボリューム５０のデータの読出し要求を受信すると（Ｓ５０：ＹＥＳ）、スナップショット管理テーブル８０を参照することにより、読出し要求に対応する読出し対象のデータが運用ボリューム３０に格納されているか否かをチェックする（Ｓ５１）。
【０１５３】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されていない場合（Ｓ５１：ＮＯ）には、スナップショット管理テーブル８０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の差分データ格納領域１１０の対応するブロックアドレスの番号に格納されている差分データ）をホスト装置２に対して読み出し（Ｓ５２）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ５０）。
【０１５４】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが運用ボリューム３０に格納されている場合（Ｓ５１：ＹＥＳ）には、複製データ管理テーブル９０を参照することにより、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されているか否かをチェックする（Ｓ５３）。
【０１５５】
そして、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されていない場合（Ｓ５３：ＮＯ）には、運用ボリューム３０に格納されている、対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータをホスト装置２に対して読み出し（Ｓ５４）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ５０）。
【０１５６】
これに対して、ディスクアダプタ１５は、ホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータが複製データとしてプールボリューム４０の複製データ格納領域１００に格納されている場合（Ｓ５３：ＹＥＳ）には、複製データ管理テーブル９０の対応する世代の仮想ボリューム５０のブロックアドレスの番号のデータ（プールボリューム４０の複製データ格納領域１００の対応するブロックアドレスの番号に格納されている複製データ）をホスト装置２に対して読み出し（Ｓ５５）、この後、再び、ある世代の仮想ボリューム５０のデータの読出し要求をホスト装置２から受信するのを待ち受ける待機モードに戻る（Ｓ５０）。
【０１５７】
このようにして、ストレージ装置１７１では、複製データ管理テーブル９０により、ホスト装置２からある世代の運用ボリューム３０に格納されたデータについての読出し要求を受信したときに、運用ボリューム３０から、対応するデータを読み出す回数を所定の期間において管理し、所定の期間の経過後に、優先度の高い所定数の運用ボリューム３０に格納されたデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納し、運用ボリューム３０に格納されたデータを再び読み出すときに、プールボリューム４０の複製データ格納領域１００に格納された複製データを読み出す
【０１５８】
従って、ストレージ装置１７１では、所定の期間の経過後に、優先度の高い所定数の運用ボリューム３０に格納されたデータを複製データとしてプールボリューム４０の複製データ格納領域１００に格納し、運用ボリューム３０に格納されているホスト装置２からの読出し要求に対応する世代の仮想ボリューム５０の読出し対象のデータを、プールボリューム４０の複製データ格納領域１００から読み出すため、運用ボリューム３０のアクセスが増大するのを未然かつ有効に防止することができると共に、複製データ管理テーブル９０により、動作時に、ホスト装置２からの読出し要求を受信した回数をカウントしたりすることがないため、ホスト装置２への読み出しを高速化することができ、かくして、運用ボリュームに対するアクセス負荷を格段的に低減させることができる。
【産業上の利用可能性】
【０１５９】
本発明は、スナップショットイメージを取得し、スナップショットイメージからデータを読み出すストレージ装置のほか、この他種々の仮想ボリュームからデータを読み出すストレージ装置に適用することができる。
【図面の簡単な説明】
【０１６０】
【図１】本実施の形態によるストレージシステムの構成を示す略線図である。
【図２】論理ボリュームの構成を示す略線図ある。
【図３】共有メモリの構成を示す略線図である。
【図４】スナップショット管理テーブルの説明に供する概念図である。
【図５】第１の実施の形態によるデータ読出し時の制御処理の説明に供する概念図である。
【図６】複製データ管理テーブルの説明に供する概念図である。
【図７】第１の実施の形態によるデータ読出し時の制御処理の説明に供するフローチャートである。
【図８】第２の実施の形態によるデータ読出し時の制御処理の説明に供する概念図である。
【図９】第２の実施の形態によるデータ読出し時の制御処理の説明に供するフローチャートである。
【図１０】第２の実施の形態によるデータ読出し時の制御処理の説明に供するフローチャートである。
【図１１】第３の実施の形態によるデータ読出し時の制御処理の説明に供する概念図である。
【図１２】第３の実施の形態によるデータ読出し時の制御処理の説明に供するフローチャートである。
【図１３】第３の実施の形態によるデータ読出し時の制御処理の説明に供するフローチャートである。
【符号の説明】
【０１６１】
１、１２０、１７０……ストレージシステム、２……ホスト装置、４、１２１、１７１……ストレージ装置、１０……コントロール部、１１……チャネルアダプタ、１２……接続部、１３……共有メモリ、１４……キャッシュメモリ、１５……ディスクアダプタ、１６……管理端末、２０……記憶デバイス部、２１……ディスクデバイス、３０……運用ボリューム、４０、１３０……プールボリューム、５０……仮想ボリューム、５０１〜５０ｎ……世代１〜ｎの仮想ボリューム、６０……スナップショット管理プログラム、７０……スナップショット管理テーブル、８０、１６０、１８０……複製データ管理プログラム、８１……運用ボリュームブロックアドレス格納欄、８２１〜８２ｎ……世代１〜ｎ仮想ボリュームブロックアドレス格納欄、９０……複製データ管理テーブル、９１……複製データ情報格納欄、９２……読出し要求回数格納欄、１００……複製データ格納領域、１１０……差分データ格納領域、１４０……第１の複製データ格納領域、１５０……第２の複製データ格納領域
【図１】
2007199920.tif 000003
【図２】
2007199920.tif 000004
【図３】
2007199920.tif 000005
【図４】
2007199920.tif 000006
【図５】
2007199920.tif 000007
【図６】
2007199920.tif 000008
【図７】
2007199920.tif 000009
【図８】
2007199920.tif 000010
【図９】
2007199920.tif 000011
【図１０】
2007199920.tif 000012
【図１１】
2007199920.tif 000013
【図１２】
2007199920.tif 000014
【図１３】
2007199920.tif 000015