JPH08249134A - 冗長性パリティ記憶技法に従ってユーザ・データを書き込む方法 - Google Patents
冗長性パリティ記憶技法に従ってユーザ・データを書き込む方法Info
- Publication number
- JPH08249134A JPH08249134A JP7334559A JP33455995A JPH08249134A JP H08249134 A JPH08249134 A JP H08249134A JP 7334559 A JP7334559 A JP 7334559A JP 33455995 A JP33455995 A JP 33455995A JP H08249134 A JPH08249134 A JP H08249134A
- Authority
- JP
- Japan
- Prior art keywords
- stripe
- parity
- data
- segment
- storage
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61P—SPECIFIC THERAPEUTIC ACTIVITY OF CHEMICAL COMPOUNDS OR MEDICINAL PREPARATIONS
- A61P9/00—Drugs for disorders of the cardiovascular system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Chemical & Material Sciences (AREA)
- Pharmacology & Pharmacy (AREA)
- Heart & Thoracic Surgery (AREA)
- Chemical & Material Sciences (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medicinal Chemistry (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Organic Chemistry (AREA)
- Cardiology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Abstract
が少ない改善された書込み性能を持つディスク・アレイ
・データ記憶システムを提供する。 【解決手段】ディスク・アレイは、各ストライプが複数
の記憶ディスクにわたる複数のストライプを有する。各
ストライプは、複数のセグメントからなる。部分的スト
ライプ・ポインタが個々のストライプを参照し、セグメ
ント・フィル・ポインタが参照されたストライプのセグ
メントを参照する。ユーザ・データを選ばれたセグメン
トに書き込む際、そのストライプのパリティ値を増分的
に決定し、キャッシュに一時記憶しておき、そのストラ
イプ全体のデータ書き込みが終わり、全体のパリティが
決定された後、パリティ・セグメントに書き込む。デー
タ書き込みの都度、パリティ・セグメントを読み、書き
戻す必要がないので、書き込み性能が向上する。
Description
イに、より具体的には、冗長性記憶能力を持つ冗長で階
層的なディスク・アレイ・データ記憶システムに関す
る。この発明は、またデータがディスク・アレイに書き
込まれる際に、冗長性を増加的に生成する方法に関す
る。
は、一つの大容量記憶システムを形づくるよう配列さ
れ、コーディネートされる複数の記憶ディスク・ドライ
ブ装置を持つ。そのような記憶装置のための3つの主要
な設計基準がある。それは、費用、パフォーマンスおよ
び可用性である。メガバイトあたりの費用が小さく、高
い入出力パフォーマンスおよび高いデータ可用性を持つ
記憶装置を生産することが最も望ましい。「可用性」
が、その記憶装置に格納されたデータをアクセスする能
力およびなんらかの故障の場合に継続操作を保証する能
力である。典型的に、データ可用性は、データ、または
データ間の関係が複数のロケーションに格納される冗長
性の使用を通して提供される。ディスク・アレイにおけ
る記憶ディスクが部分的、あるいは完全に故障する場
合、ユーザ・データは、残っているディスクに格納され
た冗長データを通して再建されることができる。
方法がある。第1の方法、すなわち「ミラー」法による
と、データは、複製され、その記憶装置の2つの別々の
領域に格納される。例えば、ディスク・アレイにおい
て、同じデータがディスク・アレイの2つの別々のディ
スクに提供される。ミラー法は、二重記憶技術によって
高いパフォーマンスおよび高いデータ可用性の利点を持
っている。しかし、ミラー法は、データを格納する費用
を実質的に2倍にするので比較的高価である。
は、記憶領域の一部分が、冗長データを格納するために
使われるが、冗長な記憶領域のサイズは、オリジナルの
データを格納するのに使われた残りの記憶スペースより
小さい。例えば、5つのディスクを持つディスク・アレ
イにおいて、4つのディスクが、データを格納するのに
使われ、5番目のディスクが冗長データを格納するのに
使われる。パリティ法は、ミラー法より低コストだとい
う利点があるが、ミラー法に比べるとパフォーマンスお
よび可用性特性において劣る。
タをパリティ技法に従って格納することに向けられる。
従来のディスク・アレイにおいて、記憶ディスク上の記
憶スペース(空間)は、各ストライプが複数の記憶ディ
スクにわたって延びる複数のストライプに構成されてい
る。各ストライプは、記憶スペースの複数のセグメント
から成り、各セグメントは、ディスク・アレイの一つの
記憶ディスク上にある、ストライプの一部分である。
間に記憶ディスクが、フォーマットされ、各ストライプ
のためのパリティがセットされる。初期設定の後、ディ
スク・アレイにデータを書くのに4つのI/Oアクセスが必
要とされる。すなわち、選ばれたストライプから更新さ
れるべきデータを読む第1のI/O、そのストライプにお
けるデータのための対応するパリティを読むための第2
のI/O、新しいデータをそのストライプに書き戻すため
の第3のI/O、および、新しいデータのための新しいパ
リティをそのストライプに書き込む第4のI/Oである。
ディスク・アレイのストライプにデータを書くのに必要
なI/Oの数を減らすことが望ましい。
つの技法は、パリティ値をキャッシュ記憶することであ
る。これによって、各書込みプロセスの間にディスク・
アレイから、パリティを読みとる必要性が減らされ、I/
Oの数が3に減らされる。しかし、さらにディスク・ア
レイのストライプにデータを書くのに必要なI/Oの数を
減らす必要性が残っている。
き込みの間、必要とされるI/Oの数が少ない改善された
書込み性能を持つディスク・アレイ・データ記憶システ
ムを提供する。ディスク・アレイは、好ましくは一度に
一つのセグメントの逐次的な態様でストライプの個々の
セグメントにデータを書く。メモリ・マネージャーが、
提供されるストライプのサイズ、およびそのセグメント
が、関連したストライプのパリティ値の一部分であるデ
ータを含むどうかに関する、ストライプの各セグメント
のパリティ状態を知っている。
ジャーは、2種類のポインターの使用を通して、各セグ
メントのパリティ状態を追跡する。これらは、満たされ
ているストライプを追跡し続ける1つまたは複数の部分
的ストライプ・ポインター、および満たされているスト
ライプの特定のセグメントを参照する1つまたは複数の
セグメント・フィル・ポインターである。選ばれたスト
ライプに関し、セグメント・フィル・ポインターの前の
セグメントは、ストライプ・パリティに編入されるデー
タを含むことが知られており、そしてセグメント・フィ
ル・ポインターに続くセグメントは空で、ストライプ・
パリティにまだ編入されない。部分的ストライプ・ポイ
ンターによって参照されないストライプに関しては、デ
ータを含むストライプは、ストライプ・パリティによっ
て代表されるすべてのデータ・セグメントを持つと考え
られ、そしてすべての空のストライプは、データを含ま
ないか、これらのセグメントを代表するパリティ値を持
たないと理解される。
はセグメント・フィル・ポインターによって参照された
セグメントに書かれる。このデータ書込みの間に、選ば
れたストライプにおけるすべての満たされたセグメント
に含まれるデータに対応するパリティ値が、増分的に生
成され、NVRAMのような別々の不揮発性メモリにキャッ
シュ記憶される。ストライプにおける空のセグメント
は、書込みプロセスの間、管理されず、増分的パリティ
生成に含まれない。ストライプにおけるすべてのデータ
・セグメントが満たされたあと、最終的なパリティ値
は、そのストライプのパリティ・セグメントに書かれ
る。次いで、プロセスは、次の満たされていないストラ
イプまたは部分的に満たされたストライプについて繰り
返される。
込み、増分的パリティ生成およびパリティのキャッシュ
記憶で実行されるディスク・アレイは、古いデータを読
み古いパリティを読む先行技術のI/Oを削減する。さら
に、パリティ値がディスク・アレイに書かれる回数をス
トライプ全体が満たされたあとの一つの書込みに減らす
ことができる。これにより書込み性能が大きく改善され
る。
れたデータ記憶システム10を示す。データ記憶システム
10は、複数の記憶ディスク1 2、および記憶ディスク12
およびRAID管理システム16との間でデータ転送を協調さ
せるために、ディスク・アレイ11に結合したディスク
・アレイ・コントローラ14を有する階層的なディスク・
アレイ11を備える、ディスク・アレイ・データ記憶シ
ステムであるのが好ましい。
装置故障を発見する能力を持つ、不揮発性でランダムに
アクセス可能な、再書き込み可能な大容量記憶装置であ
る。それは、回転する磁気ディスクおよび光ディスク、
ならびにソリッドステートのディスクまたは不揮発性電
子記憶素子(PROM、EPROMとEEPROMのような)を含む。
「ディスク・アレイ」という用語は、ディスクの集合を
いい、それらを一つまたは複数のホスト・コンピュータ
に接続するために必要なハードウェア、および物理的な
ディスクの操作を制御するために使われ、ホスト操作環
境へそれらを一つまたは複数の仮想ディスクとして提供
する管理ソフトウェアを含んでいる。すべての仮想ディ
スクは、管理ソフトウェアによってディスク・アレイの
中で実現される抽象的な構成要素である。
ndent Disks)は、記憶容量の残りの部分に格納されたユ
ーザ・データに関する冗長情報を格納するために、物理
的な記憶容量の一部分が使われるディスク・アレイを意
味する。そのアレイの構成ディスクの一つが故障するか
それへのアクセス経路が故障した場合、冗長情報がユー
ザ・データの再生を可能にする。RAIDシステムのより詳
細な説明は、The RAIDBook: A Source Book for RAID T
echnology, the RAID Advisory Board, LinoLakes, Min
nesota、1993 年6月9日、に記載されている。
型コンピュータ・システム・インターフェース(SCSI)
のような1つまたは複数のインターフェース・バス13を
通してディスク・アレイ11に結合されている。RAID管理
システム16は、インターフェース・プロトコル15を通し
て動作的にディスク・アレイ・コントローラ14に結合さ
れている。また、データ・メモリ・システム10は、I/O
インターフェース・バス17を通してホスト・コンピュー
タ(図示しない)に結合される。RAID管理システム16
は、ディスク記憶および信頼性のレベルを制御するた
め、およびいろいろな信頼性記憶レベルの間でデータを
転送するためにデータ・マネージャー手段を提供するよ
う、別々のコンポーネントとして具体化されることも、
ディスク・アレイ・コントローラ14内で、あるいはホス
ト・コンピュータ内で構成されることもできる。これら
の信頼性記憶レベルは、後述するようにミラーまたはパ
リティ冗長レベルであるのが好ましいが、全く冗長性な
しの信頼性記憶レベルを含むことができる。
ィスク・アレイ・コントローラA、14aとディスク・アレ
イ・コントローラB、14bから成る二重のコントローラと
して実施するのが好ましい。二重のコントローラ14aと1
4bは、連続的なバックアップと冗長性を提供することに
よって、一つのコントローラが動作不能になるときの信
頼性を高める。しかし、この発明は、一つのコントロー
ラその他のアーキテクチャーでも実施することができ
る。
な記憶スペースおよび1つまたは複数の仮想記憶スペー
スを含めて、異なる記憶スペースとして特徴づけること
ができる。記憶装置のこれらのいろいろな見方は、マッ
ピング技法を通して関係づけられる。例えば、そのディ
スク・アレイの物理的な記憶スペースは、いろいろなデ
ータの信頼度レベルに従って記憶領域を画定する仮想記
憶スペースにマップすることができる。仮想記憶スペー
ス内のいくつかの領域が、ミラーまたはRAIDレベル1の
ような第1の信頼性記憶レベルのために割り当てられ、
他の領域がパリティまたはRAIDレベル5のような第2の
信頼性記憶レベルのために割り当てられることができ
る。いろいろなマッピング技術およびRAIDレベルに関す
る仮想スペースについて、以下に詳細を説明する。
ースを互いにマップするために使われるる仮想マッピン
グ情報を持続的に記憶するためのメモリ・マップ・スト
ア21を含む。メモリ・マップ・ストアは、ディスク・ア
レイに対して外部にあり、ディスク・アレイ・コントロ
ーラ14に常駐するのが好ましい。異なるビューの間でい
ろいろなマッピング構成が変わるにつれて、メモリ・マ
ッピング情報がコントローラまたはRAID管理システムに
よって連続的に、あるいは定期的に更新されることがで
きる。
コントローラ14aと14bに位置する2つの不揮発性RAM (Ra
ndom Access Memory) 21aおよび21bとして具体化される
のが好ましい。不揮発性RAM(NVRAM)の一例は、バッテ
リで支援されたRAMである。バッテリ支援RAMは、データ
記憶システム10への電力供給が損なわれた場合、ある時
間の間メモリの中のデータを維持するために独立のバッ
テリ源からのエネルギーを使う。一つの好ましい構造
は、自己リフレッシュ型のバッテリ支援DRAM(Dynamic
RAM)である。
ッピング情報の冗長な記憶を行う。仮想マッピング情報
が、ミラー冗長技術に従って複製され、両方のNVRAM 21
aおよび21bに格納される。このように、NVRAM 21aが、
オリジナルのマッピング情報を格納することに専用さ
れ、NVRAM 21bが冗長なマッピング情報を格納すること
に専用されることができる。代替構造において、ミラー
されたメモリーマップ・ストアは、そのデータを二重に
記憶するに十分なスペースを持つ単一の不揮発性RAMを
使って構成することができる。
1は、複数の記憶ディスク・ドライブ装置12を持ってい
る。これらの記憶ディスクのサイズの例は、1ないし3ギ
ガバイトである。記憶ディスクは、SCSIバス13とのイン
ターフェイスを提供する機械的ベイに、独立に接続され
たり切り離したりされることができる。一つの実施例に
おいて、データ記憶システムは、12の機械的ベイを持つ
よう設計される。4つのSCSIバスが、これらのベイとデ
ィスク・アレイ・コントローラ14とをインターフェイス
するのに使われる(すなわち、3つの機械的ベイにつき
一つのバス)。活動ベイがいっぱいにロードされるなら
ば、データ記憶システムは、12ないし36ギガバイトの結
合された容量を持つ例になる。ディスク・アレイ・コン
トローラ14は、どのベイに接続されたかとは関係なく記
憶ディスク12を認識する。データ記憶システム10は、デ
ィスク・アレイが運転中である間に、ディスク・アレイ
の利用可能な機械的ベイに付加的ディスクを「ホットプ
ラグ」(稼働中にプラグ接続する)することができるよ
う設計されている。
ク12は、説明の目的のために、複数のディスク20のミラ
ー・グループ18および複数のディスク24のパリティ・グ
ループ22に配列されているものと観念することができ
る。ミラー・グループ18は、データを第1の、すなわち
ミラー冗長レベルに従って格納する、ディスク・アレイ
の第1の記憶ロケーションすなわちRAID領域を表わす。
また、このミラー冗長レベルは、RAIDレベル1と考えら
れる。RAIDレベル1、あるいはディスク・ミラーリング
は、データのあらゆるビットがデータ記憶システム内で
複製され記憶される点で1対1の保護を与え、最も高い
データ信頼性を提供する。ミラー冗長性は、図1におい
て3対のディスク20によって表わされている。オリジナ
ルのデータが、第1組のディスク26に格納されることが
でき、重複して冗長データが対になった第2組のディス
ク28に格納される。
を図示する。垂直な列は、個々のディスク(ディスク
0、1、2および3が図示される)を表現する。4つのディ
スクのディスク・アレイに含まれる物理的な記憶スペー
スは、水平な行によって表現されるように、複数のスト
ライプに構成することができる。「ストライプ」は、記
憶ディスクを横切って広がり、一つのセグメントがその
アレイの中のそれぞれのディスクと関連する、多数の等
しい大きさの記憶スペースのセグメントを含む。すなわ
ち、セグメントは、一つのディスク上にあるストライプ
の部分である。各ストライプは、記憶ディスクを横切っ
て分配されるあらかじめ決められた量のデータを持つ。
ストライプのセグメントのあるものは、オリジナルのデ
ータのために使われ、他のセグメントが冗長データのた
めに使われる。
おいて、ディスク0上でストライプ0のセグメント0に格
納されたデータは、複製され、ディスク1上でストライ
プ0のセグメント0'に格納される。同様に、ディスク2上
でストライプ2のセグメント5に格納されたデータは、デ
ィスク3上でストライプ2のセグメント5'にミラー(複
製)される。このように、データの各部分は、複製され
てディスク上に格納される。図2の冗長性レイアウト
は、説明の目的で用意されている。冗長データは、図示
しているのと同じストライプにきちんと置かれる必要は
ない。例えば、ディスク0上でストライプ1の中のセグメ
ント2に格納されたデータは、複製されて、ディスク3上
でストライプSのセグメントT'に置かれてもよい。
ティ・グループ22は、データがRAIDレベル5のような第
2の冗長レベルに従って格納される第2の記憶ロケーシ
ョンすなわちRAID領域を表わす。6つのディスクを用い
た説明的なイラストにおいて、オリジナルのデータは、
5つのディスク30に格納され、冗長な「パリティ」デー
タが6番目のディスク32に格納される。
より詳しく示す。図2のミラーRAID領域レイアウトと同
様に、ディスク0、1、2、3の物理的な記憶スペースは、
複数の等しい大きさのストライプに構成されることがで
きる。図の例において、データがRAIDレベル5に従って
格納され、セグメントに格納された冗長データは、文字
Pによって参照される。冗長なPセグメントは、他のセグ
メントのパリティをそのストライプに格納する。たとえ
ば、ストライプ0において、ディスク3上の冗長なPセグ
メントは、ディスク0、1および2のパリティを格納す
る。各ストライプのためのパリティが、次の式の中の記
号によって表わされる排他的OR機能のようななんらか
の機能によって計算される。第1の4つのストライプの
ためのパリティ(下付き添字数字が対応するストライプ
を表わす)は、次のようである:
データの再生を可能にする。例えば、セグメント5のデ
ータが利用できなくなったならば、その内容は、セグメ
ント3および4ならびにセグメントPの中のパリティ・デ
ータから確かめることができる。パリティ記憶は、ミラ
ー記憶より経済的であるが、相対的に信頼性が低く、パ
フォーマンスが低い。
意されている。実際上、ディスク・アレイ11は、データ
をミラーおよびパリティ冗長性に従って格納することが
できる単に複数のディスク12を持っていてよい。すべて
のディスク12によって提供される利用可能な記憶スペー
スの中で、その記憶スペースの一部がミラー冗長性のた
めに割り当てられ、他の部分がパリティ冗長のために割
り当てられる。ディスク12は、個々の区域が複数のセグ
メントを持つ、複数の等しい大きさに作られた記憶区域
(図4において数字35で参照される)を含むよう構成さ
れるのが好ましい。その区域は、記憶スペースの一つの
仮想ビューにおいて、RAID領域を形成するようグループ
化される。さらに、記憶スペースのもう一つの(ホスト
で規定される)ビューがユーザまたはホストに提示され
るので、RAID領域およびデータ冗長性記憶技術はユーザ
またはホストに透明である。これらの機構は、図4を参
照してより詳しく説明する。
リティ記憶法の間でデータの「移行」を管理する。両方
の型の冗長性の管理は、RAID管理システム16(図1)で
協調される。RAID管理システム16は、ディスク・アレイ
の2つの異なる型のRAID領域を、ミラーRAID領域がパリ
ティRAID領域のためのキャッシュに似た動作をするメモ
リ・ハイアラーキとして管理する。RAID管理システム16
は、規定されたパフォーマンス・プロトコルに従って、
ミラーおよびパリティRAID領域の間でデータをシフト
し、組織するなど管理する。ミラーおよびパリティRAID
領域の間でデータを動かすプロセスは、「移行」と呼ば
れる。
最も高いパフォーマンスと信頼性の余裕を持っているか
ら、よりパフォーマンスに厳格なデータをミラーRAID領
域に置こうとする。RAID管理システムによって実行され
るパフォーマンス・プロトコルは、2つの好ましい移行
方針の一つを含む。「アクセス頻度」として知られる第
1の移行方針によると、階層的なディスク・アレイ上の
最も頻繁にアクセスされるデータがミラーRAID領域18に
維持される。アクセスされる頻度の小さいデータは、パ
リティRAID領域22に維持される。「アクセスの最近度」
として知られている第2の移行方針によると、最も最近
アクセスされたデータがミラーRAID領域18に維持され、
アクセス最近度の低いデータがパリティRAID領域22に格
納される。他のパフォーマンス・プロトコルを使うこと
もできる。理想的には、そのようなプロトコルは、特定
のコンピュータ・アプリケーションおよびユーザのニー
ズに基づいて規定される。
ラメーターの関数に従って、データ記憶システムの記憶
資源を自動的に「調整する」。この2つのパラメータ
は、物理的な記憶容量のサイズ、およびデータ記憶シス
テムに格納つつあるユーザ・データの現在量のサイズで
ある。最初は、最も高いパフォーマンスおよび信頼性を
持つので、すべてのデータがミラーRAID領域に格納され
る。より多くのデータがデータ記憶システムに加えられ
るにつれて、データは、パフォーマンスおよび信頼性を
最適化するために、ミラーRAID領域およびパリティRAID
領域の間で移行される。データ記憶システムが容量いっ
ぱいに近づくと、冗長性を通しての信頼性を提供しなが
らユーザのすべての要求に応ずるために、より多くのデ
ータがパリティRAID領域に移行される。それゆえに、こ
の発明のデータ記憶システムは、最大の融通性と順応性
を持つ。この発明の記憶システムは、ユーザに特定の記
憶体制を選ぶことを要求せず、ユーザの要求に適応する
ことができる。
な記憶スペースのメモリ・マッピングを、マップされた
仮想記憶スペースの複数の段として図示する。図の中の
垂直に伸びたそれぞれの長方形は、物理的な記憶スペー
スのビューを表現する。この図の中で、物理的記憶スペ
ース34が2つの仮想記憶装置のビュー40および50で参照
される。物理的記憶スペース34は、数字0、1、2、およ
び3で参照される4つのディスク(図1の中のディスク12
のような)によって表現される。そのディスクに関連し
た4つの長方形は、ディスク1、2および3がほぼ等しい記
憶容量を持ち、ディスク0がわずかに小さい記憶容量を
持つ物理的な記憶スペースのビュー50を表わす。そのよ
うなディスクの例としての記憶容量は、1-3ギガバイト
である。記憶スペース34は、領域A0、A1、A2、その他に
区分される。個々の領域は、領域A0にストライプ0-Qの
ような多数のストライプを含む。個々の領域も、多数の
区域35を含む。区域35は、区域が全ディスク・アレイに
わたって同じ大きさであるように、あらゆる記憶ディス
ク上で選ばれた数の均一な大きさのセグメントから成る
のが好ましい。区域35の例としてのサイズは、1メガバ
イトである。
スペース34の第1の、中間の、RAIDレベルの仮想ビュー
40にマップされる。この第1の仮想ビューは、観念的に
は、連続してアドレス可能な記憶スペースを表現する第
2のアプリケーション・ビューにマップされることがで
きる一組のRAID領域である。その物理的構成およびその
記憶スペースのRAIDビューは、アプリケーション・ビュ
ーから隠されている。RAID領域記憶スペース40は、ミラ
ーおよびパリティ記憶スペースを識別する記憶装置のビ
ューである。たとえば、RAID領域42が、M割当てブロッ
ク43のミラーRAID領域を表現し、RAID領域44がN割当て
ブロック45のパリティRAID領域を表現してもよい。割当
てブロック43および45は、同じ大きさであるのが好まし
い。例としての大きさは、64キロバイトである。これら
のRAID領域は、物理的な記憶スペース34上の対応する物
理的な領域A0、A1、A2などに関連する。例として、RAID
仮想ビューにおける16の64K割当てブロック43または45
は、一つの1M区域35の上へマップすることができる。
ク・アレイの全記憶スペース34を消費するかもしれず、
消費しないかもしれない。したがって、ある種のアプリ
ケーションの間、特定のRAID領域に対応しない、不使用
の指定されていない記憶スペースがあることがある。し
かし、そのような記憶スペースは、ミラーまたはパリテ
ィRAID領域に変換されることができる。また、RAID領域
は、ディスク・アレイ上で連続する領域にマップされ、
各RAID領域に関連したそれぞれの区域が各記憶ディスク
の同じ物理アドレスに位置するものとして示されている
点に注意されたい。代わりに、RAID領域は、ディスク・
アレイ上の連続しない領域にマップされてもよい。
ーザまたはホスト・アプリケーション・プログラムによ
って規定され、それらに提示される記憶装置のビューで
ある、第2の、フロントエンドの、アプリケーション・
レベルの仮想ビュー50にマップされる。ユーザまたはホ
スト・アプリケーション・プログラムから見るとき、ア
プリケーション・レベルの仮想ビュー50は、記憶ディス
ク12上の利用可能な記憶スペースを示す一つの大きい記
憶容量を表わすことができる。仮想記憶スペース50は、
個別に0、1、2、...、J-1、J、J+1、...、Lー1、L、L+
1、...、などとして参照される等しい大きさの記憶仮想
ブロック52および53の線形セットのビューを提示する。
仮想ブロック52および53は、RAID領域40における割当て
ブロックと同じサイズであることが好ましい。サイズの
例は、64キロバイトである。仮想ブロック記憶スペース
50は、RAID領域40で表されるビューの割当てブロックへ
の参照すなわちポインタ(矢印54によって表現されるよ
うに)のテーブルによって表わされる。したがって、ア
プリケーション仮想ビュー50における仮想ブロック52お
よび53は、仮想ブロック・テーブルに維持されるポイン
タを通してRAID仮想ビュー40における割当てブロック43
および45と関連する。仮想ブロック・テーブルから参照
することができる少くとも2つ型のRAID領域、ミラーお
よびパリティがある。
ースにわたって動的にRAID領域の構成を変えることがで
きる。それぞれの型についてRAID領域の数が、システム
で格納されるユーザ・データの量および物理的なディス
ク記憶スペースのサイズに依存して増やされまたは減少
されうる。この結果、RAIDレベルの仮想ビュー40におけ
るRAID領域のディスクへのマッピング、およびアプリケ
ーション・レベルの仮想ビュー50のRAIDビュー40へのマ
ッピングは、概して変化状態にある。NVRAM 21aおよび2
1b(図1)におけるメモリ・マップ・ストアは、RAID領
域をディスクへマップするためにRAID管理システム16に
よって使われる現在のマッピング情報を、2つの仮想ビ
ューの間でマップするために使われる情報と同様に維持
する。RAID管理システムは、動的にRAIDレベルのマッピ
ングを変えるにつれて、その変更を反映するために、メ
モリ・マップ・ストアのマッピング情報を更新する。
び4を参照して説明する。
レベルの仮想記憶スペース50の仮想ブロック53は、物理
的記憶スペース34の領域A1に格納されたパリティRAID領
域44における関連した割当てブロック45を参照する。そ
のような仮想ブロック53は、パリティ仮想ブロックと呼
ぶことができ、関連した割当てブロック45は、パリティ
割当てブロックと呼ぶことができる。同様に、仮想ブロ
ック52は、物理的記憶スペース34の領域AOに格納された
ミラーRAID領域42における関連した割当てブロック43を
参照する。そのような仮想ブロック52は、「ミラー仮想
ブロック」と呼ばれ、関連した割当てブロック43が「ミ
ラー割当てブロック」と呼ばれる。
行するために、第1のRAIDレベル型(ミラーまたはレベ
ル1のような)の割当てブロックに関連した仮想ブロッ
クが選ばれる。次いで、第2のRAIDレベル型(パリティ
またはレベル5のような)を表す不使用の割当てブロッ
クが見いだされる。不使用の割当てブロックを見いだす
ことができないならば、一つが作成される。データは、
選ばれた仮想ブロックと関連する割当てブロックから不
使用の割当てブロックに移され、データは冗長レベルを
変更される。例えば、ミラー冗長性に従って格納されて
いたデータは、パリティ冗長性に従って格納され、ま
た、その逆が行われる。最終的なステップとして、RAID
レベルの仮想記憶スペース40へのアプリケーション・レ
ベルの仮想記憶スペース50のマッピング54は、データの
シフトを反映するために修正され、更新される。以前に
第1のRAIDレベル型の割当てブロックと関連していた、
選ばれた仮想ブロックが、更新されたポインタを介し
て、移行されたデータを含む第2のRAIDレベル型の割当
てブロックを参照する。この処理の間に生じるマッピン
グ変化は、メモリ・マップ・ストア21において更新され
る。
ミラーおよびパリティ記憶領域の間を移行するデータの
より詳細な説明を続ける。データをパリティ記憶からミ
ラー記憶に移行するために、次のシーケンスが使われ
る。
42における、不使用のミラー割当てブロック43を見つけ
る。 2. 何も見つけられることができなければ、RAID管理シ
ステムは、ミラー割当てブロック(下で説明する)を作
り出す。 3. RAID管理システムは、移行すべき仮想ブロックへの
新しい記憶要求を中断する。 4. RAID管理システムは、仮想ブロックへのすべての有
効なデータ記憶要求が完了されるまで待つ。 5. 仮想ブロック53に関連したパリティ割当てブロック
45からのデータが、一時記憶バッファに読み込まれる。 6. データは、次いで、ステップ2において選ばれたミ
ラー割当てブロックに書き込まれる。 7. 仮想ブロック・テーブルは、ミラー割当て43ブロッ
クにおけるそのデータの新しいロケーションを参照する
よう修正される。 8. 中断されていた記憶要求が、再開される。
レベルの仮想ビュー50における仮想ブロック53は、パリ
ティ記憶からミラー記憶に移行した。中間の仮想ビュー
40に関し、データは、パリティRAID領域44におけるパリ
ティ割当てブロック45からミラーRAID領域42におけるミ
ラー割当てブロック43に移行されている。物理的な記憶
スペースにおいて、データは領域A1から領域A0に動いて
いる。
ことができないならば(上のステップ1)、RAID管理シ
ステムは、次の3つの技法の好ましいシーケンスをため
す。第1に、RAID管理システムは、不使用のRAIDレベル
の記憶のシステムしきい値を破ることなくミラーRAID領
域に変換されることができる、不使用の(したがって指
定されていない)RAID領域を見つけるよう試みる。これ
は、移行を常に進めることができることを保証するため
に必要とされる。これが失敗し、そして保留量の不使用
のRAIDレベル記憶より多くをシステムが持っているなら
ば、システムは、不使用のパリティ割当てブロックを不
使用のRAID領域に集めるためにパリティ記憶装置内でデ
ータを移行させる。この移行によって、上述のようにミ
ラーRAID領域に変換されることができる不使用のRAID領
域が生じれば、システムは、それをミラーRAID領域に変
換する。さもなければ、システムは、不使用のミラー割
当てブロックを見いだすに十分か、または不使用のRAID
領域をミラーRAID領域に変換するに十分に、不使用のRA
IDレベルの記憶装置をシステムが増やすまで、データを
ミラー記憶装置からパリティ記憶装置へ移行し、ミラー
記憶装置をパックし、不使用のRAIDレベルの記憶をパリ
ティに変換する。ミラー割当てブロックがパリティ割当
てブロックより大きな物理的な記憶スペースを占めるか
ら、この最後の技法によって、不使用のRAIDレベル記憶
装置の量が正味増加する。
ためおよび確立するために使われる創設/変換プロトコ
ルは、RAID管理システムがユーザ・データの量および物
理的な記憶スペースのサイズに従ってパリティおよびミ
ラー領域の間で記憶割当てを選択的に調節することを可
能にするので、有利である。データ使用および記憶容量
が変化するにつれて、RAID管理システムは、ミラー記憶
装置に保持されるデータの量を最大にするために上記の
3つの技法の1つまたは複数を使う。
ンスがアイドル時間に不使用RAID領域をつくることによ
って不使用のミラー割当てブロックを創設するのを、記
憶装置要求が待たなければならない状況を避けようとす
る。しかし、いくらかの状況において、記憶装置要求は
スペース作成シーケンスの間、中断されることがある。
RAID管理システムは、仮想スペースがRAIDビューより小
さくなるような形態で、仮想ブロック記憶スペースを構
成する。これは、少くとも1つのRAID領域と等しい自由
スペースが移行その他の目的のためにとっておかれるこ
とを保証する。このように、この技法は、常に不使用の
ミラー割当てブロックを生む。
装置へ移行させるために、以下の順序が使われる: 1.RAID管理システムは、アクセス最近度またはかアク
セス頻度のような移行方針に従ってミラー記憶装置から
パリティ記憶装置へ移行させるために仮想ブロックを52
から選ぶ。 2. RAID管理システムは、パリティRAID領域44に不使用
のパリティ割当てブロック45を見つける。 3.そのようなブロックが見つけられないならば、移行
用に保留されたスペースが上述の創設技法に従ってパリ
ティRAID領域に変換される。 4. 移行されるべき仮想ブロックへの新しい記憶装置要
求が中断される。 5. RAID管理システムは、仮想ブロックへのすべての有
効な記憶装置要求が完了するまで待つ。 6. データは、仮想ブロック52に関連したミラー割当て
ブロック43から一時記憶バッファに読込まれる。 7. そのデータは、選ばれたパリティ割当てブロック45
に書込まれる。 8. 仮想ブロック・テーブルが、パリティ割当てブロッ
ク45におけるデータの新しいロケーションを参照するよ
う修正される。 9. 仮想ブロックへのデータ要求が再開される。
この発明のメモリシ・ステムが異なる2つの冗長性レベ
ルの間でデータを移行する方法の例を提供する。
間でのデータの移動に焦点を当てたが、この発明は、特
にパリティ技法に従って記憶ディスクにデータを書き込
むプロセスに向けられる。上述の記憶管理技法は、この
発明がセグメント・サイズの部分におけるパリティRAID
領域の活動を管理するのを可能にし、増分的なパリティ
生成を可能にする。
来のディスク・アレイは、典型的には、繰り返しビット
またはバイト・パターンからなるデフォルト・パターン
を書き込む。例としてのパターンは、ディスク・アレイ
にすべて「1」を書き込むことである。従来のディスク
・アレイは、また各ストライプのためのパリティを初期
設定手順の間にセットする。
ク・アレイは、ユーザ・データを書き込む準備ができて
いる。この明細書では、ユーザ・データなる用語は、コ
ンピューティング・システムのアプリケーションに従っ
て情報を含むデータ・バイトを意味するものとして使わ
れている。たとえば、ユーザ・データは、アプリケーシ
ョンの結果、ホストコンピューターから得られるデータ
から成っていてよい。ユーザ・データは、記憶ディスク
から取り出された以前の計算アプリケーションの結果で
あるデータであってもよい。。
パターンのような初期設定の間に使われる単純なフォー
マット・パターンをカバーすることを意図しない。従来
のディスク・アレイにおいては、ユーザ・データをディ
スク・アレイに書き込むために4つのI/Oアクセスが必要
とされる。すなわち、更新すべきデータを選ばれたスト
ライプから読む第1のI/O、そのストライプにおけるデ
ータに対応するパリティを読むための第2のI/O、その
ストライプに新しいデータを書き戻す第3のI/O、およ
び新しいデータのための新しいパリティをそのストライ
プに書き戻す第4のI/Oである。この発明のディスク・
アレイによると、メモリ・マネージャーがストライプに
順に一度に一つのセグメントにユーザ・データを書き、
各データ書込みの間、パリティ値を増加的に生成する。
ストライプ全体のためのパリティが計算されるまで、メ
モリ・マネージャーが、パリティ値をキャシュ記憶す
る。この最終的なパリティ値がその後ストライプに書か
れる。ディスク・アレイは、書込みプロシージャの間、
かなりI/Oの数を減らす。
グメントが、ストライプ・パリティに編入され、どれが
されないかを決定するための手段を含む。すなわち、メ
モリ・マネージャーは、ストライプのサイズ、および個
々のセグメントが、関連したストライプのパリティ値の
一部分であるデータを含むどうかに関する、ストライプ
の各セグメントのパリティ状態を知っている。好ましい
実施例において、メモリ・マネージャーは、2つの種類
のポインターの使用を通して、各セグメントのパリティ
状態を追跡する。すなわち、満たされつつあるストライ
プを追跡する1つまたは複数の部分的ストライプ・ポイ
ンター、および満たされつつあるストライプにおける特
定のセグメントを参照する1つまたは複数のセグメント
・フィル・ポインターである。これらのポインターは、
メモリ・マネージャーによってすぐに使えるように不揮
発性メモリーに保持されるのがよい。
およびセグメント・フィル・ポインター64を含むるNVRA
M 21aを示す。図の例において、ポインターは、ディス
ク・アレイ11のディスク0-4にわたって延びるストライ
プ66内でセグメントを参照するのに使われる。NVRAM 21
aは、またアプリケーション・レベルの仮想記憶スペー
ス、およびRAIDレベルの仮想記憶スペースを追跡するメ
モリーマップ60を含む。ミラーNVRAM 21bは、この図に
示されていないが、NVRAM 21aで示したのと同じ情報を
含んでいる。
々のストライプ、より具体的にはディスク・アレイにお
ける満たされていないストライプを参照する。最初に部
分的ストライプ・ポインターは、ユーザ・データを含ま
ない空のストライプを識別する。セグメント・フィル・
ポインター64は、部分的ストライプ・ポインター62によ
って選ばれたストライプ内の個々のセグメントを参照す
る。セグメント・フィル・ポインター64は、ユーザ・ー
データで満杯にされる準備ができている空のセグメント
を見つける。図5において、部分的ストライプ・ポイン
ター62は、矢印68で表されるように満たされていないス
トライプ66を参照し、セグメント・フィル・ポインター
64は、(矢印70で表現されるように)ストライプ66にお
ける次の空セグメントであるセグメント2を参照する。
セグメント・フィル・ポインターは、順にそのストライ
プをステップし、それぞれの空のセグメントをセグメン
ト1から始まりセグメント5で終わる連続した態様で参照
する。
ジャーは、これらの2つのポインターの助けにより、デ
ィスク・アレイのすべてのセグメントのパリティ状態を
効果的に追跡する。部分的ストライプ・ポインター62に
よって選ばれたストライプに関し、セグメント・フィル
・ポインター64の前のセグメントは、ストライプ・パリ
ティに編入されるデータを含むことが知られており、そ
して、セグメント・フィル・ポインターに続くセグメン
トは、空でまだストライプ・パリティに編入されないこ
とが知られている。部分的ストライプ・ポインター64で
参照されないストライプに関しては、データを含むスト
ライプは、ストライプ・パリティによって代表されるす
べてのデータ・セグメントを持つと考えられる。空のス
トライプは、データを含まず、これらのセグメントを表
わすパリティ値を持たないと理解される。
プ・ポインターによって識別されるならば、ユーザ・デ
ータはセグメント・フィル・ポインターによって参照さ
れたセグメントに書かれる。図5において、ユーザ・デ
ータはストライプ66の第1のセグメント1に書かれてい
る。セグメント・フィル・ポインター64が残りのセグメ
ントを順に進むにつれて、パリティのために割り当てら
れているセグメント以外のストライプの各セグメントに
ユーザ・データが書き込まれる。この場合、パリティは
最後のセグメント5に書かれる。パリティ・セグメント
がそのストライプにおける最後のものでないならば、セ
グメント・フィル・ポインターは、そのストライプを順
次通る間、パリティ・セグメントをスキップし、ユーザ
・データがそのストライプのすべてのデータ・セグメン
トに置かれたあと、戻ってパリティをパリティ・セグメ
ントに書き込む。そのストライプにおけるパリティ・セ
グメントの位置は、当技術分野で一般的であるパリティ
配置方法によって決定される。ユーザ・データがポイン
ター64で参照されたセグメントだけに書かれ、他のデー
タ・セグメントは、参照されるまで放っておかれる点に
注意されたい。
は、ストライプにおけるセグメントへの各データ書込み
に続いて、増加的に生成される。図3に関して説明した
ように、パリティ値は、排他的論理和(XOR)作用のよ
うな論理関数に従って計算される。一つのセグメントだ
けが満たされるとき、図5における示されるように、パ
リティ値は、そのユーザ・データと同じである。しかし
より多くのセグメントが満たされると、パリティ値は、
すべての満たされたセグメントに含まれるユーザ・デー
タのためのパリティを反映するよう増加的に変化する。
そのストライプにおける空のすなわち不使用のセグメン
トは、逐次的な書込みプロセスの間、管理されず、した
がって増加的パリティ生成に含まれない。
的に格納するパリティ・キャッシュ72を含む。新しいセ
グメントが書かれるにつれて、メモリ・マネージャー
は、前にキャシュされたパリティ値および次のセグメン
トに書かれたばかりのユーザ・データの論理関数(すな
わち、XOR)に基づいて、新しいパリティ値を計算す
る。すべてのデータを有するセグメントが満たされるま
で、逐次的セグメント書込みおよび増加的キャッシング
が、セグメントごとに繰り返される。
値は、各書込みの後、ディスク・アレイに書かれる必要
はない。その代わり、パリティ値は、すべてのデータ・
セグメントが満たされたあと、ディスク・アレイに書か
れるだけである。すなわち、セグメント・フィル・ポイ
ンター64が最後のセグメント5に達するとき、RAID管理
システムがストライプ66用のパリティ・セグメントにパ
リティ値を書き込む。パリティを格納するためにそのス
トライプ内の任意のセグメントを使うことができるけれ
ども、いまの場合、書き込まれるセグメントは、セグメ
ント5である。
ロセスの間、ディスク・アレイからユーザ・データおよ
びパリティを読む必要性を排除し、それによって従来の
ディスク・アレイの最初の2つのI/Oを排除する。さら
に、パリティ値をキャッシングすることによって、ディ
スク・アレイは、パリティが各ストライプについてディ
スクに書かれる回数を効果的に減らす。より具体的に
は、先行技術のディスク・アレイがユーザ・データをパ
リティで書き込むのに4つのI/Oを必要としたのに対し
て、この発明のディスク・アレイは、ユーザ・データを
パリティで書き込むのに、1+1/(N-1) だけのI/Oを必
要とする(ここで、Nはストライプにおけるディスクの
数である)。
インター62、セグメント・フィル・ポインター64および
パリティ・キャッシュ72は、メモリ・マネージャーによ
って管理され、維持される。好ましい実施例において、
メモリ・マネージャーは、ディスク・アレイ上でユーザ
・データ、冗長性データおよび不使用のスペースを追跡
し続けるRAID管理システム16(図1)として具体化され
る。しかし、単にパリティ記憶に従ってメモリ割当てを
管理するためだけに構成されたメモリ・マネージャー
を、この発明において使うことができる。
ディスク・アレイにユーザ・データを書くための好まし
い方法を図示する。プロセスは、部分的ストライプ・ポ
インター62がヌル(無効)で、満たされていないストラ
イプを現在参照していないことを意味しているかどうか
を判断するステップ100(図6)から始まる。部分的スト
ライプ・ポインターがストライプを指しているならば
(すなわち、ステップ100から[NO」分岐)、ユーザ・デ
ータは、セグメント・フィル・ポインター64で参照され
た次の不使用のセグメントに書かれる(ステップ10
2)。満たされたセグメントに含まれるすべてのユーザ
・データに対する増加的なパリティ値が、新しいユーザ
・データをキャッシュ記憶するされたパリティとXORし
(ステップ104)することにより計算され、再びキャッ
シュ記憶される(ステップ106)。
インター64がそのストライプにおける最後のセグメント
を参照しているかどうか判断される。RAID管理システム
は、ストライプにおける新しいスペースの割当てを追跡
する。それは、どれくらいのセグメントがストライプに
あるかということと、ストライプにおいてまだ割り当て
られていないすべての不使用のセグメントを知ってい
る。上で示したように、RAID管理システムは、セグメン
ト・フィル・ポインターの前のすべてのセグメントがス
トライプ・パリティに反映されており、そのポインター
の後ろのすべてのセグメントが空で、ストライプ・パリ
ティには考慮されてないと、仮定する。さらに、RAID管
理システムは、データを含み参照されないストライプ
が、すべてのセグメントをそのストライプ・パリティに
編入してもらっており、そして、すべての空の参照され
ないストライプは、パリティの一部でないセグメントを
持つと、仮定する。
理システムは、アレイにおけるポインターの位置と同様
にディスク・アレイにおけるおける任意のセグメントの
パリティ状態を知っている。したがって、RAID管理シス
テムは、セグメント・フィルポインターがそのストライ
プの終わりに着いたかどうかを知る。ポインターが最後
のセグメントにまだ届いていないならば(すなわち、ス
テップ108から「NO」分岐)、セグメント・フィル・ポ
インターは、次のデータ・セグメントに動かされる(ス
テップ110、図7)。ステップ104で計算されたパリティ
値は、次いでそのストライプのパリティ・セグメントに
書かれうる(ステップ112)。
ル・ポインターが最後のセグメントに達していると、全
ストライプのためのパリティを表わすキャッシュされた
パリティ値は、そのストライプのパリティ・セグメント
に書かれる(ステップ114)。この点で、そのストライ
プは、完全にユーザ・データおよび冗長情報でいっぱい
にある。
に、部分的ストライプ・ポインターは、次の空のストラ
イプ(ステップ116)を識別するために再び使われるま
で、無効にされることができる。ステップ118で、RAID
管理システムは、ストライプのセグメントに書かれたば
かりのユーザ・データが以前にディスク・アレイのどこ
か別のところに割り当てられていたかどうかを評価す
る。例えば、RAID管理システムがディスク・アレイ上で
ユーザ・データを再編成しユーザ・データを一つのロケ
ーションから他に移動させるとき、そのような状況が生
じる。それが書き直されたユーザ・データであるならば
(すなわち、ステップ118からの「YES」分岐)、RAID管
理システムは、その古いロケーションからユーザ・デー
タを割り当て解除し、それによって、前のストライプに
「穴」(すなわち、空のセグメント)をつくる。ステッ
プ122で、メモリーマップ60は、新しいデータ・ロケー
ションを反映するよう更新される。
分的ストライプ・ポインターは、一つのストライプの完
成と新しい空ストライプの識別の間の間隔においてヌル
である。部分的ストライプ・ポインターがヌル(すなわ
ち、ステップ100から「YES」分岐)であるならば、RAID
管理システムが新しい空ストライプを探索する(ステッ
プ124、図7)。空のストライプが識別できない場合(す
なわち、ステップ124から「NO」分岐)、RAID管理シス
テムは、「穴」を有する部分的に満たされたストライプ
を見つけ、それを空にする(ステップ126)。このプロ
セスは、ごみ集め(ガーベッジ・コレクション;garbag
e collection)として知られており、その例が図8に示
される。
し4にわたるストライプ150ないし156を示す。ユーザ・
データを含んでいるセグメントは、数字が続く文字
「D」で示される。空か不使用のセグメントは、文字
「U」によって示される。不使用のセグメントUがストラ
イプ150ないし156に「穴」をつくることに注意された
い。例示の目的で、RAID管理システムがストライプ150
を空にすると決めたとする。ディスク0上のセグメント
におけるユーザ・データD0は、ストライプ154の不使用
セグメントに動かされ、ディスク2上のセグメントにお
けるユーザ・データDlは、ストライプ152の不使用セグ
メントに動かされる。このデータ移動によってストライ
プ150が空にされ、このストライプは、いまや不使用の
データ・セグメントおよびパリティ・セグメントから成
る。同時に、データ移動は、他のストライプにおける
「穴」を満たし、それらのストライプをよりいっぱいに
する。
すべきストライプからユーザ・データを他のストライプ
の穴にランダムに移動させる。別の実施例においては、
ごみ集めプロセスは、ユーザ・データをセグメントごと
に順に書く上述の方法と同じ態様で、指定のストライプ
から新しい空ストライプに順にユーザ・データを書く。
他のごみ集め技法を、図7のステップ126でストライプを
空にするために同様に使うことができる。
は、空のストライプを選んで(ステップ128)、そのス
トライプを参照するよう部分的ストライプ・ポインター
をセットする(ステップ130)。セグメント・フィル・
ポインターは、そのストライプの始めを参照するよう初
期状態にされる(ステップ132)。それから、ユーザ・
データは第1の不使用セグメントに書かれる(ステップ
134)。ステップ136で、最初のパリティ値は、そのユー
ザ・データと等しく設定されて、キャッシュされる。そ
れ後、セグメント・フィル・ポインターが、次のデータ
・セグメントに動かされ(ステップ110)、プロセス
は、そのストライプの残りのセグメントについて続けら
れる。
れらのストライプ内のをセグメントを識別する2つの種
類のポインターを使う。別の具体化においては、一つの
RAID領域につき一対のようにNVRAMに複数の対のポイン
ターを保持してもよい。キャッシュ記憶されたパリティ
の管理は、複数のストライプの増分的充填で調整され
る。複数の対のポインターが使われるならば、調整は、
異なるストライプからの複数のパリティ・セグメントを
キャッシュ記憶すること、および/またはキャッシュ・
パリティを、各データ・セグメントが書かれたあとパリ
ティを示すなどのように、キャッシュ資源の適時の再利
用を許すパターンで、示すことを含みうる。
管理システムは、ストライプの終わりのセグメントが空
であり、ストライプの初めの1つまたは複数の連続した
セグメントにユーザ・データを含む部分的に満たされた
ストライプを選ぶよう構成することができる。RAID管理
システムは、セグメント・フィルポインターを部分的に
満たされたストライプにおける最初の空セグメントに初
期設定し、それから上述したのと同じ技法に従って、順
次書込みを続ける。
めにストライプごとに続けることができることに注意さ
れたい。別の好ましい実施例において、ポインターの各
対が、ストライプおよびその中のセグメントの両方を識
別する一つのポインターに結合される。
として、RAID管理システムは、どのデータ・セグメント
が、ストライプ・パリティに編入され、どれが編入され
ないかを決定する手段として、ビットマップを使うこと
ができる。そのビットマップは、ディスク・アレイのあ
らゆるセグメントについての情報を含む。ポインターと
比較してこの具体化例は、NVRAMにより多くのメモリー
スペースを必要とするが、データ・セグメントのパリテ
ィを追跡するのに効果的である。
関して説明した。しかし、この発明が、記述された特定
の特長に限定されないことが理解されねばならない。し
たがって、この発明は、特許請求の範囲に従って均等論
に従って解釈される適正な範囲でのあらゆる形態および
変更を含むものである。
む。 1. 複数の記憶ディスク(12)を持ち、複数のストライ
プに構成されているディスク・アレイ(11)で、各ストラ
イプが複数の記憶ディスク(12)にわたって延び、記憶
スペースの複数のセグメントを含み、各セグメントがデ
ィスク・アレイの一つの記憶ディスク上のストライプの
一部分であるディスク・アレイに、冗長なパリティ記憶
技法に従ってユーザ・データを書くための方法であっ
て、(a)ユーザ・データまたはパリティ情報を持つセグ
メントと空のセグメントとを区別するステップと、(b)
ディスク・アレイ(12)における空のセグメントを持つ
満たされていないストライプ(66)を同定するステップ
と、(c)同定されたストライプ(66)において空のセグメ
ントを見つけるステップと、(d)そのストライプの他の
セグメントにユーザ・データを書くことなくストライプ
の空のセグメントにユーザ・データを書き込むステップ
と、(e)ステップ(d)でセグメントにユーザ・データが書
き込まれたあと、書かれたストライプのセグメントだけ
に含まれるユーザ・データに対するパリティ値を決定す
るステップと、および(f)ストライプの他のセグメント
の1つまたは複数を満たすために上記ステップ(c)ない
し(e)を繰り返すステップと、を含む方法。
いないストライプ(66)を参照するために部分的ストライ
プ・ポインター(62)を使うことを含み、上記見つけるス
テップは、ストライプに書き込むべきセグメントを参照
するためにセグメント・フィル・ポインター(64)を使う
ことを含み、さらに、ディスク・アレイ(11)と別に不
揮発性メモリー(21)を提供するステップ、および不揮発
性メモリー(21)に部分的ストライプ・ポインターおよび
セグメント・フィル・ポインターを格納するステップを
含む蒸気の方法。 3. 上記見つけるステップが満たされていないストライ
プ内の順に従って空のセグメントを連続的に参照するこ
とを含む上記1の方法。 4. さらに、ディスク・アレイ(11)とは別に不揮発性
メモリー(21)を提供するステップ、および上記決定する
ステップの後に、上記パリティ値を上記不揮発性メモリ
ーに一時的にキャッシュ記憶するステップを含む上記1
に記載の方法。 5. さらに、以下のステップを含んでいる上記1の方法:
一時的に、上記決定するステップ(e)の都度、上記パリ
ティ値をキャッシュ記憶するステップ;および上記決定
するステップは、前にキャッシュ記憶されたパリティ
値、およびストライプの空のセグメントに最も最近書か
れたユーザ・データの論理関数に基づいて新しいパリテ
ィ値を計算するステップ。 6. さらに、上記決定するステップ(e)の都度、ディスク
・アレイ(11)にパリティ値を書くステップを含む上記
1の方法。
数のストライプに構成されているディスク・アレイ(1
1)であって、各ストライプが複数の記憶ディスクにわ
たって延び、記憶スペースの複数のセグメントを含み、
各セグメントがディスク・アレイ(11)の一つの記憶デ
ィスクにあるストライプの一部分であるディスク・アレ
イに、冗長なパリティ記憶技法に従ってユーザ・データ
を書く次のステップを含む方法: (a) ディスク・アレイ(11)とは別に不揮発性メモリー
(21)を用意するステップ; (b)不揮発性メモリー(21)にディスク・アレイの個々の
ストライプを参照する部分的ストライプ・ポインター(6
2)を提供するステップ; (c)不揮発性メモリー(21)に参照されたストライプの個
々のセグメントを参照するセグメント・フィル・ポイン
ター(64)を提供するステップ; (d)部分的ストライプ・ポインター(62)を空のストライ
プにセットすることによって空のストライプ(66)を選ぶ
ステップ; (e)セグメント・フィル・ポインター(64)を最初のセグ
メントにセットすることによって選ばれたストライプの
最初のセグメントを選ぶステップ; (f)そのストライプの他のセグメントを空のまま残して
上記最初のセグメントにユーザ・データを書き込むステ
ップ; (g)ストライプの最初のセグメントだけについてパリテ
ィ値を計算するステップ; (h)パリティ値を不揮発性メモリー(21)にキャッシュ記
憶するステップ; (i)セグメント・フィル・ポインター(64)を使ってスト
ライプの次のセグメントを選ぶステップ; (j)ストライプの次のセグメントにユーザ・データを書
き込むステップ;および(k)キャッシュ記憶されたパリ
ティ値および次のセグメントに書かれたユーザ・データ
に基づいて別のパリティ値を計算するステップ。
わたって延び、記憶スペースの複数のセグメントを含
む、複数のストライプに構成された、複数の記憶ディス
ク(12)を有するディスク・アレイ(11)であって、各
セグメントがディスク・アレイ(11)の一つの記憶ディ
スクのストライプの一部分であるディスク・アレイ(11)
と、記憶ディスクへのおよび記憶ディスクからのデータ
転送を調整するためにディスク・アレイ(11)に結合され
たディスク・アレイ・コントローラ(14)と、パリティ
冗長技法に従ってがユーザ・データを冗長に格納するた
めにメモリ割当てを管理するためにディスク・アレイ・
コントローラ(14)に結合されたメモリ・マネージャー
(I6)とを備え、メモリ・マネージャーは、ユーザ・デ
ータをデータ・セグメントに、パリティ情報をパリティ
・セグメントに配置し、これにより少くとも1つのパリ
ティ・セグメントおよび一つまたは複数のデータ・セグ
メントが各ストライプに含まれ、メモリ・マネージャー
(16)は、どのデータ・セグメントが、ストライプのパリ
ティ情報に編入されるか決定するための手段を持ち、満
たされていないストライプ(66)およびそのストライプに
おける空のセグメントを選び、また、メモリ・マネージ
ャーは、選ばれたセグメントにユーザ・データを書き込
み、各セグメントが書き込まれた後、書き込まれたスト
ライプのセグメントに含まれるユーザ・データに基づく
そのストライプのパリティ値を増分的に決定するように
したデータ記憶システム。 9. 上記8のデータ記憶システムであって、上記メモリ・
マネージャーの上記決定する手段は、ディスク・アレイ
(11)における個々のストライプを参照する部分的スト
ライプ・ポインター(62)と、参照されたストライプにお
ける個々のセグメントを参照するセグメント・フィル・
ポインター(64)と、そのポインターを使って満たされて
いないストライプ、およびそのストライプにおけるセグ
メントを選ぶメモリ・マネージャー(16)と、を備える
データ記憶システム。 10. パリティ値が決定される都度、パリティ値をキャッ
シュ記憶するために常駐する不揮発性メモリー(21)と、
前にキャッシュ記憶されたパリティ値、および最も最近
ストライプの空のセグメントに書かれたユーザ・データ
の論理関数に基づいて新しいパリティ値を計算するメモ
リ・マネージャー(16)と、を備える上記8のデータ記憶
システム。
間、必要とされるI/Oの数が少ない改善された書込み性
能を持つディスク・アレイ・データ記憶システムが得ら
れる。
イ・データ記憶システムの図表のブロック図である。
表で、RAIDレベル1によるデータ記憶を示している。
で、RAIDレベル5によるデータ記憶を示す。
スの上へマップされている、この発明のメモリーマッピ
ング取り決めの図表である。
スペースに維持されるポインター間の相互作用を示すブ
ロック図である。
データを書き込むステップを示す流れ図である。
データを書き込むステップを示す流れ図である。
の記憶スペースの図表である。
Claims (1)
- 【請求項1】 複数の記憶ディスクを持ち、各ストライ
プが複数の記憶ディスクにわたって延び、それぞれ記憶
スペースの複数のセグメントを含む複数のストライプに
構成され、それぞれのセグメントがディスク・アレイの
一つの記憶ディスク上のストライプの一部分であるディ
スク・アレイにおいて、冗長性パリティ記憶技法に従っ
てユーザ・データを書き込む方法であって、 (a)ユーザ・データまたはパリティ情報を持つセグメン
トと空のセグメントとを区別するステップと、 (b)上記ディスク・アレイにおける上記空のセグメント
を持つ満たされていないストライプを同定するステップ
と、 (c)上記同定されたストライプにおいて上記空のセグメ
ントを見つけるステップと、 (d)上記ストライプの他のセグメントにユーザ・データ
を書くことなく該ストライプの上記空のセグメントにユ
ーザ・データを書き込むステップと、 (e)上記ステップ(d)でセグメントにユーザ・データが書
き込まれたあと、上記ストライプの書き込まれたセグメ
ントだけに含まれるユーザ・データに対するパリティ値
を決定するステップと、 (f)上記ストライプの他のセグメントの1つまたは複数
を満たすために上記ステップ(c)ないし(e)を繰り返すス
テップと、を含む方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US386,582 | 1995-02-10 | ||
| US08/386,582 US5537534A (en) | 1995-02-10 | 1995-02-10 | Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08249134A true JPH08249134A (ja) | 1996-09-27 |
| JP3753461B2 JP3753461B2 (ja) | 2006-03-08 |
Family
ID=23526204
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33455995A Expired - Fee Related JP3753461B2 (ja) | 1995-02-10 | 1995-12-22 | 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5537534A (ja) |
| EP (1) | EP0726520B1 (ja) |
| JP (1) | JP3753461B2 (ja) |
| DE (1) | DE69533058T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6813685B1 (en) | 1997-10-17 | 2004-11-02 | Fujitsu Limited | System for storing data and method of controlling the writing of redundant data |
Families Citing this family (108)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3315779B2 (ja) * | 1993-11-16 | 2002-08-19 | 富士通株式会社 | ディスク装置間のファイル転送装置およびファイル転送方法 |
| JP3687111B2 (ja) * | 1994-08-18 | 2005-08-24 | 株式会社日立製作所 | 記憶装置システムおよび記憶装置の制御方法 |
| DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
| JP3371044B2 (ja) * | 1994-12-28 | 2003-01-27 | 株式会社日立製作所 | ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 |
| US5657468A (en) * | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
| US6098128A (en) | 1995-09-18 | 2000-08-01 | Cyberstorage Systems Corporation | Universal storage management system |
| US5812753A (en) * | 1995-10-13 | 1998-09-22 | Eccs, Inc. | Method for initializing or reconstructing data consistency within an array of storage elements |
| US5720025A (en) * | 1996-01-18 | 1998-02-17 | Hewlett-Packard Company | Frequently-redundant array of independent disks |
| US5790774A (en) * | 1996-05-21 | 1998-08-04 | Storage Computer Corporation | Data storage system with dedicated allocation of parity storage and parity reads and writes only on operations requiring parity information |
| US5764880A (en) * | 1996-09-10 | 1998-06-09 | International Business Machines Corporation | Method and system for rebuilding log-structured arrays |
| US5875457A (en) * | 1996-10-08 | 1999-02-23 | Mylex Corporation | Fault-tolerant preservation of data integrity during dynamic raid set expansion |
| US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
| US5943690A (en) * | 1997-04-07 | 1999-08-24 | Sony Corporation | Data storage apparatus and method allocating sets of data |
| US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
| US5845279A (en) * | 1997-06-27 | 1998-12-01 | Lucent Technologies Inc. | Scheduling resources for continuous media databases |
| US6377543B1 (en) | 1997-08-13 | 2002-04-23 | Telecommunications Research Laboratories | Path restoration of networks |
| US6021462A (en) * | 1997-08-29 | 2000-02-01 | Apple Computer, Inc. | Methods and apparatus for system memory efficient disk access to a raid system using stripe control information |
| US6098119A (en) * | 1998-01-21 | 2000-08-01 | Mylex Corporation | Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level |
| US6295640B1 (en) * | 1998-05-08 | 2001-09-25 | Apple Computer, Inc. | Method and apparatus for distinguishing reference values from non-reference values in a runtime environment |
| US6151685A (en) * | 1998-05-15 | 2000-11-21 | International Business Machines Corporation | System and method for recovering a segment directory for a log structured array |
| US6704837B2 (en) * | 1998-06-29 | 2004-03-09 | International Business Machines Corporation | Method and apparatus for increasing RAID write performance by maintaining a full track write counter |
| US6378038B1 (en) * | 1999-03-31 | 2002-04-23 | International Business Machines Corporation | Method and system for caching data using raid level selection |
| US6532548B1 (en) | 1999-09-21 | 2003-03-11 | Storage Technology Corporation | System and method for handling temporary errors on a redundant array of independent tapes (RAIT) |
| US6611827B1 (en) | 1999-10-01 | 2003-08-26 | International Business Machines Corporation | Redundant disk array and method for redundant disk array access using contiguous page grouping |
| US6546499B1 (en) | 1999-10-14 | 2003-04-08 | International Business Machines Corporation | Redundant array of inexpensive platters (RAIP) |
| US7007193B1 (en) | 2000-01-07 | 2006-02-28 | Storage Technology Corporation | Method and system for reconstructing data serially arranged on a magnetic tape track |
| US6718404B2 (en) * | 2000-06-02 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Data migration using parallel, distributed table driven I/O mapping |
| US6530004B1 (en) | 2000-06-20 | 2003-03-04 | International Business Machines Corporation | Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration |
| US7539828B2 (en) * | 2000-08-08 | 2009-05-26 | Faronics Corporation | Method and system for automatically preserving persistent storage |
| US20020099736A1 (en) * | 2001-01-23 | 2002-07-25 | Neo-Core, L.L.C. | Method of storing a structured data document |
| US20020099745A1 (en) * | 2001-01-23 | 2002-07-25 | Neo-Core, L.L.C. | Method and system for storing a flattened structured data document |
| US20020156973A1 (en) * | 2001-01-29 | 2002-10-24 | Ulrich Thomas R. | Enhanced disk array |
| US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
| US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
| US20020124137A1 (en) * | 2001-01-29 | 2002-09-05 | Ulrich Thomas R. | Enhancing disk array performance via variable parity based load balancing |
| US6990667B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
| US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
| US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
| US20030023584A1 (en) * | 2001-04-27 | 2003-01-30 | Brandin Christopher Lockton | Universal information base system |
| US6742081B2 (en) * | 2001-04-30 | 2004-05-25 | Sun Microsystems, Inc. | Data storage array employing block checksums and dynamic striping |
| US6785788B1 (en) * | 2001-07-03 | 2004-08-31 | Unisys Corporation | System and method for implementing an enhanced raid disk storage system |
| US7055056B2 (en) * | 2001-11-21 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | System and method for ensuring the availability of a storage system |
| US7024586B2 (en) * | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
| KR100490723B1 (ko) * | 2002-11-29 | 2005-05-24 | 한국전자통신연구원 | 파일 레벨 스트라이핑 장치 및 방법 |
| US7328305B2 (en) | 2003-11-03 | 2008-02-05 | Network Appliance, Inc. | Dynamic parity distribution technique |
| JP2005165441A (ja) * | 2003-11-28 | 2005-06-23 | Hitachi Ltd | ストレージ制御装置、及びストレージ制御装置の制御方法 |
| JP4521865B2 (ja) * | 2004-02-27 | 2010-08-11 | 株式会社日立製作所 | ストレージシステム、計算機システムまたは記憶領域の属性設定方法 |
| WO2005067887A2 (en) * | 2004-03-24 | 2005-07-28 | Actavis Group | Formulations of ramipril |
| US7370163B2 (en) * | 2004-05-03 | 2008-05-06 | Gemini Storage | Adaptive cache engine for storage area network including systems and methods related thereto |
| US20060036904A1 (en) * | 2004-08-13 | 2006-02-16 | Gemini Storage | Data replication method over a limited bandwidth network by mirroring parities |
| US7457980B2 (en) * | 2004-08-13 | 2008-11-25 | Ken Qing Yang | Data replication method over a limited bandwidth network by mirroring parities |
| JP2006107311A (ja) * | 2004-10-08 | 2006-04-20 | Hitachi Ltd | ディスクアレイ装置およびその制御方法 |
| JP4950897B2 (ja) * | 2004-11-05 | 2012-06-13 | ドロボ, インコーポレイテッド | 種々のサイズの格納デバイスを可能にする動的に拡張可能かつ縮小可能な故障許容格納システム、および方法 |
| US7873782B2 (en) * | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
| US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
| US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
| US20060123271A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR |
| US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
| US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
| US20070098782A1 (en) * | 2005-10-28 | 2007-05-03 | Selamine Limited | Ramipril Formulation |
| GB2431579A (en) * | 2005-10-28 | 2007-05-02 | Arrow Int Ltd | Ramipril formulations |
| US7809919B2 (en) * | 2006-07-26 | 2010-10-05 | Hewlett-Packard Development Company, L.P. | Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem |
| EP2051696A2 (en) * | 2006-08-18 | 2009-04-29 | Morton Grove Pharmaceuticals, Inc. | Stable liquid levetiracetam compositions and methods |
| WO2008150927A2 (en) | 2007-05-30 | 2008-12-11 | Schooner Information Technology | System including a fine-grained memory and a less-fine-grained memory |
| JP2009098996A (ja) | 2007-10-18 | 2009-05-07 | Hitachi Ltd | ストレージシステム |
| US8732386B2 (en) | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
| US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
| US8266501B2 (en) | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
| US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
| US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
| US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
| US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
| US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
| US8666939B2 (en) | 2010-06-28 | 2014-03-04 | Sandisk Enterprise Ip Llc | Approaches for the replication of write sets |
| US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
| US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
| US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
| JP2013196276A (ja) * | 2012-03-19 | 2013-09-30 | Fujitsu Ltd | 情報処理装置、プログラムおよびデータ配置方法 |
| US8862818B1 (en) * | 2012-09-27 | 2014-10-14 | Emc Corporation | Handling partial stripe writes in log-structured storage |
| US20140208005A1 (en) * | 2013-01-22 | 2014-07-24 | Lsi Corporation | System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache |
| RU2552151C2 (ru) * | 2013-09-17 | 2015-06-10 | Общество с ограниченной ответственностью "РЭЙДИКС" | Способ контроля корректности записи данных в двухконтроллерной системе хранения данных на массиве энергонезависимых носителей и устройство для его осуществления |
| US9418131B1 (en) | 2013-09-24 | 2016-08-16 | Emc Corporation | Synchronization of volumes |
| US9378106B1 (en) | 2013-09-26 | 2016-06-28 | Emc Corporation | Hash-based replication |
| US9342465B1 (en) | 2014-03-31 | 2016-05-17 | Emc Corporation | Encrypting data in a flash-based contents-addressable block device |
| US9606870B1 (en) * | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
| US9396243B1 (en) | 2014-06-27 | 2016-07-19 | Emc Corporation | Hash-based replication using short hash handle and identity bit |
| US9569303B2 (en) * | 2014-08-08 | 2017-02-14 | Kabushiki Kaisha Toshiba | Information processing apparatus |
| US10025843B1 (en) | 2014-09-24 | 2018-07-17 | EMC IP Holding Company LLC | Adjusting consistency groups during asynchronous replication |
| US9304889B1 (en) | 2014-09-24 | 2016-04-05 | Emc Corporation | Suspending data replication |
| US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
| US10324635B1 (en) | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
| US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
| US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
| US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
| US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
| US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
| US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
| US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
| US10083067B1 (en) | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
| US10013200B1 (en) | 2016-06-29 | 2018-07-03 | EMC IP Holding Company LLC | Early compression prediction in a storage system with granular block sizes |
| US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
| US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
| US10691354B1 (en) | 2018-01-31 | 2020-06-23 | EMC IP Holding Company LLC | Method and system of disk access pattern selection for content based storage RAID system |
| WO2019183958A1 (zh) | 2018-03-30 | 2019-10-03 | 华为技术有限公司 | 数据写入方法、客户端服务器和系统 |
| US10540231B2 (en) | 2018-04-04 | 2020-01-21 | International Business Machines Corporation | Log-structured array (LSA) partial parity eviction and reassembly |
| CN110413205B (zh) * | 2018-04-28 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质 |
| US10437670B1 (en) | 2018-05-24 | 2019-10-08 | International Business Machines Corporation | Metadata hardening and parity accumulation for log-structured arrays |
| CN118760401A (zh) * | 2024-07-04 | 2024-10-11 | 北京火山引擎科技有限公司 | 文件处理方法、装置及电子设备 |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
| US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
| US4989205A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
| US5072378A (en) * | 1989-12-18 | 1991-12-10 | Storage Technology Corporation | Direct access storage device with independently stored parity |
| US5195100A (en) * | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
| US5166939A (en) * | 1990-03-02 | 1992-11-24 | Micro Technology, Inc. | Data storage apparatus and method |
| US5124987A (en) * | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
| US5155845A (en) * | 1990-06-15 | 1992-10-13 | Storage Technology Corporation | Data storage system for providing redundant copies of data on different disk drives |
| US5375128A (en) * | 1990-10-18 | 1994-12-20 | Ibm Corporation (International Business Machines Corporation) | Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders |
| US5155835A (en) * | 1990-11-19 | 1992-10-13 | Storage Technology Corporation | Multilevel, hierarchical, dynamically mapped data storage subsystem |
| US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
| US5237658A (en) * | 1991-10-01 | 1993-08-17 | Tandem Computers Incorporated | Linear and orthogonal expansion of array storage in multiprocessor computing systems |
| US5297258A (en) * | 1991-11-21 | 1994-03-22 | Ast Research, Inc. | Data logging for hard disk data storage systems |
| US5287462A (en) * | 1991-12-20 | 1994-02-15 | Ncr Corporation | Bufferless SCSI to SCSI data transfer scheme for disk array applications |
| US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
| US5289418A (en) * | 1992-02-14 | 1994-02-22 | Extended Systems, Inc. | Memory apparatus with built-in parity generation |
| US5410667A (en) * | 1992-04-17 | 1995-04-25 | Storage Technology Corporation | Data record copy system for a disk drive array data storage subsystem |
| US5408644A (en) * | 1992-06-05 | 1995-04-18 | Compaq Computer Corporation | Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem |
| US5392244A (en) * | 1993-08-19 | 1995-02-21 | Hewlett-Packard Company | Memory systems with data storage redundancy management |
-
1995
- 1995-02-10 US US08/386,582 patent/US5537534A/en not_active Expired - Lifetime
- 1995-08-04 DE DE69533058T patent/DE69533058T2/de not_active Expired - Lifetime
- 1995-08-04 EP EP95112326A patent/EP0726520B1/en not_active Expired - Lifetime
- 1995-12-22 JP JP33455995A patent/JP3753461B2/ja not_active Expired - Fee Related
-
2002
- 2002-10-04 US US10/264,639 patent/US20030148960A1/en not_active Abandoned
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6813685B1 (en) | 1997-10-17 | 2004-11-02 | Fujitsu Limited | System for storing data and method of controlling the writing of redundant data |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0726520A3 (en) | 2000-03-29 |
| DE69533058D1 (de) | 2004-06-24 |
| DE69533058T2 (de) | 2005-05-12 |
| EP0726520B1 (en) | 2004-05-19 |
| US5537534A (en) | 1996-07-16 |
| JP3753461B2 (ja) | 2006-03-08 |
| US20030148960A1 (en) | 2003-08-07 |
| EP0726520A2 (en) | 1996-08-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3753461B2 (ja) | 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム | |
| JP3753259B2 (ja) | 記憶空間を提供する方法およびデータ記憶システム | |
| US5542065A (en) | Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system | |
| JP3699165B2 (ja) | データ記憶装置の記憶容量を拡大する方法 | |
| US5546558A (en) | Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information | |
| US5659704A (en) | Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy | |
| JP3715000B2 (ja) | データ記憶装置のデータを選択する方法 | |
| US6941420B2 (en) | Log-structure array | |
| US6915382B2 (en) | Apparatus and method for reallocating logical to physical disk devices using a storage controller, with access frequency and sequential access ratio calculations and display | |
| US5392244A (en) | Memory systems with data storage redundancy management | |
| US5581724A (en) | Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem | |
| JP3505093B2 (ja) | ファイル管理システム | |
| CN114610232A (zh) | 一种存储系统、内存管理方法和管理节点 | |
| EP0874312A2 (en) | Method of replacing faulty disks in a redundant array of disks | |
| JPH08221875A (ja) | データ記憶システムにおける仮想容量の過大割当てを避ける方法 | |
| EP0538288A1 (en) | SYSTEM FOR RELEASING ERASED DATA FILE SPACES FOR VIRTUAL DATA STORAGE SUBSYSTEM WITH DYNAMIC LOCATION PLAN. | |
| JP3687111B2 (ja) | 記憶装置システムおよび記憶装置の制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050614 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050617 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050701 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051006 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051213 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051213 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091222 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101222 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111222 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121222 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131222 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |