(57)【要約】  重複排除処理を実行するストレージ装置に関する。具体的には、ストレージ装置は、第１記憶領域と第２記憶領域とを提供する記憶装置と、制御部とを有する。そして、制御部は、圧縮されたデータの圧縮率と閾値との比較結果に基づき、第１記憶領域に格納せずに圧縮されたデータと同一のデータが第２記憶領域に格納されているかを判定する第１重複判定を実行するか、第１記憶領域に格納した後に圧縮されたデータと同一のデータが第２記憶領域に格納されているかを判定する第２重複判定を実行するか、を決定する。さらに、制御部は、閾値を、ストレージ装置の状態に基づいて変更する。
2014125582.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置であって、
インターフェースと、
第１記憶領域と第２記憶領域とに関連する記憶装置と、
前記インターフェースを介して受信したデータの圧縮率と閾値との比較結果に基づき、前記第１記憶領域に格納せずに圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第１重複判定を実行するか、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行するか、を決定する、制御部と、を有し、
前記制御部は、前記閾値を、前記ストレージ装置の状態に基づいて変更する、
ことを特徴とするストレージ装置。
【請求項２】
前記制御部は、前記圧縮率が前記閾値より小さい場合、前記圧縮された前記データに対して、前記第１重複判定を実行し、前記圧縮率が前記閾値以上の場合、圧縮された前記データに対して、前記第２重複判定を実行する、
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記ストレージ装置の状態は、
前記第１記憶領域の残り容量であり、
前記制御部は、前記第１記憶領域の残り容量に応じて、前記閾値を変更する、
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記制御部は、前記第１記憶領域の残り容量が多いほど、前記閾値が小さい値に決定する傾向がある、
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記制御部は、前記第１記憶領域の残り容量が少ないほど、前記閾値が大きい値に決定する傾向がある、
ことを特徴とする請求項３に記載のストレージ装置。
【請求項６】
前記圧縮率は、データ圧縮により減少されたデータ量の割合である、
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
前記制御部は、
圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する際、圧縮された前記データのハッシュ値と前記第２記憶領域に格納されているデータのハッシュ値とを比較する、
ことを特徴とする請求項６に記載のストレージ装置。
【請求項８】
前記ストレージ装置の状態は、
前記第２の重複判定の負荷である、
ことを特徴とする請求項２に記載のストレージ装置。
【請求項９】
前記制御部は、
前記第２の重複判定の負荷が高いほど、前記閾値が小さい値に決定する傾向がある、
ことを特徴とする請求項８に記載のストレージ装置。
【請求項１０】
前記ストレージ装置の状態は、
前記第１重複判定で重複排除を行った圧縮されたデータ数と、全体の圧縮されたデータ数に関する所定の割合である、
ことを特徴とする請求項２に記載のストレージ装置。
【請求項１１】
前記制御部は、
前記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値未満である場合には、前記閾値を減少させ、
前記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値より大きい場合には、前記閾値を増加させ、
記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値と同じ場合には、前記閾値を変化させない、
ことを特徴とする請求項１０に記載のストレージ装置。
【請求項１２】
前記ストレージ装置の状態は、
ホスト計算機への応答性能である、
ことを特徴とする請求項２に記載のストレージ装置。
【請求項１３】
前記応答性能が高いほど、前記閾値が大きい値に決定する傾向がある、
ことを特徴とする請求項１２に記載のストレージ装置。
【請求項１４】
ストレージ装置におけるデータの管理方法であって、
圧縮されたデータの圧縮率と閾値との比較を実行し、
前記比較結果に基づき、第１記憶領域に格納せずに圧縮された前記データと同一のデータが第２記憶領域に格納されているかを判定する第１重複判定を実行するか、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行するか、を決定し、
前記閾値を、前記ストレージ装置の状態に基づいて変更する、
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの重複排除処理を実行するストレージ装置及び該ストレージ装置におけるデータ管理方法に関する。
【背景技術】
【０００２】
ストレージ装置は、大規模データを記憶するために、大容量な記憶領域を保持している。データ量は、年々増加の一途をたどっており、ストレージ装置のサイズやコストの問題から、大規模データを効率的に記憶する必要がある。そこで、記憶領域に格納するデータ量の増大を抑制し、データ容量効率を高めるため、データの重複を検出して排除するデータの重複排除処理が注目されている。【０００３】
重複排除処理は、新たに記憶デバイスに書き込むデータ（ライトデータ）が、既に記憶デバイスに格納されているデータと同一の場合、重複するデータを記憶デバイスに書き込まず、既に格納されているデータへのポインタ等の情報のみを管理する技術である。ライトデータが記憶デバイスに格納済みのデータと同一であるか否かは、例えばデータのハッシュ値を用いて検証されている。【０００４】
従来、ホスト装置からのデータのすべてをディスクに記憶した後にバックグラウンドで重複排除処理を行う方式（以降、ポストプロセス方式とも称する）が採用されていた。しかし、ポストプロセス方式では、ホスト装置からのデータのすべてを一度ディスクに書き込む必要があるため、大容量の記憶領域が必要となってしまう。そこで、ポストプロセス方式だけでなく、ディスクに書き込む前に重複排除処理を行う方式（以降、インライン方式とも称する）も併用して、重複排除処理を実行する技術が開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１１／０２８９２８１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、重複排除処理において、単にポストプロセス方式とインライン方式を併用することのみ開示されている。しかし、ポストプロセス方式ではすべてのデータを一旦ディスクに書き込むため、全体の処理性能がディスクの書き込み性能に依存してしまう。また、インライン方式では、データをディスクに書き込む際に重複排除処理を行うため、全体の処理性能が重複排除処理の性能に依存してしまう。そこで、両方式の利点を考慮して、両方式を併用する重複排除処理が必要であるという課題があった。【０００７】
また、両方式を併用する際、ストレージ装置がインラインで圧縮したデータの圧縮率を閾値と比較し、インライン方式の重複判定を実施するか、ポストプロセス方式の重複判定を実施するかを決定する方法が考えられる。しかし、判定の用いる該閾値が一定であると、データの種類等によって、例えば、インライン方式の重複判定又はポストプロセス方式の重複判定の一方に処理が偏るなどし、両者の利点を活用できない場合があった。
【課題を解決するための手段】
【０００８】
ストレージ装置は、インターフェースと、第１記憶領域と第２記憶領域とに関連する記憶装置と、前記インターフェースを介して受信したデータの圧縮率と閾値との比較結果に基づき、前記第１記憶領域に格納せずに圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第１重複判定を実行するか、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行するか、を決定する、制御部と、を有し、前記制御部は、前記閾値を、前記ストレージ装置の状態に基づいて変更する、ことを特徴とするストレージ装置である。【０００９】
データ管理方法は、ストレージ装置におけるデータの管理方法であって、圧縮されたデータの圧縮率と閾値との比較を実行し、前記比較結果に基づき、第１記憶領域に格納せずに圧縮された前記データと同一のデータが第２記憶領域に格納されているかを判定する第１重複判定を実行するか、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行するか、を決定し、前記閾値を、前記ストレージ装置の状態に基づいて変更する、ことを特徴とするデータ管理方法である。【００１０】
かかる構成によれば、データの圧縮率と閾値との比較に基づいて、第１重複判定を実行するか第２重複判定を実行するかを適切に決定することができる。また、使用する閾値は、ストレージ装置の状態に基づいて変更されるため、ストレージ装置の状態に応じて、１次重複排除処理で重複排除を行うのか、２次重複排除処理で重複排除を行うのかを適切に決定することができる。
【発明の効果】
【００１１】
本発明によれば、ストレージ装置の状態に基づいて、２つ以上の重複排除機構の利点を考慮して効率的に重複排除処理を実行することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施形態に係る計算機システムの概要を説明する概念図である。
【図２】図２は、第１の実施形態に係る計算機システムのハードウェア構成を示すブロック図である。
【図３】図３は、第１の実施形態に係るストレージ装置のソフトウェア構成を示すブロック図である。
【図４】図４は、第１の実施形態に係るメタデータについて説明する図表である。
【図５】図５は、第１の実施形態に係るチャンクの管理情報を説明する概念図である。
【図６】図６は、第１の実施形態に係る１次重複排除済みデータを示す概念図である。
【図７】図７は、第１の実施形態に係るチャンクのヘッダを説明する図表である。
【図８】図８は、第１の実施形態に係るバックアップ処理を示すフローチャートである。
【図９】図９は、第１の実施形態に係るデータの書き込み処理を示すフローチャートである。
【図１０】図１０は、第１の実施形態に係る１次重複排除処理を示すフローチャートである。
【図１１】図１１は、第１の実施形態に係る閾値決定処理を示すフローチャートである。
【図１２】図１２は、第１の実施形態に係る閾値を説明する図である。
【図１３】図１３は、第１の実施形態に係る２次重複排除処理を示すフローチャートである。
【図１４】図１４は、第１の実施形態に係るデータのRead処理を示すフローチャートである。
【図１５】図１５は、第１の実施形態に係るデータのRead処理を示すフローチャートである。
【図１６】図１６は、第２の実施形態に係る閾値決定処理を示すフローチャートである。
【図１７】図１７は、第２の実施形態に係る閾値を説明する図である。
【図１８】図１８は、第３の実施形態に係る閾値決定処理を示すフローチャートである。
【図１９】図１９は、第４の実施形態に係るストレージ装置のソフトウェア構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
【００１５】
（１−１）本実施の形態の概要
【００１６】
図１は、本実施の形態に係る計算機システムの概要を説明する概念図である。本実施形態に係る計算機システムでは、ストレージ装置１００は、ホスト装置２００からのバックアップデータを記憶領域に格納する。なお、ホスト装置は、バックアップサーバ等のサーバ、他のストレージ装置であってもよい。ストレージ装置１００のバックアップデータの記憶領域として、バックアップデータ（一部のデータについては重複排除済み）を一時的に格納する記憶領域（第１ファイルシステム）と、重複排除処理実施後のバックアップデータの記憶領域（第２ファイルシステム）とが備えられている。なお、本実施例のストレージ装置１００は、バックアップデータ（一部のデータについては重複排除済み）の一時的な記憶領域用のファイルシステムと、最終的な記憶領域用のファイルシステムとを分けて保持しているが、これに限定されるものではなく、同じファイルシステム内に２つ記憶領域を保持していてもよい。
【００１７】
ストレージ装置１００は、第１ファイルシステムにバックアップデータを格納する際に、一部又は全部のデータに対して重複排除処理を実行し、他のデータに対しては重複排除処理を実行しない（以降、１次重複排除処理と称して説明する。）。このように、ホスト装置２００からのバックアップデータを格納する前に重複排除処理を行う方式を、インライン方式と称する。
【００１８】
そして、ストレージ装置１００は、第１ファイルシステムに格納されたバックアップデータであって１次重複排除処理にて重複排除処理を実行しないデータに対して、重複排除処理（以降、２次重複排除処理と称して説明する。）を実行して、第２ファイルシステムにバックアップデータを格納する。このように、一旦バックアップデータを格納した後に重複排除処理を行う方式をポストプロセス方式と称する。
【００１９】
ポストプロセス方式では、すべてのデータを一旦ディスクに書き込むため、全体の処理性能がディスクの書き込み性能に依存してしまう。さらに、ポストプロセス方式では、全てのデータを一旦ディスクに書き込むため、データ格納のため大きな記憶容量が消費されてしまう。また、インライン方式では、データをディスクに書き込む際に重複排除処理を行うため、全体の処理性能が重複排除処理の性能に依存してしまう。そこで、両方式の利点を考慮して重複排除処理を実行する必要がある。
【００２０】
本実施の形態では、データの圧縮率に基づいて、該圧縮されたデータを１次重複排除処理で重複排除を行うか、２次重複排除処理で重複排除処理を行うかを決定する。その場合、判定の用いる該閾値が一定であると、データの種類等によって、例えば、インライン方式の重複判定又はポストプロセス方式の重複判定の一方に処理が偏るなどし、両者の利点を活用できない場合があった。そこで、本実施の形態では、１次重複排除処理で重複排除を行うか、２次重複排除処理で重複排除を行うかを判定するためにデータの圧縮率との比較に用いる閾値（圧縮率）を、ストレージ装置１００の状態に基づいて決定する。ストレージ装置１００の状態としては、例えば、第１ファイルシステムの残り容量である。なお、他の例としては、ストレージ装置１００の状態としては、２次重複排除処理による負荷、１次重複排除処理による重複排除に関するチャンク数等がある。これにより、ストレージ装置１００の状態に応じて、１次重複排除処理で重複排除を行うか、２次重複排除処理で重複排除を行うかを適切に判定することができる。ここで、本実施の形態では、データの圧縮率は次のような定義となっている、すなわち、圧縮率Ｘ％は、データをＸ％圧縮できたことを示し、圧縮後のデータが（１００−Ｘ）％のデータ量になったことを示す。なお、圧縮率が、本実施の形態とは違う定義、例えば、圧縮率Ｘ％が圧縮後のデータがＸ％のデータ量になったことを示すようにした場合においては、本実施の形態における後述する閾値と圧縮率との比較判定については、逆の判定を行うこととなる。
【００２１】
（１−２）計算機システムの構成
【００２２】
図２は、本実施の形態に係る計算機システムのハードウェア構成を示すブロック図である。
【００２３】
図２に示すように、計算機システムは、ストレージ装置１００とホスト装置２００とから構成されている。ホスト装置２００は、ＳＡＮ（ＳｔｏｒａｇｅＡｒｅａ Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）などのネットワークを介してストレージ装置１００と接続されている。なお、図中には表記していないが、ストレージ装置１００をコントロールする管理端末を含んでもよい。
【００２４】
ストレージ装置１００は、ホスト装置２００から送信されたコマンドを解釈して、ディスクアレイ装置１１０の記憶領域内へのリード／ライトを実行する。ストレージ装置１００は、複数の仮想サーバ１０１ａ、１０１ｂ、１０１ｃ・・・１０１ｎ（以降、仮想サーバ１０１と総称して説明する場合もある。）を提供するサーバ１０１と、ファイバチャネルケーブル（図中ＦＣケーブルと表記）１０６と、ディスクアレイ装置１１０とから構成される。なお、サーバは、ホストとの間にポートなどのインターフェース１０１１を有する。インターフェース１０１１は、有線ポートであっても無線ポートであってもよい。また、ストレージ装置は、インターフェースを介してホスト装置からデータを受信する。仮想サーバ１０１とディスクアレイ装置１１０とは、ファイバチャネルポート１０５、１０７に接続されたファイバチャネルケーブル１０６を介して接続されている。なお、本実施形態では仮想サーバを用いているが、物理サーバであってもよい。
【００２５】
仮想サーバ１０１は、ストレージ装置１００内に仮想的に再現された計算機環境である。仮想サーバ１０１は、ＣＰＵ１０２、システムメモリ１０３、ＨＤＤ（Hard Disk Drive）１０４及びファイバチャネルポート（図中ＦＣポートと表記）１０５などを含む。
【００２６】
ＣＰＵ１０２は、制御部（制御デバイス）として機能し、システムメモリ１０３に記憶されている各種プログラムや演算パラメータ等にしたがって、ストレージ装置１００全体の動作を制御する。システムメモリ１０３には、主に、ファイルシステムを管理するプログラム、１次重複排除処理を実行するプログラム、２次重複排除処理を実行するプログラム、及び閾値を決定するプログラムが記憶されている。
【００２７】
ＨＤＤ１１１は、複数の記憶媒体から構成されている。例えば、ＳＣＳI（Small Computer System Interface）ディスク等の高価なハードディスクドライブ、または、ＳＡＴＡ（Serial AT Attachment）ディスク等の安価なハードディスクドライブでなる複数のハードディスクドライブから構成されてもよい。なお、本実施形態では、記憶媒体としてＨＤＤを用いているが、ＳＳＤ（Solid State Disk）等の他の記憶媒体であってもよい。
【００２８】
複数のＨＤＤ１１１により１つのＲＡＩＤ（Redundant Array of Inexpensive Disks）グループが構成され、１又は複数のＲＡＩＤグループが提供する物理的な記憶領域上に、１又は複数の論理ユニット（ＬＵ）が設定される。そしてホスト装置２００からのデータは、この論理ユニット（ＬＵ）内に所定大きさのブロックを単位として格納される。本実施の形態では、ファイルシステムを管理するプログラムが、ディスクアレイ装置１１０の複数のＨＤＤ１１１から構成されるＬＵ０を第１のファイルシステムにマウントし、ＬＵ１を第２のファイルシステムにマウントして利用する。
【００２９】
ホスト装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）などの演算装置や、メモリ、ディスクなどの記憶領域等の情報処理資源と、必要に応じて、キーボード、マウス、モニタディスプレイ、スピーカー、通信Ｉ／Ｆカード等の情報入出力装置を備えた計算機装置であり、例えばパーソナルコンピュータやワークステーション、メインフレーム等で構成される。なお、ホスト装置は、バックアップサーバなどのサーバであってもよい。
【００３０】
（１−３）ストレージ装置のソフトウェア構成
【００３１】
図３は、本実施の形態に係るストレージ装置のソフトウェア構成を示すブロック図である。
【００３２】
図３に示すように、ストレージ装置１００のシステムメモリ１０３には、１次重複排除処理部２０１、２次重複排除処理部２０２、ファイルシステム管理部２０３、及び閾値決定処理部２０４などのプログラムが格納されている。（「XXX部」は「XXXプログラム」と読み替えてもよい。）なお、これらのプログラムは、ＣＰＵ１０２により実行される。従って以下の説明において、これらのプログラムを主語として処理を説明している場合には、実際にはＣＰＵ１０２によりそのプログラムを実行することにより処理を実現することを意味する。
【００３３】
１次重複排除処理部２０１は、ホスト装置２００からのバックアップデータ１０を１次重複排除して第１ファイルシステムに格納する。２次重複排除処理部２０２は、第１ファイルシステムに格納された１次重複排除済みデータ１１を２次重複排除して第２ファイルシステムに格納する。閾値決定処理部２０４は、ストレージ装置１００の状態に基づいて、閾値を決定する閾値決定処理を実行する。
【００３４】
本実施の形態では、１次重複排除処理部２０１により実行される１次重複排除処理と、２次重複排除処理部２０２により実行される２次重複排除処理とで、異なる重複排除処理を実行している。１次重複排除処理では、重複排除処理において負荷の小さい処理である、データの分割処理と圧縮処理を行う。また、圧縮処理後のデータの圧縮率に基づいてデータのハッシュ値の計算と重複排除処理とを１次重複排除処理で実行するか２次重複排除処理で実行するか判定している。そして、２次重複排除処理では、１次重複排除処理においてハッシュ値の計算が行われなかったデータに対して重複排除処理を実行する。
【００３５】
上記したように、バックアップデータのすべてをインライン方式である１次重複排除処理で行うと、重複排除処理に時間がかかり、ストレージ装置１００全体の処理性能が重複排除処理の性能に依存してしまう。また、バックアップデータのすべてをポストプロセス方式で重複排除した場合、すなわち、一旦第１ファイルシステムに格納した後、２次重複排除処理で重複排除処理を行う場合には、全体の処理性能がディスクの書き込み性能に依存してしまう。さらに、ポストプロセス方式では、全てのデータを一旦ディスクに書き込むため、データ格納のため大きな記憶容量が消費されてしまう。また、単純に、１次重複排除処理と２次重複排除処理を併用するだけでは、両処理で同様の重複排除処理を実行してしまい、無駄な重複排除処理が発生してしまう。
【００３６】
そこで、本実施の形態では、１次重複排除処理で、重複排除処理のうち負荷の小さい処理である、データの分割処理と圧縮処理を行い、さらに、圧縮率の低い分割データ（一時的なデータ記憶領域の容量を大きく消費するデータ）に対して重複判定処理を実行する。ここで、１次重複排除処理において分割されたデータをチャンクと称して以下説明する。データの分割処理については、後で詳細に説明する。重複排除処理における重複判定処理は、分割されたデータ（チャンク）の圧縮率に関わらず、ほぼ同等の時間がかかる。したがって、１次重複排除処理では、圧縮率の低いチャンクに対して重複判定処理を実行することにより、重複判定処理の負荷を軽減しつつ、データの書き込み処理を高速化させることが可能となる。さらに、圧縮率の低いチャンクをインライン方式にて重複排除処理することにより、データの一時格納のための記憶領域の消費量を小さくできる。
【００３７】
一方、２次重複排除処理では、１次重複排除処理で既に重複判定処理を実行したチャンク以外のチャンクに対して重複判定処理を実行することにより、１次重複排除処理と２次重複排除処理とで同様の重複排除処理を実行することを防止している。具体的に、１次重複排除処理において重複判定処理が実行されたチャンクについては、各チャンクのデータヘッダに、既に重複判定処理を実行したことを示すフラグを設定する。そして、２次重複排除処理において、設定されたフラグを参照して、１次重複排除処理で重複判定処理が実行されていないチャンクに対して重複判定処理を実行する。
【００３８】
また、受信するファイルの種類などに応じてチャンクの圧縮率が高いか又は低いかの傾向が変化する。例えば、ある特性を有するファイルを分割したチャンクは、圧縮率が高く（低く）なる傾向がある。そこで、１次重複排除処理又は２次重複排除処理のどちらかで重複排除処理を実施するかを判定する際に用いられる閾値（圧縮率）を一定にしてしまうと、例えば一方の重複排除処理の負荷が高くなる可能性があり、両者の利点を効率的に利用することができない。そこで、本実施の形態では、１次重複排除処理で重複排除を行うか、２次重複排除処理で重複排除を行うかを判定するためにデータの圧縮率との比較に用いる閾値（圧縮率）を、ストレージ装置１００の状態に基づいて決定する。ストレージ装置１００の状態としては、例えば、第１ファイルシステムの残り容量である。なお、他の例としては、ストレージ装置１００の状態としては、２次重複排除処理による負荷、１次重複排除処理による重複排除に関するチャンク数等がある。これにより、ストレージ装置１００の状態に応じて、１次重複排除処理で重複排除を行うか、２次重複排除処理で重複排除を行うかを適切に判定することができる。
【００３９】
図４は、本実施の形態に係るメタデータについて説明する図表である。
【００４０】
図４を参照して、第１ファイルシステム及び第２ファイルシステムに格納されているメタデータ１２について説明する。メタデータ１２は、第１ファイルシステムに格納される１次重複排除済みデータまたは第２ファイルシステムに格納される２次重複排除済みデータの管理情報を示すデータである。
【００４１】
図４に示すように、メタデータ１２には各種テーブルが含まれる。具体的に、スタブファイル（Stub file）１２１、チャンクデータセット（Chunk Data Set）１２２、チャンクデータセットインデックス（Chunk Data Set Index）１２３、コンテンツ管理テーブル１２４及びチャンクインデックス１２５などのテーブルがメタデータ１２に含まれる。そして、スタブファイル（Stub file）１２１は、第１ファイルシステムに格納される。チャンクデータセット（Chunk Data Set）１２２、チャンクデータセットインデックス（Chunk Data Set Index）１２３、コンテンツ管理テーブル１２４及びチャンクインデックス１２５などのテーブルは、第２ファイルシステムに格納される。
【００４２】
スタブファイル１２１は、バックアップデータとコンテンツＩＤとを関連付けるためのテーブルである。バックアップデータは、複数のファイルデータから構成される。当該ファイルデータを、記憶領域に格納される単位である論理的にまとまったコンテンツ（content）と称する。コンテンツは、通常のファイルの他、例えば、アーカイブファイル、バックアップファイルまたは仮想ボリュームファイルなどの通常のファイルを集約したファイルなどを例示することができる。各コンテンツは複数のチャンクに分割され、各コンテンツは、コンテンツＩＤによって識別される。このコンテンツＩＤがスタブファイル１２１に格納される。ストレージ装置１００がディスクアレイ装置１１０に格納されたデータのリード／ライトを行う場合には、まず、スタブファイル１２１のコンテンツＩＤが呼び出される。
【００４３】
チャンクデータセット１２２は、複数のチャンクから構成されるユーザデータであって、ストレージ装置１００に格納されるバックアップデータである。チャンクデータセットインデックス１２３は、チャンクデータセット１２２に含まれる各チャンクの情報が格納されている。具体的に、チャンクデータセットインデックス１２３には、各チャンクの長さ情報とチャンクデータとが対応付けて格納されている。
【００４４】
コンテンツ管理テーブル１２４は、コンテンツ内のチャンク情報を管理するテーブルである。ここで、コンテンツとは、上記したコンテンツＩＤによって識別されるファイルデータである。また、チャンクインデックス１２５は、各チャンクがどのチャンクデータセット１２２に存在するかを示す情報である。また、チャンクインデックス１２５には、各チャンクを識別するチャンクのフィンガープリントと、チャンクが存在するチャンクデータセット１２２を識別するチャンクデータセットＩＤとが対応付けられている。
【００４５】
図５は、本実施の形態に係るチャンクの管理情報を説明する概念図である。
【００４６】
図５に示すように、スタブファイル（図中Stub fileと表記）１２１には、オリジナルのデータファイルを識別するコンテンツＩＤ（図中Content IDと表記）が格納されている。そして、１つのスタブファイル１２１に対して１つのコンテンツファイルが対応し、各コンテンツファイルはコンテンツ管理テーブル（図中Content Mng Tblと表記）１２４で管理されている。
【００４７】
コンテンツ管理テーブル１２４で管理されている各コンテンツファイルは、コンテンツＩＤ（図中Content IDと表記）によって識別される。コンテンツファイルには、各チャンクのオフセット（Content Offset）、チャンク長（Chunk Length）、チャンクが存在するコンテナの識別情報（Chunk Data Set ID）、各チャンクのハッシュ値（Fingerprint）が格納されている。
【００４８】
また、チャンクデータセットインデックス（図中Chunk Data Set Indexと表記）１２３には、チャンクの管理情報として、チャンクデータセット（図中Chunk Data Setと表記）１２２に格納されているチャンクのハッシュ値（Fingerprint）と、チャンクのオフセット及びデータ長とが対応付けられて格納されている。各チャンクデータセット１２２は、チャンクデータセットＩＤ（図中Chunk Data Set IDと表記）で識別されている。チャンクデータセットインデックス１２３では、チャンクの管理情報がチャンクデータセットごとにまとめられて管理されている。
【００４９】
チャンクデータセット１２２は、所定数のチャンクを１つのコンテナとして管理している。各コンテナは、チャンクデータセットＩＤにより識別され、各コンテナには、チャンク長が付された複数のチャンクデータが含まれる。チャンクデータセット１２２のコンテナを識別するチャンクデータセットＩＤと、上記したチャンクデータセットインデックス１２３のチャンクデータセットＩＤとが対応づけられている。
【００５０】
チャンクインデックス１２５は、各チャンクのハッシュ値（Fingerprint）とチャンクが存在するコンテナの識別情報（Chunk Data Set ID）とが対応づけられて格納されている。チャンクインデックス１２５は、重複排除処理を実行する際に、各チャンクから計算されたハッシュ値をもとに、いずれのコンテナに格納されているかを判定するためのテーブルである。
【００５１】
図６は、本実施の形態に係る１次重複排除済みデータを示す概念図である。
【００５２】
１次重複排除処理部２０１は、コンテンツを複数のチャンクに切り出し、各チャンクを圧縮する（以後、圧縮したチャンクを圧縮チャンクということがある。）。１次重複排除処理部２０１は、図６に示すように、まず、コンテンツをヘッダ部(図中Metaと表記)とボディ部（図中FileＸと表記）に分割する。そして、１次重複排除処理部２０１は、さらに、ボディ部を固定長または可変長に分割する。コンテンツを固定長で分割する場合には、例えば、４キロバイト（ＫＢ）や１メガバイト（ＭＢ）といった一定の長さのチャンクを順次切り出す。また、コンテンツを可変長で分割する場合には、コンテンツの局所的な条件をもとにチャンクの切り出しの境界を決定してチャンクを切り出す。また、例えば、vmdkファイル、vdiファイル、vhdファイル、zipファイルまたはgzipファイルなどコンテンツの構造に変更があまりないファイルを固定長に分割し、これらのファイル以外のファイルを可変長に分割する。
【００５３】
そして、１次重複排除処理部２０１は、分割したチャンクを圧縮し、圧縮率の低い圧縮チャンク（圧縮率が閾値よりも低いチャンク）に対して重複排除処理を行う。１次重複排除処理部２０１は、重複判定処理の対象となる圧縮チャンクのハッシュ値を算出して、該ハッシュ値をもとに同一の圧縮チャンクがＨＤＤ１０４に既に格納されているかを判定する。１次重複排除処理部２０１は、重複排除処理を行った結果、既に重複排除処理を実行した圧縮チャンクを排除して、第１ファイルシステムに格納するための１次重複排除済みデータを生成する。１次重複排除処理部２０１は、圧縮した各チャンクに圧縮後のデータ情報を示すチャンクヘッダを付して管理する。なお、一次重複排除処理（インライン方式）において、圧縮率が閾値よりも高いチャンクのハッシュ値の算出及び重複排除処理を実行しない。
【００５４】
次に、圧縮チャンクのチャンクヘッダについて説明する。図７は、本実施の形態に係る圧縮チャンクのチャンクヘッダを説明する図表である。なお、「チャンクヘッダ」を「圧縮ヘッダ」と読み替えてもよい。図７に示すように、チャンクヘッダは、マジックナンバー３０１、ステータス３０２、フィンガープリント３０３、チャンクデータセットＩＤ３０４、圧縮前length３０５及び圧縮後length３０６を含む。
【００５５】
マジックナンバー３０１には、１次重複排除処理済みの圧縮チャンクであることを示す情報が格納される。ステータス３０２には、圧縮チャンクが重複判定処理を実行されたかを示す情報が格納される。例えば、ステータス３０２にステータス１が格納されている場合には、重複判定未実施であることを示す。ステータス３０２にステータス２が格納されている場合には、重複判定実施済みであり、未だＨＤＤ１０４に格納されていない新規圧縮チャンクであることを示す。また、ステータス３０２にステータス３が格納されている場合には、重複判定実施済みであり、既にＨＤＤ１０４に格納されている既存圧縮チャンクであることを示す。
【００５６】
フィンガープリント３０３には、圧縮チャンクから算出されたハッシュ値が格納される。なお、１次重複排除処理において、重複判定処理が行われなかった圧縮チャンクについては、フィンガープリント３０３には無効な値が格納される。すなわち、ステータス１の圧縮チャンクについては、未だ重複判定処理が実行されていないため、フィンガープリント３０３には無効値が格納される。
【００５７】
チャンクデータセットＩＤ３０４には、圧縮チャンク格納先のチャンクデータセットＩＤが格納される。チャンクデータセットＩＤ３０４は、圧縮チャンクを格納するコンテナ（Chunk Data Set１２２）を識別する情報である。なお、１次重複排除処理が実行されていないチャンクについては、チャンクデータセットＩＤ３０４に無効な値が格納される。すなわち、ステータス１のチャンクデータセットＩＤ３０４には、無効値が格納される。
【００５８】
圧縮前length３０５には、圧縮前のチャンク長が格納される。圧縮後length３０６には、圧縮後のチャンク長が格納される。
【００５９】
２次重複排除処理部２０２は、１次重複排除処理部２０１により生成された１次重複排除データに含まれる圧縮チャンクのチャンクヘッダを参照して、各圧縮チャンクの重複判定処理を実行するかを判定する。具体的に、２次重複排除処理部２０２は、圧縮チャンクのチャンクヘッダのステータスを参照し、重複判定処理を行うか否か判断する。
【００６０】
例えば、圧縮チャンクのチャンクヘッダのステータス３０２がスタータス１の場合には、１次重複排除処理において重複判定処理が実行されていないため、２次重複排除処理において重複判定処理を実行する。また、圧縮チャンクのチャンクヘッダのステータス３０２がステータス２の場合には、１次重複判定処理において重複判定処理は実行されおり、１次重複判定処理内で新規圧縮チャンクをチャンクデータセットに格納するため、重複判定処理は実行せずに、既存新規チャンクの格納先を取得する。また、チャンクのチャンクヘッダのステータス３０２がステータス３の場合には、１次重複判定処理において重複判定処理が実行され、既にチャンクデータセット１２２に格納されているチャンクであるため、重複判定処理は実行せずに、既存圧縮チャンクの格納先を取得する。このように、各チャンクの状態を適切に管理できるので、各チャンクに適した処理を実行することができる。
【００６１】
（１−４）重複排除処理
【００６２】
以下、重複排除処理をフローチャートを用いてさらに詳細に説明する。
【００６３】
図８は、本実施の形態に係るバックアップ処理を示すフローチャートである。
【００６４】
本実施の形態にかかる重複排除処理は、ホスト装置２００からの要求に応じてデータのバックアップを開始する。ストレージ装置１００におけるデータのバックアップ処理は、図８に示すように、まず、データの書き込み先をオープンして（Ｓ１０１）、バックアップデータのサイズ分についてループＡのデータの書き込み処理（Ｓ１０３）を繰り返す。ストレージ装置１００は、データの書き込み処理終了後、書き込み先をクローズして（Ｓ１０５）バックアップ処理を終了する。
【００６５】
図９は、本実施の形態に係るデータの書き込み処理を示すフローチャートである。上記したステップＳ１０３におけるデータの書き込み処理において、図９に示すように、ストレージ装置１００は、ホスト装置２００からのバックアップデータをメモリ上のバッファに滞留させる（Ｓ１１１）。
【００６６】
そして、ストレージ装置１００は、バッファに規定量のデータが溜まったかを判定する（Ｓ１１２）。ステップＳ１１２において、バッファに規定量のデータが溜まったと判定された場合には、１次重複排除処理部２０１に１次重複排除処理を実行させる。一方、ステップ１１２において、バッファに規定量のデータが溜まっていないと判定された場合には、さらにバックアップデータを受領する（Ｓ１０３）。
【００６７】
（１−４−１）１次重複排除処理の詳細
【００６８】
図１０は、本実施の形態に係る１次重複排除処理を示すフローチャートである。
【００６９】
図１０に示すように、１次重複排除処理部２０１は、バッファに滞留したデータについて、バッファサイズ分についてループＢの処理（Ｓ１２１〜Ｓ１３７）を繰り返す。
【００７０】
１次重複排除処理部２０１は、バッファから固定長または可変長で１チャンクを切り出す（Ｓ１２１）。そして、１次重複排除処理部２０１は、ステップＳ１２２において切り出したチャンクを圧縮して（Ｓ１２２）、チャンクの圧縮率を算出する（Ｓ１２３）。
【００７１】
そして、１次重複排除処理部２０１は、チャンクヘッダ３００の変数FingerPrintにnull値を代入し（Ｓ１２４）、チャンクヘッダ３００の変数ChunkDataSetIDにnull値を代入する（Ｓ１２５）。続いて、１次重複排除処理部２０１は、閾値決定処理部２０４に、後述する閾値を決定するための閾値決定処理（図１１参照）を実行させる（Ｓ１２６）。
【００７２】
続いて、１次重複排除処理部２０１は、ステップＳ１２３において算出したチャンクの圧縮率が、ステップＳ１２６で決定された閾値より低いか否かを判定する（Ｓ１２７）。ステップＳ１２７において、チャンクの圧縮率が決定された閾値より低い場合とは、例えば、圧縮前後でチャンク長があまり変わらない場合である。
【００７３】
ステップＳ１２７において、チャンクの圧縮率が閾値より低いと判定された場合（Ｓ１２７：ｔｒｕｅ）には、ステップＳ１２８以降の処理を実行する。一方、ステップＳ１２７において、チャンクの圧縮率が閾値より高いと判定された場合（Ｓ１２７：ｆａｌｓｅ）には、ステップＳ１３１以降の処理を実行する。
【００７４】
ステップＳ１２８において、１次重複排除処理部２０１は、圧縮されたチャンク（以後、圧縮チャンクともいう場合がある）のデータからハッシュ値を算出して、算出結果をチャンクヘッダ３００の変数FingerPrintに代入する（Ｓ１２８）。
【００７５】
そして、１次重複排除処理部２０１は、算出したハッシュ値を用いて、圧縮チャンクがチャンクデータセットに格納されているかを確認する。また、１次重複排除処理部２０１は、圧縮チャンクがチャンクデータセットに格納されている場合にはチャンクデータセットのチャンクデータセットＩＤ（ChankDataSetID）を確認する（Ｓ１２９）。ここで、１次重複排除処理部２０１は、圧縮チャンクと算出したハッシュ値を用いて、圧縮されたチャンクがチャンクデータセットに格納されているかを２次重複排除処理部２０２に問い合わせる。そして、１次重複排除処理部２０１は、問い合わせ結果を受領することにより、圧縮されたチャンクがチャンクデータセットに格納されているか、格納されている場合にはチャンクデータセットＩＤを確認することができる。
【００７６】
そして、１次重複排除処理部２０１は、重複判定処理の対象となる圧縮チャンクと同一の圧縮チャンクがチャンクデータセットに格納されているかを判定する（Ｓ１３０）。ステップＳ１３０において、同一の圧縮チャンクがあると判定された場合（Ｓ１３０：ｔｒｕｅ）には、１次重複排除処理部２０１は、ステップＳ１３６以降の処理を実行する。一方、ステップＳ１３０において同一の圧縮チャンクがないと判定された場合（Ｓ１３０：ｆａｌｓｅ）には、ステップＳ１３３以降の処理を実行する。
【００７７】
ステップＳ１２７において、圧縮率が閾値よりも高いと判定された場合（Ｓ１２７：ｆａｌｓｅ）には、１次重複排除処理部２０１は、重複判定処理を実行せずに、ステータス１のチャンクヘッダを生成する（Ｓ１３１）。ステータス１のチャンクヘッダとは、上記したように、重複判定未実施の圧縮チャンクに付されるチャンクヘッダである。図７に示すように、チャンクヘッダがステータス１の場合、圧縮チャンクとチャンクヘッダとが第１ファイルシステムに書き込まれる（Ｓ１３２）。なお、重複判定処理が実施されていないため、チャンクヘッダのフィンガープリント３０３とチャンクデータセットＩＤ３０４はｎｕｌｌ値のままである。
【００７８】
また、ステップＳ１２７において、圧縮率が閾値よりも低いと判定され、重複判定処理が実行された結果、同一の圧縮チャンクがチャンクデータセット１２２に存在しないと判定された場合（Ｓ１３０：ｆａｌｓｅ）には、ステータス２のチャンクヘッダを生成する（Ｓ１３３）。ステータス２のチャンクヘッダとは、上記したように、重複判定が実施済みであり、チャンクデータセット１２２に同一の圧縮チャンクがない場合に圧縮チャンクに付されるチャンクヘッダである。図７に示すように、チャンクヘッダがステータス２の場合、１次重複排除処理部２０１は、チャンクヘッダを第１ファイルシステムに書き込む（Ｓ１３４）。さらに、２次重複排除処理部２０２は、圧縮チャンクを第２ファイルシステムに書き込む（Ｓ１３５）。具体的には、２次重複排除処理部２０２は、圧縮チャンクを格納する格納先のチャンクデータセット（ChunkDataSet）１２２を決定する。そして、２次重複排除処理部２０２は、チャンクデータセット（ChunkDataSet）１２２にチャンクヘッダと圧縮チャンクのデータを書き込む。なお、チャンクヘッダのフィンガープリント３０３には、圧縮チャンクから算出したハッシュ値が格納される。また、チャンクデータセットＩＤ３０４は、新規圧縮チャンクを書き込んだチャンクデータセットＩＤが格納される。チャンクヘッダがステータス２の場合、チャンクヘッダのみ第１ファイルシステムに書き込まれ、圧縮チャンクのデータ自体は第１ファイルシステムに書き込まれないため、第１ファイルシステムの記憶容量を削減することができる。
【００７９】
また、ステップＳ１２７において、圧縮率が閾値よりも低いと判定され、重複判定処理が実行された結果、同一の圧縮チャンクがチャンクデータセット１２２に存在すると判定された場合（Ｓ１３０：ｔｒｕｅ）には、ステータス３のチャンクヘッダを生成する（Ｓ１３６）。ステータス３のチャンクヘッダとは、上記したように、重複判定が実施済みであり、チャンクデータセット１２２に同一の圧縮チャンクがある場合にチャンクに付されるチャンクヘッダである。図７に示すように、チャンクヘッダがステータス３の場合、チャンクヘッダのみ第１ファイルシステムに書き込まれる（Ｓ１３７）。つまり、圧縮チャンクのデータ自体は第１ファイルシステム及び第２ファイルシステムのいずれにも書き込まれず、記憶容量を削減することができる。
【００８０】
（１−４−１−１）閾値決定処理の詳細
【００８１】
図１１は、本実施野の形態に係る閾値決定処理を示すフローチャートである。図１１を参照して、閾値決定処理部２０４による閾値決定処理の詳細について説明する。なお、本実施例では、閾値決定処理部２０４は、１次重複排除処理中（図１０のＳ１２６）に呼び出されて実行されるが、これに限定されるものではなく、予め決められたタイミングで実行するようにしてもよいし、管理者の入力に応じて実行するようにしてもよい。
【００８２】
閾値決定処理部２０４は、第１ファイルシステムの残り容量ｘ（％）を取得する（Ｓ１５１）。なお、ｘとして、残り容量のサイズをそのまま用いてもよいし、残り容量ではなく使用容量を用いてもよい。次いで、閾値決定処理部２０４は、関係式ｙ＝ｆ（ｘ）から閾値ｙを取得し（Ｓ１５２）、当該閾値ｙをステップＳ１２７で使用する閾値とし（Ｓ１５３）、閾値決定処理を終了する。ここで、関係式ｙ＝ｆ（ｘ）は、例えば、図１２に示すように、第１ファイルシステムの残り容量ｘ（％）が０から値ａまでの間は、閾値ｙが１００となる。閾値ｙが１００である場合には、インライン方式に近い処理、すなわち、全ての圧縮チャンクに対して１次重複排除処理にて重複排除処理が実行される。また、関係式ｙ＝ｆ（ｘ）は、第１ファイルシステムの残り容量ｘが値ａ〜ｂの間は、例えば、第１ファイルシステムの残り容量ｘが増加すると、閾値ｙは、減少（例えば、１次関数的に減少）する対応関係を有する。また、関係式ｙ＝ｆ（ｘ）は、第１ファイルシステムの残り容量ｘが値ｂ以上の場合には、閾値ｙが０となる。閾値ｙが０である場合には、ポストプロセス方式に近い処理、すなわち、１次重複排除処理においては全ての圧縮チャンクに対して重複排除判定をせずに、各圧縮チャンクを第１ファイルシステムに格納することとなる。そして、２次重複排除処理においては、全ての圧縮チャンクの重複排除処理を実行する。このように、関係式ｙ＝ｆ（ｘ）は、第１ファイルシステムの残り容量ｘが多くなるほど、閾値が減少する傾向にある関係式である。なお、値ａ，ｂ（ａ＜ｂ）は、任意の値であって良い。
【００８３】
この関係式によると、第１ファイルシステムの残り容量が少ない場合には、閾値ｙを大きくすることができる。この結果、１次重複排除処理において重複排除処理を行う圧縮チャンクが増加し、第１ファイルシステムに格納されるデータ量を低減することができる。一方、第１ファイルシステムの残り容量が多い場合には、閾値ｙを小さくすることができ、１次重複排除処理において重複排除処理を実行する圧縮チャンクの割合を低減することができ、ホストへの応答性能を向上することができる。これにより、ストレージ装置１００の状態に応じて、１次重複排除処理における重複排除処理と、２次重複排除処理における重複排除処理とを効率的に使い分けることができる。
【００８４】
なお、関係式ｙ＝ｆ（ｘ）は、図１２に示すように、値ａ〜値ｂの間において１次関数的に減少する関係式でなくてもよく、要は、第１ファイルシステムの残り容量が増加すると、閾値ｙが減少する又はその傾向のある関係式であればよい。
【００８５】
（１−４−２）２次重複排除処理の詳細
【００８６】
図１３は、本実施の形態に係る２次重複排除処理を示すフローチャートである。
【００８７】
図１３を参照して、２次重複排除処理部２０２による２次重複排除処理の詳細について説明する。２次重複排除処理は、所定時間ごとに定期的に実行するようにしてもよいし、予め決められたタイミングで実行するようにしてもよいし、管理者の入力に応じて実行するようにしてもよい。さらに、第１ファイルシステムの容量が一定量を超えた場合に、実行を開始してもよい。
【００８８】
図１３に示すように、２次重複排除処理部２０２は、まず、変数offsetに０を代入する（Ｓ２０１）。続いて、１次重複排除済みファイル（第１ファイルシステム）をオープンして、１次重複済みファイル分、ループＣの２次重複排除処理を繰り返す（Ｓ２０４〜Ｓ２２１）。
【００８９】
ステップＳ２０２において、１次重複排除済みファイルをオープンした２次重複排除処理部２０２は、変数offsetに代入された値からチャンクヘッダサイズ分のデータを読み出す（Ｓ２０４）。そして、２次重複排除処理部２０２は、チャンクヘッダの変数Lengthの値から、圧縮後のチャンク長を取得する（Ｓ２０５）。さらに、２次重複排除処理部は、チャンクヘッダの変数FingerPrintから、チャンクのハッシュ値（フィンガープリント）を取得する（Ｓ２０６）。なお、１次重複排除処理において未だ１次重複判定処理が未
実施の場合には、チャンクヘッダのFingerPrintに無効な値（null）が格納されている。
【００９０】
続いて、２次重複排除処理部２０２は、圧縮チャンクのチャンクヘッダに含まれるステータス（Status）を確認する（Ｓ２０７）。ステップＳ２０７において、ステータスがステータス１の場合、すなわち、対象となる圧縮チャンクが重複判定未実施である場合、２次重複排除処理部２０２は、ステップＳ２０８以降の処理を実行する。また、ステップＳ２０７において、ステータスがステータス２の場合、すなわち、対象となる圧縮チャンクが１次重複排除処理により重複判定済であるが、チャンクデータセット１２２に圧縮チャンクが存在しない場合、２次重複排除処理部２０２は、重複排除処理を実行せずにステップＳ２１６以降の処理を実行する。また、ステップＳ２０７において、ステータスがステータス３の場合、すなわち、対象となる圧縮チャンクが１次重複排除処理により重複判定済であり、チャンクデータセット１２２に圧縮チャンクが存在する場合、２次重複排除処理部２０２は、ステータス２と同様に重複排除処理を実行せずにステップＳ２１６の処理を実行する。これにより、対象となる圧縮チャンクが重複判定未実施の場合にのみ、適切に２次重複排除処理が実行される。
【００９１】
次に、チャンクヘッダのステータスがステータス１の場合、すなわち、重複判定未実施の場合の処理について説明する。２次重複排除処理部２０２は、offsetの値にチャンクヘッダサイズを加算した長さ分のデータを読み出す（Ｓ２０８）。そして、ステップＳ２０８において読み出した圧縮チャンクのデータからハッシュ値（FingerPrint）を算出する（S２０９）。ここで、２次重複排除処理部２０２は、算出したハッシュ値（FingerPrint）を変数FingerPrintに代入する。
【００９２】
次に、２次重複排除処理部２０２は、ステップＳ２０９において算出したFingerPrintをもとに、チャンクデータセット１２２の圧縮チャンクの有無を確認して（Ｓ２１０）、チャンクデータセット１２２に対象となる圧縮チャンクと同一の圧縮チャンクが存在するか判定する（Ｓ２１１）。
【００９３】
ステップＳ２１１において、チャンクデータセット１２２に同一の圧縮チャンクが存在すると判定された場合には、２次重複排除処理部２０２は、変数ChunkDataSetIDに既に格納されている同一の圧縮チャンクの格納先のチャンクデータセットＩＤ（ChunkDataSetID）と同じＩＤを代入して（Ｓ２１２）、ステップＳ２２０以降の処理を実行する。
【００９４】
一方、ステップＳ２１１において、チャンクデータセット１２２に同一の圧縮チャンクが存在しないと判定された場合には、２次重複排除処理部２０２は、圧縮チャンクを格納する格納先のチャンクデータセット（ChunkDataSet）１２２を決定して、決定した該チャンクデータセット１２２のチャンクデータセットＩＤを変数ChunkDataSetIDに代入する（Ｓ２１３）。
【００９５】
そして、２次重複排除処理部２０２は、チャンクデータセット（ChunkDataSet）１２２にチャンクヘッダと圧縮チャンクのデータを書き込む（Ｓ２１４）。さらに、２次重複排除処理部２０２は、ステップＳ２０９において変数FingerPrintに代入した値とステップＳ２１３において変数ChunkDataSetIDに代入した値をチャンクインデックス管理テーブル１２５に登録して（Ｓ２１５）、ステップＳ２２０以降の処理を実行する。
【００９６】
チャンクヘッダのステータスがステータス２及び３の場合、すなわち、重複判定実施済みである場合の処理について説明する。２次重複排除処理部２０２は、チャンクヘッダからチャンクデータセットＩＤ（ChunkDataSetID）を取得して、変数ChunkDataSetIDに代入する（Ｓ２２４）。そして、２次重複排除処理部２０２は、ステップＳ２２０以降の処理を実行する。なお、ステータスが２の場合、チャンクヘッダに格納されているチャンクデータセットＩＤ（ChunkDataSetID）、Ｓ１３５にて圧縮チャンクが書き込まれた書き込み先を示すＩＤである。また、ステータスが３の場合、チャンクヘッダに格納されているチャンクデータセットＩＤ（ChunkDataSetID）は、一次重複排除処理において重複排除されたデータと同一のデータであって、既に格納されているデータ（圧縮チャンク）の格納先を示すＩＤである。なお、２次重複排除処理部２０２は、ステータス２の場合には、チャンクインデックスにFinger PrintとChunk Data Set IDとを格納する。
【００９７】
そして、２次重複排除処理部２０２は、コンテンツ管理テーブル１２４に、チャンク長（Length）、オフセット（Offset）、フィンガープリント（FingerPrint）、チャンクデータセットＩＤ（ChunkDataSetID）を設定する（Ｓ２２０）。  そして、変数Offsetの値にチャンクヘッダのサイズとチャンク長（Length）とを加算して、変数Offsetに代入する（Ｓ２２１）。
【００９８】
ステップＳ２０４〜ステップＳ２２１のループＣの処理を１次重複排除済みファイルのサイズ分繰り返した後、１次重複排除済みファイルをクローズして（Ｓ２２３）、２次重複排除処理を終了する。
【００９９】
また、本実施例においては、チャンクの圧縮率と閾値とを比較処理を行ったがこれに限定されるものではない。例えば、圧縮後のチャンクの大きさと閾値とを比較してもよい。また、チャンクを圧縮せずに、チャンクの大きさと閾値とを比較してもよい。
【０１００】
さらに、本実施の形態においては、一次重複排除処理において、１次重複排除処理部２０１が重複排除判定を行った圧縮チャンクは、重複排除ができたか否かに関わらず、１次ファイルシステムに格納されない。しかし、１次重複排除処理部２０１が重複排除判定を行った圧縮チャンクであって、重複排除できなかった圧縮チャンクを、１次ファイルシステムに１次的に格納してもよい。そして、一次ファイルシステムに格納されたチャンクを２次重複排除処理部が読み出して２次ファイルシステムに格納してもよい。
【０１０１】
（１−５）Ｒｅａｄ処理の詳細
【０１０２】
図１４は、本実施の形態に係るデータのRead処理を示すフローチャートである。重複排除済みデータのＲｅａｄ処理は、１次重複排除処理部２０１及び２次重複排除処理部２０２によって行われる。
【０１０３】
図１４に示すように、１次重複排除処理部２０２は、まず、Ｒｅａｄ対象が２次重複排除済みのデータであるかを判定する（Ｓ３０１）。例えば、１次重複排除処理部２０２は、当該データがスタブ化されている場合に、当該データが２次重複排除済みのデータであると判定する。
【０１０４】
ステップＳ３０１において、Ｒｅａｄ対象のデータが２次重複排除済みであると判定された場合には、２次重複排除済みデータのＲｅａｄ処理を実行する（Ｓ３０２）。一方、ステップＳ３０１において、Ｒｅａｄ対象のデータが２次重複排除済みではないと判定された場合には、ステップＳ３０３以降の処理を実行する。
【０１０５】
図１５に、本実施の形態に係る２次重複排除済みデータのＲｅａｄ処理の詳細を示す。図１５に示すように、２次重複排除処理部２０２は、コンテンツデータのコンテンツＩＤ（content ID）に対応するコンテンツ管理テーブル１２４を読み出す（Ｓ３１１）。
【０１０６】
そして、２次重複排除処理部２０２は、コンテンツのチャンクの数分、ステップＳ３１３〜ステップＳ３１７のループＤの処理を繰り返す。
【０１０７】
まず、２次重複排除処理部２０２は、コンテンツ管理テーブル１２４からフィンガープリント（FingerPrint）を取得する（Ｓ３１３）。さらに、２次重複排除処理部２０２は、コンテンツ管理テーブル１２４からチャンクデータセットＩＤ（ChunkDataSetID）を取得する（Ｓ３１４）。
【０１０８】
そして、２次重複排除処理部２０２は、ステップＳ３１３において取得したフィンガープリント（FingerPrint）をキーにして、チャンクデータセットインデックス（ChunkDataSetIndex）１２３からチャンクのチャンク長（Length）及びオフセット（Offset）を取得する（Ｓ３１５）。
【０１０９】
そして、２次重複排除処理部２０２は、ステップＳ３１５において取得したチャンクデータセットのオフセット（Offset）からチャンク長（Length）分のデータを読み出す（Ｓ３１６）。そして、２次重複排除処理部２０２は、ステップＳ３１６において読み出した圧縮チャンクデータを第１ファイルシステムに書き込む（Ｓ３１７）。
【０１１０】
図１４に戻り、ステップＳ３０２において２次重複排除済みのデータのRead処理が実行された後、１次重複排除処理部２０１は、１次重複排除済みファイルをReadする（Ｓ３０３）。
【０１１１】
そして、ステップＳ３０３においてReadしたデータを伸長する（Ｓ３０４）。そして、データを要求したホスト装置２００等のデータ要求元に圧縮前のオリジナルデータを返却する（Ｓ３０５）。以上、重複排除済みデータのRead処理について説明した。
【０１１２】
（１−６）本実施形態の効果
【０１１３】
以上のように、本実施の形態によれば、１次重複排除処理部２０１は、ホスト装置２００からのデータを１または２以上のチャンクに分割し、分割したチャンクを圧縮し、チャンクの圧縮率が所定の閾値より低い場合に、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値とＨＤＤ１０４に既に格納されているデータのハッシュ値とを比較して第１の重複排除処理を実行し、チャンクの圧縮率が所定の閾値より大きい場合に、圧縮された該チャンクを第１のファイルシステムに格納した後に、２次重複排除処理部２０２が、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値と既にＨＤＤ１０４に格納されているデータのハッシュ値とを比較して２次重複排除処理を実行する。さらに、ストレージ装置の状態、ここでは、第１ファイルシステムの残り容量に応じて閾値を変更する。従って、第１ファイルシステムの残り容量が少ない場合には、閾値を大きくすることができ、この結果、１次重複排除処理における重複排除処理が行われることとなり、第１ファイルシステムに格納されるデータ量を低減することができる。一方、第１ファイルシステムの残り容量が多い場合には、閾値を小さくすることができ、１次重複排除処理における重複排除処理が実行される割合を低減することができ、ホストへの応答性能を向上することができる。これにより、ストレージ装置の状態に応じて、１次重複排除処理における重複排除処理と２次重複排除処理における重複排除処理とを効率的に使い分けることができる。具体的には、閾値を固定値とした場合には、第１ファイルシステムの残り容量が多い場合であっても、多くのチャンクに対して第１重複排除処理が行われてしまうといったことや、第１のファイルシステムの残り容量がほとんどない場合であっても、ほとんどのチャンクに対して第１重複排除処理が実行されないといったことを適切に低減することができる。
【０１１４】
（２）第２の実施形態
【０１１５】
次に、第２の実施形態について説明する。以下では、上記した第１の実施形態と同様の構成については詳細な説明は省略し、第１の実施形態と異なる構成について特に詳細に説明する。計算機システムのハードウェア構成は、第１の実施形態と同様であるため、詳細な説明は省略する。
【０１１６】
第２の実施形態に係るストレージ装置は、第１の実施形態に係るストレージ装置とは、閾値決定処理部２０４による閾値決定処理が異なっている。第２の実施形態で、ストレージ装置の状態の一例として、２次重複排除処理の負荷を示す情報に基づいて、閾値を決定するようにしている。２次重複排除処理の負荷を示す情報としては、２次重複排除処理において重複排除されるデータの量や、重複排除の判定を行う判定数や、これらから算出される値であってもよい。
【０１１７】
（２−１）閾値決定処理の詳細
【０１１８】
次に、図１６を参照して、閾値決定処理部２０４による閾値決定処理の詳細について説明する。なお、本実施形態では、閾値決定処理部２０４は、１次重複排除処理中（図１０のＳ１２６）に呼び出されて実行されるが、予め決められたタイミングで実行するようにしてもよいし、管理者の入力に応じて実行するようにしてもよい。
【０１１９】
閾値決定処理部２０４は、２次重複排除処理の負荷を示す値、例えば、２次重複排除判定数ｘを２次重複排除処理部２０２に問い合わせることにより取得する（Ｓ１６１）。ここで、２次重複排除判定数ｘとは、例えば、２次重複排除処理部２０２が問合せを受けた時点における２次重複判定処理が未処理のファイル数のことである。ただし、これに限定されるものではなく、２次重複排除処理部の負荷を示す値であればよい。次いで、閾値決定処理部２０４は、関係式ｙ＝ｇ（ｘ）から閾値ｙを取得し（Ｓ１６２）、当該閾値ｙをステップＳ１２７で使用する閾値とし（Ｓ１６３）、閾値決定処理を終了する。ここで、関係式ｙ＝ｇ（ｘ）は、例えば、図１７に示すように、２次重複排除判定数ｘが０から値ａまでの間は、閾値ｙが１００である。閾値ｙが１００である場合には、インライン方式に近い処理、すなわち、全てのチャンクに対して１次重複排除処理が実行される。また、関係式ｙ＝ｇ（ｘ）は、２次重複排除判定数ｘが値ａ〜ｂの間は、例えば、２次重複排除判定数ｘが増加すると、閾値ｙは、減少（例えば、１次関数的に減少）する対応関係を有する。また、関係式ｙ＝ｇ（ｘ）は、２次重複排除判定数ｘが値ｂ以上の場合には、閾値ｙが０となる関係式である。閾値ｙが０である場合には、ポストプロセス方式に近い処理、すなわち、全てのチャンクに対して重複排除判定をせずに、各チャンクを第１ファイルシステムに格納する処理が行われることとなる。このように、関係式ｙ＝ｇ（ｘ）は、２次重複排除判定数ｘが多くなるほど、閾値ｙが減少する傾向にある関係式である。ここで、値ａ、ｂ（ａ＜ｂ）は、ストレージ装置１００の使用状況等に応じて任意の値に設定してもよい。
【０１２０】
２次重複排除処理も１次重複排除処理も第２ファイルシステム内のメタデータにアクセスして重複判定処理を実行する。従って、１次重複排除処理も２次重複排除処理の性能に大きく影響する。従って、２次重複排除処理の負荷が高い場合には、１次重複排除処理の負荷を下げる必要がある。従って、この関係式によると、２次重複排除判定数が少ない場合には、閾値ｙを大きくすることができ、この結果、１次重複排除処理における重複排除処理を効果的に実行することができる。一方、２次重複排除判定数が多い場合には、閾値ｙを小さくすることができ、１次重複排除処理における重複排除処理が実行されることを低減することができ、２次重複排除処理の処理性能を向上することができる。これにより、ストレージ装置の状態に応じて、１次重複排除処理における重複排除処理と２次重複排除処理における重複排除処理とを効率的に使い分けることができる。例えば、２次重複排除処理が多く実行されている際に、多くのチャンクに対して、１次重複排除処理が実行されてしまって２次重複排除処理の実行が滞ってしまうといったことを適切に防止できる。
【０１２１】
なお、関係式ｙ＝ｇ（ｘ）は、図１７に示すように、値ａ〜値ｂまでの間において１次関数的に閾値ｙが減少する関係式でなくてもよく、要は、２次重複排除判定数が多いほど、閾値ｙが減少する、又はその傾向がある関係式であればよい。
【０１２２】
（３）第３の実施形態
【０１２３】
次に、第３の実施形態について説明する。以下では、上記した第１の実施形態と同様の構成については詳細な説明は省略し、第１の実施形態と異なる構成について特に詳細に説明する。計算機システムのハードウェア構成は、第１の実施形態と同様であるため、詳細な説明は省略する。
【０１２４】
第３の実施形態に係るストレージ装置は、第１の実施形態に係るストレージ装置とは、閾値決定処理部２０４による閾値決定処理が異なっている。第３の実施形態では、ストレージ装置の状態の一例として、１次重複排除処理で重複排除した圧縮チャンクの数と、全体の圧縮チャンクの数との比に基づいて、閾値を決定するようにしている。ここで、本実施形態は、１次重複排除処理で重複排除した圧縮チャンク数と、全体の圧縮チャンク数とが所定の値に近づくと、１次重複排除処理の１次重複排除と、２次重複排除処理の２次重複排除処理との全体としての性能速度が最も良くなるとの知見に基づいてなされたものである。ここで、この所定の値を目標値ということとする。
【０１２５】
（３−１）閾値決定処理の詳細
【０１２６】
次に、図１８を参照して、閾値決定処理部２０４による閾値決定処理の詳細について説明する。なお、本実施例では、閾値決定処理部２０４は、１次重複排除処理中（図１０のＳ１２６）に呼び出されて実行されるが、予め決められたタイミングで実行するようにしてもよいし、管理者の入力に応じて実行するようにしてもよい。
【０１２７】
閾値決定処理部２０４は、過去における１次重複排除処理で重複排除できた圧縮チャンク数を、全体の圧縮チャンク数で徐算して、過去における比率Ｐを取得する（Ｓ１７１）。ここで、過去における１次重複排除処理で重複排除できた圧縮チャンク数としては、ストレージ装置１００が動作を開始してから現時点までの間を対象としてもよく、過去の所定の範囲（例えば、過去１か月）を対象としてもよい。次いで、閾値決定処理部２０４は、目標値Ａを取得する（Ｓ１７２）。この目標値Ａは、例えば、ストレージ装置１００を運用することにより把握した値としてもよい。次いで、閾値決定処理部２０４は、前回判定に用いた閾値Ｃを取得する（Ｓ１７３）。
【０１２８】
次いで、閾値決定処理部２０４は、比率Ｐと、目標値Ａとの大小関係を判定する（Ｓ１７４）。この結果、比率Ｐが目標値Ａより大きい場合（Ｓ１７４：Ｐ＞Ａ）には、閾値決定処理部２０４は、前回閾値Ｃ−値ａと、０との小さくない方を今回使用する閾値とし（Ｓ１７５）、処理を終了する。なお、値ａは、任意の値であってよい。これにより、閾値を前回の閾値より小さくすることができ、１次重複排除処理で重複排除される圧縮チャンク数の増加を抑制することにより比率Ｐを目標値Ａに近づけることができ、１次重複排除処理の１次重複排除と、２次重複排除の２次重複解除処理との総合的な性能を向上することができる。
【０１２９】
また、比率Ｐが目標値Ａと同じ場合（Ｓ１７４：Ｐ＝Ａ）には、閾値決定処理部２０４は、前回閾値Ｃを今回用いる閾値とし（Ｓ１７６）、処理を終了する。これにより、閾値を前回と同じにして、１次重複排除処理で重複排除できる圧縮チャンク数の増加割合を維持することにより比率Ｐを目標値Ａと同じであることを比較的維持することができ、１次重複排除処理の１次重複排除と、２次重複排除の２次重複解除処理との全体としての性能を維持することができる。
【０１３０】
また、比率Ｐが目標値Ａより小さい場合（Ｓ１７４：Ｐ＜Ａ）には、閾値決定処理部２０４は、前回閾値Ｃ＋値ｂと、１００との大きくない方を今回使用する閾値とし（Ｓ１７７）、処理を終了する。なお、値ｂは任意の値であってよい。これにより、次に使用する閾値を前回の閾値より大きくすることができ、１次重複排除処理で重複排除できる圧縮チャンク数の増加を促進することにより比率Ｐを目標値Ａに近づけることができ、１次重複排除処理の１次重複排除と、２次重複排除の２次重複解除処理との全体としての性能を向上することができる。この閾値決定処理により決定された閾値を用いることにより、ポストプロセス方式で許容できる場合には、圧縮チャンクに対してポストプロセス方式を実施し、ホストプロセス方式で許容できなくなった場合には、圧縮チャンクに対してインライン方式を実施することができる。
【０１３１】
なお、上記例では、閾値を所定の値だけ増加、又は減少させるようにしていたが、閾値の増加、又は減少の方法は、これに限られない。また、上記例では、全体の圧縮チャンク数に対する１次重複排除処理で重複排除できた圧縮チャンク数の割合としていたが、例えば、１次重複排除処理で重複排除を判定した圧縮チャンク数の割合としてもよく、また、２次重複排除処理で重複排除を判定する圧縮チャンク数に対する１次重複排除処理で重複排除できた（又は重複排除を判定した）圧縮チャンク数の割合としてもよく、要は、処理における１次重複排除処理で重複排除を判定する圧縮チャンク数に関する割合であればよい。このようにすると、１次重複排除処理の１次重複排除と、２次重複排除処理の２次重複排除との全体としての性能速度が良くなるようにすることができる。
【０１３２】
なお、別の実施形態として、ストレージ装置１００のホスト計算機への応答性能により閾値を変化させてもよい。つまり、関係式ｙ＝ｈ（ｘ）（ｙ：閾値、ｘ：応答性能）を以下のように設定する。応答性能が高い場合には、閾値決定処理部２０４は、１次重複排除処理で重複排除できる圧縮チャンク数を増加させるために、閾値を上昇させる。また、応答性能が低い場合には、１次重複排除処理で重複排除できる圧縮チャンク数を減少させるために、閾値を減少させる。このように設定することで、応答性能に応じて、１次重複排除処理で重複排除できる圧縮チャンク数を調整できるため、１次重複排除処理で重複判定と、２次重複排除処理で重複判定とを効率的に併用できる。
【０１３３】
（４）第４の実施形態
【０１３４】
次に、図１９を参照して、第４の実施形態について説明する。以下では、上記した第１の実施形態と同様の構成については詳細な説明は省略し、第１の実施形態と異なる構成について特に詳細に説明する。計算機システムのハードウェア構成は、第１の実施形態と同様であるため、詳細な説明は省略する。
【０１３５】
（４−１）ホスト装置及びストレージ装置のソフトウェア構成
本実施形態では、図１９に示すように、ホスト装置２００’に１次重複排除処理部２０１が備えられ、ストレージ装置１００’には、２次重複排除処理部２０２及び閾値決定処理部２０４が備えられた構成となっている。ホスト装置２００’は、バックアップサーバ等のサーバ、他のストレージ装置であってもよい。
【０１３６】
このように、ホスト装置２００’において１次重複排除処理を実行することにより、データのバックアップ時に、ホスト装置２００’からストレージ装置１００’へのデータ量を削減することができる。例えば、ホスト装置２００’の処理能力が高く、ホスト装置２００’とストレージ装置１００’との間の転送能力が低い場合には、本実施形態の如く構成することが好ましい
【符号の説明】
【０１３７】
１００：ストレージ装置、１０１：仮想サーバ、１０３：システムメモリ、１０５：ファイバチャネルポート、１０６：ファイバチャネルケーブル、１１０：ディスクアレイ装置、１２１：スタブファイル、１２２：チャンクデータセット、１２３：チャンクデータセットインデックス、１２４：コンテンツ管理テーブル、１２５：チャンクインデックス、２００：ホスト装置、２０１：１次重複排除処理部、２０２：２次重複排除処理部、２０３：ファイルシステム管理部、２０４：閾値決定処理部
【図１】
2014125582.tif 000003
【図２】
2014125582.tif 000004
【図３】
2014125582.tif 000005
【図４】
2014125582.tif 000006
【図５】
2014125582.tif 000007
【図６】
2014125582.tif 000008
【図７】
2014125582.tif 000009
【図８】
2014125582.tif 000010
【図９】
2014125582.tif 000011
【図１０】
2014125582.tif 000012
【図１１】
2014125582.tif 000013
【図１２】
2014125582.tif 000014
【図１３】
2014125582.tif 000015
【図１４】
2014125582.tif 000016
【図１５】
2014125582.tif 000017
【図１６】
2014125582.tif 000018
【図１７】
2014125582.tif 000019
【図１８】
2014125582.tif 000020
【図１９】
2014125582.tif 000021
【手続補正書】
【提出日】平成28年9月5日(2016.9.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージ装置であって、
インターフェースと、
第１記憶領域と第２記憶領域とに関連する記憶装置と、
前記インターフェースを介して受信したデータの圧縮率が閾値より小さい場合、前記第１記憶領域に格納せずに圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第１重複判定を実行することを決定し、前記圧縮率が前記閾値以上の場合、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行することを決定する、制御部と、を有し、
前記制御部は、前記閾値を、前記ストレージ装置の状態に基づいて変更する、
ことを特徴とするストレージ装置。
【請求項２】
前記ストレージ装置の状態は、
前記第１記憶領域の残り容量であり、
前記制御部は、前記第１記憶領域の残り容量に応じて、前記閾値を変更する、
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記制御部は、前記第１記憶領域の残り容量が多いほど、前記閾値が小さい値に決定する傾向がある、
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記制御部は、前記第１記憶領域の残り容量が少ないほど、前記閾値が大きい値に決定する傾向がある、
ことを特徴とする請求項２又は３に記載のストレージ装置。
【請求項５】
前記ストレージ装置の状態は、
前記第２重複判定の負荷である、
ことを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記制御部は、
前記第２重複判定の負荷が高いほど、前記閾値が小さい値に決定する傾向がある、
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
前記ストレージ装置の状態は、
前記第１重複判定で重複排除を行った圧縮されたデータ数と、全体の圧縮されたデータ数に関する所定の割合である、
ことを特徴とする請求項１に記載のストレージ装置。
【請求項８】
前記制御部は、
前記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値未満である場合には、前記閾値を減少させ、
前記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値より大きい場合には、前記閾値を増加させ、
前記全体の圧縮されたデータ数に対する前記第１重複判定で重複排除を行った圧縮されたデータ数の割合が所定の目標値と同じ場合には、前記閾値を変化させない、
ことを特徴とする請求項７に記載のストレージ装置。
【請求項９】
前記ストレージ装置の状態は、
ホスト計算機への応答性能である、
ことを特徴とする請求項１に記載のストレージ装置。
【請求項１０】
前記応答性能が高いほど、前記閾値が大きい値に決定する傾向がある、
ことを特徴とする請求項９に記載のストレージ装置。
【請求項１１】
前記圧縮率は、データ圧縮により減少されたデータ量の割合である、
ことを特徴とする請求項１乃至１０のうちのいずれか１項に記載のストレージ装置。
【請求項１２】
前記制御部は、圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する際、圧縮された前記データのハッシュ値と前記第２記憶領域に格納されているデータのハッシュ値とを比較する、
ことを特徴とする請求項１乃至１１のうちのいずれか１項に記載のストレージ装置。
【請求項１３】
ストレージ装置におけるデータの管理方法であって、
圧縮されたデータの圧縮率が閾値より小さい場合、第１記憶領域に格納せずに圧縮された前記データと同一のデータが第２記憶領域に格納されているかを判定する第１重複判定を実行することを決定し、
前記圧縮されたデータの圧縮率が前記閾値以上の場合、前記第１記憶領域に格納した後に圧縮された前記データと同一のデータが前記第２記憶領域に格納されているかを判定する第２重複判定を実行することを決定し、
前記閾値を、前記ストレージ装置の状態に基づいて変更する、
ことを特徴とするデータ管理方法。
【国際調査報告】
2014125582.tif 000022
2014125582.tif 000023
2014125582.tif 000024
2014125582.tif 000025