WO2013157103A1 - ストレージ装置及びストレージ制御方法 - Google Patents

ストレージ装置及びストレージ制御方法 Download PDF

Info

Publication number
WO2013157103A1
WO2013157103A1 PCT/JP2012/060504 JP2012060504W WO2013157103A1 WO 2013157103 A1 WO2013157103 A1 WO 2013157103A1 JP 2012060504 W JP2012060504 W JP 2012060504W WO 2013157103 A1 WO2013157103 A1 WO 2013157103A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
chunk
deduplication
value
backup
Prior art date
Application number
PCT/JP2012/060504
Other languages
English (en)
French (fr)
Inventor
直光 田代
幹人 尾形
Original Assignee
株式会社日立製作所
株式会社日立情報通信エンジニアリング
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所, 株式会社日立情報通信エンジニアリング filed Critical 株式会社日立製作所
Priority to PCT/JP2012/060504 priority Critical patent/WO2013157103A1/ja
Priority to US13/516,961 priority patent/US20130282672A1/en
Publication of WO2013157103A1 publication Critical patent/WO2013157103A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Definitions

  • FIG. 12 shows the operation of key-value store.
  • the coarse-grain deduplication control unit 2410 calls key-value store in storing or acquiring the FP list 2602.
  • FIG. 18 shows a deterrence threshold value table 2570.
  • the suppression threshold table 2570 is used for coarse-grained deduplication suppression processing that suppresses coarse-grained deduplication processing in order to reduce the load on the storage apparatus 200.
  • the suppression threshold table 2570 includes a file size threshold value 2571, a CPU usage rate threshold value 2572, an HDD usage rate threshold value 2573, a suppression file 2574, and a coarse-grained deduplication suppression flag 2575.
  • the coarse-grained deduplication control unit 2410 shifts the processing to S7026.
  • the target file is duplicated with a file in the previous generation backup.
  • the coarse-grained deduplication control unit 2410 registers the target file entry in the file pointer table 2520.
  • the coarse-grained deduplication control unit 2410 writes “2” to the deduplication flag 2522 of the target file, acquires the chunk list pointer 2545 associated with the meta pointer 2537 in the chunk pointer table 2540, and acquires the target The acquired chunk list pointer 2545 is written into the file pointer 2523 of the file.
  • Coarse-grained deduplication processing compares data in units of files and eliminates files that have not been duplicated with files that have been written to the LUT or LU2 in the past. Can be processed.
  • the coarse-grained deduplication control unit 2410 first calculates and compares the FP value of the first chunk of the target file, and if they match, the next chunk By calculating and comparing the FP values, it is possible to reduce the data for which the FP values are to be calculated, and to reduce the load on the coarse-grain deduplication processing.
  • the restore control unit 2450 sets the next chunk as the target chunk, acquires the chunk node 2547 of the target chunk from the acquired chunk list 2703, and acquires the FP value 2548 from the chunk node 2547.
  • the restore control unit 2450 acquires the chunk address 2555 corresponding to the acquired FP value 2548 from the fine-grained deduplication management table 2550.
  • the restore control unit 2450 reads the compressed data 820 of the target chunk from the acquired chunk address 2555.
  • the restore control unit 2450 restores the file by decompressing the read data.
  • the restore control unit 2450 acquires the chunk pointer 2705 in the acquired chunk node 2547.
  • the restore control unit 2450 determines whether the acquired chunk pointer 2705 is a null pointer.
  • Example 2 Receive multiple files, By performing inline deduplication processing under a predetermined condition, a file overlapping with a file received in the past is detected from among the plurality of files, and files other than the detected file among the plurality of files are temporarily stored. Save to the storage area, Dividing the saved file into a plurality of chunks; By performing post-process deduplication processing, a chunk that overlaps with a previously received chunk is detected from among the plurality of chunks, and chunks other than the detected chunk among the plurality of chunks are transferred to the transfer destination Save to storage area,
  • a storage control method comprising:

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 インライン型重複排除処理とポストプロセス型重複排除処理を行うストレージ装置の負荷の低減と重複排除の精度の向上とを両立させる。 ストレージ装置は、記憶デバイスとコントローラとを備える。コントローラは、複数のファイルを受信し、所定条件下でインライン型重複排除処理を行うことにより複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、複数のファイルのうち検出されたファイル以外のファイルを一時格納領域へ保存し、保存されたファイルを複数のチャンクへ分割し、ポストプロセス型重複排除処理を行うことにより、複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、複数のチャンクのうち検出されたチャンク以外のチャンクを転送先格納領域へ保存する。

Description

ストレージ装置及びストレージ制御方法
 本発明は、ストレージへ入力されるデータの重複排除を行う技術に関する。
 ソフトウェアベースの重複排除及び圧縮は、データをHDD(hard disk drive)等のバックアップメディアへ書き込む前に重複を特定するので、CPU(central processing unit)負荷が掛かる。このようにデータをon-the-fly writingするインライン(In-line)型重複排除において、データストリーム多重度が高くなると、CPU負荷の増大が顕著となる。
 ポストプロセス(Post-process)型重複排除において、取り込みバッファ(ingest buffer)のプットポインタがゲットポインタを追い越すオーバラン(overrun)を抑えるべく、取り込み(ingest)側プロセスを待機させると、直ちにバックアップ性能又はリストア性能の低下に繋がる。従って、取り込みバッファ容量を大きくする必要がある。
 重複排除ストレージの導入の主な目的は、バックアップ容量を抑え、バックアップに係るコストを下げることである。また、高性能なHDD及びRAID(Redundant Arrays of Inexpensive Disks、またはRedundant Arrays of Independent Disks)方式を採用する事で、取り込み性能(バックアップ性能又はリストア性能)を稼ごうとすれば、コストが割り増しとなってしまう。また、性能と費用の異なる記憶媒体の組合せに重複排除を適用することは、困難である。また、ストレージの容量設計や容量構成管理のコストが大きい。
 インライン型重複排除に加えてポストプロセス型重複排除を実行する技術や、最初にブロックレベルでの重複排除処理を行い、残ったコンテンツに対してのみコンテンツレベルでの重複排除処理を行う技術が知られている(例えば、特許文献1、2)。
米国特許出願公開第2011/0289281号明細書 国際公開第2010/100733号パンフレット
 しかし、インライン型重複排除に加えてポストプロセス型重複排除を実行する技術において、ストレージ装置におけるインライン型重複排除処理の処理方式とポストプロセス型重複排除処理の処理方式とは同じである。この場合、インライン型重複排除処理によって、そのストレージ装置へアクセスする計算機のアクセス性能が低下する場合がある。逆に、ポストプロセス型重複排除処理によって、十分に重複排除を行うことができない場合がある。
 また、最初にブロックレベルでの重複排除処理を行い、残ったコンテンツに対してのみコンテンツレベルでの重複排除処理を行う技術において、コンテンツよりも細かいブロックレベルでの重複排除処理を実行してから、コンテンツレベルでの重複排除処理を行うと、ブロックレベルでの重複排除処理の方が細かく比較しなければならないため、負荷が高くなってしまうといった課題がある。
 上記課題を解決するため、本発明の一態様であるストレージ装置は、一時格納領域及び転送先格納領域を有する記憶デバイスと、記憶デバイスに接続されているコントローラとを備える。コントローラは、複数のファイルを受信し、所定条件下でインライン型重複排除処理を行うことにより複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、複数のファイルのうち検出されたファイル以外のファイルを一時格納領域へ保存し、保存されたファイルを複数のチャンクへ分割し、ポストプロセス型重複排除処理を行うことにより、複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、複数のチャンクのうち検出されたチャンク以外のチャンクを転送先格納領域へ保存する。
 本発明の一態様によれば、インライン型重複排除処理とポストプロセス型重複排除処理を行うストレージ装置の負荷の低減と重複排除の精度の向上とを両立させることができる。
図1は、ストレージ装置の構成を示す。 図2は、ストレージ装置100とストレージ装置200とバックアップサーバ300との夫々のハードウェア構成を示す。 図3は、管理計算機400のハードウェア構成を示す。 図4は、ストレージ装置200のソフトウェア構成を示す。 図5は、ストレージ装置100のソフトウェア構成を示す。 図6は、バックアップサーバ300のソフトウェア構成を示す。 図7は、管理計算機400のソフトウェア構成を示す。 図8は、第1世代のバックアップを模式的に示す。 図9は、第2世代のバックアップを模式的に示す。 図10は、ファイルポインタテーブル2520を示す。 図11は、粗粒度判定用FPテーブル2530を示す。 図12は、key-value storeの動作を示す。 図13は、named arrayの動作を示す。 図14は、チャンクポインタテーブル2540を示す。 図15は、細粒度重複排除管理テーブル2550を示す。 図16は、バックアップ先における圧縮データ820の配置を示す。 図17は、状態管理テーブル2560を示す。 図18は、抑止用閾値テーブル2570を示す。 図19は、第1バックアップ制御処理を示す。 図20は、第2バックアップ制御処理を示す。 図21は、抑止用閾値制御処理を示す。 図22は、粗粒度重複排除処理を示す。 図23は、関連付け処理を示す。 図24は、スケジュール管理処理を示す。 図25は、細粒度重複排除処理を示す。 図26は、チャンク判定処理を示す。 図27は、リストア制御処理を示す。
 幾つかの実施例を説明する。なお、本発明の技術的範囲が各実施例に限定されない。
 なお、以後の説明では、「***テーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「***テーブル」を「***情報」と呼ぶことができる。
 また、以後の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信制御装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。また、プログラムを主語として説明された処理は、コントローラが行う処理としても良い。また、プログラムの一部又は全ては専用ハードウェアによって実現されてもよい。このため、プログラムを主語として説明された処理は、コントローラが行う処理としても良い。コントローラは、プロセッサと、プロセッサに実行されるコンピュータプログラムを記憶する記憶資源とを含んでも良いし、上記の専用ハードウェアを含んでも良い。また、コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
 また、以下の説明では、管理システムは、一以上の計算機、例えば、管理計算機、又は、管理計算機と表示用計算機との組み合わせである。具体的には、例えば、管理計算機が表示用情報を表示する場合は、管理計算機が管理システムである。また、処理の高速化や高信頼化のために、複数の計算機で管理計算機と同等の機能が実現されてもよく、この場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んで良い)が、管理システムである。
 以下、本発明の適用例であるストレージシステムについて説明する。
 本実施例のストレージシステムは、所定条件下でファイル単位のインライン型重複排除処理を行う。次にストレージシステムは、インライン型重複排除処理により重複を排除できなかったファイルを、ファイルより細かいチャンクへ分割する。次にストレージシステムは、チャンク単位のポストプロセス型重複排除処理を行う。
 インライン型重複排除処理がファイル単位で重複排除を行うことにより、ストレージシステムへアクセスするホスト計算機のアクセス性能の低下を防ぐことができる。また、ポストプロセス型重複排除処理がさらに細かくデータ比較をすることにより、十分に重複排除を行うことができる。さらに、インライン型重複排除処理で排除されたファイルは、ポストプロセス型重複排除処理の対象外となるため、ポストプロセス型重複排除処理の負荷を低減することができる。
 
――――ストレージシステム10の構成――――
 以下、ストレージシステム10の構成について説明する。
 図1は、ストレージシステム10の構成を示す。このストレージシステム10は、ストレージ装置100と、ストレージ装置200と、バックアップサーバ300と、管理計算機400とを有する。ストレージ装置100と、ストレージ装置200と、バックアップサーバ300と、管理計算機400とは、SAN(Storage Area Network)やLAN(Local Area Network)等の通信ネットワーク500を介して接続されている。
 ストレージ装置100は、転送元格納領域(バックアップ元)のLU(Logical Unit)であるLU1を提供する。LU1は、バックアップにおいてコピー元となるファイルを格納する。ストレージ装置200は、一時格納領域のLUであるLUTと、転送先格納領域(バックアップ先)のLUであるLU2とを提供する。LUTは、粗粒度重複排除処理後のファイルを格納する。LU2は、細粒度重複排除処理後のチャンクの圧縮データとメタ情報とを格納する。バックアップサーバ300は、ストレージ装置100からストレージ装置200へのバックアップの指示を行う。管理計算機400は、ストレージシステム10を起動して管理する。
 図2は、ストレージ装置100とストレージ装置200とバックアップサーバ300との夫々のハードウェア構成を示す。ストレージ装置100とストレージ装置200とバックアップサーバ300との夫々は、コントローラ180と記憶デバイス150とを有する。コントローラ180は、CPU110と、共用メモリ120と、キャッシュメモリ130と、データ転送部140と、通信インタフェース160と、デバイスインタフェース170を有する。記憶デバイス150は、プログラム及びデータを格納する。デバイスインタフェース170は、記憶デバイス150に接続されている。通信インタフェース160は、通信ネットワーク500に接続されている。データ転送部140は、通信インタフェース160及び通信ネットワーク500を介して、他の装置との間でデータ転送を行う。CPU110は、記憶デバイス150内のプログラム及びデータを、共用メモリ120へ読み出し、読み出されたプログラム及びデータに従って、データ転送部140及び記憶デバイス150の制御等を行う。
 この実施例において記憶デバイス150は、HDD(hard disk drive)であるが、不揮発性半導体メモリや磁気テープ等の記憶媒体であっても良い。また、記憶デバイス150は、一つの記憶媒体を有していても良いし、複数の記憶媒体を有していても良い。LU1は、ストレージ装置100の記憶デバイス150により構成される。LUT及びLU2は、ストレージ装置200の記憶デバイス150により構成される。なお、LUT及びLU2は、夫々異なる記憶媒体により構成されても良いし、同一の記憶媒体により構成されても良い。また、LU1、LUT、LU2の夫々は、RAIDやThin Provisioning等を用いる仮想記憶デバイスにより構成されても良い。
 キャッシュメモリ130は、外部の装置から受信したデータや、外部の装置へ送信するデータを一時的に保存する。キャッシュメモリ130は例えば、共用メモリ120より高速なメモリである。LU1は、ストレージ装置100の記憶デバイス150により構成される。
 図3は、管理計算機400のハードウェア構成を示す。管理計算機400は、CPU410と、メモリ420と、記憶デバイス430と、入力デバイス440と、出力デバイス450と、通信インタフェース460とを有する。記憶デバイス430は、プログラム及びデータを格納する。通信インタフェース460は、通信ネットワーク500に接続されている。CPU410は、記憶デバイス430内のプログラム及びデータを、メモリ420へ読み出し、読み出されたプログラム及びデータに従って、記憶デバイス430及び入力デバイス440及び出力デバイス450の制御等を行う。入力デバイス440は、管理計算機400のユーザから入力されたデータをCPU410へ送る。出力デバイス450は、CPU410からのデータをユーザへ出力する。
 図4は、ストレージ装置200のソフトウェア構成を示す。バックアップ先のストレージ装置200は、OS(operating system)2100と、データI/O(input/output)部2200と、ドライブ制御部2300と、粗粒度重複排除制御部2410と、細粒度重複排除制御部2420と、スケジュール管理部2430と、バックアップ制御部2440と、リストア制御部2450と、ファイルポインタテーブル2520と、粗粒度判定用FP(finger print)テーブル2530と、チャンクポインタテーブル2540と、細粒度重複排除管理テーブル2550と、状態管理テーブル2560と、抑止用閾値テーブル2570とを有する。
 OS2100は、ストレージ装置200を管理する。データI/O部2200は、ストレージ装置200におけるデータの入出力を管理する。ドライブ制御部2300は、ストレージ装置200内の記憶デバイス150を制御する。
 粗粒度重複排除制御部2410は、インライン型重複排除処理である粗粒度重複排除処理を行う。粗粒度重複排除処理は、ファイル単位での重複排除処理である。細粒度重複排除制御部2420は、ポストプロセス型重複排除処理である細粒度重複排除処理を行う。細粒度重複排除処理は、チャンク単位での重複排除処理である。スケジュール管理部2430は、バックアップのスケジュールを管理する。バックアップ制御部2440は、バックアップサーバ300からの指示に応じてバックアップを制御する。リストア制御部2450は、リストアの指示に応じてリストアを制御するリストア制御処理を行う。抑止用閾値制御部2460は、粗粒度重複排除処理の抑止のための閾値を制御する抑止用閾値制御処理を行う。
 また、粗粒度判定用FPテーブル2530と、チャンクポインタテーブル2540と、細粒度重複排除管理テーブル2550とは、LU2内に格納されている。また、ファイルポインタテーブル2520は、LUT内に格納されている。
 ファイルポインタテーブル2520は、ファイル毎に、重複排除の結果と位置とを示す。粗粒度判定用FPテーブル2530は、重複排除されたファイル毎のFP値群を示す。チャンクポインタテーブル2540は、バックアップ毎のファイル群、ファイル毎のメタ情報及びFP値群を示す。細粒度重複排除管理テーブル2550は、FP値とチャンクの圧縮データの位置との対応付けを示す。状態管理テーブル2560は、バックアップ毎の状態を示す。抑止用閾値テーブル2570は、粗粒度重複排除処理の抑止のための情報を示す。
 図5は、ストレージ装置100のソフトウェア構成を示す。バックアップ元のストレージ装置100は、OS1100と、データI/O部1200と、ドライブ制御部1300とを有する。これらの情報は、共用メモリ120に格納される。
 OS1100は、ストレージ装置100を管理する。データI/O部1200は、ストレージ装置100におけるデータの入出力を管理する。ドライブ制御部1300は、ストレージ装置100内の記憶デバイス150を制御する。
 図6は、バックアップサーバ300のソフトウェア構成を示す。バックアップサーバ300は、OS3100と、データI/O部3200と、ドライブ制御部3300と、バックアップアプリケーション3400とを有する。これらの情報は、共用メモリ120に格納される。
 OS3100は、バックアップサーバ300を管理する。データI/O部3200は、バックアップサーバ300におけるデータの入出力を管理する。ドライブ制御部3300は、バックアップサーバ300内の記憶デバイス150を制御する。バックアップアプリケーション3400は、バックアップの指示、又はリストアの指示を行う。
 図7は、管理計算機400のソフトウェア構成を示す。管理計算機400は、OS4100と、データI/O部4200と、管理アプリケーション4300とを有する。
 OS4100は、管理計算機400を管理する。データI/O部4200は、管理計算機400におけるデータの入出力を管理する。管理アプリケーション4300は、ストレージシステム10を管理する。
 
――――ストレージシステム10によるバックアップの具体例――――
 以下、ストレージシステム10によるバックアップの具体例について説明する。
 ここでは、ストレージシステム10により、第1世代のバックアップと第2世代のバックアップが行われるとする。
 まず、第1世代のバックアップについて説明する。
 図8は、第1世代のバックアップを模式的に示す。バックアップ中に、粗粒度重複排除処理と細粒度重複排除処理が行われる。
 バックアップサーバ300のバックアップアプリケーション3400は、ストレージ装置100、200にバックアップの開始を指示し、LU1からファイル720であるA、B、Cを読み出し、A、B、Cの先頭に夫々メタ情報2546であるMA、MB、MCを付加してデータストリーム610を生成し、通信ネットワーク500を介してそのデータストリーム610をストレージ装置200へ送信する。メタ情報2546は、バックアップの管理のための情報である。この例において、A、B、Cの全てが新規のバックアップであり、且つ、互いに内容の異なるファイルであるとする。ファイルは、データブロックと呼ばれても良い。
 まず粗粒度重複排除制御部2410は、粗粒度重複排除処理(S11~S14)を行う。
 S11において、粗粒度重複排除制御部2410は、バックアップサーバ300から受信されてキャッシュメモリ130に格納されたデータストリーム610を、メタ情報2546とファイル720に分離する。
 次にS12において、粗粒度重複排除制御部2410は、メタ情報2546と、そのメタ情報2546の位置を示すメタポインタ2544とを、LU2内のチャンクポインタテーブル2540へ登録する。
 次にS13において、粗粒度重複排除制御部2410は、各ファイル720内のチャンクのFP(finger print)値2535を計算し、それらのFP値2535が粗粒度判定用FPテーブル2530に登録済みであるか否かを判定する。粗粒度重複排除制御部2410は、例えばハッシュ関数によりFP値2535を算出する。FP値2535を、ハッシュ値と呼ぶこともできる。この例において、A、B、CのFP値2535が、未だ粗粒度判定用FPテーブル2530に登録されていないため、粗粒度重複排除制御部2410は、A、B、Cから算出されたFP値2535を粗粒度判定用FPテーブル2530へ登録する。
 次にS14において、粗粒度重複排除制御部2410は、A、B、CをLUT内のファイルデータ格納領域710へ書き込み、各ファイル720の位置を示すファイルポインタ2523をLUT内のファイルポインタテーブル2520に登録する。
 次に細粒度重複排除制御部2420は、細粒度重複排除処理(S15~S19)を行う。ここでは、Aについての細粒度重複排除処理を説明するが、B、CについてもAと同様の細粒度重複排除処理が行われる。
 S15において、細粒度重複排除制御部2420は、LUT内のファイルポインタテーブル2520を参照することにより、細粒度重複排除処理の対象であるAを認識し、LUTからAを読み出す。
 次にS16において、細粒度重複排除制御部2420は、Aをチャンキングする。これにより、Aは、複数のチャンクであるAa、Ab、Acに分割されるとする。即ち、チャンクのサイズは、ファイルのサイズより小さい。なお、チャンクは、セグメントと呼ばれても良い。
 次にS17において、細粒度重複排除制御部2420は、各チャンクのFP値2548を計算し、細粒度重複排除管理テーブル2550に登録済みであるか否かを判定する。FP値2548を、ハッシュ値と呼ぶこともできる。この例において、各チャンクのFP値2548は、未だ細粒度重複排除管理テーブル2550に登録されていないため、細粒度重複排除制御部2420は、各チャンクのFP値2548を細粒度重複排除管理テーブル2550に登録する。
 次にS18において、細粒度重複排除制御部2420は、各チャンクの圧縮データ820をLU2内のデータ格納領域810へ書き込み、各チャンクの圧縮データ820の位置を示すチャンクアドレス2555を細粒度重複排除管理テーブル2550内のFP値2548に対応付ける。また、細粒度重複排除制御部2420は、FP値2548の位置を指すチャンクリストポインタ2545をチャンクポインタテーブル2540へ登録する。
 以上が第1世代のバックアップである。
 次に、第2世代のバックアップについて説明する。
 図9は、第2世代のバックアップを模式的に示す。バックアップサーバ300のバックアップアプリケーション3400は、ストレージ装置100、200にバックアップの開始を指示し、LU1からファイル720であるZ、B、Cを読み出し、Z、B、Cの先頭に夫々メタ情報2546であるMD、ME、MFを付加してデータストリーム610を生成し、そのデータストリーム610をストレージ装置200へ送信する。この例においては、前述のA、B、Cのうち、AがZに書き換えられており、且つZがB、Cと異なるファイルであるとする。
 まず粗粒度重複排除制御部2410は、粗粒度重複排除処理(S21~S24)を行う。
 S21において、粗粒度重複排除制御部2410は、バックアップサーバ300から受信されてキャッシュメモリ130に格納されたデータストリーム610を、メタ情報2546とファイル720に分離する。
 次にS22において、粗粒度重複排除制御部2410は、メタ情報2546と、そのメタ情報の位置を指すメタポインタ2544とを、LU2内のチャンクポインタテーブル2540へ登録する。
 次にS23において、粗粒度重複排除制御部2410は、各ファイル720内のチャンクのFP値2535を計算し、それらのFP値2535が粗粒度判定用FPテーブル2530に登録済みであるか否かを判定する。この例において、ZのFP値2535のみが、未だ粗粒度判定用FPテーブル2530に登録されていないため、粗粒度重複排除制御部2410は、Zから算出されたFP値2535を粗粒度判定用FPテーブル2530へ登録する。
 次にS24において、粗粒度重複排除制御部2410は、ZをLUT内のファイルデータ格納領域710へ書き込み、そのファイル720の位置を指すファイルポインタをLUT内のファイルポインタテーブル2520に登録する。更に、粗粒度重複排除制御部2410は、LU2内のチャンクポインタテーブル2540におけるB、Cのチャンクリストポインタ2545をファイルポインタテーブル2520に登録する。
 次に細粒度重複排除制御部2420は、細粒度重複排除処理(S25~S29)を行う。ここで、B、Cは、粗粒度重複排除処理により重複すると判定されたことによりLUTに格納されず、細粒度重複排除処理の対象にならない。
 S25において、細粒度重複排除制御部2420は、LUT内のファイルポインタテーブル2520を参照することにより、細粒度重複排除処理の対象であるZを認識し、LUTからZを読み出す。
 次にS26において、細粒度重複排除制御部2420は、Zをチャンキングする。これにより、Zは、複数のチャンクであるAa、Az、Acに分割されるとする。ここで、AとZを比較すると、AbだけがAzに書き換えられているとする。
 次にS27において、細粒度重複排除制御部2420は、各チャンクのFP値2548を計算し、細粒度重複排除管理テーブル2550に登録済みであるか否かを判定する。この例において、AzのFP値2548のみが、細粒度重複排除管理テーブル2550に登録されていないため、細粒度重複排除制御部2420は、AzのFP値2548を細粒度重複排除管理テーブル2550に登録する。
 次にS28において、細粒度重複排除制御部2420は、Azの圧縮データ820をLU2内のデータ格納領域810へ書き込み、Azの位置を指すチャンクアドレス2555を細粒度重複排除管理テーブル2550内のFP値2548に対応付ける。また、細粒度重複排除制御部2420は、FP値2548の位置を指すチャンクリストポインタ2545をチャンクポインタテーブル2540へ登録する。
 以上が第2世代のバックアップである。
 
――――ストレージ装置200内の情報――――
 以下、ストレージ装置200内の情報について説明する。
 図10は、ファイルポインタテーブル2520を示す。ファイルポインタテーブル2520は、ファイル毎のエントリを有する。各エントリは、ファイル番号2521と、重複排除フラグ2522と、ファイルポインタ2523とを有する。
 ファイル番号2521は、当該ファイルの番号を示す。
 重複排除フラグ2522は、当該ファイルが粗粒度重複排除処理により排除されたか否かを示す。重複排除フラグ2522の値が0である場合、当該ファイルが粗粒度重複排除処理により排除されていないことを示す。即ちこれは、当該ファイルが新規のバックアップであることを示す。重複排除フラグ2522の値が0以外である場合、当該ファイルが粗粒度重複排除処理により排除されたことを示す。重複排除フラグ2522の値が1である場合、当該ファイルが同一データストリーム610内の前方(粗粒度重複排除処理済み)のファイルと重複することにより排除されたことを示す。即ちこれは、当該ファイルと同じファイルがLUT内に存在することを示す。重複排除フラグ2522の値が2である場合、当該ファイルが過去のバックアップと重複することにより排除されたことを示す。即ちこれは、当該ファイルと同じファイルがLU2内に存在することを示す。
 ファイルポインタ2523は、LUTにおける当該ファイルの位置、又は当該ファイルと重複するファイルを示す情報を指す。当該ファイルの重複排除フラグ2522が0である場合、ファイルポインタ2523は、LUT内のファイルの位置を指す。当該ファイルの重複排除フラグ2522が1である場合、ファイルポインタ2523は、ファイルポインタテーブル2520内で当該ファイルと重複するファイルのファイルポインタ2523の位置を指す。当該ファイルの重複排除フラグ2522が2である場合、ファイルポインタ2523は、LU2内のチャンクポインタテーブル2540内で当該ファイルと重複するファイルのチャンクリストポインタ2545の位置を指す。
 図11は、粗粒度判定用FPテーブル2530を示す。粗粒度判定用FPテーブル2530は、粗粒度重複排除処理により過去のファイルと重複していないと判定されたファイル毎に、走査キー2601と、FPリストポインタ2533と、ファイル毎のFPリスト2602とを有する。
 走査キー2601は、チャンク数2531と先頭FP値2532とを有する。チャンク数2531は、当該ファイル内のチャンクの数である。先頭FP値2532は、当該ファイル内の先頭チャンクから計算されたFPの値である。なお、走査キー2601は、先頭FP値2532であっても良い。
 FPリストポインタ2533は、当該ファイルのFPリスト2602の先頭の位置を指す。
 FPリスト2602は、線形リストであり、幾つかのFPノード2534と、末尾のノードである末尾ノード2603とを有する。FPノード2534の数は、チャンク数2531に等しい。
 FPノード2534は、当該ファイル内の各チャンクに対応する。各チャンクに対応するFPノード2534は、FP値2535と、FPポインタ2536とを有する。FP値2535は、当該チャンクから計算されたFPの値である。FPポインタ2536は、次のFPノード2534の先頭の位置を指す。
 末尾ノード2603は、メタポインタ2537と、ファイルアドレス2538と、Nullポインタ2539とを有する。メタポインタ2537は、LU2内で当該ファイルのメタ情報2546を格納する位置を指す。ファイルアドレス2538は、LUT内で当該ファイルを格納する位置を指す。Nullポインタ2539は、その位置がFPリスト2602の終端であることを示す。
 先頭FP値2532は、対応するFPリスト2602内の先頭のFPノード2534内のFP値2535に等しい。
 ここで、粗粒度判定用FPテーブル2530にkey-value storeを用いる場合について説明する。図12は、key-value storeの動作を示す。粗粒度重複排除制御部2410は、FPリスト2602の保存又は取得においてkey-value storeをコールする。
 FPリスト2602を保存する場合、S31において、コール元である粗粒度重複排除制御部2410は、key-value storeに対し、keyとして走査キー2601を、valueとしてFPリスト2602を渡す。次にS32において、key-value storeは、渡されたkeyとvalueを保存する。
 FPリスト2602を取得する場合、S34において、コール元は、key-value storeに対し、keyとして走査キー2601を指定する。次にS35において、key-value storeは、指定されたkeyを検索してvalueを特定する。次にS36において、key-value storeは、特定されたvalueをコール元へ返答する。
 次に、粗粒度判定用FPテーブル2530にnamed arrayを用いる場合について説明する。図13は、named arrayの動作を示す。粗粒度重複排除制御部2410は、FPリスト2602の保存又は取得においてnamed arrayをコールする。
 まずS41において、named arrayとしてnaが定義される。FPリスト2602を保存する場合、S42において、コール元は、keyとして走査キー2601を、valueとしてFPリスト2602を、named arrayに保存する。FPリスト2602を取得する場合、S43において、コール元は、keyとして走査キー2601を指定し、指定されたkeyに対応するvalueを取得する。
 図14は、チャンクポインタテーブル2540を示す。チャンクポインタテーブル2540は、複数の世代のバックアップを管理するバックアップ管理情報2701と、各バックアップ内の各ファイルの情報であるファイル情報2702とを有する。
 バックアップ管理情報2701は、バックアップ毎のエントリを有する。各エントリは、バックアップID2541と、先頭ポインタ2542と、末尾ポインタ2543とを有する。バックアップID2541は、バックアップの識別子である。先頭ポインタ2542は、当該バックアップに属するファイルのうち、先頭のファイルのファイル情報2702の位置を指す。末尾ポインタ2543は、当該バックアップに属するファイルのうち、末尾のファイルのファイル情報2702の位置を指す。
 ファイル情報2702は、メタポインタ2544と、チャンクリストポインタ2545と、メタ情報2546と、チャンクリスト2703とを有する。メタポインタ2544は、当該ファイルのメタ情報2546の位置を指す。また、前述のバックアップ管理情報2701の先頭ポインタ2542は、当該バックアップの先頭のファイルのファイル情報2702のメタポインタ2544の位置を指す。チャンクリストポインタ2545は、メタポインタ2544に対応付けられ、当該ファイルのチャンクリスト2703の位置を指す。メタ情報2546は、データストリーム610において、バックアップサーバ300により当該ファイルに付加された情報である。メタ情報2546は、LU2内でチャンクポインタテーブル2540の外に格納されても良い。
 チャンクリスト2703は、当該ファイルのチャンク毎のチャンクノード2547を有する。チャンクノード2547は、FP値2548と、チャンクポインタ2705とを有する。FP値2548は、当該チャンクから算出されたFPの値である。ここで、前述のチャンクリストポインタ2545は、ファイルの先頭のチャンクに対応するチャンクノード2547のFP値2548の位置を指す。
 チャンクポインタ2705は、次のチャンクのFP値2548の位置を指す。或るファイルの末尾のチャンクに対応するチャンクノード2547は、チャンクポインタ2705の代わりに、Nullポインタ2706を有する。Nullポインタ2706は、その位置がチャンクリスト2703の終端であることを示す
 この例における複数のファイル情報2702は夫々、ファイルFA、FB、FC、FD、FE、FFを示す。ここで、今回のバックアップのデータストリーム610が、FA、FB、FC、FD、FEを含み、前回のバックアップのデータストリームが、FFを含むとする。
 ここで、FBは、同一データストリーム610内の前方にあるFAと重複しているとする。この場合、FBのチャンクリストポインタ2545は、FAのチャンクリスト2703の先頭の位置を指す。これにより、FBのファイル情報2702に、チャンクリスト2703はない。
 また、FDは、同一データストリーム610内の前方にあるFCと重複しているとする。この場合、FDのチャンクリストポインタ2545は、FCのチャンクリスト2703の先頭の位置を指す。これにより、FCのファイル情報2702に、チャンクリスト2703はない。
 また、FEは、前回のバックアップ内のFFと重複しているとする。この場合、FEのチャンクリストポインタ2545は、FFのチャンクリスト2703の先頭の位置を指す。これにより、FEのファイル情報2702に、チャンクリスト2703はない。
 図15は、細粒度重複排除管理テーブル2550を示す。細粒度重複排除処理により重複排除された各チャンクのFP値2548は、そのビットパターンの末尾のnビットのビットパターンが同一であるグループに分類される。nビットのビットパターンを、グループ識別子2552とする。nが12である場合、グループ識別子2552は、0、1、…、4095で表される。
 細粒度重複排除管理テーブル2550は、グループ識別子2552毎のバイナリツリー(二分木)2557を有する。バイナリツリー2557内のノード2558は、チャンクに対応する。各ノード2558は、FP値2553と、チャンクアドレス2555と、第1FPポインタ2554と、第2FPポインタ2556とを有する。
 FP値2553は、対応するグループに属するFPの値である。即ち、FP値2553の末尾のnビットは、対応するグループのグループ識別子2552になる。チャンクアドレス2555は、LU2において、FP値2553に対応するチャンクを格納する位置を示す。チャンクアドレス2555は、物理アドレスであっても良いし、論理アドレスであっても良い。第1FPポインタ2554は、当該ノードのFP値2553より小さいFP値2553を有するノードを指す。第2FPポインタ2556は、当該ノードのFP値2553より大きいFP値2553を有するノードを指す。
 また、重複排除済みのFP値2553が細粒度重複排除管理テーブル2550に登録されることにより、細粒度重複排除管理テーブル2550のサイズを抑えることができる。
 このデータ構造によれば、或る対象FP値を探索する場合、対象FP値からグループ識別子2552を認識し、グループ識別子2552に対応するバイナリツリー2557を選択する。次に選択されたバイナリツリー2557のルートノードから、対象FP値がノードのFP値2553より小さい場合に第1FPポインタ2554が指すノードへ移動し、対象のFP値がFP値2553より大きい場合に第2FPポインタ2556が指すノードへ移動する。これを繰り返すことにより、対象FP値のノードに到達し、そのノードのチャンクアドレス2555を取得することができる。
 図16は、バックアップ先における圧縮データ820の配置を示す。チャンクアドレス2555は、LU2内に格納される各チャンクの圧縮データ820の位置を指す。ここでの各チャンクは、重複排除済みである。従って、細粒度重複排除管理テーブル2550によれば、FP値2548に対応するチャンクアドレス2555を高速に特定することができる。これにより、FP値2548に基づいてLU2内のチャンクの圧縮データ820へ高速にアクセスすることができる。なお、チャンクアドレス2555の代わりに、論理ページ番号等、LU2内の論理位置を示す管理番号が用いられても良い。
 図17は、状態管理テーブル2560を示す。状態管理テーブル2560は、バックアップ毎のエントリを有する。各エントリは、バックアップID2561と、バックアップ状態2562と、細粒度重複排除状態2563とを有する。バックアップID2561は、バックアップID2541と同じバックアップの識別子である。バックアップ状態2562は、当該バックアップが完了している場合、そのバックアップの完了時刻を示し、当該バックアップが実行中である場合、「実行中」を示す。細粒度重複排除状態2563は、細粒度重複排除処理が完了している場合、その細粒度重複排除処理の完了時刻を示す。
 図18は、抑止用閾値テーブル2570を示す。抑止用閾値テーブル2570は、ストレージ装置200の負荷を低減するために粗粒度重複排除処理を抑止する粗粒度重複排除抑止処理に用いられる。抑止用閾値テーブル2570は、ファイルサイズ閾値2571と、CPU使用率閾値2572と、HDD使用率閾値2573と、抑止ファイル2574と、粗粒度重複排除抑止フラグ2575とを有する。
 ファイルサイズ閾値2571は、粗粒度重複排除処理を抑止するためのファイルサイズの閾値である。例えば、粗粒度重複排除抑止処理は、ストレージ装置200により受信されたデータストリーム610内の或るファイルのサイズがファイルサイズ閾値2571を超えた場合、そのファイルを粗粒度重複排除処理の対象から外す。CPU使用率閾値2572は、ファイルサイズ閾値2571を変更するためのCPU使用率の閾値である。HDD使用率閾値2573は、ファイルサイズ閾値2571を変更するためのHDD使用率の閾値である。抑止ファイル2574は、粗粒度重複排除処理の対象にならないファイルの種類を示す。例えば、粗粒度重複排除抑止処理は、ストレージ装置200により受信されたデータストリーム610内の或るファイルの種類が抑止ファイル2574に含まれている場合、そのファイルを粗粒度重複排除処理の対象から外す。抑止ファイル2574は、アクセス権やアクセス日時等の属性を示していても良い。粗粒度重複排除抑止フラグ2575は、粗粒度重複排除処理を抑止するか否かを設定するフラグである。
 
――――バックアップ制御処理――――
 以下、バックアップ制御部2440によるバックアップ制御処理について説明する。
 バックアップ制御部2440は、バックアップサーバ300からのバックアップ制御処理の指示に応じて、バックアップ制御処理を実行する。バックアップ制御処理は、第1バックアップ制御処理と、その後に実行される第2バックアップ制御処理とを有する。
 
以下、第1バックアップ制御処理について説明する。
 図19は、第1バックアップ制御処理を示す。S7300において、バックアップ制御部2440は、バックアップサーバ300のバックアップアプリケーション3400からバックアップ制御処理の指示を受信すると、第1バックアップ制御処理を開始する。ここで、指示されたバックアップの世代を対象バックアップとする。
 次にS7301において、バックアップ制御部2440は、状態管理テーブル2560内の対象バックアップのバックアップID2561を設定する。次にS7302において、バックアップ制御部2440は、状態管理テーブル2560内の細粒度重複排除状態2563を初期化(クリア)する。次にS7303において、バックアップ制御部2440は、状態管理テーブル2560内のバックアップ状態2562を「実行中」に変更する。次にS7304において、バックアップ制御部2440は、チャンクポインタテーブル2540内の対象バックアップの先頭ポインタ2542を設定する。
 次にS7305において、ストレージ装置100のLU1からバックアップサーバ300へファイルが転送され、バックアップサーバ300からストレージ装置200へデータストリーム610が転送されると、バックアップ制御部2440は、そのデータストリーム610を受信する。次にS7306において、バックアップ制御部2440は、抑止用閾値制御部2460をコールすることにより、後述の抑止用閾値制御処理を行う。次にS7307において、バックアップ制御部2440は、受信されたデータストリーム610から一つのメタ情報とそれに続くファイルとを取得する。次にS7308において、バックアップ制御部2440は、粗粒度重複排除制御部2410をコールすることにより、取得されたメタ情報とファイルについて後述の粗粒度重複排除処理を実行させる。次にS7309において、バックアップ制御部2440は、LU1から対象バックアップのデータの転送が終了したか否かを判定する。
 S7309の結果がNである場合、即ち対象バックアップのデータストリーム610の転送が終了していない場合、バックアップ制御部2440は、処理を前述のS7305へ移行させる。
 S7309の結果がYである場合、即ち対象バックアップのデータストリーム610の転送が終了した場合、バックアップ制御部2440は、処理をS7310へ移行させる。
 S7310において、バックアップ制御部2440は、チャンクポインタテーブル2540内の対象バックアップの末尾ポインタ2543を設定する。次にS7311において、バックアップ制御部2440は、状態管理テーブル2560内のバックアップ状態2562に完了時刻を書き込む。次にS7312において、バックアップ制御部2440は、待機する。
 以上が第1バックアップ制御処理である。
 第1バックアップ制御処理によれば、インライン型重複排除処理である粗粒度重複排除処理を実行することができる。
 
以下、第2バックアップ制御処理について説明する。
 図20は、第2バックアップ制御処理を示す。S7320において、バックアップ制御部2440は、後述のスケジュール管理処理により再起動されると、第2バックアップ制御処理を開始する。
 次にS7321において、バックアップ制御部2440は、LUTからファイルポインタテーブル2520を読み出して共用メモリ120へ保存する。次にS7322において、バックアップ制御部2440は、LU2から状態管理テーブル2560を読み出して共用メモリ120へ保存する。次にS7322において、バックアップ制御部2440は、状態管理テーブル2560を参照することにより対象バックアップを認識する。次にS7324において、バックアップ制御部2440は、チャンクポインタテーブル2540から対象バックアップの先頭ポインタ2542及び末尾ポインタ2543を取得する。
 次にS7325において、バックアップ制御部2440は、ファイルポインタテーブル2520から重複排除されていないファイルを選択し、選択されたファイルをLUTから読み出してキャッシュメモリ130へ保存する。次にS7326において、バックアップ制御部2440は、細粒度重複排除制御部2420をコールすることにより、読み出されたファイルについて後述の細粒度重複排除処理を実行させる。次にS7327において、バックアップ制御部2440は、全ての重複排除されていないファイルの細粒度重複排除処理が終了したか否かを判定する。
 S7327の結果がNである場合、即ち全ての重複排除されていないファイルの細粒度重複排除処理が終了していない場合、バックアップ制御部2440は、処理を前述のS7325へ移行させる。
 S7327の結果がYである場合、即ち全ての重複排除されていないファイルの細粒度重複排除処理が終了した場合、バックアップ制御部2440は、処理をS7328へ移行させる。S7328において、バックアップ制御部2440は、状態管理テーブル2560において対象バックアップの細粒度重複排除状態2563に完了時刻を設定する。
 以上が第2バックアップ制御処理である。
 第2バックアップ制御処理によれば、ポストプロセス型重複排除処理である細粒度重複排除処理を実行することができる。
 
以下、前述の第1バックアップ制御処理のS7306における抑止用閾値制御処理について説明する。
 図21は、抑止用閾値制御処理を示す。S7200において、抑止用閾値制御部2460がコールされると、抑止用閾値制御処理を開始する。
 次にS7201において、抑止用閾値制御部2460は、前回のコールから所定時間間隔以上の時間が経過したか否かを判定する。所定時間間隔は例えば、1分である。
 S7201の結果がNである場合、即ち前回コールされてから所定時間間隔以上の時間が経過していない場合、抑止用閾値制御部2460は、このフローを終了させる。
 S7201の結果がYである場合、即ち前回コールされてから所定時間間隔以上の時間が経過した場合、抑止用閾値制御部2460は、処理をS7202へ移行させる。S7202において、抑止用閾値制御部2460は、ストレージ装置200のCPU使用率がCPU使用率閾値2572を超えたか否かを判定する。
 S7202の結果がYである場合、即ちストレージ装置200のCPU使用率がCPU使用率閾値2572を超えた場合、抑止用閾値制御部2460は、処理をS7203へ移行させる。S7203において、抑止用閾値制御部2460は、抑止用閾値テーブル2570内のファイルサイズ閾値2571を所定の減少ステップだけ小さくし、このフローを終了させる。所定の減少ステップは例えば、チャンクサイズやチャンクサイズの倍数であっても良い。
 S7202の結果がNである場合、即ちストレージ装置200のCPU使用率がCPU使用率閾値2572を超えていない場合、抑止用閾値制御部2460は、処理をS7205へ移行させる。S7205において、抑止用閾値制御部2460は、ストレージ装置200内のLUTのHDD使用率がHDD使用率閾値2573を超えたか否かを判定する。
 S7205の結果がYである場合、即ちHDD使用率がHDD使用率閾値2573を超えた場合、抑止用閾値制御部2460は、処理をS7206へ移行させる。S7206において、抑止用閾値制御部2460は、抑止用閾値テーブル2570内のファイルサイズ閾値2571を所定の増加ステップだけ大きくし、このフローを終了させる。所定の増加ステップは例えば、チャンクサイズやチャンクサイズの倍数であっても良い。
 S7205の結果がNである場合、即ちHDD使用率がHDD使用率閾値2573を超えていない場合、抑止用閾値制御部2460は、このフローを終了させる。
 以上が抑止用閾値制御処理である。
 抑止用閾値制御処理によれば、ストレージ装置200の負荷に応じて粗粒度重複排除処理を抑止することにより、インライン型重複排除処理によるアクセス性能への影響を低減することができる。例えば、ストレージ装置200の負荷が予め定められた負荷閾値を超える場合、粗粒度重複排除処理の対象のファイル数を減らすことにより、粗粒度重複排除処理の負荷を低減することができる。例えば、ストレージ装置200の負荷が予め定められた負荷閾値以下である場合、粗粒度重複排除処理の対象のファイル数を増やすことにより、細粒度重複排除処理の負荷を低減することができる。
 なお、抑止用閾値制御部2460は、ストレージ装置200の負荷の代わりに、I/O量に基づいて、ファイルサイズ閾値2571を変更しても良い。また、抑止用閾値制御部2460は、I/O量に基づいて、粗粒度重複排除処理を実施するか否かを決定しても良い。例えば、抑止用閾値制御部2460は、I/O量が予め定められたI/O量閾値を超える場合、粗粒度重複排除処理を実施しない。時々刻々と変化するI/O量に応じて粗粒度重複排除処理を実施することにより、アクセス性能に影響を与えない範囲で粗粒度重複排除処理を実施することができる。
 I/O量は、ホスト計算機からストレージシステム10へのアクセスによるI/O量であっても良いし、ストレージ装置200のI/O量であっても良い。I/O量は、所定時間当たりのライトデータ量(流入量)であっても良いし、所定時間当たりのリードデータ量であっても良いし、それらの組み合わせであっても良い。
 I/O量に応じて粗粒度重複排除処理を抑止することにより、インライン型重複排除処理によるアクセス性能への影響を低減することができる。
 
以下、前述の第1バックアップ制御処理のS7308における粗粒度重複排除処理について説明する。
 図22は、粗粒度重複排除処理を示す。S7000において、粗粒度重複排除制御部2410がコールされると、粗粒度重複排除処理を開始する。
 次にS7001において、粗粒度重複排除制御部2410は、メタ情報及びファイルを取得し、LU2内でそのメタ情報を格納する位置を決定することにより、その位置を指すメタポインタを確定する。ここで、取得されたファイルを対象ファイルと呼ぶ。次にS7002において、粗粒度重複排除制御部2410は、抑止用閾値テーブル2570に基づいて対象ファイルが粗粒度重複排除抑止条件を満たすか否かを判定する。ここで、粗粒度重複排除制御部2410は、対象ファイルのファイルサイズがファイルサイズ閾値2571以上である場合、又は対象ファイルの属性やファイル形式が抑止ファイル2574に一致する場合、又は粗粒度重複排除抑止フラグ2575がオンである場合に、対象ファイルが粗粒度重複排除抑止条件を満たすと判定する。例えば、粗粒度重複排除制御部2410は、対象ファイルのヘッダから、対象ファイルの属性やファイル形式を検出し、抑止ファイル2574に一致するか否かを判定する。
 S7002の結果がYである場合、即ち対象ファイルが粗粒度重複排除抑止条件を満たす場合、粗粒度重複排除制御部2410は、処理をS7009へ移行させる。
 S7002の結果がNである場合、即ち対象ファイルが粗粒度重複排除抑止条件を満たさない場合、粗粒度重複排除制御部2410は、処理をS7003へ移行させる。S7003において、粗粒度重複排除制御部2410は、対象ファイルをチャンキングした場合のチャンク数を計算する。ここで、チャンクの代わりにチャンクと異なるサイズを有する部分データが用いられても良い。この場合の部分データのサイズはファイルのサイズより小さい。次にS7004において、粗粒度重複排除制御部2410は、対象ファイルの先頭チャンクのFP値を計算する。次にS7005において、粗粒度重複排除制御部2410は、計算されたチャンク数と計算された先頭チャンクのFP値とを対象ファイルの走査キーとし、粗粒度判定用FPテーブル2530から対象ファイルの走査キーを探索し、対象ファイルの走査キーが粗粒度判定用FPテーブル2530から検出されたか否かを判定する。ここで、粗粒度重複排除制御部2410は、前述のkey-value storeやnamed arrayを用いることができる。
 S7005の結果がNである場合、即ち対象ファイルの走査キーが粗粒度判定用FPテーブル2530から検出されない場合、粗粒度重複排除制御部2410は、処理をS7006へ移行させる。S7006において、粗粒度重複排除制御部2410は、対象ファイルの残りのチャンクのFP値を計算する。次にS7007において、粗粒度重複排除制御部2410は、粗粒度判定用FPテーブル2530の走査キー2601とFPリスト2602として、計算されたチャンク数と計算されたFP値を登録する。次にS7008において、粗粒度重複排除制御部2410は、LUT内で対象ファイルを格納する位置を決定することにより、その位置を指すファイルアドレス2538を確定し、登録されたFPリスト2602の末尾へ末尾ノードを登録する。即ち、粗粒度重複排除制御部2410は、その末尾ノードへ、確定されたメタポインタ2537と確定されたファイルアドレス2538とNullポインタ2539とを書き込む。次にS7009において、粗粒度重複排除制御部2410は、ファイルポインタテーブル2520へ対象ファイルのエントリを登録する。ここで、粗粒度重複排除制御部2410は、対象ファイルの重複排除フラグ2522へ「0」を書き込み、確定されたファイルポインタを対象ファイルのファイルポインタ2523へ書き込む。次にS7010において、粗粒度重複排除制御部2410は、対象ファイルをLUT内のファイルアドレス2538へ書き込み、処理をS7011へ移行させる。
 次にS7011において、粗粒度重複排除制御部2410は、LU2内のチャンクポインタテーブル2540内の対象ファイルのファイル情報2702内へ、メタ情報2546とメタポインタ2544を書き込み、このフローを終了させる。このように、メタ情報2546は、重複排除されることなく、LU2へ書き込まれる。ファイルに比べて、メタ情報2546のサイズは小さく、メタ情報2546同士が重複する可能性は低い。
 S7005の結果がYである場合、即ち対象ファイルの走査キーが粗粒度判定用FPテーブル2530から検出された場合、粗粒度重複排除制御部2410は、処理をS7013へ移行させる。次にS7013において、粗粒度重複排除制御部2410は、次のチャンクを選択し、選択されたチャンクのFP値を計算する。次にS7014において、粗粒度重複排除制御部2410は、検出された走査キーに対応するFPリスト2602を選択し、選択されたFPリスト2602の中から、選択されたチャンクの位置に対応するFP値2535を選択し、計算されたFP値と選択されたFP値2535とを比較し、計算されたFP値が選択されたFP値2535に一致するか否かを判定する。
 S7014の結果がNである場合、即ち計算されたFP値が選択されたFP値2535に一致しない場合、粗粒度重複排除制御部2410は、処理を前述のS7006へ移行させる。
 S7014の結果がYである場合、即ち計算されたFP値が選択されたFP値2535に一致した場合、粗粒度重複排除制御部2410は、処理をS7015へ移行させる。次にS7015において、粗粒度重複排除制御部2410は、対象ファイルの全チャンクのFP値の比較が終了したか否かを判定する。
 S7015の結果がNである場合、即ち対象ファイルの全チャンクのFP値の比較が終了していない場合、粗粒度重複排除制御部2410は、処理を前述のS7013へ移行させる。
 S7015の結果がYである場合、即ち対象ファイルの全てのチャンクのFP値の比較が終了し、対象ファイルの全チャンクのFP値が選択されたFPリスト2602に一致した場合、粗粒度重複排除制御部2410は、処理をS7020へ移行させる。次にS7020において、粗粒度重複排除制御部2410は、後述の関連付け処理を行い、処理を前述のS7011へ移行させる。
 以上が粗粒度重複排除処理である。
 ここで、前述の粗粒度重複排除処理のS7020における関連付け処理について説明する。
 図23は、関連付け処理を示す。
 まずS7025において、粗粒度重複排除制御部2410は、粗粒度判定用FPテーブル2530において、選択されたFPリスト2602の末尾ノード2603内のメタポインタ2537を取得し、取得されたメタポインタ2537が対象バックアップに属するか否かを判定する。ここで、粗粒度重複排除制御部2410は例えば、チャンクポインタテーブル2540から対象バックアップのバックアップID2541の先頭ポインタ2542及び末尾ポインタ2543を取得し、取得されたメタポインタ2537が、取得された先頭ポインタ2542から末尾ポインタ2543までの範囲内である場合、選択されたFPリスト2602の末尾のメタポインタ2537が対象バックアップに属すると判定する。
 S7025の結果がNである場合、即ち取得されたメタポインタ2537が対象バックアップに属していない場合、粗粒度重複排除制御部2410は、処理をS7026へ移行させる。この場合、対象ファイルは過去の世代のバックアップ内のファイルと重複している。S7026において、粗粒度重複排除制御部2410は、ファイルポインタテーブル2520へ対象ファイルのエントリを登録する。ここで、粗粒度重複排除制御部2410は、対象ファイルの重複排除フラグ2522へ「2」を書き込み、チャンクポインタテーブル2540内でメタポインタ2537に対応付けられているチャンクリストポインタ2545を取得し、対象ファイルのファイルポインタ2523へ、取得されたチャンクリストポインタ2545を書き込む。
 次にS7027において、粗粒度重複排除制御部2410は、対象ファイルとファイルポインタテーブル2520とをLUTへ書き込み、処理を前述のS7011へ移行させる。
 S7025の結果がYである場合、即ち取得されたメタポインタ2537が対象バックアップに属している場合、粗粒度重複排除制御部2410は、処理をS7028へ移行させる。この場合、対象ファイルは、対象バックアップのデータストリーム610内の前方のファイルと重複している。S7028において、粗粒度重複排除制御部2410は、粗粒度判定用FPテーブル2530から選択されたFPリスト2602の末尾ノード2603内のファイルアドレス2538を取得する。次にS7029において、粗粒度重複排除制御部2410は、ファイルポインタテーブル2520内の対象ファイルのエントリを変更する。ここで、粗粒度重複排除制御部2410は、対象ファイルの重複排除フラグ2522へ「1」を書き込み、対象ファイルのファイルポインタ2523へ、取得されたファイルアドレス2538を書き込む。
 以上が関連付け処理である。
 粗粒度重複排除処理によれば、ファイル単位でデータを比較し、過去にLUT又はLU2へ書き込まれたファイルと重複しているファイルを排除することにより、重複していないファイルのみを細粒度重複排除処理の対象にすることができる。また、粗粒度重複排除制御部2410は、対象ファイルが過去のファイルと重複するか否かの判定において、まず対象ファイルの先頭のチャンクのFP値を算出して比較し、一致すれば次のチャンクのFP値を算出して比較することにより、FP値の算出の対象となるデータを削減することができ、粗粒度重複排除処理の負荷を低減することができる。
 従来のインライン型重複排除処理において、ファイルのサイズが大きい場合、インライン型重複排除処理は、時間が掛かり、ホスト計算機からストレージシステムへのアクセス性能を低下させることがある。本実施例の粗粒度重複排除処理によれば、ファイルサイズに応じて粗粒度重複排除処理を抑止することにより、アクセス性能への影響を低減することができる。
 従来のインライン型重複排除処理において、ファイル形式によっては、インライン型重複排除処理の効果が出ないものがある。また、この場合のインライン型重複排除処理は、アクセス性能を低下させることがある。本実施例の粗粒度重複排除処理によれば、ファイル形式に応じて粗粒度重複排除処理を抑止することにより、アクセス性能への影響を低減することができる。
 ホスト計算機からストレージシステムへのI/O量は時々刻々と変化するため、従来のインライン型重複排除処理において、ストレージシステムのI/O負荷が高い場合、インライン型重複排除処理は、アクセス性能を低下させることがある。本実施例の粗粒度重複排除処理によれば、ストレージ装置200のI/O量に応じて粗粒度重複排除処理を抑止することにより、アクセス性能への影響を低減することができる。
 従来のインライン型重複排除処理において、ファイル単位でデータを比較することにより、アクセス性能を低下させることがある。本実施例の粗粒度重複排除処理によれば、ファイルの部分毎のFP値を比較することにより、アクセス性能への影響を低減することができる。
 また、粗粒度重複排除処理が、メタ情報とファイルを分離し、メタ情報を一時格納領域であるLUTへ書き込まずに、バックアップ先であるLU2へ先行して書き込み、ファイルについて低負荷且つ高速な重複排除を行うことにより、によって一時格納領域の書き込み量を削減することができる。
 
以下、スケジュール管理部2430によるスケジュール管理処理について説明する。
 図24は、スケジュール管理処理を示す。スケジュール管理部2430は、定期的にスケジュール管理処理を実行する。
 まずS7201において、スケジュール管理部2430は、状態管理テーブル2560内のバックアップ状態2562と細粒度重複排除状態2563を参照する。次にS7202において、スケジュール管理部2430は、細粒度重複排除処理の対象となるバックアップがあるか否かを判定する。ここで、スケジュール管理部2430は、或るバックアップのバックアップ状態2562に完了時刻が記録されており、且つ、細粒度重複排除状態2563に完了時刻が記録されていない場合、当該バックアップの細粒度重複排除処理を実行すべきであると判定する。
 S7202の結果がNである場合、即ち細粒度重複排除処理を実行すべきバックアップがない場合、スケジュール管理部2430は、このフローを終了させる。
 S7202の結果がYである場合、即ち細粒度重複排除処理を実行すべきバックアップがある場合、スケジュール管理部2430は、処理をS7303へ移行させる。S7203において、スケジュール管理部2430は、細粒度重複排除状態2563を「実行中」に変更する。S7304において、スケジュール管理部2430は、細粒度重複排除処理のために、バックアップ制御部2440を再起動することにより、前述の第2バックアップ制御処理を開始させる。
 以上がスケジュール管理処理である。
 スケジュール管理処理によれば、第1バックアップ制御処理と第2バックアップ制御処理を非同期で実行することができる。
 
以下、前述の第2バックアップ制御処理のS7326における細粒度重複排除処理について説明する。
 図25は、細粒度重複排除処理を示す。
 まずS7101において、細粒度重複排除制御部2420は、対象ファイルが粗粒度重複排除処理により重複排除済みであるか否かを判定する。ここで、細粒度重複排除制御部2420は、ファイルポインタテーブル2520において対象ファイルのエントリを取得し、そのエントリから重複排除フラグ2522及びファイルポインタ2523を取得し、取得された重複排除フラグ2522が「0」以外である場合、対象ファイルが重複排除済みであると判定する。
 S7101の結果がNである場合、即ち対象ファイルが重複排除済みでない場合、細粒度重複排除制御部2420は、処理をS7102へ移行させる。次にS7102において、細粒度重複排除制御部2420は、ファイルポインタテーブル2520において対象ファイルのファイルポインタ2523により示されている対象ファイルを取得する。次にS7103において、細粒度重複排除制御部2420は、対象ファイルをチャンキングし、これにより得られた各チャンクのFP値を算出する。次にS7104において、細粒度重複排除制御部2420は、算出されたFP値から対象ファイルのチャンクリスト2703を生成する。次にS7120において、細粒度重複排除制御部2420は、後述のチャンク判定処理を行う。
 次にS7121において、細粒度重複排除制御部2420は、ファイルポインタテーブル2520における対象ファイルのエントリを更新する。ここで、細粒度重複排除制御部2420は、対象ファイルの重複排除フラグ2522を「2」へ変更し、対象ファイルのチャンクリスト2703の位置を指すチャンクリストポインタ2545を取得し、対象ファイルのファイルポインタ2523を、取得されたチャンクリストポインタ2545へ変更する。次にS7123において、細粒度重複排除制御部2420は、取得されたチャンクリストポインタ2545と、生成されたチャンクリスト2703とを、LU2内のチャンクポインタテーブル2540へ書き込むことにより、チャンクポインタテーブル2540を更新し、このフローを終了する。
 S7101の結果がYである場合、即ち対象ファイルが重複排除済みである場合、細粒度重複排除制御部2420は、処理をS7115へ移行させる。次にS7115において、細粒度重複排除制御部2420は、対象ファイルの重複排除フラグ2522が「1」であるか否かを判定する。
 S7116の結果がNである場合、即ち対象ファイルの重複排除フラグ2522が「2」である場合、処理をS7117へ移行させる。この時、対象ファイルのファイルポインタ2523は、対象ファイルと重複しているファイルのチャンクリストポインタ2545の位置を指す。
 S7116の結果がYである場合、即ち対象ファイルの重複排除フラグ2522が「1」である場合、細粒度重複排除制御部2420は、取得されたファイルポインタ2523に指されたファイルポインタ2523を取得する。この時、対象ファイルのファイルポインタ2523は、対象ファイルと同一データストリーム610内の前方にあって対象ファイルと重複しているファイルのファイルポインタ2523の位置を指す。また、対象ファイルと重複しているファイルのファイルポインタ2523は、先行してS7121が行われることにより、そのファイルのチャンクリストポインタ2545の位置を指す。
 次にS7117において、細粒度重複排除制御部2420は、取得されたファイルポインタ2523に指されたチャンクリストポインタ2545を取得する。次にS7118において、細粒度重複排除制御部2420は、取得されたチャンクリストポインタ2545を、LU2内のチャンクポインタテーブル2540内の対象ファイルのチャンクリストポインタ2545へ書き込み、このフローを終了する。
 以上が細粒度重複排除処理である。
 ここで、前述の細粒度重複排除処理のS7120におけるチャンク判定処理について説明する。
 図26は、チャンク判定処理を示す。
 まずS7135において、細粒度重複排除制御部2420は、対象ファイル内の一つのチャンクを選択して対象チャンクとし、生成されたチャンクリスト2703から対象チャンクのチャンクノード2547を取得し、取得されたチャンクノード2547からFP値2548及びチャンクポインタ2705を取得する。ここで、取得されたFP値を対象FP値と呼ぶ。次にS7136において、細粒度重複排除制御部2420は、対象FP値が細粒度重複排除管理テーブル2550内に存在するか否かを判定する。ここで、細粒度重複排除制御部2420は、前述のように、対象FP値からグループ識別子2552を取得し、取得されたグループ識別子2552に対応するバイナリツリー2557により対象FP値のノードを探索し、そのノードのチャンクアドレス2555を取得する。
 S7136の結果がYである場合、即ち取得されたFP値が細粒度重複排除管理テーブル2550内に存在する場合、細粒度重複排除制御部2420は、処理をS7140へ移行させる。
 S7136の結果がNである場合、即ち取得されたFP値が細粒度重複排除管理テーブル2550内に存在しない場合、細粒度重複排除制御部2420は、処理をS7137へ移行させる。次にS7137において、細粒度重複排除制御部2420は、対象チャンクのデータを圧縮することにより圧縮データを生成する。次にS7138において、細粒度重複排除制御部2420は、LU2内で対象チャンクを格納するチャンクアドレスを決定し、対象FP値と決定されたチャンクアドレスとを含むノード2558を、細粒度重複排除管理テーブル2550へ追加する。次にS7139において、細粒度重複排除制御部2420は、対象チャンクの圧縮データを、決定されたチャンクアドレスへ書き込む。
 次に7140において、細粒度重複排除制御部2420は、取得されたチャンクポインタ2705がNullポインタ2706であるか否かを判定する。
 S7136の結果がNである場合、即ち取得されたチャンクポインタ2705がNullポインタ2706でない場合、細粒度重複排除制御部2420は、処理を前述のS7135へ移行させる。
 S7136の結果がYである場合、即ち取得されたチャンクポインタ2705がNullポインタ2706である場合、細粒度重複排除制御部2420は、このフローを終了する。
 以上がチャンク判定処理である。
 細粒度重複排除処理によれば、チャンク単位でデータを比較し、LUTに格納されているチャンクのうち、過去にLU2へ書き込まれたチャンクと重複しているチャンクを排除することができる。
 
――――リストア制御処理――――
以下、リストア制御部2450によるリストア制御処理について説明する。
 リストア制御部2450は、バックアップサーバ300からのリストア制御処理の指示に応じて、リストア制御処理を実行する。リストア制御処理は、LU2内の指定されたバックアップをLU1へ復元する。
 図27は、リストア制御処理を示す。S7400において、リストア制御部2450は、バックアップサーバ300のバックアップアプリケーション3400からリストア制御処理の指示を受信すると、リストア制御処理を開始する。リストア制御処理の指示は、対象バックアップを指定する。対象バックアップは例えば、バックアップIDにより示される。
 次にS7401において、リストア制御部2450は、対象バックアップのバックアップIDを取得する。次にS7402において、リストア制御部2450は、LU2内のチャンクポインタテーブル2540のバックアップ管理情報2701から、対象バックアップのバックアップID2541に対応する先頭ポインタ2542及び末尾ポインタ2543を読み出すことにより、対象バックアップに属するファイル情報2702のアドレス範囲を取得する。
 次にS7404において、リストア制御部2450は、取得されたアドレス範囲から一つのファイル情報2702を取得し、そのファイルを対象ファイルとし、対象ファイルのチャンクリストポインタ2545を取得する。次にS7405において、リストア制御部2450は、取得されたチャンクリストポインタ2545に指されているチャンクリスト2703を取得する。
 次にS7406において、リストア制御部2450は、次のチャンクを対象チャンクとし、取得されたチャンクリスト2703から対象チャンクのチャンクノード2547を取得し、そのチャンクノード2547からFP値2548を取得する。次にS7407において、リストア制御部2450は、取得されたFP値2548に対応するチャンクアドレス2555を、細粒度重複排除管理テーブル2550から取得する。次にS7408において、リストア制御部2450は、取得されたチャンクアドレス2555から対象チャンクの圧縮データ820を読み出す。次にS7409において、リストア制御部2450は、読み出されたデータを解凍することにより、ファイルを復元する。次にS7410において、リストア制御部2450は、取得されたチャンクノード2547内のチャンクポインタ2705を取得する。次にS7411において、リストア制御部2450は、取得されたチャンクポインタ2705がNullポインタであるか否かを判定する。
 S7411の結果がNである場合、即ち取得されたチャンクポインタ2705がNullポインタでない場合、リストア制御部2450は、処理を前述のS7406へ移行させる。
 S7411の結果がYである場合、即ち取得されたチャンクポインタ2705がNullポインタである場合、リストア制御部2450は、処理をS7412へ移行させる。次にS7412において、リストア制御部2450は、対象ファイルのファイル情報2702からメタポインタ2544を取得し、メタポインタ2544に指されたメタ情報2546を取得し、取得されたメタ情報と復元されたファイルとをバックアップサーバ300へ転送することにより、復元されたファイルをストレージ装置100のLU1へ転送する。次にS7413において、リストア制御部2450は、対象バックアップに属する全てのファイルの復元が終了したか否かを判定する。ここで、リストア制御部2450は、取得されたファイル情報2702が、読み出された末尾ポインタ2543に達した場合、対象バックアップに属する全てのファイルの復元が終了したと判定する。
 S7411の結果がNである場合、即ち対象バックアップに属する全てのファイルの復元が終了していない場合、リストア制御部2450は、処理を前述のS7404へ移行させる。
 S7411の結果がYである場合、即ち対象バックアップに属する全てのファイルの復元が終了した場合、リストア制御部2450は、このフローを終了させる。
 以上がリストア制御処理である。
 リストア制御処理によれば、粗粒度重複排除処理と細粒度重複排除処理により重複排除されLU2へ格納されたファイルを、世代毎にLU1へ復元することができる。また、リストア制御部2450は、チャンクポインタテーブル2540を用いることにより、対象バックアップに属するファイルのメタ情報2546及びFP値2548を取得することができる。また、リストア制御部2450は、細粒度重複排除管理テーブル2550を用いることにより、FP値2548に対応するチャンクアドレス2555と、チャンクアドレス2555に対応する圧縮データ820を高速に取得することができる。
 本実施例のストレージ装置200は、ファイルサイズ閾値以下のファイルサイズを有するファイルについてインライン型重複排除処理を実施し、ファイルサイズ閾値より大きいファイルサイズを有するファイルについてインライン型重複排除処理を実施しない。これにより、インライン型重複排除処理によるアクセス性能への影響を低減することができる。
 また、ストレージ装置200は、予め設定されたファイル形式のファイルについてインライン型重複排除処理を実施しない。これにより、インライン型重複排除処理の効果が出やすいファイルのみについてインライン型重複排除処理を実施することができ、インライン型重複排除処理によるアクセス性能への影響を低減することができる。
 また、ストレージ装置200は、ファイルの先頭から一定サイズのデータのハッシュをkeyとし、ファイルから一定サイズ毎に区切られたデータのハッシュをvalueとして、key-valueを用いてハッシュ比較を実施しても良い。これにより、データ比較の効率性と正確性を両立させることができる。
 また、本実施例によれば、ポストプロセス型重複排除処理の前にインライン型重複排除処理を行うことにより、高い実行効率と容量削減効率を低コストで実現することができる。また、バックアップの世代を重ねる度に、一時格納領域への書き込み量を削減することができる。
 また、抑止用閾値テーブル2570を設定することにより、インライン型重複排除処理とポストプロセス型重複排除処理の配分を変更することができ、ストレージシステム10に対するユーザの要求の変化に適応させることができる。
 また、本実施例によれば、低コストだが性能オーバーヘッドのある仮想プール(Thin Provisioning、AST:Autonomic Storage Tieringなど)をストレージ装置100、200に適用することができ、容量設計及び容量構成管理のコストを削減することができる。
 なお、粗粒度重複排除処理において、FP値を算出する単位はチャンクでなくても良い。例えば、粗粒度重複排除制御部2410は、ファイルを複数の部分データに分割し、部分データのFP値を算出する。この時、各部分データは、ファイルの先頭から所定サイズ毎の部分である。
 以上の実施例で説明された技術は、次のように表現することができる。
 (表現1)
 一時格納領域及び転送先格納領域を有する記憶デバイスと、
 前記記憶デバイスに接続されているコントローラと
 を備え、
 前記コントローラは、複数のファイルを受信し、所定条件下でインライン型重複排除処理を行うことにより前記複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、前記複数のファイルのうち前記検出されたファイル以外のファイルを前記一時格納領域へ保存し、前記保存されたファイルを複数のチャンクへ分割し、ポストプロセス型重複排除処理を行うことにより、前記複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、前記複数のチャンクのうち前記検出されたチャンク以外のチャンクを前記転送先格納領域へ保存する、
 ストレージ装置。
 (表現2)
 複数のファイルを受信し、
 所定条件下でインライン型重複排除処理を行うことにより前記複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、前記複数のファイルのうち前記検出されたファイル以外のファイルを一時格納領域へ保存し、
 前記保存されたファイルを複数のチャンクへ分割し、
 ポストプロセス型重複排除処理を行うことにより、前記複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、前記複数のチャンクのうち前記検出されたチャンク以外のチャンクを前記転送先格納領域へ保存する、
 ことを備えるストレージ制御方法。
 (表現3)
 複数のファイルを受信し、
 所定条件下でインライン型重複排除処理を行うことにより前記複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、前記複数のファイルのうち前記検出されたファイル以外のファイルを一時格納領域へ保存し、
 前記保存されたファイルを複数のチャンクへ分割し、
 ポストプロセス型重複排除処理を行うことにより、前記複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、前記複数のチャンクのうち前記検出されたチャンク以外のチャンクを前記転送先格納領域へ保存する、
 ことをコンピュータに実行させるプログラムを格納するコンピュータ読み取り可能な媒体。
10…ストレージシステム、 100…ストレージ装置、 120…共用メモリ、 130…キャッシュメモリ、 140…データ転送部、 150…記憶デバイス、 160…通信インタフェース、 170…デバイスインタフェース、 180…コントローラ、 200…ストレージ装置、 300…バックアップサーバ、 400…管理計算機、 2300…ドライブ制御部、 2410…粗粒度重複排除制御部、 2420…細粒度重複排除制御部、 2430…スケジュール管理部、 2440…バックアップ制御部、 2450…リストア制御部、 2460…抑止用閾値制御部、 2510…メタ情報、 2520…ファイルポインタテーブル、 2530…粗粒度判定用FPテーブル、 2540…チャンクポインタテーブル、 2550…細粒度重複排除管理テーブル、 2560…状態管理テーブル、 2570…抑止用閾値テーブル。

Claims (13)

  1.  一時格納領域及び転送先格納領域を有する記憶デバイスと、
     前記記憶デバイスに接続されているコントローラと
     を備え、
     前記コントローラは、複数のファイルを受信し、所定条件下でインライン型重複排除処理を行うことにより前記複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、前記複数のファイルのうち前記検出されたファイル以外のファイルを前記一時格納領域へ保存し、前記保存されたファイルを複数のチャンクへ分割し、ポストプロセス型重複排除処理を行うことにより、前記複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、前記複数のチャンクのうち前記検出されたチャンク以外のチャンクを前記転送先格納領域へ保存する、
     ストレージ装置。
  2.  前記コントローラは、前記複数のファイルの中から、ファイルサイズ閾値を超えるファイルサイズを有するファイルを特定して前記一時格納領域へ保存し、前記インライン型重複排除処理により、前記複数のファイルのうち前記特定されたファイル以外のファイルの中から過去に受信されたファイルと重複するファイルを検出する、
     請求項1に記載のストレージ装置。
  3.  前記コントローラは、前記コントローラのI/O量に基づいて、前記ファイルサイズ閾値を変更する、
     請求項2に記載のストレージ装置。
  4.  前記コントローラは、前記複数のファイルの中から、予め設定されたファイル形式を有するファイルを特定して前記一時格納領域へ保存し、前記インライン型重複排除処理により、前記複数のファイルのうち前記特定されたファイル以外のファイルの中から過去に受信されたファイルと重複するファイルを検出する、
     請求項1に記載のストレージ装置。
  5.  前記コントローラは、前記複数のファイルの夫々のヘッダからファイル形式を検出することにより、前記複数のファイルの中から、予め設定されたファイル形式を有するファイルを特定する、
     請求項4に記載のストレージ装置。
  6.  前記コントローラは、前記コントローラのI/O量に基づいて、前記インライン型重複排除処理を行うか否かを判定する、
     請求項1に記載のストレージ装置。
  7.  前記コントローラは、前記コントローラのI/O量が予め設定された閾値を超える場合、前記インライン型重複排除処理を行わない、
     請求項6に記載のストレージ装置。
  8.  前記コントローラは、前記インライン型重複排除処理により第1ファイルを前記一時格納領域へ保存する場合、前記第1ファイルの先頭から所定サイズまでの部分データのハッシュ値に基づくkeyである第1keyを算出して、前記転送先格納領域へ保存し、
     前記コントローラは、前記第1ファイルの後に前記第2ファイルを受信した場合、前記第2ファイルの先頭から前記所定サイズまでの部分データのハッシュ値に基づくkeyである第2keyを算出し、前記第1keyと前記第2keyとの比較に基づいて、前記第2ファイルが前記第1ファイルと重複するか否かを判定する、
     請求項1に記載のストレージ装置。
  9.  前記コントローラは、前記第1ファイルの前記所定サイズ毎の部分データのハッシュ値であるvalueを算出して第1valueとし、前記第1keyに対応付けて前記第1valueを前記転送先格納領域へ保存し、
     前記コントローラは、前記第1keyが前記第2keyに一致する場合、前記第2ファイルの前記所定サイズ毎の部分データのハッシュ値であるvalueを算出して第2valueとし、前記第1valueと前記第2valueとを比較し、前記第1valueが前記第2valueに一致する場合、前記第2ファイルが前記第1ファイルと重複すると判定する、
     請求項8に記載のストレージ装置。
  10.  前記コントローラは、前記インライン型重複排除処理の対象のファイルの前記所定サイズ毎の部分データの数を算出し、前記対象のファイルの先頭から所定サイズまでの部分データのハッシュ値を算出し、前記算出された数と前記算出されたハッシュ値とを含むkeyを算出する、
     請求項9に記載のストレージ装置。
  11.  前記コントローラは、前記ポストプロセス型重複排除処理により第1チャンクを前記転送先格納領域へ保存する場合、前記第1チャンクのハッシュ値である第1ハッシュ値を算出して前記転送先格納領域へ保存し、
     前記コントローラは、前記第1チャンクの後に前記第2チャンクを受信した場合、前記第2チャンクのハッシュ値である第2ハッシュ値を算出して前記第1ハッシュ値と比較し、前記第2ハッシュ値が前記第1ハッシュ値に一致する場合、前記第2チャンクが前記第1チャンクと重複すると判定する、
     請求項1に記載のストレージ装置。
  12.  前記コントローラは、前記第1ハッシュ値と前記転送先格納領域内の前記第1チャンクの位置とを対応付けて前記転送先格納領域へ保存する、
     請求項11に記載のストレージ装置。
  13.  複数のファイルを受信し、
     所定条件下でインライン型重複排除処理を行うことにより前記複数のファイルの中から過去に受信されたファイルと重複するファイルを検出し、前記複数のファイルのうち前記検出されたファイル以外のファイルを一時格納領域へ保存し、
     前記保存されたファイルを複数のチャンクへ分割し、
     ポストプロセス型重複排除処理を行うことにより、前記複数のチャンクの中から過去に受信されたチャンクと重複するチャンクを検出し、前記複数のチャンクのうち前記検出されたチャンク以外のチャンクを前記転送先格納領域へ保存する、
     ことを備えるストレージ制御方法。
PCT/JP2012/060504 2012-04-18 2012-04-18 ストレージ装置及びストレージ制御方法 WO2013157103A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2012/060504 WO2013157103A1 (ja) 2012-04-18 2012-04-18 ストレージ装置及びストレージ制御方法
US13/516,961 US20130282672A1 (en) 2012-04-18 2012-04-18 Storage apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/060504 WO2013157103A1 (ja) 2012-04-18 2012-04-18 ストレージ装置及びストレージ制御方法

Publications (1)

Publication Number Publication Date
WO2013157103A1 true WO2013157103A1 (ja) 2013-10-24

Family

ID=49381083

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/060504 WO2013157103A1 (ja) 2012-04-18 2012-04-18 ストレージ装置及びストレージ制御方法

Country Status (2)

Country Link
US (1) US20130282672A1 (ja)
WO (1) WO2013157103A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015068233A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 ストレージシステム
WO2015097757A1 (ja) * 2013-12-24 2015-07-02 株式会社日立製作所 ストレージシステム及び重複排除制御方法
WO2015125271A1 (ja) * 2014-02-21 2015-08-27 株式会社日立製作所 ファイルサーバ、その制御方法、およびストレージシステム
WO2016121024A1 (ja) * 2015-01-28 2016-08-04 富士通株式会社 通信方法、プログラム及び通信装置
US10387380B2 (en) 2016-11-21 2019-08-20 Fujitsu Limited Apparatus and method for information processing
JP2020135267A (ja) * 2019-02-18 2020-08-31 Necソリューションイノベータ株式会社 情報処理方法
JP2021170245A (ja) * 2020-04-16 2021-10-28 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US20220253222A1 (en) * 2019-11-01 2022-08-11 Huawei Technologies Co., Ltd. Data reduction method, apparatus, computing device, and storage medium
US20230418497A1 (en) * 2021-03-09 2023-12-28 Huawei Technologies Co., Ltd. Memory Controller and Method for Improved Deduplication

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417891B2 (en) * 2012-06-11 2016-08-16 Vmware, Inc. Unified storage/VDI provisioning methodology
JPWO2014125582A1 (ja) * 2013-02-13 2017-02-02 株式会社日立製作所 ストレージ装置及びデータ管理方法
KR101505263B1 (ko) * 2013-03-07 2015-03-24 포항공과대학교 산학협력단 데이터 중복 제거 방법 및 장치
US10949382B2 (en) * 2014-01-15 2021-03-16 Commvault Systems, Inc. User-centric interfaces for information management systems
CN105630834B (zh) * 2014-11-07 2021-07-20 中兴通讯股份有限公司 一种实现重复数据删除的方法及装置
US9916320B2 (en) * 2015-04-26 2018-03-13 International Business Machines Corporation Compression-based filtering for deduplication
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US9665287B2 (en) * 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US11032350B2 (en) 2017-03-15 2021-06-08 Commvault Systems, Inc. Remote commands framework to control clients
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10860232B2 (en) * 2019-03-22 2020-12-08 Hewlett Packard Enterprise Development Lp Dynamic adjustment of fingerprints added to a fingerprint index
US12032537B2 (en) 2021-03-29 2024-07-09 Cohesity, Inc. Deduplicating metadata based on a common sequence of chunk identifiers
US11797220B2 (en) 2021-08-20 2023-10-24 Cohesity, Inc. Reducing memory usage in storing metadata
US11947497B2 (en) * 2021-08-24 2024-04-02 Cohesity, Inc. Partial in-line deduplication and partial post-processing deduplication of data chunks
CN114138198B (zh) * 2021-11-29 2024-05-28 苏州浪潮智能科技有限公司 一种数据重删的方法、装置、设备及可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201861A (ja) * 2006-01-27 2007-08-09 Eastman Kodak Co ファイル管理方法
JP2009524882A (ja) * 2006-01-26 2009-07-02 ネットアップ,インコーポレイテッド 内容参照ストレージアレイ要素
WO2010100733A1 (ja) * 2009-03-05 2010-09-10 日立ソフトウエアエンジニアリング株式会社 統合重複排除システム、データ格納装置、及びサーバ装置
JP2010277374A (ja) * 2009-05-29 2010-12-09 Makoto Goto ファイル格納システム、サーバ装置及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323218A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd バックアップシステム
US20100088296A1 (en) * 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US20100257403A1 (en) * 2009-04-03 2010-10-07 Microsoft Corporation Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US9239843B2 (en) * 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8156306B1 (en) * 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
US8244992B2 (en) * 2010-05-24 2012-08-14 Spackman Stephen P Policy based data retrieval performance for deduplicated data
WO2012029258A1 (en) * 2010-08-31 2012-03-08 Nec Corporation Storage system
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US8781800B2 (en) * 2011-11-01 2014-07-15 International Business Machines Corporation Data de-duplication in computer storage systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524882A (ja) * 2006-01-26 2009-07-02 ネットアップ,インコーポレイテッド 内容参照ストレージアレイ要素
JP2007201861A (ja) * 2006-01-27 2007-08-09 Eastman Kodak Co ファイル管理方法
WO2010100733A1 (ja) * 2009-03-05 2010-09-10 日立ソフトウエアエンジニアリング株式会社 統合重複排除システム、データ格納装置、及びサーバ装置
JP2010277374A (ja) * 2009-05-29 2010-12-09 Makoto Goto ファイル格納システム、サーバ装置及びプログラム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015068233A1 (ja) * 2013-11-07 2015-05-14 株式会社日立製作所 ストレージシステム
US9720608B2 (en) 2013-11-07 2017-08-01 Hitachi, Ltd. Storage system
WO2015097757A1 (ja) * 2013-12-24 2015-07-02 株式会社日立製作所 ストレージシステム及び重複排除制御方法
WO2015125271A1 (ja) * 2014-02-21 2015-08-27 株式会社日立製作所 ファイルサーバ、その制御方法、およびストレージシステム
US9369527B2 (en) 2014-02-21 2016-06-14 Hitachi, Ltd. File server, file server control method, and storage system
WO2016121024A1 (ja) * 2015-01-28 2016-08-04 富士通株式会社 通信方法、プログラム及び通信装置
US10387380B2 (en) 2016-11-21 2019-08-20 Fujitsu Limited Apparatus and method for information processing
JP2020135267A (ja) * 2019-02-18 2020-08-31 Necソリューションイノベータ株式会社 情報処理方法
US20220253222A1 (en) * 2019-11-01 2022-08-11 Huawei Technologies Co., Ltd. Data reduction method, apparatus, computing device, and storage medium
US12079472B2 (en) * 2019-11-01 2024-09-03 Huawei Technologies Co., Ltd. Data reduction method, apparatus, computing device, and storage medium for forming index information based on fingerprints
JP2021170245A (ja) * 2020-04-16 2021-10-28 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP7404988B2 (ja) 2020-04-16 2023-12-26 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US20230418497A1 (en) * 2021-03-09 2023-12-28 Huawei Technologies Co., Ltd. Memory Controller and Method for Improved Deduplication

Also Published As

Publication number Publication date
US20130282672A1 (en) 2013-10-24

Similar Documents

Publication Publication Date Title
WO2013157103A1 (ja) ストレージ装置及びストレージ制御方法
US10754550B2 (en) Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems
JP5965541B2 (ja) ストレージ装置及びストレージ装置の制御方法
US8726070B2 (en) System and method for information handling system redundant storage rebuild
US8782005B2 (en) Pruning previously-allocated free blocks from a synthetic backup
US8965856B2 (en) Increase in deduplication efficiency for hierarchical storage system
JP5881859B2 (ja) ストレージ装置
US9740422B1 (en) Version-based deduplication of incremental forever type backup
US7681001B2 (en) Storage system
US20120137054A1 (en) Methods and systems for object level de-duplication for solid state devices
WO2014125582A1 (ja) ストレージ装置及びデータ管理方法
WO2014030252A1 (ja) ストレージ装置及びデータ管理方法
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
US9471245B1 (en) Method and apparatus for transferring modified data efficiently
CN103034592B (zh) 数据处理方法和装置
US9367256B2 (en) Storage system having defragmentation processing function
US10606499B2 (en) Computer system, storage apparatus, and method of managing data
KR101584760B1 (ko) 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치
US10613923B2 (en) Recovering log-structured filesystems from physical replicas
US10169161B2 (en) High speed backup
US10678431B1 (en) System and method for intelligent data movements between non-deduplicated and deduplicated tiers in a primary storage array
WO2015096847A1 (en) Method and apparatus for context aware based data de-duplication
US20170351608A1 (en) Host device
CN111338853B (zh) 一种基于Linux的数据实时存储系统及方法
US9032169B2 (en) Method for high performance dump data set creation

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13516961

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12874387

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12874387

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP