JPWO2014030252A1 - ストレージ装置及びデータ管理方法 - Google Patents

ストレージ装置及びデータ管理方法 Download PDF

Info

Publication number
JPWO2014030252A1
JPWO2014030252A1 JP2014531467A JP2014531467A JPWO2014030252A1 JP WO2014030252 A1 JPWO2014030252 A1 JP WO2014030252A1 JP 2014531467 A JP2014531467 A JP 2014531467A JP 2014531467 A JP2014531467 A JP 2014531467A JP WO2014030252 A1 JPWO2014030252 A1 JP WO2014030252A1
Authority
JP
Japan
Prior art keywords
chunk
data
storage area
stored
hash value
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
JP2014531467A
Other languages
English (en)
Inventor
雅之 岸
雅之 岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Telecommunication Engineering Ltd
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 Hitachi Ltd, Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Ltd
Publication of JPWO2014030252A1 publication Critical patent/JPWO2014030252A1/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】2つ以上の重複排除機構の利点を考慮して効率的に重複排除処理を実行する。【解決手段】ストレージ装置の制御部は、受信したデータを1または2以上のチャンクに分割し、分割した前記チャンクを圧縮し、圧縮率が閾値以下のチャンクに対し、前記第1記憶領域に格納せずに、圧縮された前記チャンクのハッシュ値を算出し、前記ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第1の重複排除処理を実行し、圧縮率が閾値より大きいチャンクに対し、前記第1記憶領域に圧縮された前記チャンクを格納した後に、前記圧縮された前記チャンクを前記第1記憶領域から読み出し、圧縮された前記チャンクのハッシュ値を算出し、該ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第2の重複排除処理を実行する。

Description

本発明は、ストレージ装置及びデータ管理方法に関し、2つ以上の重複排除機構を利用して重複排除処理を行うストレージ装置及びデータ管理方法に適用して好適なるものである。
ストレージ装置は、ホスト装置からの大規模データを記憶するために、大容量な記憶領域を保持している。ホスト装置からのデータは、年々増加の一途をたどっており、ストレージ装置のサイズやコストの問題から、大規模データを効率的に記憶する必要がある。そこで、記憶領域に格納するデータ量の増大を抑制し、データ容量効率を高めるため、データの重複を検出して排除するデータの重複排除処理が注目されている。
データの重複排除処理は、新たに記憶デバイスに書き込むデータ、いわゆるライトデータが、既に磁気ディスクに格納されているデータと同一内容の場合、重複するデータを磁気ディスクに書き込まない技術である。ライトデータが磁気ディスクに格納済みのデータと同一内容であるか否かは、一般的にデータのハッシュ値を用いて検証されている。
従来、ホスト装置からのデータのすべてをディスクに記憶した後に重複排除処理を行う方式(以降、ポストプロセス方式とも称する)が採用されていた。しかし、ポストプロセス方式では、ホスト装置からのデータのすべてをディスクに書き込む必要があるため、大容量の記憶領域が必要となってしまう。そこで、ポストプロセス方式だけでなく、ディスクに書き込む前に重複排除処理を行う方式(以降、インライン方式とも称する)も併用して、重複排除処理を実行する技術が開示されている(例えば、特許文献1)。
米国特許出願公開第2011/0289281号明細書
特許文献1では、重複排除処理において、単にポストプロセス方式とインライン方式を併用することのみ開示されている。しかし、ポストプロセス方式ではすべてのデータを一旦ディスクに書き込むため、全体の処理性能がディスクの書き込み性能に依存してしまう。また、インライン方式では、データをディスクに書き込む際に重複排除処理を行うため、全体の処理性能が重複排除処理の性能に依存してしまう。そこで、両方式の利点を考慮して重複排除処理を実行する必要があった。また、ポストプロセス方式とインライン方式を併用した場合、両方式で同様の重複排除処理を実行してしまい、無駄な重複排除処理が発生してしまう可能性があるという問題があった。
そこで、2つ以上の重複排除機構の利点を考慮して効率的に重複排除処理を実行することが可能なストレージ装置及びデータ管理方法を提案しようとするものである。
かかる課題を解決するために本発明においては、第1記憶領域と第2記憶領域とを提供する記憶装置と、前記記憶装置へのデータの入出力を制御する制御部と、を備え、前記制御部は、受信したデータを1または2以上のチャンクに分割し、分割した前記チャンクを圧縮し、圧縮率が閾値以下のチャンクに対し、前記第1記憶領域に格納せずに、圧縮された前記チャンクのハッシュ値を算出し、前記ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第1の重複排除処理を実行し、圧縮率が閾値より大きいチャンクに対し、前記第1記憶領域に圧縮された前記チャンクを格納した後に、前記圧縮された前記チャンクを前記第1記憶領域から読み出し、圧縮された前記チャンクのハッシュ値を算出し、該ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第2の重複排除処理を実行することを特徴とする、ストレージ装置が提供される。
かかる構成によれば、受信したデータを1または2以上のチャンクに分割し、分割したチャンクを圧縮し、チャンクの圧縮率が所定の閾値以下の場合に、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値と既に格納されているデータのハッシュ値とを比較して第1の重複排除処理を実行し、チャンクの圧縮率が所定の閾値より大きい場合に、圧縮された該チャンクを第1のファイルシステムに格納した後に、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値と既に格納されているデータのハッシュ値とを比較して第2の重複排除処理を実行する。
これにより、重複排除処理のうち、処理負荷の小さいデータの分割処理を1次重複排除処理時に行うことができ、チャンクの圧縮率に基づいて、該チャンクを1次重複排除処理で重複排除を行うか、2次重複排除処理で重複排除処理を行うかを決定し、1次重複排除処理と2次重複排除処理のそれぞれの利点を考慮して効率的に重複排除処理を実行することが可能となる。
本発明によれば、2つ以上の重複排除機構の利点を考慮して効率的に重複排除処理を実行することにより重複排除処理の負荷を分散することができる。
本発明の第1の実施形態に係る概要を説明する概念図である。 同実施形態にかかる計算機システムのハードウェア構成を示すブロック図である。 同実施形態にかかるストレージ装置のソフトウェア構成を示すブロック図である。 同実施形態にかかるメタデータについて説明する図表である。 同実施形態にかかるチャンクの管理情報を説明する概念図である。 同実施形態にかかる1次重複排除済みデータを示す概念図である。 同実施形態にかかるチャンクの圧縮ヘッダを説明する図表である。 同実施形態にかかるバックアップ処理を示すフローチャートである。 同実施形態にかかるデータの書き込み処理を示すフローチャートである。 同実施形態にかかる1次重複排除処理を示すフローチャートである。 同実施形態にかかる2次重複排除処理を示すフローチャートである。 同実施形態にかかるデータのRead処理を示すフローチャートである。 同実施形態にかかるデータのRead処理を示すフローチャートである。 本発明の第2の実施形態にかかるストレージ装置のソフトウェア構成を示すブロック図である。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態の概要
まず、図1を参照して、本実施の形態の概要について説明する。本実施形態では、ストレージ装置100は、ホスト装置200からのバックアップデータを記憶領域に格納する。なお、ホスト装置は、バックアップサーバ等のサーバ、他のストレージ装置であってもよい。ストレージ装置100のバックアップデータの記憶領域として、バックアップデータを一時的に格納する記憶領域(第1ファイルシステム)と、重複排除処理実施後のバックアップデータの記憶領域(第2ファイルシステム)とが備えられている。
ストレージ装置100は、第1ファイルシステムにバックアップデータを格納する際に、最初の重複排除処理(以降、1次重複排除処理と称して説明する。)を実行する。このように、ホスト装置200からのバックアップデータを格納する前に重複排除処理を行う方式を、インライン方式と称する。
そして、ストレージ装置100は、第1ファイルシステムに格納されたバックアップデータに対して、さらに重複排除処理(以降、2次重複排除処理と称して説明する。)を実行して、第2ファイルシステムにバックアップデータを格納する。このように、一旦バックアップデータを格納した後に重複排除処理を行う方式をポストプロセス方式と称する。
ポストプロセス方式では、すべてのデータを一旦ディスクに書き込むため、全体の処理性能がディスクの書き込み性能に依存してしまう。さらに、ポストプロセス方式では、全てのデータを一旦ディスクに書き込むため、データ格納のため大きな記憶容量が消費されてしまう。また、インライン方式では、データをディスクに書き込む際に重複排除処理を行うため、全体の処理性能が重複排除処理の性能に依存してしまう。そこで、両方式の利点を考慮して重複排除処理を実行する必要がある。また、ポストプロセス方式とインライン方式を併用した場合、両方式で同様の重複排除処理を実行してしまい、無駄な重複排除処理が発生してしまう可能性があるという問題がある。
そこで、本実施の形態では、データの圧縮率に基づいて、該データを1次重複排除処理で重複排除を行うか、2次重複排除処理で重複排除処理を行うかを決定する。また、重複排除処理のうち、処理負荷の小さいデータの分割処理を1次重複排除処理時に行う。これにより、1次重複排除処理と2次重複排除処理のそれぞれの利点を考慮して効率的に重複排除処理を実行することが可能となる。また、圧縮率が閾値より低いデータに対してのみ1次重複排除処理を行うため、インライン方式での処理負荷を小さくしつつ、データの一時格納のための記憶領域の消費量を小さくできる。
(1−2)計算機システムの構成
次に、本実施の形態にかかる計算機システムのハードウェア構成について説明する。図2に示すように、計算機システムは、ストレージ装置100とホスト装置200とから構成されている。ホスト装置200は、SAN(Storage Area Network)などのネットワークを介してストレージ装置100と接続されている。なお、図中には表記していないが、ストレージ装置100をコントロールする管理端末を含んでもよい。
ストレージ装置100は、ホスト装置200から送信されたコマンドを解釈して、ディスクアレイ装置110の記憶領域内へのリード/ライトを実行する。ストレージ装置100は、複数の仮想サーバ101a、101b、101c・・・101n(以降、仮想サーバ101と総称して説明する場合もある。)と、ファイバチャネルケーブル(図中FCケーブルと表記)106と、ディスクアレイ装置110とから構成される。仮想サーバ101とディスクアレイ装置110とは、ファイバチャネルポート105、107に接続されたファイバチャネルケーブル106を介して接続されている。なお、本実施形態では仮想サーバを用いているが、物理サーバであってもよい。
仮想サーバ101は、ストレージ装置100内に仮想的に再現された計算機環境である。仮想サーバ101は、CPU102、システムメモリ103、HDD(Hard Disk Drive)104及びファイバチャネルポート(図中FCポートと表記)105などを含む。
CPU102は、演算処理装置として機能し、システムメモリ103に記憶されている各種プログラムや演算パラメータ等にしたがって、ストレージ装置100全体の動作を制御する。システムメモリ103には、主に、1次重複排除処理を実行するプログラム及び2次重複排除処理を実行するプログラムが記憶されている。
HDD104は、複数の記憶媒体から構成されている。例えば、SSD(Solid State Disk)、SCSI(Small Computer System Interface)ディスク等の高価なハードディスクドライブ、または、SATA(Serial AT Attachment)ディスク等の安価なハードディスクドライブでなる複数のハードディスクドライブから構成されてもよい。なお、本実施形態では、記憶媒体としてHDDを用いているが、SSD等の他の記憶媒体であってもよい。
複数のHDD104により1つのRAID(Redundant Array of Inexpensive Disks)グループが構成され、1又は複数のRAIDグループが提供する物理的な記憶領域上に、1又は複数の論理ユニット(LU)が設定される。そしてホスト装置200からのデータは、この論理ユニット(LU)内に所定大きさのブロックを単位として格納される。本実施の形態では、ディスクアレイ装置110の複数のHDD104から構成されるLU0を第1のファイルシステムにマウントし、LU1を第2のファイルシステムにマウントして利用する。
ホスト装置200は、CPU(Central Processing Unit)などの演算装置や、メモリ、ディスクなどの記憶領域等の情報処理資源と、必要に応じて、キーボード、マウス、モニタディスプレイ、スピーカー、通信I/Fカード等の情報入出力装置を備えた計算機装置であり、例えばパーソナルコンピュータやワークステーション、メインフレーム等で構成される。
(1−3)ストレージ装置のソフトウェア構成
次に、図3を参照して、ストレージ装置100のソフトウェア構成について説明する。図3に示すように、ストレージ装置100のシステムメモリ103には、1次重複排除処理部201、2次重複排除処理部202及びファイルシステム管理部203などのプログラムが格納されている。なお、これらのプログラムは、CPUにより実行される。従って以下の説明において、これらのプログラムを主語として処理を説明している場合には、実際にはCPUによりそのプログラムを実行することにより処理を実現することを意味する。
1次重複排除処理部201は、ホスト装置200からのバックアップデータ10を1次重複排除して第1ファイルシステムに格納する。2次重複排除処理部202は、第1ファイルシステムに格納された1次重複排除済みデータ11を2次重複排除して第2ファイルシステムに格納する。
本実施の形態では、1次重複排除処理部201により実行される1次重複排除処理と、2次重複排除処理部202により実行される2次重複排除処理とで、異なる重複排除処理を実行している。1次重複排除処理では、重複排除処理において負荷の小さいデータの分割処理と圧縮処理を行う。また、圧縮処理後のデータの圧縮率に基づいてデータのハッシュ値の計算と重複排除処理とを1次重複排除処理で実行するか2次重複排除処理で実行するか判定している。そして、2次重複排除処理では、1次重複排除処理においてハッシュ値の計算が行われなかったデータに対して重複排除処理を実行する。
上記したように、バックアップデータのすべてをインライン方式である1次重複排除処理で行うと、重複排除処理に時間がかかり、ストレージ装置100全体の処理性能が重複排除処理の性能に依存してしまう。また、バックアップデータのすべてをポストプロセス方式で重複排除した場合、すなわち、一旦第1ファイルシステムに格納した後、2次重複排除処理で重複排除処理を行う場合には、全体の処理性能がディスクの書き込み性能に依存してしまう。さらに、ポストプロセス方式では、全てのデータを一旦ディスクに書き込むため、データ格納のため大きな記憶容量が消費されてしまう。また、単純に、1次重複排除処理と2次重複排除処理を併用するだけでは、両処理で同様の重複排除処理を実行してしまい、無駄な重複排除処理が発生してしまう。
そこで、本実施の形態では、1次重複排除処理で、重複排除処理のうち負荷の小さいデータの分割処理と圧縮処理を行い、さらに、圧縮率の低い分割データ(一時的なデータ記憶領域の容量を大きく消費するデータ)に対して重複判定処理を実行する。ここで、1次重複排除処理において分割されたデータをチャンクと称して以下説明する。データの分割処理については、後で詳細に説明する。
重複排除処理における重複判定処理は、分割されたデータ(チャンク)の圧縮率に関わらず、ほぼ同等の時間がかかる。したがって、1次重複排除処理では、圧縮率の低いチャンクに対して重複判定処理を実行することにより、重複判定処理の負荷を軽減しつつ、データの書き込み処理を高速化させることが可能となる。さらに、圧縮率の低いチャンクをインライン方式にて重複排除処理することにより、データの一時格納のための記憶領域の消費量を小さくできる。
一方、2次重複排除処理では、1次重複排除処理で既に重複判定処理を実行したチャンク以外のチャンクに対して重複判定処理を実行することにより、1次重複排除処理と2次重複排除処理とで同様の重複排除処理を実行することを防止している。具体的に、1次重複排除処理において重複判定処理が実行されたチャンクについては、各チャンクのデータヘッダに、既に重複判定処理を実行したことを示すフラグを設定する。そして、2次重複排除処理において、設定されたフラグを参照して、1次重複排除処理で重複判定処理が実行されていないチャンクに対して重複判定処理を実行する。
次に、図4を参照して、第1ファイルシステム及び第2ファイルシステムに格納されているメタデータ12について説明する。メタデータ12は、第1ファイルシステムに格納される1次重複排除済みデータまたは第2ファイルシステムに格納される2次重複排除済みデータの管理情報を示すデータである。
図4に示すように、メタデータ12には各種テーブルが含まれる。具体的に、スタブファイル(Stub file)121、チャンクデータセット(Chunk Data Set)122、チャンクデータセットインデックス(Chunk Data Set Index)123、コンテンツ管理テーブル124及びチャンクインデックス125などのテーブルがメタデータ12に含まれる。
スタブファイル121は、バックアップデータとコンテンツIDとを関連付けるためのテーブルである。バックアップデータは、複数のファイルデータから構成される。当該ファイルデータを、記憶領域に格納される単位である論理的にまとまったコンテンツ(content)と称する。各コンテンツは複数のチャンクに分割され、各コンテンツは、コンテンツIDによって識別される。このコンテンツIDがスタブファイル121に格納される。ストレージ装置100がディスクアレイ装置110に格納されたデータのリード/ライトを行う場合には、まず、スタブファイル121のコンテンツIDが呼び出される。
チャンクデータセット122は、複数のチャンクから構成されるユーザデータであって、ストレージ装置100に格納されるバックアップデータである。チャンクデータセットインデックス123は、チャンクデータセット122に含まれる各チャンクの情報が格納されている。具体的に、チャンクデータセットインデックス123には、各チャンクの長さ情報とチャンクデータとが対応付けて格納されている。
コンテンツ管理テーブル124は、コンテンツ内のチャンク情報を管理するテーブルである。ここで、コンテンツとは、上記したコンテンツIDによって識別されるファイルデータである。また、チャンクインデックス125は、各チャンクがどのチャンクデータセット122に存在するかを示す情報である。また、チャンクインデックス125には、各チャンクを識別するチャンクのフィンガープリントと、チャンクが存在するチャンクデータセット122を識別するチャンクデータセットIDとが対応付けられている。
次に、図5を参照して、チャンクの管理情報について詳細に説明する。図5に示すように、スタブファイル(図中Stub fileと表記)121には、オリジナルのデータファイルを識別するコンテンツID(図中Content IDと表記)が格納されている。そして、1つのスタブファイル121に対して1つのコンテンツファイルが対応し、各コンテンツファイルはコンテンツ管理テーブル(図中Content Mng Tblと表記)124で管理されている。
コンテンツ管理テーブル124で管理されている各コンテンツファイルは、コンテンツID(図中Content IDと表記)によって識別される。コンテンツファイルには、各チャンクのオフセット(Content Offset)、チャンク長(Chunk Length)、チャンクが存在するコンテナの識別情報(Chunk Data Set ID)、各チャンクのハッシュ値(Fingerprint)が格納されている。
また、チャンクデータセットインデックス(図中Chunk Data Set Indexと表記)123には、チャンクの管理情報として、チャンクデータセット(図中Chunk Data Setと表記)122に格納されているチャンクのハッシュ値(Fingerprint)と、チャンクのオフセット及びデータ長とが対応付けられて格納されている。各チャンクデータセット122は、チャンクデータセットID(図中Chunk Data Set IDと表記)で識別されている。チャンクデータセットインデックス123では、チャンクの管理情報がチャンクデータセットごとにまとめられて管理されている。
チャンクデータセット122は、所定数のチャンクを1つのコンテナとして管理している。各コンテナは、チャンクデータセットIDにより識別され、各コンテナには、チャンク長が付された複数のチャンクデータが含まれる。チャンクデータセット122のコンテナを識別するチャンクデータセットIDと、上記したチャンクデータセットインデックス123のチャンクデータセットIDとが対応づけられている。
チャンクインデックス125は、各チャンクのハッシュ値(Fingerprint)とチャンクが存在するコンテナの識別情報(Chunk Data Set ID)とが対応づけられて格納されている。チャンクインデックス125は、重複排除処理を実行する際に、各チャンクから計算されたハッシュ値をもとに、いずれのコンテナに格納されているかを判定するためのテーブルである。
上記したように、バックアップデータであるコンテンツは、1次重複排除処理において、複数のチャンクに分割される。コンテンツは、通常のファイルの他、例えば、アーカイブファイル、バックアップファイルまたは仮想ボリュームファイルなどの通常のファイルを集約したファイルなどを例示することができる。
重複排除処理は、コンテンツからチャンクを順次切り出す処理と、切り出したチャンクの重複の有無を判定する処理と、チャンクの格納保存処理とからなる。重複排除処理を効率よく実行するためには、チャンクの切り出し処理において、内容が同一のデータセグメントをより多く切り出すことが重要となる。
チャンクの切り出し方法としては、固定長チャンク切り出し方式、可変長チャンク切り出し方式などがある。固定長チャンク切り出し方式は、例えば、4キロバイト(KB)や1メガバイト(MB)といった一定の長さのチャンクを順次切り出す方法である。また、可変長チャンク方式は、コンテンツデータの局所的な条件をもとにチャンクの切り出しの境界を決定してコンテンツを切り出す方法である。
しかし、固定長チャンク切り出し方式は、チャンクを切り出すためのオーバーヘッドが小さいが、コンテンツデータの変更がデータの挿入などの変更の場合、データが挿入された後のチャンクがずれて切り出されるため、重複排除効率が低下してしまう。一方、可変長チャンク切り出し方式は、データが挿入されてチャンクがずれてもチャンクを切り出すための境界の位置は変わらないため重複排除効率を上げることができるが、チャンクの境界を探索するための処理のオーバーヘッドが大きくなってしまう。また、基本データ切り出し方式では、基本データを切り出すために伸長処理を繰り返す必要があり、重複排除処理のオーバーヘッドが大きくなるという問題があった。
したがって、重複排除効率と重複排除処理のオーバーヘッドのトレードオフを考慮すると、上記したチャンク切り出し方式のうち、いずれか一つのチャンク切り出し方式を用いて重複排除処理を行っても、重複排除処理全体の最適化を図ることができないという問題があった。
そこで、本実施の形態では、各コンテンツ、あるいはコンテンツの各部分の特性に基づいて、チャンクの切り出し処理において適用するチャンク切り出し方式を切り替えることにより、各コンテンツの種別に応じて最適なチャンク切り出し方式を選択する。コンテンツの種別は、各コンテンツに付加されている種別を識別する情報を検出することにより判定することが可能となる。コンテンツの種別に対応するコンテンツの特性や構造を予め知っておくことにより、コンテンツの種別に応じて最適なチャンク切り出し方式を選択することが可能となる。
例えば、あるコンテンツについて、変更があまりない種別であれば、当該コンテンツについては固定長チャンク方式を適用してチャンクを切り出すことが好適である。また、サイズの大きいコンテンツの場合には、チャンクサイズを大きく取ったほうが、処理オーバーヘッドが小さくなり、サイズの小さいコンテンツの場合には、チャンクサイズを小さく取ることが好ましい。また、コンテンツへの挿入がある場合には、可変長チャンク方式を適用してチャンクを切り出すことが好適である。コンテンツへの挿入があるが、変更が少ない場合には、チャンクのサイズを大きめに取ることにより、重複排除効率を低下させずに、処理効率を向上させて管理オーバーヘッドを低減させることが可能となる。
また、所定の構造を有するコンテンツは、ヘッダ部、ボディ部、トレイラ部などの各部に分けることができ、部分毎に適用すべきチャンク切り出し方式が異なる。各部分に好適なチャンク切り出し方式を適用することにより、重複排除効率と処理効率とを最適化することが可能となる。
上記したように、1次重複排除処理部201は、コンテンツを複数のチャンクに切り出し、各チャンクを圧縮する。1次重複排除処理部201は、図6に示すように、まず、コンテンツをヘッダ部(図中Metaと表記)とボディ部(図中FileXと表記)に分割する。そして、1次重複排除処理部201は、さらに、ボディ部を固定長または可変長に分割する。コンテンツを固定長で分割する場合には、例えば、4キロバイト(KB)や1メガバイト(MB)といった一定の長さのチャンクを順次切り出す。また、コンテンツを可変長で分割する場合には、コンテンツの局所的な条件をもとにチャンクの切り出しの境界を決定してチャンクを切り出す。また、例えば、vmdkファイル、vdiファイル、vhdファイル、zipファイルまたはgzipファイルなどコンテンツの構造に変更があまりないファイルを固定長に分割し、これらのファイル以外のファイルを可変長に分割する。
そして、1次重複排除処理部201は、分割したチャンクを圧縮し、圧縮率の低いチャンク(圧縮率が閾値よりも低いチャンク)に対して1次重複排除処理を行う。1次重複排除処理部201は、1次重複判定処理の対象となるチャンクのハッシュ値を算出して、該ハッシュ値をもとに同一チャンクがHDD104に既に格納されているかを判定する。1次重複排除処理部201は、1次重複排除処理を行った結果、既にHDD104に格納されているチャンクを排除して、第1ファイルシステムに格納するための1次重複排除済みデータを生成する。1次重複排除処理部201は、圧縮した各チャンクに圧縮後のデータ情報を示す圧縮ヘッダを付して管理する。なお、一次重複排除処理(インライン方式)において、圧縮率が閾値よりも高いチャンクのハッシュ値の算出及び重複排除処理を実行しない。
次に、チャンクの圧縮ヘッダについて説明する。図7は、圧縮された各チャンクに付される圧縮ヘッダを説明する概念図である。図7に示すように、圧縮ヘッダは、マジックナンバー301、ステータス302、フィンガープリント303、チャンクデータセットID304、圧縮前length305及び圧縮後length306を含む。
マジックナンバー301には、1次重複排除処理済みのチャンクであることを示す情報が格納される。ステータス302には、チャンクが重複判定処理を実行されたかを示す情報が格納される。例えば、ステータス302にステータス1が格納されている場合には、重複判定未実施であることを示す。ステータス302にステータス2が格納されている場合には、重複判定実施済みであり、未だHDD104に格納されていない新規チャンクであることを示す。また、ステータス302にステータス3が格納されている場合には、重複判定実施済みであり、既にHDD104に格納されている既存チャンクであることを示す。
フィンガープリント303には、チャンクから算出されたハッシュ値が格納される。なお、1次重複排除処理において、重複判定処理が行われなかったチャンクについては、フィンガープリント303には無効な値が格納される。すなわち、ステータス1のチャンクについては、未だ重複判定処理が実行されていないため、フィンガープリント303には無効値が格納される。
チャンクデータセットID304には、チャンク格納先のチャンクデータセットIDが格納される。チャンクデータセットID304は、チャンクを格納するコンテナ(Chunk Data Set122)を識別する情報である。なお、1次重複排除処理が実行されていないチャンクや未だHDD104に格納されていない新規チャンクについては、チャンクデータセットID304に無効な値が格納される。すなわち、ステータス1やステータス2のチャンクのチャンクデータセットID304には、無効値が格納される。
圧縮前length305には、圧縮前のチャンク長が格納される。圧縮後length306には、圧縮後のチャンク長が格納される。
2次重複排除処理部202は、1次重複排除処理部201により生成された1次重複排除データに含まれるチャンクの圧縮ヘッダを参照して、各チャンクの重複判定処理を実行するかを判定する。具体的に、2次重複排除処理部202は、チャンクの圧縮ヘッダのステータスを参照し、重複判定処理を行うか否か判断する。
例えば、チャンクの圧縮ヘッダのステータス302がスタータス1の場合には、1次重複排除処理において重複判定処理が実行されていないため、2次重複排除処理において重複判定処理を実行する。また、チャンクの圧縮ヘッダのステータス302がステータス2の場合には、1次重複判定処理において重複判定処理は実行されているが、チャンクデータセット122には格納されていないチャンクであるため、チャンクの格納先を決定して該チャンクを書き込む。また、チャンクの圧縮ヘッダのステータス302がステータス3の場合には、1次重複判定処理において重複判定処理が実行され、既にチャンクデータセット122に格納されているチャンクであるため、重複判定処理は実行せずに、チャンクの格納先を取得する。
上記したように、1次重複排除処理部201は、重複排除処理のうち負荷のかからない分割処理や圧縮処理を行い、圧縮率の低いチャンクに対してハッシュ値の計算及び重複判定処理を行う。そして、2次重複排除処理部202は、各チャンクの圧縮ヘッダを参照して、1次重複排除処理部202により重複判定処理が行われていないチャンクに対して重複判定処理を実行する。これにより、重複判定処理の負荷を軽減しつつ、データの書き込み処理を高速化させることが可能となる。さらに、圧縮率の低い(データサイズの大きい)チャンクをインライン方式にて重複排除処理することにより、データの一時格納のための記憶領域の消費量を小さくできる。
(1−4)重複排除処理
本実施の形態にかかる重複排除処理は、ホスト装置200からの要求に応じてデータのバックアップを開始する。ストレージ装置100におけるデータのバックアップ処理は、図8に示すように、まず、データの書き込み先をオープンして(S101)、バックアップデータのサイズ分データの書き込み処理(S103)を繰り返す(S102〜S104)。ストレージ装置100は、データの書き込み処理終了後、書き込み先をクローズして(S105)バックアップ処理を終了する。
上記したステップS103におけるデータの書き込み処理において、図9に示すように、ストレージ装置100は、ホスト装置200からのバックアップデータをメモリ上のバッファに滞留させる(S111)。
そして、ストレージ装置100は、バッファに規定量のデータが溜まったかを判定する(S112)。ステップS112において、バッファに規定量のデータが溜まったと判定された場合には、1次重複排除処理部201に1次重複排除処理を実行させる。一方、ステップ112において、バッファに規定量のデータが溜まっていないと判定された場合には、さらにバックアップデータを受領する(S102)。
(1−4−1)1次重複排除処理の詳細
次に、図10を参照して、1次重複排除処理部201による1次重複排除処理の詳細について説明する。図10に示すように、1次重複排除処理部201は、バッファに滞留したデータについて、バッファサイズ分ステップS121〜ステップS137までの処理を繰り返す。
1次重複排除処理部201は、上記した分割処理により、バッファから固定長または可変長で1チャンクを切り出す(S122)。そして、1次重複排除処理部201は、ステップS122において切り出したチャンクを圧縮して(S123)、チャンクの圧縮率を算出する(S124)。
そして、1次重複排除処理部201は、変数FingerPrintにnull値を代入し(S125)、変数ChunkDataSetIDにnull値を代入する(S126)。
続いて、1次重複排除処理部201は、ステップS124において算出したチャンクの圧縮率が所定の閾値より低いか否かを判定する(S127)。ステップS127において、チャンクの圧縮率が所定の閾値より低い場合とは、圧縮前後でチャンク長があまり変わらない場合である。
ステップS127において、チャンクの圧縮率が所定の閾値より低いと判定された場合には、ステップS128以降の処理を実行する。一方、ステップS127において、チャンクの圧縮率が所定の閾値より高いと判定された場合には、ステップS131以降の処理を実行する。
ステップS128において、1次重複排除処理部201は、チャンクのデータからハッシュ値を算出して、算出結果を変数FingerPrintに代入する(S128)。
そして、1次重複排除処理部201は、算出したハッシュ値を用いて、チャンクがチャンクデータセットに格納されているか、格納されている場合にはチャンクデータセットのチャンクデータセットID(ChankDataSetID)を確認する(S129)。
そして、1次重複排除処理部201は、重複判定処理の対象となるチャンクと同一のチャンクがチャンクデータセットに格納されているかを判定する(S130)。ステップS130において、同一のチャンクがあると判定された場合には、1次重複排除処理部201は、ステップS135以降の処理を実行する。一方、ステップS130において同一のチャンクがないと判定された場合には、ステップS133以降の処理を実行する。
ステップS127において、圧縮率が閾値よりも高いと判定された場合には、1次重複排除処理部201は、重複判定処理を実行せずに、ステータス1のチャンクヘッダを生成する(S131)。ステータス1のチャンクヘッダとは、上記したように、重複判定未実施のチャンクに付される圧縮ヘッダである。図7に示すように、チャンクヘッダがステータス1の場合、チャンクとチャンクヘッダとが第1ファイルシステムに書き込まれる。なお、重複判定処理が実施されていないため、チャンクヘッダのフィンガープリント303とチャンクデータセットID304はnull値のままである。
また、ステップS127において、圧縮率が閾値よりも低いと判定され、重複判定処理が実行された結果、同一チャンクがチャンクデータセット122に存在しないと判定された場合には、ステータス2のチャンクヘッダを生成する(S133)。ステータス2のチャンクヘッダとは、上記したように、重複判定が実施済みであり、チャンクデータセット122に同一チャンクがない場合にチャンクに付される圧縮ヘッダである。図7に示すように、チャンクヘッダがステータス2の場合、チャンクとチャンクヘッダとが第1ファイルシステムに書き込まれる(S134)。なお、チャンクヘッダのフィンガープリント303には、チャンクから算出したハッシュ値が格納される。また、チャンクデータセットID304は、チャンクが未だ見つかっていないため、null値のままである。
また、ステップS127において、圧縮率が閾値よりも低いと判定され、重複判定処理が実行された結果、同一チャンクがチャンクデータセット122に存在すると判定された場合には、ステータス3のチャンクヘッダを生成する(S135)。ステータス3のチャンクヘッダとは、上記したように、重複判定が実施済みであり、チャンクデータセット122に同一チャンクがある場合にチャンクに付される圧縮ヘッダである。図7に示すように、チャンクヘッダがステータス3の場合、チャンクヘッダのみ第1ファイルシステムに書き込まれる(S136)。つまり、チャンクのデータ自体は第1ファイルシステムに書き込まれず、記憶容量を削減することができる。
(1−4−2)2次重複排除処理の詳細
以上、1次重複排除処理の詳細について説明した。次に、図11を参照して、2次重複排除処理部202による2次重複排除処理の詳細について説明する。2次重複排除処理は、所定時間ごとに定期的に実行するようにしてもよいし、予め決められたタイミングで実行するようにしてもよいし、管理者の入力に応じて実行するようにしてもよい。さらに、第1ファイルシステムの容量が一定量を超えた場合に、実行を開始してもよい。
図11に示すように、2次重複排除処理部202は、まず、変数offsetに0を代入する(S201)。続いて、1次重複排除済みファイル(第1ファイルシステム)をオープンして、1次重複済みファイル分、2次重複排除処理を繰り返す(S203〜S222)。
ステップS202において、1次重複排除済みファイルをオープンした2次重複排除処理部202は、変数offsetに代入された値からチャンクヘッダサイズ分のデータを読み出す(S204)。そして、2次重複排除処理部202は、チャンクヘッダの変数Lengthの値から、圧縮後のチャンク長を取得する(S205)。さらに、2次重複排除処理部は、チャンクヘッダの変数FingerPrintから、チャンクのハッシュ値(フィンガープリント)を取得する(S206)。なお、1次重複排除処理において未だ1次重複判定処理が未実施の場合には、チャンクヘッダのFingerPrintに無効な値(null)が格納されている。
続いて、2次重複排除処理部202は、チャンクのチャンクヘッダに含まれるステータス(Status)を確認する(S207)。ステップS207において、ステータスがステータス1の場合、すなわち、対象となるチャンクが重複判定未実施である場合、2次重複排除処理部202は、ステップS208以降の処理を実行する。また、ステップS207において、ステータスがステータス2の場合、すなわち、対象となるチャンクが1次重複排除処理により重複判定済であるが、チャンクデータセット122にチャンクが存在しない場合、2次重複排除処理部202は、重複排除処理を実行せずにステップS216以降の処理を実行する。また、ステップS207において、ステータスがステータス3の場合、すなわち、対象となるチャンクが1次重複排除処理により重複判定済であり、チャンクデータセット122にチャンクが存在する場合、2次重複排除処理部202は、重複排除処理を実行せずにステップS224の処理を実行する。
次に、チャンクヘッダのステータスがステータス1の場合、すなわち、重複判定未実施の場合の処理について説明する。2次重複排除処理部202は、offsetの値にチャンクヘッダサイズを加算した長さ分のデータを読み出す(S208)。そして、ステップS208において読み出したチャンクのデータからハッシュ値(FingerPrint)を算出する(S209)。
次に、2次重複排除処理部202は、ステップS209において算出したFingerPrintをもとに、チャンクデータセット122のチャンクの有無を確認して(S210)、チャンクデータセット122に対象となるチャンクと同一のチャンクが存在するか判定する(S211)。
ステップS211において、チャンクデータセット122に同一のチャンクが存在すると判定された場合には、2次重複排除処理部202は、変数ChunkDataSetIDに既に格納されている同一のチャンクの格納先のチャンクデータセットID(ChunkDataSetID)と同じIDを代入して(S212)、ステップS220以降の処理を実行する。
一方、ステップS211において、チャンクデータセット122に同一のチャンクが存在しないと判定された場合には、2次重複排除処理部202は、チャンクを格納する格納先のチャンクデータセット(ChunkDataSet)122を決定して、決定した該チャンクデータセット122のチャンクデータセットIDを変数ChunkDataSetIDに代入する(S213)。
そして、2次重複排除処理部202は、チャンクデータセット(ChunkDataSet)122にチャンクヘッダとチャンクデータを書き込む(S214)。さらに、2次重複排除処理部202は、ステップS209において変数FingerPrintに代入した値とステップS213において変数ChunkDataSetIDに代入した値をチャンクインデックス125に登録して(S215)、ステップS220以降の処理を実行する。
次に、チャンクヘッダのステータスがステータス2の場合、すなわち、重複判定実施済みであるが、チャンクデータセット122にチャンクが存在しない場合の処理について説明する。2次重複排除処理部202は、offsetの値にチャンクヘッダサイズを加算した長さ分のデータを読み出す(S216)。
そして、2次重複排除処理部202は、チャンクを格納する格納先のチャンクデータセット(ChunkDataSet)122を決定して、決定した該チャンクデータセット122のチャンクデータセットIDを変数ChunkDataSetIDに代入する(S217)。
そして、2次重複排除処理部202は、チャンクデータセット(ChunkDataSet)122にチャンクヘッダとチャンクデータを書き込む(S218)。さらに、2次重複排除処理部202は、ステップS206においてFingerPrintに代入した値と、ステップS217において変数ChunkDataSetIDに代入した値をチャンクインデックス125に登録して(S219)、ステップS220以降の処理を実行する。
次に、チャンクヘッダのステータスがステータス3の場合、すなわち、重複判定実施済みであり、チャンクデータセット122にチャンクが存在する場合の処理について説明する。2次重複排除処理部202は、チャンクヘッダからチャンクデータセットID(ChunkDataSetID)を取得して、変数ChunkDataSetIDに代入する(S224)。そして、2次重複排除処理部202は、ステップS220以降の処理を実行する。なお、チャンクヘッダに格納されているチャンクデータセットID(ChunkDataSetID)は、一次重複排除処理において重複排除されたデータと同一のデータであって、既に格納されているデータの格納先を示すIDである。
そして、2次重複排除処理部202は、コンテンツ管理テーブル124に、チャンク長(Length)、オフセット(Offset)、フィンガープリント(FingerPrint)、チャンクデータセットID(ChunkDataSetID)を設定する(S220)。
そして、変数Offsetの値にチャンクヘッダのサイズとチャンク長(Length)とを加算して、変数Offsetに代入する(S221)。
ステップS203〜ステップS22の処理を1次重複排除済みファイルのサイズ分繰り返した後、1次重複排除済みファイルをクローズして(S223)、2次重複排除処理を終了する。
(1−5)Read処理の詳細
次に、図12を参照して、1次重複排除処理及び2次重複排除処理が行われたデータのRead処理について説明する。重複排除済みデータのRead処理は、1次重複排除処理部201及び2次重複排除処理部202によって行われる。
図12に示すように、1次重複排除処理部202は、まず、Read対象が2次重複排除済みのデータであるかを判定する(S301)。例えば、1次重複排除処理部202は、当該データがスタブ化されている場合に、当該データが2次重複排除済みのデータであると判定する。
ステップS301において、Read対象のデータが2次重複排除済みであると判定された場合には、2次重複排除済みデータのRead処理を実行する(S302)。一方、ステップS301において、Read対象のデータが2次重複排除済みではないと判定された場合には、ステップS303以降の処理を実行する。
図13に、2次重複排除済みデータのRead処理の詳細を示す。図13に示すように、2次重複排除処理部202は、コンテンツデータのコンテンツID(content ID)に対応するコンテンツ管理テーブル124を読み出す(S311)。
そして、2次重複排除処理部202は、コンテンツのチャンクの数分ステップS312〜ステップS318の処理を繰り返す。
まず、2次重複排除処理部202は、コンテンツ管理テーブル124からフィンガープリント(FingerPrint)を取得する(S313)。さらに、2次重複排除処理部202は、コンテンツ管理テーブル124からチャンクデータセットID(ChunkDataSetID)を取得する(S314)。
そして、2次重複排除処理部202は、ステップS313において取得したフィンガープリント(FingerPrint)をキーにして、チャンクデータセットインデックス(ChunkDataSetIndex)123からチャンクのチャンク長(Length)及びオフセット(Offset)を取得する(S315)。
そして、2次重複排除処理部202は、ステップS315において取得したチャンクデータセットのオフセット(Offset)からチャンク長(Length)分のデータを読み出す(S316)。そして、2次重複排除処理部202は、ステップS316において読み出したチャンクデータを第1ファイルシステムに書き込む(S317)。
図12に戻り、ステップS302において2次重複排除済みのデータのRead処理が実行された後、1次重複排除処理部201は、1次重複排除済みファイルをReadする(S303)。
そして、ステップS303においてReadしたデータを伸長する(S304)。そして、データを要求したホスト装置200等のデータ要求元に圧縮前のオリジナルデータを返却する(S305)。以上、重複排除済みデータのRead処理について説明した。
(1−6)本実施形態の効果
以上のように、本実施の形態によれば、1次重複排除処理部201は、ホスト装置200からのデータを1または2以上のチャンクに分割し、分割したチャンクを圧縮し、チャンクの圧縮率が所定の閾値より低い場合に、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値とHDD104に既に格納されているデータのハッシュ値とを比較して第1の重複排除処理を実行し、チャンクの圧縮率が所定の閾値より大きい場合に、圧縮された該チャンクを第1のファイルシステムに格納した後に、2次重複排除処理部202が、圧縮された該チャンクのハッシュ値を算出し、該ハッシュ値と既にHDD104に格納されているデータのハッシュ値とを比較して2次重複排除処理を実行する。
これにより、重複排除処理のうち、処理負荷の小さいデータの分割処理を1次重複排除処理時に行うことができ、チャンクの圧縮率に基づいて、該チャンクを1次重複排除処理で重複排除を行うか、2次重複排除処理で重複排除処理を行うかを決定し、1次重複排除処理と2次重複排除処理のそれぞれの利点を考慮して効率的に重複排除処理を実行することが可能となる。
(2)第2の実施形態
次に、図14を参照して、第2の実施形態について説明する。以下では、上記した第1の実施形態と同様の構成については詳細な説明は省略し、第1の実施形態と異なる構成について特に詳細に説明する。計算機システムのハードウェア構成は、第1の実施形態と同様であるため、詳細な説明は省略する。
(2−1)ホスト装置及びストレージ装置のソフトウェア構成
本実施形態では、図14に示すように、ホスト装置200’に1次重複排除処理部201が備えられ、ストレージ装置100’には、2次重複排除処理部202が備えられた構成となっている。ホスト装置200’は、バックアップサーバ等のサーバ、他のストレージ装置であってもよい。
このように、ホスト装置200’において1次重複排除処理を実行することにより、データのバックアップ時に、ホスト装置200’からストレージ装置100’へのデータ量を削減することができる。例えば、ホスト装置200’の処理能力が高く、ホスト装置200’とストレージ装置100’との間の転送能力が低い場合には、本実施形態の如く構成することが好ましい。
100 ストレージ装置
101 仮想サーバ
103 システムメモリ
105 ファイバチャネルポート
106 ファイバチャネルケーブル
110 ディスクアレイ装置
121 スタブファイル
122 チャンクデータセット
123 チャンクデータセットインデックス
124 コンテンツ管理テーブル
125 チャンクインデックス
200 ホスト装置
201 1次重複排除処理部
202 2次重複排除処理部
203 ファイルシステム管理部

Claims (12)

  1. 第1記憶領域と第2記憶領域とを提供する記憶装置と、
    前記記憶装置へのデータの入出力を制御する制御部と、
    を備え、
    前記制御部は、
    受信したデータを1または2以上のチャンクに分割し、
    分割した前記チャンクを圧縮し、
    圧縮率が閾値以下のチャンクに対し、前記第1記憶領域に格納せずに、圧縮された前記チャンクのハッシュ値を算出し、前記ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第1の重複排除処理を実行し、
    圧縮率が閾値より大きいチャンクに対し、前記第1記憶領域に圧縮された前記チャンクを格納した後に、前記圧縮された前記チャンクを前記第1記憶領域から読み出し、圧縮された前記チャンクのハッシュ値を算出し、該ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第2の重複排除処理を実行する
    ことを特徴とする、ストレージ装置。
  2. 前記制御部は、
    前記第1記憶領域と第1のファイルシステムとを対応付け、前記第2記憶領域と第2のファイルシステムとを対応付け、
    前記第1の重複排除処理により重複排除できないチャンクと、圧縮率が前記閾値より大きいチャンクと、を第1のファイルシステムに格納し、
    前記第1のファイルシステムに格納したチャンクに対して前記第2の重複排除処理を実行した前記チャンクを第2のファイルシステムに格納する
    ことを特徴とする、請求項1に記載のストレージ装置。
  3. 前記制御部は、
    圧縮した前記チャンクに前記第1の重複排除処理を実行したかを示す情報を含む圧縮ヘッダを付して前記第1のファイルシステムに格納し、
    前記圧縮ヘッダを参照して、前記第1の重複排除処理を実行していない場合に、前記チャンクに前記第2の重複排除処理を実行する
    ことを特徴とする、請求項2に記載のストレージ装置。
  4. 前記制御部は、
    前記チャンクに前記第1の重複排除処理を実行していない場合に、前記圧縮ヘッダに第1のフラグを設定し、
    前記チャンクに前記第1の重複排除処理を実行し、当該チャンクのハッシュ値と同一のハッシュ値である他のデータが前記第2記憶領域に格納されていない場合に、前記圧縮ヘッダに第2のフラグを設定し、
    前記チャンクに前記第1の重複排除処理を実行し、当該チャンクのハッシュ値と同一のハッシュ値である他のデータが前記第2記憶領域に記憶されている場合に、前記圧縮ヘッダに第3のフラグを設定する
    ことを特徴とする、請求項3に記載のストレージ装置。
  5. 前記制御部は、
    前記圧縮ヘッダに前記第1のフラグを設定した場合に、前記チャンク及び該チャンクの圧縮ヘッダを前記第1のファイルシステムに格納し、
    前記圧縮ヘッダに前記第2のフラグを設定した場合に、前記チャンク及び該チャンクの圧縮ヘッダを前記第1のファイルシステムに格納し、
    前記圧縮ヘッダに前記第3のフラグを設定した場合に、前記チャンクの圧縮ヘッダのみ前記第1のファイルシステムに格納する
    ことを特徴とする、請求項4に記載のストレージ装置。
  6. 前記制御部は、
    前記圧縮ヘッダに前記第1のフラグが設定されている場合に、前記チャンクに前記第2の重複排除処理を実行し、
    前記圧縮ヘッダに前記第2のフラグが設定されている場合に、前記チャンクを前記第2記憶領域に格納し、
    前記圧縮ヘッダに前記第3のフラグが設定されている場合に、前記チャンクの前記第2記憶領域の格納先を取得する
    ことを特徴とする、請求項4に記載のストレージ装置。
  7. 第1記憶領域と第2記憶領域とを提供する記憶装置と、前記記憶装置へのデータの入出力を制御する制御部と、を備えたストレージ装置におけるデータ管理方法であって、
    前記制御部が、受信したデータを1または2以上のチャンクに分割し、分割した前記チャンクを圧縮する第1のステップと、
    前記制御部が、圧縮率が閾値以下のチャンクに対して、前記第1記憶領域に格納せずに、圧縮された前記チャンクのハッシュ値を算出し、前記ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第1の重複排除処理を実行する第2のステップと、
    前記制御部が、圧縮率が閾値より大きいチャンクに対し、前記第1記憶領域に圧縮された前記チャンクを格納した後に、前記圧縮された前記チャンクを前記第1記憶領域から読み出し、圧縮された前記チャンクのハッシュ値を算出し、該ハッシュ値と既に前記第2記憶領域に格納されている他のデータのハッシュ値とを比較して第2の重複排除処理を実行する第3のステップと
    を含むことを特徴とする、データ管理方法。
  8. 前記第1記憶領域と第1のファイルシステムとが対応付けられ、前記第2記憶領域と第2のファイルシステムとが対応付けられており、
    前記第2のステップにおいて、前記制御部が前記第1の重複排除処理により重複排除できないチャンクと、圧縮率が前記閾値より大きいチャンクとを第1のファイルシステムに格納する第4のステップと、
    前記第3のステップにおいて、前記制御部が前記第1のファイルシステムに格納したチャンクに対して前記第2の重複排除処理を実行した前記チャンクを第2のファイルシステムに格納する第5のステップと
    を含むことを特徴とする、請求項7に記載のデータ管理方法。
  9. 前記第4のステップにおいて、前記制御部が圧縮した前記チャンクに前記第1の重複排除処理を実行したかを示す情報を含む圧縮ヘッダを付して前記第1のファイルシステムに格納する第6のステップと、
    前記圧縮ヘッダを参照して、前記第1の重複排除処理を実行していない場合に、前記チャンクに前記第2の重複排除処理を実行する第7のステップと
    を含むことを特徴とする、請求項8に記載のデータ管理方法。
  10. 前記制御部が
    前記チャンクに前記第1の重複排除処理を実行していない場合に、前記圧縮ヘッダに第1のフラグを設定し、
    前記チャンクに前記第1の重複排除処理を実行し、当該チャンクのハッシュ値と同一のハッシュ値である他のデータが前記第2記憶領域に格納されていない場合に、前記圧縮ヘッダに第2のフラグを設定し、
    前記チャンクに前記第1の重複排除処理を実行し、当該チャンクのハッシュ値と同一のハッシュ値である他のデータが前記第2記憶領域に記憶されている場合に、前記圧縮ヘッダに第3のフラグを設定する
    第8のステップを含むことを特徴とする、請求項9に記載のデータ管理方法。
  11. 前記制御部が、
    前記圧縮ヘッダに前記第1のフラグを設定した場合に、前記チャンク及び該チャンクの圧縮ヘッダを前記第1のファイルシステムに格納し、
    前記圧縮ヘッダに前記第2のフラグを設定した場合に、前記チャンク及び該チャンクの圧縮ヘッダを前記第1のファイルシステムに格納し、
    前記圧縮ヘッダに前記第3のフラグを設定した場合に、前記チャンクの圧縮ヘッダのみ前記第1のファイルシステムに格納する
    第9のステップを含むことを特徴とする、請求項10に記載のデータ管理方法。
  12. 前記制御部は、
    前記圧縮ヘッダに前記第1のフラグが設定されている場合に、前記チャンクに前記第2の重複排除処理を実行し、
    前記圧縮ヘッダに前記第2のフラグが設定されている場合に、前記チャンクを前記第2記憶領域に格納し、
    前記圧縮ヘッダに前記第3のフラグが設定されている場合に、前記チャンクの前記第2記憶領域の格納先を取得する
    第10のステップを含むことを特徴とする、請求項10に記載のデータ管理方法。
JP2014531467A 2012-08-24 2012-08-24 ストレージ装置及びデータ管理方法 Ceased JPWO2014030252A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/071424 WO2014030252A1 (ja) 2012-08-24 2012-08-24 ストレージ装置及びデータ管理方法

Publications (1)

Publication Number Publication Date
JPWO2014030252A1 true JPWO2014030252A1 (ja) 2016-07-28

Family

ID=50149585

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014531467A Ceased JPWO2014030252A1 (ja) 2012-08-24 2012-08-24 ストレージ装置及びデータ管理方法

Country Status (3)

Country Link
US (1) US20150142755A1 (ja)
JP (1) JPWO2014030252A1 (ja)
WO (1) WO2014030252A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2940598B1 (en) 2013-08-19 2019-12-04 Huawei Technologies Co., Ltd. Data object processing method and device
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
JP6378044B2 (ja) * 2014-10-31 2018-08-22 東芝メモリ株式会社 データ処理装置、データ処理方法およびプログラム
WO2016079809A1 (ja) * 2014-11-18 2016-05-26 株式会社日立製作所 ストレージ装置、ファイルサーバ、およびデータ記憶方法
US9396341B1 (en) * 2015-03-31 2016-07-19 Emc Corporation Data encryption in a de-duplicating storage in a multi-tenant environment
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
US10152389B2 (en) * 2015-06-19 2018-12-11 Western Digital Technologies, Inc. Apparatus and method for inline compression and deduplication
US9836475B2 (en) 2015-11-16 2017-12-05 International Business Machines Corporation Streamlined padding of deduplication repository file systems
US10380074B1 (en) * 2016-01-11 2019-08-13 Symantec Corporation Systems and methods for efficient backup deduplication
JP6685334B2 (ja) * 2016-02-15 2020-04-22 株式会社日立製作所 ストレージ装置
US10545832B2 (en) * 2016-03-01 2020-01-28 International Business Machines Corporation Similarity based deduplication for secondary storage
EP3312727B1 (en) * 2016-03-02 2018-11-14 Huawei Technologies Co., Ltd. Differential data backup method and device
US11405289B2 (en) * 2018-06-06 2022-08-02 Gigamon Inc. Distributed packet deduplication
US10733158B1 (en) * 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
US11463264B2 (en) * 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
CN111399768A (zh) * 2020-02-21 2020-07-10 苏州浪潮智能科技有限公司 一种数据的存储方法、***、设备及计算机可读存储介质
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
CN115550474A (zh) * 2021-06-29 2022-12-30 中兴通讯股份有限公司 协议高可用保护***及保护方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304307A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd デジタル放送受信機およびデータ処理方法
US20110125722A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Methods and apparatus for efficient compression and deduplication

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
JP5216915B2 (ja) * 2009-02-25 2013-06-19 株式会社日立製作所 ストレージ装置
US9141621B2 (en) * 2009-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Copying a differential data store into temporary storage media in response to a request
US9058298B2 (en) * 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
US8442942B2 (en) * 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8589640B2 (en) * 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9071584B2 (en) * 2011-09-26 2015-06-30 Robert Lariviere Multi-tier bandwidth-centric deduplication
US8943032B1 (en) * 2011-09-30 2015-01-27 Emc Corporation System and method for data migration using hybrid modes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004304307A (ja) * 2003-03-28 2004-10-28 Sanyo Electric Co Ltd デジタル放送受信機およびデータ処理方法
US20110125722A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Methods and apparatus for efficient compression and deduplication

Also Published As

Publication number Publication date
WO2014030252A1 (ja) 2014-02-27
US20150142755A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
WO2014030252A1 (ja) ストレージ装置及びデータ管理方法
WO2014125582A1 (ja) ストレージ装置及びデータ管理方法
US9690487B2 (en) Storage apparatus and method for controlling storage apparatus
US9977746B2 (en) Processing of incoming blocks in deduplicating storage system
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
US10169365B2 (en) Multiple deduplication domains in network storage system
US8250335B2 (en) Method, system and computer program product for managing the storage of data
US9449011B1 (en) Managing data deduplication in storage systems
US8943032B1 (en) System and method for data migration using hybrid modes
US9715434B1 (en) System and method for estimating storage space needed to store data migrated from a source storage to a target storage
US20190129971A1 (en) Storage system and method of controlling storage system
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
US9959049B1 (en) Aggregated background processing in a data storage system to improve system resource utilization
US20150363134A1 (en) Storage apparatus and data management
WO2021073635A1 (zh) 一种数据存储方法及装置
US10606499B2 (en) Computer system, storage apparatus, and method of managing data
US10255288B2 (en) Distributed data deduplication in a grid of processors
US20210034584A1 (en) Inline deduplication using stream detection
US10725944B2 (en) Managing storage system performance
US20200042220A1 (en) Managing inline data de-duplication in storage systems
US9805046B2 (en) Data compression using compression blocks and partitions
US11249666B2 (en) Storage control apparatus
WO2016088258A1 (ja) ストレージシステム、バックアッププログラム及びデータ管理方法
US10521400B1 (en) Data reduction reporting in storage systems
US20150052112A1 (en) File server, storage apparatus, and data management method

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20170228