(57)【要約】【課題】コピー先ボリュームでデータの動的再配置を行なうことでデータの連続性を維持し、シーケンシャルアクセス性能の大幅な向上を実現する。【解決手段】コピー制御部２４は、上位装置２から送信されるデータが記憶される第1の記憶ボリューム１３ａ内の更新対象データの更新前データを、第２の記憶ボリューム１３ｂにコピーする。そして、コピー制御部２４は、第1の記憶ボリューム１３ａにおける更新箇所と前記更新前データの第２の記憶ボリューム１３ｂにおける記憶箇所とを管理する管理テーブル３１１〜３１３と、管理テーブル３１１〜３１３に基づいて第１の記憶ボリューム１３ａの所定範囲のデータが第２の記憶ボリューム１３ｂに対してコピーされたことを確認する確認部３２と、その確認結果に基づいて第２の記憶ボリューム１３ｂ内のデータの再配置処理を行なう再配置処理部３３とをそなえて構成される。【選択図】図１
2010009290.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信されるデータが記憶される第１の記憶ボリュームと、
前記第１の記憶ボリュームにおける更新箇所の更新前のデータがコピーされる第２の記憶ボリュームと、
前記コピー処理を制御する制御部とを備えたストレージシステムであって、
前記制御部は、
前記第１の記憶ボリュームにおける更新箇所と、前記更新前のデータの前記第２の記憶ボリュームにおける記憶箇所とを管理する管理テーブルと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認部と、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置処理を行なう再配置処理部とを備えたことを特徴とするストレージシステム。
【請求項２】
前記第２の記憶ボリュームの使用状態に基づいて前記第２の記憶ボリュームに対して割り当てられる予備ボリュームをさらに備え、
前記再配置処理部は、前記予備ボリュームを用いてデータの再配置処理を行なうことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記再配置処理部は、前記再配置処理された予備ボリュームのデータを前記第２の記憶ボリュームに割り当てることを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記再配置処理部は、前記第１の記憶ボリュームの所定の範囲のデータコピーが未完了な領域に対応する前記第２の記憶ボリューム内のデータに対して、前記データが所定の順序となるように再配置処理を行なうことを特徴とする請求項２または請求項３に記載のストレージシステム。
【請求項５】
前記所定の範囲は、前記予備ボリュームの割り当て単位であることを特徴とする請求項２〜請求項４のいずれか一項に記載のストレージシステム。
【請求項６】
上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーするコピー制御方法であって、
前記第１の記憶ボリュームにおける更新対象データと、前記更新対象データの更新前データの前記第２の記憶ボリュームにおける記憶箇所とを管理テーブルを用いて管理する管理ステップと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認ステップと、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置を行なう再配置処理ステップとを備えたことを特徴とするコピー制御方法。
【請求項７】
上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーするコピー制御部であって、
前記第１の記憶ボリュームにおける更新対象データと、前記更新対象データの更新前データの前記第２の記憶ボリュームにおける記憶箇所とを管理する管理テーブルと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認部と、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置処理を行なう再配置処理部とを備えたことを特徴とするコピー制御部。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージにおけるデータのバックアップ技術に関し、特に、コピー元ボリュームにおいて更新対象となったデータ領域（更新箇所）の更新前データをコピー先ボリュームにコピーするバックアップ技術に関する。
【背景技術】
【０００２】
一般に、データを記憶するストレージシステムでは、データの記録・再生に係る信頼性を向上させるために、複数のハードディスク（以下、ＨＤＤと表記する）を接続してディスクアレイシステムが構成され、データが管理されている。また、このようなストレージシステムでは、ＨＤＤに記録されたデータを保護するために、ＨＤＤに記録されたデータが他の記憶装置（例えば、磁気テープや他のＨＤＤなど）に記憶され、データのバックアップが行なわれている。
【０００３】
このバックアップに際しては、例えばＯＰＣ（One Point Copy）と呼ばれるアドバンスト・コピー機能が用いられる。通常、アドバンスト・コピーでは、コピー元となるＨＤＤにおけるデータ容量と同容量の記憶容量を有するコピー先のＨＤＤが準備される。そして、コピー元ＨＤＤにおけるデータが全て、コピー先ＨＤＤに転送され、コピー先ＨＤＤに記録されたデータを利用してバックアップが行なわれている。しかし、上述したアドバンスト・コピー機能をサポートするためには、コピー元のデータ容量と同容量の記憶容量を有するコピー先ＨＤＤが必要となるので、多大なコストがかかる。
【０００４】
そこで、コピー元ＨＤＤのデータ容量よりも容量の小さいコピー先ＨＤＤを用い、所定時刻におけるコピー元ＨＤＤのデータをバックアップするコピー機能（スナップショット作成機能）も提案されている（例えば下記特許文献３，４参照）。このスナップショット作成機能では、コピー元ＨＤＤの全てのデータをコピー先ＨＤＤにコピーするのではなく、上記所定時刻以降に更新要求の対象となったデータ領域（例えば8kbyte単位）の、更新前データがコピー先ＨＤＤにコピーされる。これにより、上記所定時刻におけるスナップショットが作成され、上記所定時刻におけるデータのバックアップが行なわれる。コピー元ＨＤＤにおけるデータは必ずしも全て更新されるわけではなく、更新対象となるデータは限られている。従って、上述のように更新対象となったデータ領域の更新前データのみをコピー先ＨＤＤにコピーすることにより、コピー元ＨＤＤのデータ容量よりも容量の小さいコピー先ＨＤＤを用いたバックアップが可能になる。
【０００５】
このとき、例えば図１１や図１２に示すように、コピー元ボリューム（ＨＤＤ）において更新対象となったデータ領域の更新前データは、更新要求順に、コピー先ボリューム（ＨＤＤ）へ転送され、上詰めで、つまり物理アドレス0の領域から順に格納される。更新要求としての書込み要求がWrite I/O (1)〜(4)の順で発行された場合、まず、Write I/O (1)によって更新される前の、コピー元ボリュームの論理アドレスＡ２におけるデータ（Old Data）がコピー先ボリュームの物理アドレス0から格納される。ついで、Write I/O (2)によって更新される前の、論理アドレスＡ４におけるデータが“Ａ２のOld Data”の次に格納される。同様に、Write I/O (3)によって更新される前の、論理アドレスＡ３におけるデータが“Ａ４のOld Data”の次に格納され、Write I/O (4)によって更新される前の、論理アドレスＡ１におけるデータが“Ａ３のOld Data”の次に格納される。
【０００６】
このようにしてコピー先ボリュームにコピーされたデータは、そのコピー先ボリュームから磁気テープなどの外部記憶装置に記録されてバックアップされることになる。また、ホストコンピュータ等がコピー先ボリュームに対し読出し要求を行なった際に、その読出し要求対象のデータがコピー先ボリュームに存在しない場合、該当データは未更新でコピー元ボリュームに存在するので、コピー元ボリュームから該当データが読み出される。
【０００７】
なお、下記特許文献１，２では、ディスク装置上におけるファイルデータを再配置する機能、つまり断片化されたファイルデータを連続した領域に再配置するデフラグ機能に係る技術が開示されている。
【特許文献１】特開平７−７８０９７号公報
【特許文献２】特開昭６３−４４７５号公報
【特許文献３】特開２００７−１７２０８２号公報
【特許文献４】特開２００７−３３４７０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
図１１や図１２に示すようにコピー元ボリュームからコピー先ボリュームへのデータ割当てを行なった場合、コピー元ボリュームへの書込み要求（Write I/O）がランダムアクセスで行なわれても、コピー先ボリュームで物理容量を無駄なく使用できる。しかしながら、コピー先ボリュームにおけるバックアップデータを運用ボリュームへリストアする際や磁気テープ等へ格納する際の、読出し要求（Read I/O）に対するシーケンシャルアクセス性能が著しく低下してしまう。
【０００９】
例えば図１２に示すように、コピー元ボリュームにおいて論理アドレスＡ１，Ａ２，Ａ３，Ａ４の順で物理領域として連続している４つのデータ領域は、Write I/O (1)〜(4)により、コピー先ボリュームではＡ２，Ａ４，Ａ３，Ａ１の順で格納される。つまり、コピー元ボリュームでは物理領域として連続する４つのデータ領域が、コピー先ボリュームでは物理領域として離散した状態で格納されてしまう。このため、コピー元ボリュームから論理アドレスＡ１〜Ａ４のデータ領域を順に読み出す際には、これらのデータ領域を先頭から順に読み出すだけでよいので、シーケンシャルアクセス性能は大きい。これに対し、コピー先ボリュームから論理アドレスＡ１〜Ａ４のデータ領域を順に読み出すためには、まず、４番目の物理アドレスにおけるＡ１のOld Dataを読み出す。ついで１番目の物理アドレスにおけるＡ２のOld Dataを読み出し、次に３番目の物理アドレスにおけるＡ３のOld Dataを読み出し、最後に２番目の物理アドレスにおけるＡ４のOld Dataを読み出すことになる。従って、シーケンシャルアクセス性能は著しく低下し、対象データの読出しに多大な時間を要することになる。
【００１０】
本発明の目的の一つは、コピー先ボリュームでデータの動的再配置を行なうことでデータの連続性を維持し、シーケンシャルアクセス性能の大幅な向上を実現することである。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【００１１】
本ストレージシステムは、上位装置から送信されるデータが記憶される第１の記憶ボリュームと、前記第１の記憶ボリュームにおける更新箇所の更新前のデータがコピーされる第２の記憶ボリュームと、前記コピー処理を制御する制御部とを有している。そして、前記制御部は、管理テーブル，確認部および再配置処理部を備えている。前記管理テーブルは、前記第１の記憶ボリュームにおける更新箇所と、前記更新前のデータの前記第２の記憶ボリュームにおける記憶箇所とを管理するものである。前記確認部は、前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認するものである。前記再配置処理部は、前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置処理を行なうものである。
【００１２】
また、本コピー制御方法は、上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーする方法であって、管理ステップ，確認ステップおよび再配置処理ステップを含んでいる。そして、前記管理ステップでは、前記第１の記憶ボリュームにおける更新対象データと、前記更新対象データの更新前データの前記第２の記憶ボリュームにおける記憶箇所とを管理テーブルを用いて管理する。前記確認ステップでは、前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する。前記際は位置処理ステップでは、前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置を行なう。
【００１３】
さらに、本コピー制御部は、上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーするものであって、前述した管理テーブル，確認部および再配置処理部を有している。
【発明の効果】
【００１４】
開示のストレージシステム，コピー制御方法およびコピー制御部によれば、第１の記憶ボリューム（コピー元ボリューム）から第２の記憶ボリューム（コピー先ボリューム）へコピーされた更新対象データ（更新箇所）が管理テーブルを用いて動的に再配置される。これによりデータの連続性が維持され、シーケンシャルアクセス性能が大幅に向上する。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。
〔１〕本実施形態の構成
〔１−１〕ストレージシステムの構成
図１（Ａ）は本発明の一実施形態としてのストレージシステムの構成を示すブロック図である。この図１（Ａ）に示すように、本実施形態のストレージシステム１は、ホストコンピュータ（上位装置；Host）２に接続され、ホストコンピュータ２からの各種要求（データ書込要求，データ更新要求，データ読出要求など）を受け、その要求に応じた処理を行なう。そして、ストレージシステム１は、上述したスナップショット作成機能を有し、４つのＣＡ１１，２組のＣＭ１２および４つのディスク（ＨＤＤ；Disk）１３を同一筐体内にそなえて構成されている。
【００１６】
各ＣＡ（Channel Adapter）１１は、ホストコンピュータ２とのインタフェース制御を行ない、このホストコンピュータ２との間でデータ通信を行なう。
各ＣＭ（Centralized Module）１２は、２つのＣＡ１１，１１および２つのディスク１３，１３に接続され、本ストレージシステム１における資源管理を行なう。そして、各ＣＭ１２は、ホストコンピュータ２や他のＣＭ１２からの要求に応じ、２つのディスク１３，１３に対する各種処理（データ書込処理，データ更新処理，データ読出処理，データコピー処理など）を行なう。また、２組のＣＭ１２は、バスなどによって相互に接続され、他のＣＭ１２に収容されたディスク１３に対するアクセスが可能に構成されている。
【００１７】
各ディスク１３は、ユーザデータや制御情報など格納・記憶する。本実施形態のストレージシステム１では、一方のＣＭ１２に収容される一のディスク１３を、ホストコンピュータ２から送信されるデータを記憶するコピー元ボリューム（第１の記憶ボリューム）１３ａとする。また、他方のＣＭ１２に収容される一のディスク１３を、コピー元ボリューム１３ａにおける更新箇所の更新前のデータがコピーされるコピー先ボリューム（第２の記憶ボリューム；ＳＤＶ(Snap Data Volume)）１３ｂとする。
【００１８】
ここで、コピー先ボリューム１３ｂのデータ容量は、コピー元ボリューム１３ａのデータ容量よりも小さい。例えば、コピー元ボリューム１３ａのデータ容量が１００Ｇｂである場合、コピー先ボリューム１３ｂのデータ容量を１０Ｇｂとする。そして、本実施形態のストレージシステム１でも、上述したスナップショット作成機能を用いることにより、コピー元ボリューム１３ａにおいて所定時刻以降に更新要求の対象となったデータ領域（更新箇所／更新対象データ）の、更新前データがコピー先ボリューム１３ｂに上詰めでコピーされる。更新対象のデータ領域は、例えば8kbyte単位とする。スナップショット作成機能は、ＣＭ１２におけるコピー制御部２４（後述）によって実現される。
【００１９】
また、本実施形態のストレージシステム１においては、コピー先ボリューム（ＳＤＶ）１３ｂの使用状態に基づいてコピー先ボリューム１３ｂに対して割り当てられるプール領域（予備ボリューム；仮想プール）１３ｃがそなえられている。このプール領域１３ｃは、後述するごとく、ＣＭ１２におけるコピー制御部２４（後述）によって、コピー先ボリューム（ＳＤＶ）１３ｂの使用状態に基づき、所定の割り当て単位（ＳＤＶ単位）毎にコピー先ボリューム１３ｂに対して割り当てられる。例えば、スナップショット作成時にコピー先ボリューム１３ｂの容量が足りなくなった場合、プール領域１３ｃが所定の割り当て単位で追加され、追加されたプール領域１３ｃがコピー先ボリューム１３ｂとして用いられる（例えば図８〜図１０参照）。
【００２０】
ここで、コピー制御部２４（後述）によって割り当てられる、プール領域１３ｃの割り当て量は、上述のごとく一定（所定単位）であってもよいし、コピー先ボリューム１３ｂの使用状態等に基づいて可変としてもよい。また、プール領域１３ｃは、コピー先ボリューム１３ｂを含むディスク１３にそなえられていてもよいし、コピー先ボリューム１３ｂを管理するＣＭ１２に収容される、他のディスク１３にそなえられていてもよい。
【００２１】
なお、コピー元ボリューム１３ａは、一のディスク１３の全てのデータ領域であってもよいし、一のディスク１３の一部のデータ領域であってもよい。同様に、コピー先ボリューム１３ｂも、一のディスク１３の全てのデータ領域であってもよいし、一のディスク１３の一部のデータ領域であってもよい。また、本実施形態において、第１の記憶ボリュームとしてのコピー元ボリューム１３ａと第２の記憶ボリュームとしてのコピー先ボリューム１３ｂとは、同一筐体内にそなえられているが、それぞれ異なる筐体にそなえられてもよい。
【００２２】
各ＣＭ１２は、ＣＰＵ２１，キャッシュメモリ２２，ＤＡ２３およびコピー制御部２４を有する。２つのＤＡ（Disk Adapter）２３，２３は、それぞれ当該ＣＭ１２に収容される２つのディスク１３，１３とのインタフェース制御を行ない、各ディスク１３との間でデータ通信を行なう。キャッシュメモリ（Chache）２２は、ユーザデータや制御データなどを格納するほか、ホストコンピュータ２から各ディスク１３へ書き込まれるデータや各ディスク１３からホストコンピュータ２や他のＣＭ１２へ読み出されるデータを一時的に格納する。ＣＰＵ（Central Processing Unit）２１は、キャッシュメモリ２２，ＤＡ２３および後述するコピー制御部２４を管理する。
【００２３】
〔１−２〕コピー制御部の構成
コピー制御部（Copy）２４は、コピー元ボリューム１３ａ内の更新対象データ（更新箇所）の更新前データをコピー先ボリューム１３ｂにコピーするコピー処理を制御する。このコピー制御部２４は、上述したスナップショット作成機能を果たすとともに、図１（Ｂ）に示すように、管理テーブル記憶部３１，確認部３２および再配置処理部３３を有する。なお、図１（Ｂ）はストレージシステム１におけるコピー制御部２４の機能構成を示すブロック図である。
【００２４】
管理テーブル記憶部３１は、コピー元ボリューム１３ａにおける更新対象データ（更新箇所）とその更新対象データの更新前データのコピー先ボリューム１３ｂにおける記憶箇所とを管理する管理テーブルなどを記憶する。本実施形態では、管理テーブルとして、ＳＤＶ管理テーブル３１１，ＬＢＡ（Logical Block Address）変換テーブル３１２および連続性管理テーブル３１３が記憶される。
【００２５】
ＳＤＶ管理テーブル３１１は、図２（Ａ）および図２（Ｂ）を参照しながら後述するごとく、スナップショット作成機能を実現すべくコピー先ボリューム１３ｂのデータ格納状態（使用済領域）を管理する。
【００２６】
ＬＢＡ変換テーブル３１２は、図３を参照しながら後述するごとく、コピー元ボリューム１３ａにおける更新対象データの論理アドレスとその更新対象データの更新前データのコピー先ボリューム１３ｂにおける物理アドレスとを対応付けて管理する。
【００２７】
連続性管理テーブル３１３は、図４を参照しながら後述するごとく、コピー元ボリューム１３ａの所定範囲の連続データが更新対象になったか否かや、その所定範囲の連続データが再配置されたか否か、再配置される場合の再配置先アドレスを管理する。
【００２８】
確認部３２は、前記管理テーブルに含まれる連続性管理テーブル３１３に基づいて、コピー元ボリューム１３ａの所定範囲の連続データがコピー先ボリューム１３ｂに対してコピーされたことを確認する。
【００２９】
再配置処理部３３は、確認部３２による確認結果に基づいて、コピー先ボリューム１３ｂ内のデータの再配置処理を行なう。この再配置処理は、具体的には図５〜図１０を参照しながら後述するごとく実行される。この再配置処理を簡単に説明すると、コピー元ボリューム１３ａの所定範囲の連続データがコピー先ボリューム１３ｂに対してコピーされると、再配置処理部３３は、まず再配置先を決定する。ついで、再配置処理部３３は、ＬＢＡ変換テーブル３１２に基づいて、コピー元ボリューム１３ａの所定範囲の連続データがコピー先ボリューム１３ｂのどこに格納されているかを検索する。そして、再配置処理部３３は、コピー先ボリューム１３ｂの該当データを、コピー元ボリューム１３ａのデータ順序と同じ順序（論理アドレス昇順）になるように、再配置先で並べ替え再配置する。
【００３０】
このとき、再配置処理部３３は、コピー先ボリューム１３ｂ内に未使用領域が存在すれば、その未使用領域を再配置先として用いてデータの再配置処理を行なうことができる。また、再配置処理部３３は、コピー先ボリューム１３ｂ内における未使用領域が少なくない、もしくは、存在しない場合、コピー先ボリューム１３ｂに対して割り当てられるプール領域１３ｃを再配置先として用いてデータの再配置処理を行なうことができる。なお、以下の説明では、プール領域１３ｃが再配置先として用いられるものとする。
【００３１】
また、再配置処理部３３は、割り当てられたプール領域１３ｃにおいて再配置処理されたデータ（後述するごとく論理アドレス順に並べ替えられたデータ）をコピー先ボリューム１３ｂに割り当てる。つまり、再配置処理部３３は、再配置処理に使用したプール領域１３ｃをそのままコピー先ボリューム１３ｂとして使用する。このとき、再配置処理部３３は、再配置後の所定単位のプール領域１３ｃを、再配置処理によって空になった領域（コピー先ボリューム１３ｂもしくはプール領域１３ｃ）と交代で割り当ててもよいし、単にコピー先ボリューム１３ｂに追加してもよい。
【００３２】
さらに、再配置処理部３３は、コピー元ボリューム１３ａの所定範囲のデータコピーが未完了な領域に対応する、コピー先ボリューム１３ｂ内のデータに対して、前記データが所定の順序となるように再配置処理を行なう。つまり、再配置処理部３３は、図７，図９および図１０を参照しながら後述するごとく、コピー先ボリューム１３ｂ内における歯抜け状態のデータ単位を、コピー元ボリューム１３ａのデータ順序に従った順序（論理アドレス昇順）になるように、再配置先で並べ替え再配置する。
【００３３】
なお、本実施形態において、前記所定範囲は、上述したプール領域１３ｃの割り当て単位（一定の値）と同じ単位で区切られたデータ領域の範囲である。
また、コピー制御部２４は、図１（Ａ）においてＣＰＵ２１やキャッシュメモリ２２と別ブロックで図示されている通りＣＰＵ２１やキャッシュメモリ２２と独立に構成されてもよいし、ＣＰＵ２１およびキャッシュメモリ２２によって構成することもできる。その場合、ＣＰＵ２１が、スナップショット作成機能や、確認部３２および再配置処理部３３としての機能を果たすとともに、キャッシュメモリ２２が、管理テーブル記憶部３１として機能する。
【００３４】
図１（Ａ）および図１（Ｂ）では、２つのコピー制御部２４，２４のうちコピー元側のものを符号２４ａで示し、コピー先側のものを符号２４ｂで示している。これらのコピー元コピー制御部２４ａおよびコピー先コピー制御部２４ｂは、いずれも、図１（Ｂ）に示すコピー制御部２４と同一に構成されていてもよい。また、コピー元コピー制御部２４ａおよびコピー先コピー制御部２４ｂのいずれか一方が、図１（Ｂ）に示したコピー制御部２４と同一の機能を有していてもよい。また、図１（Ｂ）に示したコピー制御部２４と同一の構成が、２つのコピー元コピー制御部２４ａおよびコピー先コピー制御部２４ｂにまたがってそなえられていてもよい。
【００３５】
〔１−３〕管理テーブル
ついで、図２〜図４を参照しながら、本実施形態で用いられるＳＤＶ管理テーブル３１１，ＬＢＡ変換テーブル３１２および連続性管理テーブル３１３について、より詳細に説明する。
【００３６】
〔１−３−１〕ＳＤＶ管理テーブル
まず、図２（Ａ）および図２（Ｂ）を参照しながら、ＳＤＶ管理テーブル３１１について説明する。ここで、図２（Ａ）はＳＤＶ１３ｂのデータ格納状態の一例を示す図、図２（Ｂ）は図２（Ａ）に示すＳＤＶ１３ｂの格納状態に応じたＳＤＶ管理テーブル３１１の内容を示す図である。
【００３７】
コピー先ボリューム（ＳＤＶ）１３ｂには、上述のごとく、上詰めで、つまり物理アドレス0の領域から順で、所定単位のデータ領域が格納される。このため、コピー制御部２４は、コピー先ボリューム１３ｂが現在どこまで使用されたかを使用済領域として管理する必要がある。この使用済領域の管理のためにＳＤＶ管理テーブル３１１が用いられる。本実施形態においては、上記所定単位のデータ領域を、例えば「オフセット」と呼ばれる１６ＬＢＡ（Logical Block Address）分のデータ領域として管理する。この場合、１ＬＢＡ＝５１２byteであるので、１６ＬＢＡ＝５１２*１６＝８kbyteとなり、ストレージシステム１の内部的には８kbyte単位で物理容量が管理されることになる。ただし、８kbyteはあくまで一例であって、管理単位は８kbyteに限定されるものではない。
【００３８】
そして、ＳＤＶ管理テーブル３１１には、図２（Ｂ）に示すように、コピー先ボリューム１３ｂにおいて現在どのオフセットまで使用されているかが記憶される。より具体的には、図２（Ａ）に示すように、コピー先ボリューム１３ｂのオフセット０（物理アドレス0-15）〜オフセット４（物理アドレス64-79）にデータが書き込まれこれらのオフセット０〜４が使用済である場合、図２（Ｂ）に示すように、ＳＤＢ管理テーブル３１１は「現在使用済オフセット」として“４”を保持する。このような状態で、コピー元ボリューム１３ａの未コピーデータ領域に対する更新要求が発生し、その未コピーデータ領域（Old Data）のコピー先ボリューム１３ｂへの格納が必要になると、コピー制御部２４は、ＳＤＶ管理テーブル３１１を参照し、コピー先ボリューム１３ｂの次のオフセット５に、当該未コピーデータ領域（Old Data）を格納する。
【００３９】
〔１−３−２〕ＬＢＡ変換テーブル
次に、図３を参照しながら、ＬＢＡ変換テーブル３１２について説明する。
コピー先ボリューム（ＳＤＶ）１３ｂは、実際の物理容量よりも多くのデータを格納できるように見せかけたボリュームである。更新対象となった所定単位のデータ領域は、コピー先ボリューム１３ｂにおいて、更新順序に上詰めで格納されるため、コピー元ボリューム１３ａにおけるデータ順序と全く異なる順序（バラバラな状態）で格納されることになる。従って、コピー制御部２４は、データ再配置を行なうために、論理的なボリュームイメージ（論理アドレス）と実際のデータ格納位置（物理アドレス）との対応関係を管理する必要がある。この対応関係の管理のためにＬＢＡ変換テーブル３１２が用いられる。
【００４０】
図３に示すように、ＬＢＡ変換テーブル３１２では、コピー元ボリューム１３ａの所定単位（ここでは8kbyte単位）の論理アドレス毎に「制御情報」，「ＬＵ（Logical Unit）番号」および「物理アドレス」が変換情報として格納されている。ここで、本実施形態では、実際のデータが、コピー先ボリューム１３ｂの属するディスク１３とは別ディスクにおける別ボリューム（予備ボリューム(プール領域)１３ｃ）に格納されている可能性がある。このため、ボリューム内の「物理アドレス」に加え、ボリューム（ディスク）を特定する「ＬＵ番号」も記憶されている。また、「制御情報」は、制御のための補助的な付加情報であり、所定単位のデータ領域毎の再配置未／再配置済を示す情報（フラグ）は、「制御情報」としてＬＢＡ変換テーブル３１２で格納されて管理されてもよい。
【００４１】
なお、図３に示すＬＢＡ変換テーブル３１２では、コピー元ボリューム１３ａの論理アドレス順（昇順）に、所定単位（ここでは８kbyte単位）の各データ領域に対応する「制御情報」，「ＬＵ番号」および「物理アドレス」が変換情報として格納されている。つまり、ＬＢＡ変換テーブル３１２の第１エントリには、論理アドレス0-15のデータ領域のコピー先情報（ＬＵ番号＆物理アドレス）および制御情報が格納されている。また、第２エントリには、論理アドレス16-31のデータ領域のコピー先情報（ＬＵ番号＆物理アドレス）および制御情報が格納されている。以下同様に、論理アドレスの順に８kbyte単位のデータ領域毎の変換情報が各エントリに格納されている。
【００４２】
〔１−３−３〕連続性管理テーブル
次に、図４を参照しながら、連続性管理テーブル３１３について説明する。ここで、図４は本実施形態における連続性管理テーブル３１３の内容の具体例を示す図である。
この図４に示す連続性管理テーブル３１３は、再配置の開始を決定する閾値単位（上記所定範囲）毎にエントリを有している。ここでは、上記所定範囲の連続データを５オフセット分の連続データとする。そして、コピー元ボリューム１３ａにおける５オフセット分の連続データの全てが更新要求を受けて更新され更新前データ（Old Data）が全てコピー先ボリューム１３ｂ（もしくはプール領域１３ｃ）に転送されコピーされると、その連続データについて再配置を再配置処理部３３が開始するものとする。つまり、連続性管理テーブル３１３中の一つのエントリは、５オフセット分の連続性情報を格納し管理する。図４に示す例では、第１エントリにコピー元ボリューム１３ａのオフセット０−４の連続性情報が格納され、第２エントリにコピー元ボリューム１３ａのオフセット５−９の連続性情報が格納され、以下同様に、５オフセット分の連続データの連続性情報がデータ順に各エントリに格納されている。
【００４３】
連続性情報としては、「オフセット数」，「更新済み数」，「再配置先アドレス」および「再配置状況」が登録されている。
「オフセット数」は、当該エントリで管理されるデータ領域の大きさ（範囲）を示すもので、ここでは、上述の通り「５」で統一されている。「更新済み数」は、当該エントリで管理される５オフセットのうち、更新されたものの数、つまり更新前データ(Old Data)のコピー先ボリューム１３ｂへの転送を完了したものの数である。この「更新済み数」は、コピー制御部２４が更新前データ(Old Data)のコピー先ボリューム１３ｂへの転送を行なう都度、更新される。
【００４４】
あるエントリにおける「更新済み数」が「オフセット数」つまり５に達した場合は、所定範囲の連続データの更新前データが全てコピー先ボリューム１３ｂへ転送されたことになる。このような転送完了が、連続性管理テーブル３１３を参照する確認部３２によって確認されると、再配置処理部３３は、コピー先ボリューム１３ｂの空き領域、もしくは、プール領域１３ｃを用いた再配置処理を開始する。その際、再配置処理部３３は、再配置用に、コピー先ボリューム１３ｂ内の領域もしくは新たなプール領域１３ｃ（所定割り当て単位のプール領域；ここでは５オフセット分の領域）を決定して獲得し、そのアドレス（ＬＵ番号とアドレス（ＬＢＡ））を「再配置先アドレス」として登録する。また、再配置処理部３３は、ＬＢＡ変換テーブル３１２における変換情報を用い、オフセット（ここでは８kbyte）毎に、再配置処理に伴う実際のデータ転送を行ない、再配置先では各データ領域（１オフセット分のデータ領域）を論理アドレス順に再配置する。このとき、一回のデータ転送領域をなるべく狭くすることによってHost I/Oに与える影響をなるべく小さくする。再配置処理部３３は、当該エントリに係る５オフセット分のデータの再配置を完了すると、「再配置状況」を「未」から「済み」に変更する。
【００４５】
なお、プール領域１３ｃの割り当て単位毎のオフセット数は全て等しい。しかし、コピー先ボリューム（ＳＤＶ）１３ｂの領域におけるオフセット数は、プール領域１３ｃの割り当て単位のオフセット数と異なる可能性がある。このため、連続性管理テーブル３１３においてエントリ毎に異なる値の「オフセット数」が登録される場合がある。図８〜図１０に示す例では、コピー先ボリューム（ＳＤＶ）１３ｂの領域におけるオフセット数が７で、プール領域１３ｃの割り当て単位のオフセット数が５となっている。また、連続性管理テーブル３１３の各エントリの「オフセット数」として設定される前記所定範囲の大きさは、ユーザによって設定変更可能となっている。本実施形態では、その大きさは、簡単のため、前述した通り、プール領域の割り当て単位（ここでは５オフセット分）と同一としている。
【００４６】
ここで、図４に示す連続性管理テーブル３１３の第１エントリには、オフセット０−４の連続性情報としてオフセット数「５」，更新済み数「５」，再配置先アドレス「LU 20 LBA 100」，再配置状況「未」が登録されている。つまり、オフセット０−４の連続データについては、全て更新転送を完了し、再配置先アドレス「LU 20 LBA 100」への再配置処理を開始しているが、未だ再配置処理を終了していない状態である。
【００４７】
また、図４に示す連続性管理テーブル３１３の第２エントリには、オフセット５−９の連続性情報としてオフセット数「５」，更新済み数「０」，再配置先アドレス「--」(未登録)，再配置状況「未」が登録されている。つまり、オフセット５−９の連続データについては、まだ一つも更新転送を完了しておらず、当然、再配置先アドレスは未登録で再配置処理を開始していない状態である。
【００４８】
さらに、図４に示す連続性管理テーブル３１３の第３エントリには、オフセット１０−１４の連続性情報としてオフセット数「５」，更新済み数「５」，再配置先アドレス「LU 10 LBA 500」，再配置状況「済み」が登録されている。つまり、オフセット１０−１４の連続データについては、全て更新転送を完了し、再配置先アドレス「LU 10 LBA 500」への再配置処理を完了した状態である。
【００４９】
また、図４に示す連続性管理テーブル３１３の第４エントリには、オフセット１５−１９の連続性情報としてオフセット数「５」，更新済み数「２」，再配置先アドレス「--」(未登録)，再配置状況「未」が登録されている。つまり、オフセット１５−１９の連続データについては、２オフセット分の更新転送を完了しているだけで、再配置先アドレスは未登録で再配置処理を開始していない状態である。
【００５０】
〔２〕本実施形態の動作
ついで、図５〜図１０を参照しながら、本実施形態のストレージシステム１の動作について説明する。
〔２−１〕配置先決定手順
まず、図５に示すフローチャート（ステップＳ１０〜Ｓ１８）に従って、本実施形態のストレージシステム１のコピー制御部２４，２４ａ，２４ｂ（再配置処理部３３）による再配置先決定手順について説明する。
【００５１】
コピー制御部２４は、スナップショット作成開始後、ホストコンピュータ２からコピー元ボリューム１３ａの未コピー領域（未更新領域）に対する書込み要求（Write I/O）の受領待ちとなる。コピー制御部２４は、書込み要求を受領すると（ステップＳ１０）、ＳＤＶ管理テーブル３１１における「現在使用済オフセット」の値を１だけインクリメントして更新する。また、コピー制御部２４は、今回の更新対象領域の論理アドレスと、ＳＤＶ管理テーブル３１１の「現在使用済オフセット」の更新後値に対応する、コピー先ボリューム１３ｂの物理アドレスとの対応関係を、制御情報とともに変換情報としてＬＢＡ変換テーブル３１２に登録する（ステップＳ１１；管理ステップ）。さらに、コピー制御部２４は、今回の更新対象領域に対応するオフセットの連続性情報における「更新済み数」の値を１だけインクリメントして更新する（ステップＳ１２）。
【００５２】
この後、コピー制御部２４は、今回の更新対象領域の更新前データ（Old Data）をコピー先ボリューム１３ｂに転送して上詰めでコピーするとともに（ステップＳ１３）、連続性管理テーブル３１３により連続性のチェックを行なう（ステップＳ１４）。つまり、コピー制御部２４は、連続性管理テーブル３１３において、今回の更新対象領域を含む所定範囲（５オフセット分）に対応するエントリの「更新済み数」を参照する（ステップＳ１４）。そして、コピー制御部２４は、その「更新済み数」が同じエントリの「オフセット数」（閾値）以上であるか否かを判定する（ステップＳ１５）。
【００５３】
「更新済み数」が「オフセット数」未満の場合（ステップＳ１５のＮＯルート）、ステップＳ１０に戻り、コピー制御部２４は、次の書込み要求（Write I/O）の受領待ちとなる。一方、「更新済み数」が「オフセット数」以上の場合（ステップＳ１５のＹＥＳルート；確認部３２による確認ステップ）、今回の更新対象領域を含む所定範囲（５オフセット分）の連続データは全てコピー先ボリューム１３ｂにコピーされたことになる。そこで、コピー制御部２４の再配置処理部３３は、所定の割り当て単位（５オフセット分）の未使用のプール領域１３ｃを獲得し（ステップＳ１６）、そのプール領域１３ｃを、当該連続データの再配置先として決定する。
【００５４】
そして、再配置処理部３３は、その再配置先アドレスを連続性管理テーブル３１３の対応エントリに登録する（ステップＳ１７）。さらに、再配置処理部３３は、ホストコンピュータ２からの書込み要求（Write I/O）とは非同期に、ＬＢＡ変換テーブル３１２に基づいて、当該連続データをコピー先ボリューム１３ｂから再配置先へデータ転送し、当該連続データが論理アドレス順に並ぶように再配置処理を行なう（ステップＳ１８；再配置処理ステップ）。
【００５５】
〔２−２〕再配置手順
次に、図６に示すフローチャート（ステップＳ２０〜Ｓ２９）に従って、本実施形態のストレージシステム１のコピー制御部２４，２４ａ，２４ｂ（再配置処理部３３）による再配置手順について説明する。
再配置処理部３３は、連続性管理テーブル３１３を用いて、再配置のスケジュール管理（再配置未／再配置済の把握など）を行なう。つまり、再配置処理部３３は、ホストコンピュータ２からの書込み要求（Write I/O）とは非同期に、連続性管理テーブル３１３を参照・チェックする（ステップＳ２０）。そして、再配置処理部３３は、「更新済み数」が「オフセット数」（閾値）以上のエントリを見つけ（ステップＳ２１）、さらに「再配置状況」を参照して再配置未のエントリを見つける（ステップＳ２２）。
【００５６】
このようなエントリが見つかると、再配置処理部３３は、図５のステップＳ１６，Ｓ１７で決定登録された再配置先アドレスを確認し、再配置先を確定する（ステップＳ２３）。そして、再配置処理部３３は、ＬＢＡ変換テーブル３１２に基づいて、当該エントリに対応する所定範囲（５オフセット分）の連続データをオフセット毎に再配置先（割り当て単位のプール領域１３ｃ）へ転送し、当該連続データが論理アドレス順に並ぶように再配置処理を行なう（ステップＳ２４；再配置ステップ）。なお、再配置処理部３３は、ステップＳ２１，Ｓ２２の要件を満たすエントリを見つけられなかった場合、ステップＳ２０に戻りステップＳ２０〜Ｓ２２を繰り返す。
【００５７】
再配置処理部３３は、当該所定範囲における１オフセット分のデータの転送（再配置）を完了すると、当該データについて、ＬＢＡ変換テーブル３１２の物理アドレスを、再配置先の物理アドレスに書き換える（ステップＳ２５）。また、再配置処理部３３は、転送完了後、ＬＢＡ変換テーブル３１２の対応エントリの「制御情報」に、再配置済の印（フラグ）を設定登録する（ステップＳ２６）。今回のデータ転送に伴い、再配置元の割り当て単位のプール領域１３ｃが未使用状態（空状態）になった場合、再配置処理部３３は、そのプール領域１３ｃを解放する（ステップＳ２７）。なお、再配置元の割り当て単位のプール領域１３ｃが未使用状態（空状態）にならない場合には、このステップＳ２７の処理は省略される。
【００５８】
そして、再配置処理部３３は、当該所定範囲（５オフセット分）の全ての連続データの転送（再配置）を完了したか否かを判断し（ステップＳ２８）、完了していない場合（ステップＳ２８のＮＯルート）、ステップＳ２４の処理に戻る。一方、完了した場合（ステップＳ２８のＹＥＳルート）、再配置処理部３３は、連続性管理テーブル３１３の対応エントリの「再配置状況」を「未」から「済み」に変更登録する（ステップＳ２９）。
【００５９】
なお、図９および図１０を参照しながら後述するごとく、プール領域１３ｃの割り当て単位内の全データの再配置が完了した時点で、再配置処理部３３は、再配置前のデータの破棄および当該プール領域１３ｃの解放を行なう。また、コピー先ボリューム１３ｂ（もしくはプール領域１３ｃ）におけるデータであって未だ再配置されていないデータ箇所に対し、ホストコンピュータ２から書込み要求（Write I/O）があった場合、再配置処理部３３は、I/O延長で再配置を行なう。一方、上記未再配置データ箇所に対しホストコンピュータ２から読出し要求（Read I/O）があった場合、ＣＭ１２は、オーバーヘッド削減のため、上記未再配置データ箇所をそのままホストコンピュータ２に読ませる。このような処理により、ホストコンピュータ２は特別に意識することなく、つまりホストコンピュータ２の業務に影響を生じさせることなく、再配置処理部３３によるデータの再配置を行なうことができる。
【００６０】
〔２−３〕歯抜け部分の再配置手順
次に、図７に示すフローチャート（ステップＳ３０〜Ｓ４４）に従って、本実施形態のストレージシステム１のコピー制御部２４，２４ａ，２４ｂ（再配置処理部３３）による、歯抜け部分の再配置手順について説明する。ここで言う歯抜け部分とは、例えば図９を参照しながら後述するごとく、再配置処理を行なった結果、コピー先ボリューム１３ｂ上や、このコピー先ボリューム１３ｂに追加されたプール領域１３ｃ（例えば、図９において符号１３ｃ−２〜５で示す領域参照）上に残された、歯抜け状態となったデータ群のことである。
【００６１】
ここで、再配置処理部３３は、業務負荷の少ない時間帯に現在使用されているオフセットを全て検索する。そして、再配置処理部３３は、ＬＢＡ変換テーブル３１２上のエントリで再配置の印（フラグ）を設定されていないデータ箇所（歯抜け部分）を、新たに割り当てられたプール領域１３ｃへ上詰めで再配置していく（例えば、図１０において符号１３ｃ−１０〜１２で示す領域参照）。この歯抜け部分の再配置処理は、図６で説明した通常の再配置処理と同様、ホストコンピュータ２からのI/O要求を受け付けながら実行可能である。また、歯抜け部分の再配置処理に際しても、図６で説明した通常の再配置処理と同様、未使用プール領域の解放を行なう。なお、最終的にコピー先ボリューム（ＳＤＶ）１３ｂが空状態になった場合、再配置処理部３３は、再度、プール領域１３ｃからコピー先ボリューム（ＳＤＶ）１３ｂへの再配置をスケジュールし、物理容量が無駄にならないようにする。
【００６２】
さて、図７に示すように、歯抜け部分の再配置処理を行なうべく、まず、再配置処理部３３は、運用負荷の少ない時間帯にＬＢＡ変換テーブル３１２の「制御情報」における再配置済の印（フラグ）を参照・チェックする（ステップＳ３０）。そして、再配置処理部３３は、論理アドレスの小さい方から順（昇順）に、再配置未のデータ箇所（つまり、対応エントリに再配置済の印（フラグ）を設定されていないデータ領域）を見つける（ステップＳ３１）。
【００６３】
そして、再配置処理部３３は、コピー先ボリューム（ＳＤＶ）１３ｂが未使用状態か否かを判断する（ステップＳ３２）。未使用状態である場合（ステップＳ３２のＹＥＳルート）、再配置処理部３３は、コピー先ボリューム（ＳＤＶ）１３ｂに対し、歯抜け部分のデータを論理アドレスについて昇順に上詰めで再配置してから（ステップＳ３３）、後述のステップＳ３６の処理へ移行する。
【００６４】
一方、コピー先ボリューム（ＳＤＶ）１３ｂが使用状態である場合（ステップＳ３２のＮＯルート）、再配置処理部３３は、所定の割り当て単位（５オフセット分）の未使用のプール領域１３ｃを獲得する（ステップＳ３４）。そして、再配置処理部３３は、獲得したプール領域１３ｃに対し、歯抜け部分のデータを論理アドレスについて昇順に上詰めで再配置する（ステップＳ３５）。
【００６５】
この後、再配置処理部３３は、歯抜け部分のデータを再配置すると同時に、当該データについて、ＬＢＡ変換テーブル３１２の物理アドレスを、再配置先の物理アドレスに書き換える（ステップＳ３６）。また、今回のデータ再配置に伴い、再配置元の割り当て単位のプール領域１３ｃが未使用状態（空状態）になった場合、再配置処理部３３は、そのプール領域１３ｃを解放する（ステップＳ３７）。なお、再配置元の割り当て単位のプール領域１３ｃが未使用状態（空状態）にならない場合には、このステップＳ３７の処理は省略される。
【００６６】
そして、再配置処理部３３は、ＬＢＡ変換テーブル３１２の上記フラグをチェックして歯抜け状態のデータの有無を判断する（ステップＳ３８）。未だ歯抜け状態のデータが有る場合（ステップＳ３８の“有”ルート）、再配置処理部３３は、上述したステップＳ３４〜Ｓ３７と同様のステップＳ３９〜Ｓ４２を実行してから、ステップＳ３８の処理に戻る。一方、歯抜け状態のデータが無い場合（ステップＳ３８の“無”ルート）、再配置処理部３３は、歯抜け部分の再配置処理を完了し（ステップＳ４３）、次に歯抜け部分の再配置処理が生じるまで、運用を継続する（ステップＳ４４）。
【００６７】
〔２−４〕再配置動作の具体例
次に、図８〜図１０を参照しながら、本実施形態のストレージシステム１のコピー制御部２４，２４ａ，２４ｂ（再配置処理部３３）による再配置動作の具体例について説明する。ここで、図８は、コピー元ボリューム１３ａで更新対象となったデータ領域をオフセット単位で示すとともに、コピー先ボリューム（ＳＤＶ）１３ｂおよびプール領域１３ｃにおける更新前データの格納状態をオフセット単位で示している。図９は、左側に図８と同じコピー元ボリューム１３ａを示すとともに、右側に、確認部３２によって全ての連続データのコピーが確認された領域（５オフセット分の領域）に対し再配置処理部３３による再配置処理を行なった結果をオフセット単位で示している。図１０は、左側に図８と同じコピー元ボリューム１３ａを示すとともに、右側に、図９における歯抜け部分に対し再配置処理部３３による再配置処理を行なった結果をオフセット単位で示している。
【００６８】
これらの図８〜図１０において、コピー先ボリューム（ＳＤＶ）１３ｂの容量は８オフセット分とし、プール領域１３ｃの割り当て単位は５オフセット分とする。このとき、連続性管理テーブル３１３の第１エントリではＳＤＶ１３ｂの８オフセット分（オフセット０〜７）の連続性情報が管理され、第２エントリ以降の各エントリでは、５オフセット分毎の連続性情報が管理される。つまり、第２エントリではオフセット８〜１２の連続性情報が管理され、第３エントリではオフセット１３〜１７の連続性情報が管理され、以下同様の連続性情報管理が行なわれる。
【００６９】
ここで、図８に示す例では、コピー先ボリューム（ＳＤＶ）１３ｂに対し、スナップショット作成のために、５つの割り当て単位のプール領域１３ｃ−１〜５が追加されている。また、図９に示す例では、再配置処理を行なうために、４つの割り当て単位のプール領域１３ｃ−６〜９がさらに追加されている。さらに、図１０に示す例では、歯抜け部分の再配置処理を行なうために、３つの割り当て単位のプール領域１３ｃ−１０〜１２が追加されている。
【００７０】
なお、図８〜図１０において、オフセット単位の各データを示すブロック内の左側に記載された括弧付き数字[0]〜[42]（それぞれオフセット０〜４１に対応）は、そのデータの、コピー元ボリューム１３ａにおける論理アドレスを示している。また、同ブロック内の右側に記載された括弧無し数字1〜32は、ホストコンピュータ２による各データの更新順序、つまり、各データのコピー元ボリューム１３ａからＳＤＶ側への転送順序を示している。
【００７１】
図８左側に示すように、コピー元ボリューム１３ａの論理アドレス[0]〜[42]の連続データに対し、ホストコンピュータ２がランダムアクセスで書込み要求（Write I/O）を行なったものとする。このとき、図８右側に示すように、コピー制御部２４のスナップショット作成機能によって、コピー先ボリューム（ＳＤＶ）１３ｂおよび追加プール領域１３ｃ−１〜５には、オフセット単位の各データ領域の更新前データ（Old Data）が、更新順（転送順）に上詰めで書き込まれる。このため、ＳＤＶ側において、オフセット単位の各データの論理アドレス順序は全く保たれず、３２のデータ領域（Old Data）が、物理領域として離散した状態で格納されてしまう。
【００７２】
図８右側に示すような格納状態のＳＤＶ１３ｂおよびプール領域１３ｃ−１〜５に対し、コピー制御部２４（確認部３２および再配置処理部３３）が図５および図６に示すフローチャートに従って動作することにより、図９右側に示すように、データの再配置が行なわれる。
【００７３】
つまり、図８右側の格納状態では、オフセット８〜１２（論理アドレス[8]〜[12]）の連続データと、オフセット１８〜２２（論理アドレス[18]〜[22]）の連続データと、オフセット２８〜３７（論理アドレス[28]〜[37]）の連続データとが、コピー元ボリューム１３ａからＳＤＶ側に転送されている。このような格納状態が、連続性管理テーブル３１３を用いコピー制御部２４（確認部３２）によって確認されると（図５のステップＳ１５のＹＥＳルート）、図９右側に示すように、未使用のプール領域１３ｃ−６〜１３ｃ−９が獲得される（図５のステップＳ１６）。
【００７４】
そして、再配置処理部３３が図６に示すフローチャートに従って動作することにより、プール領域１３ｃ−６には、それぞれ6番目,3番目,12番目〜14番目に更新転送されたオフセット8〜12（論理アドレス[8]〜[12]）の連続データが再配置される。同様に、プール領域１３ｃ−７には、それぞれ23番目,18番目,8番目,30番目,15番目に更新転送されたオフセット18〜22（論理アドレス[18]〜[22]）の連続データが再配置される。また、プール領域１３ｃ−８，９には、それぞれ29番目,32番目,25番目,2番目,9番目,10番目,20番目,21番目,24番目,11番目に更新転送されたオフセット28〜37（論理アドレス[28]〜[37]）の連続データが再配置される。このような再配置処理に伴い、プール領域１３ｃ−１は空状態つまり未使用となるので解放される。なお、プール領域１３ｃ−９は、プール領域１３ｃ−８がオフセット28〜32（論理アドレス[28]〜[32]）の連続データで一杯になった時点で新たに獲得される。
【００７５】
このような再配置処理が行なわれると、ＳＤＶ１３ｂやプール領域１３ｃ−２〜５には、図９右側に示すように、歯抜け状態となったデータ群（歯抜け部分）が残される。この歯抜け部分に対しては、再配置処理部３３が、運用負荷の少ない時間帯に、図７に示すフローチャートに従って動作することにより、図１０右側に示すように、歯抜け部分の再配置が行なわれる。
【００７６】
つまり、図９に示す例において、ＳＤＶ１３ｂには、それぞれ1番目,4番目,5番目,7番目に更新転送されたオフセット14,17,38,4（論理アドレス[14],[17],[38],[4]）のデータが残されている。同様に、プール領域１３ｃ−２には、それぞれ16番目,17番目に更新転送されたオフセット0,23（論理アドレス[0],[23]）のデータが残され、プール領域１３ｃ−３には、それぞれ19番目,22番目に更新転送されたオフセット41,26（論理アドレス[41],[26]）のデータが残されている。また、プール領域１３ｃ−４には、それぞれ26〜28番目に更新転送されたオフセット1,13,27（論理アドレス[1],[13],[27]）のデータが残され、プール領域１３ｃ−５には、31番目に更新転送されたオフセット7（論理アドレス[7]）のデータが残されている。
【００７７】
このような歯抜け部分に対し、再配置処理部３３が図７に示すフローチャートに従って動作することにより、図１０右側に示すように、未使用の３つのプール領域１３ｃ−１０〜１２が順次獲得され、これらのプール領域１３ｃ−１０〜１２に、歯抜け部分のデータが論理アドレスについて昇順に上詰めで再配置される。つまり、プール領域１３ｃ−１０には、それぞれ16番目,26番目,7番目,31番目,27番目に更新転送されたオフセット0,1,4,7,13（論理アドレス[0],[1],[4],[7],[13]）のデータが再配置される。同様に、プール領域１３ｃ−１１には、それぞれ1番目,4番目,17番目,22番目,28番目に更新転送されたオフセット14,17,23,26,27（論理アドレス[14],[17],[23],[26],[27]）のデータが再配置される。また、プール領域１３ｃ−１２には、それぞれ5番目,19番目に更新転送されたオフセット38,41（論理アドレス[38],[41]）のデータが再配置される。このような再配置処理に伴い、プール領域１３ｃ−２〜５は空状態つまり未使用となるので解放されるとともに、ＳＤＶ１３ｂは、一時的に空状態となり、次回の歯抜け部分の再配置のための待機状態となる。なお、プール領域１３ｃ−１１，１２は、それぞれプール領域１３ｃ−１０，１１がデータで一杯になった時点で新たに獲得される。
【００７８】
〔３〕本実施形態の効果
このように、本発明の一実施形態としてのストレージシステム１によれば、コピー元ボリューム１３ａからコピー先ボリューム（ＳＤＶ）１３ｂへコピーされた更新対象データ（更新箇所）が、確認部３２および再配置処理部３３により管理テーブル３１１〜３１３を用いて動的に再配置される。つまり、スナップショットを作成する際に、ＳＤＶ１３ｂやプール領域１３ｃの空領域を利用し、更新前データ（Old Data）を動的に再配置してコピー元ボリューム１３ａの論理アドレス順に並べ替えることができる。これにより、ＳＤＶ１３ｂ側において、データの連続性が維持され、シーケンシャルアクセス性能が大幅に向上し、ひいては、対象データの読出しの高速化を実現することができる。
【００７９】
〔４〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、本発明は、上述した実施形態で説明した各構成要素の数やオフセット数や単位数などに限定されるものではない。
【００８０】
また、上述したコピー制御部２４（確認部３２，再配置処理部３３）としての機能や、スナップショット作成機能や、管理テーブル３１１，３１２，３１３を作成・更新する機能（全部もしくは一部の機能）は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラムを実行することによって実現される。
【００８１】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷ，ブルーレイディスクなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００８２】
ここで、コンピュータとは、ハードウエアとＯＳ（Operating System）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記プログラムは、上述のようなコンピュータに、上記各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【００８３】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００８４】
〔５〕付記
以上の本実施形態に関し、さらに以下の付記を開示する。
（付記１）
上位装置から送信されるデータが記憶される第１の記憶ボリュームと、
前記第１の記憶ボリュームにおける更新箇所の更新前のデータがコピーされる第２の記憶ボリュームと、
前記コピー処理を制御する制御部とを備えたストレージシステムであって、
前記制御部は、
前記第１の記憶ボリュームにおける更新箇所と、前記更新前のデータの前記第２の記憶ボリュームにおける記憶箇所とを管理する管理テーブルと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認部と、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置処理を行なう再配置処理部とを備えたことを特徴とするストレージシステム。
【００８５】
（付記２）
前記第２の記憶ボリュームの使用状態に基づいて前記第２の記憶ボリュームに対して割り当てられる予備ボリュームをさらに備え、
前記再配置処理部は、前記予備ボリュームを用いてデータの再配置処理を行なうことを特徴とする付記１に記載のストレージシステム。
【００８６】
（付記３）
前記再配置処理部は、前記再配置処理された予備ボリュームのデータを前記第２の記憶ボリュームに割り当てることを特徴とする付記２に記載のストレージシステム。
【００８７】
（付記４）
前記再配置処理部は、前記第１の記憶ボリュームの所定の範囲のデータコピーが未完了な領域に対応する前記第２の記憶ボリューム内のデータに対して、前記データが所定の順序となるように再配置処理を行なうことを特徴とする付記２または付記３に記載のストレージシステム。
【００８８】
（付記５）
前記所定の範囲は、前記予備ボリュームの割り当て単位であることを特徴とする付記２〜付記４のいずれか一項に記載のストレージシステム。
【００８９】
（付記６）
上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーするコピー制御方法であって、
前記第１の記憶ボリュームにおける更新対象データと、前記更新対象データの更新前データの前記第２の記憶ボリュームにおける記憶箇所とを管理テーブルを用いて管理する管理ステップと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認ステップと、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置を行なう再配置処理ステップとを備えたことを特徴とするコピー制御方法。
【００９０】
（付記７）
前記再配置処理ステップは、前記第２の記憶ボリュームの使用状態に基づいて前記第２の記憶ボリュームに対して割り当てられる予備ボリュームを用いてデータの再配置処理を行なうことを特徴とする付記６に記載のコピー制御方法。
【００９１】
（付記８）
前記再配置処理ステップは、前記再配置された予備ボリュームのデータを前記第２の記憶ボリュームに割り当てることを特徴とする付記７に記載のコピー制御方法。
【００９２】
（付記９）
前記再配置処理ステップは、前記第１の記憶ボリュームの所定の範囲のデータコピーが未完了な領域に対応する前記第２の記憶ボリューム内のデータに対して、前記第２の記憶ボリューム内のデータが所定の順序となるように再配置処理を行なうことを特徴とする付記７または付記８に記載のコピー制御方法。
【００９３】
（付記１０）
前記所定の範囲は、前記予備ボリュームの割り当て単位であることを特徴とする付記７〜付記９のいずれか一項に記載のコピー制御方法。
【００９４】
（付記１１）
上位装置から送信されるデータが記憶される第１の記憶ボリューム内の更新対象データの更新前のデータを第２の記憶ボリュームにコピーするコピー制御部であって、
前記第１の記憶ボリュームにおける更新対象データと、前記更新対象データの更新前データの前記第２の記憶ボリュームにおける記憶箇所とを管理する管理テーブルと、
前記管理テーブルに基づいて、前記第１の記憶ボリュームの所定の範囲のデータが前記第２の記憶ボリュームに対してコピーされたことを確認する確認部と、
前記確認結果に基づいて、前記第２の記憶ボリューム内のデータの再配置処理を行なう再配置処理部とを備えたことを特徴とするコピー制御部。
【００９５】
（付記１２）
前記再配置処理部は、前記第２の記憶ボリュームの使用状態に基づいて前記第２の記憶ボリュームに対して割り当てられる予備ボリュームを用いてデータの再配置処理を行なうことを特徴とする付記１１に記載のコピー制御部。
【００９６】
（付記１３）
前記再配置処理部は、前記再配置された予備ボリュームのデータを前記第２の記憶ボリュームに割り当てることを特徴とする付記１２に記載のコピー制御部。
【００９７】
（付記１４）
前記再配置処理部は、前記第１の記憶ボリュームの所定の範囲のデータコピーが未完了な領域に対応する前記第２の記憶ボリューム内のデータに対して、前記第２の記憶ボリューム内のデータが所定の順序となるように再配置処理を行なうことを特徴とする付記１２または付記１３に記載のコピー制御部。
【００９８】
（付記１５）
前記所定の範囲は、前記予備ボリュームの割り当て単位であることを特徴とする付記１２〜付記１４のいずれか一項に記載のコピー制御部。
【図面の簡単な説明】
【００９９】
【図１】（Ａ）は本発明の一実施形態としてのストレージシステムの構成を示すブロック図、（Ｂ）は同ストレージシステムにおけるコピー制御部の機能構成を示すブロック図である。
【図２】（Ａ），（Ｂ）は本実施形態におけるＳＤＶ管理テーブルについて説明するための図で、（Ａ）はＳＤＶのデータ格納状態の一例を示す図、（Ｂ）は（Ａ）に示すＳＤＶの格納状態に応じたＳＤＶ管理テーブルの内容を示す図である。
【図３】本実施形態におけるＬＢＡ変換テーブルについて説明するための図である。
【図４】本実施形態における連続性管理テーブルの内容の具体例を示す図である。
【図５】本実施形態のストレージシステム（コピー制御部）による再配置先決定手順について説明するためのフローチャートである。
【図６】本実施形態のストレージシステム（コピー制御部）による再配置手順について説明するためのフローチャートである。
【図７】本実施形態のストレージシステム（コピー制御部）による、歯抜け部分の再配置手順について説明するためのフローチャートである。
【図８】本実施形態のストレージシステム（コピー制御部）による再配置動作の具体例について説明するための図である。
【図９】本実施形態のストレージシステム（コピー制御部）による再配置動作の具体例について説明するための図である。
【図１０】本実施形態のストレージシステム（コピー制御部）による再配置動作の具体例について説明するための図である。
【図１１】ストレージシステムにおけるスナップショット作成機能について説明するための図である。
【図１２】ストレージシステムにおけるスナップショット作成機能について説明するための図である。
【符号の説明】
【０１００】
１    ストレージシステム
２    ホストコンピュータ（上位装置）
１１    ＣＡ（Channel Adapter）
１２    ＣＭ（Centralized Module）
１３    ディスク（ＨＤＤ；Disk）
１３ａ    コピー元ボリューム（第１の記憶ボリューム）
１３ｂ    コピー先ボリューム（第２の記憶ボリューム；ＳＤＶ(Snap Data Volume)）
１３ｃ，１３ｃ−１〜１３ｃ−１２    プール領域（予備ボリューム）
２１    ＣＰＵ（Central Processing Unit）
２２    キャッシュメモリ
２３    ＤＡ（Disk Adapter）
２４    コピー制御部（制御部）
２４ａ    コピー元コピー制御部
２４ｂ    コピー先コピー制御部
３１    管理テーブル記憶部
３１１    ＳＤＶ管理テーブル
３１２    ＬＢＡ（Logical Block Address）変換テーブル（管理テーブル）
３１３    連続性管理テーブル
３２    確認部
３３    再配置処理部
【図１】
2010009290.tif 000003
【図２】
2010009290.tif 000004
【図３】
2010009290.tif 000005
【図４】
2010009290.tif 000006
【図５】
2010009290.tif 000007
【図６】
2010009290.tif 000008
【図７】
2010009290.tif 000009
【図８】
2010009290.tif 000010
【図９】
2010009290.tif 000011
【図１０】
2010009290.tif 000012
【図１１】
2010009290.tif 000013
【図１２】
2010009290.tif 000014