JP2004118837A - 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム - Google Patents
耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム Download PDFInfo
- Publication number
- JP2004118837A JP2004118837A JP2003324785A JP2003324785A JP2004118837A JP 2004118837 A JP2004118837 A JP 2004118837A JP 2003324785 A JP2003324785 A JP 2003324785A JP 2003324785 A JP2003324785 A JP 2003324785A JP 2004118837 A JP2004118837 A JP 2004118837A
- Authority
- JP
- Japan
- Prior art keywords
- data
- host
- cache
- log
- controller
- 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; 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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
- G06F11/2066—Optimisation of the communication load
-
- 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
- G06F11/2069—Management of state, configuration or failover
-
- 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/1004—Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
-
- 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/103—Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99955—Archiving or backup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
【課題】 費用対効果の大きなデータ保護を提供する方法を提供する。
【解決手段】 故障と無関係のデータ記憶装置のアレイを有する耐障害性の記憶サブシステムにおいて、データを格納するための方法は、記憶装置上の記憶領域を論理ミラー領域および論理ストライプ領域に分割するステップと、ミラー領域にデータを格納する際に、一対の記憶装置にデータの複製コピーを保持することによってデータを複製するステップと、ストライプ領域にデータを格納する際に、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとしてデータを格納するステップとを含む。
【選択図】 図3B
【解決手段】 故障と無関係のデータ記憶装置のアレイを有する耐障害性の記憶サブシステムにおいて、データを格納するための方法は、記憶装置上の記憶領域を論理ミラー領域および論理ストライプ領域に分割するステップと、ミラー領域にデータを格納する際に、一対の記憶装置にデータの複製コピーを保持することによってデータを複製するステップと、ストライプ領域にデータを格納する際に、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとしてデータを格納するステップとを含む。
【選択図】 図3B
Description
発明の分野
この発明は、データ記憶装置におけるデータ保護に関し、特に、ディスクアレイにおけるデータ保護に関する。
この発明は、データ記憶装置におけるデータ保護に関し、特に、ディスクアレイにおけるデータ保護に関する。
発明の背景
コンピュータシステム等に情報を格納するために、さまざまな種類の記憶装置が用いられる。従来のコンピュータシステムは、オペレーティングシステムファイルシステムによって管理される情報を格納するために、ディスクドライブ等の記憶装置を含む。記憶領域のコストが下がるにつれて、個々のディスクドライブに格納されるデータの量が増大している。しかしながら、ディスクドライブの故障の際に、重要なデータが失われるおそれがある。この問題を緩和するために、耐故障性の記憶装置の中には、冗長ディスクドライブ(RAID)の配列を用いるものがある。
コンピュータシステム等に情報を格納するために、さまざまな種類の記憶装置が用いられる。従来のコンピュータシステムは、オペレーティングシステムファイルシステムによって管理される情報を格納するために、ディスクドライブ等の記憶装置を含む。記憶領域のコストが下がるにつれて、個々のディスクドライブに格納されるデータの量が増大している。しかしながら、ディスクドライブの故障の際に、重要なデータが失われるおそれがある。この問題を緩和するために、耐故障性の記憶装置の中には、冗長ディスクドライブ(RAID)の配列を用いるものがある。
主ディスクドライブ等の記憶装置を含む一般的なデータ記憶システムでは、主記憶装置に格納されたデータが、テープ等の補助記憶装置に時々バックアップされる。しかしながら、1つ以上の主記憶装置が故障した場合に、主記憶装置のデータに対する次のバックアップ以前のあらゆる変更が、失われるおそれがある。
真のデータ保護は、記憶装置に対するすべての書込のログを、データブロックのレベルで記録することによって達成することができる。一例では、ユーザデータセットと書込ログとが維持され、データセットが完全にバックアップされた後に、すべての書込のログが維持される。バックアップされたデータセットと書込ログとにより、データセットの現在の状態以前のデータセットの状態に戻ることができ、このことは、バックアップされた(ベースラインの)データセットを復元してから、その時点までのそのログから、すべての書込を実行することによって行なわれる。
ログファイル自体を保護するために、RAIDに構成されたディスクアレイは、1つのディスクドライブの故障を防ぐことによって、データ損失に対する保護を行なう。RAIDを用いた、ログファイルストリームの保護は、図1の例に示されるRAIDミラー(RAID−1として公知)か、または、図2の例によって示されるRAIDストライプ(RAID−5として公知)のいずれかによって達成されてきた。いくつかのディスクドライブ12を含むRAIDミラー10では、2つのディスクドライブが1つの独立したディスクドライブのデータを格納する。RAIDストライプ14では、n個の独立したディスクドライブのデータを格納するために、n+1個のディスクドライブ12が必要とされる(たとえば図2において、5つのディスクドライブからなるストライプが4つの独立したディスクドライブのデータを格納する)。図1の例示的なRAIDミラー10は、8個のディスクドライブ12(ドライブ0〜ドライブ7等)の配列を含み、各ディスクドライブ12は、100GB等の容量を有する。各ディスクドライブ12において、容量の半分がユーザデータに用いられ、別の半分がミラーデータに用いられる。したがって、ディスクアレイ10のユーザデータ容量は400GBであり、他の400GBがミラーデータに用いられる。この例示的なミラー構成では、ドライブ1がドライブ0のデータ(M0)を保護し、ドライブ2がドライブ1のデータ(M1)を保護し、以下同様となる。ドライブ0が故障すると、ドライブ1内のデータM0を用いてドライブ0内にデータM0を再形成することができ、ドライブ7内のデータM7を用いてドライブ0のデータM7を形成すること
ができる。このように、1つのディスクドライブが故障した場合も、データは失われない。
ができる。このように、1つのディスクドライブが故障した場合も、データは失われない。
図2を再び参照すると、RAIDストライプ構成は、ディスクアレイ14内のディスクドライブの1つを除くすべてのディスクドライブからの容量を効果的にグループ化して、残りのディスクドライブに(または図示されるように複数のドライブにわたって)その容量のパリティ(XOR)を書込む。図2の例において、ディスクアレイ14は5個のディスクドライブ12(ドライブ0〜ドライブ4等)を含み、各ディスクドライブ12は、5個のセクションに分割された、100GB等の容量を有する。ドライブ0〜ドライブ3の上部のブロックS0〜S3は、ユーザデータ用であり、ドライブ4のブロックは、パリティデータ(すなわち、S0〜S3のXOR)用である。この例において、RAIDのストライプの容量は、ユーザデータ用の400GBと、パリティデータ用の100GBとである。図示されるように、ディスクドライブ12間に、パリティ領域が分配されている。ディスクドライブ12の全体にパリティデータを分散させることにより、1つのディスクドライブへの場合とは対照的に、パリティデータを読出すタスクをいくつかのディスクドライブに分散させることができる。ストライプ構成のディスクドライブへの書込は、ディスクドライブの保持するパリティが読出されて、新規のパリティが計算され、さらに、新規のパリティで古いパリティを上書きすることが必要とされる。このことは、ディスクの大きな改良を必要とし、書込の待ち時間を増大させる。書込の待ち時間が増大することにより、記憶装置14のスループットが減少する。
その一方で、RAIDミラー構成(「ミラー」)は、RAIDストライプ構成(「ストライプ」)よりも高速で、ログファイルストリームをディスクに書込むことができる。ミラーがストライプよりも高速であるのは、ミラー化を行なっているディスクドライブに同じブロックを同時に書込むことができるという点において、ミラーでは、書込動作の各々が、他の書込動作から独立しているためである。しかしながら、ミラー構成は、保護されるべき容量が別のディスクドライブに合致することを必要とする。このことは、保護されるべき容量を複写しなければならず、かつ、ディスクドライブの数を2倍にすることを必要とするために、費用がかかる。ストライプは、nがディスクドライブアレイ内のディスクドライブの数を示す場合、このような容量を1/nまで減じる。このため、パリティを複数のディスクドライブに分散させてデータを保護することにより、ストライプはミラーよりも速度が遅くなるが、費用対効果が大きくなる。
したがって、従来のRAIDシステムよりも改良されたデータ読出/書込性能を備えた、費用対効果の大きなデータ保護を提供する方法およびシステムが必要とされる。また、このようなシステムが、以前の所望されるデータ状態に戻る能力を提供することが必要とされる。
発明の概要
この発明は、これらの必要性を満たす。一実施例において、この発明は、記憶装置上の記憶領域を、論理ミラー領域(すなわちRAIDミラー)および論理ストライプ領域(すなわちRAIDストライプ)からなるハイブリッドに分割することによって、故障と無関係のデータ記憶装置の配列を有する耐故障性の記憶サブシステムに、データを格納するための方法を提供する。ミラー領域にデータを格納する場合は、一対の記憶装置に、そのデータの複製コピーを保持することによってデータが複製され、ストライプ領域にデータを格納する場合は、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして、そのデータが格納される。
この発明は、これらの必要性を満たす。一実施例において、この発明は、記憶装置上の記憶領域を、論理ミラー領域(すなわちRAIDミラー)および論理ストライプ領域(すなわちRAIDストライプ)からなるハイブリッドに分割することによって、故障と無関係のデータ記憶装置の配列を有する耐故障性の記憶サブシステムに、データを格納するための方法を提供する。ミラー領域にデータを格納する場合は、一対の記憶装置に、そのデータの複製コピーを保持することによってデータが複製され、ストライプ領域にデータを格納する場合は、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして、そのデータが格納される。
この発明の一形態において、ログファイルストリームは、ホストからのデータを記憶サブシステムに書込むために、RAIDミラー領域のログキャッシュとして維持され、次に、データは、RAIDミラー領域のログファイルから、RAIDストライプ領域内の最終アドレスへと、好ましくはバックグラウンドタスクとして転送される。その際に、RAIDストライプへの書込に関連する、上述の書込待ち時間という性能の不利益を、ホストから隠すことができる。
この発明によると、性能をさらに高めるために、ログキャッシュの前にメモリキャッシュ(RAMキャッシュ)が加えられ、入来するホストブロックが、まず、迅速にRAMキャッシュに書込まれて、ホストは通知を受ける。ホストは、ホストが通知を待っている間にそのデータがデータ記憶装置に書込まれていれば生じ得た書込サイクルよりも高速の書込サイクルを認識する。そのため、上述のハイブリッドRAIDサブシステムの性能がさらに高まる。
データがRAMキャッシュを介してデータ記憶装置に移行する途中で電源障害が生じると、データ損失を生じるおそれがある。そのため、この発明の別の局面に従い、RAMキャッシュデータを保護するために、サブシステムにフラッシュバックモジュール(バックアップモジュール)が加えられる。フラッシュバックモジュールは、フラッシュメモリ等の不揮発性メモリとバッテリとを含む。通常動作中に、バッテリは細流充電される。そこで万一、任意の電源障害が生じた場合は、RAMキャッシュの内容をフラッシュメモリに転送するために、バッテリは電力を供給する。電力が復旧すると、フラッシュメモリの内容は再びRAMキャッシュに転送され、通常動作が再開される。
読出性能は、アレイ内で予備のデータ記憶装置(「ホットスペア」)として通常用いられるデータ記憶装置(ディスクドライブ等)に対し、ハイブリッドRAIDシステム内の一時的なサービスを行なわせることによってさらに高められる。従来のRAIDサブシステムでは、あらゆるホットスペアが休止状態にあるものの、アレイ内のデータ記憶装置の1つが故障した場合は、引き継ぐ準備ができている。この発明によると、ホットスペアは休止状態になく、むしろ、ハイブリッドRAIDサブシステムのミラー化された領域のデータを複製するために用いられ得る。アレイ内の任意のデータ記憶装置が万一故障しても、このホットスペアが直ちに送られて、1つのデータ記憶装置の故障からのデータ損失以上の損失を被らずに、その故障したデータ記憶装置の代用を務めることができる。しかしながら、アレイのデータ記憶装置のすべてが適切に作動している間、ミラー領域の複製は、ホットスペアによるミラー領域の補助を可能にし、読出要求へのアレイの応答性を一層高める。
ミラー領域は、書込データをストライプ領域内のその最終位置に格納する前に、ログに対する一時的な記憶装置として働く。この発明の別の形態では、ミラー領域からデータを消去する前に、テープ等の長期保管記憶媒体にログを順次書込むことができる。ログファイルが保管された直前にRAIDサブシステムのストライプ全体のベースラインバックアップが行なわれた場合に、RAIDサブシステムの連続する状態の各々は、保管されたログファイル内の書込要求を再実行することによって再形成され得る。これにより、RAIDサブシステムのストライプのどのような以前の状態も、再形成することができる(すなわち、無限のロールバックまたは巻戻し)。このことは、不注意によるファイル消去等のユーザのエラー、またはウイルス感染等からの回復を可能にするという点で、有利である。
したがって、この発明は、従来のRAIDシステムよりも改良されたデータ読出/書込
性能を備えた、費用対効果の大きなデータ保護を提供する方法およびシステムを提供し、以前の所望されるデータ状態に戻る能力もまた提供する。
性能を備えた、費用対効果の大きなデータ保護を提供する方法およびシステムを提供し、以前の所望されるデータ状態に戻る能力もまた提供する。
この発明のこれらおよび他の特徴、局面、および利点は、以下の説明と、前掲の請求項と、添付の図面とを参照することによって理解されるであろう。
発明の詳細な説明
図3Aを参照すると、ディスクドライブ等の、故障と無関係のデータ記憶装置18の配列を有し、かつ、この発明の一実施例に従ったハイブリッドRAIDデータ編成を用いた、例示的な耐故障性の記憶サブシステム16が示される。データ記憶装置18は、たとえば光学記憶装置、DVD−RAM等の他の記憶装置であってよい。上で論じたように、パリティを複数のディスクドライブに分散させてデータを保護することにより、RAIDストライプの速度は遅くなるが、費用対効果が高まる。RAIDミラーは、より優れたデータ転送性能を提供する。なぜなら、目標のセクタが2つのディスクドライブ上に同時に書込まれるためである。しかしながら、このことは、保護されるべき容量が別のディスクドライブと合致していることを必要とする。その一方で、RAIDストライプは、nがディスクアレイ内のドライブの数である場合、このような容量を1/nまで減じる。しかしながら、RAIDストライプでは、ターゲットとパリティセクタとの両方が読出されて、次に書込まれなければならないため、書込待ち時間を生じる。
図3Aを参照すると、ディスクドライブ等の、故障と無関係のデータ記憶装置18の配列を有し、かつ、この発明の一実施例に従ったハイブリッドRAIDデータ編成を用いた、例示的な耐故障性の記憶サブシステム16が示される。データ記憶装置18は、たとえば光学記憶装置、DVD−RAM等の他の記憶装置であってよい。上で論じたように、パリティを複数のディスクドライブに分散させてデータを保護することにより、RAIDストライプの速度は遅くなるが、費用対効果が高まる。RAIDミラーは、より優れたデータ転送性能を提供する。なぜなら、目標のセクタが2つのディスクドライブ上に同時に書込まれるためである。しかしながら、このことは、保護されるべき容量が別のディスクドライブと合致していることを必要とする。その一方で、RAIDストライプは、nがディスクアレイ内のドライブの数である場合、このような容量を1/nまで減じる。しかしながら、RAIDストライプでは、ターゲットとパリティセクタとの両方が読出されて、次に書込まれなければならないため、書込待ち時間を生じる。
図3Aの例において、6個のディスクドライブ18(ドライブ0〜ドライブ5)のアレイ17は、ホストシステムからデータを格納して、かつ、ホストシステムにデータをもう一度読出すために用いられ、この発明に従ったRAIDストライプデータ編成とRAIDミラーデータ編成との両方を含むように構成される。ディスクアレイ17において、RAIDミラー(「ミラー」)構成は、たとえばログファイルストリームのアプローチを用いてデータをディスクドライブ18に転送する際に性能の利点を提供し、RAIDストライプ(「ストライプ)構成は、ユーザデータセットの汎用記憶のためにストライプ編成を用いることにより、費用対効果を提供する。
この発明の一実施例に従った、図3Bのフローチャートにおける例示的なステップを参照すると、このことは、図3Aのディスクアレイ17の容量を、ミラー領域20およびストライプ領域22を含む少なくとも2つの領域(セグメント)に分割すること(ステップ100)によって達成される。データセット24は、ストライプ領域22に維持され(ステップ102)、関連するログファイル/ストリーム26は、ミラー領域20に維持される(ステップ104)。ログファイル26は、ミラー領域20の書込ログキャッシュとして維持されて、ホストから書込要求を受取ると、ホストデータがログファイル26に書込まれて(ステップ106)、次に、ミラー領域20のログファイル26から、ストライプ領域22のデータセット24内の最終アドレスに、データが転送される(好ましくは、バックグラウンドタスクとして行なわれる)(ステップ108)ようにする。その際に、RAIDストライプへの書込に関連する、上述の書込待ち時間という性能の不利益を、ホストから隠すことができる。好ましくは、ログは、継続的にまたは定期的に、テープにバックアップされる(ステップ110)。上述のステップは、書込要求がホストから到着すると繰返される。ディスクアレイ17は、この発明に従った、追加のハイブリッドであるRAIDミラーおよびRAIDストライプに構成された領域を含むことができる。
図3Cを参照すると、この発明に従った例示的なハイブリッドRAIDサブシステム16は、ディスクアレイ17(N個のディスクドライブ18のアレイ等)に図3Aのハイブリッドデータ編成を実現するRAIDコントローラ30を有するデータ編成管理プログラム28をさらに含む。図3Cの例において、N=6個のディスクドライブ(各々が100
GB等のドライブ0〜ドライブ5)のアレイ17は、ディスクドライブ18の容量の一部が書込ログキャッシュ26および書込ログキャッシュのミラーデータ27(すなわちM0〜M5)のためのRAIDミラーとして用いられるように構成される。また、ディスクドライブ18の容量の残りの部分は、ユーザデータ(S0〜S29等)およびパリティデータ(XOR0〜XOR29等)のためのRAIDストライプとして用いられる。この例では、400GBのユーザデータがハイブリッドRAIDサブシステム16に格納されており、図1のRAIDミラー10および図2のRAIDストライプ14における同じ容量に匹敵する。サブシステム16は、ホストインターフェイス31を介してホスト29と通信する。この発明に従い、図3CのRAIDサブシステム16において、他の数のディスクドライブおよび異なる記憶容量を用いることもできる。
GB等のドライブ0〜ドライブ5)のアレイ17は、ディスクドライブ18の容量の一部が書込ログキャッシュ26および書込ログキャッシュのミラーデータ27(すなわちM0〜M5)のためのRAIDミラーとして用いられるように構成される。また、ディスクドライブ18の容量の残りの部分は、ユーザデータ(S0〜S29等)およびパリティデータ(XOR0〜XOR29等)のためのRAIDストライプとして用いられる。この例では、400GBのユーザデータがハイブリッドRAIDサブシステム16に格納されており、図1のRAIDミラー10および図2のRAIDストライプ14における同じ容量に匹敵する。サブシステム16は、ホストインターフェイス31を介してホスト29と通信する。この発明に従い、図3CのRAIDサブシステム16において、他の数のディスクドライブおよび異なる記憶容量を用いることもできる。
図4Aは、例示的なユーザデータセット24および書込ログ26を示し、データセット24がたとえば真夜中に完全にバックアップされた後に、すべての書込のログ26が維持される(t1〜t6の時間等に)。この例において、各書込ログのエントリ26aは、更新されたデータ(udata)と、更新されたデータが格納されるべきデータセット内のアド
レス(addr)と、対応するタイムスタンプ(ts)とを含む。各時間t1〜t6におけるデータセットもまた図4Aに示される。バックアップされたデータセット24と書込ログ26とにより、データセットの現在の状態(時間t6等)より前のあらゆる時間におけるデータセット24の状態に戻ることができ、これは、バックアップされた(ベースラインの)データセット24を復元してから、その時点までのそのログ62から、すべての書込を実行することによって行なわれる。たとえば、アドレスaddr=0(論理ブロックアドレス0等)に対するデータが時間t2において更新されたものの、時間t5において破損した場合は、ベースラインバックアップを復元して、時間t2を経た書込ログを実行することによって、時間t2から、addr=0からのデータを取り戻すことができる。この発明によると、ログファイル26は、まず、RAIDミラー領域20に書込まれ、次に、データは、RAIDミラー領域20のログファイル26から、RAIDストライプ領域22内の最終アドレスに、(好ましくはバックグラウンドタスクとして)転送される。
レス(addr)と、対応するタイムスタンプ(ts)とを含む。各時間t1〜t6におけるデータセットもまた図4Aに示される。バックアップされたデータセット24と書込ログ26とにより、データセットの現在の状態(時間t6等)より前のあらゆる時間におけるデータセット24の状態に戻ることができ、これは、バックアップされた(ベースラインの)データセット24を復元してから、その時点までのそのログ62から、すべての書込を実行することによって行なわれる。たとえば、アドレスaddr=0(論理ブロックアドレス0等)に対するデータが時間t2において更新されたものの、時間t5において破損した場合は、ベースラインバックアップを復元して、時間t2を経た書込ログを実行することによって、時間t2から、addr=0からのデータを取り戻すことができる。この発明によると、ログファイル26は、まず、RAIDミラー領域20に書込まれ、次に、データは、RAIDミラー領域20のログファイル26から、RAIDストライプ領域22内の最終アドレスに、(好ましくはバックグラウンドタスクとして)転送される。
書込ログ26が大きくなることが考えられるため、書込ログ26は、ディスク空間を空けて、データセット24に対するより多くの変更を記録するために、好ましくはテープドライブ等の補助記憶装置にオフロードされる。このため、ディスクアレイ17(図3C)は、3段階の処理において書込ログキャッシュとして用いられる。すなわち、(1)ホストがディスクドライブ内の最終宛先への書込よりも、ディスクにデータを書込むことを必要とする場合、そのデータはまず、ログ26に書込まれて、ホストを満足させる。(2)次に、ディスクドライブが忙しくないときに、そのデータは、ログ26からディスクドライブ上の最終宛先データセットに転送され、このことはホストに対して透過的である。(3)記憶領域を空けて、ホストからの新規のデータを記録するために、そのログデータがたとえばテープにバックアップされる。ログおよび最終宛先データは、上述のハイブリッドRAID構成内に維持される。
図4Bのフローチャートにおける例示的なステップを参照すると、ホストの読出要求を受取ると(ステップ120)、要求されたデータが書込ログ26内に存在して、ミラー領域20においてキャッシュ(すなわちキャッシュヒット)として維持されているかどうかが判断される(ステップ122)。キャッシュとして維持されている場合、要求されたデータは、ログ26からホスト20に転送される(ステップ124)。統計上、最近書込まれたデータほど、以前に書込まれたデータよりも、もう一度読出される傾向が高いため、ログ領域が大きいほど、要求されたデータがログ26内(ミラー領域20内)にある確率が高くなるというトレードオフが生じる。ミラー領域20から複数のブロックを読出す際に、異なるディスクドライブから異なるブロックを同時に読出すことができるため、読出性能が高まる。ステップ122において、ログのキャッシュヒットがない場合は、要求さ
れたデータを取出してホストに提供するために、ストライプ領域22がアクセスされる(ステップ126)。ストライプの読出性能はミラーに劣るが、書込性能が劣っているほど顕著ではない。
れたデータを取出してホストに提供するために、ストライプ領域22がアクセスされる(ステップ126)。ストライプの読出性能はミラーに劣るが、書込性能が劣っているほど顕著ではない。
したがって、ストライプ領域22は、書込ログデータをフラッシュすることによって、ストライプ領域22にデータセットを永久に格納するために用いられ、また、ミラー領域20の書込ログキャッシュ26に存在しないデータブロックを読出すためにも用いられる。ハイブリッドRAIDシステム16は、RAIDミラーを有さない従来のRAIDストライプよりも改良されている。なぜなら、この発明によると、最も最近に書込まれたデータが、ミラー領域20に格納されたログ26内に存在する傾向が高く、これにより、ストライプよりも高速の読出が行なわれるためである。ハイブリッドRAIDシステムは、すべての書込およびほとんどの読出に対し、RAIDミラー性能と等価の性能を提供する。なぜなら、最も最近に書込まれたデータほど、もう一度読出される傾向が最も高いためである。したがって、RAIDストライプ22は、RAIDミラー20に格納されたログキャッシュ26で発見されなかったデータを取出すためにのみアクセスされ、それにより、ハイブリッドRAIDシステム16は、RAIDストライプの費用対効果において、本質的にRAIDミラーの性能を提供する。
したがって、ストライプ22が、フォアグラウンド処理(リアルタイム等)として書込まれる場合には、書込性能に不利益が生じる(すなわち、ホストは、書込が完了したという通知を待っている)。ログキャッシュ26は、ストライプ22に対するこのようなリアルタイムの書込を回避することを可能にする。ディスクアレイ17が2つの論理データ領域(すなわち、ミラー化されたログ書込領域20およびストライプ化された読出領域22)に分割されているため、ログ書込にミラー構成を用いることにより、ストライプの書込性能における不利益を回避することができる。ピーク活動の期間中に生じるログ書込をすべて保持するほどミラー領域20が十分に大きい場合、ストライプ領域22への更新は、バックグラウンドで行われ得る。ミラー領域20は本質的に書込キャッシュであり、ストライプ領域22へのバックグラウンドの書込を伴った、ミラー領域20へのログ26の書込により、ハイブリッドサブシステム16は、ストライプ様のコストでミラーの性能に匹敵することができる。
図4Cのフローチャートにおける例示的なステップを参照すると、この発明に従い、さらに性能を高めるために、キャッシュメモリ(図5AのRAM書込キャッシュ32等)がディスクアレイ17内のログキャッシュ26の前に加えられる(ステップ130)。上述のように、データセット24およびログファイル26は、それぞれストライプ領域22およびミラー領域20に維持される(ステップ132、134)。ホストの書込要求を受取ると(ステップ136)、入来するホストのブロックが、まずRAM書込キャッシュ32に迅速に書込まれ、ホストは通知を受ける(ステップ138)。ホストは、ホストが通知を待っている間にそのデータがディスクに書込まれていれば生じ得た書込サイクルよりも高速の書込サイクルを認識する。このことは、従来のRAIDシステムの性能を高め、さらに、上述のハイブリッドRAIDサブシステム16の性能を高める。RAM書込キャッシュ32内のホストデータは、ミラー領域20内のログ26(すなわち、ディスクミラーの書込キャッシュ)に順次複写されて(ステップ140)、そのログデータは後に、ストライプ領域22内のデータセット24(すなわちディスクストライプのデータセット)に、たとえばバックグラウンド処理として複写される(ステップ142)。ディスクミラーの書込キャッシュ26への順次的な書込およびディスクストライプのデータセット24へのランダムな書込は、順次的な高速の書込を提供する。
しかしながら、データがRAM書込キャッシュ32を介してディスク(ディスク上の書込ログキャッシュ等)に至る途中での電源障害は、RAMが揮発性であるために、データ
の損失を生じるおそれがある。したがって、図5AのハイブリッドRAIDサブシステム16の別の実施例の例示的なブロック図に示されるように、この発明によると、RAMキャッシュデータを保護するために、ディスクアレイ17にフラッシュバックモジュール34(バックアップモジュール)を加えることができる。モジュール34がない場合、書込データは、その宛先アドレスにおいてディスク上に格納されるまで、安全とはならないであろう。
の損失を生じるおそれがある。したがって、図5AのハイブリッドRAIDサブシステム16の別の実施例の例示的なブロック図に示されるように、この発明によると、RAMキャッシュデータを保護するために、ディスクアレイ17にフラッシュバックモジュール34(バックアップモジュール)を加えることができる。モジュール34がない場合、書込データは、その宛先アドレスにおいてディスク上に格納されるまで、安全とはならないであろう。
モジュール34は、フラッシュメモリ等の不揮発性メモリ36と、バッテリ38とを含む。図5Bのフローチャートにおける例示的なステップを参照すると、通常動作中に、バッテリ38は、外部電源40から細流充電される(ステップ150)。万一、任意の電源障害が生じた場合、バッテリ38は、RAIDコントローラ30に十分な電力を与えて(ステップ152)、RAM書込キャッシュ32の内容をフラッシュメモリ36に転送する(ステップ154)。電力が復旧すると、フラッシュメモリ36の内容は、再びRAM書込キャッシュ32に転送され、通常動作が再開される(ステップ156)。このことにより、データが一旦RAMキャッシュ32に書込まれると(これは、データをミラーディスクに書込むよりも高速である)、ホストの書込要求(コマンド)に対する応答が可能となる。RAIDサブシステム16の要素の故障が、万一、通常動作の再開を妨げる場合は、フラッシュバックモジュール34を別のハイブリッドサブシステム16に移動させて、フラッシュメモリ36からデータを復元することができる。フラッシュバックモジュール34が、電力の損失からRAM書込キャッシュ32を保護しているために、書込は、RAMキャッシュ32内に堆積され得、順次、ミラー化されたディスクログファイル26に(たとえばバックグラウンドで)書込まれる。
RAM書込キャッシュ32のサイズ(およびコスト)(ならびに、フラッシュバックモジュール34内のフラッシュメモリ36の、対応するサイズおよびコスト)を最小にするために、書込データは、できるだけ迅速にディスクに転送されなければならない。ハードディスクドライブの順次的なスループットが、ランダムな性能よりも実質的に優れているために、RAM書込キャッシュ32からディスクにデータを転送する最も速い方法とは、ミラー領域20内のログファイル26(すなわち、上述の、一連のアドレス/データ対)を経由することである。なぜなら、ミラー領域20にデータブロックを書込む場合に、そのデータブロックが2つの異なるディスクドライブに書込まれるためである。ホストから入来する、書込まれるべきブロックの物理ディスクアドレスに依存して、ミラー20のディスクドライブは、ランダムにアクセスされ得る。しかしながら、ログファイルは、時間順のエントリに基づいて逐次書込まれるために、ブロックは、ディスクドライブ上のデータセット24内における、ブロックの実際の物理位置に関係なく、順次的にログファイルに書込まれる。
この発明に従った上述のハイブリッドRAIDシステムアーキテクチャにおいて、RAIDサブシステム16からの、ホスト29によって要求されたデータは、RAM書込キャッシュ32内、ミラー20領域のログキャッシュ領域26内、または汎用ストライプ領域22内にあり得る。図5Cのフローチャートにおける例示的なステップを参照すると、ホストの読出要求を受取ると(ステップ160)、要求されたデータがRAMキャッシュ32に存在するかどうかが判断される(ステップ162)。RAMキャッシュ32に存在する場合、要求されたデータは、RAMキャッシュ32からホスト29に転送される(ステップ164)。要求されたデータがRAMキャッシュ32に存在しない場合、要求されたデータがミラー領域20の書込ログファイル26内に存在するかどうかが判断される(ステップ166)。書込ログファイル26内に存在する場合、要求されたデータは、ログ26からホストに転送される(ステップ168)。要求されたデータがログ26内に存在しない場合、要求されたデータを取出してホストに与えるために、ストライプ領域22内のデータセット24がアクセスされる(ステップ169)。
ミラー領域20内のデータが複製されているために、読出データの要求を遂行するために、2倍の数の駆動部を利用することができ、応答性を効果的に2倍にする。このミラーの利点は一般に認識されているが、ミラーがランダムなデータを保持せずに、最近書込まれたデータを保持しているために、この利点を高めることができる。上で論じたように、データが読出される確率は、データが書込まれてからの時間にほぼ正比例するため、ミラー領域20が、所望のデータを保持している可能性が高いことが考えられる。最終データアドレスの潜在的なランダム性に関係なく、データが書込まれたのと同じ順序でデータがもう一度読出される場合は、加速をさらに実現することができる。なぜなら、ミラー領域20が、書込まれた順序でデータを格納しており、その順序での読出が、順次的なストリームを形成するためである。
この発明の別の局面によると、サブシステム16の読出性能を、さらに高めることができる。従来のRAIDシステムでは、アレイ内のディスクドライブの1つを、スペアディスクドライブ(「ホットスペア」)として確保することができ、アレイ内の他のディスクドライブの1つが万一故障した場合に、その故障したドライブの代わりにホットスペアが用いられる。この発明によると、ディスクアレイ17においてホットスペアとして通常用いられるディスクドライブに対し、ハイブリッドRAIDサブシステム16の一時的なサービスを行なわせることにより、読出性能をさらに高めることができる。図6Aは、この発明に従ったホットスペアディスクドライブ18a(すなわちドライブ6)をさらに含む、図3AのハイブリッドRAIDサブシステム16を示す。
この発明に従った、図6Bのフローチャートにおける例示的なステップを参照すると、ホットスペア18aの状態が判定され(ステップ170)、ホットスペア18aが休止状態にある(すなわち、故障した装置の代替として用いられていない)ことが検出されると(ステップ172)、ホットスペア18aが、ハイブリッドRAIDサブシステム16のミラー化された領域20内のデータを複製するために用いられる(ステップ174)。次に、ホストから読出要求を受取ると(ステップ176)、要求されたデータがホットスペア18aおよびミラー領域20に存在するかどうかが判断される(ステップ178)。ホットスペア18aおよびミラー領域20に存在する場合、要求されたデータのコピーは、最小の待ち時間でホットスペア18aからホストに与えられ、または、より高速であれば、ミラー領域20からホストに与えられる(ステップ180)。ホットスペア18aおよびミラー領域20に存在しない場合、要求されたデータのコピーは、ミラー領域20またはストライプ領域22からホストに与えられる(ステップ182)。その後、ホットスペア18aが、故障したディスクドライブの代わりを務めるために必要とされるかどうかが判断される(ステップ184)。必要とされない場合、この処理はステップ176に戻り、必要とされる場合、ホットスペア18aは、故障したディスクドライブと置き換えられる(ステップ186)。
したがって、図6Aにおいて、アレイ17内の任意のディスクドライブ18が万一故障しても、ホットスペア18aが直ちに送られて、1つのディスクドライブの故障からのデータ損失以上の損失を被らずに、その故障したディスクドライブの代用を務めることができる。たとえば、ドライブ1が故障すると、ドライブ0およびドライブ2〜ドライブ5がスペアドライブ6の使用を開始して、故障前のドライブ1のデータを保持するように、ドライブ6を再構築することができる。しかしながら、アレイ17のディスクドライブ18がすべて適切に作動している場合、ミラー領域20の複製は、ホットスペア18aによるミラー領域20の補助を可能にして、サブシステム16の読出要求に対する応答性をより高めることができる。
ミラー化された領域20のサイズに依存して、ホットスペア18aは、性能をさらに高
めるために、複数の冗長データのコピーを提供することができる。たとえば、ホットスペア18aがアレイ17のミラー化された領域20の容量に合致する場合、ホットスペア18aの上に、ミラー化された領域のデータを二度複製することができる。たとえば、ホットスペア18aにおいて、同心のディスクトラックの各々の上にデータが複製されるように、データを配置することができる(すなわち、トラックの一方の半分が、そのトラックの他方の半分上に存在するデータのコピーを保持する)。その場合、ランダムな要求に応答する際のホットスペア18aの回転待ち時間は、効果的に半分になる(すなわち、読出待ち時間が一層短くなる)。
めるために、複数の冗長データのコピーを提供することができる。たとえば、ホットスペア18aがアレイ17のミラー化された領域20の容量に合致する場合、ホットスペア18aの上に、ミラー化された領域のデータを二度複製することができる。たとえば、ホットスペア18aにおいて、同心のディスクトラックの各々の上にデータが複製されるように、データを配置することができる(すなわち、トラックの一方の半分が、そのトラックの他方の半分上に存在するデータのコピーを保持する)。その場合、ランダムな要求に応答する際のホットスペア18aの回転待ち時間は、効果的に半分になる(すなわち、読出待ち時間が一層短くなる)。
したがって、ハイブリッドRAIDサブシステム16のミラー領域20をより高速にするために、ホットスペア18aが用いられる。図6Cは、ドライブ6がホットスペア18aである、7個のディスクドライブ(ドライブ0〜ドライブ6)に対して、図6AのハイブリッドRAIDデータ編成を実現するRAIDコントローラ30を含む、ハイブリッドRAIDサブシステム16の例示的なブロック図を示す。たとえば図6Cのドライブ0〜ドライブ1について考えた場合、M0データはドライブ0内に存在し、ドライブ1に複製され、それによってドライブ1はドライブ0を保護する。加えて、M0データは、複製を用いてスペアドライブ6に書込まれて、要求されたM0データがミラー領域20内の書込ログ26内に存在する場合に、ドライブ0、ドライブ1、またはスペアドライブ6からもう一度読出され得るようにする。M0データはドライブ6に二度複製されているため、ドライブ6は高い毎分回転数を有しているように見える。なぜなら、上に述べたように、複製が読出待ち時間を短縮するためである。スペアドライブ6は、M0データに対する態様と同様の複製された態様で、ミラー化されたブロックのすべてを格納するように構成されて、ハイブリッドサブシステム16の読出性能を高めることができる。
ホットスペアディスクドライブが、ディスクアレイ(主アレイ)内の他のディスクドライブの容量と合致していなければならず、この例において、ミラー領域のデータ(M0〜M5)がディスクドライブ18の容量の半分であるために、ホットスペア18aは、ミラー領域20を二度複製することができる。ホットスペア18aがミラー領域の複製を含む場合、ホットスペア18aをサブシステム16から取外して、バックアップすることができる。バックアップは、ネットワーク帯域幅を用いずにオフラインで行なうことができる。ホットスペア18aから新規のベースラインを形成することができる。
たとえば、ディスクアレイの完全なバックアップが前もってテープに行なわれ、ホットスペア18aがそのバックアップ以降の書込のすべてを保持している場合、テープから補助ディスクアレイにバックアップを復元することができ、次に、補助ディスクアレイのストライプ22に、ログファイル26からのすべての書込を書込むことができる。この処理を速めるには、所与のブロックに対する最も最近の更新が書込まれるだけでよい。書込の順序は、一時的な順序に置換えられる必要はないが、ホットスペアの読出および/または補助アレイへの書込間の時間を最小にするために、最適化することができる。ホットスペアが主アレイから取外された時点で、補助アレイのストライプは、主アレイのストライプと同じ状態にある。この時点で補助アレイをテープにバックアップすることにより、より新規のホットスペアで徐々に更新されてより新規のベースラインを形成して非常時の高速な復元を容易にすることが可能な、新規のベースラインが形成される。新規のベースラインのこのような形成は、ディスクアレイおよびテープドライブを含む機器によって、ホストなしで行なうことができる。新規のベースラインのテープのバックアップが失敗した場合、ホットスペアの以前のベースラインおよびテープのバックアップに戻ることができる。
図7Aは、この発明に従った、上述のハイブリッドRAIDデータ編成を実現し、かつ、冗長ミラーとしてのホットスペア18aとフラッシュバックモジュール34とを含む、
ハイブリッドRAIDサブシステム16の一実施例のブロック図を示す。ミラー領域20のログ26およびフラッシュバックモジュール34への書込により、ミラー上での複製に通常は関連する書込性能の不利益がなくなる。ミラー上での複製は、すべての書込に対して1/4回転を加えることを含む。目標のトラックが獲得されると、複製されたセクタのうちの1つに対する平均待ち時間は1/4回転であるが、他のセクタに書込むためには1/2回転が必要とされる。標準的なミラー上での平均待ち時間が1/2回転であるために、書込には追加の1/4回転が必要とされる。フラッシュバックモジュール34により、RAIDコントローラ30内のRAM書込キャッシュ32において書込を受取ると、ホストに対して書込不揮発性の通知が生じ得る。非ピーク活動の期間中に、RAM書込キャッシュ32からディスクのログファイルの書込キャッシュ26への書込が、バックグラウンドで生じる。ログファイル26に順次書込むことにより、このような非ピーク活動の確率が、大いに上昇する。図7Bは、フラッシュバックモジュール34が、RAIDコントローラ30を含むデータ編成管理プログラム28の一部である、図7AのハイブリッドRAIDサブシステム16の別の実施例のブロック図を示す。
ハイブリッドRAIDサブシステム16の一実施例のブロック図を示す。ミラー領域20のログ26およびフラッシュバックモジュール34への書込により、ミラー上での複製に通常は関連する書込性能の不利益がなくなる。ミラー上での複製は、すべての書込に対して1/4回転を加えることを含む。目標のトラックが獲得されると、複製されたセクタのうちの1つに対する平均待ち時間は1/4回転であるが、他のセクタに書込むためには1/2回転が必要とされる。標準的なミラー上での平均待ち時間が1/2回転であるために、書込には追加の1/4回転が必要とされる。フラッシュバックモジュール34により、RAIDコントローラ30内のRAM書込キャッシュ32において書込を受取ると、ホストに対して書込不揮発性の通知が生じ得る。非ピーク活動の期間中に、RAM書込キャッシュ32からディスクのログファイルの書込キャッシュ26への書込が、バックグラウンドで生じる。ログファイル26に順次書込むことにより、このような非ピーク活動の確率が、大いに上昇する。図7Bは、フラッシュバックモジュール34が、RAIDコントローラ30を含むデータ編成管理プログラム28の一部である、図7AのハイブリッドRAIDサブシステム16の別の実施例のブロック図を示す。
この発明に従ったハイブリッドRAIDサブシステム16の別の実施例は、データブロックサービスを提供し、任意のブロック装置(たとえば1つのディスクドライブ、RAID等)として用いられ得る。このようなハイブリッドRAIDサブシステムは、或るデータブロックレベルで作動する装置が用いられ得る任意のシステムにおいて、用いることができる。図8Aは、ストレージエリアネットワーク(SAN)42等の例示的なブロックデバイスにおいて、この発明に従ったハイブリッドRAIDサブシステム16の一実施例を用いた一例を示す。SANでは、接続された装置がデータブロックを交換する。
図8Bは、ネットワーク44内のネットワーク接続ストレージ(NAS)として、この発明に従ったハイブリッドRAIDサブシステム16の一実施例を用いた一例を示す。NASでは、接続された装置がファイルを交換する。なぜなら、このようなファイルサーバ46が、ハイブリッドRAIDサブシステム16の前に位置付けられているためである。NAS装置のファイルサーバの部分は、ファイルサービスに専ら焦点を合わせて単純化することができ、ハイブリッドRAIDサブシステム16によってデータの保全性が提供される。
この発明は、この明細書において以下に述べるように、ハイブリッドRAIDサブシステムに対し、さらに例示的な改良点を与える。上に述べたとおり、ミラー領域20(図3A)は、書込データをストライプ22内のその最終位置に格納する前に、ログキャッシュ26に対する一時的な記憶装置として働く。一時的なミラー20からデータを消去する前に、テープ等の長期保管記憶媒体に、ログ26を順次書込むことができる。次に、データセットの以前の状態に戻るために、ログファイルが保管された直前にRAIDサブシステムのストライプ22全体のベースラインのバックアップが形成された場合には、保管されたログファイルシステム内の書込要求を再実行することによって、RAIDサブシステム16の、連続する状態の各々を、再形成することができる。これにより、RAIDサブシステム16のストライプ22の、以前のあらゆる状態を再形成することができる(すなわち、無限のロールバックまたは巻戻し)。このことは、たとえば、不注意によるファイル消去等のユーザのエラーからの回復を可能にするという点と、ウイルス感染からの回復を可能にするという点とにおいて、有益である。図8Cのフローチャートにおける例示的なステップを参照すると、選択された時間における、ストライプ22内のデータセット24の状態を再形成するために、その選択された時間以前のバックアップ時間に形成されたデータセット24のコピーが得られ(ステップ190)、上述のデータセットのコピーに関連するキャッシュログ26のコピーが得られる(ステップ192)。上述の、関連するキャッシュログ26は、上述のバックアップ時間の直後に時間順次的に形成されたエントリ26a(図4A)を含む。上述の選択された時間を示すタイムスタンプが、関連するキャ
ッシュログのエントリ26aに到達するまで、上述の関連するキャッシュログ26の各エントリの各データブロックは、データセットのコピー内の対応するブロックアドレスまで時間順次的に転送される(ステップ194)。
ッシュログのエントリ26aに到達するまで、上述の関連するキャッシュログ26の各エントリの各データブロックは、データセットのコピー内の対応するブロックアドレスまで時間順次的に転送される(ステップ194)。
この発明は、費用対効果のため、ハイブリッドRAIDシステム16のミラー領域20に格納されたログ26内のデータの圧縮をさらに提供する。圧縮は、データ冗長性が多様であるために、従来のRAIDサブシステムでは用いられていない。たとえば、所与のデータブロックは、読出され、変更され、再び書込まれ得る。読出されたデータがデータブロック全体を消費し、かつ、変更されたデータが元のデータと同じだけ冗長性を有している場合、圧縮されて変更されたデータは、ディスク上のデータブロックに適合しない。
しかしながら、読出/変更/書込動作は、この発明のミラー領域20における有効な動作ではない。なぜなら、ミラー領域20が、書込の順次的なログファイルを含むためである。ミラー領域20から所与のデータブロックを読出し得る間に、任意の変更の後、データブロックの書込は、その場で上書きされるのではなく、既存のログファイルストリーム26に追加される。このため、ミラー領域20では、圧縮の多様性が問題とならない。現在の圧縮技術は、一般的なデータのサイズをたとえば半分にすることができ、それによって、ミラー領域20において圧縮を用いることにより、その領域のサイズをたとえば事実上2倍にする。これにより、圧縮されないミラー領域に対する容量を減じることなく、ミラー領域のサイズを2倍にするか、または、実際のミラー領域のサイズを半分に削減することができる。圧縮技術は、RAM書込キャッシュ32に対しても同様に行なうことができる。
さらにデータ保護を行なうために、この発明の別の形態においては、RAIDサブシステム16内のデータを遠隔地でシステム16a(図7B)に複製することができる。遠隔システム16aは、主RAIDサブシステム16がシャットダウンされる緊急時を除き、呼び出されなくてよい。しかしながら、遠隔システム16aは、この発明の場合、付加価値をさらに提供することができる。特に、主RAIDサブシステム16は、ミラー領域20内のログファイル26のデータを遠隔サブシステム16aに送り、この例の場合、遠隔サブシステム16aは、この発明に従ったハイブリッドRAIDサブシステムを含む。ログファイルのデータを圧縮すると、遠隔システム16aへの転送時間を短縮することができる。遠隔サブシステム16aの負荷が、主サブシステム16の負荷よりも小さいため(すなわち、遠隔サブシステム16aが書込にのみ応答すればよいのに対し、主サブシステム16は、読出および書込の両方の要求に応答しなければならない)、遠隔サブシステム16aは、主サブシステム16に対するパリティ情報源となり得る。したがって、遠隔サブシステム16a内において、データをミラー領域からサブシステム16aのストライプ上の、その最終アドレスに書込む処理の際に、関連するパリティデータが生成される。次に、遠隔サブシステム16aは、そのパリティデータ(好ましくは圧縮されている)を主サブシステム16に送ることができ、主サブシステム16は、それ自体によるパリティデータの生成を回避することができ、主サブシステム16内のミラー領域とストライプ領域との間における、所与のデータブロックに対する転送処理を加速することができる。
この発明は、単に装置の信頼性を提供するだけでなく、データの保全性を保護することによって、標準的なRAIDを超越する。無限のロールバックにより、バックアップ間の脆弱なウィンドウの期間に、保護が提供される。ハイブリッドのミラー/ストライプによるデータ編成は、結果的に改良された性能をもたらす。フラッシュバックモジュール34を加えることにより、ストライプに迫るコストで従来のRAIDミラーの性能を凌ぐ。この発明以外の場合には休止状態であるホットスペア上に複製を行なうことによって、性能をさらに高めることができ、ホットスペアをホスト不要の機器によって用いて、新規のベースラインのバックアップを生成することができる。
この発明は、エンタープライズ(Enterprise)システム、ネットワーク、SAN、NAS、媒体および小さなシステム等のさまざまなデータ処理システムで実現することができる(たとえば、パーソナルコンピュータにおいて書込ログが用いられ、バックグラウンドでユーザデータセットにデータが転送される)。したがって、この明細書の「ホスト」および「ホストシステム」という記述は、ハイブリッドRAIDサブシステムにデータを転送し、かつ、ハイブリッドRAIDサブシステムからデータを転送するために、ハイブリッドRAIDシステムと通信する任意の情報源を指す。
この発明を、その特定の好ましい形態を参照してかなり詳細に説明してきたが、他の形態も可能である。したがって、前掲の請求項の精神および範囲は、この明細書に含まれる好ましい形態の説明に限定されるべきではない。
16 耐故障性の記憶サブシステム、17 ディスクアレイ、18 ディスクドライブ、24 データセット、26 書込ログキャッシュ、27 書込ログキャッシュのミラーデータ。
Claims (55)
- 障害と無関係のデータ記憶装置の配列を有する耐故障性の記憶サブシステムにデータを格納するための方法であって、
前記データ記憶装置上のデータ記憶領域を、論理ミラー領域と論理ストライプ領域とに分割するステップと、
前記ミラー領域にデータを格納する際に、一対の記憶装置に前記データの複製コピーを保持することによってデータを複製するステップと、
前記ストライプ領域にデータを格納する際に、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとしてデータを格納するステップとを含む、方法。 - 前記ストライプ領域にデータセットを格納するステップと、
前記ミラー領域に、関連するログキャッシュを格納するステップとをさらに含む、請求項1に記載の方法。 - 前記データセットにデータを書込むようにとのホストからの要求に応答して、
前記ミラー領域のログキャッシュにホストデータを格納するステップと、
前記ホストに書込の終了を通知するステップとをさらに含む、請求項2に記載の方法。 - 前記ミラー領域の前記ログキャッシュから、前記ストライプ領域内のデータセットに、前記ホストデータを複写するステップをさらに含む、請求項3に記載の方法。
- 前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、
要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与えるステップと、
前記ログキャッシュに存在しない場合、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与えるステップとをさらに含む、請求項4に記載の方法。 - 前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、データブロックタイムスタンプとを含み、
前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
前記ホストの要求に応答して前記ログキャッシュに前記ホストデータを格納する前記ステップは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力するステップをさらに含む、請求項4に記載の方法。 - 前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する前記ステップは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写するステップをさらに含む、請求項6に記載の方法。
- アーカイブに前記ログキャッシュのエントリを保管するステップと、
前記キャッシュログから前記エントリを消去するステップとをさらに含む、請求項7に記載の方法。 - 選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、
前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得るステップと、
前記データセットのコピーに関連するキャッシュログを得るステップとをさらに含み、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、さらに、
選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に送信するステップを含む、請求項7に記載の方法。 - 前記記憶サブシステムは、キャッシュメモリをさらに含み、前記方法は、
前記データセットにデータを書込むようにとのホストからの要求に応答して、
前記キャッシュメモリにホストデータを格納するステップと、
前記ホストに書込の完了を通知するステップと、
前記キャッシュメモリから、前記ミラー領域の前記ログキャッシュに前記ホストデータを複写するステップとをさらに含む、請求項2に記載の方法。 - 前記ミラー領域内の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写するステップをさらに含む、請求項10に記載の方法。
- 前記データセットからデータを読出すようにとのホストからの要求に応答して、
要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、前記要求されたデータを与えるステップと、
前記キャッシュメモリに存在しない場合、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与えるステップと、
前記ログキャッシュに存在しない場合、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与えるステップとをさらに含む、請求項11に記載の方法。 - 不揮発性メモリおよびバッテリを含むメモリバックアップモジュールを設けるステップをさらに含み、前記記憶サブシステムは、電源から通常は給電され、さらに、
前記電源から電源障害を検出すると、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電するステップと、
前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写するステップと、
前記電源から電力が復旧したことを検出すると、前記不揮発性メモリから前記キャッシュメモリに前記データの内容を再び複写するステップとをさらに含む、請求項10に記載の方法。 - 前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項13に記載の方法。
- 前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む、請求項13に記載の方法。
- 前記データ記憶装置の1つは、他のデータ記憶装置の1つが故障した場合に用いるため
のスペアとして確保され、前記方法は、スペアのデータ記憶装置が使用されていない間は、
前記ミラー領域に格納された前記ログキャッシュのデータを、そのデータの複数のコピーが前記スペアの記憶装置に格納されるように前記スペアの記憶装置に複製するステップと、
前記データセットからデータを読出すようにとのホストからの要求を受取ると、要求されたデータが前記スペアの記憶装置内に存在するかどうかを判断して、前記スペアの記憶装置内に存在する場合、前記要求されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択し、前記要求されたデータの前記選択されたコピーを前記ホストに与えるステップをさらに含む、請求項2に記載の方法。 - 前記ミラー領域に格納された前記データを圧縮するステップをさらに含む、請求項2に記載の方法。
- 前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含む、請求項2に記載の方法。
- 耐故障性の、遠隔のデータ記憶システムに、前記ログキャッシュのデータを送信するステップをさらに含み、
前記遠隔のデータ記憶システムは、受取られたログキャッシュのデータに対するエラー訂正ブロックに関連するパリティを決定して、前記記憶サブシステムに前記エラー訂正ブロックを送信し、
前記記憶サブシステムの前記ストライプ領域にデータを格納する前記ステップは、データブロックと、前記遠隔の記憶システムから受取られた、関連するエラー訂正ブロックとを含むブロックのストライプとしてデータを格納するステップを含む、請求項1に記載の方法。 - 前記データ記憶装置は、データディスクドライブを含む、請求項1に記載の方法。
- 障害と無関係のデータ記憶装置の配列と、
前記データ記憶装置上のデータ記憶領域を、論理ミラー領域と論理ストライプ領域とに論理的に分割するコントローラとを含み、前記コントローラは、データを複製して一対の記憶装置に前記データの複製コピーを保持することによって、前記ミラー領域にデータを格納し、前記コントローラは、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして前記ストライプ領域にデータを格納する、耐故障性の記憶サブシステム。 - 前記コントローラはさらに、前記ストライプ領域のデータセットと、前記ミラー領域の、関連するログキャッシュとを維持する、請求項21に記載の記憶サブシステム。
- 前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラはさらに、
前記ミラー領域の前記ログキャッシュにホストデータを格納して、
前記ホストに書込の完了を通知する、請求項22に記載の記憶サブシステム。 - 前記コントローラは、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する、請求項23に記載の記憶サブシステム。
- 前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項24に記載の記憶サブシステム。 - 前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含み、
前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
前記コントローラは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力する、請求項24に記載の記憶サブシステム。 - 前記コントローラは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写することによって、前記ミラー領域内の前記ログキャッシュから、前記ストライプ領域内の前記データセットに前記ホストデータを複写する、請求項26に記載の記憶サブシステム。
- 選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、前記コントローラはさらに、
前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得て、
前記データセットのコピーに関連するキャッシュログを得て、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、前記コントローラはさらに、
選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に転送する、請求項27に記載の記憶サブシステム。 - 前記記憶装置は、データディスクドライブを含む、請求項21に記載の記憶サブシステム。
- キャッシュメモリをさらに含み、
前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラは、前記キャッシュメモリにホストデータを格納して、前記ホストに書込の完了を通知し、
前記コントローラはさらに、前記キャッシュメモリから、前記ミラー領域内の前記ログキャッシュに前記ホストデータを複写する、請求項22に記載の記憶サブシステム。 - 前記コントローラはさらに、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに、前記ホストデータを複写する、請求項30に記載の記憶サブシステム。
- 前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、要求されたデータを与え、
前記キャッシュメモリに存在しない場合、前記コントローラは、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項31に記載の記憶サブシステム。 - 不揮発性メモリおよびバッテリを含むメモリバックアップモジュールをさらに含み、前記記憶サブシステムは、電源から通常は給電され、
前記電源から電源障害を検出すると、前記コントローラは、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電して、前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写し、前記電源から電力が復旧したことを検出すると、前記コントローラは、前記不揮発性メモリから前記キャッシュメモリに前記データの内容を再び複写する、請求項30に記載の記憶サブシステム。 - 前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項33に記載の記憶サブシステム。
- 前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む、請求項33に記載の記憶サブシステム。
- 前記コントローラはさらに、他の記憶装置の1つが故障した場合に用いるためのスペアとして、前記記憶装置の1つを確保し、スペアの記憶装置が用いられていない間、前記コントローラはさらに、
前記スペアの記憶装置に、前記ミラー領域に格納された前記ログキャッシュのデータを複製して、そのデータの複数のコピーが前記スペアの記憶装置に格納されるようにし、
前記データセットからデータを読出すようにとのホストからの要求を受取ると、前記コントローラは、要求されたデータが前記スペアの記憶装置に存在するかどうかを判断して、前記スペアの記憶装置に存在する場合、前記コントローラは、選択されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択し、前記要求されたデータの選択されたコピーを前記ホストに与えるようにする、請求項22に記載の記憶サブシステム。 - 前記コントローラはさらに、前記ミラー領域に格納された前記データを圧縮する、請求項22に記載の記憶サブシステム。
- 前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含む、請求項22に記載の記憶サブシステム。
- 障害と無関係のデータ記憶装置の配列を有する、耐故障性の記憶サブシステムのための
データ編成管理プログラムであって、
前記データ記憶装置上のデータ記憶領域を、論理ミラー領域および論理ストライプ領域からなるハイブリッドに論理的に分割するコントローラを含み、前記コントローラは、前記データを複製して一対の記憶装置に前記データの複製コピーを保持することによって、前記ミラー領域にデータを格納し、前記コントローラは、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして、前記ストライプ領域にデータを格納する、データ編成管理プログラム。 - 前記コントローラはさらに、前記ストライプ領域のデータセットと、前記ミラー領域の、関連するログキャッシュとを維持する、請求項39に記載のデータ編成管理プログラム。
- 前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラはさらに、
前記ミラー領域の前記ログキャッシュにホストデータを格納して、
前記ホストに書込の完了を通知する、請求項40に記載のデータ編成管理プログラム。 - 前記コントローラは、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域内の前記データセットに前記ホストデータを複写する、請求項41に記載のデータ編成管理プログラム。
- 前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項42に記載のデータ編成管理プログラム。 - 前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含み、
前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
前記コントローラは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力する、請求項42に記載のデータ編成管理プログラム。 - 前記コントローラは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写することによって、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する、請求項44に記載のデータ編成管理プログラム。
- 選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、前記コントローラはさらに、
前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得て、
前記データセットのコピーに関連するキャッシュログを得て、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、前記コントローラはさらに、
選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に転送する、請求項45に記載のデータ編成管理プログラム。 - 前記記憶装置は、データディスクドライブを含む、請求項39に記載のデータ編成管理プログラム。
- キャッシュメモリをさらに含み、
前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラは、前記キャッシュメモリにホストデータを格納して、前記ホストに書込の完了を通知し、
前記コントローラはさらに、前記キャッシュメモリから、前記ミラー領域の前記ログキャッシュに前記ホストデータを複写する、請求項40に記載のデータ編成管理プログラム。 - 前記コントローラはさらに、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに、前記ホストデータを複写する、請求項48に記載のデータ編成管理プログラム。
- 前記データセットからデータを読出すようにとのホストからの要求に応答して、前記コントローラはさらに、
要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、要求されたデータを与え、
前記キャッシュメモリに存在しない場合、前記コントローラは、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項49に記載のデータ編成管理プログラム。 - 不揮発性メモリおよびバッテリを含むメモリバックアップモジュールをさらに含み、前記記憶サブシステムは、電源から通常は給電され、
前記電源から電源障害を検出すると、前記コントローラは、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電して、前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写し、前記電源から電力が復旧したことを検出すると、前記コントローラは、前記不揮発性メモリから前記キャッシュメモリに、前記データの内容を再び複写する、請求項48に記載のデータ編成管理プログラム。 - 前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項51に記載のデータ編成管理プログラム。
- 前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む
、請求項51に記載のデータ編成管理プログラム。 - 前記コントローラはさらに、他の記憶装置の1つが故障した場合に用いるためのスペアとして、前記記憶装置の1つを確保し、スペアの記憶装置が用いられていない間、前記コントローラはさらに、
前記スペアの記憶装置に、前記ミラー領域に記憶された前記ログキャッシュのデータを複製して、そのデータの複数のコピーが前記スペアの記憶装置に格納されるようにし、
前記データセットからデータを読出すようにとのホストからの要求を受取ると、前記コントローラは、要求されたデータが前記スペアの記憶装置に存在するかどうかを判断し、前記スペアの記憶装置に存在する場合、前記コントローラは、選択されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択して、前記要求されたデータの選択されたコピーを前記ホストに与えるようにする、請求項40に記載のデータ編成管理プログラム。 - 前記コントローラはさらに、前記ミラー領域および前記キャッシュに格納されたデータを圧縮する、請求項40に記載のデータ編成管理プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/247,859 US7076606B2 (en) | 2002-09-20 | 2002-09-20 | Accelerated RAID with rewind capability |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004118837A true JP2004118837A (ja) | 2004-04-15 |
Family
ID=31946445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003324785A Pending JP2004118837A (ja) | 2002-09-20 | 2003-09-17 | 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム |
Country Status (3)
Country | Link |
---|---|
US (2) | US7076606B2 (ja) |
EP (1) | EP1400899A3 (ja) |
JP (1) | JP2004118837A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268420A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | ディスクアレイ装置、ストレージシステムおよび制御方法 |
JP2007264894A (ja) * | 2006-03-28 | 2007-10-11 | Kyocera Mita Corp | データ記憶システム |
JP2008217811A (ja) * | 2008-04-03 | 2008-09-18 | Hitachi Ltd | 不揮発メモリを使用したディスク制御装置 |
JP2010511224A (ja) * | 2006-11-27 | 2010-04-08 | エルエスアイ コーポレーション | 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム |
US8479045B2 (en) | 2008-08-06 | 2013-07-02 | Fujitsu Limited | Controller for disk array device, data transfer device, and method of power recovery process |
US8856427B2 (en) | 2011-06-08 | 2014-10-07 | Panasonic Corporation | Memory controller and non-volatile storage device |
JP2015158768A (ja) * | 2014-02-24 | 2015-09-03 | 富士通株式会社 | ストレージ装置、及びストレージ装置の制御方法 |
WO2019138999A1 (ja) * | 2018-01-10 | 2019-07-18 | Necプラットフォームズ株式会社 | ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラムを格納した非一時的な記憶媒体 |
Families Citing this family (238)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418620B1 (en) * | 2001-02-16 | 2008-08-26 | Swsoft Holdings, Ltd. | Fault tolerant distributed storage method and controller using (N,K) algorithms |
JP4186602B2 (ja) | 2002-12-04 | 2008-11-26 | 株式会社日立製作所 | ジャーナルログを利用した更新データ書込方法 |
JP2004213435A (ja) * | 2003-01-07 | 2004-07-29 | Hitachi Ltd | 記憶装置システム |
US6965979B2 (en) * | 2003-01-29 | 2005-11-15 | Pillar Data Systems, Inc. | Methods and systems of host caching |
JP4165747B2 (ja) * | 2003-03-20 | 2008-10-15 | 株式会社日立製作所 | 記憶システム、制御装置及び制御装置のプログラム |
US7668876B1 (en) * | 2003-04-25 | 2010-02-23 | Symantec Operating Corporation | Snapshot-based replication infrastructure for efficient logging with minimal performance effect |
US20040254962A1 (en) * | 2003-06-12 | 2004-12-16 | Shoji Kodama | Data replication for enterprise applications |
US7613945B2 (en) | 2003-08-14 | 2009-11-03 | Compellent Technologies | Virtual disk drive system and method |
US9489150B2 (en) | 2003-08-14 | 2016-11-08 | Dell International L.L.C. | System and method for transferring data between different raid data storage types for current data and replay data |
US7149858B1 (en) * | 2003-10-31 | 2006-12-12 | Veritas Operating Corporation | Synchronous replication for system and data security |
JP2005166016A (ja) * | 2003-11-11 | 2005-06-23 | Nec Corp | ディスクアレイ装置 |
US7234074B2 (en) * | 2003-12-17 | 2007-06-19 | International Business Machines Corporation | Multiple disk data storage system for reducing power consumption |
JP4634049B2 (ja) * | 2004-02-04 | 2011-02-16 | 株式会社日立製作所 | ディスクアレイ装置における異常通知制御 |
JP4112520B2 (ja) * | 2004-03-25 | 2008-07-02 | 株式会社東芝 | 訂正符号生成装置、訂正符号生成方法、誤り訂正装置、および誤り訂正方法 |
US20050235336A1 (en) * | 2004-04-15 | 2005-10-20 | Kenneth Ma | Data storage system and method that supports personal video recorder functionality |
JP4519563B2 (ja) | 2004-08-04 | 2010-08-04 | 株式会社日立製作所 | 記憶システム及びデータ処理システム |
US7519629B2 (en) * | 2004-09-30 | 2009-04-14 | International Business Machines Corporation | System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree |
JP4428202B2 (ja) * | 2004-11-02 | 2010-03-10 | 日本電気株式会社 | ディスクアレイ・サブシステム、ディスクアレイ・サブシステムにおける分散配置方法、制御方法、プログラム |
US7702864B2 (en) * | 2004-11-18 | 2010-04-20 | International Business Machines Corporation | Apparatus, system, and method for writing stripes in parallel to unique persistent storage devices |
US7644046B1 (en) * | 2005-06-23 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Method of estimating storage system cost |
US7529968B2 (en) * | 2005-11-07 | 2009-05-05 | Lsi Logic Corporation | Storing RAID configuration data within a BIOS image |
US7761426B2 (en) | 2005-12-07 | 2010-07-20 | International Business Machines Corporation | Apparatus, system, and method for continuously protecting data |
US7617361B2 (en) * | 2006-03-29 | 2009-11-10 | International Business Machines Corporation | Configureable redundant array of independent disks |
WO2007140260A2 (en) | 2006-05-24 | 2007-12-06 | Compellent Technologies | System and method for raid management, reallocation, and restriping |
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
US20080168224A1 (en) * | 2007-01-09 | 2008-07-10 | Ibm Corporation | Data protection via software configuration of multiple disk drives |
US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
US20080276124A1 (en) * | 2007-05-04 | 2008-11-06 | Hetzler Steven R | Incomplete write protection for disk array |
US8032702B2 (en) * | 2007-05-24 | 2011-10-04 | International Business Machines Corporation | Disk storage management of a tape library with data backup and recovery |
US20090204758A1 (en) * | 2008-02-13 | 2009-08-13 | Dell Products, Lp | Systems and methods for asymmetric raid devices |
US7853751B2 (en) * | 2008-03-12 | 2010-12-14 | Lsi Corporation | Stripe caching and data read ahead |
JP2009252114A (ja) * | 2008-04-09 | 2009-10-29 | Hitachi Ltd | ストレージシステム及びデータ退避方法 |
US20090282194A1 (en) * | 2008-05-07 | 2009-11-12 | Masashi Nagashima | Removable storage accelerator device |
EP2297742B1 (en) | 2008-05-16 | 2013-07-24 | Fusion-io, Inc. | Apparatus, system, and method for detecting and replacing failed data storage |
JP4960531B2 (ja) * | 2008-05-22 | 2012-06-27 | エルエスアイ コーポレーション | スリープモードを備えたバッテリバックアップシステム |
CN101286086B (zh) * | 2008-06-10 | 2010-08-11 | 杭州华三通信技术有限公司 | 硬盘掉电保护方法、装置以及硬盘和硬盘掉电保护系统 |
US8615678B1 (en) * | 2008-06-30 | 2013-12-24 | Emc Corporation | Auto-adapting multi-tier cache |
CN101325610B (zh) * | 2008-07-30 | 2011-12-28 | 杭州华三通信技术有限公司 | 虚拟磁带库备份系统以及磁盘电源控制方法 |
KR101636777B1 (ko) * | 2008-08-08 | 2016-07-21 | 시게이트 테크놀로지 엘엘씨 | 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법 |
JP5426684B2 (ja) * | 2008-10-30 | 2014-02-26 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 独立ディスク冗長アレイ(raid)の書き込みキャッシュサブアセンブリ |
JP5654480B2 (ja) * | 2008-12-19 | 2015-01-14 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | 均一な読み出し待ち時間のための冗長なデータ記憶 |
JP4439578B1 (ja) * | 2008-12-24 | 2010-03-24 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法 |
US20100287407A1 (en) * | 2009-05-05 | 2010-11-11 | Siemens Medical Solutions Usa, Inc. | Computer Storage Synchronization and Backup System |
US8281227B2 (en) | 2009-05-18 | 2012-10-02 | Fusion-10, Inc. | Apparatus, system, and method to increase data integrity in a redundant storage system |
US8307258B2 (en) | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US8732396B2 (en) * | 2009-06-08 | 2014-05-20 | Lsi Corporation | Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system |
US8930622B2 (en) | 2009-08-11 | 2015-01-06 | International Business Machines Corporation | Multi-level data protection for flash memory system |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
US7856528B1 (en) | 2009-08-11 | 2010-12-21 | Texas Memory Systems, Inc. | Method and apparatus for protecting data using variable size page stripes in a FLASH-based storage system |
WO2011073940A1 (en) * | 2009-12-17 | 2011-06-23 | International Business Machines Corporation | Data management in solid state storage systems |
US9785561B2 (en) * | 2010-02-17 | 2017-10-10 | International Business Machines Corporation | Integrating a flash cache into large storage systems |
US8850113B2 (en) * | 2010-02-27 | 2014-09-30 | Cleversafe, Inc. | Data migration between a raid memory and a dispersed storage network memory |
US8181062B2 (en) * | 2010-03-26 | 2012-05-15 | Lsi Corporation | Method to establish high level of redundancy, fault tolerance and performance in a raid system without using parity and mirroring |
US8112663B2 (en) * | 2010-03-26 | 2012-02-07 | Lsi Corporation | Method to establish redundancy and fault tolerance better than RAID level 6 without using parity |
US20110296105A1 (en) * | 2010-06-01 | 2011-12-01 | Hsieh-Huan Yen | System and method for realizing raid-1 on a portable storage medium |
US8554741B1 (en) * | 2010-06-16 | 2013-10-08 | Western Digital Technologies, Inc. | Timeline application for log structured storage devices |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8738962B2 (en) | 2010-11-17 | 2014-05-27 | International Business Machines Corporation | Memory mirroring with memory compression |
TWI417727B (zh) * | 2010-11-22 | 2013-12-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法 |
US8543760B2 (en) * | 2010-12-13 | 2013-09-24 | International Business Machines Corporation | Saving log data using a disk system as primary cache and a tape library as secondary cache |
US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
JP5505329B2 (ja) * | 2011-02-22 | 2014-05-28 | 日本電気株式会社 | ディスクアレイ装置及びその制御方法 |
CN102682012A (zh) | 2011-03-14 | 2012-09-19 | 成都市华为赛门铁克科技有限公司 | 一种文件系统内读写数据的方法及装置 |
US9396067B1 (en) | 2011-04-18 | 2016-07-19 | American Megatrends, Inc. | I/O accelerator for striped disk arrays using parity |
US9300590B2 (en) | 2011-06-24 | 2016-03-29 | Dell Products, Lp | System and method for dynamic rate control in Ethernet fabrics |
US9798615B2 (en) | 2011-07-05 | 2017-10-24 | Dell Products, Lp | System and method for providing a RAID plus copy model for a storage network |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8799557B1 (en) * | 2011-10-13 | 2014-08-05 | Netapp, Inc. | System and method for non-volatile random access memory emulation |
US9158578B1 (en) | 2011-12-30 | 2015-10-13 | Emc Corporation | System and method for migrating virtual machines |
US9009416B1 (en) | 2011-12-30 | 2015-04-14 | Emc Corporation | System and method for managing cache system content directories |
US9053033B1 (en) | 2011-12-30 | 2015-06-09 | Emc Corporation | System and method for cache content sharing |
US9104529B1 (en) | 2011-12-30 | 2015-08-11 | Emc Corporation | System and method for copying a cache system |
US8627012B1 (en) * | 2011-12-30 | 2014-01-07 | Emc Corporation | System and method for improving cache performance |
US9235524B1 (en) | 2011-12-30 | 2016-01-12 | Emc Corporation | System and method for improving cache performance |
US8930947B1 (en) | 2011-12-30 | 2015-01-06 | Emc Corporation | System and method for live migration of a virtual machine with dedicated cache |
US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
US10073656B2 (en) | 2012-01-27 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for storage virtualization |
US8856619B1 (en) * | 2012-03-09 | 2014-10-07 | Google Inc. | Storing data across groups of storage nodes |
GB2503274A (en) * | 2012-06-22 | 2013-12-25 | Ibm | Restoring redundancy in a RAID |
US9059868B2 (en) | 2012-06-28 | 2015-06-16 | Dell Products, Lp | System and method for associating VLANs with virtual switch ports |
US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US20150378858A1 (en) * | 2013-02-28 | 2015-12-31 | Hitachi, Ltd. | Storage system and memory device fault recovery method |
JP6248435B2 (ja) * | 2013-07-04 | 2017-12-20 | 富士通株式会社 | ストレージ装置、およびストレージ装置の制御方法 |
US10019352B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
JP6264666B2 (ja) * | 2013-10-18 | 2018-01-24 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | データ格納方法、データストレージ装置、及びストレージデバイス |
CN105068760B (zh) * | 2013-10-18 | 2018-09-28 | 华为技术有限公司 | 数据存储方法、数据存储装置和存储设备 |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9612952B2 (en) * | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US9946894B2 (en) * | 2014-06-27 | 2018-04-17 | Panasonic Intellectual Property Management Co., Ltd. | Data processing method and data processing device |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | 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 |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory 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 |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues 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 |
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 |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping 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 |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9563524B2 (en) | 2014-12-11 | 2017-02-07 | International Business Machines Corporation | Multi level data recovery in storage disk arrays |
US9747177B2 (en) | 2014-12-30 | 2017-08-29 | International Business Machines Corporation | Data storage system employing a hot spare to store and service accesses to data having lower associated wear |
US20160202924A1 (en) * | 2015-01-13 | 2016-07-14 | Telefonaktiebolaget L M Ericsson (Publ) | Diagonal organization of memory blocks in a circular organization of memories |
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 |
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 |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
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 |
US9727244B2 (en) | 2015-10-05 | 2017-08-08 | International Business Machines Corporation | Expanding effective storage capacity of a data storage system while providing support for address mapping recovery |
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 |
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 |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
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 |
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 |
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 |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
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 |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D 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 |
US11003542B1 (en) * | 2017-04-28 | 2021-05-11 | EMC IP Holding Company LLC | Online consistent system checkpoint |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
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 |
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 |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
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 |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
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 |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
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 |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
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 |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11120046B2 (en) | 2018-05-04 | 2021-09-14 | Microsoft Technology Licensing Llc | Data replication in a distributed storage system |
US10817197B2 (en) | 2018-05-04 | 2020-10-27 | Microsoft Technology Licensing, Llc | Data partitioning in a distributed storage system |
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 |
US10929229B2 (en) * | 2018-06-21 | 2021-02-23 | International Business Machines Corporation | Decentralized RAID scheme having distributed parity computation and recovery |
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 |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
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 |
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 |
US11237960B2 (en) * | 2019-05-21 | 2022-02-01 | Arm Limited | Method and apparatus for asynchronous memory write-back in a data processing 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 |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
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 |
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 |
US11941287B2 (en) * | 2020-06-17 | 2024-03-26 | EMC IP Holding Company, LLC | System and method for near-instant unmapping and write-same in a log-structured storage cluster |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11693596B2 (en) | 2020-08-13 | 2023-07-04 | Seagate Technology Llc | Pre-emptive storage strategies to reduce host command collisions |
CN112015340B (zh) * | 2020-08-25 | 2024-05-03 | 实时侠智能控制技术有限公司 | 一种非易失性数据存储结构和存储方法 |
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 |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module 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 |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5297258A (en) * | 1991-11-21 | 1994-03-22 | Ast Research, Inc. | Data logging for hard disk data storage systems |
US5504883A (en) * | 1993-02-01 | 1996-04-02 | Lsc, Inc. | Method and apparatus for insuring recovery of file control information for secondary storage systems |
US5392244A (en) * | 1993-08-19 | 1995-02-21 | Hewlett-Packard Company | Memory systems with data storage redundancy management |
US5835953A (en) * | 1994-10-13 | 1998-11-10 | Vinca Corporation | Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating |
US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
US6098128A (en) * | 1995-09-18 | 2000-08-01 | Cyberstorage Systems Corporation | Universal storage management system |
US6148368A (en) * | 1997-07-31 | 2000-11-14 | Lsi Logic Corporation | Method for accelerating disk array write operations using segmented cache memory and data logging |
US5960451A (en) * | 1997-09-16 | 1999-09-28 | Hewlett-Packard Company | System and method for reporting available capacity in a data storage system with variable consumption characteristics |
GB2345366B (en) * | 1997-10-08 | 2003-02-19 | Seagate Technology | Hybrid data storage and reconstruction system and method for a data storage device |
US6247149B1 (en) * | 1997-10-28 | 2001-06-12 | Novell, Inc. | Distributed diagnostic logging system |
US6567889B1 (en) * | 1997-12-19 | 2003-05-20 | Lsi Logic Corporation | Apparatus and method to provide virtual solid state disk in cache memory in a storage controller |
US6170063B1 (en) * | 1998-03-07 | 2001-01-02 | Hewlett-Packard Company | Method for performing atomic, concurrent read and write operations on multiple storage devices |
US6223252B1 (en) * | 1998-05-04 | 2001-04-24 | International Business Machines Corporation | Hot spare light weight mirror for raid system |
US6674447B1 (en) * | 1999-12-06 | 2004-01-06 | Oridus, Inc. | Method and apparatus for automatically recording snapshots of a computer screen during a computer session for later playback |
US20020156971A1 (en) * | 2001-04-19 | 2002-10-24 | International Business Machines Corporation | Method, apparatus, and program for providing hybrid disk mirroring and striping |
US6718434B2 (en) * | 2001-05-31 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Method and apparatus for assigning raid levels |
US7844577B2 (en) * | 2002-07-15 | 2010-11-30 | Symantec Corporation | System and method for maintaining a backup storage system for a computer system |
-
2002
- 2002-09-20 US US10/247,859 patent/US7076606B2/en not_active Expired - Fee Related
-
2003
- 2003-08-20 EP EP03255140A patent/EP1400899A3/en not_active Withdrawn
- 2003-09-17 JP JP2003324785A patent/JP2004118837A/ja active Pending
-
2006
- 2006-05-13 US US11/433,152 patent/US20060206665A1/en not_active Abandoned
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268420A (ja) * | 2005-03-24 | 2006-10-05 | Nec Corp | ディスクアレイ装置、ストレージシステムおよび制御方法 |
JP2007264894A (ja) * | 2006-03-28 | 2007-10-11 | Kyocera Mita Corp | データ記憶システム |
JP2010511224A (ja) * | 2006-11-27 | 2010-04-08 | エルエスアイ コーポレーション | 記憶装置コントローラキャッシュオフロード回路の性能および信頼性を最適化するためのシステム |
JP2008217811A (ja) * | 2008-04-03 | 2008-09-18 | Hitachi Ltd | 不揮発メモリを使用したディスク制御装置 |
US8479045B2 (en) | 2008-08-06 | 2013-07-02 | Fujitsu Limited | Controller for disk array device, data transfer device, and method of power recovery process |
JP5353887B2 (ja) * | 2008-08-06 | 2013-11-27 | 富士通株式会社 | ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法 |
US8856427B2 (en) | 2011-06-08 | 2014-10-07 | Panasonic Corporation | Memory controller and non-volatile storage device |
JP2015158768A (ja) * | 2014-02-24 | 2015-09-03 | 富士通株式会社 | ストレージ装置、及びストレージ装置の制御方法 |
WO2019138999A1 (ja) * | 2018-01-10 | 2019-07-18 | Necプラットフォームズ株式会社 | ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラムを格納した非一時的な記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
US7076606B2 (en) | 2006-07-11 |
EP1400899A2 (en) | 2004-03-24 |
US20040059869A1 (en) | 2004-03-25 |
EP1400899A3 (en) | 2011-04-06 |
US20060206665A1 (en) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7076606B2 (en) | Accelerated RAID with rewind capability | |
US9448886B2 (en) | Flexible data storage system | |
US10346253B2 (en) | Threshold based incremental flashcopy backup of a raid protected array | |
US7055058B2 (en) | Self-healing log-structured RAID | |
US7975168B2 (en) | Storage system executing parallel correction write | |
US7047358B2 (en) | High-performance log-structured RAID | |
US8904129B2 (en) | Method and apparatus for backup and restore in a dynamic chunk allocation storage system | |
US6766491B2 (en) | Parity mirroring between controllers in an active-active controller pair | |
US7490103B2 (en) | Method and system for backing up data | |
US6529995B1 (en) | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system | |
US8464094B2 (en) | Disk array system and control method thereof | |
US9600375B2 (en) | Synchronized flashcopy backup restore of a RAID protected array | |
US7721143B2 (en) | Method for reducing rebuild time on a RAID device | |
US20030120869A1 (en) | Write-back disk cache management | |
US20020161970A1 (en) | Utilizing parity caching and parity logging while closing the RAID 5 write hole | |
US20050171979A1 (en) | Method and system for maintaining data in a continuous data protection system | |
US20050108302A1 (en) | Recovery of data on a primary data volume | |
CN112596673B (zh) | 具有双重raid数据保护的多活多控存储系统 | |
US20100037023A1 (en) | System and method for transferring data between different raid data storage types for current data and replay data | |
US20050273650A1 (en) | Systems and methods for backing up computer data to disk medium | |
JP2010026812A (ja) | 磁気ディスク装置 | |
US11592994B2 (en) | Providing preferential treatment to metadata over user data | |
Chandy | RAID0. 5: design and implementation of a low cost disk array data protection method | |
JP2004086756A (ja) | ディスクアレイ装置およびこの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091222 |