JP2009129441A - 記憶システムにおける非重複化のための方法および装置 - Google Patents
記憶システムにおける非重複化のための方法および装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1004—Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1057—Parity-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
既存の技術は、良好な信頼性特性値を有する、記憶システム用の非重複化技術を提供する能力において、不完全なものとなっている。
【解決手段】
一実現形態において、記憶システムが、ホストコンピュータと、管理端末と、記憶システムとを備えており、その記憶システムは、ホストコンピュータ/クライアントと通信するためのブロックインタフェースを有している。記憶システムはまた、チャンク(分割された記憶領域)を使用した非重複化能力を組み込んでいる。記憶システムは、非重複化の程度(すなわち、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つまたは複数を組み込んでいる。
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の部を示している。この部において、重複の検出が実施される。
[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は、読出し要求に対するプロセスの例示的な実施形態を示している。
[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に記憶されたデータの非重複化は、書込みプロセスとは独立して実施することができる。すなわち、非重複化は、データを記憶した後のポストプロセスとして実施することができる。このプロセスはまた、ミラーのデカップリング後に、ミラー/スナップショットデータに対して実施することもできる。
[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は、非重複化を伴う書込みプロセスの別の例を示している。図示のプロセスを用いると、信頼性の異なる領域間のデータ移送が、閾値と、非重複化後のチャンクを指すリンクの数との比較に基づいて実施される。
[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は、ポストプロセスとしての非重複化プロセスの別の例を示している。このプロセスを用いると、信頼性の異なる領域間のデータ移送が、閾値と、非重複化後のチャンクを指すリンクの数との比較に基づいて実施される。
[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の代わりに維持する。
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は、この実施形態においてポストプロセスとして実施される非重複化プロセスの一例を示している。
[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を具備している。
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に書き込む。
[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に書き込む。
[00146] 図25は、第4の実施形態の例示的なシステム構成を示している。この実施形態において、バックアップソフトウェア511は、上記の実施形態において述べた非重複化に関連した機能および能力を提供する目的で、非重複化プログラム512を組み込んでいる。バックアップ操作の間、バックアップソフトウェア511は、ホスト500によって使用されるデータを記憶システム700から読み出し、そのデータをテープ装置などのバックアップ記憶システム710に書き込む。復元操作の間、バックアップソフトウェア511は、復元すべきデータをバックアップ記憶システム710から読み出し、そのデータを記憶システム700に書き込む。
[00147] 先に述べた、書込み非重複化プロセス、またはポストプロセスとして実施される非重複化プロセスなどのプロセスを、バックアップソフトウェア511によって実施されるプロセスに適用することによって、バックアップデータに対する損失のリスク、ならびに、多数のバックアップデータ対象にわたる信頼性および性能の低下などの問題は、有効に緩和することができる。
E.例示的なコンピュータプラットフォーム
[00148] 図26は、本発明の方法論の実施形態を実現しうるコンピュータ/サーバシステム2600の実施形態を示すブロック図である。システム2600は、コンピュータ/サーバプラットフォーム2601と、周辺装置2602と、ネットワークリソース2603とを含んでいる。
[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] さらに、仕様を検討し、本明細書に開示した本発明を実施することで、本発明の他の実現形態が、当業者には明らかとなろう。説明した実施形態の様々な態様および/または構成要素は、データ複製機能を有するコンピュータ化記憶システムにおいて、単独でまたは任意の組み合わせで使用することができる。仕様および例は単に例示的なものであり、本発明の真の範囲および趣旨は特許請求の範囲によって示されることが意図されている。
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に記載のコンピュータ化データ記憶システム。
- 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項1に記載のコンピュータ化データ記憶システム。
- 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項1に記載のコンピュータ化データ記憶システム。
- 非重複化を実施することは、複数の仮想対象から1つのデータ対象を指す複数のリンクを作成することを含む、請求項1に記載のコンピュータ化データ記憶システム。
- 前記非重複化コントローラは、書込みコマンドを前記インタフェースによって受信したことに応答して、前記非重複化を実施するように操作可能である、請求項1に記載のコンピュータ化データ記憶システム。
- 少なくとも1台のホストコンピュータと、
管理端末と、
記憶システムであって、
前記少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、
通常の信頼性の記憶領域と、
高度な信頼性のデータ記憶領域と、
前記通常の信頼性の記憶領域と前記高度な信頼性のデータ記憶領域との間でデータを移送するように操作可能なデータ移送コントローラと、
前記通常の信頼性のデータ記憶領域または前記高度な信頼性のデータ記憶領域内に記憶されたデータの非重複化を実施するように操作可能な非重複化コントローラであって、非重複化の許容される程度に関連する閾値を維持し、各対象に対するリンクの数をカウントし、前記データ対象に対するリンクの前記カウント数が前記閾値を超えたとき、前記データ移送コントローラに、前記データ対象を前記高度な信頼性の記憶領域に移送させるように操作可能である非重複化コントローラと、
を備える記憶システムと、
を備えるコンピュータ化データ記憶システム。 - 前記非重複化コントローラはさらに、前記データ対象に対するリンクの前記カウント数が前記閾値を下回ったとき、前記移送コントローラに、前記通常の信頼性の記憶領域に前記高度な信頼性の記憶領域から前記データ対象を移送させるように操作可能である、請求項7に記載のコンピュータ化データ記憶システム。
- 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項7に記載のコンピュータ化データ記憶システム。
- 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項7に記載のコンピュータ化データ記憶システム。
- 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項7に記載のコンピュータ化データ記憶システム。
- 非重複化を実施することは、複数の仮想対象から1つのデータ対象を指す複数のリンクを作成することを含む、請求項7に記載のコンピュータ化データ記憶システム。
- 前記非重複化コントローラは、書込みコマンドを前記インタフェースによって受信したことに応答して、前記非重複化を実施するように操作可能である、請求項7に記載のコンピュータ化データ記憶システム。
- 少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実施される方法であって、
第1のデータが前記少なくとも1つの重複データ対象において重複しているかどうかを判定するステップと、
非重複化の許容される程度に関連する閾値を維持するステップと、
前記少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、
前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、またリンクの前記カウント数が前記閾値を超えない場合、前記データの非重複化を、前記少なくとも1つの重複データ対象において実施するステップと、
リンクの前記カウント数が前記閾値を超える場合、前記データの前記非重複化を、前記少なくとも1つの重複データ対象において実施しないステップと、
を含む方法。 - 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項14に記載の方法。
- 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項14に記載の方法。
- 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項14に記載の方法。
- 非重複化を実施することは、複数の仮想対象から前記重複データ対象を指す複数のリンクを作成することを含む、請求項14に記載の方法。
- 前記判定するステップの前に、書込み要求を前記少なくとも1台のホストコンピュータから受信することをさらに含み、前記書込み要求は前記第1のデータを含む、請求項14に記載の方法。
- 少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実施される方法であって、
データが前記複数のデータ対象のうちの前記少なくとも1つ重複データ対象において重複しているかどうかを判定するステップと、
非重複化の許容される程度に関連する閾値を維持するステップと、
前記少なくとも1つの重複データ対象に対するリンクの数をカウントするステップと、
前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、前記データの非重複化を前記少なくとも1つの重複データ対象において実施するステップと、
リンクの前記カウント数が前記閾値を超える場合、前記少なくとも1つの重複データ対象を高度な信頼性のデータ記憶領域に移送するステップと、を含む方法。 - 前記インタフェースはブロックインタフェースであり、前記データ対象はチャンクである、請求項20に記載の方法。
- 前記インタフェースはネットワークインタフェースであり、前記データ対象はファイルである、請求項20に記載の方法。
- 前記インタフェースはテープインタフェースであり、前記データ対象はバックアップファイルである、請求項20に記載の方法。
- 非重複化を実施することは、複数の仮想対象から前記重複データ対象を指す複数のリンクを作成することを含む、請求項20に記載の方法。
- 前記判定するステップの前に、書込み要求を前記少なくとも1台のホストコンピュータから受信することをさらに含み、前記書込み要求は前記第1のデータを含む、請求項20に記載の方法。
- 命令のセットを記憶するコンピュータ可読媒体であって、前記命令のセットは、少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実行されたとき、前記記憶システムに、
第1のデータが前記少なくとも1つの重複データ対象において重複しているかどうかを判定させ、
非重複化の許容される程度に関連する閾値を維持させ、
前記少なくとも1つの重複データ対象に対するリンクの数をカウントさせ、
前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、またリンクの前記カウント数が前記閾値を超えない場合、前記データの非重複化を、前記少なくとも1つの重複データ対象において実施させ、
リンクの前記カウント数が前記閾値を超える場合、前記データの前記非重複化を、前記少なくとも1つの重複データ対象において実施させない、
コンピュータ可読媒体。 - 前記命令のセットはさらに、前記記憶システムに、前記判定するステップの前に、前記少なくとも1台のホストコンピュータからの書込み要求を受信させるように操作可能であり、前記書込み要求は前記第1のデータを含む、請求項26に記載のコンピュータ可読媒体。
- 命令のセットを記憶するコンピュータ可読媒体であって、前記命令のセットは、少なくとも1台のホストコンピュータと通信するように操作可能なインタフェースと、複数のデータ対象を含んだ少なくとも1台の記憶装置とを備える記憶システムによって実行されたとき、前記記憶システムに、
第1のデータが前記複数のデータ対象のうちの前記少なくとも1つの重複データ対象において重複しているかどうかを判定させ、
非重複化の許容される程度に関連する閾値を維持させ、
前記少なくとも1つの重複データ対象に対するリンクの数をカウントさせ、
前記第1のデータが前記少なくとも1つの重複データ対象において重複している場合、前記データの非重複化を前記少なくとも1つの重複データ対象において実施させ、
リンクの前記カウント数が前記閾値を超える場合、前記少なくとも1つの重複データ対象を高度な信頼性のデータ記憶領域に移送させる、
コンピュータ可読媒体。 - 前記命令のセットはさらに、前記記憶システムに、前記判定するステップの前に、前記少なくとも1台のホストコンピュータからの書込み要求を受信させるように操作可能であり、前記書込み要求は前記第1のデータを含む、請求項26に記載のコンピュータ可読媒体。
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)
| 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)
| 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)
| 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 |
-
2007
- 2007-11-20 US US11/943,494 patent/US7870105B2/en not_active Expired - Fee Related
-
2008
- 2008-05-22 EP EP08251788A patent/EP2063351A3/en not_active Ceased
- 2008-07-11 JP JP2008180869A patent/JP2009129441A/ja active Pending
Cited By (12)
| 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 |