JP2010182302A - メタデータグルーピングにより効率的なデータ重複削除を行なう方法と装置 - Google Patents

メタデータグルーピングにより効率的なデータ重複削除を行なう方法と装置 Download PDF

Info

Publication number
JP2010182302A
JP2010182302A JP2010016440A JP2010016440A JP2010182302A JP 2010182302 A JP2010182302 A JP 2010182302A JP 2010016440 A JP2010016440 A JP 2010016440A JP 2010016440 A JP2010016440 A JP 2010016440A JP 2010182302 A JP2010182302 A JP 2010182302A
Authority
JP
Japan
Prior art keywords
data
storage system
identifier
metadata
chunk
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
JP2010016440A
Other languages
English (en)
Other versions
JP5309043B2 (ja
Inventor
Taisuke Kaneda
泰典 兼田
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 JP2010182302A publication Critical patent/JP2010182302A/ja
Application granted granted Critical
Publication of JP5309043B2 publication Critical patent/JP5309043B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents

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

【課題】メタデータに関連する複数のグループを定義することにより、データストレージシステムにおいて識別子を確認するためのCPU時間を縮小する方法及びシステムを提供する。
【解決手段】システムは、識別子生成プログラムあるいはロジック、識別子確認用プログラムあるいはロジック、複数の識別子テーブルおよびメタデータマッピングテーブルから構成されている。データストリームあるいはデータブロック、ファイルはメタデータと共にデータストレージシステムに格納される。メタデータは、データとファイルの付加的情報を含んでいる。例えばアプリケーション、作成者、タイムスタンプ、OSタイプなどである。データストレージシステムあるいはバックアップ装置は、メタデータと関係付けた複数のグループを持つことが出来る。重複したデータの削除がグループ内で実行出来るように、各グループにはそれぞれ識別子テーブルがある。
【選択図】図1b

Description

0001 本発明は、全般的には、データストレージシステムにおいて効率的に記憶容量を使用するために、重複したデータブロックあるいはファイルを削除する方法と装置に関するものである。具体的には、本発明は、メタデータグルーピングによって重複したデータブロックおよびファイルを速やかに発見することに関連するものである。
0002 重複削除は、重複したデータストリーム、データブロックあるいはファイルを削除するよう設計された機能であり、データストレージシステムにおいて、非常に効率的なデータ保存を提供するためにデータストレージシステムとバックアップ装置に実施される。1つの実施例では、重複したデータを削除するために、識別子が、データ自体から生成される。識別子はハッシュまたはMD5の、SHA(セキュアハッシュアルゴリズム)として生成することができる。データストレージシステムがデータを受け取ると、識別子が計算される。それから、データストレージシステムは、同じ識別子が識別子テーブルに既に格納されているか否かをチェックする。同じ識別子が識別子テーブルにある場合、受信データはデータストレージシステムに保存されない。識別子テーブルに同じ識別子がない場合には、受信データが保存されることとなる。例えば256ビット以上の十分なビット長を備えたハッシュの利用は、競合をめったに引き起こさないことには注目すべきである。大きなデータ量を管理するには、多数の識別子の値を計算し別に管理せねばならない。この理由で、非常に大量の記憶容量を備えたデータストレージシステムにおいては、識別子を確認するのに長い時間がかかることがありうる。
0003 例えば、米国特許6,928,526号、題名“効率的なデータストレージシステム”は、重複したデータを削除する方法を開示している。データは、データ自体を使用して生成される識別子によって削除される。
米国特許6,928,526号公報
しかしながら、従来の技術は、メタデータに関連する複数のグループを定義することにより、データストレージシステムにおいて識別子を確認するためのCPU時間を縮小する方法及びシステムを提供していない。
0004 本発明の実施形態は、先行技術における前述の1つ以上の不備に取り組み、データストレージシステムまたはバックアップの装置において、重複したデータを削除する機能によって、識別子を確認するためのCPU時間を縮小する方法と装置を提供する。
0005 本発明の技法の一態様に従って、データストレージボリューム、データストレージボリュームに関連したメタデータを格納するメモリ、ストレージシステムをホストコンピュータに接続するように構成されたネットワークインターフェース、中央処理装置、を備えたストレージシステムが準備される。ストレージシステムは、ホストコンピュータから受け取ったデータから識別子を計算し、データがデータストレージボリュームに格納されているか否かを識別子とメタデータによって決定する。
0006 本発明の技法の別の態様に従って、データストレージボリューム、データストレージボリュームに関連したメタデータを格納するメモリ、ストレージシステムをホストコンピュータに接続するように構成されたネットワークインターフェース、中央処理装置、を備えたストレージシステムが準備される。ストレージシステムは、ホストコンピュータから受け取ったオブジェクト中のデータから識別子を計算し、識別子、メモリに格納されているメタデータ、およびオブジェクト中のメタデータによってデータストレージボリュームにデータが格納されているか否かを決定する。
0007 さらに、本発明の技法の別の態様に従って、チャンクプールを形成する多数のチャンクに分割されている多数のデータストレージ装置、ストレージシステムをホストコンピュータに接続するように構成されたネットワークインターフェース、中央処理装置とメモリを含むストレージコントローラ、を備えたストレージシステムにおいて実行される方法が提供される。発明の方法は、データストレージボリュームを供給し、ネットワークインターフェースによってホストコンピュータにデータストレージボリュームを利用可能にするステップと、ホストコンピュータからのデータストレージボリュームに向けられた書込コマンドを受信すると、書込コマンドに関連したデータに対応する識別子を計算するステップと、少なくとも1つの識別子グループへメタデータに基づいて識別子をグループ化するステップと、メタデータに関連した識別子グループ内で識別子の固有性を確認するステップと、識別子が識別子グループ内で固有な場合、チャンクプールからデータストレージボリュームに少なくとも1つのチャンクを割り付け、割り付けられた少なくとも1つのチャンクに書込コマンドに関連したデータを格納するステップと、を含んでいる。
0008 本発明に関連するさらなる態様は、一部分は以後の記述で述べられ、一部分は記述から明白になるか、もしくは発明の実施によって知るところとなるであろう。本発明の態様、特に、次の詳細な記述および最後尾に設けた請求項において指摘した態様は、要素と諸要素の組合せによって実現し達成することが出来る。
0009 先の記述および以下の記述の両方ともに、典型的なものであって説明のためだけのものであり、主張している発明や応用を如何なる方法においても制限するようには意図されていないことは、当然理解すべきことである。
0010 添付の図面は、この明細書に組み入れられ、この明細書の一部を構成して本発明の実施形態を例証し、記述と共に、本発明の技術の原理について説明し例示する役割を担っている。
具体的には:
0011 図1(a)は、本発明の概念が適用され得る情報システムの典型的な実施形態を示す。 図1(b)は、本発明の概念が適用され得る情報システムの典型的な実施形態を示す。 0012 図2は、データボリューム管理テーブルの典型的な実施形態を示す。 0013 図3は、チャンクテーブルの典型的な実施形態を示す。 0014 図4は固有のチャンク識別番号を使用したチャンクの識別を示す。 0015 図5は、チャンク状態テーブルの典型的な実施形態を示す。 0016 図6(a)および6(b)は、メタデータマッピングテーブルの典型的な実施形態を示す。 0017 図7は、識別子テーブルの典型的な実施形態を示す。 0018 図8は、ボリューム生成プロセスの典型的な実施形態を示す。 0019 図9は、メタデータマッピングテーブルの初期化プロセスの典型的な実施形態を示す。 0020 図10は、書込み動作の典型的な実施形態を示す。 0021 図11(a)は、書き込みコマンドの典型的な実施形態を示す。0022 図11(b)は、読み出しコマンドの典型的な実施形態を示す。 0023 図12は、読み出し動作の典型的な実施形態を示す。 0024 図13(a)は、本発明の方法が適用することができる情報システムの別の典型的な実施形態を示す。 図13(b)は、本発明の方法が適用することができる情報システムの別の典型的な実施形態を示す。 0025 図14は、ファイル管理テーブルの別の典型的な実施形態を示す。 0026 図15(a)は、メタデータマッピングテーブルの別の典型的な実施形態を示す。 図15(b)は、メタデータマッピングテーブルの別の典型的な実施形態を示す。 図15(c)は、メタデータマッピングテーブルの別の典型的な実施形態を示す。 図15(d)は、メタデータマッピングテーブルの別の典型的な実施形態を示す。 0027 図16は、書き込み動作の別の典型的な実施形態を示す。 0028 図17(a)は、書き込みコマンドの別の典型的な実施形態を示す。0029 図17(b)は、読み出しコマンドの別の典型的な実施形態を示す。 0030 図18は、読み出し動作の別の典型的な実施形態を示す。 0031 図19は、書き込み動作の別の典型的な実施形態を示す。 0032 図20は、ファイル管理テーブルの別の典型的な実施形態を示す。 0033 図21は、識別子テーブル統合プログラムによって表示されたスクリーンの典型的な実施形態を示す。 0034 図22は、識別子テーブル統合プロセスの典型的な実施形態を示す。 0035 図23は、書き込み動作のための修正済のチャンクテーブルを示す。 0036 図24は書き込みプロセスを示す。ここでの欄は、書き込みコマンドを受け取った後に非同期的に実行される。 0037 図25は、バックグラウンドでの重複削除のプロセスの典型的な実施形態を示す。 0038 図26は、本発明のシステムが実施され得るコンピュータプラットフォームの典型的な実施形態を示す。
0039 以下の詳細な説明において、添付の図面が参照されるであろうが、その中において、同一の要素は類似の数字で示されている。前述の添付の図面は、本発明の原理と一致する特定の実施形態および実施例を図示の形で示しているのであって、限定するために示しているのではない。これらの実施例は、当分野の業者が発明を実施することを可能にするほどに十分に詳細に記述されている。また、これ以外の実施例も可能であり、構造の変更および/または諸要素の置換が本発明の範囲および精神から外れることなく行なう事が可能なことも理解すべきである。したがって、次の詳細な説明は、限定する意味において解釈されるべきではない。
0040 発明の第1実施形態のシステム構成を以下記述する。図1は、本発明の方法が適用できる情報システムの典型的な実施形態を示す。第1の実施形態の情報システムは、少なくともホストコンピュータ10、ストレージ装置100、管理コンピュータ500、データネットワーク50およびマネジメントネットワーク90からなる。
0041 ホストコンピュータ10について以下記述する。少なくとも1台のホストコンピュータ10がデータネットワーク50によってストレージ装置100に接続される。特にこの実施形態では、6台のホストコンピュータ10a、10b、10c、10d、10eおよび10fが接続されている。少なくとも1つのOS13がホストコンピュータ上で実行される。アプリケーションプログラム14はOS13の上で実行することができる。OS13およびアプリケーションプログラム14のためのファイルおよびデータは、ストレージ装置100によって提供されるデータボリュームに格納される。OS13およびアプリケーションプログラム14は,ストレージ装置100へ書き込みおよび/または読み出しコマンドを出す。ホストコンピュータ10a、10bおよび10cはタイプAのOSを実行し、ホストコンピュータ10d、10eおよび10fはタイプBのOSを実行する。OSタイプはベンダーのOS名およびバージョン番号を使用して定義することが出来る。
0042 ストレージ装置1OOについて以下記述する。情報システムは、ストレージコントローラ150および1台以上のHDD101から構成される少なくとも1つのストレージ装置100を備えている。ストレージ装置100は、1つ以上のデータボリューム111をホストコンピュータ10に供給する。
0043 管理コンピュータ500について以下記述する。情報システムは、マネジメントネットワーク90によってストレージ装置100を接続している、少なくとも1台の管理コンピュータ500を備えている。
0044 データネットワーク50について以下記述する。ホストコンピュータ10およびストレージ装置100はデータネットワーク50によって接続している。
この実施形態においては、データネットワーク50はファイバーチャンネルプロトコルを使用し実装されている。しかしながら、イーサネット(登録商標)やインフィニバンドのような他のネットワーク接続も、この目的に同様に使用することができる。ネットワークスイッチとハブはデータネットワーク50の構成要素を互いに接続するために使用することができる。
図1では、ファイバーチャンネルスイッチ55(FCSW55)が、データネットワーク50の構成要素を互いに接続するために使用されている。この目的のために、ホストコンピュータ10およびストレージ装置100はファイバーチャンネルデータネットワーク50に接続するために、1つ以上のファイバーチャンネルインターフェースボード(FCIF)を組込んでいる。
0045 マネジメントネットワーク90について以下記述する。ストレージ装置100はマネジメントネットワーク90によって管理コンピュータ500に接続されている。この実施形態においてマネジメントネットワーク90はイーサネット(登録商標)プロトコルを使用し実装されている。しかしながら、他のネットワーク相互接続や、他の接続方法が、この目的に同様に使用することができる。ネットワークスイッチとハブはマネジメントネットワーク90の構成要素を互いに接続するために使用することができ、本発明の本実施形態においては、ストレージ装置100および管理コンピュータ500は、イーサネット(登録商標)マネジメントネットワーク90に接続するために1つ以上のイーサネット(登録商標)インタフェースボード(イーサIF)を持っている。
0046 ホストコンピュータ10について以下詳細に記述する。ホストコンピュータ10は、メモリ12に格納したプログラムを実行するためのCPU11、プログラムとデータを格納するためのメモリ12、データネットワーク50に接続するためのFCIF15、から構成されている。この実施形態では、CPU11は、メモリ12に格納された少なくとも3つのプログラムを実行する。
0047 本発明のこの実施形態においては、メモリ12は、オペレーティングシステムプログラム13(OS13)、アプリケーションプログラム14、OS13及び/またはアプリケーションプログラム14をインストールするためのインストーラプログラム15、を格納している。
0048 管理コンピュータ500について以下詳細に記述する。管理コンピュータ500は、メモリ520に格納したプログラムを実行するためのCPU510、プログラムとデータを格納するためのメモリ520、マネジメントネットワーク90に接続するためのイーサIF590、から構成されている。
0049 CPU510は、メモリ520に格納された少なくとも3つのプログラムを実行する。この実施形態において、メモリ520は、ストレージ装置100に、データボリュームを供給することを要求するための、データボリューム供給要求プログラム521、ストレージ装置100への重複削除の範囲の定義の要求を出すための、重複削除範囲定義要求プログラム522、管理スクリーンを表示し、2台の識別子テーブルの違いの比率を計算し、識別子テーブル統合の要求を、ストレージ装置100に出すための、識別子テーブル統合プログラム523、を格納している。
0050 ストレージ装置100について以下詳細に記述する。ストレージ装置100は、データを格納するための1台以上のHDD101、およびホストコンピュータへのデータボリュームを提供するための1台以上のストレージコントローラ150から構成されている。ストレージコントローラ150は、メモリ152に格納したプログラムを実行するためのCPU151、プログラムおよびデータを格納するためのメモリ152、データネットワーク50に接続するためのFCIF155、HDD101に接続するためのSATA IF156(HDDにFC、SCSI SASのような別のインターフェースがある場合、適切なインターフェースが実装されねばならない。)、ホストコンピュータから受け取り、HDDから読み出されたデータを格納するためのキャッシュ153、マネジメントネットワーク90に接続するためのイーサIF159、から構成されている。
0051 CPU 151は、メモリ152に格納された少なくとも4つのプログラムを実行する。この実施形態においては、メモリ152は、ホストコンピュータ10からの、少なくとも読み出し/書込みコマンドに応答するための応答プログラム161、ボリュームを生成し、ホストコンピュータ10にそれを割り付けるためのデータボリューム割付けプログラム162、メタデータマッピングテーブルを更新するための重複削除範囲定義プログラム163、ホストコンピュータ10から転送されるデータからメッセージダイジェスト5(MD5)を計算し、同じ識別子が識別子テーブルに既に格納されているか否かを確認するための重複削除プログラム165を格納している。同じ識別子が見つからない場合には、重複削除プログラム165はデータを格納する。同じ識別子が見つかった場合には、重複削除プログラム165はデータを格納しない。この技術分野における同業者には、本発明のシステムは、MD5アルゴリズムにのみ限定されるものではないことは理解されよう。SHAのような、他の適切なハッシュあるいはダイジェスト機能も、本発明に同様に適用することができる。
0052 重複削除プログラム165におけるMD5を計算し識別子機能を確認する機能は、計算と確認の加速のためにゲートアレイあるいはFPGA(フィールドプログラマブルゲートアレイ)上にハードウェアロジックとして実装することもできる。
0053 データボリューム管理テーブルについて以下詳細に記述する。データボリューム管理テーブル166は生成されたボリュームを管理する。図2に示されるように、データボリューム管理テーブル166は、ボリューム番号を格納するための“ボリューム番号”列16601、データボリュームサイズ(ブロックの数)の格納のための“サイズ”列16602、ボリューム生成時に、管理コンピュータ500から付与するメタデータの格納のための“メタデータ”列16603、チャンクテーブル番号の格納のための“チャンクテーブル番号”列16604、から構成されている。
0054 チャンクテーブルについて以下詳細に記述する。チャンクテーブル167は、データボリュームのLBA(論理的ブロックアドレス)と識別子の関係についての情報を格納する。識別子はMD5および別のシーケンシャル番号から構成される。シーケンシャル番号は、MD5に競合が生じた場合に使用される。各データボリュームはそれぞれ自分のチャンクテーブル167を持つ。LBAは,アクセスブロック位置を指定するために、ホストコンピュータによって読み/書き動作に使用される。図3に示されるように、チャンクテーブル167は、LBAを格納するための“LBA”列16701および識別子を格納するための“識別子”列16702から構成されている。
0055 チャンク状態表について以下詳細に説明する。ストレージ装置100のHDDは多数のデータブロックで構成されている。データブロックのサイズは、通常、最近の製品では512バイトである。この実施形態では、チャンクは1つのデータブロックからなる。したがって、この実施形態では、チャンクのサイズは512バイトである。しかし、他のどのようなチャンクサイズも同様に使用することができる。チャンクはそれぞれ図4に示すように、一つずつ識別するために固有の番号を持っている。チャンク状態テーブル170は、チャンクの使用状況を管理する。図5は、この実施形態におけるチャンク状態表170の典型的な実施例を示す。チャンク状態表の典型的な実施形態はチャンク番号を格納するための“チャンク番号”列17001、チャンクが使用されているか否かを示す格納状態情報のための“状態”列17002、から構成されている。データが保存されている場合、重複削除プログラム165はチャンク状態表170を使用して、未使用のチャンクを探す。
0056 メタデータマッピングテーブルについて以下詳細に記述する。メタデータマッピングテーブル180は、メタデータと識別子テーブル185の関係についての情報を格納する。データボリュームに書かれたデータは、メタデータマッピングテーブル180で指定された識別子テーブルによって確認される。図6に示されるように、メタデータマッピングテーブル180は、ボリュームに割り当てられたメタデータを保持するための“メタデータ”列18001と、識別子テーブル番号を保持するための“識別子テーブル番号”列18002と、から構成されている。
0057 識別子テーブルについて以下詳細に記述する。識別子テーブル185は、チャンクの識別子、参照カウントおよびチャンク番号を管理する。識別子はMD5および別のシーケンシャル番号から構成される。MD5に競合が生じた場合に、シーケンシャル番号が使用される。図7に示すように、識別子テーブル185は、識別子を格納するための「識別子」列18501、チャンクテーブル167からの参照の数である参照カウントの格納のための“参照カウント”列18502、データが保存されているチャンク番号を格納するための“チャンク番号”列18503、から構成されている。
0058 ボリューム生成プロセスについて以下詳細に記述する。ボリューム生成プロセス800は、図8を参照して説明する。
0059 ステップ810:データボリュームの供給要求プログラム521は、ストレージコントローラ150上のデータボリューム割付けプログラム162に、サイズ(ブロックの数)およびメタデータとともに、データボリューム供給要求を発行する。(メタデータは、“OSタイプA”、“OSタイプB”などのようなものである。)任意のタイプのメタデータを管理者が指定することができる。
0060 ステップ820:データボリューム割付けプログラム162はデータボリューム管理テーブル166を更新する。図2は、6つのボリューム生成が完了した場合を示す。データボリューム111a、111bおよび111cは“OSタイプA”メタデータを伴って生成される。データボリューム111d、111eおよび111fは“OSタイプB”メタデータを伴って生成される。
0061 メタデータマッピングテーブルを初期化するプロセスについて以下詳細に記述する。メタデータマッピングテーブル初期化プロセス900は、図9を参照して説明する。
0062 ステップ910:重複削除範囲定義要求プログラム522は、ストレージコントローラ150上の重複削除範囲定義プログラム163へメタデータと共に重複削除範囲定義要求を出す。
0063 ステップ920:重複削除範囲定義プログラム163は新しいメタデータを受け取り、重複削除範囲定義プログラム163は受信したメタデータのために新しい識別子テーブル185を割り付ける。
0064 ステップ930:重複削除範囲定義プログラム163はメタデータマッピングテーブルを更新する。図6(a)は、2つのメタデータ(“OSタイプA”と“OSタイプB”)を受け取った場合を示す。識別子テーブル185aはメタデータ“OSタイプA”に割り付けられる。識別子テーブル185bはメタデータ“OSタイプB”に割り付けられる。
0065 書き込み動作について以下詳細に記述する。書き込み動作1000を、図10を参照して説明する。書き込み動作は、OSとアプリケーションソフトウエアがインストールされ実行されている間に実行される。この実施形態では、OSタイプAがデータボリューム111a、111bおよび111cにインストールされている。OSタイプBが、データボリューム111d、111eおよび111fにインストールされている。非常に多数の書き込み動作が、実際のOSのインストール動作の間に実行されている事は注意すべきである。図10は、応答プログラム161および重複削除プログラム165における典型的な処理フローを示す。ホストコンピュータ10にあるインストーラプログラム15は、書き込コマンドおよびデータをボリューム111へ発行する。この実施形態では、ホストコンピュータ10aがデータボリューム111aを使用し、ホストコンピュータ10bがデータボリューム111bを使用している、等。
0066 ステップ1010:書き込みコマンドとデータを受け取る。書き込みコマンドはLBA、およびブロックの数についての情報を含んでいる。図11(a)は書き込みコマンドを示す。書き込みコマンドはコマンド種別(=書き込み)、LBA(=データの位置)、およびブロックの数(=データのサイズ)についての情報を含んでいる。
0067 ステップ1012:ボリュームのメタデータはデータボリューム管理テーブル166から得られる。(書き込みコマンドを受け取る現在のデータボリュームが111aである場合、メタデータは“OSタイプA”である(図2を参照)。)
0068 ステップ1014:識別子テーブルはメタデータによりメタデータマッピングテーブル180から選ばれる。(書き込みコマンドを受け取る現在のデータボリュームが111aである場合、メタデータが“OSタイプA”であるので、識別子テーブル185aが選択されている。)下記ステップが各ブロックに対し実行される。
0069 ステップ1016:MD5値が受け取ったデータから計算される。
0070 ステップ1018:書き込みコマンドによって指定された現在のデータ位置が割り付けられたチャンクを有するか否かのチェックが、チャンクテーブルを参照することにより行なわれる。チャンクが既に割り付けられている場合、プロセスはステップ1060に進む。チャンクが割り付けられない場合、プロセスはステップ1020に進む。
0071 ステップ1020:選択された識別子テーブルからの同じMD5の値を持っている欄が列挙される。同じMD5の値が見つかった場合、プロセスはステップ1040に進む。同じMD5の値が見つからなかった場合、プロセスはステップ1022に進む。
0072 ステップ1022:識別子が生成される。識別子はMD5の値と0の組合せである。
0073 ステップ1024:チャンク状態表170によって未使用のチャンクを得る。
0074 ステップ1026:使用状態を示すためのチャンク状態テーブル170を更新する。
0075 ステップ1028:チャンクへデータを格納する。
0076 ステップ1030:選択された識別子テーブル185を更新する。(ステップ1022において)生成された識別子が格納される。参照カウントは1にセットされる。チャンク番号(ステップ1022で得られた)が格納される。
0077 ステップ1032:チャンクテーブル167を更新する。(書込コマンドを受け取る現在データボリュームが111aである場合、チャンクテーブル167aが更新される。)生成された識別子は、現在のLBA欄に格納される。
0078 ステップ1040:MD5の競合を回避するために、バイト単位データチェックを実行する。データが異ならない場合、動作はステップ1050に進む。データが異なる場合(MD5の競合)、ステップ1042に進む。(複数の同じMD5が見つかった場合、バイト単位チェックを各々に実行する。)
0079 ステップ1042:識別子を生成する。識別子は、MD5と現在の最大番号の次の番号となる新しいシーケンシャル番号の組合せである。(データが異なっても、1つの同じMD5が見つかった場合、シーケンシャル番号は1である。データが異なっても、2つの同じMD5が見つかった場合、シーケンシャル番号は2である。)ステップ1024に進む。MD5はめったに競合しない。したがって、ステップ1042はまれな場合である。
0080 ステップ1050:選択された識別子テーブル185を更新する。識別子に従い識別子テーブル185中の参照カウントを増加させる。
0081 ステップ1052:チャンクテーブル167を更新する。識別子はLBAに対応して格納される。
0082 ステップ1054:データを廃棄する。
0083 ステップ1060:識別子に従い識別子テーブル185の参照カウントを減少させる。
0084 ステップ1062:参照カウントが0であるか否かをチェックする。参照カウントが0である場合には、ステップ1064に進む。参照カウントが0でない場合には、ステップ1020に進む。
0085 ステップ1064:チャンクを空ける。
0086 ステップ1066:選択された識別子テーブル185を更新する。識別子の欄は選択された識別子テーブルから消去される。ステップ1020に進む。
0087 上に言及したように、特定の識別子テーブルはデータボリュームに割り当てられるメタデータに従って使用される。1つの識別子テーブルは複数のデータボリュームに使用することができる。データボリュームは、種々のOSを保存することができる。
しかしながら、種々のOSは種々のデータを含んでいるので、1つの識別子テーブルでは巨大になってしまう。1つの巨大な識別子テーブルで識別子確認を実行するのには長い時間がかかる。この実施形態では、複数の識別子テーブルが使用される。1つの識別子テーブルはOSタイプAに使用され、もう一方はOSタイプBに使用される。各識別子テーブルは、2つのOSに対し1つの識別子テーブルの場合より小さくなる。メタデータによる分離の結果、識別子確認を実行するためのCPU時間はより短くなる。本発明を備えたデータストレージ装置の読み/書きアクセスの性能は改善される。識別子を確認するためのどのようなアルゴリズムでも、例えば二分木のようなものでも、使用することができる。
0088 読み出し動作について以下詳細に記述する。読み出し動作1200を図12で説明する。OSとアプリケーションが実行されている間に読み出し動作は実行される。ホストコンピュータ10上の、OS13、およびアプリケーションプログラム14がボリューム111へ読み出しコマンドを発行する。この実施形態では、ホストコンピュータ10aはデータボリューム111aを、ホストコンピュータ10bはデータボリューム111bを、・・・使用する。
0089 ステップ1210:読み出しコマンドを受け取る。読み出しコマンドは、LBAおよびブロックの数を含んでいる。図11(b)は読み出しコマンドを示す。読み出しコマンドは、コマンド種別(=読み出し)、LBA(=データの位置)、ブロックの数(=データのサイズ)を含んでいる。
0090 ステップ1212:データボリューム管理テーブル166からボリュームのメタデータを得る。(読み出しコマンドを受け取る現在データボリュームが111aである場合、メタデータは“OSタイプA”である(図2)。)
0091 ステップ1214:メタデータに従いメタデータマッピングテーブル180から識別子テーブルを選択する。(読み出しコマンドを受け取る現在データボリュームが111aである場合、メタデータが“OSタイプA”であるので、識別子テーブル185aが選択される。)
0092 ステップ1216:チャンクテーブル167を選択する。(読み出しコマンドを受け取る現在データボリュームが111aである場合、チャンクテーブル167aが選択される。)各ブロックに対し下記のステップが実行される。
0093 ステップ1220:LBAに対応する選択されたチャンクテーブル167から識別子を得る。
0094 ステップ1222:識別子に対応している識別子テーブル185からチャンク番号を得る。
0095 ステップ1224:チャンク番号が指定されたチャンクのデータを、ホストコンピュータへ転送する。
0096 本発明の第2の実施形態について以下詳細に説明する。図13は、本発明の方法が適用される情報システムの全体図の例を示す。第1の実施形態と第2の実施形態の違いは以下の通りである。
0097 ストレージ装置100はファイル管理プログラム164を有する。
0098 ホストコンピュータ10は、ファイルアクセスコマンド(図17に示される)によってファイルストレージ装置へのアクセスを行う。
0099 データネットワークはイーサネット(登録商標)である。イーサネット(登録商標)スイッチ85(Ether SW 85)が相互接続のために使用されている。
0100 ホストコンピュータ10がイーサネット(登録商標)データネットワーク80の接続のためにイーサネット(登録商標)インタフェースボード18(イーサIF18)を持っている。
0101 ストレージ装置100がイーサネット(登録商標)データネットワーク80の接続のためにイーサネット(登録商標)インタフェースボード158(イーサIF158)を持っている。
0102 ファイル管理プログラム164はファイル管理テーブル190を使用する。
ファイル管理テーブルはファイル名、ファイルサイズ、識別子およびメタデータの管理のために使用する。
0103 識別子テーブル185中の各欄はそれぞれ複数のチャンク番号を保持することができる。
0104 第2の実施形態のファイル管理テーブルについて以下詳細に説明する。図14に示すように、ファイル管理テーブル190は、ファイル名を保持するための“ファイル名”列19001(この実施形態では、ファイル名はディレクトリー名とファイル名からなる)、ファイルサイズを保持するための“ファイルサイズ”列19002、MD5および別の連続番号からなる識別子を保持するための“識別子”列19003、メタデータの保持のための“メタデータ”列19004、とから構成されている。1つのファイル名に対応する複数のメタデータを保持することができる。
0105 メタデータマッピングテーブルの初期化について以下詳細に説明する。メタデータマッピングテーブルの初期化のプロセスは第1の実施形態と同じである。しかしながら、生成者名、グループ名、組織名称、作成の時間スタンプ、生成されたアプリケーション名、ファイルタイプ、ホストコンピュータ名(物理的な及び/または仮想の)などなど、多様なメタデータを使用することができる。図15は、この実施形態におけるメタデータマッピングテーブル180の例を示す。図15(a)はファイルタイプによるメタデータマッピングテーブルを示す。図15(b)は組織名称によるメタデータマッピングテーブルを示す。図15(c)は作成時の時間スタンプによるメタデータマッピングテーブルを示す。
0106 第2の実施形態の書き込み動作について以下詳細に記述する。
0107 書き込み動作1600を図16により説明する。書き込み動作はOS13およびアプリケーションソフト14から実行される。
0108 ステップ1610:書き込みコマンドとデータを受け取る。書き込みコマンドはファイル名、ファイルサイズおよびメタデータを含んでいる。図17(a)は書き込みコマンドを示す。
0109 ステップ1616:データからのMD5を計算する。
0110 ステップ1618:同じファイル名が既にファイル管理テーブル190に存在するか否かチェックする。同じファイル名が見つかった場合には、1660に進む。
同じファイル名が見つからなかった場合には、ステップ1620に進む。
0111 ステップ1620:書き込みコマンドに保持されているメタデータに従いメタデータマッピングテーブル180から識別子テーブルを選ぶ。
0112 ステップ1621:選択された識別子テーブルから同じMD5の値を持っている欄を列挙する。同じMD5が見つかった場合には、ステップ1640に進む。同じMD5が見つからなかった場合には、ステップ1622に進む。
0113 ステップ1622:識別子を生成する。識別子はMD5とゼロの組合せである。
0114 ステップ1624:チャンク状態テーブルおよびファイルのサイズ(サイズはチャンクの数に変換されている)によって未使用のチャンクを得る。
0115 ステップ1626:使用状態を示すためにチャンク状態表170を更新する。
0116 ステップ1628:チャンクへデータを格納する。
0117 ステップ1630:選択された識別子テーブル185を更新する。生成された識別子を格納する。参照カウントは1にセットされる。チャンク番号(ステップ1624で得られた)を格納する。
0118 ステップ1632:ファイル管理テーブル190を更新する。ファイル名、ファイルサイズ、生成された識別子(ステップ1622において)およびメタデータを格納する。
0119 ステップ1640:MD5の競合を回避するためにバイト単位データチェックを行う。データが異ならない場合、ステップ1650に進む。データが異なる場合には(MD5競合)、ステップ1642に進む。(複数の同じMD5が見つかった場合、各々に対しバイト単位チェックを行う。)
0120 ステップ1642:識別子を生成する。識別子は、MD5と現在の最大番号の次のシーケンシャル番号との組合せである。(データが異なっても、1つの同じMD5が見つかった場合、シーケンシャル番号は1である。データが異なっても、2つの同じMD5が見つかった場合、シーケンシャル番号は2である。)
0121 ステップ1650:選択された識別子テーブル185を更新する。識別子に従い識別子テーブル185の参照カウントを増加させる。
0122 ステップ1652:ファイル管理テーブル190を更新する。ファイル名、ファイルサイズ、生成された識別子およびメタデータを格納する。
0123 ステップ1654:データを廃棄する。
0124 ステップ1660:ファイル管理テーブルに保持されたメタデータによって識別子テーブルを選択する。
0125 ステップ1661:ファイル名に従いファイル管理テーブルから識別子を得る。
0126 ステップ1662:識別子に従い識別子テーブル185の参照カウントを減少させる。
0127 ステップ1663:参照カウントが0であるか否かチェックする。参照カウントが0である場合には、ステップ1664に進む。参照カウントが0でない場合は、ステップ1620に進む。
0128 ステップ1664:識別子とともに欄に保持されているチャンク番号のチャンクを空ける。
0129 ステップ1666:選択された識別子テーブル185を更新する。識別子を有する欄は選択された識別子テーブルから消去する。ステップ1620に進む。
0130 上に述べたように、特定の識別子テーブルはファイルに割り当てられたメタデータに従って使用される。この実施形態では、複数の識別子テーブルが同様にメタデータマッピングテーブル180に従い使用されている。各識別子テーブルは、すべてのファイルに対し1つの識別子テーブルの場合よりもより小さくなる。メタデータによる分離の結果、識別子確認を実行するためのCPU時間はより短くなる。本発明を備えたデータストレージ装置の読み/書きアクセスの性能が改善される。
0131 第2の実施形態の読み出し動作について以下詳細に記述する。読み出し動作1800は図18で説明する。読み出し動作はOS13およびアプリケーションソフトウエア14から実行される。
0132 ステップ1810:読み出しコマンドを受け取る。読み出しコマンドはファイル名を含んでいる。図17(b)は読み出しコマンドを示す。
0133 ステップ1812:ファイル名に従いファイル管理テーブル190からファイルのメタデータを得る。
0134 ステップ1814:メタデータに従いメタデータマッピングテーブル180から識別子テーブルを選ぶ。
0135 ステップ1820:ファイル名に従いファイル管理テーブル190から識別子を得る。
0136 ステップ1822:識別子に従い識別子テーブル185からチャンク番号を得る。
0137 ステップ1824:ファイル名、ファイルサイズおよびメタデータをホストコンピュータへ転送する。
0138 ステップ1826:チャンク番号を指定したチャンクのデータをホストコンピュータへ転送する。
0139 書き込み動作の変形について以下詳細に記述する。書き込み動作1900の別の実施形態を図19を参照して説明する。書き込み動作はOS13およびアプリケーションソフト14から実行される。この書き込み動作では、ファイルはMD5およびファイルのサイズによって重複削除される。識別子の一部であるシーケンシャル番号は使用しない。識別子はMD5およびファイルのサイズから構成される。図20に示すファイル管理テーブル190を書き込み動作に使用する。
0140 ステップ1910:書き込みコマンドとデータを受け取る。書き込みコマンドはファイル名、ファイルサイズおよびメタデータを含んでいる。図17(a)は書き込みコマンドを示す。
0141 ステップ1916:データからのMD5を計算する。
0142 ステップ1918:同じファイル名がファイル管理テーブル190に既に存在するか否かチェックする。同じファイル名が見つかった場合には、ステップ1960に進む。同じファイル名が見つからなかった場合には、ステップ1920に進む。
0143 ステップ1920:書き込コマンドに保持されているメタデータに従いメタデータマッピングテーブル180から識別子テーブルを選ぶ。
0144 ステップ1921:同じ識別子(MD5の値、ファイルのサイズ)が選択された識別子テーブルに存在しているか否かを確認する。同じ識別子が見つかった場合には、ステップ1950に進む。同じ識別子が見つからなかった場合には、ステップ1922に進む。
0145 ステップ1922:識別子を生成する。識別子はMD5とファイルサイズの組合せである。
0146 ステップ1924:チャンク状態テーブルおよびファイルのサイズ(サイズはチャンクの数に変換されている)に従い未使用のチャンクを得る。
0147 ステップ1926:使用状況を示すためにチャンク状態表170を更新する。
0148 ステップ1928:チャンクへデータを格納する。
0149 ステップ1930:選択した識別子テーブル185を更新する。識別子(MD5の値、ファイルのサイズ)を格納し、また、チャンク番号も格納する。参照カウントを1にセットする。
0150 ステップ1932:ファイル管理テーブル190を更新する。ファイル名、ファイルサイズ、MD5およびメタデータを格納する。
0151 ステップ1950:選択された識別子テーブル185を更新する。識別子に従い識別子テーブル185の参照カウントを増加させる。
0152 ステップ1952:ファイル管理テーブル190を更新する。ファイル名、ファイルサイズ、MD5およびメタデータを格納する。
0153 ステップ1954:データを廃棄する。
0154 ステップ1960:ファイル管理テーブルに保持されたメタデータに従い識別子テーブルを選択する。
0155 ステップ1961:ファイル名に従って識別子(MD5の値およびファイルのサイズ)を得る。
0156 ステップ1962:識別子に従って識別子テーブル185参照カウントを減少させる。
0157 ステップ1963:参照カウントが0であるか否かチェックする。参照カウントが0の場合には、ステップ1964に進む。参照カウントが0でない場合には、ステップ1920に進む。
0158 ステップ1964:識別子と共に、欄に保持されているチャンク番号のチャンクを空ける。
0159 ステップ1966:選択された識別子テーブル185を更新する。識別子を有する欄を選択した識別子テーブルから消去する。ステップ1920に進む。
0160 識別子テーブル統合について以下詳細に記述する。管理コンピュータ500は識別子テーブル統合プログラム523を持つことが出来る。識別子テーブル統合プログラム523は図21に示すスクリーン2100を表示する。メタデータおよび識別子テーブル番号はスクリーン2100上のテーブル2101に表示される。管理者はチェックボックスのチェックにより違いを比較するために2つのテーブルを選ぶことができる。図21では、メタデータ“アカウンティング”および“HR”が選択されている。識別子テーブル統合プログラムは2つの識別子テーブル間の相関性をチェックし、違いの比率を計算する。違いの比率は表示枠2102に表示される。違いが大きい場合には、2つのテーブルを統合すべきでない。統合はより長い待ち時間を引き起こすかも知れない。小さな違いの場合には、2つのテーブルを統合してもよい。統合は重複削除により未使用チャンクを生み出す。管理者は2つのテーブルの統合のためにボタン2103を押すことができる。識別子テーブル統合プログラム523は、ストレージ装置100へ識別子テーブル統合要求を出す。識別子テーブルの統合プロセスは、管理者からの要求なしの自動化にすることもでき得る。予め決定のしきい値を管理者がセットし、識別子テーブル統合プロセスの起動を決定するための比率と比較することができる。また、ストレージに十分なデータがあれば、比率が安定した量になるので、ストレージの使用状況のレベルを考慮すべきであろう。ストレージ装置100は、図22に示すように識別子テーブル統合プロセスをスタートする。
0161 ステップ2210:識別子テーブル統合要求で指定された第1の識別子テーブルを選択する。
0162 ステップ2212:識別子テーブル統合リクエストで指定された第2の識別子テーブルを選択する。
0163 ステップ2214:i=0と初期化する。
0164 ステップ2220:もし欄[i]が最後の欄でなければ、2250へスキップする。
0165 ステップ2222:欄[i]の識別子(MD5の値およびファイルのサイズ)が第1の識別子テーブルに存在することを確認する。同じ識別子が存在する場合、ステップ2230に進む。(第1の識別子テーブルの識別子を保持する欄の番号にjをセットする)。
0166 ステップ2224:欄[i]を第1の識別子テーブルに加える。
0167 ステップ2230:欄[i]に、チャンク番号が保持されているチャンクを空ける。
0168 ステップ2232:次の方法で、第1の識別子テーブルの欄[j]の参照カウントに第2の識別子テーブルの欄[i]の参照カウント値を加える。(欄[j]参照カウント=欄[j]参照カウント+欄[i]参照カウント)。
0169 ステップ2240:iを増加させる。ステップ2220に進む。
0170 ステップ2250:メタデータ管理テーブルを更新する(例えば、図15(a)は図15(d)として更新される)
0171 ステップ2252:第2の識別子テーブルを削除する。
0172 第1の実施形態の書き込み動作の代替実施形態について以下記述する。書き込み動作2300の別の実施形態は図23、24および25を参照して説明する。書き込み動作について、修正済のチャンクテーブルを、図23に示している。チャンクテーブルはチャンク番号情報を格納する。LBA欄にチャンク番号がある場合、それは、チャンク番号で指定したチャンクにLBAに対するデータが一時的に格納されたことを意味する。この欄は、書込コマンドを受け取った後に非同期に実行されるであろう。対応する書き込みプロセスは図24に示されている。
0173 ステップ2410:書込コマンドを受け取る。書込コマンドは、LBAおよびブロックの番号を含んでいる。
0174 ステップ2412:チャンク状態テーブル170に従って未使用のチャンクを得る。
0175 ステップ2414:チャンクが使用されていることを示すためにチャンク状態テーブル170を更新する。
0176 ステップ2416:チャンクへデータを格納する。
0177 ステップ2418:チャンクテーブルを更新する。この時に、ステップ2412で受け取ったチャンク番号だけを、チャンクテーブルに格納する。
0178 重複削除の評価は、書込コマンドを受け取った後に非同期に実行される。バックグラウンド重複削除プロセスを図25に示す。バックグラウンド重複削除は、各データボリュームで周期的に実行される。図10と図25との差はステップ2515の中のみにある。
0179 ステップ2515:テーブルから、一時的に格納したデータを列挙する。一時的に格納したデータは、チャンクテーブルのチャンク番号のチェックにより確認される。一時的に格納したデータは、チャンクテーブルにチャンク番号を有する。例えば、図23において、LBA2のデータはチャンク10003に一時的に格納される。ステップ2515に続くステップは、各ブロックに対し実行される。
典型的なコンピュータプラットフォーム
0180 図26は、発明の技法の実施形態を実装することが出来るコンピュータ/サーバシステム2600の実施形態を示すブロック図である。システム2600は、コンピュータ/サーバプラットフォーム2601、周辺機器2602およびネットワークリソース2603を備えている。
0181 コンピュータプラットフォーム2601は、コンピュータプラットフォーム2601の様々な部分の間で情報通信するための、データバス2604あるいは他のコミュニケーション機構、ならびに、バス2604と接続した、情報処理や、他の計算処理および制御タスクを行なうプロセッサー2605を備えている。コンピュータプラットフォーム2601は、また、プロセッサー2605によって実行される命令とともに種々の情報を格納するための、バス2604に接続した、ランダムアクセスメモリ(RAM)あるいは他の動的ストレージ装置のような、揮発性ストレージ装置2606を備えている。
揮発性ストレージ装置2606は、また、プロセッサー2605による命令の実行の間に一時変数あるいは他の中間情報を格納するために使用することも出来る。コンピュータプラットフォーム2601は、さらに、基本入出力システム(BIOS)や様々なシステム構成パラメーターの様な、プロセッサー2605のための静的な情報や命令を格納するために、バス2604と接続した読み取り専用メモリ(ROMまたはEPROM)2607あるいは他のスタティックストレージ装置を備えることがある。磁気ディスク、光ディスクあるいはソリッドステートフラッシュメモリ装置のような持続形ストレージ装置2608は、情報と命令の格納のためにバス2604に接続し提供される。
0182 コンピュータプラットフォーム2601は、コンピュータプラットフォーム2601のシステム管理者またはユーザへの情報の表示のために、陰極線管(CRT)、プラズマディスプレイあるいは液晶ディスプレイ(LCD)のようなディスプレイ2609に、バス2604によってつなぐことができる。アルファニューメリックや他のキーを含む入力装置2610が、プロセッサー2605に情報やコマンドの選択を伝えるためにバス2604に接続されている。別のタイプのユーザ入力デバイスは、プロセッサー2605に命令情報とコマンドの選択を伝えるため、あるいはディスプレイ2609上でカーソル移動をコントロールするための、マウス、トラックボールあるいはカーソル指示キーのようなカーソル制御デバイス2611である。この入力装置は、2つの軸、第一軸(例えばx)および第二軸(例えばy)によって、典型的には2つの自由度を持っているが、これによって入力装置は平面上での位置を指定することが可能となる)。
0183 外部ストレージ装置2612は、コンピュータプラットフォーム2601に追加のまたはリムーバブルストレージの容量を供給するために、バス2604によってコンピュータプラットフォーム2601につなぐ事が出来る。計算機システム2600の実施形態では、外部リムーバブルストレージ装置2612は、他の計算機システムとのデータの交換を容易にするために使用することが出来る。
0184 本発明は、ここに記述された技術を実装するのに対し計算機システム2600を使用することに関係する。ある実施形態では、本発明のシステムはコンピュータプラットフォーム2601のようなマシン上で存在することができる。本発明の1つの実施形態によれば、ここに記述された技術は、揮発性メモリ2606に含まれている1つ以上の命令の1つ以上のシーケンスを実行するプロセッサー2605に応答して計算機システム2600によって行なわれる。そのような命令は、持続型ストレージ装置2608のような別のコンピュータ可読媒体から揮発性メモリ2606に読み込む事が出来る。揮発性メモリ2606に含まれている一連の命令の実行は、プロセッサー2605に、ここに記述されたプロセスのステップを実行させる。他の実施例においては、ハードワイヤードの回路類が、本発明を実装するためにソフトウェア命令の代わりに、あるいはソフトウェア命令と組み合わせて使用する事が出来る。このように、本発明の実施形態はハードウェア回路とソフトウェアのどんな特定の組合せにも制限されてはいない。
0185 ここに使用されている用語“コンピュータ可読媒体”は、実行するプロセッサー2605に命令を提供することに関与するあらゆる媒体を表す。コンピュータ可読媒体は機械可読媒体の単に1つの例であり、ここに記述された方法及び/または技術のうちのどれであっても実装するために命令を運ぶことが出来る。そのような媒体は、不揮発性のメディアおよび揮発性のメディアを含み、これらに限定されることなく、多くの形式をとることが出来る。不揮発性のメディアは、例えば、ストレージ装置2608のように、光ディスクまたは磁気ディスクを含んでいる。揮発性のメディアは、揮発性ストレージ装置2606のように、ダイナミックメモリを含んでいる。
0186 コンピュータ可読媒体の一般の形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープあるいは何らかの他の磁気メディア、CD−ROM、何らかの他の光学媒体、パンチカード、紙テープ、何らかの他の物理的な孔部のパターンを備えたメディア、RAM、PROM、EPROM、フラッシュEPROM、フラッシュドライブ、メモリカード、何らかの他のメモリチップあるいはカートリッジ、搬送波、など以下に記述されるように、あるいはコンピュータが読むことができる如何なる他のメディアをも含んでいる。
0187 コンピュータ読取り可能なメディアの様々な形式は実行用プロセッサー2605への1つ以上の命令の1つ以上のシーケンスを運ぶことに関係する。例えば、命令は、当初はリモートコンピュータから磁気ディスク上で運ばれるかも知れない。あるいは、リモートコンピュータはそのダイナミックメモリに命令をロードし、モデムを使用して、電話回線上で命令を送ることができる。計算機システム2600に対して直接接続のモデムは、電話回線上のデータを受け取ることができ、データを赤外線信号に変換するために赤外線送信機を使用することができる。赤外線検知器は、赤外線信号で運ばれたデータを受け取ることができ、適切な回路類がデータバス2604にデータを乗せることができる。バス2604は、データを揮発性ストレージ装置2606に運び、プロセッサー2605が命令を検索し実行する。揮発性メモリ2606によって受け取られた命令は、プロセッサー2605によって実行する前に、あるいはその実行の後に持続型記憶装置2608上に格納することも選択肢である。命令は、業界では良く知られた様々なネットワークデータ通信プロトコルを使用して、インターネットを通じてコンピュータプラットフォーム2601へダウンロードすることも出来る。
0188 コンピュータプラットフォーム2601は、また、データバス2604につながれたネットワークインターフェースカード2613のような通信インターフェースを有する。通信インターフェース2613は、ローカルネットワーク2615につながっているネットワークリンク2614に双方向のデータ通信接続を提供する。例えば、通信インターフェース2613は、総合サービスディジタルネットワーク(ISDN)カードか、あるいは対応するタイプの電話回線にデータ通信接続を提供するモデムかもしれない。別の例として、通信インターフェース2613は、互換性をもつLANにデータ通信接続を提供するローカルエリアネットワークインターフェースカード(LAN NIC)かもしれない。良く知られている、802.11a、802.11b、802.11gおよびブルートゥースのような無線リンク、もまたネットワーク実装に使用することが出来る。すべてそのような実装においては、通信インターフェース2613は、多様な形式の情報を表すデジタルデータストリームを運ぶ、電気的か、電磁気的か、光学的な信号を送受信する。
0189 ネットワークリンク2613は、典型的には、1つ以上のネットワークを通して他のネットワークリソースにデータ通信を提供する。例えば、ネットワークリンク2614は、ローカルネットワーク2615を通して、ホストコンピュータ2616、あるいはネットワークストレージ/サーバ2622への接続を提供することが出来る。さらに、あるいは代わりに、ネットワークリンク2613は、ゲートウェイ/ファイアウォール2617を通してインターネットのような広域またはグローバルネットワーク2618に接続することも出来る。このように、コンピュータプラットフォーム2601は、遠隔ネットワークストレージ/サーバ2619のように、インターネット2618のいかなる場所に位置したネットワークリソースにもアクセス可能である。一方では、コンピュータプラットフォーム2601はまた、ローカルエリアネットワーク2615及び/またはインターネット2618のいかなる場所に位置したクライアントによってもアクセスすることが出来る。ネットワーククライアント2620および2621は、プラットフォーム2601に類似したコンピュータプラットフォームに基づいて、それら自身実装することが出来る。
0190 ローカルネットワーク2615およびインターネット2618は両方とも、デジタルデータストリームを運ぶ電気的、電磁気的、あるいは光学的信号を使用する。
様々なネットワークを通る信号、およびコンピュータプラットフォーム2601の間のデジタルデータを運ぶ、通信インターフェース2613を通りネットワークリンク2614上の信号は、情報を運ぶ搬送波の典型的な形態である。
0191 コンピュータプラットフォーム2601は、インターネット2618、LAN2615、ネットワークリンク2614および通信インターフェース2613を含む多様なネットワーク、を通して、プログラムコードを含み、メッセージを送信しデータを受信することができる。インターネットの例において、システム2601がネットワークサーバとして働く場合、クライアント2620及び/または2621の上で走っているアプリケーションプログラムのために要求されるコードあるいはデータを、インターネット2618、ゲートウェイ/ファイアウォール2617、ローカルエリアネットワーク2615および通信インターフェース2613を通して送信することもありうる。同様に、他のネットワークリソースからコードを受け取ることもできる。
0192 受け取られると、受信したコードはプロセッサー2605によって実行されるかも知れないし、及び/または、それぞれ持続型または揮発性ストレージ装置である2608および2606に各々格納され、あるいは後での実行のために他の不揮発性のストレージに格納されるかも知れない。
0193 本発明が、どのような特定のファイアウォールシステムにも制限されていないことは注目すべきである。本発明の方針に基づく内容の処理システムは、3つのファイアウォールオペレーティングモード、のうちのどれででも使用できる、具体的には、NAT、ルーテッド、透過型である。
0194 最後に、ここに記述されたプロセスと技術は、どの様な特別の装置とも本質的には関係がなく、構成要素のいかなる適切な組合せによっても実行され得ることは理解すべきである。さらに、多様な型式の汎用目的の装置が、ここに記述された教えに従って使用することも出来る。あるいはまた、ここに記述された方法ステップを実行する専用の装置を構築することが有利であると判明するかも知れない。本発明は、特定の例に関して記述されているが、それは限定をするというよりむしろ全ての関連での例証となることを意図している。当分野での業者は、多くの違ったハードウェア、ソフトウェアおよびファームウェアの組合せが本発明を実施するのに適していることを認識するであろう。例えば、記述されるソフトウェアは、アセンブラー、C/C++、perl、シェル、PHP、Java(登録商標)などのような、種々様々なプログラミング言語あるいはスクリプト言語で実施されてもよい。
0195 さらに、本発明のその他の実施も、ここに開示された本発明の明細書および実施の考察から、当分野の業者には明白になるであろう。記述された実施形態の種々の態様及び/または構成要素は、データ重複削除機能を備えたコンピュータ化されたストレージシステムにおいて、単独であるいは任意の組合せで使用することが出来る。明細書と実例は、典型的なものとしてのみ考慮されるよう意図されている。

Claims (20)

  1. ストレージシステムであって、
    データストレージボリュームと、
    データストレージボリュームに関係したメタデータを格納するメモリと、
    該ストレージシステムをホストコンピュータに接続するように構成したネットワークインターフェースと、
    中央処理装置と、を備え、
    前記ストレージシステムは、前記ホストコンピュータから受け取ったデータから識別子を計算し、前記データが前記識別子および前記メタデータによって前記データストレージボリュームに保存されているか否かを判断する、
    ことを特徴とするストレージシステム。
  2. 前記識別子は、前記ホストコンピュータから受け取った前記データのSecure Hash Algorithm(SHA)値を含む、
    ことを特徴とする請求項1によるストレージシステム。
  3. 前記識別子は、前記データのSecure Hash Algorithm(SHA)値とハッシュ競合の数との組み合わせを含む、
    ことを特徴とする請求項1によるストレージシステム。
  4. 前記ストレージシステムは、前記ホストコンピュータから受け取った前記データが格納されているか否かを決定する前に、前記データを格納する、
    ことを特徴とする請求項1によるストレージシステム。
  5. 前記ストレージシステムは、前記データストレージボリュームに前記データを格納した後に、前記識別子の計算および前記決定を、非同期に実行する、
    ことを特徴とする請求項4によるストレージシステム。
  6. 前記ストレージシステムを管理コンピュータに接続するように構成したマネージメントネットワークインターフェースをさらに備え、
    前記メタデータが前記管理コンピュータから登録される、
    ことを特徴とする請求項1によるストレージシステム。
  7. 前記ストレージシステムは、前記データが前記データボリュームに格納されてないと決定した場合には、チャンクプールから前記データストレージボリュームに少なくとも1つのチャンクを割り付け、前記ホストコンピュータから受け取った前記データを前記少なくとも1つの割り付けられたチャンクに格納する、ことを特徴とする請求項1によるストレージシステム。
  8. 前記ストレージシステムは、前記データが前記データボリュームに格納されていると決定した場合には、前記ホストコンピュータから受け取った前記データを廃棄する、
    ことを特徴とする請求項1によるストレージシステム。
  9. ストレージシステムであって、
    データストレージボリュームと、
    データストレージボリュームに関係したメタデータを格納するメモリと、
    該ストレージシステムをホストコンピュータに接続するように構成したネットワークインターフェースと、
    中央処理装置と、を備え、
    前期ストレージシステムは、前記ホストコンピュータから受け取ったオブジェクト中のデータから識別子を計算し、前記識別子と、前記メモリに保存された前記メタデータと、前記オブジェクト中のメタデータと、によって、前記データストレージボリュームに前記データが保存されているか否かを判断する、
    ことを特徴とするストレージシステム。
  10. 前記識別子が前記オブジェクト中の前記データの Secure Hash Algorithm(SHA)値を含む、
    ことを特徴とする請求項9によるストレージシステム。
  11. 前記識別子が、前記オブジェクト中の前記データのSecure Hash Algorithm(SHA)値と、ハッシュ競合の数を含む、
    ことを特徴とする請求項9によるストレージシステム。
  12. 前記識別子が、ハッシュ値に競合が検出された時に割り当てられる連続した番号をさらに含む、
    ことを特徴とする請求項11によるストレージシステム。
  13. 前記識別子は、前記オブジェクト中の前記データのSecure Hash Algorithm(SHA)値と、前記オブジェクトのデータサイズとを含む、
    ことを特徴とする請求項9によるストレージシステム。
  14. 前記オブジェクトは、データ、ファイル名およびメタデータから成る、
    ことを特徴とする請求項9によるストレージシステム。
  15. 前記ストレージシステムは、前記ホストコンピュータから受け取った前記データが保存されているか否かを決定する前に、前記データを格納する、
    ことを特徴とする請求項9によるストレージシステム。
  16. 前記ストレージシステムは、前記データストレージボリュームに前記データを格納した後に、前記識別子の計算および前記決定を、非同期的に実行する、
    ことを特徴とする請求項9によるストレージシステム。
  17. 前記ストレージシステムを管理コンピュータに接続するように構成したマネージメントネットワークインターフェースをさらに備え、
    前記メタデータが前記管理コンピュータから登録されること、を特徴とする請求項9によるストレージシステム。
  18. 前記ストレージシステムは、前記データが前記データボリュームに格納されていないと決定した場合には、前記データストレージボリュームにチャンクプールから少なくとも1つのチャンクを割り付け、前記ホストコンピュータから受け取った前記データを、前記割り付けられた少なくとも1つのチャンクに格納する、ことを特徴とする請求項9によるストレージシステム。
  19. 前記ストレージシステムは、前記データが前記データボリュームに保存されていると決定した場合には、前記ホストコンピュータから受け取った前記データを廃棄する、
    ことを特徴とする請求項9によるストレージシステム。
  20. チャンクプールを形成する複数のチャンクに分割されている複数のデータストレージ装置と、ストレージシステムをホストコンピュータに接続するように構成したネットワークインターフェースと、中央処理装置およびメモリを含むストレージ制御装置と、を備えたストレージシステム、において実行される方法であって、
    i. データストレージボリュームを供給し、前記ネットワークインターフェースを経由して該データストレージボリュームを前記ホストコンピュータに利用可能にするステップと、
    ii. 前記ホストコンピュータからの前記データストレージボリュームに向けられた書込コマンドを受信すると、前記書込コマンドに関連したデータに対応する識別子を計算するステップと、
    iii. メタデータに基づいた前記識別子を、少なくとも1つの識別子グループへとグループ化するステップと、
    iv. 前記メタデータに関係した前記識別子グループ内での前記識別子の固有性の確認をするステップと、
    v. 前記識別子が前記識別子グループ内で固有のものであれば、前記チャンクプールから前記データストレージボリュームへ少なくとも1つのチャンクを割り付け、前記書込コマンドに関連した前記データを、前記割り付けられた少なくとも1つのチャンクに格納するステップと、
    を有することを特徴とする方法。
JP2010016440A 2009-02-04 2010-01-28 ストレージシステム及びストレージシステムでの重複データ削除のための方法 Expired - Fee Related JP5309043B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/365,566 US20100199065A1 (en) 2009-02-04 2009-02-04 Methods and apparatus for performing efficient data deduplication by metadata grouping
US12/365,566 2009-02-04

Publications (2)

Publication Number Publication Date
JP2010182302A true JP2010182302A (ja) 2010-08-19
JP5309043B2 JP5309043B2 (ja) 2013-10-09

Family

ID=42145017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010016440A Expired - Fee Related JP5309043B2 (ja) 2009-02-04 2010-01-28 ストレージシステム及びストレージシステムでの重複データ削除のための方法

Country Status (3)

Country Link
US (1) US20100199065A1 (ja)
EP (1) EP2216710A3 (ja)
JP (1) JP5309043B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8423562B2 (en) 2011-06-06 2013-04-16 Fujitsu Limited Non-transitory, computer readable storage medium, search method, and search apparatus
JP2013182476A (ja) * 2012-03-02 2013-09-12 Nec Corp ストレージシステム
JP2013541083A (ja) * 2010-09-03 2013-11-07 シマンテック コーポレーション 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム及び方法
KR20140099353A (ko) * 2013-02-01 2014-08-12 단국대학교 산학협력단 가상 머신의 데이터 처리 방법
US10365846B2 (en) 2016-06-03 2019-07-30 Fujitsu Limited Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271718B2 (en) * 2009-03-11 2012-09-18 Hitachi, Ltd. Storage system and control method for the same, and program
US9053032B2 (en) 2010-05-05 2015-06-09 Microsoft Technology Licensing, Llc Fast and low-RAM-footprint indexing for data deduplication
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US20110276744A1 (en) 2010-05-05 2011-11-10 Microsoft Corporation Flash memory cache including for use with persistent key-value store
US8438139B2 (en) 2010-12-01 2013-05-07 International Business Machines Corporation Dynamic rewrite of files within deduplication system
US8364641B2 (en) 2010-12-15 2013-01-29 International Business Machines Corporation Method and system for deduplicating data
US8645335B2 (en) 2010-12-16 2014-02-04 Microsoft Corporation Partial recall of deduplicated files
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US8886901B1 (en) 2010-12-31 2014-11-11 Emc Corporation Policy based storage tiering
US9280550B1 (en) * 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US9081511B2 (en) 2011-02-23 2015-07-14 International Business Machines Corporation Source-target relations mapping
US8521705B2 (en) * 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US8990171B2 (en) * 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8620886B1 (en) * 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
WO2013074106A1 (en) * 2011-11-17 2013-05-23 Intel Corporation Method, apparatus and system for data deduplication
US8719234B2 (en) 2012-01-25 2014-05-06 International Business Machines Corporation Handling rewrites in deduplication systems using data parsers
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
JP6307624B2 (ja) * 2014-05-30 2018-04-04 株式会社日立製作所 データ重複排除ストレージシステムの方法及び装置
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
CN105740266A (zh) 2014-12-10 2016-07-06 国际商业机器公司 用于数据去重的方法和设备
US9696931B2 (en) 2015-06-12 2017-07-04 International Business Machines Corporation Region-based storage for volume data and metadata
CN106933701A (zh) * 2015-12-30 2017-07-07 伊姆西公司 用于数据备份的方法及设备
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
US11061827B2 (en) * 2019-10-30 2021-07-13 EMC IP Holding Company LLC Metadata representation for enabling partial page duplication
US11586385B1 (en) 2020-05-06 2023-02-21 Radian Memory Systems, Inc. Techniques for managing writes in nonvolatile memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005211A2 (en) * 2006-06-29 2008-01-10 Network Appliance, Inc. System and method for retrieving and using block fingerprints for data deduplication
WO2009006278A1 (en) * 2007-06-29 2009-01-08 Sepaton, Inc. Emulated storage system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143143B1 (en) * 2000-10-27 2006-11-28 Microsoft Corporation System and method for distributed caching using multicast replication
US7003527B1 (en) * 2002-06-27 2006-02-21 Emc Corporation Methods and apparatus for managing devices within storage area networks
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US7328217B2 (en) * 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
EP2012235A2 (en) * 2007-07-06 2009-01-07 Prostor Systems, Inc. Commonality factoring
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008005211A2 (en) * 2006-06-29 2008-01-10 Network Appliance, Inc. System and method for retrieving and using block fingerprints for data deduplication
WO2009006278A1 (en) * 2007-06-29 2009-01-08 Sepaton, Inc. Emulated storage system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013541083A (ja) * 2010-09-03 2013-11-07 シマンテック コーポレーション 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム及び方法
US8423562B2 (en) 2011-06-06 2013-04-16 Fujitsu Limited Non-transitory, computer readable storage medium, search method, and search apparatus
JP2013182476A (ja) * 2012-03-02 2013-09-12 Nec Corp ストレージシステム
KR20140099353A (ko) * 2013-02-01 2014-08-12 단국대학교 산학협력단 가상 머신의 데이터 처리 방법
KR101628436B1 (ko) 2013-02-01 2016-06-09 단국대학교 산학협력단 가상 머신의 데이터 처리 방법
US10365846B2 (en) 2016-06-03 2019-07-30 Fujitsu Limited Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing

Also Published As

Publication number Publication date
US20100199065A1 (en) 2010-08-05
JP5309043B2 (ja) 2013-10-09
EP2216710A2 (en) 2010-08-11
EP2216710A3 (en) 2012-08-01

Similar Documents

Publication Publication Date Title
JP5309043B2 (ja) ストレージシステム及びストレージシステムでの重複データ削除のための方法
US6633962B1 (en) Method, system, program, and data structures for restricting host access to a storage space
JP5352489B2 (ja) ストレージシステム間でシンプロビジョニングボリュームを移行させるための方法と装置
US7912814B2 (en) Data migration in storage system
US8402239B2 (en) Volume management for network-type storage devices
WO2019144553A1 (zh) 数据存储方法、装置及存储介质
KR100439675B1 (ko) 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
US8086810B2 (en) Rapid defragmentation of storage volumes
US20080184000A1 (en) Storage module and capacity pool free capacity adjustment method
JP2016512906A5 (ja)
JP2016512906A (ja) データを柔軟に配置するための多層記憶管理
US8868877B2 (en) Creating encrypted storage volumes based on thin-provisioning mode information
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
US10031682B1 (en) Methods for improved data store migrations and devices thereof
US10114583B2 (en) Storage system, storage management method, and storage medium
JP2008065445A (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US20200159705A1 (en) Object and sequence number management
JP2005228278A (ja) 記憶領域の管理方法、管理装置及び管理プログラム
JP6835949B2 (ja) 情報システム、管理プログラム及び情報システムのプログラム交換方法
US20080109630A1 (en) Storage system, storage unit, and storage management system
JP5272185B2 (ja) 計算機システム及びストレージシステム
CN114365109A (zh) 启用rdma的键-值存储库
JP2012079245A (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
US20080005745A1 (en) Management server and server system
CN104426965A (zh) 自管理存储方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120724

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130513

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5309043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees