JP3753766B2 - 階層データ記憶システムの記憶スペース確保方法 - Google Patents

階層データ記憶システムの記憶スペース確保方法 Download PDF

Info

Publication number
JP3753766B2
JP3753766B2 JP31216695A JP31216695A JP3753766B2 JP 3753766 B2 JP3753766 B2 JP 3753766B2 JP 31216695 A JP31216695 A JP 31216695A JP 31216695 A JP31216695 A JP 31216695A JP 3753766 B2 JP3753766 B2 JP 3753766B2
Authority
JP
Japan
Prior art keywords
virtual
mirror
raid
storage
storage space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP31216695A
Other languages
English (en)
Other versions
JPH08278850A (ja
Inventor
テレサ・エイ・バークス
ブライアン・エム・ダイアモンド
マーヴィン・ディー・ネルソン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08278850A publication Critical patent/JPH08278850A/ja
Application granted granted Critical
Publication of JP3753766B2 publication Critical patent/JP3753766B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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

Description

【0001】
【発明の属する技術分野】
本発明は冗長階層データ記憶システムにおけるデータの移動のための記憶スペースを確保する方法に関する。また、本発明は階層データ記憶システム自体をも対象とする。
【0002】
【従来の技術】
コンピュータシステムの速度、信頼性及び処理速度は絶え間なく進歩し続けている。その結果、コンピュータはより複雑で高度なアプリケーションを処理できるようになってきている。コンピュータの進歩に伴なって、大容量記憶・入出力(I/O)装置の性能に対する要求も高くなっている。コンピュータシステムの進歩に対応した性能を有する大容量記憶システムを設計することが必要とされている。
【0003】
【発明が解決しようとする課題】
本発明は特に、ディスクアレイ型の大容量記憶システムに関する。ディスクアレイデータ記憶システムは単一の大容量記憶システムを形成するように構成され調整された複数の記憶ディスク駆動装置を有する。大容量記憶システムの設計については、コスト、性能、及び可用性の3つの主たる評価基準がある。メガバイトあたりのコストが低く、入出力性能が高く、データの可用性の高い記憶装置を製造することが最も望ましい。“可用性”とは、記憶システムに記憶されたデータへのアクセス能力、及び故障のさいにも連続動作を保証する能力を指す。通常、データの可用性はデータやデータ間の関係が複数の記憶場所に記憶される冗長を用いて与えられる。
【0004】
冗長データの記憶には通常2つの方法がある。第1の“ミラー”法によれば、データは複製され、記憶システムの2つの異なる領域に記憶される。例えば、あるディスクアレイにおいて、同一のデータがこのディスクアレイの2つの異なるディスクに設けられる。ミラー法は二重記憶技術を用いるために高性能であり、データの可用性が高いという利点がある。しかし、ミラー法はまたデータの記憶コストが倍になるためにコストがかかる。
【0005】
第2の“パリティ”法では、記憶領域の一部を用いて冗長データが記憶される。しかし、この冗長記憶領域のサイズはオリジナルデータの記憶に用いられる他の記憶スペースより小さい。例えば、5つのディスクを有するディスクアレイでは、4つのディスクがデータの記憶に用いられ、第5のディスクが冗長データの記憶のみに用いられる。パリティ法はミラー法より低コストであるという利点があるが、同時にミラー法に比べて性能と可用性が低いという欠点がある。
【0006】
【課題を解決するための手段】
本発明は異なる冗長技術を用いてデータを記憶することによって性能と信頼性を最適化する階層データ記憶システムを提供するものである。このデータ記憶システムは、複数の記憶ディスクを有するディスクアレイとディスク間のデータ転送を調整するディスクアレイコントローラからなる。記憶ディスクは物理的記憶スペースをなす。また、このデータ記憶システムはディスクアレイコントローラと連動して記憶ディスクの物理的記憶スペースに2つの仮想記憶スペースをマッピングするRAID管理システムを有する。第1の、あるいはRAIDレベル仮想記憶スペースは、それぞれRAIDレベル1(ミラー冗長)とRAIDレベル5(パリティ冗長)に従ってデータを記憶するミラーRAID領域とパリティRAID領域としての物理的記憶スペースとを提供する。ミラーRAID領域には複数のミラー割り当てブロックが含まれ、パリティRAID領域には複数のパリティ割り当てブロックが含まれる。第2の、あるいはアプリケーションレベル仮想記憶スペースは、複数の仮想ブロックとしての物理的記憶スペースを提供する。これらの仮想ブロックは仮想ブロックテーブルのポインタによってミラー割り当てブロック及びパリティ割り当てブロックと関係付けられる。
【0007】
まず、RAID管理システムがミラーRAID領域のすべてのデータを記憶する。これは、ミラー冗長はパリティ冗長より高い性能と信頼性が得られるためである。割り当てられた容量(すなわち、アプリケーションレベルの仮想記憶スペースの仮想ブロックに記憶されたデータの量)がディスクアレイの用物理的容量の半分を越えるまでは、すべてのデータをミラーRAID領域に記憶することができる。この閾値を越えると、RAID管理システムはいくつかのデータをパリティRAID領域に記憶し始める。RAID管理システムはミラーRAID領域とパリティRAID領域との間で移動し、その結果RAIDレベル1(すなわちミラー冗長)とRAIDレベル5(すなわちパリティ冗長)との間で性能と信頼性が最適化されるような態様でデータの冗長性が変化する。
【0008】
この移動のために充分なスペースが確保されるようにするために、RAID管理システムはミラーRAID領域内で割り当てることのできる仮想ブロック数を制限する。ミラーRAID領域内の仮想ブロックの最大数は記憶ディスクの容量、記憶ディスク数、及びユーザからの各記憶要求の時点での割り当てられた容量の関数に基づいて動的に計算される。
【0009】
【発明の実施の形態】
図1は本発明に従って構成されたデータ記憶システム10を示す。好適には、データ記憶システム10は複数の記憶ディスク12を有する階層ディスクアレイ11、ディスクアレイ11に結合されて記憶ディスク12間のデータ転送を調整するディスクアレイコントローラ14及びRAID管理システム16を有するディスクアレイデータ記憶システムである。
【0010】
本明細書では“ディスク”とは自己の記憶不良を検出することのできる任意の不揮発性ランダムアクセス及び再書き込み可能な大容量記憶装置を指す。ディスクには回転式磁気ディスク及び光ディスクの両方が含まれ、また不揮発性の電子記憶素子(PROM、EPROM、EEPROM等)が含まれる。“ディスクアレイ”という用語は、ディスク、ディスクを1つあるいはそれ以上のホストコンピュータに接続するのに必要なハードウエア、及び物理的ディスクの動作の制御とこれらのディスクをホスト動作環境に1つあるいはそれ以上の仮想ディスクとして提供するのに用いられる管理ソフトウエアの集合を指す。“仮想ディスク”とは管理ソフトウエアによってディスクアレイ内に実現される抽象的なエンティティである。
【0011】
“RAID”(独立したディスクの冗長アレイ)とは、物理的記憶容量の一部が記憶容量の他の部分に記憶されるユーザデータに関する冗長情報の記憶に用いられるディスクアレイを意味する。この冗長情報によって、かかるアレイの1つに属するディスクあるいはそれに対するアクセスパスの故障のさいにユーザデータの再生成を行なうことができる。RAIDシステムの詳細については、米国ミネソタ州、Lino LakesのRAID Advisory Board から1993年6月9日に発行された“The RAID Book: A Source Book for RAID Technology”を参照されたい。
【0012】
ディスクアレイコントローラ14は小型コンピュータシステムインタフェース(SCSI)等の1つあるいはそれ以上のインタフェースバス13を介してディスクアレイ11に接続される。RAID管理システム16はインタフェースプロトコル15を介してディスクアレイコントローラ14と連動する。データ記憶システム10はまたI/Oインタフェースバス17を介してホストコンピュータ(図示せず)に接続されている。RAID管理システム16は別個の構成要素として実施することもでき、またディスクアレイコントローラ14あるいはホストコンピュータの内部に構成してディスク記憶と信頼性レベルの制御及びさまざまな信頼性記憶レベル間でのデータ転送を行なうためのデータ管理手段を提供することもできる。かかる信頼性記憶レベルは好適には上述したミラー冗長レベルやパリティ冗長レベルであるが、全く冗長を有しない信頼性記憶レベルを含めることもできる。
【0013】
ディスクアレイコントローラ14は好適にはディスクアレイコントローラA 14aとディスクアレイコントローラB 14bとからなるデュアルコントローラとして構成される。デュアルコントローラ14a、14bは一方のコントローラが動作不能になった場合にも連続的なバックアップと冗長を提供することによって信頼性を向上させるものである。しかし、本発明は単一のコントローラを用いて、あるいは他のアーキテクチャを用いて実施することもできる。
【0014】
階層ディスクアレイ11は物理的記憶スペースと1つあるいはそれ以上の仮想記憶スペースを含む異なる記憶スペースということができる。これらの異なる記憶態様はマッピング技術を用いて関係付けられる。例えば、ディスクアレイの物理的記憶スペースはさまざまなデータ信頼性レベルに応じた記憶領域を形成する仮想記憶スペースにマッピングすることができる。仮想記憶スペース内の領域のあるものをミラーすなわちRAIDレベル1等の第1の信頼性記憶レベルに割り当て、他の領域をパリティすなわちRAIDレベル5等の第2の信頼性記憶レベルに割り当てることができる。以下に、各種のマッピング技術及びRAIDレベルに関係する仮想スペースについてより詳細に説明する。
【0015】
データ記憶システム10は異なる記憶スペースを互いにマッピングするのに用いられる仮想マッピング情報の持続的な記憶を行なうメモリマップストア21を有する。このメモリマップストアはディスクアレイの外部にあり、好適にはディスクアレイコントローラ14内に設けられる。このメモリマッピング情報は各種のマッピング構成に変更があったとき、コントローラあるいはRAID管理システムによって連続的あるいは周期的に更新することができる。
【0016】
好適には、メモリマップストア21は対応するコントローラ14a、14b内に設けられた2つの不揮発性RAM(ランダムアクセスメモリ)21a、21bとして実施することができる。不揮発性RAM(NVRAM)の一例としては、バッテリバックアップされたRAMが挙げられる。バッテリバックアップされたRAMは、データ記憶システム10の電力損失に際して独立したバッテリ源からのエネルギを用いてある期間メモリ内のデータを維持するものである。好適な構造としては、自己リフレッシュ型のバッテリーバックアップDRAM(ダイナミックRAM)がある。
【0017】
デュアルNVRAM21a、21bはメモリマッピング情報の冗長記憶を可能にする。仮想マッピング情報はミラー冗長技術によって複製され、NVRAM21aとNVRAM21bとの両方に記憶される。このようにして、NVRAM21aをオリジナルのマッピング情報の記憶のみに用い、NVRAM21bを冗長マッピング情報の記憶のみに用いることができる。別の構成では、ミラーメモリマップ記憶を複製されたデータを記憶できるだけのスペースを有する単一の不揮発性RAMを用いて構成することができる。
【0018】
図1に示すように、ディスクアレイ11は複数の記憶ディスク駆動装置12を有する。これらの記憶ディスクのサイズは1から3ギガバイト程度である。記憶ディスクはSCSIバス13とのインタフェースを提供する機械的ベイに単独で接続しまた切り離すことができる。一実施例では、このデータ記憶システムには12の使用可能な機械的ベイが設けられる。4つのSCSIバスを用いてこれらのベイがディスクアレイコントローラ14にインタフェースされる(すなわち3つの機械的ベイに対して1つのバスが用いられる)。これらのベイが完全に使用されると、このデータ記憶システムは例えば12から36ギガバイトの容量を持つことになる。ディスクアレイコントローラ14はどのベイに接続されているかに関わりなく記憶ディスク12を認識する。データ記憶システム10はディスクアレイが動作中にディスクアレイ内の使用可能な機械的ベイに追加のディスクを接続することができるように設計されている、
【0019】
ディスクアレイ11内の記憶ディスク12の概念としては、例えば複数のディスク20のミラーグループ18と複数のディスク24のパリティグループ22に構成されたものとして説明することができる。ミラーグループ18は、第1の、すなわちミラー冗長レベルでデータを記憶するディスクアレイの第1の記憶場所あるいはRAID領域である。このミラー冗長レベルはまたRAIDレベル1と考えることもできる。RAIDレベル1すなわちディスクのミラーリングは、データの各ビットが複製されデータ記憶システム内に記憶される1対1の保護を提供することによって最大限のデータの信頼性を与えるものである。ミラー冗長は図1の3対のディスク20によって表わされる。オリジナルデータは第1のディスク群26に記憶することができ、複製される冗長データはこれと対をなす第2のディスク群28に記憶される。
【0020】
図2はRAIDレベル1のデータ記憶をより詳細に示すものである。縦の列は個々のディスクを表わし、そのうちのディスク0、1、2、及び3を示している。この4つのディスクからなるディスクアレイ内の物理的記憶スペースは横の列で表わすような複数のストライプとして構成することができる。“ストライプ”は複数の記憶ディスクにわたって伸張し、多数の大きさの等しい記憶スペースセグメントからなり、1つのセグメントはアレイ内の各ディスクに関係付けられている。すなわち、1つのセグメントはあるストライプの1つのディスク上に位置する部分である。それぞれのストライプは複数の記憶ディスクに分散された所定量のデータを有する。あるストライプのセグメントの一部はオリジナルデータに用いられ、他のセグメントは冗長データに用いられる。
【0021】
このミラー冗長(RAID1レベル)の例では、ストライプ0のセグメント0のディスク0上に記憶されたデータは複製され、ストライプ0のセグメント0’のディスク1上に記憶される。同様に、ストライプ2のセグメント5のディスク2上に記憶されたデータはディスク3のストライプ2のセグメント5’に複製される。このようにして、それぞれのデータが複製され、ディスク上に記憶される。図2の冗長レイアウトは説明のために示したものである。冗長データは図示するように同じストライプに入れる必要はない。例えば、ストライプ1のセグメント2のディスク0に記憶されたデータを複製し、ストライプSのセグメントT’のディスク3に入れることもできる。
【0022】
図1に示すように、ディスク24のパリティグループ22はRAIDレベル5等の第2の冗長レベルでデータの記憶が行なわれる第2の記憶場所すなわちRAID領域を表わす。6つのディスクを示すこの例では、オリジナルデータが5つのディスク30に記憶され、冗長“パリティ”データが第6のディスク32に記憶される。
【0023】
図3はパリティRAID領域のレイアウトをより詳細に示す。図2のミラーRAID領域のレイアウトと同様に、ディスク0、1、2、3の物理的記憶スペースは複数の大きさの等しいストライプに構成することができる。この例では、データはRAIDレベル5で記憶され、各セグメントに記憶された冗長データは文字Pで表わされる。冗長Pセグメントはそのストライプ内の他のセグメントのパリティが記憶される。例えば、ストライプ0において、ディスク3上の冗長Pセグメントにはディスク0、1、2のパリティが記憶される。それぞれのストライプのパリティは記号“+○”で表わす排他的論理和関数等の関数によって計算される。最初の4つのストライプのパリティ(下付き文字の数字が対応するストライプを表わす)は次の通りである。
【0024】
【表1】
Figure 0003753766
【0025】
パリティ冗長はディスクの1つで利用不能になったデータの再生を可能にする。例えば、セグメント5内のデータが使用不能になると、その内容をセグメント3、4及びセグメントPのパリティデータから確認することができる。パリティ記憶はミラー記憶より低コストであるが、信頼性と性能で劣っている。
【0026】
図1のディスク構成は概念の説明のために示すものである。実際には、ディスクアレイ11は単にミラー冗長及びパリティ冗長に従ってデータを記憶することのできる複数のディスク12を有する。すべてのディスク12によって提供される使用可能な記憶スペースの中で、その一部はミラー冗長に割り当てられ、他の部分はパリティ冗長に割り当てられる。好適には、ディスク12は複数の大きさの等しい記憶領域(図4には35で示す)からなる構成を有する。個々の領域は複数のセグメントを有する。これらの領域がまとめられて記憶スペースの1つの仮想ビュー内のRAID領域が形成される。さらに、記憶スペースの他の(ホストによって定義される)ビューは、RAID領域とデータ冗長記憶技術がユーザあるいはホストに対して透明になるように、ユーザあるいはホストに与えられる。これらの特徴については、以下に図4を参照してさらに詳細に説明する。
【0027】
データ記憶システム10がミラー記憶法とパリティ記憶法との間のデータの“移動”を管理する。この2種類の冗長の管理はRAID管理システム16(図1)によって調整される。RAID管理システム16はディスクアレイ内の2つの異なる種類のRAID領域を、ミラーRAID領域がパリティRAID領域に対してキャッシュと同様の機能を果たすメモリ階層として管理する。RAID管理システム16は所定の実行プロトコルに従ってミラーRAID領域とパリティRAID領域との間でのデータの移動、組織化、及びその他の管理を行なう。ミラーRAID領域とパリティRAID領域との間でデータを移動する処理は“ミグレーション”と呼ばれる。
【0028】
データ記憶システム10はミラーRAID領域に性能上重要度の高いデータを入れようとする。これはそれによってより高い性能と信頼性が得られるためである。RAID管理システム16の実行する実行プロトコルは2つの好適な移動方法のうちの1つを含む。“アクセス頻度”として知られる第1の移動方法では、階層ディスクアレイ上の最も頻繁にアクセスされるデータがミラーRAID領域18に保持される。それよりアクセス頻度の低いデータはパリティRAID領域22に保持される。“アクセス・リセンシ”として知られる第2の移動方法によれば、最後にアクセスされたデータがミラーRAID領域18に保持され、それ以前にアクセスされたデータがパリティRAID領域22に記憶される。他の実行プロトコルを用いることもできる。かかるプロトコルはアプリケーションとユーザのニーズに応じて定義されるのが理想である。
【0029】
さらに、RAID管理システム16は物理的記憶容量とデータ記憶システムに記憶される現在のユーザデータの量という2つのパラメータの関数に従ってデータ記憶システムの記憶資源を自動的に“調整する”。まず、すべてのデータがミラーRAID領域に記憶される。これはこれによって最も高い性能と信頼性が得られるためである。データ記憶システムにさらにデータが追加されると、データはミラーRAID領域とパリティRAID領域との間で移動され、性能と信頼性の最適化がはかられる。データ量がデータ記憶システムの全容量に近づくにつれて、冗長による信頼性を提供しながらユーザの要求のすべてに応えようとしてパリティRAID領域に移動するデータ量が大きくなる。従って、本発明のデータ記憶システムは最大限のフレキシビリティと適応性を有する。ユーザは特定の記憶法を選択する必要がなく、このデータ記憶システムはユーザのいかなる要求にも応じることができる。
【0030】
図4はデータ記憶システム10の使用可能な記憶スペースのメモリマッピングをマッピングされた仮想記憶スペースの複数の層として示す。この図の垂直方向に細長い矩形はそれぞれ物理的記憶スペースのビューを表わす。この図では、物理的記憶スペース34は2つの仮想記憶ビュー40、50で表わされる。物理的記憶スペース34は0、1、2、3で示す(図1のディスク12等の)4つのディスクによって表わされる。これらのディスクに対応した4つの矩形は物理的記憶スペースのビューを表わし、このビューではディスク1、2、3はほぼ等しい記憶容量を有し、ディスク0の記憶容量はそれより少し小さい。かかるディスクの記憶容量は1から3ギガバイト程度である。記憶スペース34は領域A0、A1、A2その他に区分されている。個々の領域は例えば領域A0のストライプ0−Qのような多数のストライプを有する。個々の領域は多数の領域35を含む。領域35は好適には各記憶ディスク上の均一な大きさの所定数のセグメントからなり、従って、ディスクアレイ全体にわたってかかる領域の大きさは等しくなっている。1つの領域35の大きさは例えば1メガバイトである。
【0031】
ディスクの記憶スペースは物理的記憶スペース34の第1の中間RAIDレベル仮想ビュー40にマッピングされる。この第1の仮想ビューは概念的には連続的にアドレス指定できる記憶スペースを表わす第2のアプリケーションビューにマッピングすることのできるRAID領域の集合である。この記憶スペースの物理的構成とRAIDビューはアプリケーションビューからは隠されている。
【0032】
RAID領域記憶スペース40はミラー記憶スペースとパリティ記憶スペースを同定する記憶領域のビューである。例えば、RAID領域42Mは個の割り当てブロック43のミラーRAID領域を表わし、RAID領域44はN個の割り当てブロック45のパリティRAID領域を表わす。割り当てブロック43及び45は好適には同じ大きさであり、例えば64キロビットである。これらのRAID領域は物理的記憶スペース34上の対応する物理領域A0、A1、A2その他に関係する。一例を挙げれば、RAID仮想ビューにおける16の64K割り当てブロック43または45は1つの1Mの領域35にマッピングすることができる。
【0033】
ミラーRAID領域及びパリティRAID領域はディスクアレイの記憶スペース34全体を消費する場合もあり、また消費しない場合もある。従って、アプリケーションによっては、特定のRAID領域に対応しない未使用かつ未指定の記憶スペースがある場合がある。しかし、かかる記憶スペースもミラーRAID領域あるいはパリティRAID領域に変換することができる。また、RAID領域はディスクアレイの連続する領域にマッピングされ、RAID領域に対応する各領域は各記憶ディスクの同じ物理アドレスに位置することに注意しなければならない。あるいはRAID領域はディスクアレイの不連続な領域にマッピングすることもできる。
【0034】
RAID領域内の使用可能な記憶スペースが第2のフロントエンドのアプリケーションレベル仮想ビュー50にマッピングされる。ビュー50はユーザあるいはホストアプリケーションプログラムによって定義され、提示される記憶領域のビューである。ユーザあるいはホストアプリケーションプログラムから見たとき、アプリケーションレベル仮想ビュー50は記憶ディスク12上の使用可能な記憶スペースを示す1つの大きな記憶容量を表わす。仮想記憶スペース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と関係付けられる。この仮想ブロックテーブルから参照可能なRAID領域には少なくともミラーRAID領域とパリティRAID領域の2種類がある。
【0035】
RAID管理システム16は物理的記憶スペース上のRAID領域の構成を動的に変更することができる。それぞれの種類のRAID領域数はシステムに記憶されるユーザデータの量と物理的ディスク記憶スペースのサイズに応じて増減することができる。その結果、RAIDレベル仮想ビュー40内のRAID領域のディスクへのマッピング及びフロントエンド仮想ビュー50のRAIDビュー40へのマッピングは一般インタフェースは変化状態にある。NVRAM21A及び21B(図1)のメモリマップ記憶は、RAID管理システム16によるディスクへのRAID領域のマッピングに用いられる現行のマッピング情報及び2つの仮想ビューの間のマッピングに用いられる情報を保持する。RAID管理システムがRAIDレベルのマッピングを動的に変更するとき、このシステムは同時にメモリマップ記憶内のマッピング情報をかかる変更を反映するように更新する。
【0036】
メモリシステム10の移動動作を図1及び図4を参照して説明する。
【0037】
説明の便宜上、アプリケーションレベル仮想記憶スペース50の仮想ブロック53は物理的記憶スペース34の領域A1に記憶されたパリティRAID領域44内の対応する割り当てブロック45を参照するものとする。かかる仮想ブロック53を“パリティ仮想ブロック”と呼び、対応する割り当てブロック45を“パリティ割り当てブロック”と呼ぶ。同様に、仮想ブロック52は物理的記憶スペース34の領域A0に記憶されたミラーRAID領域42内の割り当てブロック43を参照する。かかる仮想ブロック52を“ミラー仮想ブロック”と呼び、対応する割り当てブロック43を“ミラー割り当てブロック”と呼ぶ。
【0038】
一般に、あるRAID領域から他のRAID領域にデータを移動するには、第1のRAIDレベルタイプ(例えばミラーすなわちレベル1)の割り当てブロックに対応する仮想ブロックが選択される。未使用の割り当てブロックが見つからない場合、未使用ブロックが作成される。次に、それ以前にこの選択された仮想ブロックに関係付けられていた割り当てブロックからこの未使用の割り当てブロックにデータが転送され、これによってデータの冗長レベルが変化する。例えば、ミラー冗長で記憶されていたデータが今度はパリティ冗長で記憶される。あるいはその逆が起こる。最終ステップとして、アプリケーションレベル仮想記憶スペース50のRAIDレベル仮想記憶スペース40へのマッピング54がこのデータの移動を反映するように修正及び更新される。その結果、第1のRAIDレベルタイプの割り当てブロックに対応していた選択された仮想ブロックは、更新されたポインタを介して、移動されたデータを有する第2のRAIDレベルタイプの割り当てブロックを参照する。このトランザクション中に発生するいかなるマッピングの変更もメモリマップストア21内で更新される。
【0039】
本発明の方法によるミラー記憶領域とパリティ記憶領域の間でのデータの移動についてさらに詳しく説明する。パリティ記憶領域からミラー記憶領域へのデータの移動には次のシーケンスが用いられる。
1.RAID管理システムがミラーRAID領域42内の未使用のミラー割り当てブロック43を見つける。
2.未使用ブロックが見つからない場合、RAID管理システムはミラー割り当てブロックを作成する(後に説明する)。
3.RAID管理システムは移動すべき仮想ブロックへの記憶要求を一時停止させる。
4.RAID管理システムはこの仮想ブロックへの実行中のすべてのデータ記憶要求が完了するまで待つ。
5.仮想ブロック53に対応するパリティ割り当てブロック45からのデータが一時記憶バッファに読み込まれる。
6.次に、このデータがステップ2で選択されたミラー割り当てブロック43に書き込まれる。
7.仮想ブロックテーブルがミラー割り当てブロック43内の新しいデータの位置を指すように修正される。
8.一時停止されていた記憶要求が再開される。
以上の手順によって、アプリケーションレベル仮想ビュー50内の仮想ブロック53がパリティ記憶領域からミラー記憶領域に移動する。中間仮想ビュー40についていえば、データはパリティRAID領域44内のパリティ割り当てブロック45からミラーRAID領域42内のミラー割り当てブロック43に移動している。物理的記憶スペースにおいては、データは領域A1から領域A0に移動している。
【0040】
未使用のミラー割り当てブロックが見つからない場合(上述のステップ1)、RAID管理システムは次の3つの技術を実行する。まず、RAID管理システムは移動の進行を保証するのに必要な未使用のRAIDレベル記憶領域のシステム閾値を越えることなくミラーRAID領域に変換することのできる未使用の(従って未指定の)RAID領域を見つけようとする。これが見つからず、システムが指定された以上の未使用RAIDレベル記憶領域を有する場合、システムはパリティ記憶領域内のデータを移動して未使用のパリティ割り当てブロックを未使用RAID領域に集める。この移動によって、上述したようにミラーRAID領域に変換することのできる未使用のRAID領域が得られる場合、システムはこれをミラーRAID領域に変換する。得られない場合、システムはミラー記憶領域からパリティ記憶領域にデータを移動し、ミラー記憶領域をパックし、システムが未使用のミラー割り当てブロックが見つかるだけあるいは未使用のRAID領域をミラーRAID領域に変換できるだけ未使用のRAIDレベル記憶領域を増大させるまで、未使用のRAIDレベル記憶領域を変換する。ミラー割り当てブロックはパリティ割り当てブロックより大きな物理的記憶スペースを占めるため、この最後の技術は未使用のRAIDレベル記憶領域の量を増大させる。
【0041】
未使用のミラー割り当てブロックを発見及び確立するのに用いられる作成/変換プロトコルには、RAID管理システムがユーザデータの量と物理的記憶スペースのサイズに応じてパリティ領域とミラー領域の間のメモリの割り当てを選択的に調整することができるという利点がある。データの使用状態と記憶容量が変化するにつれて、RAID管理システムは上記の3つの技術のうちの1つ以上を用いてミラー記憶領域に保持されるデータの量を最適化する。
【0042】
RAID管理システムは、記憶要求が空き時間中に未使用のRAID領域を作成することによって未使用のミラー割り当てブロックを得るためのスペース作成シーケンスの間待機しなければならないという状況を避けようとする。しかし、状況によっては、記憶要求はスペース作成シーケンスの実行中停止される場合がある。RAID管理システムは仮想ブロック記憶スペースをRAIDビューより小さくなるように構成する。これによって、移動その他の目的のために少なくとも1つのRAID領域に等しい空きスペースが別途設定される。このようにして、この一連の技術によって常に未使用のミラー割り当てブロックを得ることができる。
【0043】
ミラー記憶領域からパリティ記憶領域へのデータの移動には次のシーケンスが用いられる。
1.RAID管理システムは52から仮想ブロックを選択して、アクセスリセンシあるいはアクセス頻度等の移動法に従って、ミラー記憶領域からパリティ記憶領域への移動を行なう。
2.RAID管理システムはパリティRAID領域441の未使用のパリティ割り当てブロック45を見つける。
3.かかるブロックが見つからない場合、上記の作成技術を用いて移動用に確保されたスペースがパリティRAID領域に変換される。
4.この移動すべき仮想ブロックへの新たな記憶要求が一時停止される。
5.RAID管理システムはこの仮想ブロックへの実行中の記憶要求がすべて完了されるまで待つ。
6.データが仮想ブロック52に対応するミラー割り当てブロック43から一時メモリバッファに読み込まれる。
7.このデータが選択されたパリティ割り当てブロック45に書き込まれる。
8.仮想ブロックテーブルがパリティ割り当てブロック45内のデータの位置を指すように修正される。
9.この仮想ブロックへのデータ要求が再開される。
上記の2つのシーケンスは、本発明のメモリシステムによる2つの異なる冗長レベル間でのデータの移動の例を示すものである。
【0044】
データの移動を行なうための、このデータ記憶システムの目的の1つは移動のための充分な量の記憶スペースが確保されるようにすることである。さらに、他の目的はミラー記憶領域に保持されるユーザデータをできるだけ多くすることである。これは、ミラー記憶領域は最も高い性能と信頼性を提供するためである。しかし、ディスクアレイ内の物理的記憶スペースの量は限られている。データがディスクアレイに記憶されるにつれて、ミラー記憶領域内の仮想ブロックは物理的容量を消費し始める。“物理的容量”という用語はユーザデータに使用できる記憶容量とその冗長情報を指す。
【0045】
物理的容量から指定された記憶スペースを除いたものの半分を消費すると、ミラー記憶領域はディスクアレイの機能を妨害する。このとき、使用仮想ブロックはすべてミラー記憶領域に保持されている。ミラー記憶が物理的記憶スペースの大部分を消費して未使用のRAIDスペースの量がRAID領域の量より小さくなると、このデータ記憶システムはミラーRAID領域からパリティRAID領域への仮想ブロックの移動を保証できなくなる。前に未使用であった仮想ブロックを用いる次のクライアントデータ要求は、未使用スペースの量がRAID領域の量より小さく、ミラー記憶領域から仮想ブロックを移動するためのパリティ記憶領域に変換することもできないため実行されない。このような状況は避けなければならない。
【0046】
従って、RAID管理システムはデータの移動に充分な量の確保された記憶スペースを割り当てる。これは2つの技術を組み合わせて行なわれる。まず、RAID管理システムは少なくとも1つのミラーRAID領域に等価な記憶スペース量を論理的に確保する。第2に、RAID管理システムはこのデータ記憶システム内でミラー記憶に割り当てることのできるブロック数を制限する。ミラー記憶領域内の最大仮想ブロック数は記憶ディスクの物理的容量、記憶ディスク数、及びユーザからの各記憶要求の発生時における割り当てられた容量に基づいて動的に計算される。
【0047】
図5はデータの移動のための記憶スペースを確保するための本発明の初期設定方法のフローチャートである。各ステップをさらに図1及び図4を参照して説明する。
【0048】
最初の2つのステップ100及び102はこの階層データ記憶システムの2つの層からなる仮想記憶スペース環境を確立する。ステップ100において、RAID管理システム16はディスクアレイ12によって提供される物理的記憶スペースをRAIDレベル仮想記憶スペース40にマッピングする。このRAIDレベル仮想記憶スペースは物理的記憶スペースをミラーRAID領域及びパリティRAID領域として与える。ミラーRAID領域にはミラー冗長すなわちRAIDレベル1でデータの記憶を行なう複数のミラー割り当てブロックが含まれる。パリティRAID領域にはパリティ非冗長すなわちRAIDレベル5でデータの記憶を行なう複数のパリティ割り当てブロックが含まれる。ステップ102において、RAID管理システムはRAIDレベル仮想記憶スペース40を物理的記憶スペースを複数の仮想ブロックとして与えるアプリケーションレベル仮想記憶スペース50にマッピングする。これらの仮想ブロックは仮想ブロックテーブル内のポインタによってRAIDレベル仮想記憶スペースのRAID領域内の対応する割り当てブロックに関係付けられる。図4を参照して上述したように、これらの仮想ブロックは必要に応じてミラー記憶領域とパリティ記憶領域の間で移動することができる。
【0049】
初期マッピング中、RAID管理システムは意図的に物理的記憶スペースの全容量未満を第1及び第2の仮想記憶スペースにマッピングする。従って、第1及び第2の仮想記憶スペースの容量はそれぞれ総物理的容量より小さくなる。これによって、データの記憶用にユーザに与えられないある量のスペースを論理的に確保することができる(ステップ104)。好適には、少なくとも1つのRAID領域に等しい量のスペースが確保される。このスペースは通常記憶ディスクに不連続に分散される。移動のために必要とされるとき、このスペースが集められ未使用RAID領域が形成される。
【0050】
ステップ106において、ディスクアレイ内の物理的記憶スペースの物理的容量(PhyCap)が確認される。これはある特定のディスクアレイ構成から確保されたスペースを除いた固定値である。例えば、ディスクアレイが12の1ギガバイトの記憶ディスクを有する場合、物理的容量は基本的には12ギガバイト(から1RAID領域の量を引いたもの)である。このデータ記憶システムはこの値を、各記憶ディスクの存在とそのサイズを検出することによって内部的に得る。物理的構成に変更がある場合、例えば記憶ディスクがシステムから抜き差しされる場合、このデータ記憶システムは物理的容量(PhyCap)の新しい値を得る。
【0051】
重要なデータをキャッシングすることによって高い性能を提供するためには少なくともある程度のミラー記憶領域を常に維持することが望ましい。RAID管理システムは任意のパーセンテージのユーザデータがミラー記憶領域に維持されるように設定する(ステップ108)。例えば、10%までのユーザデータがミラー記憶領域に維持される。ミラーRAID領域への記憶はミラー冗長はパリティ冗長より高い性能と信頼性を得ることができる点で有益である。
【0052】
このシステム初期設定の間、アプリケーションレベル仮想記憶スペース50内の仮想ブロックはすべて割り当てられてない。割り当て容量はゼロに設定される。“割り当て容量”という用語はアプリケーションレベル仮想記憶スペース50内の仮想ブロックに記憶されるユーザデータの量を意味する。ステップ110において、RAID管理システムは、最小限のパーセンテージのユーザデータがミラー記憶領域に維持されることを条件にユーザの利用可能な仮想ブロックの最大許容数を計算する。
【0053】
図6にはミラー記憶領域が物理的記憶容量を消費しないようにするための方法のフローチャートを示す。ステップ112において、仮想データブロックが作成あるいは移動される。まず、データが始めにシステムに記憶されるとき、アプリケーションレベル仮想記憶スペース50内の仮想ブロックがミラーRAID領域内に割り当てられる。すなわち、仮想ブロックは仮想ブロックテーブルのポインタによってミラー割り当てブロックに関係付けられる。仮想ブロックは、ユーザによる要求に基づいて必要に応じて割り当てられる。割り当て容量がディスクアレイの総物理的容量の半分を越えるまでは、すべてのデータがミラーRAID領域に対応する仮想ブロックに記憶されることが好適である。
【0054】
ディスクアレイ11へのデータの記憶が続く間、RAID管理システム16は現在ユーザデータを記憶している仮想ブロックのカウントを取る。容量あるいはサイズとして簡単に与えることのできるこのカウント値は、任意の時間における割り当て容量(AllCap)を表わす(ステップ114)。判断ブロック116において、割り当て容量(AllCap)がディスクアレイの物理的容量(PhyCap)と比較される。割り当て容量が物理的容量の半分以下である場合(すなわち、ステップ116からNOに分岐する場合)、データはミラー記憶領域の仮想ブロックにのみ記憶され続ける(ステップ118)。
【0055】
割り当て容量が物理的容量以上である場合(すなわち、ステップ116からYESに分岐する場合)、RAID管理システムはこの状態におけるミラー記憶領域内の仮想ブロックの最大許容数を計算する(ステップ120)。この計算は割り当て容量(AllCap)、ディスクアレイの物理的容量(PhyCap)、及びディスクアレイ内のディスク数(n)の関数である。この最大値は条件の変化につれて動的に計算される。すなわち、1つの変数(割り当て容量)は通常連続的な変化の状態にあり、従って、ミラー記憶領域内の仮想ブロックの最大許容数はこの変数が変化するのにつれて再計算される。
【0056】
この計算にはディスクアレイが均一であるか非均一であるかに応じて多少異なる関数が用いられる。“均一な”ディスクアレイは等しい大きさの記憶ディスクからなる。“非均一な”ディスクアレイは大きさの異なる記憶ディスクからなる。均一なディスクアレイについては、RAID管理システムは次の(1)式を用いてミラー記憶領域内の仮想ブロックの最大許容数(max)を計算する。
【0057】
【数1】
Figure 0003753766
【0058】
n: アレイ内の記憶ディスク数
AllCap: 割り当て容量
PhyCap: ディスクアレイの物理的容量
【0059】
非均一なディスクアレイについては、RAID管理システムはまずこのディスクアレイを分割して均一的なディスクアレイ表現にする。例えば、4つの1ギガバイト記憶ディスクと2つの3ギガバイト記憶ディスクからなる非均一なディスクアレイを想定する。この場合、RAID管理システムはこの構成を2つの均一なディスクアレイ表現に分割する。すなわち、一方の表現は6つのディスクすべての1ギガバイトの記憶領域からなり、他の表現は2つの3ギガバイトディスク上の2ギガバイトの残る記憶領域からなる。次に、RAID管理システムは次の(2)式を用いて非均一ディスクアレイについてミラー記憶領域内の仮想ブロックの最大数(max)を計算する。
【0060】
【数2】
Figure 0003753766
【0061】
i: 非均一ディスクアレイから作成可能な均一ディスクアレイ表現数
【0062】
RAID管理システムは仮想ブロックが最大許容数を越えてミラー記憶領域に割り当てられることのないように制限する。ステップ122において、仮想ブロックの新たな割り当てすなわちパリティ記憶領域からミラー記憶領域への仮想ブロックの移動がミラー記憶領域内の仮想ブロックの最大許容数を越えていないかどうかが判定される。越えていなければ(すなわち、ステップ122からNOに分岐する場合)、データをミラー記憶領域に対応する仮想ブロックに記憶することができる。一方、最大許容数を越える場合(すなわち、ステップ122からYESに分岐する場合)、RAID管理システムは仮想ブロックをミラー記憶領域からパリティ記憶領域に移動する。すなわち、データはミラー割り当てブロックからRAIDレベル仮想記憶スペース40のパリティ割り当てブロックに移動され、仮想ブロックテーブル内のポインタが、アプリケーションレベル仮想記憶スペース50内の仮想ブロックがミラー記憶領域からパリティ記憶領域に移動するように更新される。
【0063】
RAID管理システムはミラー記憶領域内の仮想ブロック数を制限することによって確保されるスペースを用いてミラー割り当てブロックからパリティ割り当てブロックにデータを移動させることができる。さらに、仮想ブロックの最大数を動的に計算することによって、RAID管理システムはミラー記憶領域内の仮想ブロック数を計算された最大値と予め設定された最小値の間に維持する。
【0064】
ミラー記憶領域内の仮想ブロック数を制限することによって、このシステムは物理的記憶スペースがかかる仮想ブロックによって完全に消費されることを防止する。これによって、未使用の物理的容量が論理的に確保された量より少なくなることが防止され、その結果、パリティRAID領域とミラーRAID領域との間のデータの移動を常に行なうことができる。
【0065】
ディスクアレイにさらにデータが記憶されるのにつれて、割り当て容量は物理的容量に近づく。大量のデータを処理に対するユーザの要求に応えるために、RAID管理システムはミラーRAID領域からパリティRAID領域へのデータの移動を継続する。その結果、パリティRAID領域に記憶されたデータに対するミラーRAID領域に記憶されたデータの比率が徐々に小さくなる。
【0066】
図7及び図8は本発明の方法の実際の効果を示す。図7は3つの大きさの異なる物理的容量(3、6及び12ギガバイト)を有する均一なディスクアレイの場合を示す。各容量における反転“V”字状の線はディスクアレイに記憶されるデータの量の増大との関係における先の(1)式によって計算されたミラー記憶領域内の仮想ブロックの最大許容数を表わす。それぞれの場合において、ミラー記憶領域内の仮想ブロックの最大許容数はゼロから物理的記憶容量の半分まで増大する。データはまずミラー記憶領域にのみ記憶される。ユーザデータの量が(分数量0.5で示す)この半分の閾値以上になると、ミラー記憶領域内の仮想ブロックの最大許容数は減少し始める。ディスクアレイ上のデータ記憶量が全容量に近づくにつれてミラー記憶領域に割り当てられる仮想ブロック数は少なくなっていく。ミラー記憶領域内の仮想ブロック数が少なくなるにつれて、データの記憶に用いられるパリティ記憶領域内の仮想ブロック数が多くなる。図8はこれをより明確に示している。
【0067】
図8は3つの大きさの異なる物理的容量(6、12及び18ギガバイト)を有する非均一ディスクアレイの場合を示す。このグラフの上部の説明表に示すようにこれら3つのサイズの場合に対応する3対の曲線が描かれている。右下がりの曲線はミラー記憶領域内の仮想ブロックを用いて記憶される量を示し、右上がりの曲線はパリティ記憶領域内の仮想ブロックを用いて記憶される量を示す。X軸の原点座標は0.5であり、このシステムがこの点ですでに半分満たされていることを示している。この半分の容量を越えてさらにディスクアレイにデータが記憶されるにつれて、ミラー記憶領域内の仮想ブロックの最大許容数は漸減してゼロに達する(ただし、ミラー記憶領域内に少なくともある程度の小さなパーセンテージの仮想ブロックを残しておくことが望ましい)。同時に、パリティ記憶領域内の仮想ブロック数は逆に全容量に向かって増大していく。
【0068】
これらのグラフは本発明の好適な記憶及び移動方法を簡単にまとめたものである。データはまずすべてミラー記憶領域に記憶される。容量の半分に達したとき、この階層データ記憶システムはデータ移動を用いてデータをミラー記憶領域とパリティ記憶領域の両方に記憶し始める。データ記憶システムへのデータの記憶が進行するのにつれて、増大するデータ量を受け入れるためにパリティ記憶領域に移動するデータが増え、ミラー記憶は減少していく。これらの各段階において、ミラー記憶領域内の仮想ブロックの最大許容数が、ミラー記憶領域内に存在する仮想ブロック数が常にこの値より小さく制限され、データ移動のための充分なスペースがかくほされるように計算される。
【0069】
以下に、この階層データ記憶システムの動作時における本発明の方法の典型的なアプリケーションを示す。それぞれのアプリケーションにおいて、RAID管理システムは移動可能性の分析のためにミラー記憶領域内の仮想ブロックの最大許容数を計算する。各アプリケーションは物理的記憶スペースの半分以上が使用されることを想定している。
【0070】
[アプリケーション1]
ユーザが現在パリティ記憶領域に関係付けられた仮想ブロックへのアクセスを要求する。この要求によってこの仮想ブロックはパリティ記憶領域からミラー記憶領域に移動する。ミラー記憶領域内の仮想ブロックの最大許容数が計算される。ミラー記憶領域内に存在する仮想ブロックの実数がこの最大許容数と等しい場合、ミラー記憶領域内の最も早くアクセスされた(あるいは最もアクセス頻度の低い)仮想ブロックがパリティ記憶領域に移動される。これによってミラー記憶領域内の仮想ブロック数が最大許容数より小さくなる。その後、要求された仮想ブロックにアクセスすることができる。
【0071】
[アプリケーション2]
ユーザが未使用であった仮想ブロックへのデータの書き込みを要求する。RAID管理システムは再びミラー記憶領域内の仮想ブロックの最大許容数を計算し、その結果をミラー記憶領域内に存在する仮想ブロックの実数と比較する。この実数が最大許容数を越えている場合、仮想ブロックがミラー記憶領域からパリティ記憶領域に移動され、ミラー記憶領域に空きスペースができ、新しいデータを受け入れることができる。
【0072】
[アプリケーション3]
ユーザがシステムに記憶ディスクを追加して物理的容量を増大させる。新しい記憶ディスクからの物理的記憶スペースが組み込まれると、RAID管理システムはこの拡大した容量に基づいて新しい最大数を計算する。データはできるだけミラーRAID領域に記憶することが望ましいため、ミラー記憶領域に存在する仮想ブロックの実数が最大許容数に達するまで、使用時期の遅い(あるいはアクセス頻度のより高い)仮想ブロックがパリティ記憶領域からミラー記憶領域に移動される。
【0073】
本発明の構造上及び方法上の特徴についてかなり具体的に説明したが、本発明はここに図示・説明した具体的特徴には限定されない。これは、ここに開示した手段は本発明を実施するための好適な形態を示すのみであるためである。従って、本発明は特許請求の範囲内に該当するあらゆる形態あるいは変更態様を含むものである。
【0074】
以下、本発明の実施の形態を列挙する。
【0075】
(1) データ記憶システム(10)が物理的記憶スペース(34)を形成する複数の記憶ディスク(12)のディスクアレイ(11)から成り、前記物理的記憶スペースがミラーRAID領域及びパリティRAID領域を有するRAIDレベル仮想記憶スペース(40)にマッピングされ、前記RAIDレベル仮想記憶スペースが仮想ブロックテーブル内のポインタによって前記ミラーRAID領域及びパリティRAID領域に関係付けられた複数の仮想ブロックを有するアプリケーションレベル仮想記憶スペース(50)にマッピングされる、階層データ記憶システム内の記憶スペース確保方法であって、
(a)前記ディスクアレイ(11)内にn個の記憶ディスク(12)を設けるステップ、
(b)ミラー冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース(50)内の仮想ブロックをミラーRAID領域に割り当てるステップ、
(c)前記仮想ブロックにデータを記憶するステップ、
(d)前記ディスクアレイ(11)内の前記物理的記憶スペース(34)の物理的容量を提供するステップ、
(e)現在データの記憶に使用されている仮想ブロックの総数を表わす割り当て容量を決定するステップ、
(f)前記ディスクアレイ内の前記物理的容量、前記許容容量及び記憶ディスク数の関数として、ミラーRAID領域内の仮想ブロックの最大許容数を計算するステップ、
を有する階層データ記憶システムの記憶スペース確保方法。
【0076】
(2) さらに、
パリティRAID領域とミラーRAID領域との間のデータ移動に対してスペース確保を保証するために、ミラーRAID領域内の仮想ブロックが計算されたミラーRAID領域内の仮想ブロックの最大許容数を越える割り当てを制限するステップを含む上記1に記載の方法。
【0077】
(3) さらに、
パリティ冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の前記仮想ブロックをパリティRAID領域に割り当てるステップ、
ミラーRAID領域内の仮想ブロックの割り当てを制限することによって保証された確保スペースを用いてミラー記憶領域とパリティ記憶領域との間で仮想ブロックを移動するステップを含む上記2に記載の方法。
【0078】
(4) さらに、
最初に少なくとも1つのミラーRAID領域に等しいある量の物理的記憶スペースを確保するステップを上記1に記載の方法。
【0079】
(5) さらに、
ミラーRAID領域内の仮想ブロック数が前記最大許容数より小さい場合、ミラーRAID領域内の前記仮想ブロック内にのみデータを記憶するステップ、
ミラーRAID領域内の仮想ブロック数が前記最大許容数を越える場合、パリティ冗長に従ってデータを記憶するために前記アプリケーションレベル仮想記憶スペース内の仮想ブロックをパリティRAID領域に割り当てるステップ、及び仮想ブロック内のデータを前記ミラーRAID領域とパリティRAID領域との両方に記憶するステップを含む上記1に記載の方法。
【0080】
(6) さらに、
パリティ冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の仮想ブロックをパリティRAID領域に割り当てるステップ、
仮想ブロック内のデータを前記ミラーRAID領域とパリティRAID領域との両方に記憶するステップ、
パリティRAID領域に記憶されたデータに対するミラーRAID領域に記憶されたデータの割合を低下させるために、パリティRAID領域に記憶されるデータに対するミラーRAID領域に記憶されるデータの比率を低下させる、前記ディスクアレイにさらにデータが記憶されて前記割り当て容量が前記物理的容量に近づくにつれて、仮想ブロックをミラーRAID領域からパリティRAID領域へ移動するステップを含む上記1に記載の方法。
【0081】
(7) さらに、
ミラーRAID領域内に仮想ブロックの最小数を維持するステップを含む上記6に記載の方法。
【0082】
(8) さらに、
前記割り当て容量を前記物理的容量と比較するステップ、
前記割り当て容量が前記物理的容量の半分以上であるときにのみステップ(f)で前記最大許容数を計算するステップを含む上記1に記載の方法。
【0083】
(9) データ記憶システム(10)が物理的記憶スペース(34)を形成する複数の記憶ディスク(12)のディスクアレイ(11)から成る階層データ記憶システム内の記憶スペース確保方法であって、階層データ記憶システム内のスペース確保方法であって、
(a)前記ディスクアレイ内の前記物理的記憶スペース(34)の物理的容量を提供するステップ。
(b)前記物理的記憶スペース(34)を複数のミラーRAID領域及びパリティRAID領域を有するRAIDレベル仮想記憶スペース(40)にマッピングするステップ、
(c)前記RAIDレベル仮想記憶スペース(40)を複数の仮想ブロックを有するアプリケーションレベル仮想記憶スペース(50)にマッピングするステップ、
(d)ミラー冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の前記仮想ブロックをミラーRAID領域に割り当てるステップ、
(e)前記仮想ブロックにデータを記憶するステップ、
(f)現在データの記憶に使用されている仮想ブロックの総数を表わす割り当て容量を決定するステップ、
(g)前記割り当て容量を前記物理的容量と比較するステップ、
(h)前記割り当て容量が前記物理的容量の半分以上である場合、
(1)ミラーRAID領域内の仮想ブロックの最大許容数を、前記物理的容量及び前記割り当て容量の関数として計算するステップ、
(2)ミラーRAID領域内の仮想ブロックが前記計算されたミラーRAID領域内の仮想ブロックの最大許容数を越える割り当てを制限するステップ、
(3)パリティ冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の仮想ブロックをパリティRAID領域内に割り当てるステップ、
(4)前記ミラーRAID領域とパリティRAID領域との両方にデータを記憶するステップ、
を実行すること、
を含む階層データ記憶システム内の記憶スペース確保方法。
【0084】
(10) 前記マッピングステップ(b)、(c)が、ユーザの使用に供されないある量のスペースを論理的に確保するために、前記物理的記憶スペースの容量より小さい容量を有するRAIDレベル仮想記憶スペースとアプリケーションレベル仮想記憶スペースとを生成する上記9に記載の方法。
【0085】
(11) さらに、
ミラーRAID領域内に最小数の仮想ブロックを維持するステップを含む上記9に記載の方法。
【0086】
(12) パリティRAID領域に記憶されるデータに対するミラーRAID領域に記憶されるデータの比率を低下させるために、前記ディスクアレイにさらにデータが記憶されて前記割り当て容量が前記物理的容量に近づくにつれて、仮想ブロックをミラーRAID領域からパリティRAID領域へ移動するステップを含む上記9に記載の方法。
【0087】
(13) 物理的記憶スペース(34)を形成する多数の記憶ディスク(12)を有するディスクアレイ(11)、
前記ディスクとのデータ転送を調整するために、前記ディスクアレイ(11)に接続されたディスクアレイコントローラ(14)、
前記ディスクアレイコントローラ(14)と連動して、複数のミラーRAID領域及びパリティRAID領域を有するRAIDレベル仮想記憶スペース(40)を前記記憶ディスクの前記物理的記憶スペース(34)にマッピングするRAID管理システム(16)からなり、
前記RAID管理システム(16)が、ミラー冗長に従ってデータを記憶するためにミラーRAID領域内に仮想ブロックを割り当て、パリティ冗長に従ってデータを記憶するためにパリティRAID領域内に仮想ブロックを割り当て、前記仮想ブロックのカウントを取り、
前記RAID管理システム(16)が、前記ミラーRAID領域内の仮想ブロックの最大許容数を、前記物理的容量、前記仮想ブロックのカウント値に基づく前記割り当て容量、及び記憶ディスク数の関数として動的に計算するように構成された階層データ記憶システム。
【0088】
(14) 前記ディスクアレイ(11)が均一であり、複数の等しい大きさの記憶ディスクからなり、
前記RAID管理システム(16)が、下式に従って前記ミラーRAID領域内の仮想ブロックの最大許容数(max)を動的に計算するように構成される上記13に記載のシステム。
【0089】
【数3】
Figure 0003753766
【0090】
n: アレイ内の記憶ディスク数
AllCap: 割り当て容量
PhyCap: ディスクアレイの物理的容量
【0091】
(15) 前記ディスクアレイ(11)が非均一であり、さまざまな大きさの記憶ディスクからなり、
前記RAID管理システム(16)が下式に従って前記ミラーRAID領域内の仮想ブロックの最大許容数(max)を動的に計算するように構成される上記13に記載のシステム。
【0092】
【数4】
Figure 0003753766
【0093】
n: アレイ内の記憶ディスク数
AllCap: 割り当て容量
PhyCap: ディスクアレイの物理的容量
i: 非均一ディスクアレイから作成可能な均一ディスクアレイ表現数
【0094】
【発明の効果】
本発明によれば、第1にミラー記憶領域の割り当てを制限する簡単な方法を提供することができる。これによってシステムへの過剰なデータの記憶を発生させる最も重要な要因が除去される。第2に、このシステムは移動用に確保されるスペースの特定の位置あるいは構成を保証するネストされたトランザクションを支援するように設計する必要がない。第3に、このシステムは均一なあるいは非均一なディスクアレイに簡単に適合することによって、さまざまな記憶装置のサイズに対応する最大のフレキシビリティを提供するものである。第4に、このシステムは常にできるだけ多くのデータをミラー記憶領域に維持することによって性能と信頼性を最適化する。
【図面の簡単な説明】
【図1】本発明のディスクアレイ記憶システムのブロック図である。
【図2】複数の記憶ディスク上の記憶スペースの図であり、RAIDレベル1のデータ記憶を示す。
【図3】複数の記憶ディスク上の記憶スペースの図であり、RAIDレベル5のデータ記憶を示す。
【図4】物理的記憶スペースに2つの仮想記憶スペースがマッピングされる本発明のメモリマッピング構成を示す図である。
【図5】本発明によるデータの移動のための記憶スペースを確保するシステム初期設定法のフローチャートである。
【図6】ミラー記憶領域に記憶された仮想ブロックが許容最大数以下にとどまるようにする方法のフローチャートである。
【図7】ミラー記憶領域に記憶される仮想ブロックの許容最大数をデータの記憶に用いられる物理的容量との関係で示すグラフである。
【図8】ミラー記憶領域とパリティ記憶領域の両方に記憶される割り当て仮想ブロック数をデータの記憶に用いられる物理的容量との関係で示すグラフである。図8に図示する情報は異なるディスクアレイに基づくものであり、物理的容量の異なる3つの場合を示す。
【符号の説明】
10:データ記憶システム
11:階層ディスクアレイ
12:記憶ディスク
13:インタフェースバス
14:ディスクアレイコントローラ1
14a:ディスクアレイコントローラA
14b:ディスクアレイコントローラB
15:インタフェースプロトコル
16:RAID管理システム
17:I/Oインタフェースバス
18:ミラーグループ
20、24、30:ディスク
21:メモリマップストア
21a、21b:不揮発性RAM
22:パリティグループ
26:第1のディスク群
28:第2のディスク群
32:第6のディスク
34:物理的記憶スペース
35:記憶領域
40、50:仮想記憶ビュー
42、44:RAID領域
43、45:割り当てブロック
52、53:記憶仮想ブロック
54:ポインタ

Claims (9)

  1. データ記憶システム(10)が物理的記憶スペース(34)を形成する複数の記憶ディスク(12)のディスクアレイ(11)を備え、前記物理的記憶スペースがミラーRAID領域及びパリティRAID領域を有するRAIDレベル仮想記憶スペース(40)にマッピングされ、前記RAIDレベル仮想記憶スペースが仮想ブロックテーブル内のポインタによって前記ミラーRAID領域及びパリティRAID領域に関係付けられた複数の仮想ブロックを有するアプリケーションレベル仮想記憶スペース(50)にマッピングされ、前記ミラーRAID領域及びパリティRAID領域の容量は動的に可変であ階層データ記憶システム内の記憶スペース確保方法において、
    (a)前記ディスクアレイ(11)内にn個の記憶ディスク(12)を設けるステップと、
    (b)ミラー冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース(50)内の仮想ブロックを前記ミラーRAID領域に割り当てるステップと、
    (c)前記仮想ブロックにデータを記憶するステップと、
    (d)前記ディスクアレイ(11)内の前記物理的記憶スペース(34)の物理的容量を提供するステップと、
    (e)現在データの記憶に使用されている仮想ブロックの総数を表わす割り当て容量を決定するステップと、
    (f)前記ディスクアレイ内の前記物理的容量、前記割り当て容量、及び前記記憶ディスクの数の関数として、ミラーRAID領域内の仮想ブロックの最大許容数を計算するステップと、
    (g)パリティRAID領域とミラーRAID領域との間のデータ移動に対してスペース確保を保証するため、計算された前記ミラーRAID領域内の仮想ブロックの最大許容数を越えたミラーRAID領域内の仮想ブロックの割り当てを制限するステップと
    を備えることを特徴とする記憶スペース確保方法。
  2. パリティ冗長に従ってデータを記憶するため、前記アプリケーションレベル仮想記憶スペース内の前記仮想ブロックを前記パリティRAID領域に割り当てるステップと、
    ミラーRAID領域内の仮想ブロックの割り当てを制限することによって保証された確保スペースを用い、ミラー記憶領域とパリティ記憶領域との間で仮想ブロックを移動するステップと、
    をさらに備えることを特徴とする請求項1に記載の記憶スペース確保方法。
  3. 最初に少なくとも1つのミラーRAID領域に相当する量の物理的記憶スペースを確保するステップをさらに備えることを特徴とする請求項1に記載の記憶スペース確保方法。
  4. ミラーRAID領域内の仮想ブロック数が前記最大許容数より小さい場合、ミラーRAID領域内の前記仮想ブロック内にのみデータを記憶するステップと、
    ミラーRAID領域内の仮想ブロック数が前記最大許容数を越える場合、前記アプリケーションレベル仮想記憶スペース内の仮想ブロックを、パリティ冗長に従ってデータを記憶するためのパリティRAID領域にも割り当て、一部の仮想ブロック内のデータを前記ミラーRAID領域に記憶し、残りの仮想ブロック内のデータを前記パリティRAID領域に記憶するステップと、
    をさらに備えることを特徴とする請求項1に記載の記憶スペース確保方法。
  5. パリティ冗長に従ってデータを記憶するため、前記アプリケーションレベル仮想記憶スペース内の仮想ブロックを前記パリティRAID領域に割り当てるステップと、
    前記仮想ブロック内のデータを前記ミラーRAID領域と前記パリティRAID領域と の両方に記憶するステップと、
    前記ディスクアレイにより多くのデータが記憶されて前記割り当て容量が前記物理的容量に近づくにつれ、前記仮想ブロックを前記ミラーRAID領域から前記パリティRAID領域へ移動して前記パリティRAID領域に記憶されたデータに対する前記ミラーRAID領域に記憶されたデータの比率を低下させるステップと、
    をさらに備えることを特徴とする請求項1に記載の記憶スペース確保方法。
  6. 前記ミラーRAID領域内に最小数の前記仮想ブロックを維持するステップをさらに備えることを特徴とする請求項5に記載の記憶スペース確保方法。
  7. 前記割り当て容量を前記物理的容量と比較するステップと、前記割り当て容量が前記物理的容量の半分以上であるときにのみステップ(f)で前記最大許容数を計算するステップと、をさらに備えることを特徴とする請求項1に記載の記憶スペース確保方法。
  8. 物理的記憶スペース(34)を形成する複数の記憶ディスク(12)のディスクアレイ(11)を備えるデータ記憶システム(10)の階層データ記憶システム内の記憶スペース確保方法であって、
    (a)前記ディスクアレイ内の前記物理的記憶スペース(34)の物理的容量を提供するステップと、
    (b)前記物理的記憶スペース(34)を複数のミラーRAID領域及びパリティRAID領域を有するRAIDレベル仮想記憶スペース(40)にマッピングするステップと、
    (c)前記RAIDレベル仮想記憶スペース(40)を複数の仮想ブロックを有するアプリケーションレベル仮想記憶スペース(50)にマッピングするステップと、
    (d)ミラー冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の前記仮想ブロックを前記ミラーRAID領域に割り当てるステップと、
    (e)前記仮想ブロックにデータを記憶するステップと、
    (f)現在データの記憶に使用されている仮想ブロックの総数を表わす割り当て容量を決定するステップと、
    (g)前記割り当て容量を前記物理的容量と比較するステップと、
    (h)前記割り当て容量が前記物理的容量の半分以上である場合、(1)前記ミラーRAID領域内の仮想ブロックの最大許容数を、前記物理的容量及び前記割り当て容量の関数として計算するステップと、(2)前記ミラーRAID領域内に割り当て可能な前記仮想ブロックの数を動的に変更し、前記ミラーRAID領域内の仮想ブロックが前記計算されたミラーRAID領域内の仮想ブロックの最大許容数を越えて割り当てられることのないように制限するステップと、(3)パリティ冗長に従ってデータを記憶するために、前記アプリケーションレベル仮想記憶スペース内の仮想ブロックを前記パリティRAID領域内に割り当てるステップと、(4)一部の仮想ブロック内のデータを前記ミラーRAID領域に記憶し、残りの仮想ブロック内のデータを前記パリティRAID領域に記憶するステップと、を実行するステップと、
    を備えることを特徴とする記憶スペース確保方法。
  9. 前記マッピングステップ(b)および前記マッピングステップ(c)が、ユーザの使用に供されないある量のスペースを論理的に確保するために、前記物理的記憶スペースの容量より小さい容量を有するRAIDレベル仮想記憶スペースとアプリケーションレベル仮想記憶スペースとを生成することを特徴とする請求項8に記載の記憶スペース確保方法。
JP31216695A 1994-12-02 1995-11-30 階層データ記憶システムの記憶スペース確保方法 Expired - Fee Related JP3753766B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/348,391 US5659704A (en) 1994-12-02 1994-12-02 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
US348-391 1994-12-02

Publications (2)

Publication Number Publication Date
JPH08278850A JPH08278850A (ja) 1996-10-22
JP3753766B2 true JP3753766B2 (ja) 2006-03-08

Family

ID=23367837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31216695A Expired - Fee Related JP3753766B2 (ja) 1994-12-02 1995-11-30 階層データ記憶システムの記憶スペース確保方法

Country Status (4)

Country Link
US (1) US5659704A (ja)
EP (1) EP0715249B1 (ja)
JP (1) JP3753766B2 (ja)
DE (1) DE69533575T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5603972B1 (ja) * 2013-06-03 2014-10-08 日本電信電話株式会社 データ処理装置、データ処理システム及びデータ処理方法

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098128A (en) 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US5812398A (en) * 1996-06-10 1998-09-22 Sun Microsystems, Inc. Method and system for escrowed backup of hotelled world wide web sites
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US5875457A (en) * 1996-10-08 1999-02-23 Mylex Corporation Fault-tolerant preservation of data integrity during dynamic raid set expansion
JPH10124325A (ja) * 1996-10-25 1998-05-15 Toshiba Corp 変数の最適配置方法、変数の最適配置装置及び変数の最適配置プログラムを格納したコンピュータ読み取り可能な記録媒体
US5943690A (en) * 1997-04-07 1999-08-24 Sony Corporation Data storage apparatus and method allocating sets of data
US7389312B2 (en) * 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
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
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
JP3505093B2 (ja) * 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
JP2000353054A (ja) * 1999-06-09 2000-12-19 Hitachi Ltd 情報処理装置の制御方法および情報処理装置
US6519679B2 (en) 1999-06-11 2003-02-11 Dell Usa, L.P. Policy based storage configuration
US6842422B1 (en) 1999-06-15 2005-01-11 Marconi Communications, Inc. Data striping based switching system
US6513093B1 (en) 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US6418512B1 (en) 1999-08-31 2002-07-09 International Business Machines Corporation Method and system for reporting disk utilizations for disk subsystems
US6530004B1 (en) * 2000-06-20 2003-03-04 International Business Machines Corporation Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration
US6928459B1 (en) 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US6829678B1 (en) * 2000-07-18 2004-12-07 International Business Machines Corporation System for determining the order and frequency in which space is allocated on individual storage devices
US6691136B2 (en) 2000-09-28 2004-02-10 Fair Issac Corporation Fast data retrieval based upon contiguous consolidation of records according to frequency of access
US6820182B1 (en) * 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
US6665743B2 (en) * 2001-04-18 2003-12-16 International Business Machines Corporation Method, system, and program for initializing a storage space
JP2003114817A (ja) * 2001-08-03 2003-04-18 Toshiba Corp 情報記憶媒体及び情報記録方法
US6862691B2 (en) * 2001-09-19 2005-03-01 Hewlett-Packard Development Company, L.P. Redundant component system and method for facilitating endsystem functionality
US6732232B2 (en) 2001-11-26 2004-05-04 International Business Machines Corporation Adaptive resource allocation in multi-drive arrays
US6996672B2 (en) * 2002-03-26 2006-02-07 Hewlett-Packard Development, L.P. System and method for active-active data replication
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7734867B1 (en) * 2002-05-17 2010-06-08 Hewlett-Packard Development Company, L.P. Data storage using disk drives in accordance with a schedule of operations
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
JP3788961B2 (ja) * 2002-08-30 2006-06-21 株式会社東芝 ディスクアレイ装置及び同装置におけるレイドレベル変更方法
US7979632B2 (en) * 2002-09-06 2011-07-12 Hewlett-Packard Development Company, L.P. Storage system including a fast storage device for storing redundant data
JP2004192105A (ja) * 2002-12-09 2004-07-08 Hitachi Ltd 記憶装置の接続装置およびそれを含むコンピュータシステム
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
JP2007502470A (ja) 2003-08-14 2007-02-08 コンペレント・テクノロジーズ 仮想ディスク・ドライブのシステムおよび方法
GB0320494D0 (en) * 2003-09-02 2003-10-01 Ibm Methods apparatus and controllers for a raid storage system
US20050086430A1 (en) * 2003-10-17 2005-04-21 International Business Machines Corporation Method, system, and program for designating a storage group preference order
US7290087B2 (en) * 2003-11-26 2007-10-30 International Business Machines Corporation Adaptive grouping in object raid
JP2005228170A (ja) 2004-02-16 2005-08-25 Hitachi Ltd 記憶装置システム
US7249277B2 (en) * 2004-03-11 2007-07-24 Hitachi, Ltd. Disk array including plural exchangeable magnetic disk unit
US7702948B1 (en) * 2004-07-13 2010-04-20 Adaptec, Inc. Auto-configuration of RAID systems
US7243201B2 (en) * 2004-07-22 2007-07-10 International Business Machines Corporation Application-based commit for local storage subsystems and remote storage subsystems
US7454566B1 (en) * 2005-05-02 2008-11-18 Nvidia Corporation System and method for adaptive RAID configuration
US7596657B2 (en) * 2006-01-13 2009-09-29 Paul Kaler Increased storage capacity for solid state disks using data compression
US7886111B2 (en) 2006-05-24 2011-02-08 Compellent Technologies System and method for raid management, reallocation, and restriping
US7917713B2 (en) 2006-12-20 2011-03-29 International Business Machines Corporation Optimized data migration with a support processor
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
JP5117120B2 (ja) * 2007-06-18 2013-01-09 株式会社日立製作所 ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム
US8468292B2 (en) 2009-07-13 2013-06-18 Compellent Technologies Solid state drive data storage system and method
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US9921752B2 (en) * 2012-05-04 2018-03-20 Netapp, Inc. Systems, methods, and computer program products providing read access in a storage system
US20140181455A1 (en) * 2012-12-20 2014-06-26 Apple Inc. Category based space allocation for multiple storage devices
US10303570B2 (en) 2014-10-17 2019-05-28 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system
KR102527992B1 (ko) * 2016-03-14 2023-05-03 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20180127695A (ko) * 2017-05-22 2018-11-30 삼성전자주식회사 저장 공간 확보를 위한 장치 및 그에 관한 방법
CN109409995A (zh) * 2018-10-15 2019-03-01 郑州云海信息技术有限公司 一种硬盘定制化开发的方法、装置、设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06100981B2 (ja) * 1983-12-28 1994-12-12 株式会社日立製作所 記憶階層制御方式
US5249279A (en) * 1989-11-03 1993-09-28 Compaq Computer Corporation Method for controlling disk array operations by receiving logical disk requests and translating the requests to multiple physical disk specific commands
JPH0792775B2 (ja) * 1989-12-11 1995-10-09 株式会社日立製作所 外部記憶装置群のスペース管理方法
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
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
EP0485110B1 (en) * 1990-11-09 1999-08-25 Emc Corporation Logical partitioning of a redundant array storage system
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
US5333315A (en) * 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
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
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5574851A (en) * 1993-04-19 1996-11-12 At&T Global Information Solutions Company Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations
US5598549A (en) * 1993-06-11 1997-01-28 At&T Global Information Solutions Company Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5485571A (en) * 1993-12-23 1996-01-16 International Business Machines Corporation Method and apparatus for providing distributed sparing with uniform workload distribution in failures
US5491810A (en) * 1994-03-01 1996-02-13 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
US5546558A (en) * 1994-06-07 1996-08-13 Hewlett-Packard Company Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
US5479653A (en) * 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5572661A (en) * 1994-10-05 1996-11-05 Hewlett-Packard Company Methods and system for detecting data loss in a hierarchic data storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5603972B1 (ja) * 2013-06-03 2014-10-08 日本電信電話株式会社 データ処理装置、データ処理システム及びデータ処理方法

Also Published As

Publication number Publication date
JPH08278850A (ja) 1996-10-22
US5659704A (en) 1997-08-19
EP0715249A3 (en) 2000-02-23
EP0715249B1 (en) 2004-09-29
EP0715249A2 (en) 1996-06-05
DE69533575T2 (de) 2006-01-05
DE69533575D1 (de) 2004-11-04

Similar Documents

Publication Publication Date Title
JP3753766B2 (ja) 階層データ記憶システムの記憶スペース確保方法
JP3708195B2 (ja) データ記憶システムにおける仮想容量の過大割当てを避ける方法
JP3778980B2 (ja) 保留された量の不使用の記憶スペースを使用する方法
JP3753259B2 (ja) 記憶空間を提供する方法およびデータ記憶システム
EP0801344B1 (en) An apparatus for reallocating logical to physical disk devices using a storage controller and method of the same
EP0686907B1 (en) Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
US5615352A (en) Methods for adding storage disks to a hierarchic disk array while maintaining data availability
JP3715000B2 (ja) データ記憶装置のデータを選択する方法
JP3753461B2 (ja) 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム
US11216195B1 (en) Sharing blocks of non-volatile data storage to support cache flushes in a multi-node data storage system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051026

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: 20051214

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

LAPS Cancellation because of no payment of annual fees