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
Application number
JP7217105A
Other languages
English (en)
Other versions
JP3715000B2 (ja
Inventor
Theresa A Burkes
テレサ・エイ・バークス
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 JPH08137632A publication Critical patent/JPH08137632A/ja
Application granted granted Critical
Publication of JP3715000B2 publication Critical patent/JP3715000B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File 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

(57)【要約】 【課題】データ記憶装置の性能および信頼性を最適化す
る。 【解決手段】物理的記憶空間を規定する複数の記憶ディ
スク、及び、この物理的記憶空間を2つの仮想記憶空間
にマッピングする。RAIDレベルの仮想記憶空間は、
物理的記憶空間をミラー及びパリティRAID区域とし
て表す。アプリケーション・レベルの仮想記憶空間は、
物理的記憶空間をRAID区域に関連づけられる複数の
仮想ブロックとして表す。装置の性能及び信頼性を最適
化するために、利用頻度の低い仮想ブロックをミラーR
AID区域からパリティRAID区域に移行する。移行
するための仮想ブロックを選択するために、予定の分布
基準にしたがって仮想ブロックを特徴づける度数分布表
が作られる。表を区分化して特定された選択基準を満た
す利用頻度の低い仮想ブロックを探索し、見つけた仮想
ブロックを移行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、階層データ記憶装
置における移行のために、度数分布表を使ってデータを
選択する方法、およびそのような度数分布表を具体化し
た階層データ記憶装置に関する。
【0002】
【従来の技術】コンピュータ・システムは、速度、信頼
性、および処理能力の点で絶え間なく改良が続いてい
る。その結果、コンピュータはより複雑で高度なアプリ
ケーションが処理できる。コンピュータが改良されるの
に応じて、大容量記憶装置および入出力装置に対する性
能要求が増大している。発展するコンピュータ・システ
ムに性能面で歩調がとれる大容量記憶装置を設計するこ
とが常に求められている。
【0003】ディスクアレー・データ記憶装置は、単一
の大容量記憶装置を形成するように配列され調整された
複数のディスク駆動装置を持つ。大容量記憶装置には、
コスト、性能、可用性の3つの主要な設計基準がある。
メガバイトあたりの低いコスト、高い入出力性能、およ
び、高いデータ可用性を持つ記憶装置を作ることが望ま
しい。"可用性"(availability)とは、記憶装置に記憶
されているデータをアクセスする能力、および、ある程
度の故障が起きても動作が続けられることを保証できる
能力のことである。典型的には、データの可用性は、複
数の場所に記憶されたデータまたはデータ間の関係を持
つ冗長度の使用を通して提供される。
【0004】冗長データを記憶するには2つの一般的な
方法がある。第1の方法すなわち"ミラー"(鏡像:mirr
or)方法では、データが複製され、記憶装置の2つの別
々の区域に記憶される。たとえば、ディスクアレーで
は、同一のデータがディスクアレーの2つの別々のディ
スクの上に提供される。ミラー方法は、二重に記憶する
手法により、高性能および高データ可用性の利点があ
る。しかし、ミラー方法は、データを記憶するコストが
実質的に2倍になるので、相対的に費用の高いものにな
る。
【0005】第2の方法すなわち"パリティ"(奇偶:pa
rity)方法では、記憶区域の一部を冗長データを記憶す
るのに使うが、冗長データを記憶する区域は、元のデー
タを記憶するのに使う記憶空間より小さい。たとえば、
5台のディスクを持つディスクアレーでは、4台をデー
タを記憶するのに使い、5台目をもっぱら冗長データを
記憶するのに使う。パリティ方法の利点は、ミラー方法
より低費用であることであるが、ミラー方法にくらべる
と、性能および可用性が低いという特徴がある。
【0006】
【発明が解決しようとする課題】本発明は、従来の2つ
の方法の調和をはかり、性能および信頼性を最適化する
データ記憶装置を提供することを目的とする。
【0007】
【課題を解決するための手段】本発明のデータ記憶装置
は、複数の記憶ディスクを持つディスクアレー、並び
に、ディスクにおよびディスクからデータ転送を調整す
るディスクアレー制御装置を含む。記憶ディスクは、物
理的記憶空間を規定する。データ記憶装置は、また、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への冗長性の変更を
受ける。
【0008】データ記憶装置は、2つの移行方針、すな
わち、データアクセスの最近性またはデータアクセスの
頻度のどちらかに基づいて移行を実行する。データアク
セスの最近性の方針の下では、データは、データがユー
ザによってどれくらい最近にアクセスされたかに基づい
て移行される。データアクセスの頻度の方針の下では、
データは、データがユーザによってどれくらい頻繁にア
クセスされたかに基づいて移行される。より古いデー
タ、または、あまり頻繁にアクセスされなかったデータ
は、典型的には、性能の高いRAIDレベル1から性能
のより低いRAIDレベル5への移行の候補になる。
【0009】本発明によるデータ記憶装置は、移行の対
象となる仮想ブロックを識別するために度数分布表を使
う。RAIDレベルのそれぞれに対して1つの度数分布
表を用意することが望ましい。度数分布表は、RAID
区域に記憶されたデータを、予定の分布基準にしたがっ
て特徴づける。度数分布表は、一定の数の区間によって
区切られている。各区間に関連づけられた数(カウン
ト)が、それぞれの区間の分布基準を満たす仮想ブロッ
クの数を表す。各度数分布表の中の仮想ブロックの全数
が母集団の数である。
【0010】RAID管理装置は、仮想ブロックの選択
基準を決めるために、移行源RAID区域の度数分布表
を区分することによって、移行源RAID区域から移行
先RAID区域に移行する仮想ブロックを選択する。ア
プリケーション・レベル仮想記憶空間は、選択基準を満
たす仮想ブロックが見つかるまで探索される。見つかっ
た仮想ブロックは、移行源RAID区域から移行先RA
ID区域に移行される。
【0011】度数分布表を使用することは、データ記憶
装置が、最も古いまたは最もアクセス頻度が少ない仮想
ブロックを見つけるために、すべての仮想ブロックをソ
ートする必要がないので、利点がある。むしろ、データ
記憶装置は、移行する候補を選択するための選択基準を
特定し、十分な数の移行候補を持つ母集団のサブセット
を選ぶためにその選択基準を使うだけである。この処理
は、記憶要求を満たす十分な数の仮想ブロックが見つか
り次第、早めに終了することができる。この手法によ
り、かなりの効率が得られる。
【0012】
【発明の実施の形態】図1に、本発明にしたがって構成
されたデータ記憶装置10を示す。データ記憶装置10
は、複数の記憶ディスク12を持つ階層ディスクアレー
11、記憶ディスク12への、および記憶ディスク12
からのデータ転送を調整するためにディスクアレー11
に結合されたディスクアレー制御装置14、およびRA
ID管理装置16を含む、ディスクアレー・データ記憶
装置であることが望ましい。
【0013】本明細書の説明の目的のために、"ディス
ク"とは、不揮発性で、ランダム・アクセスが可能で、
自身の記憶故障を検出する能力のある、書き換え可能な
大容量記憶装置を指す。それは、回転する磁気および光
ディスク、並びに、固体ディスク、または不揮発性の電
子的記憶要素、たとえばPROM、EPROM、および
EEPROMを含む。"ディスクアレー"という用語は、
複数のディスク、ディスクを1つまたは複数のホスト・
コンピュータに接続するのに必要なハードウェア、およ
び物理的ディスクの動作を制御し、物理的ディスクをホ
ストの動作環境に1つまたは複数の仮想ディスクとして
提示するのに使われる管理ソフトウェアの集まりを指
す。"仮想ディスク"とは、管理ソフトウェアによってデ
ィスクアレーの中に実現される抽象的実体である。
【0014】"RAID"(Random Array of Independen
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)を参照され
たい。
【0015】ディスクアレー制御装置14は、たとえば
SCSI(small computer systeminterface)のような
1つまたは複数のインターフェース・バス13を介して
ディスクアレー11に結合されている。RAID管理装
置16は、インターフェース・プロトコル15を介し
て、ディスクアレー制御装置14を動作させるために結
合されている。データ記憶装置10はホスト・コンピュ
ータ(図示せず)にも入出力インターフェース・バス1
7を介して結合されている。RAID管理装置16は、
ディスクの記憶および信頼性レベルを制御し、多様な信
頼性記憶レベル間のデータ転送を行うためのデータマネ
ージャ手段を提供するために、別個の装置要素として具
体化してもよいし、ディスクアレー制御装置14内また
はホスト・コンピュータ内に構成してもよい。これらの
信頼性記憶レベルは、以下に述べるように、ミラーまた
はパリティ冗長レベルであることが望ましいが、全く冗
長性を持たない信頼性記憶レベルを含むこともできる。
【0016】ディスクアレー制御装置14は、ディスク
アレー制御装置A 14a、およびディスクアレー制御
装置B 14bからなる二重の制御装置として具体化す
ることが望ましい。二重制御装置14aおよび14b
は、どちらか1つが動作できなくなった場合にも、継続
したバックアップおよび冗長性を提供することによって
信頼性を向上させる。しかし、本発明は、1台の制御装
置またはその他の構成でも実施することができる。
【0017】階層ディスクアレー11は、物理的記憶空
間および1つまたは複数の仮想記憶空間を含む異なる記
憶空間として特徴づけられる。記憶に関するこれらの多
様なビューはマッピング手法に関連している。たとえ
ば、ディスクアレーの物理的記憶空間は、多様なデータ
信頼性レベルにしたがって記憶区域を描く仮想記憶空間
にマッピングすることができる。仮想記憶空間内のある
区域を第1信頼性記憶レベル(たとえば、ミラーすなわ
ちRAIDレベル1)のために割り当て、その他の区域
を第2信頼性記憶レベル(たとえば、パリティすなわち
RAIDレベル5)のために割り当てることができる。
RAIDレベルに関しての多様なマッピング手法および
仮想空間については以下に詳しく述べる。
【0018】データ記憶装置10は、異なる記憶空間を
互いにマッピングするために用いる仮想マッピング情報
を持続的に記憶するメモリマップ記憶装置21を含む。
メモリマップ記憶装置はディスクアレーの外にあり、デ
ィスクアレー制御装置14内にあることが望ましい。メ
モリマップ情報は、異なるビューの中で多様なマッピン
グ構成が変わるにしたがい、制御装置またはRAID管
理装置によって絶えずまたは定期的に更新される。
【0019】メモリマップ記憶装置21は、それぞれ、
制御装置14aおよび14bに置かれる2つの不揮発性
RAM(Random Access Memory)21aおよび21bと
して具体化されるのが望ましい。不揮発性RAM(non-
volatile RAM: NVRAM)の1つの例は、バッテリ付きの
RAMである。バッテリ付きRAMは、データをメモリ
に維持するために、データ記憶装置10への電源が切ら
れたときに独立したバッテリ電源からのエネルギーを使
う。1つの望ましい構成は、自身でリフレッシュできる
バッテリ付きDRAM(Dynamic RAM)である。
【0020】二重のNVRAM21aおよび21bは、
メモリマップ情報の冗長記憶を供給する。仮想マッピン
グ情報はミラー冗長方法にしたがって複製され、NVR
AM21aおよび21bの両方に記憶される。このよう
にして、NVRAM21aはもっぱら元のマッピング情
報を記憶するのに用い、NVRAM21bはもっぱら冗
長マッピング情報を記憶するのに用いることができる。
別の構成として、データを二重に記憶するための十分な
空間を備えた1つの不揮発性RAMを用いて、ミラーに
したメモリマップ記憶装置を構成することもできる。
【0021】図1に示すように、ディスクアレー11は
複数のディスク駆動装置12を持つ。これらの記憶ディ
スクの大きさの例は、1ないし3ギガバイトである。記
憶ディスクは、SCSIバス13とのインターフェース
を提供する機械的ベイに、それぞれ独立して接続したり
はずしたりできる。1つの具体化では、データ記憶装置
は、作動する機械的ベイを12個、および追加の4個の
機械的ベイを持つように設計される。これらのベイをデ
ィスクアレー制御装置14にインターフェースさせるた
めに4つのSCSIバス(すなわち、3ないし4個の機
械的ベイに対して1つのバス)が使われる。これらのベ
イがいっぱいになるまでロードされた場合、データ記憶
装置は全体で、たとえば、12ないし36ギガバイトの
容量を持つ。ディスクアレー制御装置14は、記憶ディ
スク12がどのベイに差し込まれていても、認識するこ
とができる。データ記憶装置10は、ディスクアレーの
動作中に、ディスクアレーの使用可能なベイに追加のデ
ィスクを差し込む("ホットプラグ":hot plug)ことが
できるように設計されている。
【0022】本発明の説明の目的として、ディスクアレ
ー11の記憶ディスク12は、複数のディスク20を持
つミラー・グループ18、および、複数のディスク24
を持つパリティ・グループ22に配列されたものとして
概念化することができる。ミラー・グループ18は、第
1のレベルすなわちミラー冗長レベルにしたがってデー
タを記憶するディスクアレーの第1の記憶位置すなわち
RAID区域を表す。このミラー冗長レベルは、またR
AIDレベル1と考えることができる。RAIDレベル
1、すなわちディスクのミラー化は、データの各ビット
が複製されてデータ記憶装置内に記憶されるという意味
で1対1の保護を提供することにより、最高の信頼性を
提供する。ミラー冗長は、図1で、3対のディスク20
で表されている。元のデータは第1の組のディスク26
に記憶され、複製された冗長データは、対になった第2
の組のディスク28に記憶される。
【0023】図2に、RAIDレベル1にしたがったデ
ータの記憶をより詳しく示す。垂直の列は個々のディス
ク0、1、2、3を表す。4個のディスクからなるこの
ディスクアレーに含まれる物理的記憶空間は、水平の行
で表される複数のストライプに構成される。1つの"ス
トライプ"は複数の記憶ディスクにわたって延び、多数
の同じ大きさの記憶空間のセグメントで構成され、1つ
のセグメントはアレーの中の各ディスクに関連してい
る。すなわち、1つのセグメントは1つのディスクの上
に存在する1つのストライプの部分である。各ストライ
プは、記憶ディスク全体に分配されているデータの予定
の量を保持する。ストライプのうちのあるセグメントは
元のデータのために使われ、その他のセグメントは冗長
データのために使われる。
【0024】ミラー冗長(RAIDレベル1)のこの例
では、ディスク0上のストライプ0のセグメント0に記
憶されているデータは、複製されて、ディスク1上のス
トライプ0のセグメント0'に記憶される。同様に、デ
ィスク2のストライプ2のセグメント5に記憶されてい
るデータは、ディスク3のストライプ2のセグメント
5'に記憶される。このようにして、各データは複製さ
れディスク上に記憶される。図2の冗長のレイアウトは
説明の目的で図示したものである。冗長データを同じス
トライプに、図示したように、きちんと並べる必要はな
い。たとえば、ディスク0のストライプ1のセグメント
2のデータは複製されて、ディスク3のストライプSの
セグメントT'に置くことができる。
【0025】図1を再び参照すると、ディスク24のパ
リティ・グループ22は、第2の記憶位置すなわちRA
ID区域を表し、データは第2の冗長レベル、たとえば
RAIDレベル5にしたがって記憶される。図に例とし
て示した6個のディスクでは、元のデータは5個のディ
スク30に記憶され、冗長"パリティ"データは6番目の
ディスク32に記憶される。
【0026】図3にパリティRAID区域のレイアウト
を詳しく示す。図2のミラーRAID区域のレイアウト
と同様に、ディスク0、1、2、3の物理的記憶空間
は、複数の同じ大きさのストライプに構成される。例と
して示したこの図では、データはRAIDレベル5にし
たがって記憶され、冗長データはPで表したセグメント
に記憶される。冗長Pセグメントは、ストライプの中の
その他のセグメントのパリティを記憶する。たとえば、
ストライプ0において、ディスク3上の冗長Pセグメン
トは、ディスク0、1、2のパリティを記憶する。各ス
トライプのパリティは、たとえば、排他的OR関数のよ
うな、ある関数によって計算される。最初の4つのスト
ライプのパリティは次のように表され、下付き数字は対
応するストライプを表す。
【0027】
【数1】 パリティ冗長は、ディスクの1つで使用不可能になった
データの再生を可能にする。たとえば、セグメント5の
データが使用できなくなったとき、その内容は、セグメ
ント3および4、および、セグメントPのパリティ・デ
ータから確かめることができる。パリティ記憶はミラー
記憶よりも費用はかからないが、信頼性はより低く性能
も低い。
【0028】図1に示したディスク配列は概念を示す目
的のものである。実際には、ディスクアレー11は、ミ
ラーおよびパリティ冗長にしたがってデータを記憶する
ことができる複数のディスク12を単に持つだけであ
る。全てのディスク12によって提供される使用可能な
記憶空間のうち、その記憶空間の1部がミラー冗長に割
り当てられ、別の1部がパリティ冗長に割り当てられ
る。ディスク12は複数の同じ大きさの記憶領域(図4
の番号35で表すような)を含むように構成され、個々
の領域が複数のセグメントを持つようにするのが望まし
い。領域は、記憶空間の1つの仮想ビューの中にRAI
D区域を形成するようにまとめられる。さらに、RAI
D区域およびデータ冗長記憶手法がユーザまたはホスト
に透明(トランスペアレント:transparent)になるよ
うに、記憶空間の別の(ホストによって定義された)ビ
ューがユーザまたはホストに提示される。これらの特徴
については、図4を参照して以下に詳しく述べる。
【0029】データ記憶装置10は、ミラー記憶方法お
よびパリティ記憶方法の間のデータの"移行"(migratio
n)を管理する。両タイプの冗長性の管理はRAID管
理装置16(図1)によって調整される。RAID管理
装置16は、ディスクアレーの中の2つの異なった型の
RAID区域を、ミラーRAID区域がパリティRAI
D区域に対してキャッシュとしてはたらくのと同様なメ
モリ階層として管理する。RAID管理装置16は、定
義された性能プロトコルにしたがって、ミラーRAID
区域とパリティRAID区域との間のデータをシフト
し、組織し、その他の方法で管理する。ミラーRAID
区域とパリティRAID区域との間のデータ移動の処理
は"移行"と呼ばれる。
【0030】データ記憶装置10は、最高の性能および
信頼性がもたらされるように、性能により厳しいデータ
をミラーRAID区域に置くように努める。RAID管
理装置16によって具体化される性能プロトコルは、2
つの望ましい移行方針のうちのどちらかを含む。第1の
移行方針は"アクセス頻度"と呼ばれ、この方針にしたが
って、階層ディスクアレー上の最も頻繁にアクセスされ
るデータがミラーRAID区域18に維持される。アク
セス頻度の低いデータはパリティRAID区域22に維
持される。"アクセスの最近性"と呼ばれる第2の移行方
針にしたがって、最も最近にアクセスされたデータはミ
ラーRAID区域18に維持され、アクセスの最近性の
低いデータはパリティRAID区域22に記憶される。
この他の性能プロトコルを使用することもできる。その
ようなプロトコルは、具体的なコンピュータ・アプリケ
ーション、およびユーザのニーズに基づいて定義するこ
とが理想的である。
【0031】さらに、RAID管理装置16は、2つの
パラメータの関数、すなわち物理的記憶容量の大きさ、
およびデータ記憶装置に記憶されているユーザデータの
現在量にしたがって、データ記憶装置の記憶資源を自動
的に"調整"する。最初は全てのデータがミラーRAID
区域に記憶される。これによって最高の性能および信頼
性が得られるからである。より多くのデータがデータ記
憶装置に加えられるにつれて、性能および信頼性を最適
化するために、ミラーRAID区域とパリティRAID
区域との間でデータの移行が行われる。データ記憶装置
が満杯に近づくにしたがい、冗長性を通して信頼性を提
供しながらユーザの要求をすべて満たすようにするため
に、いっそう多くのデータがパリティRAID区域に移
行される。したがって、本発明によるデータ記憶装置は
最大の融通性と適応をもたらす。この装置は、特定の記
憶方法をユーザが選択する必要はないが、ユーザからの
どんな要求をも満たすように適応できる。
【0032】図4に、データ記憶装置10の使用可能な
記憶空間のメモリ・マッピングを、マッピングされた仮
想記憶空間の複数の層として示す。図の垂直に延びた矩
形のそれぞれは、物理的記憶空間のビューを表す。この
図において、物理的記憶空間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メガバイトである。
【0033】ディスクの記憶空間は、物理的記憶空間3
4の第1の中間的な、RAIDレベル仮想ビュー40に
マッピングされる。この第1仮想ビューは、概念的に
は、連続的にアドレス可能な記憶空間を表す第2のアプ
リケーション・ビューにマッピングすることができる1
組のRAID区域である。記憶空間の物理的な構成およ
びRAIDビューはアプリケーション・ビューからは隠
れている。
【0034】RAID区域の記憶空間40は、ミラーお
よびパリティ記憶空間を区別する記憶のビューである。
たとえば、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の
上にマッピングすることができる。
【0035】ミラーおよびパリティRAID区域は、デ
ィスクアレーの記憶空間34の全体を使いきる場合とそ
うでない場合とがある。したがって、あるアプリケーシ
ョンの間、特定のRAID区域に対応しない、未使用で
未指定の記憶空間がある場合がある。しかし、そのよう
な記憶空間は、ミラーまたはパリティRAID区域のど
ちらにも変換することができる。また、RAID区域
は、ディスクアレー上の連続した区域にマッピングさ
れ、RAID区域に関連する領域のそれぞれは各記憶デ
ィスク上の同じ物理アドレスに置かれるものとして図示
してあることに留意されたい。代替方法として、RAI
D区域はディスクアレー上の不連続な区域にマッピング
することもできる。
【0036】RAID区域で使用可能な記憶空間は、ユ
ーザまたはホスト・アプリケーション・プログラムによ
って定義され、ユーザまたはホスト・アプリケーション
・プログラムに提示される記憶のビューである第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つ(すなわちミラーおよびパリティ)の型
がある。
【0037】RAID管理装置16は、物理的記憶空間
全面にわたるRAID区域の構成を動的に変更できる。
各型のRAID区域の数は、装置に記憶されつつあるユ
ーザデータの量および物理的なディスク記憶空間の大き
さに応じて増減される。その結果、RAIDレベル仮想
ビュー40の中のRAID区域のディスク上へのマッピ
ング、および、前面仮想ビュー50のRAIDビュー4
0へのマッピングは常にその状態が変化している。NV
RAM21aおよび21b(図1)のメモリマップ記憶
装置は、RAID管理装置16がRAID区域をディス
ク上にマッピングするために使う最新のマッピング情
報、および、2つの仮想ビュー間のマッピングに用いら
れる情報を維持している。RAID管理装置は、RAI
Dレベルのマッピングを動的に変更するのに応じて、そ
の変更を反映するためにメモリマップ記憶装置のマッピ
ング情報も更新する。
【0038】図1ないし4を参照して、データ記憶装置
10の移行動作について以下に述べる。
【0039】説明を続ける目的のために、アプリケーシ
ョン・レベル仮想記憶空間50の仮想ブロック53は、
物理的記憶空間34の区域A1に記憶されているパリテ
ィRAID区域44の中の関連する割り当てブロック4
5を参照する。そのような仮想ブロック53は"パリテ
ィ仮想ブロック"と呼ばれ、関連する割り当てブロック
45は"パリティ割り当てブロック"と呼ばれる。同様
に、仮想ブロック52は、物理的記憶空間34の区域A
0に記憶されているミラーRAID区域42の中の関連
する割り当てブロック43を参照する。そのような仮想
ブロック52は、"ミラー仮想ブロック"と呼ばれ、関連
する割り当てブロック43は"ミラー割り当てブロック"
と呼ばれる。
【0040】一般的に、データを1つのRAID区域か
ら別のRAID区域に移行するためには、第1のRAI
Dレベル型(たとえば、ミラーすなわちレベル1)の割
り当てブロックに関連した仮想ブロックが選択される。
次に、第2のRAIDレベル型(たとえば、パリティす
なわちレベル5)を表す、未使用の割り当てブロックが
探される。未使用の割り当てブロックが見つからなけれ
ば、割り当てブロックが作られる。次に、データが、選
択された仮想ブロックに以前関連していた割り当てブロ
ックから、未使用の割り当てブロックに転送され、デー
タは冗長レベルの変更を受ける。たとえば、以前ミラー
冗長にしたがって記憶されていたデータは、あらたにパ
リティ冗長にしたがって(またはその逆)記憶される。
最後のステップとして、アプリケーション・レベル仮想
記憶空間50のRAIDレベル仮想記憶空間40へのマ
ッピング54は、データのシフトを反映するために修正
され更新される。第1のRAIDレベル型の割り当てブ
ロックに以前関連していた選択された仮想ブロックは、
こんどは、更新されたポインタを介して、移行されたデ
ータを含む第2のRAIDレベル型の割り当てブロック
を参照する。この処理中に起こるマッピング変更はメモ
リマップ記憶装置21の中で更新される。
【0041】以下に、本発明の方法およびシーケンスに
したがった、ミラーおよびパリティ記憶区域の間のデー
タの移行について説明する。パリティ記憶区域からミラ
ー記憶区域へデータを移行するために、次のシーケンス
が使われる。 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に移動している。
【0042】未使用のミラー割り当てブロックが見つか
らなかった場合(上記のステップ1)、RAID管理装
置は、3つの手法からなる次のシーケンスを試みる。先
ず、RAID管理装置は、未使用(したがって未指定)
のRAID区域を見つけることを試みる。このRAID
区域は、移行が常に進行できることを保証するのに必要
な未使用のRAIDレベル記憶のシステムしきい値を犯
すことなく、ミラーRAID区域に変換できるものであ
る。これが失敗し、装置が未使用のRAIDレベル記憶
の予備量以上を持っている場合、装置は、未使用のパリ
ティ割り当てブロックを未使用のRAID区域に集める
ために、パリティ記憶内のデータを移行する。この移行
により、上記のようにミラーRAID区域に変換できる
未使用のRAID区域が生じる場合、装置は未使用のR
AID区域をミラーRAID区域に変換する。そうでな
い場合、代替方法として、未使用のミラー割り当てブロ
ックを求めるため、または、未使用のRAID区域をミ
ラーRAID区域に変換するのに十分な未使用のRAI
Dレベル記憶を増やすまで、装置はデータをミラーから
パリティ記憶に移行し、ミラー記憶を詰め、未使用のR
AIDレベル記憶をパリティに変換する。ミラー割り当
てブロックはパリティ割り当てブロックよりも多くの物
理的記憶空間を占めるので、この最後の方法は、未使用
のRAIDレベル記憶装置の純増につながる。
【0043】未使用のミラー割り当てブロックを求めて
確立するために使われる作成/変換のプロトコルは、ユ
ーザデータの量および物理的記憶空間の大きさに応じ
て、RAID管理装置がパリティ区域とミラー区域との
間のメモリ割り当てを選択的に調節できるので、利点が
ある。RAID管理装置は、データ使用および記憶容量
が変化するにしたがい、ミラー記憶に保持されるデータ
量が最大になるように、上記の1つまたは複数の手法を
用いる。
【0044】RAID管理装置は、空き時間(アイドル
タイム)中に未使用のRAID区域を作ることにより、
空間作成シーケンスが未使用のミラー割り当てブロック
を生じる間、記憶要求が待たなければならない状況を避
けるように試みる。しかし、ある状況においては、空間
作成シーケンスの間、記憶要求が中断される場合があ
る。RAID管理装置は、仮想空間がRAIDビューよ
り小さくなるような方法で仮想ブロック記憶空間を構成
する。これにより、少なくとも1つのRAID区域に等
しい空き空間が、移行またはその他の目的のためにとっ
て置かれることが保証される。このようにして、この手
法のシーケンスにより未使用のミラー割り当てブロック
が常に生じる。
【0045】ミラーからパリティ記憶にデータを移行す
るために、次のシーケンスが使われる。 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つの
異なる冗長レベルの間のデータの移行を行うために、本
発明による記憶装置がどのように動作するかの例を提供
している。
【0046】データは、データアクセスの最近性または
データアクセスの頻度の2つの移行方針のどちらかを使
って、パリティRAID区域とミラーRAID区域との
間で移行される。一般的な動作において、本発明による
データ記憶装置は、最も古い、または最もアクセス頻度
が少ない仮想ブロックを、ミラー記憶からパリティ記憶
に移行する。逆に、最も新しい、または最もアクセス頻
度が高い仮想ブロックを、パリティ記憶からミラー記憶
に移行することは有用である。データ記憶装置の仕事の
1つは、移行するのにふさわしい仮想ブロックを選択す
ることである。
【0047】本発明では、選択処理を助けるために、仮
想ブロックに単調に増加するマークがつけられる。移行
方針がアクセスの最近性である場合、仮想ブロックに、
データがその仮想ブロックにいつ記憶されたかを示すタ
イムスタンプがつけられる。タイムスタンプは、ディス
クアレー制御装置14の中の、約1分毎(ある具体化で
は65.5秒毎)に増加的に時間刻み(チック:tick)を出
力するカウンタによって生成されるのが望ましい。それ
によって、カウンタは、そのような記憶ブロックにマー
クをつける適切な手段を形成する。その他の手段も、こ
の代わりに使うことができる。アクセス頻度の場合、仮
想ブロックに、その仮想ブロックのデータがアクセスさ
れた回数を示す頻度スタンプがつけられる。頻度スタン
プは、対応する仮想ブロックがアクセスされる度に1増
える整数値である。
【0048】データ移行にふさわしい仮想ブロックを見
つける1つの単純な手法は、第2仮想記憶空間50全体
をタイムスタンプまたは頻度スタンプでソートすること
である。ソートすることによって、パリティRAID区
域とミラーRAID区域との間の移行のための、最も古
い/最も新しい、またはアクセス頻度が最も少ない/最
も多い仮想ブロックが得られる。しかし、この手法は、
仮想ブロック全体をソートするのにかなりのメモリ資源
および処理時間がかかるので、あまり好ましくない。ソ
ート手法の欠点は、ユーザデータが増えるにしたがい、
いっそう顕著になる。処理時間は、ソートされる仮想ブ
ロックの数の非線形関数であり、ブロックの数が増える
にしたがい処理時間はいっそう長くなる。
【0049】第2の手法すなわち本発明によるいっそう
好ましい手法は、全面的なソートに頼らずに、適切な仮
想ブロックを統計的に選択することである。この手法に
したがい、仮想ブロックをタイムスタンプまたは頻度ス
タンプの観点から統計的に特徴づけるために、RAID
管理装置16によって1つまたは複数の度数分布表が作
られる。次に、より古い/より新しい仮想ブロック、ま
たはアクセス頻度がより少ない/より多い仮想ブロック
を、仮想ブロックの残りの母集団から区分するスタンプ
しきい値を特定するために、度数分布表が処理される。
ある区分スタンプしきい値が特定されると、その区分に
入る十分な数の仮想ブロックが見つかるまで、アプリケ
ーション・レベル仮想記憶空間がすばやく探索される。
探索はそこで終わる。見つけられた仮想ブロックの中の
データは、たとえば他の割り当てブロックへの移行のよ
うな所望の機能を実行するために処理される。統計的な
選択手法は、メモリの使用および処理時間を最適化する
ので、全体をソートする手法よりも好ましい手法であ
る。
【0050】図5ないし12に、本発明の階層データ記
憶装置における度数分布表の種々な使用、作成および維
持を示す。これらの側面および対応する新方法について
は、図10ないし12の流れ図を参照して説明する。本
明細書で説明する方法は、RAID管理装置16のファ
ームウェアとして具体化されるのが望ましい。
【0051】図10は、初期化処理を示す。最初のステ
ップ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レ
ベルにしたがって仮想ブロックに記憶される。
【0052】ステップ104で、RAID管理装置は、
1つまたは複数の度数分布表を作る。RAID区域のそ
れぞれの型(タイプ)に対して、1つの度数分布表が作
られるのが望ましい。度数分布表は、ディスクアレー制
御装置14の揮発性RAMに形成され、装置の初期化の
度に作りなおされるのが望ましい。代替方法として、度
数分布表は、ディスクアレー制御装置14のメモリマッ
プ記憶装置21のNVRAMに常駐させることもでき
る。装置の初期化毎に表を作りなおすことに時間がかか
ることが予見される場合、NVRAMで具体化すること
が望ましい。これらの表の側面については、図5および
6を参照して詳しく述べる。
【0053】図5は棒グラフの度数分布表60を示し、
図6は同じ表を概念化したメモリのかたちで示す。度数
分布表60は、データ記憶装置に記憶されたデータを、
予定の分布基準にしたがって統計的に特徴づける。2つ
の望ましい分布基準は、データアクセスの最近性または
データアクセスの頻度である。度数分布表は、第2仮想
記憶空間50の仮想ブロックのレベルで特徴づけを行
う。したがって、表は、ユーザデータを記憶するために
使用される仮想ブロックについての統計的情報を含む。
【0054】度数分布表60は、固定数の区間で区切ら
れるのが望ましい。区間の数は、図5および6に示すよ
うに、たとえば10である。区間は総称的に1〜10と
ラベルをつけてあるが、しかし実際には、そのような区
間は、始めの境界値から終わりの境界値までの範囲の値
で構成される。分布基準がアクセスの最近性である場
合、区間は時間の範囲で表され、各区間は、仮想ブロッ
クにつけられたタイムスタンプの範囲をカバーする。区
間の1つの例は、1024個のタイムスタンプからな
り、スタンプあたり65.5秒で、これで約1日の時間の中
で使われる仮想ブロックのすべてがカバーできる。分布
基準がアクセス頻度である場合、区間は頻度値で表さ
れ、各区間は、仮想ブロックにつけられた頻度スタンプ
の1つの範囲をカバーする。アクセス頻度方法の下での
種々の区間およびカウントは、どのくらい活発にユーザ
がデータをアクセスするかに依存する。
【0055】度数分布表は、各区間内に起こる仮想ブロ
ックの数を含む。これは、図5の垂直の棒および関連す
る数で表されている。たとえば、32個の仮想ブロック
が、区間1の範囲内に落ちるタイムスタンプまたは頻度
スタンプを持っている。48個の仮想ブロックが、区間
2の範囲内に落ちるタイムスタンプまたは頻度スタンプ
を持っている。以下同様。表は、また、母集団全体を規
定するために、仮想ブロックの累積度数すなわち全体数
を作表する。この例の場合、母集団は566個の仮想ブ
ロックからなる。
【0056】図6において、度数分布表60は、母集団
の数566を記憶する第1フィールド62を含む。表
は、また、母集団列(キュー:queue)64、空き列6
6、および10個の区間フィールド68を含む。母集団
列64は対象としている母集団のための区間要素を維持
し、空き列66は未使用の区間要素を追跡する。区間フ
ィールド68の各々は、関連する区間のカウント(区間
1には32、区間2には48、等々)、始めの境界値、
および区間の大きさを含む。始めの境界値および区間の
大きさから、終わりの境界値は容易に計算できる。
【0057】度数分布表は、装置の初期化中に、アプリ
ケーション・レベル仮想記憶空間に含まれる仮想ブロッ
クを走査することによって作成される。最初、母集団列
64は空で、空き列66は10個の未使用の区間要素を
持っている。10個の区間フィールド68のすべてのカ
ウントおよび始めの境界値は省略時の値すなわちデフォ
ルト値としてゼロに設定される。各区間フィールドの大
きさは、あるデフォルト値、たとえば1024に初期化
される。次に、仮想ブロックのスタンプ(たとえばタイ
ムスタンプまたは頻度スタンプ)に基づいて、表が統計
的に作られる(図10のステップ106)。各区間を満
たす仮想ブロックの数が数えられ、該当するフィールド
68に入力される。
【0058】各仮想ブロックのスタンプは、一致が見つ
かる(図10のステップ107)まで、区間フィールド
68に対して順番に(図6の矢印でしめすように)調べ
られる。たとえば、仮想ブロックが、第3の区間フィー
ルドの区間内に落ちるスタンプを持っていると仮定す
る。仮想ブロックのスタンプは、先ず、第1の区間フィ
ールドの区間に対して評価される。仮想ブロックがこの
区間フィールドの外に落ちるので、次に第2の区間フィ
ールドと比較される。各区間フィールドは、分析を次の
区間フィールドのアドレスに方向づけるためのポインタ
を持っていることに留意されたい。この処理は、仮想ブ
ロックのスタンプが比較され該当する区間フィールドに
一致する(この場合、第3の区間フィールド)までフィ
ールド毎に続けられ、一致したとき、その区間フィール
ドのカウントが増やされる(図10のステップ10
8)。未使用の仮想ブロックは関連するスタンプを持っ
ていないので、度数分布表に表されないことに留意され
たい。最初と最後の区間ポインタ値を維持することによ
り、母集団列64は、最初と最後の区間フィールド68
を見つけてそれを指すことが容易にできる。
【0059】仮想ブロックが走査され、統計的情報がと
られるにしたがい、母集団列64は満ち始め、空き列6
6は空になり始める。表が各区間にカウントを持つと、
空き列は空になる(空き列のヌルまたは接地記号で表さ
れている)。2つ以上の表が必要な場合(以下に詳しく
述べるように)、同じ走査ステップ中に同時に作成する
ことができることに留意されたい。
【0060】度数分布表が作成されると、それは直ぐ使
うことができる。図11および図12の流れ図は、度数
分布表を使用する望ましい動作モードを示す。度数分布
表を使用するその他の動作も可能である。第1のモード
すなわちホストアクセス動作モードは、ユーザが既存ま
たは新しい仮想ブロックをアクセスすると、表を更新す
るものである。第2のモードすなわち移行動作モード
は、RAID区域間の移行のために使用する仮想ブロッ
クを識別するために表を区分し、度数分布表を更新する
ことに関する。
【0061】図11は、ユーザデータを記憶するために
既存または新しい仮想ブロックが使われるときに表が絶
え間なく更新される、ホストアクセス動作モードを示
す。ステップ109で、先ず、ユーザが既存の仮想ブロ
ックをアクセスしているのか、新しい仮想ブロックを作
っているのかどうかが判断される。ユーザが既存の仮想
ブロックをアクセスしている(ステップ109がNO)
場合、既存の仮想ブロックに新しいスタンプがつけられ
る。新しいスタンプを反映するために度数分布表が更新
される。これは、古いスタンプを持っている区間のカウ
ントを減らし(ステップ110)、ステップ111の後
で、新しいスタンプを持っている区間のカウントを増や
すことによって行われる。
【0062】図7は、既存の仮想ブロックがアクセスさ
れるときの表の更新の処理を示す。区間6の範囲のタイ
ムスタンプを持つ仮想ブロックがアクセスされたと仮定
する。新しい、最も最近のタイムスタンプが仮想ブロッ
クにつけられる。単調に増加するスタンプを持つことの
1つの重要な利点は、最も最近/最も頻繁にアクセスさ
れた仮想ブロック、および最も古く/最も少なくアクセ
スされた仮想ブロックが最初および最後の区間に置かれ
ているので、装置がこれらの仮想ブロックを見つけて処
理することが容易であることである。したがって、最も
最近のタイムスタンプは、予想通り、区間10の範囲内
に落ちる。度数分布表60は、区間6のカウントを1
(80から79に)減らし、区間10のカウントを1
(76から77に)増やすことによって更新される。
【0063】図11を参照すると、仮想ブロックが新し
い(ステップ109がYES)場合、分析は図11の判
断ステップ111に進み、新しい仮想ブロックが表の範
囲内の既存の区間に一致するかどうかが決められる。仮
想ブロックにスタンプをつけるのに単調な性質があるこ
とにより、仮想ブロックは、単に、表の最後の区間と比
較される。新しい仮想ブロックが最後の区間に一致する
(判断ステップ111がYES)場合、最後の区間に関
連するカウントが増やされる(ステップ112)。たと
えば、仮想ブロックが区間10の範囲に落ちるタイムス
タンプを持っている場合、区間10のカウントは76か
ら77に増やされる。他方、仮想ブロックが、最後の区
間のどれも満たさないスタンプを持っている(判断ステ
ップ111がNO)場合、RAID管理装置はすばやく
空きの区間があるかどうかを調べる(ステップ11
3)。この状況は、最後の仮想ブロックの度数分布を表
すのに、設定した区間の数(この例では10区間)より
少ない数が使われた場合に起こる。空きの区間がある
(ステップ113がYES)場合、ステップ116で、
新しい最後の区間が、新しい仮想ブロックを含むように
規定される。
【0064】空きの区間がない(ステップ113がN
O)場合、増加する分布範囲を収めるために、新しい区
間が作られなければならない。度数分布表は固定した数
の区間で区切られているので、新しい区間を作るには、
度数分布表を若干調整する必要がある。RAID管理装
置は、単に新しい区間を加えることはせず、先ず、新し
い区間を収容するために、表の内部に余裕を作る。
【0065】図8は、新しい区間を生成する処理を示
す。RAID管理装置は、新しい接合された区間を形成
するために、先ず、隣接する区間を組み合わせる(図1
1のステップ114)。新しい接合区間は、接合された
2つの区間のカウントの和に等しいカウントを持つ。隣
接する2つの区間は、それぞれのカウントを合わせたと
きに最小のカウントになるようなものを選ぶのが望まし
い。図8において、表60'の新しい区間2を形成する
ために、区間2および3が接合される。新しい区間2の
カウントは76(48+28=76)である。
【0066】この処理により、新しい最後の区間(たと
えば、新しい最後の区間10)を規定する(図11のス
テップ116)ために、度数分布表の空間を空ける。次
に、新しい仮想ブロックを反映するために、新しい最後
の区間のカウントが増やされる(ステップ118)。表
60'において、新しい仮想ブロックが新しい最後の区
間に一致し前の区間に一致しなかったことを統計的に示
すために、新しい最後の区間10がカウント1を持って
いる。この接合処理を通して、度数分布表は定められた
区間の数で区切られたまま残り、扱い易く、その中の統
計的情報は正確に維持される。
【0067】上述したように、本発明の具体化では、各
RAIDレベルに対して1つの度数分布表が作られる。
階層ディスクアレーがRAIDレベル1および5を使う
場合、RAIDレベル1のミラーRAID区域に関連す
る仮想ブロックに対して第1の度数分布表が作られ、R
AIDレベル5のパリティRAID区域に関連する仮想
ブロックに対して第2の度数分布表が作られる。3つ以
上のRAIDレベルが使われる場合、それに対応する3
つ以上の度数分布表が作られる。このメモリ配列の1つ
の使用例は、"中くらいに古い"(middle-aged)仮想ブ
ロックを、その特定のデータに最もふさわしい性能特性
を持つ記憶レベルに移行することである。
【0068】図9に、2つの度数分布表60および70
を示す。上部に示した表60は、RAIDレベル1の記
憶に関連した仮想ブロックを特徴づけるために使われ
る。下部に示した表70は、RAIDレベル5の記憶に
関連した仮想ブロックを特徴づけるために使われる。
【0069】図9は、また、異なるRAIDレベルの移
行が度数分布表に与える影響を示す。移行のために表を
使う方法は、図12の移行動作モードに示される。この
例の目的のために、図9の表はデータアクセスの最近性
の分布基準に基づいており、区間は時間で表されてい
る。RAID管理装置16が、新しいデータにミラー記
憶空間を空けるために、"より古い"仮想ブロックをミラ
ー記憶からパリティ記憶に移行したいと仮定する。この
場合、ミラーRAID区域はデータ移行のための移行源
RAID区域として動作し、パリティRAID区域は移
行先RAID区域として動作する(図12のステップ1
20)。
【0070】RAID管理装置は、先ず、表60の中の
仮想ブロックの母集団を、それぞれが大体同じ数の要素
を持つ複数の同じ大きさのセグメントに分ける(ステッ
プ122)。たとえば、図9の上部の表60に示すよう
に、RAID管理装置は、母集団を5つのセグメントに
分ける。母集団が566である場合、各セグメントは、
理論的には、およそ113個の仮想ブロックを表す。第
1のセグメントは区間1ないし4にわたる。というの
は、区間1ないし3だけでは、各セグメントのしきい値
113より少ない105個の仮想ブロックしかないから
である。
【0071】次に、RAID管理装置は、第1のセグメ
ントがより古い仮想ブロックを含むので、第1のセグメ
ントを選ぶ(図12のステップ124)。総称的に1な
いし4として参照した時間区間内に落ちるタイムスタン
プを持つ仮想ブロックが、この基準を満たす。RAID
管理装置は、第1のセグメントの最も高い境界値を決め
るが、これは、この例の場合、区間4の終わりの境界時
間値である。終わりの境界時間値は、区間4の始めの境
界時間値をとり、区間4の大きさを加えることによって
計算できる。終わりの境界時間値は、比較のためのしき
い値として使われる。
【0072】次に、RAID管理装置は、実際に1つま
たは複数の仮想ブロックを見つけるために、アプリケー
ション・レベル仮想記憶空間の仮想ブロックを探索する
(ステップ126)。各仮想ブロックのタイムスタンプ
は、その仮想ブロックがしきい時間値よりも早いタイム
スタンプを持ち、したがって第1のセグメントに入れる
べきかどうかを調べるために、しきい時間値と比較され
る。十分な数の仮想ブロックが見つかったところで探索
は止まる。次に、見つかった仮想ブロックは、ミラー記
憶からパリティ記憶に移行される(ステップ128)。
【0073】移行が行われたことを反映するために、2
つの度数分布表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レベルの統計的情報だけが修正される。
【0074】移行は、バッチ的手続きではなく、連続し
た方法で行われるのが望ましいことに留意されたい。し
たがって、基準を満たすブロックが見つかるたびに、ブ
ロック毎に移行が行われ、表が更新される。
【0075】度数分布表を使うことは、全体をソートす
る方法にくらべて、多くの利点をもたらす。統計的手法
は、ソートによる方法よりもはるかに性能がよく、メモ
リ資源の使用もはるかに少ない。母集団を区分化し、仮
想ブロックを識別するための1つのセグメントを選び、
仮想ブロックをすばやく探索する処理方法は、全体をソ
ートする手法とほぼ等しい結果を生じる。この方法は費
用をかけずに、識別判断に基づいた選択を可能にするの
で、この仕事は、効率よく費用効果のよい方法で達成で
きる。さらに、この処理は、特定されたセグメントに十
分な数の仮想ブロックが見つかり次第止めることができ
る。より早く止めることにより、途中で断ち切られた時
間は、一般的に、全体をソートする時間よりもはるかに
少ない。
【0076】もう1つの利点は、全体をソートする手法
の非線形関数と異なり、処理時間は、探索する仮想ブロ
ックの数の線形関数であることである。したがって、デ
ィスクアレーに記憶されているユーザデータの量に関
し、より古い/より新しい仮想ブロック、および最近ア
クセスされない/最近アクセスされた仮想ブロックがよ
りすばやく識別される。
【0077】また、統計的度数分布表は、異なる型の記
憶装置の間を移動させるデータを選ぶのに使うこともで
きる。例として、データ記憶装置が、たとえばリールか
らリールのテープ記憶装置のようなバックアップ記憶機
構をさらに備えている場合、ディスクアレーからバック
アップ記憶機構にデータを移すために、"非常に古い"
(ancient)記憶ブロックを選ぶのに統計的度数分布表
を使うことができる。
【0078】本発明には、例として次のような実施態様
が含まれる。 (1)物理的記憶空間を複数の仮想ブロックからなる母
集団として表す仮想記憶空間にマッピングされた物理的
記憶空間(34)を規定する複数の記憶ディスク(1
2)を持つデータ記憶装置(10)のデータを選択する
方法であって、個々の区間が、関連する区間に対する分
布基準を満たす仮想ブロックの数のカウントを持つ選択
された数の区間を有する、前記データ記憶装置(10)
上に記憶されたデータを予定の分布基準にしたがって特
徴づける度数分布表(60)を作成するステップと、母
集団のサブセットである仮想ブロックの選択基準を特定
するために前記度数分布表(60)を区分するステップ
と、前記選択基準を満たす1つまたは複数の仮想ブロッ
クを見つけるために、仮想記憶空間の中の仮想ブロック
を探索するステップと、を有する方法。
【0079】(2)仮想ブロックにデータがいつ記憶さ
れたかを示すタイムスタンプを仮想ブロックにつける付
加ステップをさらに有し、前記予定の分布基準がデータ
アクセスの最近性で、区間が時間の範囲であり、時間区
間に関連するカウントがその時間区間の範囲のタイムス
タンプを持つ仮想ブロックの数を表す、上記(1)に記
載の方法。 (3)仮想ブロックの中のデータがアクセスされた回数
を示す頻度スタンプを仮想ブロックにつける付加ステッ
プをさらに有し、前記予定の分布基準がデータアクセス
頻度で、区間が頻度値に関連し、区間に関連するカウン
トがそれぞれの区間の範囲の頻度値を持つ仮想ブロック
の数を表す、上記(1)に記載の方法。 (4)新しい仮想ブロックが使われるときに前記度数分
布表(60)を更新するステップをさらに有し、前記更
新ステップが、(1)新しい仮想ブロックが既存の区間
に対する分布基準を満たす場合、その既存の区間に関連
するカウントを増やすステップ、または(2)新しい仮
想ブロックが既存の区間に対する分布基準を満たさない
場合、新しい区間を作り、その新しい区間に最初のカウ
ントを入れるステップのどちらかを有する、上記(1)
に記載の方法。 (5)新しい区間を生成する前記ステップが、接合され
る複数の区間のカウントの和に等しいカウントを持つ1
つの接合区間を規定するために、前記度数分布表(6
0)の中の2つ以上の区間を接合するステップと、前記
新しい仮想ブロックをカバーするために分布基準を延ば
す新しい区間を規定するステップと、を有する、上記
(4)に記載の方法。 (6)既存の仮想ブロックがアクセスされるときに度数
分布表(60)を更新する付加ステップをさらに有し、
前記更新ステップが、アクセスされる前に既存の仮想ブ
ロックが分布基準を満たした区間のカウントを減らし、
アクセスされた後に既存の仮想ブロックが分布基準を満
たした別の区間のカウントを増やす、上記(1)に記載
の方法。
【0080】(7)物理的記憶空間(34)を規定する
複数の記憶ディスクを持つ階層データ記憶装置の中で移
行を行うためにデータを選択する方法であって、物理的
記憶空間が、物理的記憶空間を異なる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)に記載の方法。
【0081】(9)物理的記憶空間(34)を規定する
複数の記憶ディスク(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)に記載の
データ記憶装置。
【0082】
【発明の効果】度数分布表を用いて、データアクセスの
最近性または頻度によりデータを選択し移行することに
より、階層データ記憶装置の性能および信頼性が最適化
できる。
【図面の簡単な説明】
【図1】本発明によるディスクアレー・データ記憶装置
を示すブロック図。
【図2】複数の記憶ディスク上の記憶空間、および、R
AIDレベル1によるデータ記憶を示す図。
【図3】複数の記憶ディスク上の記憶空間、および、R
AIDレベル5によるデータ記憶を示す図。
【図4】1つの物理的記憶空間に関して2つの仮想記憶
空間がマッピングされている、本発明によるメモリマッ
プ配列を示す図。
【図5】本発明による、棒グラフで表した度数分布表を
示す図。
【図6】図5の度数分布表を、ポインタをつけた具体化
の形で表し、表がどのように作成されるかを示す図。
【図7】既存の仮想ブロックをアクセスした結果、図5
の度数分布表の更新を示す図。
【図8】一定の数の区間で区切られた度数分布表に新し
い区間を生成する手法を示すために、2つの区間を接合
する前の図5の表、および、2つの区間を接合した後の
同じ表を示す図。
【図9】図5と同じRAIDレベル1の度数分布表、お
よびRAIDレベル5の度数分布表を示し、2つのRA
IDレベルの間でデータを移行したことによる、表に与
える影響を示す図。
【図10】本発明の階層データ記憶装置で使用される度
数分布表を初期化する方法を示す流れ図。
【図11】本発明による、ホストアクセス動作モードで
度数分布表を使用する方法を示す流れ図。
【図12】本発明による、移行動作モードで度数分布表
を使用する方法を示す流れ図。
【符号の説明】
10 データ記憶装置 11 階層ディスクアレー 12 記憶ディスクまたはディスク駆動装置 13 インターフェース・バス(SCSIバ
ス) 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】物理的記憶空間を複数の仮想ブロックから
    なる母集団として表す仮想記憶空間にマッピングされた
    物理的記憶空間を規定する複数の記憶ディスクを持つデ
    ータ記憶装置のデータを選択する方法であって、 個々の区間が、関連する区間に対する分布基準を満たす
    仮想ブロックの数のカウントを持つ選択された数の区間
    を有する、前記データ記憶装置上に記憶されたデータを
    予定の分布基準にしたがって特徴づける度数分布表を作
    成するステップと、 母集団のサブセットである仮想ブロックの選択基準を特
    定するために前記度数分布表を区分するステップと、 前記選択基準を満たす1つまたは複数の仮想ブロックを
    見つけるために、仮想記憶空間の中の仮想ブロックを探
    索するステップと、 を有する方法。
JP21710595A 1994-10-26 1995-08-25 データ記憶装置のデータを選択する方法 Expired - Fee Related JP3715000B2 (ja)

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)

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

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

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

Cited By (1)

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