(57)【要約】【課題】ストレージ消費容量の節約を図る。【解決手段】ストレージ制御装置１は、制御部１ａを備える。制御部１ａは、ストレージ装置２０の第１のボリュームのスナップショットを生成し、第１のボリュームのデータの重複排除を行い、重複排除後にデータ圧縮を行って圧縮データを生成し、圧縮データをストレージ装置２０の第２のボリュームに格納する。また、制御部１ａは、スナップショットを２世代以上生成した場合、所定世代より以前の世代の複数のスナップショットの第２のボリュームに存在する圧縮データのうち、第２のボリュームの論理アドレスから参照される、重複排除の結果として生成される参照数にもとづいて、特定データを検出する。そして、制御部１ａは、特定データが所定閾値以上ある場合、特定データを収集して解凍して結合し、結合後に再圧縮を行って再圧縮データを生成する。【選択図】図１
2019101989.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置の第１のボリュームのスナップショットを生成し、前記第１のボリュームのデータのうち更新前データの重複排除を行い、前記重複排除後にデータ圧縮を行って圧縮データを生成し、前記圧縮データを前記ストレージ装置の第２のボリュームに格納する制御部を備え、
前記制御部は、
前記スナップショットを２世代以上生成した場合、所定世代より以前の世代の複数の前記スナップショットの前記第２のボリュームに存在する前記圧縮データのうち、前記第２のボリュームの論理アドレスから参照される、前記重複排除の結果として生成される参照数にもとづいて、特定データを検出し、前記特定データが所定閾値以上ある場合、前記特定データを収集して解凍して結合し、結合後に再圧縮を行って再圧縮データを生成する、
ストレージ制御装置。
【請求項２】
前記制御部は、前記参照数が１になる前記圧縮データを前記特定データとして検出する請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、前記参照数が２以上になる前記圧縮データを非特定データとして検出する請求項１記載のストレージ制御装置。
【請求項４】
記憶部をさらに備え、
前記制御部は、前記再圧縮データに含まれる第１のデータに対してリード要求を受け付けた場合、前記第１のデータを解凍して第２のデータを生成して要求先に前記第２のデータを応答し、解凍後の前記第２のデータを前記記憶部に所定時間保持し、前記所定時間以内に前記第２のデータにアクセスがなかった場合、前記記憶部に保持している前記第２のデータを破棄する請求項１記載のストレージ制御装置。
【請求項５】
前記制御部は、前記再圧縮データに含まれる第１のデータに対してライト要求を受け付けた第２のデータが重複することを検出した場合、前記第２のデータを前記重複排除の対象とせず、前記第２のデータを新規データとして前記ストレージ装置にライトする請求項１記載のストレージ制御装置。
【請求項６】
前記制御部は、前記再圧縮データに含まれるデータのうち、前記参照数が０になる前記データが所定閾値以上になったことを検出した場合、前記再圧縮データを解凍し、前記参照数が０の解凍後の前記データを削除し、解凍された他のデータ群を結合して、結合後に再圧縮を行う請求項１記載のストレージ制御装置。
【請求項７】
前記制御部は、前記論理アドレスと前記圧縮データを識別するための識別情報との対応関係と、前記識別情報と前記圧縮データの格納先との対応関係とを含むメタデータを生成する請求項１記載のストレージ制御装置。
【請求項８】
コンピュータに、
ストレージ装置の第１のボリュームのスナップショットを生成し、
前記第１のボリュームのデータのうち更新前データの重複排除を行い、前記重複排除後にデータ圧縮を行って圧縮データを生成し、前記圧縮データを前記ストレージ装置の第２のボリュームに格納し、
前記スナップショットを２世代以上生成した場合、所定世代より以前の世代の複数の前記スナップショットの前記第２のボリュームに存在する前記圧縮データのうち、前記第２のボリュームの論理アドレスから参照される、前記重複排除の結果として生成される参照数にもとづいて、特定データを検出し、
前記特定データが所定閾値以上ある場合、前記特定データを収集して解凍して結合し、結合後に再圧縮を行って再圧縮データを生成する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置およびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置と、記憶装置を制御するためのサーバとを有して、情報処理で扱う大量のデータを記録管理する。
【０００３】
また、ストレージシステムには、コピーオンライト（Copy on Write）方式のスナップショット技術が広く用いられている。これは、ストレージ上のコピー元ボリュームの特定時点におけるデータの状態をスナップショットとして生成するものである。スナップショットを生成して保持しておくことにより、バックアップ等のデータ運用の効率化を図ることができる。
【０００４】
一方、業務で取り扱うデータの増大や仮想環境の普及等に伴って、ストレージに蓄積されるデータは著しく増加している。このため、ストレージ容量増加の抑制を図るための技術が開発されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１１３２９３号公報
【特許文献２】特開平０９−２３１０１６号公報
【特許文献３】特開２０１６−１６７２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストレージに蓄積されるデータの増加に伴って、スナップショットも世代を重ねて生成される。しかし、スナップショットの世代数が多くなるほど、スナップショットの生成時に蓄積されるデータも増加するため、ストレージ消費容量も増加してしまう。
【０００７】
１つの側面では、本発明は、スナップショットの世代数が増加した場合でもストレージ消費容量の節約を可能にしたストレージ制御装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、ストレージ制御装置が提供される。ストレージ制御装置は、制御部を備える。制御部は、ストレージ装置の第１のボリュームのスナップショットを生成し、第１のボリュームのデータのうち更新前データの重複排除を行い、重複排除後にデータ圧縮を行って圧縮データを生成し、圧縮データをストレージ装置の第２のボリュームに格納する。また、制御部は、スナップショットを２世代以上生成した場合、所定世代より以前の世代の複数のスナップショットの第２のボリュームに存在する圧縮データのうち、第２のボリュームの論理アドレスから参照される、重複排除の結果として生成される参照数にもとづいて、特定データを検出し、特定データが所定閾値以上ある場合、特定データを収集して解凍して結合し、結合後に再圧縮を行って再圧縮データを生成する。
【０００９】
また、上記課題を解決するために、コンピュータに上記ストレージ制御装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１０】
１側面によれば、ストレージ消費容量の節約が可能になる。
【図面の簡単な説明】
【００１１】
【図１】ストレージ制御装置の構成の一例を示す図である。
【図２】ストレージシステムの構成の一例を示す図である。
【図３】サーバのハードウェア構成の一例を示す図である。
【図４】サーバの機能ブロックの一例を示す図である。
【図５】重複排除の動作の一例を説明するための図である。
【図６】スナップショットの世代管理の一例を示す図である。
【図７】圧縮データの参照数のチェックから再圧縮までの動作を示すフローチャートである。
【図８】マッピングデータの構造および再圧縮に伴うマッピングデータの更新の一例を示す図である。
【図９】参照数の例を示す図である。
【図１０】再圧縮データおよびメタデータのデータ構造を示す図である。
【図１１】リード要求受付時の動作を示すフローチャートである。
【図１２】記憶装置からの再圧縮データの読み出し後の動作を示すフローチャートである。
【図１３】ライト要求受付時の動作を示すフローチャートである。
【図１４】再圧縮データのうち、参照数が０のデータが所定数以上の場合の動作を示すフローチャートである。
【図１５】結合待ちキューをデキューした場合の動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について図１を用いて説明する。図１はストレージ制御装置の構成の一例を示す図である。ストレージ制御装置１は、ＨＤＤやＳＳＤ等のストレージ装置２０と接続する。また、ストレージ制御装置１は、制御部１ａ、記憶部１ｂおよびインタフェース部１ｃを備える。
【００１３】
インタフェース部１ｃは、ストレージ装置２０に接続して、ストレージ装置２０とのインタフェース制御を行う。制御部１ａは、ストレージ装置２０の第１のボリュームのスナップショットを生成し、第１のボリュームのデータのうち更新前データの重複排除を行い、重複排除後にデータ圧縮を行って圧縮データを生成し、圧縮データをストレージ装置２０の第２のボリュームに格納する。
【００１４】
また、制御部１ａは、スナップショットを２世代以上生成した場合、所定世代より以前の世代の複数のスナップショットの第２のボリュームを選択する。さらに、制御部１ａは、選択した第２のボリュームに存在する圧縮データのうち、該第２のボリュームの論理アドレスから参照される、重複排除の結果として生成される参照数にもとづいて、特定データを検出する。
【００１５】
そして、制御部１ａは、特定データが所定閾値以上ある場合、特定データを収集して解凍して結合し、結合後に再圧縮を行って再圧縮データを生成する。記憶部１ｂは、解凍後のデータの一時記憶、またはストレージ制御装置１の全体制御に関わる制御情報等を記憶する。
【００１６】
図１に示す例を用いて動作について説明する。
〔ステップＳ１〕制御部１ａは、ストレージ装置２０のコピー元ボリュームＶ０（第１のボリューム）のスナップショットを生成する。
【００１７】
〔ステップＳ２〕制御部１ａは、コピー元ボリュームＶ０に更新があり更新前のデータが重複排除可能な場合、更新前のデータの重複排除を行う。そして、制御部１ａは、重複排除後にデータ圧縮を行って圧縮データを生成し、圧縮データをストレージ装置２０のコピー先ボリュームＶ１、・・・、Ｖｎ（第２のボリューム）に格納する。
【００１８】
図１の例では、ｎ世代のスナップショットが生成されているので、ｎ世代それぞれのコピー先ボリュームＶ１、・・・、Ｖｎが生成されている。また、コピー先ボリュームＶ１には圧縮データｄ１、ｄ２が格納され、コピー先ボリュームＶ２には圧縮データｄ３、ｄ４、ｄ５が格納されている。さらに、コピー先ボリュームＶ３には圧縮データｄ６、ｄ７が格納され、コピー先ボリュームＶｎには圧縮データｄａ、ｄｂが格納されている。
【００１９】
〔ステップＳ３〕制御部１ａは、ｎ世代生成したスナップショットに対して、所定世代より以前の旧世代の複数のスナップショットのコピー先ボリュームを選択する。図１の例では、所定世代を４世代とした場合、４世代より以前の３世代目、２世代目、１世代目それぞれのコピー先ボリュームＶ１、Ｖ２、Ｖ３が選択される。
【００２０】
〔ステップＳ４〕制御部１ａは、選択したコピー先ボリュームＶ１、Ｖ２、Ｖ３に存在する圧縮データｄ１、・・・、ｄ７のうち、コピー先ボリュームＶ１、Ｖ２、Ｖ３の論理アドレスから参照される参照数にもとづいて特定データを検出する。
【００２１】
図１の例では、コピー先ボリュームＶ１内の圧縮データｄ１、コピー先ボリュームＶ２内の圧縮データｄ３、コピー先ボリュームＶ３内の圧縮データｄ６が、特定データとして検出されている。なお、特定データの検出の詳細については後述する。
【００２２】
〔ステップＳ５〕制御部１ａは、検出した特定データが所定閾値以上あるか否かを判別し、所定閾値以上ある場合、特定データを収集して解凍・結合する。図１の例では、特定データｄ１、ｄ３、ｄ６の３つは所定閾値（所定数）以上あるとする。したがって、制御部１ａは、特定データｄ１、ｄ３、ｄ６を収集し、収集した特定データｄ１、ｄ３、ｄ６を解凍して結合する。
【００２３】
〔ステップＳ６〕制御部１ａは、結合後のデータの再圧縮を行って単一の再圧縮データＤ１０を生成する。なお、再圧縮データＤ１０は、例えば、ストレージ装置２０内に格納される。
【００２４】
このように、ストレージ制御装置１は、所定世代より以前の旧世代の複数のスナップショットの各コピー先ボリュームの論理アドレスから参照される参照数にもとづいて特定データを検出し、特定データが所定閾値以上ある場合、該特定データを収集して解凍・結合し再圧縮を行う。これにより、ストレージ制御装置１は、圧縮率を上げることができ、スナップショットの世代数が増加した場合でもストレージ消費容量の節約を図ることが可能になる。
【００２５】
［第２の実施の形態］
次に第２の実施の形態について説明する。まず、システム構成について説明する。図２はストレージシステムの構成の一例を示す図である。ストレージシステム１−１は、サーバ１０−１、１０−２、ストレージ装置２０およびホスト装置３−１、３−２を備え、冗長構成が組まれている。また、ストレージ装置２０には、記憶装置２−１、・・・、２−ｎが含まれる。
【００２６】
ホスト装置３−１は、サーバ１０−１、１０−２に接続し、ホスト装置３−２は、サーバ１０−１、１０−２に接続する。サーバ１０−１、１０−２は、ネットワーク４を介してストレージ装置２０に接続する。なお、サーバ１０−１、１０−２は、ネットワーク４を介さずにコネクタ等の機器を介してストレージ装置２０に直接接続してもよい。
【００２７】
サーバ１０−１、１０−２は、図１のストレージ制御装置１の機能を有し、ストレージ装置２０内の記憶装置２−１、・・・、２−ｎを制御対象にして、データのＩＯ制御を行う。
【００２８】
すなわち、サーバ１０−１、１０−２は、ホスト装置３−１、３−２からのデータ読み出し（Read IO）およびデータ書き込み（Write IO）の要求にもとづいて、記憶装置２−１、・・・、２−ｎに対してＩＯ制御を行う。
【００２９】
記憶装置２−１、・・・、２−ｎは、サーバ１０−１、１０−２の双方に接続して、サーバ１０−１、１０−２間で共有される。また、記憶装置２−１、・・・、２−ｎは、ＨＤＤまたはＳＳＤであり、ＲＡＩＤ（Redundant Array of Inexpensive Disks）構造によってディスクアレイ化されて耐障害性および可用性の確保が図られている。
【００３０】
なお、以降の説明では、サーバ１０−１、１０−２を総称する場合はサーバ１０と表記し、ホスト装置３−１、３−２を総称する場合はホスト装置３と表記する。また、記憶装置２−１、・・・、２−ｎを総称する場合は記憶装置２と表記する。
【００３１】
＜ハードウェア構成＞
図３はサーバのハードウェア構成の一例を示す図である。サーバ１０は、プロセッサ１００によって装置全体が制御されている。すなわち、プロセッサ１００は、サーバ１０の制御部として機能する。
【００３２】
プロセッサ１００には、バス１０３を介してメモリ１０１と複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３３】
メモリ１０１は、サーバ１０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種メッセージが格納される。
【００３４】
また、メモリ１０１は、サーバ１０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種メッセージが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００３５】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、プロセッサ１００からの命令にしたがってサーバ１０の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００３６】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとして機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたメッセージの読み取りを行う光学ドライブ装置を接続することができる。
【００３７】
光ディスクは、光の反射によって読み取り可能なようにメッセージが記録された可搬型の記録媒体である。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００３８】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのメッセージの書き込み、またはメモリカードからのメッセージの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００３９】
ネットワークインタフェース１０４は、図２のネットワーク４を介してストレージ装置２０とのインタフェース制御を行い、図１のインタフェース部１ｃの機能を有する。この場合、ネットワークインタフェース１０４は、例えば、ＰＣＩｅ（Peripheral Component Interconnect Express）プロトコルにしたがって、データをドライブ転送するＰＣＩｅＳＷ（Switch）の機能を有し、プロセッサ１００とストレージ装置２０との間でデータ転送を行う。
【００４０】
また、ネットワークインタフェース１０４は、図２のホスト装置３とのインタフェース制御を行う。この場合、ネットワークインタフェース１０４は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等の機能を有する。ネットワークインタフェース１０４で受信された信号やメッセージ等は、プロセッサ１００に出力される。
【００４１】
以上のようなハードウェア構成によって、サーバ１０の処理機能を実現することができる。例えば、サーバ１０は、プロセッサ１００が読み取り可能な記録媒体に記録されたプログラムを実行することで、本発明の制御を行うことができる。
【００４２】
サーバ１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ１０に実行させるプログラムを補助記憶装置に格納しておくことができる。
【００４３】
プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４４】
＜機能ブロック＞
図４はサーバの機能ブロックの一例を示す図である。サーバ１０は、制御部１０ａとメモリ１０ｂを備える。制御部１０ａは、図１の制御部１ａに対応し、メモリ１０ｂは、図１の記憶部１ｂに対応する。
【００４５】
制御部１０ａは、スナップショット生成部１１、重複排除処理部１２、圧縮データ生成部１３、旧世代スナップショット選択部１４、特定データ検出部１５、解凍・結合部１６および再圧縮処理部１７を含む。
【００４６】
スナップショット生成部１１は、ストレージ装置２０のコピー元ボリュームのスナップショットを生成する。重複排除処理部１２は、コピー元ボリュームに更新があり更新前のデータが重複排除可能な場合、更新前のデータの重複排除を行う。
【００４７】
圧縮データ生成部１３は、重複排除後にデータ圧縮を行って圧縮データを生成し、圧縮データをストレージ装置２０のコピー先ボリュームに格納する。旧世代スナップショット選択部１４は、多世代に渡って生成されたスナップショットに対し、所定世代より以前の旧世代の複数のスナップショットのコピー先ボリュームを選択する。
【００４８】
特定データ検出部１５は、選択されたコピー先ボリュームに存在する圧縮データのうち、コピー先ボリュームの論理アドレスから参照される参照数にもとづいて、特定データを検出する。解凍・結合部１６は、特定データが所定数以上ある場合、それらの特定データを収集して解凍して結合する。再圧縮処理部１７は、結合後に再圧縮を行って再圧縮データを生成する。
【００４９】
なお、制御部１０ａは、図３に示したプロセッサ１００によって実現される。また、メモリ１０ｂは、図３に示したメモリ１０１によって実現される。
＜重複排除の動作＞
図５は重複排除の動作の一例を説明するための図である。
【００５０】
〔ステップＳ１１〕制御部１０ａは、ホスト装置３から送信されたライト要求のデータを受信すると、データを固定長のデータａ、ｂ、ｃ、ｄに分割する。
〔ステップＳ１２〕制御部１０ａは、データａ、ｂ、ｃ、ｄに対するフィンガープリント（fingerprint）を生成する。フィンガープリントは、例えば、データから算出されるハッシュ値であり、ハッシュ値の照合によってデータの同一性が認識される。図５の例では、データａ、ｂ、ｃ、ｄそれぞれに対して、フィンガープリントｆａ、ｆｂ、ｆｃ、ｆｄが生成されている。
【００５１】
〔ステップＳ１３〕制御部１０ａは、フィンガープリントプール（fingerprint pool）Ｐｆに格納されるフィンガープリント（以下、設定フィンガープリントと呼ぶ場合がある）の中から、フィンガープリントｆａ、ｆｂ、ｆｃ、ｆｄを検索し、一致するか否かを比較する。なお、フィンガープリントプールＰｆは、例えば、図４に示したメモリ１０ｂに格納されている。
【００５２】
図５の例では、設定フィンガープリントに対し、フィンガープリントｆａ、ｆｄは一致（ＨＩＴ）し、フィンガープリントｆｂ、ｆｃは不一致（ＭＩＳＳ）になっている。
〔ステップＳ１４〕制御部１０ａは、設定フィンガープリントに一致するフィンガープリントを有するデータについては、記憶装置２内のボリュームＶ１１には書き込まず、該データのマッピングデータを記憶装置２内のボリュームＶ１２に書き込んで、マッピングデータのみを更新する。
【００５３】
なお、ボリュームＶ１１は、データ（圧縮データ）格納用のボリュームであり、ボリュームＶ１２は、マッピングデータ格納用のボリュームである。また、マッピングデータは、重複排除対象のボリュームの論理ブロックアドレス（ＬＢＡ：Logical Block Address）がどのデータをポイントしているかを管理するデータである。
【００５４】
ここで図５の例では、フィンガープリントｆａ、ｆｄは、フィンガープリントプールＰｆ内の設定フィンガープリントに一致している。よって、フィンガープリントｆａ、ｆｄそれぞれを有するデータａ、ｄは、ボリュームＶ１１に書き込まれず重複排除され、データａ、ｄそれぞれのマッピングデータがボリュームＶ１２に書き込まれて、マッピングデータのみが更新される。
【００５５】
〔ステップＳ１５〕制御部１０ａは、設定フィンガープリントに一致しないフィンガープリントを有するデータは、圧縮を行った上でボリュームＶ１１に書き込み、さらに該データのマッピングデータをボリュームＶ１２に書き込んで、マッピングデータを更新する。
【００５６】
図５の例では、フィンガープリントｆｂ、ｆｃは、フィンガープリントプールＰｆ内の設定フィンガープリントに一致しない。よって、フィンガープリントｆｂ、ｆｃそれぞれを有するデータｂ、ｃはボリュームＶ１１に圧縮された上で書き込まれ、かつデータｂ、ｃそれぞれのマッピングデータがボリュームＶ１２に書き込まれて、マッピングデータが更新される。
【００５７】
なお、上記では、マッピングデータおよび圧縮データを異なるボリュームに保存するように図示したが、マッピングデータと圧縮データは同一ボリュームに保存されてもよい。また、ボリュームは単一でもよいし、複数のボリュームに分割されていてもよい。さらに、上記ではホスト装置３からのデータライトにおける重複排除を示したが、サーバ１０内のデータコピー、またはサーバ間のデータコピーにおいても同様の重複排除が行われる。
【００５８】
＜スナップショットの生成およびスナップショットの世代管理＞
スナップショットの生成時、記憶装置２上に管理領域が確保される。この管理領域には、コピー元／コピー先ボリュームのデータの位置情報等を含むメタデータが記録される。
【００５９】
また、スナップショットの生成後、コピー元ボリュームのデータに対して更新（追加、変更、削除）が生じた場合、更新前のデータが管理領域へ退避され、更新前後のデータのメタデータも管理領域に記録される。これにより、スナップショットが生成されたときのデータを読み取れるようにしておく。
【００６０】
すなわち、管理領域は、上述のコピー先ボリュームに該当するものであり、スナップショットの生成後、コピー元ボリュームのデータに更新が生じると、更新前のデータがコピー先ボリュームにコピーされることになる。
【００６１】
このように、コピー先ボリューム（管理領域）に蓄積された情報と、コピー元ボリュームのデータとを組み合わせることで、過去の特定時点におけるボリュームのデータをスナップショットとしてユーザに見せることができる。
【００６２】
一方、スナップショットは定期的に採取されてバックアップ等に利用されるため、複数の世代に渡ってスナップショットが生成・管理される。
図６はスナップショットの世代管理の一例を示す図である。制御部１０ａは、コピー元ボリュームＶ０から所定期間毎にスナップショットを生成し、生成したスナップショットを世代毎に管理する。図６の例では、ｎ世代に渡ってスナップショットを生成し、各世代のコピー先ボリュームＶ１、・・・、Ｖｎが管理されている。
【００６３】
スナップショットの生成実行から、次の世代のスナップショットの生成実行まで、コピー元ボリュームＶ０に対するデータ更新が発生するたびに、最新世代のスナップショットのコピー先ボリュームに対して更新前のデータのコピーが発生する。すなわち、コピー元ボリュームＶ０のデータに対して更新が発生した場合、更新前のデータがコピー先ボリュームへコピーされる。
【００６４】
また、このようなコピー処理において、コピー先ボリュームでは、図５に示したような重複排除および圧縮のプロセスが動作する。すなわち、コピー先ボリュームには、データ更新があったときの更新前のデータが保持されるが、その更新前のデータは、重複排除によって余剰データ（冗長データ）が排除され、さらに圧縮が施された圧縮データになってコピー先ボリュームに保持される。
【００６５】
なお、図６では、スナップショットのコピー先ボリュームがそれぞれ独立して圧縮データを保持しているかのように図示しているが、実際には、図５に示すように、圧縮データはボリュームＶ１１に格納されており、アクセスの際には、ボリュームＶ１２内のマッピングデータにしたがって圧縮データを読み出されることになる。
【００６６】
＜コピー先ボリューム内の圧縮データの参照数チェック＞
所定世代より以前の複数の旧世代のスナップショットのコピー先ボリュームにおいて、該コピー先ボリュームに格納される圧縮データに対して参照数のチェックが行われて、特定データが検出される。
【００６７】
図７は圧縮データの参照数のチェックから再圧縮までの動作を示すフローチャートである。
〔ステップＳ２０〕制御部１０ａは、所定世代より以前の世代のスナップショットが所定数以上存在する場合、コピー先ボリューム内のＬＢＡから圧縮データが参照される参照数のチェックを行う（参照数の具体例については図９で後述）。
【００６８】
〔ステップＳ２１〕制御部１０ａは、参照数が１であるか否かを判定する。参照数が１の場合、ステップＳ２２へ処理が進み、参照数が１でない場合、ステップＳ２３へ処理が進む。
【００６９】
〔ステップＳ２２〕制御部１０ａは、参照数が１である圧縮データ（特定データに該当）をコピー先ボリュームから読み出し、該圧縮データを解凍して、メモリ１０ｂに展開して保持する。
【００７０】
〔ステップＳ２３〕制御部１０ａは、すべての圧縮データの参照数のチェックが完了したか否かを判定する。すべての圧縮データの参照数のチェックが完了した場合はステップＳ２５へ処理が進み、未完了の場合、ステップＳ２４へ処理が進む。
【００７１】
なお、参照数のチェックは、制御部１０ａによって選択された複数の旧世代スナップショットのコピー先ボリュームすべてに対して実行される。
〔ステップＳ２４〕制御部１０ａは、次の圧縮データの参照数チェックを行う。ステップＳ２１の処理に戻る。
【００７２】
〔ステップＳ２５〕制御部１０ａは、すべての圧縮データの参照数をチェックした後、結合待ちキューにキューイングされる再圧縮データが存在するか否かを判定する。結合待ちキューにキューイングされる再圧縮データが存在する場合はステップＳ２６へ処理が進み、存在しない場合はステップＳ２７へ処理が進む。結合待ちキューは、例えば、メモリ１０ｂに含まれる。
【００７３】
〔ステップＳ２６〕制御部１０ａは、結合待ちキューにキューイングされる再圧縮データを解凍して、メモリ１０ｂに展開して保持する。なお、結合待ちキューのキューイングおよびキューイングされた再圧縮データの解凍処理については図１５で後述する。
【００７４】
〔ステップＳ２７〕制御部１０ａは、解凍されたデータが所定数以上になったか否かを判定する。所定数以上になった場合はステップＳ２８ａへ処理が進み、所定数未満の場合はステップＳ２９ａへ処理が進む。
【００７５】
〔ステップＳ２８ａ〕制御部１０ａは、解凍されたデータが所定数以上の場合、解凍されたデータ群を結合し、単一のデータとして再圧縮する。
〔ステップＳ２８ｂ〕制御部１０ａは、生成した再圧縮データを記憶装置２に書き込み、マッピングデータを更新する。
【００７６】
〔ステップＳ２８ｃ〕制御部１０ａは、再圧縮データ生成時の結合元データを記憶装置２から削除する。
〔ステップＳ２９ａ〕制御部１０ａは、解凍されたデータが所定数未満の場合、メモリ１０ｂ上に保持していた解凍後のデータを破棄する。
【００７７】
〔ステップＳ２９ｂ〕制御部１０ａは、結合待ちの再圧縮データを解凍した場合、結合待ちキューに再度キューイングする。
＜マッピングデータの構造および更新＞
図８はマッピングデータの構造および再圧縮に伴うマッピングデータの更新の一例を示す図である。マッピングデータは、テーブル構造を有する。
【００７８】
テーブルＴ１は、項目として、ボリュームのＬＢＡと、そのＬＢＡに対応するデータの識別情報（Identifier）とを有する。テーブルＴ２は、項目として、データの識別情報と、そのデータの格納されたアドレス（例えば、先頭アドレス）とデータサイズとの組である格納アドレス／サイズとを有する。
【００７９】
なお、サイズは、例えば、ブロックカウントを示し、１ブロックカウント＝５１２バイトである（例えば、サイズ０ｘ１０は、５１２×１０バイトとなる）。また、識別情報は、あるデータを他の異なるデータから区別するものであり、例えば、データのフィンガープリントを使用できる。
【００８０】
ここで、マッピングデータの指すデータが再圧縮される場合、マッピングデータが更新される。この場合、テーブルＴ２の格納アドレス／サイズに登録されていた情報が消去され、代わりにデータＩＤが格納される。テーブルＴ２ａは、データが再圧縮されてマッピングデータが更新されたときの状態を示している。なお、データＩＤは、再圧縮データに付与されるユニークな値である。
【００８１】
図８の例において、ＬＢＡ＝０ｘ１００、０ｘ１２０にマッピングされているデータが、データＩＤ＝ＡＡＡである再圧縮データになったときの、マッピングデータの更新状態を示している。
【００８２】
マッピングデータのうち、ＬＢＡ＝０ｘ１００に対応する格納アドレス／サイズ＝０ｘ１００／０ｘ１０と、ＬＢＡ＝０ｘ１２０に対応する格納アドレス／サイズ＝０ｘ４００／０ｘ４とが、テーブルＴ２ａでは、再圧縮データのデータＩＤ＝ＡＡＡの値に更新されている。
【００８３】
＜参照数の例＞
図９は参照数の例を示す図である。図８で上述したように、テーブルＴ１では、ボリュームのＬＢＡ毎に識別情報が対応し、テーブルＴ２では、識別情報と格納アドレス／サイズとが対応している。よって、テーブルＴ１、Ｔ２から、ＬＢＡに対応する識別情報によって、その識別情報を持つデータがどこ（格納アドレス／サイズ）にあるかが特定される。
【００８４】
ここで、重複排除対象のボリュームのＬＢＡにおいて、ＬＢＡ＝０ｘ１００の識別情報は１００００であるので、識別情報＝１００００を持つデータは、０ｘ１００／０ｘ１０に格納されることが特定される。また、識別情報＝１００００を持つデータは、単一のＬＢＡ＝０ｘ１００から参照されるので、この場合の参照数は１となる。
【００８５】
また、ＬＢＡ＝０ｘ１２０の識別情報は１０００２であるので、識別情報＝１０００２を持つデータは、０ｘ４００／０ｘ４に格納されることが特定される。また、識別情報＝１０００２を持つデータは、単一のＬＢＡ＝０ｘ１２０から参照されるので、この場合の参照数は１となる。
【００８６】
さらに、ＬＢＡ＝０ｘ１３０の識別情報は１０００３であるので、識別情報＝１０００３を持つデータは、０ｘ９００／０ｘ１０に格納されることが特定される。また、識別情報＝１０００３を持つデータは、単一のＬＢＡ＝０ｘ１３０から参照されるので、この場合の参照数は１となる。
【００８７】
一方、ＬＢＡ＝０ｘ１１０の識別情報は１０００１であり、ＬＢＡ＝０ｘ１４０の識別情報も１０００１であり、識別情報＝１０００１を持つデータは、０ｘ２００／０ｘ８に格納されることが特定される。また、識別情報＝１０００１を持つデータは、２つのＬＢＡ＝０ｘ１１０、０ｘ１４０から参照されるので、この場合の参照数は２になる。
【００８８】
参照数は、上記のようにして求められる。また、制御部１０ａは、コピー先ボリュームのＬＢＡから圧縮データが参照される参照数にもとづいて、特定データを検出する。
すなわち、制御部１０ａは、コピー先ボリュームの単一のＬＢＡから圧縮データが参照されることにより参照数が１になる圧縮データを、特定データとして検出する。図９の例では、識別情報１００００、１０００２、１０００３を持つデータは参照数＝１なので、特定データとして検出される（特定データは、再圧縮対象のデータである）。
【００８９】
一方、制御部１０ａは、コピー先ボリュームの複数のＬＢＡから圧縮データが参照されることにより参照数が２以上になる圧縮データ（図９の例では参照数＝２の識別情報１０００１を持つデータ）は非特定データとみなして、コピー先ボリュームへの格納を維持することにする。
【００９０】
すなわち、制御部１０ａは、参照数が２以上のデータの再圧縮処理は行わない。これは、参照数が２以上の重複データは直近でアクセスされる可能性が高いデータを含むので、参照数が２以上の重複データを再圧縮データにして保持すると、保持してから近傍の時間で解凍処理を行う場合があり、アクセスペナルティが発生する可能性が高いからである。したがって、制御部１０ａは、再圧縮対象のデータは参照数が１のデータとする。
【００９１】
＜再圧縮データおよびメタデータのデータ構造＞
図１０は再圧縮データおよびメタデータのデータ構造を示す図である。再圧縮データＤ１０は、メタデータＤ１１と、複数のデータが結合されて再圧縮された結合・再圧縮データＤ１２とを備える。
【００９２】
メタデータＤ１１は、結合・再圧縮データＤ１２のデータＩＤと、結合・再圧縮データＤ１２内に含まれる個々のデータの識別情報の配列とを含む。この識別情報の配列は、データの結合順に整列されている。
【００９３】
特定のデータを結合・再圧縮データＤ１２から取り出す場合、制御部１０ａは、結合・再圧縮データＤ１２を解凍した後に、識別情報にもとづいて、解凍後のデータから特定する。識別情報の配列は結合順に整列されており、また解凍後のデータは固定長であることから、解凍後のデータの先頭アドレスおよび配列の番号から、その識別情報を持つデータを特定することができる。
【００９４】
一方、結合・再圧縮データＤ１２の生成に伴い、結合・再圧縮データＤ１２のメタデータＤ１１の一部として、結合・再圧縮データＤ１２のマッピングデータが生成・更新される。
【００９５】
結合・再圧縮データＤ１２のマッピングデータは、テーブルＴ３に示されるようなテーブル構造を有する。テーブルＴ３は、項目として、結合・再圧縮データＤ１２のデータＩＤと、結合・再圧縮データＤ１２の格納アドレスと、結合・再圧縮データＤ１２のサイズとを有する。
【００９６】
結合・再圧縮データＤ１２のマッピングデータは、サーバ１０内のメモリ１０ｂ、またはストレージ装置２０内の記憶装置２上に保持され、結合・再圧縮データＤ１２が生成・削除されるたびに更新される。
【００９７】
＜リード要求受付時の動作＞
図１１はリード要求受付時の動作を示すフローチャートである。リード要求は、例えば、ホスト装置３から発行される場合や、カスケードコピーのコピー元から発行される場合等がある。
【００９８】
〔ステップＳ３１〕制御部１０ａは、リード要求を受け付けると、リード対象のボリュームのマッピングデータを参照し、マッピングデータが指すデータのアドレスを検索する。
【００９９】
〔ステップＳ３２〕制御部１０ａは、対象データ（リード対象のデータ）が再圧縮データに含まれるか否かを判定する。対象データが再圧縮データに含まれない場合、ステップＳ３３へ処理が進む。対象データが再圧縮データに含まれる場合、ステップＳ３４へ処理が進む。
【０１００】
なお、データが再圧縮データに含まれるか否かは、図８に示した、マッピングデータの格納アドレス／サイズに記録される値が、データＩＤになっているか否かで判定される。
〔ステップＳ３３〕制御部１０ａは、対象データが再圧縮データに含まれない場合、対象データを読み出して解凍する。ステップＳ３７の処理へ進む。
【０１０１】
〔ステップＳ３４〕制御部１０ａは、対象データが再圧縮データに含まれる場合、対象データを含む再圧縮データがメモリ１０ｂ上に展開されているか否かを判定する。再圧縮データがメモリ展開されている場合、ステップＳ３５へ処理が進み、メモリ展開されていない場合、ステップＳ３６へ処理が進む。
【０１０２】
なお、再圧縮データが記憶装置２から読み出されて解凍された場合、所定時間の間、メモリ１０ｂ上に展開される。このためステップＳ３４のような、再圧縮データがメモリ展開しているか否かのチェックが行われる。
【０１０３】
〔ステップＳ３５〕制御部１０ａは、メモリ展開されている再圧縮データから対象データをコピーする。ステップＳ３７の処理へ進む。
〔ステップＳ３６〕制御部１０ａは、対象データを含む再圧縮データがメモリ展開されていない場合、再圧縮データのマッピングデータにもとづいて、記憶装置２上から対象データを読み出して解凍する。
【０１０４】
〔ステップＳ３７〕制御部１０ａは、リード要求元に、対象データを転送して、応答を返す。
＜記憶装置２から再圧縮データを読み出した後の動作＞
図１２は記憶装置からの再圧縮データの読み出し後の動作を示すフローチャートである。再圧縮データを記憶装置２から読み出し、要求元への応答を返した後の動作を示している。
【０１０５】
なお、要求元に応答を返すために再圧縮データは解凍されており、解凍後のデータはメモリ１０ｂ上に存在している。また、一度アクセスされたデータは近傍の時間に再度アクセスされる可能性があるため、解凍後のデータは、メモリ１０ｂ上に所定時間残存される。
【０１０６】
〔ステップＳ４１〕制御部１０ａは、メモリ展開されたデータを監視する。
〔ステップＳ４２〕制御部１０ａは、所定時間内に再圧縮データに含まれるデータにアクセスがあったか否かを判定する。アクセスがあった場合、ステップＳ４３へ処理が進み、アクセスがない場合、ステップＳ４４へ処理が進む。
【０１０７】
〔ステップＳ４３〕制御部１０ａは、所定時間内にアクセスがあった場合、引き続きメモリ１０ｂにデータを残存させ、ステップＳ４２の処理に戻る（所定時間後に再びアクセスがあるか否かがチェックされる）。
【０１０８】
〔ステップＳ４４〕制御部１０ａは、所定時間内にアクセスがなかった場合、メモリ１０ｂ上に展開された解凍後の再圧縮データを破棄する。なお、再圧縮データ自体は記憶装置２上に存在するため、再圧縮データのマッピングデータの更新は不要である。
【０１０９】
＜ライト要求受付時の動作＞
図１３はライト要求受付時の動作を示すフローチャートである。ライト要求はホスト装置３から発行されたものでもよいし、異なるコピーセッションからのコピー先ライトの要求によるものでもよい。
【０１１０】
〔ステップＳ５１〕制御部１０ａは、ライト要求を受け付けると、要求元から転送されたデータを固定長に分割し、分割データそれぞれに対してフィンガープリントを算出する。
【０１１１】
〔ステップＳ５２〕制御部１０ａは、算出したフィンガープリントがサーバ１０内のフィンガープリントプールＰｆに存在するか否かを検索する。算出したフィンガープリントがフィンガープリントプールＰｆに存在する場合はステップＳ５３へ処理が進み、存在しない場合はステップＳ５４へ処理が進む。
【０１１２】
〔ステップＳ５３〕制御部１０ａは、同一のフィンガープリントが指すデータが再圧縮データに含まれるか否かを判定する。同一のフィンガープリントが指すデータが再圧縮データに含まれる場合はステップＳ５４の処理へ進み、含まれない場合はステップＳ５５の処理へ進む。
【０１１３】
なお、フィンガープリントが指すデータが再圧縮データに含まれるか否かは、図８に示したテーブルＴ２を参照して判定する。データの識別情報としてフィンガープリントが使用されている場合、フィンガープリントをキーにして検索することができる。
【０１１４】
または、データの識別情報にフィンガープリントが使用されていない場合、フィンガープリントと識別情報とが関連付けられているものとし、フィンガープリントに関連付けられた識別情報をキーにして検索を行う。
【０１１５】
〔ステップＳ５４〕制御部１０ａは、対象データ（ライト対象のデータ）の重複排除は行わず、新規データとして処理をする。
なお、新規にライトされたデータは、近傍の時間内にアクセスされる可能性が高いので、再圧縮データ内に含まれるデータを重複排除対象のデータとして処理すると、その後のアクセスに対する処理コストが大きくなる。
【０１１６】
このため、算出したフィンガープリントがフィンガープリントプールＰｆに存在しないデータ、および算出したフィンガープリントがフィンガープリントプールＰｆに存在し、かつ再圧縮データに含まれるデータに関しては、対象データの重複排除は行わず、新規データとして処理される（非重複データとしての処理が行われる）。
【０１１７】
〔ステップＳ５５〕制御部１０ａは、算出したフィンガープリントがフィンガープリントプールＰｆに存在し、かつ再圧縮データに含まれないデータに関しては、対象データの重複排除を行う（重複データとして処理が行われる）。
【０１１８】
＜再圧縮データのうち、参照数が０のデータが所定数以上ある場合の動作＞
図１４は再圧縮データのうち、参照数が０のデータが所定数以上の場合の動作を示すフローチャートである。なお、コピー先ボリュームのＬＢＡに対する上書きや、データが属しているスナップショットの削除等が生じた場合に参照数は０になりうる。
【０１１９】
〔ステップＳ６１〕制御部１０ａは、再圧縮データのうち、参照数が０のデータが所定数以上となるか否かの判定を行う。参照数が０のデータが所定数以上ない場合はステップＳ６１の監視処理を継続し、参照数が０のデータが所定数以上ある場合はステップＳ６２の処理へ進む。なお、参照数チェックは、例えば、定期タイマを用いて周期的な監視が行われる。
【０１２０】
〔ステップＳ６２〕制御部１０ａは、再圧縮データ内に含まれるデータのうち、参照数が０のデータが所定数以上となった場合、再圧縮データを結合待ちキューにキューイングする。
【０１２１】
すなわち、参照数が０になった再圧縮データは即時に解凍するのでなく、所定数以上になるまでキューイングが行われる。なお、このときのキューイングは、実際にデータをキューイングするわけではなく、再圧縮データのデータＩＤのみをキューイングする。
【０１２２】
＜結合待ちキューをデキューした場合の動作＞
図１５は結合待ちキューをデキューした場合の動作を示すフローチャートである。
〔ステップＳ７０〕制御部１０ａは、結合待ちキューにキューイングされているデータＩＤをデキューする。
【０１２３】
〔ステップＳ７１〕制御部１０ａは、図１０に示したマッピングデータのテーブルＴ３のデータＩＤにもとづいて、再圧縮データを記憶装置２から読み出す。
〔ステップＳ７２〕制御部１０ａは、読み出した再圧縮データを解凍する。
【０１２４】
〔ステップＳ７３〕制御部１０ａは、変更が生じた場合の対応として、解凍後のデータの参照数を判定する。参照数が０の場合はステップＳ７４へ処理が進み、参照数が０でない場合はステップＳ７５へ処理が進む。
【０１２５】
〔ステップＳ７４〕制御部１０ａは、解凍後のデータのうち、参照数が０であるデータは削除する。ステップＳ７６へ処理が進む。
〔ステップＳ７５〕制御部１０ａは、解凍後のデータのうち、参照数が０でないデータについては、結合対象のデータとし、解凍したデータ数をインクリメントする。この解凍したデータ数が所定数（図７のステップＳ２７に記載の所定数と同等）以上になるか否かで再圧縮が行われる。
【０１２６】
〔ステップＳ７６〕制御部１０ａは、解凍後のすべてのデータの参照数を判定したか否かを判断する。すべてのデータの参照数を判定した場合は終了し、未判定のデータがある場合はステップＳ７７へ処理が進む。
【０１２７】
〔ステップＳ７７〕制御部１０ａは、次のデータの参照数の判定を行う。ステップＳ７３へ処理が戻る。
以上説明したように、本発明によれば、所定世代数が経過した旧スナップショットについては、直近にアクセスがあったデータ、および重複排除論理により他のＬＢＡからポイントされているデータを除いて、データを収集し、それぞれのデータを解凍後、１つのデータとして再圧縮を実行する。
【０１２８】
これにより、圧縮の単位を大きくできるので、より高い圧縮率が期待でき、より大きなストレージ容量の削減を実現することが可能になる。また、スナップショットが世代を重ねても、途中世代の削除や、スナップショットの生成間隔を延ばす等の処理が不要となり、より多くの世代のスナップショットを生成することも可能になる。
【０１２９】
上記で説明した本発明のストレージ制御装置１およびサーバ１０の処理機能は、コンピュータによって実現することができる。この場合、ストレージ制御装置１およびサーバ１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１３０】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１３１】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１３３】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１３４】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１３５】
１  ストレージ制御装置
１ａ  制御部
１ｂ  記憶部
１ｃ  インタフェース部
２０  ストレージ装置
Ｖ０  コピー元ボリューム（第１のボリューム）
Ｖ１、・・・、Ｖｎ  スナップショットのコピー先ボリューム（第２のボリューム）
ｄ１、・・・、ｄ７、ｄａ、ｄｂ  圧縮データ
ｄ１、ｄ３、ｄ６  特定データ
Ｄ１０  再圧縮データ
【図１】
2019101989.tif 000003
【図２】
2019101989.tif 000004
【図３】
2019101989.tif 000005
【図４】
2019101989.tif 000006
【図５】
2019101989.tif 000007
【図６】
2019101989.tif 000008
【図７】
2019101989.tif 000009
【図８】
2019101989.tif 000010
【図９】
2019101989.tif 000011
【図１０】
2019101989.tif 000012
【図１１】
2019101989.tif 000013
【図１２】
2019101989.tif 000014
【図１３】
2019101989.tif 000015
【図１４】
2019101989.tif 000016
【図１５】
2019101989.tif 000017