JP2004118837A - 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム - Google Patents

耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム Download PDF

Info

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
Application number
JP2003324785A
Other languages
English (en)
Inventor
Tim Orsley
ティム・オースリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantum Corp
Original Assignee
Quantum Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quantum Corp filed Critical Quantum Corp
Publication of JP2004118837A publication Critical patent/JP2004118837A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving 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

Description

 発明の分野
 この発明は、データ記憶装置におけるデータ保護に関し、特に、ディスクアレイにおけるデータ保護に関する。
 発明の背景
 コンピュータシステム等に情報を格納するために、さまざまな種類の記憶装置が用いられる。従来のコンピュータシステムは、オペレーティングシステムファイルシステムによって管理される情報を格納するために、ディスクドライブ等の記憶装置を含む。記憶領域のコストが下がるにつれて、個々のディスクドライブに格納されるデータの量が増大している。しかしながら、ディスクドライブの故障の際に、重要なデータが失われるおそれがある。この問題を緩和するために、耐故障性の記憶装置の中には、冗長ディスクドライブ(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つのディスクドライブが故障した場合も、データは失われない。
 図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ストライプへの書込に関連する、上述の書込待ち時間という性能の不利益を、ホストから隠すことができる。
 この発明によると、性能をさらに高めるために、ログキャッシュの前にメモリキャッシュ(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の例において、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において、他の数のディスクドライブおよび異なる記憶容量を用いることもできる。
 図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内の最終アドレスに、(好ましくはバックグラウンドタスクとして)転送される。
 書込ログ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は、書込ログデータをフラッシュすることによって、ストライプ領域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がない場合、書込データは、その宛先アドレスにおいてディスク上に格納されるまで、安全とはならないであろう。
 モジュール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の回転待ち時間は、効果的に半分になる(すなわち、読出待ち時間が一層短くなる)。
 したがって、ハイブリッド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の別の実施例は、データブロックサービスを提供し、任意のブロック装置(たとえば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)。
 この発明は、費用対効果のため、ハイブリッド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システムと通信する任意の情報源を指す。
 この発明を、その特定の好ましい形態を参照してかなり詳細に説明してきたが、他の形態も可能である。したがって、前掲の請求項の精神および範囲は、この明細書に含まれる好ましい形態の説明に限定されるべきではない。
RAIDミラーとして構成された例示的なディスクアレイのブロック図である。 RAIDストライプとして構成された例示的なディスクアレイのブロック図である。 この発明の一実施例に従った、ディスクアレイにおける例示的なハイブリッドRAIDデータ編成のブロック図である。 この発明に従ったデータ記憶のステップの、一実施例の例示的なフロー図である。 図3AのハイブリッドRAIDデータ編成に従ったハイブリッドRAIDのストライプおよびミラーとして論理的に構成された、例示的なRAIDサブシステムのブロック図である。 例示的なデータセットと、バックアップ後のデータセットへの更新のログとを示す図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。 この発明に従ったフラッシュバックモジュールをさらに含む図3Aおよび図3Bのディスクアレイの、別のブロック図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。 この発明に従った一時的なRAIDミラーとして用いられるホットスペアを含むディスクアレイにおける、別の例示的なハイブリッドRAIDのデータ編成のブロック図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。 一時的なRAIDミラーとして用いられるホットスペアをさらに含む図6AのハイブリッドRAIDデータ編成として論理的に構成された、例示的なRAIDサブシステムのブロック図である。 この発明に従った、ストライプおよびミラー構成を用いたハイブリッドRAIDデータ編成を含み、さらに、冗長ミラーとしてのホットスペアとフラッシュバックモジュールとを含む、別のディスクアレイのブロック図である。 この発明に従った、ストライプおよびミラー構成を用いたハイブリッドRAIDデータ編成を含み、さらに、冗長ミラーとしてのホットスペアとフラッシュバックモジュールとを含む、別のディスクアレイのブロック図である。 この発明に従った、ストレージエリアネットワーク(SAN)内でハイブリッドRAIDサブシステムを用いた例の図である。 この発明に従った、ネットワーク接続ストレージ(NAS)としてハイブリッドRAIDを用いた例の図である。 この発明に従ったデータ記憶のステップの、別の実施例の例示的なフロー図である。
符号の説明
 16 耐故障性の記憶サブシステム、17 ディスクアレイ、18 ディスクドライブ、24 データセット、26 書込ログキャッシュ、27 書込ログキャッシュのミラーデータ。

Claims (55)

  1.  障害と無関係のデータ記憶装置の配列を有する耐故障性の記憶サブシステムにデータを格納するための方法であって、
     前記データ記憶装置上のデータ記憶領域を、論理ミラー領域と論理ストライプ領域とに分割するステップと、
     前記ミラー領域にデータを格納する際に、一対の記憶装置に前記データの複製コピーを保持することによってデータを複製するステップと、
     前記ストライプ領域にデータを格納する際に、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとしてデータを格納するステップとを含む、方法。
  2.  前記ストライプ領域にデータセットを格納するステップと、
     前記ミラー領域に、関連するログキャッシュを格納するステップとをさらに含む、請求項1に記載の方法。
  3.  前記データセットにデータを書込むようにとのホストからの要求に応答して、
     前記ミラー領域のログキャッシュにホストデータを格納するステップと、
     前記ホストに書込の終了を通知するステップとをさらに含む、請求項2に記載の方法。
  4.  前記ミラー領域の前記ログキャッシュから、前記ストライプ領域内のデータセットに、前記ホストデータを複写するステップをさらに含む、請求項3に記載の方法。
  5.  前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、
     要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与えるステップと、
     前記ログキャッシュに存在しない場合、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与えるステップとをさらに含む、請求項4に記載の方法。
  6.  前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、データブロックタイムスタンプとを含み、
     前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
     前記ホストの要求に応答して前記ログキャッシュに前記ホストデータを格納する前記ステップは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力するステップをさらに含む、請求項4に記載の方法。
  7.  前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する前記ステップは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写するステップをさらに含む、請求項6に記載の方法。
  8.  アーカイブに前記ログキャッシュのエントリを保管するステップと、
     前記キャッシュログから前記エントリを消去するステップとをさらに含む、請求項7に記載の方法。
  9.  選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、
     前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得るステップと、
     前記データセットのコピーに関連するキャッシュログを得るステップとをさらに含み、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、さらに、
     選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に送信するステップを含む、請求項7に記載の方法。
  10.  前記記憶サブシステムは、キャッシュメモリをさらに含み、前記方法は、
     前記データセットにデータを書込むようにとのホストからの要求に応答して、
      前記キャッシュメモリにホストデータを格納するステップと、
      前記ホストに書込の完了を通知するステップと、
     前記キャッシュメモリから、前記ミラー領域の前記ログキャッシュに前記ホストデータを複写するステップとをさらに含む、請求項2に記載の方法。
  11.  前記ミラー領域内の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写するステップをさらに含む、請求項10に記載の方法。
  12.  前記データセットからデータを読出すようにとのホストからの要求に応答して、
     要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、前記要求されたデータを与えるステップと、
     前記キャッシュメモリに存在しない場合、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与えるステップと、
     前記ログキャッシュに存在しない場合、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与えるステップとをさらに含む、請求項11に記載の方法。
  13.  不揮発性メモリおよびバッテリを含むメモリバックアップモジュールを設けるステップをさらに含み、前記記憶サブシステムは、電源から通常は給電され、さらに、
     前記電源から電源障害を検出すると、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電するステップと、
     前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写するステップと、
     前記電源から電力が復旧したことを検出すると、前記不揮発性メモリから前記キャッシュメモリに前記データの内容を再び複写するステップとをさらに含む、請求項10に記載の方法。
  14.  前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項13に記載の方法。
  15.  前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む、請求項13に記載の方法。
  16.  前記データ記憶装置の1つは、他のデータ記憶装置の1つが故障した場合に用いるため
    のスペアとして確保され、前記方法は、スペアのデータ記憶装置が使用されていない間は、
     前記ミラー領域に格納された前記ログキャッシュのデータを、そのデータの複数のコピーが前記スペアの記憶装置に格納されるように前記スペアの記憶装置に複製するステップと、
     前記データセットからデータを読出すようにとのホストからの要求を受取ると、要求されたデータが前記スペアの記憶装置内に存在するかどうかを判断して、前記スペアの記憶装置内に存在する場合、前記要求されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択し、前記要求されたデータの前記選択されたコピーを前記ホストに与えるステップをさらに含む、請求項2に記載の方法。
  17.  前記ミラー領域に格納された前記データを圧縮するステップをさらに含む、請求項2に記載の方法。
  18.  前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含む、請求項2に記載の方法。
  19.  耐故障性の、遠隔のデータ記憶システムに、前記ログキャッシュのデータを送信するステップをさらに含み、
     前記遠隔のデータ記憶システムは、受取られたログキャッシュのデータに対するエラー訂正ブロックに関連するパリティを決定して、前記記憶サブシステムに前記エラー訂正ブロックを送信し、
     前記記憶サブシステムの前記ストライプ領域にデータを格納する前記ステップは、データブロックと、前記遠隔の記憶システムから受取られた、関連するエラー訂正ブロックとを含むブロックのストライプとしてデータを格納するステップを含む、請求項1に記載の方法。
  20.  前記データ記憶装置は、データディスクドライブを含む、請求項1に記載の方法。
  21.  障害と無関係のデータ記憶装置の配列と、
     前記データ記憶装置上のデータ記憶領域を、論理ミラー領域と論理ストライプ領域とに論理的に分割するコントローラとを含み、前記コントローラは、データを複製して一対の記憶装置に前記データの複製コピーを保持することによって、前記ミラー領域にデータを格納し、前記コントローラは、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして前記ストライプ領域にデータを格納する、耐故障性の記憶サブシステム。
  22.  前記コントローラはさらに、前記ストライプ領域のデータセットと、前記ミラー領域の、関連するログキャッシュとを維持する、請求項21に記載の記憶サブシステム。
  23.  前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラはさらに、
     前記ミラー領域の前記ログキャッシュにホストデータを格納して、
     前記ホストに書込の完了を通知する、請求項22に記載の記憶サブシステム。
  24.  前記コントローラは、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する、請求項23に記載の記憶サブシステム。
  25.  前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
     要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
     前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項24に記載の記憶サブシステム。
  26.  前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含み、
     前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
     前記コントローラは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力する、請求項24に記載の記憶サブシステム。
  27.  前記コントローラは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写することによって、前記ミラー領域内の前記ログキャッシュから、前記ストライプ領域内の前記データセットに前記ホストデータを複写する、請求項26に記載の記憶サブシステム。
  28.  選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、前記コントローラはさらに、
     前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得て、
     前記データセットのコピーに関連するキャッシュログを得て、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、前記コントローラはさらに、
     選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に転送する、請求項27に記載の記憶サブシステム。
  29.  前記記憶装置は、データディスクドライブを含む、請求項21に記載の記憶サブシステム。
  30.  キャッシュメモリをさらに含み、
     前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラは、前記キャッシュメモリにホストデータを格納して、前記ホストに書込の完了を通知し、
     前記コントローラはさらに、前記キャッシュメモリから、前記ミラー領域内の前記ログキャッシュに前記ホストデータを複写する、請求項22に記載の記憶サブシステム。
  31.  前記コントローラはさらに、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに、前記ホストデータを複写する、請求項30に記載の記憶サブシステム。
  32.  前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
     要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、要求されたデータを与え、
     前記キャッシュメモリに存在しない場合、前記コントローラは、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
     前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項31に記載の記憶サブシステム。
  33.  不揮発性メモリおよびバッテリを含むメモリバックアップモジュールをさらに含み、前記記憶サブシステムは、電源から通常は給電され、
     前記電源から電源障害を検出すると、前記コントローラは、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電して、前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写し、前記電源から電力が復旧したことを検出すると、前記コントローラは、前記不揮発性メモリから前記キャッシュメモリに前記データの内容を再び複写する、請求項30に記載の記憶サブシステム。
  34.  前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項33に記載の記憶サブシステム。
  35.  前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む、請求項33に記載の記憶サブシステム。
  36.  前記コントローラはさらに、他の記憶装置の1つが故障した場合に用いるためのスペアとして、前記記憶装置の1つを確保し、スペアの記憶装置が用いられていない間、前記コントローラはさらに、
     前記スペアの記憶装置に、前記ミラー領域に格納された前記ログキャッシュのデータを複製して、そのデータの複数のコピーが前記スペアの記憶装置に格納されるようにし、
     前記データセットからデータを読出すようにとのホストからの要求を受取ると、前記コントローラは、要求されたデータが前記スペアの記憶装置に存在するかどうかを判断して、前記スペアの記憶装置に存在する場合、前記コントローラは、選択されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択し、前記要求されたデータの選択されたコピーを前記ホストに与えるようにする、請求項22に記載の記憶サブシステム。
  37.  前記コントローラはさらに、前記ミラー領域に格納された前記データを圧縮する、請求項22に記載の記憶サブシステム。
  38.  前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含む、請求項22に記載の記憶サブシステム。
  39.  障害と無関係のデータ記憶装置の配列を有する、耐故障性の記憶サブシステムのための
    データ編成管理プログラムであって、
     前記データ記憶装置上のデータ記憶領域を、論理ミラー領域および論理ストライプ領域からなるハイブリッドに論理的に分割するコントローラを含み、前記コントローラは、前記データを複製して一対の記憶装置に前記データの複製コピーを保持することによって、前記ミラー領域にデータを格納し、前記コントローラは、データブロックおよび関連するエラー訂正ブロックを含むブロックのストライプとして、前記ストライプ領域にデータを格納する、データ編成管理プログラム。
  40.  前記コントローラはさらに、前記ストライプ領域のデータセットと、前記ミラー領域の、関連するログキャッシュとを維持する、請求項39に記載のデータ編成管理プログラム。
  41.  前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラはさらに、
     前記ミラー領域の前記ログキャッシュにホストデータを格納して、
     前記ホストに書込の完了を通知する、請求項40に記載のデータ編成管理プログラム。
  42.  前記コントローラは、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域内の前記データセットに前記ホストデータを複写する、請求項41に記載のデータ編成管理プログラム。
  43.  前記データセットからデータを読出すようにとの前記ホストからの要求に応答して、前記コントローラはさらに、
     要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
     前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項42に記載のデータ編成管理プログラム。
  44.  前記ログキャッシュは、時間順次的な複数のエントリを有する書込ログを含み、各エントリは、データブロックと、前記データセット内のデータブロックアドレスと、タイムスタンプとを含み、
     前記ホストからの前記要求は、前記ホストデータと、前記ホストデータを格納するための、前記データセット内のブロックアドレスとを含み、
     前記コントローラは、前記ログキャッシュのエントリに、前記ホストデータと、前記ブロックアドレスと、タイムスタンプとを入力する、請求項42に記載のデータ編成管理プログラム。
  45.  前記コントローラは、前記ミラー領域の前記ログキャッシュのエントリの前記ホストデータを、前記ストライプ領域の前記データセット内の前記ブロックアドレスに複写することによって、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに前記ホストデータを複写する、請求項44に記載のデータ編成管理プログラム。
  46.  選択された時間における前記データセットの状態を再形成するようにとの要求に応答して、前記コントローラはさらに、
     前記選択された時間以前のバックアップ時間に形成された前記データセットのコピーを得て、
     前記データセットのコピーに関連するキャッシュログを得て、前記関連するキャッシュログは、前記バックアップ時間の直後に時間順次的に形成されたエントリを含み、前記コントローラはさらに、
     選択されたタイムスタンプが、前記関連するキャッシュログのエントリに到達するまで、前記関連するキャッシュログの各エントリの各データブロックを、前記データセットのコピー内の対応するブロックアドレスに時間順次的に転送する、請求項45に記載のデータ編成管理プログラム。
  47.  前記記憶装置は、データディスクドライブを含む、請求項39に記載のデータ編成管理プログラム。
  48.  キャッシュメモリをさらに含み、
     前記データセットにデータを書込むようにとのホストからの要求に応答して、前記コントローラは、前記キャッシュメモリにホストデータを格納して、前記ホストに書込の完了を通知し、
     前記コントローラはさらに、前記キャッシュメモリから、前記ミラー領域の前記ログキャッシュに前記ホストデータを複写する、請求項40に記載のデータ編成管理プログラム。
  49.  前記コントローラはさらに、前記ミラー領域の前記ログキャッシュから、前記ストライプ領域の前記データセットに、前記ホストデータを複写する、請求項48に記載のデータ編成管理プログラム。
  50.  前記データセットからデータを読出すようにとのホストからの要求に応答して、前記コントローラはさらに、
     要求されたデータが前記キャッシュメモリに存在するかどうかを判断して、前記キャッシュメモリに存在する場合、前記キャッシュメモリから前記ホストに、要求されたデータを与え、
     前記キャッシュメモリに存在しない場合、前記コントローラは、前記要求されたデータが前記ミラー領域の前記ログキャッシュに存在するかどうかを判断して、前記ログキャッシュに存在する場合、前記ログキャッシュから前記ホストに、前記要求されたデータを与え、
     前記ログキャッシュに存在しない場合、前記コントローラは、前記要求されたデータが前記ストライプ領域の前記データセットに存在するかどうかを判断して、前記データセットに存在する場合、前記データセットから前記ホストに、前記要求されたデータを与える、請求項49に記載のデータ編成管理プログラム。
  51.  不揮発性メモリおよびバッテリを含むメモリバックアップモジュールをさらに含み、前記記憶サブシステムは、電源から通常は給電され、
     前記電源から電源障害を検出すると、前記コントローラは、代わりに前記バッテリから、前記キャッシュメモリおよび前記不揮発性メモリに給電して、前記キャッシュメモリのデータの内容を前記不揮発性メモリに複写し、前記電源から電力が復旧したことを検出すると、前記コントローラは、前記不揮発性メモリから前記キャッシュメモリに、前記データの内容を再び複写する、請求項48に記載のデータ編成管理プログラム。
  52.  前記キャッシュメモリは、ランダムアクセスメモリ(RAM)を含み、前記不揮発性メモリは、フラッシュメモリ(FLASH)を含む、請求項51に記載のデータ編成管理プログラム。
  53.  前記バッテリは、前記電源によって通常は細流充電される再充電可能なバッテリを含む
    、請求項51に記載のデータ編成管理プログラム。
  54.  前記コントローラはさらに、他の記憶装置の1つが故障した場合に用いるためのスペアとして、前記記憶装置の1つを確保し、スペアの記憶装置が用いられていない間、前記コントローラはさらに、
     前記スペアの記憶装置に、前記ミラー領域に記憶された前記ログキャッシュのデータを複製して、そのデータの複数のコピーが前記スペアの記憶装置に格納されるようにし、
     前記データセットからデータを読出すようにとのホストからの要求を受取ると、前記コントローラは、要求されたデータが前記スペアの記憶装置に存在するかどうかを判断し、前記スペアの記憶装置に存在する場合、前記コントローラは、選択されたデータの他のコピーに比べて最小の読出待ち時間で前記ホストに与えられ得る、前記要求されたデータのコピーを、前記スペアの記憶装置において選択して、前記要求されたデータの選択されたコピーを前記ホストに与えるようにする、請求項40に記載のデータ編成管理プログラム。
  55.  前記コントローラはさらに、前記ミラー領域および前記キャッシュに格納されたデータを圧縮する、請求項40に記載のデータ編成管理プログラム。
JP2003324785A 2002-09-20 2003-09-17 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム Pending JP2004118837A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (9)

* Cited by examiner, † Cited by third party
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