JPH08137632A - データ記憶装置のデータを選択する方法 - Google Patents
データ記憶装置のデータを選択する方法Info
- Publication number
- JPH08137632A JPH08137632A JP7217105A JP21710595A JPH08137632A JP H08137632 A JPH08137632 A JP H08137632A JP 7217105 A JP7217105 A JP 7217105A JP 21710595 A JP21710595 A JP 21710595A JP H08137632 A JPH08137632 A JP H08137632A
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2087—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
る。 【解決手段】物理的記憶空間を規定する複数の記憶ディ
スク、及び、この物理的記憶空間を2つの仮想記憶空間
にマッピングする。RAIDレベルの仮想記憶空間は、
物理的記憶空間をミラー及びパリティRAID区域とし
て表す。アプリケーション・レベルの仮想記憶空間は、
物理的記憶空間をRAID区域に関連づけられる複数の
仮想ブロックとして表す。装置の性能及び信頼性を最適
化するために、利用頻度の低い仮想ブロックをミラーR
AID区域からパリティRAID区域に移行する。移行
するための仮想ブロックを選択するために、予定の分布
基準にしたがって仮想ブロックを特徴づける度数分布表
が作られる。表を区分化して特定された選択基準を満た
す利用頻度の低い仮想ブロックを探索し、見つけた仮想
ブロックを移行する。
Description
置における移行のために、度数分布表を使ってデータを
選択する方法、およびそのような度数分布表を具体化し
た階層データ記憶装置に関する。
性、および処理能力の点で絶え間なく改良が続いてい
る。その結果、コンピュータはより複雑で高度なアプリ
ケーションが処理できる。コンピュータが改良されるの
に応じて、大容量記憶装置および入出力装置に対する性
能要求が増大している。発展するコンピュータ・システ
ムに性能面で歩調がとれる大容量記憶装置を設計するこ
とが常に求められている。
の大容量記憶装置を形成するように配列され調整された
複数のディスク駆動装置を持つ。大容量記憶装置には、
コスト、性能、可用性の3つの主要な設計基準がある。
メガバイトあたりの低いコスト、高い入出力性能、およ
び、高いデータ可用性を持つ記憶装置を作ることが望ま
しい。"可用性"(availability)とは、記憶装置に記憶
されているデータをアクセスする能力、および、ある程
度の故障が起きても動作が続けられることを保証できる
能力のことである。典型的には、データの可用性は、複
数の場所に記憶されたデータまたはデータ間の関係を持
つ冗長度の使用を通して提供される。
方法がある。第1の方法すなわち"ミラー"(鏡像:mirr
or)方法では、データが複製され、記憶装置の2つの別
々の区域に記憶される。たとえば、ディスクアレーで
は、同一のデータがディスクアレーの2つの別々のディ
スクの上に提供される。ミラー方法は、二重に記憶する
手法により、高性能および高データ可用性の利点があ
る。しかし、ミラー方法は、データを記憶するコストが
実質的に2倍になるので、相対的に費用の高いものにな
る。
rity)方法では、記憶区域の一部を冗長データを記憶す
るのに使うが、冗長データを記憶する区域は、元のデー
タを記憶するのに使う記憶空間より小さい。たとえば、
5台のディスクを持つディスクアレーでは、4台をデー
タを記憶するのに使い、5台目をもっぱら冗長データを
記憶するのに使う。パリティ方法の利点は、ミラー方法
より低費用であることであるが、ミラー方法にくらべる
と、性能および可用性が低いという特徴がある。
の方法の調和をはかり、性能および信頼性を最適化する
データ記憶装置を提供することを目的とする。
は、複数の記憶ディスクを持つディスクアレー、並び
に、ディスクにおよびディスクからデータ転送を調整す
るディスクアレー制御装置を含む。記憶ディスクは、物
理的記憶空間を規定する。データ記憶装置は、また、2
つの仮想記憶空間を記憶ディスクの物理的記憶空間にマ
ッピングするために、ディスクアレー制御装置を動作さ
せるように結合されたRAID(Redundant Array of I
ndepedent Disks)管理装置を含む。RAIDレベル仮
想記憶空間は、物理的記憶空間を、RAIDレベル1
(ミラー冗長性)およびRAIDレベル5(パリティ冗
長性)にしたがってデータを記憶するミラーRAID区
域およびパリティRAID区域として表す。アプリケー
ション・レベル仮想記憶空間は、物理的記憶空間を、複
数の仮想ブロックとして表す。すべての仮想ブロックの
組が母集団(population)を規定する。RAID管理装
置は、仮想ブロックをミラーRAID区域とパリティR
AID区域との間で移行させ、その結果、データはRA
IDレベル1からRAIDレベル5への冗長性の変更を
受ける。
わち、データアクセスの最近性またはデータアクセスの
頻度のどちらかに基づいて移行を実行する。データアク
セスの最近性の方針の下では、データは、データがユー
ザによってどれくらい最近にアクセスされたかに基づい
て移行される。データアクセスの頻度の方針の下では、
データは、データがユーザによってどれくらい頻繁にア
クセスされたかに基づいて移行される。より古いデー
タ、または、あまり頻繁にアクセスされなかったデータ
は、典型的には、性能の高いRAIDレベル1から性能
のより低いRAIDレベル5への移行の候補になる。
象となる仮想ブロックを識別するために度数分布表を使
う。RAIDレベルのそれぞれに対して1つの度数分布
表を用意することが望ましい。度数分布表は、RAID
区域に記憶されたデータを、予定の分布基準にしたがっ
て特徴づける。度数分布表は、一定の数の区間によって
区切られている。各区間に関連づけられた数(カウン
ト)が、それぞれの区間の分布基準を満たす仮想ブロッ
クの数を表す。各度数分布表の中の仮想ブロックの全数
が母集団の数である。
基準を決めるために、移行源RAID区域の度数分布表
を区分することによって、移行源RAID区域から移行
先RAID区域に移行する仮想ブロックを選択する。ア
プリケーション・レベル仮想記憶空間は、選択基準を満
たす仮想ブロックが見つかるまで探索される。見つかっ
た仮想ブロックは、移行源RAID区域から移行先RA
ID区域に移行される。
装置が、最も古いまたは最もアクセス頻度が少ない仮想
ブロックを見つけるために、すべての仮想ブロックをソ
ートする必要がないので、利点がある。むしろ、データ
記憶装置は、移行する候補を選択するための選択基準を
特定し、十分な数の移行候補を持つ母集団のサブセット
を選ぶためにその選択基準を使うだけである。この処理
は、記憶要求を満たす十分な数の仮想ブロックが見つか
り次第、早めに終了することができる。この手法によ
り、かなりの効率が得られる。
されたデータ記憶装置10を示す。データ記憶装置10
は、複数の記憶ディスク12を持つ階層ディスクアレー
11、記憶ディスク12への、および記憶ディスク12
からのデータ転送を調整するためにディスクアレー11
に結合されたディスクアレー制御装置14、およびRA
ID管理装置16を含む、ディスクアレー・データ記憶
装置であることが望ましい。
ク"とは、不揮発性で、ランダム・アクセスが可能で、
自身の記憶故障を検出する能力のある、書き換え可能な
大容量記憶装置を指す。それは、回転する磁気および光
ディスク、並びに、固体ディスク、または不揮発性の電
子的記憶要素、たとえばPROM、EPROM、および
EEPROMを含む。"ディスクアレー"という用語は、
複数のディスク、ディスクを1つまたは複数のホスト・
コンピュータに接続するのに必要なハードウェア、およ
び物理的ディスクの動作を制御し、物理的ディスクをホ
ストの動作環境に1つまたは複数の仮想ディスクとして
提示するのに使われる管理ソフトウェアの集まりを指
す。"仮想ディスク"とは、管理ソフトウェアによってデ
ィスクアレーの中に実現される抽象的実体である。
t Disks)と言う用語は、記憶容量の残りの部分に記憶
されたユーザデータについての冗長情報を記憶するため
に、その物理的記憶容量の1部が使用されているディス
クアレーを意味する。冗長情報は、ディスクアレーを構
成するディスクの1つ、または、そのディスクへのアク
セス経路が故障したときにユーザデータの再生を可能に
する。RAID装置に関する詳しい記述は、「RAID
手法の資料集」(The RAIDBook: A Source Book for RA
ID Technology, published June 6, 1993, by the RAID
Advisory Board, Lino Lakes, Minnesota)を参照され
たい。
SCSI(small computer systeminterface)のような
1つまたは複数のインターフェース・バス13を介して
ディスクアレー11に結合されている。RAID管理装
置16は、インターフェース・プロトコル15を介し
て、ディスクアレー制御装置14を動作させるために結
合されている。データ記憶装置10はホスト・コンピュ
ータ(図示せず)にも入出力インターフェース・バス1
7を介して結合されている。RAID管理装置16は、
ディスクの記憶および信頼性レベルを制御し、多様な信
頼性記憶レベル間のデータ転送を行うためのデータマネ
ージャ手段を提供するために、別個の装置要素として具
体化してもよいし、ディスクアレー制御装置14内また
はホスト・コンピュータ内に構成してもよい。これらの
信頼性記憶レベルは、以下に述べるように、ミラーまた
はパリティ冗長レベルであることが望ましいが、全く冗
長性を持たない信頼性記憶レベルを含むこともできる。
アレー制御装置A 14a、およびディスクアレー制御
装置B 14bからなる二重の制御装置として具体化す
ることが望ましい。二重制御装置14aおよび14b
は、どちらか1つが動作できなくなった場合にも、継続
したバックアップおよび冗長性を提供することによって
信頼性を向上させる。しかし、本発明は、1台の制御装
置またはその他の構成でも実施することができる。
間および1つまたは複数の仮想記憶空間を含む異なる記
憶空間として特徴づけられる。記憶に関するこれらの多
様なビューはマッピング手法に関連している。たとえ
ば、ディスクアレーの物理的記憶空間は、多様なデータ
信頼性レベルにしたがって記憶区域を描く仮想記憶空間
にマッピングすることができる。仮想記憶空間内のある
区域を第1信頼性記憶レベル(たとえば、ミラーすなわ
ちRAIDレベル1)のために割り当て、その他の区域
を第2信頼性記憶レベル(たとえば、パリティすなわち
RAIDレベル5)のために割り当てることができる。
RAIDレベルに関しての多様なマッピング手法および
仮想空間については以下に詳しく述べる。
互いにマッピングするために用いる仮想マッピング情報
を持続的に記憶するメモリマップ記憶装置21を含む。
メモリマップ記憶装置はディスクアレーの外にあり、デ
ィスクアレー制御装置14内にあることが望ましい。メ
モリマップ情報は、異なるビューの中で多様なマッピン
グ構成が変わるにしたがい、制御装置またはRAID管
理装置によって絶えずまたは定期的に更新される。
制御装置14aおよび14bに置かれる2つの不揮発性
RAM(Random Access Memory)21aおよび21bと
して具体化されるのが望ましい。不揮発性RAM(non-
volatile RAM: NVRAM)の1つの例は、バッテリ付きの
RAMである。バッテリ付きRAMは、データをメモリ
に維持するために、データ記憶装置10への電源が切ら
れたときに独立したバッテリ電源からのエネルギーを使
う。1つの望ましい構成は、自身でリフレッシュできる
バッテリ付きDRAM(Dynamic RAM)である。
メモリマップ情報の冗長記憶を供給する。仮想マッピン
グ情報はミラー冗長方法にしたがって複製され、NVR
AM21aおよび21bの両方に記憶される。このよう
にして、NVRAM21aはもっぱら元のマッピング情
報を記憶するのに用い、NVRAM21bはもっぱら冗
長マッピング情報を記憶するのに用いることができる。
別の構成として、データを二重に記憶するための十分な
空間を備えた1つの不揮発性RAMを用いて、ミラーに
したメモリマップ記憶装置を構成することもできる。
複数のディスク駆動装置12を持つ。これらの記憶ディ
スクの大きさの例は、1ないし3ギガバイトである。記
憶ディスクは、SCSIバス13とのインターフェース
を提供する機械的ベイに、それぞれ独立して接続したり
はずしたりできる。1つの具体化では、データ記憶装置
は、作動する機械的ベイを12個、および追加の4個の
機械的ベイを持つように設計される。これらのベイをデ
ィスクアレー制御装置14にインターフェースさせるた
めに4つのSCSIバス(すなわち、3ないし4個の機
械的ベイに対して1つのバス)が使われる。これらのベ
イがいっぱいになるまでロードされた場合、データ記憶
装置は全体で、たとえば、12ないし36ギガバイトの
容量を持つ。ディスクアレー制御装置14は、記憶ディ
スク12がどのベイに差し込まれていても、認識するこ
とができる。データ記憶装置10は、ディスクアレーの
動作中に、ディスクアレーの使用可能なベイに追加のデ
ィスクを差し込む("ホットプラグ":hot plug)ことが
できるように設計されている。
ー11の記憶ディスク12は、複数のディスク20を持
つミラー・グループ18、および、複数のディスク24
を持つパリティ・グループ22に配列されたものとして
概念化することができる。ミラー・グループ18は、第
1のレベルすなわちミラー冗長レベルにしたがってデー
タを記憶するディスクアレーの第1の記憶位置すなわち
RAID区域を表す。このミラー冗長レベルは、またR
AIDレベル1と考えることができる。RAIDレベル
1、すなわちディスクのミラー化は、データの各ビット
が複製されてデータ記憶装置内に記憶されるという意味
で1対1の保護を提供することにより、最高の信頼性を
提供する。ミラー冗長は、図1で、3対のディスク20
で表されている。元のデータは第1の組のディスク26
に記憶され、複製された冗長データは、対になった第2
の組のディスク28に記憶される。
ータの記憶をより詳しく示す。垂直の列は個々のディス
ク0、1、2、3を表す。4個のディスクからなるこの
ディスクアレーに含まれる物理的記憶空間は、水平の行
で表される複数のストライプに構成される。1つの"ス
トライプ"は複数の記憶ディスクにわたって延び、多数
の同じ大きさの記憶空間のセグメントで構成され、1つ
のセグメントはアレーの中の各ディスクに関連してい
る。すなわち、1つのセグメントは1つのディスクの上
に存在する1つのストライプの部分である。各ストライ
プは、記憶ディスク全体に分配されているデータの予定
の量を保持する。ストライプのうちのあるセグメントは
元のデータのために使われ、その他のセグメントは冗長
データのために使われる。
では、ディスク0上のストライプ0のセグメント0に記
憶されているデータは、複製されて、ディスク1上のス
トライプ0のセグメント0'に記憶される。同様に、デ
ィスク2のストライプ2のセグメント5に記憶されてい
るデータは、ディスク3のストライプ2のセグメント
5'に記憶される。このようにして、各データは複製さ
れディスク上に記憶される。図2の冗長のレイアウトは
説明の目的で図示したものである。冗長データを同じス
トライプに、図示したように、きちんと並べる必要はな
い。たとえば、ディスク0のストライプ1のセグメント
2のデータは複製されて、ディスク3のストライプSの
セグメントT'に置くことができる。
リティ・グループ22は、第2の記憶位置すなわちRA
ID区域を表し、データは第2の冗長レベル、たとえば
RAIDレベル5にしたがって記憶される。図に例とし
て示した6個のディスクでは、元のデータは5個のディ
スク30に記憶され、冗長"パリティ"データは6番目の
ディスク32に記憶される。
を詳しく示す。図2のミラーRAID区域のレイアウト
と同様に、ディスク0、1、2、3の物理的記憶空間
は、複数の同じ大きさのストライプに構成される。例と
して示したこの図では、データはRAIDレベル5にし
たがって記憶され、冗長データはPで表したセグメント
に記憶される。冗長Pセグメントは、ストライプの中の
その他のセグメントのパリティを記憶する。たとえば、
ストライプ0において、ディスク3上の冗長Pセグメン
トは、ディスク0、1、2のパリティを記憶する。各ス
トライプのパリティは、たとえば、排他的OR関数のよ
うな、ある関数によって計算される。最初の4つのスト
ライプのパリティは次のように表され、下付き数字は対
応するストライプを表す。
データの再生を可能にする。たとえば、セグメント5の
データが使用できなくなったとき、その内容は、セグメ
ント3および4、および、セグメントPのパリティ・デ
ータから確かめることができる。パリティ記憶はミラー
記憶よりも費用はかからないが、信頼性はより低く性能
も低い。
的のものである。実際には、ディスクアレー11は、ミ
ラーおよびパリティ冗長にしたがってデータを記憶する
ことができる複数のディスク12を単に持つだけであ
る。全てのディスク12によって提供される使用可能な
記憶空間のうち、その記憶空間の1部がミラー冗長に割
り当てられ、別の1部がパリティ冗長に割り当てられ
る。ディスク12は複数の同じ大きさの記憶領域(図4
の番号35で表すような)を含むように構成され、個々
の領域が複数のセグメントを持つようにするのが望まし
い。領域は、記憶空間の1つの仮想ビューの中にRAI
D区域を形成するようにまとめられる。さらに、RAI
D区域およびデータ冗長記憶手法がユーザまたはホスト
に透明(トランスペアレント:transparent)になるよ
うに、記憶空間の別の(ホストによって定義された)ビ
ューがユーザまたはホストに提示される。これらの特徴
については、図4を参照して以下に詳しく述べる。
よびパリティ記憶方法の間のデータの"移行"(migratio
n)を管理する。両タイプの冗長性の管理はRAID管
理装置16(図1)によって調整される。RAID管理
装置16は、ディスクアレーの中の2つの異なった型の
RAID区域を、ミラーRAID区域がパリティRAI
D区域に対してキャッシュとしてはたらくのと同様なメ
モリ階層として管理する。RAID管理装置16は、定
義された性能プロトコルにしたがって、ミラーRAID
区域とパリティRAID区域との間のデータをシフト
し、組織し、その他の方法で管理する。ミラーRAID
区域とパリティRAID区域との間のデータ移動の処理
は"移行"と呼ばれる。
信頼性がもたらされるように、性能により厳しいデータ
をミラーRAID区域に置くように努める。RAID管
理装置16によって具体化される性能プロトコルは、2
つの望ましい移行方針のうちのどちらかを含む。第1の
移行方針は"アクセス頻度"と呼ばれ、この方針にしたが
って、階層ディスクアレー上の最も頻繁にアクセスされ
るデータがミラーRAID区域18に維持される。アク
セス頻度の低いデータはパリティRAID区域22に維
持される。"アクセスの最近性"と呼ばれる第2の移行方
針にしたがって、最も最近にアクセスされたデータはミ
ラーRAID区域18に維持され、アクセスの最近性の
低いデータはパリティRAID区域22に記憶される。
この他の性能プロトコルを使用することもできる。その
ようなプロトコルは、具体的なコンピュータ・アプリケ
ーション、およびユーザのニーズに基づいて定義するこ
とが理想的である。
パラメータの関数、すなわち物理的記憶容量の大きさ、
およびデータ記憶装置に記憶されているユーザデータの
現在量にしたがって、データ記憶装置の記憶資源を自動
的に"調整"する。最初は全てのデータがミラーRAID
区域に記憶される。これによって最高の性能および信頼
性が得られるからである。より多くのデータがデータ記
憶装置に加えられるにつれて、性能および信頼性を最適
化するために、ミラーRAID区域とパリティRAID
区域との間でデータの移行が行われる。データ記憶装置
が満杯に近づくにしたがい、冗長性を通して信頼性を提
供しながらユーザの要求をすべて満たすようにするため
に、いっそう多くのデータがパリティRAID区域に移
行される。したがって、本発明によるデータ記憶装置は
最大の融通性と適応をもたらす。この装置は、特定の記
憶方法をユーザが選択する必要はないが、ユーザからの
どんな要求をも満たすように適応できる。
記憶空間のメモリ・マッピングを、マッピングされた仮
想記憶空間の複数の層として示す。図の垂直に延びた矩
形のそれぞれは、物理的記憶空間のビューを表す。この
図において、物理的記憶空間34は2つの仮想記憶ビュ
ー40および50で参照されている。物理的記憶空間3
4は4個のディスク(図1のディスク12のような)で
表され、数字0、1、2、3で参照される。これらのデ
ィスクに関連している4つの矩形は物理的記憶空間のビ
ューを表し、ディスク1、2、3は大体同じ記憶容量を
持っているが、ディスク0はやや少ない記憶容量を持っ
ている。これらのディスクの記憶容量の例は、1ないし
3ギガバイトである。記憶空間34は区域A0、A1、
A2等に分割されている。個々の区域は、たとえば区域
A0の中のストライプ0〜Qのように、多くのストライ
プを持つ。個々の区域には、また、多くの領域35があ
る。領域35は、それぞれの領域が全ディスクアレーに
わたって同じ大きさになるように、各記憶ディスク上
で、均一な大きさの、ある選択された数のセグメントで
構成されるのが望ましい。1つの領域35の大きさの例
は1メガバイトである。
4の第1の中間的な、RAIDレベル仮想ビュー40に
マッピングされる。この第1仮想ビューは、概念的に
は、連続的にアドレス可能な記憶空間を表す第2のアプ
リケーション・ビューにマッピングすることができる1
組のRAID区域である。記憶空間の物理的な構成およ
びRAIDビューはアプリケーション・ビューからは隠
れている。
よびパリティ記憶空間を区別する記憶のビューである。
たとえば、RAID区域42はM個の割り当てブロック
43を持つミラーRAID区域を表し、RAID区域4
4はN個の割り当て区域45を持つパリティRAID区
域を表す。割り当てブロック43および45は同じ大き
さ(たとえば64kバイト)であることが望ましい。こ
れらのRAID区域は、物理的記憶空間34上の対応す
る物理的区域A0、A1、A2等に関連する。たとえ
ば、RAID仮想ビューの16個の64k割り当てブロ
ック43または45は、1個の1M(メガ)領域35の
上にマッピングすることができる。
ィスクアレーの記憶空間34の全体を使いきる場合とそ
うでない場合とがある。したがって、あるアプリケーシ
ョンの間、特定のRAID区域に対応しない、未使用で
未指定の記憶空間がある場合がある。しかし、そのよう
な記憶空間は、ミラーまたはパリティRAID区域のど
ちらにも変換することができる。また、RAID区域
は、ディスクアレー上の連続した区域にマッピングさ
れ、RAID区域に関連する領域のそれぞれは各記憶デ
ィスク上の同じ物理アドレスに置かれるものとして図示
してあることに留意されたい。代替方法として、RAI
D区域はディスクアレー上の不連続な区域にマッピング
することもできる。
ーザまたはホスト・アプリケーション・プログラムによ
って定義され、ユーザまたはホスト・アプリケーション
・プログラムに提示される記憶のビューである第2の前
面のアプリケーション・レベルの仮想ビュー50にマッ
ピングされる。ユーザまたはホスト・アプリケーション
・プログラムから見た場合、アプリケーション・レベル
の仮想ビュー50は、記憶ディスク12上で使用可能な
記憶空間を示す1つの大きな記憶容量を表す。仮想記憶
空間50は、それぞれが、0、1、2、.....、J−
1、J、J+1、.....、L−1、L、L+1、.....、
等として参照される同じ大きさの記憶仮想ブロック52
および53からなる、線形の1組のビューを提示する。
仮想ブロック52および53は、RAID区域40の割
り当てブロックと同じ大きさ(たとえば64kバイト)
であることが望ましい。仮想ブロック記憶空間50は、
RAID区域40で提示されているビューの割り当てブ
ロックを指す参照テーブルまたはポインタ(たとえば図
4の矢印54で示す)によって表される。したがって、
アプリケーション仮想ビュー50の仮想ブロック52お
よび53は、仮想ブロック・テーブルで維持されている
ポインタを介して、RAID仮想ビュー40の割り当て
ブロック43および45に関連づけられている。仮想ブ
ロック・テーブルから参照できるRAID区域の型には
少なくとも2つ(すなわちミラーおよびパリティ)の型
がある。
全面にわたるRAID区域の構成を動的に変更できる。
各型のRAID区域の数は、装置に記憶されつつあるユ
ーザデータの量および物理的なディスク記憶空間の大き
さに応じて増減される。その結果、RAIDレベル仮想
ビュー40の中のRAID区域のディスク上へのマッピ
ング、および、前面仮想ビュー50のRAIDビュー4
0へのマッピングは常にその状態が変化している。NV
RAM21aおよび21b(図1)のメモリマップ記憶
装置は、RAID管理装置16がRAID区域をディス
ク上にマッピングするために使う最新のマッピング情
報、および、2つの仮想ビュー間のマッピングに用いら
れる情報を維持している。RAID管理装置は、RAI
Dレベルのマッピングを動的に変更するのに応じて、そ
の変更を反映するためにメモリマップ記憶装置のマッピ
ング情報も更新する。
10の移行動作について以下に述べる。
ョン・レベル仮想記憶空間50の仮想ブロック53は、
物理的記憶空間34の区域A1に記憶されているパリテ
ィRAID区域44の中の関連する割り当てブロック4
5を参照する。そのような仮想ブロック53は"パリテ
ィ仮想ブロック"と呼ばれ、関連する割り当てブロック
45は"パリティ割り当てブロック"と呼ばれる。同様
に、仮想ブロック52は、物理的記憶空間34の区域A
0に記憶されているミラーRAID区域42の中の関連
する割り当てブロック43を参照する。そのような仮想
ブロック52は、"ミラー仮想ブロック"と呼ばれ、関連
する割り当てブロック43は"ミラー割り当てブロック"
と呼ばれる。
ら別のRAID区域に移行するためには、第1のRAI
Dレベル型(たとえば、ミラーすなわちレベル1)の割
り当てブロックに関連した仮想ブロックが選択される。
次に、第2のRAIDレベル型(たとえば、パリティす
なわちレベル5)を表す、未使用の割り当てブロックが
探される。未使用の割り当てブロックが見つからなけれ
ば、割り当てブロックが作られる。次に、データが、選
択された仮想ブロックに以前関連していた割り当てブロ
ックから、未使用の割り当てブロックに転送され、デー
タは冗長レベルの変更を受ける。たとえば、以前ミラー
冗長にしたがって記憶されていたデータは、あらたにパ
リティ冗長にしたがって(またはその逆)記憶される。
最後のステップとして、アプリケーション・レベル仮想
記憶空間50のRAIDレベル仮想記憶空間40へのマ
ッピング54は、データのシフトを反映するために修正
され更新される。第1のRAIDレベル型の割り当てブ
ロックに以前関連していた選択された仮想ブロックは、
こんどは、更新されたポインタを介して、移行されたデ
ータを含む第2のRAIDレベル型の割り当てブロック
を参照する。この処理中に起こるマッピング変更はメモ
リマップ記憶装置21の中で更新される。
したがった、ミラーおよびパリティ記憶区域の間のデー
タの移行について説明する。パリティ記憶区域からミラ
ー記憶区域へデータを移行するために、次のシーケンス
が使われる。 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に移動している。
らなかった場合(上記のステップ1)、RAID管理装
置は、3つの手法からなる次のシーケンスを試みる。先
ず、RAID管理装置は、未使用(したがって未指定)
のRAID区域を見つけることを試みる。このRAID
区域は、移行が常に進行できることを保証するのに必要
な未使用のRAIDレベル記憶のシステムしきい値を犯
すことなく、ミラーRAID区域に変換できるものであ
る。これが失敗し、装置が未使用のRAIDレベル記憶
の予備量以上を持っている場合、装置は、未使用のパリ
ティ割り当てブロックを未使用のRAID区域に集める
ために、パリティ記憶内のデータを移行する。この移行
により、上記のようにミラーRAID区域に変換できる
未使用のRAID区域が生じる場合、装置は未使用のR
AID区域をミラーRAID区域に変換する。そうでな
い場合、代替方法として、未使用のミラー割り当てブロ
ックを求めるため、または、未使用のRAID区域をミ
ラーRAID区域に変換するのに十分な未使用のRAI
Dレベル記憶を増やすまで、装置はデータをミラーから
パリティ記憶に移行し、ミラー記憶を詰め、未使用のR
AIDレベル記憶をパリティに変換する。ミラー割り当
てブロックはパリティ割り当てブロックよりも多くの物
理的記憶空間を占めるので、この最後の方法は、未使用
のRAIDレベル記憶装置の純増につながる。
確立するために使われる作成/変換のプロトコルは、ユ
ーザデータの量および物理的記憶空間の大きさに応じ
て、RAID管理装置がパリティ区域とミラー区域との
間のメモリ割り当てを選択的に調節できるので、利点が
ある。RAID管理装置は、データ使用および記憶容量
が変化するにしたがい、ミラー記憶に保持されるデータ
量が最大になるように、上記の1つまたは複数の手法を
用いる。
タイム)中に未使用のRAID区域を作ることにより、
空間作成シーケンスが未使用のミラー割り当てブロック
を生じる間、記憶要求が待たなければならない状況を避
けるように試みる。しかし、ある状況においては、空間
作成シーケンスの間、記憶要求が中断される場合があ
る。RAID管理装置は、仮想空間がRAIDビューよ
り小さくなるような方法で仮想ブロック記憶空間を構成
する。これにより、少なくとも1つのRAID区域に等
しい空き空間が、移行またはその他の目的のためにとっ
て置かれることが保証される。このようにして、この手
法のシーケンスにより未使用のミラー割り当てブロック
が常に生じる。
るために、次のシーケンスが使われる。 1. RAID管理装置は、アクセス最近性またはアク
セス頻度のような移行方針にしたがってミラーからパリ
ティ記憶に移行するために、52から仮想ブロックを選
ぶ。 2. RAID管理装置は、パリティRAID区域44
の中に未使用のパリティ割り当てブロック45を探す。 3. そのようなブロックが見つからなかった場合、上
述の作成方法にしたがって、移行のために確保しておい
た空間がパリティRAID区域に変換される。 4. 移行される仮想ブロックに対する新しい記憶要求
が中断される。 5. RAID管理装置は、その仮想ブロックへの実行
中の記憶要求がすべて完了するまで待つ。 6. データが、仮想ブロック52に関連しているミラ
ー割り当てブロック43から臨時のメモリバッファに読
み込まれる。 7. データが、選ばれたパリティ割り当てブロック4
5に書かれる。 8. 仮想ブロック・テーブルが、パリティ割り当てブ
ロック45の中のデータの新しい位置を参照するために
修正される。 9. 仮想ブロックへのデータ要求が再開される。 上述の9ステップからなる2つのシーケンスは、2つの
異なる冗長レベルの間のデータの移行を行うために、本
発明による記憶装置がどのように動作するかの例を提供
している。
データアクセスの頻度の2つの移行方針のどちらかを使
って、パリティRAID区域とミラーRAID区域との
間で移行される。一般的な動作において、本発明による
データ記憶装置は、最も古い、または最もアクセス頻度
が少ない仮想ブロックを、ミラー記憶からパリティ記憶
に移行する。逆に、最も新しい、または最もアクセス頻
度が高い仮想ブロックを、パリティ記憶からミラー記憶
に移行することは有用である。データ記憶装置の仕事の
1つは、移行するのにふさわしい仮想ブロックを選択す
ることである。
想ブロックに単調に増加するマークがつけられる。移行
方針がアクセスの最近性である場合、仮想ブロックに、
データがその仮想ブロックにいつ記憶されたかを示すタ
イムスタンプがつけられる。タイムスタンプは、ディス
クアレー制御装置14の中の、約1分毎(ある具体化で
は65.5秒毎)に増加的に時間刻み(チック:tick)を出
力するカウンタによって生成されるのが望ましい。それ
によって、カウンタは、そのような記憶ブロックにマー
クをつける適切な手段を形成する。その他の手段も、こ
の代わりに使うことができる。アクセス頻度の場合、仮
想ブロックに、その仮想ブロックのデータがアクセスさ
れた回数を示す頻度スタンプがつけられる。頻度スタン
プは、対応する仮想ブロックがアクセスされる度に1増
える整数値である。
つける1つの単純な手法は、第2仮想記憶空間50全体
をタイムスタンプまたは頻度スタンプでソートすること
である。ソートすることによって、パリティRAID区
域とミラーRAID区域との間の移行のための、最も古
い/最も新しい、またはアクセス頻度が最も少ない/最
も多い仮想ブロックが得られる。しかし、この手法は、
仮想ブロック全体をソートするのにかなりのメモリ資源
および処理時間がかかるので、あまり好ましくない。ソ
ート手法の欠点は、ユーザデータが増えるにしたがい、
いっそう顕著になる。処理時間は、ソートされる仮想ブ
ロックの数の非線形関数であり、ブロックの数が増える
にしたがい処理時間はいっそう長くなる。
好ましい手法は、全面的なソートに頼らずに、適切な仮
想ブロックを統計的に選択することである。この手法に
したがい、仮想ブロックをタイムスタンプまたは頻度ス
タンプの観点から統計的に特徴づけるために、RAID
管理装置16によって1つまたは複数の度数分布表が作
られる。次に、より古い/より新しい仮想ブロック、ま
たはアクセス頻度がより少ない/より多い仮想ブロック
を、仮想ブロックの残りの母集団から区分するスタンプ
しきい値を特定するために、度数分布表が処理される。
ある区分スタンプしきい値が特定されると、その区分に
入る十分な数の仮想ブロックが見つかるまで、アプリケ
ーション・レベル仮想記憶空間がすばやく探索される。
探索はそこで終わる。見つけられた仮想ブロックの中の
データは、たとえば他の割り当てブロックへの移行のよ
うな所望の機能を実行するために処理される。統計的な
選択手法は、メモリの使用および処理時間を最適化する
ので、全体をソートする手法よりも好ましい手法であ
る。
憶装置における度数分布表の種々な使用、作成および維
持を示す。これらの側面および対応する新方法について
は、図10ないし12の流れ図を参照して説明する。本
明細書で説明する方法は、RAID管理装置16のファ
ームウェアとして具体化されるのが望ましい。
ップ100および102により、階層データ記憶装置の
RAID環境が確立される。ステップ100で、RAI
D管理装置16は、ディスクアレー12によって提供さ
れる物理的記憶空間を、RAIDレベル仮想記憶空間4
0にマッピングする。RAIDレベル仮想記憶空間は、
物理的記憶空間を、種々なRAIDレベル、たとえばR
AIDレベル1およびRAIDレベル5にしたがってデ
ータを記憶する複数のRAID区域として表す。ステッ
プ102で、RAID管理装置は、RAIDレベル仮想
記憶空間を、物理的記憶空間を複数の仮想ブロックとし
て表すアプリケーション・レベル仮想記憶空間にマッピ
ングする。仮想ブロックは、対応するRAID区域に関
連する。データは、関連するRAID区域のRAIDレ
ベルにしたがって仮想ブロックに記憶される。
1つまたは複数の度数分布表を作る。RAID区域のそ
れぞれの型(タイプ)に対して、1つの度数分布表が作
られるのが望ましい。度数分布表は、ディスクアレー制
御装置14の揮発性RAMに形成され、装置の初期化の
度に作りなおされるのが望ましい。代替方法として、度
数分布表は、ディスクアレー制御装置14のメモリマッ
プ記憶装置21のNVRAMに常駐させることもでき
る。装置の初期化毎に表を作りなおすことに時間がかか
ることが予見される場合、NVRAMで具体化すること
が望ましい。これらの表の側面については、図5および
6を参照して詳しく述べる。
図6は同じ表を概念化したメモリのかたちで示す。度数
分布表60は、データ記憶装置に記憶されたデータを、
予定の分布基準にしたがって統計的に特徴づける。2つ
の望ましい分布基準は、データアクセスの最近性または
データアクセスの頻度である。度数分布表は、第2仮想
記憶空間50の仮想ブロックのレベルで特徴づけを行
う。したがって、表は、ユーザデータを記憶するために
使用される仮想ブロックについての統計的情報を含む。
れるのが望ましい。区間の数は、図5および6に示すよ
うに、たとえば10である。区間は総称的に1〜10と
ラベルをつけてあるが、しかし実際には、そのような区
間は、始めの境界値から終わりの境界値までの範囲の値
で構成される。分布基準がアクセスの最近性である場
合、区間は時間の範囲で表され、各区間は、仮想ブロッ
クにつけられたタイムスタンプの範囲をカバーする。区
間の1つの例は、1024個のタイムスタンプからな
り、スタンプあたり65.5秒で、これで約1日の時間の中
で使われる仮想ブロックのすべてがカバーできる。分布
基準がアクセス頻度である場合、区間は頻度値で表さ
れ、各区間は、仮想ブロックにつけられた頻度スタンプ
の1つの範囲をカバーする。アクセス頻度方法の下での
種々の区間およびカウントは、どのくらい活発にユーザ
がデータをアクセスするかに依存する。
ックの数を含む。これは、図5の垂直の棒および関連す
る数で表されている。たとえば、32個の仮想ブロック
が、区間1の範囲内に落ちるタイムスタンプまたは頻度
スタンプを持っている。48個の仮想ブロックが、区間
2の範囲内に落ちるタイムスタンプまたは頻度スタンプ
を持っている。以下同様。表は、また、母集団全体を規
定するために、仮想ブロックの累積度数すなわち全体数
を作表する。この例の場合、母集団は566個の仮想ブ
ロックからなる。
の数566を記憶する第1フィールド62を含む。表
は、また、母集団列(キュー:queue)64、空き列6
6、および10個の区間フィールド68を含む。母集団
列64は対象としている母集団のための区間要素を維持
し、空き列66は未使用の区間要素を追跡する。区間フ
ィールド68の各々は、関連する区間のカウント(区間
1には32、区間2には48、等々)、始めの境界値、
および区間の大きさを含む。始めの境界値および区間の
大きさから、終わりの境界値は容易に計算できる。
ケーション・レベル仮想記憶空間に含まれる仮想ブロッ
クを走査することによって作成される。最初、母集団列
64は空で、空き列66は10個の未使用の区間要素を
持っている。10個の区間フィールド68のすべてのカ
ウントおよび始めの境界値は省略時の値すなわちデフォ
ルト値としてゼロに設定される。各区間フィールドの大
きさは、あるデフォルト値、たとえば1024に初期化
される。次に、仮想ブロックのスタンプ(たとえばタイ
ムスタンプまたは頻度スタンプ)に基づいて、表が統計
的に作られる(図10のステップ106)。各区間を満
たす仮想ブロックの数が数えられ、該当するフィールド
68に入力される。
かる(図10のステップ107)まで、区間フィールド
68に対して順番に(図6の矢印でしめすように)調べ
られる。たとえば、仮想ブロックが、第3の区間フィー
ルドの区間内に落ちるスタンプを持っていると仮定す
る。仮想ブロックのスタンプは、先ず、第1の区間フィ
ールドの区間に対して評価される。仮想ブロックがこの
区間フィールドの外に落ちるので、次に第2の区間フィ
ールドと比較される。各区間フィールドは、分析を次の
区間フィールドのアドレスに方向づけるためのポインタ
を持っていることに留意されたい。この処理は、仮想ブ
ロックのスタンプが比較され該当する区間フィールドに
一致する(この場合、第3の区間フィールド)までフィ
ールド毎に続けられ、一致したとき、その区間フィール
ドのカウントが増やされる(図10のステップ10
8)。未使用の仮想ブロックは関連するスタンプを持っ
ていないので、度数分布表に表されないことに留意され
たい。最初と最後の区間ポインタ値を維持することによ
り、母集団列64は、最初と最後の区間フィールド68
を見つけてそれを指すことが容易にできる。
られるにしたがい、母集団列64は満ち始め、空き列6
6は空になり始める。表が各区間にカウントを持つと、
空き列は空になる(空き列のヌルまたは接地記号で表さ
れている)。2つ以上の表が必要な場合(以下に詳しく
述べるように)、同じ走査ステップ中に同時に作成する
ことができることに留意されたい。
うことができる。図11および図12の流れ図は、度数
分布表を使用する望ましい動作モードを示す。度数分布
表を使用するその他の動作も可能である。第1のモード
すなわちホストアクセス動作モードは、ユーザが既存ま
たは新しい仮想ブロックをアクセスすると、表を更新す
るものである。第2のモードすなわち移行動作モード
は、RAID区域間の移行のために使用する仮想ブロッ
クを識別するために表を区分し、度数分布表を更新する
ことに関する。
既存または新しい仮想ブロックが使われるときに表が絶
え間なく更新される、ホストアクセス動作モードを示
す。ステップ109で、先ず、ユーザが既存の仮想ブロ
ックをアクセスしているのか、新しい仮想ブロックを作
っているのかどうかが判断される。ユーザが既存の仮想
ブロックをアクセスしている(ステップ109がNO)
場合、既存の仮想ブロックに新しいスタンプがつけられ
る。新しいスタンプを反映するために度数分布表が更新
される。これは、古いスタンプを持っている区間のカウ
ントを減らし(ステップ110)、ステップ111の後
で、新しいスタンプを持っている区間のカウントを増や
すことによって行われる。
れるときの表の更新の処理を示す。区間6の範囲のタイ
ムスタンプを持つ仮想ブロックがアクセスされたと仮定
する。新しい、最も最近のタイムスタンプが仮想ブロッ
クにつけられる。単調に増加するスタンプを持つことの
1つの重要な利点は、最も最近/最も頻繁にアクセスさ
れた仮想ブロック、および最も古く/最も少なくアクセ
スされた仮想ブロックが最初および最後の区間に置かれ
ているので、装置がこれらの仮想ブロックを見つけて処
理することが容易であることである。したがって、最も
最近のタイムスタンプは、予想通り、区間10の範囲内
に落ちる。度数分布表60は、区間6のカウントを1
(80から79に)減らし、区間10のカウントを1
(76から77に)増やすことによって更新される。
い(ステップ109がYES)場合、分析は図11の判
断ステップ111に進み、新しい仮想ブロックが表の範
囲内の既存の区間に一致するかどうかが決められる。仮
想ブロックにスタンプをつけるのに単調な性質があるこ
とにより、仮想ブロックは、単に、表の最後の区間と比
較される。新しい仮想ブロックが最後の区間に一致する
(判断ステップ111がYES)場合、最後の区間に関
連するカウントが増やされる(ステップ112)。たと
えば、仮想ブロックが区間10の範囲に落ちるタイムス
タンプを持っている場合、区間10のカウントは76か
ら77に増やされる。他方、仮想ブロックが、最後の区
間のどれも満たさないスタンプを持っている(判断ステ
ップ111がNO)場合、RAID管理装置はすばやく
空きの区間があるかどうかを調べる(ステップ11
3)。この状況は、最後の仮想ブロックの度数分布を表
すのに、設定した区間の数(この例では10区間)より
少ない数が使われた場合に起こる。空きの区間がある
(ステップ113がYES)場合、ステップ116で、
新しい最後の区間が、新しい仮想ブロックを含むように
規定される。
O)場合、増加する分布範囲を収めるために、新しい区
間が作られなければならない。度数分布表は固定した数
の区間で区切られているので、新しい区間を作るには、
度数分布表を若干調整する必要がある。RAID管理装
置は、単に新しい区間を加えることはせず、先ず、新し
い区間を収容するために、表の内部に余裕を作る。
す。RAID管理装置は、新しい接合された区間を形成
するために、先ず、隣接する区間を組み合わせる(図1
1のステップ114)。新しい接合区間は、接合された
2つの区間のカウントの和に等しいカウントを持つ。隣
接する2つの区間は、それぞれのカウントを合わせたと
きに最小のカウントになるようなものを選ぶのが望まし
い。図8において、表60'の新しい区間2を形成する
ために、区間2および3が接合される。新しい区間2の
カウントは76(48+28=76)である。
えば、新しい最後の区間10)を規定する(図11のス
テップ116)ために、度数分布表の空間を空ける。次
に、新しい仮想ブロックを反映するために、新しい最後
の区間のカウントが増やされる(ステップ118)。表
60'において、新しい仮想ブロックが新しい最後の区
間に一致し前の区間に一致しなかったことを統計的に示
すために、新しい最後の区間10がカウント1を持って
いる。この接合処理を通して、度数分布表は定められた
区間の数で区切られたまま残り、扱い易く、その中の統
計的情報は正確に維持される。
RAIDレベルに対して1つの度数分布表が作られる。
階層ディスクアレーがRAIDレベル1および5を使う
場合、RAIDレベル1のミラーRAID区域に関連す
る仮想ブロックに対して第1の度数分布表が作られ、R
AIDレベル5のパリティRAID区域に関連する仮想
ブロックに対して第2の度数分布表が作られる。3つ以
上のRAIDレベルが使われる場合、それに対応する3
つ以上の度数分布表が作られる。このメモリ配列の1つ
の使用例は、"中くらいに古い"(middle-aged)仮想ブ
ロックを、その特定のデータに最もふさわしい性能特性
を持つ記憶レベルに移行することである。
を示す。上部に示した表60は、RAIDレベル1の記
憶に関連した仮想ブロックを特徴づけるために使われ
る。下部に示した表70は、RAIDレベル5の記憶に
関連した仮想ブロックを特徴づけるために使われる。
行が度数分布表に与える影響を示す。移行のために表を
使う方法は、図12の移行動作モードに示される。この
例の目的のために、図9の表はデータアクセスの最近性
の分布基準に基づいており、区間は時間で表されてい
る。RAID管理装置16が、新しいデータにミラー記
憶空間を空けるために、"より古い"仮想ブロックをミラ
ー記憶からパリティ記憶に移行したいと仮定する。この
場合、ミラーRAID区域はデータ移行のための移行源
RAID区域として動作し、パリティRAID区域は移
行先RAID区域として動作する(図12のステップ1
20)。
仮想ブロックの母集団を、それぞれが大体同じ数の要素
を持つ複数の同じ大きさのセグメントに分ける(ステッ
プ122)。たとえば、図9の上部の表60に示すよう
に、RAID管理装置は、母集団を5つのセグメントに
分ける。母集団が566である場合、各セグメントは、
理論的には、およそ113個の仮想ブロックを表す。第
1のセグメントは区間1ないし4にわたる。というの
は、区間1ないし3だけでは、各セグメントのしきい値
113より少ない105個の仮想ブロックしかないから
である。
ントがより古い仮想ブロックを含むので、第1のセグメ
ントを選ぶ(図12のステップ124)。総称的に1な
いし4として参照した時間区間内に落ちるタイムスタン
プを持つ仮想ブロックが、この基準を満たす。RAID
管理装置は、第1のセグメントの最も高い境界値を決め
るが、これは、この例の場合、区間4の終わりの境界時
間値である。終わりの境界時間値は、区間4の始めの境
界時間値をとり、区間4の大きさを加えることによって
計算できる。終わりの境界時間値は、比較のためのしき
い値として使われる。
たは複数の仮想ブロックを見つけるために、アプリケー
ション・レベル仮想記憶空間の仮想ブロックを探索する
(ステップ126)。各仮想ブロックのタイムスタンプ
は、その仮想ブロックがしきい時間値よりも早いタイム
スタンプを持ち、したがって第1のセグメントに入れる
べきかどうかを調べるために、しきい時間値と比較され
る。十分な数の仮想ブロックが見つかったところで探索
は止まる。次に、見つかった仮想ブロックは、ミラー記
憶からパリティ記憶に移行される(ステップ128)。
つの度数分布表60および70が更新される(ステップ
130)。RAIDレベル1の表60の区間2で以前表
されていた3つの仮想ブロックが移行されたことによっ
て、いま、RAIDレベル5の表70の区間10に反映
されていると仮定する。表60の区間2に関連するカウ
ントは、単純に、仮想ブロックがなくなったことを反映
するために、48から45に3つ減らされる。同様に、
表70の区間10に関連するカウントは、仮想ブロック
が増えたことを反映するために、47から50に3つ増
やされる。これらの3つの仮想ブロックのタイムスタン
プは、移行中に変わらないことに留意されたい。データ
移行の結果生じた分布の変更を反映するために、各RA
IDレベルの統計的情報だけが修正される。
た方法で行われるのが望ましいことに留意されたい。し
たがって、基準を満たすブロックが見つかるたびに、ブ
ロック毎に移行が行われ、表が更新される。
る方法にくらべて、多くの利点をもたらす。統計的手法
は、ソートによる方法よりもはるかに性能がよく、メモ
リ資源の使用もはるかに少ない。母集団を区分化し、仮
想ブロックを識別するための1つのセグメントを選び、
仮想ブロックをすばやく探索する処理方法は、全体をソ
ートする手法とほぼ等しい結果を生じる。この方法は費
用をかけずに、識別判断に基づいた選択を可能にするの
で、この仕事は、効率よく費用効果のよい方法で達成で
きる。さらに、この処理は、特定されたセグメントに十
分な数の仮想ブロックが見つかり次第止めることができ
る。より早く止めることにより、途中で断ち切られた時
間は、一般的に、全体をソートする時間よりもはるかに
少ない。
の非線形関数と異なり、処理時間は、探索する仮想ブロ
ックの数の線形関数であることである。したがって、デ
ィスクアレーに記憶されているユーザデータの量に関
し、より古い/より新しい仮想ブロック、および最近ア
クセスされない/最近アクセスされた仮想ブロックがよ
りすばやく識別される。
憶装置の間を移動させるデータを選ぶのに使うこともで
きる。例として、データ記憶装置が、たとえばリールか
らリールのテープ記憶装置のようなバックアップ記憶機
構をさらに備えている場合、ディスクアレーからバック
アップ記憶機構にデータを移すために、"非常に古い"
(ancient)記憶ブロックを選ぶのに統計的度数分布表
を使うことができる。
が含まれる。 (1)物理的記憶空間を複数の仮想ブロックからなる母
集団として表す仮想記憶空間にマッピングされた物理的
記憶空間(34)を規定する複数の記憶ディスク(1
2)を持つデータ記憶装置(10)のデータを選択する
方法であって、個々の区間が、関連する区間に対する分
布基準を満たす仮想ブロックの数のカウントを持つ選択
された数の区間を有する、前記データ記憶装置(10)
上に記憶されたデータを予定の分布基準にしたがって特
徴づける度数分布表(60)を作成するステップと、母
集団のサブセットである仮想ブロックの選択基準を特定
するために前記度数分布表(60)を区分するステップ
と、前記選択基準を満たす1つまたは複数の仮想ブロッ
クを見つけるために、仮想記憶空間の中の仮想ブロック
を探索するステップと、を有する方法。
れたかを示すタイムスタンプを仮想ブロックにつける付
加ステップをさらに有し、前記予定の分布基準がデータ
アクセスの最近性で、区間が時間の範囲であり、時間区
間に関連するカウントがその時間区間の範囲のタイムス
タンプを持つ仮想ブロックの数を表す、上記(1)に記
載の方法。 (3)仮想ブロックの中のデータがアクセスされた回数
を示す頻度スタンプを仮想ブロックにつける付加ステッ
プをさらに有し、前記予定の分布基準がデータアクセス
頻度で、区間が頻度値に関連し、区間に関連するカウン
トがそれぞれの区間の範囲の頻度値を持つ仮想ブロック
の数を表す、上記(1)に記載の方法。 (4)新しい仮想ブロックが使われるときに前記度数分
布表(60)を更新するステップをさらに有し、前記更
新ステップが、(1)新しい仮想ブロックが既存の区間
に対する分布基準を満たす場合、その既存の区間に関連
するカウントを増やすステップ、または(2)新しい仮
想ブロックが既存の区間に対する分布基準を満たさない
場合、新しい区間を作り、その新しい区間に最初のカウ
ントを入れるステップのどちらかを有する、上記(1)
に記載の方法。 (5)新しい区間を生成する前記ステップが、接合され
る複数の区間のカウントの和に等しいカウントを持つ1
つの接合区間を規定するために、前記度数分布表(6
0)の中の2つ以上の区間を接合するステップと、前記
新しい仮想ブロックをカバーするために分布基準を延ば
す新しい区間を規定するステップと、を有する、上記
(4)に記載の方法。 (6)既存の仮想ブロックがアクセスされるときに度数
分布表(60)を更新する付加ステップをさらに有し、
前記更新ステップが、アクセスされる前に既存の仮想ブ
ロックが分布基準を満たした区間のカウントを減らし、
アクセスされた後に既存の仮想ブロックが分布基準を満
たした別の区間のカウントを増やす、上記(1)に記載
の方法。
複数の記憶ディスクを持つ階層データ記憶装置の中で移
行を行うためにデータを選択する方法であって、物理的
記憶空間が、物理的記憶空間を異なるRAIDレベルに
したがってデータを記憶する少なくとも2つのRAID
区域として表すRAIDレベル仮想記憶空間(40)に
マッピングされ、前記RAIDレベル仮想記憶空間が、
物理的記憶空間を複数の仮想ブロックからなる母集団と
して表すアプリケーション・レベル仮想記憶空間(5
0)にマッピングされ、前記方法が、個々の区間が、関
連する区間に対する分布基準を満たす仮想ブロックの数
のカウントを持つ選択された数の区間を有する、第1の
RAIDレベルの下で第1のRAID区域に記憶された
データを予定の分布基準にしたがって特徴づける第1の
度数分布表(60)を作るステップと、個々の区間が、
関連する区間に対する分布基準を満たす仮想ブロックの
数のカウントを持つ選択された数の区間を有する、第2
のRAIDレベルの下で第2のRAID区域に記憶され
たデータを予定の分布基準にしたがって特徴づける第2
の度数分布表(70)を作るステップと、個々のセグメ
ントが前記第1の度数分布表の1つまたは複数の区間を
持つ、第1の母集団の複数のセグメントを規定するステ
ップと、前記複数のセグメントから少なくとも1つのセ
グメントを選択するステップと、前記選択されたセグメ
ントに含まれる前記1つまたは複数の区間に対する分布
基準を満たし、前記第1RAIDレベルの下の前記第1
RAID区域に記憶されたデータを表す1つまたは複数
の仮想ブロックを見つけるために、前記アプリケーショ
ン・レベル仮想記憶空間(50)の中に仮想ブロックを
探索するステップと、見つかった仮想ブロックを前記第
1RAID区域から前記第2RAID区域に移行するス
テップと、を有する方法。 (8)仮想ブロックに単調に増える値を持つスタンプを
つけて、より新しくスタンプをつけられた仮想ブロック
が、前記第1および第2の度数分布表の最後の区間にカ
ウントされるようにする付加ステップをさらに有する、
上記(7)に記載の方法。
複数の記憶ディスク(12)を持つディスクアレー(1
1)と、ディスク(12)におよびディスクからデータ
転送を調整するようにディスクアレー(11)に結合さ
れたディスクアレー制御装置(14)と、物理的記憶空
間を様々なRAIDレベルにしたがってデータを記憶す
る複数のRAID区域として表すRAIDレベル仮想記
憶空間(40)、および、物理的記憶空間を複数の仮想
ブロックからなる母集団として表すアプリケーション・
レベル仮想記憶空間(50)を、記憶ディスク(12)
の物理的記憶空間(34)にマッピングするために、デ
ィスクアレー制御装置(14)を動作させるように結合
されたRAID管理装置(16)と、記憶ディスク(1
2)上の第1および第2のRAID区域の間で仮想ブロ
ックを移行させるRAID管理装置(16)と、個々の
区間が、関連する区間に対する分布基準を満たす仮想ブ
ロックの数のカウントを持つ選択された数の区間を有す
る、第1および第2のRAID区域に記憶されたデータ
を予定の分布基準にしたがって特徴づける第1および第
2の度数分布表(60、70)と、それぞれの母集団の
サブセットを構成する仮想ブロックを選択する選択基準
を特定するために、前記第1または第2の度数分布表
(60、70)のどちらかを区分することによって、移
行のための仮想ブロックを選択するRAID管理装置
(16)と、を備えるデータ記憶装置。 (10)単調に増える値を持つスタンプで仮想ブロック
をマークする手段をさらに備える、上記(9)に記載の
データ記憶装置。
最近性または頻度によりデータを選択し移行することに
より、階層データ記憶装置の性能および信頼性が最適化
できる。
を示すブロック図。
AIDレベル1によるデータ記憶を示す図。
AIDレベル5によるデータ記憶を示す図。
空間がマッピングされている、本発明によるメモリマッ
プ配列を示す図。
示す図。
の形で表し、表がどのように作成されるかを示す図。
の度数分布表の更新を示す図。
い区間を生成する手法を示すために、2つの区間を接合
する前の図5の表、および、2つの区間を接合した後の
同じ表を示す図。
よびRAIDレベル5の度数分布表を示し、2つのRA
IDレベルの間でデータを移行したことによる、表に与
える影響を示す図。
数分布表を初期化する方法を示す流れ図。
度数分布表を使用する方法を示す流れ図。
を使用する方法を示す流れ図。
ス) 14、14a、14b ディスクアレー制御装置 15 インターフェース・プロトコル 16 RAID管理装置 17 入出力インターフェース・バス 18 ミラー・グループ 21 メモリマップ記憶装置 21a、21b 不揮発性RAM 22 パリティ・グループ 26 ディスクの第1の組 28 ディスクの第2の組 30 5個のディスク 32 6番目のディスク 60、60'、70 度数分布表 64 母集団列 66 空き列 68 区間フィールド
Claims (1)
- 【請求項1】物理的記憶空間を複数の仮想ブロックから
なる母集団として表す仮想記憶空間にマッピングされた
物理的記憶空間を規定する複数の記憶ディスクを持つデ
ータ記憶装置のデータを選択する方法であって、 個々の区間が、関連する区間に対する分布基準を満たす
仮想ブロックの数のカウントを持つ選択された数の区間
を有する、前記データ記憶装置上に記憶されたデータを
予定の分布基準にしたがって特徴づける度数分布表を作
成するステップと、 母集団のサブセットである仮想ブロックの選択基準を特
定するために前記度数分布表を区分するステップと、 前記選択基準を満たす1つまたは複数の仮想ブロックを
見つけるために、仮想記憶空間の中の仮想ブロックを探
索するステップと、 を有する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/329,349 US5664187A (en) | 1994-10-26 | 1994-10-26 | Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables |
US329,349 | 1994-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08137632A true JPH08137632A (ja) | 1996-05-31 |
JP3715000B2 JP3715000B2 (ja) | 2005-11-09 |
Family
ID=23284974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21710595A Expired - Fee Related JP3715000B2 (ja) | 1994-10-26 | 1995-08-25 | データ記憶装置のデータを選択する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5664187A (ja) |
EP (1) | EP0709765B1 (ja) |
JP (1) | JP3715000B2 (ja) |
DE (1) | DE69528430T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006318017A (ja) * | 2005-05-10 | 2006-11-24 | Nec System Technologies Ltd | Raid構成変換方法、装置及びプログラム並びにこれを用いたディスクアレイ装置 |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3201219B2 (ja) * | 1995-05-29 | 2001-08-20 | 三菱電機株式会社 | 入出力処理システム |
US5666538A (en) * | 1995-06-07 | 1997-09-09 | Ast Research, Inc. | Disk power manager for network servers |
US6098128A (en) | 1995-09-18 | 2000-08-01 | Cyberstorage Systems Corporation | Universal storage management system |
US5765204A (en) * | 1996-06-05 | 1998-06-09 | International Business Machines Corporation | Method and apparatus for adaptive localization of frequently accessed, randomly addressed data |
US5854942A (en) * | 1996-09-06 | 1998-12-29 | International Business Machines Corporation | Method and system for automatic storage subsystem configuration |
WO1998012621A1 (fr) * | 1996-09-20 | 1998-03-26 | Hitachi, Ltd. | Sous-systeme a piles de disques |
US5875457A (en) * | 1996-10-08 | 1999-02-23 | Mylex Corporation | Fault-tolerant preservation of data integrity during dynamic raid set expansion |
JP3734334B2 (ja) * | 1997-05-07 | 2006-01-11 | 富士通株式会社 | データ移行システム、データ移行用プログラムを格納したコンピュータ読み取り可能な記録媒体、及びデータ移行方法 |
CN1281560A (zh) * | 1997-10-08 | 2001-01-24 | 西加特技术有限责任公司 | 混合数据存储和重建系统以及用于数据存储装置的方法 |
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 |
US6167531A (en) * | 1998-06-18 | 2000-12-26 | Unisys Corporation | Methods and apparatus for transferring mirrored disk sets during system fail-over |
US6332197B1 (en) | 1998-08-04 | 2001-12-18 | International Business Machines Corp. | System for updating data in a multi-adaptor environment |
US6446220B1 (en) | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating data and parity data with and without read caches |
US6128762A (en) * | 1998-08-04 | 2000-10-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system with request forwarding |
US6279138B1 (en) | 1998-08-04 | 2001-08-21 | International Business Machines Corporation | System for changing the parity structure of a raid array |
US6272662B1 (en) | 1998-08-04 | 2001-08-07 | International Business Machines Corporation | Distributed storage system using front-end and back-end locking |
US6446237B1 (en) | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system |
JP2000057037A (ja) * | 1998-08-05 | 2000-02-25 | Sony Corp | 記録装置および記録方法、再生装置および再生方法、並びに記録媒体 |
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 |
US6275898B1 (en) | 1999-05-13 | 2001-08-14 | Lsi Logic Corporation | Methods and structure for RAID level migration within a logical unit |
US6842422B1 (en) | 1999-06-15 | 2005-01-11 | Marconi Communications, Inc. | Data striping based switching system |
US6629273B1 (en) | 2000-01-24 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Detection of silent data corruption in a storage system |
US6609219B1 (en) | 2000-01-24 | 2003-08-19 | Hewlett-Packard Development Company, L.P. | Data corruption testing technique for a hierarchical storage system |
US7043641B1 (en) | 2000-03-08 | 2006-05-09 | Igt | Encryption in a secure computerized gaming system |
CA2402389A1 (en) | 2000-03-08 | 2002-09-19 | Shuffle Master, Inc. | Computerized gaming system, method and apparatus |
US7988559B2 (en) | 2001-03-08 | 2011-08-02 | Igt | Computerized gaming system, method and apparatus |
US6487636B1 (en) * | 2000-04-24 | 2002-11-26 | Hewlett-Packard Co. | Method and apparatus for mapping data in a heterogeneous disk array storage system |
US7720928B2 (en) * | 2000-06-02 | 2010-05-18 | Hewlett-Packard Development Company, L.P. | Centralized fine-grained enhancements for distributed table driven I/O mapping |
US6530004B1 (en) | 2000-06-20 | 2003-03-04 | International Business Machines Corporation | Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration |
GB2371886B (en) * | 2001-01-31 | 2005-06-22 | Hewlett Packard Co | Storage apparatus |
JP2002259062A (ja) * | 2001-02-28 | 2002-09-13 | Hitachi Ltd | 記憶装置システム及び記憶装置システムにおけるデータの複写方法 |
US7203841B2 (en) * | 2001-03-08 | 2007-04-10 | Igt | Encryption in a secure computerized gaming system |
US6643653B1 (en) * | 2001-06-01 | 2003-11-04 | Oracle International Corporation | Method and apparatus for identifying a data sequence related to a given data sequence |
US6851070B1 (en) * | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
EP1433078A4 (en) * | 2001-09-10 | 2006-11-15 | Igt Reno Nev | DEVELOPING GAME PROGRAMS COMPATIBLE WITH A SYSTEM AND DEVICE FOR OPERATING ELECTRONIC GAMES |
US7931533B2 (en) * | 2001-09-28 | 2011-04-26 | Igt | Game development architecture that decouples the game logic from the graphics logics |
US8708828B2 (en) | 2001-09-28 | 2014-04-29 | Igt | Pluggable modular gaming modifiers and configuration templates for gaming environments |
US6902481B2 (en) | 2001-09-28 | 2005-06-07 | Igt | Decoupling of the graphical presentation of a game from the presentation logic |
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 |
US7179170B2 (en) | 2001-11-26 | 2007-02-20 | Igt | Pass-through live validation device and method |
US7031085B2 (en) * | 2002-01-16 | 2006-04-18 | Seagate Technology Llc | Version tracking of disk write operations |
US6912635B2 (en) * | 2002-05-08 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Distributing workload evenly across storage media in a storage array |
US20040024954A1 (en) * | 2002-07-30 | 2004-02-05 | Rust Robert A. | Time stamp management system for disk arrays |
US6938120B2 (en) * | 2002-08-29 | 2005-08-30 | International Business Machines Corporation | Apparatus and method to form one or more premigration aggregates comprising a plurality of least recently accessed virtual volumes |
US6895466B2 (en) * | 2002-08-29 | 2005-05-17 | International Business Machines Corporation | Apparatus and method to assign pseudotime attributes to one or more logical volumes |
US6807605B2 (en) * | 2002-10-03 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Managing a data storage array, a data storage system, and a raid controller |
US7337269B2 (en) * | 2002-10-03 | 2008-02-26 | Hewlett Packard Development Company, L.P. | Method of managing a data storage array, and a computer system including a raid controller |
US7376764B1 (en) * | 2002-12-10 | 2008-05-20 | Emc Corporation | Method and apparatus for migrating data in a computer system |
JP4640335B2 (ja) * | 2003-01-20 | 2011-03-02 | デル・プロダクツ・エル・ピー | データ記憶システム |
US7028139B1 (en) | 2003-07-03 | 2006-04-11 | Veritas Operating Corporation | Application-assisted recovery from data corruption in parity RAID storage using successive re-reads |
EP1668486A2 (en) | 2003-08-14 | 2006-06-14 | Compellent Technologies | Virtual disk drive system and method |
US9489150B2 (en) | 2003-08-14 | 2016-11-08 | Dell International L.L.C. | System and method for transferring data between different raid data storage types for current data and replay data |
US9690811B1 (en) * | 2003-11-05 | 2017-06-27 | Hewlett Packard Enterprise Development Lp | Single repository manifestation of a multi-repository system |
JP4863605B2 (ja) * | 2004-04-09 | 2012-01-25 | 株式会社日立製作所 | 記憶制御システム及び方法 |
US7290087B2 (en) * | 2003-11-26 | 2007-10-30 | International Business Machines Corporation | Adaptive grouping in object raid |
US7171532B2 (en) * | 2004-08-30 | 2007-01-30 | Hitachi, Ltd. | Method and system for data lifecycle management in an external storage linkage environment |
US7584220B2 (en) * | 2004-10-01 | 2009-09-01 | Microsoft Corporation | System and method for determining target failback and target priority for a distributed file system |
US20060101084A1 (en) * | 2004-10-25 | 2006-05-11 | International Business Machines Corporation | Policy based data migration in a hierarchical data storage system |
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 |
GB0514529D0 (en) * | 2005-07-15 | 2005-08-24 | Ibm | Virtualisation engine and method, system, and computer program product for managing the storage of data |
EP2357552A1 (en) | 2006-05-24 | 2011-08-17 | Compellent Technologies | System and method for RAID management, reallocation and restriping |
US8363519B2 (en) * | 2006-06-30 | 2013-01-29 | Seagate Technology Llc | Hot data zones |
KR101490327B1 (ko) | 2006-12-06 | 2015-02-05 | 퓨전-아이오, 인크. | 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법 |
US7673167B2 (en) * | 2007-02-06 | 2010-03-02 | International Business Machines Corporation | RAID array data member copy offload in high density packaging |
US8099570B2 (en) * | 2008-02-22 | 2012-01-17 | International Business Machines Corporation | Methods, systems, and computer program products for dynamic selective memory mirroring |
US8725966B2 (en) * | 2008-07-23 | 2014-05-13 | International Business Machines Corporation | Generation and update of storage groups constructed from storage devices distributed in storage subsystems |
JP5369807B2 (ja) * | 2009-03-24 | 2013-12-18 | 日本電気株式会社 | ストレージ装置 |
KR101606453B1 (ko) * | 2009-05-13 | 2016-04-01 | 삼성전자주식회사 | 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법 |
US10102398B2 (en) * | 2009-06-01 | 2018-10-16 | Ab Initio Technology Llc | Generating obfuscated data |
KR20150040384A (ko) * | 2009-06-10 | 2015-04-14 | 아브 이니티오 테크놀로지 엘엘시 | 테스트 데이터의 생성 |
US8706960B1 (en) * | 2009-09-29 | 2014-04-22 | Emc Corporation | Techniques for performing data migration |
US8510507B2 (en) * | 2010-01-21 | 2013-08-13 | Xyratex Technology Limited | Data storage mirroring using virtual mirror |
US9953178B2 (en) * | 2010-02-03 | 2018-04-24 | Os Nexus, Inc. | Role based access control utilizing scoped permissions |
US8839027B2 (en) | 2010-04-06 | 2014-09-16 | Dell Products L.P. | System and method for redundant object storage |
US10922225B2 (en) | 2011-02-01 | 2021-02-16 | Drobo, Inc. | Fast cache reheat |
EP2671160A2 (en) * | 2011-02-01 | 2013-12-11 | Drobo, Inc. | System, apparatus, and method supporting asymmetrical block-level redundant storage |
US9009438B2 (en) * | 2011-06-01 | 2015-04-14 | International Business Machines Corporation | Space reclamation in multi-layered and thin provisioned storage systems |
US9053577B2 (en) * | 2011-10-27 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Reflecting values for a metric in a display |
US9703500B2 (en) | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
GB2506164A (en) | 2012-09-24 | 2014-03-26 | Ibm | Increased database performance via migration of data to faster storage |
US8862847B2 (en) | 2013-02-08 | 2014-10-14 | Huawei Technologies Co., Ltd. | Distributed storage method, apparatus, and system for reducing a data loss that may result from a single-point failure |
AU2014364882B2 (en) | 2013-12-18 | 2020-02-06 | Ab Initio Technology Llc | Data generation |
US9747035B2 (en) * | 2014-12-17 | 2017-08-29 | Empire Technology Development Llc | Reducing memory overhead associated with memory protected by a fault protection scheme |
US9727426B2 (en) | 2015-02-25 | 2017-08-08 | Microsoft Technology Licensing, Llc | Using an overinclusive write record to track and write changes to a storage system |
US10241689B1 (en) | 2015-06-23 | 2019-03-26 | Amazon Technologies, Inc. | Surface-based logical storage units in multi-platter disks |
US10572174B2 (en) * | 2018-06-15 | 2020-02-25 | EMC IP Holding Company LLC | Data lifetime-aware migration |
US11171671B2 (en) * | 2019-02-25 | 2021-11-09 | Samsung Electronics Co., Ltd. | Reducing vulnerability window in key value storage server without sacrificing usable capacity |
CN111857557B (zh) * | 2019-04-30 | 2024-04-05 | 伊姆西Ip控股有限责任公司 | Raid类型转换的方法、设备和计算机程序产品 |
US11789611B2 (en) | 2020-04-24 | 2023-10-17 | Netapp, Inc. | Methods for handling input-output operations in zoned storage systems and devices thereof |
US11340987B1 (en) | 2021-03-04 | 2022-05-24 | Netapp, Inc. | Methods and systems for raid protection in zoned solid-state drives |
US11797377B2 (en) | 2021-10-05 | 2023-10-24 | Netapp, Inc. | Efficient parity determination in zoned solid-state drives of a storage system |
US11803329B2 (en) | 2021-11-22 | 2023-10-31 | Netapp, Inc. | Methods and systems for processing write requests in a storage system |
US11816359B2 (en) | 2021-12-16 | 2023-11-14 | Netapp, Inc. | Scalable solid-state storage system and methods thereof |
US11940911B2 (en) | 2021-12-17 | 2024-03-26 | Netapp, Inc. | Persistent key-value store and journaling system |
CN116737064B (zh) * | 2023-03-29 | 2024-04-05 | 深圳市领德创科技有限公司 | 一种固态硬盘的数据管理方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5166939A (en) * | 1990-03-02 | 1992-11-24 | Micro Technology, Inc. | Data storage apparatus and method |
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 |
US5423017A (en) * | 1992-04-22 | 1995-06-06 | International Business Machines Corporation | Method of and apparatus for increasing efficiency of ager |
US5392244A (en) * | 1993-08-19 | 1995-02-21 | Hewlett-Packard Company | Memory systems with data storage redundancy management |
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
US5463776A (en) * | 1994-09-22 | 1995-10-31 | Hewlett-Packard Company | Storage management system for concurrent generation and fair allocation of disk space among competing requests |
-
1994
- 1994-10-26 US US08/329,349 patent/US5664187A/en not_active Expired - Lifetime
-
1995
- 1995-07-11 EP EP95110829A patent/EP0709765B1/en not_active Expired - Lifetime
- 1995-07-11 DE DE69528430T patent/DE69528430T2/de not_active Expired - Lifetime
- 1995-08-25 JP JP21710595A patent/JP3715000B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006318017A (ja) * | 2005-05-10 | 2006-11-24 | Nec System Technologies Ltd | Raid構成変換方法、装置及びプログラム並びにこれを用いたディスクアレイ装置 |
Also Published As
Publication number | Publication date |
---|---|
DE69528430D1 (de) | 2002-11-07 |
EP0709765A2 (en) | 1996-05-01 |
DE69528430T2 (de) | 2003-06-12 |
EP0709765A3 (en) | 1997-08-06 |
JP3715000B2 (ja) | 2005-11-09 |
EP0709765B1 (en) | 2002-10-02 |
US5664187A (en) | 1997-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3715000B2 (ja) | データ記憶装置のデータを選択する方法 | |
JP3699165B2 (ja) | データ記憶装置の記憶容量を拡大する方法 | |
US5546558A (en) | Memory system with hierarchic disk array and memory map store for persistent storage of virtual mapping information | |
JP3778980B2 (ja) | 保留された量の不使用の記憶スペースを使用する方法 | |
US5537534A (en) | Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array | |
EP0639811B1 (en) | Memory systems with data storage redundancy management | |
JP3753766B2 (ja) | 階層データ記憶システムの記憶スペース確保方法 | |
US6675176B1 (en) | File management system | |
JP3753259B2 (ja) | 記憶空間を提供する方法およびデータ記憶システム | |
US6871272B2 (en) | Data sorting in information storage systems | |
US9002795B2 (en) | Object-based data storage device | |
US5799324A (en) | System and method for management of persistent data in a log-structured disk array | |
JPH08123629A (ja) | 階層データ記憶装置のデータ損失を監視する方法 | |
JP2006120120A (ja) | 複数のデータ・フォーマットを割り振るための一般記憶コンテナ | |
JPH08221875A (ja) | データ記憶システムにおける仮想容量の過大割当てを避ける方法 | |
JP2006260582A (ja) | Raidディスクサブシステムと統合されたファイルシステムのファイル割り当て方法 | |
CN114610232A (zh) | 一种存储系统、内存管理方法和管理节点 | |
JP2018197933A (ja) | ストレージ制御装置、情報処理システムおよびプログラム | |
JP5730446B1 (ja) | トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム | |
JP2001265626A (ja) | ファイル管理方法、データ処理装置並びに記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050427 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050506 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050705 |
|
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: 20050823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050824 |
|
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: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |