JP2013047933A - 階層ストレージシステムの重複排除効率の向上 - Google Patents

階層ストレージシステムの重複排除効率の向上 Download PDF

Info

Publication number
JP2013047933A
JP2013047933A JP2012140296A JP2012140296A JP2013047933A JP 2013047933 A JP2013047933 A JP 2013047933A JP 2012140296 A JP2012140296 A JP 2012140296A JP 2012140296 A JP2012140296 A JP 2012140296A JP 2013047933 A JP2013047933 A JP 2013047933A
Authority
JP
Japan
Prior art keywords
volume
volumes
pool
external
storage system
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
JP2012140296A
Other languages
English (en)
Other versions
JP5980588B2 (ja
Inventor
Tomohiro Kawaguchi
智大 川口
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 JP2013047933A publication Critical patent/JP2013047933A/ja
Application granted granted Critical
Publication of JP5980588B2 publication Critical patent/JP5980588B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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

【課題】
ストレージシステムと複数の外部ストレージ装置で構成される階層ストレージシステムでは、外部ストレージ装置間でのデータ重複排除をできなかった。
【解決手段】
重複排除の効率向上のため、ストレージシステムはコントローラと、外部装置に搭載される複数の外部ボリュームおよび複数の第一ボリュームを有する。コントローラは、複数の外部ボリューム中の第一外部ボリューム内の複数の第一ボリュームの一つから取得される関連データを格納する。また、コントローラはサーバからオブジェクトデータを受け取り、オブジェクトデータを複数のプールボリュームに割り当てる。複数のプールボリュームは、外部装置に搭載される複数の外部ボリュームを含む。コントローラは、バックアップサーバから受け取るオブジェクト割り当て情報に基づいて、複数のプールボリュームにオブジェクトデータを格納する。
【選択図】 図2

Description

0001 本発明はストレージシステムに関し、特に階層ストレージシステムの重複排除の効率を向上させる技術に関する。
0002 近年、重複排除技術が広く使われるようになってきた。この技術は二つの過程からなる。一つ目の過程は、同一のデータを見つけることである。二つ目の過程は二つのオブジェクト間で共有する同一のデータを見つけることである(「オブジェクト」は、「ファイル」「領域」等を含む)。各過程は、例えば、ハッシュテーブルとページ管理を利用した重複排除の制御方法について開示した特許文献1(米国特許第6,928,526号)に示されている。一つ目の過程はハッシュテーブルを利用する。ハッシュテーブルのハッシュ値は格納データから得られる。二つ目の過程はページ(セグメント)管理を利用する。二つのオブジェクトが同一のデータを有する場合、二つのオブジェクト内の各ページは同じ格納データを参照する。
0003 一般的に、ページ数はストレージ容量の増加に伴って増える。ページのテーブル容量もまた、ページ数の増加に伴って増える。ストレージが多くのページと大きなテーブル容量を有する場合、複雑なテーブル構造を採用するとストレージのパフォーマンスは低下し、または高価なハードウェア構成を採用するとストレージの価格が上昇する。例えば、格納データ4KBに対してハッシュデータが128ビットである場合、1PBの格納データには4TBのハッシュテーブルを必要とする。
0004 この問題を解決するためには、特許文献2(米国特許出願公開2008/0244196号)に記載された標準化ストレージインターフェースのストレージ機能での構造が効果的である。特許文献3(米国特許第7,711,896号)に記載される外部ボリューム機能の制御方法に関する技術を利用すると、VTL(Virtual Tape Libraries)がブロックストレージインターフェースをサポートする場合、ストレージ装置に一つ以上のVTLを搭載することができる。厳密に言えば、「VTL」の用語は上記の文章では正確に使われていない。なぜならば「VTL」とはストレージ装置がテープインターフェースと重複排除機能を有するということを意味するからである。このような構成により、ストレージ装置は自身の中に重複排除管理テーブル(ハッシュテーブルを含む)を備えることなく重複排除機能を提供することができる。ストレージ装置は外部VTLに対して重複排除機能の制御と管理を負荷分散することができる。
米国特許第6,928,526号公報 米国特許出願公開2008/0244196号公報 米国特許第7,711,896号公報
0004 しかしながら、この構成においては、同じデータが二つのVTLに格納されている場合、重複排除を行うことが難しい。なぜならば、ストレージ装置と各VTLは互いのVTLに同じデータが格納されていることを認識できないからである。
0005 本発明の実施例は、階層ストレージシステムの重複排除の効率を向上させる技術に関する。階層ストレージシステムはサーバ、ストレージ装置および複数のVTLを含む。各VTLは重複排除機能を有する。ストレージ装置は、データを格納するためVTLに接続する。サーバ、ストレージ装置またはVTLはデータオブジェクト同士の配列および関係を認識している。ストレージ装置またはVTLは配列および関係情報に基づいて格納データの位置を制御する。
0006 第一実施例によると、ストレージ装置はVTLに接続される複数の外部ボリュームを有する。ストレージ装置は、例えば、ローカルコピーペアのようなボリューム間の関係を認識している。もし、二つのボリュームが一つの同じボリュームのバックアップであった場合、バックアップボリューム同士は類似のデータを有する可能性がある。そのため、ストレージ装置は各バックアップボリュームの同じアドレス内のデータを同じVTLに格納する。このようにすれば、重複データの削減効率を高めることができる。
0007 第二実施例によると、ストレージ装置はVTLに接続される複数の外部ボリュームを有する。VTLは、データ(または重複排除されたデータ)を格納するためにストレージ装置で提供されるボリュームを搭載する。ストレージ装置は重複排除機能を有し、ストレージ装置内のボリュームで使用するページサイズは、VTL内のボリュームで使用するページサイズよりも大きい。ストレージ装置はその重複排除機能を使って各VTL内のデータの重複排除を行う。各VTLは、ストレージ装置による重複排除を容易にするために、格納された重複排除データをソートする。
0008 第三実施例によると、バックアップサーバはストレージ装置に格納される各バックアップデータの位置および関係を認識している。バックアップサーバはストレージ装置に対して、位置および関係情報を提供する。ストレージ装置は位置および関係情報に基づき、ページデータを格納するVTLを選択する。
0009 本発明の一つの態様によると、ストレージシステムは、プロセッサおよびメモリを有するストレージコントローラと、複数の第一ボリュームと、外部装置に搭載される構成の複数の外部ボリュームと、を有する。ストレージコントローラは、複数の外部ボリューム中の第一外部ボリュームに、複数の第一ボリュームの一つから取得される関連データを格納する制御を行う。
0010 ある実施例によると、複数の第一ボリュームはプールから割り当てられ、該プールは複数の外部ボリュームを含む。ストレージコントローラは、複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データが、第一外部ストレージシステムにより重複排除されるよう、第一外部ストレージシステムに搭載される第一外部ボリュームへ関連データを格納する制御を行う。ストレージコントローラは、複数の外部ボリューム中の第二外部ボリュームに、複数の第一ボリューム中の別の第一ボリュームから取得される関連データを格納する制御を行う。複数の第一ボリューム中の前記別の第一ボリュームから取得される関連データが第二外部ストレージシステムにより重複排除されるよう、第二外部ボリュームが第二外部ストレージシステムに搭載される。複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データは、前記一つの第一ボリュームのスナップショットである。複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データは、前記一つの第一ボリュームのバックアップを含む。
0011 本発明の別の態様によると、それぞれがノードプロセッサおよびまたはノードメモリを有する複数のノードと、プロセッサおよびメモリを含むストレージコントローラを有するストレージシステムとを有するシステムが提供される。複数のノードの内の第一ノードが、前記複数のノードの内の他のノードによって計算された複数のハッシュ値を受け取り、他のノードによって計算されたハッシュ値に基づいてデータ配列を決定する。ストレージコントローラは、他のノードから受け取ったデータの重複排除を行う。前記データは、前記決定されたデータ配列に基づいて第一ノードによって配列されたものである。
0012 ある実施例によると、前記複数のノードの内の他のノードによって行われる重複排除のデータサイズは、ストレージコントローラによって行われる重複排除のデータサイズより小さい。前記第一ノードは、メタデータおよび複数のノードに格納されるファイルの位置情報を含むメタデータサーバである。第一ノードはハッシュ値をソートし、同一のハッシュ値を有するデータについては、同一のハッシュ値を有するノード内の重複排除プールページをストレージシステムの同一仮想ボリュームページに移動する。ストレージシステムは、複数のプールボリュームおよび該複数のプールボリュームから割り当てられた複数のボリュームを含む。ストレージシステム内の複数のプールボリュームは、複数のノード内のボリュームに搭載される複数の外部ボリュームを含む。ストレージシステム内の複数のボリュームは、ノードに搭載されるボリュームを含む。
0013 本発明の別の態様によると、ストレージシステムであって、プロセッサおよびメモリを有するストレージコントローラと、複数のプールボリュームとを有するシステムが提供される。ストレージコントローラは、サーバからオブジェクトデータを受け取り、オブジェクトデータを複数のプールボリュームに割り当てる。複数のプールボリュームは、外部装置に搭載される構成の複数の外部ボリュームを含む。ストレージコントローラは、バックアップサーバから受け取るオブジェクト割り当て情報に基づいて、複数のプールボリュームにオブジェクトデータを格納する制御を行う。
0014 ある実施例によると、複数のプールボリュームの第一プールボリュームに割り当てられたオブジェクトデータが第一外部ストレージシステムによって重複排除されるよう、第一プールボリュームは第一外部ストレージシステムに搭載される。オブジェクト割り当て情報は、ストレージシステム内の各バックアップデータの位置および関係情報から得られるオブジェクト分類および配列情報からなる。前記オブジェクト分類および配列情報に基づいて、ストレージコントローラはオブジェクトデータからおなじ分類オブジェクトを選択し、選択された同じ分類オブジェクトの同じ容量を持つプールページを選択し、複数のプールボリュームの一つの外部ボリューム内の容量プールページを選択し、選択された同じ分類オブジェクトの発見された同じ容量を持つプールページを前記一つの外部ボリューム内の選択された容量プールページに移動する。
0015 上述した本発明の特徴および効果、またその他の特徴や効果は、後述する本発明の具体的な実施例にかかる詳細な説明に基づいて当業者に明らかとなろう。
0047 本発明においては、ストレージサブシステム又は重複排除ストレージ装置はデータオブジェクトの配列や分類を認識もしくは要求することができるため、これらの装置は重複排除機能の特徴を認識して、データの格納先を調整することができる。このようなやり方により、実質的な計算をすることなくストレージ効率を高めることができる。
0016 図1は、第一実施例にかかる、本発明の方法および装置が適用される情報システムのハードウェア構成例を示す図である。 0017 図2は、第一実施例にかかる図1の構成に適用される本発明の論理構成例を示す図である。 0018 図3は、ボリュームおよびプールボリュームの論理構成例を示す図である。 0019 図4は、第一実施例にかかる重複排除ストレージ装置の論理構成例を示す図である。 0020 図5は、第一実施例の概念および期待される結果を示す図である。 0021 図6は、第一実施例にかかる図1のストレージサブシステムのメモリに格納されるテーブルおよびプログラムの構成例を示す図である。 0022 図7は、ボリューム管理テーブルの構成例を示す図である。 0023 図8は、RAIDグループ管理テーブルの構成例を示す図である。 0024 図9は、プール管理テーブルの構成例を示す図である。 0025 図10は、第一実施例にかかるページ管理テーブルの構成例を示す図である。 0026 図11は、ペア管理テーブルの構成例を示す図である。 0027 図12は、ページ割り当てプログラムの処理フロー例を示す図である。 0028 図13は、ページ移動プログラムの処理フロー例を示す図である。 0029 図14は、第一実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。 0030 図15は、重複排除管理テーブルの構成例を示す図である。 0031 図16は、重複排除ストレージ装置の重複排除プログラムの処理フロー例を示す図である。 0032 図17は、第二実施例にかかる情報システムのハードウェア構成例を示す図である。 0033 図18は、第二実施例にかかる図17の構成に適用される本発明の論理構成例を示す図である。 0034 図19は、第二実施例にかかる重複排除ストレージ装置の論理構成例を示す図である。 0035 図20は、第二実施例にかかる図17のストレージサブシステムのメモリに格納されるテーブルおよびプログラムの構成例を示す図である。 0036 図21は、第二実施例にかかるプール管理テーブルの構成例を示す図である。 0037 図22は、第二実施例にかかるストレージサブシステムの重複排除プログラムの処理フロー例を示す図である。 0038 図23は、第二実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。 0039 図24は、第二実施例にかかる重複排除ストレージ装置のソートプログラムの処理フロー例を示す図である。 0040 図25は、第三実施例にかかる情報システムのハードウェア構成例を示す図である。 0041 図26は、第三実施例にかかるバックアップサーバのデータアドレスリストの構成例を示す図である。 0042 図27は、第三実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。 0043 図28は、第三実施例にかかるページ移動プログラムの処理フロー例を示す図である。
0044 以下の本発明についての詳細な説明では、開示の一部を成すとともに本発明を実施する例示的な実施形態の実例として示される添付図面を参照するが、本発明は図面の内容に限定されるものではない。図面において、類似する数字は複数の図面においてほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では、以下の説明および図面に示される通り様々な実施の形態を示すが、本発明は本明細書に置いて説明されかつ示される実施形態に限定されず、当業者が知っているであろう、又は知るようになり得るその他の実施形態をも含む。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の文言は、ある実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。ただし、本発明を実施するためにこれらの具体的かつ詳細な内容すべてが必要なわけではないことは、当業者にとって明らかであろう。状況によっては、曖昧な記載を避けるために、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示していない場合もある。
0045 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズムおよび記号表現で示されている。これらのアルゴリズム記述及び記号表現は、データ処理分野の当業者がその新しいアイディアの本質を最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相応量の物理的操作を必要とする。必ずしもそうとは限らないが、通常はかかる数量は、格納、転送、組み合わせ、比較その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、記号、文字、用語、数字、命令等として言及することが時として便利である。但し、上記の及び類似の用語すべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることに留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた説明は、コンピュータシステムのレジスタ及びメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同等にあらわされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作またはプロセスを含み得る。
0046 本発明は、本明細書における操作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構築された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶措置(ROM)、ランダムアクセスメモリ(RAM)、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ読取可能記憶媒体に格納され得る。本明細書において提示するアルゴリズム及び態様は、特定のコンピュータ又はその他の装置とは本質的に関係していない。様々な汎用システムを、本明細書の教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法を実施するためにより特化した装置を構築した方がよい場合も有り得る。さらに本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示内容を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
0047 本発明の実施例は、以下に詳細に説明する通り、階層ストレージシステムの重複排除効率を向上させる装置、方法及びコンピュータプログラムに関する。一つのストレージサブシステムとそのストレージサブシステムに接続される複数の重複排除ストレージ装置を含む環境においては、同じデータが異なる重複排除ストレージ装置に格納されることがある。そのことにより、重複排除効率が低下してしまう。本発明においては、ストレージサブシステム又は重複排除ストレージ装置はデータオブジェクトの配列や分類を認識もしくは要求することができるため、これらの装置は重複排除機能の特徴を認識して、データの格納先を調整することができる。このようなやり方により、実質的な計算をすることなくストレージ効率を高めることができる。
0048 第一実施例
0049 第一の実施例において、ストレージ装置は、同じ正ボリュームを共有するいくつかのローカルコピーペアを有する。ストレージ装置は、共有される正ボリュームとペアになる副ボリュームの同一アドレス領域を同じ重複排除ストレージ装置に格納する。
0050 図1は、第一実施例において、本発明の方法及び装置が適用される情報システムのハードウェア構成の例を示す。複数のホストコンピュータ300とストレージサブシステム100がネットワーク200によって接続される。ストレージサブシステム100と複数の重複排除ストレージ装置400が他のネットワーク500によって接続される。ストレージサブシステム100は、CPU101を有し、CPU101はストレージサブシステム100を制御し、メモリ102に格納されるプログラムを実行したりテーブルを参照したりする。メモリ102はプログラムやテーブルを格納する。ストレージサブシステム100には、ネットワーク200と接続するためのチャネルインターフェース103が具備される。ストレージサブシステム100は、複数のディスク106と接続するためのディスクインターフェース104を有する。ストレージサブシステム100はさらに、複数の重複排除ストレージ装置400と接続するためのチャネルインターフェース105を有する。各重複排除ストレージ装置400はCPU401を有し、CPU401は重複排除ストレージ装置400を制御し、メモリ402に格納されるプログラムを実行したりテーブルを参照したりする。メモリ402は、プログラムやテーブルを格納する。ストレージ装置400はさらに、ネットワーク500と接続するためのチャネルインターフェース403を有する。また、重複排除ストレージ装置400はディスク406と接続するためのディスクインターフェース404を有する。
0051 図2は、第一実施例を示す図1の構造に適用される本発明の論理構成の例を示すものである。ストレージサブシステム100は、複数のボリューム110を有する。ボリューム110は、正ボリューム110pおよび副ボリューム110sに分類される。一つの正ボリューム110pと一つの副ボリューム110sとで一つのローカルコピーペアを形成する。ストレージサブシステム100は、正ボリューム110pのスナップショットを副ボリューム110sに格納することができる。一つの正ボリューム110pは、複数の副ボリューム110sに共有され、複数のローカルコピーペアが形成される。正ボリューム110pは、ホストコンピュータ300に接続され提供される。ストレージサブシステム100は、内部RAIDグループ111iおよび外部ボリューム111eを有する。内部RAIDグループ111iおよび外部ボリューム111eをまとめてプールボリューム111とよぶ。各内部RAIDグループ111iはディスク106を有する。各外部ボリューム111eは重複排除ストレージ装置400から提供されるボリューム410を(重複排除ボリュームとして)搭載する。ストレージサブシステム100はボリューム110内のデータをプールボリューム111に格納し、ストレージサブシステム100はボリューム間で格納データを移動する。ストレージサブシステム100は複数のプールボリューム111からなる動的階層化プールを有する。重複排除ストレージ装置400は、ストレージサブシステム100に搭載される重複排除ボリューム410を提供する。
0052 図3は、ボリューム110およびプールボリューム111の論理構成例を示す。ボリューム110は、複数の仮想ボリュームページ110−1に分割される。プールボリューム100は、複数の容量プールページ111−1に分割される。ストレージサブシステム100は、仮想ボリュームページ110−1と容量プールページ111−1との対応関係を管理する。データがボリューム110に書き込まれた場合、データはプールボリューム111に格納される。データ格納領域は、仮想ボリュームページ110−1と容量プールページ111−1との関係に基づいて決定される。
0053 図4は、第一実施例に基づく重複排除ストレージ装置400の論理構成の例を示すものである。重複排除ストレージ装置400は、ストレージサブシステム100に搭載されるボリューム410を提供する。重複排除ストレージ装置400は、ボリューム410に書き込まれるデータを格納する重複排除プール411を提供する。重複排除プール411は、ディスク406からなる。ボリューム410は、複数の重複排除ボリュームページ410−1に分割される。重複排除プール411は、複数の重複排除プールページ411−1に分割される。一般的に、重複排除ボリュームページ410−1のサイズと重複排除プールページ411−1のサイズは、それぞれ、仮想ボリュームページ110−1のサイズおよび容量プールページ111−1のサイズよりも小さい。例えば、前者は4KBであり、後者は42MBである。重複排除ストレージ装置400は、重複排除ボリュームページ410−1と重複排除プールページ411−1との関係を管理する。複数の重複排除ボリュームページ410−1から一つの重複排除プールページ411−1を参照することができる。
0054 図5は、第一実施例の概念および期待される結果を図示する。ストレージサブシステム100において、複数の副ボリューム110sが一つの正ボリューム110pを共有する。この場合、複数の副ボリューム110sは、類似のデータを有する。複数の副ボリューム110sの同一アドレス領域に格納されるデータは、同一の外部ボリューム111eに格納される。このようにすれば、同一のデータが同一の重複排除ストレージ装置400に格納されると期待できる。このような構成を確立するために、ストレージサブシステム100は、一つの外部ボリューム111eからなる複数の容量プールページ111−1を、複数の副ボリューム110sの同一アドレスの仮想ボリュームページ110−1に割り当てる。
0055 図6は、第一実施例に基づく図1のストレージサブシステム100のメモリ102に格納されるテーブルおよびプログラムの構成例を示す。ボリューム管理テーブル102−10は、ボリューム110の構成を管理する(図7参照)。RAIDグループ管理テーブル102−11は、内部RAIDグループ111iおよび外部ボリューム111eを含むプールボリューム111の構成を管理する(図8参照)。動的階層化管理テーブル102−13は、プール管理テーブル102−13−1およびページ管理テーブル102−13−2を有する。プール管理テーブル102−13−1は、プールの構成を管理する(図9参照)。ページ管理テーブル102−13−2は、仮想ボリュームページ110−1と容量プールページ111−1の関係を管理する(図10参照)。ローカルコピー管理テーブル102−14は、ペア管理テーブル102−14−1およびデルタビットマップテーブル102−14−2を有する。ペア管理テーブル102−14−1は、ローカルコピーペアおよびローカルコピーペアを構成するボリュームを管理する(図11参照)。デルタビットマップ管理テーブル102−14−2は、ローカルコピーペアを構成する正ボリューム100pと副ボリューム110sとのデータが異なる領域を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。
0056 ボリュームI/O制御102−20は、ボリューム110に対するリードI/OおよびライトI/Oを制御する。この技術は一般的に知られており、ここでは詳細に説明しない。外部ボリューム制御102−21は、外部ボリューム111eに対するリードI/OおよびライトI/Oを制御する。この技術の詳細は、例えば、米国特許第7,711,896に記載されている。内部ディスク制御102−22は、ディスク106に対するリードI/OおよびライトI/Oを制御し、冗長性(ミラーリングおよびパリティー演算)を制御する。この技術は一般的に知られており、ここでは詳細に説明しない。動的階層化制御102−23は、ページ割り当てプログラム102−23−1およびページ移動プログラム102−23−2を有する。ページ割り当てプログラム102−23−1は、ライトI/O又はキャッシュデステージが発生したとき、容量プールページ111−1を選択し仮想ボリュームページ110−1へ割り当てる(図12参照)。ページ移動プログラム102−23−2は、二つの容量プールページ111−1間でデータを移動し、割り当てを行う(図13参照)。ローカルコピーコントロール102−24は、ローカルコピーペアを形成する正ボリュームと副ボリューム間でデータをコピーする。この技術は一般的に知られており、ここでは詳細に説明しない。
0057 図7は、ボリューム管理テーブル102−10の構成例を示す。このテーブルは以下の欄を含む。ボリューム番号102−10−1は、ボリューム110のIDを表す。LU情報102−10−2は、接続可能なチャネルインターフェース(チャネルインターフェース105)番号およびLU(ロジカルユニット)番号を表す。ボリューム容量102−10−3は、仮想ボリュームの容量を表す。プール番号102−10−4は、該ボリュームがデータを格納するプールのプールIDを表す。階層ポリシー情報102−10−5は、該ボリュームが割り当てる容量プールページ111−1の属する階層の階層IDを表す。
0058 図8は、RAIDグループ管理テーブル102−11の構成例を示す。このテーブルは以下の欄を含む。RAIDグループ番号102−11−1は、RAIDグループ(プールボリューム111)のIDを表す。このテーブルにおいて、外部ボリューム111eはRAIDグループとして扱われる。ディスクタイプ情報102−11−2は、ディスクタイプを表す。もし、RAIDグループが外部ボリュームである場合、「外部」という情報がセルに格納される。重複排除情報102−11−3は、RAIDグループにおける重複排除機能の有無を表す。もし、RAIDグループが外部グループではない場合、セルには「No」と入力される。もし、RAIDグループが外部ボリュームであり重複排除機能がない場合、セルには「No」と入力される。RAIDグループが外部ボリュームであり重複排除機能がある場合、セルには「Yes」と入力される。RAIDグループ容量102−11−4は、RAIDグループの容量を表す。RAIDレベル102−11−5は、RAIDレベルおよびRAID構造を表す。もし、RAIDグループが外部ボリュームである場合、セルには「外部」と入力される。デバイス番号102−11−6は、RAIDグループに含まれるデバイスの番号を表す。もし、RAIDグループが内部RAIDグループ111iである場合、セルにはRAIDグループに含まれるディスク106のIDを格納する。RAIDグループが外部ボリューム111eである場合、セルには搭載されるボリュームのWWPN(World Wide Port Number)およびLUN(Logical Unit Number)を格納する。
0059 図9は、プール管理テーブル102−13−1の構成例を示す。このテーブルは、以下の欄を有する。RAIDグループ番号102−13−1−1は、プールボリューム111(内部RAIDグループ111iおよび外部ボリューム111e)のIDを表す。階層番号102−13−1−2は、プール内のプールボリューム111の階層番号を表す。階層番号は、ディスクまたは外部ボリュームのタイプによって決定する。たとえば、SSDを使用する内部RAIDグループはtier0とする。SASを使用する内部RAIDグループはtier1とする。重複排除機能を有する外部ボリュームはtier2とする。使用ページ番号102−13−1−3は、RAIDグループの使用済み容量プールページのIDを表す。未使用ページ番号102−13−1−4は、RAIDグループの空き容量プールページのIDを表す。容量プールのページが割り当てられまたは移動される場合、容量プールページはこのリストから選択される。
0060 図10は、第一実施例による、ページ管理テーブル102−13−2の構成例を示す。このテーブルは以下の欄を有する。ボリューム番号102−13−2−1は、ボリューム110のIDを表す。仮想ボリュームページ番号102−13−2−2は、ボリュームの仮想ボリュームページ110−1のIDを表す。アクセス情報102−13−2−3は、階層を最適化するためのI/O頻度を表す。RAIDグループ番号102−13−2−4は、仮想ボリュームページが参照するプールボリューム111のIDを表す。容量プールページ番号102−13−2−5は、仮想ボリュームページが参照する容量プールページ111−1のIDを表す。
0061 図11は、ペア管理テーブル102−14−1の構成例を示す。このテーブルは、以下の欄を含む。ペアID102−14−1−1は、ローカルコピーペアのIDを表す。正ボリューム番号102−14−1−2は、正ボリューム110pのIDを表す。副ボリューム番号102−14−1−3は、副ボリューム110sのIDを表す。ペア状態102−14−1−5は、「COPY」、「PSUS」および「PAIR」の各ペア状態を表す。ペア状態が「COPY」である場合、ストレージサブシステムは正ボリュームの全データをペアの副ボリュームにコピーする。初期コピーが終了すると、「COPY」状態は「PAIR」状態に変更される。ペア状態が「PAIR」である場合、ストレージサブシステムは正ボリュームのスナップショットをペアの副ボリュームに格納する。ストレージサブシステムがスナップショットをとると、「PAIR」状態は「PSUS」状態に変更される。
0062 図12は、ページ割り当てプログラム102−23−1の処理フロー例を示す。該プログラムは、容量プールページに割り当てられるべき仮想ボリュームページ番号を有するボリューム110に対するライトI/Oが発生した場合、ボリュームI/O制御102−20、外部ボリューム制御102−21または内部ディスク制御102−22に呼び出される。このプログラムは、ステップ102−23−1−1から始まる。ステップ102−23−1−2において、本プログラムは、当該ボリュームが外部ボリューム110eから容量プールページを提供されるべき状態にあるかどうかをチェックする。判断に使われる情報は、階層ポリシー情報102−10−5に格納される(図7参照)。もし、容量プールページが外部ボリューム111eから割り当てられる場合、ステップ102−23−1−3に進む。もし、容量プールページが外部ボリューム111eから割り当てられていない場合、ステップ102−23−1−7に進む。ステップ102−23−1−3において、プログラムは、ペア管理テーブル102−14−1を参照してボリュームの属性をチェックする(図11参照)。もし、ボリュームが副ボリュームである場合、ステップ102−23−1−4に進む。もし、ボリュームが副ボリュームではない場合、ステップ102−23−1−7に進む。ステップ102−23−1−4において、本プログラムは、ペア管理テーブル102−14−1を参照し、該副ボリュームとペアになる正ボリュームおよびその正ボリュームとペアになる他の副ボリュームを取得する。本プログラムは、指定アドレスと同一アドレスにある他の副ボリュームの仮想ボリュームページに対応する容量ボリュームページを見つける。さらに、本プログラムは、他の副ボリュームの仮想ボリュームページにリンクされる容量プールページが格納される外部ボリューム111eを取得する。
0063 ステップ102−23−1−5において、本プログラムは重複排除情報102−11−3を参照し、外部ボリューム111eが重複排除機能を有するかどうかをチェックする(図8参照)。ボリュームが重複排除機能を有する場合、ステップ102−23−1−6に進む。ボリュームが重複排除機能を有しない場合、ステップ102−23−1−7に進む。ステップ102−23−1−6において、本プログラムは、プール管理テーブル102−13−1を参照して、未使用容量プールページをステップ102−23−1−4で選択される外部ボリュームの指定された仮想ボリュームページに割り当てる(図9参照)。本プログラムは、ステップ102−23−1−7において、プール管理テーブル102−13−1を参照して、未使用容量プールページを適切なプールボリューム内の指定された仮想ボリュームページに割り当てる。ステップ102−23−1−8で、プログラムは終了する。
0064 図13は、ページ移動プログラム102−23−2の処理フロー例を示す。本プログラムは、常駐プログラムである。本プログラムは、ステップ102−23−2−1からスタートする。ステップ102−23−2−2において、プログラムは、適切な仮想ボリュームページを選択する。ステップ102−23−2−3において、プログラムは、仮想ボリュームページにリンクした割り当て容量プールページが他のプールボリューム111に移動されるべきであるかどうかを、ページ管理テーブル102−13−2を参照して判断する(図10参照)。もし、移動すべきである場合、プログラムは移動対象階層を選択し、ステップ102−23−2−4に進む。移動が必要でない場合は、ステップ102−23−2−2に進む。ステップ102−23−2−4において、本プログラムは、移動対象階層の属性を判断する。この情報はプール管理テーブル102−13−1に格納されている(図9参照)。容量プールページが外部ボリューム111eから割り当てられている場合、プログラムはステップ102−23−2−5に進む。容量プールページが外部ボリューム111eから割り当てられていない場合、ステップ102−23−2−9に進む。ステップ102−23−2−5において、プログラムは、ペア管理テーブル102−14−1を参照し、ボリュームの属性を判断する。ボリュームが副ボリュームである場合、プログラムはステップ102−23−2−6に進む。ボリュームが副ボリュームではない場合、ステップ102−23−2−9に進む。
0065 ステップ102−23−2−6において、プログラムは、ペア管理テーブル102−14−1を参照し、該副ボリュームとペアになる正ボリュームおよびその正ボリュームとペアになる他の副ボリュームを取得する。プログラムは、指定アドレスと同じアドレスにある他の副ボリュームの仮想ボリュームページの容量ボリュームページを探す。さらに、プログラムは、他の副ボリュームの仮想ボリュームページにリンクする容量プールページが格納される外部ボリューム111eを取得する。ステップ102−23−2−7において、プログラムは、ペア管理テーブル102−14−1を参照し、選択された移動対象プールボリュームの属性を判断する(図11参照)。ボリュームが重複排除機能を有する外部ボリュームである場合、ステップ102−23−2−8に進む。ボリュームが外部ボリュームでない場合または重複排除機能を有していない場合、ステップ102−23−2−9に進む。ステップ102−23−2−8において、プログラムは、プール管理テーブル102−13−1を参照し、選択された重複排除機能を有する外部ボリュームの指定された仮想ボリュームページに対して未使用容量プールページを割り当てる。ステップ102−23−1−9において、プール管理テーブル102−13−1を参照し、指定された階層の適切なプールボリュームの指定された仮想ボリュームページに対して未使用容量プールページを割り当てる。ステップ102−23−2−10において、プログラムは、データを現在のページから新たに選択された容量プールページに移動し、仮想ボリュームページと容量プールページの間のリンクを変更する。その後、ステップ102−23−2−2に戻る。
0066 図14は、第一実施例において、重複排除ストレージ装置400のメモリ402に保存されるテーブルおよびプログラムの構成例を示す。メモリ402は、ボリューム管理テーブル402−10と、RAIDグループ管理テーブル402−11と、重複排除管理テーブル402−13と、ボリュームI/O制御402−20と、ディスク制御402−22と、重複排除制御402−23を有する。ボリューム管理テーブル402−10は、ボリューム400の構成を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。RAIDグループ管理テーブル402−11は、ディスク406を有するRAIDグループ411の構成を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。重複排除管理テーブル402−13は、重複排除ボリュームページ410−1と重複排除プールページ411−1の関係を管理する(図15参照)。ボリュームI/O制御402−20は、ボリューム410に対するリードI/OおよびライトI/Oを制御する。この技術は一般的に知られており、ここでは詳細に説明しない。ディスク制御402−22は、ディスク406に対するリードI/OおよびライトI/Oを制御し、冗長性(ミラーリングおよびパリティ演算)を制御する。この技術は一般的に知られており、ここでは詳細に説明しない。重複排除制御402−23は、同一のデータを見つけ出し、重複排除を行う(図13参照)。
0067 図15は、重複排除管理テーブル402−13の構成例を示す。このテーブルは、下記の欄を含む。重複排除ボリュームページ番号402−13−1は、重複排除ボリュームページのIDを表す。ハッシュ値402−13−2は、該重複排除ボリュームページに格納されるデータのハッシュ値を表す。MD5(Message Digest Algorithm 5)またはSHA−1(Secure Hash Algorithm 1)を使用してハッシュ値を計算する。変更マーカー402−13−3は、マーカーを表す。重複排除ボリュームページにライトI/Oが発生すると、マーカーは「Yes」に変わる。重複排除ボリュームページに対してハッシュ値計算が行われ、結果がハッシュ値402−13−2のセルに入力されると、マーカーは「No」に変わる。重複排除プールページ番号402−13−4は、重複排除ボリュームページのデータを格納する重複排除プールページの参照番号を表す。
0068 図16は、重複排除ストレージ装置400の重複排除プログラム402−23−1の処理フロー例を示す。本プログラムは、常駐プログラムである。本プログラムは、一般的な重複排除スキームを有する。プログラムは、ステップ402−23−1−1からスタートする。ステップ402−23−1−2において、プログラムは、適切な重複排除ボリュームページを選択する。ステップ402−23−1−3において、プログラムは、選択された重複排除ボリュームページの変更マーカー402−13−3のセルをチェックする(図15参照)。セルの値が「Yes」の場合、ステップ402−23−1−4に進む。セルの値が「No」の場合、ステップ402−23−1−2に戻る。ステップ402−23−1−4では、重複排除ボリュームページからの重複排除プールページ番号402−13−4にリンクされる重複排除プールページのデータを読み出す。その後、ハッシュ値を計算し、ハッシュ値をハッシュ値402−13−2のセルに入力し、変更マーカー402−13−3セルを「No」に変える(図15参照)。ステップ402−23−1−5において、プログラムは、ハッシュ値セル402−13−2内の同一ハッシュ値を検索する。同一のハッシュ値を発見した場合、ステップ402−23−1−6に進む。同一のハッシュ値を発見しない場合、ステップ402−23−1−2に戻る。ステップ402−23−1−6において、プログラムは、元のページのデータと発見された重複排除プールページのデータを比較する。ステップ402−23−1−7において、データが同一であるかどうかを判断する。データが同一である場合、ステップ402−23−1−8に進む。データが異なる場合、ステップ402−23−1−2に戻る。ステップ402−23−1−8において、プログラムは、リンクを変更し、重複排除ボリュームページは検索された重複排除を参照するようになる。プログラムは元の重複排除プールページをフリーページとして再利用する。
0069 第二実施例
0070 第二実施例において、ストレージサブシステムは、データを複数の重複排除ストレージ装置に分散して格納する。そのため、重複排除ストレージ装置は、データを格納するためのストレージサブシステムと接続する。ストレージサブシステムも重複排除機能を有するため(しかし、ページサイズは重複排除ストレージ装置よりも大きい)、重複排除ストレージ装置によって重複排除されたデータは、再度ストレージサブシステムによって重複排除されうる。重複排除処理を最適化するため、重複排除ストレージ装置はデータを突き合わせてソートする。
0071 図17は、第二実施例による情報システムのハードウェア構成の例を示す。ここでは、図1に示す第一実施例との相違点のみを説明する。図17において、重複排除ストレージ装置400’は、ディスク406とディスクインターフェース405を有しない。
0072 図18は、第二実施例を示す図17の構造に適用する本発明の論理構成例を示す。ここでは、図2に示す第一実施例との相違点のみを説明する。ストレージサブシステム100は、重複排除ストレージ装置400’に搭載されるボリューム110dを有する。ストレージサブシステム100は、ホストコンピュータ300に搭載されるボリューム110hを有する。ボリューム110dと110hをまとめてボリューム110と呼ぶ。重複排除ストレージ装置400’は、ボリューム410に書き込むデータを格納する重複排除プール411を有する。重複排除プール411は、ディスク106からなるRAIDグループではない。重複排除プール411には、ボリューム110dを割り当てる。
0073 図19は、第二実施例による重複排除ストレージ装置400の論理構成例を示す。ここでは、図4に示す第一実施例との相違点のみを説明する。重複排除ストレージ装置は、ボリューム410に書き込まれるデータを格納する重複排除プール411を有する。重複排除プール411は、ディスク106からなるRAIDグループではない。重複排除プール411には、ボリューム110dが割当てられる。ボリューム110は、複数の仮想ボリュームページ110−1に分割される。内部RAIDグループ111iは、複数の容量プールページ111−1に分割される。一つの同じ容量プールページ111−1は、二つ以上の前記仮想ボリュームページ110−1から参照することができる。
0074 図20は、第二実施例による図17のストレージサブシステム100のメモリ102に格納されるテーブルおよびプログラムの例を示す。ここでは、図6に示す第一実施例との相違点のみを説明する。図20の動的階層化管理テーブル102−13は、図6のページ管理テーブル102−13−2の代わりに、ページ管理テーブル102−13−2’を新たに有する。
ページ管理テーブル102−13−2’は、仮想ボリュームページ110−1、容量プールページ111−1および重複排除の関係を管理する(図21参照)。動的階層化制御102−23は重複排除プログラム102−23−3を有し、プログラムは同じ容量プールページを探して重複排除を実行する(図22参照)。
0075 図21は、第二実施例によるプール管理テーブル102−13−2’の構成例を示す。ここでは、図10に示す第一実施例との相違点のみを説明する。本テーブルは、以下の欄を新たに含む。ハッシュ値102−13−2−7は、この重複排除ボリュームページに格納されたデータのハッシュ値を表す。MD5(Message Digest Algorithm 5)またはSHA−1(Secure Hash Algorithm 1)を使ってハッシュ値を計算する。変更マーカー102−13−2−6は、マーカーを表す。重複排除ボリュームページにライトI/Oが発生すると、マーカーは「Yes」に変わる。重複排除ボリュームページに対してハッシュ計算が行われ、計算値がハッシュ値102−13−2−7のセルに格納されると、マーカーは「No」に変わる。
0076 図22は、第二実施例によるストレージサブシステム100の重複排除プログラム102−23−3の処理フロー例を示す。このプログラムは、常駐プログラムである。このプログラムは、一般的な重複排除スキームを有する。プログラムは、ステップ102−23−3−1からスタートする。ステップ102−23−3−2において、プログラムは、適切な仮想ボリュームページを選択する。ステップ102−23−3−3において、プログラムは、選択された仮想ボリュームページの変更マーカー102−13−2−6のセルをチェックする。セルの値が「Yes」の場合、ステップ102−23−3−4に進む。セルの値が「No」の場合、ステップ102−23−3−2に戻る。ステップ102−23−3−4では、仮想ボリュームページからの仮想ボリュームページ番号102−13−2−2にリンクされる容量プールページのデータを読み出す。その後、ハッシュ値を計算し、ハッシュ値をハッシュ値102−13−2−7のセルに入力し、変更マーカー402−13−2−6セルを「No」に変える。ステップ102−23−3−5において、プログラムは、ハッシュ値セル102−13−2−7内の同一ハッシュ値を検索する。同一のハッシュ値を発見した場合、ステップ102−23−3−6に進む。同一のハッシュ値を発見しない場合、ステップ102−23−3−2に戻る。ステップ102−23−3−6において、プログラムは、元のページのデータと発見された容量プールページのデータを比較する。ステップ102−23−3−7において、データが同一であるかどうかを判断する。データが同一である場合、ステップ102−23−3−8に進む。データが異なる場合、ステップ102−23−2に戻る。ステップ102−23−3−8において、プログラムは、リンクを変更し仮想ボリュームページは発見された容量プールページを参照するようになる。プログラムは、元の容量プールページをフリーページとして再利用する。
0077 図23は、第二実施例による重複排除ストレージ装置400’のメモリ402に格納されるテーブルおよびプログラムの構成例を示す。ここでは、図14の第一実施例との相違点のみを説明する。重複排除制御402−23はソートプログラム402−23−2を新たに含み、プログラムは重複排除プール411内のデータをソートする。
0078 図24は、第二実施例による重複排除ストレージ装置400’のソートプログラム402−23−2の処理フロー例を示す。プログラムは、ステップ402−23−2−1からスタートする。ステップ402−23−2−2において、本プログラムは、ストレージサブシステム100に対して、他の接続された重複排除ストレージ装置400および代表重複排除ストレージ装置400に関する情報を要求する。重複排除ストレージ装置400は、複数のノードを表す。第一ノードである代表重複排除ストレージ装置は、メタデータサーバであり、メタデータおよび複数のノードに格納されるファイルの位置情報を有する。
0079 ステップ402−23−2−3において、プログラムは当該重複排除ストレージ装置400が代表ストレージ装置であるか否かを判断する。当該重複排除ストレージ装置が代表である場合、ステップ402−2−4に進む。重複排除ストレージ装置が代表でない場合、ステップ402−2−7に進む。ステップ402−23−2−4において、本プログラムは重複排除管理テーブル402−13からハッシュ値402−13−2を読み出す。ステップ402−23−2−5において、プログラムは、同一ストレージサブシステム100に接続された他の重複排除ストレージ装置400のハッシュ値402−13−2を要求する。ステップ402−23−2−6において、プログラムはハッシュ値をソートする。いくつかの重複排除ストレージ装置が同じハッシュ値を有する場合、プログラムは当該重複排除ストレージ装置400と他の重複排除ストレージ装置400に対し、同じ仮想ボリュームページ110−1の同一ハッシュ値を有する重複排除プールページを移動してソートするよう要求する。例えば、第一の重複排除ストレージ装置は、ハッシュ値0xbb、0xaa、0xcc、0xddおよび0xeeのデータを有する。第二の重複排除ストレージ装置は、ハッシュ値0xaa、0xbb、0xdd、0xabおよび0xffのデータを有する。第一および第二の重複排除ストレージ装置は、ソートしたデータ0xaa、0xbbおよび0xddを仮想ボリュームページ110−1に位置する領域に移動して、仮想ボリュームページの空き領域を0データで埋める。このようにすると、データ0xaa、0xbbおよび0xddを有する仮想ボリュームページが第一および第二の重複排除ストレージ装置に接続する外部ボリューム111eに格納される。複数の外部ボリューム111eに含まれる複数の仮想ボリュームページには同じデータが格納される可能性があるが、そのような仮想ボリュームページは本プログラムで重複排除される。ステップ402−23−2−7において、プログラムは、代表重複排除ストレージ装置に対してソート結果を取得するよう要求する。ステップ402−23−2−8において、プログラムは終了する。
0080 第三実施例
0081 第三実施例において、バックアップサーバは、オブジェクトの特徴(例えば、オブジェクトタイプおよびバックアップ発生)およびオブジェクトのアドレスを認識する。バックアップサーバは、その情報をストレージサブシステムに提供する。ストレージサブシステムは、ページデータと受け取った情報を重複排除ストレージ装置に格納する。
0082 図25は、第三実施例による情報システムのハードウェア構成例を示す。ここでは、図1に示す第一実施例との相違点のみを説明する。バックアップサーバ600は、ネットワーク200を介してストレージサブシステム100に接続する。バックアップサーバ600はデータアドレスリスト601を有する(図26参照)。
0083 図26は、第三実施例によるバックアップサーバ600のデータアドレスリスト601の構成例を示す。このテーブルは、次の欄を有する。オブジェクト番号601−1は、オブジェクトのIDを表す。オブジェクトインデックス601−2は、オブジェクトの分類IDを表す。例えば、二つのオブジェクトは、同一オブジェクトのバックアップである。二つのオブジェクトは、オブジェクトインデックスセル601−2に同じ値を有する。ボリューム番号601−3は、オブジェクトが格納されるボリュームを表す。トップアドレス601−4は、オブジェクトが格納されるトップアドレスを表す。サイズ601−5は、オブジェクトのサイズを表す。
0084 図27は、第三実施例による重複排除ストレージ装置400のメモリ402に格納されるテーブルおよびプログラムの構成例を示す。ここでは、図6の第一実施例との相違点のみを説明する。図6のローカルコピー管理テーブル102−14は、図27には存在しない。動的階層化制御102−23は、ページ移動プログラム102−23−2の代わりにページ移動プログラム102−23−2’を新たに含む。ページ移動プログラム102−23−2’は、バックアップサーバ600から提供されたオブジェクト分類および配列情報に基づいて、二つの容量プールページ111−1間のデータ移動および割り当てを行う(図28参照)。図6のローカルコピーコントロール102−24は、図27には存在しない。
0085 図28は、第三実施例によるページ移動プログラム102−23−2’の処理フロー例を示す。プログラムは、102−23−2’−1から始まる。ステップ102−23−2’―2において、プログラムは、バックアップサーバ600からデータアドレスリスト601を受け取る。ステップ102−23−2’−3において、プログラムは、同じ分類のオブジェクトを探す。ステップ102−23−2’−4において、プログラムは、発見した同一分類のオブジェクトのデータと類似したオフセットを格納する容量プールページを探す。ステップ102−23−2’−5において、プログラムは、重複排除ストレージ装置400に接続される外部ボリューム111eおよび外部ボリューム111e内の容量プールページを選択する。ステップ102−23−2’−6において、プログラムは、発見した容量プールページを選択された外部ボリューム111eの選択された容量プールページに移動する。ステップ102−23−2’−7において、すべてのオブジェクトが移動されるまで、プログラムは、ステップ102−23−2’−3からステップ102−23−2’−5までを繰り返す。ステップ102−23−2’−8において、プログラムは終了する。
0086 当然のことながら、図1、図17および図25に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明の前記データ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
0087 説明では、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。しかし当業者にとっては、本発明を実施するためにこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、フロー図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
0088 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読取可能媒体上に記憶された命令を用いて実施してもよく、当該発明は、プロセッサによって実行された場合には、プロセッサに本発明の実施形態を実行される方法を実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてもよく、その他の実施形態は、ソフトウェアのみで実施されてもよい。さらに、説明された様々な機能は一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に広めることができる。ソフトウェアによって実施された場合、方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮およびまたは暗号化形式で命令を媒体に記憶することができる。
0089 上記により、本発明が高速RAID再構築構造の分配をする方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって明白なように、開示された特定の実施形態の代わりに、同じ目的を達成するために創出された構成を用いてもよい。本開示は、本発明のあらゆる適応例や変形例を対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示した特定の実施形態に限定するよう解釈されるべきではない。むしろ本発明の範囲は、以下の請求項によって判断されるべきものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
100 ストレージサブシステム
110s 正ボリューム
110p 副ボリューム
111 外部ボリューム
400 重複排除ストレージ装置
410 重複排除ボリューム

Claims (14)

  1. ストレージシステムであって、
    プロセッサおよびメモリを有するストレージコントローラと、
    外部装置に搭載される構成の複数の外部ボリュームおよび複数の第一ボリュームと、を有し、
    ストレージコントローラは、複数の外部ボリューム中の第一外部ボリューム内の複数の第一ボリュームの一つから取得される関連データを格納する制御を行う
    ことを特徴とするストレージシステム。
  2. 前記複数の第一ボリュームはプールから割り当てられ、当該プールは複数の外部ボリュームを含み、
    前記ストレージコントローラは、前記複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データが第一外部ストレージシステムにより重複排除されるように、前記第一外部ストレージシステムに搭載される第一外部ボリューム内の関連データを格納する制御を行う
    ことを特徴とする、請求項1に記載のストレージシステム。
  3. 前記ストレージコントローラは、前記複数の外部ボリュームの内、第二外部ボリューム内の複数の第一ボリューム中の内の別の第一ボリュームから得られる関連データを格納するよう制御を行い、
    複数の第一ボリューム中の前記別の第一ボリュームから得られる関連データが第二外部ストレージシステムにより重複排除されるよう、第二外部ボリュームが第二外部ストレージシステムに搭載される
    ことを特徴とする請求項2に記載のストレージシステム。
  4. 前記複数の第一ボリューム中の前記一つの第一ボリュームから得られる関連データが、前記一つの第一ボリュームのスナップショットであること
    を特徴とする請求項1に記載のストレージシステム。
  5. 前記複数の第一ボリューム中の前記一つの第一ボリュームから得られる関連データが、前記一つの第一ボリュームのバックアップを含む
    ことを特徴とする請求項1に記載のストレージシステム。
  6. それぞれがノードプロセッサおよびまたはノードメモリを有する、複数のノードと、
    プロセッサおよびメモリを含むストレージコントローラを有するストレージシステムと、
    を有するシステムであって、
    複数のノードの内の第一ノードが、前記複数のノードの内の他のノードによって各々計算されたハッシュ値を受け取り、該他のノードによって計算された該ハッシュ値に基づいてデータ配列を決定し、
    前記ストレージコントローラは前記他のノードから受け取ったデータの重複排除を行い、このデータは前記決定されたデータ配列に基づいて第一ノードによって配列される
    ことを特徴とするシステム。
  7. 前記複数のノードの内の他のノードによって行われる重複排除のデータサイズは、ストレージコントローラによって行われる重複排除のデータサイズより小さい
    ことを特徴とする、請求項6に記載のシステム。
  8. 前記第一ノードは、前記複数のノードに格納されるメタデータおよびファイルの位置情報を含むメタデータサーバである
    ことを特徴とする、請求項6に記載のシステム。
  9. 前記第一ノードは、前記ハッシュ値をソートし、同一のハッシュ値を有するデータについては、前記同一のハッシュ値を有するノード内の重複排除プールページを前記ストレージシステムの同一仮想ボリュームページに移動する
    ことを特徴とする、請求項6に記載のシステム。
  10. 前記ストレージシステムは、複数のプールボリュームおよび該複数のプールボリュームから割り当てられた複数のボリュームを含み、
    前記ストレージシステム内の複数のプールボリュームは、前記複数のノード内のボリュームに搭載される複数の外部ボリュームを含み、
    前記ストレージシステム内の複数のボリュームは、前記ノードに搭載されるボリュームを含む
    ことを特徴とする、請求項6に記載のシステム。
  11. ストレージシステムであって、
    プロセッサおよびメモリを有するストレージコントローラと、
    複数のプールボリュームと、を有し、
    ストレージコントローラはサーバからオブジェクトデータを受け取り、該オブジェクトデータを複数のプールボリュームに割り当て、
    複数のプールボリュームは、外部装置に搭載される構成の複数の外部ボリュームを含み、
    ストレージコントローラは、バックアップサーバから受け取るオブジェクト割り当て情報に基づいて、複数のプールボリュームにオブジェクトデータを格納する制御を行う
    ことを特徴とする、ストレージシステム。
  12. 前記複数のプールボリュームの第一プールボリュームに割り当てられたオブジェクトデータが第一外部ストレージシステムによって重複排除されるよう、第一プールボリュームは第一外部ストレージシステムに搭載される
    ことを特徴とする、請求項11に記載のストレージシステム。
  13. 前記オブジェクト割り当て情報は、ストレージシステム内の各バックアップデータの位置および関係情報から得られるオブジェクト分類および配列情報からなる
    ことを特徴とする、請求項11に記載のストレージシステム。
  14. 前記オブジェクト分類および配列情報に基づいて、前記ストレージコントローラは前記オブジェクトデータから同じ分類オブジェクトを選択し、当該選択された同じ分類オブジェクトでの同じ容量プールページを選択し、複数のプールボリュームの中の一つの外部ボリュームにおける容量プールページを選択し、前記選択された同じ分類オブジェクトで発見された同じ容量プールページを前記一つの外部ボリューム内の選択された容量プールページに移動する
    ことを特徴とする、請求項13に記載のストレージシステム。
JP2012140296A 2011-08-29 2012-06-22 階層ストレージシステムの重複排除効率の向上 Expired - Fee Related JP5980588B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/219,882 2011-08-29
US13/219,882 US8965856B2 (en) 2011-08-29 2011-08-29 Increase in deduplication efficiency for hierarchical storage system

Publications (2)

Publication Number Publication Date
JP2013047933A true JP2013047933A (ja) 2013-03-07
JP5980588B2 JP5980588B2 (ja) 2016-08-31

Family

ID=47745357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012140296A Expired - Fee Related JP5980588B2 (ja) 2011-08-29 2012-06-22 階層ストレージシステムの重複排除効率の向上

Country Status (2)

Country Link
US (1) US8965856B2 (ja)
JP (1) JP5980588B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016031051A1 (ja) * 2014-08-29 2016-03-03 株式会社日立製作所 ストレージ装置
WO2016088258A1 (ja) * 2014-12-05 2016-06-09 株式会社日立製作所 ストレージシステム、バックアッププログラム及びデータ管理方法
WO2017109822A1 (ja) * 2015-12-21 2017-06-29 株式会社日立製作所 重複排除機能を有するストレージシステム
US10037161B2 (en) 2015-10-21 2018-07-31 Kabushiki Kaisha Toshiba Tiered storage system, storage controller, and method for deduplication and storage tiering
JP2018532166A (ja) * 2016-09-28 2018-11-01 華為技術有限公司Huawei Technologies Co.,Ltd. 記憶システムにおける重複排除のための方法、記憶システムおよびコントローラ
US10185495B2 (en) 2016-01-21 2019-01-22 Nec Corporation Block storage device having hierarchical disks with different access frequencies
US10628069B2 (en) 2016-06-03 2020-04-21 Hitachi Ltd. Management apparatus for managing and reduplication of volumes of a storage system with respect to OS type

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5561303B2 (ja) * 2012-03-30 2014-07-30 日本電気株式会社 データ複製システム、データ複製方法、及びそのプログラム
US8996478B2 (en) * 2012-10-18 2015-03-31 Netapp, Inc. Migrating deduplicated data
CN103414588B (zh) * 2013-08-12 2017-02-08 华为技术有限公司 一种vtl备份方法及vtl节点
WO2015073010A1 (en) * 2013-11-14 2015-05-21 Hitachi, Ltd. Method and apparatus for optimizing data storage in heterogeneous environment
US9529545B1 (en) * 2013-12-26 2016-12-27 EMC IP Holding Company LLC Managing data deduplication in storage systems based on storage space characteristics
KR102218732B1 (ko) 2014-01-23 2021-02-23 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9886457B2 (en) 2014-03-10 2018-02-06 International Business Machines Corporation Deduplicated data processing hierarchical rate control in a data deduplication system
JP6561765B2 (ja) * 2015-10-23 2019-08-21 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
US10049053B1 (en) * 2015-12-31 2018-08-14 EMC IP Holding Company LLC Classifying performance of an external storage resource pool associated with a performance tier in a federated tiered storage system for overload avoidance and auto-tiering
US10705752B2 (en) 2018-02-12 2020-07-07 International Business Machines Corporation Efficient data migration in hierarchical storage management system
JP7248267B2 (ja) * 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127028A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
JP2008084254A (ja) * 2006-09-29 2008-04-10 Hitachi Ltd データマイグレーション方法及び情報処理システム
JP2008282382A (ja) * 2007-05-08 2008-11-20 Hitachi Ltd 仮想化されたストレージ領域に関するデータのバックアップおよび復元を行う方法および装置
WO2011006859A1 (en) * 2009-07-16 2011-01-20 International Business Machines Corporation An integrated approach for deduplicating data in a distributed environment that involves a source and a target
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
WO2011099099A1 (ja) * 2010-02-10 2011-08-18 日本電気株式会社 ストレージ装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928526B1 (en) 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
JP4462852B2 (ja) 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
JP2007066259A (ja) 2005-09-02 2007-03-15 Hitachi Ltd 計算機システムとストレージシステム並びにボリューム容量拡張方法
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
US7920700B2 (en) * 2006-10-19 2011-04-05 Oracle International Corporation System and method for data encryption
US7853750B2 (en) * 2007-01-30 2010-12-14 Netapp, Inc. Method and an apparatus to store data patterns
US7877556B2 (en) 2007-03-30 2011-01-25 Hitachi, Ltd. Method and apparatus for a unified storage system
US20090013141A1 (en) * 2007-07-02 2009-01-08 Junji Kinoshita Information leakage detection for storage systems
US8370569B2 (en) * 2008-09-17 2013-02-05 Netapp, Inc. Method for remote data back up with de-duplication and recovery from clustered secondary storage arrays
US8385192B2 (en) * 2009-08-11 2013-02-26 International Business Machines Corporation Deduplicated data processing rate control
JP5434705B2 (ja) * 2010-03-12 2014-03-05 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
US8370593B2 (en) 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127028A (ja) * 2004-10-27 2006-05-18 Hitachi Ltd 記憶システム及び記憶制御装置
JP2008084254A (ja) * 2006-09-29 2008-04-10 Hitachi Ltd データマイグレーション方法及び情報処理システム
JP2008282382A (ja) * 2007-05-08 2008-11-20 Hitachi Ltd 仮想化されたストレージ領域に関するデータのバックアップおよび復元を行う方法および装置
WO2011006859A1 (en) * 2009-07-16 2011-01-20 International Business Machines Corporation An integrated approach for deduplicating data in a distributed environment that involves a source and a target
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
WO2011099099A1 (ja) * 2010-02-10 2011-08-18 日本電気株式会社 ストレージ装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016031051A1 (ja) * 2014-08-29 2016-03-03 株式会社日立製作所 ストレージ装置
WO2016088258A1 (ja) * 2014-12-05 2016-06-09 株式会社日立製作所 ストレージシステム、バックアッププログラム及びデータ管理方法
US10037161B2 (en) 2015-10-21 2018-07-31 Kabushiki Kaisha Toshiba Tiered storage system, storage controller, and method for deduplication and storage tiering
WO2017109822A1 (ja) * 2015-12-21 2017-06-29 株式会社日立製作所 重複排除機能を有するストレージシステム
US10185495B2 (en) 2016-01-21 2019-01-22 Nec Corporation Block storage device having hierarchical disks with different access frequencies
US10628069B2 (en) 2016-06-03 2020-04-21 Hitachi Ltd. Management apparatus for managing and reduplication of volumes of a storage system with respect to OS type
JP2018532166A (ja) * 2016-09-28 2018-11-01 華為技術有限公司Huawei Technologies Co.,Ltd. 記憶システムにおける重複排除のための方法、記憶システムおよびコントローラ

Also Published As

Publication number Publication date
US8965856B2 (en) 2015-02-24
US20130054894A1 (en) 2013-02-28
JP5980588B2 (ja) 2016-08-31

Similar Documents

Publication Publication Date Title
JP5980588B2 (ja) 階層ストレージシステムの重複排除効率の向上
EP3399444B1 (en) Optimized record lookups
US8539148B1 (en) Deduplication efficiency
US8775388B1 (en) Selecting iteration schemes for deduplication
Paulo et al. A survey and classification of storage deduplication systems
US8712976B1 (en) Managing deduplication density
US8977812B1 (en) Iterating in parallel for deduplication
US8805796B1 (en) Deduplicating sets of data blocks
US8583607B1 (en) Managing deduplication density
WO2017013758A1 (ja) データベース検索システム及びデータベース検索方法
US8683153B1 (en) Iterating for deduplication
US8538933B1 (en) Deduplicating range of data blocks
US9229870B1 (en) Managing cache systems of storage systems
JP2013222457A (ja) データ位置の管理方法および装置
US11256678B2 (en) Reconstruction of links between logical pages in a storage system
US9846718B1 (en) Deduplicating sets of data blocks
US11099940B1 (en) Reconstruction of links to orphaned logical pages in a storage system
US11061827B2 (en) Metadata representation for enabling partial page duplication
JP2019079448A (ja) ストレージシステム及びストレージシステムの制御方法
US10048885B1 (en) Managing reclaiming storage space in file systems
CN109074308B (zh) 适应性的块转换表(btt)
US11334523B2 (en) Finding storage objects of a snapshot group pointing to a logical page in a logical address space of a storage system
US11210230B2 (en) Cache retention for inline deduplication based on number of physical blocks with common fingerprints among multiple cache entries
KR101525453B1 (ko) 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법
US11232043B2 (en) Mapping virtual block addresses to portions of a logical address space that point to the virtual block addresses

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160405

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160727

R150 Certificate of patent or registration of utility model

Ref document number: 5980588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees