JPH08272548A - 保留された量の不使用の記憶スペースを使用する方法 - Google Patents

保留された量の不使用の記憶スペースを使用する方法

Info

Publication number
JPH08272548A
JPH08272548A JP7334591A JP33459195A JPH08272548A JP H08272548 A JPH08272548 A JP H08272548A JP 7334591 A JP7334591 A JP 7334591A JP 33459195 A JP33459195 A JP 33459195A JP H08272548 A JPH08272548 A JP H08272548A
Authority
JP
Japan
Prior art keywords
raid
storage space
data
storage
mirror
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
Application number
JP7334591A
Other languages
English (en)
Other versions
JP3778980B2 (ja
Inventor
Theresa A Burkes
テレサ・エー・バークス
Bryan M Diamond
ブライアン・エム・ダイアモンド
Michael B Jacobson
マイケル・ビー・ヤコブソン
Marvin D Nelson
マーヴィン・ディー・ネルソン
Douglas L Voigt
ダグラス・エル・ヴォイト
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 JPH08272548A publication Critical patent/JPH08272548A/ja
Application granted granted Critical
Publication of JP3778980B2 publication Critical patent/JP3778980B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/1803Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 異なる冗長技術に従ってデータを格納する
データ記憶システムの記憶スペースを有効に利用する。 【解決手段】階層的なディスク・アレイ記憶システム
は、複数の記憶ディスクと、ディスクの物理記憶スペー
スを2つの仮想記憶スペースにマップするRAID管理シス
テムを備える。RAIDレベルの仮想記憶スペースは、物理
記憶スペースをミラー及びパリティRAID領域として提示
し、アプリケーション・レベルの仮想記憶スペースは、
物理記憶スペースを複数の仮想ブロックとして提示す
る。RAID管理システムは、パフォーマンス及び信頼性を
最適化するために、ミラー及びパリティRAID領域の間で
データを移行する。移行を容易にするために、RAID管理
システムは、RAID領域を空にするために使われるある量
の不使用の記憶スペースを保証する。不使用の記憶スペ
ースは、少なくとも1つのRAID領域とサイズが等しいこ
とが好ましく、また、1つの物理ロケーションにではな
く、複数の記憶ディスクにわたって不連続な態様で複数
のRAID領域上に分布していてよい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、階層的なディスク
・アレイ・データ記憶システムのようなデータ記憶シス
テム、及びそのようなシステム内でのデータの移行のた
めに保留された記憶スペースの使用方法に関する。
【0002】コンピュータ・システムは、速度、信頼性
および処理能力の観点から絶えずよくなっている。その
結果、コンピュータはより複雑で洗練されたアプリケー
ションを扱うことができる。コンピュータがよくなるに
つれて、大容量記憶および入出力(I/O)装置に課せら
れるパフォーマンスの要求が増加する。パフォーマ ン
スの面で、発展するコンピュータ・システムとペースを
保つ大容量記憶システムを設計する必要性がある。
【0003】この発明は、特にディスク・アレイ型の大
容量記憶システムにかかわる。ディスク・アレイ・デー
タ記憶システムは、一つの大容量記憶システムを形づく
るよう構成され調整された複数の記憶ディスク・ドライ
ブ装置を持つ。大容量記憶システムのための3つの主要
な設計基準がある。それは、費用、パフォーマンスおよ
び可用性である。メガバイト当たりのコストが低く、高
い入出力パフォーマンスおよび高いデータ可用性を持つ
記憶装置を生産することが望まれる。「可用性」は、デ
ータを記憶装置の中でアクセスする能力であり、なんら
かの故障があっても連続した操作を保証する能力であ
る。典型的には、データ可用性は、データ、またはデー
タ間の関係が複数のロケーションに格納される冗長性の
使用を通して提供される。
【0004】
【従来の技術】冗長データを格納するには2つの一般的
な方法がある。第1の方法、すなわち「ミラー」法によ
ると、データは、複製され、その記憶装置の2つの別々
の領域に 格納される。例えば、ディスク・アレイにお
いて、同じデータがディスク・アレイの2つの別々のデ
ィスクに提供される。ミラー法は、二重記憶技術によっ
て高 いパフォーマンスおよび高いデータ可用性の利点
を持っている。しかし、ミラー法は、データを格納する
費用を実質的に2倍にするので比較的高価である。
【0005】第2の方法、すなわち「パリティ」法で
は、記憶領域の一部分が、冗長データを格納するために
使われるが、冗長な記憶領域のサイズは、オリジナルの
データを格納するのに使われた残りの記憶スペースより
小さい。例えば、5つのディスクを持つディスク・アレ
イにおいて、4つのディスクが、データを格納するのに
使われ、5番目のディスクが冗長データを格納するのに
使われる。パリティ法は、ミラー法より低コストだとい
う利点があるが、ミラー法に比べるとパフォーマンスお
よび可用性特性において劣る。
【0006】
【発明が解決しようとする課題】本発明は、パフォーマ
ンスおよび信頼性を最適化するために異なる冗長技術に
従ってデータを格納する階層的なデータ記憶システムを
提供することを目的とする。
【0007】
【課題を解決するための手段】データ記憶システムは、
複数の記憶ディスクを有するディスク・アレイと、ディ
スクへ、またはディスクからのデータの移行を調整する
ディスク・アレイ・コントローラを含む。記憶ディスク
は、物理記憶スペースを規定する。また、データ記憶シ
ステムは、記憶ディスクの物理記憶スペースに2つの仮
想記憶スペースをマッピングするために、ディスク・ア
レイ・コントローラと機能的に結合したRAID管理システ
ムを含む。第1の、すなわちRAIDレベルの仮想記憶スペ
ースは、物理記憶スペースを複数のミラー及びパリティ
RAID領域として提示する。ミラーRAID領域は、RAIDレベ
ル1(ミラー冗長)に従ってデータを格納するミラー割
当てブロックを含み、パリティRAID領域は、RAIDレベル
5(パリティ冗長)に従ってデータを格納するパリティ
割当てブロックを含む。第2の、すなわちアプリケーシ
ョン・レベルの仮想記憶スペースは、物理記憶スペース
を多重仮想ブロックとして提示する。
【0008】RAID管理システムは、データが、RAIDレベ
ル1(すなわちミラー冗長)とRAIDレベル5(すなわち
パリティ冗長)の間で、パフォーマンス及び信頼性を最
適化する態様で冗長性の変化を受けるように、データを
ミラー割当てブロック及びパリティ割当てブロックの間
で移行させる。移行を容易にするために、RAID管理シス
テムは、移行の間に一時的にデータ移動のターゲットに
なりうるRAIDレベル仮想記憶スペース内に、ある量の不
使用の記憶スペースを保留する。不使用の記憶スペース
は、サイズにおいて1つのRAID領域と同じであることが
好ましい。しかしながら、不使用の記憶スペースは、1
つのRAID領域または他の1つの物理ロケーションの中に
存在せず、複数の記憶ディスクにわたる不連続な態様
で、多数のRAID領域にまたがって分布していてよい。
【0009】本発明の1つの方法によると、RAID管理シ
ステムは、ミラー割当てブロックの生成を助けるために
不連続の不使用のスペースを用いる。その方法は、不使
用のスペースを使用するいくつかの可能な技法を含む。
その手段は、少なくとも1つのミラー割当てブロックが
生成されるまで連続して試行される。第1の技法は、不
使用のRAID領域を見つけだし、それを少なくとも1つの
使用可能なミラー割当てブロックを含むミラーRAID領域
に変換するものである。第2の技法は、不使用のRAID領
域に空のパリティ割当てブロックを集めて、そのRAID領
域を少なくとも1つの使用可能なミラー割当てブロック
を含むミラーRAID領域に変換するものである。第3の技
法は、不使用のRAID領域が生成されるまで、以下のステ
ップ(a)及び(b)を交互に実行し、それからステップ(c)
を実行するものである。(a)データをミラー割当てブロ
ックからパリティ割当てブロックに移行させ、ミラー割
当てブロックを空にする。(b)空のミラー割当てブロッ
クを不使用のRAID領域に集める。(c)不使用のRAID領域
をパリティRAID領域に変換する。第3の手段のステップ
(a)ないし(c)は、不使用のRAID領域が生成されるまで繰
り返され、それは保留された最小限の不使用の記憶スペ
ースを侵すことなくミラーRAID領域に変換することがで
きる。
【0010】本発明の他の方法によると、RAID管理シス
テムは、タスクの再生成や新たな記憶ディスクの追加な
ど、サイズのあったデータの移動オペレーションに使用
するために全RAID領域を空にする。RAID管理システム
は、最初に、データが部分的にのみ満たされるRAID領域
(ミラー又はパリティ)を見つける。そして、データ
は、RAID領域から不使用の記憶スペースへ移される。こ
れで、RAID領域は空になり、ミラーまたはパリティRAID
領域への変換の準備が整う。
【0011】
【発明の実施の形態】図1は、この発明に従ってつくら
れたデータ記憶システム10を示す。データ記憶システム
10は、複数の記憶ディスク12を有する階層的なディスク
・アレイ11、記憶ディスク12から又は記憶ディスク12へ
のデータ移動を調整するディスク・アレイ・コントロー
ラ14、およびRAID管理システム16を備える、ディスク・
アレイ・データ記憶システムであるのが好ましい。
【0012】説明上、「ディスク」は、それ自身の記憶
装置故障を発見する能力を持つ、不揮発性でランダムに
アクセス可能な、再書き込み可能な大容量記憶装置であ
る。それは、回転する磁気ディスクおよび光ディスク、
ならびにソリッドステートのディスクまたは不揮発性電
子記憶素子(PROM、EPROMとEEPROMのような)を含む。
「ディスク・アレイ」という用語は、ディスクの集合を
いい、それらを一つまたは複数のホスト・コンピュータ
に接続するために必要なハードウェア、および物理的な
ディスクの操作を制御するために使われ、ホスト操作環
境へそれらを一つまたは複数の仮想ディスクとして提供
する管理ソフトウェアを含んでいる。「仮想ディスク」
とは、管理ソフトウェアによってディスク・アレイの中
で実現される抽象的な構成要素である。
【0013】用語「RAID」(Redundant Array of Indepe
ndent Disks)は、記憶容量の残りの部分に格納されたユ
ーザ・データに関する冗長情報を格納するために、物理
的な記憶容量の一部分が使われるディスク・アレイを意
味する。そのアレイの構成ディスクの一つが故障するか
それへのアクセス経路が故障した場合、冗長情報がユー
ザ・データの再生を可能にする。RAIDシステムのより詳
細な説明は、The RAIDBook: A Source Book for RAID T
echnology, the RAID Advisory Board, LinoLakes, Min
nesota、1993 年6月9日、に記載されている。
【0014】ディスク・アレイ・コントローラ14は、小
型コンピュータ・システム・インターフェース(SCSI)
のような1つまたは複数のインターフェース・バス13を
通してディスク・アレイ11に結合されている。RAID管理
システム16は、インターフェース・プロトコル15を通し
て動作的にディスク・アレイ・コントローラ14に結合さ
れている。また、データ・メモリ・システム10は、I/O
インターフェース・バス17を通してホスト・コンピュー
タ(図示しない)に結合される。RAID管理システム16
は、ディスク記憶および信頼性のレベルを制御するた
め、およびいろいろな信頼性記憶レベルの間でデータを
転送するためにデータ・マネージャー手段を提供するよ
う、別々のコンポーネントとして具体化されることも、
ディスク・アレイ・コントローラ14内で、あるいはホス
ト・コンピュータ内で構成されることもできる。これら
の信頼性記憶レベルは、後述するようにミラーまたはパ
リティ冗長レベルであるのが好ましいが、全く冗長性な
しの信頼性記憶レベルを含むことができる。
【0015】ディスク・アレイ・コントローラ14は、デ
ィスク・アレイ・コントローラA、14aとディスク・アレ
イ・コントローラB、14bから成る二重のコントローラと
して実施するのが好ましい。二重のコントローラ14aと1
4bは、連続的なバックアップと冗長性を提供することに
よって、一つのコントローラが動作不能になるときの信
頼性を高める。しかし、この発明は、一つのコントロー
ラその他のアーキテクチャーでも実施することができ
る。
【0016】階層的なディスク・アレイ11は、その物理
的な記憶スペースおよび1つまたは複数の仮想記憶スペ
ースを含めて、異なる記憶スペースとして特徴づけるこ
とができる。記憶装置のこれらのいろいろな見方は、マ
ッピング技法を通して関係づけられる。例えば、そのデ
ィスク・アレイの物理的な記憶スペースは、いろいろな
データの信頼度レベルに従って記憶領域を画定する仮想
記憶スペースにマップすることができる。仮想記憶スペ
ース内のいくつかの領域が、ミラーまたはRAIDレベル1
のような第1の信頼性記憶レベルのために割り当てら
れ、他の領域がパリティまたはRAIDレベル5のような第
2の信頼性記憶レベルのために割り当てられることがで
きる。いろいろなマッピング技術およびRAIDレベルに関
する仮想スペースについて、以下に詳細を説明する。
【0017】データ記憶システム10は、異なる記憶スペ
ースを互いにマップするために使われる仮想マッピング
情報を持続的に記憶するためのメモリ・マップ・ストア
21を含む。メモリ・マップ・ストアは、ディスク・アレ
イに対して外部にあり、ディスク・アレイ・コントロー
ラ14に常駐するのが好ましい。異なるビューの間でいろ
いろなマッピング構成が変わるにつれて、メモリ・マッ
ピング情報がコントローラまたはRAID管理システムによ
って連続的に、あるいは定期的に更新されることができ
る。
【0018】メモリ・マップ・ストア21は、それぞれの
コントローラ14aと14bに位置する2つの不揮発性RAM (R
andom Access Memory) 21aおよび21bとして具体化され
るのが好ましい。不揮発性RAM(NVRAM)の一例は、バッ
テリで支援されたRAMである。バッテリ支援RAMは、デー
タ記憶システム10への電力供給が損なわれた場合、ある
時間の間メモリの中のデータを維持するために独立のバ
ッテリ源からのエネルギーを使う。一つの好ましい構造
は、自己リフレッシュ型のバッテリ支援DRAM(Dynamic
RAM)である。
【0019】二重のNVRAM 21aおよび21bが、メモリ・マ
ッピング情報の冗長な記憶を行う。仮想マッピング情報
が、ミラー冗長技術に従って複製され、両方のNVRAM 21
aおよび21bに格納される。このように、NVRAM 21aが、
オリジナルのマッピング情報を格納することに専用さ
れ、NVRAM 21bが冗長なマッピング情報を格納すること
に専用されることができる。代替構造において、ミラー
されたメモリ・マップ・ストアは、そのデータを二重に
記憶するに十分なスペースを持つ単一の不揮発性RAMを
使って構成することができる。
【0020】図1に示されるように、ディスク・アレイ
11は、複数の記憶ディスク・ドライブ装置12を持ってい
る。これらの記憶ディスクのサイズの例は、1ないし3
ギガバイトである。記憶ディスクは、SCSIバス13とのイ
ンターフェイスを提供する機械的ベイに、独立に接続さ
れたり切り離したりされることができる。一つの実施例
において、データ記憶システムは、12の機械的ベイを
持つよう設計される。4つのSCSIバスが、これらのベイ
とディスク・アレイ・コントローラ14とをインターフェ
イスするのに使われる(すなわち、3つの機械的ベイに
つき一つのバス)。活動ベイがいっぱいにロードされる
ならば、データ記憶システムは、12ないし36ギガバ
イトの結合された容量を持つ例になる。ディスク・アレ
イ・コントローラ14は、どのベイに接続されたかとは関
係なく記憶ディスク12を認識する。データ記憶システム
10は、ディスク・アレイが運転中である間に、ディスク
・アレイの利用可能な機械的ベイに付加的ディスクを
「ホットプラグ」(稼働中にプラグ接続する)すること
ができるよう設計されている。
【0021】ディスク・アレイ11の中の記憶装置ディス
ク12は、説明の目的のために、複数のディスク20のミラ
ー・グループ18および複数のディスク24のパリティ・グ
ループ22に配列されているものと観念することができ
る。ミラー・グループ18は、データを第1の、すなわち
ミラー冗長レベルに従って格納する、ディスク・アレイ
の第1の記憶ロケーションすなわちRAID領域を表わす。
また、このミラー冗長レベルは、RAIDレベル1と考えら
れる。RAIDレベル1、すなわちディスク・ミラーリング
は、データのあらゆるビットがデータ記憶システム内で
複製され記憶される点で1対1の保護を与え、最も高い
データ信頼性を提供する。ミラー冗長性は、図1におい
て3対のディスク20によって表わされている。オリジナ
ルのデータが、第1組のディスク26に格納されることが
でき、重複して冗長データが、対になった第2組のディ
スク28に格納される。
【0022】図2は、RAIDレベル1に従ったデータの記
憶をより詳細に図示する。垂直な列は、個々のディスク
(ディスク0、1、2および3が図示される)を表現する。
4つのディスクの ディスク・アレイに含まれる物理的な
記憶スペースは、水平な行によって表現されるように、
複数のストライプに構成することができる。「ストライ
プ」は、記憶ディスクを横切って広がり、一つのセグメ
ントがそのアレイの中のそれぞれのディスクと関連す
る、多数の等しい大きさの記憶スペースのセグメントを
含む。すなわち、セグメントは、一つのディスク上にあ
るストライプの部分である。各ストライプは、記憶ディ
スクを横切って分配されるあらかじめ決められた量のデ
ータを持つ。ストライプのセグメントのいくつかは、オ
リジナルのデータのために使われ、他のセグメントが冗
長データのために使われる。
【0023】ミラー冗長性(RAIDレベル1)のこの例に
おいて、ディスク0上でストライプ0のセグメント0に格
納されたデータは、複製され、ディスク1上でストライ
プ0のセグメント0'に格納される。同様に、ディスク2上
でストライプ2のセグメント5に格納されたデータは、デ
ィスク3上でストライプ2のセグメント5'にミラー(複
製)される。このように、データの各部分は、複製され
てディスク上に格納される。図2の冗長性レイアウト
は、説明の目的で用意されている。冗長データは、図示
しているように同一のストライプにきちんと置かれる必
要はない。例えば、ディスク0上でストライプ1の中のセ
グメント2に格納されたデータは、複製されて、ディス
ク3上でストライプSのセグメントT'に置かれてもよい。
【0024】再び図1を参照すると、ディスク24のパリ
ティ・グループ22は、データがRAIDレベル5のような第
2の冗長レベルに従って格納される第2の記憶ロケーシ
ョンすなわちRAID領域を表わす。6つのディスクを用い
た説明的なイラストにおいて、オリジナルのデータは、
5つのディスク30に格納され、冗長な「パリティ」デー
タが6番目のディスク32に格納される。
【0025】図3は、パリティRAID領域のレイアウトを
より詳しく示す。図2のミラーRAID領域レイアウトと同
様に、ディスク0、1、2、3の物理的な記憶スペースは、
複数の等しい大きさのストライプに構成されることがで
きる。図の例において、データがRAIDレベル5に従って
格納され、セグメントに格納された冗長データは、文字
Pによって参照される。冗長なPセグメントは、他のセグ
メントのパリティをそのストライプに格納する。たとえ
ば、ストライプ0において、ディスク3上の冗長なPセグ
メントは、ディスク0、1および2のパリティを格納す
る。各ストライプのためのパリティが、次の式の中の記
号によって表わされる排他的OR機能のようななんらか
の機能によって計算される。第1の4つのストライプの
ためのパリティ(下付き添字数字が対応するストライプ
を表わす)は、次のようである:
【0026】
【数1】 パリティ冗長性は、ディスクの一つで利用できなくなる
データの再生を可能にする。例えば、セグメント5のデ
ータが利用できなくなったならば、その内容は、セグメ
ント3および4ならびにセグメントPの中のパリティ・デ
ータから確かめることができる。パリティ記憶は、ミラ
ー記憶より経済的であるが、相対的に信頼性が低く、パ
フォーマンスが低い。
【0027】図1のディスク構成は、概念上の目的で用
意されている。実際上、ディスク・アレイ11は、データ
をミラーおよびパリティ冗長性に従って格納することが
できる単に複数のディスク12を持っていてよい。すべて
のディスク12によって提供される利用可能な記憶スペー
スの中で、その記憶スペースの一部がミラー冗長性のた
めに割り当てられ、他の部分がパリティ冗長のために割
り当てられる。ディスク12は、個々の区域が複数のセグ
メントを持つ、複数の等しい大きさに作られた記憶区域
(図4において数字35で参照される)を含むよう構成さ
れるのが好ましい。その区域は、記憶スペースの一つの
仮想ビューにおいて、RAID領域を形成するようグループ
化される。さらに、記憶スペースのもう一つの(ホスト
で規定される)ビューがユーザまたはホストに提示され
るので、RAID領域およびデータ冗長性記憶技術はユーザ
またはホストに透明である。これらの機構は、図4を参
照してより詳しく説明する。
【0028】データ記憶システム10は、ミラーおよびパ
リティ記憶法の間でデータの「移行」を管理する。両方
の型の冗長の管理は、RAID管理システム16(図1)で協
調される。RAID管理システム16は、ディスク・アレイの
2つの異なる型のRAID領域を、ミラーRAID領域がパリテ
ィRAID領域のためのキャッシュに似た動作をするメモリ
・ハイアラーキとして管理する。RAID管理システム16
は、規定されたパフォーマンス・プロトコルに従って、
ミラーおよびパリティRAID領域の間でデータをシフト
し、組織するなど管理する。ミラーおよびパリティRAID
領域の間でデータを動かすプロセスは、「移行」と呼ば
れる。
【0029】データ記憶システム10は、ミラー冗長性が
最も高いパフォーマンスと信頼性の余裕を持っているか
ら、よりパフォーマンスに厳格なデータをミラーRAID領
域に置こうとする。RAID管理システムによって実行され
るパフォーマンス・プロトコルは、2つの好ましい移行
方針の一つを含む。「アクセス頻度」として知られる第
1の移行方針によると、階層的なディスク・アレイ上の
最も頻繁にアクセスされるデータがミラーRAID領域18に
維持される。アクセスされる頻度の小さいデータは、パ
リティRAID領域22に維持される。「アクセスの最近度」
として知られている第2の移行方針によると、最も最近
アクセスされたデータがミラーRAID領域18に維持され、
アクセス最近度の低いデータがパリティRAID領域22に格
納される。他のパフォーマンス・プロトコルを使うこと
もできる。理想的には、そのようなプロトコルは、特定
のコンピュータ・アプリケーションおよびユーザのニー
ズに基づいて規定される。
【0030】さらに、RAID管理システム16は、2つのパ
ラメーターの関数に従って、データ記憶システムの記憶
資源を自動的に「調整する」。この2つのパラメータ
は、物理的な記憶容量のサイズ、およびデータ記憶シス
テムに格納つつあるユーザ・データの現在量のサイズで
ある。最初は、最も高いパフォーマンスおよび信頼性を
持つので、すべてのデータがミラーRAID領域に格納され
る。より多くのデータがデータ記憶システムに加えられ
るにつれて、データは、パフォーマンスおよび信頼性を
最適化するために、ミラーRAID領域およびパリティRAID
領域の間で移行される。データ記憶システムが容量いっ
ぱいに近づくと、冗長性を通しての信頼性を提供しなが
らユーザのすべての要求に応ずるために、より多くのデ
ータがパリティRAID領域に移行される。それゆえに、こ
の発明のデータ記憶システムは、最大の融通性と順応性
を持つ。この発明の記憶システムは、ユーザに特定の記
憶体制を選ぶことを要求せず、ユーザの要求に適応する
ことができる。
【0031】図4は、データ記憶システム10の利用可能
な記憶スペースのメモリ・マッピングを、マップされた
仮想記憶スペースの複数の段として図示する。図の中の
垂直に伸びたそれぞれの長方形は、物理的な記憶スペー
スのビューを表現する。この図の中で、物理的記憶スペ
ース34が2つの仮想記憶装置のビュー40および50で参照
される。物理的記憶スペース34は、数字0、1、2、およ
び3で参照される4つのディスク(図1の中のディスク1
2のような)によって表現される。そのディスクに関連
した4つの長方形は、ディスク1、2および3がほぼ等し
い記憶容量を持ち、ディスク0がわずかに小さい記憶容
量を持つ物理的な記憶スペースのビューを表わす。その
ようなディスクの例としての記憶容量は、1ないし3ギ
ガバイトである。記憶スペース34は、領域A0、A1、A2、
その他に区分される。個々の領域は、領域A0にストライ
プ0ないしQのような多数のストライプを含む。個々の領
域はまた、多数の区域35を含む。区域35は、区域が全デ
ィスク・アレイにわたって同じ大きさであるように、あ
らゆる記憶ディスク上で選ばれた数の均一な大きさのセ
グメントから成るのが好ましい。区域35の例としてのサ
イズは、1メガバイトである。
【0032】ディスクの記憶スペースは、物理的な記憶
スペース34の第1の、中間の、RAIDレベルの仮想ビュー
40にマップされる。この第1の仮想ビューは、観念的に
は、連続してアドレス可能な記憶スペースを表現する第
2のアプリケーション・ビューにマップされることがで
きる一組のRAID領域である。記憶スペースの物理的構成
およびRAIDビューは、アプリケーション・ビューから隠
されている。
【0033】RAID領域記憶スペース40は、ミラーおよび
パリティ記憶スペースを識別する記憶装置のビューであ
る。たとえば、RAID領域42が、M割当てブロック43のミ
ラーRAID領域を表現し、RAID領域44がN割当てブロック4
5のパリティRAID領域を表現してもよい。割当てブロッ
ク43および45は、同じ大きさであるのが好ましい。例と
しての大きさは、64キロバイトである。これらのRAID領
域は、物理的な記憶スペース34上の対応する物理的な領
域A0、A1、A2などに関連する。例として、RAID仮想ビュ
ーにおける16の64K割当てブロック43または45は、一つ
の1M区域35の上へマップすることができる。
【0034】ミラーおよびパリティRAID領域は、ディス
ク・アレイの全記憶スペース34を消費するかもしれず、
消費しないかもしれない。したがって、ある種のアプリ
ケーションの間、特定のRAID領域に対応しない、不使用
の指定されていない記憶スペースがあることがある。し
かし、そのような記憶スペースは、ミラーまたはパリテ
ィRAID領域に変換されることができる。また、RAID領域
は、ディスク・アレイ上で連続する領域にマップされ、
各RAID領域に関連したそれぞれの区域が各記憶ディスク
の同じ物理アドレスに位置するものとして示されている
点に注意されたい。代わりに、RAID領域は、ディスク・
アレイ上の連続しない領域にマップされてもよい。
【0035】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領域、ミラーお
よびパリティがある。
【0036】RAID管理システム16は、物理的な記憶スペ
ースにわたって動的にRAID領域の構成を変えることがで
きる。それぞれの型についてRAID領域の数が、システム
で格納されるユーザ・データの量および物理的なディス
ク記憶スペースのサイズに依存して増やされまたは減少
されうる。この結果、RAIDレベルの仮想ビュー40におけ
るRAID領域のディスクへのマッピング、およびフロント
エンドの仮想ビュー50のRAIDビュー40へのマッピング
は、概して変化状態にある。NVRAM 21aおよび21b(図
1)におけるメモリ・マップ・ストアは、RAID領域をデ
ィスクへマップするためにRAID管理システム16によって
使われる現在のマッピング情報を、2つの仮想ビューの
間でマップするために使われる情報と同様に維持する。
RAID管理システムは、動的にRAIDレベルのマッピングを
変えるにつれて、その変更を反映するために、メモリ・
マップ・ストアのマッピング情報を更新する。
【0037】メモリ・システム10の移行操作を図1およ
び4を参照して説明する。
【0038】説明を続ける目的で、アプリケーション・
レベルの仮想記憶スペース50の仮想ブロック53は、物理
的記憶スペース34の領域A1に格納されたパリティRAID領
域44における関連した割当てブロック45を参照する。そ
のような仮想ブロック53は、「パリティ仮想ブロック」
と呼ぶことができ、関連した割当てブロック45は、「パ
リティ割当てブロック」と呼ぶことができる。同様に、
仮想ブロック52は、物理的記憶スペース34の領域AOに格
納されたミラーRAID領域42における関連した割当てブロ
ック43を参照する。そのような仮想ブロック52は、「ミ
ラー仮想ブロック」と呼ばれ、関連した割当てブロック
43が「ミラー割当てブロック」と呼ばれる。
【0039】一般に、一つのRAID領域から別の領域にデ
ータを移行するために、第1のRAIDレベル型(ミラーす
なわちレベル1のような)の割当てブロックに関連した
仮想ブロックが選ばれる。次いで、第2のRAIDレベル型
(パリティすなわちレベル5のような)を表す不使用の
割当てブロックが見つけられる。不使用の割当てブロッ
クを見つけることができないならば、一つが作成され
る。データは、選ばれた仮想ブロックと関連する割当て
ブロックから不使用の割当てブロックに移され、データ
は冗長レベルを変更される。例えば、ミラー冗長性に従
って格納されていたデータは、パリティ冗長性に従って
格納され、また、その逆が行われる。最終的なステップ
として、RAIDレベルの仮想記憶スペース40へのアプリケ
ーション・レベルの仮想記憶スペース50のマッピング54
は、データのシフトを反映するために修正され、更新さ
れる。以前に第1のRAIDレベル型の割当てブロックと関
連していた、選ばれた仮想ブロックが、更新されたポイ
ンタを介して、移行されたデータを含む第2のRAIDレベ
ル型の割当てブロックを参照する。この処理の間に生じ
るマッピング変化は、メモリ・マップ・ストア21におい
て更新される。
【0040】この発明の好ましい方法と順序に従って、
ミラーおよびパリティ記憶領域の間を移行するデータの
より詳細な説明を続ける。データをパリティ記憶からミ
ラー記憶に移行するために、次のシーケンスが使われ
る。 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に動いている。
【0041】データをミラー記憶からパリティ記憶へ移
行させるために、以下の順序が使われる: 1.RAID管理システムは、アクセス最近度またはアクセ
ス頻度のような移行方針に従ってミラー記憶からパリテ
ィ記憶へ移行させるために仮想ブロックを52から選ぶ。 2. RAID管理システムは、パリティRAID領域44に不使用
のパリティ割当てブロック45を見つける。 3.そのようなブロックが見つけられないならば、移行
用に保留されたスペースが上述の創設技法に従ってパリ
ティRAID領域に変換される。 4. 移行されるべき仮想ブロックへの新しい記憶装置要
求が中断される。 5. RAID管理システムは、仮想ブロックへのすべての有
効な記憶装置要求が完了するまで待つ。 6. データは、仮想ブロック52に関連したミラー割当て
ブロック43から一時記憶バッファに読込まれる。 7. そのデータは、選ばれたパリティ割当てブロック45
に書込まれる。 8. 仮想ブロック・テーブルが、パリティ割当てブロッ
ク45におけるデータの新しいロケーションを参照するよ
う修正される。 9. 仮想ブロックへのデータ要求が再開される。
【0042】上述の2つの挙げられたシーケンスは、こ
の発明のメモリ・システムが異なる2つの冗長性レベル
の間でデータを移行する方法の例を提供する。
【0043】本発明のデータ記憶システムは、データの
移動や他のオペレーション(例えば、上記ミラーからパ
リティへの移動プロセスのステップ3)のために、ある
量の不使用の記憶スペースを保留する。けれども、ミラ
ー冗長が最高のパフォーマンス及び信頼性を提供するこ
とから、このシステムのもう一つの目的は、ユーザ・デ
ータをミラー仮想ブロックにできるだけ多く保有するこ
とである。しかし、ディスク・アレイには限られた量の
物理記憶スペースしかない。はじめは、物理記憶スペー
スは使われない。データがディスク・アレイに格納され
るときに、ミラー割当てブロックが物理容量を使い始め
る。「物理容量」とは、ユーザ・データや冗長データを
格納することができる記憶容量をさす。ユーザ・データ
が物理容量の1/2を使うときに、ミラー記憶はディス
ク・アレイを効果的にふさぐ。ここで、物理容量の1/
2がユーザ・データを格納するのに使われ、物理容量の
残りの1/2が冗長データを格納するのに使われる。
【0044】さらにここで、すべての使用された仮想ブ
ロックは、ミラー記憶に保持される。もしミラー記憶が
多くの物理記憶スペースを消費して、不使用のRAIDスペ
ースの量が一つのRAID領域の量よりも少なくなるとすれ
ば、もはやデータ記憶システムは、たった一つのミラー
割当てブロックのパリティRAID領域への移動さえも保証
できなくなる。不使用のスペースの量が一つのRAID領域
の量よりも小さく、ミラー記憶から一つの割当てブロッ
クを移すためパリティ記憶に変換することができないの
で、前に不使用であった割当てブロックを使用するとい
う次のデータの要求は失敗する。この状況は、回避しな
ければならない。
【0045】RAID管理システム16は、データ移動のため
の十分な量の不使用の記憶スペースを保留し、この不使
用の記憶しきい値が侵されない保証をするための様々な
プロセスを管理する。図5は、本発明の概略的な手順を
示す。ステップ60において、RAID管理システム16は、デ
ィスク・アレイ12によって供給された物理記憶スペース
を第1のまたはRAIDレベルの仮想記憶スペース40(図
4)にマップする。RAIDレベルの仮想記憶スペースは、
物理記憶スペースをミラー及びパリティRAID領域として
表す。ミラーRAID領域は、ミラー冗長又はRAIDレベル1
にしたがってデータを格納するミラー割当てブロックを
含む。パリティRAID領域は、パリティ冗長又はRAIDレベ
ル5にしたがってデータを格納するパリティ割当てブロ
ックを含む。ステップ62において、RAID管理システム
は、RAIDレベルの仮想記憶スペース40に不使用の記憶ス
ペースを保留する。保留する不使用の記憶スペースの量
は1つのRAID領域の記憶スペースの量に等しい。不使用
の記憶スペースは、あらかじめ選択された連続のRAID領
域で保留される必要はない。そのかわりとして、本発明
の方法では、2以上のRAID領域にまたがって不連続に分
布する不使用の記憶スペースを用いる。
【0046】図6は、スペースの保留方法を示す。例と
しての不均一なディスク・アレイ68は、変化する容量で
ある5つのディスク0ないし4を含むように示されてい
る。不使用の記憶スペース(ラベルUで表される)は、
不連続な状態で複数の記憶ディスクにわたって分布す
る。保留した記憶スペースは、1つのRAID領域に論理上
等しい。すなわち、ディスクをまたがって分布された不
使用の記憶スペースUが蓄積すると仮定すると、少なく
とも1つの連続するRAID領域(保留スペースU0ないし
U4)が満たされる。
【0047】不使用の記憶スペースの量は1つの最大の
パリティRAID領域の量と等しいことに注意されたい。不
均一なディスク・アレイでは、最大でないRAID領域が全
ディスクのうち一部のディスクにだけわたり、最大のRA
ID領域がディスク・アレイの全ディスクにわたる。すべ
てのディスクが同じ大きさである均一なディスク・アレ
イでは、すべてのRAID領域がすべての記憶ディスクにわ
たる。こうして、各RAID領域を最大と考えることができ
る。
【0048】ステップ64では、RAID管理システムは、RA
IDレベルの仮想スペースを、物理記憶スペースを複数の
仮想ブロックとして表す第2の又はアプリケーション・
レベルの仮想記憶スペース50へマップする。アプリケー
ション・レベルの仮想記憶スペースは、保留した記憶ス
ペースによって提供される容量には見えない。図4を参
照して論じた2つの列挙されたプロセスにおいて述べた
ように、図5のステップ66では、RAID管理システム16
は、不使用の記憶スペースを使ってミラー及びパリティ
RAID領域間でデータを移行する。このデータ移行は、デ
ータ記憶システムが、不使用の記憶スペースの1つのパ
リティRAID領域のしきい値が侵されないようミラー記憶
に過多なデータを置かないことの保証を助ける。
【0049】不使用のスペースは異なったRAID領域にま
たがり、また複数の記憶ディスクにまたがって不連続に
分布することができるので、本発明の不使用の記憶スペ
ースを保留する方法は有用である。連続した保留記憶ス
ペースが保証されねばならない要求はない。結果とし
て、物理記憶スペースの特定の構成を保証するネスティ
ング・トランザクションのように難しく複雑なオペレー
ションなしで、システムを設計することができる。
【0050】不連続な不使用の記憶スペースは、オペレ
ーションの進行によって異なった方法で、集められ、ま
たは使用される。一般に、保留した量は、ユーザの記
憶、または必要に応じてミラーあるいはパリティRAID領
域に変換することができる不使用のRAID領域のために使
用可能な割当てブロックを生成するのに使われる。特に
興味深い2つのオペレーションは、(1)単一の仮想ブロ
ックをミラーされた記憶領域に書くこと、および(2)全R
AID領域を書き換えること、に関係する。第1のオペレ
ーションでは、単一の仮想ブロックを書き込む方法は、
「ガーベジ・コレクション(ごみ集め)」と呼ばれる技
法とミラーからパリティへのデータの移行を介して、不
使用の記憶スペースを集める手順を含む。ガーベジ・コ
レクション/移行の手段は、図7ないし9を参照してよ
り詳細に説明される。第2のオペレーションでは、全RA
ID領域を書き換える方法は、「ブートストラッピング」
と呼ばれる技法を介して、空のRAID領域を必要に応じて
ミラー又はパリティRAID領域に変換するために、部分的
に満たされたRAID領域を空にすることに関する。ブート
ストラッピング方法は、図10及び11を参照してより
詳細に説明される。
【0051】図7は、データをミラー記憶のミラー仮想
ブロックに書き込む方法を示す。はじめの3つのステッ
プ70、72、74は、基本的に、図5を参照して上述された
ステップ60、62、64に一致している。これら3つのステ
ップは、1つのRAID領域と大きさが等しいRAIDレベルの
仮想記憶スペース内で不使用の記憶スペースを保留する
一方で、図4を参照して詳細に述べた仮想記憶スペース
の2つのレベルを生成する。ステップ70でマップされた
RAIDレベルの仮想記憶スペースは、ミラー又はパリティ
RAID領域として指定されておらず、それゆえどちらにも
使用することができる不使用のRAID領域を含む。
【0052】データを単一の仮想ブロックに書き込む場
合、RAID管理システム16は、まず、単一の仮想ブロック
と関連付けさせることができるRAIDレベルの仮想記憶ス
ペースに、使用可能なミラー割当てブロックを見つけよ
うと試みる(ステップ76)。移行のために保留された不
使用の記憶スペースの1つのRAID領域のしきい値を侵す
ことなく使用できる使用可能なミラー割当てブロックが
あるならば(すなわち、判断ステップ78で「YES」な
らば)、データは単に、見つけられたミラー割当てブロ
ックに書き込まれる(ステップ80)。一方、使用可能な
ミラー割当てブロックが見つからなければ(すなわち、
判断ステップ78で「NO」ならば)、RAID管理システム
は、少なくとも1つの使用可能なミラー割当てブロック
を生成する(ステップ82)。その後、データは、生成さ
れたミラー割当てブロックに書き込まれる。
【0053】図8は、ステップ82で使用可能なミラー割
当てブロックを生成する好ましい方法を示す。この方法
は、図に示すように少なくとも1つの使用可能なミラー
割当てブロックが生成されるまで連続的な順で行われる
ことが好ましい。ステップ90で、不使用の記憶スペース
のための1つのRAID領域のしきい値を侵すことなくミラ
ーRAID領域に変換できる不使用のRAID領域があるかどう
か判断される。この判断は、不使用の記憶スペースのた
めの1つのRAID領域のしきい値が侵されるという点で、
不使用のRAID領域のミラーRAID領域への変換が、有効な
記憶スペースを狭めるかもしれないという理由でなされ
る。しきい値は、最大のパリティRAID領域の大きさに等
しいと仮定する。N個のディスクのディスク・アレイに
関して、パリティRAID領域は、ユーザ・データの記憶と
冗長データ用の割当てブロックのためのN-1のm倍の割
当てブロックを有する。これに対して、ミラー割当てブ
ロックは、ユーザ・データの記憶と冗長データ用のN/2
の割当てブロックのためにN/2の倍数の割当てブロック
を有する。不使用のRAID領域からミラー又はパリティRA
ID領域への変換は、N/2-(N-1)の倍数によって効果的に
記憶スペースを減少させる。こうして、変換は、不使用
の記憶のために1つのRAID領域を侵す。
【0054】不使用のしきい値を侵さずにミラーRAID領
域へ変換できる不使用のRAID領域があるならば(すなわ
ち、ステップ90からの分岐が「YES」であれば)、RA
ID管理システムは、不使用のRAID領域をミラーRAID領域
に変換する(ステップ100)。成功ならば、この方法
は、少なくとも1つのミラー割当てブロックを生成す
る。それから、データが新しいミラーRAID領域内の使用
可能なミラー割当てブロックに書き込まれる。その後、
このプロセスは停止する。
【0055】ミラー記憶に変換できる不使用のRAID領域
がなければ(すなわち、ステップ90からの分岐が「N
O」であれば)、次にRAID管理システムは、記憶システ
ムが不使用の記憶の保留されたしきい値よりも多い不使
用の割当てブロックを有するかを判断する。有するなら
ば、RAID管理システムは、不使用のRAID領域をつくる目
的でパリティ記憶をパックする第2のスペース管理方法
を行う(ステップ94)。
【0056】パリティ記憶パッキングは、図9に示され
たガーベジ・コレクション・プロセスを使って行われ
る。図9は、4つの記憶ディスク0ないし3を含むディ
スク・アレイの一部分を示す。便宜上、RAIDレベル仮想
記憶スペースのRAID領域は、領域AG-1、AG、AG+1
・・・、AH-1、AH、AH+1、・・・等の上に連続的に
マップされると仮定する。領域AG-1、AG、AG+1は、
ミラー記憶として使用され、領域AH-1、AH、AH+1
パリティ記憶に関連する。ミラーRAID領域内の部分は、
データD0ないしD5で満たされた割当てブロック及びミラ
ー冗長R0ないしR5を与える割当てブロックを含む。パリ
ティRAID領域内の部分はデータD100ないしD107を保有す
る割当てブロックおよびパリティ冗長Pのために与えら
れる割当てブロックを含む。見出しラベルUを有する箱
は、保留された不使用の記憶スペースを示す。
【0057】不使用のパリティ割当てブロックを不使用
のRAID領域に集めるために(すなわち、図8のパリティ
・パッキングのステップ94)、データは、選択されたパ
リティRAID領域から他のパリティRAID領域の不使用の記
憶スペースUに移される。図9で、物理領域AH-1に関
連するパリティRAID領域が選択されたと仮定する。デー
タD100は、RAID領域AH+1に見つけられた不使用の記憶
スペースUに移される。同様に、データD101は、RAID領
域AHに移される。このデータの移動は、RAID領域AH+1
をよりいっぱいにして、パリティRAID領域の「穴」を満
たす。同時に、データの移動は、不使用の記憶スペース
を同一のRAID領域に集める。ここで、選択されたパリテ
ィ領域AH-1は、完全に空になった。従って、不使用のR
AID領域として分類することができる。
【0058】アプリケーション・レベルの仮想記憶スペ
ースでは、仮想ブロック・テーブルのポインターがデー
タ移動を反映して更新される。これは、不使用の割当て
ブロックを不使用のRAID領域(すなわち、物理領域A
H-1に関連する空になったパリティRAID領域)に効果的
に集める。
【0059】図8のステップ96で、RAID管理システム
は、このパッキング・ステップが、保留された記憶スペ
ースのために1つのRAID領域のしきい値を侵すことなく
ミラーRAID領域に変換できる不使用のRAID領域を生成し
たかを判断する。不使用のRAID領域が生成された(すな
わち、ステップ96の分岐が「YES」)ならば、生成さ
れた不使用のRAID領域は、データを書き込める少なくと
も1つのミラー割当てブロックを含むミラーRAID領域に
変換される(ステップ100)。図9に関して、データは
物理領域AH-1に、ミラー冗長方法に従って格納するこ
とができ、ミラーRAID領域としてその領域に再び関連づ
けされる。
【0060】一方、パッキング・ステップで、ミラー記
憶領域に変換できる不使用のRAID領域を生成することが
できなかった(すなわち、ステップ96の分岐が「N
O」)ならば、RAID管理システムは、ミラー割当てブロ
ックからパリティ割当てブロックへデータを移行し、不
使用のRAID領域を生成するためにミラー記憶を集める第
3の方法を実行する(ステップ98)。このステップ98の
移行/収集方法は、ステップ92の分岐が「NO」であ
る、つまり記憶システムが、保留されるしきい値以上の
不使用の割当てブロックを有していないことによって達
せられる。
【0061】ステップ98のサブプロセスに従って、ミラ
ー割当てブロックから、不使用のパリティ割当てブロッ
クを用いて又は不使用のRAID領域をパリティに変換し
て、パリティ割当てブロックにデータを移行する。その
後、ミラー記憶は、不使用のRAID領域を生成する目的の
ためにパックされる。
【0062】不使用のミラー割当てブロックの収集もま
た、図9に示す。例えば、物理領域AG+1に関連するミラ
ー領域のように選択されたミラー領域から、他のミラー
記憶領域の不使用の記憶スペースUに、データが移され
ると仮定する。データD4は、RAID領域AG-1とAGに位置す
る不使用の記憶スペースUに移される。同様に、データ
D5は、RAID領域AG-1の不使用スペースUに移される。デ
ータの移動によって、ミラーRAID領域の「穴」が満たさ
れ、同時に、同一のRAID領域に不使用の記憶スペースが
集められる。選択されたミラー領域AG+1は、完全に空に
なり、不使用のRAID領域として分類することができる。
【0063】上記の場合、アプリケーション・レベルの
仮想記憶領域では、データの移動を反映して、仮想記憶
ブロック・テーブルのポインターが更新される。これ
は、不使用の割当てブロックを不使用のRAID領域(すな
わち、物理領域AG+1に関連する空になったミラーRAID領
域)に効果的に集める。
【0064】移行およびパッキングのステップは、不使
用のRAID領域が生成されるまで、繰り返し実行される。
ユーザ・データをミラー記憶に格納することは、同じユ
ーザ・データをパリティ記憶するのに比べてより多くの
物理記憶スペースを占有するので、ミラー割当てブロッ
クからパリティRAID領域への移行は、不使用の記憶を最
終的に増加させることになる。不使用のRAID領域は、い
ったん生成されると、付加な移行のためにパリティRAID
領域に変換される(ステップ99)。ステップ98及び99
は、ステップ96によって保留された不使用の記憶しきい
値が侵されることなくミラーRAID領域に変換できる不使
用のRAID領域が存在するまで繰り返し実行される。保留
された不使用の記憶の大きさのために、このプロセス
は、ミラーRAID領域をパリティRAID領域に変換できるよ
うに空にする保証をする。つまり、ディスク・アレイ・
データ・システムは、ユーザ・データのために委ねられ
た容量を満足するのに必要とされるほどの多くのミラー
記憶を狭める。
【0065】それぞれ上述したステップが、時間及び資
源の観点から使用可能なミラー割当て領域を生成するの
に低コストであるので、図8で述べた方法は、図に示し
たように好ましい順序で行われる。しかしながら、他の
数少ない好ましい具体例では、使用可能なミラー割当て
ブロックを生成する方法は、他の順序で行うことができ
る。
【0066】不使用のミラー割当てブロックを生成する
のに使われるプロトコルは、ユーザ・データの量や物理
記憶スペースの大きさに従って、RAID管理システムに、
パリティ及びミラー領域間のメモリ割当てを択一的に調
整させるので、有用である。データの使用と記憶容量が
変化するとき、RAID管理システムはミラー記憶に保有す
るデータ量を最大にする。こうして、最近のまたは最も
頻繁に使われるデータは、ミラー記憶に維持され、パフ
ォーマンス及び信頼性を最適化する。
【0067】RAID管理システムは、アイドル時間に不使
用のRAID領域を生成することによって不使用のミラー割
当てブロックを生成するスペース生成の順序を待たなけ
ればならない状況を回避しようとする。しかし、ある状
況では、記憶要求がスペース生成の順序の間に作られる
時に、競合が起きるかもしれない。RAID管理システム
は、スペース生成手順が完了する際のあらゆる競合を解
決する。
【0068】図10は、「ブートストラッピング」方法
を使って、RAID領域全体を書き換える方法を示す。はじ
めのステップ120、122、および124は図4に関連して上
述された2層のマッピング構造を生成し、その一方で、
1つのRAID領域と等しい不使用の記憶スペースを保留す
る ステップ126は、RAID管理システムが、ユーザ・データ
で部分的に満たされたミラー又はパリティRAID領域を見
つける。1つの好ましい実施では、RAID管理システム
は、最も少なく満たされたミラーまたはパリティRAID領
域を探す。そして、RAID管理システムは、残存するデー
タをディスク・アレイ内の不使用の記憶スペースに移し
て、部分的に満たされたRAID領域を空にする(ステップ
128)。データは、ミラー又はパリティ記憶のいずれか
のいかなる不使用の記憶スペースに移すことができる。
【0069】空になったRAID領域は、必要に応じてミラ
ー又はパリティRAID領域に変換することができる(ステ
ップ130)。例えば、将来のパフォーマンス及び効率性
から、大規模のデータの移動が望まれる様々なオペレー
ションを容易にするために、もう1つのRAID領域(ミラ
ー又はパリティ)からのデータは、この空になったRAID
領域に移されるか、書き換えられる。例えば、再構築オ
ペレーション(ディスクの故障の後に、データ冗長がリ
ストアされる)または平衡オペレーション(1つ以上の
付加的記憶スペースを加えることによって生成される新
たな記憶スペースを組み入れるために、RAID領域が1つ
ずつ拡張される)の間に、全RAID領域を混ぜることが望
まれる。
【0070】図11は、図10のブートストラッピング
方法を図で示す。図11は、5つの記憶ディスク0ない
し4を含むディスク・アレイ140の一部分を示す。便宜
上、RAIDレベル仮想記憶スペースは、領域APF-4からA
PF+2に連続的にマップされている。個別のディスク上の
それぞれのRAID領域の部分は、データD0-D15、ミラー冗
長R0-R7、及びパリティ冗長Pのための割当てブロック、
及び四角で囲われた「U」によって示される不使用の割
当てブロックを含む。保留されたしきい値により、不使
用の割当てブロックの数は、N-ディスク・アレイの最
大の可能なパリティRAID領域の割当てブロックの数より
も多いか、又は等しい。
【0071】この例では、RAID管理システムが、部分的
に満たされたRAID領域として識別されたRAID領域APF
有すると仮定する。選択された部分的に満たされたRAID
領域APFに存在するデータは、他のRAID領域の不使用の
記憶スペースに移される。データD8は、ミラーRAID領域
APF-4及びAPF-2の不使用の記憶スペースUに移され、デ
ータD9は,ミラーRAID領域APF-1及びパリティRAID領域A
PF+1及びAPF+2の不使用の記憶スペースUに移される。
データは、記憶のレベルにかかわらず、ディスク・アレ
イの至る所のRAID領域の保留された記憶スペースに移さ
れる。このプロセスは、選択されたRAID領域がデータを
含まないように、そのRAID領域を空にする。それから、
選択されたRAID領域APFは、ミラー又はパリティRAID領
域に変換される。
【0072】ブートストラッピング・プロセスは、デー
タがはじめにミラーあるいはパリティRAID領域にあった
かにかかわらず、データがいかなる記憶スペースの
「穴」をも満たすことができる点で上記ガーベジ・コレ
クションプロセスとは異なる。そのプロセスは、ミラー
記憶で最も最近又は最も頻繁に使われたデータの保全を
完全には維持しないが、ディスク・アレイでデータを多
量に書き換えるのに役立つ。ブートストラッピング・プ
ロセスは、上記のガーベジ・コレクションプロセスより
も簡単で速い。本発明の方法は、多くの利点を有する。
第1に、記憶スペースは、それがRAIDレベル仮想記憶ス
ペースのどこにあろうとも移行やRAID領域への変換に用
いることができる。それ故、記憶のタイプ間の移行のた
めに保留されるスペースの特定の位置付けや構成を保証
するネスト構造のトランザクションを支持するように、
データ記憶システムを設計する必要がない。第2に、こ
の方法は、均一又は不均一のディスク・アレイに容易に
採用することによって、記憶のタイプの大きさに最大限
の融通性を与える。第3に、この方法は、ミラー記憶に
可能な限り多くのデータを保有することによって、パフ
ォーマンス及び信頼性を最適化することに努める。
【0073】本発明は例として次の実施態様を含む。 (1)物理記憶スペースを規定する複数の記憶ディスク
を含む階層的なデータ記憶システムにおいて、保留され
た量の不使用の記憶スペースを使用する方法であって、
第1のRAIDレベルに従ってデータを格納する第1の割当
てブロックを有する複数の第1のRAID領域及び第2のRA
IDレベルに従ってデータを格納する第2の割当てブロッ
クを有する複数の第2のRAID領域を有するRAIDレベルの
仮想記憶スペースに、上記記憶スペースをマップするス
テップと、上記RAIDレベルの仮想記憶スペース内で,保
留された量の不使用の記憶スペースを用意するステップ
と、複数の仮想ブロックを有するアプリケーション・レ
ベルの仮想記憶スペースに上記RAIDレベルの仮想記憶ス
ペースをマップするステップと、上記第1又は第2のRA
IDレベルの一つに従って格納されたデータを、上記第1
又は第2のRAIDレベルの他方に従って格納するために、
第1の使用された割当てブロックから第2の使用された
割当てブロックにデータを移行するステップと、データ
記憶システムにおいて、N個の記憶ディスクを提供する
ステップと、複数のN-1の最大の可能なRAID領域に格納
される少なくとも1つの仮想ブロックに等しい保留され
た不使用の記憶スペースを提供するステップと、を含
み、上記移行によって、上記第2の割当てブロックが使
用され、上記第1の割当てブロックが不使用になり、不
使用の記憶スペースが保存される上記方法。
【0074】(2)物理記憶スペースを規定する複数の
記憶ディスクを含む階層的なデータ記憶システムで、保
留された記憶スペースを使用する方法であって、ミラー
冗長に従ってデータを格納するミラー割当てブロックを
有するミラーRAID領域、パリティ冗長に従ってデータを
格納するパリティ割当てブロックを有するパリティRAID
領域及びデータを含まない不使用のRAID領域を有するRA
IDレベルの仮想記憶スペースに上記物理記憶スペースを
マップするステップと、記憶ディスクを横切って分布す
ることができる、RAIDレベルの仮想記憶スペース内の保
留された最小限の量の不使用の記憶スペースを提供する
ステップと、複数の仮想ブロックを有するアプリケーシ
ョン・レベルの仮想記憶スペースにRAIDレベルの仮想記
憶スペースをマップするステップと、使用可能なミラー
割当てブロックを見つけようと試みるステップと、使用
可能なミラー割当てブロックが見つけられている場合、
データをミラー割当てブロックに書き込むステップと、
使用可能なミラー割当てブロックが見つけられていない
場合、データを受け取るために以下の付加的なステッ
プ: a.不使用のRAID領域を見つけ、それを使用可能なミラ
ー割当てブロックを含むミラーRAID領域に変換するステ
ップ; b.空のミラー割当てブロックやパリティ割当てブロッ
クをミラーRAID領域を生成するために使われる不使用RA
ID領域に集めるステップと; c.ミラー割当てブロックからパリティ割当てブロック
にデータを移行し、不使用のRAID領域にミラー割当てブ
ロックを集めるステップ;の少なくとも1つを行うこと
によって、使用可能なミラー割当てブロックを生成する
ステップと、を含む上記方法。
【0075】(3)上記(2)の方法において、使用可
能なミラー割当てブロックを生成する上記ステップが、
使用可能なミラー割当てブロックが生成されるまで以下
のステップ: a.不使用のRAID領域を見つけ、それを使用可能なミラ
ー割当てブロックを含むミラーRAID領域に変換するステ
ップ; b.空のパリティ割当てブロックを不使用のRAID領域に
集めて、不使用のRAID領域を、使用可能なミラー割当て
ブロックを含むミラーRAID領域に変換するステップ: c.不使用のRAID領域が生成されるまで、以下のステッ
プ(a)及び(b)を実行し、その後ステップ(c)を
実行するステップ: (a)ミラー割当てブロックを空にするために、ミラー
割当てブロックからパリティ割当てブロックにデータを
変換するステップ; (b)空のミラー割当てブロックを不使用のRAID領域に
集めるステップ; (c)上記(a)及び上記(b)の後に、不使用のRAID
領域をパリティRAID領域に変換するステップ;保留され
た不使用の記憶スペースの量を侵すことなくミラーRAID
領域に変換できる不使用のRAID領域が生成されるまで、
上記c(a)からc(c)を繰り返す;を連続した順に
含む方法。
【0076】(4)物理記憶スペースを規定する複数の
記憶スペースを含む階層的なデータ記憶システムにおい
て、不使用の保留された記憶スペースの保留された量を
使用する方法であって、第1のRAIDレベルに従ってデー
タを格納する第1の割当てブロックを有する複数の第1
のRAID領域及び第2のRAIDレベルに従ってデータを格納
する第2の割当てブロックを有する第2のRAID領域を備
えたRAIDレベルの仮想記憶スペースに物理記憶領域をマ
ップするステップと、記憶ディスクを横切って分布でき
るRAIDレベル仮想記憶スペース内で、最小限の不使用の
割当てブロックの数を提供するステップと、複数の仮想
ブロックを有するアプリケーション・レベルの仮想記憶
スペースにRAIDレベルの仮想記憶スペースをマップする
ステップと、第1又は第2のRAIDレベルの一つに従って
格納されたデータが、第1又は第2のRAIDレベルの他方
に従って格納されるように、第1及び第2の割当てブロ
ック間でデータを移行させるステップと、部分的にデー
タで満たされた第1又は第2のRAIDレベルを見つけるス
テップと、上記見つけられたRAID領域から不使用の割当
てブロックにデータを移すことによって、上記見つけら
れたRAID領域を空にするステップと、を含む上記方法。
【0077】(5)上記(4)の方法において、さら
に、データ記憶システムでN個の記憶ディスクを準備す
るステップと、N-1重の最大の可能なRAID領域に格納で
きる少なくともいくらかの仮想ブロックと同量の保留さ
れた不使用の記憶スペースを準備するステップと、を含
む上記方法。 (6)上記(4)の方法において、上記RAID領域を見つ
けるステップが、少なくともそこに格納されたデータ量
を含む第1又は第2のRAID領域を見つけることを含む、
上記方法。 (7)上記(4)の方法において、さらに、全RAID領域
から空になったRAID領域にデータを書き換える付加的な
ステップを含む、上記方法。 (8)上記(4)の方法において、さらに、空になった
RAID領域をミラー又はパリティRAID領域の1つに変換す
る付加的なステップを含む、上記方法。 (9)上記(4)の方法において、上記最小限の不使用
の割当てブロックを準備するステップが、上記第1及び
第2のRAID領域の両方に不使用の割当てブロックを準備
することを含み、上記見つけられたRAID領域を空にする
ステップが、上記第1のRAIDレベルの第1のRAID領域と
上記第2のRAIDレベルの第2のRAID領域の両方で、見つ
けられたRAID領域から不使用の割当てブロックにデータ
を移動させることを含む、上記方法。
【0078】
【発明の効果】本発明によると、冗長性をもつ階層的な
データ記憶システムにおいて、保留された不連続な不使
用の記憶スペースを使用することができる。
【図面の簡単な説明】
【図1】本発明によるディスク・アレイ・データ記憶シ
ステムの図表のブロック図である。
【図2】複数の記憶ディスク上の記憶スペースを示す図
表で、RAIDレベル1によるデータ記憶を示す。
【図3】複数の記憶ディスク上の記憶スペースを示す図
表で、RAIDレベル5によるデータ記憶を示す。
【図4】2つの仮想記憶スペースが物理的な記憶スペー
スの上へマップされている、この発明のメモリーマッピ
ング取り決めの図表である。
【図5】本発明の概括的な好ましい方法の流れ図であ
る。
【図6】複数の記憶ディスク上の記憶スペースを示す図
であり、不連続な不使用の記憶スペースが1以上のRAID
領域の大きさと如何に同等であるかを説明している。
【図7】ミラー割当てブロックを生成するための、保留
された量の不使用の記憶スペースを使用するためのもう
1つの好ましい方法の流れ図である。
【図8】ミラー割当てブロックを生成するために用いら
れる特定の技法の流れ図であり、ガーベジ・コレクショ
ン技法を含んでいる。
【図9】複数の記憶ディスク上の記憶スペースを示す図
であり、図8のガーベジ・コレクション技法を説明して
いる。
【図10】部分的に満たされたRAID領域を空にするブー
トストラッピング技法で、保留された量の不使用の記憶
スペースを使用するもう1つの好ましい方法の流れ図で
ある。
【図11】複数の記憶ディスク上の記憶スペースを示す
図であり、図10のブートストラッピング技法を説明し
ている。
【符号の説明】
10 データ記憶システム 11 ディスク・アレイ 12 記憶ディスク 13 インターフェイス・バス 14 ディスク・アレイ・コントローラ 18 ミラー・グループ 22 パリティ・グループ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G11B 27/00 G11B 27/00 D 27/034 27/02 K (72)発明者 マイケル・ビー・ヤコブソン アメリカ合衆国83714アイダホ州ボイジー、 オースティン 8884 (72)発明者 マーヴィン・ディー・ネルソン アメリカ合衆国83704アイダホ州ボイジー、 サンフラワー・レーン 9055 (72)発明者 ダグラス・エル・ヴォイト アメリカ合衆国83702アイダホ州ボイジー、 ノース・トゥエンティフォース 3030

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】物理記憶スペースを規定する複数の記憶デ
    ィスクを含む階層的なデータ記憶システムにおいて、保
    留された量の不使用の記憶スペースを使用する方法であ
    って、 第1のRAIDレベルに従ってデータを格納する第1の割当
    てブロックを有する複数の第1のRAID領域及び第2のRA
    IDレベルに従ってデータを格納する第2の割当てブロッ
    クを有する複数の第2のRAID領域を有するRAIDレベルの
    仮想記憶スペースに、上記記憶スペースをマップするス
    テップと、 上記RAIDレベルの仮想記憶スペース内で,保留された量
    の不使用の記憶スペースを用意するステップと、 複数の仮想ブロックを有するアプリケーション・レベル
    の仮想記憶スペースに上記RAIDレベルの仮想記憶スペー
    スをマップするステップと、 上記第1又は第2のRAIDレベルの一つに従って格納され
    たデータを、上記第1又は第2のRAIDレベルの他方に従
    って格納するために、第1の使用された割当てブロック
    から第2の使用された割当てブロックにデータを移行す
    るステップと、を含み、上記移行によって、上記第2の
    割当てブロックが使用され、上記第1の割当てブロック
    が不使用になり、不使用の記憶スペースが保存される上
    記方法。
JP33459195A 1995-02-10 1995-12-22 保留された量の不使用の記憶スペースを使用する方法 Expired - Fee Related JP3778980B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/386,573 US5542065A (en) 1995-02-10 1995-02-10 Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
US386,573 1995-02-10

Publications (2)

Publication Number Publication Date
JPH08272548A true JPH08272548A (ja) 1996-10-18
JP3778980B2 JP3778980B2 (ja) 2006-05-24

Family

ID=23526163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33459195A Expired - Fee Related JP3778980B2 (ja) 1995-02-10 1995-12-22 保留された量の不使用の記憶スペースを使用する方法

Country Status (4)

Country Link
US (1) US5542065A (ja)
EP (1) EP0726514B1 (ja)
JP (1) JP3778980B2 (ja)
DE (1) DE69534527T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675176B1 (en) 1998-09-18 2004-01-06 Fujitsu Limited File management system
JP2006012156A (ja) * 2004-06-29 2006-01-12 Hitachi Ltd ボリューム活動に従ってストレージポリシーをコントロールするための方法
KR100850253B1 (ko) * 2005-03-31 2008-08-04 인터내셔널 비지네스 머신즈 코포레이션 캐시 및 비휘발성 매체 내의 데이터 저장
JP2013257900A (ja) * 2006-12-08 2013-12-26 Lsi Inc 複数のストレージデバイスでのデータ冗長性
WO2019138999A1 (ja) * 2018-01-10 2019-07-18 Necプラットフォームズ株式会社 ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラムを格納した非一時的な記憶媒体

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3315779B2 (ja) * 1993-11-16 2002-08-19 富士通株式会社 ディスク装置間のファイル転送装置およびファイル転送方法
JP3371044B2 (ja) * 1994-12-28 2003-01-27 株式会社日立製作所 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5604902A (en) * 1995-02-16 1997-02-18 Hewlett-Packard Company Hole plugging garbage collection for a data storage system
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
US5809285A (en) * 1995-12-21 1998-09-15 Compaq Computer Corporation Computer system having a virtual drive array controller
US5809228A (en) * 1995-12-27 1998-09-15 Intel Corporaiton Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer
US5758050A (en) * 1996-03-12 1998-05-26 International Business Machines Corporation Reconfigurable data storage system
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
US5854942A (en) * 1996-09-06 1998-12-29 International Business Machines Corporation Method and system for automatic storage subsystem configuration
US6571314B1 (en) 1996-09-20 2003-05-27 Hitachi, Ltd. Method for changing raid-level in disk array subsystem
US5875457A (en) * 1996-10-08 1999-02-23 Mylex Corporation Fault-tolerant preservation of data integrity during dynamic raid set expansion
US6154853A (en) * 1997-03-26 2000-11-28 Emc Corporation Method and apparatus for dynamic sparing in a RAID storage system
US5953352A (en) * 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US6237063B1 (en) 1997-10-06 2001-05-22 Emc Corporation Load balancing method for exchanging data in different physical disk storage devices in a disk array storage device independently of data processing system operation
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
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
US6199146B1 (en) * 1998-03-12 2001-03-06 International Business Machines Corporation Storage management system and method for increasing capacity utilization of nonvolatile storage devices using partially filled substitute storage devices for continuing write operations
US6530035B1 (en) * 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6311251B1 (en) * 1998-11-23 2001-10-30 Storage Technology Corporation System for optimizing data storage in a RAID system
US6363457B1 (en) 1999-02-08 2002-03-26 International Business Machines Corporation Method and system for non-disruptive addition and deletion of logical devices
US6611897B2 (en) 1999-03-22 2003-08-26 Hitachi, Ltd. Method and apparatus for implementing redundancy on data stored in a disk array subsystem based on use frequency or importance of the data
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6854034B1 (en) * 1999-08-27 2005-02-08 Hitachi, Ltd. Computer system and a method of assigning a storage device to a computer
US6493796B1 (en) * 1999-09-01 2002-12-10 Emc Corporation Method and apparatus for maintaining consistency of data stored in a group of mirroring devices
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
US6857058B1 (en) 1999-10-04 2005-02-15 Intel Corporation Apparatus to map pages of disparate sizes and associated methods
US6970992B2 (en) * 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
US6546499B1 (en) 1999-10-14 2003-04-08 International Business Machines Corporation Redundant array of inexpensive platters (RAIP)
US6745207B2 (en) * 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
US6530004B1 (en) 2000-06-20 2003-03-04 International Business Machines Corporation Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration
US6820182B1 (en) * 2000-10-18 2004-11-16 International Business Machines Corporation Support for exhaustion recovery in a data processing system with memory mirroring
US6990667B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6745286B2 (en) 2001-01-29 2004-06-01 Snap Appliance, Inc. Interface architecture
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
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
US6785836B2 (en) * 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
GB2375847B (en) * 2001-05-22 2005-03-16 Hewlett Packard Co Protection and restoration of RAID configuration information in disaster recovery process
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
US7111117B2 (en) * 2001-12-19 2006-09-19 Broadcom Corporation Expansion of RAID subsystems using spare space with immediate access to new space
US7171396B2 (en) * 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US6912635B2 (en) * 2002-05-08 2005-06-28 Hewlett-Packard Development Company, L.P. Distributing workload evenly across storage media in a storage array
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices
US7089395B2 (en) * 2002-10-03 2006-08-08 Hewlett-Packard Development Company, L.P. Computer systems, virtual storage systems and virtual storage system operational methods
US7747660B1 (en) * 2003-03-24 2010-06-29 Symantec Operating Corporation Method and system of providing access to a virtual storage device
US7707186B2 (en) * 2004-06-18 2010-04-27 Emc Corporation Method and apparatus for data set migration
CA2590361C (en) * 2004-11-05 2012-01-03 Data Robotics Incorporated Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
JP2008015769A (ja) * 2006-07-05 2008-01-24 Hitachi Ltd ストレージシステム及び書き込み分散方法
US7743276B2 (en) * 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
JP5080201B2 (ja) * 2007-10-22 2012-11-21 京セラドキュメントソリューションズ株式会社 情報処理装置及びこれに備えられるデバイスドライバ
US8060772B2 (en) * 2008-01-04 2011-11-15 International Business Machines Corporation Storage redundant array of independent drives
US8713127B2 (en) * 2008-02-05 2014-04-29 Novell, Inc. Techniques for distributed storage aggregation
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
JP5552924B2 (ja) * 2010-06-30 2014-07-16 富士通株式会社 ストレージ制御プログラム、ストレージシステムおよびストレージ制御方法
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
CN102446072B (zh) 2010-10-07 2014-11-19 国际商业机器公司 用于池式存储中的raid 阵列变换的系统和方法
US9195412B2 (en) 2010-10-07 2015-11-24 International Business Machines Corporation System and method for transforming an in-use raid array including migrating data using reserved extents
US8719619B2 (en) 2011-09-20 2014-05-06 International Business Machines Corporation Performance enhancement technique for raids under rebuild
US8869001B1 (en) 2012-06-27 2014-10-21 Amazon Technologies, Inc. Layered redundancy encoding schemes for data storage
US8850288B1 (en) 2012-06-27 2014-09-30 Amazon Technologies, Inc. Throughput-sensitive redundancy encoding schemes for data storage
US9110797B1 (en) * 2012-06-27 2015-08-18 Amazon Technologies, Inc. Correlated failure zones for data storage
US8806296B1 (en) 2012-06-27 2014-08-12 Amazon Technologies, Inc. Scheduled or gradual redundancy encoding schemes for data storage
US20140181455A1 (en) * 2012-12-20 2014-06-26 Apple Inc. Category based space allocation for multiple storage devices
US20160080490A1 (en) 2014-09-15 2016-03-17 Microsoft Corporation Online data movement without compromising data integrity
CN104375784B (zh) * 2014-11-17 2018-04-27 浙江宇视科技有限公司 一种降低虚拟磁盘管理复杂度的方法和装置
US9785575B2 (en) 2014-12-30 2017-10-10 International Business Machines Corporation Optimizing thin provisioning in a data storage system through selective use of multiple grain sizes
US10366004B2 (en) * 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
WO2018022136A1 (en) 2016-07-26 2018-02-01 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
CN106484330A (zh) * 2016-09-27 2017-03-08 郑州云海信息技术有限公司 一种混合磁盘分层数据优化方法和装置
US9864534B1 (en) * 2016-10-27 2018-01-09 International Business Machines Corporation Validation of storage volumes that are in a peer to peer remote copy relationship
US10168948B2 (en) * 2017-02-20 2019-01-01 International Business Machines Corporation Replicating data in a data storage system
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
CN111104049B (zh) * 2018-10-26 2023-08-22 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
US11171671B2 (en) * 2019-02-25 2021-11-09 Samsung Electronics Co., Ltd. Reducing vulnerability window in key value storage server without sacrificing usable capacity
US11556270B2 (en) * 2021-01-07 2023-01-17 EMC IP Holding Company LLC Leveraging garbage collection for raid transformation
US12423016B2 (en) * 2022-12-27 2025-09-23 Netapp, Inc. Reducing provisioned storage capacity of an aggregate of a storage appliance
JP2024137183A (ja) * 2023-03-24 2024-10-07 株式会社東芝 磁気ディスク装置及びパリティ管理方法
CN117041256B (zh) * 2023-10-08 2024-02-02 深圳市连用科技有限公司 一种网络数据传输存储方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573213A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 外部記憶装置システム
JPH05505481A (ja) * 1990-03-02 1993-08-12 イーエムシー コーポレーション データ記憶装置および方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095420A (en) * 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
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
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
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5488701A (en) * 1994-11-17 1996-01-30 International Business Machines Corporation In log sparing for log structured arrays

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505481A (ja) * 1990-03-02 1993-08-12 イーエムシー コーポレーション データ記憶装置および方法
JPH0573213A (ja) * 1991-09-12 1993-03-26 Hitachi Ltd 外部記憶装置システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675176B1 (en) 1998-09-18 2004-01-06 Fujitsu Limited File management system
JP2006012156A (ja) * 2004-06-29 2006-01-12 Hitachi Ltd ボリューム活動に従ってストレージポリシーをコントロールするための方法
KR100850253B1 (ko) * 2005-03-31 2008-08-04 인터내셔널 비지네스 머신즈 코포레이션 캐시 및 비휘발성 매체 내의 데이터 저장
JP2013257900A (ja) * 2006-12-08 2013-12-26 Lsi Inc 複数のストレージデバイスでのデータ冗長性
WO2019138999A1 (ja) * 2018-01-10 2019-07-18 Necプラットフォームズ株式会社 ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラムを格納した非一時的な記憶媒体

Also Published As

Publication number Publication date
JP3778980B2 (ja) 2006-05-24
EP0726514A3 (en) 2000-02-23
DE69534527T2 (de) 2006-07-13
EP0726514B1 (en) 2005-10-19
DE69534527D1 (de) 2006-03-02
US5542065A (en) 1996-07-30
EP0726514A2 (en) 1996-08-14

Similar Documents

Publication Publication Date Title
JP3778980B2 (ja) 保留された量の不使用の記憶スペースを使用する方法
JP3699165B2 (ja) データ記憶装置の記憶容量を拡大する方法
JP3753461B2 (ja) 冗長性パリティ法によるデータの書き込み方法およびデータ記憶システム
JP3753259B2 (ja) 記憶空間を提供する方法およびデータ記憶システム
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
US5546558A (en) Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information
JP3715000B2 (ja) データ記憶装置のデータを選択する方法
US5392244A (en) Memory systems with data storage redundancy management
JP3792269B2 (ja) 階層ディスク・アレイにおいて容量の異なる記憶ディスクを単一記憶ボリューム内で使用する方法
JP3708195B2 (ja) データ記憶システムにおける仮想容量の過大割当てを避ける方法
JP3371044B2 (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US8131969B2 (en) Updating system configuration information
EP3617867B1 (en) Fragment management method and fragment management apparatus
JP2006120120A (ja) 複数のデータ・フォーマットを割り振るための一般記憶コンテナ
US11216195B1 (en) Sharing blocks of non-volatile data storage to support cache flushes in a multi-node data storage system
JP3687111B2 (ja) 記憶装置システムおよび記憶装置の制御方法
JPH11203055A (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: 20050916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060125

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060301

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100310

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100310

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110310

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees