JP2012523023A - 重複したデータを排除するストレージシステム - Google Patents

重複したデータを排除するストレージシステム Download PDF

Info

Publication number
JP2012523023A
JP2012523023A JP2011543014A JP2011543014A JP2012523023A JP 2012523023 A JP2012523023 A JP 2012523023A JP 2011543014 A JP2011543014 A JP 2011543014A JP 2011543014 A JP2011543014 A JP 2011543014A JP 2012523023 A JP2012523023 A JP 2012523023A
Authority
JP
Japan
Prior art keywords
data
storage
stored
server
target
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
JP2011543014A
Other languages
English (en)
Other versions
JP5303038B2 (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 JP2012523023A publication Critical patent/JP2012523023A/ja
Application granted granted Critical
Publication of JP5303038B2 publication Critical patent/JP5303038B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ストレージシステム103が行う重複排除の処理の性能を向上させる。
ストレージシステム103が、クライアント101からライト要求を受信したときに第一の重複排除処理を行い、その後、任意のタイミングで、第二の重複排除処理を行う。第一の重複排除処理では、記憶装置209に格納されているユーザデータ群である格納データ群の一部のいずれかの格納データにライト対象データが重複するか否かが判定され、その判定の結果が肯定的であれば、ライト対象データが記憶装置209に格納されないようにする。第二の重複排除処理では、第一の重複排除処理において重複するか否かの評価が完了していない対象格納データが、その他の格納データと重複するか否かが判定され、その判定の結果が肯定的であれば、対象格納データ又は対象格納データと重複する同一データが記憶装置209から削除される。

Description

本発明は、ストレージシステムに関し、特に、重複したデータを排除するための技術に関する。
近年、ストレージシステムの分野において、ユーザに意識させることなく、重複したデータを排除する技術(以下、「重複排除技術」)が注目されている。重複排除技術が適用されたストレージシステムは、仮想化層を配置することで重複データが排除されたことをユーザに隠蔽する。従って、重複排除技術が適用されることにより、ユーザは、従来どおりのアクセス方法でユーザデータにアクセスでき、それとともに、ストレージシステム内の有限のデータ格納領域を高効率に使用する事が可能となる。
重複排除の方式には、完全一致方式と非完全一致方式とがある。完全一致方式の例としては、クライアントから受信するI/O要求が、ブロックレベルである場合とファイルレベルである場合とがある。ブロックレベルである場合は、或るブロックデータの内容が他のブロックデータの内容と完全に一致した場合に重複データと判断され、その一方が排除される。ファイルレベルである場合は、或るファイルの内容が他のファイルの内容と完全に一致した場合に重複データと判断され、それらのファイルのうちの一方が排除される(例えば、特許文献1参照)。一方、非完全一致方式の例としては、クライアントから受信するI/O要求が、ファイル(特にコンテンツ)レベルである場合がある。コンテンツレベルである場合は、例えば、或るコンテンツと他のコンテンツのそれぞれの特徴点が抽出され、それらの特徴点の類似度が高い場合に重複データと判断される(例えば、特許文献2参照)。
米国特許第5,732,265号明細書 特開2005−274991号公報
従来の重複排除方式では、重複排除の処理の対象となるデータが、重複する可能性のある全てのデータと重複するか否かの比較が行われるため、例えば比較対象のデータのデータ数やデータサイズが膨大である場合には、処理性能が著しく低下してしまう。
また、比較対象のデータのデータ数が膨大である場合は、キャッシュミスする可能性が高く、そのため低速のメタデータインデックスを参照する必要があるが、これに伴い処理性能が著しく低下することがある。
一方、比較対象のデータのデータ数が膨大である場合に、複数のストレージ装置に分散させて処理を行わせることで、処理性能を向上させることができるが、いずれにしてもキャッシュではなくディスク上の情報を参照して重複排除の処理が行われるため、大幅な性能改善は困難である。
そこで、本発明の目的は、重複排除の処理の性能を向上させることである。
ストレージシステムが、クライアントからライト要求を受信したときに第一の重複排除処理を行い、その後、任意のタイミングで、第二の重複排除処理を行う。第一の重複排除処理では、記憶装置に格納されているユーザデータ群である格納データ群の一部のいずれかの格納データにライト対象データが重複するか否かが判定され、その判定の結果が肯定的であれば、ライト対象データが記憶装置に格納されないようにする。第二の重複排除処理では、第一の重複排除処理において重複するか否かの評価が完了していない対象格納データが、その他の格納データと重複するか否かが判定され、その判定の結果が肯定的であれば、対象格納データ又は対象格納データと重複する同一データが記憶装置から削除される。
コントローラは、プロセッサを有し、プロセッサが、コンピュータプログラムを実行することにより、各処理を行ってもよい。コンピュータプログラムは、遠隔のサーバからインストールされても良いし、記憶媒体(例えば、CD−ROM、DVD(Digital Versatile Disk)などの可搬型の記憶媒体)からインストールされても良い。コントローラの少なくとも一部が、ハードウェア回路で実現されても良い。
実施例1に係る計算機システムの構成例を示す図である。 ストレージサーバのハードウェア構成例を示す図である。 ストレージサーバのソフトウェア構成例を示す図である。 ユーザデータ管理情報の一例を示す図である。 付加データを説明する図である。 全リスト情報の一例を示す図である。 同期重複排除処理用情報の一例を示す図である。 ライト要求処理部が行う処理のフローチャートである。 完全一致方式の同期重複排除処理のフローチャートである。 第一の非完全一致方式の同期重複排除処理のフローチャートである。 第二の非完全一致方式の同期重複排除処理のフローチャートである。 第一のモニタ処理のフローチャートである。 完全一致方式の非同期重複排除処理のフローチャートである。 非完全一致方式の非同期重複排除処理のフローチャートである。 ランク更新処理のフローチャートである。 重複排除処理のための設定画面の一例を示す図である。 モニタ画面の一例を示す図である。 実施例2に係るストレージシステムの構成例を示す図である。 実施例2に係るストレージサーバのソフトウェア構成例を示す図である。 サーバ管理情報の一例を示す図である。 実施例2に係るライト要求処理部が行う処理のフローチャートである。 データ担当サーバが行うデータ格納処理のフローチャートである。 実施例2に係る非重複データ又は重複不明データの登録処理のフローチャートである。 名前担当サーバが行う名前格納処理のフローチャートである。 第二のモニタ処理のフローチャートである。 サーバ分割処理のフローチャートである。 サーバ統合処理のフローチャートである。
以下、図面を参照しながら、本発明の幾つかの実施例を説明する。
図1は、実施例1に係る計算機システムの構成例を示す図である。
一以上のクライアント101とストレージシステム103とが、通信ネットワーク102を介して接続される。通信ネットワーク102は、例えば、IP(Internet Protocol)ネットワークやFC(Fibre Channel)ネットワーク等である。
クライアント101は、ストレージシステム103に対して、I/O要求(リード要求又はライト要求)を送信するコンピュータである。I/O要求には、例えば、ファイル(コンテンツを含む)レベルのI/O要求とブロックレベルのI/O要求とがある。ファイルレベルのI/O要求は、I/O要求の対象となるユーザデータをファイル単位で指定して、その指定されたユーザデータ(ファイル)のI/Oを要求するものである。ファイルレベルのI/O要求では、I/Oの対象となるユーザデータ(ファイル)が、その格納先を示す論理パスにより指定される。以下、ファイル単位のユーザデータの格納先を示す論理パスを、「グローバルパス」と呼ぶ。一方、ブロックレベルのI/O要求は、I/O要求の対象となるユーザデータをブロック単位で指定して、その指定されたユーザデータ(ブロックデータ)のI/Oを要求するものである。ブロックレベルのI/O要求では、I/Oの対象となるユーザデータ(ブロックデータ)が、論理ブロック番号により指定される。以下の説明では、主に、クライアント101から受信するI/O要求がファイルレベルのI/O要求である場合を例に挙げて説明するが、ブロックレベルのI/O要求である場合にも適用可能である。
ストレージシステム103は、ストレージサーバ201を備えている。本実施例では、一つのストレージサーバ201が、ストレージシステム103に備えられているものとする。以下、図2〜図6を参照して、ストレージサーバ201の構成を説明する。
図2は、ストレージサーバ201のハードウェア構成例を示す図である。
ストレージサーバ201は、例えば、CPU(Central Processing Unit)202と、メモリコントローラ203と、メモリ204と、入出力コントローラ205と、ネットワークコントローラ206と、ネットワークポート207と、ディスクコントローラ208と、ディスク209とを備える。各部202〜209は、例えば図2に示されるように接続される。即ち、CPU202、メモリ204及び入出力コントローラ205が、メモリコントローラ203に接続される。また、ネットワークコントローラ206及びディスクコントローラ208が、入出力コントローラ205に接続される。そして、ネットワークポート207が、ネットワークコントローラ206に接続され、ディスク209が、ディスクコントローラ208に接続される。
なお、ディスク209は、複数備えられてもよい。また、一のディスク209或いは複数のディスク209のうちの一以上が、外部ディスク(ストレージサーバ201に外付けされたディスク)とされてもよい。ストレージサーバ201と外部ディスクとは、例えば、IPネットワークやFCネットワーク等を介して接続される。
図3は、ストレージサーバ201のソフトウェア構成例を示す図である。
ストレージサーバ201は、例えば、同期重複排除処理部301と、非同期重複排除処理部302と、リスト管理処理部303と、モニタ処理部304と、設定処理部305と、ライト要求処理部306を備える。ストレージサーバ201のメモリ204には、各処理部301〜306の機能を実現するための種々のコンピュータプログラムが格納される。ストレージサーバ201のCPU202は、メモリ204に格納された種々のプログラムを実行することにより、各処理部301〜306の機能を実現する。各処理部301〜306が行う具体的な処理については、後述する。
メモリ204には、同期重複排除処理が行われる際に参照される同期処理用情報307が格納される。なお、同期処理用情報307は、ディスク209と比較してより高速にアクセスできるデバイスに格納されていればよい。従って、同期処理用情報307は、メモリ204に限らず、例えば、SSD(Solid State Drive)に格納されてもよい。
また、ディスク209には、クライアント101が書き込みを要求したユーザデータに加えて、例えば、ユーザデータ管理情報310と、全リスト情報311と、フィンガープリントデータ312とが格納される。フィンガープリントデータ312は、ユーザデータからその特徴点を抽出することにより得られたデータであり、ユーザデータの特徴を示したデータである。ストレージサーバ201は、対象とするユーザデータのフィンガープリントデータ312を、ストレージサーバ201の外部から取得することもできるし、自ら生成することもできる。
本実施例に係るストレージサーバ201は、記憶装置(本実施例ではディスク209)に同一内容のユーザデータが重複して記憶されないようにするための処理(以下、「重複排除処理」)を行う。本実施例における重複排除処理には、ライト要求を受信したタイミングで行われる重複排除処理(以下、「同期重複排除処理」)と、ライト要求の受信とは別の任意のタイミングで行われる重複排除処理(以下、「非同期重複排除処理」)との二種類がある。同期重複排除処理は、同期重複排除処理部301により行われ、非同期重複排除処理は、非同期重複排除処理部302により行われる。
重複排除処理では、二つのユーザデータ(同期重複排除処理の場合は、ライト対象のユーザデータ及び選択された一つのユーザデータであり、非同期排除処理の場合は、選択された二つのユーザデータ)が比較され、それらのユーザデータが、同一か否かが判定される。本実施例における重複排除処理では、二つのユーザデータのデータ内容が完全に一致した場合に、或いはデータ内容に不一致部分があっても類似性が高く実質的に同じと判断できる場合に、両ユーザデータが、同一と判定される。以下、データ内容が完全に一致するか否かを判定することによりユーザデータが同一であるか否かを判定する方式を「完全一致方式」と呼び、実質的に同じと判断できるか否かを判定することによりユーザデータが同一であるか否かを判定する方式を「非完全一致方式」と呼ぶ。非完全一致方式の重複排除処理では、具体的には、例えば付加データや特徴データに基づいて、実質的に同じと判断できるか否かが判定される。ここで、「付加データ」とは、ユーザデータ(ユーザデータ本体)に付加されたデータ、例えば、ユーザデータの属性を示すもの(メタデータやタグデータ等)のことをいう。「特徴データ」とは、ユーザデータの特徴を示したデータ、例えば、フィンガープリントデータ312のことをいう。例えば、完全一致方式の重複排除処理は、クライアント101から受信するI/O要求がファイルレベルのI/O要求及びブロックレベルのI/O要求のいずれの場合でも、採用することができる。一方、非完全一致方式の重複排除処理は、クライアント101から受信するI/O要求がファイル(特にコンテンツ)レベルのI/O要求の場合に採用することができる。
図4は、ユーザデータ管理情報310の一例を示す図である。
ユーザデータ管理情報310には、例えば、グローバルパスを管理するための情報であるグローバルパス管理テーブル401と、ローカルパスを管理するための情報であるローカルパス管理テーブル402とが含まれる。ここで、「ローカルパス」とは、ストレージシステム103内で参照される、データの格納先を示す物理パスのことをいう。
グローバルパス管理テーブル401には、ライト済みデータごとに、そのライト済みデータについての、グローバルパスと、名前ハッシュ値と、データハッシュ値と、データIDとが対応付けて記憶される。ここで、「ライト済みデータ」とは、クライアント101がライト要求を送信することでストレージサーバ201に書き込んだユーザデータ、即ち、正常に処理されたライト要求の対象とされたユーザデータのことをいう。ライト済みデータは、実際にディスク209に格納されているユーザデータ(以下、「格納データ」)のうちのいずれかに対応する。ライト済みデータと格納データとの対応付けは、データIDにより管理される。即ち、ライト済みデータのデータID(グローバルパス管理テーブル401により管理されているもの)と格納データのデータID(ローカルパス管理テーブル402により管理されているもの)とが同じである場合は、それらのデータは対応するものとなる。なお、クライアント101から受信するI/O要求がブロックレベルのI/O要求である場合は、グローバルパスに代えて論理ブロック番号が記憶される。
名前ハッシュ値は、グローバルパスから生成されたハッシュ値である。名前ハッシュ値は、実施例2において利用される。従って、本実施例において、名前ハッシュ値は、必ずしもグローバルパス管理テーブル401に含まれていなくともよい。データハッシュ値は、ユーザデータ或いは付加データ(メタデータやタグデータ等)から生成されたハッシュ値である。完全一致方式が採用される場合は、ユーザデータから生成されたハッシュ値が、データハッシュ値とされる。一方、非完全一致方式が採用される場合は、付加データから生成されたハッシュ値が、データハッシュ値とされる。なお、以下の説明においても同様に、「データハッシュ値」とは、完全一致方式が採用される場合は、ユーザデータから生成されたハッシュ値をいい、非完全一致方式が採用される場合は、付加データから生成されたハッシュ値をいうものとする。
ここで、図5を参照して、メタデータ7とタグデータ8について簡単に説明する。いずれのデータ7,8もユーザデータ本体9に付加されたデータであり、ユーザデータ本体9の属性を示すデータである。図5に示されるように、メタデータ7は、ユーザデータ本体9に外的に付加されたデータである。ユーザデータは、メタデータ7とユーザデータ本体9とから構成される。一方、タグデータ8は、ユーザデータ本体9の内部に含まれるデータ(内的に付加されたデータ)である。例えば、ユーザデータがmp3ファイルである場合はアーティスト名等、ユーザデータがWordファイルである場合は作成者情報等が、タグデータ8となる。
ローカルパス管理テーブル402には、格納データ(ディスク209に格納されているデータ)ごとに、その格納データについての、データIDと、データハッシュ値と、重複数と、全体評価フラグと、リスト世代番号と、同期評価最大ランクと、ローカルパスと、フィンガープリントデータパスとが対応付けて記憶される。なお、クライアント101から受信するI/O要求がブロックレベルのI/O要求である場合は、ローカルパスに代えて物理ブロック番号が記憶される。
重複数は、格納データの重複数であり、具体的には、対応する格納データ(以下、「対応格納データ」)をデータ内容とするライト済みデータの数、即ち、対応格納データに対応するライト済みデータの数である。図4の例では、例えば、データIDが“100”の格納データは、グローバルパスが“/groot/user1/data1”のライト済みデータとグローバルパスが“/groot/user2/data1”のライト済みデータとの二つに対応しているため(グローバスパス管理テーブル401参照)、その重複数は、“2”とされている。全体評価フラグは、対応格納データが、他の全ての格納データとの間で比較(同一か否かの判定)が完了したか否かを示す情報である。本実施例では、全体評価フラグは、他の全ての格納データとの間で比較が完了した場合は“Y”とされ、他の全ての格納データとの間で比較が完了していない場合は“N”とされる。リスト世代番号は、対応格納データについての同期重複排除処理が、どの世代のリストに基づいて行われたかを示す情報である。同期評価最大ランクは、同期重複排除処理において、どのランクの格納データまで比較が完了したかを示す情報である。フィンガープリントデータパスは、フィンガープリントデータ312の格納先を示すパスである。
図6は、全リスト情報311の一例を示す図である。
全リスト情報311は、全部又は一部の格納データについて、それぞれに付与されたランクを世代ごとに示した情報である。ここで、「ランク」とは、重複排除処理において比較の対象とされる格納データ(以下、「比較対象データ」)を選択する際に参照される順位である。本実施例では、ランクのより高い格納データから順に、比較対象データとして選択される。また、同期重複排除処理では、ランクのより高いものから順に抽出された所定数の格納データが、比較対象データの候補(以下、「比較候補」)とされ、比較候補の中から比較対象データが選択される。即ち、同期重複排除処理では、比較候補が一部の格納データ(よりランクの高いもの)に限定され、それにより処理負荷が軽減される。比較候補の数は、ストレージサーバ201が予め保持している値とされてもよいし、管理者により後から設定された値とされてもよい。
ランクは、リスト管理処理部303により付与される。リスト管理処理部303は、例えば、重複する可能性が高いと見込まれる格納データに対して、より高いランクを付与することができる。重複する可能性が高いと見込まれるデータとしては、例えば、(A)ランキング(例えば、外部で提供されるヒットチャートや視聴率等)が上位のデータ、(B)重複数が大きいデータ、(C)最近格納されたデータ、(D)ライト/リード比率の高いデータ、(E)フォーマットパターン等の登録データ等が考えられる。また、リスト管理処理部303は、重複排除処理により得られる効果(ディスク209の使用率の削減効果)が大きいデータに対して、より高いランクを付与することもできる。重複排除処理により得られる効果が大きいデータとしては、例えば、ファイルサイズの大きいデータ等が考えられる。ランクは、定期的又は不定期的に更新され、ランクが更新されるごとに、世代が次の世代に移行する。なお、本実施例では、ランクの値が小さいものほど、ランクが高いことを示している。
図6に示されるように、全リスト情報311には、各世代で存在している格納データごとに、その格納データのデータIDと、その格納データに付与されたランクと、そのランクが付与された世代の世代番号とが対応付けて記憶される。
図7は、同期重複排除処理用情報307の一例を示す図である。
同期重複排除処理用情報307は、上述したように、同期重複排除処理が行われる際に参照される情報である。同期重複排除処理用情報307には、例えば、部分リスト情報601と、サマリビットマップ602と、キャッシュ情報603とが含まれる。
部分リスト情報601は、比較候補(比較候補のデータID)を、最新の世代のランク順にリスト化した情報である。部分リスト情報601には、データハッシュ値ごとの比較候補のランク順のリスト(以下、「第一のランク順リスト」)611と、データハッシュ値全体についての比較候補のランク順のリスト(以下、「第二のランク順リスト」)621とが含まれる。
サマリビットマップ602は、同期重複排除処理の対象となるユーザデータ(ライト対象のユーザデータ)が格納データのいずれとも重複しないデータであるか否かを瞬時に判断するために参照されるデータである。サマリビットマップ602には、ハッシュ空間に含まれるデータハッシュ値ごとに、ハッシュ値を生成した場合にそのデータハッシュ値となる格納データが存在するか否かを示すビット値が記憶される。本実施例では、そのデータハッシュ値となる格納データが存在する場合には、ビット値が“T(TRUE)”とされ、そのデータハッシュ値となる格納データが存在しない場合には、ビット値が“F(FALSE)”とされる。
キャッシュ情報603は、ディスク209に格納されている、全部又は一部のユーザデータ(即ち、格納データ)のコピーデータ、及び/又は、全部又は一部のフィンガープリントデータ(図7では“FP”と表記している)312のコピーデータである。図3に示したように、同期重複排除処理用情報307は、メモリ204上に格納されるため、キャッシュ情報603内のデータには、高速なアクセスが可能である。キャッシュ情報603に含まれる格納データは、例えば比較候補の全てであってもよいし、比較候補の一部であってもよい。
図8は、ライト要求処理部306が行う処理のフローチャートである。
ストレージサーバ201がクライアント101からライト要求を受信すると、ライト要求処理部306は、ライト対象のユーザデータ(以下、「ライト対象データ」)が同期重複排除処理の非適用条件(以下、「同期非適用条件」)に合致しているか否かを判定する(S101、S102)。ここで、「同期非適用条件」とは、ライト対象データについて同期重複排除処理を行うか否かを決定するために用いられる条件のことである。本実施例では、ライト対象データが同期非適用条件に合致した場合は、そのライト対象データについて同期重複排除処理は行われない。同期非適用条件の一例としては、例えば、データサイズが大サイズであることや、ライト対象データが暗号化されたデータであること等が挙げられる。大サイズのデータや暗号化されたデータについては、重複排除処理に或る程度の時間を要することから、ライト要求の受信と非同期で重複排除処理が行われること(即ち、非同期重複排除処理が行われること)が望まれるからである。
ライト対象データが同期非適用条件に合致した場合は(S102:YES)、その後、ステップS106の処理が行われる。
一方、ライト対象データが同期非適用条件に合致しなかった場合は(S102:NO)、ライト対象データについて同期重複排除処理が行われる(S103)。同期重複排除処理が行われることにより、ライト対象データが、格納データのいずれかと重複する(同一の)データ(以下、「重複データ」)であるか、或いは格納データのいずれとも重複しない(非同一の)データ(以下、「非重複データ」)であるかが判定される。なお、同期重複排除処理だけでは、重複データとも非重複データとも判定できない場合もある。何故ならば、同期重複排除処理では、ライト対象データと比較されるユーザデータが、格納データの一部(比較候補)に限定されているからである。同期重複排除処理において、重複データとも非重複データとも判定されなかったデータ(以下、「重複不明データ」)は、非同期重複判定処理の対象とされる。同期重複排除処理の詳細については、後に図9〜図11を参照して説明する。
同期重複排除処理において、ライト対象データが重複データであると判定された場合は(S104:YES)、ライト要求処理部306は、ライト対象データを重複データとして登録する処理を行う(S107)。
具体的には、ライト要求処理部306は、グローバルパス管理テーブル401にライト対象データに関するエントリを追加する。この追加されたエントリのデータIDは、ライト対象データと同一と判定された格納データ(以下、「同一データ」)のデータIDとされる。そして、ローカルパス管理テーブル402における、同一データの重複数が、1増やされる。
また、同期重複排除処理において、ライト対象データが重複不明データであると判定された場合は(S104:NO且つS105:NO)、その後、ステップS106の処理が行われる。
ステップS106では、ライト要求処理部306は、ライト対象データが非同期重複排除処理の非適用条件(以下、「非同期非適用条件」)に合致しているか否かを判定する(S106)。ここで、「非同期非適用条件」とは、ライト対象データについて非同期重複排除処理を行うか否かを決定するために用いられる条件のことである。本実施例では、ライト対象データが非同期非適用条件に合致した場合は、そのライト対象データについて非同期重複排除処理は行われない。非同期非適用条件の一例としては、例えば、データサイズが極小サイズであることや、ライト対象データが暗号化されたデータであること等が挙げられる。
また、同期重複排除処理において、ライト対象データが非重複データであると判定された場合(S104:NO且つS105:YES)或いはライト対象データが非同期非適用条件に合致した場合は(S106:YES)、ライト要求処理部306は、ライト対象データを非重複データとして登録する処理を行う(S108)。
具体的には、まず、ライト対象データがディスク209に格納され、その格納されたデータにデータIDが割り当てられる。そして、ライト要求処理部306は、サマリビットマップ602における、ライト対象データのデータハッシュ値に対応するビット値を“TRUE”に変更する。また、ライト要求処理部306は、グローバルパス管理テーブル401及びローカルパス管理テーブル402のそれぞれに、ライト対象データに関するエントリを追加する。
グローバルパス管理テーブル401に追加されたエントリ(以下、「グローバル追加エントリ」)及びローカルパス管理テーブル402に追加されたエントリ(以下、「ローカル追加エントリ」)のそれぞれのデータIDは、ディスク209に格納されたライト対象データに割り当てられたデータIDとされる。また、グローバル追加エントリのグローバルパスは、ライト対象データの格納先を示すグローバルパスとされる。また、ローカル追加エントリのローカルパスは、ライト対象データの格納先を示すローカルパスとされる。ローカル追加エントリの重複数は“1”とされ、ローカル追加エントリの全体評価フラグは“Y”とされる。ローカル追加エントリのリスト世代番号は、同期重複排除処理が行われた時点で最新の世代番号とされ、ローカル追加エントリの同期評価最大ランクは、比較対象データ(同期重複排除処理において比較の対象とされた格納データ)に付与されているランクのうち最も低いランクとされる。なお、ライト対象データに関するフィンガープリントデータ312が存在する場合は、そのフィンガープリントデータ312もディスク209に格納される。ローカル追加エントリのフィンガープリントデータパスは、ライト対象データに関するフィンガープリントデータ312の格納先を示すパスとされる。
ステップS106の判定において、ライト対象データが非同期非適用条件に合致しなかった場合は(S106:NO)、ライト要求処理部306は、ライト対象データを重複不明データとして登録する処理を行う(S109)。ステップS109の処理は、ステップS108の処理と以下の点を除いて同じである。即ち、重複不明データである場合は、ローカル追加エントリの全体評価フラグは“N”とされる。
図9は、完全一致方式の同期重複排除処理のフローチャートである。
図9〜図11の処理は、いずれも図8におけるステップS103で行われる処理である。完全一致方式が採用される場合は、図9の処理が行われ、非完全一致方式が採用される場合は、図10又は図11の処理が行われる。
まず、同期重複排除処理部301は、ライト対象データからデータハッシュ値を生成する(S201)。以下、このステップS201で生成されたデータハッシュ値を、「対象ハッシュ値」と呼ぶ。
次に、同期重複排除処理部301は、サマリビットマップ602における、対象ハッシュ値に対応するビット値が“FALSE”であるか否かを判定する(S202)。
対象ハッシュ値に対応するビット値が“FALSE”の場合は(S202:YES)、同期重複排除処理部301は、ライト対象データを非重複データと判定する。即ち、この場合は、格納データとの比較が行われることなく、ライト対象データは、直ちに非重複データであると判定される。何故ならば、対象ハッシュ値に対応するビット値が“FALSE”であることから、データハッシュ値が同一となる格納データが存在しないこと、即ち、同一の格納データが存在しないことがわかるからである。
一方、対象ハッシュ値に対応するビット値が“TRUE”の場合は(S202:NO)、同期重複排除処理部301は、部分リスト情報601から対象ハッシュ値に関する第一のランク順リストを取得する(S203)。例えば、図7の例であれば、対象ハッシュ値が“0x0f”の場合は、“102”と“101”のデータIDを含んだ第一のランク順リストが得られる。このステップS203で得られた第一のランク順リストに含まれるデータIDを持つ格納データのそれぞれが、比較候補とされる。
その後、同期重複排除処理部301は、ステップS203で得られた第一のランク順リストに含まれるデータID(その格納データが既にライト対象データと比較されたものを除く)の中から、そのランクが最上位のものを選択する(S204)。このステップS204で選択されたデータIDを持つ格納データが、比較対象データとされる。
その後、同期重複排除処理部301は、ライト対象データと比較対象データとを比較して、両データが同一であるか否か(ここではデータ内容が完全に一致するか否か)を判定する(S205)。比較対象データがキャッシュ情報603に含まれている場合は、キャッシュ情報603内の比較対象データを用いて同一か否かが判定される。これにより、ディスク209から比較対象データを読み出して比較する場合に比べて、高速に比較処理を行うことができる。一方、比較対象データがキャッシュ情報603に含まれていない場合は、比較対象データがディスク208から読み出され、その読み出された比較対象データを用いて同一か否かが判定される。なお、データの比較に際して、データ全体を比較する前処理として、両データに関するフィンガープリントデータ312が一致するか否かが判定されてもよい。仮に両データに関するフィンガープリントデータ312が一致しなかった場合は、データ全体を比較することなく、両データは同一でないと判定することができる。
ライト対象データと比較対象データとが同一であると判定された場合は(S205:YES)、同期重複排除処理部301は、ライト対象データを重複データと判定する(S209)。
一方、ライト対象データと比較対象データとが同一でないと判定された場合は(S205:NO)、同期重複排除処理部301は、比較候補の全てと比較が完了したか否かを判定する(S206)。
比較候補の全てと比較が完了していない場合は(S206:NO)、同期重複排除処理部301は、次にランクが上位のデータIDを選択し(S204)、その選択されたデータIDを持つ格納データを比較対象データとして、ライト対象データと比較する。
一方、比較候補の全てと比較が完了している場合は(S206:YES)、同期重複排除処理部301は、ライト対象データを、重複不明データと判定する(S207)。
図10は、第一の非完全一致方式の同期重複排除処理のフローチャートである。
第一の非完全一致方式の同期重複排除処理は、非完全一致方式が採用される場合に行われる処理であり、特に、重複する可能性のあるデータを付加データを参照することで或る程度絞り込むことができる場合に行なわれる処理である。
図10の処理は、ステップS301及びS302以外のステップ(図9と同一符号が付されているステップ)は、図9の処理と実質的に同じである。以下、図9との主な相違点について説明する。
ステップS301では、同期重複排除処理部301は、付加データからデータハッシュ値を生成する。また、ステップS302では、同期重複排除処理部301は、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とを比較して、ライト対象データと比較対象データとが同一であるか否か(ここでは実質的に同じと判断できるか否か)を判定する。具体的には、同期重複排除処理部301は、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが一致した場合に、ライト対象データと比較対象データとが同一であると判定する。なお、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが、完全に一致しなくとも、ある程度の確率以上で一致した場合に、ライト対象データと比較対象データとが同一であると判定されてもよい。
図11は、第二の非完全一致方式の同期重複排除処理のフローチャートである。
第二の非完全一致方式の同期重複排除処理は、非完全一致方式が採用される場合に行われる処理であり、特に、重複する可能性のあるデータを付加データを参照しても絞り込むことが困難な場合に行なわれる処理である。
まず、同期重複排除処理部301は、部分リスト情報601から第二のランク順リストを取得する(S401)。このステップS401で得られた第二のランク順リストに含まれるデータIDを持つ格納データのそれぞれが、比較候補とされる。
次に、同期重複排除処理部301は、ステップS401で得られた第二のランク順リストに含まれるデータID(その格納データに関するフィンガープリントデータ312が既にライト対象データに関するフィンガープリントデータ312と比較されたものを除く)の中から、そのランクが最上位のものを選択する(S402)。このステップS402で選択されたデータIDを持つ格納データが、比較対象データとされる。
その後、同期重複排除処理部301は、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とを比較して、ライト対象データと比較対象データとが同一であるか否か(ここでは実質的に同じと判断できるか否か)を判定する(S403)。具体的には、同期重複排除処理部301は、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが一致した場合に、ライト対象データと比較対象データとが同一であると判定する。なお、ライト対象データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが、完全に一致しなくとも、ある程度の確率以上で一致した場合に、ライト対象データと比較対象データとが同一であると判定されてもよい。
ライト対象データと比較対象データとが同一であると判定された場合は(S403:YES)、同期重複排除処理部301は、ライト対象データを重複データと判定する(S406)。
一方、ライト対象データと比較対象データとが同一でないと判定された場合は(S403:NO)、同期重複排除処理部301は、比較候補の全てと比較が完了したか否かを判定する(S404)。
比較候補の全てと比較が完了していない場合は(S404:NO)、同期重複排除処理部301は、次にランクが上位のデータIDを選択し(S402)、その選択されたデータIDを持つ格納データを比較対象データとして、ライト対象データと比較する。
一方、比較候補の全てと比較が完了している場合は(S404:YES)、同期重複排除処理部301は、ライト対象データを、重複不明データと判定する(S405)。
図12は、第一のモニタ処理のフローチャートである。
第一のモニタ処理は、非同期重複排除処理を実行するか否かを決定するためにモニタ処理部304により行われる処理である。モニタ処理部304は、任意のタイミングで第一のモニタ処理を行うことができるが、以下では、定期的に(例えば、数時間或いは数週間おきに)行われる場合を例に挙げて説明する。
モニタ処理部304は、一定期間(例えば、数時間或いは数週間等)待機した後(S501)、現在の重複排除率を計算する(S502)。ここで、「重複排除率」とは、どの程度、重複記憶が排除されているかを示す値であり、具体的には、その時点で存在する重複データの数に対する、重複排除された重複データ(即ち、ディスク209に格納されることが回避された或いはディスク209から削除された重複データ)の数の割合で示されるものである。例えば、重複排除率は、全ての重複データが排除されている場合に100%、重複データが全く排除されていない場合に0%とされる。モニタ処理部304は、例えば、グローバルパス管理テーブル401及びローカルパス管理テーブル402に基づいて、重複排除率を計算することができる。
次に、モニタ処理部304は、ステップS502で計算された重複排除率が所定の目標値(以下、「重複排除目標値」)以下であるか否かを判定する(S503)。
重複排除率が重複排除目標値よりも大きい場合は(S503:NO)、非同期重複処理は行われずに、モニタ処理部304は、一定期間待機する(S501)。
一方、重複排除率が重複排除目標値以下である場合は(S503:YES)、モニタ処理部304は、クライアント101からのアクセス負荷(CPU使用率やI/O量等から算出されたアクセス負荷を示す値)が所定の閾値(以下、「アクセス負荷閾値」)以下であるか否かを判定する(S504)。
アクセス負荷がアクセス負荷閾値よりも大きい場合は(S504:NO)、非同期重複処理は行われずに、モニタ処理部304は、一定期間待機する(S501)。
一方、アクセス負荷がアクセス負荷閾値以下である場合は(S504:YES)、非同期重複排除処理部302により、非同期重複排除処理が行われる(S505)。つまり、重複排除率が或る程度低く、且つ、アクセス負荷が低い場合に、非同期重複排除処理が行われる。同期重複排除処理の詳細については、後に図13及び図14を参照して説明する。
非同期重複排除処理の終了後、モニタ処理部304は、全格納データのそれぞれについて他の全ての格納データとの間で比較(同一か否かの判定)が完了したか否か(即ち、ローカル管理テーブル402において全体評価フラグが“N”の格納データが存在しなくなったか否か)を判定する(S506)。
全格納データのそれぞれについて他の全ての格納データとの間で比較が完了していない場合は(S506:NO)、モニタ処理部304は、再度ステップS502〜S505の処理を行う。
一方、全格納データのそれぞれについて他の全ての格納データとの間で比較が完了した場合は(S506:YES)、その後、モニタ処理部304は、一定期間待機する(S501)。
図13は、完全一致方式の非同期重複排除処理のフローチャートである。
まず、非同期重複排除処理部302は、ローカルパス管理テーブル402を参照して、全体評価フラグが“N”となっている格納データの中から、リスト世代番号が最も小さいものを一つ選択する(S601)。以下、このステップS601で選択された格納データを「選択データ」と呼ぶ。また、選択データのリスト世代番号を「選択世代番号」と呼び、選択データの同期評価最大ランクを「選択ランク」と呼ぶ。
次に、非同期重複排除処理部302は、比較対象データを選択する(S602)。具体的には、非同期重複排除処理部302は、全リスト情報311を参照して、そのリスト世代番号が選択世代番号であり、且つ、そのランクが選択ランクよりも大きいエントリを一つ選択する。このステップS602で選択されたエントリのデータIDを持つ格納データが、比較対象データとされる。図4、図6の例であれば、全体評価フラグが“N”である、データIDが“300”の格納データが、選択データとされる(図4参照)。従って、選択世代番号は“2”となり、選択ランクは“4”となる(図4参照)。よって、そのリスト世代番号が“2”であり、且つ、そのランクが“4”よりも大きい格納データである、データIDが“104”の格納データが、比較対象データとされる(図6参照)。
次に、非同期重複排除処理部302は、選択データ及び比較対象データのそれぞれのデータハッシュ値をテーブルより取得する(S603)。
その後、非同期重複排除処理部302は、選択データのデータハッシュ値と比較対象データのデータハッシュ値とが一致するか否かを判定する(S604)。
両データハッシュ値が一致しなかった場合は(S604:NO)、その後、ステップS608の処理が行われる。
一方、両データハッシュ値が一致した場合は(S604:YES)、非同期重複排除処理部302は、選択データと比較対象データとを比較して、両データが同一であるか否か(ここではデータ内容が完全に一致するか否か)を判定する(S605)。
選択データと比較対象データとが同一でないと判定された場合は(S605:NO)、その後、ステップS607の処理が行われる。
一方、選択データと比較対象データとが同一であると判定された場合は(S605:YES)、非同期重複排除処理部302は、選択データをディスク209から削除する処理を行う(S606)。具体的には、非同期重複排除処理部302は、グローバルパス管理テーブル401における、選択データに対応するライト済みデータのデータIDを、比較対象データのデータIDに変更する。また、非同期重複排除処理部302は、ローカルパス管理テーブル402における、比較対象データの重複数を1増やす。そして、非同期重複排除処理部302は、選択データ及び選択データに関するフィンガープリントデータ312をディスク209から削除する。また、非同期重複排除処理部302は、ローカルパス管理テーブル402から選択データのエントリを削除する。
ステップS607では、比較対象データを更に選択可能か否かが判定される。比較対象データを更に選択できる場合は(S607:YES)、再度ステップS602以降の処理が行われる。
一方、比較対象データを更に選択できない場合は(S607:NO)、非同期重複排除処理部302は、ローカルパス管理テーブル402における、選択データの全体評価フラグを“Y”に変更する(S608)。
図14は、非完全一致方式の非同期重複排除処理のフローチャートである。
図14の処理において、図13と同一符号が付されているステップは、図13の処理と実質的に同じである。即ち、図14の処理では、図13におけるステップS603〜S605に代えてステップS701が行われる。
ステップS701では、非同期重複排除処理部302は、選択データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とを比較して、選択データと比較対象データとが同一であるか否か(ここでは実質的に同じと判断できるか否か)を判定する。具体的には、非同期重複排除処理部302は、選択データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが一致した場合に、選択データと比較対象データとが同一であると判定する。なお、選択データに関するフィンガープリントデータ312と比較対象データに関するフィンガープリントデータ312とが、完全に一致しなくとも、ある程度の確率以上で一致した場合に、選択データと比較対象データとが同一であると判定されてもよい。
図15は、ランク更新処理のフローチャートである。
ランク更新処理は、定期的又は不定期的に実行される。ランクが更新されることに伴って、全リスト情報311及び同期重複排除処理用情報307の内容が更新される。
上述したように、ランクは、例えば、重複する可能性の高さや、重複排除処理により得られる効果の大きさに基づいて決定されるが、本実施例では、重複数に基づいて決定されるものとする。
まず、リスト管理処理部303は、ローカルパス管理テーブル402で管理される格納データを、重複数の大きいものから順にソートする(S801)。
次に、リスト管理処理部303は、重複数の大きいものほどより高いランクが付与されるように、ステップS801でソートされた格納データのそれぞれにランクを付与する(S802)。
その後、リスト管理処理部303は、ステップS802で新たに付与されたランクに関する情報を全リスト情報311に登録する(S803)。具体的には、格納データのそれぞれについて、そのデータIDと、その格納データに新たに付与されたランクと、リスト世代番号との組み合わせからなるエントリを、全リスト情報311に追加する。この際、リスト世代番号は、新たな世代を示す番号(現在のリスト世代番号に1加えた番号)とされる。
その後、リスト管理処理部303は、更新後の全リスト情報311の内容(最新世代のランク順)に合わせて、同期重複排除処理用情報307(部分リスト情報601及びキャッシュ情報603)の内容を更新する(S804)。
図16は、重複排除処理のための設定画面1600の一例を示す図である。
同図に示されるように、重複排除処理のための設定画面1600には、例えば、入力フィールド(1)〜(5)が設けられる。
入力フィールド(1)は、重複排除処理の処理タイプを設定するためのフィールドである。処理タイプとしては、例えば、クライアント101から受信するI/O要求が、ブロックレベルのI/O要求であるかファイルレベルのI/O要求であるかや、重複排除処理における同一か否かの判定方式が、完全一致方式であるか非完全一致方式であるか等がある。入力フィールド(2)は、重複排除目標値を設定するためのフィールドである。入力フィールド(3)は、比較候補の数(同期重複排除処理において比較の対象とされる格納データの数)を設定するためのフィールドである。入力フィールド(4)は、ランクを付与する際の基準(例えば、重複数の大きさ等)を設定するためのフィールドである。入力フィールド(5)は、ランクを付与する際に参照されるデータパターン(フォーマットパターン等)を入力するためのフィールドである。
図17は、モニタ画面1700の一例を示す図である。
モニタ画面1700は、重複排除処理に関する情報(処理結果等)を表示するための画面である。モニタ画面1700には、例えば、表示フィールド(1)〜(3)が設けられる。
表示フィールド(1)は、現在の重複排除率を表示するためのフィールドである。図17における括弧内の数値は、同期重複排除処理単独での重複排除率である。表示フィールド(2)は、CPU202の使用率を表示するためのフィールドである。CPU202の使用率が高すぎる場合は、管理者は、例えば、重複排除目標値を変更したり、ストレージシステム103の構成を変更したりする(例えば、実施例2で説明するように複数個のストレージサーバ201を備えるようにする)ことができる。表示フィールド(3)は、同期重複排除処理に要した処理時間の平均値を表示するためのフィールドである。この値が大きすぎる場合は、管理者は、例えば、比較候補の数を小さくしたり、ストレージシステム103の構成を変更したりすることができる。
図18は、実施例2に係るストレージシステム103の構成例を示す図である。
同図に示されるように、実施例2では、ストレージシステム103に複数のストレージサーバ201が備えられる。個々のストレージサーバ201のハードウェア構成は、実施例1(図2で示されるもの)と実質的に同じである。複数のストレージサーバ201のそれぞれとロードバランサ1801とが、例えばLAN(Local Area Network)1802を介して接続される。また、ロードバランサ1801は、通信ネットワーク102に接続される。
図19は、実施例2に係るストレージサーバ201のソフトウェア構成例を示す図である。
実施例2に係るストレージサーバ201には、実施例1と同様の処理部301〜306が備えられる。また、実施例2に係るストレージサーバ201のメモリ204或いはディスク209には、実施例1と同様の情報307,310,311やデータ312が格納される。
実施例2では、ストレージサーバ201には、更に、サーバ分割処理部1901と、サーバ統合処理部1902とが備えられる。また、ディスク209には、更に、サーバ管理情報1910が格納される。
図20は、サーバ管理情報1910の一例を示す図である。
サーバ管理情報1910には、例えば、名前ハッシュ空間サーバ対応テーブル2001と、データハッシュ空間サーバ対応テーブル2002と、待機サーバ管理テーブル2003とが含まれる。
名前ハッシュ空間サーバ対応テーブル2001は、名前ハッシュ値(グローバルパスから生成されるハッシュ値)の空間(名前ハッシュ空間)と、その名前ハッシュ空間に含まれる(生成されるハッシュ値がその名前ハッシュ空間内にある)グローバルパスのパス名(文字列)を管理(ディスク209に格納)するサーバ201との対応関係を示したテーブルである。例えば、グローバルパス“/groot/user1/data”の名前ハッシュ値が“0b00001111”である場合は、図20のテーブル2001を参照することにより、パス名“/groot/user1/data”を管理するサーバ201はサーバSであることがわかる。
データハッシュ空間サーバ対応テーブル2002は、データハッシュ値(ユーザデータ又は付加データから生成されるハッシュ値)の空間(データハッシュ空間)と、そのデータハッシュ空間に含まれる(生成されるハッシュ値がそのデータハッシュ空間内にある)ユーザデータを管理(ディスク209に格納)するサーバ201との対応関係を示したテーブルである。例えば、或るユーザデータのデータハッシュ値が“0b11110000”である場合は、図20のテーブル2002を参照することにより、そのユーザデータを管理するサーバ201はサーバNであることがわかる。
待機サーバ管理テーブル2003は、ストレージシステム103に備えられたストレージサーバ201のうち待機状態にあるサーバ(以下、「待機サーバ」)201を示したテーブルである。待機サーバ管理テーブル2003は、後述するサーバ分割処理やサーバ統合処理が行われる際に参照される。
図21は、実施例2に係るライト要求処理部306が行う処理のフローチャートである。
ライト要求を受信したストレージサーバ(以下、「要求受信サーバ」)201のライト要求処理部306は、ライト対象データ又は付加データからデータハッシュ値を生成する(S901)。データハッシュ値は、完全一致方式が採用される場合はライト対象データから、非完全一致方式が採用される場合は付加データから、それぞれ生成される。以下、このステップS901で生成されたデータハッシュ値を「対象データハッシュ値」と呼ぶ。
次に、ライト要求処理部306は、データハッシュ空間サーバ対応テーブル2002を参照し、対象データハッシュ値に基づいて、ライト対象データを管理するストレージサーバ(以下、「データ担当サーバ」)201を決定する(S902)。
その後、ライト要求処理部306は、ステップS902で決定されたデータ担当サーバ201に対して、対象データハッシュ値及びライト対象データを送信する(S903)。
対象データハッシュ値及びライト対象データを受信したデータ担当サーバ201は、ライト対象データをディスク209に格納する処理(以下、「データ格納処理」)を行う(S904)。データ格納処理の詳細は、後に図22を参照して説明する。
ステップS904の処理が完了すると、要求受信サーバ201は、ライト対象データに付与されたデータIDをデータ担当サーバ201から受信する(S905)。
その後、要求受信サーバ201のライト要求処理部306は、ライト対象データのグローバルパス(以下、「ライト対象グローバルパス」)から名前ハッシュ値を生成する(S906)。以下、このステップS906で生成された名前ハッシュ値を「対象名前ハッシュ値」と呼ぶ。
次に、ライト要求処理部306は、名前ハッシュ空間サーバ対応テーブル2001を参照し、対象名前ハッシュ値に基づいて、ライト対象グローバルパスのパス名を管理するストレージサーバ(以下、「名前担当サーバ」)201を決定する(S907)。
その後、ライト要求処理部306は、ステップS907で決定された名前担当サーバ201に対して、ライト対象グローバルパスのパス名、対象データハッシュ値、対象名前ハッシュ値及びライト対象データのデータIDを送信する(S908)。
ライト対象グローバルパスのパス名、対象データハッシュ値、対象名前ハッシュ値及びライト対象データのデータIDを受信した名前担当サーバ201は、ライト対象グローバルパスのパス名をディスク209に格納する処理(以下、「名前格納処理」)を行う(S909)。名前格納処理の詳細は、後に図24を参照して説明する。
要求受信サーバ201が名前担当サーバ201から処理完了の応答を受信すると(S910)、本処理は終了する。
図22は、データ担当サーバ201が行うデータ格納処理のフローチャートである。
図22の処理は、ステップS108’及びS109’を除き、実施例1における図8〜図11の処理と実質的に同じである。図22におけるステップS103以外の処理は、データ担当サーバ201のライト要求処理部306により行われ、図22におけるステップS103の処理(図9〜図11の処理)は、データ担当サーバ201の同期重複排除処理部301により行われる。
ステップS108’は、非重複データの登録処理であり、ステップS109’は、重複不明データの登録処理である。実施例2では、ストレージサーバ201が複数備えられるため、複数のストレージサーバ201のディスク209間で、ディスクの使用率のバランスを取ることが望まれる。ステップS108’及びS109’の処理は、図24に示す通りである。以下、図23を参照して説明する。
まず、データ担当サーバ201のライト要求処理部306は、自サーバ201のディスク209に十分な空き容量があるかどうかを確認する(S1001)。
十分な空き容量がある場合は(S1001:YES)、ライト対象データは、自サーバ201に格納される(S1002)。
一方、自サーバ201に十分な空き容量がない場合は(S1001:NO)、ライト対象データは、空き容量に余裕のある他サーバ201に格納される(S1003)。
ライト対象データがディスク209に格納された後、ライト対象データには、データIDが割り当てられる(S1004)。ライト対象データに割り当てられるデータIDは、ハッシュ空間単位でユニークな値とされてもよいし、ストレージシステム103全体でユニークな値とされてもよい。ハッシュ空間単位でユニークな値とされる場合は、データハッシュ値とデータIDの組み合わせで、ユーザデータが特定される事になる。
次に、ライト要求処理部306は、ローカルパス管理テーブル402に、ライト対象データに関するエントリを追加する(S1005)。非重複データの場合は、全体評価フラグが“Y”とされ、重複不明データの場合は、全体評価フラグが“N”とされる。
なお、実施例2においても非同期重複排除処理が実行される。実施例2における非同期重複排除処理は、実施例1(図12〜図14)と実質的に同じである。
図24は、名前担当サーバ201が行う名前格納処理のフローチャートである。
ライト対象グローバルパスのパス名、対象データハッシュ値、対象名前ハッシュ値及びライト対象データのデータIDを受信した名前担当サーバ201は、受信した内容をグローバルパス管理テーブル401に登録する(S1101)。
図25は、第二のモニタ処理のフローチャートである。
第二のモニタ処理は、サーバ分割処理或いはサーバ統合処理を行うか否かを決定するためにモニタ処理部304により行われる処理である。第一のモニタ処理と同様に、モニタ処理部304は、任意のタイミングで第二のモニタ処理を行うことができるが、以下では、定期的に(例えば、数時間或いは数週間おきに)行われる場合を例に挙げて説明する。
モニタ処理部304は、一定期間(例えば、数時間或いは数週間等)待機した後(S1201)、ストレージサーバ201の負荷を計算し、ストレージサーバ201の負荷の高低を判定する(S1202)。
ストレージサーバ201の負荷が適切であると判定された場合は(S1202:Middle)、モニタ処理部304は、再度一定期間待機する(S1201)。
一方、ストレージサーバ201の負荷が高いと判定された場合又は低いと判定された場合は(S1202:High又はLow)、重複排除率が計算され、重複排除率の高低が判定される(S1203、S1204)。
ストレージサーバ201の負荷が高く且つ重複排除率が低いと判定された場合は(S1203:Low)、サーバ分割処理が実行される(S1205)。サーバ分割処理の詳細については、後に図26を参照して説明する。
ストレージサーバ201の負荷が低く且つ重複排除率が高いと判定された場合は(S1204:High)、サーバ統合処理が実行される(S1206)。サーバ統合処理の詳細については、後に図27を参照して説明する。
ストレージサーバ201の負荷が高く且つ重複排除率が低くはないと判定された場合は(S1203:NO Low)、或いは、ストレージサーバ201の負荷が低く且つ重複排除率が高くはないと判定された場合は(S1204:NO High)、モニタ処理部304は、再度一定期間待機する(S1201)。
図26は、サーバ分割処理のフローチャートである。
まず、サーバ分割処理部1901は、待機サーバ管理テーブル2003を参照して、待機サーバ201を2台確保する(S1301)。
次に、サーバ分割処理部1901は、分割の対象とされるストレージサーバ(以下、「分割対象サーバ」)201が管理する名前ハッシュ空間及びデータハッシュ空間(以下、両ハッシュ空間をあわせて「担当ハッシュ空間」という)を、それぞれ分割する(S1302)。例えば、担当ハッシュ空間が“0b1*”であった場合は、“0b10*”と“0b11*”との二つに均等に分割されてもよいし、“0b100*”と“0b101*”+“0b11*”との二つに分割されてもよい。担当ハッシュ空間の分割は、例えば、ストレージサーバ201の負荷を考慮して行われる。分割されたハッシュ空間のそれぞれは、ステップS1301で確保された待機サーバ(以下、「分割後サーバ」)201のいずれか一方が担当することになる。以下、分割後サーバ201が担当することになる、分割後のハッシュ空間を、「分割後担当ハッシュ空間」と呼ぶ。
次に、サーバ分割処理部1901は、分割後サーバのそれぞれに、分割後担当ハッシュ空間に相当する管理情報(ユーザデータ管理情報310のうちの分割後担当ハッシュ空間に関する部分及び全リスト情報311のうちの分割後担当ハッシュ空間に関する部分)を転送する(S1303)。
次に、サーバ分割処理部1901は、各分割後担当ハッシュ空間について、そのハッシュ空間に含まれるユーザデータ(以下、「分割対象ユーザデータ」)に関する同期重複排除処理情報307を生成する。そして、サーバ分割処理部1901は、その生成した同期重複排除処理情報307を、その分割後担当ハッシュ空間を担当する分割後サーバ201のメモリ204へ書き込む(S1304)。つまり、分割対象ユーザデータと、分割対象ユーザデータに関するフィンガープリントデータ312と、分割対象ユーザデータに関して生成された部分リスト情報601及びサマリビットマップ602とが、分割後サーバ201のメモリ204に書き込まれる。
次に、サーバ分割処理部1901は、サーバ管理情報1910を分割後の内容に変更し、その変更を他のストレージサーバ201へ通知する(S1305)。
サーバ管理情報1910の変更通知及び分割後サーバ201へのデータ移行が全て完了した後、サーバ分割処理部1901は、分割対象サーバ201を待機サーバ管理テーブル2003へ登録する(S1306)。
なお、本実施例では、待機サーバ201を2台確保し、分割対象サーバ201の処理の全部を待機サーバ201が行うようにする方式を採用したが、待機サーバ201を1台確保して、分割対象サーバ201の処理の一部を待機サーバ201が行うようにする方式が採用されてもよい。
図27は、サーバ統合処理のフローチャートである。
本処理は、統合の対象とされるストレージサーバ(以下、「統合対象サーバ」)201のうちの一つサーバ201のサーバ統合処理部1902により行われる。
まず、サーバ統合処理部1902は、他に統合対象サーバ201として適切なサーバ201が存在するか否かを判定する(S1401)。
統合対象サーバ201として適切なサーバ201が存在しない場合は(S1401:NO)、サーバ統合処理部1902は、処理を終了する。
一方、統合対象サーバ201として適切なサーバ201が存在する場合は(S1401:YES)、サーバ統合処理部1902は、その適切なサーバ201をもう一台の統合対象サーバ201と決定する。即ち、本実施例では、本処理を実行しているサーバ201と、前記決定されたサーバ201との2台が、統合対象サーバ201となる。サーバ統合処理部1902は、待機サーバ管理テーブル2003を参照して、待機サーバ201を1台確保する(S1402)。
次に、サーバ統合処理部1902は、ステップS1402で確保された待機サーバ(「統合後サーバ」)201に、各統合対象サーバが担当するハッシュ空間(以下、「統合前担当ハッシュ空間」)に相当する管理情報(ユーザデータ管理情報310のうちの統合前担当ハッシュ空間に関する部分及び全リスト情報311のうちの統合前担当ハッシュ空間に関する部分)のそれぞれを転送する(S1403)。二つの統合前担当ハッシュ空間は、統合後サーバ201が担当する一つのハッシュ空間(以下、「統合後担当ハッシュ空間」)に統合される。
次に、サーバ統合処理部1902は、統合後担当ハッシュ空間について、そのハッシュ空間に含まれるユーザデータ(以下、「統合対象ユーザデータ」)に関する同期重複排除処理情報307を生成する。そして、サーバ統合処理部1902は、その生成した同期重複排除処理情報307を、その統合後担当ハッシュ空間を担当する統合後サーバ201のメモリ204へ書き込む(S1404)。つまり、統合対象ユーザデータと、統合対象ユーザデータに関するフィンガープリントデータ312と、統合対象ユーザデータに関して生成された部分リスト情報601及びサマリビットマップ602とが、統合後サーバ201のメモリ204に書き込まれる。
次に、サーバ統合処理部1902は、サーバ管理情報1910を統合後の内容に変更し、その変更を他のストレージサーバ201へ通知する(S1405)。
サーバ管理情報1910の変更通知及び統合後サーバ201へのデータ移行が全て完了した後、サーバ統合処理部1902は、統合対象サーバ201のそれぞれを待機サーバ管理テーブル2003へ登録する(S1406)。
なお、本実施例では、待機サーバ201を1台確保し、統合対象サーバ201のそれぞれの処理の全部を待機サーバ201が行うようにする方式を採用したが、待機サーバ201を確保せずに、統合対象サーバ201のいずれか一方へ統合する方式が採用されてもよい。
上述した本発明の幾つかの実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
101…クライアント、102…通信ネットワーク、103…ストレージシステム

Claims (13)

  1. クライアント(101)が接続されている通信ネットワーク(102)に接続された通信インタフェース装置(207)と、
    前記クライアントからライト/リードされるユーザデータが記憶される記憶装置(209)と、
    前記通信インタフェース装置及び前記記憶装置に接続されたコントローラ(202)と
    を有し、
    前記コントローラが、前記クライアントからライト要求を受信したときに第一の重複排除処理を行い、その後、任意のタイミングで、第二の重複排除処理を行い、
    前記第一の重複排除処理では、前記コントローラは、前記記憶装置に格納されているユーザデータ群である格納データ群の一部のいずれかの格納データにライト対象のユーザデータであるライト対象データが重複するか否かを判定し、その判定の結果が肯定的であれば、前記ライト対象データを前記記憶装置に格納せず、
    前記第二の重複排除処理では、前記コントローラは、前記第一の重複排除処理において重複するか否かの評価が完了していない対象格納データが、その他の格納データと重複するか否かを判定し、その判定の結果が肯定的であれば、前記対象格納データ又は前記対象格納データと重複する同一データを前記記憶装置から削除する、
    ストレージシステム。
  2. 前記格納データのうちの第一の重複排除処理において比較の対象となり得るデータである比較候補を示した第一の処理情報が記憶されたメモリ(204)、
    を更に有し、
    前記記憶装置又は前記メモリには、前記格納データに関する情報を示した格納データ情報が記憶され、
    前記コントローラは、
    (A)前記第一の重複排除処理において、以下(A1)〜(A4)の処理を行い、
    (A1)前記ライト要求で指定されたライト対象データと前記比較候補に含まれる格納データとを比較し、前記ライト対象データが、格納データのいずれかと重複する重複データであるか、格納データのいずれとも重複しない非重複データであるか、重複データとも非重複データとも判定できない重複不明データであるかの第一の重複判定を行い、
    (A2)前記第一の重複判定において重複データと判定された場合は、前記ライト対象データを前記記憶装置に記憶せずに、前記ライト対象データと、前記ライト対象データと重複する同一データとを関連付ける処理を行い、
    (A3)前記第一の重複判定において非重複データと判定された場合は、前記ライト対象データを前記記憶装置に記憶するとともに、前記ライト対象データについて重複データか否かの評価が完了した旨を前記格納データ情報に記憶し、
    (A4)前記第一の重複判定において重複不明データと判定された場合は、前記ライト対象データを前記記憶装置に記憶するとともに、前記ライト対象データについて重複データか否かの評価が完了していない旨を前記格納データ情報に記憶する、
    (B)前記第二の重複排除処理において、以下(B1)〜(B3)の処理を行う、
    (B1)重複データか否かの評価が完了していない対象格納データとその他の格納データとを比較し、前記対象格納データが、その他の格納データのいずれかと重複する重複データであるか、その他の格納データのいずれとも重複しない非重複データであるかの第二の重複判定を行い、
    (B2)前記第二の重複判定において重複データと判定された場合は、前記対象格納データを前記記憶装置から削除するとともに、前記対象格納データと、前記対象格納データと重複する同一データとを関連付ける処理を行い、
    (B3)前記第二の重複判定において非重複データと判定された場合は、前記対象格納データについて重複データか否かの評価が完了した旨を前記格納データ情報に記憶する、
    請求項1記載のストレージシステム。
  3. 前記メモリには、前記格納データのそれぞれに付与されたランクを世代ごとに示したランク情報が記憶され、
    前記格納データに付与されるランクは、定期的に又は不定期的に更新され、更新されると、ランクの世代が次世代に移行し、
    前記コントローラは、
    (1)前記第一の重複排除処理において、
    (1−1)前記ライト対象データが前記比較候補に含まれる格納データのいずれかと一致した場合、又は、前記ライト対象データに関する特徴データが前記比較候補に含まれる格納データのいずれかに関する特徴データと一致した場合に、前記ライト対象データを重複データと判定し、
    (1−2)前記ライト対象データと比較する格納データを、前記比較候補に含まれる格納データの中から、前記格納データに付与されているランクがより高い順に選択し、重複データと判定された時点で前記第一の重複判定を終了し、
    (1−3)重複不明データと判定された場合、前記ライト対象データについての前記第一の重複排除処理が、どの世代のどのランクの格納データまで比較が完了したかを示す比較済み情報を前記記憶装置又は前記メモリに記憶し、
    (2)どの程度重複記憶が排除されているかを示す値である重複排除率を計算し、現在の重複排除率が所定の目標値以下である場合に、前記第二の重複排除処理を行い、
    (3)前記第二の重複排除処理において、
    (3−1)前記対象格納データが前記その他の格納データのいずれかと一致した場合、又は、前記対象格納データに関する特徴データが前記その他の格納データのいずれかに関する特徴データと一致した場合に、前記対象格納データを重複データと判定し、
    (3−2)前記対象格納データと比較する格納データを、前記その他の格納データの中から、前記格納データに付与されているランクがより高い順に選択し、重複データと判定された時点で前記第二の重複判定を終了し、
    (3−3)前記比較済み情報を参照して、前記他の格納データのうち比較の完了していない格納データとの間でのみ比較を行う、
    請求項2記載のストレージシステム。
  4. 前記コントローラは、どの程度重複記憶が排除されているかを示す値である重複排除率を計算し、現在の重複排除率が所定の目標値以下である場合に、前記第二の重複排除処理を行う、
    請求項1又は2記載のストレージシステム。
  5. 前記第一の処理情報には、ハッシュ空間に含まれるハッシュ値ごとに、ハッシュ値を生成した場合に前記ハッシュ値となる格納データが存在するか否かを示した格納データ存否情報が含まれ、
    前記コントローラは、前記第一の重複判定において、以下の(a1)〜(a3)の処理を行う、
    (a1)前記ライト対象データに関するハッシュ値を生成し、
    (a2)前記格納データ存否情報を参照して、前記生成されたハッシュ値となる格納データが存在するか否かを判定し、
    (a3)前記生成されたハッシュ値となる格納データが存在しない場合は、前記ライト対象データを非重複データと判定する、
    請求項2〜4のうちのいずれかに記載のストレージシステム。
  6. 前記ハッシュ値は、ユーザデータ全体若しくはユーザデータ本体から生成されたハッシュ値又はユーザデータ本体に付加されたデータから生成されたハッシュ値である、
    請求項5記載のストレージシステム。
  7. 前記メモリには、前記格納データのそれぞれに付与された、比較の順序を決定する際に参照されるランクを示したランク情報が記憶され、
    前記コントローラは、
    前記第一の重複判定において、前記ライト対象データと比較する格納データを、前記比較候補に含まれる格納データの中から、前記格納データに付与されているランクがより高い順に選択し、重複データと判定された時点で前記第一の重複判定を終了し、
    前記第二の重複判定において、前記対象格納データと比較する格納データを、前記その他の格納データの中から、前記格納データに付与されているランクがより高い順に選択し、重複データと判定された時点で前記第二の重複判定を終了する、
    請求項2、4〜6のうちのいずれかに記載のストレージシステム。
  8. 前記コントローラは、
    重複する可能性が高いと見込まれる格納データに対してより高いランクを付与し、又は前記記憶装置の使用率の削減効果が大きいデータに対してより高いランクを付与する、
    請求項3又は7に記載のストレージシステム。
  9. 前記ランク情報において、前記ランクが世代ごとに管理されており、
    前記格納データに付与されるランクは、定期的に又は不定期的に更新され、更新されると、ランクの世代が次世代に移行し、
    前記コントローラは、
    前記第一の重複判定において重複不明データと判定された場合、前記ライト対象データについての前記第一の重複排除処理が、どの世代のどのランクの格納データまで比較が完了したかを示す比較済み情報を前記記憶装置又は前記メモリに記憶し、
    前記第二の重複排除処理において、前記比較済み情報を参照して、前記他の格納データのうち比較の完了していない格納データとの間でのみ比較を行う、
    請求項7又は8に記載のストレージシステム。
  10. 前記コントローラは、
    前記第一の重複判定において、前記ライト対象データが前記比較候補に含まれる格納データのいずれかと一致した場合、又は、前記ライト対象データに関する特徴データが前記比較候補に含まれる格納データのいずれかに関する特徴データと一致した場合に、前記ライト対象データを重複データと判定し、
    前記第二の重複判定において、前記対象格納データが前記その他の格納データのいずれかと一致した場合、又は、前記対象格納データに関する特徴データが前記その他の格納データのいずれかに関する特徴データと一致した場合に、前記対象格納データを重複データと判定する、
    請求項2、4〜9のうちのいずれかに記載のストレージシステム。
  11. 複数のストレージサーバ(201)を有し、
    前記ストレージサーバの各々は、
    前記通信インタフェース装置、前記記憶装置、前記メモリ、及び前記コントローラのそれぞれを有し、
    前記メモリには、ユーザデータに関するハッシュ空間であるデータハッシュ空間と前記データハッシュ空間に含まれるユーザデータを管理するストレージサーバとの対応関係を示したサーバ管理情報が、更に記憶され、
    前記クライアントからライト要求を受信したストレージサーバである要求受信サーバのコントローラが、
    (X1)前記ライト要求で指定されたライト対象データに関するハッシュ値を生成し、
    (X2)前記サーバ管理情報を参照して、前記ライト対象データを管理するストレージサーバであるデータ担当サーバを決定し、
    (X3)前記データ担当サーバに対して前記ライト対象データを送信し、
    前記データ担当サーバのコントローラが、
    前記要求受信サーバから前記ライト対象データを受信した際、前記第一の重複排除処理を行い、その後、任意のタイミングで、前記第二の重複排除処理を行う、
    請求項2〜10のうちのいずれかに記載のストレージシステム。
  12. 前記データ担当サーバのコントローラは、ライト対象データを記憶装置に記憶する際、(Y1)前記データ担当サーバの記憶装置に十分な空き容量があるかないかを判定し、
    (Y2)前記データ担当サーバの記憶装置に十分な空き容量がある場合は、前記データ担当サーバの記憶装置に前記ライト対象データを記憶し、
    (Y3)前記データ担当サーバの記憶装置に十分な空き容量がない場合は、前記データ担当サーバ以外の他のストレージサーバの記憶装置に前記ライト対象データを記憶する、
    請求項11記載のストレージシステム。
  13. 前記サーバ管理情報には、ユーザデータのグローバルパスに関するハッシュ空間である名前ハッシュ空間と前記名前ハッシュ空間に含まれるグローパスパスのパス名を管理するストレージサーバとの対応関係を示した情報が含まれ、
    前記クライアントからライト要求を受信したストレージサーバである要求受信サーバのコントローラが、
    (Z1)前記ライト対象データのグローバルパスであるライト対象グローバルパスに関するハッシュ値を生成し、
    (Z2)前記サーバ管理情報を参照して、前記ライト対象グローバルパスを管理するストレージサーバである名前担当サーバを決定し、
    (Z3)前記名前担当サーバに対して前記ライト対象グローバルパスのパス名を送信し、
    前記名前担当サーバのコントローラが、
    前記要求受信サーバから前記ライト対象グローバルパスのパス名を受信した際、前記ライト対象グローバルパスのパス名を前記名前担当サーバの記憶装置に格納する、
    請求項11又は12記載のストレージシステム。
JP2011543014A 2009-09-18 2009-09-18 重複したデータを排除するストレージシステム Expired - Fee Related JP5303038B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/004744 WO2011033582A1 (en) 2009-09-18 2009-09-18 Storage system for eliminating duplicated data

Publications (2)

Publication Number Publication Date
JP2012523023A true JP2012523023A (ja) 2012-09-27
JP5303038B2 JP5303038B2 (ja) 2013-10-02

Family

ID=42061125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011543014A Expired - Fee Related JP5303038B2 (ja) 2009-09-18 2009-09-18 重複したデータを排除するストレージシステム

Country Status (5)

Country Link
US (3) US8285690B2 (ja)
EP (1) EP2414926A1 (ja)
JP (1) JP5303038B2 (ja)
CN (1) CN102741800B (ja)
WO (1) WO2011033582A1 (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013156846A (ja) * 2012-01-30 2013-08-15 Fujitsu Ltd ストレージ管理方法およびストレージ管理装置
JP2014179094A (ja) * 2013-03-14 2014-09-25 Lsi Corp ストレージ・デバイスによって支援されるデータ重複排除
JP2015528928A (ja) * 2012-10-31 2015-10-01 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
WO2016006050A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2016040654A (ja) * 2014-08-12 2016-03-24 株式会社Nttドコモ データ復元装置及びデータ復元方法
CN105765575A (zh) * 2013-11-11 2016-07-13 亚马逊科技公司 数据流摄取和持久性技术
JP2016218906A (ja) * 2015-05-25 2016-12-22 パナソニックIpマネジメント株式会社 データ記録再生システム
WO2017149592A1 (ja) * 2016-02-29 2017-09-08 株式会社日立製作所 ストレージ装置
KR20180015896A (ko) * 2016-08-04 2018-02-14 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
JP2019016293A (ja) * 2017-07-10 2019-01-31 富士通株式会社 情報処理装置、重複除去率特定方法及び重複除去率特定プログラム
US10387380B2 (en) 2016-11-21 2019-08-20 Fujitsu Limited Apparatus and method for information processing
US10691716B2 (en) 2013-11-11 2020-06-23 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
JP2020190812A (ja) * 2019-05-20 2020-11-26 日本電気株式会社 重複排除記憶方法、重複排除記憶制御装置、重複排除ストレージシステム、プログラム
US20220253222A1 (en) * 2019-11-01 2022-08-11 Huawei Technologies Co., Ltd. Data reduction method, apparatus, computing device, and storage medium
JP7468068B2 (ja) 2020-03-30 2024-04-16 日本電気株式会社 情報処理装置、情報処理方法及びプログラム

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938595B2 (en) 2003-08-05 2015-01-20 Sepaton, Inc. Emulated storage system
US8825792B1 (en) 2008-03-11 2014-09-02 United Services Automobile Association (Usaa) Systems and methods for online brand continuity
US8447741B2 (en) * 2010-01-25 2013-05-21 Sepaton, Inc. System and method for providing data driven de-duplication services
US8429137B2 (en) * 2010-09-02 2013-04-23 Federal Express Corporation Enterprise data duplication identification
JP5623239B2 (ja) * 2010-10-28 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 書込みレコードの重複を排除する記憶装置、及びその書込み方法
US8396841B1 (en) * 2010-11-30 2013-03-12 Symantec Corporation Method and system of multi-level and multi-mode cloud-based deduplication
US8533407B2 (en) * 2010-12-01 2013-09-10 International Business Machines Corporation Capacity management in deduplication storage systems
JP5485866B2 (ja) * 2010-12-28 2014-05-07 株式会社日立ソリューションズ 情報管理方法、及び情報提供用計算機
US8266115B1 (en) * 2011-01-14 2012-09-11 Google Inc. Identifying duplicate electronic content based on metadata
US8688651B2 (en) * 2011-01-25 2014-04-01 Sepaton, Inc. Dynamic deduplication
US9223511B2 (en) 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
JP5780067B2 (ja) * 2011-09-01 2015-09-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
WO2013070792A1 (en) * 2011-11-07 2013-05-16 Nexgen Storage, Inc. Primary data storage system with staged deduplication
US8504533B2 (en) * 2011-12-20 2013-08-06 Matthew Dewey De-duplication reference tag reconciliation
JP6005951B2 (ja) * 2012-02-28 2016-10-12 東芝メディカルシステムズ株式会社 バックアップデータストレージ及びデータバックアップシステム
US20130232124A1 (en) * 2012-03-05 2013-09-05 Blaine D. Gaither Deduplicating a file system
US9779103B2 (en) 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US10133747B2 (en) 2012-04-23 2018-11-20 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual device
US9262428B2 (en) 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US8996881B2 (en) * 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
JP2014026620A (ja) * 2012-07-30 2014-02-06 Fujitsu Ltd 情報処理装置及びコンテンツ管理方法
US9348538B2 (en) * 2012-10-18 2016-05-24 Netapp, Inc. Selective deduplication
CN103870514B (zh) * 2012-12-18 2018-03-09 华为技术有限公司 重复数据删除方法和装置
US9766832B2 (en) 2013-03-15 2017-09-19 Hitachi Data Systems Corporation Systems and methods of locating redundant data using patterns of matching fingerprints
US9361028B2 (en) * 2013-05-07 2016-06-07 Veritas Technologies, LLC Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9256611B2 (en) 2013-06-06 2016-02-09 Sepaton, Inc. System and method for multi-scale navigation of data
US9342253B1 (en) * 2013-08-23 2016-05-17 Nutanix, Inc. Method and system for implementing performance tier de-duplication in a virtualization environment
US9378535B2 (en) * 2013-08-29 2016-06-28 Advanced Micro Devices, Inc. Efficient duplicate elimination
US9678973B2 (en) 2013-10-15 2017-06-13 Hitachi Data Systems Corporation Multi-node hybrid deduplication
JP6008820B2 (ja) * 2013-10-24 2016-10-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation WORM(WriteOnceReadMany)を実現するファイルシステム
US10108644B1 (en) * 2014-03-12 2018-10-23 EMC IP Holding Company LLC Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
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
WO2016163025A1 (ja) * 2015-04-10 2016-10-13 株式会社日立製作所 データ量削減機能に関する課金額を算出する方法及び管理システム
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US9904473B2 (en) * 2015-11-20 2018-02-27 International Business Machines Corporation Memory and processor affinity in a deduplicated environment
CN105491149B (zh) * 2015-12-26 2019-04-23 深圳市金立通信设备有限公司 一种数据存储方法及终端
US9697224B1 (en) * 2016-02-09 2017-07-04 International Business Machines Corporation Data deduplication for an eventually consistent system
US11228635B2 (en) * 2016-03-30 2022-01-18 Nec Corporation Information sharing method
DE102016205827B3 (de) * 2016-04-07 2017-08-17 Volkswagen Aktiengesellschaft Verfahren, Vorrichtung, Fahrzeug und Zentralstelle zum Feststellen einer Aktualität einer lokalen Benutzereinstellung
US10235396B2 (en) * 2016-08-29 2019-03-19 International Business Machines Corporation Workload optimized data deduplication using ghost fingerprints
US11226929B2 (en) 2016-09-14 2022-01-18 International Business Machines Corporation WORM data falsification detection
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
WO2019087786A1 (ja) * 2017-11-06 2019-05-09 日本電信電話株式会社 情報分散記憶システム、方法およびプログラム
CN111723050A (zh) * 2019-03-22 2020-09-29 伊姆西Ip控股有限责任公司 用于文件管理的方法、电子设备和计算机程序产品
US11086794B2 (en) * 2019-04-30 2021-08-10 EMC IP Holding Company LLC Managing eviction from a deduplication cache
US11294871B2 (en) 2019-07-19 2022-04-05 Commvault Systems, Inc. Deduplication system without reference counting
US11144550B2 (en) * 2019-09-25 2021-10-12 Snowflake Inc. Pipeline level optimization of aggregation operators in a query plan during runtime
US11620287B2 (en) 2020-02-26 2023-04-04 Snowflake Inc. Framework for providing intermediate aggregation operators in a query plan
JP7476715B2 (ja) * 2020-08-07 2024-05-01 富士通株式会社 情報処理装置及び重複率見積もりプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243138A (ja) * 2007-03-29 2008-10-09 Hitachi Ltd ストレージシステム及びデータ復元方法
JP2009059096A (ja) * 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
JP2009087021A (ja) * 2007-09-28 2009-04-23 Hitachi Ltd ストレージ装置及びデータ重複排除方法
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5386796A (en) * 1995-04-11 1996-10-30 Kinetech, Inc. Identifying data in a data processing system
US5732265A (en) 1995-11-02 1998-03-24 Microsoft Corporation Storage optimizing encoder and method
US7092956B2 (en) * 2001-11-02 2006-08-15 General Electric Capital Corporation Deduplication system
US6934714B2 (en) * 2002-03-04 2005-08-23 Intelesis Engineering, Inc. Method and system for identification and maintenance of families of data records
US7200604B2 (en) * 2004-02-17 2007-04-03 Hewlett-Packard Development Company, L.P. Data de-duplication
JP2005274991A (ja) 2004-03-25 2005-10-06 Sony Corp 楽曲データ格納装置および重複楽曲削除方法
US9772981B2 (en) * 2006-03-29 2017-09-26 EMC IP Holding Company LLC Combined content indexing and data reduction
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US9465823B2 (en) * 2006-10-19 2016-10-11 Oracle International Corporation System and method for data de-duplication
US7640280B2 (en) * 2006-10-31 2009-12-29 Rebit, Inc. System for automatically shadowing data and file directory structures that are recorded on a computer memory
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
JP5020673B2 (ja) * 2007-03-27 2012-09-05 株式会社日立製作所 重複したファイルの記憶を防ぐコンピュータシステム
US7873809B2 (en) * 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US8204866B2 (en) * 2007-05-18 2012-06-19 Microsoft Corporation Leveraging constraints for deduplication
US8209506B2 (en) * 2007-09-05 2012-06-26 Emc Corporation De-duplication in a virtualized storage environment
US7822939B1 (en) * 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7870105B2 (en) * 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US7836053B2 (en) * 2007-12-28 2010-11-16 Group Logic, Inc. Apparatus and methods of identifying potentially similar content for data reduction
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US20090193210A1 (en) * 2008-01-29 2009-07-30 Hewett Jeffrey R System for Automatic Legal Discovery Management and Data Collection
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
US7962706B2 (en) * 2008-02-14 2011-06-14 Quantum Corporation Methods and systems for improving read performance in data de-duplication storage
JP5084551B2 (ja) * 2008-02-26 2012-11-28 Kddi株式会社 重複排除技術を用いたデータバックアップ方法、記憶制御通信装置及びプログラム
US8825617B2 (en) * 2008-03-14 2014-09-02 International Business Machines Corporation Limiting deduplication based on predetermined criteria
US7519635B1 (en) * 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique
US8650228B2 (en) * 2008-04-14 2014-02-11 Roderick B. Wideman Methods and systems for space management in data de-duplication
US7984022B2 (en) * 2008-04-18 2011-07-19 International Business Machines Corporation Space recovery with storage management coupled with a deduplicating storage system
US8346730B2 (en) * 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US7996371B1 (en) * 2008-06-10 2011-08-09 Netapp, Inc. Combining context-aware and context-independent data deduplication for optimal space savings
US7913114B2 (en) * 2008-07-31 2011-03-22 Quantum Corporation Repair of a corrupt data segment used by a de-duplication engine
US7814149B1 (en) * 2008-09-29 2010-10-12 Symantec Operating Corporation Client side data deduplication
AU2009335697A1 (en) * 2008-12-18 2011-08-04 Copiun, Inc. Methods and apparatus for content-aware data partitioning and data de-duplication
US7921086B1 (en) * 2008-12-23 2011-04-05 Symantec Corporation Deterministic space management in deduplication applications
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243138A (ja) * 2007-03-29 2008-10-09 Hitachi Ltd ストレージシステム及びデータ復元方法
JP2009059096A (ja) * 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
JP2009087021A (ja) * 2007-09-28 2009-04-23 Hitachi Ltd ストレージ装置及びデータ重複排除方法
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013156846A (ja) * 2012-01-30 2013-08-15 Fujitsu Ltd ストレージ管理方法およびストレージ管理装置
JP2015528928A (ja) * 2012-10-31 2015-10-01 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
JP2014179094A (ja) * 2013-03-14 2014-09-25 Lsi Corp ストレージ・デバイスによって支援されるデータ重複排除
US10691716B2 (en) 2013-11-11 2020-06-23 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
CN105765575A (zh) * 2013-11-11 2016-07-13 亚马逊科技公司 数据流摄取和持久性技术
JP2017501515A (ja) * 2013-11-11 2017-01-12 アマゾン・テクノロジーズ・インコーポレーテッド データストリーム取り込み及び永続性ポリシ
CN105765575B (zh) * 2013-11-11 2019-11-05 亚马逊科技公司 数据流摄取和持久性技术
US9658774B2 (en) 2014-07-09 2017-05-23 Hitachi, Ltd. Storage system and storage control method
WO2016006050A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2016040654A (ja) * 2014-08-12 2016-03-24 株式会社Nttドコモ データ復元装置及びデータ復元方法
JP2016218906A (ja) * 2015-05-25 2016-12-22 パナソニックIpマネジメント株式会社 データ記録再生システム
WO2017149592A1 (ja) * 2016-02-29 2017-09-08 株式会社日立製作所 ストレージ装置
JPWO2017149592A1 (ja) * 2016-02-29 2018-09-27 株式会社日立製作所 ストレージ装置
KR102565005B1 (ko) 2016-08-04 2023-08-07 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
KR20180015896A (ko) * 2016-08-04 2018-02-14 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
US10387380B2 (en) 2016-11-21 2019-08-20 Fujitsu Limited Apparatus and method for information processing
JP2019016293A (ja) * 2017-07-10 2019-01-31 富士通株式会社 情報処理装置、重複除去率特定方法及び重複除去率特定プログラム
JP2020190812A (ja) * 2019-05-20 2020-11-26 日本電気株式会社 重複排除記憶方法、重複排除記憶制御装置、重複排除ストレージシステム、プログラム
US20220253222A1 (en) * 2019-11-01 2022-08-11 Huawei Technologies Co., Ltd. Data reduction method, apparatus, computing device, and storage medium
JP7468068B2 (ja) 2020-03-30 2024-04-16 日本電気株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
CN102741800A (zh) 2012-10-17
US20140304242A1 (en) 2014-10-09
US20110191305A1 (en) 2011-08-04
CN102741800B (zh) 2015-11-25
JP5303038B2 (ja) 2013-10-02
WO2011033582A1 (en) 2011-03-24
EP2414926A1 (en) 2012-02-08
US9317519B2 (en) 2016-04-19
US20120330907A1 (en) 2012-12-27
US8285690B2 (en) 2012-10-09
US8793227B2 (en) 2014-07-29

Similar Documents

Publication Publication Date Title
JP5303038B2 (ja) 重複したデータを排除するストレージシステム
US10303797B1 (en) Clustering files in deduplication systems
KR102378367B1 (ko) 분산 파일 시스템
CN107798130B (zh) 一种分布式存储快照的方法
JP5775177B2 (ja) クローンファイル作成方法と、それを用いたファイルシステム
US9952940B2 (en) Method of operating a shared nothing cluster system
US20190026042A1 (en) Deduplication-Aware Load Balancing in Distributed Storage Systems
US20170300550A1 (en) Data Cloning System and Process
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US9384201B2 (en) Method of managing data of file system using database management system
US10108644B1 (en) Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
JP5650982B2 (ja) ファイルの重複を排除する装置及び方法
JP5886447B2 (ja) ロケーション非依存のファイル
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
WO2015049747A1 (ja) データ管理システム、及び、データ管理方法
JP2014503086A (ja) ファイルシステム及びデータ処理方法
JP6288596B2 (ja) データ処理方法および装置
CN107038092B (zh) 一种数据复制方法及装置
US20180107404A1 (en) Garbage collection system and process
JP2009259007A (ja) 分散格納方法、分散格納システム及び分散格納装置
JP2020506444A (ja) 期限切れバックアップ処理方法及びバックアップサーバ
WO2020215580A1 (zh) 一种分布式全局数据去重方法和装置
JP7505252B2 (ja) ファイルサーバ、重複排除システム、処理方法、プログラム
US9575679B2 (en) Storage system in which connected data is divided
US20170124107A1 (en) Data deduplication storage system and process

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130516

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: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130621

R150 Certificate of patent or registration of utility model

Ref document number: 5303038

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees