JPH0863394A - 記憶装置システムおよび記憶装置の制御方法 - Google Patents

記憶装置システムおよび記憶装置の制御方法

Info

Publication number
JPH0863394A
JPH0863394A JP6193966A JP19396694A JPH0863394A JP H0863394 A JPH0863394 A JP H0863394A JP 6193966 A JP6193966 A JP 6193966A JP 19396694 A JP19396694 A JP 19396694A JP H0863394 A JPH0863394 A JP H0863394A
Authority
JP
Japan
Prior art keywords
data
record
storage area
parity
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6193966A
Other languages
English (en)
Other versions
JP3687111B2 (ja
Inventor
Akira Yamamoto
山本  彰
Yasutomo Yamamoto
康友 山本
Hisaharu Takeuchi
久治 竹内
Takao Sato
孝夫 佐藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP19396694A priority Critical patent/JP3687111B2/ja
Priority to US08/511,731 priority patent/US5734813A/en
Priority to DE69519350T priority patent/DE69519350T2/de
Priority to EP95112951A priority patent/EP0702301B1/en
Publication of JPH0863394A publication Critical patent/JPH0863394A/ja
Application granted granted Critical
Publication of JP3687111B2 publication Critical patent/JP3687111B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • 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

Abstract

(57)【要約】 【目的】 ディスクアレイにおいて、パリティの更新値
を作成するのに必要な情報を読出す回数、パリティをデ
ィスク装置に書き込む回数を削減する。 【構成】 パリティ生成スケジュール部100は、パリ
ティ生成することにしたパリティグループ1600内に
空いているデータレコード1500があれば、他のパリ
ティグループ1600のパリティ生成の必要なデータレ
コード1500に割り当てている論理レコード1700
を、空いているデータレコード1500に割当てなお
す。この後、最初パリティ生成することにしたパリティ
グループ1600のパリティレコード1501の更新値
を作成し、ディスク装置1304に書き込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機システムに用い
られる記憶装置、特に、ディスクアレイ向きの高機能デ
ィスク装置、および、ディスクアレイ向きの高機能ディ
スク装置と制御装置により構成される記憶装置サブシス
テムに関する。
【0002】
【従来の技術】計算機システムにおいて用いられる記憶
装置として、Patterson等の論文、「ア ケー
ス フォー リダンダント アレイズ オブ インイク
スペンシブ ディスクス」,エー.シー.エム.シグモ
ッド コンファレンス プロシーディング,1988年,6月,
ページ109−116(D.Patterson, et al.:A Case f
or Redundant Arrays of Inexpensive Disks(RAID),ACM
SIGMOD conference proceeding,Chicago,IL,June1-3,1
988,pp.109-116)に開示されているようなディスクアレ
イが知られている。Patterson等の論文には、
特に、ディスクアレイ上でのデータ配置に関する技術が
開示されている。
【0003】ディスクアレイは、ディスクシステムの高
性能化、高信頼化を実現するために開発された機構であ
る。ディスクアレイでは、物理的に複数のディスク装置
を用い、これら複数のディスク装置を処理装置に対して
は1台のディスク装置に見せかけることで高性能化を図
っている。一方、高信頼化のために、データを格納した
ディスク装置の一部に障害が発生した場合、障害が発生
したディスク装置のデータを回復するための冗長データ
を、別のディスク装置に格納しておく。以下の説明で
は、ディスク装置のリード/ライト単位となるデータの
集合をレコードと呼ぶ。レコードの中で、処理装置が直
接読み書きするデータを格納したレコードをデータレコ
ードと呼び、冗長データを格納したレコードをパリティ
レコードと呼ぶ。
【0004】ディスクアレイでは、m個(m≧1)のデ
ータレコードからn個(n≧1)のパリティレコードが
作成される。一般に、これらのm+n個のレコードの集
合をパリティグループと呼ぶ。これらのm+n個のレコ
ードは別々のディスク装置に格納される。通常、パリテ
ィグループ内のパリティレコードの数がn個であれば、
n台までのディスク装置の障害に対してパリティグルー
プ内のデータを回復することが可能である。
【0005】パリティグループ内のデータレコードが書
き替えられた場合には、これに伴いパリティレコードも
書き替える必要がある。パリティグループ内のすべての
データレコードが書き替えられれば、書き変わったデー
タレコードからパリティレコードの内容を作成できる。
しかし、例えば、パリティグループ内の1つのデータレ
コードだけが書き替えられた場合には、書き変えられた
内容と、そのデータレコードの更新前の値、及びパリテ
ィレコードの更新前の値とから、パリティレコードの更
新値が作成される。
【0006】このようなディスクアレイにおけるライト
処理を効率化するための技術として、例えば、PCT
WO 91/20025には、動的マッピングと呼ばれ
る技術が開示されている。この技術では、ライト処理に
よりディスクに格納されているデータを更新する場合、
そのデータを書き込むディスク上の位置が動的に変更さ
れる。具体的には、ライトされたデータだけで、パリテ
ィグループを構成し、これらのデータからパリティデー
タを作成して、ディスクアレイを構成するディスク装置
への書き込みが行なわれる。ただし、以上の処理を実行
するためには、パリティグループ全体を、新たな更新値
の書き込みが可能な状態(このような状態を、本明細書
では、未割当て状態と呼ぶ)にする必要がある。
【0007】また、電子情報通信学会技術研究報告、D
E93−45(茂木他:仮想ストライピングによるRA
ID5型ディスクアレイの性能評価、1993年 9月、信学
会技報Vol.25-No.251、pp.69-75)には、このような動
的マッピングをさらに効率的にした技術が開示されてい
る。本論文により開示される技術では、パリティグルー
プそのもののディスク上の位置を動的に変更するため
に、より効率的にパリティグループ全体を未割当て状態
にすることができる。
【0008】
【発明が解決しようとする課題】上述した、PCT W
O 91/20025や茂木の論文に開示される技術で
は、ディスクアレイのライト処理を効率化するため、ラ
イト処理が発生したデータレコードだけでパリティグル
ープを構成し、これらのデータレコードからパリティレ
コードを作成する。したがって、このようにして新たに
作成されたパリティグループのレコードを格納するため
に、ディスク装置に余分なレコードをいくつか用意して
おき、処理装置からみて最新の更新内容を格納していな
い未割当て状態のレコードだけからなるパリティグルー
プを用意しておく必要がある。このため、パリティグル
ープ全体を未割当て状態にするための処理を、処理装置
からのアクセス要求に対する処理とは非同期に実行して
おく必要がある。しかしながら、従来技術におけるこの
ようなパリティグループ全体を未割当て状態にする処理
は、ディスクアレイの性能をわかりにくいものにしてい
る。
【0009】本発明の目的は、上述したような、動的マ
ッピングの技法を、パリティグループ全体を未割当て状
態にする処理ような特別の処理を行うことなく実現する
ことを可能とし、記憶装置システムにおけるライト処理
の効率化を図る点にある。
【0010】
【課題を解決するための手段】上述した目的を達成する
ために、本発明の記憶装置システムは、処理装置がリー
ド/ライトの対象とする論理的なレコードが割り当てら
れるデータレコードと、障害発生時にデータレコード内
のデータを回復するために用いられるパリティレコード
とでパリティグループを構成し、パリティグループ内の
各データレコード及びパリティレコードをそれぞれ異な
るディスク装置に配置した記憶装置システムにおいて、
パリティグループの中から、それぞれに属するデータレ
コードの状態に応じてパリティレコードの作成を行うべ
きパリティグループを決定し、決定したパリティレコー
ドの作成を行うべきパリティグループに属し、論理レコ
ードに割り当てられていないデータレコードを識別す
る。そして、パリティレコードの作成を行うべきパリテ
ィグループ以外のパリティグループに属するデータレコ
ードに割り当てられている論理レコードであって、その
更新値が前記キャッシュメモリに格納されている論理レ
コードに割り当てるデータレコードを、識別されたデー
タレコードに変更して、パリティレコードの作成を行う
べきパリティグループの新たなパリティレコードを作成
する。その後、パリティレコードの作成を行うべきパリ
ティグループ内のデータレコード及びパリティレコード
を前記ディスク装置のそれぞれに格納するように構成さ
れる。
【0011】より好ましい態様では、上述した各処理
は、処理装置からのライト要求に応じて行われる論理レ
コードの更新値をキャッシュメモリへ格納する処理とは
独立したタイミングで行われる。
【0012】また、パリティグループを決定するステッ
プでは、パリティグループの中で、全てのデータレコー
ドが、論理レコードを割り当てられていない空き状態の
データレコードであるパリティグループを探索し、探索
の結果得られたパリティグループの中からパリティレコ
ードの作成を行うべきパリティグループを決定する。探
索の結果、該当するパリティグループが存在しない場合
には、更新値がキャッシュメモリ内に存在する論理レコ
ードに割り当てられているデータレコードを含むパリテ
ィグループの中から前記パリティレコードの作成を行う
べきパリティグループを決定する。
【0013】さらに、割り当てを変更するステップで
は、その対象となる論理レコードを、パリティレコード
の作成を行うべきパリティグループ内のデータレコード
のディスク装置内での配置位置に対して所定の範囲内に
配置されているデータレコードに割り当てられている論
理レコードの中から決定する。
【0014】
【作用】上述したように、本発明によれば、パリティレ
コードの作成を決定したパリティグループに、論理レコ
ードが割り当てられていないデータレコードがある場合
に、そのデータレコードを他のパリティグループのデー
タレコードに割り当てられている更新値を持つ論理レコ
ードのために割り当てるよう割り当ての変更を行った後
パリティレコードの更新値を作成するので、それぞれの
パリティグループごとに別々にパリティレコードの更新
値を作成する場合に比べ、パリティレコードの更新値作
成のために必要となるディスクのアクセス回数を低減す
ることができる。
【0015】また、パリティグループ内の一部のデータ
レコードに、論理レコードが割り当てられていない未割
当て状態のデータレコードがあれば、そのデータレコー
ドを他のパリティグループのデータレコードが割り当て
られている論理レコードに割り当てるよう割り当ての変
更を行っているので、このような未割り当て状態のデー
タレコードを有効に利用できる。さらに、これにより、
上述した従来技術のように、パリティグループ内のすべ
てのデータレコードを未割当て状態にするような特別な
処理を実行させる必要性をなくすことができる。
【0016】
【実施例】以下、本発明について実施例により詳細に説
明する。
【0017】図1は、本発明の対象となる計算機システ
ムの構成図である。本実施例において計算機システム
は、大きく、処理装置1300、制御装置1305、お
よび、1台以上のディスク装置1304により構成され
る。
【0018】処理装置1300は、CPU1301、主
記憶1302、および、チャネル1303により構成さ
れる。
【0019】制御装置1305は、処理装置1300か
ら発行されるリード/ライト要求にしたがって、処理装
置1300と、ディスク装置1304との間で、データ
の転送処理を実行する。制御装置1305は、1つ以上
のディスク制御プロセッサ1310、キャッシュメモリ
(以下、単にキャッシュと略す。)1308、ディレク
トリ1309、不揮発性メモリ1400、および、不揮
発性メモリ管理情報1401を含む。キャッシュ130
8は、ディスク装置1304に保持されているデータの
中で、アクセス頻度の高いものがロードされる。ディレ
クトリ1309には、キャッシュ1308の管理情報が
格納されている。不揮発性メモリ1400は、不揮発の
媒体であり、キャッシュ1308と同様に、ディスク装
置1304に保持されているデータの中で、アクセス頻
度の高いものがロードされる。不揮発性メモリ管理情報
1401も不揮発の媒体であり、不揮発性メモリ140
0の管理情報を格納する。なお、キャッシュ1308
や、ディレクトリ1309も不揮発化されていてもよ
い。ディスク制御プロセッサ1310は、制御装置13
05内で、処理装置1300が発行したリード/ライト
要求を受取り、キャッシュ1308等を利用し、処理装
置1300と、ディスク装置1304の間で、転送処理
を実行する機能をもつ。なお、制御装置1305は、必
ずしも不揮発性メモリ1400、および、不揮発性メモ
リ管理情報1401を含まなくてもよい。
【0020】本実施例において、制御装置1305は、
処理装置1300からライト要求があった場合、ディス
ク装置1304に書き込むべきデータを、キャッシュ1
308、あるいは、キャッシュ1308と不揮発性メモ
リ1400に格納した段階でその完了を処理装置130
0に通知する。ディスク装置1304へのデータの書き
込みは、その後、制御装置1305が実行する。このよ
うな処理は、ライトアフタ処理と呼ばれる。なお、制御
装置1305には、ディスク制御プロセッサ1310を
複数設けることも可能である。図1において、破線で示
した部分は、例えば、ディスク制御装置1310を2つ
設けた場合の追加の構成を示している。
【0021】通常、処理装置1300がディスク装置1
304を対象として、リード/ライトするデータの単位
は、レコードと呼ばれる。図2は、本実施例におけるレ
コードの考え方をまとめたレコード定義図である。本実
施例では、処理装置1300が制御装置との間でリード
/ライトするレコードを論理レコード1700と呼ぶ。
また、ディスク装置1304上に格納されたレコードを
物理レコード1502と呼ぶ。ディスク装置1304上
に格納されている物理レコード1502には、データレ
コード1500とパリティレコード1501の2種類の
レコードが含まれる。データレコード1500は、処理
装置1300がその処理に利用する論理レコード170
0の内容を格納した物理レコード1502である。一
方、パリティレコード1501は、ディスク装置130
4に障害が発生し、データレコード1500の内容が消
失した時、その消失した内容を回復する処理に用いられ
るレコードである。この場合、データレコード1500
の値が変更されると、これに対応する、パリティレコー
ド1501の内容も変更される。
【0022】図3は、ディスクアレイにおけるパリティ
グループの概念図である。ディスク装置#1からディス
ク装置#mまでのm個のディスク装置1304上に、そ
れぞれ対応するm個のデータレコード1500が格納さ
れている。これらのm個のデータレコード1500か
ら、n個のパリティレコード1501が作成され、それ
ぞれ対応するディスク装置#m+1からディスク装置#
m+nに格納される。したがって、図3に示す例では、
m個のデータレコード1500とn個のパリティレコー
ド1501により、1つのパリティグループ1600が
構成されている。一般に、n個のパリティレコード15
01を含むパリティグループ1600においては、その
パリティグループ1600内のレコード1502が格納
されているm+n個ディスク装置のうち、n台までのデ
ィスク装置1304が故障しても、パリティグループ1
600内のすべてのレコード1502の内容を回復する
ことができる。このように、ディスクアレイを適用する
と、ディスク装置1304の高信頼化を実現することが
できる。
【0023】なお、図3では、ディスク装置#1からデ
ィスク装置#mにデータレコード1500が、ディスク
装置#m+1からディスク装置#m+nにパリティレコ
ード1501が格納されているが、ディスク装置#1か
らディスク装置#mのディスク装置1304に格納する
すべてのレコードを、データレコード1500とする必
要はない。同様に、ディスク装置#m+1からディスク
装置#m+nまでのディスク装置1304上のすべての
レコード1502を、パリティレコード1500とする
必要もない。つまり、別のパリティグループでは、ディ
スク装置#2から#m+1にデータレコード1500を
格納し、ディスク装置#1、及びディスク装置#m+2
から#m+nにパリティレコード1501を格納するよ
うにしてもよい。
【0024】なお、ディスク装置1304の数は、必ず
しもパリティグループ内のレコードの数と対応している
必要はない。例えば、図3に示すように、m+n個のレ
コードでパリティグループが構成される場合に、m+n
台以上のディスク装置を用い、任意のm+n個のディス
ク装置にパリティグループ内のレコードを格納するよう
に構成することもできる。同様に、パリティグループを
構成するレコードの数もm+n個には限定されるもので
はない。
【0025】また、本実施例では、論理レコード170
0を、1つのデータレコード1500に格納しても、1
以上のデータレコード1500に格納してもかまわな
い。
【0026】本実施例では、すべてのデータレコード1
500に格納できるデータの量は、すべての論理レコー
ド1700のデータの量より多いものとする。このた
め、データレコード1500には、論理レコード170
0が割り当てられた状態と、そうでない状態(この状態
を以下未割当て状態と呼ぶ。)が存在することになる。
図4にこの関係を示す概念図を示す。例えば、最初、
「内容a」を持つ論理レコードa1702のために、パ
リティグループa1704に含まれるデータレコードa
1701が割り当てられているとする。ここで、論理レ
コードa1702に対して書き換えが発生し、その内容
が「内容b」になった時、本実施例では、以下に説明す
るように、「内容b」に更新された論理レコードa17
02のために、パリティグループb1705に属するデ
ータレコードb1703を割り当てる場合がある。この
場合、更新前に論理レコードa1702に割り当てられ
ていたデータレコードa1701は、論理レコード17
00が割り当てられていない未割当状態状態になる。た
だし、この場合でも、データレコードa1702に格納
されている内容は、パリティグループa1704に属す
る他のデータレコード1500の内容を復元するために
必要である。このため、データレコードa1701の内
容を単純に別の内容に変更することはできない。つま
り、データレコードa1701に、新たに論理レコード
1700を割り当てる場合には、その内容にしたがっ
て、パリティレコードa1706の値を書き換える必要
が生じる。
【0027】図5は、キャッシュ1308の論理的な構
造を示す構成図である。キャッシュ1308は、複数の
セグメント2000に分割されている。各セグメント2
000には、データレコード1500、パリティレコー
ド1501、論理レコード1700の更新値等のいずれ
かが格納される。また、それぞれのセグメント2000
には、セグメントポインタ2001が設けられている。
セグメントポインタ2001は、未割当状態にあるセグ
メント2000をチェイン上に結合するために用いられ
る。
【0028】不揮発メモリ1400も、特に図示しない
が、論理的にキャッシュ1308と同様の構成を有して
いる。
【0029】図6は、ディレクトリ1309の論理的な
後続を示す構成図である。ディレクトリ1309は、マ
ッピング情報2100、データレコード未割当情報21
01、キャッシュ割当情報2102、セグメント管理情
報2103、空きセグメントキューポインタ2104、
空きセグメント管理情報キューポインタ2105から構
成される。セグメント管理情報2103は、キャッシュ
1308を構成するセグメント2000の数だけ存在す
る。ただし、後述するように、セグメント2000に1
対1に対応しているわけではない。以下、各情報を詳細
に説明する。
【0030】図7は、マッピング情報2100の論理的
な構造を示す構成図である。マッピング情報2100
は、各論理レコード1700が、ディスク装置1304
上のどのデータレコード1500に割当ててあるかを表
している。論理レコードエントリ2200は、各論理レ
コード1700に対応して設けられる情報である。各論
理レコードエントリ2200は、対応する論理レコード
のデータが、ディスク装置1304内のどのデータレコ
ード1500に割り当てられているかを示すデータレコ
ードアドレス2201を含んでいる。本実施例では、各
論理レコードエントリ2200が、1つ以上のデータレ
コードアドレス2201を含んでいるものとする。
【0031】図8は、データレコード割当情報2101
の論理的な構造を示す構成図である。データレコード割
り当て情報2101には、各データレコード1500に
対応したエントリ2300が設けられており、それぞれ
のデータレコードの状態を表している。各エントリ23
00には、対応するデータレコード1500に、論理レ
コード1700が割り当てられているか否かを表す情報
が保持される。
【0032】図9は、キャッシュ割当情報2102の論
理的な構造を示す構成図である。キャッシュ割り当て情
報2102は、各物理レコード、すなわち、ディスク装
置1304上のデータレコード1500、及びパリティ
レコード1501に対応するエントリ2400を有して
いる。各エントリ2400には、対応するデータレコー
ド1500、あるいはパリティレコード1501がキャ
ッシュ1308に格納されているかどうかを表す情報を
保持している。対応するデータレコード1500、ある
いはパリティレコード1501がキャッシュ1308に
格納されていれば、そのエントリ2400には、セグメ
ント管理情報2103へのポインタ(レコード割当ポイ
ンタ)が保持される。一方、対応するデータレコード1
500、あるいはパリティレコード1501がキャッシ
ュ1308に格納されていないエントリ2400には、
ヌル値が格納される。
【0033】図10は、セグメント管理情報2103の
論理的な構造を示す構成図である。セグメント管理情報
2103は、キャッシュ1308の各セグメントを管理
するために、各種の情報を有している。図11に示すよ
うに、セグメント管理情報2103は、本発明に関係す
る情報として、更新前セグメントポインタ2500、更
新後セグメントポインタ2501、ダーティフラグ25
02、バリッドフラグa2503、バリッドフラグb2
504、使用中フラグ2505、及び空きポインタ25
06を有している。なお、図10では、本発明に直接関
係しない情報については、特に図示していない。
【0034】更新前セグメントポインタ2500は、そ
れを含むセグメント管理情報2103が、データレコー
ド1500のためのものである場合、パリティレコード
1501の更新値が作成されていない値を格納したセグ
メント2000をポイントする。また、セグメント管理
情報2103が、パリティレコード1501のためのも
のである場合には、パリティレコード1501の更新値
を作成する際に、一時的に利用するために確保したセグ
メント2000をポイントする。
【0035】更新後セグメントポインタ2501は、そ
れを含むセグメント管理情報2103が、データレコー
ド1500のためのものである場合は、パリティレコー
ド1501の更新値が作成済の値を格納したセグメント
2000をポイントしている。また、セグメント管理情
報2103が、パリティレコード1501のためのもの
である場合には、原則的に、本ポインタにより示される
セグメント2200にその値が格納される。
【0036】ダーティフラグ2502は、更新後セグメ
ントポインタ2501でポイントされているセグメント
2000に保持されたデータが、まだディスク装置13
04に書き込まれていないことを表している。バリッド
フラグa2503は、更新前セグメントポインタ250
0によって、また、バリッドフラグb2503は、更新
後セグメントポインタ2501によって、それぞれポイ
ントされているセグメント2000に保持されているデ
ータが有効、すなわち、そのセグメント2000の内に
データが入っていることを表す情報を保持する。使用中
フラグ2504は、そのセグメント管理情報2103が
使用中であることを表す情報を保持する。空きポインタ
2505は、空き状態にあるセグメント管理情報210
3同士を結合するためのポインタである。
【0037】図11は、空きセグメントキューの論理的
な構造を示す構成図である。図11に示すように、空き
セグメントキューは、ディレクトリ1309の空きセグ
メントキューポインタ2104を先頭として、空き状態
にあるセグメント2000が結合されて構成される。具
体的には、ディレクトリ1309の空きセグメントキュ
ーポインタ2104の次に、空きセグメントキューポイ
ンタ2104により示されるセグメントが接続する。そ
の後ろには、空きセグメントキューポインタ2104に
接続するセグメント2000が有するセグメントポイン
タ2001によりポイントされるセグメント2000が
接続される。以下、セグメントポインタ2001により
ポイントされるセグメント2000がチェイン状につな
がり、空きセグメントキューを構成する。なお、空きセ
グメントキューの最後部に接続されたセグメント200
0のセグメントポインタ2001には、後続のセグメン
トがないことを示すために、例えば、Nullが格納さ
れる。このことが、図中では、アース記号で示されてい
る。
【0038】図12は、空きセグメント管理情報キュー
の構造を示す構成図である。図12に示すように、空き
セグメント管理情報キューは、ディレクトリ1309の
空きセグメント管理情報キューポインタ2105を先頭
として、空き状態にある空きセグメント管理情報210
3が結合されて構成される。セグメント管理情報210
3同士の結合は、空きセグメントキューの場合と同様
に、各セグメント管理情報2103の空きポインタ25
06によりポイントされるセグメント管理情報を結合し
ていくことにより行われる。また、空きセグメント管理
情報キューの最後部に接続された空きセグメント管理情
報2103の空きポインタには、後続の空きセグメント
管理情報が存在しないことを示すために、例えば、Nu
llが格納される。
【0039】以上、ディレクトリ1309の構造につい
て説明したが、不揮発メモリ管理情報1401も、ディ
レクトリ1309と同様に構成されている。従って、こ
こでは、不揮発メモリ管理情報1401についての詳細
な説明は行なわない。
【0040】図13は、本実施例における制御装置によ
り実施される処理の概要を示すデータフロー図である。
本実施例において、ライト要求受付部101、パリティ
生成スケジュール部110、ロード処理部102、デス
テージ処理部104、及びパリティ生成部103は、デ
ィスク制御プロセッサ1310によるプログラム制御に
より実現される。
【0041】ライト要求受け付け部101は、処理装置
1300からのライト要求を受け付け、論理レコードの
更新値をキャッシュ1308に格納する。パリティ生成
スケジュール部100は、処理装置1300から受け付
けた論理レコード1700の更新値を、どのデータレコ
ード1500に格納し、これに伴う、パリティレコード
1501の更新値をどのような手順で生成するかを決定
する。ロード処理部102は、各ディスク装置1304
からレコードを読み出し、キャッシュ1308への格納
を行う。デステージ部104は、キャッシュ1308に
格納された論理レコード、及びパリティレコードの更新
値をデステージ処理によりディスク1304に格納す
る。また、パリティ生成部103は、パリティ生成スケ
ジュール部100の決定に従いパリティレコードの更新
値を生成する。
【0042】以下、レコード更新時の処理について説明
する。
【0043】図14は、ライトデータ受付部101によ
り行われる処理のフローチャートである。ライトデータ
受付部101は、処理装置1300からのライト要求に
応じて実行を開始する。
【0044】ライトデータ受け付け部101は、ライト
要求を受け付けると、まず、ライト要求の対象の論理レ
コード1700が、ディスク装置1304上でどのデー
タレコード1500に割り当てられているかチェックす
る(ステップ2600)。ライト要求の対象の論理レコ
ード1700がどのデータレコード1500に割り当て
られているかは、ディレクトリ1309のマッピング情
報2100を参照することによりチェックすることがで
きる。次に、そのデータレコード1500のためにセグ
メント管理情報2103と、キャッシュ1308のセグ
メント2000が割り当てられているかどうか判断する
(ステップ2601)。この判断は、まず、ディレクト
リ1309のキャッシュ割当情報2102を参照して、
ステップ2600で求めたデータレコードに対応してセ
グメント管理情報2103が割り当てられているか調べ
る。セグメント管理情報2103が割り当てられている
場合には、さらに、そのセグメント管理情報2103の
更新前セグメントポインタ2501で示されるセグメン
ト2000が割当てられているかどうか判断する。ステ
ップ2601において、セグメント管理情報2103、
および、セグメント2000が割当られていないものが
あれば、ステップ2602で、必要なセグメント管理情
報2103、および、セグメント2000を確保する。
このとき、セグメント管理情報2103の使用中フラグ
2504をオンにする。
【0045】続いて、不揮発性メモリ1400にライト
データを書き込むかどうかを判断し(ステップ260
3)、不揮発性メモリ1400にもライトデータを書き
込む場合には、ステップ2601、2602と同様の処
理を、不揮発性メモリ管理情報1401を参照して実行
する(ステップ2604、2605)。
【0046】ステップ2603で不揮発性メモリ140
0にライトデータを書き込まないと判断したとき、ある
いは、ステップ2604、2605の処理の終了後、処
理装置1300から受け取ったライトデータをキャッシ
ュ1308のセグメント2000に格納する(ステップ
2606)。また、このとき、ステップ2603で、不
揮発性メモリ1400にライトデータを書き込むと判断
した場合は、不揮発性メモリ1400にもそのレコード
を格納する。そして、格納したセグメント2000に対
応するセグメント管理情報2103の管理情報を更新す
る。
【0047】以上のようにして論理レコードが更新され
ると、パリティ生成スケジュール部100は、論理レコ
ードの更新値をどのデータレコードに割り当てるととも
に、パリティレコードの更新値を如何に生成するか決定
する。パリティ生成スケジュール部100によるこのよ
うな処理は、ライト要求受付部101による処理装置1
300からのライト要求の受け付けとは非同期で(独立
して)行われる。図15にパリティ生成スケジュール部
100の処理フローを示す。
【0048】パリティ生成スケジュール部100は、ま
ず、それに属する全てのデータレコードが空いている状
態にあるパリティグループの有無を調べる(ステップ2
700)。ここで、データレコードが空いている状態と
は、論理レコードが割り当てられていない状態であるこ
とを言う。すべてのデータレコード1500が空いてい
る状態のパリティグループがあれば、このパリティグル
ープについてパリティレコードの更新値の作成をスケジ
ュールすることとし、ステップ2702ヘジャンプす
る。全てのデータレコードが空き状態のパリティグルー
プが存在しない場合には、パリティレコードに更新値の
作成が必要なデータレコード1500を探す(ステップ
2701)。パリティレコードの更新値の作成が必要な
データレコードを見出すと、このデータレコードの属す
るパリティグループについてパリティレコードの更新値
の作成をスケジュールすることとする。
【0049】ステップ2702では、パリティレコード
の更新値を格納するために、キャッシュ1308のセグ
メント2000、および、必要があれば、セグメント管
理情報2103を確保する。この時、セグメント管理情
報2103の使用中フラグ2504をオンにする。な
お、セグメント管理情報2103の更新前セグメントポ
インタ2500が、確保したセグメント2000を示す
ようにする。
【0050】このようにして、パリティレコードの更新
値の作成のスケジュールするパリティグループが決まる
と、続いて、このパリティグループ内に、論理レコード
を割り当てていないデータレコードの有無を調べる(ス
テップ2703)。もし、論理レコードの割り当てられ
ていないデータレコードがなければ、ステップ2706
へジャンプする。該当するデータレコードがあれば、そ
のデータレコードに対して割り当てる論理レコードを探
す(ステップ2704)。ここで探し出す論理レコード
は、他のパリティグループのデータレコードに割り当て
られており、処理装置1300により更新されている論
理レコードであって、かつ、その論理レコードが割り当
てられているデータレコードに対応するパリティレコー
ドに、更新値の作成が必要なものである。なおこのと
き、各ディスク装置1304の全体を探索するのではな
く、探索の範囲を各ディスク装置1304の一定の範囲
に限定してもよい。探索の範囲を限定することにより、
論理レコードの番号が近いものを、ディスク装置130
4内で近い場所に配置することができ、論理レコードの
番号順にリード/ライト処理が実行されるシーケンシャ
ル処理を高速に処理できるようになる。
【0051】次に、論理レコードを割り当てていないデ
ータレコードに対し、ステップ2704で見出した論理
レコードを割当て直す(ステップ2705)。この処理
によるセグメント管理情報2103の状態の変化の様子
を図16に示す。なおここでは、スケジュール対象とす
るパリティグループを、パリティグループ“f”とし、
パリティグループ“f”の中で、論理レコードを割り当
てていないデータレコードを、データレコード“j”、
データレコード“k”とする。また、パリティグループ
“f”には属さないデータレコードの中で、論理レコー
ドの更新値を受け取っているデータレコードとしてデー
タレコード“g”、データレコード“h”があるものと
する。ステップ2705では、図16に示すように、デ
ータレコード“g”、データレコード“h”に対応して
いるセグメント管理情報2103−g、2103−hの
更新前セグメントポインタ2500によりポイントされ
ているセグメント2000−g、2000−hが、デー
タレコード“j”、データレコード“k”に対応してい
るセグメント管理情報2103−j、2103−kの更
新前セグメントポインタ2500によりポイントされる
ようにする。すなわち、セグメント管理情報2103−
gの更新前セグメントポインタ2500の値を、セグメ
ント管理情報2103−jの更新前セグメントポインタ
2500にコピーし、セグメント管理情報2103−g
の更新前セグメントポインタ2500をNullにす
る。同様にして、セグメント管理情報2103−hの更
新前セグメントポインタ2500の値を、セグメント管
理情報2103−kの更新前セグメントポインタ250
0にコピーし、セグメント管理情報2103−hの更新
前セグメントポインタ2500をNullにする。さら
に、この割当変更に対応して、マッピング情報210
0、データレコード割当情報2101を更新する。
【0052】スケジュール対象として決定したパリティ
グループ内に空きデータレコードがなくなると、このパ
リティグループに属するパリティレコードのキャッシュ
1308への格納状況を調べ、パリティレコードの更新
値の作成に用いる情報を決定する(ステップ270
6)。パリティレコードの更新値は次のうちのいずれか
の情報により作成できる。
【0053】(1)パリティグループ内のすべてのデー
タレコードの最新値。この場合、パリティレコードの更
新を必要とする値をもたないデータレコード(ディスク
装置1304に書き込まれた後更新されていないデータ
レコード)の値も必要となる。 (2)データレコードの更新値と更新前の値、及びパリ
ティレコードの更新前の値。
【0054】ここでは、(1)、(2)の情報の中で、
キャッシュ1308に格納されていない情報が少ない方
を、パリティレコードの更新値作成に用いる情報として
決定する。これにより、ディスク装置1304からのロ
ード処理を削減することができる。なお、このとき、パ
リティレコードの更新値作成に用いると決定した情報を
格納している物理レコードに対応するセグメント管理情
報2103の使用中フラグ2504をオンにする。
【0055】次に、ステップ2707で、ステップ27
06でパリティレコードの更新値の作成に用いることを
決定した情報の中で、キャッシュ1308に保持されて
いない情報があるかチェックする。必要な全ての情報が
キャッシュ1308に保持されていれば、ステップ27
10ヘジャンプする。キャッシュ1308に保持されて
いない情報があれば、その情報をキャッシュ1308に
格納するために、キャッシュ1308内のセグメント2
000、および、必要があれば、セグメント管理情報2
103を確保する(2708)。このとき、確保したセ
グメント管理情報2103の使用中フラグ2504をオ
ンにする。また、セグメント管理情報2103の更新後
セグメントポインタ2501が、確保したセグメント2
000を示すようにする。その後、ロード処理部によ
り、必要な情報をディスク装置1304から読み出し
て、確保したセグメント2000に格納する(ステップ
2709)。
【0056】ステップ2710では、パリティ生成部1
03により、先に決定した情報を用いてパリティレコー
ドの更新値を作成する。パリティレコードの更新値を作
成すると、更新値を持つデータレコード、及びパリティ
レコードに対応しているセグメント管理情報2103の
更新前セグメントポインタ2500の値を、更新後セグ
メントポインタ2501に移し、更新値を格納している
セグメント200が更新後セグメントポインタ2501
によってポイントされるようにする(ステップ271
1)。この様子を図17に示す。具体的には、更新値を
格納しているセグメント2000を更新後セグメントポ
インタ2501が示すようにし、それまで、更新値を格
納したセグメント2000−mを示していた更新前セグ
メントポインタ2500にNullを格納する。なお、
このとき、更新値を持つセグメント2000の内容をデ
ィスク装置1304に書き込むために、ダーティフラグ
2502をオンにする。また、パリティレコード150
1の更新値を作成するのに使用したデータレコード(更
新値を持たないもの)に対応しているセグメント管理情
報2103の使用中フラグ2504をオフにする。
【0057】最後に、デステージ処理部104により論
理レコードの更新値、及びパリティレコードの更新値を
ディスク装置1304に書き込み処理を終える(ステッ
プ2712)。
【0058】以上説明した処理による流れが、図13に
おいて、矢印〜により示されている。矢印は、処
理装置1300からのライト要求に応じて、論理レコー
ドc、及び論理レコードeの更新値がキャッシュに格納
されることを示している。矢印は、ステップ2705
による論理レコードの割り当ての変更を示している。な
お、上述したように、論理レコードの割り当ての変更
は、その内容が更新値eに変更されたデータレコードの
セグメント管理情報の更新前セグメントポインタを更新
するだけでよく、更新値eを格納したセグメントを移動
する必要はない。矢印は、パリティレコードの更新値
を作成するに当たって、キャッシュ1308に格納され
ていない必要な情報が、ステップ2709においてロー
ドされる様子を示している。矢印は、ステップ271
0におけるパリティレコードの更新時のデータの流れを
示している。また、矢印は、ステップ2712におけ
るデステージ処理によりデータレコード、パリティレコ
ードがディスク装置1304に格納される様子を示して
いる。
【0059】以上説明した実施例では、ディスク装置と
処理装置との間に接続される制御装置を備えたシステム
を例に説明したが、本発明は、このようなシステムに限
らず、処理装置とディスク装置とが制御装置を介さず
に、直接接続されているようなシステムにも適用するこ
とができる。このような構成のシステムの一例を第2の
実施例として図18に示す。本実施例では、キャッシュ
1308、ディレクトリ1304は、処理装置1300
の主記憶1302上に実現される。主記憶1302は、
不揮発化されていても、いなくても本発明を実施するに
当たっては特に問題がない。
【0060】図18に示すように処理装置1300上で
は、応用プログラム300と管理プログラム301が実
行される。第1の実施例においてディスク制御プロセッ
サが備えていた、キャッシュ1308、ディレクトリ1
309、および、パリティグループ等の管理機能は、管
理プログラム301がもつ。また、本実施例では、応用
プログラム300が論理レコードのリード/ライトを要
求し、管理プログラム301が論理レコードとディスク
装置に格納されるデータレコードのマッピングを行う。
すなわち、図2における処理装置1300が、図19で
は、応用プログラム300に相当し、制御装置1305
が、管理プログラム301に相当する。したがって、管
理プログラム301は、応用プログラム300からのラ
イト要求によるデータを、キャッシュ1308に格納し
た段階で完了させる。ディスク装置1304へのデータ
の書き込みは、後から、管理プログラム300の制御に
より実行される。本実施例におけるディレクトリ130
9、キャッシュ1308等の具体的な構成は、第1の実
施例のものをそのまま適用することができる。また、本
実施例において管理プログラムにより行われる処理は、
先に説明した第1の実施例におけるディスク制御プロセ
ッサのそれと同様であり、ここでは特に説明は省略す
る。
【0061】
【発明の効果】本発明によれば、ディスクアレイにおい
て、各ディスク装置に、余分なレコードを設けることに
より、パリティの更新値を作成するのに必要な情報を読
出す回数、パリティをディスク装置に書き込む回数を削
減できる。また、本発明の場合、未割当て状態の領域が
1つでもあれば、それを有効に利用できるため、パリテ
ィグループ内のすべてのデータレコードを空いた状態に
するといった特別な処理を実行させる必要はない。
【図面の簡単な説明】
【図1】第1の実施例における計算機システムの構成
図。
【図2】レコードの定義図。
【図3】ディスクアレイにおけるパリティグループの概
念図。
【図4】マッピングの変更の概念図。
【図5】キャッシュメモリの論理的な構成図。
【図6】ディレクトリの論理的な構成図。
【図7】マッピング情報の論理的な構成図。
【図8】データレコード割り当て情報の構成図。
【図9】キャッシュ割当て情報の構成図。
【図10】セグメント管理情報の構成図。
【図11】空きセグメントキューの構成図。
【図12】空きセグメント管理情報キューの構成図。
【図13】パリティレコードの更新値作成処理における
データの流れを示すデータフロー図。
【図14】ライト要求受付時の処理フローチャート。
【図15】パリティレコードの更新値作成時の処理フロ
ーチャート。
【図16】論理レコードの割当て変更時のセグメント管
理情報の変化の様子を示す概念図。
【図17】セグメントの切り替え時のセグメント管理情
報の変化の様子を示す概念図。
【図18】第2の実施例における計算機システムの構成
図。
【符号の説明】
100…パリティ生成スケジュール部、101…ライト
要求受付部、102…ロード処理部、103…パリティ
生成部、104…デステージ処理部、300…応用プロ
グラム、301…管理プログラム、1300…処理装
置、1304…ディスク装置、1305…制御装置、1
308…キャッシュメモリ、1309…ディレクトリ、
1400…不揮発性メモリ、1401…不揮発性メモリ
管理情報、1500…データレコード、1501…パリ
ティレコード、1502…物理レコード、1600…パ
リティレコード、1700…論理レコード、1701…
レコード、2000…セグメント、2100…マッピン
グ情報、2101…データレコード割当情報、2102
…キャッシュ割当情報、2103…セグメント管理情
報、2104…空きセグメントキューポインタ、210
5…空きセグメント管理情報。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 孝夫 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】複数の格納領域から構成される複数台の記
    憶装置とキャッシュメモリを有する制御装置とから構成
    され、前記格納領域にm個(m≧1)のデータ格納領域
    と、前記m個のデータ格納領域に格納されたデータの回
    復に用いられる冗長データを格納するn個(n≧1)の
    冗長データ格納領域から構成される複数の格納領域グル
    ープを有し、前記m個のデータ格納領域と前記n個の冗
    長データ格納領域をそれぞれ別々の記憶装置に配置し、
    前記m個のデータ格納領域として、処理装置がリード/
    ライトするデータを割り当てた状態にあるものと割り当
    てていない状態にあるものとをもつ記憶装置システムで
    あって、前記制御装置に、 前記処理装置からのライト要求に応じて、前記処理装置
    から、ライト要求で指定されたレコードに対するライト
    データを受けとり前記キャッシュメモリに格納し、前記
    ライト要求の完了を報告する手段と、 前記キャッシュメモリ内に前記処理装置から受け取った
    ライトデータが存在するかどうかをサーチし、前記冗長
    データを作成すべき格納領域グループを決定する手段
    と、 前記決定手段が冗長データの作成を決定した格納領域グ
    ループ内のデータ格納領域を、前記処理装置がリード/
    ライトするデータを割り当てている状態と、割り当てて
    いない状態にあるデータ格納領域に分類する手段と、 前記冗長データの作成を決定した格納領域グループに属
    さないデータ格納領域の中で、前記冗長データを作成す
    べき前記処理装置から受け取ったライトデータを有する
    データ格納領域を探す手段と、 前記探す手段により探しだされた冗長データを作成すべ
    き前記処理装置から受け取ったライトデータを有するデ
    ータ格納領域に受け取った前記ライトデータを、前記分
    類する手段により前記処理装置がリード/ライトするデ
    ータを割り当てていない状態にあると分類されたデータ
    格納領域に格納することを決定する手段を有することを
    特徴とする記憶装置システム。
  2. 【請求項2】請求項1記載の記憶装置システムにおい
    て、さらに、格納領域グループ内の全てのデータ格納領
    域が前記処理装置がリード/ライトするデータを割り当
    てていない状態にある格納領域グループを探し、その格
    納領域グループを前記冗長データを作成すべき格納領域
    グループとして決定する手段を有することを特徴とする
    記憶装置システム。
  3. 【請求項3】請求項1記載の記憶装置システムにおい
    て、前記探す手段は、前記冗長データの作成を決定した
    前記格納領域グループに属さない前記データ格納領域の
    中で、前記冗長データを作成すべき前記処理装置から受
    け取ったライトデータを有する格納領域を、前記記憶装
    置の一定の範囲の格納領域から探すことを特徴とする記
    憶装置システム。
  4. 【請求項4】複数の格納領域から構成される複数台の記
    憶装置と該記憶装置に記憶すべきデータを一時的に保持
    するキャッシュメモリを有する処理装置とから構成さ
    れ、前記格納領域にm個(m≧1)のデータ格納領域
    と、前記m個格納領域に格納されたデータを回復するた
    めの冗長データを格納するn個(n≧1)の冗長データ
    格納領域から構成される複数の格納領域グループを有
    し、前記m個のデータ格納領域と前記n個の冗長データ
    格納領域をそれぞれ別々の記憶装置に配置し、前記デー
    タ格納領域は、前記処理装置上で実行される応用プログ
    ラムがリード/ライトするデータを割り当てた状態と割
    り当てていない状態をもつ計算機システムであって、前
    記処理装置に、 前記応用プログラムからのライト要求に応じて、該ライ
    ト要求で指定されたレコードに対するライトデータを受
    けとり前記キャッシュメモリに格納する手段と、 前記キャッシュメモリ内に格納されている前記応用プロ
    グラムから受け取ったライトデータが存在するかどうか
    をサーチし、冗長データを作成すべき格納領域グループ
    を決定する手段と、 前記決定手段が冗長データの作成を決定した格納領域グ
    ループ内の前記データ格納領域を、前記応用プログラム
    がリード/ライトするデータを割り当てている状態と、
    割り当てていない状態にあるデータ格納領域に分類する
    手段と、 前記冗長データの作成を決定した格納領域グループに属
    さないデータ格納領域の中で、冗長データを作成すべき
    前記応用プログラムから受け取ったライトデータを有す
    るデータ格納領域を探す手段と、 前記探す手段が探しだしたデータ格納領域に受け取った
    ライトデータを、前記分類手段が前記応用プログラムが
    リード/ライトするデータを割り当てていない状態にあ
    ると分類したデータ格納領域に格納することを決定する
    手段を有することを特徴とする計算機システム。
  5. 【請求項5】請求項4記載の計算機システムにおいて、
    前記処理装置は、さらに、格納領域グループ内の全ての
    データ格納領域が前記応用プログラムがリード/ライト
    するデータを割り当てていない状態にある格納領域グル
    ープを探し、該格納領域グループを前記冗長データを作
    成すべき格納領域グループとして決定する手段を有する
    ことを特徴とする計算機システム。
  6. 【請求項6】請求項4記載の計算機システムにおいて、
    前記探す手段は、前記冗長データの作成を決定した前記
    格納領域グループに属さない前記データ格納領域の中
    で、前記冗長データを作成すべき前記応用プログラムか
    ら受け取ったライトデータを有するデータ格納領域を、
    前記記憶装置の一定の範囲の格納領域から探すことを特
    徴とする計算機システム。
  7. 【請求項7】複数の格納領域から構成される複数台の記
    憶装置とキャッシュメモリを有する制御装置から構成さ
    れ、前記格納領域にm個(m≧1)のデータ格納領域
    と、前記m個のデータ格納領域に格納されたデータを回
    復するための冗長データを格納するn個(n≧1)の冗
    長データ格納領域から構成される複数の格納領域グルー
    プを有し、前記m個のデータ格納領域と前記n個の冗長
    データ格納領域をそれぞれ別々の記憶装置に配置し、前
    記データ格納領域は、処理装置がリード/ライトするデ
    ータを割り当てた状態と割り当てていない状態をもつ記
    憶装置システムにおいて前記制御装置により実行される
    制御方法であって、 前記処理装置からのライト要求に応じて、前記ライト要
    求で指定されたレコードに対するライトデータを受け取
    って前記キャッシュメモリに格納し、前記処理装置に前
    記ライト要求の完了を報告するステップと、 前記キャッシュメモリ内に格納された前記処理装置から
    のライトデータの存在をサーチし、冗長データを作成す
    べき格納領域グループを決定するステップと、 前記冗長データの作成を決定した前記格納領域グループ
    内のデータ格納領域を、前記処理装置がリード/ライト
    するデータを割り当てている状態と、割り当てていない
    状態にあるデータ格納領域に分類するステップと、 前記冗長データの作成を決定した前記格納領域グループ
    に属さない前記データ格納領域の中で、前記冗長データ
    を作成すべき前記処理装置から受け取ったライトデータ
    を有するデータ格納領域を探すステップと、 前記探すステップで探しだされたデータ格納領域に受け
    取ったライトデータを、前記処理装置がリード/ライト
    するデータを割り当てていない状態にあると分類したデ
    ータ格納領域に格納することを決定するステップを有す
    ることを特徴とする記憶装置システムの制御方法。
  8. 【請求項8】前記決定するステップ以降の処理が、前記
    処理装置からのリード/ライト要求から独立して実行さ
    れることを特徴とする請求項7記載の記憶装置システム
    の制御方法。
  9. 【請求項9】複数の格納領域から構成される複数台の記
    憶装置と該記憶装置に記憶すべきデータを一時的に保持
    するキャッシュメモリを有する処理装置とから構成さ
    れ、前記格納領域にm個(m≧1)のデータ格納領域
    と、前記m個のデータ格納領域に格納されたデータの回
    復に用いられる冗長データを格納するn個(n≧1)の
    冗長データ格納領域から構成される複数の格納領域グル
    ープを有し、前記m個のデータ格納領域と前記n個の冗
    長データ格納領域をそれぞれ別々の記憶装置に配置し、
    前記データ格納領域は、前記処理装置上で実行される応
    用プログラムがリード/ライトするデータを割り当てた
    状態と割り当てていない状態をもつ計算機システムの記
    憶制御方法であって、 前記応用プログラムから発行されたライト要求に応じ
    て、前記ライト要求で指定されたレコードに対するライ
    トデータを受け取って前記キャッシュメモリに格納し、
    前記ライト要求の完了を報告するステップと、 前記キャッシュメモリ内に格納された前記応用プログラ
    ムから受け取ったライトデータが存在するかどうかをサ
    ーチし、前記冗長データを作成すべき格納領域グループ
    を決定するステップと、 前記冗長データの作成を決定した前記格納領域グループ
    内のデータ格納領域を、前記応用プログラムがリード/
    ライトするデータを割り当てている状態と、割り当てて
    いない状態にあるデータ格納領域に分類するステップ
    と、 前記冗長データの作成を決定した前記格納領域グループ
    に属さない前記データ格納領域の中で、前記冗長データ
    を作成すべき前記応用プログラムから受け取ったライト
    データを有するデータ格納領域を探すステップと、 前記探すステップで探しだされたデータ格納領域に受け
    取った前記ライトデータを、前記応用プログラムがリー
    ド/ライトするデータを割り当てていない状態にあると
    分類したデータ格納領域に格納することを決定するステ
    ップを有することを特徴とする計算機システムの記憶制
    御方法。
  10. 【請求項10】前記決定するステップ以降の処理が、前
    記処理装置からのリード/ライト要求から独立して実行
    されることを特徴とする請求項9記載の記憶制御方法。
  11. 【請求項11】複数のディスク装置と、該複数のディス
    ク装置を制御し、前記ディスク装置に格納されているデ
    ータの一部を保持するキャッシュメモリを有する制御装
    置とからなり、処理装置がリード/ライトの対象とする
    論理的なレコードが割り当てられるデータレコードと、
    障害発生時にデータレコード内のデータを回復するため
    に用いられるパリティレコードとで複数のパリティグル
    ープを構成し、各パリティグループ内の各データレコー
    ド及びパリティレコードをそれぞれ異なるディスク装置
    に配置した記憶装置システムの制御方法において、 前記処理装置からのライト要求に応じて、該ライト要求
    で指定された論理レコードの更新値を前記キャッシュメ
    モリに格納し、 前記パリティグループの中で、それぞれに属するデータ
    レコードの状態に応じてパリティレコードの作成を行う
    べきパリティグループを決定し、 前記パリティレコードの作成を行うべきパリティグルー
    プに属し、論理レコードに割り当てられていないデータ
    レコードを識別し、 前記パリティレコードの作成を行うべきパリティグルー
    プ以外のパリティグループに属するデータレコードに割
    り当てられている論理レコードであって、その更新値が
    前記キャッシュメモリに保持されている論理レコードに
    割り当てるデータレコードを、前記識別ステップで識別
    されたデータレコードに変更し、 前記パリティレコードの作成を行うべきパリティグルー
    プの新たなパリティレコードを作成し、 前記パリティレコードの作成を行うべきパリティグルー
    プ内のデータレコード及びパリティレコードを前記ディ
    スク装置のそれぞれに格納することを特徴とする記憶装
    置システムの制御方法。
  12. 【請求項12】前記パリティグループを決定するステッ
    プは、前記パリティグループの中で、全てのデータレコ
    ードが論理レコードを割り当てられていない空き状態の
    データレコードであるパリティグループを探索し、該探
    索の結果得られたパリティグループの中から前記パリテ
    ィレコードの作成を行うべきパリティグループを決定す
    るステップと、前記探索の結果、該当するパリティグル
    ープが存在しない場合に、更新値が前記キャッシュ内に
    存在する論理レコードに割り当てられているデータレコ
    ードを含むパリティグループの中から前記パリティレコ
    ードの作成を行うべきパリティグループを決定するステ
    ップとを含むことを特徴とする請求項11記載の制御方
    法。
  13. 【請求項13】前記変更するステップは、その対象とな
    る論理レコードを、前記パリティレコードの作成を行う
    べきパリティグループ内のデータレコードの前記ディス
    ク装置内での配置位置に対して所定の範囲内に配置され
    ているデータレコードに割り当てられている論理レコー
    ドの中から決定することを特徴とする請求項11記載の
    制御方法。
  14. 【請求項14】前記更新値をキャッシュメモリに格納す
    るステップは、前記更新値をキャッシュメモリに格納し
    た後に、前記処理装置に対して、前記ライト要求に対す
    る処理の完了を報告することを特徴とする請求項11な
    いし13記載の制御方法。
  15. 【請求項15】前記パリティグループを決定するステッ
    プ以降のステップが、前記ライト要求に応じて実施され
    る前記更新値をキャッシュメモリに格納するステップと
    は独立したタイミングで実施されることを特徴とする請
    求項14記載の制御方法。
JP19396694A 1994-08-18 1994-08-18 記憶装置システムおよび記憶装置の制御方法 Expired - Lifetime JP3687111B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP19396694A JP3687111B2 (ja) 1994-08-18 1994-08-18 記憶装置システムおよび記憶装置の制御方法
US08/511,731 US5734813A (en) 1994-08-18 1995-08-07 Storage apparatus system for reallocating data records among parity groups
DE69519350T DE69519350T2 (de) 1994-08-18 1995-08-17 Speichergerät und Verfahren zu seiner Steuerung
EP95112951A EP0702301B1 (en) 1994-08-18 1995-08-17 Storage apparatus and method for its control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19396694A JP3687111B2 (ja) 1994-08-18 1994-08-18 記憶装置システムおよび記憶装置の制御方法

Publications (2)

Publication Number Publication Date
JPH0863394A true JPH0863394A (ja) 1996-03-08
JP3687111B2 JP3687111B2 (ja) 2005-08-24

Family

ID=16316735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19396694A Expired - Lifetime JP3687111B2 (ja) 1994-08-18 1994-08-18 記憶装置システムおよび記憶装置の制御方法

Country Status (4)

Country Link
US (1) US5734813A (ja)
EP (1) EP0702301B1 (ja)
JP (1) JP3687111B2 (ja)
DE (1) DE69519350T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015842A (ja) * 2007-06-29 2009-01-22 Seagate Technology Llc 記憶システムにおけるプロセッサ・パートナリング

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5680640A (en) 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
JP3713788B2 (ja) * 1996-02-28 2005-11-09 株式会社日立製作所 記憶装置および記憶装置システム
US6021463A (en) * 1997-09-02 2000-02-01 International Business Machines Corporation Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
US6289415B1 (en) * 1998-12-23 2001-09-11 At&T Corporation System and method for storage media group parity protection
JP4462852B2 (ja) * 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
US7519629B2 (en) * 2004-09-30 2009-04-14 International Business Machines Corporation System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree
US9569303B2 (en) * 2014-08-08 2017-02-14 Kabushiki Kaisha Toshiba Information processing apparatus

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
US5542064A (en) * 1991-11-21 1996-07-30 Hitachi, Ltd. Data read/write method by suitably selecting storage units in which multiple copies of identical data are stored and apparatus therefor
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5394532A (en) * 1992-04-15 1995-02-28 Storage Technology Corporation Disk drive array memory system having instant format capability
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5581724A (en) * 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
GB2273798A (en) * 1992-12-22 1994-06-29 Ibm Cache system for disk array.
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
EP0612015A1 (en) * 1993-02-16 1994-08-24 International Business Machines Corporation Improved disk array system having special parity groups for data blocks with high update activity
US5463765A (en) * 1993-03-18 1995-10-31 Hitachi, Ltd. Disk array system, data writing method thereof, and fault recovering method
JP3249868B2 (ja) * 1993-11-19 2002-01-21 株式会社日立製作所 アレイ形式の記憶装置システム
US5600783A (en) * 1993-11-30 1997-02-04 Hitachi, Ltd. Disc array system having disc storage devices dispersed on plural boards and accessible at withdrawal of part of the boards
US5530948A (en) * 1993-12-30 1996-06-25 International Business Machines Corporation System and method for command queuing on raid levels 4 and 5 parity drives
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015842A (ja) * 2007-06-29 2009-01-22 Seagate Technology Llc 記憶システムにおけるプロセッサ・パートナリング

Also Published As

Publication number Publication date
JP3687111B2 (ja) 2005-08-24
DE69519350T2 (de) 2001-06-13
EP0702301B1 (en) 2000-11-08
DE69519350D1 (de) 2000-12-14
EP0702301A1 (en) 1996-03-20
US5734813A (en) 1998-03-31

Similar Documents

Publication Publication Date Title
US5881311A (en) Data storage subsystem with block based data management
US5379391A (en) Method and apparatus to access data records in a cache memory by multiple virtual addresses
EP0976043B1 (en) Mapped virtual storage (mvs) backup system for a data processor using a data storage subsystem snapshot copy capability
JP3249868B2 (ja) アレイ形式の記憶装置システム
US5210866A (en) Incremental disk backup system for a dynamically mapped data storage subsystem
US5410667A (en) Data record copy system for a disk drive array data storage subsystem
US7032070B2 (en) Method for partial data reallocation in a storage system
US6772283B2 (en) Disk control device and method processing variable-block and fixed-block accesses from host devices
JP3371044B2 (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US6470421B1 (en) Method and means for reducing device contention by random accessing and partial track staging of records according to a first DASD format but device mapped according to a second DASD format
US6098191A (en) Storage unit and storage unit subsystem
US20040083339A1 (en) Apparatus and method for reallocating logical to physical disk devices using a storage controller, with access frequency and sequential access ratio calculations and display
JPH06259197A (ja) アレイ型ディスクシステムの制御方式
US6079000A (en) XPC backup for in-process audit
EP0974095B1 (en) Dasd file system copy system for a data processor using a data storage subsystem snapshot copy capability
US7398420B2 (en) Method for keeping snapshot image in a storage system
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
JPH07200187A (ja) ディスクアレイ装置
JP2003131818A (ja) クラスタ構成ストレージにおけるクラスタ間raid構成
JPH07152498A (ja) 情報処理システム
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
JP3730609B2 (ja) 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ
JP2001022614A (ja) 階層形記憶システム
JPH10312246A (ja) 記憶装置サブシステム
JP3008801B2 (ja) 記憶装置システムおよびディスクアレイ制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050530

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

Free format text: PAYMENT UNTIL: 20080617

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090617

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100617

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110617

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120617

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130617

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term