[go: up one dir, main page]

JP2009129441A - 記憶システムにおける非重複化のための方法および装置 - Google Patents

記憶システムにおける非重複化のための方法および装置 Download PDF

Info

Publication number
JP2009129441A
JP2009129441A JP2008180869A JP2008180869A JP2009129441A JP 2009129441 A JP2009129441 A JP 2009129441A JP 2008180869 A JP2008180869 A JP 2008180869A JP 2008180869 A JP2008180869 A JP 2008180869A JP 2009129441 A JP2009129441 A JP 2009129441A
Authority
JP
Japan
Prior art keywords
data
deduplication
storage system
data object
interface
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.)
Pending
Application number
JP2008180869A
Other languages
English (en)
Inventor
Takashi Arakawa
敬史 荒川
Yoshiki Kano
義樹 加納
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 JP2009129441A publication Critical patent/JP2009129441A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

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

Abstract

【課題】
既存の技術は、良好な信頼性特性値を有する、記憶システム用の非重複化技術を提供する能力において、不完全なものとなっている。
【解決手段】
一実現形態において、記憶システムが、ホストコンピュータと、管理端末と、記憶システムとを備えており、その記憶システムは、ホストコンピュータ/クライアントと通信するためのブロックインタフェースを有している。記憶システムはまた、チャンク(分割された記憶領域)を使用した非重複化能力を組み込んでいる。記憶システムは、非重複化の程度(すなわち、1つの実データに対する仮想データの数)に関連する閾値(上限)を維持し、その非重複化の程度は、ユーザーまたは管理ソフトウェアによって指定される。記憶システムは、各チャンクに対するリンクの数をカウントし、また、重複が検出された場合でもチャンクに対する削減されたデータの数が閾値を超えるときには、非重複化を実施しない。
【選択図】図1

Description

[0001] 本発明は、一般には記憶技術に関し、より具体的には記憶システム内に記憶されたデータの非重複化に関する。
[0002] 最近では、記憶システムのための非重複化技術が、記憶領域コストおよび管理コストを削減する目的で開発されている。非重複化を用いると、記憶システムがデータまたはファイルをホストコンピュータから受信するとき、その記憶システムはまず、受信したデータを、記憶システムに既に記憶されていたデータまたはファイルと比較する。同じデータまたはファイルが検出された場合、記憶システムは、受信したデータまたはファイルすべてを記憶する代わりに、その検出したデータまたはファイルへのコンパクトリンク情報を作成する。換言すれば、記憶システムは、受信したデータまたはファイルを、記憶媒体上に物理的に記憶するのとは対照的に、仮想コピーとして記憶する。非重複化によって、記憶システムにおける使用される物理的記憶領域の総計は、コンピュータによって使用される対応する論理的領域のサイズよりも小さくすることができる。すなわち、非重複化により、記憶システムの物理的記憶領域をより効率的な方式で使用することが可能となる。
[0003] 記憶システムに適用されるある非重複化の方法が、本願にそのすべてが組み込まれる米国特許第7,065,619号に記載されている。Hirschらへの米国特許公報US2006/0059207には、仮想テープライブラリなどの記憶システムに適用される非重複化の方法が示されている。米国特許第6,704,730号には、コンピュータのファイルシステムに適用される非重複化の方法が示されている。加えて、NetWork Appliance社は、http://www.netapp.com/products/storage−systems/near−line−storage/asis−dedup.htmlに記載されているように、非重複化を使用してファイル記憶システム(NAS)を提供している。
[0004] 現在の非重複化技術は一般に、以下の問題のうちの1つまたは複数を有している。非重複化では、複数の仮想データ対象が、ただ1つの物理的対象によって確立されることを前提とするため、重複の量(1つの物理的データに関連する仮想化データ)が多い場合、大量のデータまたはファイルが失われることにつながる。例えば、物理的データまたはファイルが、記憶システムの障害が原因で失われた場合、多数の対応する仮想データまたはファイルも失われることがある。換言すれば、非重複化が原因で、予期しない記憶の失敗による損害および影響がより大きなものとなる。さらに、他の例として、物理的データまたはファイルが性能の問題を欠点とする場合、対応する仮想データまたはファイルへのアクセスもまた、同様の性能の問題を欠点とする。そのような性能の問題は、記憶システムの障害、システムの誤設定による人的過誤、アクセス負荷の集中などよって発生することがある。この問題は、同じ物理的対象に対応する複数の仮想データ対象またはファイルが、複数のクライアントからの同時アクセスを受け、それによって、結果的にそれぞれの物理的データ対象にアクセス負荷が集中するときに発生することがある。これらの影響は、非重複化の程度が増加すると、より大きなものとなる。
[0005] したがって、既存の技術は、良好な信頼性特性値を有する、記憶システム用の非重複化技術を提供する能力において、不完全なものとなっている。
[0006] 本発明の方法論は、データの非重複化のための通常の技術に伴う上記の問題および他の問題のうちの1つまたは複数を実質的に回避する方法およびシステムに関する。
[0007] 本発明の構想の一態様によれば、少なくとも1台のホストコンピュータと、管理端末と、記憶システムとを含んだコンピュータ化データ記憶システムが提供される。その記憶システムは、少なくとも1台のホストコンピュータと通信するように構成されたインタフェースと、複数のデータ対象を有する記憶装置と、記憶装置に記憶されたデータの非重複化を実施するように構成された非重複化コントローラとを含んでいる。その非重複化コントローラは、非重複化の許容される程度に関連する閾値を維持し、各データ対象に対するリンクの数をカウントし、重複が検出された場合でもデータ対象に対するリンクのカウント数が閾値を超えるときは非重複化を実施しない。
[0008] 本発明の構想の別の態様によれば、コンピュータ化データ記憶システムが提供される。この本発明の記憶システムは、少なくとも1台のホストコンピュータと、管理端末と、記憶システムとを含んでいる。その記憶システムは、少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、通常の信頼性の記憶領域と、高度な信頼性のデータ記憶領域と、通常の信頼性の記憶領域と高度な信頼性のデータ記憶領域との間でデータを移送するように構成されたデータ移送コントローラと、通常の信頼性のデータ記憶領域または高度な信頼性のデータ記憶領域内に記憶されたデータの非重複化を実施するように構成された非重複化コントローラと、を含んでいる。その非重複化コントローラは、非重複化の許容される程度に関連する閾値を維持し、各対象に対するリンクの数をカウントする。非重複化コントローラはさらに、データ対象に対するリンクのカウント数が閾値を超えたとき、データ移送コントローラに、データ対象を高度な信頼性の記憶領域内に移送させるように構成されている。
[0009] 本発明の構想のさらなる別の態様によれば、少なくとも1台のホストコンピュータと通信するように構成されたインタフェースと、複数のデータ対象を有する少なくとも1台の記憶装置とを含んだ記憶システムによって実施される方法が提供される。この本発明の方法は、第1のデータが少なくとも1つの重複データ対象において重複しているかどうかを判定するステップと、非重複化の許容される程度に関連する閾値を維持するステップと、少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、を含んでいる。第1のデータが少なくとも1つの重複データ対象において重複している場合、またリンクのカウント数が閾値を超えない場合、少なくとも1つの重複データ対象におけるデータの非重複化は実施され、リンクのカウント数が閾値を超える場合、少なくとも1つの重複データ対象におけるデータの非重複化は実施されない。
[0010] 本発明の構想のさらなる態様によれば、少なくとも1台のホストコンピュータと通信するように構成されたインタフェースと、複数のデータ対象を有する少なくとも1台の記憶装置とを含んだ記憶システムによって実施される方法が提供される。この本発明の方法は、データが複数のデータ対象のうちの少なくとも1つの重複データ対象において重複しているかどうかを判定するステップと、非重複化の許容される程度に関連する閾値を維持するステップと、少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、を含んでいる。第1のデータが、少なくとも1つの重複データ対象において重複している場合、少なくとも1つの重複データ対象におけるデータの非重複化が実施され、リンクのカウント数が閾値を超える場合、少なくとも1つの重複データ対象が高度な信頼性の記憶領域に移送される。
[0011] 本発明の構想のさらなる態様によれば、命令のセットを記憶するコンピュータ可読媒体であって、その命令のセットは、少なくとも1台のホストコンピュータと通信するように構成されたインタフェースと、複数のデータ対象を有する少なくとも1台の記憶装置とを含んだ記憶システムによって実行されると、記憶システムに、第1のデータが複数のデータ対象のうちの少なくとも1つの重複データ対象において重複しているかどうかを判定させ、非重複化の許容される程度に関連する閾値を維持させ、少なくとも1つの重複データ対象に対するリンクの数をカウントさせる、コンピュータ可読媒体が提供される。第1のデータが、少なくとも1つの重複データ対象において重複している場合、少なくとも1つの重複データ対象におけるデータの非重複化が実施され、リンクのカウント数が閾値を超える場合、少なくとも1つの重複データ対象が高度な信頼性の記憶領域に移送される。
[0012] 本発明の構想のさらなる態様によれば、命令のセットを記憶するコンピュータ可読媒体であって、その命令のセットは、少なくとも1台のホストコンピュータと通信するように構成されたインタフェースと、データ対象を有する少なくとも1台の記憶装置とを含んだ記憶システムによって実行されると、記憶システムに、第1のデータが少なくとも1つの重複データ対象において重複しているかどうかを判定させ、非重複化の許容される程度に関連する閾値を維持させ、少なくとも1つの重複データ対象に対するリンクの数をカウントさせる、コンピュータ可読媒体が提供される。第1のデータが少なくとも1つの重複データ対象において重複している場合、またリンクのカウント数が閾値を超えない場合、少なくとも1つの重複データ対象におけるデータの非重複化は実施され、リンクのカウント数が閾値を超える場合、少なくとも1つの重複データ対象におけるデータの非重複化は実施されない。
[0013] 本発明に関連するさらなる態様は、以下の説明において部分的に記載することにし、また、部分的にその説明から明らかとなり、あるいは、本発明を実施することで理解することができる。本発明の態様は、以下の詳細な説明および添付の特許請求の範囲で具体的に指摘する要素および様々な要素の組み合わせならびに態様によって、実現しかつ達成することができる。
[0014] 上述の説明と以下の説明の双方は、単に例示的かつ説明的なものであり、いかなる方式においても、請求する本発明またはその用途を限定することを意図したものではない。
[0015] 本明細書に組み込まれ本明細書の一部となる添付の図面は、本発明の実施形態を例示するものであり、また、説明と共に、本発明の技術の原理を説明し解説するのに役立つものである。
[0042] 以下の詳細な説明において、添付の図面を参照するが、その図面において、同一の機能要素は同様の符号で示してある。上述の添付の図面は、本発明の原理と整合した特定の実施形態および実現形態を、例として示すものであり、限定のために示すものではない。これらの実現形態については、当業者が本発明を実施するのに十分詳細に説明しており、また、他の実現形態を利用しうること、ならびに、様々な要素の構造的な変更および/または置換が、本発明の範囲および趣旨から逸脱することなくなされうることを理解されたい。以下の詳細な説明はしたがって、限定的な意味で解釈されるべきではない。加えて、説明する本発明の様々な実施形態は、汎用コンピュータ上で動作するソフトウェアの形式で、専用ハードウェアの形式で、またはソフトウェアとハードウェアの組み合わせの形式で実現してもよい。
A.第1の実施形態
A.1.システム構成
[0043] 図1は、本発明の記憶システムの第1の実施形態の例示的なシステム構成を示している。本発明の一実施形態に関するある記憶システムが、次の構成要素、すなわち、記憶システム100と、アレイコントローラ110と、メインプロセッサ111と、スイッチ112と、ブロックI/Fコントローラ113と、メモリ200と、キャッシュ300と、ディスクコントローラ400と、ディスク(例えばHDD)610と、バックエンドパス(例えばファイバチャネル、SATA、SAS、iSCSI(IP))601とのうちの1つまたは複数を組み込んでいる。
[0044] メインプロセッサ111は、アレイコントローラ110を適切に機能させるのに必要な様々なプロセスを実施する。メインプロセッサ111および他の構成要素は、メモリ200内に記憶された次の情報、すなわち、パリティグループ情報201と、チャンク情報202と、セグメント情報203と、統合閾値204と、移送情報(Migration Information)205とを使用する。
[0045] メインプロセッサ111は、メモリ200内に記憶された次のプログラム、すなわち、書込みプロセスプログラム211と、読出しプロセスプログラム212と、非重複化(Deduplication)(ポストプロセス)プログラム213と、移送プログラム214とを実行することによって、上述のプロセスを実施する。上記のプロセスの詳細な説明を、以下に示すことにする。
[0046] ホスト500および管理端末520は、SAN 901を介してブロックインタフェース113に接続されている。このSAN 901は、ファイバチャネルまたはiSCSI(IP)技術を使用して実装してもよい。ホスト500と管理端末520は、LAN 903(例えばIPネットワーク)を介して相互接続されている。管理端末520はまた、IPベースのネットワークなど、帯域外ネットワーク902を介してアレイコントローラ110に接続されている。
[0047] 計算能力を向上させるために、ホスト500および管理端末520は、プロセッサおよびメモリ(図1には示さず)など、様々な計算リソースを組み込んでいる。ホスト500はまた、アプリケーションソフトウェア501と、OS502と、ファイルシステム503とを組み込んでいる。加えて、管理端末520は、管理ソフトウェア521を組み込んでいる。
[0048] 記憶システム100によって設けられた記憶ボリューム(論理装置)は、HDDに配置された記憶領域の集まりから構成されている。これらのボリューム内のデータは、パリティコードを記憶することによって保護してもよく、このことは、RAID構成およびその関連技術を使用して達成される。ボリュームを提供するHDDの集まりをパリティグループ600と呼ぶ。一実施形態において、様々なパリティグループの構成(RAID構成)およびそのパリティグループ用の様々な多数のディスクを利用することができる。RAID構成の一例として、ダブルパリティ構成(すなわちRAID6)を利用することができる。RAID6では、記憶データは、パリティグループ600内の2台のHDDが故障した場合でも、回復させることができる。したがって、RAID6構成により、データを記憶することに対して、非常に高度な信頼性がもたらされる。上述のRAID6構成については、2000年にMcGraw−Hill Companyによって出版された、Marc Farley著の「Building Storage Networks」に記載されており、本書は参照によって本願に組み込まれる。
[0049] ホスト500は、データを記憶ボリューム内に記憶することができ、また記憶ボリューム内に記憶したデータにアクセスすることができる。換言すれば、ホスト500は、データを記憶ボリュームに書き込み、またデータを記憶ボリュームから読み出す。アレイコントローラ110は、パリティグループ情報201を使用してパリティグループ600を管理する。図2は、パリティグループ情報201の例示的な実施形態を示している。図2に示すように、パリティグループ情報201は、パリティグループIDと、各パリティグループ600内のディスクの枚数と、ディスク構成のタイプ(RAIDタイプ)と、各パリティグループ600内のディスクのIDと、各ディスクの容量情報とを含んでいる。
[0050] 図3は、記憶システム100内のボリュームの例示的な使用法を示している。記憶システム100は、ボリューム630(すなわちデータ記憶領域)をホスト500に提供している。ホスト500は、書込みおよび読出しアクセス操作を実施して、ホストパス(例えばSAN 901)を介して、データをボリューム630内に記憶し、ボリューム630内のデータにアクセスする。新しいデータがボリューム630内に記憶されると、記憶システム100は、ボリューム630の内容の非重複化を実施する。上述の非重複化操作のためのプロセスについて、以下で説明することにする。図3に示すように、ボリューム630内の記憶領域は、固定サイズを有する複数のセグメントに論理的に分割されている。それに対して、RAIDパリティグループによって設けられた物理的記憶領域は、複数のチャンクに分割されている。チャンクのサイズは、セグメントのサイズと同じである。アレイコントローラ110は、書込みプロセスの間にチャンクをセグメントに割り当て、セグメントに対応するデータをそれぞれのチャンク内に記憶する。さらに、以下で説明するように、アレイコントローラ110が、同じ内容を他のセグメント内に検出すると、アレイコントローラ110は、チャンク内に冗長な内容のコピーを1つのみ物理的に記憶し、複数のセグメントと1つのチャンクとのリンク関係を作成する。例えば、図3において、セグメント2とセグメント3は、チャンク1内に記憶された同じ内容を有している。
[0051] 上記の非重複化を達成する目的で、アレイコントローラ110は、チャンク情報202およびセグメント情報203を使用している。図4は、チャンク情報202の例示的な実施形態を示している。チャンク情報202は、記憶システム100内の物理的領域を管理するために使用される。図4において、チャンク情報202は、パリティグループIDと、チャンクIDと、使用状態(使用のステータス)と、ハッシュ値と、それぞれの非重複化リンクの数に関する情報とを含んでいる。一組のパリティグループIDとチャンクIDによって、チャンクが一意に識別される。このハッシュ値は、同じデータを検出するために使用される値である。このハッシュ値は、各チャンク内のデータに基づいて計算される半一意的な値である。ハッシュ値のサイズは、チャンク自体のサイズよりも小さい。したがって、ハッシュ値は比較が容易であり、それゆえに、ハッシュ値は、同じデータの検出に使用するのに非常に好適である。ハッシュ値は、SHA−1およびSHA−256などのハッシュ関数によって生成される。リンクの数は、図3に示すように、チャンク(すなわち物理的領域)とセグメント(すなわち論理的または仮想的領域)との確立された関連の数を示す。使用情報は、各チャンク(すなわち物理的領域)の現在の使用状態を示す。
[0052] 図5は、セグメント情報203の例示的な実施形態を示している。セグメント情報203は、チャンク(すなわち物理的領域)とそれに対応するセグメント(すなわち論理的または仮想領域)との関連(リンク)を維持する。図5において、セグメント情報203は、ボリュームIDと、セグメントIDと、割り当てのステータスと、パリティグループIDと、セグメントにリンクされたチャンクのチャンクIDとを含んでいる。一組のボリュームIDとセグメントIDによって、セグメントが一意に識別される。割り当てのステータスは、チャンクがセグメントに割り当てられていない場合は「ノー」であるが、一方で、「イエス」は、あるチャンクがセグメントに割り当てられていることを示唆する。リンク済みチャンク(パリティグループIDとチャンクID)は、セグメントにリンクされたチャンクを示す。すなわち、セグメント内のデータは、リンク済みチャンクとして示されたチャンク内に記憶されている。一実施形態において、上記の情報は、迅速な検索のために各要素のリストまたはディレクトリとして記憶される。
A.2.書込みプロセスの第1の例:非重複化の制限
[0053] 記憶システム100は、データ書込み要求を処理するためのプロセスの一部として非重複化を実施する。図6は、例示的な書込みプロセスの第1の部を示している。この部において、重複の検出が実施される。
[0054] ステップ1001で、アレイコントローラ110は、書込み要求とそれに関連付けられたデータをホスト500からSAN 901を介して受信する。アレイコントローラ100は次いで、書込み要求において指定されたターゲット領域の第1のセグメントを、処理すべき現在のターゲットセグメントとみなす。
[0055] ステップ1002で、アレイコントローラ110は、セグメント情報203をターゲットセグメントに関して照合する。ターゲットセグメントが既に、ステップ1003で割り当てられた対応するチャンクを有している場合、アレイコントローラ110は、ターゲットセグメントに対する新しいデータを書込みデータから取得する(ステップ1004)。そうでない場合、アレイコントローラ110は、チャンクおよび書込みデータに記憶された古いデータから新しいデータを取得する(ステップ1005)。
[0056] ステップ1006で、アレイコントローラ110は、新しいデータのハッシュ値を、ハッシュ関数を用いて計算する。
[0057] ステップ1007で、アレイコントローラ110は、同じハッシュ値について、チャンク情報202を検索する。
[0058] ステップ1008で、アレイコントローラ110が、同じハッシュ値を有するチャンクを発見した場合、プロセスはステップ1009に進む。そうでない場合、プロセスは図8のステップ1201に進む。
[0059] ステップ1009で、アレイコントローラ110は、統合閾値204およびチャンク情報202を参照することによって、統合閾値記録204内に記録された閾値を、ステップ1008で発見したチャンクへのリンクの数と比較する。統合閾値は、1つの物理的データ対象に対応する仮想的データ対象の数に対する閾値を表す。換言すれば、この閾値は、非重複化の程度に関連する閾値を表す。リンクの数が閾値よりも小さい場合、プロセスはステップ1010に進む。そうでない場合、プロセスは図8のステップ1201に進む。
[0060] ステップ1010で、アレイコントローラ110は、新しいデータを、発見したチャンク内のデータと、バイナリレベルの比較で比較する。
[0061] ステップ1011で、比較の結果、両方のデータが同じである場合、プロセスは図7のステップ1101に進む。そうでない場合、プロセスは図8のステップ1201に進む。
[0062] 図7は、例示的な書込みプロセスの第2の部を示している。この部においては、受信したデータを物理的に記憶する代わりに、リンク(関連)が作成されるかまたは更新される。
[0063] ステップ1101で、アレイコントローラ110は、ターゲットセグメントを突き止める目的でセグメント情報203を照合する。
[0064] ターゲットセグメントが既に、ステップ1102で割り当てられた対応するチャンクを有している場合、プロセスはステップ1104に進む。そうでない場合、アレイコントローラ110は、セグメント情報203を更新して、ターゲットセグメントと、同じ新しいデータを有する発見したチャンクとのリンクを作成する(ステップ1103)。
[0065] ステップ1104で、アレイコントローラ110は、ターゲットセグメントに対するチャンクを、同じデータを有する発見したチャンクに変更することによって、セグメント情報203を更新する。
[0066] ステップ1105で、アレイコントローラ110は、ターゲットセグメントに対する古いチャンクのリンクの数から1を減算することによって、チャンク情報202を更新する。
[0067] 古いチャンクのリンクの数がステップ1106で0に等しい場合、アレイコントローラ110はチャンク情報202を更新して、古いチャンクを未使用としてラベル付けする(ステップ1107)。そうでない場合、プロセスはステップ1108に進む。
[0063] ステップ1108で、アレイコントローラ110は、新しいデータと同じものを有する発見したチャンクのリンクの数に1を加算することによって、チャンク情報202を更新する。その後、プロセスは図9のステップ1301に進む。
[0069] 図8は、例示的な書込みプロセスの第3の部を示している。この部において、書込みデータは物理的に記憶される。
[0070] ステップ1201で、アレイコントローラ110は、セグメント情報203をターゲットセグメントに関して照合する。
[0071] ステップ1202で、ターゲットセグメントが既に、割り当てられた対応するチャンクを有している場合、プロセスはステップ1203に進む。そうでない場合、プロセスはステップ1205に進む。
[0072] ステップ1203で、アレイコントローラ110は、チャンク情報202を割り当てられたチャンクに関して照合する。
[0073] ステップ1204で、割り当てられたチャンクを指すリンクの数が1よりも多い場合、プロセスはステップ1208に進む。そうでない場合、プロセスはステップ1212に進む。
[0074] ステップ1205で、アレイコントローラ110は、未使用のチャンクについてチャンク情報202を検索し、未使用のチャンクを取得する。
[0075] ステップ1206で、アレイコントローラ110は、セグメント情報203およびチャンク情報202を更新して、チャンクをターゲットセグメントに割り当てる。
[0076] ステップ1207で、アレイコントローラ110は、新しいデータをチャンク内に記憶する。その後、プロセスは図9のステップ1301に進む。
[0077] ステップ1208で、アレイコントローラ110は、未使用のチャンクについてチャンク情報202を検索し、未使用のチャンクを取得する。
[0078] ステップ1209で、アレイコントローラ110は、ターゲットセグメントに対するチャンクの割当てを、新たに取得したチャンクに変更することによって、セグメント情報203を更新する。
[0079] ステップ1210で、アレイコントローラ110は、ターゲットセグメントに対する古いチャンクを指すリンクの数から1を減算することによって、チャンク情報202を更新する。
[0080] ステップ1211で、アレイコントローラ110は、新しいデータを新しいチャンク内に記憶する。その後、プロセスは図9のステップ1301に進む。
[0081] ステップ1212で、アレイコントローラ110は、新しいデータを、割り当てられたチャンク内に記憶する。その後、プロセスは図9のステップ1301に進む。
[0082] 図9は、例示的な書込みプロセスの第4の部を示している。この図は、プロセスの終了条件を示している。
[0083] 書込み要求のターゲット領域全体がステップ1301で処理された場合、アレイコントローラ110は、書込み要求のプロセスが完了したことをホストに通知し(ステップ1302)、プロセスが終了する。そうでない場合、アレイコントローラ110は、次のセグメントをターゲットセグメントとして指定し(ステップ1303)、次いでプロセスが図6のステップ1002に進む。
[0084] 上記のプロセスにおいて、チャンクのリンクの数が非重複化の閾値に達した場合、同じデータのさらなる統合(すなわち非重複化)は実施されない。ユーザーまたは管理ソフトウェア521は、管理端末520を通じて閾値(統合閾値204)を指定することができる。上述のプロセスでは、記憶データに対するリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題を、効果的に緩和することができる。
A.3.読出しプロセス
[0085] 図10は、読出し要求に対するプロセスの例示的な実施形態を示している。
[0086] ステップ1401において、アレイコントローラ110は、読出し要求をホスト500からSAN 901を介して受信する。アレイコントローラ100は次いで、読出し要求に対応するターゲット領域の第1のセグメントを、処理すべき現在のターゲットセグメントとして指定する。
[0087] ステップ1402で、アレイコントローラ110は、セグメント情報203を参照し、ターゲットセグメントに対するチャンクを取得する。
[0088] ステップ1403で、アレイコントローラ110は、チャンク内のデータをホストに転送する。読出し要求に対応するターゲット領域全体がステップ1404で処理された場合、アレイコントローラ110は、読出し要求のプロセスが完了したことをホストに通知し(ステップ1405)、プロセスが終了する。そうでない場合、アレイコントローラ110は、次のセグメントをターゲットセグメントとして指定し(ステップ1406)、次いでプロセスがステップ1402に進む。
A.4.ポストプロセスとしての非重複化プロセスの第1の例:非重複化の制限
[0089] 記憶システム100に記憶されたデータの非重複化は、書込みプロセスとは独立して実施することができる。すなわち、非重複化は、データを記憶した後のポストプロセスとして実施することができる。このプロセスはまた、ミラーのデカップリング後に、ミラー/スナップショットデータに対して実施することもできる。
[0090] 図11は、ポストプロセスとしての非重複化プロセスを示している。
[0091] ステップ1501で、アレイコントローラ110は、現在のセグメントに対応するチャンク内に記憶されたデータのハッシュ値を、ハッシュ関数を使用して計算する。
[0092] ステップ1502で、アレイコントローラ110は、同じハッシュ値について、チャンク情報202を検索する。
[0093] ステップ1503で、アレイコントローラ110が、同じハッシュ値を有するチャンクを発見した場合、プロセスはステップ1504に進む。そうでない場合、プロセスはステップ1510に進む。
[0094] ステップ1504で、アレイコントローラ110は、統合閾値記録204およびチャンク情報202を参照することによって、統合閾値記録204内に記録された閾値を、ステップ1503で発見されたチャンクを指すリンクの数と比較する。リンクの数が閾値よりも少ない場合、プロセスはステップ1505に進む。そうでない場合、プロセスはステップ1510に進む。
[0095] ステップ1505で、アレイコントローラ110は、現在のセグメント内のデータを、発見したチャンク内のデータと、バイナリレベルの比較を使用して比較する。
[0096] ステップ1506で、その比較に基づいて、両方のデータが同じであると判定された場合、プロセスはステップ1507に進む。そうでない場合、プロセスはステップ1510に進む。
[0097] ステップ1507で、アレイコントローラ110は、現在のセグメントに対するチャンクを、同じデータを有する発見したチャンクに変更することによって、セグメント情報203を更新する。
[0098] ステップ1508で、アレイコントローラ110は、現在のセグメントに対する古いチャンクのリンクの数を、同じデータを有する発見したチャンクのリンクの数に加算することによって、チャンク情報202を更新する。
[0099] ステップ1509で、アレイコントローラ110は、古いチャンクを未使用としてラベル付けすることによって、チャンク情報202を更新する。
[00100] 非重複化プロセスのターゲット領域全体がステップ1510で処理された場合、プロセスは終了する。そうでない場合、アレイコントローラ110は、次のセグメントを現在のセグメントとして指定し(ステップ1511)、その後にプロセスがステップ1501に進む。
[00101] また、上記の非重複化プロセスにおいて、チャンクを指すリンクの数が非重複化の閾値に達した場合、同じデータの統合(すなわち非重複化)は実施されない。上記の本発明のプロセスを使用すると、記憶データに対するリスク、ならびに、多数の非重複化されたデータ対象にわたる信頼性および性能の低下などの問題を緩和することができる。
A.5.書込みプロセスの第2の例:リンクの数に基づいたデータ移送
[00102] 図12、図13および図14は、非重複化を伴う書込みプロセスの別の例を示している。図示のプロセスを用いると、信頼性の異なる領域間のデータ移送が、閾値と、非重複化後のチャンクを指すリンクの数との比較に基づいて実施される。
[00103] 図12は、例示的な書込みプロセスの第1の部を示している。この部において、重複の検出が実施される。このプロセスは、ステップ1009が省かれていることを除いて、図6で説明したプロセスと同じである。
[00104] 図13は、書込みプロセスの第2の部を示している。この部においては、データを物理的に記憶する代わりに、リンク(関連)が作成されるかまたは更新される。このプロセスは、リンクの数についての加算/減算のステップの後に、(i)リンクの数と閾値との比較、(ii)比較の結果に基づいた、信頼性の異なる領域間でのデータ移送という手続きが追加されていることを除いて、図7で説明したプロセスと同じである。関連するステップは以下の通りである。
[00105] 古いチャンクのリンクの数がステップ1707で閾値と等しい場合、アレイコントローラ110は、古いチャンク内のデータを、RAID6などの高度な信頼性の領域からRAID1またはRAID5などの通常の信頼性の領域へと移動する(ステップ1708)。その閾値は、統合閾値記録204内に記録されており、1つの物理的データ対象に対する仮想データ対象の数に関連する閾値を示している。換言すれば、この閾値は、非重複化の程度に関連する閾値を示す。
[00106] チャンクを指すリンクの数がステップ1711で閾値に1を足したものと等しい場合、アレイコントローラ110は、チャンク内のデータを、RAID1およびRAID5などの通常の信頼性の領域からRAID6などの高度な信頼性の領域へと移動する(ステップ1712)。
[00107] 図14は、書込みプロセスの第3の部を示している。この部において、データは記憶装置に物理的に書き込まれる。このプロセスは、リンクの数についての減算操作の後に、(i)リンクの数と閾値との比較、および(ii)比較の結果に基づいた、信頼性の異なる領域間でのデータ移送という手続きが追加されていることを除いて、図8で説明した対応するプロセスと同じである。関連するステップは以下の通りである。
[00108] 古いチャンクを指すリンクの数がステップ1812で閾値と等しい場合、アレイコントローラ110は、古いチャンク内のデータを、RAID6などの高度な信頼性の領域からRAID1またはRAID5などの通常の信頼性の領域へと移動する(ステップ1813)。
[00109] 上記のプロセスにおいて、チャンクを指すリンクの数が非重複化の閾値を超える場合、チャンク内のデータは、RAID6などの高度な信頼性の領域に移送される。上記の本発明のプロセスを使用すると、記憶データに対する損失のリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題を緩和することができる。
[00110] 図15は、上述した移送プロセスを示している。
[00111] ステップ1901で、アレイコントローラ110は、パリティグループ情報201およびチャンク情報202を参照することによって、未使用のチャンクを探索する。未使用のチャンクは、上述のプロセスで述べた条件に従って、高度な信頼性の領域(例えばRAID6)または通常の信頼性の領域(例えばRAID1またはRAID5)から取得される。
[00112] ステップ1902で、アレイコントローラ110は、移動させるべきチャンクについてのエントリを移送情報205内に作成する。図16は、移送情報205の例示的な実施形態を示している。移送情報205は、移送元と宛先の双方に対する複数組みのパリティグループID情報とチャンクID情報を有している。移送情報205はまた、コピー操作の進捗を表すコピーポインタを有している。
[00113] ステップ1903で、アレイコントローラ110は、移送元チャンク内のデータを、移送先として選択されたチャンクにコピーする。コピー操作の進捗に従って、移送情報206内のコピーポインタは、そのコピーポインタを前方へ移動させることによって更新される。
[00114] ステップ1904で、コピー操作の完了後、アレイコントローラ110はセグメント情報203を更新して、関連するセグメント(1つまたは複数)に対するチャンクを移送元チャンクから移送先チャンクへと変更する。換言すれば、アレイコントローラ110は、セグメント(1つまたは複数)とチャンクとのマッピングを変更する。これによって、ホスト500に対するデータの透過的な移送が達成される。
[00115] ステップ1905で、アレイコントローラ110は、チャンク情報202を更新して、移送元チャンクを未使用としてラベル付けする。
[00116] ステップ1906で、アレイコントローラ110は、チャンクに対するエントリを削除する。
A.6.ポストプロセスとしての非重複化プロセスの第2の例:リンクの数に基づいたデータ移送
[00117] 図17は、ポストプロセスとしての非重複化プロセスの別の例を示している。このプロセスを用いると、信頼性の異なる領域間のデータ移送が、閾値と、非重複化後のチャンクを指すリンクの数との比較に基づいて実施される。
[00118] 図17に示すプロセスは、ステップ1504が削除されていること、ならびに、リンクの数について実施される加算操作後に実施される、(i)リンクの数と閾値との比較、および(ii)比較の結果に基づいた、信頼性の異なる領域間でのデータ移送という手続きが追加されていることを除いて、図11で説明した対応するプロセスと同じである。関連するステップは以下の通りである。
[00119] チャンクを指すリンクの数がステップ2009で閾値に1を加算したものと等しい場合、アレイコントローラ110は、チャンク内のデータを、RAID1およびRAID5などの通常の信頼性の領域からRAID6などの高度な信頼性の領域へと移動させる(ステップ2010)。
[00120] また、上記の非重複化プロセスにおいて、チャンクを指すリンクの数が非重複化の閾値を超える場合、チャンク内のデータは、RAID6などの高度な信頼性の領域へと移送される。上記の本発明のプロセスを使用すると、記憶データに対する損失のリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題を緩和することができる。
B.第2の実施形態
B.1.システム構成
[00121] 図18は、第2の実施形態の例示的なシステム構成を示している。第2の実施形態のシステムにおいて、アレイコントローラ110は、ネットワークI/Fコントローラ114を、第1の実施形態のブロックインタフェースコントローラ113の代わりに組み込んでいる。メモリ200は、実ファイル情報222および仮想ファイル情報223を、第1の実施形態のチャンク情報202およびセグメント情報203の代わりに維持する。
[00122] 第1の実施形態において述べたプログラムに加えて、メモリ200は、ファイルサービスプログラム215を具備している。ファイルサービスプログラム215は、NFS(ネットワークファイルシステム)およびCIFS(コモンインターネットファイルシステム)などのネットワークファイル共有プロトコルを介して、ファイルをエクスポートする(すなわちファイルをアクセス可能にする)。さらに、ファイルサービスプログラム215は、ホスト500からの要求を解釈し、また、書込みプロセスプログラム211および読出しプロセスプログラム212を呼び出すことによって、これらの要求を処理する。ネットワークI/Fコントローラ114およびファイルサービスプログラム215を追加することによって、記憶システム100は、NAS(ネットワーク結合記憶装置)システムとして機能することが可能となっている。
[00123] ホスト500および管理端末520は、IP−SAN 904(すなわちIPネットワーク)を介してネットワークインタフェース114に接続されている。第1の実施形態において述べた構成に加えて、ホスト500は、ネットワークファイルシステムクライアントソフトウェア504を組み込んでいる。ネットワークファイルシステムクライアント504は、アプリケーションソフトウェア501などからの命令に応答して、NFSおよびCIFSなどのネットワークファイル共有プロトコルを使用して、記憶システム100にファイルI/O要求をIP−SAN 904を介して送信する。第2の実施形態のシステムの他の構成要素は、第1の実施形態に関連して説明したそれぞれの構成要素と概ね同じである。
[00124] 図19は、ファイルシステムデータ構造の例示的な実施形態を示している。各iノードは、ファイルまたはディレクトリを示すために使用することができる。iノードがファイルを示す場合(そのファイルタイプフィールドが、804および807などの「ファイル」である場合)、iノード内のブロックポインタが指すデータブロックは、ファイルの実際のデータを含んでいる。ファイルが複数のデータブロック(例えば10個のブロック)内に記憶されている場合、10個のデータブロックのアドレスがブロックポインタに記録されている。iノードがディレクトリを示す場合(ファイルタイプフィールドが、801および803などの「ディレクトリ」である場合)、iノード内のブロックポインタが指すデータブロックは、iノード番号と、そのディレクトリ内に存在するすべてのファイルおよびディレクトリの名前とのリスト(このリストはディレクトリエントリと呼ばれる)を記憶している。ファイルを管理するために使用される上述の複数のタイプの情報は、所定の配置規則に従って記憶システム100内のボリューム内に記憶されている。
[00125] 図20は、記憶システム100内の物理的な記憶領域の使用法を示している。記憶システム100は、ホスト500によって使用されるファイルを記憶しており、引き続きこれらのファイルをホスト500に提示(エクスポート)する。加えて、記憶システム100は、同じ内容を有するファイルを検出した場合、そのファイルに対して非重複化を実施する。図20に示すように、記憶システム100は、仮想ファイルをホスト500に提供しており、仮想ファイルは、記憶システム100の記憶領域内に物理的に記憶された物理ファイルにリンクされている。仮想ファイルと物理ファイルとのこの関係は、第1の実施形態に関連して述べた、セグメントとチャンクとの関連と類似している。
[00126] 上記の関係(リンク)および関連する情報は、図21および図22に示す実ファイル情報222および仮想ファイル情報223によって表現される。実ファイル情報222は、記憶システム100内に物理的に記憶された実質的な(物理的な)ファイルを管理するのに必要な情報である。図21において、実ファイル情報222は、各実ファイルを識別する実ファイルIDと、実ファイルの内容から生成されたハッシュ値と、実ファイルを指すリンクの数とを含んでいる。リンクの数は、図20に示す実ファイルと仮想ファイルとの関係の数を表している。
[00127] 仮想ファイル情報223は、ホスト500に提供される仮想ファイルを管理するのに必要な情報である。図22において、仮想ファイル情報223は、各仮想ファイルを識別する仮想ファイルIDと、リンクされた実ファイルの実ファイルIDとを含んでいる。この実施形態において、仮想ファイルIDおよび実ファイルIDは独立している。
B.2.非重複化プロセス
[00128] 書込み非重複化プロセスなどの非重複化プロセス、およびポストプロセスとして実施される非重複化プロセスは、第1の実施形態に関連して説明したものと同じ方式で実施することができる。図23は、この実施形態においてポストプロセスとして実施される非重複化プロセスの一例を示している。
[00129] ステップ2101で、アレイコントローラ110は、現在のファイル(仮想ファイル)内のデータのハッシュ値を、ハッシュ関数を使用して計算する。
[00130] ステップ2102で、アレイコントローラ110は、同じハッシュ値について、実ファイル情報222を検索する。
[00131] ステップ2103で、アレイコントローラ110が、同じハッシュ値を有する実ファイルを発見することができた場合、プロセスはステップ2104に進む。そうでない場合、プロセスはステップ2110に進む。
[00132] ステップ2104で、アレイコントローラ110は、統合閾値記録204および実ファイル情報222を参照することによって、統合閾値記録204内に記録された閾値を、ステップ2103で発見した実ファイルのリンクの数と比較する。統合閾値は、1つの実(物理)データファイルに対する仮想データファイルの数に関連する閾値を示している。換言すれば、この閾値は、非重複化の程度に関連する閾値を表す。リンクの数が閾値よりも少ない場合、プロセスはステップ2105に進む。そうでない場合、プロセスはステップ2110に進む。
[00133] ステップ2105で、アレイコントローラ110は、現在の仮想ファイル内のデータを、発見した実ファイル内のデータと、バイナリレベルの比較で比較する。
[00134] ステップ2106で、比較の結果、両方のデータが同じである場合、プロセスはステップ2107に進む。そうでない場合、プロセスはステップ2110に進む。
[00135] ステップ2107で、アレイコントローラ110は、現在の仮想ファイルに対する実ファイルを、同じデータを有する発見した実ファイルに変更することによって、仮想ファイル情報223を更新する。
[00136] ステップ2108で、アレイコントローラ110は、現在のファイルに関連付けられた古い実ファイルを指すリンクの数を、同じデータを有する発見済みの実ファイルのリンクの数に加算することによって、実ファイル情報222を更新する。
[00137] ステップ2109で、アレイコントローラ110は、実ファイル情報222を更新することによって、現在のファイルに関連付けられた実ファイルを削除する。非重複化プロセスのすべてのターゲットファイルがステップ2110で処理された場合、プロセスは終了する。そうでない場合、アレイコントローラ110は、次のファイルを現在のファイルとして指定し(ステップ2111)、プロセスはステップ2101に進む。
[00138] 上記の非重複化プロセスにおいて、実ファイルを指すリンクの数が非重複化の閾値に達した場合、同じデータの統合(すなわち非重複化)は実施されない。上記の本発明のプロセスを使用すると、記憶データに対する損失のリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題を緩和することができる。
[00139] 上述のプロセスと同様に、第1の実施形態におけるチャンクおよびセグメントをこの実施形態における実ファイルおよび仮想ファイルとみなすことによって、第1の実施形態に関連して述べた各プロセスを、第2の実施形態におけるファイル記憶システム(記憶システム100)に適用することができる。第1の実施形態におけるチャンク情報201およびセグメント情報203は、この実施形態における実ファイル情報222および仮想ファイル情報223の各々に対応している。また、チャンクを取得し解放する(未使用にする)ことは、実ファイルの作成および楽しみに対応している。高度な信頼性の領域の別の例として、他の記憶システムへの遠隔複製によってデータが保護される記憶領域を利用することができる。
[00140] 先に述べたように、書込みプロセス非重複化、またはポストプロセスとして実施される非重複化プロセスなどのプロセスを適用することによって、記録データの損失に対するリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題は、非重複化能力を有するネットワークファイル記録システム(NAS)においては、有効に緩和することができる。
C.第3の実施形態
C.1.システム構成
[00141] 図24は、第3の実施形態の例示的なシステム構成を示している。第1の実施形態に関連して述べた構成要素に加えて、この実施形態におけるシステムは、バックアップサーバ510と記憶システム700とを組み込んでいる。バックアップサーバ510は、バックアップソフトウェア511を組み込んでいる。ホスト500と記憶システム700は、SAN 901によって接続されており、それによってホスト500はデータを記憶システム700に記憶することが可能となっている。アレイコントローラ110は、第1の実施形態のブロックインタフェースコントローラ113の代わりに、テープ(ストリーム)インタフェースコントローラ114を組み込んでいる。第1の実施形態で述べたプログラムに加えて、メモリ200は仮想テーププログラム216を具備している。
[00142] 仮想テーププログラム216は、テープデバイスおよびテープライブラリをエミュレートする。すなわち、テープデバイスに対するホスト500からの要求を解釈し、書込みプロセスプログラム211および読出しプロセスプログラム212を呼び出すことによって、これらの要求を処理する。バックアップサーバ510およびホスト500は、記憶システム100をテープ媒体と共にテープライブラリとして使用することができる。これによって、記憶システム100は、VTL(仮想テープライブラリ)として機能することが可能となっている。第3の実施形態のシステムの他の構成要素は、第1の実施形態に関連して説明した対応する構成要素と概ね同じである。
C.2.バックアップ操作における非重複化プロセス
[00143] バックアップ操作において、バックアップソフトウェア511は、ホスト500によって使用されるデータを記憶システム700から読み出し、そのデータを記憶システム100に書き込む。復元操作において、バックアップソフトウェア511は、復元すべきデータを記憶システム100から読み出し、そのデータを記憶システム700に書き込む。
[00144] 記憶システム100におけるプロセスは、要求を解釈することおよび変換することを含めた仮想テープ機能を除いて、第1の実施形態に関連して述べた対応するプロセスと同じであるため、第1の実施形態に関連して述べた非重複化関連の各プロセスは、第3の実施形態における記憶システム100に適用することができる。
[00145] 先に述べた、書込み非重複化プロセス、またはポストプロセスとして実施される非重複化プロセスなどのプロセスを適用することによって、記録データに対する損失のリスク、ならびに、多数のデータ対象にわたる信頼性および性能の低下などの問題は、非重複化能力を有するVTLにおいては、有効に緩和することができる。別の例示的な記憶システム構成において、非重複化能力を有するコントローラは、例えばアプライアンスとして、HDDを有する記憶システムの残りから分離することができる。
D.第4の実施形態
[00146] 図25は、第4の実施形態の例示的なシステム構成を示している。この実施形態において、バックアップソフトウェア511は、上記の実施形態において述べた非重複化に関連した機能および能力を提供する目的で、非重複化プログラム512を組み込んでいる。バックアップ操作の間、バックアップソフトウェア511は、ホスト500によって使用されるデータを記憶システム700から読み出し、そのデータをテープ装置などのバックアップ記憶システム710に書き込む。復元操作の間、バックアップソフトウェア511は、復元すべきデータをバックアップ記憶システム710から読み出し、そのデータを記憶システム700に書き込む。
[00147] 先に述べた、書込み非重複化プロセス、またはポストプロセスとして実施される非重複化プロセスなどのプロセスを、バックアップソフトウェア511によって実施されるプロセスに適用することによって、バックアップデータに対する損失のリスク、ならびに、多数のバックアップデータ対象にわたる信頼性および性能の低下などの問題は、有効に緩和することができる。
E.例示的なコンピュータプラットフォーム
[00148] 図26は、本発明の方法論の実施形態を実現しうるコンピュータ/サーバシステム2600の実施形態を示すブロック図である。システム2600は、コンピュータ/サーバプラットフォーム2601と、周辺装置2602と、ネットワークリソース2603とを含んでいる。
[00149] コンピュータプラットフォーム2601は、コンピュータプラットフォーム2601の向こう側に、またコンピュータプラットフォーム2601の様々な部分の間で情報を通信するためのデータバス2604または他の通信機構と、情報を処理し、他の計算タスクおよび制御タスクを実施するための、バス2601に結合されたプロセッサ2605とを含んでいてもよい。コンピュータプラットフォーム2601はまた、ランダムアクセスメモリ(RAM)または他の動的記憶装置など、様々な情報ならびにプロセッサ2605によって実行すべき命令を記憶するための、バス2604に結合された揮発性記憶装置2606を含んでいる。揮発性記憶装置2606はまた、プロセッサ2605によって命令を実行する間、一時変数または他の中間情報を記憶するために使用してもよい。コンピュータプラットフォーム2601は、基本入出力システム(BIOS)ならびに様々なシステム設定パラメータなどの静的な情報およびプロセッサ2605用の命令を記憶するための、バス2604に結合された読み出し専用メモリ(ROMもしくはEPROM)2607または他の静的記憶装置をさらに含んでいていもよい。情報および命令を記憶するための、磁気ディスク、光学ディスク、または固体フラッシュメモリデバイスなどの永久記憶装置2608が設けられており、バス2601に結合されている。
[00150] コンピュータプラットフォーム2601は、バス2604を介して、陰極線管(CRT)、プラズマディスプレイ、または液晶ディスプレイ(LCD)など、情報をシステム管理責任者またはコンピュータプラットフォーム2601のユーザーに表示するためのディスプレイ2609に結合してもよい。英数字および他のキーを含んだ入力装置2610が、情報およびコマンドの選択をプロセッサ2605に通信するために、バス2601に結合されている。別のタイプのユーザー入力装置は、方向の情報およびコマンドの選択をプロセッサ2604に通信するための、またディスプレイ2609上でのカーソルの動きを制御するための、マウス、トラックボール、カーソル方向キーなどのカーソル制御装置2611である。この入力装置は典型的には、第1の軸(例えばx)および第2の軸(例えばy)の2つの軸における2自由度を有しており、この自由度によって、装置は平面内の位置を指定することが可能となっている。
[00151] 外部記憶装置2612を、コンピュータプラットフォーム2601にバス2604を介して接続して、コンピュータプラットフォーム2601に追加のまたは取外し可能な記憶容量をもたらしてもよい。コンピュータシステム2600の実施形態において、外部の取外し可能な記憶装置2612は、他のコンピュータシステムとのデータの交換を促進するために使用してもよい。
[00152] 本発明は、本明細書で説明した技術を実現するためのコンピュータシステム2600の使用法に関する。ある実施形態において、本発明のシステムは、コンピュータプラットフォーム2601などのマシン上に存在してもよい。本発明の一実施形態によれば、本明細書で説明する技術は、揮発性メモリ2606内に含まれた1つまたは複数の命令の1つまたは複数のシーケンスをプロセッサ2605が実行するのに応答して、コンピュータシステム2600によって実施される。そのような命令は、永久記憶装置2608などの別のコンピュータ可読媒体から揮発性メモリ2606内に読み込んでもよい。揮発性メモリ2606内に含まれた命令のシーケンスを実行すると、プロセッサ2605が、本明細書で説明したプロセスステップを実施する。別の実施形態において、ハードワイヤード回路を、ソフトウェア命令の代わりにまたはソフトウェア命令と共に使用して、本発明を実現してもよい。したがって、本発明の実施形態は、ハードウェア回路とソフトウェアのいかなる特定の組み合わせにも限定されない。
[00153] 本明細書で使用する「コンピュータ可読媒体」という用語は、実行のために命令をプロセッサ2605に提供するのに寄与する任意の媒体を指す。コンピュータ可読媒体は、本明細書で説明した方法および/または技術のいずれかを実現するための命令を運びうるマシン可読媒体の一例にすぎない。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体などを含めた多数の形態を取ることができる。不揮発性媒体には、例えば、記憶装置2608などの光学ディスクまたは磁気ディスクが挙げられる。揮発性媒体には、揮発性記憶装置2606などの動的メモリが挙げられる。伝送媒体には、データバス2604を備えるワイヤを含めた同軸ケーブル、銅線および光ファイバが挙げられる。伝送媒体はまた、電波および赤外線データ通信の間に生成されるものなど、音波または光波の形を取ることもできる。
[00154] コンピュータ可読媒体の一般的な形態には、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の任意の磁気媒体、CD−ROM、他の任意の光学媒体、せん孔カード、紙テープ、ホールのパターンを有する他の任意の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、フラッシュドライブ、メモリカード、他の任意のメモリチップもしくはカートリッジ、後に説明する搬送波、またはコンピュータが読み出しうる他の任意の媒体が挙げられる。
[00155] コンピュータ可読媒体の各種の形態は、1つまたは複数の命令の1つまたは複数のシーケンスを実行のためにプロセッサ2605に運ぶことに寄与することができる。例えば、命令はまず、遠隔コンピュータから磁気ディスク上に運ばれてもよい。別法として、遠隔コンピュータが命令を動的メモリ内にロードし、モデムを使用してその命令を電話回線を介して送信してもよい。コンピュータシステム2600に対して局所的なモデムは、電話回線上のデータを受信し、赤外線送信機を使用してそのデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で運ばれたデータを受信することができ、また適正な回路はデータをデータバス2604上に配置することができる。バス2604は、データを揮発性記憶装置2606に運び、その揮発性記憶装置2606から、プロセッサ2605は命令を取り出して実行する。揮発性メモリ2606によって受け取った命令は、プロセッサ2605によって実行する前または後に、任意選択により、永久記憶装置2608に記憶してもよい。命令はまた、当技術分野において周知の多様なネットワークデータ通信プロトコルを使用して、インターネットを介してコンピュータプラットフォーム2601内にダウンロードしてもよい。
[00156] コンピュータプラットフォーム2601はまた、データバス2604に結合されたネットワークインタフェースカード2613などの通信インタフェースを含んでいる。通信インタフェース2613は、ローカルネットワーク2615に接続されているネットワークリンク2614と結合する双方向データ通信を提供している。例えば、通信インタフェース2613は、対応するタイプの電話回線へのデータ通信接続を提供するための統合ディジタル通信サービス網(ISDN)カードまたはモデムであってもよい。別の例として、通信インタフェース2613は、互換性のあるLANへのデータ通信接続を提供するためのローカルエリアネットワークインタフェースカード(LAN NIC)であってもよい。また、周知の802.11a、802.11b、802.11gおよびブルートゥースなどの無線リンクをネットワークの実現のために使用してもよい。そのようないかなる実現形態においても、通信インタフェース2613は、様々なタイプの情報を表現するディジタルデータストリームを運ぶ電気的、電磁気的または光学的信号を送信し受信する。
[00157] ネットワークリンク2613は典型的には、1つまたは複数のネットワークを通じた他のネットワークリソースへのデータ通信を提供するものである。例えば、ネットワークリンク2614は、ローカルネットワーク2615を通じた、ホストコンピュータ2616またはネットワーク記憶装置/サーバ2617への接続を提供してもよい。それに加えてまたはそれに代わって、ネットワークリンク2613は、ゲートウェイ/ファイアウォール2617を通じて、インターネットなどのワイドエリアまたはグローバルネットワーク2618へ接続してもよい。したがって、コンピュータプラットフォーム2601は、遠隔ネットワーク記憶装置/サーバ2619など、インターネット2618上のいかなる個所に配置されたネットワークリソースにもアクセスすることができる。その一方で、コンピュータプラットフォーム2601はまた、ローカルエリアネットワーク2615および/またはインターネット2618上のいかなる個所に配置されたクライアントによってアクセスしてもよい。ネットワーククライアント2620および2621はそれら自体、プラットフォーム2601と類似したコンピュータプラットフォームに基づいて実現してもよい。
[00158] ローカルネットワーク2615およびインターネット2618の双方は、ディジタルデータストリームを運ぶ電気的、電磁気的または光学的信号を使用している。各種のネットワークを通じた信号、および、ネットワークリンク2614上の、また通信インタフェース2613を通じた信号は、コンピュータプラットフォーム2601へ、またコンピュータプラットフォーム2601からディジタルデータを運ぶものであり、情報を移動させる搬送波の例示的な形態である。
[00159] コンピュータプラットフォーム2601は、インターネット2618およびLAN2615を含めた多様なネットワーク(1つまたは複数)、ネットワークリンク2614、ならびに通信インタフェース2613を通じて、メッセージを送信し、また、プログラムコードを含めたデータを受信することができる。インターネットの例において、システム2601がネットワークサーバとして働く場合、システム2601は、インターネット2618、ゲートウェイ/ファイアウォール2617、ローカルエリアネットワーク2615、および通信インタフェース2613を通じて、クライアント(1つもしくは複数)2620および/または2621上で動作するアプリケーションプログラムのために、要求されたコードまたはデータを送信してもよい。同様に、システム2601は、他のネットワークリソースからコードを受信してもよい。
[00160] 受信したコードは、受信したときにプロセッサ2605によって実行してもよく、かつ/あるいは、後の実行のために、それぞれ永久もしくは揮発性記憶装置2608および2606または他の不揮発性記憶装置に記憶してもよい。このようにして、コンピュータシステム2601は、アプリケーションコードを搬送波の形態で取得してもよい。
[00161] 本発明はいかなる特定のファイアウォールシステムにも限定されないことに留意されたい。本発明のポリシーベース内容処理システムは、3つのファイアウォールオペレーティングモード、具体的にはNAT、ルート、およびトランスペアレントのうちのいずれにおいて使用してもよい。
[00162] 最後に、本明細書で説明したプロセスおよび技術は、いかなる特定の機器にも固有に関連するものでもなく、また、構成要素のいかなる好適な組み合わせによって実現してもよいことを理解されたい。さらに、様々なタイプの汎用装置を、本明細書に記載した教示に従って使用してもよい。また、本明細書で説明した方法ステップを実施するために専用の機器を構成すると有利となることが判明するであろう。本発明について、特定の例と関連させて説明してきたが、それらの例は、すべての点で、限定ではなく例示を意図したものである。当業者であれば、ハードウェア、ソフトウェア、およびファームウェアの多数の様々な組み合わせが、本発明を実施するのに好適となることが理解されよう。例えば、説明したソフトウェアは、アセンブラ、C/C++、Perl、シェル、PHP、Java(登録商標)など、種々様々なプログラミング言語またはスクリプト言語で実現することができる。
[00163] さらに、仕様を検討し、本明細書に開示した本発明を実施することで、本発明の他の実現形態が、当業者には明らかとなろう。説明した実施形態の様々な態様および/または構成要素は、データ複製機能を有するコンピュータ化記憶システムにおいて、単独でまたは任意の組み合わせで使用することができる。仕様および例は単に例示的なものであり、本発明の真の範囲および趣旨は特許請求の範囲によって示されることが意図されている。
[0016]第1の実施形態の例示的なシステム構成を示す図である。 [0017]パリティグループ情報の例示的な実施形態を示す図である。 [0018]記憶システムの例示的な実施形態におけるボリュームの使用法を示す図である。 [0019]チャンク情報の例示的な実施形態を示す図である。 [0020]セグメント情報の例示的な実施形態を示す図である。 [0021]書込みプロセスの例示的な実施形態の第1の部を示す図である。 [0022]書込みプロセスの例示的な実施形態の第2の部を示す図である。 [0023]書込みプロセスの例示的な実施形態の第3の部を示す図である。 [0024]書込みプロセスの例示的な実施形態の第4の部を示す図である。 [0025]読出し要求を実施するためのプロセスの例示的な実施形態を示す図である。 [0026]ポストプロセスとしての例示的な非重複化プロセスを示す図である。 [0027]書込みプロセスの例示的な実施形態の第1の部を示す図である。 [0028]書込みプロセスの例示的な実施形態の第2の部を示す図である。 [0029]書込みプロセスの例示的な実施形態の第3の部を示す図である。 [0030]例示的な移送プロセスを示す図である。 [0031]移送情報の例示的な実施形態を示す図である。 [0032]ポストプロセスとしての非重複化プロセスの別の例を示す図である。 [0033]第2の実施形態の例示的なシステム構成を示す図である。 [0034]ファイルシステムデータ構造の例示的な実施形態を示す図である。 [0035]記憶システム内の実際の記憶領域の使用法を示す図である。 [0036]実ファイル情報の例示的な実施形態を示す図である。 [0037]仮想ファイル情報の例示的な実施形態を示す図である。 [0038]ポストプロセスとしての非重複化プロセスの一例を示す図である。 [0039]第3の実施形態の例示的なシステム構成を示す図である。 [0040]第4の実施形態の例示的なシステム構成を示す図である。 [0041]本発明のシステムを実現しうるコンピュータプラットフォームの例示的な実施形態を示す図である。
符号の説明
100……記憶システム、110……アレイコントローラ、111……メインプロセッサ、112……スイッチ、113……ブロックI/Fコントローラ、200……メモリ、201……パリティグループ情報、202……チャンク情報、203……セグメント情報、204……統合閾値、205……移送情報、211……書込みプロセスプログラム、212……読出しプロセスプログラム、213……非重複化(ポストプロセス)プログラム、214……移送プログラム、300……キャッシュ、400……ディスクコントローラ、500……ホスト、501……APP、502……OS、503……ファイルシステム、520……管理端末、521……管理ソフトウェア、600……ディスク、610……ディスク

Claims (29)

  1. 少なくとも1台のホストコンピュータと、
    管理端末と、
    記憶システムであって、
    前記少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、
    複数のデータ対象を含んだ記憶装置と、
    前記記憶装置内に記憶されたデータの非重複化を実施するように操作可能な非重複化コントローラであって、非重複化の許容される程度に関連する閾値を維持し、各データ対象に対するリンクの数をカウントし、重複が検出された場合でも前記データ対象に対するリンクの前記カウント数が前記閾値を超えるときは非重複化を実施しない非重複化コントローラと、を備える記憶システムと、
    を備える、コンピュータ化データ記憶システム。
  2. 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項1に記載のコンピュータ化データ記憶システム。
  3. 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項1に記載のコンピュータ化データ記憶システム。
  4. 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項1に記載のコンピュータ化データ記憶システム。
  5. 非重複化を実施することは、複数の仮想対象から1つのデータ対象を指す複数のリンクを作成することを含む、請求項1に記載のコンピュータ化データ記憶システム。
  6. 前記非重複化コントローラは、書込みコマンドを前記インタフェースによって受信したことに応答して、前記非重複化を実施するように操作可能である、請求項1に記載のコンピュータ化データ記憶システム。
  7. 少なくとも1台のホストコンピュータと、
    管理端末と、
    記憶システムであって、
    前記少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、
    通常の信頼性の記憶領域と、
    高度な信頼性のデータ記憶領域と、
    前記通常の信頼性の記憶領域と前記高度な信頼性のデータ記憶領域との間でデータを移送するように操作可能なデータ移送コントローラと、
    前記通常の信頼性のデータ記憶領域または前記高度な信頼性のデータ記憶領域内に記憶されたデータの非重複化を実施するように操作可能な非重複化コントローラであって、非重複化の許容される程度に関連する閾値を維持し、各対象に対するリンクの数をカウントし、前記データ対象に対するリンクの前記カウント数が前記閾値を超えたとき、前記データ移送コントローラに、前記データ対象を前記高度な信頼性の記憶領域に移送させるように操作可能である非重複化コントローラと、
    を備える記憶システムと、
    を備えるコンピュータ化データ記憶システム。
  8. 前記非重複化コントローラはさらに、前記データ対象に対するリンクの前記カウント数が前記閾値を下回ったとき、前記移送コントローラに、前記通常の信頼性の記憶領域に前記高度な信頼性の記憶領域から前記データ対象を移送させるように操作可能である、請求項7に記載のコンピュータ化データ記憶システム。
  9. 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項7に記載のコンピュータ化データ記憶システム。
  10. 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項7に記載のコンピュータ化データ記憶システム。
  11. 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項7に記載のコンピュータ化データ記憶システム。
  12. 非重複化を実施することは、複数の仮想対象から1つのデータ対象を指す複数のリンクを作成することを含む、請求項7に記載のコンピュータ化データ記憶システム。
  13. 前記非重複化コントローラは、書込みコマンドを前記インタフェースによって受信したことに応答して、前記非重複化を実施するように操作可能である、請求項7に記載のコンピュータ化データ記憶システム。
  14. 少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実施される方法であって、
    第1のデータが前記少なくとも1つの重複データ対象において重複しているかどうかを判定するステップと、
    非重複化の許容される程度に関連する閾値を維持するステップと、
    前記少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、
    前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、またリンクの前記カウント数が前記閾値を超えない場合、前記データの非重複化を、前記少なくとも1つの重複データ対象において実施するステップと、
    リンクの前記カウント数が前記閾値を超える場合、前記データの前記非重複化を、前記少なくとも1つの重複データ対象において実施しないステップと、
    を含む方法。
  15. 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項14に記載の方法。
  16. 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項14に記載の方法。
  17. 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項14に記載の方法。
  18. 非重複化を実施することは、複数の仮想対象から前記重複データ対象を指す複数のリンクを作成することを含む、請求項14に記載の方法。
  19. 前記判定するステップの前に、書込み要求を前記少なくとも1台のホストコンピュータから受信することをさらに含み、前記書込み要求は前記第1のデータを含む、請求項14に記載の方法。
  20. 少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実施される方法であって、
    データが前記複数のデータ対象のうちの前記少なくとも1つ重複データ対象において重複しているかどうかを判定するステップと、
    非重複化の許容される程度に関連する閾値を維持するステップと、
    前記少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、
    前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、前記データの非重複化を前記少なくとも1つの重複データ対象において実施するステップと、
    リンクの前記カウント数が前記閾値を超える場合、前記少なくとも1つの重複データ対象を高度な信頼性のデータ記憶領域に移送するステップと、を含む方法。
  21. 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項20に記載の方法。
  22. 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項20に記載の方法。
  23. 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項20に記載の方法。
  24. 非重複化を実施することは、複数の仮想対象から前記重複データ対象を指す複数のリンクを作成することを含む、請求項20に記載の方法。
  25. 前記判定するステップの前に、書込み要求を前記少なくとも1台のホストコンピュータから受信することをさらに含み、前記書込み要求は前記第1のデータを含む、請求項20に記載の方法。
  26. 命令のセットを記憶するコンピュータ可読媒体であって、前記命令のセットは、少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実行されたとき、前記記憶システムに、
    第1のデータが前記少なくとも1つの重複データ対象において重複しているかどうかを判定させ、
    非重複化の許容される程度に関連する閾値を維持させ、
    前記少なくとも1つの重複データ対象に対するリンクの数をカウントさせ、
    前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、またリンクの前記カウント数が前記閾値を超えない場合、前記データの非重複化を、前記少なくとも1つの重複データ対象において実施させ、
    リンクの前記カウント数が前記閾値を超える場合、前記データの前記非重複化を、前記少なくとも1つの重複データ対象において実施させない、
    コンピュータ可読媒体。
  27. 前記命令のセットはさらに、前記記憶システムに、前記判定するステップの前に、前記少なくとも1台のホストコンピュータからの書込み要求を受信させるように操作可能であり、前記書込み要求は前記第1のデータを含む、請求項26に記載のコンピュータ可読媒体。
  28. 命令のセットを記憶するコンピュータ可読媒体であって、前記命令のセットは、少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実行されたとき、前記記憶システムに、
    第1のデータが前記複数のデータ対象のうちの前記少なくとも1つの重複データ対象において重複しているかどうかを判定させ、
    非重複化の許容される程度に関連する閾値を維持させ、
    前記少なくとも1つの重複データ対象に対するリンクの数をカウントさせ、
    前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、前記データの非重複化を前記少なくとも1つの重複データ対象において実施させ、
    リンクの前記カウント数が前記閾値を超える場合、前記少なくとも1つの重複データ対象を高度な信頼性のデータ記憶領域に移送させる、
    コンピュータ可読媒体。
  29. 前記命令のセットはさらに、前記記憶システムに、前記判定するステップの前に、前記少なくとも1台のホストコンピュータからの書込み要求を受信させるように操作可能であり、前記書込み要求は前記第1のデータを含む、請求項26に記載のコンピュータ可読媒体。
JP2008180869A 2007-11-20 2008-07-11 記憶システムにおける非重複化のための方法および装置 Pending JP2009129441A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/943,494 US7870105B2 (en) 2007-11-20 2007-11-20 Methods and apparatus for deduplication in storage system

Publications (1)

Publication Number Publication Date
JP2009129441A true JP2009129441A (ja) 2009-06-11

Family

ID=40344272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008180869A Pending JP2009129441A (ja) 2007-11-20 2008-07-11 記憶システムにおける非重複化のための方法および装置

Country Status (3)

Country Link
US (1) US7870105B2 (ja)
EP (1) EP2063351A3 (ja)
JP (1) JP2009129441A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150681A (ja) * 2010-01-20 2011-08-04 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置
JP2011170665A (ja) * 2010-02-19 2011-09-01 Nec Corp ストレージシステム
JP2012533126A (ja) * 2009-07-16 2012-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ソースおよびターゲットを含む分散型環境におけるデータを重複排除する方法、システム、及びプログラム
JP2013054416A (ja) * 2011-09-01 2013-03-21 Fujitsu Ltd ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP2013514557A (ja) * 2010-08-31 2013-04-25 日本電気株式会社 ストレージシステム
US8566291B2 (en) 2011-08-30 2013-10-22 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media for forming a bitmap and creating a volume map
JP2014175008A (ja) * 2013-03-07 2014-09-22 Postech Academy-Industry Foundation データ重複除去方法及び装置
JP2015212971A (ja) * 2011-04-08 2015-11-26 マイクロン テクノロジー, インク. データ重複排除
JP2020086477A (ja) * 2018-11-15 2020-06-04 株式会社日立製作所 大規模ストレージシステム及び大規模ストレージシステムにおけるデータ配置方法

Families Citing this family (305)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
WO2008070688A1 (en) 2006-12-04 2008-06-12 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US8140599B1 (en) * 2007-12-07 2012-03-20 Emc Corporation Garbage collection for merged collections
US8126852B1 (en) 2007-12-07 2012-02-28 Emc Corporation Merged collections
US20090204636A1 (en) * 2008-02-11 2009-08-13 Microsoft Corporation Multimodal object de-duplication
US8825617B2 (en) * 2008-03-14 2014-09-02 International Business Machines Corporation Limiting deduplication based on predetermined criteria
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8346730B2 (en) * 2008-04-25 2013-01-01 Netapp. Inc. Deduplication of data on disk devices based on a threshold number of sequential blocks
US9098495B2 (en) * 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8166263B2 (en) 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
AU2009296695B2 (en) 2008-09-26 2013-08-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8386443B2 (en) * 2008-10-06 2013-02-26 Dell Products L.P. Representing and storing an optimized file system using a system of symlinks, hardlinks and file archives
US8315992B1 (en) * 2008-11-26 2012-11-20 Symantec Corporation Affinity based allocation for storage implementations employing deduplicated data stores
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US20100157478A1 (en) * 2008-12-18 2010-06-24 Hewlett-Packard Development Company, L.P. System and method for storage of digital assets
US8315985B1 (en) * 2008-12-18 2012-11-20 Symantec Corporation Optimizing the de-duplication rate for a backup stream
CN102317938B (zh) * 2008-12-22 2014-07-30 谷歌公司 用于复制内容可寻址存储集群的异步分布式去重
US8645334B2 (en) * 2009-02-27 2014-02-04 Andrew LEPPARD Minimize damage caused by corruption of de-duplicated data
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8296536B2 (en) 2009-08-11 2012-10-23 International Business Machines Corporation Synchronization of replicated sequential access storage components
US8356017B2 (en) 2009-08-11 2013-01-15 International Business Machines Corporation Replication of deduplicated data
US8385192B2 (en) * 2009-08-11 2013-02-26 International Business Machines Corporation Deduplicated data processing rate control
US8280854B1 (en) * 2009-09-01 2012-10-02 Symantec Corporation Systems and methods for relocating deduplicated data within a multi-device storage system
US20110060882A1 (en) * 2009-09-04 2011-03-10 Petros Efstathopoulos Request Batching and Asynchronous Request Execution For Deduplication Servers
WO2011033582A1 (en) * 2009-09-18 2011-03-24 Hitachi, Ltd. Storage system for eliminating duplicated data
US8204862B1 (en) * 2009-10-02 2012-06-19 Symantec Corporation Systems and methods for restoring deduplicated data
US8762338B2 (en) * 2009-10-07 2014-06-24 Symantec Corporation Analyzing backup objects maintained by a de-duplication storage system
US9191437B2 (en) * 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8370593B2 (en) 2010-04-14 2013-02-05 Hitachi, Ltd. Method and apparatus to manage groups for deduplication
WO2011141968A1 (en) * 2010-05-14 2011-11-17 Hitachi, Ltd. Storage apparatus and data retaining method for storage apparatus
US9063656B2 (en) 2010-06-24 2015-06-23 Dell Gloval B.V.—Singapore Branch System and methods for digest-based storage
WO2012030383A1 (en) 2010-08-31 2012-03-08 Falconstor, Inc. Data deduplication
EP2612246A4 (en) * 2010-08-31 2014-04-09 Nec Corp STORAGE SYSTEM
WO2012032727A1 (en) * 2010-09-09 2012-03-15 Nec Corporation Storage system
US8612488B1 (en) * 2010-09-15 2013-12-17 Symantec Corporation Efficient method for relocating shared memory
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8612682B2 (en) 2010-09-29 2013-12-17 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US8539165B2 (en) 2010-09-29 2013-09-17 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US8539154B2 (en) 2010-09-29 2013-09-17 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US8645636B2 (en) 2010-09-29 2014-02-04 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
US20120078931A1 (en) 2010-09-29 2012-03-29 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
WO2012045023A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
JP5650982B2 (ja) * 2010-10-25 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイルの重複を排除する装置及び方法
US8849898B2 (en) * 2010-12-09 2014-09-30 Jeffrey Vincent TOFANO Adaptive collaborative de-duplication
US8380681B2 (en) * 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US8458145B2 (en) * 2011-01-20 2013-06-04 Infinidat Ltd. System and method of storage optimization
US8589406B2 (en) * 2011-03-03 2013-11-19 Hewlett-Packard Development Company, L.P. Deduplication while rebuilding indexes
US9317377B1 (en) * 2011-03-23 2016-04-19 Riverbed Technology, Inc. Single-ended deduplication using cloud storage protocol
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US8522068B2 (en) 2011-05-02 2013-08-27 International Business Machines Corporation Coordinated disaster recovery production takeover operations
US8850139B2 (en) 2011-05-11 2014-09-30 International Business Machines Corporation Changing ownership of cartridges
CN102833298A (zh) * 2011-06-17 2012-12-19 英业达集团(天津)电子技术有限公司 分布式的重复数据删除系统及其处理方法
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
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
US8965937B2 (en) * 2011-09-28 2015-02-24 International Business Machines Corporation Automated selection of functions to reduce storage capacity based on performance requirements
US8521704B2 (en) * 2011-09-30 2013-08-27 Symantec Corporation System and method for filesystem deduplication using variable length sharing
US8781800B2 (en) 2011-11-01 2014-07-15 International Business Machines Corporation Data de-duplication in computer storage systems
US9087010B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation Data selection for movement from a source to a target
EP2810171B1 (en) * 2012-02-02 2019-07-03 Hewlett-Packard Enterprise Development LP Systems and methods for data chunk deduplication
WO2013121460A1 (en) * 2012-02-16 2013-08-22 Hitachi, Ltd. File server apparatus, information system, and method for controlling file server apparatus
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US8706971B1 (en) 2012-03-14 2014-04-22 Netapp, Inc. Caching and deduplication of data blocks in cache memory
US8583607B1 (en) * 2012-03-28 2013-11-12 Emc Corporation Managing deduplication density
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US8676850B2 (en) 2012-04-06 2014-03-18 International Business Machines Corporation Prioritization mechanism for deletion of chunks of deduplicated data objects
JP2013222230A (ja) * 2012-04-13 2013-10-28 Hitachi-Lg Data Storage Inc 情報処理システム
US9779103B2 (en) * 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
US9183136B2 (en) * 2012-05-16 2015-11-10 Hitachi, Ltd. Storage control apparatus and storage control method
US8788468B2 (en) 2012-05-24 2014-07-22 International Business Machines Corporation Data depulication using short term history
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
CN103502957B (zh) * 2012-12-28 2016-07-06 华为技术有限公司 数据处理方法及装置
CN106021460B (zh) * 2012-12-28 2020-09-08 华为技术有限公司 数据处理方法及装置
US9606910B2 (en) 2013-01-17 2017-03-28 Hitachi, Ltd. Method and apparatus for data reduction
JP5873825B2 (ja) * 2013-02-28 2016-03-01 京セラドキュメントソリューションズ株式会社 電子機器、及びアプリケーション記憶プログラム
US9361028B2 (en) 2013-05-07 2016-06-07 Veritas Technologies, LLC Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US10592347B2 (en) * 2013-05-16 2020-03-17 Hewlett Packard Enterprise Development Lp Selecting a store for deduplicated data
US10496490B2 (en) 2013-05-16 2019-12-03 Hewlett Packard Enterprise Development Lp Selecting a store for deduplicated data
US9256612B1 (en) * 2013-06-11 2016-02-09 Symantec Corporation Systems and methods for managing references in deduplicating data systems
KR20150002297A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US9569455B1 (en) 2013-06-28 2017-02-14 EMC IP Holding Company LLC Deduplicating container files
US9336076B2 (en) * 2013-08-23 2016-05-10 Globalfoundries Inc. System and method for controlling a redundancy parity encoding amount based on deduplication indications of activity
JP2015072629A (ja) * 2013-10-03 2015-04-16 富士通株式会社 データ処理プログラム及びデータ処理方法
US10545918B2 (en) 2013-11-22 2020-01-28 Orbis Technologies, Inc. Systems and computer implemented methods for semantic data compression
KR20150067583A (ko) * 2013-12-10 2015-06-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
US10877945B1 (en) * 2013-12-20 2020-12-29 EMC IP Holding Company LLC Optimized block storage for change block tracking systems
CN104765693B (zh) 2014-01-06 2018-03-27 国际商业机器公司 一种用于存储数据的方法、装置和系统
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US12137140B2 (en) 2014-06-04 2024-11-05 Pure Storage, Inc. Scale out storage platform having active failover
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US12341848B2 (en) 2014-06-04 2025-06-24 Pure Storage, Inc. Distributed protocol endpoint services for data storage systems
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9612952B2 (en) * 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US12182044B2 (en) 2014-07-03 2024-12-31 Pure Storage, Inc. Data storage in a zone drive
US9503127B2 (en) 2014-07-09 2016-11-22 Quantum Corporation Data deduplication with adaptive erasure code redundancy
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US12158814B2 (en) 2014-08-07 2024-12-03 Pure Storage, Inc. Granular voltage tuning
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9575680B1 (en) 2014-08-22 2017-02-21 Veritas Technologies Llc Deduplication rehydration
US10423495B1 (en) 2014-09-08 2019-09-24 Veritas Technologies Llc Deduplication grouping
US9832260B2 (en) * 2014-09-23 2017-11-28 Netapp, Inc. Data migration preserving storage efficiency
US10031691B2 (en) 2014-09-25 2018-07-24 International Business Machines Corporation Data integrity in deduplicated block storage environments
US9977598B2 (en) * 2014-10-27 2018-05-22 Mediatek Inc. Electronic device and a method for managing memory space thereof
US10063665B2 (en) * 2015-02-18 2018-08-28 Actmobile Networks, Inc. System and method to eliminate duplicate byte patterns in network streams
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US12379854B2 (en) 2015-04-10 2025-08-05 Pure Storage, Inc. Two or more logical arrays having zoned drives
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US9697079B2 (en) 2015-07-13 2017-07-04 International Business Machines Corporation Protecting data integrity in de-duplicated storage environments in combination with software defined native raid
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US12271359B2 (en) 2015-09-30 2025-04-08 Pure Storage, Inc. Device host operations in a storage system
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9846538B2 (en) 2015-12-07 2017-12-19 International Business Machines Corporation Data integrity and acceleration in compressed storage environments in combination with software defined native RAID
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10341467B2 (en) * 2016-01-13 2019-07-02 International Business Machines Corporation Network utilization improvement by data reduction based migration prioritization
TW201734750A (zh) 2016-01-15 2017-10-01 飛康國際股份有限公司 包含固態硬碟儲存裝置及類似物的重複資料刪除快取記憶體
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US12235743B2 (en) 2016-06-03 2025-02-25 Pure Storage, Inc. Efficient partitioning for storage system resiliency groups
US10318389B2 (en) 2016-07-15 2019-06-11 Quantum Corporation Joint de-duplication-erasure coded distributed storage
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US12210476B2 (en) 2016-07-19 2025-01-28 Pure Storage, Inc. Disaggregated compute resources and storage resources in a storage system
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US12487884B1 (en) 2017-10-31 2025-12-02 Pure Storage, Inc. Writing parity data to a targeted wordline
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10691349B2 (en) * 2016-10-28 2020-06-23 International Business Machines Corporation Mitigating data loss
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) * 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10719399B2 (en) * 2018-01-08 2020-07-21 International Business Machines Corporation System combining efficient reliable storage and deduplication
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US12393340B2 (en) 2019-01-16 2025-08-19 Pure Storage, Inc. Latency reduction of flash-based devices using programming interrupts
US12175124B2 (en) 2018-04-25 2024-12-24 Pure Storage, Inc. Enhanced data access using composite data views
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US12547317B2 (en) 2019-03-29 2026-02-10 Pure Storage, Inc. Managing voltage threshold shifts
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11940956B2 (en) 2019-04-02 2024-03-26 Hewlett Packard Enterprise Development Lp Container index persistent item tags
US12373340B2 (en) 2019-04-03 2025-07-29 Pure Storage, Inc. Intelligent subsegment formation in a heterogeneous storage system
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US12475041B2 (en) 2019-10-15 2025-11-18 Pure Storage, Inc. Efficient data storage by grouping similar data within a zone
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US12153818B2 (en) 2020-09-24 2024-11-26 Pure Storage, Inc. Bucket versioning snapshots
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12229437B2 (en) 2020-12-31 2025-02-18 Pure Storage, Inc. Dynamic buffer for storage system
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US20230063880A1 (en) * 2021-08-26 2023-03-02 Mocrosoft Technology Licensing, LLC Performing quality-based action(s) regarding engineer-generated documentation associated with code and/or application programming interface
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
JP2023061253A (ja) * 2021-10-19 2023-05-01 株式会社日立製作所 ストレージシステム、データコピー制御方法、及びデータコピー制御プログラム
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
US12439544B2 (en) 2022-04-20 2025-10-07 Pure Storage, Inc. Retractable pivoting trap door
US12314163B2 (en) 2022-04-21 2025-05-27 Pure Storage, Inc. Die-aware scheduler
CN118132527A (zh) * 2022-12-02 2024-06-04 戴尔产品有限公司 用于处理数据的方法、设备和计算机程序产品
US12481442B2 (en) 2023-02-28 2025-11-25 Pure Storage, Inc. Data storage system with managed flash
US12204788B1 (en) 2023-07-21 2025-01-21 Pure Storage, Inc. Dynamic plane selection in data storage system
US12487920B2 (en) 2024-04-30 2025-12-02 Pure Storage, Inc. Storage system with dynamic data management functions
US12524309B2 (en) 2024-04-30 2026-01-13 Pure Storage, Inc. Intelligently forming data stripes including multiple shards in a single failure domain

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7065619B1 (en) 2002-12-20 2006-06-20 Data Domain, Inc. Efficient data storage system
US7076622B2 (en) * 2003-09-30 2006-07-11 International Business Machines Corporation System and method for detecting and sharing common blocks in an object storage system
EP1723564A2 (en) * 2004-02-11 2006-11-22 Storage Technology Corporation Clustered hierarchical file services
US8725705B2 (en) 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US7403949B2 (en) * 2005-08-17 2008-07-22 International Business Machines Corporation Elimination of redundant objects in storage systems

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533126A (ja) * 2009-07-16 2012-12-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ソースおよびターゲットを含む分散型環境におけるデータを重複排除する方法、システム、及びプログラム
JP2011150681A (ja) * 2010-01-20 2011-08-04 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置
JP2011170665A (ja) * 2010-02-19 2011-09-01 Nec Corp ストレージシステム
JP2013514557A (ja) * 2010-08-31 2013-04-25 日本電気株式会社 ストレージシステム
US9110839B2 (en) 2010-08-31 2015-08-18 Nec Corporation Storage system for storing target data and address data
JP2015212971A (ja) * 2011-04-08 2015-11-26 マイクロン テクノロジー, インク. データ重複排除
US9778874B2 (en) 2011-04-08 2017-10-03 Micron Technology, Inc. Data deduplication
US10282128B2 (en) 2011-04-08 2019-05-07 Micron Technology, Inc. Data deduplication
US8566291B2 (en) 2011-08-30 2013-10-22 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media for forming a bitmap and creating a volume map
JP2013054416A (ja) * 2011-09-01 2013-03-21 Fujitsu Ltd ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP2014175008A (ja) * 2013-03-07 2014-09-22 Postech Academy-Industry Foundation データ重複除去方法及び装置
JP2020086477A (ja) * 2018-11-15 2020-06-04 株式会社日立製作所 大規模ストレージシステム及び大規模ストレージシステムにおけるデータ配置方法

Also Published As

Publication number Publication date
US7870105B2 (en) 2011-01-11
EP2063351A2 (en) 2009-05-27
US20090132619A1 (en) 2009-05-21
EP2063351A3 (en) 2011-11-02

Similar Documents

Publication Publication Date Title
US7870105B2 (en) Methods and apparatus for deduplication in storage system
US10002048B2 (en) Point-in-time snap copy management in a deduplication environment
US9098466B2 (en) Switching between mirrored volumes
US10467246B2 (en) Content-based replication of data in scale out system
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
US9703803B2 (en) Replica identification and collision avoidance in file system replication
US8261125B2 (en) Global write-log device for managing write logs of nodes of a cluster storage system
US8856437B2 (en) System, method and computer program product for optimization of tape performance using distributed file copies
US9460106B2 (en) Data synchronization among file storages using stub files
JP5461216B2 (ja) 論理ボリューム管理の為の方法と装置
US9213490B2 (en) Computer system and data migration method
US20130311429A1 (en) Method for controlling backup and restoration, and storage system using the same
US7558916B2 (en) Storage system, data processing method and storage apparatus
US11921597B2 (en) Cross-platform replication
US20150324126A1 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
US20100011368A1 (en) Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms
US20130311527A1 (en) System and method for implementing a networked file system utilizing a media library
US12373418B2 (en) Granular replication of volume subsets
JP2005292952A (ja) ストレージシステム、ストレージ装置及びリモートコピー方法
US20130138705A1 (en) Storage system controller, storage system, and access control method
JP4175789B2 (ja) 記憶装置のファイルレベルリモートコピー方法
US20060106892A1 (en) Method and apparatus for archive data validation in an archive system
EP4095695A1 (en) Co-located journaling and data storage for write requests
US11567687B2 (en) Uninterrupted block-based restore using a virtual container
US11188248B2 (en) System and method to achieve an uninterrupted file level backup using a pass-through snapshot engine