(57)【特許請求の範囲】
【請求項１】
ストレージシステムであって、
プロセッサおよびメモリを有するストレージコントローラと、
正ボリュームおよび当該正ボリュームを共有する複数の副ボリュームと、
それぞれが外部ボリュームを有する複数の外部装置と
を有し、
前記ストレージコントローラは、前記複数の副ボリュームの一つから取得される前記正ボリュームに関連するデータを前記複数の外部装置の内の一つの外部ボリュームに格納し、
前記副ボリュームおよび前記外部ボリュームそれぞれは、複数のページに分割され、
前記複数の副ボリュームの同一アドレスのページを、前記外部ボリュームの内の一つのボリュームの複数のページに割り当て、
前記一つの外部ボリュームを有する前記外部装置は、当該一つの外部ボリュームに格納された前記関連するデータを重複排除する
ことを特徴とするストレージシステム。
【請求項２】
前記正ボリューム、前記複数の副ボリュームおよび前記外部ボリュームによりプールボリュームを構成し、
前記正ボリュームおよび前記複数の副ボリュームのデータを前記プールボリュームに格納し、当該格納したデータを前記プールボリューム内で移動させる
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記正ボリュームに関連するデータは、当該正ボリュームのスナップショットである
ことを特徴とする請求項１または２に記載のストレージシステム。
【請求項４】
前記正ボリュームに関連するデータは、当該正ボリュームのバックアップである
ことを特徴とする請求項１または２に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明はストレージシステムに関し、特に階層ストレージシステムの重複排除の効率を向上させる技術に関する。
【背景技術】
【０００２】
０００２    近年、重複排除技術が広く使われるようになってきた。この技術は二つの過程からなる。一つ目の過程は、同一のデータを見つけることである。二つ目の過程は二つのオブジェクト間で共有する同一のデータを見つけることである（「オブジェクト」は、「ファイル」「領域」等を含む）。各過程は、例えば、ハッシュテーブルとページ管理を利用した重複排除の制御方法について開示した特許文献１（米国特許第６，９２８，５２６号）に示されている。一つ目の過程はハッシュテーブルを利用する。ハッシュテーブルのハッシュ値は格納データから得られる。二つ目の過程はページ（セグメント）管理を利用する。二つのオブジェクトが同一のデータを有する場合、二つのオブジェクト内の各ページは同じ格納データを参照する。
【０００３】
０００３    一般的に、ページ数はストレージ容量の増加に伴って増える。ページのテーブル容量もまた、ページ数の増加に伴って増える。ストレージが多くのページと大きなテーブル容量を有する場合、複雑なテーブル構造を採用するとストレージのパフォーマンスは低下し、または高価なハードウェア構成を採用するとストレージの価格が上昇する。例えば、格納データ４ＫＢに対してハッシュデータが１２８ビットである場合、１ＰＢの格納データには４ＴＢのハッシュテーブルを必要とする。
【０００４】
０００４    この問題を解決するためには、特許文献２（米国特許出願公開２００８／０２４４１９６号）に記載された標準化ストレージインターフェースのストレージ機能での構造が効果的である。特許文献３（米国特許第７，７１１，８９６号）に記載される外部ボリューム機能の制御方法に関する技術を利用すると、ＶＴＬ（Virtual Tape Libraries）がブロックストレージインターフェースをサポートする場合、ストレージ装置に一つ以上のＶＴＬを搭載することができる。厳密に言えば、「ＶＴＬ」の用語は上記の文章では正確に使われていない。なぜならば「ＶＴＬ」とはストレージ装置がテープインターフェースと重複排除機能を有するということを意味するからである。このような構成により、ストレージ装置は自身の中に重複排除管理テーブル（ハッシュテーブルを含む）を備えることなく重複排除機能を提供することができる。ストレージ装置は外部ＶＴＬに対して重複排除機能の制御と管理を負荷分散することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第６，９２８，５２６号公報
【特許文献２】米国特許出願公開２００８／０２４４１９６号公報
【特許文献３】米国特許第７，７１１，８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
０００４    しかしながら、この構成においては、同じデータが二つのＶＴＬに格納されている場合、重複排除を行うことが難しい。なぜならば、ストレージ装置と各ＶＴＬは互いのＶＴＬに同じデータが格納されていることを認識できないからである。
【課題を解決するための手段】
【０００７】
０００５    本発明の実施例は、階層ストレージシステムの重複排除の効率を向上させる技術に関する。階層ストレージシステムはサーバ、ストレージ装置および複数のＶＴＬを含む。各ＶＴＬは重複排除機能を有する。ストレージ装置は、データを格納するためＶＴＬに接続する。サーバ、ストレージ装置またはＶＴＬはデータオブジェクト同士の配列および関係を認識している。ストレージ装置またはＶＴＬは配列および関係情報に基づいて格納データの位置を制御する。
【０００８】
０００６    第一実施例によると、ストレージ装置はＶＴＬに接続される複数の外部ボリュームを有する。ストレージ装置は、例えば、ローカルコピーペアのようなボリューム間の関係を認識している。もし、二つのボリュームが一つの同じボリュームのバックアップであった場合、バックアップボリューム同士は類似のデータを有する可能性がある。そのため、ストレージ装置は各バックアップボリュームの同じアドレス内のデータを同じＶＴＬに格納する。このようにすれば、重複データの削減効率を高めることができる。
【０００９】
０００７    第二実施例によると、ストレージ装置はＶＴＬに接続される複数の外部ボリュームを有する。ＶＴＬは、データ（または重複排除されたデータ）を格納するためにストレージ装置で提供されるボリュームを搭載する。ストレージ装置は重複排除機能を有し、ストレージ装置内のボリュームで使用するページサイズは、ＶＴＬ内のボリュームで使用するページサイズよりも大きい。ストレージ装置はその重複排除機能を使って各ＶＴＬ内のデータの重複排除を行う。各ＶＴＬは、ストレージ装置による重複排除を容易にするために、格納された重複排除データをソートする。
【００１０】
０００８    第三実施例によると、バックアップサーバはストレージ装置に格納される各バックアップデータの位置および関係を認識している。バックアップサーバはストレージ装置に対して、位置および関係情報を提供する。ストレージ装置は位置および関係情報に基づき、ページデータを格納するＶＴＬを選択する。
【００１１】
０００９    本発明の一つの態様によると、ストレージシステムは、プロセッサおよびメモリを有するストレージコントローラと、複数の第一ボリュームと、外部装置に搭載される構成の複数の外部ボリュームと、を有する。ストレージコントローラは、複数の外部ボリューム中の第一外部ボリュームに、複数の第一ボリュームの一つから取得される関連データを格納する制御を行う。
【００１２】
００１０    ある実施例によると、複数の第一ボリュームはプールから割り当てられ、該プールは複数の外部ボリュームを含む。ストレージコントローラは、複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データが、第一外部ストレージシステムにより重複排除されるよう、第一外部ストレージシステムに搭載される第一外部ボリュームへ関連データを格納する制御を行う。ストレージコントローラは、複数の外部ボリューム中の第二外部ボリュームに、複数の第一ボリューム中の別の第一ボリュームから取得される関連データを格納する制御を行う。複数の第一ボリューム中の前記別の第一ボリュームから取得される関連データが第二外部ストレージシステムにより重複排除されるよう、第二外部ボリュームが第二外部ストレージシステムに搭載される。複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データは、前記一つの第一ボリュームのスナップショットである。複数の第一ボリューム中の前記一つの第一ボリュームから取得される関連データは、前記一つの第一ボリュームのバックアップを含む。
【００１３】
００１１    本発明の別の態様によると、それぞれがノードプロセッサおよびまたはノードメモリを有する複数のノードと、プロセッサおよびメモリを含むストレージコントローラを有するストレージシステムとを有するシステムが提供される。複数のノードの内の第一ノードが、前記複数のノードの内の他のノードによって計算された複数のハッシュ値を受け取り、他のノードによって計算されたハッシュ値に基づいてデータ配列を決定する。ストレージコントローラは、他のノードから受け取ったデータの重複排除を行う。前記データは、前記決定されたデータ配列に基づいて第一ノードによって配列されたものである。
【００１４】
００１２    ある実施例によると、前記複数のノードの内の他のノードによって行われる重複排除のデータサイズは、ストレージコントローラによって行われる重複排除のデータサイズより小さい。前記第一ノードは、メタデータおよび複数のノードに格納されるファイルの位置情報を含むメタデータサーバである。第一ノードはハッシュ値をソートし、同一のハッシュ値を有するデータについては、同一のハッシュ値を有するノード内の重複排除プールページをストレージシステムの同一仮想ボリュームページに移動する。ストレージシステムは、複数のプールボリュームおよび該複数のプールボリュームから割り当てられた複数のボリュームを含む。ストレージシステム内の複数のプールボリュームは、複数のノード内のボリュームに搭載される複数の外部ボリュームを含む。ストレージシステム内の複数のボリュームは、ノードに搭載されるボリュームを含む。
【００１５】
００１３    本発明の別の態様によると、ストレージシステムであって、プロセッサおよびメモリを有するストレージコントローラと、複数のプールボリュームとを有するシステムが提供される。ストレージコントローラは、サーバからオブジェクトデータを受け取り、オブジェクトデータを複数のプールボリュームに割り当てる。複数のプールボリュームは、外部装置に搭載される構成の複数の外部ボリュームを含む。ストレージコントローラは、バックアップサーバから受け取るオブジェクト割り当て情報に基づいて、複数のプールボリュームにオブジェクトデータを格納する制御を行う。
【００１６】
００１４    ある実施例によると、複数のプールボリュームの第一プールボリュームに割り当てられたオブジェクトデータが第一外部ストレージシステムによって重複排除されるよう、第一プールボリュームは第一外部ストレージシステムに搭載される。オブジェクト割り当て情報は、ストレージシステム内の各バックアップデータの位置および関係情報から得られるオブジェクト分類および配列情報からなる。前記オブジェクト分類および配列情報に基づいて、ストレージコントローラはオブジェクトデータからおなじ分類オブジェクトを選択し、選択された同じ分類オブジェクトの同じ容量を持つプールページを選択し、複数のプールボリュームの一つの外部ボリューム内の容量プールページを選択し、選択された同じ分類オブジェクトの発見された同じ容量を持つプールページを前記一つの外部ボリューム内の選択された容量プールページに移動する。
【００１７】
００１５    上述した本発明の特徴および効果、またその他の特徴や効果は、後述する本発明の具体的な実施例にかかる詳細な説明に基づいて当業者に明らかとなろう。
【発明の効果】
【００１８】
００４７    本発明においては、ストレージサブシステム又は重複排除ストレージ装置はデータオブジェクトの配列や分類を認識もしくは要求することができるため、これらの装置は重複排除機能の特徴を認識して、データの格納先を調整することができる。このようなやり方により、実質的な計算をすることなくストレージ効率を高めることができる。
【図面の簡単な説明】
【００１９】
【図１】００１６    図1は、第一実施例にかかる、本発明の方法および装置が適用される情報システムのハードウェア構成例を示す図である。
【図２】００１７    図２は、第一実施例にかかる図1の構成に適用される本発明の論理構成例を示す図である。
【図３】００１８    図３は、ボリュームおよびプールボリュームの論理構成例を示す図である。
【図４】００１９    図４は、第一実施例にかかる重複排除ストレージ装置の論理構成例を示す図である。
【図５】００２０    図５は、第一実施例の概念および期待される結果を示す図である。
【図６】００２１    図６は、第一実施例にかかる図１のストレージサブシステムのメモリに格納されるテーブルおよびプログラムの構成例を示す図である。
【図７】００２２    図７は、ボリューム管理テーブルの構成例を示す図である。
【図８】００２３    図８は、ＲＡＩＤグループ管理テーブルの構成例を示す図である。
【図９】００２４    図９は、プール管理テーブルの構成例を示す図である。
【図１０】００２５    図１０は、第一実施例にかかるページ管理テーブルの構成例を示す図である。
【図１１】００２６    図１１は、ペア管理テーブルの構成例を示す図である。
【図１２】００２７    図１２は、ページ割り当てプログラムの処理フロー例を示す図である。
【図１３】００２８    図１３は、ページ移動プログラムの処理フロー例を示す図である。
【図１４】００２９    図１４は、第一実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。
【図１５】００３０    図１５は、重複排除管理テーブルの構成例を示す図である。
【図１６】００３１    図１６は、重複排除ストレージ装置の重複排除プログラムの処理フロー例を示す図である。
【図１７】００３２    図１７は、第二実施例にかかる情報システムのハードウェア構成例を示す図である。
【図１８】００３３    図１８は、第二実施例にかかる図１７の構成に適用される本発明の論理構成例を示す図である。
【図１９】００３４    図１９は、第二実施例にかかる重複排除ストレージ装置の論理構成例を示す図である。
【図２０】００３５    図２０は、第二実施例にかかる図１７のストレージサブシステムのメモリに格納されるテーブルおよびプログラムの構成例を示す図である。
【図２１】００３６    図２１は、第二実施例にかかるプール管理テーブルの構成例を示す図である。
【図２２】００３７    図２２は、第二実施例にかかるストレージサブシステムの重複排除プログラムの処理フロー例を示す図である。
【図２３】００３８    図２３は、第二実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。
【図２４】００３９    図２４は、第二実施例にかかる重複排除ストレージ装置のソートプログラムの処理フロー例を示す図である。
【図２５】００４０    図２５は、第三実施例にかかる情報システムのハードウェア構成例を示す図である。
【図２６】００４１    図２６は、第三実施例にかかるバックアップサーバのデータアドレスリストの構成例を示す図である。
【図２７】００４２    図２７は、第三実施例にかかる重複排除ストレージ装置のメモリに格納されるテーブルおよびプログラムの構成例を示す図である。
【図２８】００４３    図２８は、第三実施例にかかるページ移動プログラムの処理フロー例を示す図である。
【発明を実施するための形態】
【００２０】
００４４    以下の本発明についての詳細な説明では、開示の一部を成すとともに本発明を実施する例示的な実施形態の実例として示される添付図面を参照するが、本発明は図面の内容に限定されるものではない。図面において、類似する数字は複数の図面においてほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では、以下の説明および図面に示される通り様々な実施の形態を示すが、本発明は本明細書に置いて説明されかつ示される実施形態に限定されず、当業者が知っているであろう、又は知るようになり得るその他の実施形態をも含む。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の文言は、ある実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。ただし、本発明を実施するためにこれらの具体的かつ詳細な内容すべてが必要なわけではないことは、当業者にとって明らかであろう。状況によっては、曖昧な記載を避けるために、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示していない場合もある。
【００２１】
００４５    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズムおよび記号表現で示されている。これらのアルゴリズム記述及び記号表現は、データ処理分野の当業者がその新しいアイディアの本質を最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相応量の物理的操作を必要とする。必ずしもそうとは限らないが、通常はかかる数量は、格納、転送、組み合わせ、比較その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、記号、文字、用語、数字、命令等として言及することが時として便利である。但し、上記の及び類似の用語すべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることに留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた説明は、コンピュータシステムのレジスタ及びメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同等にあらわされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作またはプロセスを含み得る。
【００２２】
００４６    本発明は、本明細書における操作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構築された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶措置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において提示するアルゴリズム及び態様は、特定のコンピュータ又はその他の装置とは本質的に関係していない。様々な汎用システムを、本明細書の教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法を実施するためにより特化した装置を構築した方がよい場合も有り得る。さらに本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示内容を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００２３】
００４７    本発明の実施例は、以下に詳細に説明する通り、階層ストレージシステムの重複排除効率を向上させる装置、方法及びコンピュータプログラムに関する。一つのストレージサブシステムとそのストレージサブシステムに接続される複数の重複排除ストレージ装置を含む環境においては、同じデータが異なる重複排除ストレージ装置に格納されることがある。そのことにより、重複排除効率が低下してしまう。本発明においては、ストレージサブシステム又は重複排除ストレージ装置はデータオブジェクトの配列や分類を認識もしくは要求することができるため、これらの装置は重複排除機能の特徴を認識して、データの格納先を調整することができる。このようなやり方により、実質的な計算をすることなくストレージ効率を高めることができる。
【００２４】
００４８    第一実施例
【００２５】
００４９    第一の実施例において、ストレージ装置は、同じ正ボリュームを共有するいくつかのローカルコピーペアを有する。ストレージ装置は、共有される正ボリュームとペアになる副ボリュームの同一アドレス領域を同じ重複排除ストレージ装置に格納する。
【００２６】
００５０    図１は、第一実施例において、本発明の方法及び装置が適用される情報システムのハードウェア構成の例を示す。複数のホストコンピュータ３００とストレージサブシステム１００がネットワーク２００によって接続される。ストレージサブシステム１００と複数の重複排除ストレージ装置４００が他のネットワーク５００によって接続される。ストレージサブシステム１００は、ＣＰＵ１０１を有し、ＣＰＵ１０１はストレージサブシステム１００を制御し、メモリ１０２に格納されるプログラムを実行したりテーブルを参照したりする。メモリ１０２はプログラムやテーブルを格納する。ストレージサブシステム１００には、ネットワーク２００と接続するためのチャネルインターフェース１０３が具備される。ストレージサブシステム１００は、複数のディスク１０６と接続するためのディスクインターフェース１０４を有する。ストレージサブシステム１００はさらに、複数の重複排除ストレージ装置４００と接続するためのチャネルインターフェース１０５を有する。各重複排除ストレージ装置４００はＣＰＵ４０１を有し、ＣＰＵ４０１は重複排除ストレージ装置４００を制御し、メモリ４０２に格納されるプログラムを実行したりテーブルを参照したりする。メモリ４０２は、プログラムやテーブルを格納する。ストレージ装置４００はさらに、ネットワーク５００と接続するためのチャネルインターフェース４０３を有する。また、重複排除ストレージ装置４００はディスク４０６と接続するためのディスクインターフェース４０４を有する。
【００２７】
００５１    図２は、第一実施例を示す図１の構造に適用される本発明の論理構成の例を示すものである。ストレージサブシステム１００は、複数のボリューム１１０を有する。ボリューム１１０は、正ボリューム１１０ｐおよび副ボリューム１１０ｓに分類される。一つの正ボリューム１１０ｐと一つの副ボリューム１１０ｓとで一つのローカルコピーペアを形成する。ストレージサブシステム１００は、正ボリューム１１０ｐのスナップショットを副ボリューム１１０ｓに格納することができる。一つの正ボリューム１１０ｐは、複数の副ボリューム１１０ｓに共有され、複数のローカルコピーペアが形成される。正ボリューム１１０ｐは、ホストコンピュータ３００に接続され提供される。ストレージサブシステム１００は、内部ＲＡＩＤグループ１１１ｉおよび外部ボリューム１１１ｅを有する。内部ＲＡＩＤグループ１１１ｉおよび外部ボリューム１１１ｅをまとめてプールボリューム１１１とよぶ。各内部ＲＡＩＤグループ１１１ｉはディスク１０６を有する。各外部ボリューム１１１ｅは重複排除ストレージ装置４００から提供されるボリューム４１０を（重複排除ボリュームとして）搭載する。ストレージサブシステム１００はボリューム１１０内のデータをプールボリューム１１１に格納し、ストレージサブシステム１００はボリューム間で格納データを移動する。ストレージサブシステム１００は複数のプールボリューム１１１からなる動的階層化プールを有する。重複排除ストレージ装置４００は、ストレージサブシステム１００に搭載される重複排除ボリューム４１０を提供する。
【００２８】
００５２    図３は、ボリューム１１０およびプールボリューム１１１の論理構成例を示す。ボリューム１１０は、複数の仮想ボリュームページ１１０−１に分割される。プールボリューム１１１は、複数の容量プールページ１１１−１に分割される。ストレージサブシステム１００は、仮想ボリュームページ１１０−１と容量プールページ１１１−１との対応関係を管理する。データがボリューム１１０に書き込まれた場合、データはプールボリューム１１１に格納される。データ格納領域は、仮想ボリュームページ１１０−１と容量プールページ１１１−１との関係に基づいて決定される。
【００２９】
００５３    図４は、第一実施例に基づく重複排除ストレージ装置４００の論理構成の例を示すものである。重複排除ストレージ装置４００は、ストレージサブシステム１００に搭載されるボリューム４１０を提供する。重複排除ストレージ装置４００は、ボリューム４１０に書き込まれるデータを格納する重複排除プール４１１を提供する。重複排除プール４１１は、ディスク４０６からなる。ボリューム４１０は、複数の重複排除ボリュームページ４１０−１に分割される。重複排除プール４１１は、複数の重複排除プールページ４１１−１に分割される。一般的に、重複排除ボリュームページ４１０−１のサイズと重複排除プールページ４１１−１のサイズは、それぞれ、仮想ボリュームページ１１０−１のサイズおよび容量プールページ１１１−１のサイズよりも小さい。例えば、前者は４ＫＢであり、後者は４２ＭＢである。重複排除ストレージ装置４００は、重複排除ボリュームページ４１０−１と重複排除プールページ４１１−１との関係を管理する。複数の重複排除ボリュームページ４１０−１から一つの重複排除プールページ４１１−１を参照することができる。
【００３０】
００５４    図５は、第一実施例の概念および期待される結果を図示する。ストレージサブシステム１００において、複数の副ボリューム１１０ｓが一つの正ボリューム１１０ｐを共有する。この場合、複数の副ボリューム１１０ｓは、類似のデータを有する。複数の副ボリューム１１０ｓの同一アドレス領域に格納されるデータは、同一の外部ボリューム１１１ｅに格納される。このようにすれば、同一のデータが同一の重複排除ストレージ装置４００に格納されると期待できる。このような構成を確立するために、ストレージサブシステム１００は、一つの外部ボリューム１１１ｅからなる複数の容量プールページ１１１−１を、複数の副ボリューム１１０ｓの同一アドレスの仮想ボリュームページ１１０−１に割り当てる。
【００３１】
００５５    図６は、第一実施例に基づく図１のストレージサブシステム１００のメモリ１０２に格納されるテーブルおよびプログラムの構成例を示す。ボリューム管理テーブル１０２−１０は、ボリューム１１０の構成を管理する（図７参照）。ＲＡＩＤグループ管理テーブル１０２−１１は、内部ＲＡＩＤグループ１１１ｉおよび外部ボリューム１１１ｅを含むプールボリューム１１１の構成を管理する（図８参照）。動的階層化管理テーブル１０２−１３は、プール管理テーブル１０２−１３−１およびページ管理テーブル１０２−１３−２を有する。プール管理テーブル１０２−１３−１は、プールの構成を管理する（図９参照）。ページ管理テーブル１０２−１３−２は、仮想ボリュームページ１１０−１と容量プールページ１１１−１の関係を管理する（図１０参照）。ローカルコピー管理テーブル１０２−１４は、ペア管理テーブル１０２−１４−１およびデルタビットマップテーブル１０２−１４−２を有する。ペア管理テーブル１０２−１４−１は、ローカルコピーペアおよびローカルコピーペアを構成するボリュームを管理する（図１１参照）。デルタビットマップ管理テーブル１０２−１４−２は、ローカルコピーペアを構成する正ボリューム１００ｐと副ボリューム１１０ｓとのデータが異なる領域を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。
【００３２】
００５６    ボリュームＩ／Ｏ制御１０２−２０は、ボリューム１１０に対するリードＩ／ＯおよびライトＩ／Ｏを制御する。この技術は一般的に知られており、ここでは詳細に説明しない。外部ボリューム制御１０２−２１は、外部ボリューム１１１ｅに対するリードＩ／ＯおよびライトＩ／Ｏを制御する。この技術の詳細は、例えば、米国特許第７，７１１，８９６に記載されている。内部ディスク制御１０２−２２は、ディスク１０６に対するリードＩ／ＯおよびライトＩ／Ｏを制御し、冗長性（ミラーリングおよびパリティー演算）を制御する。この技術は一般的に知られており、ここでは詳細に説明しない。動的階層化制御１０２−２３は、ページ割り当てプログラム１０２−２３−１およびページ移動プログラム１０２−２３−２を有する。ページ割り当てプログラム１０２−２３−１は、ライトＩ／Ｏ又はキャッシュデステージが発生したとき、容量プールページ１１１−１を選択し仮想ボリュームページ１１０−１へ割り当てる（図１２参照）。ページ移動プログラム１０２−２３−２は、二つの容量プールページ１１１−１間でデータを移動し、割り当てを行う（図１３参照）。ローカルコピーコントロール１０２−２４は、ローカルコピーペアを形成する正ボリュームと副ボリューム間でデータをコピーする。この技術は一般的に知られており、ここでは詳細に説明しない。
【００３３】
００５７    図７は、ボリューム管理テーブル１０２−１０の構成例を示す。このテーブルは以下の欄を含む。ボリューム番号１０２−１０−１は、ボリューム１１０のＩＤを表す。ＬＵ情報１０２−１０−２は、接続可能なチャネルインターフェース（チャネルインターフェース１０５）番号およびＬＵ（ロジカルユニット）番号を表す。ボリューム容量１０２−１０−３は、仮想ボリュームの容量を表す。プール番号１０２−１０−４は、該ボリュームがデータを格納するプールのプールＩＤを表す。階層ポリシー情報１０２−１０−５は、該ボリュームが割り当てる容量プールページ１１１−１の属する階層の階層ＩＤを表す。
【００３４】
００５８    図８は、ＲＡＩＤグループ管理テーブル１０２−１１の構成例を示す。このテーブルは以下の欄を含む。ＲＡＩＤグループ番号１０２−１１−１は、ＲＡＩＤグループ（プールボリューム１１１）のＩＤを表す。このテーブルにおいて、外部ボリューム１１１ｅはＲＡＩＤグループとして扱われる。ディスクタイプ情報１０２−１１−２は、ディスクタイプを表す。もし、ＲＡＩＤグループが外部ボリュームである場合、「外部」という情報がセルに格納される。重複排除情報１０２−１１−３は、ＲＡＩＤグループにおける重複排除機能の有無を表す。もし、ＲＡＩＤグループが外部グループではない場合、セルには「Ｎｏ」と入力される。もし、ＲＡＩＤグループが外部ボリュームであり重複排除機能がない場合、セルには「Ｎｏ」と入力される。ＲＡＩＤグループが外部ボリュームであり重複排除機能がある場合、セルには「Ｙｅｓ」と入力される。ＲＡＩＤグループ容量１０２−１１−４は、ＲＡＩＤグループの容量を表す。ＲＡＩＤレベル１０２−１１−５は、ＲＡＩＤレベルおよびＲＡＩＤ構造を表す。もし、ＲＡＩＤグループが外部ボリュームである場合、セルには「外部」と入力される。デバイス番号１０２−１１−６は、ＲＡＩＤグループに含まれるデバイスの番号を表す。もし、ＲＡＩＤグループが内部ＲＡＩＤグループ１１１ｉである場合、セルにはＲＡＩＤグループに含まれるディスク１０６のＩＤを格納する。ＲＡＩＤグループが外部ボリューム１１１ｅである場合、セルには搭載されるボリュームのＷＷＰＮ（World Wide Port Number）およびＬＵＮ（Logical Unit   Number）を格納する。
【００３５】
００５９    図９は、プール管理テーブル１０２−１３−１の構成例を示す。このテーブルは、以下の欄を有する。ＲＡＩＤグループ番号１０２−１３−１−１は、プールボリューム１１１（内部ＲＡＩＤグループ１１１ｉおよび外部ボリューム１１１ｅ）のＩＤを表す。階層番号１０２−１３−１−２は、プール内のプールボリューム１１１の階層番号を表す。階層番号は、ディスクまたは外部ボリュームのタイプによって決定する。たとえば、ＳＳＤを使用する内部ＲＡＩＤグループはｔｉｅｒ０とする。ＳＡＳを使用する内部ＲＡＩＤグループはｔｉｅｒ１とする。重複排除機能を有する外部ボリュームはｔｉｅｒ２とする。使用ページ番号１０２−１３−１−３は、ＲＡＩＤグループの使用済み容量プールページのＩＤを表す。未使用ページ番号１０２−１３−１−４は、ＲＡＩＤグループの空き容量プールページのＩＤを表す。容量プールのページが割り当てられまたは移動される場合、容量プールページはこのリストから選択される。
【００３６】
００６０    図１０は、第一実施例による、ページ管理テーブル１０２−１３−２の構成例を示す。このテーブルは以下の欄を有する。ボリューム番号１０２−１３−２−１は、ボリューム１１０のＩＤを表す。仮想ボリュームページ番号１０２−１３−２−２は、ボリュームの仮想ボリュームページ１１０−１のＩＤを表す。アクセス情報１０２−１３−２−３は、階層を最適化するためのＩ／Ｏ頻度を表す。ＲＡＩＤグループ番号１０２−１３−２−４は、仮想ボリュームページが参照するプールボリューム１１１のＩＤを表す。容量プールページ番号１０２−１３−２−５は、仮想ボリュームページが参照する容量プールページ１１１−１のＩＤを表す。
【００３７】
００６１    図１１は、ペア管理テーブル１０２−１４−１の構成例を示す。このテーブルは、以下の欄を含む。ペアＩＤ１０２−１４−１−１は、ローカルコピーペアのＩＤを表す。正ボリューム番号１０２−１４−１−２は、正ボリューム１１０ｐのＩＤを表す。副ボリューム番号１０２−１４−１−３は、副ボリューム１１０ｓのＩＤを表す。ペア状態１０２−１４−１−５は、「ＣＯＰＹ」、「ＰＳＵＳ」および「ＰＡＩＲ」の各ペア状態を表す。ペア状態が「ＣＯＰＹ」である場合、ストレージサブシステムは正ボリュームの全データをペアの副ボリュームにコピーする。初期コピーが終了すると、「ＣＯＰＹ」状態は「ＰＡＩＲ」状態に変更される。ペア状態が「ＰＡＩＲ」である場合、ストレージサブシステムは正ボリュームのスナップショットをペアの副ボリュームに格納する。ストレージサブシステムがスナップショットをとると、「ＰＡＩＲ」状態は「ＰＳＵＳ」状態に変更される。
【００３８】
００６２    図１２は、ページ割り当てプログラム１０２−２３−１の処理フロー例を示す。該プログラムは、容量プールページに割り当てられるべき仮想ボリュームページ番号を有するボリューム１１０に対するライトＩ／Ｏが発生した場合、ボリュームＩ／Ｏ制御１０２−２０、外部ボリューム制御１０２−２１または内部ディスク制御１０２−２２に呼び出される。このプログラムは、ステップ１０２−２３−１−１から始まる。ステップ１０２−２３−１−２において、本プログラムは、当該ボリュームが外部ボリューム１１０ｅから容量プールページを提供されるべき状態にあるかどうかをチェックする。判断に使われる情報は、階層ポリシー情報１０２−１０−５に格納される（図７参照）。もし、容量プールページが外部ボリューム１１１ｅから割り当てられる場合、ステップ１０２−２３−１−３に進む。もし、容量プールページが外部ボリューム１１１ｅから割り当てられていない場合、ステップ１０２−２３−１−７に進む。ステップ１０２−２３−１−３において、プログラムは、ペア管理テーブル１０２−１４−１を参照してボリュームの属性をチェックする（図１１参照）。もし、ボリュームが副ボリュームである場合、ステップ１０２−２３−１−４に進む。もし、ボリュームが副ボリュームではない場合、ステップ１０２−２３−１−７に進む。ステップ１０２−２３−１−４において、本プログラムは、ペア管理テーブル１０２−１４−１を参照し、該副ボリュームとペアになる正ボリュームおよびその正ボリュームとペアになる他の副ボリュームを取得する。本プログラムは、指定アドレスと同一アドレスにある他の副ボリュームの仮想ボリュームページに対応する容量ボリュームページを見つける。さらに、本プログラムは、他の副ボリュームの仮想ボリュームページにリンクされる容量プールページが格納される外部ボリューム１１１ｅを取得する。
【００３９】
００６３    ステップ１０２−２３−１−５において、本プログラムは重複排除情報１０２−１１−３を参照し、外部ボリューム１１１ｅが重複排除機能を有するかどうかをチェックする（図８参照）。ボリュームが重複排除機能を有する場合、ステップ１０２−２３−１−６に進む。ボリュームが重複排除機能を有しない場合、ステップ１０２−２３−１−７に進む。ステップ１０２−２３−１−６において、本プログラムは、プール管理テーブル１０２−１３−１を参照して、未使用容量プールページをステップ１０２−２３−１−４で選択される外部ボリュームの指定された仮想ボリュームページに割り当てる（図９参照）。本プログラムは、ステップ１０２−２３−１−７において、プール管理テーブル１０２−１３−１を参照して、未使用容量プールページを適切なプールボリューム内の指定された仮想ボリュームページに割り当てる。ステップ１０２−２３−１−８で、プログラムは終了する。
【００４０】
００６４    図１３は、ページ移動プログラム１０２−２３−２の処理フロー例を示す。本プログラムは、常駐プログラムである。本プログラムは、ステップ１０２−２３−２−１からスタートする。ステップ１０２−２３−２−２において、プログラムは、適切な仮想ボリュームページを選択する。ステップ１０２−２３−２−３において、プログラムは、仮想ボリュームページにリンクした割り当て容量プールページが他のプールボリューム１１１に移動されるべきであるかどうかを、ページ管理テーブル１０２−１３−２を参照して判断する（図１０参照）。もし、移動すべきである場合、プログラムは移動対象階層を選択し、ステップ１０２−２３−２−４に進む。移動が必要でない場合は、ステップ１０２−２３−２−２に進む。ステップ１０２−２３−２−４において、本プログラムは、移動対象階層の属性を判断する。この情報はプール管理テーブル１０２−１３−１に格納されている（図９参照）。容量プールページが外部ボリューム１１１ｅから割り当てられている場合、プログラムはステップ１０２−２３−２−５に進む。容量プールページが外部ボリューム１１１ｅから割り当てられていない場合、ステップ１０２−２３−２−９に進む。ステップ１０２−２３−２−５において、プログラムは、ペア管理テーブル１０２−１４−１を参照し、ボリュームの属性を判断する。ボリュームが副ボリュームである場合、プログラムはステップ１０２−２３−２−６に進む。ボリュームが副ボリュームではない場合、ステップ１０２−２３−２−９に進む。
【００４１】
００６５    ステップ１０２−２３−２−６において、プログラムは、ペア管理テーブル１０２−１４−１を参照し、該副ボリュームとペアになる正ボリュームおよびその正ボリュームとペアになる他の副ボリュームを取得する。プログラムは、指定アドレスと同じアドレスにある他の副ボリュームの仮想ボリュームページの容量ボリュームページを探す。さらに、プログラムは、他の副ボリュームの仮想ボリュームページにリンクする容量プールページが格納される外部ボリューム１１１ｅを取得する。ステップ１０２−２３−２−７において、プログラムは、ペア管理テーブル１０２−１４−１を参照し、選択された移動対象プールボリュームの属性を判断する（図１１参照）。ボリュームが重複排除機能を有する外部ボリュームである場合、ステップ１０２−２３−２−８に進む。ボリュームが外部ボリュームでない場合または重複排除機能を有していない場合、ステップ１０２−２３−２−９に進む。ステップ１０２−２３−２−８において、プログラムは、プール管理テーブル１０２−１３−１を参照し、選択された重複排除機能を有する外部ボリュームの指定された仮想ボリュームページに対して未使用容量プールページを割り当てる。ステップ１０２−２３−２−９において、プール管理テーブル１０２−１３−１を参照し、指定された階層の適切なプールボリュームの指定された仮想ボリュームページに対して未使用容量プールページを割り当てる。ステップ１０２−２３−２−１０において、プログラムは、データを現在のページから新たに選択された容量プールページに移動し、仮想ボリュームページと容量プールページの間のリンクを変更する。その後、ステップ１０２−２３−２−２に戻る。
【００４２】
００６６    図１４は、第一実施例において、重複排除ストレージ装置４００のメモリ４０２に保存されるテーブルおよびプログラムの構成例を示す。メモリ４０２は、ボリューム管理テーブル４０２−１０と、ＲＡＩＤグループ管理テーブル４０２−１１と、重複排除管理テーブル４０２−１３と、ボリュームＩ／Ｏ制御４０２−２０と、ディスク制御４０２−２２と、重複排除制御４０２−２３を有する。ボリューム管理テーブル４０２−１０は、ボリューム４００の構成を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。ＲＡＩＤグループ管理テーブル４０２−１１は、ディスク４０６を有するＲＡＩＤグループ４１１の構成を管理する。この技術は一般的に知られており、ここでは詳細に説明しない。重複排除管理テーブル４０２−１３は、重複排除ボリュームページ４１０−１と重複排除プールページ４１１−１の関係を管理する（図１５参照）。ボリュームＩ／Ｏ制御４０２−２０は、ボリューム４１０に対するリードＩ／ＯおよびライトＩ／Ｏを制御する。この技術は一般的に知られており、ここでは詳細に説明しない。ディスク制御４０２−２２は、ディスク４０６に対するリードＩ／ＯおよびライトＩ／Ｏを制御し、冗長性（ミラーリングおよびパリティ演算）を制御する。この技術は一般的に知られており、ここでは詳細に説明しない。重複排除制御４０２−２３は、同一のデータを見つけ出し、重複排除を行う（図１３参照）。
【００４３】
００６７    図１５は、重複排除管理テーブル４０２−１３の構成例を示す。このテーブルは、下記の欄を含む。重複排除ボリュームページ番号４０２−１３−１は、重複排除ボリュームページのＩＤを表す。ハッシュ値４０２−１３−２は、該重複排除ボリュームページに格納されるデータのハッシュ値を表す。ＭＤ５（Message Digest Algorithm 5）またはＳＨＡ−１（Secure   Hash Algorithm 1）を使用してハッシュ値を計算する。変更マーカー４０２−１３−３は、マーカーを表す。重複排除ボリュームページにライトＩ／Ｏが発生すると、マーカーは「Ｙｅｓ」に変わる。重複排除ボリュームページに対してハッシュ値計算が行われ、結果がハッシュ値４０２−１３−２のセルに入力されると、マーカーは「Ｎｏ」に変わる。重複排除プールページ番号４０２−１３−４は、重複排除ボリュームページのデータを格納する重複排除プールページの参照番号を表す。
【００４４】
００６８    図１６は、重複排除ストレージ装置４００の重複排除プログラム４０２−２３−１の処理フロー例を示す。本プログラムは、常駐プログラムである。本プログラムは、一般的な重複排除スキームを有する。プログラムは、ステップ４０２−２３−１−１からスタートする。ステップ４０２−２３−１−２において、プログラムは、適切な重複排除ボリュームページを選択する。ステップ４０２−２３−１−３において、プログラムは、選択された重複排除ボリュームページの変更マーカー４０２−１３−３のセルをチェックする（図１５参照）。セルの値が「Ｙｅｓ」の場合、ステップ４０２−２３−１−４に進む。セルの値が「Ｎｏ」の場合、ステップ４０２−２３−１−２に戻る。ステップ４０２−２３−１−４では、重複排除ボリュームページからの重複排除プールページ番号４０２−１３−４にリンクされる重複排除プールページのデータを読み出す。その後、ハッシュ値を計算し、ハッシュ値をハッシュ値４０２−１３−２のセルに入力し、変更マーカー４０２−１３−３セルを「Ｎｏ」に変える（図１５参照）。ステップ４０２−２３−１−５において、プログラムは、ハッシュ値セル４０２−１３−２内の同一ハッシュ値を検索する。同一のハッシュ値を発見した場合、ステップ４０２−２３−１−６に進む。同一のハッシュ値を発見しない場合、ステップ４０２−２３−１−２に戻る。ステップ４０２−２３−１−６において、プログラムは、元のページのデータと発見された重複排除プールページのデータを比較する。ステップ４０２−２３−１−７において、データが同一であるかどうかを判断する。データが同一である場合、ステップ４０２−２３−１−８に進む。データが異なる場合、ステップ４０２−２３−１−２に戻る。ステップ４０２−２３−１−８において、プログラムは、リンクを変更し、重複排除ボリュームページは検索された重複排除プールページを参照するようになる。プログラムは元の重複排除プールページをフリーページとして再利用する。
【００４５】
００６９    第二実施例
【００４６】
００７０    第二実施例において、ストレージサブシステムは、データを複数の重複排除ストレージ装置に分散して格納する。そのため、重複排除ストレージ装置は、データを格納するためのストレージサブシステムと接続する。ストレージサブシステムも重複排除機能を有するため（しかし、ページサイズは重複排除ストレージ装置よりも大きい）、重複排除ストレージ装置によって重複排除されたデータは、再度ストレージサブシステムによって重複排除されうる。重複排除処理を最適化するため、重複排除ストレージ装置はデータを突き合わせてソートする。
【００４７】
００７１    図１７は、第二実施例による情報システムのハードウェア構成の例を示す。ここでは、図１に示す第一実施例との相違点のみを説明する。図１７において、重複排除ストレージ装置４００’は、ディスク４０６とディスクインターフェース４０４を有しない。
【００４８】
００７２    図１８は、第二実施例を示す図１７の構造に適用する本発明の論理構成例を示す。ここでは、図２に示す第一実施例との相違点のみを説明する。ストレージサブシステム１００は、重複排除ストレージ装置４００’に搭載されるボリューム１１０ｄを有する。ストレージサブシステム１００は、ホストコンピュータ３００に搭載されるボリューム１１０ｈを有する。ボリューム１１０ｄと１１０ｈをまとめてボリューム１１０と呼ぶ。重複排除ストレージ装置４００’は、ボリューム４１０に書き込むデータを格納する重複排除プール４１１を有する。重複排除プール４１１は、ディスク１０６からなるＲＡＩＤグループではない。重複排除プール４１１には、ボリューム１１０ｄを割り当てる。
【００４９】
００７３    図１９は、第二実施例による重複排除ストレージ装置４００の論理構成例を示す。ここでは、図４に示す第一実施例との相違点のみを説明する。重複排除ストレージ装置は、ボリューム４１０に書き込まれるデータを格納する重複排除プール４１１を有する。重複排除プール４１１は、ディスク１０６からなるＲＡＩＤグループではない。重複排除プール４１１には、ボリューム１１０ｄが割当てられる。ボリューム１１０は、複数の仮想ボリュームページ１１０−１に分割される。内部ＲＡＩＤグループ１１１ｉは、複数の容量プールページ１１１−１に分割される。一つの同じ容量プールページ１１１−１は、二つ以上の前記仮想ボリュームページ１１０−１から参照することができる。
【００５０】
００７４    図２０は、第二実施例による図１７のストレージサブシステム１００のメモリ１０２に格納されるテーブルおよびプログラムの例を示す。ここでは、図６に示す第一実施例との相違点のみを説明する。図２０の動的階層化管理テーブル１０２−１３は、図６のページ管理テーブル１０２−１３−２の代わりに、ページ管理テーブル１０２−１３−２’を新たに有する。
ページ管理テーブル１０２−１３−２’は、仮想ボリュームページ１１０−１、容量プールページ１１１−１および重複排除の関係を管理する（図２１参照）。動的階層化制御１０２−２３は重複排除プログラム１０２−２３−３を有し、プログラムは同じ容量プールページを探して重複排除を実行する（図２２参照）。
【００５１】
００７５    図２１は、第二実施例によるページ管理テーブル１０２−１３−２’の構成例を示す。ここでは、図１０に示す第一実施例との相違点のみを説明する。本テーブルは、以下の欄を新たに含む。ハッシュ値１０２−１３−２−７は、この重複排除ボリュームページに格納されたデータのハッシュ値を表す。ＭＤ５（Message Digest Algorithm 5）またはＳＨＡ−１（Secure   Hash Algorithm 1）を使ってハッシュ値を計算する。変更マーカー１０２−１３−２−６は、マーカーを表す。重複排除ボリュームページにライトＩ／Ｏが発生すると、マーカーは「Ｙｅｓ」に変わる。重複排除ボリュームページに対してハッシュ計算が行われ、計算値がハッシュ値１０２−１３−２−７のセルに格納されると、マーカーは「Ｎｏ」に変わる。
【００５２】
００７６    図２２は、第二実施例によるストレージサブシステム１００の重複排除プログラム１０２−２３−３の処理フロー例を示す。このプログラムは、常駐プログラムである。このプログラムは、一般的な重複排除スキームを有する。プログラムは、ステップ１０２−２３−３−１からスタートする。ステップ１０２−２３−３−２において、プログラムは、適切な仮想ボリュームページを選択する。ステップ１０２−２３−３−３において、プログラムは、選択された仮想ボリュームページの変更マーカー１０２−１３−２−６のセルをチェックする。セルの値が「Ｙｅｓ」の場合、ステップ１０２−２３−３−４に進む。セルの値が「Ｎｏ」の場合、ステップ１０２−２３−３−２に戻る。ステップ１０２−２３−３−４では、仮想ボリュームページからの仮想ボリュームページ番号１０２−１３−２−２にリンクされる容量プールページのデータを読み出す。その後、ハッシュ値を計算し、ハッシュ値をハッシュ値１０２−１３−２−７のセルに入力し、変更マーカー４０２−１３−２−６セルを「Ｎｏ」に変える。ステップ１０２−２３−３−５において、プログラムは、ハッシュ値セル１０２−１３−２−７内の同一ハッシュ値を検索する。同一のハッシュ値を発見した場合、ステップ１０２−２３−３−６に進む。同一のハッシュ値を発見しない場合、ステップ１０２−２３−３−２に戻る。ステップ１０２−２３−３−６において、プログラムは、元のページのデータと発見された容量プールページのデータを比較する。ステップ１０２−２３−３−７において、データが同一であるかどうかを判断する。データが同一である場合、ステップ１０２−２３−３−８に進む。データが異なる場合、ステップ１０２−２３−２に戻る。ステップ１０２−２３−３−８において、プログラムは、リンクを変更し仮想ボリュームページは発見された容量プールページを参照するようになる。プログラムは、元の容量プールページをフリーページとして再利用する。
【００５３】
００７７    図２３は、第二実施例による重複排除ストレージ装置４００’のメモリ４０２に格納されるテーブルおよびプログラムの構成例を示す。ここでは、図１４の第一実施例との相違点のみを説明する。重複排除制御４０２−２３はソートプログラム４０２−２３−２を新たに含み、プログラムは重複排除プール４１１内のデータをソートする。
【００５４】
００７８    図２４は、第二実施例による重複排除ストレージ装置４００’のソートプログラム４０２−２３−２の処理フロー例を示す。プログラムは、ステップ４０２−２３−２−１からスタートする。ステップ４０２−２３−２−２において、本プログラムは、ストレージサブシステム１００に対して、他の接続された重複排除ストレージ装置４００および代表重複排除ストレージ装置４００に関する情報を要求する。重複排除ストレージ装置４００は、複数のノードを表す。第一ノードである代表重複排除ストレージ装置は、メタデータサーバであり、メタデータおよび複数のノードに格納されるファイルの位置情報を有する。
【００５５】
００７９    ステップ４０２−２３−２−３において、プログラムは当該重複排除ストレージ装置４００が代表ストレージ装置であるか否かを判断する。当該重複排除ストレージ装置が代表である場合、ステップ４０２−２−４に進む。重複排除ストレージ装置が代表でない場合、ステップ４０２−２−７に進む。ステップ４０２−２３−２−４において、本プログラムは重複排除管理テーブル４０２−１３からハッシュ値４０２−１３−２を読み出す。ステップ４０２−２３−２−５において、プログラムは、同一ストレージサブシステム１００に接続された他の重複排除ストレージ装置４００のハッシュ値４０２−１３−２を要求する。ステップ４０２−２３−２−６において、プログラムはハッシュ値をソートする。いくつかの重複排除ストレージ装置が同じハッシュ値を有する場合、プログラムは当該重複排除ストレージ装置４００と他の重複排除ストレージ装置４００に対し、同じ仮想ボリュームページ１１０−１の同一ハッシュ値を有する重複排除プールページを移動してソートするよう要求する。例えば、第一の重複排除ストレージ装置は、ハッシュ値０ｘｂｂ、０ｘａａ、０ｘｃｃ、０ｘｄｄおよび０ｘｅｅのデータを有する。第二の重複排除ストレージ装置は、ハッシュ値０ｘａａ、０ｘｂｂ、０ｘｄｄ、０ｘａｂおよび０ｘｆｆのデータを有する。第一および第二の重複排除ストレージ装置は、ソートしたデータ０ｘａａ、０ｘｂｂおよび０ｘｄｄを仮想ボリュームページ１１０−１に位置する領域に移動して、仮想ボリュームページの空き領域を０データで埋める。このようにすると、データ０ｘａａ、０ｘｂｂおよび０ｘｄｄを有する仮想ボリュームページが第一および第二の重複排除ストレージ装置に接続する外部ボリューム１１１ｅに格納される。複数の外部ボリューム１１１ｅに含まれる複数の仮想ボリュームページには同じデータが格納される可能性があるが、そのような仮想ボリュームページは本プログラムで重複排除される。ステップ４０２−２３−２−７において、プログラムは、代表重複排除ストレージ装置に対してソート結果を取得するよう要求する。ステップ４０２−２３−２−８において、プログラムは終了する。
【００５６】
００８０    第三実施例
【００５７】
００８１    第三実施例において、バックアップサーバは、オブジェクトの特徴（例えば、オブジェクトタイプおよびバックアップ発生）およびオブジェクトのアドレスを認識する。バックアップサーバは、その情報をストレージサブシステムに提供する。ストレージサブシステムは、ページデータと受け取った情報を重複排除ストレージ装置に格納する。
【００５８】
００８２    図２５は、第三実施例による情報システムのハードウェア構成例を示す。ここでは、図1に示す第一実施例との相違点のみを説明する。バックアップサーバ６００は、ネットワーク２００を介してストレージサブシステム１００に接続する。バックアップサーバ６００はデータアドレスリスト６０１を有する（図２６参照）。
【００５９】
００８３    図２６は、第三実施例によるバックアップサーバ６００のデータアドレスリスト６０１の構成例を示す。このテーブルは、次の欄を有する。オブジェクト番号６０１−１は、オブジェクトのＩＤを表す。オブジェクトインデックス６０１−２は、オブジェクトの分類ＩＤを表す。例えば、二つのオブジェクトは、同一オブジェクトのバックアップである。二つのオブジェクトは、オブジェクトインデックスセル６０１−２に同じ値を有する。ボリューム番号６０１−３は、オブジェクトが格納されるボリュームを表す。トップアドレス６０１−４は、オブジェクトが格納されるトップアドレスを表す。サイズ６０１−５は、オブジェクトのサイズを表す。
【００６０】
００８４    図２７は、第三実施例による重複排除ストレージ装置４００のメモリ４０２に格納されるテーブルおよびプログラムの構成例を示す。ここでは、図６の第一実施例との相違点のみを説明する。図６のローカルコピー管理テーブル１０２−１４は、図２７には存在しない。動的階層化制御１０２−２３は、ページ移動プログラム１０２−２３−２の代わりにページ移動プログラム１０２−２３−２’を新たに含む。ページ移動プログラム１０２−２３−２’は、バックアップサーバ６００から提供されたオブジェクト分類および配列情報に基づいて、二つの容量プールページ１１１−１間のデータ移動および割り当てを行う（図２８参照）。図６のローカルコピーコントロール１０２−２４は、図２７には存在しない。
【００６１】
００８５    図２８は、第三実施例によるページ移動プログラム１０２−２３−２’の処理フロー例を示す。プログラムは、１０２−２３−２’−１から始まる。ステップ１０２−２３−２’―２において、プログラムは、バックアップサーバ６００からデータアドレスリスト６０１を受け取る。ステップ１０２−２３−２’−３において、プログラムは、同じ分類のオブジェクトを探す。ステップ１０２−２３−２’−４において、プログラムは、発見した同一分類のオブジェクトのデータと類似したオフセットを格納する容量プールページを探す。ステップ１０２−２３−２’−５において、プログラムは、重複排除ストレージ装置４００に接続される外部ボリューム１１１ｅおよび外部ボリューム１１１ｅ内の容量プールページを選択する。ステップ１０２−２３−２’−６において、プログラムは、発見した容量プールページを選択された外部ボリューム１１１ｅの選択された容量プールページに移動する。ステップ１０２−２３−２’−７において、すべてのオブジェクトが移動されるまで、プログラムは、ステップ１０２−２３−２’−３からステップ１０２−２３−２’−５までを繰り返す。ステップ１０２−２３−２’−８において、プログラムは終了する。
【００６２】
００８６    当然のことながら、図１、図１７および図２５に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明の前記データ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００６３】
００８７    説明では、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。しかし当業者にとっては、本発明を実施するためにこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、フロー図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００６４】
００８８    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読取可能媒体上に記憶された命令を用いて実施してもよく、当該発明は、プロセッサによって実行された場合には、プロセッサに本発明の実施形態を実行される方法を実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてもよく、その他の実施形態は、ソフトウェアのみで実施されてもよい。さらに、説明された様々な機能は一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に広めることができる。ソフトウェアによって実施された場合、方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮およびまたは暗号化形式で命令を媒体に記憶することができる。
【００６５】
００８９    上記により、本発明が高速ＲＡＩＤ再構築構造の分配をする方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって明白なように、開示された特定の実施形態の代わりに、同じ目的を達成するために創出された構成を用いてもよい。本開示は、本発明のあらゆる適応例や変形例を対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示した特定の実施形態に限定するよう解釈されるべきではない。むしろ本発明の範囲は、以下の請求項によって判断されるべきものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【符号の説明】
【００６６】
１００  ストレージサブシステム
１１０ｓ  正ボリューム
１１０ｐ  副ボリューム
１１１  外部ボリューム
４００  重複排除ストレージ装置
４１０  重複排除ボリューム
【図１】
0005980588.tif 000002
【図２】
0005980588.tif 000003
【図３】
0005980588.tif 000004
【図４】
0005980588.tif 000005
【図５】
0005980588.tif 000006
【図６】
0005980588.tif 000007
【図７】
0005980588.tif 000008
【図８】
0005980588.tif 000009
【図９】
0005980588.tif 000010
【図１０】
0005980588.tif 000011
【図１１】
0005980588.tif 000012
【図１２】
0005980588.tif 000013
【図１３】
0005980588.tif 000014
【図１４】
0005980588.tif 000015
【図１５】
0005980588.tif 000016
【図１６】
0005980588.tif 000017
【図１７】
0005980588.tif 000018
【図１８】
0005980588.tif 000019
【図１９】
0005980588.tif 000020
【図２０】
0005980588.tif 000021
【図２１】
0005980588.tif 000022
【図２２】
0005980588.tif 000023
【図２３】
0005980588.tif 000024
【図２４】
0005980588.tif 000025
【図２５】
0005980588.tif 000026
【図２６】
0005980588.tif 000027
【図２７】
0005980588.tif 000028
【図２８】
0005980588.tif 000029