JPWO2013051129A1 - 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム - Google Patents

格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム Download PDF

Info

Publication number
JPWO2013051129A1
JPWO2013051129A1 JP2013537331A JP2013537331A JPWO2013051129A1 JP WO2013051129 A1 JPWO2013051129 A1 JP WO2013051129A1 JP 2013537331 A JP2013537331 A JP 2013537331A JP 2013537331 A JP2013537331 A JP 2013537331A JP WO2013051129 A1 JPWO2013051129 A1 JP WO2013051129A1
Authority
JP
Japan
Prior art keywords
data
chunk
fragment
stored
deduplication
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.)
Granted
Application number
JP2013537331A
Other languages
English (en)
Other versions
JP5735654B2 (ja
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
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Publication of JPWO2013051129A1 publication Critical patent/JPWO2013051129A1/ja
Application granted granted Critical
Publication of JP5735654B2 publication Critical patent/JP5735654B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data

Landscapes

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

Abstract

【課題】格納データの重複排除率を低下させることなくデータ復元処理に要する時間を短縮する。
【解決手段】ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、前記データを分割後の前記データ断片の構成によって記録するステップと、前記データ断片について、同一の前記データ断片が存在するか判定するステップと、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する。

Description

本発明は、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムに関し、ハードディスクなどの記録媒体内に格納されるデータについて格納データの重複を排除してデータ容量を削減することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムに関する。
企業などで生成されるデジタルデータの量は年々増加している。それに伴い、このデジタルデータを格納するために必要なストレージ容量も増加し、データ管理コストの増大を引き起こしている。そのような背景のもと、「重複排除」と呼ばれるデータ削減機能を備えたストレージ製品及び技術が注目されている。
一般的な重複排除の処理は、次の3プロセスで行われる。
(1)チャンキング処理:ストレージに格納されているデータを、チャンクと呼ばれるデータ断片に分割する。
(2)重複判定処理:新たに作成したチャンクと同一のチャンクがすでにストレージ内に存在するか(重複して格納されているか)を判定する。
(3)メタデータ作成処理:新たに作成したチャンクのうち、重複しないチャンクのみをストレージに保存し、重複判定処理及び格納されたチャンクデータから元データを復元する際に使う情報(以下、「メタデータ」と呼ぶ)を作成する。
上記の処理では、重複する複数のチャンクに対して実データを一つだけストレージに保存するので、バックアップデータなどほぼ同一なデータが何度も現れる場合に大幅なデータ削減が期待できる。
この重複排除処理では、チャンキングの仕方が、性能を決める重要な要素となる。一般に、作成するチャンクのチャンクサイズが小さいほど、削減できる実データの割合(重複排除率)は大きくなる。しかし、チャンクサイズを過度に小さく設定した場合、各チャンクを管理するのに必要なメタデータの量と、チャンクからもとのデータを復元するのにかかる時間が増大するという問題が生じる。逆に、チャンクサイズを大きく設定するほど、各チャンクに対応するメタデータの量とデータ復元にかかる時間とを小さくすることができるが、重複排除率は低下するという問題がある。
上記のチャンクサイズに関するジレンマへの対応策として、重複排除処理対象であるデータに応じて複数のチャンクサイズを適用する技術が知られている(例えば特許文献1、2を参照。)。特許文献1では、はじめに小さなチャンクサイズを設定してチャンキングを行った後、作成された各チャンクに含まれている最長繰り返しチャンク(Largest sequence of Repeated Chunks)を検出し、初期値よりも大きなチャンクサイズを有するチャンクとして新たに出力する手法が開示されている。また、特許文献2では、格納すべきチャンキング処理対象データのうち、大きく広がる重複データと大きく広がる非重複データについては、大きなサイズでチャンキングし、重複データと非重複データとの境界付近では、小さなサイズでチャンキングする手法が開示されている。
米国特許出願公開第2009/0313248号明細書 特表2010−515114号公報
上述した特許文献1には、データ内で連続するチャンクを1つの大きなチャンクにまとめることで、重複排除率を大きく低下させることなく、データ復元時のディスクアクセスの回数を減らすことができ、結果として、データ復元にかかる時間を短縮できると述べられている。また、特許文献2には、データの重複、非重複に合わせてチャンクサイズを変えることで、高い重複排除率と少ないメタデータとを両立できると述べられている。
しかし、特許文献1、2の手法は、全データのチャンクのパターンを分析する処理、過去のチャンキングの履歴を参照しつつチャンキングを行う処理を、それぞれ含む。一般に、これらの処理は、非常に時間がかかる。重複排除処理は、データの定期的バックアップ処理と並行して行われることが多く、バックアップウィンドウ内に処理が終わることを求められる。毎回のバックアップ処理実行時に特許文献1、2の手法でチャンキング処理を行うことは、実際の運用においては困難な可能性がある。
本発明は、上記の問題点を考慮し、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することを目的とする。
前記の、及び他の目的を達成するための本発明の一態様は、ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、
前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
前記データを分割後の前記データ断片の構成によって記録するステップと、
前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する。
また、本発明の他の態様は、上記の重複排除方法を実現するための重複排除装置である。また、本発明のさらに他の態様は、コンピュータに前記の重複排除方法を実行させるための重複排除プログラムである。
本発明により、ストレージシステムの実際の運用において実施可能な重複排除処理を提供し、重複排除処理後のデータから元のデータ復元に要する時間を短縮することができる、格納データの重複を排除する方法、情報処理装置、及び重複排除プログラムを提供することができる。
本発明の一実施形態によるストレージシステム1のシステム構成の例を示した図である。 重複排除装置130のソフトウェア構成の例を示した図である。 チャンク管理テーブル300(216)の例を示した図である。 チャンク管理テーブル300(216)の例を示した図である。 ストレージ装置上でのデータ再配置の例を示した図である。 ファイル管理テーブル500(215)の例を示した図である。 ファイル管理テーブル500(215)の例を示した図である。 第1の実施形態におけるチャンクパターン情報テーブル600(223)の例を示した図である。 第1の実施形態におけるチャンクパターン情報テーブル600(223)の例を示した図である。 統合チャンク情報テーブル700(224)の例を示した図である。 チャンキングモジュール211の処理の流れの例を示した図である。 チャンク照合モジュール212の処理の流れの例を示した図である。 チャンク登録モジュール213の処理の流れの例を示した図である。 ファイル復元モジュール214の処理の流れの例を示した図である。 チャンクパターン解析モジュール221の処理の流れの例を示した図である。 チャンク管理テーブル更新モジュール222の処理の流れの例を示した図である。 第2の実施形態に関わるチャンク管理テーブル300(216)の例を示した図である。 第2の実施形態に関わるチャンク管理テーブル300(216)の例を示した図である。
前記目的を達成するため、毎回のバックアップ時などに行う通常の重複排除の処理と、データ復元にかかる時間削減のために行うデータの再分析処理を分ける。その結果、短時間で終わることが求められる通常の重複排除の処理を高速に行い、サーバメンテナンス時などある程度作業時間を確保できるときに再分析処理を行うことができる。
上記のデータ再分析処理を特許文献1、2で開示されている方法で行うことには、以下のような問題がある。特許文献1、2は、ともに、背景技術で述べた重複排除の3つのプロセスのうち、チャンキングに関する処理しか開示していない。そのため、データ再分析時に特許文献1、2の手法でチャンキングを行っても、メタデータを介して、通常の重複排除処理に反映することができない。また、特許文献1、2では、既に重複排除を行った後のデータに対して、メタデータを利用して、チャンキングを行う方法は開示されていない。そのため、実データを再度分析する必要がある。
これらの問題に対し、データの再分析を行った後、通常の重複排除処理で利用できるメタデータを作成する。具体的には、まず、通常の重複排除の処理で生成されたチャンクの集合を分析し、重複排除率を変えずに統合できるチャンクを決定する。次に、決定したチャンクから通常の重複排除の処理で利用するメタデータを作成し、統合する前のチャンクのメタデータとともに管理する。これにより、通常の重複排除の処理において、メタデータを使った重複判定及びデータ復元が可能になる。また、通常の重複排除処理で生成されたチャンクのメタデータを用いて分析をすることで、実データを再度分析するよりも効率的に統合チャンクを決定することができる。
以下、本発明を実施するための形態(以下、「実施形態」という。)について、適宜図面を参照しつつ、説明する。
≪第1の実施形態≫
以下、本発明の第1の実施形態について、説明する。
図1は、本発明の第1実施形態を適用したストレージシステム1のシステム構成の例を示した図である。図1に示すように、本システム1は、ホストコンピュータ110、ストレージ装置120、及び重複排除装置130を含み、これらの装置はネットワーク101を介して相互に通信可能に接続されて構成される。
ホストコンピュータ110は、少なくともCPU(Central Processing Unit)111、メモリ112、及びネットワークインターフェース113を備える一般的なコンピュータである。ホストコンピュータ110は、ストレージ装置120に格納されたデータを、ネットワークインターフェース113を介しメモリ112上に読み出す機能、及びメモリ112上のデータを、ネットワークインターフェース113を介しストレージ装置120に書き込む機能を備える。ホストコンピュータ110は、メモリ112の他に、ハードディスクドライブ(HDD)、半導体ドライブ(Solid State Drive, SSD)等の補助記憶デバイスを備えていてもよい。また、ネットワークインターフェース113は、ホストコンピュータ110が接続されるネットワーク101の種類により選定され、例えばネットワーク101がLAN(Local Area Network)であれば、ネットワークインターフェース113としてはNIC(Network Interface Card)が設けられる。
なお、以下の説明では、データは1つ以上のファイルから構成されると仮定するが、本発明で扱うデータはそのような構成に限らず、バイナリ列として表現されるデジタルデータ一般を含むものとする。
ストレージ装置120は、少なくともストレージ制御装置121、及び記憶装置123を備える。ストレージ装置120は、例えばデータをファイル単位で格納することができるファイルストレージの形式をとることができるが、ブロックストレージを含む他の形式であってもよい。ストレージ制御装置121は、ネットワークインターフェース122を備え、ホストコンピュータ110及び重複排除装置130からデータ読み出し/書き込み命令を受け付け、記憶装置123に対しデータ読み出し/書き込みを行うことができる。記憶装置123は、HDD(Hard Disk Drive)124などの記憶媒体で構成され、ホストコンピュータ110及びあるいは重複排除装置130から書き込み命令を受けたデータを格納する。ストレージ制御装置121は、図示を省略するCPU等のプロセッサ、メモリ、及び記憶装置123との間のI/O(Input/Output)インターフェースとしてのディスクアダプタを備える。ストレージ制御装置121は、そのような構成に基づいて、記憶装置123の物理的記憶領域から適宜のRAIDレベルにより論理記憶領域を編成する機能、及び論理記憶領域から複数の論理ボリュームを作成してホストコンピュータ110に提供する機能等を備える。
重複排除装置130は、少なくともネットワークインターフェース135、CPU131、メモリ132、補助記憶装置133、I/Oインターフェース134、及び入出力装置136を備える。重複排除装置130は、ストレージ装置120に格納されたデータを、ネットワークインターフェース135を介しメモリ132上に読み出す機能及び、及びメモリ132上のデータを、ネットワークインターフェース135を介しストレージ装置120に書き込む機能を備える。I/Oインターフェース134は、キーボード、マウス等のデータ入力デバイス、ディスプレイ、プリンタ等のデータ出力デバイスであり、コンピュータのデータ入出力機能を有する種々のデバイスを含む。なお、図1の例では重複排除装置130は、ストレージ装置120とは別個のコンピュータとして構成されているが、後述する重複排除装置130の機能をストレージ装置120内に実装するように構成してもよい。
次に、図2を参照して、第1実施形態による重複排除装置130の機能の例について説明する。重複排除装置130の機能は、補助記憶装置133に格納されている、各機能を実現するためのプログラム及びデータを、CPU131がメモリ132へ読み出して実行することによって提供される。
重複排除装置130は、標準重複排除機能部210とチャンク統合機能部220とを備える。標準重複排除機能210は、ストレージ装置120に格納するデータを、複数のチャンク(データ断片)のシーケンスに分割し、互いに重複するチャンク(重複データ断片)については1つのチャンクのみについて実データをストレージ装置120に格納する機能を提供する。この標準重複排除機能部210の機能により、記憶装置123の利用可能な容量を増やすことが可能となる。
チャンク統合機能部220は、標準重複排除機能部210により生成されたチャンクのシーケンス中で、繰り返し現れるチャンクのデータパターンを解析し、複数のチャンクを一つの統合チャンクとして管理することで、データ再構築に要するコストを削減する機能を提供する。以下、各機能を実現するための手段について具体的に説明する。
標準重複排除機能部210は、少なくともチャンキングモジュール211(データ分割部)、チャンク照合モジュール212(データ照合部)、チャンク登録モジュール213(データ登録部)、ファイル復元モジュール214(データ復元部)、チャンク管理テーブル216、及びファイル管理テーブル215を備えて構成される。
まず、上記した標準重複排除機能部210に設けられている各部の概要を説明する。チャンキングモジュール211は、ストレージ装置120に格納されたデータを読み込み、複数のチャンクに分割する機能を有する。チャンキングモジュール211による処理の詳細は、図8を参照して後述する。
チャンク照合モジュール212は、チャンキングモジュール211が生成した各チャンクについて、データが重複するチャンクが存在するかを判定する。チャンキングモジュール211による処理の詳細は、図9を参照して後述する。
チャンク登録モジュール213は、チャンキングモジュール211が生成した各チャンクから、チャンクID301、ハッシュ値302、及びチャンクサイズ303を含む、各チャンクを管理するために用いられる属性情報を生成し、ファイル管理テーブル215及びチャンク管理テーブル216に、それらの属性情報を登録する機能を有する。さらに、チャンク登録モジュール213は、チャンク照合モジュール212が重複するチャンクが存在しないと判定したチャンクのみの実データを、ストレージ装置120に格納する機能をも有する。チャンク登録モジュール213による処理の詳細は、図10を参照して後述する。
ファイル復元モジュール214は、ファイル管理テーブル215及びチャンク管理テーブル216が格納する属性情報と、ストレージ装置120に格納された、チャンクに対応するデータとを用いて、チャンキングモジュール213によってチャンクに分割される前のデータを復元する機能を有する。ファイル復元モジュール214による処理の詳細は、図11を参照して後述する。
チャンク管理テーブル216は、チャンキングモジュール213が生成したチャンクの属性情報を保持し、チャンク照合モジュール212による重複チャンクの判定処理、及びファイル復元モジュール214がチャンクからデータを復元する際に参照される。チャンク管理テーブル216の詳細は、図3を参照して後述する。
ファイル管理テーブル215は、各ファイルを構成しているチャンクのシーケンスに関する情報を保持しており、ホストコンピュータ110からのデータ読み出し命令に従って、読み出し対象データ(ファイル)を復元する際に参照される。ファイル管理テーブル215の詳細は、図4を参照して後述する。
以上説明した標準重複排除機能部210の機能により、ホストコンピュータ110から書き込まれるもとのデータは、互いに重複しない複数のチャンクの集合と、ファイル管理テーブル215及びチャンク管理テーブル216が保持する書くチャンクの属性情報とに変換される。本願では、この一連の変換処理を「重複排除処理」と呼び、互いに重複しない複数のチャンクの集合を重複排除されたデータと、ファイル管理テーブル215及びチャンク管理テーブル216が保持する各チャンクの属性情報をメタデータと呼ぶこととする。重複排除されたデータ及びメタデータからもとのデータを復元することが可能であるから、重複排除処理を行って重複するチャンクに関する1つの実データを格納した後は、ホストコンピュータ110から受信したもとのデータを保持しておく必要はない。そのため、重複する複数のチャンクが存在する場合には、もとのデータをそのまま格納する場合と比較して、重複排除処理されたデータのサイズは小さくなる。
次に、チャンク統合機能部220について説明する。チャンク統合機能部220は、少なくともチャンクパターン解析モジュール221(データ解析部)、チャンク管理テーブル更新モジュール222(データ更新部)、チャンクパターン情報テーブル223、及び統合チャンク情報テーブル224を備えて構成される。
チャンクパターン解析モジュール221は、ファイル管理テーブル215が管理する各ファイルについてのチャンクのシーケンスを分析し、再構築コスト削減のために統合すべきチャンクを決定する機能を有する。チャンクパターン解析モジュール221による処理の詳細は、図12を参照して後述する。
チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221が決定した統合すべきチャンクに応じて、ストレージ装置120に格納されたデータを再配置し、そのデータ再配置結果に従ってファイル管理テーブル215及びチャンク管理テーブル216に保持されている情報を更新する機能を有する。チャンク管理テーブル更新モジュール222による処理の詳細は、図13を参照して後述する。
チャンクパターン情報テーブル223は、チャンクパターン解析モジュール221が、統合すべきチャンクを決定するために利用する情報を保持する。チャンクパターン情報テーブル223の構成の詳細は、図6を参照して後述する。
統合チャンク情報テーブル224は、チャンクパターン解析モジュール221が統合すべきと判定したチャンクに関する情報を保持している。統合チャンク情報テーブル224の構成の詳細は、図7を参照して後述する。
重複排除装置130にはまた、オペレーティングシステム(Operating System, OS)230及びデータI/O部240が実装されている。OS230は、重複排除装置130のコンピュータとしての基本的なデータ処理機能を有する基本ソフトウェアであり、一般的なコンピュータのOSとして利用可能なものを適宜採用することができる。データI/O部240は、OS230の制御下で、標準重複排除機能部210あるいはチャンク統合機能部220に備えられる各モジュールと、ネットワークインターフェース135を介した外部とのデータI/O処理を管理する。
次に、図3A、図3Bを参照して、第1の実施形態に係るチャンク管理テーブル216の例について説明する。なお、以下の各テーブルの説明については、各テーブルの構成要素に付す符号を分かりやすくするために、図2において使用した符号とは別個の符号を付して説明する。例えば、チャンク管理テーブル216の単体について説明する場合には、チャンク管理テーブル300の符号を用いることとし、必要に応じて「チャンク管理テーブル300(216)」と表示する。図3Aは、重複排除装置130の標準重複排除機能部210が、データの重複排除処理を行った後のファイル管理テーブル215の状態の例を表す。図3Bは、重複排除装置130のチャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合し、チャンクID301が9の新たなチャンクを生成しチャンク管理テーブル216に登録した後の状態を表す。チャンク統合処理については後述する。
図3A、図3Bに例示するチャンク管理テーブル300は、チャンクID301、ハッシュ値302、チャンクサイズ303、重複数304、及び保存先306の各項目を含む。チャンクID301は、各チャンクを一意に識別するためのIDであり、チャンク登録モジュール213がチャンク管理テーブル216に新たなチャンクの属性情報を追加する際、他のチャンクID301と同じにならないように、チャンク登録モジュール213が各チャンクに割り当てる。ハッシュ値302は、各チャンクに含まれているデータをハッシュ関数に入力して得られる出力値を格納している。ハッシュ関数としては、例えばSHA−1などを利用することができる。なお、ここで、各チャンクについて算出したハッシュ値302を、チャンクID301として利用してもよい。ただし、その場合、異なるチャンクに対しハッシュ値302が同一の値となった場合は、同一ハッシュ値302を有する複数のチャンクを互いに区別する識別子を追加するものとする。チャンクサイズ303は、各チャンクのデータとしてのサイズを表し、図3A、図3Bの例ではキロバイト単位で表示している。重複数304は、重複排除処理を実行する前のデータ中に、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが何回出現したかを表す。保存先305は、対応するチャンクID301又はハッシュ値302によって特定されるチャンクが保存されている記憶装置123上の位置を表し、例えば記憶装置123が提供する論理記憶領域上のブロックアドレス等として記録される。保存先305は、重複排除装置130が記憶装置123上にあるチャンクのデータを取得する際に利用される。ファイル復元モジュール214は、チャンク管理テーブル300に保持されている保存先305とチャンクサイズ303とを参照することで、読み出し対象であるファイルを構成するチャンクを記憶装置123上から読み込むことができる。
次に、図4を参照して、チャンクの統合処理が実行された場合の、記憶装置123上のデータの再配置について説明する。図4(a)は、チャンク統合機能部220がチャンクの再配置を行う前における、記憶装置123上に格納されているチャンクの例を表す。図4(a)の例では、チャンクID301が1、2、3のチャンクが、保存先305がL_1、L_2、L_3で示される不連続な位置にそれぞれ保存されている。これに対し、図4(b)は、チャンク統合機能部220が、チャンクID301が1、2、3で特定されるチャンクを統合してチャンクID301が9のチャンクを生成し、ディスク上のチャンクを再配置した後の状態の例を表す。図4(b)では、チャンクID301が9で特定される新たなチャンクとして、もとの3つのチャンクが連続する位置に保存されている。記憶装置123の論理記憶領域においてこのようなデータ配置にすることで、チャンクID301が9で特定されるチャンクを取得する際、重複排除装置130から記憶装置123上へのアクセス回数は、データ再配置前の3回から1回で済むことになる。
次に、図5A、図5Bを参照して、ファイル管理テーブル500(215)について説明する。図5A、図5Bは、それぞれファイル管理テーブル500の構成例を示しており、図5Aはチャンク統合処理前の状態を、図5Bはチャンク統合処理後の状態を例示している。ファイル管理テーブル500は、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505の各項目を含む。ファイル名501は、各ファイルを一意に識別する識別子を表す。ファイルサイズ502は、各ファイルのサイズを、例えばキロバイト単位で表す。チャンク数503は、各ファイルを構成するチャンクの数を表す。構成チャンクID505は、各ファイルを構成するチャンクのシーケンスを、チャンクID301の並びとして表す。ホストコンピュータ110からファイルの読み出し命令を受領した場合、重複排除装置130は、このファイル管理テーブル500において記録されている読み出し対象ファイルのファイル名501と、それに対応して記録されている構成チャンクID505とを取得することにより、記憶装置123に格納されているチャンクから読み出し対象ファイルを復元することができる。図5Aの例では、ファイル名501が「sample1.txt」で特定されるファイルは、構成チャンクID505に記録されている10個のチャンクから構成される。構成チャンクID505に記録されているように、各チャンクのIDは「1−2−3−4−1−2−3−5−6−1」であり、この順番でチャンクが並んでいる。一方、チャンク統合処理後の状態を表している図5Bでは、ファイル名501が「sample1.txt」のファイルは6個のチャンクから構成されている。これは、図3Bに示したように、チャンクID301が「1−2−3」で構成される新たなチャンクをチャンクID301が9のチャンクと定義したためである。したがって、図5Bにおいては、ファイル名「sample1.txt」を構成している各チャンクのIDの配列は、「9−4−9−5−6−1」となる。
次に、図6A、図6Bを参照して、チャンクパターン情報テーブル600(223)について説明する。図6Aは後述する繰り返しチャンクパターン検出処理後のチャンクパターン情報テーブル600の構成例を、図6Bは同一チャンクを有するパターンを分割した後のチャンクパターン情報テーブル600の構成例を示している。チャンクパターン情報テーブル223は、チャンクパターン601、長さ602、出現数603、及び出現位置604の各項目を含む。チャンクパターン601は、記憶装置123が提供する論理記憶領域に格納される一連のチャンクシーケンス内に繰り返し現れるパターンを、チャンクID301の並びとして表している。長さ602は、チャンクパターン601を構成するチャンクの個数を表す。出現数603は、チャンクパターン601がチャンクシーケンス内で何回出現するかを表す。出現位置604は、記憶装置123が提供する論理記憶領域に格納される一連のデジタルデータシーケンス内のどの位置に、チャンクパターン601が出現するかを、論理記憶領域内のブロックアドレス等を用いて表す。例えば、図6Aでは、チャンクID301が1−2−3で表されるチャンクパターン601が、デジタルデータシーケンスの先頭から数えて、1番目、100番目、212番目に出現することを表している。チャンクパターン解析モジュール221は、統合するチャンクを決定するために、チャンクパターン情報テーブル223を動的に更新する。チャンクパターン解析モジュール221によるチャンクパターン解析処理の詳細は、図12を参照して後述する。
次に、図7を参照して、統合チャンク情報テーブル700(224)について説明する。図7は、統合チャンク情報テーブル700の構成例を示している。統合チャンク情報テーブル700は、統合チャンクID701、サブチャンクID702、出現数703、及び更新日時704の各項目を含む。統合チャンクID701は、チャンクパターン解析モジュール221が統合すべきと決定したチャンクパターン601に対して、チャンクパターン解析モジュール221が新たに割り当てたチャンクID301である。サブチャンクID702は、統合されたチャンクを構成する、より小さなチャンク(以下「サブチャンク」と呼ぶ。)を表すチャンクID301である。出現数703は、統合したチャンクが記憶装置123の論理記憶領域上にあるチャンクのシーケンス内で何回出現するかを表す。図7の例では、サブチャンク1−2−3を統合して統合チャンクを生成し、新たなチャンクID301として9を割り当てている。更新日時704は、チャンクパターン解析モジュール221が統合したチャンクを登録した日時を表す。
次に、図8を参照して、チャンキングモジュール211による処理の流れを説明する。図8は、チャンキングモジュール211によって実行されるデータ処理フローの一例を示している。
チャンキングモジュール211が処理を開始することで、重複排除装置130の標準重複排除機能部210による一連の重複排除処理が開始される。重複排除処理の開始のタイミングを決定するには、大別して2つの方式がある。1つ目は、ホストコンピュータ110がストレージ装置120へデータを送信したタイミングで重複排除処理を行う方式である。この場合は、ストレージ制御装置121が記憶装置123にデータを書き込む前に、重複排除装置130がネットワークインターフェース135を介してデータを受信し、重複排除処理を行った後記憶装置123に、チャンクに分割したデータを書き込む。この1つ目の方式は、インライン方式と呼ばれる。2つ目は、ホストコンピュータ110がストレージ装置120へ送信したデータを、ストレージ制御装置121が記憶装置123にデータを書き込んだ後に重複排除処理を行う方式である。この場合は、重複排除装置130が、記憶装置123上のデータを読み込み、重複排除処理を行った後、再び記憶装置123に重複排除処理されたデータを書き込む。この2つ目の方式はポストプロセス方式と呼ばれる。ポストプロセス方式の場合、重複排除装置130による重複排除処理は、例えば記憶装置123に格納されたデータのバックアップ処理等のタイミングに合わせて、毎週決められた時刻などに開始される。以下では、説明の便宜上、ポストプロセス方式を想定して説明するが、重複排除処理の開始タイミングと重複排除装置130のデータ読み込み先を変更するだけで、インライン方式にも本発明は適用可能である。
図8に戻ると、S801(符号Sは「ステップ」を表す。以下本明細書中で同じ。)において、チャンキングモジュール211は新規データを読み込む。ここで、新規データとは、ストレージ装置120が格納するデータのうち、標準重複排除機能部210がまだ重複排除を行っていないデータを指す。ストレージ装置120における新規データの識別は、例えば記憶装置123の論理記憶領域のアドレスに対してビットマップで、あるいは受信したファイル単位で重複排除処理を実施済みか否か記録しておくことで行うことができる。チャンキングモジュール211は、新規データを読み込んだ後S802の処理に進む。
S802において、チャンキングモジュール211は、S801で読み込んだデータをチャンクに分割する。チャンクへの分割方式には、大別して、1KB単位など固定のデータサイズで分割する固定長方式と、デジタルデータシーケンス中に特定のバイトパターンが現れた場合にその箇所を分割位置とする可変長方式とがある。
固定長方式のチャンキングについては、例えば以下の文献で説明されている。
S. Quinlan and S. Dorward, "Venti: a new approach to archival
storage,” The First USENIX conference on File and Storage
Technologies (Fast'02), January 2002.
可変長方式のチャンキングについては、例えば以下の文献で説明されている。
A. Muthitacharoen, B. Chen, and D. Mazieres, "A low-bandwidth
network file system,” The 18th ACM Symposium on Operating Systems
Principles (SOSP), Banff, Alberta, Canada, October 2001.
B. Zhu, K.Li, and H. Patterson, "Avoiding the disk bottleneck in
the Data Domain deduplication file system,” The 6th USENIX
Conference on File and Storage Technologies (FAST '08),
February 2008.
本実施形態では、図4で例示したように、各々のチャンクサイズ303が異なる、すなわち可変長方式のチャンキングを行うものとして説明しているが、本発明は、分割方式によらず適用可能である。チャンキングモジュール211は、適宜の分割方式によってチャンクの分割位置を決定した後、S803の処理に進む。
S803において、チャンキングモジュール211は、S802で決定したチャンクの情報をチャンク照合モジュール212に送信する。チャンキングモジュール211は、このチャンクの情報に、新規データとチャンクへの分割位置を表すアドレス等の情報を含める。
次に、図9を参照して、チャンク照合モジュール212の処理の流れについて説明する。図9は、本実施形態のチャンク照合モジュール212が実行するデータ処理フローの一例である。
まず、S901において、チャンク照合モジュール212は、チャンキングモジュール211が送信したチャンク情報を受信する。チャンク照合モジュール212は、チャンク情報を受信した後S902の処理に進む。
S902において、チャンク照合モジュール212は、S802で決定した各チャンクがチャンク管理テーブル300にすでに存在するかを確認する。この確認は、例えば次のように行う。まず、チャンク照合モジュール212は、チャンク管理テーブル300において各チャンクについて記録されているハッシュ値302を求めるのに用いたハッシュ関数と同一のハッシュ関数を用いて、受信した各チャンクのハッシュ値を計算する。次に、算出された各ハッシュ値に基づいて、チャンク管理テーブル300に記録されている各チャンクのハッシュ値302との照合を行い、同一のハッシュ値を持つチャンクが存在するかを確認する。このチャンク照合処理は、例えば以下の文献で説明しているように、ブルームフィルタ(Bloom Filter)を用いて行ってもよい。
B. Zhu, K.Li, and H. Patterson, "Avoiding the disk bottleneck in the
Data Domain deduplication file system,” The 6th USENIX Conference
on File and Storage Technologies (FAST '08), February 2008.
理想的なハッシュ関数を用いる場合、異なるチャンクについてハッシュ値が同一になる(ハッシュ値の衝突が起こる)可能性は限りなく小さい。そのため、チャンクの同一性をそれらについて算出したハッシュ値の同一性で判断することができる。よりチャンク照合処理の精度を高めるために、ハッシュ値の衝突が起こる可能性を考慮する場合には、同一のハッシュ値を持つと判定されたチャンクに対しては、記憶装置123が格納するチャンクのバイナリデータを直接比較することで、正しくチャンクの同一性を判定することができる。以上のように、受信した各チャンクがチャンク管理テーブル216に存在するかを確認した後、チャンク照合モジュール212はS903の処理に進む。
S903において、チャンク照合モジュール212は、S902で照合した結果をチャンク登録モジュール213へ送信して処理を終了する。
次に、図10を参照して、チャンク登録モジュール213の処理の流れを説明する。図10は、チャンク登録モジュール213により実行されるデータ処理フローの一例を示している。
S1001において、チャンク登録モジュール213は、S903でチャンク照合モジュールが送信した照合結果を受信する。照合結果は、受信したチャンクと同一のチャンクが既にチャンク管理テーブル300に格納されているかの情報を含む。チャンク登録モジュール213は、各チャンクについての照合結果を受信した後、各チャンクを対象にS1002以下の処理を行う。
S1002において、チャンク登録モジュール213は、対象チャンクがチャンク管理テーブル300に存在するかを判定する。判定は、S902においてチャンク照合モジュール212が確認した結果をもとに行われる。対象チャンクがチャンク管理テーブル216に存在する場合は、記憶装置123内にすでに同一チャンクが存在するので、対象チャンクは重複するチャンクと呼ばれる。チャンク登録モジュール213は、対象チャンクが重複すると判定した場合(S1002、Yes)、S1005の処理に進む。対象チャンクが重複しないと判定した場合は(S1002、No)、チャンク登録モジュール213は、S1003の処理に進む。
S1003において、チャンク登録モジュール213は、対象チャンクのデータを記憶装置123に保存する。このとき、対象チャンクごとに記憶装置123に保存せず、一時的にメモリ132に保存しておき、他の重複しないチャンクと合わせて一度に記憶装置123へ保存する方式をとってもよい。記憶装置123あるいはメモリ132に保存した後、チャンク登録モジュール213は、S1004の処理に進む。
S1004において、チャンク登録モジュール213は、チャンク管理テーブル300に、対象チャンクの属性情報を登録する。チャンク登録モジュール213は、チャンクID301には、既存のチャンクID301と同一にならない値あるいは符号を割り当てる。ハッシュ値302には、S902において計算した値を登録する。チャンクサイズ303には、対象チャンクのサイズを計算して登録する。重複数304には、他に重複するチャンクは存在しないため数値1を登録する。保存先305には、S1003でチャンクを保存した場所を表す情報を登録する。チャンク登録モジュール213は、以上のようにチャンク管理テーブル300に各チャンクの属性情報を登録した後、S1006の処理に進む。
一方、S1005において、チャンク登録モジュール213は、チャンク管理テーブル300内にすでに登録されている対象チャンクと重複するチャンクの属性情報を更新する。この場合、チャンク登録モジュール213は、該当するチャンクについて記録されている重複数304の値を1つ増加させる。チャンク管理テーブル300の属性情報を更新した後、チャンク登録モジュール213はS1006の処理に進む。
S1006において、チャンク登録モジュール213は、ファイル管理テーブル500に、処理した新規データ(新規ファイル)の情報を追加する。すなわち、チャンク登録モジュール213は、その新規データに含まれる各ファイルについて、ファイル名501、ファイルサイズ502、チャンク数503、及び構成チャンクID505を、ファイル管理テーブル500に登録する。
次に、図11を参照して、ファイル復元モジュール214の処理の流れについて説明する。図11は、本実施形態のファイル復元モジュール214が実行するデータ処理フローの一例を示している。
ファイル復元モジュール214は、ホストコンピュータ110がストレージ装置120へデータ読み込み命令を送信し、このデータ読み込み命令を重複排除装置130の標準重複排除機能部210がネットワークインターフェース135を介して受信したタイミングで処理を開始する。重複排除されて記憶装置123に格納されているデータは、もとのデータと同一ではないので、データ読み込み命令を受け付けた場合、重複排除装置130は、重複排除されたデータをもとのデータ(ファイル)に戻す必要がある。本明細書では、この処理をデータの復元と呼ぶ。データの復元は、記憶装置123が格納する全部あるいは一部のデータに対して行われる。以下では、1つのファイルを復元する処理を説明するが、一般のデータの場合にも、そのデータを複数のファイルに分割してファイルごとにチャンキングを行い、データ復元にあたっては分割したファイルごとに同様の処理を行うことでデータを復元できる。
まず、S1101において、ファイル復元モジュール214は、データ読み込み命令に含まれている復元対象のファイル名501をもとにファイル管理テーブル500を検索する。復元対象のファイル名を有するファイルがファイル管理テーブル500に記録されていると判定した場合(S1101、Yes)、ファイル復元モジュール214は、S1103において該当ファイルの構成チャンクID505を取得した後S1104の処理に進む。該当するファイル名501によるファイルのエントリがファイル管理テーブル500にないと判定した場合(S1101、No)、ファイル復元モジュール214は、S1102においてエラーメッセージを出すなどして処理を終了する。
一方、S1104において、ファイル復元モジュール214は、ファイルを構成するチャンクのデータを記憶装置123から取得する。具体的には、S1103で取得した構成チャンクID505に含まれるチャンクID301ごとに以下の処理を行う。まず、チャンクID301をもとに、チャンク管理テーブル300を検索し、該当チャンクの保存先305を取得する。次に取得した保存先305をもとに、記憶装置123からチャンクのデータを取得する。取得したチャンクのデータは、一時的にメモリ132に保存する。構成チャンクID505に含まれるすべてのチャンクID301に対して、上記の処理を行った後、取得した各チャンクのデータを構成チャンクID505の順番に連結する。その後、S1105に進む。
S1105において、ファイル復元モジュール214は、S1104で連結したデータを、ネットワークインターフェース135を介して、ホストコンピュータ110へ送信し、処理を終了する。
次に、図12を参照して、チャンクパターン解析モジュール221の処理の流れについて説明する。図12は、本実施形態のチャンクパターン解析モジュール221が実行するデータ処理フローの一例を示している。チャンクパターン解析モジュール221は、重複排除装置130のOS230からのタイマー起動により週一回など定期的に、あるいは管理者の手動により開始されるように構成することができる。
まず、S1201において、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれる構成チャンクID505を読み込む。このとき、チャンクパターン解析モジュール221は、ファイル管理テーブル500に含まれるすべてのファイルを読み込み対象にしてもよいし、一部のファイルを対象にしてもよい。構成チャンクID505を読み込んだ後、チャンクパターン解析モジュール221は、S1202の処理に進む。
S1202において、チャンクパターン解析モジュール221は、S1201で読み込んだ構成チャンクID505に含まれるチャンクID301のうち、統合チャンクであるチャンクID301をサブチャンクIDに置き換える。この処理は、チャンクパターン解析モジュール221が、統合チャンク情報テーブル700を参照し、読み込んだチャンクID301が統合チャンクID701に登録されているかを確認することで行う。例えば、S1201で読み込んだチャンクID301に「9」が含まれている場合、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を参照し、サブチャンクID「1−2−3」で置換え、S1203の処理に進む。
次に、S1203において、チャンクパターン解析モジュール221は、図6Aに示すチャンクパターン情報テーブル600を作成する。これは、以下の処理で実現する。まず、チャンクパターン解析モジュール221は、S1202でサブチャンクIDへの書き換えを行った後の構成チャンクID505の集合を連結して一つの文字列とする。構成チャンクID505を連結する際、チャンクパターン解析モジュール221は、構成チャンクID505の間のファイルの区切りとなる位置に、そのファイルの区切りを示す識別子を挿入する。この識別子には、チャンクID301及び他のファイル間の区切りを示す識別子と異なる値が割り当てられる。例えば、3つのファイルを構成する構成チャンクID505「1−2−3−4−1−2−3−5−6−1」、「7−8−4−2−5」、及び「3−2」を連結する場合、チャンクパターン解析モジュール221は、ファイルの区切り位置に識別子$、¥を挿入して「1−2−3−4−1−2−3−5−6−1−$−7−8−4−2−5―¥−3−2」とする。このようにして、チャンクID301及びファイル区切り識別子からなる1つの文字列が生成される。
次に、この生成した文字列の中で、互いに一致し、直前及び直後の文字が異なる部分文字列を検索する。このような文字列を、本明細書では「繰り返しパターン」と定義する。例えば、前記の文字列「1−2−3−4−1−2−3−5−6−1−$−7−8−4−2−5―¥−3−2」では、「1−2−3」が繰り返しパターンとして抽出される。なお、部分文字列「1−2」も上記の文字列中に2回現れるが、直後の文字が同じ3なので、繰り返しパターンには該当しない。このような文字列に対する操作は、「Suffix Tree」、「Suffix Array」と呼ばれるデータ構造を利用することで効率的に行えることが知られている。繰り返しパターン検索の詳細は、例えば、以下の文献で説明されている。
Gusfield, Dan (1999) [1997]. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. USA: Cambridge University Press. p. 143.
このようにして、チャンクパターン解析モジュール221は、部分文字列検索対象となる、構成チャンクID505を連結してなる文字列について、すべての繰り返しパターンを検索する。さらに、チャンクパターン解析モジュール221は、各繰り返しパターンの長さ602、出現数603、及び出現位置604を取得し、チャンクパターン情報テーブル600に登録する。以上がチャンクパターン情報テーブル600作成の処理である。なお、上記の処理では、読み込んだすべての構成チャンクID505を対象に繰り返しパターン検索を実行したが、あらかじめ重複しているチャンクのみを対象に同様の処理を行うことで、検索に必要なメモリの削減及び検索速度の向上を実現することができる。各チャンクが重複しているかどうかの判定は、チャンク管理テーブル500を参照し、各チャンクID301に対応する重複数503が2以上であるかを確認することで行うことができる。チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223を作成した後、S1204の処理へ進む。
S1204において、チャンクパターン解析モジュール221は、チャンクパターン情報テーブル223に含まれるチャンクパターンのうち、内部に同一チャンクを含むチャンクパターンを複数のチャンクパターンに分割する。例えば、図6Aの3行目のチャンクパターン「1−2−3−1−5−6」は、その内部に同一チャンク「1」を持つ。そこで、図6B上表のように、内部に同一チャンクを持たないチャンクパターンである「1−2−3」と「1−5−6」とに分割する。一般に、この分割は、一意ではないが、なるべく分割後のチャンクが大きくなるよう分割を採用する。この分割の結果、チャンクパターン情報テーブル223内に同一のチャンクパターン601が生じることがある。その場合は、同一のチャンクパターン601を一つのエントリにまとめる。その際、出現数603はそれぞれの出現数603の和に、出現位置604はそれぞれの出現位置604の連結に書き換える。例えば図6B上表では、チャンクパターン「1−2−3」が2つ存在しているので、図6B下表のように、1つのエントリにまとめることができる。内部に同一チャンクを持つチャンクパターンを分割した後、チャンクパターン解析モジュール221は、S1205の処理に進む。
次に、S1205において、チャンクパターン解析モジュール221は、チャンクパターン601についてのポリシを満たさないチャンクパターンをチャンクパターン情報テーブル600から除外する。ここで、チャンクパターンについてのポリシは、チャンクパターン601の最小長さ、最小出現数などを含み、これらの値は、管理者などがチャンク統合機能部220にパラメータ記憶領域を用意して予め設定しておくものとする。一般に、チャンクパターン601の長さ602は長いほど、出現数603が多いほど、チャンクを統合した場合の効果が高い。よって、チャンクパターンの長さ602の最小値、最小出現数603をポリシに設定することで、チャンク統合の効果が高い場合のみ統合チャンクを生成するように構成することができる。また、ポリシとして、チャンクパターン601の長さ602の最大値、最大出現数603などを設定してもよい。チャンクパターン解析モジュール221は、上記設定されたポリシに応じてチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1206の処理に進む。
S1206において、チャンクパターン解析モジュール221は、他のチャンクパターン601と同一のチャンクを含むチャンクパターン601を除外する。これは、異なる統合チャンク内に含まれる重複するチャンクの格納を行わないようにして、重複排除効率をより一層高めるための処理である。例えば、図6B下表において、チャンクパターン「1−2−3」と「1−5−6」とは同一のチャンク「1」を含む。よって、どちらかをチャンクパターン情報テーブル600から除外する。どちらのチャンクパターンを除外するかは、予め設定したルールに従い決定することができる。このルールは、例えば、「出現数603が低いほうを除外」、「長さ602が小さいほうを除外」というように設定することができる。チャンクパターン解析モジュール221は、同一チャンクを含むチャンクパターン601のエントリをチャンクパターン情報テーブル600から除外した後、S1207の処理に進む。
S1207において、チャンクパターン解析モジュール221は、統合チャンク情報テーブル700を更新する。チャンクパターン解析モジュール221は、S1206の処理を実行後のチャンクパターン情報テーブル600に含まれるチャンクパターン601を統合するチャンクとして決定し、各チャンクパターン601に関する情報を統合チャンク情報テーブル700に新規登録する。その際、チャンクパターン解析モジュール221は、各チャンクパターン601に新たなチャンクID301を割り当て、統合チャンクID701に登録する。また、各統合チャンクID701で特定されるチャンクパターンを構成するチャンクID301をサブチャンクID702に、当該チャンクパターンの出現数を出現数703に、統合チャンクID701の新規登録を行った日時を更新日時704にそれぞれ登録する。
以上説明したチャンクパターン解析処理によれば、ストレージ装置120への格納データをいったん分割して生成したチャンクを、より長い統合チャンクとして再構成することができる。ので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。
次に、図13を参照して、チャンク管理テーブル更新モジュール222の処理の流れを説明する。図13は、チャンク管理テーブル更新モジュール222が実行するデータ処理フローの一例を示している。チャンク管理テーブル更新モジュール222は、チャンクパターン解析モジュール221の処理が終わった直後、または、しばらく時間が経過した後に処理を開始させることができる。
S1301において、チャンク管理テーブル更新モジュール222は、記憶装置123上のデータの再配置を行う。この処理は、統合チャンク情報テーブル700に含まれる統合チャンクID701に対応するエントリごとに以下の処理を行うことで実現する。まず、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクに対し、チャンク管理テーブル300を参照し、各サブチャンクのデータ保存先305を取得する。次に、チャンク管理テーブル更新モジュール222は、記憶装置123から各サブチャンクのデータを取得し、連結してメモリ132に一時的に保存する。次に、チャンク管理テーブル更新モジュール222は、連結したサブチャンクのデータを新たなチャンクとして、記憶装置123に書き込む。このとき、チャンク管理テーブル更新モジュール222は、書き込んだ位置を内部で保持しておく。最後に、チャンク管理テーブル更新モジュール222は、記憶装置123上のもとのサブチャンクのデータを消去する。チャンク管理テーブル更新モジュール222は、以上のデータ再配置処理を行った後、S1302の処理に進む。
S1302において、チャンク管理テーブル更新モジュール222は、統合チャンクの属性情報をチャンク管理テーブル300に追加する。例として、図4Bに、統合チャンク「9」を新たにチャンク管理テーブル300に追加した後の状態を示している。ハッシュ値302には、登録する統合チャンクのデータに対して所定のハッシュ関数を用いて計算した値を登録する。チャンクサイズ303には、統合チャンク情報テーブル700の出現数703の値を登録する。保存先305には、S1301において、統合チャンクのデータを記憶装置123に書き込んだ位置を登録する。統合チャンクを追加した後、チャンク管理テーブル更新モジュール222は、統合チャンクに含まれるサブチャンクの保存先305を変更する。サブチャンクの保存先305は、統合チャンクの保存先305、統合チャンクの中のサブチャンクの順序、及び統合チャンクを構成するサブチャンクのサイズをもとに決定することができる。例えば、チャンク「3」は、チャンク「9」の保存先305から、チャンク「1」と「2」のデータ長分進めた位置で指定できる。チャンク管理テーブル更新モジュール222は、チャンク管理テーブル300を更新した後、S1303の処理に進む。
次に、S1303において、チャンク管理テーブル更新モジュール222は、ファイル管理テーブル500の構成チャンクID505を統合チャンクで置換えて処理を終了する。図5Bに、ファイル名「sample1.txt」で特定されるファイルの構成チャンクID505である「1−2−3」を統合チャンク「9」で置換えた後のファイル管理テーブル500の状態を示している。
以上説明したチャンク管理テーブル更新処理によれば、再構成された統合チャンクを用いてストレージ装置120へのデータ格納を行うので、ストレージ装置120の格納効率を向上させることができ、またストレージ装置120からのデータの読み出し速度を向上させることができる。
≪第2の実施形態≫
次に、本発明の第2実施形態について説明する。上述した第1の実施形態では、標準重複排除機能部210のチャンキングモジュール211は、図8に例示するデータ処理フローのS802において、基本的に、サブチャンクを生成した時と同様のチャンキング方式でチャンキングを行う。仮に、ホストコンピュータ110がストレージ装置120に格納しようとするデータの特性等から、そのデータ内にはサブチャンクが単体で現れることはほとんどなく、統合チャンクとしてのみ現れることがあらかじめわかっている場合には、チャンキング方式を一時的に変更し、サブチャンクに分割することなくはじめから統合チャンクとして出力することができる。以下第2の実施形態でそのチャンキング方式について説明する。
第2の実施形態に係る重複排除装置130は、基本的に第1の実施形態と同一の構成を有して、同様のデータ処理を実行する。ここでは、第2の実施形態の構成のうち、第1の実施形態と異なる部分のみを説明する。
第2の実施形態では、第1の実施形態での構成とは異なるチャンク管理テーブル300(216)を使用する。図14A、図14Bを参照して、第2の実施形態に係るチャンク管理テーブル300の構成例について説明する。第2の実施形態に係るチャンク管理テーブル300は、第1実施形態にはなかったあらたな項目として、スキップサイズ1403を含む。スキップサイズ1403は、チャンキングモジュール211が、ホストコンピュータ110から受信した新規データをチャンクに分割する際に、分割位置検索処理をスキップすることができるようにあらかじめ設定したデータサイズを表す。具体的には、チャンキングモジュール211は、図8のS802において、ホストコンピュータ110から受信した新規データを先頭から順に走査していき、新規データをチャンクに分割するための分割位置を探す。その際、チャンキングモジュール211が、ある1つのチャンクを生成したとする。生成したチャンクが、チャンク管理テーブル216に登録されているチャンク(例えば「1」)と同一であると判定した場合、チャンキングモジュール211は、スキップサイズ1403の2.3KB分先に走査する位置を移動する。チャンク「1−2−3」が連続で現れる場合(この可能性は上記データ特性から高いと仮定される)、チャンキングモジュール211は、2.3KB分スキップ後の走査でチャンク「3」の終わりの区切り位置を発見する。その結果、チャンキングモジュールは、統合チャンクである「1−2−3」を分割したチャンクとして出力する。チャンク照合モジュール212は、図9のデータ処理フロー例において、S902でチャンク管理テーブル300と前記分割されたチャンクの照合を行い、チャンキングモジュール211が出力したチャンクが統合チャンク「9」と同一であることを判定する。
第2の実施形態によれば、分割位置判定のスキップによるチャンキング処理の速度向上と、照合対象のチャンク数削減を実現することができる。本実施形態の構成は統合チャンクの長さが長いほど特に有効であり、チャンキング処理に要する時間をより短縮することにより、重複排除処理の所要時間を短縮することができる。
以上説明した本実施形態の重複排除方法によれば、格納データの重複排除率を低下させることなくデータ復元処理に要する時間を短縮することができる。
以上、本発明についてその実施形態に基づき詳細に説明したが、本発明はこれらの実施形態に制約されることはない。また、本発明の範囲には、請求の範囲に記載された発明の均等物も含まれる。
1 ストレージシステム、101 ネットワーク、110 ホストコンピュータ、111,131 CPU、112,132 メモリ、113,122,135 ネットワークインターフェース、121 ストレージ制御装置、123 記憶装置、124 ハードディスク、133 補助記憶装置、134 I/Oインターフェース、210 標準重複排除機能部、211 チャンキングモジュール、212 チャンク照合モジュール、213 チャンク登録モジュール、214 ファイル復元モジュール、215,500 ファイル管理テーブル、216,300 チャンク管理テーブル、220 チャンク統合機能部、220 チャンクパターン解析モジュール、222 チャンク管理テーブル更新モジュール、223,600 チャンクパターン情報テーブル、224,700 統合チャンク情報テーブル

Claims (17)

  1. ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除方法であって、
    前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
    前記データを分割後の前記データ断片の構成によって記録するステップと、
    前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
    同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
    前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
    記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
    検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとを有する、格納データの重複排除方法。
  2. 請求項1に記載の格納データの重複排除方法であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除方法。
  3. 請求項2に記載の格納データの重複排除方法であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除方法。
  4. 請求項1に記載の格納データの重複排除方法であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除方法。
  5. 請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除方法。
  6. 請求項1に記載の格納データの重複排除方法であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除方法。
  7. 請求項1に記載の格納データの重複排除方法であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除方法。
  8. 請求項1に記載の格納データの重複排除方法であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除方法。
  9. ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するための格納データの重複排除装置であって、プロセッサとメモリとを有し、それぞれが前記メモリ上で該当するプログラムを前記プロセッサが実行することにより実現される、
    前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するデータ分割部と、
    前記データを分割後の前記データ断片の構成によって記録するデータ登録部と、
    前記データ断片について、同一の前記データ断片が存在するか判定し、同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するデータ照合部と、
    前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するデータ復元部と、
    記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するデータ解析部と、
    検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するデータ更新部とを有する、格納データの重複排除装置。
  10. 請求項9に記載の格納データの重複排除装置であって、前記データ断片属性情報は当該データ断片について所定のハッシュ関数を使用して算出されたハッシュ値と当該データ断片の前記記憶領域における保存先情報とを含み、前記データ断片に重複データ断片が存在するかは、各データ断片について前記ハッシュ値を比較することで実行される、格納データの重複排除装置。
  11. 請求項10に記載の格納データの重複排除装置であって、前記統合データ断片に含まれている複数の前記データ断片について前記保存先情報を取得し、前記統合データ断片に含まれている前記データ断片が前記保存先情報に従って、前記ストレージ装置との前記記憶領域上で連続して格納されるように再配置する、格納データの重複排除装置。
  12. 請求項9に記載の格納データの重複排除装置であって、検出した前記繰り返しデータパターンの中に、同一の前記データ断片が複数含まれる場合、前記繰り返しデータパターンを分割して前記同一のデータ断片が含まれないようにする、格納データの重複排除装置。
  13. 請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンが所定の長さに満たない場合、又は前記繰り返しデータパターンの検出数が所定値に満たない場合、該当する繰り返しデータパターンを記録しない、格納データの重複排除装置。
  14. 請求項9に記載の格納データの重複排除装置であって、検出された複数の前記繰り返しデータパターンが、同一の前記データ断片を含んでいる場合、所定の規則により選択したいずれか1の前記繰り返しデータパターン以外の繰り返しデータパターンを記録しない、格納データの重複排除装置。
  15. 請求項10に記載の格納データの重複排除装置であって、前記データ断片を取得して連結する際に、前記ストレージ装置に対して書き込みあるいは読み出しされる前記データの区切り位置をまたいで前記繰り返しデータパターンを認識しない、格納データの重複排除装置。
  16. 請求項9に記載の格納データの重複排除装置であって、前記繰り返しデータパターンを検出する際に、すでに記録されている前記統合データ断片の長さより短い箇所に存在する前記データ断片の区切り位置は、前記繰り返しデータパターンの検出に関しては認識しないように構成されている、格納データの重複排除装置。
  17. ストレージ装置に格納されるデータを構成する1のデータ断片と重複するデータ断片である重複データ断片を前記ストレージ装置の記憶領域から排除するために使用される重複排除プログラムであって、
    前記ストレージ装置に格納しようとする前記データを前記データ断片に分割するステップと、
    前記データを分割後の前記データ断片の構成によって記録するステップと、
    前記データ断片について、同一の前記データ断片が存在するか判定するステップと、
    同一の前記データ断片が存在すると判定した場合、1の前記データ断片を前記ストレージ装置の記憶領域に格納し、当該データ断片固有の属性を示す情報であるデータ断片属性情報を生成して記録するステップと、
    前記ストレージ装置の前記記憶領域に格納されている前記データの読み出し要求を受けた場合に、読み出し対象データを形成している前記データ断片の構成を取得して、該当する前記データ断片を前記ストレージ装置の前記記憶領域から読みだして前記データを復元するステップと、
    記録された前記データ断片を取得して連結することによりチャンク統合可否を判定する対象である統合対象データを生成し、当該統合対象データについて特定のデータパターンの繰り返しを繰り返しデータパターンがあるか検出するステップと、
    検出された前記繰り返しデータパターンを有する複数の前記データ断片の列を統合データ断片として、各統合データ断片から当該統合データ断片の属性を表す情報である統合データ断片属性情報を生成して記録するステップとをコンピュータに実行させる重複排除プログラム。
JP2013537331A 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム Expired - Fee Related JP5735654B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/073085 WO2013051129A1 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム

Publications (2)

Publication Number Publication Date
JPWO2013051129A1 true JPWO2013051129A1 (ja) 2015-03-30
JP5735654B2 JP5735654B2 (ja) 2015-06-17

Family

ID=48043321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013537331A Expired - Fee Related JP5735654B2 (ja) 2011-10-06 2011-10-06 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム

Country Status (3)

Country Link
US (1) US9542413B2 (ja)
JP (1) JP5735654B2 (ja)
WO (1) WO2013051129A1 (ja)

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US9589008B2 (en) 2013-01-10 2017-03-07 Pure Storage, Inc. Deduplication of volume regions
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
WO2014136183A1 (ja) * 2013-03-04 2014-09-12 株式会社日立製作所 ストレージ装置及びデータ管理方法
US9235505B2 (en) * 2013-05-17 2016-01-12 Ab Initio Technology Llc Managing memory and storage space for a data operation
US20150006846A1 (en) * 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage
US9697226B1 (en) * 2013-06-28 2017-07-04 Sanmina Corporation Network system to distribute chunks across multiple physical nodes
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9720608B2 (en) 2013-11-07 2017-08-01 Hitachi, Ltd. Storage system
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
JP6260359B2 (ja) * 2014-03-07 2018-01-17 富士通株式会社 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
CN105446964B (zh) * 2014-05-30 2019-04-26 国际商业机器公司 用于文件的重复数据删除的方法及装置
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9864769B2 (en) * 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US10437784B2 (en) * 2015-01-30 2019-10-08 SK Hynix Inc. Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US9921910B2 (en) * 2015-02-19 2018-03-20 Netapp, Inc. Virtual chunk service based data recovery in a distributed data storage system
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10083185B2 (en) 2015-11-09 2018-09-25 International Business Machines Corporation Enhanced data replication
JP6685334B2 (ja) * 2016-02-15 2020-04-22 株式会社日立製作所 ストレージ装置
US10013201B2 (en) 2016-03-29 2018-07-03 International Business Machines Corporation Region-integrated data deduplication
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10599355B2 (en) 2017-05-12 2020-03-24 Seagate Technology Llc Data compression with redundancy removal across boundaries of compression search engines
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10740306B1 (en) * 2017-12-04 2020-08-11 Amazon Technologies, Inc. Large object partitioning system
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
CN110389714B (zh) * 2018-04-20 2022-12-23 伊姆西Ip控股有限责任公司 用于数据输入输出的方法、装置和计算机存储介质
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11153094B2 (en) * 2018-04-27 2021-10-19 EMC IP Holding Company LLC Secure data deduplication with smaller hash values
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US20190361697A1 (en) * 2018-05-22 2019-11-28 Pure Storage, Inc. Automatically creating a data analytics pipeline
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11341106B2 (en) * 2019-07-19 2022-05-24 Commvault Systems, Inc. Deduplication system without reference counting
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
JP7476715B2 (ja) * 2020-08-07 2024-05-01 富士通株式会社 情報処理装置及び重複率見積もりプログラム
CN113885785B (zh) * 2021-06-15 2022-07-26 荣耀终端有限公司 一种数据去重方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070484A2 (en) * 2006-12-01 2008-06-12 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
WO2009087028A1 (en) * 2008-01-04 2009-07-16 International Business Machines Corporation Backing up a de-duplicated computer file-system of a computer system
US20090193219A1 (en) * 2008-01-29 2009-07-30 Hitachi, Ltd. Storage subsystem
US20090313248A1 (en) * 2008-06-11 2009-12-17 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US10394757B2 (en) * 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070484A2 (en) * 2006-12-01 2008-06-12 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
WO2009087028A1 (en) * 2008-01-04 2009-07-16 International Business Machines Corporation Backing up a de-duplicated computer file-system of a computer system
US20090193219A1 (en) * 2008-01-29 2009-07-30 Hitachi, Ltd. Storage subsystem
US20090313248A1 (en) * 2008-06-11 2009-12-17 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication

Also Published As

Publication number Publication date
JP5735654B2 (ja) 2015-06-17
US9542413B2 (en) 2017-01-10
WO2013051129A1 (ja) 2013-04-11
US20140229452A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
JP5735654B2 (ja) 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US9880746B1 (en) Method to increase random I/O performance with low memory overheads
US9633065B2 (en) Efficient data rehydration
CN104978151B (zh) 基于应用感知的重复数据删除存储系统中的数据重构方法
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
US9514138B1 (en) Using read signature command in file system to backup data
US8315985B1 (en) Optimizing the de-duplication rate for a backup stream
CN103098035B (zh) 存储系统
US9880759B2 (en) Metadata for data storage array
JP5434705B2 (ja) ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
CN107229420B (zh) 数据存储方法、读取方法、删除方法和数据操作系统
JP5719037B2 (ja) ストレージ装置及び重複データ検出方法
JP6598996B2 (ja) データ準備のためのシグニチャベースのキャッシュ最適化
TWI668626B (zh) 自主空間壓縮之儲存裝置以及方法
WO2017042978A1 (ja) 計算機システム、ストレージ装置、及びデータの管理方法
CN107135662B (zh) 一种差异数据备份方法、存储系统和差异数据备份装置
JP6598997B2 (ja) データ準備のためのキャッシュ最適化
US8914325B2 (en) Change tracking for multiphase deduplication
KR101652436B1 (ko) 분산파일 시스템에서의 중복 제거 장치 및 방법
US9170747B2 (en) Storage device, control device, and control method
CN106991020B (zh) 对图像级备份的文件系统对象的有效处理
WO2007099636A1 (ja) ファイルシステム移行方法、ファイルシステム移行プログラム及びファイルシステム移行装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150416

R150 Certificate of patent or registration of utility model

Ref document number: 5735654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees