JP4541373B2 - 分散データの階層的管理のための方法及びシステム - Google Patents
分散データの階層的管理のための方法及びシステム Download PDFInfo
- Publication number
- JP4541373B2 JP4541373B2 JP2007055047A JP2007055047A JP4541373B2 JP 4541373 B2 JP4541373 B2 JP 4541373B2 JP 2007055047 A JP2007055047 A JP 2007055047A JP 2007055047 A JP2007055047 A JP 2007055047A JP 4541373 B2 JP4541373 B2 JP 4541373B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual disk
- level
- configuration
- data storage
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/085—Error detection or correction by redundancy in data representation, e.g. by using checking codes using codes with inherent redundancy, e.g. n-out-of-m codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1061—Parity-single bit-RAID4, i.e. RAID 4 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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
ブリックの連合アレイ(「FAB(federated array of bricks)」)アーキテクチャは、マスストレージの新しい、高度に分散した手法を表す。図1は、本発明の一実施の形態によるFABマスストレージシステムの高レベルの図を示している。FABマスストレージシステムを以下では「FABシステム」と呼ぶ。FABシステムは、複数の小さな別個のコンポーネントデータストレージシステム、すなわちマスストレージデバイス102〜109を備える。これらのマスストレージデバイス102〜109は、第1の通信媒体110を通じて互いに相互通信を行い、第2の通信媒体114を通じて、複数のリモートホストコンピュータ112〜113から要求を受信することができ、複数のリモートホストコンピュータ112〜113へ返答を送信することができる。各別個のコンポーネントデータストレージシステム102〜109は、「ブリック(brick)」と呼ばれる場合がある。ブリックは、インターフェースを含むことができ、このインターフェースを通じて、リモートホストコンピュータから要求を受信することができ、受信された要求に対する応答をリモートホストコンピュータへ返信することができる。FABシステムのいずれのブリックも、ホストコンピュータからの要求を受信することができ、この要求に応答することができる。FABシステムの1つのブリックは、任意の特定の要求に関して調整役を引き受け、その特定の要求に対する応答に関与するすべてのブリックのオペレーションを調整し、FABシステムのどのブリックも、所与の要求に関する調整役を引き受けることができる。したがって、FABシステムは、大部分がソフトウェアで実施される一種の対称分散コンピューティングシステムである。いくつかの代替的な実施の形態では、ブリックの相互接続、及び、FABシステムのリモートホストコンピュータへの相互接続の双方に単一のネットワークを使用することができる。他の代替的な実施の形態では、3つ以上のネットワークを使用することもできる。
FABシステム等の大きなマスストレージシステムは、膨大な記憶容量を提供するだけでなく、冗長ストレージの提供及び管理も行い、ブリックの故障、ディスクドライブの故障、ディスクドライブ上の特定のシリンダ、トラック、セクタ、若しくはブロックの故障、電子コンポーネントの故障、又はそれ以外の故障のために、記憶データの一部が喪失した場合に、ホストコンピュータによる介入もユーザによる手動の介入もなく、大規模マスストレージシステムによって記憶され管理されている冗長データから喪失データをシームレスに且つ自動的に回復できるようになっている。データベースシステム及びエンタープライズクリティカルデータ(enterprise-critical data)を含む重要なデータストレージの用途の場合、地理的に分散した複数のデータインスタンスを記憶して保持するために、2つ以上の大規模マスストレージシステムが使用されることが多く、壊滅的な事象であっても回復不可能なデータ喪失につながらないように、より高いレベルの冗長性が提供されている。
ci'=ci+fi,j(dj'−dj)
又は
上述したように、FABシステムは、膨大な量のデータストレージ空間を提供することができる。全ストレージ空間は、階層的なデータユニットに論理的に区画することができ、最も低くない各階層レベルのデータユニットは、次に最も低い(next-lowest)階層レベルのデータユニットで論理的に編成される。論理データユニットは、1つ又は複数のブリック内の物理ストレージ空間にマッピングすることができる。
上述したように、FABシステム内の各ブリックは、基本的に同じ制御プログラムを実行することができ、各ブリックは、リモートホストコンピュータからの要求を受信することができ、その要求に応答することができる。したがって、人体の各細胞が有機体全体の全DNAの符号化された構造(DNA-encoded architecture)を含むのとほとんど同じように、各ブリックは、個々のブリックによって適切に管理されるブリック特有の状態情報(一般的には、この状態情報は含まない)に至るまで、FABシステムの全データ状態を表すデータ構造体を、内部の揮発性ランダムアクセスメモリ、不揮発性メモリ、及び/又は内部ディスク空間に含む。全データ状態は、ブリックの動作状態、すなわち健全性と、セグメントが記憶される冗長性方式とに関する情報と共に、図9に示す階層的なデータユニットのサイズ及びロケーションを含む。一般に、内部のページ及びブリック内に記憶されたデータのブロックアドレスを含めて、ブリック特有のデータ状態情報は、FABシステムの全データ状態の一部とはみなされない。
FABシステムは、クォーラムベースの分散READ(読み出し)オペレーション及び分散WRITE(書き込み)オペレーションについてストレージレジスタモデルを使用することができる。ストレージレジスタは、データの分散単位である。現在のFABシステムでは、ブロックがストレージレジスタとして扱われる。
ストレージレジスタモデルは一般に、ミラーリング冗長性方式に従って分散されたセグメントにわたって一貫性を維持するために、FABシステムによってブロックレベルで適用される。換言すれば、セグメントの各ブロックは、複数のブリックにわたって分散されたストレージレジスタであるとみなすことができ、クォーラム及びメッセージパッシングを伴う上記分散技法は、ミラーコピーにわたってデータ一貫性を維持するのに使用される。一方、ストレージレジスタ方式は、イレージャ符号化冗長性方式をハンドリングするように拡張することができる。第1に、上記節で説明し、ミラーリング冗長性方式に使用されるように、ブロックが分散されたブリックの過半数から成るクォーラムではなく、イレージャ符号化冗長性方式は、m+[(n−m)/2]個のブリックのクォーラムを使用し、任意の2つのクォーラムの交わりが、少なくともm個のブリックを含むようにする。このタイプのクォーラムは、「m−クォーラム」と呼ばれる。第2に、新しく受信された値を、WRITEオペレーションの第2のフェーズで、内部ストレージのブロックに書き込むのではなく、ブリックはその代わりに、その新しい値をその値に関連付けられたタイムスタンプと共にログに記録することができる。ログは、その後、ログに記録されたエントリーのm−クォーラムが受信されてログに記録された時に、非同期に処理されて、ログに記録されたWRITEをコミットすることができる。ログ記録が使用される理由は、ブリックのm−クォーラムが特定のWRITEオペレーションを受信せず、正常の実行していなかった場合に、ミラーリング冗長性方式と異なって、ブリックのクラッシュによりデータを回復させることができないからである。図22は、図17に提供した擬似コードに類似した修正擬似コードを示している。この修正擬似コードは、本発明の一実施の形態を表す、FABシステム内におけるイレージャ符号化冗長性方式に従ってブリックにわたるセグメントの分散をハンドリングする、ストレージレジスタモデルへの拡張を含む。たとえば、m個のブリックが、最も近時に書き込まれた値をログに記憶できなかった場合、その最も近時に書き込まれた値は、ログ内の少なくともm個のコピーに存在する前の値又は少なくともm個のブリック内に記憶された前の値にロールバックされる。
110,114・・・通信媒体
112,113・・・リモートホストコンピュータ
202〜213・・・SATAディスクドライブ
214・・・ディスクIOP
216・・・高速バス
218・・・中央ブリッジ
220・・・プロセッサ
222・・・ホストIOP
224・・・ブリック間IOP
226,227,228・・・メモリ
702・・・全ストレージアドレス空間
704,706・・・仮想ディスク
708,710・・・セグメント
712,714・・・ブリック
716・・・ディスク
718・・・ページ
720・・・ブロック
826・・・全ストレージ
828・・・仮想ディスク
830・・・仮想ディスクイメージ
832・・・セグメント
902・・・全ストレージ
904,905,906,907・・・仮想ディスク
908,909,910,912・・・仮想ディスクイメージ
916,920・・・セグメント
914・・・順序付きリスト
918,922・・・ブリック
1002・・・仮想ディスクテーブル
1004・・・VDTEエントリー
1006,1008・・・VDIテーブル
1010・・・SCN
1012,1014・・・cgrp
1016・・・cfg
1018・・・レイアウト
1020・・・ブリック
1022・・・セグメント
1024・・・ブロック
1026・・・冗長性方式
1028・・・ブリック位置
1030・・・ストライプサイズ
1141,1145・・・cgrp
1146・・・SCN
1148・・・VDTEエントリー
1150,1152・・・VDIテーブル
1902・・・タイマメカニズム
1904・・・PID
1906・・・リアルタイム時計
1908・・・揮発性メモリ
1910・・・不揮発性メモリ
1918・・・READハンドラ
1920・・・ORDERハンドラ
1922・・・WRITEハンドラ
1924・・・ORDERデュアルハンドラ
2302,2314,2318,2320,2321,2324・・・ブロック
2304〜2312・・・ブリック
2316,2317,2328・・・タイムスタンプ
2326・・・ログエントリー
2400・・・非循環グラフ
2402,2404・・・リーフノード
2406,2408・・・ブロック
2802・・・最上位レベルコーディネータ
2804・・・仮想ディスクレベル
2806・・・VDIコーディネータ
2808・・・VDIレベル
2810・・・SCNコーディネータ
2812・・・SCNレベル
2814・・・構成グループコーディネータ
2816・・・構成グループレベル
2818・・・構成コーディネータ
2820・・・構成レベル
Claims (9)
- ネットワーク接続されたコンポーネントデータストレージシステムで構成される分散データストレージシステム(102〜109)の各コンポーネントデータストレージシステム内の階層的制御ロジックであって、前記ネットワーク接続されたコンポーネントデータストレージシステム上には、仮想ディスク(904〜907)がセグメントの粒度で分散され、該仮想ディスクは、データブロックで構成されたデータセグメント(916、920)で構成されて、任意に仮想ディスクイメージ(908〜910)として複製され、各データセグメントは、構成(1124)に従って分散され、
前記仮想ディスクへのアクセスを管理する最上位レベルコーディネータ(2802)と、
前記仮想ディスクイメージへのアクセスを管理する仮想ディスクイメージレベルコーディネータ(2806)と、
第1の冗長性方式から第2の冗長性方式への前記仮想ディスクセグメントのマイグレーションを管理するセグメント構成ノードレベルコーディネータ(2810)と、
前記仮想ディスクセグメントの再構成を管理する構成グループレベルコーディネータ(2814)と、
前記コンポーネントデータストレージシステムの健全性ステータスを決定し、前記コンポーネントデータストレージシステムの故障のハンドリングを容易にする構成レベルコーディネータ(2820)と
を備える階層的制御ロジック。 - 前記種々のコーディネータ(2802、2806、2810、2814、2820)のそれぞれは、そのコーディネータのレベルに関連付けられるストレージレジスタモデルベース一貫性方法を実行し、
ストレージレジスタモデルベース一貫性方法は、
クォーラムベースのストレージレジスタモデルベース一貫性方法と、
m−クォーラムベースのストレージレジスタモデルベース一貫性方法と、
全体ベースのストレージレジスタモデルベース一貫性方法と
を含み、
前記最上位レベルコーディネータ(2802)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの仮想ディスクレベルに関連付けられる
請求項1に記載の階層的制御ロジック。 - 前記階層的データストレージモデルの前記仮想ディスクレベルは、
仮想ディスクイメージを表すエントリーを含む仮想ディスクテーブル
を含み、
前記最上位レベルコーディネータは、仮想ディスクへのアクセスを管理し、
前記仮想ディスクイメージレベルコーディネータ(2806)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの仮想ディスクイメージレベルに関連付けられ、
各仮想ディスクイメージテーブルは、一般に地理的に同じ場所に配置されたコンポーネントデータストレージシステムのサブセットに記憶された仮想ディスクの1つの複製を表し、
各仮想ディスクイメージテーブルは、
仮想ディスクセグメントを表すエントリー
を含み、
前記仮想ディスクイメージレベルコーディネータは、仮想ディスクイメージへのアクセスを管理する
請求項2に記載の階層的制御ロジック。 - 前記セグメント構成ノードレベルコーディネータ(2810)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルのセグメント構成ノードレベルに関連付けられ、
前記セグメント構成ノードレベルコーディネータは、全体ベースのストレージレジスタモデルベース一貫性を使用し、
前記階層的データストレージモデルの前記セグメント構成ノードレベルに関連するセグメント構成ノードは、1つ又は複数の冗長性方式に従って複数のコンポーネントデータストレージシステム上に分散される1つ又は複数の仮想ディスクセグメントを表し、
前記セグメント構成ノードレベルコーディネータは、第1の冗長性方式から第2の冗長性方式への仮想ディスクセグメントのマイグレーションを管理する
請求項2に記載の階層的制御ロジック。 - 前記構成グループレベルコーディネータ(2814)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの構成グループレベルに関連付けられ、ミラーリング冗長性方式を使用する構成グループにはクォーラムベースの技法を使用し、イレージャ符号化冗長性方式を使用する構成グループにはm−クォーラムベースの技法を使用し、
前記階層的データストレージモデルの前記構成グループレベルは、
複数の構成グループデータ構造体要素
を含み、
各構成グループデータ構造体要素は、冗長性方式に従った分散構成で複数のコンポーネントデータストレージシステム上に分散される1つ又は複数の仮想ディスクセグメントを表し、
前記構成グループレベルコーディネータは、仮想ディスクセグメントの再構成を管理する
請求項2に記載の階層的制御ロジック。 - 前記構成レベルコーディネータ(2820)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの構成レベルに関連付けられ、ミラーリング冗長性方式を使用する構成にはクォーラムベースの技法を使用し、イレージャ符号化冗長性方式を使用する構成にはm−クォーラムベースの技法を使用し、
前記階層的データストレージモデルの前記構成レベルは、
複数の構成データ構造体要素
を含み、
各構成データ構造体要素は、冗長性方式に従った分散構成で複数のコンポーネントデータストレージシステム上に分散された1つ又は複数の仮想ディスクセグメントを表し、
前記構成レベルコーディネータは、コンポーネントデータストレージシステムの健全性ステータスを決定し、コンポーネントデータストレージシステムの故障のハンドリングを容易にする
請求項2に記載の階層的制御ロジック。 - ネットワーク接続されたコンポーネントデータストレージシステムで構成される分散データストレージシステム(102〜109)内のデータを管理するための方法であって、
コンポーネントデータストレージシステムにわたってセグメントの粒度でデータを分散させることであって、該データは、仮想ディスク(904〜907)内に階層的に編成され、該仮想ディスクは、データセグメント(916、920)から構成されて、任意に仮想ディスクイメージ(908〜910)として複製され、前記データセグメントはデータブロックで構成される、分散させることと、
前記分散されたデータのデータ状態を表す階層的データ構造体を保持することであって、該階層的データ構造体は、仮想ディスクレベル、仮想ディスクイメージレベル、セグメント構成ノードレベル、構成グループレベル、及び構成レベルを含む、保持することと、
階層的に順序付けられたコーディネータルーチン(2802、2806、2810、2814、2820)を実行することであって、各コーディネータルーチンは、階層的データ構造体レベルに関連付けられ、各階層的コーディネータルーチンは、その階層的コーディネータルーチンが関連付けられる前記階層的データ構造体レベルによって表される階層レベルにおけるデータアクセス及びデータ一貫性を管理する、実行することと
を含み、
前記階層的コーディネータルーチンは、
前記仮想ディスクへのアクセスを管理する最上位レベルコーディネータ(2802)と、
前記仮想ディスクイメージへのアクセスを管理する仮想ディスクイメージレベルコーディネータ(2806)と、
第1の冗長性方式から第2の冗長性方式への前記仮想ディスクセグメントのマイグレーションを管理するセグメント構成ノードレベルコーディネータ(2810)と、
前記仮想ディスクセグメントの再構成を管理する構成グループレベルコーディネータ(2814)と、
前記コンポーネントデータストレージシステムの健全性ステータスを決定し、前記コンポーネントデータストレージシステムの故障のハンドリングを容易にする構成レベルコーディネータ(2820)と
を含む
方法。 - 前記異なるコーディネータのそれぞれは、該コーディネータのレベルに関連付けられたストレージレジスタモデルベース一貫性方法を実行し、
ストレージレジスタモデルベース一貫性方法は、
クォーラムベースのストレージレジスタモデルベース一貫性方法と、
m−クォーラムベースのストレージレジスタモデルベース一貫性方法と、
全体ベースのストレージレジスタモデルベース一貫性方法と
を含み、
前記最上位レベルコーディネータ(2802)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの仮想ディスクレベルに関連付けられ、
前記階層的データストレージモデルの前記仮想ディスクレベルは、
仮想ディスクイメージを表すエントリーを含む仮想ディスクテーブル
を含み、
前記最上位レベルコーディネータは、仮想ディスクへのアクセスを管理し、
前記仮想ディスクイメージレベルコーディネータ(2806)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの仮想ディスクイメージレベルに関連付けられ、
前記階層的データストレージモデルの前記仮想ディスクイメージレベルは、
複数の仮想ディスクイメージテーブル
を含み、
各仮想ディスクイメージテーブルは、一般に地理的に同じ場所に配置されたコンポーネントデータストレージシステムのサブセットに記憶された仮想ディスクの1つの複製を表し、
各仮想ディスクイメージテーブルは、
仮想ディスクセグメントを表すエントリー
を含み、
前記仮想ディスクイメージレベルコーディネータは、仮想ディスクイメージへのアクセスを管理し、
前記セグメント構成ノードレベルコーディネータ(2810)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルのセグメント構成ノードレベルに関連付けられ、全体ベースのストレージレジスタモデルベース一貫性を使用し、
前記階層的データストレージモデルの前記セグメント構成ノードレベルに関連するセグメント構成ノードは、1つ又は複数の冗長性方式に従って複数のコンポーネントデータストレージシステム上に分散された1つ又は複数の仮想ディスクセグメントを表し、
前記セグメント構成ノードレベルコーディネータは、第1の冗長性方式から第2の冗長性方式への仮想ディスクセグメントのマイグレーションを管理する
請求項7に記載の方法。 - 前記構成グループレベルコーディネータ(2814)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの構成グループレベルに関連付けられ、ミラーリング冗長性方式を使用する構成グループにはクォーラムベースの技法を使用し、イレージャ符号化冗長性方式を使用する構成グループにはm−クォーラムベースの技法を使用し、
前記階層的データストレージモデルの前記構成グループレベルは、
複数の構成グループデータ構造体要素
を含み、
各構成グループデータ構造体要素は、冗長性方式に従った分散構成で複数のコンポーネントデータストレージシステム上に分散された仮想ディスクセグメントを表し、
前記構成グループレベルコーディネータは、仮想ディスクセグメントの再構成を管理し、
前記構成レベルコーディネータ(2820)は、前記分散データストレージシステムのデータ状態を記述する階層的データストレージモデルの構成レベルに関連付けられ、ミラーリング冗長性方式を使用する構成にはクォーラムベースの技法を使用し、イレージャ符号化冗長性方式を使用する構成にはm−クォーラムベースの技法を使用し、
前記階層的データストレージモデルの前記構成レベルは、
複数の構成データ構造体要素
を含み、
各構成データ構造体要素は、冗長性方式に従った分散構成で複数のコンポーネントデータストレージシステム上に分散された仮想ディスクセグメントを表し、
前記構成レベルコーディネータは、コンポーネントデータストレージシステムの健全性ステータスを決定し、コンポーネントデータストレージシステムの故障のハンドリングを容易にする
請求項8に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/369,653 US20070214314A1 (en) | 2006-03-07 | 2006-03-07 | Methods and systems for hierarchical management of distributed data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007242019A JP2007242019A (ja) | 2007-09-20 |
JP4541373B2 true JP4541373B2 (ja) | 2010-09-08 |
Family
ID=37965763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007055047A Expired - Fee Related JP4541373B2 (ja) | 2006-03-07 | 2007-03-06 | 分散データの階層的管理のための方法及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070214314A1 (ja) |
JP (1) | JP4541373B2 (ja) |
GB (1) | GB2436209B (ja) |
Families Citing this family (166)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8805919B1 (en) * | 2006-04-21 | 2014-08-12 | Fredric L. Plotnick | Multi-hierarchical reporting methodology |
CN101170416B (zh) * | 2006-10-26 | 2012-01-04 | 阿里巴巴集团控股有限公司 | 网络数据存储系统及其数据访问方法 |
ITRM20080037A1 (it) * | 2008-01-23 | 2009-07-24 | Uni Degli Studi Perugia | Procedimento per la ultrapurificazione di alginati. |
WO2010033644A1 (en) * | 2008-09-16 | 2010-03-25 | File System Labs Llc | Matrix-based error correction and erasure code methods and apparatus and applications thereof |
US9325802B2 (en) | 2009-07-16 | 2016-04-26 | Microsoft Technology Licensing, Llc | Hierarchical scale unit values for storing instances of data among nodes of a distributed store |
US8458287B2 (en) | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
US8959054B1 (en) * | 2010-03-25 | 2015-02-17 | Emc Corporation | Methods and apparatus for optimal journaling for continuous data replication |
US8631269B2 (en) * | 2010-05-21 | 2014-01-14 | Indian Institute Of Science | Methods and system for replacing a failed node in a distributed storage network |
US8225065B2 (en) | 2010-06-03 | 2012-07-17 | Microsoft Corporation | Hierarchical scalable memory allocator |
US9218135B2 (en) | 2010-06-16 | 2015-12-22 | Microsoft Technology Licensing, Llc | Hierarchical allocation for file system storage device |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
EP2469411B1 (en) | 2010-12-27 | 2013-05-29 | Amplidata NV | A distributed object storage system |
EP2469413B1 (en) * | 2010-12-27 | 2013-06-05 | Amplidata NV | A hierarchical, distributed object storage system |
US8738578B1 (en) * | 2010-12-27 | 2014-05-27 | The Mathworks, Inc. | Growing data structures |
US8880978B2 (en) * | 2011-04-01 | 2014-11-04 | Cleversafe, Inc. | Utilizing a local area network memory and a dispersed storage network memory to access data |
CN102156738B (zh) * | 2011-04-13 | 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 |
US10359949B2 (en) * | 2011-10-31 | 2019-07-23 | Apple Inc. | Systems and methods for obtaining and using nonvolatile memory health information |
EP2665223A1 (en) * | 2012-05-16 | 2013-11-20 | Alcatel Lucent | Method for protecting confidentiality of a file distributed and stored at a plurality of storage service providers |
US20140075170A1 (en) * | 2012-09-12 | 2014-03-13 | International Business Machines Corporation | Automated firmware voting to enable multi-enclosure federated systems |
US9600365B2 (en) | 2013-04-16 | 2017-03-21 | Microsoft Technology Licensing, Llc | Local erasure codes for data storage |
EP2863566B1 (en) | 2013-10-18 | 2020-09-02 | Université de Nantes | Method and apparatus for reconstructing a data block |
US9367562B2 (en) | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
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 |
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 |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in 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 |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of 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 |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
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 |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
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 |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
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 |
US9753955B2 (en) | 2014-09-16 | 2017-09-05 | Commvault Systems, Inc. | Fast deduplication data verification |
US9715505B1 (en) * | 2014-09-30 | 2017-07-25 | EMC IP Holding Company LLC | Method and system for maintaining persistent live segment records for garbage collection |
US9665428B2 (en) * | 2015-02-05 | 2017-05-30 | Netapp, Inc. | Distributing erasure-coded fragments in a geo-distributed storage system |
US9921910B2 (en) * | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
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 |
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 |
US9639274B2 (en) | 2015-04-14 | 2017-05-02 | Commvault Systems, Inc. | Efficient deduplication database validation |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
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 |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
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 |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
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 |
US10360103B2 (en) * | 2016-07-18 | 2019-07-23 | International Business Machines Corporation | Focused storage pool expansion to prevent a performance degradation |
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 |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
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 |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
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 |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
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 |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
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 |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
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 |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
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 |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
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 |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
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 |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
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 |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
EP3726339A1 (en) | 2019-04-18 | 2020-10-21 | Lockpoint IP GmbH | Data handling device |
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 |
US11586503B2 (en) * | 2019-07-02 | 2023-02-21 | Dell Products L.P. | Faster rebuilding of 2-disk failure in raid by efficient, modular, diagonal, concurrent parity |
US11294871B2 (en) | 2019-07-19 | 2022-04-05 | Commvault Systems, Inc. | Deduplication system without reference counting |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11308043B2 (en) * | 2019-11-13 | 2022-04-19 | Salesforce.Com, Inc. | Distributed database replication |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
CN111399766B (zh) * | 2020-01-08 | 2021-10-22 | 华为技术有限公司 | 存储系统中的数据存储方法、数据读取方法、装置及系统 |
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 |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
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 |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337790A (ja) * | 2000-05-24 | 2001-12-07 | Hitachi Ltd | 記憶システム及びその階層管理制御方法 |
JP2003131817A (ja) * | 2001-08-14 | 2003-05-09 | Internatl Business Mach Corp <Ibm> | Raid論理ドライブ・マイグレーションにおいてデータをマイグレーションするための方法及びシステム |
JP2004013454A (ja) * | 2002-06-06 | 2004-01-15 | Hitachi Ltd | データマッピング管理装置 |
JP2004302751A (ja) * | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム |
JP2005107645A (ja) * | 2003-09-29 | 2005-04-21 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
JP2005250938A (ja) * | 2004-03-05 | 2005-09-15 | Hitachi Ltd | 記憶制御システム及び方法 |
JP2005258946A (ja) * | 2004-03-12 | 2005-09-22 | Toshiba Solutions Corp | 分散システム及び多重化制御方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546558A (en) * | 1994-06-07 | 1996-08-13 | Hewlett-Packard Company | Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information |
US5542065A (en) * | 1995-02-10 | 1996-07-30 | Hewlett-Packard Company | Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system |
US7000069B2 (en) * | 1999-04-05 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks |
KR100388498B1 (ko) * | 2000-12-30 | 2003-06-25 | 한국전자통신연구원 | 복수 개의 레이드를 구비한 계층적 레이드 시스템 |
US6857059B2 (en) * | 2001-01-11 | 2005-02-15 | Yottayotta, Inc. | Storage virtualization system and methods |
US6795895B2 (en) * | 2001-03-07 | 2004-09-21 | Canopy Group | Dual axis RAID systems for enhanced bandwidth and reliability |
US6985995B2 (en) * | 2002-03-29 | 2006-01-10 | Panasas, Inc. | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data |
US20050125517A1 (en) * | 2002-04-04 | 2005-06-09 | Joakim Norrgard | Method for creating a map of available resources within an ip network |
GB2400935B (en) * | 2003-04-26 | 2006-02-15 | Ibm | Configuring memory for a raid storage system |
US7669032B2 (en) * | 2003-11-26 | 2010-02-23 | Symantec Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US7290087B2 (en) * | 2003-11-26 | 2007-10-30 | International Business Machines Corporation | Adaptive grouping in object raid |
US7334156B2 (en) * | 2004-02-13 | 2008-02-19 | Tandberg Data Corp. | Method and apparatus for RAID conversion |
JP4428202B2 (ja) * | 2004-11-02 | 2010-03-10 | 日本電気株式会社 | ディスクアレイ・サブシステム、ディスクアレイ・サブシステムにおける分散配置方法、制御方法、プログラム |
US20060161808A1 (en) * | 2005-01-18 | 2006-07-20 | Burkey Todd R | Method, apparatus and program storage device for providing intelligent copying for faster virtual disk mirroring |
US20070143541A1 (en) * | 2005-12-19 | 2007-06-21 | Lsi Logic Corporation | Methods and structure for improved migration of raid logical volumes |
US7716180B2 (en) * | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
-
2006
- 2006-03-07 US US11/369,653 patent/US20070214314A1/en not_active Abandoned
-
2007
- 2007-03-01 GB GB0704005A patent/GB2436209B/en not_active Expired - Fee Related
- 2007-03-06 JP JP2007055047A patent/JP4541373B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337790A (ja) * | 2000-05-24 | 2001-12-07 | Hitachi Ltd | 記憶システム及びその階層管理制御方法 |
JP2003131817A (ja) * | 2001-08-14 | 2003-05-09 | Internatl Business Mach Corp <Ibm> | Raid論理ドライブ・マイグレーションにおいてデータをマイグレーションするための方法及びシステム |
JP2004013454A (ja) * | 2002-06-06 | 2004-01-15 | Hitachi Ltd | データマッピング管理装置 |
JP2004302751A (ja) * | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム |
JP2005107645A (ja) * | 2003-09-29 | 2005-04-21 | Hitachi Ltd | 記憶システム及び記憶制御装置 |
JP2005250938A (ja) * | 2004-03-05 | 2005-09-15 | Hitachi Ltd | 記憶制御システム及び方法 |
JP2005258946A (ja) * | 2004-03-12 | 2005-09-22 | Toshiba Solutions Corp | 分散システム及び多重化制御方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2436209A (en) | 2007-09-19 |
GB0704005D0 (en) | 2007-04-11 |
JP2007242019A (ja) | 2007-09-20 |
GB2436209B (en) | 2011-03-30 |
US20070214314A1 (en) | 2007-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4541373B2 (ja) | 分散データの階層的管理のための方法及びシステム | |
JP4516087B2 (ja) | 一貫性方法及び一貫性システム | |
US7743276B2 (en) | Sufficient free space for redundancy recovery within a distributed data-storage system | |
US7644308B2 (en) | Hierarchical timestamps | |
JP2007242018A (ja) | 分散データストレージシステム | |
JP2007242017A (ja) | データ状態記述データ構造体 | |
US7054960B1 (en) | System and method for identifying block-level write operations to be transferred to a secondary site during replication | |
CN109716279B (zh) | 用于写入持久性的自适应并发 | |
US6041423A (en) | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment | |
US7987158B2 (en) | Method, system and article of manufacture for metadata replication and restoration | |
Bonwick et al. | The zettabyte file system | |
KR101921365B1 (ko) | 비휘발성 매체 더티 영역 추적 기법 | |
US6985995B2 (en) | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data | |
US7788244B2 (en) | Method and system for copying a snapshot tree | |
US20110238936A1 (en) | Method and system for efficient snapshotting of data-objects | |
US6907507B1 (en) | Tracking in-progress writes through use of multi-column bitmaps | |
GB2369206A (en) | Excluding last written segments while rebuilding meta-data in a data storage system | |
US7313724B1 (en) | Method and apparatus for synchronizing redundant data with a volume | |
US11461018B2 (en) | Direct snapshot to external storage | |
US10922012B1 (en) | Fair data scrubbing in a data storage system | |
US7743225B2 (en) | Ditto blocks | |
US7925827B2 (en) | Method and system for dirty time logging | |
Brinkmann et al. | Realizing multilevel snapshots in dynamically changing virtualized storage environments | |
Arpaci-Dusseau | Modeling Impacts of Resilience Architectures for Extreme-Scale Storage Systems | |
Riedel et al. | When local becomes global: An application study of data consistency in a networked world |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100427 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100602 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100623 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |