以下、実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置を示す図である。本実施の形態のストレージ装置1は、データを分割して、分割したデータ同士を比較することにより重複排除を実行するために、情報取得部1a、データ取得部1b、重複排除部1c、情報記憶部1d、データ記憶部1eを有する。
情報取得部1aは、他の装置から通信回線を介して、重複排除の実行時のデータのブロック単位(例えば、“○○KB”)を示す重複排除単位等、他装置での重複排除の実行状況を示す付加情報を含む情報を取得し、取得した情報を情報記憶部1dに記憶させる。他の装置は、重複排除を実行可能な装置であり、例えば、クライアント方式によりデータの重複排除を実行する。他の装置は、例えば、通信回線でストレージ装置1と接続されているバックアップ管理サーバや他のストレージ装置である。
データ取得部1bは、他の装置による重複排除が実行されたデータ2a1,2a2を、他の装置から通信回線を介して取得する。ここで、データ2a2は、四角で示した各部分のうち斜線が付された“E”について、データ2a1の当該部分の内容である“D”と異なっている。また、データ2a1,2a2は、いずれも所定の分割単位(“○○KB”で重複排除が実行されているものとする。また、このときの分割単位は、上記のように他の装置から送信される情報で示されているものとする。
重複排除部1cは、データ取得部1bが取得したデータ2a1,2a2について、情報記憶部1dに記憶されている情報が有する付加情報の重複排除単位で示された分割単位(○○KB)よりも小さい分割単位(△△KB)で、データ2a1をデータ1e11,1e12に分割すると共に、データ2a2をデータ1e21,1e22に分割して重複排除を実行する。これにより、データ1e21,1e22がデータ1e11と同一であるため削除され、データ1e11,1e12が得られる。次に、重複排除部1cは、重複排除の実行により得られたデータ1e11,1e12をデータ記憶部1eに記憶させると共に、図1において“×”が付されたデータ1e21,1e22については、データ1e11と同一であるため記憶させずに削除する。これにより、他の装置で既に行われた重複排除後のデータ2a1,2a2を、付加情報に基づいて他の装置で分割された分割単位よりも小さい分割単位で分割して重複排除することができる。
なお、重複排除部1cは、本実施の形態ではインライン方式で重複排除を実行するが、これに限らず、データ取得部1bにより取得されたデータ2a1,2a2を一旦データ記憶部1eに記憶してから重複排除を実行するポストプロセス方式で実行してもよい。
情報記憶部1dは、他の装置による重複排除の実行時にデータ2a1,2a2が分割された分割単位を示す付加情報を有する情報を記憶する。
データ記憶部1eは、データを記憶可能な記憶領域を有する。データ記憶部1eが有する記憶領域には、重複排除部1cにより重複排除されたデータ1e11,1e12が記憶される。
なお、本実施の形態のストレージ装置1は、通信回線を介して他の装置からデータおよび情報を取得するが、これに限らず、テープストレージやハードディスクドライブ等の記憶媒体を介して取得してもよい。
このように、ストレージ装置1では、重複排除部1cは、付加情報に示された分割単位よりも小さい分割単位でデータを分割して重複排除を実行する。これにより、重複排除により削減されるデータ量を増加させることが可能となる。
[第2の実施の形態]
次に、図1に示したストレージ装置1の、他の装置で既に重複排除されたデータに対してさらに重複排除してデータの削減量を増加させる機能を、RAID(Redundant Arrays of Inexpensive Disks)を構成するストレージ群を有するストレージ装置100に適用した実施の形態を、第2の実施の形態として説明する。
図2は、第2の実施の形態のシステム構成を示す図である。図2に示すストレージシステムは、ストレージ装置100、ホストコンピュータ300、バックアップ管理サーバ400、ネットワーク500を有する。ストレージ装置100、ホストコンピュータ300およびバックアップ管理サーバ400は、それぞれ互いにネットワーク500を介して通信可能に接続されている。
ストレージ装置100は、後述するハードディスクドライブ(HDD:Hard disk drive)等の複数の記憶デバイスに対するデータの入出力を行う。ストレージ装置100は、RAID0〜6の機能を有し、複数の記憶デバイスをまとめて1台の記憶デバイスとして管理する。
また、本実施の形態のストレージ装置100は、バックアップ管理サーバ400から送信されたデータ600bおよび付加情報を受信すると、付加情報に基づいてインライン方式により受信したデータ600bの重複排除を実行するか否かを判断する。そして、ストレージ装置100は、重複排除を実行する場合には、付加情報に基づいてデータを分割する単位である分割単位を決定し、決定した分割単位でデータ600bを分割して重複排除を実行し、データ600cを生成する。ここで、付加情報は、バックアップ管理サーバ400等のデータの重複排除を行った装置から、重複されたデータと共に送信される情報である。付加情報は、例えば、重複排除されたデータ600bの重複排除されたデータが分割された分割単位である重複排除単位、重複排除の実施の有無等、中腹排除されたデータを受信したストレージ装置100等の装置で重複排除の際に使用する情報を示す。
ホストコンピュータ300は、データ600を記憶している。また、ホストコンピュータ300は、記憶しているデータ600を使用して業務処理を実行する。
バックアップ管理サーバ400は、LAN(Local Area Network)等のネットワーク500を介して、ホストコンピュータ300に記憶されているデータ600のストレージ装置100によるバックアップ、リストア、ミラーリング(mirroring)等のスケジュール管理や実行制御を行う。
また、本実施の形態のバックアップ管理サーバ400は、ホストコンピュータ300からバックアップの指示を受けたデータ600aについて、クライアント方式により重複排除を実行して、データ600bおよびデータ600bの重複排除における付加情報を生成し、生成したデータ600bおよび付加情報をストレージ装置100に送信する。
本実施の形態では、バックアップ管理サーバ400が、ホストコンピュータ300から送信されたデータ600aについての重複排除をクライアント方式により実行して、重複排除の実行結果のデータ600bをストレージ装置100に送信すると共に、重複排除単位等の重複排除の実行状況を示す付加情報をストレージ装置100に送信する。これにより、ストレージ装置100は、バックアップ管理サーバ400からの付加情報に基づいてインライン方式によりデータ600bの重複排除を実行する際に、バックアップ管理サーバ400で実行された重複排除の分割単位(例えば、8KBごと)よりも小さい分割単位(例えば、4KBごと)でデータ600bを分割して重複排除を実行することができる。なお、ストレージ装置100は、バックアップ管理サーバ400からの付加情報の送信がない場合や、バックアップ管理サーバ400でデータの重複排除が実行されていない場合には、所定のサイズ(例えば、8KB)を分割単位として、受信したデータの重複排除の処理を実行する。この重複排除の実行時の分割時の所定のサイズは、図3において後述する制御部111a,111bが有する図示しないメモリに記憶されている。
なお、本実施の形態では、ストレージ装置100で行う重複排除における分割単位は、上記のように予め設定されているが、これに限らず、重複排除を実行したバックアップ管理サーバ400から送信された付加情報で示された重複排除単位に基づいて決定してもよい。例えば、バックアップ管理サーバ400で重複排除したデータ600bの付加情報に示された重複排除単位の1/2のサイズを、ストレージ装置100で実行する重複排除の分割単位に設定してもよい。
バックアップ管理サーバ400において実行中の処理の負荷が高い場合等に、バックアップ管理サーバ400で重複排除を実行すると、さらにバックアップ管理サーバ400の負荷が増加して処理遅延が発生するような場合がある。このような場合には、バックアップ管理サーバ400では重複排除を実行せず、ストレージ装置100でのみ重複排除を実行した方が、負荷が分散されてシステム全体での処理の遅延を抑制することができる。
また、バックアップ管理サーバ400は、データ600bについて既に重複排除が実行されているか、データ600bの重複排除が実行可能であるか等、重複排除の必要性を示すデータ600aの付加情報をストレージ装置100に送信する。ストレージ装置100は、バックアップ管理サーバ400からの付加情報により、受信したデータに対する重複排除が必要であるか否かを確認して、受信データに対する重複排除を実行するか否かを判断する。これにより、既にバックアップ管理サーバ400で重複排除が実行されているデータ600bについて、ストレージ装置100でさらに同一の分割単位で重複排除を実行するという無駄を排除でき、ストレージ装置100の処理を効率化できる。
また、ストレージ装置100において、データが記憶されている領域を削減するために重複排除に加えてデータの圧縮を実行する。これにより、ストレージ装置100内にデータを記憶する際に使用される容量を削減することができる。また、重複排除は、一般にブロックやレコード単位のようにファイルを分割した小さい分割単位で比較して実行した方が、データのファイル単位で重複排除を実行した場合と比較して、データ量の削減の効果が大きい。
ここで、データ600aが既に圧縮された形式のデータ(圧縮形式ファイルや圧縮技術を利用する画像ファイル等)である場合や、バックアップ管理サーバ400で圧縮形式のファイル形式に変換される場合には、ストレージ装置100においてさらにデータ圧縮を実行しても効果がない。
これに対して本実施の形態では、ストレージ装置100において付加情報等により、受信したデータが圧縮データであるか否かを確認して、圧縮処理を実行するか否かを判断するので、ストレージ装置100の処理を効率化できる。
図3は、第2の実施の形態のストレージ装置のハードウェア構成を示す図である。ストレージ装置100は、装置全体の制御を行う制御部110a,110b、制御部110a,110bとホストコンピュータ300との接続制御を行うチャネルアダプタ130c〜130fを有する。
制御部110aは、CPU(Central Processing Unit)111a、キャッシュメモリ112a、およびディスクアダプタ113c,113dを有する。
CPU111aは、OS(オペレーティングシステム)等に従って処理を実行し、各種制御を行う。また、制御部110aは、キャッシュメモリ112a、記憶デバイス120c,120d、チャネルアダプタ130c,130d等の資源管理を行う。
キャッシュメモリ112aは、CPU111aがストレージ装置100を制御するために必要な制御データを記憶する。また、キャッシュメモリ112aは、記憶デバイス120c,120dに読み書きされる入出力データを一時的に記憶する。
ディスクアダプタ113c,113dは、それぞれ、記憶デバイス120c,120dとの接続制御を行う。
また、制御部110aおよび制御部110bは、バス140によって接続されている。このバス140を介して、制御部110aおよび制御部110bの間で、制御情報やデータが通信される。ここで、制御部110bは、CPU111b、キャッシュメモリ112b、ディスクアダプタ113e,113fを有するが、制御部110aと同一の構成であるため、説明を省略する。
記憶デバイス120c〜120fは、ハードディスクドライブであり、ホストコンピュータ300から送信されたシステムの利用者のデータまたはバックアップデータを記憶する。なお、システムの利用者のデータおよびバックアップデータは1つのハードディスクに記憶されている必要はなく、複数のハードディスクに渡って記憶されていてもよい。また、1つのハードディスクに複数の利用者のデータおよびバックアップデータが記憶されていてもよい。また、記憶デバイス120c〜120fは、例えば、Flash SSD(Solid State Drive)等の不揮発性半導体メモリやその他のデータの記憶が可能な記憶装置を用いてもよい。
チャネルアダプタ130c〜130fは、ホストコンピュータ300と制御部110a,110bとの接続制御を行う。例えば、チャネルアダプタ130cは、ホストコンピュータ300からの要求を受け付けて、制御部110aとの接続制御を行う。制御部110a,110bは、それぞれ複数個(図3ではそれぞれ2個)のチャネルアダプタ130c〜130fに接続可能になっている。すなわち、例えば制御部110aは、冗長構成が実現されるように、2つの異なるチャネルアダプタ130c,130dにそれぞれ接続されている。
なお、チャネルアダプタ130c〜130fとホストコンピュータ300との間の通信は、ファイバチャネルで構成されたLANによって接続されているが、ファイバチャネル以外の接続方式によって接続されていてもよい。また、チャネルアダプタ130c〜130fとホストコンピュータ300との間の通信は、専用線やVPN(Virtual Private Network)を用いて、ストレージ装置100をホストコンピュータ300から遠隔地に設置するように構成してもよい。
なお、図3において、制御部110a,110bは、それぞれ2個図示し、ディスクアダプタ113c〜113fおよびチャネルアダプタ130c〜130fは、制御部110a,110bそれぞれに対してそれぞれ2個ずつ図示しているが、これらの数はそれぞれ任意である。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図4は、第2の実施の形態のストレージ装置の機能を示すブロック図である。本実施の形態のストレージ装置100は、バックアップ管理サーバ400とネットワーク500で接続されている。ストレージ装置100は、バックアップ管理サーバ400から送信されたバックアップの対象であり、バックアップ管理サーバ400で重複排除されたデータを、ネットワーク500を介して取得し、さらに受信したデータに対する重複排除を実行してデータ量を削減して記憶することにより、バックアップに要する記憶容量を削減する。ストレージ装置100は、情報取得部101、データ取得部102、重複排除部103、情報生成部104、記憶デバイス120、情報記憶部150を有する。情報記憶部150は、付加情報記憶部151、ブロック情報記憶部152、アドレス情報記憶部153を有する。
情報取得部101は、バックアップ管理サーバ400からネットワーク500を介して重複排除の実行状況を示す情報を取得し、取得した情報を付加情報記憶部151に記憶させる。バックアップ管理サーバ400は、重複排除を実行可能な装置であり、クライアント方式により、ホストコンピュータ300で使用されるバックアップの対象のデータについて重複排除を実行する。
データ取得部102は、バックアップ管理サーバ400からネットワーク500を介してバックアップ管理サーバ400による重複排除が実行されたデータを取得する。
重複排除部103は、付加情報記憶部151に記憶されている情報が有する付加情報に示された分割単位よりも小さい分割単位でデータ取得部102により取得されたデータを分割し、分割したデータ(ブロック)について重複排除を実行する。このとき重複排除部103は、各ブロックを識別して特定するFPを生成し、FPが一致するブロックは1個を残して削除することにより重複排除を実行する。FPは、識別情報として機能する。次に、重複排除部103は、重複排除の実行により得られたデータを圧縮して記憶デバイス120に記憶させる。これにより、バックアップ管理サーバ400で既に行われた重複排除後のデータを、付加情報に基づいてバックアップ管理サーバ400で分割された分割単位よりも小さい分割単位で分割して重複排除することができる。
重複排除部103は、情報記憶部150が有する付加情報記憶部151に記憶されている情報が有する付加情報がバックアップ管理サーバ400によるデータの重複排除が実行されていることを示す場合、または付加情報が受信データに対する重複排除が実行不可能であることを示す場合、受信したデータに対する重複排除を実行せずに、記憶デバイス120に記憶させる。
重複排除部103は、情報記憶部150が有する付加情報記憶部151に記憶されている情報が有する付加情報が、受信データが圧縮不可能であることを示す場合、重複排除を実行して得られたデータを圧縮せずに記憶デバイス120に記憶させる。
なお、重複排除部103は、受信データが、圧縮不可能なデータ形式であることを付加情報が示す場合には、重複排除を実行して得られたデータを圧縮せずに記憶デバイス120に記憶させてもよい。また、重複排除部103は、インライン方式で重複排除を実行するが、これに限らず、データ取得部102により取得されたデータを一旦記憶デバイス120に記憶してから重複排除を実行するポストプロセス方式で実行してもよい。
情報生成部104は、ブロック情報およびアドレス情報を生成し、それぞれブロック情報記憶部152、アドレス情報記憶部153に記憶させる。ここで、ブロック情報は、ストレージ装置100が有する重複排除機能によりデータが分割されたブロックから生成されたFPを、ストレージ装置100において一意に識別する情報である。また、アドレス情報は、重複排除機能により分割されたブロックのFPと、FPが示すブロックが記憶されている記憶デバイス120c〜120fの記憶領域のアドレスとの対応関係を示す情報である。
記憶デバイス120は、記憶デバイス120c〜120fを用いたRAIDで構成されており、データを記憶可能な記憶領域を有する。この記憶領域に、重複排除部103により重複排除されたデータが記憶される。
付加情報記憶部151は、バックアップ管理サーバ400による重複排除の実行時に、分割されたデータの分割単位である重複排除単位を含む付加情報を記憶する。また、付加情報は、データ取得部により取得されたデータについてバックアップ管理サーバ400による重複排除が実行されているか否か、取得したデータについて重複排除の実行が可能であるか否か、取得したデータが圧縮可能であるか否か等を示す。また、付加情報は、取得データのデータ形式を示す。
ブロック情報記憶部152は、重複排除によりデータ600bが分割されたブロックと、データ600bが分割されたブロックのFPとを関連付けるブロック情報を記憶する。アドレス情報記憶部153は、分割されたブロックのFPと、FPで示されるブロックが記憶されている記憶デバイス120における記憶領域のアドレスとを関連付けるアドレス情報を記憶する。
なお、本実施の形態のストレージ装置100は、ネットワーク500を介してバックアップ管理サーバ400からデータおよび情報を取得するが、これに限らず、テープストレージやハードディスクドライブ等の記憶媒体を介してデータや情報を取得してもよい。
図5は、第2の実施の形態の付加テーブルを示す図である。図5に示す付加テーブル151aは、ストレージ装置100が有する付加情報記憶部151に記憶されており、ストレージ装置100の情報生成部104によって作成および管理される。付加テーブル151aは、ストレージ装置100が有する重複排除機能に用いられる重複排除の実行状況等、ストレージ装置100において重複排除を実行する際に使用する情報を示す付加情報を記憶するテーブルである。
付加テーブル151aには、項目として“データ番号”、“重複排除単位”、“重複排除実施”、“重複排除可否”、“圧縮可否”、“データ形式”が設けられている。付加テーブル151aにおいて、各項目の横方向に並べられた情報同士が付加情報として互いに関連付けられている。
データ番号は、ストレージ装置100でバックアップするデータを特定するためにデータに付された番号である。
重複排除単位は、バックアップ管理サーバ400等で重複排除が実行された際にデータが分割された分割単位を示す。なお、バックアップ管理サーバ400等で重複排除が実行されていなければ、重複排除単位に“0”が設定される。
重複排除実施は、バックアップ管理サーバ400等でデータの重複排除が実行されたか否かを示す。バックアップ管理サーバ400等で重複排除が実行されていれば、重複排除実施に“yes”が設定される。バックアップ管理サーバ400等で重複排除が実行されていなければ、重複排除実施に“no”が設定される。
重複排除可否は、受信したデータの重複排除がストレージ装置100において実行可能であるか否か、また、ストレージ装置100において重複排除を実行することが有効であるか無駄であるかについて示す。ストレージ装置100で重複排除が実行可能、またはストレージ装置100において重複排除を実行することが有効であれば、重複排除可否に“yes”が設定される。ストレージ装置100での重複排除が実行不可能、またはストレージ装置100において重複排除を実行することが無駄であれば、重複排除可否に“no”が設定される。
圧縮可否は、ストレージ装置100においてデータの圧縮が実行可能であるか否か、またはストレージ装置100においてデータの圧縮を実行することが有効であるか無駄であるかを示す。データの圧縮がストレージ装置100で実行可能、またはストレージ装置100において圧縮を実行することが有効であれば、圧縮可否に“yes”が設定される。データの圧縮が既に行われておりストレージ装置100でのデータ圧縮が実行不可能、またはストレージ装置100において圧縮を実行することが無駄であれば、圧縮可否に“no”が設定される。
データ形式は、データのバックアップ管理サーバ400等における重複排除の実行前のデータ形式を示す。例えば、“lzh”、“zip”等の圧縮形式のデータである場合や、“jpg”等の圧縮画像形式である場合等、受信したデータが圧縮不可能であるデータ形式であるには、データ形式により、データの圧縮が実行可能であるか否かを判断することもできる。
図6は、第2の実施の形態のブロックテーブルを示す図である。図6に示すブロックテーブル152aは、ストレージ装置100が有するブロック情報記憶部152に記憶されており、ストレージ装置100の情報生成部104によって作成および管理される。ブロックテーブル152aは、ストレージ装置100が有する重複排除機能によりデータが分割されたブロックから生成されたFPを示すブロック情報を記憶するテーブルである。
ブロックテーブル152aには、項目として“ブロック番号”、“FP”が設けられている。ブロックテーブル152aにおいて、各項目の横方向に並べられた情報同士がブロック情報として互いに関連付けられている。
ブロック番号は、ストレージ装置100で重複排除するデータを分割したブロックを特定するために、各ブロックに付された番号である。
FPは、データを分割して得られたブロックをハッシュ関数で変換して得たハッシュ値等、ブロックの内容に応じて変化することにより、ブロックの内容が同一であるか否かの判定に使用する符号である。なお、FPは、内容が異なるブロック同士が同一のFPとなることを防止するために十分な桁数を有するものとする。また、本実施の形態では、FPが同一のブロック同士は内容が同一であるものとして扱うこととする。
本実施の形態の重複排除では、ブロックテーブル152aにおいてFPを比較し、FPが同一のブロックについては、1個のブロックを記憶デバイス120に記憶させると共に他のブロックは記憶デバイス120に記憶させない。図6の例を用いて具体的に説明すると、ブロック番号1,4,8は、FPが共に100であるため、1個(例えば、ブロック番号1)を記憶デバイスに記憶させ、他のブロック(例えば、ブロック番号4,8)は記憶デバイス120に記憶させない。同様に、ブロック番号2,7は、FPが共に120であるため、例えば、ブロック番号2を記憶デバイス120に記憶させ、ブロック番号7は記憶デバイスに記憶させない。同様に、ブロック番号3,5は、FPが共に110であるため、例えば、ブロック番号3を記憶デバイス120に記憶させ、ブロック番号5は記憶デバイス120に記憶させない。これにより、重複するブロックを記憶デバイス120に記憶させないので記憶デバイス120の記憶領域が削減される。
図7は、第2の実施の形態のアドレステーブルを示す図である。図7に示すアドレステーブル153aは、ストレージ装置100が有するアドレス情報記憶部153に記憶されており、ストレージ装置100の情報生成部104によって作成および管理されている。アドレステーブル153aは、ストレージ装置100が有する重複排除機能により生成されたブロックのFPと、FPが示すブロックが記憶されている記憶デバイス120c〜120fの記憶領域のアドレスとの対応関係を示すアドレス情報を記憶するテーブルである。
アドレステーブル153aには、項目として“FP”、“アドレス”が設けられている。アドレステーブル153aにおいて、各項目の横方向に並べられた情報同士がアドレス情報として互いに関連付けられている。
アドレスは、FPと対応するブロックが記憶されている記憶デバイス120c〜120fの領域のアドレスを示す。
図8は、第2の実施の形態の重複排除処理の様子を示す図である。図8に従って、本実施の形態のストレージ装置100における重複排除処理を説明する。ストレージ装置100は、図8に示すように、バックアップ管理サーバ400から送信されるデータ600b1,600b2を取得すると、付加情報に基づいてデータ600b1,600b2をそれぞれ所定の分割単位(例えば、4KB)のブロックに分割する(図8では、データ600b1,600b2の1つの四角は1KBを示すものとする)。次に、ストレージ装置100は、分割した各ブロックに対応するFPを生成する。次に、ストレージ装置100は、FPが同一であるブロックは1個のみ記憶デバイス120に記憶することにより、データ600b1,600b2について重複排除を実行する。
具体的には、まず、ストレージ装置100は、データ600b1を付加情報に基づいて所定の分割単位毎にブロック番号1〜6の6個のブロックに分割する。同様に、ストレージ装置100は、データ600b2を所定の分割単位毎にブロック番号7,8の2個のブロックに分割する。
次に、ストレージ装置100は、ブロック番号1〜8のブロックのそれぞれについて、図8に示すようにFPを生成し、各ブロックおよび対応するFPを示すブロック情報を生成し、図6に示したブロックテーブル152aに記憶する。例えば、データ600b1の先頭に位置する、ブロック番号1のブロックは、FPが100である。
次にストレージ装置100は、ブロックテーブル152aを参照して各ブロックのFPを比較することにより、FPが他のブロックと異なるブロック、およびFPが同一の複数のブロックのうち1個のブロックを記憶デバイス120にデータ600cとして記憶する。このとき、ストレージ装置100は、各ブロックが記憶されている記憶デバイス120cのアドレスを取得し、図7に示したアドレステーブル153aに記憶する。
例えば、データ600b1のブロック番号1(内容:A,B,C,D、FP:100)と、データ600b1のブロック番号4(内容:A,B,C,D、FP:100)とは同一の内容であることから、それぞれのブロックから生成されるFPは一致する。従って、ストレージ装置100は、ブロックテーブル152aを参照してブロック番号1のブロックとブロック番号4のブロックのFPを比較して一致することから、ブロック番号1のブロックのみをデータ600cの一部として記憶デバイス120に記憶させる。そして、ストレージ装置100は、ブロック番号1のブロックが記憶されているアドレス0x000を取得し、取得したアドレスをブロック番号1のFP120と関連付けてアドレステーブル153aに記憶させる。
また、ストレージ装置100は、FPが一致するデータ600b1のブロック番号3,5についても、ブロックテーブル152aを参照して比較することにより、同様にいずれか一方のみを記憶デバイス120に記憶させ、記憶させたアドレスをFPと関連付けてアドレステーブル153aに記憶させる。また、ブロック番号2のブロックについては、ブロックテーブル152aを参照して、データ600b1には同一のFPのものが存在しないので、ストレージ装置100は、記憶デバイス120に記憶させ、記憶させたアドレス0x008とFP120とを関連付けてアドレステーブル153aに記憶させる。また、ブロック番号6のブロックについても同様に、ストレージ装置100は、記憶デバイス120に記憶させ、記憶させたアドレス0x00cとFP101とを関連付けてアドレステーブル153aに記憶させる。
また、データ600b2のブロック番号7のブロックのFPは120であり、FPが同一のブロックが記憶デバイス120に記憶されている。このため、ストレージ装置100は、ブロックテーブル152aを参照して記憶デバイス120に同一のFP120を持つブロック番号2のブロックが存在するので、ブロック番号7番のブロックを記憶デバイスに記憶させない。また、同様に、ストレージ装置100は、データ600b2のブロック番号8のブロックのFPは100であり、ブロックテーブル152aを参照して記憶デバイス120に同一のFP100を持つブロック番号1のブロックが存在するので、ブロック番号8番のブロックを記憶デバイス120に記憶させない。
図9および図10は、第2の実施の形態の重複排除処理の手順を示すフローチャートである。本実施の形態のストレージ装置100は、バックアップ管理サーバ400により重複排除が行われたバックアップ対象のデータをデータ取得部102により取得すると、取得したデータについてさらに重複排除を実行する。本実施の形態のストレージ装置100は、バックアップ管理サーバ400から送信されたデータを受信すると重複排除処理を実行する。以下では、図9および図10に示す重複排除処理をフローチャートのステップ番号に沿って説明する。
[ステップS11]重複排除部103は、付加情報記憶部151に記憶されている、データ取得部102で取得したデータに対応する付加情報を取得する。
[ステップS12]重複排除部103は、ステップS11で、データに対応する付加情報を取得したか否かを判断する。付加情報を取得していれば、処理はステップS13に進められる。一方、付加情報を取得していなければ、処理はステップS15に進められる。
[ステップS13]重複排除部103は、取得したデータに対応する付加情報を参照し、取得したデータに対する重複排除の実行が可能であるか否かを判断する。重複排除が可能であれば、処理はステップS14に進められる。一方、重複排除が不可能であれば、処理はステップS21(図10)に進められる。
[ステップS14]重複排除部103は、取得したデータに対応する付加情報を参照し、取得したデータに対する重複排除がバックアップ管理サーバ400等で実行されているか否かを判断する。重複排除が実行されていれば、処理はステップS16に進められる。一方、重複排除が実行されていなければ、処理はステップS15に進められる。
[ステップS15]重複排除部103は、重複排除部103での重複排除の分割単位を初期値(例えば、8KB)に設定する。
[ステップS16]重複排除部103は、重複排除部103での重複排除の分割単位を、バックアップ管理サーバ400等で実行された重複排除の分割単位よりもさらに小さい分割単位(例えば、バックアップ管理サーバ400等で8KB単位で重複単位が実行されていれば、4KB)に設定する。
[ステップS17]重複排除部103は、データの重複排除を実行する。
[ステップS21]重複排除部103は、データに対応する付加情報を参照し、データの圧縮が可能であるか否かを判断する。圧縮が可能であれば、処理はステップS22に進められる。一方、圧縮が不可能であれば、処理はステップS23に進められる。
[ステップS22]重複排除部103は、データの圧縮を実行する。
[ステップS23]重複排除部103は、重複していないデータを記憶デバイス120に記憶させる。
[ステップS24]情報生成部104は、ステップS23によりデータが記憶された記憶デバイス120の領域を示すアドレス情報をアドレス情報記憶部153に記憶させる。
このように、第2の実施の形態のストレージ装置100では、データの重複排除の削減の効果をより高めるために、「クライアント方式」および「インライン方式」の両方を併用してストレージ装置に記憶されているデータ量の削減を行う。すなわち、まず、バックアップ管理サーバやクライアントで重複排除を実行し、次に、ストレージ装置においてさらに重複排除を実行する。これにより、重複排除の効果を高めることができる。
また、クライアント方式によって重複排除されたデータを記憶するストレージ装置で、インライン方式により、クライアント方式で重複排除された分割単位よりも大きい分割単位でFPを作成して重複排除を実行した場合には、既に重複排除された分割単位と同一以上の分割単位で重複排除を実行しているため、データ量の削減の効果が十分に得られない場合が生じ得る。これに対して、本実施の形態の重複排除部103は、付加情報に示された分割単位よりも小さい分割単位でデータを分割して重複排除を実行する。これにより、重複排除により削減されるデータ量を増加させることが可能となる。
また、重複排除部103は、データについて重複排除が実行不可能である場合には重複排除を実行しないので、重複排除を効果的に実行することができ、ストレージ装置100の負担の増加を抑制させることができる。
また、重複排除部103は、重複排除を実行した後にデータを圧縮してから記憶デバイス120に記憶させるので、ストレージ装置100のデータ量をさらに削減させることができる。
また、重複排除部103は、データの圧縮が不可能である場合にはデータを圧縮しないので、ストレージ装置100の負担の増加を抑制させることができる。
また、重複排除は、一般に、より小さい分割単位に分割して実行した方がデータ量の削減の効果が大きい。しかし、小さい分割単位に分割して重複排除を実行すると、重複排除を実行する装置における処理負担が増加することになる。これに対して、第2の実施の形態では、ストレージ装置100とバックアップ管理サーバ400とで分散して重複排除を実行することで、重複排除を効果的に実行することができ、ストレージ装置100およびバックアップ管理サーバ400の負担の集中を抑制しつつ重複排除により削減されるデータ量を増加させることができる。
[第3の実施の形態]
次に第3の実施の形態について説明する。第2の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いると共に説明を省略する。第3の実施の形態は、2個のストレージ装置でバックアップデータを二重化する際、複製元のストレージ装置で重複排除を実行したデータについて、複製先のストレージ装置でさらに重複排除を行う。
図11は、第3の実施の形態のシステム構成を示す図である。第3の実施の形態では、バックアップデータを二重化する際、重複排除を実行した複製元のストレージ装置200aは、重複排除の分割単位等を示す付加情報を複製先のストレージ装置200bに送信する。複製先のストレージ装置200bは、複製元のストレージ装置200aから送信された分割単位よりも小さい分割単位にデータを分割して重複排除を実行する。
図11に示すストレージシステムは、ストレージ装置200a,200b、ホストコンピュータ300、バックアップ管理サーバ700、ネットワーク500を有する。ストレージ装置200a,200b、ホストコンピュータ300およびバックアップ管理サーバ700は、それぞれ互いにネットワーク500を介して通信可能に接続されている。
ストレージ装置200a,200bは、記憶デバイスに対するデータの入出力を行う。ストレージ装置200a,200bは、RAID0〜6の機能を有し、複数の記憶デバイスをまとめて1台の記憶デバイスとして管理する。
ストレージ装置200aは、ホストコンピュータ300からバックアップの指示を受けたデータ600dについてインライン方式により重複排除を実行してデータ600eならびに付加情報および制御情報を生成し、データ600eならびに付加情報および制御情報をストレージ装置200bに送信する。付加情報は、データ600eの重複排除の実行状況を示す情報である。付加情報は、ストレージ装置200a,200bのそれぞれにおいて、図12において後述する付加情報記憶部251a,251bに記憶される。制御情報は、データ600eが分割されたブロックと分割された各ブロックのFPとの対応関係を示す情報である。制御情報は、ストレージ装置200a,200bのそれぞれにおいて、図12において後述する制御情報記憶部254a,254bに記憶される。
また、ストレージ装置200aは、ストレージ装置200bから送信された対応情報を受信すると、対応情報に基づいてデータ600eの重複するブロックの削除を実行する。対応情報は、ストレージ装置200aにおいて重複排除された複製元のデータ600eのブロックのFPと、ストレージ装置200bにおいて分割されたデータ600eのブロックのFPとを用いて、複製元であるストレージ装置200aに記憶されているデータ600eと、ストレージ装置200bにおいて分割されたデータ600eのブロックとの対応関係を示す情報である。対応情報は、ストレージ装置200a,200bのそれぞれにおいて、図12において後述する対応情報記憶部255a,255bに記憶される。
なお、本実施の形態の対応情報は、データが分割された各ブロックのFPを用いてブロック同士の対応関係を示すが、これに限らず、重複排除における分割の際にブロックに対して符号を一意に割り当て、割り当てた符号を用いる等、ブロックを一意に特定可能な情報を用いることができる。また、この場合、制御情報についても、FPに代えて、対応情報に用いたのと同様の、ブロックを一意に特定可能な情報を用いることができる。
ストレージ装置200bは、ストレージ装置200aから重複排除されたデータ600eならびに付加情報および制御情報を受信すると、付加情報に基づいてインライン方式によりさらにデータ600eの重複排除を実行し、重複排除の実行の結果得られたデータ600eの分割された各ブロックのFPと制御情報とに基づいてデータ600eとデータ600eの分割された各ブロックとの対応情報を生成し、対応情報をストレージ装置200aに送信する。
ホストコンピュータ300は、データ600を記憶している。また、ホストコンピュータ300は、記憶しているデータ600を使用して業務処理を実行する。
バックアップ管理サーバ700は、LAN等のネットワーク500を介して、ストレージ装置200a,200bによるホストコンピュータ300に記憶されているデータ600のバックアップ、リストア、ミラーリング等のスケジュール管理や実行制御を行う。
本実施の形態では、ストレージ装置200aがインライン方式によりホストコンピュータ300から送信されたデータ600dの重複排除を実行すると共に、重複排除の実行状況を示す付加情報およびデータ600dの重複排除により生成されたデータ600eの各ブロックとブロックのFPとの対応関係を示す制御情報をストレージ装置200bに送信する。このときストレージ装置200aから送信される付加情報は、データ600eについて重複排除が実行されているか、データ600eについて重複排除が実行されている場合の重複排除が実行された分割単位、データ600eのストレージ装置200bにおける重複排除が実行可能であるか等、データ600eの重複排除の必要性を示す。
付加情報により、ストレージ装置200bは、ストレージ装置200aからの付加情報により、受信したデータに対する重複排除が必要であるか否かを確認して、重複排除を実行するか否かを判断する。また、ストレージ装置200bは、付加情報に基づいてインライン方式によりデータ600eの重複排除を実行する際に、ストレージ装置200aで実行された重複排除の分割単位(例えば、8KBごと)よりも小さい分割単位(例えば、4KBごと)でデータ600eを分割して重複排除を実行する。これにより、既にストレージ装置200aで重複排除が実行されているデータ600eについて、ストレージ装置200bでさらに同一の分割単位で重複排除を実行するという無駄を排除することができる。
なお、ストレージ装置200bは、ストレージ装置200aからの付加情報の送信がない場合や、ストレージ装置200aで重複排除が実行されていない場合には、所定のサイズ(例えば、8KB)でストレージ装置200aから受信したデータを分割して重複排除の処理を実行する。
また、ストレージ装置200a,200bにおいて、データが記憶されている領域を削減するために、重複排除に加えてデータの圧縮を実行する。これにより、ストレージ装置200a,200b内にデータを記憶する際に使用される容量を削減することができる。また、重複排除は、一般に、データのファイル単位で重複排除を実行した場合と比較して、ブロックやレコード単位のようにファイルを分割した小さい分割単位で比較して実行した方がデータ量の削減の効果が大きい。
ここで、データ600dが既に圧縮された形式のデータである場合や、データがストレージ装置200aで圧縮形式のファイル形式に変換される場合には、ストレージ装置200bにおいてさらにデータ圧縮を実行しても効果がない。
これに対して本実施の形態では、ストレージ装置200bにおいて付加情報等により、受信したデータが圧縮データであるか否かを確認して圧縮処理を実行するか否かを判断するので、ストレージ装置200bの処理を効率化できる。
また、ストレージ装置200bは、ストレージ装置200aで重複排除されたデータについて、ブロックの分割単位をさらに小さくして重複排除する。これにより、重複排除によるデータの削減量を増加させ、複製先のストレージ装置200bに記憶されているデータ量を削減させることが可能となる。
なお、ストレージ装置200aで重複排除が行われていない場合、ストレージ装置200aから付加情報が送信されない場合、またはストレージ装置200aでのデータの分割単位が不明である場合、ストレージ装置200bは、あらかじめ設定されている分割単位で受信したデータを分割して重複排除を実行する。
また、ストレージ装置200bがストレージ装置200aより小さい分割単位で重複排除した場合には、ストレージ装置200aに対して、ストレージ装置200aから送信された制御情報に基づいて生成した対応情報を送信する。ストレージ装置200aは、対応情報を受信すると、対応情報に基づいてデータ600eにおける重複するブロックを削除し、データ600gを生成する。対応情報は、データ600eのブロックをストレージ装置200bが重複排除してデータ600fを生成した際に、データ600eのブロックとデータ600fのブロックとの間のブロックの対応関係を示す。
これにより、ストレージ装置200aが記憶しているデータについても、ストレージ装置200aで行われた重複排除と同等のデータ量の削除を行うことができる。
また、上記のように、ストレージ装置200bにおける重複排除は、ストレージ装置200aにおける重複排除よりも小さい分割単位で実行される。さらに、本実施の形態では、ストレージ装置200bにおいて、ある分割単位で重複排除が実行されている場合には、ストレージ装置200aはストレージ装置200bと同一の分割単位での重複排除の処理を実行しない。
これにより、ストレージ装置200aで別個に重複排除の実行を行うことなく、対応情報を利用してストレージ装置200bと同一の小さい分割単位で重複するブロックが削除されるので、ストレージ装置200aでの負荷や時間を節約して、ストレージ装置200aのデータ量を削減することができる。
また、ストレージ装置200aは、ストレージ装置200bから対応情報の送信がない場合には、データ600eの重複するブロックの削除は実行しない。
図12は、第3の実施の形態のストレージ装置の機能を示すブロック図である。本実施の形態のストレージ装置200a,200bは、ネットワーク500により互いに接続されていると共に、ホストコンピュータ300と接続されている。
ストレージ装置200aは、ホストコンピュータ300から送信されたバックアップの対象であるデータを、ネットワーク500を介して取得し、インライン方式により重複排除を実行してデータ量を削減して記憶することにより、バックアップに使用する記憶容量を削減する。
ストレージ装置200bは、ストレージ装置200aで重複排除されたデータを、ネットワーク500を介して取得し、インライン方式によりさらに重複排除を実行してデータ量を削減して記憶することにより、バックアップに使用する記憶容量をさらに削減する。
また、ストレージ装置200aは、ストレージ装置200bから送信される対応情報を取得すると、取得した対応情報を利用して記憶デバイス220aに記憶しているデータのブロックうち重複するブロックを削除することにより、バックアップに使用する記憶容量をストレージ装置200bにおける重複排除による削減結果と同程度に削減する。
ストレージ装置200aは、情報取得部201a、データ取得部202a、重複排除部203a、情報生成部204a、情報出力部205a、データ出力部206a、記憶デバイス220a、情報記憶部250aを有する。情報記憶部250aは、付加情報記憶部251a、ブロック情報記憶部252a、アドレス情報記憶部253a、制御情報記憶部254a、対応情報記憶部255aを有する。
情報取得部201aは、ストレージ装置200b等の他の重複排除を実行可能な装置からネットワーク500を介して重複排除の実行状況を示す情報(例えば、付加情報や対応情報)を取得し、取得した情報を付加情報記憶部251aに記憶させる。
データ取得部202aは、ホストコンピュータ300等からネットワーク500を介してストレージシステムでバックアップするデータを取得することができる。また、データ取得部202aは、ストレージ装置200b等からネットワーク500を介してストレージ装置200bによる重複排除が実行されたデータを取得することができる。
重複排除部203aは、付加情報記憶部251aに記憶されている他の装置から受信した情報が有する付加情報に示された分割単位よりも小さい分割単位でデータ取得部202aが取得したデータを分割し、分割したデータ(ブロック)について重複排除を実行してデータを得る。このとき重複排除部203aは、各ブロックを識別・特定するFPを生成し、FPが一致するブロックについては1個を残して削除することにより重複排除を実行する。FPは、識別情報として機能する。次に、重複排除部203aは、重複排除の実行により得られたデータを圧縮して記憶デバイス220aに記憶させることができる。これにより、ストレージ装置200b等で既に行われた重複排除後のデータを、付加情報に基づいてストレージ装置200b等で分割された分割単位よりも小さい分割単位で分割して重複排除することができる。
重複排除部203aは、情報記憶部250aが有する付加情報記憶部251aに記憶されている情報が有する付加情報がストレージ装置200b等によるデータの重複排除が実行されていることを示す場合、またはデータの重複排除が実行不可能であることを付加情報が示す場合、重複排除を実行せずにデータを記憶デバイス220aに記憶させる。
重複排除部203aは、情報記憶部250aが有する付加情報記憶部251aに記憶されている情報が有する付加情報が、受信データが圧縮不可能であることを示す場合、重複排除を実行して得られたデータを圧縮せずに記憶デバイス220aに記憶させる。
なお、重複排除部203aは、受信データが、圧縮不可能なデータ形式であることを付加情報が示す場合に、重複排除を実行して得られたデータを圧縮せずに記憶デバイス220aに記憶させてもよい。また、重複排除部203aは、インライン方式で重複排除を実行するが、これに限らず、データ取得部202aにより取得されたデータを一旦記憶デバイス220aに記憶してから重複排除を実行するポストプロセス方式で実行してもよい。
重複排除部203aは、ストレージ装置200bからの対応情報に基づき情報生成部204aによりブロック情報記憶部252aのブロック情報が更新された場合、更新されたブロック情報の対応関係に基づき、記憶デバイス220aのデータについて、ストレージ装置200bにより重複排除されたブロックを記憶デバイス220aから削除する。
情報生成部204aは、付加情報、ブロック情報、アドレス情報、制御情報、対応情報を生成し、それぞれ付加情報記憶部251a、ブロック情報記憶部252a、アドレス情報記憶部253a、制御情報記憶部254a、対応情報記憶部255aに記憶させる。
情報生成部204aは、ブロック情報に基づき、FPが同一のブロックの情報について、1個を残して削除することにより、制御情報を生成する。情報生成部204aが生成する制御情報は、詳しくは図14において後述するが、重複排除の対象であるデータが分割されたブロックと分割された各ブロックのFPとの対応関係を示す。
また、情報生成部204aは、ストレージ装置200bから送信された付加情報、制御情報、対応情報を受信した場合、それぞれ対応する付加情報記憶部251a、制御情報記憶部254a、対応情報記憶部255aに記憶させる。
また、情報生成部204aは、詳しくは図19において後述するが、ストレージ装置200bから送信された対応情報を受信した場合、受信した対応情報に基づいて、ブロック情報記憶部252aに記憶されているブロック情報を更新する。また、このブロック情報の更新および重複排除部203aによるブロックの削除に伴い、アドレス情報記憶部253aに記憶されているアドレス情報を更新する。
情報出力部205aは、情報生成部204aにより生成された情報をネットワーク500を介してストレージ装置200bに送信する。
データ出力部206aは、重複排除部203aによる重複排除により得られたデータを、ネットワーク500を介してストレージ装置200bに送信する。
記憶デバイス220aは、図示しない複数の記憶デバイスを用いたRAIDで構成されており、データを記憶可能な記憶領域を有する。この記憶領域に、重複排除部203aにより重複排除されたデータが記憶される。
付加情報記憶部251aは、重複排除部203aまたはストレージ装置200b等による重複排除の実行時にデータが分割された分割単位を示す付加情報を記憶する。また、付加情報は、データ取得部202aにより取得されたデータがストレージ装置200b等により重複排除されているか否か、受信したデータの重複排除の実行が可能であるか否か、受信したデータが圧縮可能であるか否かを示す。また、付加情報は、受信したデータのデータ形式を示す。
ブロック情報記憶部252aは、ブロックとFPとを関連付けるブロック情報を記憶する。アドレス情報記憶部253aは、FPとFPで示されるブロックが記憶デバイス220aにおいて記憶されている記憶領域とを関連付けるアドレス情報を記憶する。
ここで、ブロック情報記憶部252aに記憶されているブロック情報は、重複排除部203aで重複排除が実行されているがストレージ装置200bによる重複排除が実行される前のデータの分割された各ブロックと、そのブロックのFPとの対応関係を示す情報であり、付加情報と共にストレージ装置200bに送信される。
ストレージ装置200bは、ストレージ装置200aと同様の機能を有し、情報取得部201b、データ取得部202b、重複排除部203b、情報生成部204b、情報出力部205b、データ出力部206b、記憶デバイス220b、情報記憶部250bを有する。情報記憶部250bは、付加情報記憶部251b、ブロック情報記憶部252b、アドレス情報記憶部253b、制御情報記憶部254bを有する。
また、ブロック情報記憶部252bに記憶されているブロック情報は、ストレージ装置200bによって重複排除が実行されているが重複排除部203bによる重複排除が実行される前のデータの分割された各ブロックと、重複排除部203bによる重複排除が実行された後のデータの分割された各ブロックとの対応関係を示す対応情報として機能する。
また、情報生成部204bは、詳しくは図15において後述するが、複製元のストレージ装置200aに記憶されているデータと、複製先のストレージ装置200bにおいて分割されたブロックとの対応関係を示す対応情報を生成する。
図13は、第3の実施の形態のブロックテーブルを示す図である。図13に示すブロックテーブル252aaは、ストレージ装置200aが有するブロック情報記憶部252aに記憶されており、ストレージ装置200aの情報生成部204aによって作成および管理される。ブロックテーブル252aaは、ストレージ装置200aが有する重複排除機能によりデータが分割されたブロックから生成されたFPを示すブロック情報を記憶するテーブルである。
図13に示すブロックテーブル252aaには、項目として“ブロック番号”、“FP”が設けられている。ブロックテーブル252aaにおいて、各項目の横方向に並べられた情報同士がストレージ装置200aにおけるブロック情報として互いに関連付けられている。ストレージ装置200aのブロック情報は、ストレージ装置200aにおける重複排除の実行と共に作成された後、付加情報と共にストレージ装置200bに送信される。
ブロック番号は、ストレージ装置200aで分割したブロックを特定するために、各ブロックに付された番号である。
FPは、ストレージ装置200aで生成した、ブロック番号が示すブロックに対応するFPである。
本実施の形態のストレージ装置200aにおける重複排除では、第2の実施の形態と同様、ブロックテーブル252aaにおいてFPを比較し、FPが同一のブロックについては、1個のブロックを記憶デバイス220aに記憶させると共に他のブロックは記憶デバイス220aに記憶させない。ストレージ装置200bにおける重複排除でも同様であるため、説明を省略する。
また、本実施の形態では、ストレージ装置200aにおける重複排除の実行に伴い、ブロックテーブル252aaのブロック情報に基づき、ブロック情報のFPが同一のブロックを削除することにより、図14において後述する制御情報が生成される。
図14は、第3の実施の形態の制御テーブルを示す図である。図14に示す制御テーブル254aaは、ストレージ装置200aが有する制御情報記憶部254aに記憶されており、ストレージ装置200aの情報生成部204aによって作成および管理される。制御テーブル254aaは、ストレージ装置200aが有する重複排除機能によりデータが重複排除されたブロックと重複排除されたブロックのFPとの対応関係を示す制御情報を記憶するテーブルである。
図14に示す制御テーブル254aaには、図13において前述したブロックテーブル252aaと同様、項目として“ブロック番号”、“FP”が設けられている。制御テーブル254aaにおいて、各項目の横方向に並べられた情報同士がストレージ装置200aにおける制御情報として互いに関連付けられている。ストレージ装置200aの制御情報は、ストレージ装置200aにおける重複排除の実行に伴い作成された後、付加情報と共にストレージ装置200bに送信される。
ブロック番号は、ストレージ装置200aで分割したブロックを特定するために、各ブロックに付された番号である。
FPは、ストレージ装置200aで生成した、ブロック番号が示すブロックに対応するFPである。
ここで、本実施の形態における制御情報とブロック情報との違いについて説明する。本実施の形態のストレージ装置200a,200bでは、第2の実施の形態と同様、重複排除の実行時において、図13において前述したブロック情報を作成し、ブロック情報においてFPが同一のブロックを記憶しないことで重複排除を実行する。本実施の形態の制御情報に示されているブロックは、重複排除によりFPが重複するブロックが1個を残して削除されている点で、ブロック情報と異なる。制御情報は、情報生成部204aにより、図13において前述したストレージ装置200aのブロック情報からFPが同一のブロックを削除して生成される。
この制御情報が、ストレージ装置200aで重複排除されたデータと共にストレージ装置200bに送信されることで、ストレージ装置200aで重複排除したデータの各ブロックと、そのブロックのFPとの対応関係をストレージ装置200bに対して通知することができる。
本実施の形態では、ストレージ装置200aにおける重複排除の実行が完了した後、ストレージ装置200bに対して重複排除により分割されたデータ600eと共に、付加情報および制御情報が送信される。
図15は、第3の実施の形態の対応テーブルを示す図である。図15に示す対応テーブル255aaは、ストレージ装置200aが有する対応情報記憶部255aに記憶されており、ストレージ装置200aの情報生成部204aによって作成および管理される。対応テーブル255aaは、複製元であるストレージ装置200aに記憶されているデータと、ストレージ装置200bにおいて分割されたデータの各ブロックとの対応関係を示す対応情報を記憶するテーブルである。
図15に示す対応テーブル255baには、項目として“ブロック番号”、“FP”、“複製元FP”が設けられている。対応テーブル255baにおいて、各項目の横方向に並べられた情報同士がストレージ装置200bにおける対応情報として互いに関連付けられている。
ブロック番号は、ストレージ装置200bで分割したブロックを特定するために、各ブロックに付された番号である。
FPは、ストレージ装置200bで生成した、ブロック番号が示すブロックに対応するFPである。
複製元FPは、複製元であるストレージ装置200aにおいて重複排除により分割されたデータ600eのブロックに付されたFPである。
ストレージ装置200bの対応情報では、複製元FPおよびFPが関連付けられている。これにより、複製元であるストレージ装置200aにおいて分割されたデータ600eのブロックに付されたFPと、複製先であるストレージ装置200bにおいて重複排除により分割されたデータ600fのブロックに付されたFPとの対応関係が示される。
本実施の形態では、ストレージ装置200aで分割して得られたブロックをストレージ装置200bでさらに分割したブロックの重複排除が実行される。図15の例では、複製元FPには、ストレージ装置200bが分割するブロックの元となる、複製元のストレージ装置200aが分割したブロックに対して生成したFPと、ストレージ装置200bが分割したブロックのうち何番目のブロックなのかを示す情報とを含む。例えば、ブロック番号“1”のブロックの複製元FPが“100(01)”である場合、そのブロックは、ストレージ装置200aが生成したFPが“100”のブロックをストレージ装置200bでさらに分割して得られたブロックの1番目のブロックであることを示す。
本実施の形態では、ストレージ装置200bでストレージ装置200aから送信されたデータについての重複排除が実行された後、FPおよび複製元FPに示された情報が、対応情報としてストレージ装置200bからストレージ装置200aに送信される。ストレージ装置200aでは、詳しくは図19で後述するが、受信した対応情報およびブロックテーブル252aaに基づいて、記憶しているデータの重複するブロックを削除する。
図16および図17は、第3の実施の形態の重複排除処理の様子を示す図である。図16および図17に従って、本実施の形態のストレージ装置200a,200bにおける重複排除処理を説明する。
本実施の形態では、図16に示すようにストレージ装置200aは、ホストコンピュータ300からネットワーク500を介してデータ600dを取得する。ここで、データ600dは、分割されていない連続する1個のデータであるが、データ600d1,600d2,600d3のように所定の分割単位(例えば、8KB)で3個に分割した場合に、データ600d1,600d2は内容が同一である。しかし、データ600d3は、四角で示した各部分のうち斜線が付された“E”について、データ600d1,600d2における対応する部分の内容である“D”と異なっているものとする。
次に、ストレージ装置200aは、取得したデータ600d1を、それぞれ所定の分割単位のブロックに分割し、各ブロックに対応するFPを生成し、各ブロックおよび対応するFPを示すブロック情報を生成し、ブロック情報記憶部252aに記憶する。次に、ストレージ装置200aは、ブロック情報を参照して、他のブロックとFPが一致するブロックについては、1個を記憶デバイス220aに記憶させ、他のブロックは記憶させない。そして、ストレージ装置200aは、記憶デバイス220aに記憶させたブロックおよび対応するFPを示す制御情報を生成し、制御情報記憶部254aに記憶する。また、ストレージ装置200aは、重複排除の実行に伴い付加情報を生成し、記憶したデータならびに生成した付加情報および制御情報をストレージ装置200bに送信する。
具体的には、ストレージ装置200aは、データ600dを所定の分割単位のブロックに分割し、データ600d1〜600d3についてFP(図示省略)を生成する。そして、ストレージ装置200aは、データ600d1〜600d3と対応するFPとを示すブロック情報を生成する。このとき、データ600d2については、データ600d1と内容が同一であるので、データ600d2のFPは、データ600d1のFPと同一になる。このため、ストレージ装置200aは、データ600d2を記憶デバイス220aに記憶させない。また、ストレージ装置200aは、FPがデータ600d2と同一であったが記憶させることとして1個選択したデータ600d1およびFPが同一のものがなかったデータ600d3を、それぞれデータ600e1,600e3として記憶デバイス220aに記憶する。また、ストレージ装置200aは、データ600e1とデータ600e1に対応するFP601e1とを関連付けると共に、データ600e3とデータ600e3に対応するFP601e3とを関連付けて制御情報を生成し、制御情報記憶部254aに記憶する。また、ストレージ装置200aは、FP601e1とFP601e1のデータ600e1が記憶されている記憶領域のアドレスとを関連付けると共に、FP601e3とFP601e3のデータ600e3が記憶されている記憶領域のアドレスとを関連付けてアドレス情報を生成し、アドレス情報記憶部253aに記憶する。次に、ストレージ装置200aは、ネットワーク500を介してストレージ装置200bにデータ600e1,600e3ならびに各データに対応する付加情報および制御情報を送信する。
ストレージ装置200bは、ストレージ装置200aから送信されるデータ600e1,600e3ならびに各データの付加情報および制御情報を取得すると、取得したデータ600e1,600e3を、それぞれ付加情報が示すストレージ装置200aにおける重複排除の分割単位よりも小さい分割単位(例えば、4KB)のブロックに分割する。
次に、ストレージ装置200bは、分割した各ブロックに対応するFPを生成し、各ブロックおよび対応するFPを示すブロック情報を生成し、ブロック情報記憶部252bに記憶する。次に、ストレージ装置200bは、FPが一致するブロックについては、1個を記憶デバイス220bに記憶させ、他のブロックは記憶させない。
次に、図17に示すように、ストレージ装置200bは、重複排除を実行すると共に、重複排除の実行に伴い対応情報を生成し、生成した対応情報をストレージ装置200aに送信する。対応情報は、複製元であるストレージ装置200aから複製先であるストレージ装置200bに送信されたデータ(データ600e1,600e3)に対応するFP(FP601e1,601e3)と、ストレージ装置200bにおいて重複排除により生成されたデータ(データ600e11,600e32)にそれぞれ対応するFP(FP601ef11,601e32)との対応関係を示す情報である。
対応情報の生成について具体的に説明すると、ストレージ装置200bは、データ600e1,600e3ならびに付加情報および制御情報を受信すると、データ600e1を所定の分割単位で分割してデータ600e11,600e12とし、データ600e3を所定の分割単位で分割してデータ600e31,600e32とする。そして、ストレージ装置200bは、データ600e11,600e12,600e31,600e32についてFPを生成する。これにより、データ600e11に対応するFP601e11、データ600e12に対応するFP601e12、データ600e31に対応するFP601e31、データ600e32に対応するFP601e32が生成される。また、ストレージ装置200bは、データ600e1のFP601e1とデータ600e11,600e11のそれぞれのFP601e1,601e12との対応関係を示すと共に、データ600e3のFP601e3とデータ600e31,600e32のFP601e31,601e32との対応情報を示す対応情報を生成する。また、対応情報には、ストレージ装置200bにおける重複排除により分割した分割単位を示す情報も含まれる。
また、ストレージ装置200bは、重複排除の実行において、取得したデータ600e1,600e2を、それぞれ所定の分割単位のブロックに分割し、各ブロックに対応するFPを生成し、各ブロックおよび対応するFPを示すブロック情報を生成し、ブロック情報記憶部252bに記憶する。次に、ストレージ装置200bは、ブロック情報を参照して、他のブロックとFPが一致するブロックについては、1個を記憶デバイス220bに記憶させ、他のブロックは記憶させない。また、ストレージ装置200bは、生成した対応情報をストレージ装置200bに送信する。
具体的には、ストレージ装置200bは、データ600e1,600e2を所定の分割単位のブロックに分割する。そしてストレージ装置200bは、分割したブロックであるデータ600e11に対応するFP601e11、データ600e12に対応するFP601e12、データ600e31に対応するFP601e31、データ600e32に対応するFP601e32を生成する。そして、ストレージ装置200aは、データ600e11,600e12,600e31,600e32と対応するFP601e11,601e12,601e31,601e32とを示すブロック情報を生成する。
このとき、データ600e12,600e31については、データ600e11と内容が同一であるので、データ600e12に対応するFP601e12およびデータ600e31に対応するFP601e31は、データ600e11に対応するFP601e11と同一になる。このため、ストレージ装置200bは、ブロック情報を参照して、FPがデータ600e11と同一であるデータ600e12,600e31を記憶デバイス220bに記憶させない。また、ストレージ装置200bは、FPがデータ600e12,600e31と同一であったが記憶させることとして1個選択したデータ600e11およびFPが同一のものがなかったデータ600e32を、それぞれデータ600f11,600f32として記憶デバイス220bに記憶する。そして、ストレージ装置200bは、記憶デバイス220bに記憶されたデータと同一であるデータ600e11とデータ600e11に対応するFP601e11とを関連付けると共に、データ600e32とデータ600e32に対応するFP601e32とを関連付けて対応情報記憶部255bに記憶する。また、ストレージ装置200bは、記憶デバイス220bに記憶されたデータのFPであるFP601f11とFP601f11のデータ600f11が記憶されている記憶領域のアドレスとを関連付けると共に、FP601f32とFP601f32のデータ600f32が記憶されている記憶領域のアドレスとを関連付けてアドレス情報記憶部253bに記憶する。次に、ストレージ装置200bは、ネットワーク500を介して対応情報をストレージ装置200aに送信する。
図17に示す例では、対応情報は、データ600e1のFP601e1とデータ600e11,600e12のFP601e11,601e12が対応関係を有することを示すと共に、データ600e3のFP601e3とデータ600e31,600e32のFP601e31,601e32が対応関係を有することを示す。また、対応情報には、ストレージ装置200bにおける重複排除の分割単位を示す情報(例えば、“4KB”)が含まれる。これにより、ストレージ装置200aは、ストレージ装置200bの重複排除における分割単位を認識することができる。
ストレージ装置200aは、ストレージ装置200bから送信される対応情報を取得すると、取得した対応情報に基づいて記憶しているデータの重複するブロックを削除する。
具体的には、ストレージ装置200aは、対応情報を取得すると、記憶デバイス220aに記憶しているデータ600eについてのブロック情報を、ブロック情報記憶部252aから取得する。そして、ストレージ装置200aは、詳しくは図19において後述するが、取得した対応情報およびブロック情報記憶部252aに記憶しているブロック情報に基づいて、ブロック情報のFPと対応情報のFPとを紐付けることによりデータ600e1,600e3のFP601e1,601e3と、FP600e11,600e12,600e31,600e32とを対応付けて、ストレージ装置200aのブロック情報を更新する。これにより、ストレージ装置200aは、データ600e1,600e3の各ブロックについて、重複排除を実行することなく、ストレージ装置200bにおける重複排除後のFPを取得できる。
次に、ストレージ装置200aは、更新されたブロック情報に基づいて、FP601e11,601e12,601e31,601e32を比較し、同一のFPを抽出する。ここでは、FP601e11,601e12,601e31が同一であったものとする。そして、更新されたブロック情報に基づいて、FPが同一であったブロックを特定し、FPが同一であると特定されたデータ600e11,600e12,600e31については1個(例えば、データ600e11)を残して削除する。これにより、データ600f11,600f12,600f31,600f32のうちの重複するブロックが削除される。ここで、データ600e1,600e3について重複するブロックが削除された後のブロックであるデータ600e11をデータ600g11とする。同様に、データ600e32をデータ600g32とする。また、データ600g11に対応するFPは、FP601g11とし、データ600g32に対応するFPは、FP601g32とする。
次に、ストレージ装置200aは、FP601g11とFP601g11のデータ600g11が記憶されている記憶領域のアドレスとを関連付けると共に、FP601g32とFP601g32のデータ600g32が記憶されている記憶領域のアドレスとを関連付け、アドレス情報記憶部253aに記憶されているアドレス情報を更新する。
図18は、第3の実施の形態のデータの重複するブロックの削除の様子を示す図である。図18に示すように、本実施の形態では、ストレージ装置200aにおいて重複排除されたデータについて、ストレージ装置200bにおいてさらに重複排除が実行され、データ600fが生成される際、ストレージ装置200bは、対応情報を作成し、作成した対応情報をストレージ装置200aに送信する。
図18において、ストレージ装置200a内の複数の四角は、ストレージ装置200aが有する記憶デバイス220aの記憶領域(以下、ストレージ装置200aの記憶領域とする)を示す。同様に、ストレージ装置200b内の複数の四角は、ストレージ装置200bが有する記憶デバイス220bの記憶領域(以下、ストレージ装置200bの記憶領域とする)を示す。また、ストレージ装置200a,200bの四角内の文字は、その記憶領域の記憶内容を示す。同一の文字の記憶領域は、同一の記憶内容であるものとする。また、データ600f11の右端の四角内の文字が“D”であり、一方、データ600f32の右端の四角内の文字が斜線を掛けた“E”である。これはデータ600f11とデータ600f32の内容が異なることを示している。これに対して、例えば、データ600e11とデータ600e12等、四角内の文字がすべて同じブロック同士は、同じ内容のデータであるものとする。
図18の右側に、ストレージ装置200bにおける重複排除が実行された後の時点の、データ600fが記憶されているストレージ装置200bの記憶領域を示す。ストレージ装置200bの記憶領域には、アドレス0x000からアドレス0x003までにデータ600f11が記憶されている。また、アドレス0x004からアドレス0x007までにデータ600f32が記憶されている。
図18の中央に、対応情報による重複するデータの削除の以前の時点のストレージ装置200aの記憶領域を示す。対応情報による重複するデータの削除の以前の時点では、ストレージ装置200bの記憶領域には、アドレス0x000からアドレス0x003までにデータ600e11が記憶されている。また、アドレス0x004からアドレス0x007までにデータ600e12が記憶されている。また、アドレス0x008からアドレス0x00bまでにデータ600e31が記憶されている。また、アドレス0x00cからアドレス0x00fまでにデータ600e32が記憶されている。
対応情報は、ストレージ装置200aでデータ600dについて重複排除を実行して得られたデータ600eの各ブロックであるデータ600e1,600e3と、データ600eをストレージ装置200bでさらに重複排除を実行して得られたデータ600eの各ブロックであるデータ600e11,600e12,600e31,600e32との対応関係を示す。図18の例では、データ600e1のFP601e1とデータ600e11のFP601e11、データ600e12のFP601e12が対応関係を有することを示していると共に、データ600e3のFP601e3とデータ600e31のFP601e31、データ600e32のFP601e32が対応関係を有することを示している。
ストレージ装置200aは、対応情報を受信すると、対応情報に基づいてブロック情報記憶部252aに記憶しているブロック情報を、データ600e1とFP601e11,601e12を対応付けると共に、データ600e3とFP601e31,601e32を対応付けるように更新する。次に、ストレージ装置200aは、更新したブロック情報に基づいて、記憶しているデータ600eの重複するブロックである(図18における中央のストレージ装置200aの網掛けで示した領域)データ600e12,600e31を削除する。
ここで、図18の左側に、ストレージ装置200aにおけるデータ600eについて対応情報に基づく削除の実行後の時点の記憶領域を示す。データ600eについて対応情報に基づく削除の実行後の時点(図18の左側)のデータを、データ600gとする。ストレージ装置200bは、対応情報に基づく削除により、データ600eにおいて重複していたデータ600e12,600e31が記憶されていた記憶領域であるアドレス0x004からアドレス0x00bまで(図18における左側のストレージ装置200aの空白の領域)は、空き領域となる。また、ストレージ装置200aは、重複するブロックの削除に伴い、アドレス情報記憶部253bに記憶されているアドレス情報を、データ600g11,600g11のそれぞれに対応するFP601g11,600g32と、記憶デバイス220aにおいてデータ600g11,600g11がそれぞれ記憶されている記憶領域のアドレスとを対応付けて更新する。
これにより、ストレージ装置200aは、ストレージ装置200bから送信される対応情報を取得することにより、ストレージ装置200bと同一の小さい分割単位による重複排除と同等のデータ量の削減の効果を得ることができる。
図19は、第3の実施の形態のブロック情報の更新の様子を示す図である。図20は、第3の実施の形態のアドレス情報の更新の様子を示す図である。本実施の形態では、ストレージ装置200bにおける重複排除の実行の後、ストレージ装置200aが記憶している制御情報およびストレージ装置200bから送信された対応情報に基づいて、記憶しているデータが削除され、ストレージ装置200aのブロック情報およびアドレス情報が更新される。以下に、図19および図20に従って、対応情報に基づくストレージ装置200aにおけるブロック情報およびアドレス情報の更新について説明する。
図19に示す制御テーブル254aa1は、ストレージ装置200aにおける重複排除が実行された後の時点の、ストレージ装置200aの制御情報のテーブルである。対応テーブル255ba1は、ストレージ装置200bにおける重複排除が実行された後の時点の、ストレージ装置200bの対応情報のテーブルである。ブロックテーブル252aa1は、ストレージ装置200bにおける重複排除が実行された後の時点において、記憶している制御情報およびストレージ装置200bから送信された対応情報に基づいて更新されたストレージ装置200aのブロック情報のテーブルである。
制御テーブル254aa1は、図16および図18において前述したように、ストレージ装置200aにおけるデータ600dに対する重複排除で生成されたブロック(データ600e1,600e3)のブロック番号と、データ600dに対する重複排除の実行に伴い生成されたブロックのFPとを関連付けて示す。
対応テーブル255ba1は、図16および図18において前述したように、ストレージ装置200bにおけるデータ600eに対する重複排除で生成されたブロック(データ600e11,600e32)のブロック番号と、データ600eに対する重複排除の実行により生成されたブロックのFPと、さらに“複製元FP”として重複排除を実行する前のデータ600eのブロック(データ600e1,600e3)のFPとの対応関係を示す情報を関連付けて示す。
ここで、複製元FPにおける括弧の外の左側の数字は、複製元であるストレージ装置200bにおいて重複排除を実行する前のデータ600eのブロックであるデータ600e1,600e3のFPである。また、複製元FPにおける括弧内の数字は、複製先であるストレージ装置200aにおいてデータ600eが重複排除されて生成されたデータ600eのブロックであるデータ600e11,600e32が、分割前のデータ600e1,600e3を分割して生成した場合にいずれの部分に対応するかを示す情報である。例えば、括弧内の数字が“01”であれば、そのブロックが、分割前のデータ600e1を分割した場合の先頭のブロックに対応することを示す。また、括弧内の数字が“02”であれば、そのブロックが分割前のデータ600e1を分割した場合に先頭から2番目のブロックに対応することを示す。
本実施の形態では、ストレージ装置200bにおける重複排除が実行された後、ストレージ装置200bからストレージ装置200aに対応情報が送信される。この対応情報には、ストレージ装置200aから送信され、ストレージ装置200bの制御情報記憶部254bに記憶されている制御情報と、ストレージ装置200bにおける重複排除に伴い分割されたブロックのFPとに基づいて生成される。
次に、ストレージ装置200aは、ストレージ装置200bから送信された対応情報を受信すると、受信した対応情報を対応情報記憶部255aに記憶する。そして、ストレージ装置200aは、対応情報を用いて、図13に示したブロックテーブル252aaが、ブロックテーブル252aa1のように、ストレージ装置200aのブロック情報を更新する。
以下に、本実施の形態のストレージ装置200aにおけるブロックテーブル252aa1の更新について、ブロックテーブル252aa1のブロック番号1に基づいて説明する。ストレージ装置200aの情報生成部204aは、制御テーブル254aa1を参照して、制御テーブル254aa1のブロック番号1のブロックに対応するFPは100であると判断する。情報生成部204aは、これに基づいてストレージ装置200bから送信された対応情報から複製元FPが100であるブロックを探索し、ブロック番号1,2の2個のブロックを対応情報から発見する。ここで、複製元FPの括弧内の値は、ストレージ装置200bにおけるデータ分割の際に、分割されたデータの内の何番目のデータであったかを示す。
次に、情報生成部204aは、ブロックテーブル252aaに、ブロック番号1001を新たに設定する。そして、情報生成部204aは、ストレージ装置200bから送信された対応情報上で発見された、複製元FP“100”に対応するブロック番号1(FP:600)、ブロック番号2(FP:601)のそれぞれに対応するFPを、ブロック番号1001に対してブロックテーブル252aa1のように設定する。ここで、新たに設定するブロック番号として、例えば、桁数を異ならせる等により、重複するブロックが削除される以前のブロックのブロック番号との重複を回避可能な番号を設定するとよい。情報生成部204aが、以上の処理をブロックテーブル252aa1の更新前に設定されていたすべてのブロックについて繰り返すことにより、ストレージ装置200aにおける重複排除の実行直後の状態であるブロックテーブル252aaが更新されてブロックテーブル252aa1のようになる。
ストレージ装置200aは、この更新後のブロックテーブル252aa1を用いて、FPが同一のブロックを抽出することにより、記憶デバイス220aに記憶されている重複するブロックを削除する。
図20に示すアドレステーブル253aa1は、ストレージ装置200aにおける重複排除が実行された後の時点の、ストレージ装置200aのアドレス情報のテーブルである。アドレステーブル253aa2は、ストレージ装置200bにおける重複排除が実行された後の時点において、ストレージ装置200bから送信された対応情報に基づくデータの重複するブロックの削除により更新されたストレージ装置200aのアドレス情報のテーブルである。
本実施の形態では、ストレージ装置200bにおける重複排除が実行された後、ストレージ装置200bからストレージ装置200aに対応情報が送信される。
次に、ストレージ装置200aは、ストレージ装置200bから送信された対応情報を受信すると、対応情報に基づいて記憶デバイス220aに記憶されている重複するブロックを削除し、削除による記憶領域のブロックおよびFPの変化に応じて、アドレステーブル253aa1からアドレステーブル253aa2のように、アドレス情報を更新する。
以下に、アドレステーブル253aa1の更新について説明する。ストレージ装置200aの情報生成部204aは、重複排除部203aによって対応情報に基づくデータ600eの重複するブロックの削除が実行された後、アドレステーブル253aa1に対して、重複するブロックが削除されたデータ600eにおける削除前の各ブロックのFPおよびデータ600の各ブロックが記憶されている記憶領域のアドレスを削除する。また、ストレージ装置200aは、重複排除の実行により生成されたブロックが記憶されているストレージ装置200aの記憶領域および生成されたブロックに対応するFPを設定する。情報生成部204aが、以上の処理をアドレステーブル253aa2の更新前に設定されていたすべてのブロックについて繰り返すことにより、ストレージ装置200aのアドレステーブル253aa1が更新されてアドレステーブル253aa2のようになる。
図21は、第3の実施の形態のストレージ装置で実行される処理の手順を示すシーケンス図である。以下では、図21に示す本実施の形態のバックアップデータの複製元であるストレージ装置200aおよび複製先であるストレージ装置200bで重複排除が実行される際の処理手順について、シーケンス図のステップ番号に沿って説明する。
[ステップS31]ストレージ装置200aは、バックアップデータについて重複排除処理(図9および図10)を実行する。
[ステップS32]ストレージ装置200aは、ステップS31における重複排除処理に基づき、付加情報および制御情報を生成する。
[ステップS33]ストレージ装置200aは、ステップS31で重複排除されたデータならびにステップS32で生成された付加情報および制御情報をストレージ装置200bに送信する。
[ステップS41]ストレージ装置200bは、ステップS33でストレージ装置200aから送信されたデータならびに付加情報および制御情報を受信する。
[ステップS42]ストレージ装置200bは、ステップS41で受信した付加情報に基づき、ステップS41で受信したデータについて重複排除処理を実行する。
[ステップS43]ストレージ装置200bは、ステップS42における重複排除処理に基づき、対応情報を生成する。対応情報は、ストレージ装置200bにおいて重複排除されたデータの制御情報を有する。
[ステップS44]ストレージ装置200bは、ステップS43で生成された対応情報をストレージ装置200aに送信する。
[ステップS34]ストレージ装置200aは、ステップS44でストレージ装置200bから送信された対応情報を受信する。
[ステップS35]ストレージ装置200aは、ステップS34で受信した対応情報に基づき、ブロック情報を更新する。
[ステップS36]ストレージ装置200aは、ステップS35で更新したブロック情報に基づき、ステップS31で重複排除したデータについてデータの重複するブロックを削除する。
[ステップS37]ストレージ装置200aは、ステップS36における削除に基づき、アドレス情報を更新する。その後、ストレージ装置200a,200bは、処理を終了する。
このように、第3の実施の形態のストレージ装置200a,200bでは、第2の実施の形態に加えて、ストレージ装置200aで重複排除が実行されたバックアップデータをストレージ装置200bにレプリケーション(replication)やミラーリングして保存する等のバックアップデータを二重化する場合に、重複排除の効果を高めることができる。
すなわち、バックアップデータを二重化する際、重複排除を実行した複製元のストレージ装置200aの重複排除部203aは、重複排除の分割単位等の付加情報を複製先のストレージ装置200bに送信する。複製先のストレージ装置200bの重複排除部203bは、送信された付加情報が示す分割単位よりも小さい分割単位にデータを分割して重複排除を実行する。これにより、ストレージ装置200a,200bで分散して重複排除を効果的に実行することができ、ストレージ装置200a,200bの負担の集中を抑制しつつ重複排除により削減されるデータ量を増加させることができる。
また、重複排除部203aは、対応情報に基づいてストレージ装置200bの重複排除の結果を反映させるので、重複排除を実行することなく記憶デバイス220aに記憶されているデータ量を削減することができる。
なお、各実施の形態で示した以上の処理は、コンピュータに所定のプログラムを実行させることで実現できる。その場合、実現すべき処理内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。コンピュータ読み取り可能な記録媒体には、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリがある。磁気記録装置には、ハードディスク装置、フレキシブルディスク(FD)、磁気テープ(MT)等がある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)、CD−RW(ReWritable)等がある。光磁気記録媒体には、MO(Magneto-Optical disk)等がある。
プログラムを流通させる場合、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム又はサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上説明した第1の実施の形態、第2の実施の形態および第3の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 分割されたデータを比較することにより重複排除を実行するストレージ装置であって、
他の装置による重複排除でデータが分割された分割単位を示す付加情報を有する情報を記憶する情報記憶部と、
データを取得するデータ取得部と、
データ記憶部と、
前記情報を取得し前記情報記憶部に記憶させる情報取得部と、
前記情報記憶部に記憶されている前記情報が有する付加情報に示された分割単位よりも小さい分割単位で前記データ取得部により取得されたデータを分割して重複排除を実行し、重複排除を実行して得られたデータを前記データ記憶部に記憶させる重複排除部と、
を有することを特徴とするストレージ装置。
(付記2) 前記重複排除部により実行された重複排除において前記データが分割された分割単位を示す付加情報を有する情報を生成する情報生成部と、
前記情報生成部により生成された情報を通信回線を介して送信する情報出力部と、
前記重複排除部による重複排除により得られたデータを前記通信回線を介して出力するデータ出力部と、
を有することを特徴とする付記1記載のストレージ装置。
(付記3) 前記情報は、前記重複排除部による重複排除が実行される前のデータの分割された各部分と前記重複排除部による重複排除の実行により得られたデータとの対応関係を示す対応情報を有し、
前記情報生成部は、前記対応情報を有する情報を生成する、
ことを特徴とする付記2記載のストレージ装置。
(付記4) 前記情報は、前記重複排除部による重複排除により得られたデータについて、前記他の装置による重複排除が実行される前のデータの分割された各部分と前記他の装置による重複排除により得られたデータとの対応関係を示す対応情報を有し、
前記重複排除部は、前記情報記憶部に記憶されている情報が有する対応情報に示された対応関係に基づいて、重複排除により得られたデータについて前記他の装置による重複排除で排除された部分を前記データ記憶部から削除する、
ことを特徴とする付記2記載のストレージ装置。
(付記5) 前記付加情報は、前記データ取得部により取得されたデータについて前記他の装置による重複排除が実行されているか否かを示し、
前記重複排除部は、前記情報記憶部に記憶されている情報が有する付加情報が前記データについて前記他の装置による重複排除が実行されていることを示す場合、前記重複排除を実行しない、
ことを特徴とする付記1記載のストレージ装置。
(付記6) 前記付加情報は、前記データ取得部により取得されたデータについて重複排除の実行が可能であるか否かを示し、
前記重複排除部は、前記情報記憶部に記憶されている情報が有する付加情報が前記データについて前記重複排除が実行不可能であることを示す場合、前記重複排除を実行しない、
ことを特徴とする付記1記載のストレージ装置。
(付記7) 前記重複排除部は、重複排除を実行して得られたデータを圧縮し、圧縮して得られたデータを前記データ記憶部に記憶させることを特徴とする付記1記載のストレージ装置。
(付記8) 前記付加情報は、前記データ取得部により取得されたデータが圧縮可能であるか否かを示し、
前記重複排除部は、前記情報記憶部に記憶されている情報が有する付加情報が前記データが圧縮不可能であることを示す場合、重複排除を実行して得られた前記データを圧縮しない、
ことを特徴とする付記7記載のストレージ装置。
(付記9) 前記付加情報は、前記データ取得部により取得されたデータのデータ形式を示し、
前記重複排除部は、前記情報記憶部に記憶されている情報が有する付加情報が前記データのデータ形式が圧縮不可能なデータ形式であることを示す場合、重複排除を実行して得られたデータを圧縮しない、
ことを特徴とする付記7記載のストレージ装置。
(付記10) 前記重複排除部は、データを分割し、分割した前記データを識別する識別情報を生成し、前記識別情報が一致する分割した前記データについて1個を残して削除することにより重複排除を実行することを特徴とする付記1記載のストレージ装置。
(付記11) 前記他の装置は、重複排除を実行可能なバックアップ管理サーバであり、
前記情報は、前記バックアップ管理サーバによる重複排除の実行により前記データが分割された分割単位を示す前記付加情報を有する、
ことを特徴とする付記1記載のストレージ装置。
(付記12) 前記他の装置は、他のストレージ装置であり、
前記情報は、前記他のストレージ装置による重複排除の実行により前記データが分割された分割単位を示す前記付加情報を有する、
ことを特徴とする付記1記載のストレージ装置。
(付記13) 分割されたデータを比較することにより重複排除を実行するストレージ装置を制御するストレージ装置制御プログラムであって、
コンピュータを、
前記データを取得するデータ取得部、
他の装置による重複排除の実行でデータが分割された分割単位を示す付加情報を有する情報を取得し情報記憶部に記憶させる情報取得部、
前記情報記憶部に記憶されている前記情報が有する付加情報に示された分割単位よりも小さい分割単位で前記データ取得部により取得されたデータを分割して重複排除を実行し、重複排除を実行して得られたデータをデータ記憶部に記憶させる重複排除部、
として機能させることを特徴とするストレージ装置制御プログラム。
(付記14) 分割されたデータを比較することにより重複排除を実行するストレージ装置を制御するストレージ装置制御方法であって、
データ取得部が、データを取得し、
情報取得部が、他の装置による重複排除の実行によりデータが分割された分割単位を示す付加情報を有する情報を取得し情報記憶部に記憶させ、
重複排除部が、前記情報記憶部に記憶されている前記情報が有する付加情報に示された分割単位よりも小さい分割単位で前記データ取得部により取得されたデータを分割して重複排除を実行し、重複排除を実行して得られたデータをデータ記憶部に記憶させる、
ことを特徴とするストレージ装置制御方法。