JP3119978B2 - ファイル記憶装置及びそのファイル管理方法 - Google Patents

ファイル記憶装置及びそのファイル管理方法

Info

Publication number
JP3119978B2
JP3119978B2 JP05236922A JP23692293A JP3119978B2 JP 3119978 B2 JP3119978 B2 JP 3119978B2 JP 05236922 A JP05236922 A JP 05236922A JP 23692293 A JP23692293 A JP 23692293A JP 3119978 B2 JP3119978 B2 JP 3119978B2
Authority
JP
Japan
Prior art keywords
data
block
parity
file
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP05236922A
Other languages
English (en)
Other versions
JPH0793106A (ja
Inventor
志郎 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP05236922A priority Critical patent/JP3119978B2/ja
Priority to US08/298,275 priority patent/US5485475A/en
Publication of JPH0793106A publication Critical patent/JPH0793106A/ja
Application granted granted Critical
Publication of JP3119978B2 publication Critical patent/JP3119978B2/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
    • 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/99931Database or file accessing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のディスクをアレ
イ状に接続したディスクアレイ装置などのファイル記憶
装置及びそのファイル管理方法に関する。
【0002】
【従来の技術】オフィス内の大量のデータを高速に、し
かも信頼性高く管理するために、記憶するデータに冗長
性を持たせてブロックなどの単位毎に複数のディスクド
ライブに分散して記憶するファイル記憶装置が提案され
ている。この技術は、特開平2-236714号公報や、インタ
ーフェース1993年 4月号の「ディスクの耐故障性と信頼
性を改善するRAID技術」などに記述されている。
【0003】例えば、図13に示すように、4台のハー
ドディクスドライブ(HDD)構成のRAIDレベル4
では、1台目から3台目までのHDDの同一ブロックデ
ータに対するパリティデータが4台目のHDD−4の同
一ブロックに記憶されている。各HDDのNブロック目
のデータをそれぞれA、B、C、Dとすると、 A xor B xor C=D( xorは排他的論理和) の関係が成立するようになっている。
【0004】ここで、1台目のHDD−1が故障し、読
み出しエラーとなった場合は、 B xor C xor D の演算を行うことによって、ブロックデータAを復元す
ることができる。
【0005】このように読み出し時に1台のHDDでエ
ラーが発生した場合、他の3台のHDDの同一ブロック
データから復元することができ、信頼性を向上させるこ
とができる。
【0006】また、データを読み出す場合は、対応する
ブロックが記憶されている各HDDに対して同時にアク
セスできるため、高速読み出しが可能となる。
【0007】しかしながら、このシステムでは、信頼性
を高めるためにパリティデータを常に作成しておかなけ
ればならず、データ書き込み時の処理に時間がかかると
いう問題がある。
【0008】例えば、図13に示した1台目のHDD−
1のAブロックにデータを書き込む場合は、 (1)データ用HDD−1のAブロック(旧データ)を
読み出す。
【0009】(2)パリティ用HDD−4のDブロック
(旧パリティ)を読み出す。
【0010】(3)読み出されたAブロックとDブロッ
ク間でxor演算を行う。
【0011】(4)新データと(3)の演算結果データ
間でxor演算を行い、新パリティデータを作成する。
【0012】(5)データ用HDD−1のAブロックに
新データを書き込む。
【0013】(6)(4)で作成した新パリティデータ
をHDD−4のDブロックに書き込む。 このように、
HDDからの読み出しが2回、書き込みが2回、xor
演算が2回の処理が必要となり、かなりの時間がかかる
ことになる。
【0014】従来のファイル記憶装置では、図14に示
すように、ファイルはファイル管理テーブル121とア
レイブロック管理テーブル122により管理されてい
る。ファイル管理テーブル121は、ファイル番号12
1a、存在フラグ121b、データ格納用に使用してい
るディスク内のブロック数121c、アレイブロック番
号リスト121dからなる。またアレイブロック管理テ
ーブル122は、アレイブロック番号122aおよび使
用フラグ122bなどからなり、ディスクの全ブロック
の使用/未使用状況を管理している。すなわち、使用フ
ラグ122bが1の時はファイルとして使用中、0の時
は未使用中を示している。
【0015】例えば、ファイル番号が1であるファイル
は、使用ブロック数は3で、アレイブロック番号が1、
2、3のブロック内にデータが記憶されている。またア
レイブロック番号が6、7であるブロックはファイルの
データ領域として割り当てられていないことを示してい
る。通常、ブロック当たりのサイズは1024バイトの整数
倍が採用される。なお、ファイルに対してはバイト単位
のサイズ、ファイル名、作成日時等も管理しているが、
ここでは省略した。
【0016】アレイブロック番号は1から3000まで
の値をとり、1から1000まではHDD−1のブロッ
ク番号1から1000に対応し、1001から2000
まではHDD−2のブロック番号1から1000に対応
し、2001から3000まではHDD−3のブロック
番号1から1000に対応する。
【0017】ファイルの使用ブロック数を増やす場合に
は、このアレイブロック管理テーブル122を参照して
使用されていないアレイブロック番号(図14の例では
6や7)を求め、対応する使用フラグ122bを1と
し、このブロックをファイルのデータ領域として使用す
る。ファイルを削除する場合には、未使用になるアレイ
ブロック番号に対応する使用フラグ122bを0にす
る。
【0018】このように従来、未使用になるブロック内
のデータおよび関連するパリティに対しては何も処理せ
ず、単にファイル管理テーブル121とアレイブロック
管理テーブル122内を更新するのみであり、パリティ
データはこの未使用ブロック内のデータを含んだままの
値になっている。そしてこの未使用ブロックが新たにフ
ァイルのデータ領域として割り当てられ、データを書き
込む場合は従来のように2回のHDD読み出しと、2回
のxor演算と、2回のHDD書き込み処理が必要とな
ってしまう。
【0019】
【発明が解決しようとする課題】このように、従来のフ
ァイルをRAID方式にてブロック単位で管理している
ファイル記憶装置では、ファイルデータを更新する度
に、2回のファイル読み出し処理と、2回のxor演算
と、2回のファイル書き込み処理が必要となり、かなり
の時間を要していた。
【0020】本発明はこのような課題を解決するための
もので、ファイルデータ書き込み時におけるパリティデ
ータ生成の処理速度の向上を図るとともに、ファイルデ
ータの読み出しエラーが発生した場合のデータ復元処理
の高速化も図ることのできるファイル記憶装置及びその
ファイル管理方法の提供を目的としている。
【0021】
【課題を解決するための手段】 本発明のファイル記憶
装置は上記した目的を達成するために、複数の第1記憶
媒体にファイルのデータをブロック単位で分散して記憶
するとともに、第2記憶媒体に前記各第1記憶媒体の同
一ブロックのデータに対するパリティデータをブロック
単位で記憶してなるファイル記憶装置において、前記各
第1記憶媒体上の個々のデータブロックがファイルのデ
ータ領域として使用されているか否かを示す第1フラグ
情報及び前記個々のデータブロックの内容がクリア済み
か否かを示す第2フラグ情報を記憶するフラグ記憶手段
と、前記フラグ記憶手段に記憶された各フラグ情報に基
づき、未使用で且つ未クリア状態のデータブロックを検
出する検出手段と、前記検出手段により検出された未使
用で且つ未クリア状態のデータブロックのデータとこの
データブロックに対応する前記第2記憶媒体上の前記パ
リティブロックのパリティデータとに基づいて前記パリ
ティブロックの内容を更新し、そのデータブロックに対
する第2フラグ情報をクリア済みに設定する処理手段
と、第1記憶媒体上のクリア済みのデータブロックに対
する書き込みが生じた場合、応するパリティブロック
のパリティデータと書き込むデータとに基づいて前記パ
リティブロックの内容を更新し、前記第2フラグ情報を
未クリア状態に設定するパリティデータ作成手段とを具
備している。
【0022】 また本発明のファイル記憶装置は上記し
た目的を達成するために、複数の第1記憶媒体にファイ
ルのデータをブロック単位で分散して記憶するととも
に、第2記憶媒体に前記各第1記憶媒体の同一ブロック
のデータに対するパリティデータをブロック単位で記憶
してなるファイル記憶装置において、前記各第1記憶媒
体上の個々のデータブロックがファイルのデータ領域と
して使用されているか否かを示す第1フラグ情報及び
記個々のデータブロックの内容がクリア済みか否かを示
す第2フラグ情報を記憶するフラグ記憶手段と、前記フ
ラグ記憶手段に記憶された各フラグ情報に基づき、未使
用で且つ未クリア状態のデータブロックを検出する検出
手段と、前記検出手段により検出された未使用で且つ未
クリア状態のデータブロックのデータとこのデータブロ
ックに対応する前記第2記憶媒体上の前記パリティブロ
ックのパリティデータとに基づいて前記パリティブロッ
クの内容を更新し、そのデータブロックに対する第2フ
ラグ情報をクリア済みに設定する処理手段と、第1記憶
媒体上のデータブロックからの読み出しエラーが発生し
た場合、このデータブロックに対応するパリティブロッ
クのパリティデータと前記第2フラグ情報に基づいて判
断される他の第1記憶媒体上の未クリア状態の同一デー
タブロックのデータとに基づいて読み出しエラーとなっ
たデータブロックのデータとして復元するデータ復元手
段とを具備している。
【0023】
【作用】すなわち、本発明では、まず検出手段にて、第
1フラグ記憶手段及び第2フラグ記憶手段に記憶された
各フラグ情報に基づき、未使用で且つ未クリア状態のデ
ータブロックを検出し、該当するデータブロックが検出
されれば、そのデータとこのデータブロックに対応する
パリティブロックのパリティデータとに基づいてパリテ
ィブロックを更新する。また、あるデータブロックに対
する書き込みが生じた場合、第2フラグ情報を基にこの
データブロックがクリア済みか否かを判断し、クリア済
みであればこのデータブロックに対応するパリティブロ
ックのパリティデータと書き込むデータとに基づいてパ
リティブロックの内容を更新する。したがって、本発明
によれば、クリア済みのデータブロックに対する書き込
みが生じた場合は、このデータブロックに対応するパリ
ティブロックのパリティデータと書き込むデータとの排
他的論理和演算を行うだけで新しいパリティデータを作
成することができ、データ書き込み時の処理速度の向上
を図ることができる。 他の発明では、あるデータブロ
ックからの読み出しエラーが発生した場合、このデータ
ブロックに対応するパリティブロックのパリティデータ
と、第2フラグ情報に基づいて判断される他の第1記憶
媒体上の未クリア状態の同一データブロックのデータの
間で排他的論理和演算を行うだけで、読み出しエラーと
なったデータブロックのデータを復元することができ、
データ復元処理の速度向上も図ることができる。
【0024】
【実施例】以下、図面を用いて本発明に係わる実施例を
説明する。
【0025】図1は本発明のファイル記憶装置に係る一
実施例のディスクアレイ装置のシステム構成図である。
【0026】同図において、1は装置全体の制御を行う
CPUである。CPU1はHDD−0(2)内に記憶さ
れているプログラムをメモリ3に読み出し、この内容に
従って各部を制御する。4はアレイHDD制御部であ
る。このアレイHDD制御部4は4台のHDD(HDD
−1からHDD−4)を制御するためのものであり、4
台のHDDはパリティの付加されたファイルデータの記
憶および再生を行う。4台のHDDのうち3台はデータ
用で、1台がパリティ用である。3台のデータ用HDD
の同じブロック番号のブロックデータをxor演算した
データがパリティ用HDDの同じブロック番号のブロッ
クに記憶されている。本装置のHDDのブロックのサイ
ズは1024バイトであり、1台あたり1000ブロッ
クの記憶容量がある。4台のHDDの物理的な総ブロッ
ク数は4000ブロックであるが、1台がパリティ用H
DDであるため、実際にファイルデータの記憶される総
ブロック数は3000ブロックとなる。さらに5は通信
制御部であり、LAN6を通して送られてくるコマンド
を受信し、処理結果を送信する。以上HDD−1、2、
3、4を除いた各部はシステムバス7を介して相互に接
続されている。
【0027】図2は本装置を制御するためのテーブルの
構造を示した図である。
【0028】テーブルとしてはファイル管理テーブル2
1とアレイブロック管理テーブル22が存在する。これ
らのテーブル21、22はHDD−0(2)に格納され
ている。
【0029】ファイル管理テーブル21はファイル番号
(1から100)21aと、ファイルが存在するか否か
を示す存在フラグ(1は存在する、0は存在しないこと
を示す。)21bと、ファイルデータ用の使用ブロック
数21cと、ファイルデータが記憶されているアレイH
DD内の複数のブロック番号(アレイブロック番号と呼
ぶ。)21dからなり、最大100個のファイルを管理
し得る構造となっている。アレイブロック番号21dは
1から3000までの値をとり、1から1000までは
HDD−1のブロック番号1から1000に対応し、1
001から2000まではHDD−2のブロック番号1
から1000に対応し、2001から3000まではH
DD−3のブロック番号1から1000に対応してい
る。
【0030】アレイブロック管理テーブル22は、アレ
イブロック番号(1から3000)22aと、アレイブ
ロックがファイルのデータ領域として使用されているか
否かを示す使用フラグ22bと、アレイブロック内のデ
ータが全て0か否かを示すクリアフラグ22cとからな
る。使用フラグ22bはその値が1の時に使用されてい
ることを示す。クリアフラグ22cはその値が1の時に
データが全て0(クリア済み)であることを示す。
【0031】図2の例では、ファイル番号21aが1で
あるファイルのデータ用のブロック数は3で、データの
記憶されているアレイブロック番号は1、2、3であ
る。アレイブロック番号1、2、3はHDD−1のブロ
ック番号1、2、3に対応している。また、これらのア
レイブロックはファイルのデータ領域として使用されて
いるため、これらの使用フラグ22bは1に設定されて
いる。またこれらのアレイブロックのクリアフラグ22
cは0と設定されており、データは全て0でないことが
わかる。またアレイブロック番号6の使用フラグ22b
は0であり、ファイル用のデータ領域として使用されて
なく、またクリアフラグ22cは1であり、このアレイ
ブロック内のデータは全て0であることがわかる。
【0032】次に本実施例の動作を説明する。図3は全
体の処理手順を示すフローチャートである。
【0033】まずHDD−0(2)に記憶されているフ
ァイル管理テーブル21およびアレイブロック管理テー
ブル22の各データを読み出し、メモリ3上に設定する
(ステップ301)。
【0034】その後、LAN6上に接続されている端末
からのコマンドが通信制御部5により受信されたか否か
を調べる(ステップ302)。
【0035】コマンドが受信された場合は、コマンドに
従いそれぞれファイル作成処理(ステップ304)(図
4)、ファイル読み出し処理(ステップ306)(図
5)、ファイル書き込み処理(ステップ308)(図
6)、ファイル削除処理(ステップ310)(図7)、
全パージ処理(ステップ311)(図8)を行い、再度
コマンド受信があるかどうかを調べるステップ302に
戻る。コマンドが終了であった場合は、メモリ3上の各
管理テーブル21、22のデータをHDD−0(2)に
書き込み(ステップ313)、処理を終了する。
【0036】コマンドが受信されていなかった場合は、
部分パージ処理(ステップ314)(図9)を行い、再
度コマンド受信があるかどうかを調べるステップ302
に戻る。
【0037】図4はファイル作成処理の手順を示すフロ
ーチャートである。
【0038】ファイル作成処理では、まずファイル管理
テーブル21の各行を上から順に参照し、存在フラグ2
1bが0である行を選択する(ステップ401)。見つ
からなかった場合は、ファイル管理テーブル21が満杯
であるため、エラーステータスを通信制御部5により依
頼元の端末に返信する(ステップ403)。見つかった
場合は、選択された行の存在フラグ21bを1に設定し
(ステップ404)、正常終了ステータスと選択された
行のファイル番号を依頼元の端末に返信し(ステップ4
05)、リターンする。
【0039】例えば、図2に示すファイル管理テーブル
21の状態でファイル作成処理が行われると、ファイル
番号3が選択され、その存在フラグ21bが1に設定さ
れ、依頼元の端末にはファイル番号3が返信される。
【0040】図5はファイル読み出し処理の手順を示す
フローチャートである。
【0041】ファイル読み出し処理では、まず通信制御
部5より端末からのパラメータを取得する(ステップ5
01)。パラメータはファイル番号、オフセットブロッ
ク数、読み出しブロック数で構成される。このパラメー
タは、ファイル番号で指定されるファイルの、オフセッ
トブロック数番目のブロックから、読み出しブロック数
個のブロックデータの読み出しを示す。端末と本装置間
ではブロック単位での読み出しを処理し、ブロック内の
バイト単位での処理は端末側で処理される。
【0042】次に、パラメータで指定されたファイルが
存在するかどうかを調べるために、ファイル管理テーブ
ル21内のファイル番号行の存在フラグ21bを参照す
る(ステップ502)。存在フラグ21bが1である場
合は、ファイルが存在するので次のステップに進む。存
在フラグが0の場合は、ファイルが存在しないため、エ
ラーステータスを通信制御部5により依頼元の端末に返
信し(ステップ503)、リターンする。
【0043】そして、パラメータで指定された読み出し
要求ブロックがファイルサイズ以内かどうかを調べるた
めに(オフセットブロック数+読み出しブロック数)と
(ファイルのブロック数)を比較する(ステップ50
4)。ファイルのブロック数の方が大きいか等しい場合
には、要求がファイルサイズ以内であるため、次のステ
ップに進む。その他の場合は要求がファイルサイズを越
えているため、エラーステータスを通信制御部5により
依頼元の端末に返信し(ステップ503)、リターンす
る。
【0044】その後、ファイル管理テーブル21のファ
イル番号行のアレイブロック番号からパラメータで指定
された領域に対応するものを求める(ステップ50
5)。
【0045】例えばパラメータがファイル番号:1、オ
フセットブロック番号:1、読み出しブロック数:2の
場合は、ファイル管理テーブル21より対応するアレイ
ブロック番号は2と3になる。
【0046】また、パラメータがファイル番号:2、オ
フセットブロック番号:1、読み出しブロック数:2の
場合は、読み出し要求ブロックがファイルサイズを越え
ているため、エラーとなる。
【0047】次に、前記ステップ505で求めたアレイ
ブロック番号からブロックデータが実際に格納されてい
るHDD番号とブロック番号を求め、そこからデータを
読み出し、ワークメモリに格納する(ステップ50
6)。この際、HDDにて読み出しエラーが発生した場
合はパリティ用のHDD−4と他のデータ用のHDDか
らデータを読み出し、データを復元する。
【0048】例えば、アレイブロック番号が2と3の場
合には、HDD−1のブロック番号2と3からブロック
データを読み出す。
【0049】その後、正常終了ステータスとワークメモ
リ内のブロックデータを通信制御部5により依頼元の端
末に返信し(ステップ507)、リターンする。
【0050】図6はファイル書き込み処理の手順を示す
フローチャートである。
【0051】まず通信制御部5より端末からのパラメー
タを取得する(ステップ601)。パラメータはファイ
ル番号、オフセットブロック数、書き込みブロック数、
データブロックで構成される。このパラメータは、ファ
イル番号で指定されるファイルのオフセットブロック数
番目のブロックから、書き込みブロック数個のブロック
データを書き込むことを示す。
【0052】次に、ファイル読み出し処理と同様にパラ
メータで指定されたファイルが存在するかどうかを調べ
る(ステップ602)。
【0053】そして、パラメータで指定された書き込み
要求ブロックがファイルサイズ以内かどうかを調べるた
めに、追加ブロック数=(オフセットブロック数+書き
込みブロック数)−(ファイルのブロック数)を求める
(ステップ603)。追加ブロック数が0より大きい場
合は(ステップ604)、データ領域用のブロックを追
加する必要があるため、図7に示すアレイブロック追加
処理を行う(ステップ605)。このアレイブロック追
加処理からエラーリターンされた場合はアレイブロック
が不足のため、エラーステータスを通信制御部5により
依頼元の端末に返信し(ステップ606)、リターンす
る。追加ブロック数が0以下の場合は、既存のデータブ
ロックに対する書き込みであるため、アレイブロックの
追加処理をスキップする。
【0054】その後、パラメータにより指定された領域
のアレイブロックに対するアレイブロック書き込み処理
(図8)を行う(ステップ607)。
【0055】そして、正常終了ステータスとワークメモ
リ内のブロックデータを通信制御部5により依頼元の端
末に返信し(ステップ608)、リターンする。
【0056】図7はアレイブロック追加処理の手順を示
すフローチャートである。
【0057】まずアレイブロック管理テーブル22内の
使用フラグ22bが0(未使用)である行数を求め、未
使用アレイブロック数なる変数に設定する(ステップ7
01)。この未使用アレイブロック数が、前記ステップ
603で求めた追加ブロック数より少ない場合は(ステ
ップ702)、アレイブロック不足なのでエラーリター
ンする(ステップ703)。未使用アレイブロック数が
追加ブロック数以上である場合は、アレイブロック管理
テーブル22内の使用フラグ22bが0である行を追加
アレイブロック数個選択し、使用フラグ22bを1に設
定する(ステップ704)。そして選択された行のアレ
イブロック番号を、ファイル管理テーブル21のパラメ
ータで指定されたファイル番号行のアレイブロック番号
21dに追加し、ブロック数21cに追加アレイブロッ
ク数を加算し(ステップ705)、正常リターンする。
【0058】例えば、パラメータがファイル番号:2、
オフセットブロック番号:1、書き込みブロック数:2
の場合は、追加ブロック数は(1+2)−2=1の1ブ
ロックとなり、アレイブロック管理テーブル22の使用
フラグ22bが0である6行目のアレイブロック番号6
が選択され、この使用フラグ22bが1に設定され、フ
ァイル管理テーブル21内のファイル番号21aが2で
ある行のブロック数が2から3となり、アレイブロック
番号21dに6が追加され、4、5、6と設定されるこ
とになる。
【0059】図8はアレイブロック書き込み処理の手順
を示すフローチャートである。
【0060】この処理では、まずiなる変数をパラメー
タ内のデータブロック番号を示すものとし、ここに1か
ら書き込みブロック数を設定しながら(ステップ80
2、808)、ブロック単位に書き込み処理を行う。前
記と同じパラメータが指定された場合は、iは1そして
2が順次設定される。
【0061】そしてパラメータ内のデータブロック番号
iに対して、以下の処理を行う。
【0062】まずファイル管理テーブル21内のファイ
ル番号行のアレイブロック番号21dの(i+パラメー
タ内オフセットブロック数)番目の値を求め、これを変
数ABとして設定する(ステップ803)。この変数A
Bで示されるアレイブロックに対してデータの書き込み
を行う。例えば、前記と同じパラメータの場合は、ファ
イル番号が2であるファイルの2番目と3番目のアレイ
ブロック番号であるため、変数ABに5そして6が順次
設定される。
【0063】次に、アレイブロック管理テーブル22内
の変数ABで示されるアレイブロックのクリアフラグ2
2cを参照し(ステップ804)、この値が0(未クリ
ア)の場合は以下の6ステップ処理を行う(ステップ8
05)。
【0064】(1)変数ABで示される値から、対応す
るデータブロックの格納されているHDDのブロックデ
ータを読み出し、ワークメモリ1(WM1)に格納す
る。
【0065】(2)変数ABで示される値から、対応す
るパリティブロックの格納されているHDDのブロック
データを読み出し、ワークメモリ2(WM2)に格納す
る。
【0066】(3)WM1とWM2内のデータ間でxo
r演算を行い、演算結果をワークメモリ3(WM3)に
格納する。
【0067】(4)WM3内のデータとパラメータ内の
iブロック目のデータ間でxor演算を行い、演算結果
をワークメモリ4(WM4)に格納する。
【0068】(5)パラメータ内のiブロック目のデー
タを、変数ABで示されるデータ用HDDのブロックに
書き込む。
【0069】(6)WM4内のデータを、変数ABで示
されるパリティ用HDDのブロックに書き込む。
【0070】また、クリアフラグ22cの値が1(クリ
ア済み)の場合は、以下の4ステップ処理を行う(ステ
ップ806)。
【0071】(1)変数ABで示される値から、対応す
るパリティブロックの格納されているHDDのブロック
データを読み出し、ワークメモリ1(WM1)に格納す
る。
【0072】(2)WM1内のデータとパラメータ内の
iブロック目のデータ間でxor演算を行い、演算結果
をワークメモリ2(WM2)に格納する。
【0073】(3)パラメータ内のiブロック目のデー
タを、変数ABで示されるデータ用HDDのブロックに
書き込む。
【0074】(4)WM2内のデータを、変数ABで示
されるパリティ用HDDのブロックに書き込む。
【0075】この後、アレイブロック管理テーブル22
内の書き込みを行ったアレイブロックのクリアフラグ2
2cに0を設定する(ステップ807)。
【0076】例えば、前記と同じパラメータが指定され
た場合は、アレイブロック番号が5と6に対する書き込
みが行われ、アレイブロック番号が5のクリアフラグは
0であるため、6ステップからなる処理が行われ、アレ
イブロック番号が6のクリアフラグは1であるために、
4ステップからなる処理が行われることになる。このよ
うに、書き込み先のブロック内のデータが全て0である
場合は、処理ステップ数が少なく、さらに使用するワー
クメモリも少ないという長所がある。
【0077】図9はファイル削除処理の手順を示すフロ
ーチャートである。
【0078】ファイル削除処理では、まず通信制御部5
より端末からのパラメータを取得する(ステップ90
1)。パラメータはファイル番号から構成される。
【0079】次に、ファイル読み出し処理と同様にパラ
メータで指定されたファイルが存在するかどうかを調べ
る(ステップ902)。存在しない場合は、エラーステ
ータスを依頼元の端末に返信し(ステップ903)、リ
ターンする。
【0080】ファイルが存在する場合は、ファイルのデ
ータ用に割り当てられているアレイブロックの番号をフ
ァイル管理テーブル21より求め、アレイブロック管理
テーブル22内の対応する使用フラグ22bを0(未使
用)に設定する(ステップ904)。
【0081】そして、ファイル管理テーブル21内のフ
ァイル番号行の存在フラグ21bに0(存在しない)を
設定し、さらにブロック数21cに0を設定し(ステッ
プ905)、最後に正常終了ステータスを依頼元の端末
に返信し(ステップ906)、リターンする。
【0082】例えば、ファイル番号1の削除が指定され
た場合は、アレイブロック番号1と2と3のアレイブロ
ックが解放され、それらの使用フラグ22bは0とな
る。
【0083】ファイル削除直後状態でのこれらのアレイ
ブロックのクリアフラグ22cは0のままである。これ
らのアレイブロックがファイルのデータ領域として追加
されて書き込みが行われると、従来例のように処理ステ
ップが6となってしまい、性能劣化の原因となってしま
う。そこで使用フラグ22bが0(未使用)で、クリア
フラグ22cが0(未クリア)状態のアレイブロックに
対して、ブロック内データをクリアする処理(これをパ
ージ処理と呼ぶことにする。)を適宜行うことで、書き
込みで6ステップかかっていたものを4ステップに減少
させることが可能となる。
【0084】図10は全パージ処理の手順を示すフロー
チャートである。
【0085】この全パージ処理とは、端末からの要求に
より、未使用状態でしかも未クリア状態である装置内の
全てのアレイブロックに対するパージ処理を行うもので
ある。この要求は夜間などの装置に対するアクセス頻度
の少ない時や、システムの立ち上げ時や、立ち下げ直前
などに行われる。
【0086】ABなる変数に1から3000までのアレ
イブロック番号を順番に設定し(ステップ1001)、
各アレイブロックに対して下記の処理を行う。
【0087】まず、アレイブロック管理テーブル22よ
りAB変数で示されるアレイブロックの使用フラグ22
bを参照する(ステップ1002)。この値が1(使
用)の場合は次のアレイブロックに進む。
【0088】また使用フラグ22bの値が0(未使用)
の場合は、次にクリアフラグ22cを参照し(ステップ
1003)、この値が1(クリア済み)の場合は、次の
アレイブロックに進む。
【0089】そして使用フラグ22bが0(未使用)
で、クリアフラグ22cが0(未クリア)であるアレイ
ブロックに対して次の処理を行う(ステップ100
4)。
【0090】(1)変数ABで示される値から、対応す
るデータブロックの格納されているHDDのブロックデ
ータを読み出し、ワークメモリ1(WM1)に格納す
る。
【0091】(2)変数ABで示される値から、対応す
るパリティブロックの格納されているHDDのブロック
データを読み出し、ワークメモリ2(WM2)に格納す
る。
【0092】(3)WM1とWM2内のデータ間でxo
r演算をおこない、その演算結果をワークメモリ3(W
M3)に格納する。
【0093】(4)WM3内のデータを、変数ABで示
されるパリティ用HDDのブロックに書き込む。
【0094】そして、アレイブロック管理テーブル22
の対応するクリアフラグ22cに1(クリア済み)を設
定し(ステップ1005)、次のアレイブロックに進
む。
【0095】図11は部分パージ処理の手順を示すフロ
ーチャートである。
【0096】この部分パージ処理は、端末からの要求が
無い時に、未使用状態で未クリア状態であるアレイブロ
ックを1個ずつパージ処理するものである。
【0097】この処理は、図10に示した全パージ処理
とほとんど同様なものである。異なる箇所は、全てのア
レイブロックに対して処理を行うのではなく、どれか1
個の未使用で未クリア状態のアレイブロックを選択し、
これに対してのみパージ処理を行い、リターンする点で
ある。
【0098】全パージ処理及び部分パージ処理では、ク
リア済みに設定したアレイブロックのデータ用ブロック
に対しては、全て0であるデータを書き込んでいない。
これは対応するパリティブロックに、このデータブロッ
ク内が全て0なるデータと仮定したデータが書き込まれ
ているためである。このため、HDD読み出しエラー時
に、他のHDDの同一ブロックを読み出してデータを復
元する際、クリアフラグ22cが1であるブロックを読
み出す処理を省略することも可能となる。
【0099】図12はブロックデータ復元処理の手順を
示すフローチャートである。
【0100】この処理はデータ用のブロックを読み出し
エラー時に処理されるものである。まず、復元するアレ
イブロックのアレイブロック番号(AB)から、他の2
台のデータ用HDD内の対応するアレイブロック番号を
求め、AB1とAB2に設定する(ステップ120
1)。例えば、アレイブロック番号1に対しては、アレ
イブロック番号1001と2001が求められる。
【0101】次に、アレイブロックABのパリティブロ
ックを読み出し、ワークメモリ1(WM1)に格納する
(ステップ1202)。例えば、アレイブロック番号1
に対しては、HDD−4の第1ブロックを読み出す。
【0102】そして、アレイブロック管理テーブル22
内の他のデータブロックであるアレイブロックAB1の
クリアフラグ22cを参照し(ステップ1203)、こ
の値が0(未クリア)の場合は次の処理を行う(ステッ
プ1204)。
【0103】(1)アレイブロックAB1のデータブロ
ックをワークメモリ2(WM2)に読み出す。
【0104】(2)WM1とWM2内のデータ間でxo
r演算を行い、演算結果をWM1に格納する。
【0105】クリアフラグ22cが1(クリア済み)の
場合は上記処理をスキップする。
【0106】次に、アレイブロックAB2に対しても同
様な処理を行う(ステップ1205、1206)。
【0107】これらの処理により、WM1内に復元され
たデータが生成されることになる。例えば、図2に示し
たアレイブロック管理テーブル22の状態で、アレイブ
ロック番号が1のブロックでの読み出し時にエラーが発
生し、ブロック内のデータを復元する場合、対応する他
の2台のHDD−2とHDD−3内のアレイブロック
(1001と2001)のクリアフラグ22cは共に1
であるため、HDD−4内の第1ブロックデータを読む
だけで復元できることになる。つまり、データ復元処理
の高速化も可能になるわけである。
【0108】
【発明の効果】以上説明したように本発明のファイル記
憶装置及びそのファイル管理方法によれば、使用されな
くなったデータブロックのデータを事前にクリアしてお
くことで、このデータブロックに対するデータ書き込み
時のパリティデータ生成処理を、書き込みデータとパリ
ティデータとの排他的論理和演算だけで行えるようにな
り、処理速度の大幅な向上を図ることができる。
【0109】また、あるデータブロックからの読み出し
エラーが発生した時のデータ復元処理も、クリア済みの
データブロックのデータとパリティデータとの排他的論
理和演算のみで行うことができ、データ復元処理につい
ても高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明のファイル記憶装置に係る一実施例のデ
ィスクアレイ装置のシステム構成図である。
【図2】図1のディスクアレイ装置にて用いられるテー
ブルの構造を示した図である。
【図3】図1のディスクアレイ装置の全体的な処理手順
を示すフローチャートである。
【図4】ファイル作成処理の手順を示すフローチャート
である。
【図5】ファイル読み出し処理の手順を示すフローチャ
ートである。
【図6】ファイル書き込み処理の手順を示すフローチャ
ートである。
【図7】アレイブロック追加処理の手順を示すフローチ
ャートである。
【図8】アレイブロック書き込み処理の手順を示すフロ
ーチャートである。
【図9】ファイル削除処理の手順を示すフローチャート
である。
【図10】全パージ処理の手順を示すフローチャートで
ある。
【図11】部分パージ処理の手順を示すフローチャート
である。
【図12】ブロックデータ復元処理の手順を示すフロー
チャートである。
【図13】ディスクアレイ装置のRAID方式を説明す
るための図である。
【図14】従来のファイル記憶装置におけるファイル管
理用のテーブルの構成を示す図である。
【符号の説明】
1…CPU、2…HDD−0、3…メモリ、4…アレイ
HDD制御部、5…通信制御部、6…LAN、7…シス
テムバス、21…ファイル管理テーブル、21a…ファ
イル番号、21b…存在フラグ、21c…使用ブロック
数、21d…アレイブロック番号、22…アレイブロッ
ク管理テーブル、22a…アレイブロック番号、22b
…使用フラグ、22c…クリアフラグ。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の第1記憶媒体にファイルのデータ
    をブロック単位で分散して記憶するとともに、第2記憶
    媒体に前記各第1記憶媒体の同一ブロックのデータに対
    するパリティデータをブロック単位で記憶してなるファ
    イル記憶装置において、 前記各第1記憶媒体上の個々のデータブロックがファイ
    ルのデータ領域として使用されているか否かを示す第1
    フラグ情報及び前記個々のデータブロックの内容がクリ
    ア済みか否かを示す第2フラグ情報を記憶するフラグ記
    憶手段と、 前記フラグ記憶手段に記憶された各フラグ情報に基づ
    き、未使用で且つ未クリア状態のデータブロックを検出
    する検出手段と、 前記検出手段により検出された未使用で且つ未クリア状
    態のデータブロックのデータとこのデータブロックに対
    応する前記第2記憶媒体上の前記パリティブロックのパ
    リティデータとに基づいて前記パリティブロックの内容
    を更新し、そのデータブロックに対する第2フラグ情報
    をクリア済みに設定する処理手段と、 第1記憶媒体上のクリア済みのデータブロックに対する
    書き込みが生じた場合、応するパリティブロックのパ
    リティデータと書き込むデータとに基づいて前記パリテ
    ィブロックの内容を更新し、前記第2フラグ情報を未ク
    リア状態に設定するパリティデータ作成手段とを具備す
    ることを特徴とするファイル記憶装置。
  2. 【請求項2】 複数の第1記憶媒体にファイルのデータ
    をブロック単位で分散して記憶するとともに、第2記憶
    媒体に前記各第1記憶媒体の同一ブロックのデータに対
    するパリティデータをブロック単位で記憶してなるファ
    イル記憶装置において、 前記各第1記憶媒体上の個々のデータブロックがファイ
    ルのデータ領域として使用されているか否かを示す第1
    フラグ情報及び前記個々のデータブロックの内容がクリ
    ア済みか否かを示す第2フラグ情報を記憶するフラグ記
    憶手段と、 前記フラグ記憶手段に記憶された各フラグ情報に基づ
    き、未使用で且つ未クリア状態のデータブロックを検出
    する検出手段と、 前記検出手段により検出された未使用で且つ未クリア状
    態のデータブロックのデータとこのデータブロックに対
    応する前記第2記憶媒体上の前記パリティブロックのパ
    リティデータとに基づいて前記パリティブロックの内容
    を更新し、そのデータブロックに対する第2フラグ情報
    をクリア済みに設定する処理手段と、 第1記憶媒体上のデータブロックからの読み出しエラー
    が発生した場合、このデータブロックに対応するパリテ
    ィブロックのパリティデータと前記第2フラグ情報に基
    づいて判断される他の第1記憶媒体上の未クリア状態の
    同一データブロックのデータとに基づいて読み出しエラ
    ーとなったデータブロックのデータとして復元するデー
    タ復元手段とを具備することを特徴とするファイル記憶
    装置。
  3. 【請求項3】 複数の第1記憶媒体にファイルのデータ
    をブロック単位で分散して記憶するとともに、第2記憶
    媒体に前記各第1記憶媒体の同一ブロックのデータに対
    するパリティデータをブロック単位で記憶してなるファ
    イル記憶装置において、 前記各第1記憶媒体上の個々のデータブロックがファイ
    ルのデータ領域として使用されているか否かを示す第1
    フラグ情報を記憶する工程と、 前記個々のデータブロックの内容がクリア済みか否かを
    示す第2フラグ情報を記憶する工程と、 前記第1及び第2のフラグ情報に基づき、未使用で且つ
    未クリア状態のデータブロックを検出する工程と、未使用で且つ未クリア状態の データブロックのデータと
    このデータブロックに対応する前記第2記憶媒体上の前
    記パリティブロックのパリティデータとに基づいて前記
    パリティブロックの内容を更新し、前記データブロック
    に対する第2フラグ情報をクリア済みに設定する工程
    と、 第1記憶媒体上のクリア済みのデータブロックに対する
    書き込みが生じた場合、応するパリティブロックのパ
    リティデータと書き込むデータとに基づいて前記パリテ
    ィブロックの内容を更新し、前記第2フラグ情報を未ク
    リア状態に設定する工程とを有することを特徴とするフ
    ァイル管理方法。
  4. 【請求項4】 複数の第1記憶媒体にファイルのデータ
    をブロック単位で分散して記憶するとともに、第2記憶
    媒体前記各第1記憶媒体の同一ブロックのデータに対
    するパリティデータをブロック単位で記憶してなるファ
    イル記憶装置において、 前記各第1記憶媒体上の個々のデータブロックがファ
    イルのデータ領域として使用されているか否かを示す第
    1フラグ情報を記憶する工程と、 前記個々のデータブロックの内容がクリア済みか否かを
    示す第2のフラグ情報を記憶する工程と、 前記第1及び第2のフラグ情報に基づき、未使用で且つ
    未クリア状態のデータブロックを検出する工程と、未使用で且つ未クリア状態の データブロックのデータと
    このデータブロックに対応する前記第2記憶媒体上の前
    記パリティブロックのパリティデータとに基づいて前記
    パリティブロックの内容を更新し、前記データブロック
    に対する第2フラグ情報をクリア済みに設定する工程
    と、 第1記憶媒体上のデータブロックからの読み出しエラー
    が発生した場合、このデータブロックに対応するパリテ
    ィブロックのパリティデータと前記第2フラグ情報に基
    づいて判断される他の第1記憶媒体上の未クリア状態の
    同一データブロックのデータとに基づいて読み出しエラ
    ーとなったデータブロックのデータとして復元する工程
    とを有することを特徴とするファイル管理方法。
JP05236922A 1993-09-22 1993-09-22 ファイル記憶装置及びそのファイル管理方法 Expired - Lifetime JP3119978B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP05236922A JP3119978B2 (ja) 1993-09-22 1993-09-22 ファイル記憶装置及びそのファイル管理方法
US08/298,275 US5485475A (en) 1993-09-22 1994-08-31 Data storage device and data managing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05236922A JP3119978B2 (ja) 1993-09-22 1993-09-22 ファイル記憶装置及びそのファイル管理方法

Publications (2)

Publication Number Publication Date
JPH0793106A JPH0793106A (ja) 1995-04-07
JP3119978B2 true JP3119978B2 (ja) 2000-12-25

Family

ID=17007743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05236922A Expired - Lifetime JP3119978B2 (ja) 1993-09-22 1993-09-22 ファイル記憶装置及びそのファイル管理方法

Country Status (2)

Country Link
US (1) US5485475A (ja)
JP (1) JP3119978B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0689125B1 (en) * 1994-06-22 2004-11-17 Hewlett-Packard Company, A Delaware Corporation Method of utilizing storage disks of differing capacity in a single storage volume in a hierarchic disk array
JP3639352B2 (ja) * 1995-06-28 2005-04-20 富士通株式会社 波動解析方法及びその装置
US5727197A (en) * 1995-11-01 1998-03-10 Filetek, Inc. Method and apparatus for segmenting a database
US6530036B1 (en) * 1999-08-17 2003-03-04 Tricord Systems, Inc. Self-healing computer system storage
JP2000278290A (ja) * 1999-03-29 2000-10-06 Matsushita Electric Ind Co Ltd ネットワーク管理システム
CN104067240A (zh) * 2012-04-30 2014-09-24 惠普发展公司,有限责任合伙企业 块级存储

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4870643A (en) * 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
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
US5278838A (en) * 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5284478A (en) * 1992-06-08 1994-02-08 Nobles Anthony A Detachable tip optical valvulotome
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks

Also Published As

Publication number Publication date
JPH0793106A (ja) 1995-04-07
US5485475A (en) 1996-01-16

Similar Documents

Publication Publication Date Title
US6859888B2 (en) Data storage array apparatus storing error information without delay in data access, and method, program recording medium, and program for the same
JP2902970B2 (ja) ディスク・アレイにデータを書き込むためのシステムおよび関連する方法
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US6397309B2 (en) System and method for reconstructing data associated with protected storage volume stored in multiple modules of back-up mass data storage facility
JP3242671B2 (ja) レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ
US6701455B1 (en) Remote copy system with data integrity
US7818524B2 (en) Data migration systems and methods for independent storage device expansion and adaptation
CN114415976B (zh) 一种分布式数据存储系统与方法
JPH07320422A (ja) ディスク・アレイ・システムおよび記憶方法並びに制御装置
JPH06208476A (ja) 冗長アレイパリティキャッシングシステム
JP2000508456A (ja) 移動されたデータの完全性を維持しながらraidセットにおけるドライブ数の拡張
JPH05143471A (ja) 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法
US6301711B1 (en) System and method for the network support of full motion video using a redundant array of inexpensive disks
JP3119978B2 (ja) ファイル記憶装置及びそのファイル管理方法
US6678787B2 (en) DASD-free non-volatile updates
KR100463841B1 (ko) 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
JP2006072435A (ja) ストレージシステムおよびデータ記録方法
JPH07261945A (ja) ディスクアレイ装置およびディスクアレイの区分け方法
US20040133741A1 (en) Disk array apparatus and data writing method used in the disk array apparatus
JPH11212728A (ja) 外部記憶サブシステム
JP3288724B2 (ja) ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム
KR19980047273A (ko) 레이드 레벨 5 시스템에서 캐쉬 관리 방법
JP3236166B2 (ja) キャッシュ制御方法および情報処理装置
KR20030073982A (ko) 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법
JP3008801B2 (ja) 記憶装置システムおよびディスクアレイ制御装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000926

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

Free format text: PAYMENT UNTIL: 20081013

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081013

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 13