JPH06266510A - Disk array system and data write method and fault recovery method for this system - Google Patents
Disk array system and data write method and fault recovery method for this systemInfo
- Publication number
- JPH06266510A JPH06266510A JP5051663A JP5166393A JPH06266510A JP H06266510 A JPH06266510 A JP H06266510A JP 5051663 A JP5051663 A JP 5051663A JP 5166393 A JP5166393 A JP 5166393A JP H06266510 A JPH06266510 A JP H06266510A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error correction
- write data
- write
- group
- 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.)
- Pending
Links
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は高性能な入出力動作を可
能とするディスクアレイ装置およびそのためのデータ方
法。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk array device capable of high-performance input / output operation and a data method therefor.
【0002】[0002]
【従来の技術】現在のコンピュータシステムにおいて
は、CPU等の上位側が必要とするデータは2次記憶装
置に格納され、CPUが必要とする時に応じ2次記憶装
置に対してデータの書込み、読みだしを行っている。こ
の2次記憶装置としては一般に不揮発な記憶媒体が使用
され、代表的なものとして磁気ディスク装置、光ディス
クなどがあげられる。以下、ディスク装置をドライブと
呼ぶ。2. Description of the Related Art In a current computer system, data required by a high-order side such as a CPU is stored in a secondary storage device, and data is written into and read from the secondary storage device as needed by the CPU. It is carried out. A non-volatile storage medium is generally used as the secondary storage device, and typical examples thereof include a magnetic disk device and an optical disk. Hereinafter, the disk device is called a drive.
【0003】近年高度情報化に伴い、コンピュータシス
テムにおいて、2次記憶装置の高性能化が要求されてき
た。その一つの解として、多数の比較的容量の小さなド
ライブにより構成されるディスクアレイが考えられてい
る。In recent years, as computerization has advanced, there has been a demand for higher performance secondary storage devices in computer systems. As one solution, a disk array composed of a large number of drives each having a relatively small capacity is considered.
【0004】D.Patterson,G.Gibson,and R.H.Kartz;A C
ase for Redundant Arrays of Inexpensive Disks(RAI
D)において、データを分割して並列に処理を行うディス
クアレイ(レベル3)とデータを分散して、独立に扱う
ディスクアレイ(レベル5)について、その性能および
信頼性の検討結果が報告されている。D. Patterson, G. Gibson, and RHKartz; AC
ase for Redundant Arrays of Inexpensive Disks (RAI
In D), the performance and reliability of the disk array (level 3) that divides data and processes in parallel and the disk array (level 5) that distributes data and handles them independently are reported. There is.
【0005】まず、データを分割して並列に処理を行う
レベル3のディスクアレイについて説明する。ディスク
アレイは多数の比較的容量の小さなドライブにより構成
される。CPUから転送されてきた一つの書き込みデー
タを分割し、分割後の複数のデータからパリティデータ
を作成し、これらのデータを複数のドライブに並列に格
納する。また、読み出す場合は逆に各々のドライブから
分割されたデータを並列に読み込んできてそれらを結合
してCPUへ転送する。複数のデータと誤り訂正用のデ
ータとの群をパリティグループと呼ばれることがある。
本明細書でもこの用語を誤り訂正用データがパリティデ
ータでない場合にも用いる。このパリティデータは分割
後のデータを格納したドライブの中の1台に障害が発生
し、データが読み出せなくなった場合、残りの正常なド
ライブ内のデータとパリティデータから、障害が発生し
たドライブ内のデータを復元するためのものである。デ
ィスクアレイのような多数のドライブにより構成される
装置では、部品点数が増加することにより、障害が発生
する確率が高くなるため、信頼性の向上を図る目的で、
このようにパリティデータを用意する。First, a level 3 disk array that divides data and performs processing in parallel will be described. The disk array is composed of a large number of relatively small capacity drives. One write data transferred from the CPU is divided, parity data is created from a plurality of divided data, and these data are stored in parallel in a plurality of drives. In the case of reading, conversely, the divided data can be read in parallel from each drive, combined and transferred to the CPU. A group of a plurality of data and error correction data may be called a parity group.
In this specification, this term is also used when the error correction data is not parity data. If one of the drives that stores the divided data fails this parity data and the data cannot be read, the data in the remaining normal drive and the parity data are used to recover the data in the failed drive. It is for restoring the data of. In a device composed of a large number of drives such as a disk array, the probability of failure increases due to an increase in the number of parts, so for the purpose of improving reliability,
Parity data is prepared in this way.
【0006】次に、データを分散して、独立に扱うレベ
ル5のディスクアレイについて説明する。これは個々の
データを分割せずに独立に扱い、複数のデータからパリ
ティデータを生成し、これらを多数の比較的容量の小さ
なドライブに分散して格納するものである。このパリテ
ィデータも先に述べたように、データを格納したドライ
ブに障害が発生した場合、その障害ディスク内のデータ
を復元するためのものである。Next, a level 5 disk array in which data is distributed and handled independently will be described. In this method, individual data is treated independently without being divided, parity data is generated from a plurality of data, and these are distributed and stored in a large number of drives having a relatively small capacity. As described above, this parity data is also for restoring the data in the failed disk when a failure occurs in the drive storing the data.
【0007】現在、一般に使用されている汎用大型コン
ピュータシステムの2次記憶装置では、他の読み出し/
書込み要求に当該ドライブが使用されているため、その
ドライブを使用できずに待たされることが多く発生し
た。このディスクアレイではデータを分散して格納して
あるため、読み出し/書込み要求が増加してもディスク
アレイの複数のドライブに分散して処理するため、読み
出し/書込み要求がまたされることが減少する。In the secondary storage device of a general-purpose large-scale computer system which is generally used at present, another read / write operation is performed.
Since the drive is being used for a write request, the drive often cannot be used and is kept waiting. Since data is stored in a distributed manner in this disk array, even if read / write requests increase, they are distributed to and processed by a plurality of drives in the disk array, and therefore read / write requests are less likely to be repeated. .
【0008】これらのディスクアレイでは、現在一般に
使用されている汎用大型コンピュータシステムと同様、
2次記憶装置内では、個々のデータの格納場所(アドレ
ス)は予め指定したアドレスに固定され、CPUから当
該データへ読みだしまたは書込みする場合、この固定さ
れたアドレスへアクセスすることになっている。In these disk arrays, as well as general-purpose large-scale computer systems currently in general use,
In the secondary storage device, the storage location (address) of each data is fixed to a predesignated address, and when reading or writing the data from the CPU, the fixed address is accessed. .
【0009】データを分散して、独立に扱うレベル5タ
イプのディスクアレイでは、書込み時に新しくパリティ
データを作成する際に大きな処理オーバヘッドが必要に
なる。以下それについて説明する。In a level 5 type disk array in which data is distributed and handled independently, a large processing overhead is required when creating new parity data at the time of writing. This will be explained below.
【0010】図11は上記文献で示したD.Pattersonら
が提案したRAIDに述べられている、データを分散し
て、独立に扱うレベル5タイプのディスクアレイにおけ
る、書き込み時のパリティデータ作成方法を示す。この
各アドレスにあるデータは1回の読み出し/書込み処理
でアクセスされる単位で、個々のデータは独立である。
また、RAIDで述べられているアーキテクチャではデ
ータに対するアドレスは固定されている。前述したよう
にこのようなシステムでは、信頼性を向上するためパリ
ティデータを設定することが不可欠である。本システム
では各ドライブ内の同一アドレスのデータによりパリテ
ィデータが作成される。すなわち、ドライブ#1から4
までのアドレス(1.1)のデータによりパリティデー
タが作成され、パリティデータを格納するドライブの
(1.1)に格納される。本システムでは読み出し/書
込み処理は現在の汎用大型計算機システムと同様に各ド
ライブに対し当該データをアクセスする。このようなデ
ィスクアレイにおいて、例えばドライブ#3のアドレス
(2.2)にデータを書き込む場合、まず、ドライブ#
3の(2.2)の旧データと、ドライブ#5の(2.
2)の旧パリティデータを読みだし(ステップ1)、こ
れらと書き込むデータとで排他的論理和をとり、新たな
パリティデータを作成する(ステップ2)。FIG. 11 shows a method of creating parity data at the time of writing in a level 5 type disk array in which data is dispersed and treated independently, which is described in the RAID proposed by D. Patterson et al. Show. The data at each address is a unit accessed by one read / write process, and each data is independent.
In the architecture described in RAID, the address for data is fixed. As described above, in such a system, it is essential to set parity data in order to improve reliability. In this system, parity data is created from the data of the same address in each drive. That is, drives # 1 to 4
Parity data is created from the data of the address (1.1) up to and is stored in (1.1) of the drive that stores the parity data. In this system, the read / write processing accesses the data to each drive, as in the current general-purpose large-scale computer system. In such a disk array, for example, when writing data to the address (2.2) of drive # 3, first, drive #
3 (2.2) old data and drive # 5 (2.
The old parity data of 2) is read (step 1), and the exclusive OR of these and the data to be written is created to create new parity data (step 2).
【0011】パリティデータの作成完了後、書き込みデ
ータをドライブ#3の(2.2)に、新パリティデータ
をドライブ#5の(2.2)に格納する(ステップ
3)。After the creation of the parity data is completed, the write data is stored in the drive # 3 (2.2) and the new parity data is stored in the drive # 5 (2.2) (step 3).
【0012】図12に示すように、レベル5のディスク
アレイでは、データの格納されているドライブ、パリテ
ィデータの格納されているドライブから古いデータとパ
リティデータを読み出す時に、ディスクを平均1/2回
転待ち、それから読みだしてパリティデータを作成し、
この新しく作成したパリティデータとデータを格納する
ため、さらに一回転待たなければならないため、データ
を書き替える場合平均で1.5回転待たなければならな
い。ドライブにおいては1.5回転ディスクの回転を待
つということは非常に大きなオーバヘッドとなる。この
ような書込み時のオーバヘッドを削減するため、書込み
先のアドレスを動的に変換する方法がストレージテクノ
ロジコーポレーション(以下、STK)社から出願され
ているPCT国際公開公報WO 91/16711,W
O 91/20076に開示されている。As shown in FIG. 12, in the level 5 disk array, when reading old data and parity data from the drive in which data is stored and the drive in which parity data is stored, the disk rotates on average 1/2 times. Wait, then read and create parity data,
In order to store this newly created parity data and data, it is necessary to wait one more rotation, and therefore, when rewriting data, it is necessary to wait 1.5 rotations on average. In the drive, waiting for the rotation of the 1.5-turn disk is a very large overhead. In order to reduce such an overhead at the time of writing, a method of dynamically converting a write destination address has been applied from Storage Technology Corporation (hereinafter, STK) company for PCT International Publication WO 91/16711, W.
O 91/20076.
【0013】この従来技術によれば、いずれかの、CP
Uが指定したデータが更新されるときには、そのデータ
を含む仮想トラックに属するデータ全体をキャッシュメ
モリに読み出し、その一部を更新データで更新した上
で、更新後の、仮想トラックに属するデータがキャッシ
ュから追い出されたときに、そのデータを物理トラック
のセクタ単位に分割し、分割後のデータからあるいはそ
れらと他の書き込みデータとから新たなパリティグルー
プを生成し、それをドライブ内の空き領域に書き込むよ
うになっている。この際元の仮想トラックに属していて
データは無効にされる。パリティグループを構成するデ
ータの長さは、ドライブの一つの物理トラックの容量を
有するように定められている。適当なタイミングで、無
効な書き込みデータを含む部分的に無効なシリンダか
ら、有効なデータを収集して他の領域に書き込むことに
より、そのシリンダを空き領域のみからなるシリンダに
するようになっている。According to this prior art, one of the CP
When the data specified by U is updated, the entire data belonging to the virtual track including the data is read into the cache memory, a part of the data is updated with the updated data, and the updated data belonging to the virtual track is cached. When it is evicted from, the data is divided into sector units of the physical track, a new parity group is generated from the divided data or from them and other write data, and it is written to the empty area in the drive. It is like this. At this time, the data belongs to the original virtual track and is invalidated. The length of the data forming the parity group is determined to have the capacity of one physical track of the drive. By collecting valid data from a partially invalid cylinder containing invalid write data and writing it to another area at an appropriate timing, the cylinder is made to be a cylinder consisting of only free area. .
【0014】[0014]
【発明が解決しようとする課題】この方法によれば、パ
リティデータを構成するデータは、物理的トラックの長
さを有するため、パリティグループを形成するまで複数
のデータを保持するキャッシュの容量は大きくなる。According to this method, since the data forming the parity data has the length of the physical track, the capacity of the cache for holding a plurality of data until forming the parity group is large. Become.
【0015】本発明の目的は、更新用のデータを保持す
るより少ない容量のキャッシュメモリを使用して、動的
にアドレス変換により更新データの書き込みを行いうる
データ書き込み方法およびそのための装置を提供するこ
とを目的とする。It is an object of the present invention to provide a data writing method and an apparatus therefor capable of dynamically writing update data by address conversion using a cache memory having a smaller capacity than holding update data. The purpose is to
【0016】[0016]
【課題を解決するための手段】本発明では、複数のディ
スクドライブと、一つまたは複数の上位装置から転送さ
れた、それぞれ該複数のディスクドライブに新に書き込
まれるべき所定の長さのデータあるいは該複数のディス
クドライブに書き込み済みのデータを更新すべき該所定
の長さを有するデータのいずれかからなる複数の書き込
みデータを一時的に保持するキャッシユメモリとを有す
るディスクアレイシステムにおいて、(a) 該キャッシュ
メモリに保持された複数の書き込みデータから、誤り訂
正用データグループを構成するためのデータとして、そ
れぞれ該所定長を有する該所定数に等しい数の書き込み
データを取り出し、取り出された該所定数の書き込みデ
ータから誤り訂正用のデータを生成し、(b) 該所定数の
書き込みデータと該誤り訂正用のデータとを、一つの誤
り訂正データグループとして、該複数のドライブの内の
互いに異なるものに属する複数の空き領域に並列に書き
込み、(c) 該所定数の書き込みデータが、該複数のディ
スクドライブに書き込み済みのデータに対する更新デー
タを含む場合には、その書き込み済みのデータを無効に
する。According to the present invention, a plurality of disk drives and a predetermined length of data transferred from one or a plurality of host devices and newly written to the plurality of disk drives, respectively. In a disk array system having a cache memory for temporarily holding a plurality of write data composed of any of the data having the predetermined length for updating the data already written in the plurality of disk drives, ) From the plurality of write data held in the cache memory, as the data for forming the error correction data group, the write data of the number equal to the predetermined number having the predetermined length is extracted, and the extracted predetermined data is extracted. Error correction data is generated from a predetermined number of write data, and (b) the predetermined number of write data and Error correction data as one error correction data group and are written in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, and (c) the predetermined number of write data If the disk drive contains update data for the written data, the written data is invalidated.
【0017】その後、適当なタイミングで、部分的に無
効となったパリティグループ内の有効なデータを集め
て、新たなパリティグループを生成し、空き領域に書き
込み、元の部分的に無効なパリティグループ内の有効な
データをすべて無効とする。After that, at a proper timing, valid data in the partially invalid parity group is collected to generate a new parity group, and the new parity group is written to the free space, and the original partially invalid parity group is written. Invalidate all valid data in.
【0018】[0018]
【作用】書き替え前のデータ、パリティデータを読みだ
さずにパリティデータを作成でき、書き替えのための旧
データ、旧パリティデータの読み出しが不要となった。[Function] The parity data can be created without reading the data and the parity data before the rewriting, and the reading of the old data and the old parity data for the rewriting becomes unnecessary.
【0019】また、パリティグループを構成するデータ
の長さを上位装置から送られてくる一定のデータ長にし
たので、パリティグループを生成するまでに書き込みデ
ータを保持するためのキャッシュの容量が小さくてよ
い。Further, since the length of the data forming the parity group is set to a constant data length sent from the host device, the capacity of the cache for holding the write data by the time the parity group is generated is small. Good.
【0020】[0020]
(実施例1) (1)概要 以下本発明の一実施例を図1により説明する。 Example 1 (1) Outline One example of the present invention will be described below with reference to FIG.
【0021】本実施例はCPU1、アレイディスクコン
トローラ(以下ADC)2,アレイディスクユニット
(以下ADU)3により構成される。ADU3は複数の
論理グループ10により構成され,個々の論理グループ
10はm台のSCSIドライブ12と、各々のSCSI
ドライブ12とADC2を接続するドライブパス9−1
から4により構成される。なお,このSCSIドライブ
12の数は本発明の効果を得るには、特に制限は無い。
この論理グループ10は障害回復単位で、この論理グル
ープ10内のSCSIドライブ12は、m−1個のデー
タとそれらから生成したパリティデータとからなる誤り
訂正データグループ(以下では、簡単化のためにパリテ
ィグループと呼ぶ)を保持する。This embodiment comprises a CPU 1, an array disk controller (hereinafter ADC) 2 and an array disk unit (hereinafter ADU) 3. The ADU 3 is composed of a plurality of logical groups 10. Each logical group 10 has m SCSI drives 12 and each SCSI group.
Drive path 9-1 connecting drive 12 and ADC 2
To 4 The number of SCSI drives 12 is not particularly limited in order to obtain the effects of the present invention.
This logical group 10 is a failure recovery unit, and the SCSI drive 12 in this logical group 10 is an error correction data group consisting of m-1 data and parity data generated from them (hereinafter, for simplification, Called a parity group).
【0022】次にADC2の内部構造について図1を用
いて説明する。ADC2はチャネルパスディレクタ5と
2個のクラスタ13とバッテリバックアップ等により不
揮発化された半導体メモリであるキャッシュメモリ7に
より構成される。このキャッシュメモリ7にはデータと
アドレス変換用テーブルが格納されている。このキャッ
シュメモリ7およびその中のアドレス変換用テーブルは
ADC2内の全てのクラスタにおいて共有で使用され
る。クラスタ13はADC2内において独立に動作可能
なパスの集合で、各クラスタ13間においては電源、回
路は全く独立となっている。クラスタ13はチャネル、
キャッシュメモリ7間のパスである、チャネルパス6
と、キャッシュメモリ7、SCSIドライブ12間のパ
スであるドライブパス6−1から4が、それぞれ、2個
ずつで構成されている。それぞれのチャネルパス6−1
から4とドライブパス8はキャッシュメモリ7を介して
接続されている。CPU1より発行されたコマンドは外
部インターフェースパス4を通ってADC2のチャネル
パスディレクタ5に発行される。ADC2は2個のクラ
スタ13により構成され、それぞれのクラスタは2個の
パスで構成されるため、ADC2は合計4個のパスによ
り構成される。このことから、ADC2ではCPU1か
らのコマンドを同時に4個まで受け付けることが可能で
ある。そこで、CPU1からコマンドが発行された場合
ADC2内のチャネルパスディレクタ5によりコマンド
の受付が可能かどうか判断する。図2は図1のチャネル
パスディレクタ5と1クラスタ13−1内の内部構造を
示した図である。図2に示すように、CPU1からAD
C2に送られてきたコマンドはインターフェースアダプ
タ15により取り込まれ、マイクロプロセッサ(MP)
20はクラスタ内の外部インターフェースパス4の中で
使用可能なパスがあるかを調べ、使用可能な外部インタ
ーフェースパス4がある場合はMP20はチャネルパス
スイッチ16を切り換えてコマンドの受付け処理を行な
い、受け付けられない場合は受付不可の応答をCPU1
へ送る。Next, the internal structure of the ADC 2 will be described with reference to FIG. The ADC 2 is composed of a channel path director 5, two clusters 13 and a cache memory 7 which is a non-volatile semiconductor memory such as a battery backup. The cache memory 7 stores data and an address conversion table. The cache memory 7 and the address conversion table therein are shared by all the clusters in the ADC 2. The cluster 13 is a set of paths that can operate independently in the ADC 2, and the power supplies and circuits are completely independent between the clusters 13. Cluster 13 is a channel,
Channel path 6 which is a path between the cache memories 7.
2 and each of the drive paths 6-1 to 4 which are paths between the cache memory 7 and the SCSI drive 12 are configured. Each channel path 6-1
4 to drive path 8 are connected via a cache memory 7. The command issued by the CPU 1 is issued to the channel path director 5 of the ADC 2 through the external interface path 4. The ADC 2 is composed of two clusters 13, and each cluster is composed of two paths. Therefore, the ADC 2 is composed of a total of four paths. From this, the ADC 2 can simultaneously accept up to 4 commands from the CPU 1. Therefore, when a command is issued from the CPU 1, it is determined whether the command can be accepted by the channel path director 5 in the ADC 2. FIG. 2 is a diagram showing the internal structure of the channel path director 5 and one cluster 13-1 of FIG. As shown in FIG. 2, CPU 1 to AD
The command sent to C2 is captured by the interface adapter 15, and the microprocessor (MP)
20 checks whether there is a usable path among the external interface paths 4 in the cluster, and if there is a usable external interface path 4, the MP 20 switches the channel path switch 16 to perform command acceptance processing and acceptance. If it is not possible, the CPU1 gives a response that the request cannot be accepted.
Send to.
【0023】レベル3のRAIDでは、基本的には、複
数の書き込みデータから誤り訂正用のデータ、例えばパ
リティデータを生成し、上記複数の書き込みデータと誤
り訂正用のデータとを、一つの誤り訂正データグループ
として複数のドライブに分散して記憶される。In Level 3 RAID, basically, error correction data, for example, parity data is generated from a plurality of write data, and the plurality of write data and error correction data are combined into one error correction data. The data groups are distributed and stored in a plurality of drives.
【0024】誤り訂正用のデータには、パリティデータ
以外のデータも使用可能である。しかし以下では、表現
の簡単化のために、パリティデータ以外のデータを使用
する場合を含めて、誤り訂正用のデータを単にパリティ
データと呼び、誤り訂正データグループをパリティグル
ープと呼ぶ。Data other than parity data can be used as the error correction data. However, in the following, for simplification of expression, error correction data will be simply referred to as parity data, and error correction data group will be referred to as parity group, including the case where data other than parity data is used.
【0025】本実施例の概略的な動作は以下のとおりで
ある。The schematic operation of this embodiment is as follows.
【0026】CPUから転送された書き込みデータを上
記第1の領域に書き込む方法は、基本的には、従来のレ
ベル5のRAIDによる方法に従う。The method of writing the write data transferred from the CPU in the first area basically follows the conventional level 5 RAID method.
【0027】すなわち、複数の書き込みデータをキャッ
シュメモリ7に保持し、保持された所定数のそれぞれ物
理ドライブのレコード長に等しい長さの書き込みデータ
からパリティデータを生成し、これらのデータをパリテ
ィグループとして、いずれかの論理グループ12内の複
数のドライブに設けられた第1の領域内に分散して書き
込む。That is, a plurality of write data are held in the cache memory 7, parity data is generated from the held write data having a length equal to the record length of each physical drive, and these data are set as a parity group. , Writing is dispersed in the first area provided in a plurality of drives in any of the logical groups 12.
【0028】書き込み済みのデータの読み出しをCPU
から要求されたときには、そのデータのみを選択的に読
み出し、キャッシュメモリ7を介してCPUに送る。The CPU reads the written data.
When it is requested by the CPU, only that data is selectively read and sent to the CPU via the cache memory 7.
【0029】書き込み済みのデータを更新するデータが
CPUから転送されたときには、その書き込み済みのデ
ータとその書き込み済みのデータが属するパリティグル
ープ内のパリティデータをキャッシュメモリ7に読み出
し、これらの読み出されたデータと更新用のデータか
ら、新たなパリティデータを生成し、この更新用のデー
タと新たなパリティデータでもって、古い書き込みデー
タと古いパリティデータを書き換える。従って、元のパ
リティグループ内のデータが部分的に更新されることに
なる。When the data for updating the written data is transferred from the CPU, the written data and the parity data in the parity group to which the written data belongs are read to the cache memory 7, and these are read. The new parity data is generated from the updated data and the update data, and the old write data and the old parity data are rewritten with the update data and the new parity data. Therefore, the data in the original parity group will be partially updated.
【0030】これに対して、CPUから転送された書き
込みデータを上記第2の領域に書き込む方法は、本実施
例で特徴的である。すなわち、CPUから転送され、キ
ャッシュメモリ7に保持された書き込みデータは、いず
れかの論理グループに書き込まれているデータを書き換
える更新用のデータであるか否かにかかわらず、それぞ
れレコード長に等しい、該所定数分集められ、それらか
らパリティデータが生成され、新たなパリティデータグ
ループとして、いずれかの論理グループ12内の複数の
ドライブ内の設けた第2の領域内の空き領域に分散して
記憶される。この結果、従来技術の問題のところで述べ
た、書き込みデータを更新するときのオーバヘッドは減
少する。On the other hand, the method of writing the write data transferred from the CPU in the second area is characteristic of this embodiment. That is, the write data transferred from the CPU and held in the cache memory 7 is equal to the record length, regardless of whether the write data is data for rewriting the data written in any logical group. A predetermined number of the data are collected, parity data is generated from them, and a new parity data group is distributed and stored in a free area in a second area provided in a plurality of drives in one of the logical groups 12. To be done. As a result, the overhead of updating the write data described in the section of the prior art is reduced.
【0031】この複数の書き込まれたデータのうちのい
ずれか一つが、書き込み済みのデータを更新するデータ
であるときには、その書き込み済みのデータが無効にさ
れる。この結果、その書き込み済みのデータが属してい
たパリティグループは、部分的に無効にされることにな
る。When any one of the plurality of written data is data for updating the written data, the written data is invalidated. As a result, the parity group to which the written data belongs is partially invalidated.
【0032】以上の書き込み処理を複数のパリティグル
ープに対して行なうと、論理グループ内の空き領域が減
少する。このため、本実施例では、部分的に無効となっ
た、パリティグループ内の有効なデータをキャッシュメ
モリ7に集め、それらから新たなパリティグループを作
り、空き領域に記憶する。この収集が完了した、部分的
に無効なパリティグループは、空き領域として新たなパ
リティグループの書き込みにその後使用される。When the above write processing is performed on a plurality of parity groups, the free area in the logical group decreases. Therefore, in this embodiment, valid data in the parity group, which has become partially invalid, is collected in the cache memory 7, a new parity group is created from them, and stored in a free area. The partially invalid parity group for which this collection has been completed is subsequently used as a free area for writing a new parity group.
【0033】このように、第2の領域にCPUから指定
されたあるアドレスを有するデータを書き込んだ後、そ
のアドレスを有する別の書き込みデータがCPUから転
送された場合、後のデータは、前のデータが書き込まれ
た、ドライブ内位置とは異なる位置に記憶される。つま
り、CPUが指定するアドレスを動的にドライブ内アド
レスに変換する。従って、以下では、第2の領域を、動
的アドレス変換をする領域とも呼ぶ。In this way, when data having a certain address designated by the CPU is written in the second area and then another write data having the address is transferred from the CPU, the latter data is the former data. The data is stored in a position different from the position in the drive where the data is written. That is, the address specified by the CPU is dynamically converted into the in-drive address. Therefore, in the following, the second area is also referred to as an area for dynamic address translation.
【0034】また、本実施例では、更新されるデータは
ドライブからは読み出されないで、無効にされる。この
ため、前述の国際公開公報に記載された動的変換とはこ
となり、データの更新を高速に行ない得る。Further, in this embodiment, the updated data is not read from the drive and is invalidated. Therefore, unlike the dynamic conversion described in the above-mentioned International Publication, data can be updated at high speed.
【0035】(2)アドレス変換テーブル 本実施例ではADU3を構成するSCSIドライブ12
はSCSIインターフェースのドライブを使用する。C
PU1をIBMシステム9000シリーズのような大型
汎用計算機とした場合、CPU1からはIBMオペレー
ティングシステム(OS)で動作可能なチャネルインタ
ーフェースのコマンド体系にのっとってコマンドが発行
される。そこで、SCSIドライブ12をSCSIドラ
イブを使用した場合、CPU1からのコマンドを、SC
SIインターフェースのコマンド体系にのっとったコマ
ンドに変換する必要が生じる。この変換はコマンドのプ
ロトコル変換と、アドレス変換に大きく分けられる。(2) Address conversion table In this embodiment, the SCSI drive 12 that constitutes the ADU 3
Uses a SCSI interface drive. C
When PU1 is a large-scale general-purpose computer such as the IBM System 9000 series, the CPU 1 issues commands according to the command system of the channel interface operable by the IBM operating system (OS). Therefore, if a SCSI drive is used as the SCSI drive 12, the command from the CPU 1
It becomes necessary to convert the command into a command based on the command system of the SI interface. This conversion is roughly divided into command protocol conversion and address conversion.
【0036】以下にアドレス変換用のテーブルについて
説明する。The address conversion table will be described below.
【0037】以下では、CPU1から転送されるデータ
長はドライブの1セクタ長に等しいか、又はそのn倍
(nは1より大きい整数)とする。セクタ長のn倍の書
き込みデータ(レコード)を本実施例では、セクタ長の
m倍(mはnより小さい整数)に等しい長さの複数のデ
ータ(ブロック)に分割して処理する。しかし、以下で
は、簡単化のために、CPU1から転送されたデータの
レコード長が常に一定な場合についてのみ説明する。C
PU1から指定されるアドレスは、図13に示すように
データが格納されているトラックが所属するシリンダの
位置とそのシリンダ内において当該データが格納されて
いるトラックを決定するヘッドアドレスと、そのトラッ
ク内のレコードの位置を特定する。具体的には要求デー
タが格納されている当該ドライブの番号(ドライブ番
号)と当該ドライブ内のシリンダ番号であるシリンダア
ドレス(CC)とシリンダにおいてトラックを選択する
ヘッドの番号であるヘッドアドレス(HH)とレコード
アドレス(R)からなるCCHHRである。従来のCK
Dフォーマット対応の磁気ディスクサブシステム(IB
M3990−3390)ではこのアドレスに従ってドラ
イブへアクセスすれば良い。しかし、本実施例では複数
のSCSIドライブ12により従来のCKDフォーマッ
ト対応の磁気ディスクサブシステムを論理的にエミュレ
ートする。つまり、ADC2は複数のSCSIドライブ
12が、従来のCKDフォーマット対応の磁気ディスク
サブシステムで使用されているドライブ1台に相当する
ようにCPU1にみせかける。このため、CPU1から
指定してきたアドレス(CCHHR)をSCSIドライ
ブのアドレスにMP20が変換する。このアドレス変換
には図3に示すようなアドレス変換用のテーブル70
(以下アドレステーブルとする)が使用される。ADC
2内のキャッシュメモリ7には、その内部の適当な領域
にこのアドレステーブル70が格納されている。本実施
例では、CPU1が指定してくるドライブはCKDフォ
ーマット対応の単体ドライブである。しかし、本発明で
はCPU1は単体と認識しているドライブが、実際は複
数のSCSIドライブにより構成されるため、論理的な
ドライブとして定義される。このため、ADC2のMP
20はCPU1より指定してきたCPU指定アドレス7
1(これはドライブ番号74とCCHHR75からな
る)をSCSIドライブ12に対するSCSIドライブ
アドレス72(これはSCSIドライブ番号77とその
SCSIドライブ内のアドレス(以下SCSI内Add
rとする)78からなる)に変換する。アドレステーブ
ル70はCPU1が指定するCPU指定アドレス71と
それに対応する、実際にデータが格納されているSCS
Iドライブ12内のアドレス(SCSIドライブアドレ
ス)72と、そのデータに対応したパリティデータの格
納されているパリティドライブアドレス73とキャッシ
ュメモリ7内のアドレス(キャッシュアドレス)81
と、キャッシュメモリ7内に当該データが存在するかど
うかのキャッシュフラグ82が格納される。このキャッ
シュフラグ82はオン(1)の場合キャッシュメモリ7
内にデータが存在していることを示し、オフ(0)の場
合はキャッシュメモリ7内にデータが存在していないこ
とを示す。In the following, the data length transferred from the CPU 1 is equal to one sector length of the drive or n times that (n is an integer greater than 1). In the present embodiment, the write data (record) having n times the sector length is divided into a plurality of data (blocks) having a length equal to m times the sector length (m is an integer smaller than n) and processed. However, for simplicity, only the case where the record length of the data transferred from the CPU 1 is always constant will be described below. C
The address designated by PU1 is, as shown in FIG. 13, the position of the cylinder to which the track in which the data is stored belongs, the head address that determines the track in which that data is stored, and the inside of that track. Specify the position of the record. Specifically, the number (drive number) of the drive in which the requested data is stored, the cylinder address (CC) that is the cylinder number in the drive, and the head address (HH) that is the number of the head that selects a track in the cylinder. And the record address (R). Conventional CK
D format compatible magnetic disk subsystem (IB
In M3990-3390), the drive may be accessed according to this address. However, in this embodiment, a plurality of SCSI drives 12 logically emulate a conventional magnetic disk subsystem compatible with the CKD format. That is, the ADC 2 makes the CPU 1 appear as if the plurality of SCSI drives 12 correspond to one drive used in the conventional magnetic disk subsystem compatible with the CKD format. Therefore, the MP20 converts the address (CCHHR) designated by the CPU1 into the address of the SCSI drive. For this address conversion, a table 70 for address conversion as shown in FIG. 3 is used.
(Hereinafter referred to as address table) is used. ADC
The address table 70 is stored in an appropriate area inside the cache memory 7 in the memory 2. In this embodiment, the drive designated by the CPU 1 is a single drive compatible with the CKD format. However, in the present invention, the drive that the CPU 1 recognizes as a single unit is actually composed of a plurality of SCSI drives, and thus is defined as a logical drive. Therefore, the MP of ADC2
20 is the CPU designated address 7 designated by the CPU 1.
1 (which consists of drive number 74 and CCHHR 75) is the SCSI drive address 72 for the SCSI drive 12 (this is the SCSI drive number 77 and the address within that SCSI drive (hereinafter referred to as Add in SCSI).
r) 78)). The address table 70 has a CPU designated address 71 designated by the CPU 1 and an SCS that actually stores data corresponding to it.
An address (SCSI drive address) 72 in the I drive 12, a parity drive address 73 in which parity data corresponding to the data is stored, and an address (cache address) 81 in the cache memory 7
Then, a cache flag 82 indicating whether or not the data exists in the cache memory 7 is stored. When the cache flag 82 is on (1), the cache memory 7
Indicates that there is data in the cache memory, and if it is off (0), it indicates that there is no data in the cache memory 7.
【0038】また、アドレステーブル70には動的アド
レス変換を行なう場合の図4に示す動的アドレス変換テ
ーブル90へのポインタ(DMポインタ)76が格納さ
れる。SCSIドライブアドレス72はデータの格納さ
れているSCSIドライブの番号(SCSIドライブ番
号)77とSCSI内Addr78(これはSCSIド
ライブ内のシリンダアドレス、ヘッドアドレス、レコー
ド番号、セクタ数からなる)により構成されており、パ
リティドライブアドレス73にはそのデータに対応した
パリティデータの格納されているSCSIドライブの番
号(パリティドライブ番号)79とパリティデータの格
納されているSCSIドライブ内のアドレス(以下パリ
ティデータ内Addrとする)80(これはパリティド
ライブ内のシリンダアドレス、ヘッドアドレス、レコー
ド番号、セクタ数からなる)が格納される。なお、アク
セスフラグ84は、実施例2で使用するものである。Further, the address table 70 stores a pointer (DM pointer) 76 to the dynamic address conversion table 90 shown in FIG. 4 when performing dynamic address conversion. The SCSI drive address 72 is composed of the SCSI drive number (SCSI drive number) 77 in which data is stored and the SCSI Addr 78 (this is composed of the cylinder address, head address, record number, and sector number in the SCSI drive). In the parity drive address 73, the SCSI drive number (parity drive number) 79 in which the parity data corresponding to the data is stored and the address in the SCSI drive in which the parity data is stored (hereinafter referred to as Addr in parity data) 80 (which is composed of a cylinder address, a head address, a record number, and the number of sectors in the parity drive) is stored. The access flag 84 is used in the second embodiment.
【0039】キャッシュアドレス81はDMポインタ7
6により対応するSCSIドライブアドレス72により
決定したデータが、キャッシュメモリ7内に有る場合
は、このデータのキャッシュメモリ7内のアドレスを登
録しておく。また、この様にキャッシュメモリ7内に当
該データが格納されている場合は、アドレステーブル7
0と同様にキャッシュフラグ82をオン(1)とする。
無効フラグはDMポインタ76に対応するSCSIドラ
イブアドレス72により決定したデータが有効であるか
無効であるかを示すフラグで、無効である場合はオン
(1)が登録される。ドライブフラグはドライブ内に書
き込まれているかどうかを示すフラグで、オン(1)の
場合はこのデータはドライブに書き込まれており、オフ
(0)の場合は、まだドライブには書き込まれていない
ことを示す。The cache address 81 is the DM pointer 7
If the data determined by the corresponding SCSI drive address 72 in 6 exists in the cache memory 7, the address of this data in the cache memory 7 is registered. If the data is stored in the cache memory 7 in this way, the address table 7
Similarly to 0, the cache flag 82 is turned on (1).
The invalid flag is a flag indicating whether the data determined by the SCSI drive address 72 corresponding to the DM pointer 76 is valid or invalid, and when invalid, ON (1) is registered. The drive flag is a flag indicating whether or not the data is written in the drive. When it is on (1), this data has been written to the drive, and when it is off (0), it has not been written to the drive yet. Indicates.
【0040】なお、アドレステーブル70と動的アドレ
ス変換テーブル90はシステムの電源をオンした時に、
MP20により論理グループ10内のある特定のSCS
Iドライブ12から、キャッシュメモリ7にCPU1の
関与なくして自動的に読み込まれる。一方,電源をオフ
する時は、MP20によりキャッシュメモリ7内のアド
レステーブル70を、読み込んできたSCSIドライブ
12内の所定の場所にCPU1の関与なくして自動的に
格納する。The address table 70 and the dynamic address conversion table 90 are stored in the address table 70 and the dynamic address conversion table 90 when the system is powered on.
A specific SCS in the logical group 10 by the MP20
It is automatically read from the I drive 12 into the cache memory 7 without involvement of the CPU 1. On the other hand, when the power is turned off, the MP20 automatically stores the address table 70 in the cache memory 7 at a predetermined location in the read SCSI drive 12 without involvement of the CPU 1.
【0041】(3)動的アドレス変換を行う領域とその
他の領域の確保 以下、本実施例の処理を詳細に説明する。(3) Securing area for dynamic address conversion and other areas The processing of this embodiment will be described in detail below.
【0042】まず、ユーザは、ディスクアレイを使用す
る前に動的アドレス変換を行なうデータを格納する領域
と、通常のレベル5で処理する領域をCPU1を介して
設定する。First, the user sets, via the CPU 1, an area for storing data for performing dynamic address translation before using the disk array and an area for normal level 5 processing.
【0043】本実施例による動的にアドレス変換を行な
うと、空き領域を予め用意しておかなければならず、ま
た、処理中に空き領域が無くなった場合は詰め変えを行
い、空き領域を確保しなければならない。このため、本
実施例では非常にランダム性の高いアクセスが生じるデ
ータについては詰め変えが頻繁に発生するため、なるべ
く動的にアドレス変換を行なわない。そこで、ユーザは
動的にアドレス変換を行うことで性能向上が図れるシー
ケンシャルデータの量を予め調査し、動的アドレス変換
を行なう領域を設定する。設定方法は、初期設定時にユ
ーザは確保したい領域をCPU指定アドレスの特定の範
囲の形でADC2に申請する。ADC2ではMP20が
図3、4に示すように、このユーザが要求する動的アド
レス変換を行なう領域の大きさに見合う領域を、SCS
Iドライブ12内に確保し、このSCSIドライブ12
内に確保した領域のアドレス(SCSI内Addr7
8)を動的アドレス変換テーブル90に登録する。MP
1 20はアドレステーブル70の一つの行と動的アド
レス変換テーブル90の一つの行との間にリンクをはる
ために、それぞれに同じ値のDMポインタ76をセット
する。上述のCPU指定範囲に属するCPU指定アドレ
スを特定アドレスと呼ぶ。後にCPU1からデータの書
き込みを要求するときに、動的アドレス変換を行う場
合、前述のCPU指定範囲に属する特定アドレスを書き
込み先として指定したとき、このCPU指定アドレス
は、アドレステーブル70内のDMポインタ76が設定
されている一つの行に登録される。上記CPU指定範囲
に属さないCPU指定アドレスが書き込み要求で指定さ
れたときには、アドレステーブル70内の、DMポイン
タ76が設定されていない一つの行にこのCPU指定ア
ドレスが登録される。また、動的アドレス変換はシーケ
ンシャルデータのみでなく、データ圧縮を行なうデータ
に関しても動的アドレス変換を行なう領域に格納する。When the address is dynamically converted according to the present embodiment, an empty area must be prepared in advance, and when the empty area is exhausted during processing, refilling is performed to secure the empty area. Must. For this reason, in the present embodiment, refilling frequently occurs for data that causes access with extremely high randomness, and therefore address translation is not performed as dynamically as possible. Therefore, the user preliminarily investigates the amount of sequential data that can improve the performance by dynamically performing address conversion, and sets an area for performing dynamic address conversion. As a setting method, at the time of initial setting, the user applies to the ADC 2 the area to be secured in the form of a specific range of the CPU designated address. As shown in FIGS. 3 and 4, in the ADC 2, as shown in FIGS. 3 and 4, the MPS 20 creates an area corresponding to the size of the area for performing the dynamic address translation requested by the user.
Secured in the I drive 12, this SCSI drive 12
Address of area secured in (Addr7 in SCSI
8) is registered in the dynamic address translation table 90. MP
In order to establish a link between one row of the address table 70 and one row of the dynamic address translation table 90, 120 sets the DM pointers 76 of the same value to each row. The CPU designated address belonging to the above-mentioned CPU designated range is called a specific address. When performing dynamic address conversion when the CPU 1 requests data writing later, when a specific address belonging to the above-mentioned CPU-specified range is specified as the write destination, this CPU-specified address is the DM pointer in the address table 70. 76 is registered in one set line. When a CPU-specified address that does not belong to the CPU-specified range is specified by the write request, this CPU-specified address is registered in one row in the address table 70 where the DM pointer 76 is not set. In the dynamic address conversion, not only sequential data but also data for data compression is stored in the area for dynamic address conversion.
【0044】動的アドレス変換を行う領域は、各論理グ
ループ10を構成する複数のドライブ内の同じアドレス
範囲の領域に分散して構成する。それぞれの領域は、そ
れぞれセクタ単位の大きさを有する複数の領域から構成
してもよく、あるいはシリンダ単位の大きさを有する複
数の領域から構成してもよい。この様に領域を設定され
た後、実際の処理としては、CPU1が指定してきたア
ドレス(CPU指定アドレス71)をMP20がキャッ
シュメモリ7内のアドレステーブル70によりアドレス
変換する際、CPU指定アドレス71が動的アドレス変
換を行なう領域のアドレス(特定アドレス)かどうかを
DMポインタ76を参照し、特定アドレスのデータであ
れば、動的アドレス変換を行なうように処理し、特定ア
ドレスでないアドレスのデータであれば通常のレベル5
のように処理する。Areas for dynamic address translation are distributed and formed in areas of the same address range in a plurality of drives forming each logical group 10. Each area may be composed of a plurality of areas each having a size of a sector unit, or may be composed of a plurality of areas each having a size of a cylinder unit. After the area is set in this way, the actual processing is that when the MP 20 performs address conversion by the address table 70 in the cache memory 7, the address designated by the CPU 1 (CPU designated address 71) The DM pointer 76 is referred to as to whether the address is the address (specific address) of the area where the dynamic address conversion is performed. If the data is the specific address, the data is processed so that the dynamic address conversion is performed. If normal level 5
Process as.
【0045】(4)データ書き込み動作の概要 以上のような動的アドレス変換を行なう領域とレベル5
の領域を設定した後、以下のようなデータの書き込み処
理を行なう。(4) Outline of data write operation Area and level 5 for performing the dynamic address conversion as described above
After setting the area, the following data write processing is performed.
【0046】CPU1から書き込み命令が発行されたと
する。まず、ADC2のいずれかのMP20はCPU1
からCPU指定のドライブ番号と、書込みデータとCP
U指定アドレス71を指定する書き込みコマンドを受け
取った後、そのMP20が所属するクラスタ13内の各
チャネルパス6において処理可能かどうかを調べ、可能
な場合は処理可能だという応答をCPU1へ返す。CP
U1では処理可能だという応答を受け取った後にADC
2へデータを転送する。この時、ADC2ではMP20
の指示によりチャネルパスディレクタ5において、チャ
ネルパススイッチ16が当該外部インターフェースパス
4とインタフェースアダプタ15を当該チャネルパス6
と接続しCPU1とADC2間の接続を確立する。CP
U1とADC2間の接続を確立後CPU1からのデータ
転送を受け付ける。CPU1から転送されてきたデータ
はMP20の指示により、チャネルインタフェース21
によりプロトコル変換を行ない、外部インターフェース
パス4での転送速度からADC2内での処理速度に速度
調整する。チャネルインタフェース21におけるプロト
コル変換および速度制御の完了後、データはDCC22
によるデータ転送制御を受け、圧縮回路27に転送され
る。It is assumed that a write command is issued from the CPU 1. First, one of MP20s of ADC2 is CPU1
To CPU specified drive number, write data and CP
After receiving the write command for designating the U-designated address 71, it checks whether processing is possible in each channel path 6 in the cluster 13 to which the MP 20 belongs, and if possible, returns a response indicating that processing is possible to the CPU 1. CP
ADC after receiving a response that U1 can process
Transfer the data to 2. At this time, the ADC2 has MP20
In the channel path director 5, the channel path switch 16 connects the external interface path 4 and the interface adapter 15 to the channel path 6
To establish a connection between the CPU 1 and the ADC 2. CP
After establishing the connection between U1 and ADC2, the data transfer from CPU1 is accepted. The data transferred from the CPU 1 is transferred to the channel interface 21 according to the instruction from the MP 20.
The protocol conversion is performed according to, and the speed is adjusted from the transfer speed in the external interface path 4 to the processing speed in the ADC 2. After the protocol conversion and speed control in the channel interface 21 are completed, the data is stored in the DCC 22.
Then, the data is transferred to the compression circuit 27 in accordance with the data transfer control.
【0047】データ圧縮を行なうデータについては圧縮
回路27に転送されてきたデータはMP20の指示によ
りデータ圧縮される。Regarding the data to be compressed, the data transferred to the compression circuit 27 is compressed according to the instruction of the MP20.
【0048】圧縮回路27により圧縮されたデータは、
チヤネルアダプタ24に転送され、そのアダプタ24に
よりキャッシュメモリ7内に格納される。データ圧縮を
行なわないデータはDCCから圧縮回路27内のスルー
パスを通りチャネルアダプタ24に転送され、圧縮デー
タと同様にキャッシュメモリ7内に格納される。書き込
みデータを格納するキャッシュメモリ7はバッテリ等に
より不揮発化されている方が好ましい。この様にキャッ
シュメモリ7にデータを格納したのをMP20が確認し
たら、MP20は書込み処理の完了報告をCPU1に対
し報告する。The data compressed by the compression circuit 27 is
It is transferred to the channel adapter 24 and stored in the cache memory 7 by the adapter 24. The data which is not compressed is transferred from the DCC to the channel adapter 24 through the through path in the compression circuit 27 and stored in the cache memory 7 in the same manner as the compressed data. The cache memory 7 for storing the write data is preferably made non-volatile by a battery or the like. When the MP 20 confirms that the data is stored in the cache memory 7 in this way, the MP 20 reports a completion report of the writing process to the CPU 1.
【0049】このような動作を繰り返して、複数の書き
込みデータが、キャッシュメモリ7に書き込まれる。こ
の際、その書き込みデータに対して指定されたアドレス
が前述のCPU指定アドレスの特定の範囲に属するもの
か否かをアドレステーブル70に基づいて判断され、そ
の結果を用いて、これらの書き込みデータは、動的書き
込み領域に書き込むべきデータのグループとそうでない
データのグループに分かれてキャッシュメモリ7内に記
憶される。これらの書き込みデータは、それぞれのグル
ープ毎に処理される。By repeating such an operation, a plurality of write data are written in the cache memory 7. At this time, it is determined based on the address table 70 whether or not the address designated for the write data belongs to the specific range of the CPU designated address, and the result is used to determine the write data. , Are stored in the cache memory 7 in groups of data to be written in the dynamic write area and groups of data not to be written. These write data are processed for each group.
【0050】動的アドレス変換をしない領域に書き込ま
れるべきデータについては以下のように処理される。The data to be written in the area where the dynamic address translation is not performed is processed as follows.
【0051】まず、それぞれの書き込みデータに対して
CPUが指定したアドレスが、すでにアドレス変換テー
ブルに登録されているか否か、すなわち、それぞれの書
き込みデータが、すでに書き込み済みのデータを更新す
るための書き込みデータであるかあるいはそのアドレス
のデータが初めて書き込まれるものかが判断される。First, whether or not the address designated by the CPU for each write data is already registered in the address conversion table, that is, each write data is written to update the already written data. It is determined whether the data is the data or the data of the address is written for the first time.
【0052】書き込み済みのデータを更新しないデータ
は、それらが所定数に達すると、MP20の指示によ
り、パリティデータ発生回路(PG)36が、それらの
データからパリティデータグループを生成し、MP20
は、それらの書き込みデータおよびパリティデータを、
書き込むべき空き領域を決定する。When the number of pieces of written data that are not to be updated reaches a predetermined number, the parity data generation circuit (PG) 36 generates a parity data group from the pieces of data according to the instruction of the MP 20, and the MP 20
Write their write data and parity data,
Determine the free space to write.
【0053】すなわち、いずれかの論理グループ10内
の所定数のドライブ内の、上記領域に属する、互いにド
ライブ内アドレスが等しい空き領域をアドレステーブル
70を参照して選択する。その後、アドレステーブル7
0にこれらの書き込みデータのCPU指定アドレスを登
録し、これらの書き込みデータに割り当てられた記録領
域のドライブ番号77及びドライブ内アドレス78、お
よびパリティデータに関する同様のアドレス79、80
を登録し、キャッシュアドレス81を登録した上で、キ
ャッシュフラグ82をオン(1)にセットする。That is, by referring to the address table 70, a free area belonging to the above area and having the same in-drive address in a predetermined number of drives in any of the logical groups 10 is selected. Then address table 7
The CPU designated addresses of these write data are registered in 0, and the drive number 77 and drive address 78 of the recording area assigned to these write data, and similar addresses 79 and 80 for the parity data.
Is registered, the cache address 81 is registered, and then the cache flag 82 is set to ON (1).
【0054】しかる後、これらのパリティグループを、
上で割り当てられた空き領域に記憶する。Then, these parity groups are
Store in the free space allocated above.
【0055】動的アドレス変換をしない領域に書き込ま
れるべきデータが、書き込み済みのデータを更新するデ
ータであると判断された場合には、以下に詳しく説明す
るように、その書き込み済みデータとその書き込み済み
のデータが属する元のパリティグループ内の元のパリテ
ィデータが読み出され、それらのデータと更新用の書き
込みデータから新たなパリティデータが生成され、その
更新用のデータとその新たなパリティデータでもって、
元の書き込み済みのデータおよび元のパリティデータを
書き換える。従って、元のパリティグループが書き換え
られるのであって、新たなパリティグループは生成され
ない。When it is determined that the data to be written in the area where the dynamic address translation is not performed is the data for updating the written data, the written data and the writing thereof will be described in detail below. The original parity data in the original parity group to which the existing data belongs is read, new parity data is generated from those data and the write data for update, and the update data and the new parity data are used. So,
Rewrite the original written data and the original parity data. Therefore, the original parity group is rewritten and a new parity group is not generated.
【0056】以下この場合の書き込み動作を図11を参
照して説明する。The write operation in this case will be described below with reference to FIG.
【0057】 (5)非動的アドレス変換をする領域内のデータの更新 まずMP1 20がドライブインタフェース28に対し
書き込み済みのデータとパリティデータを読みだすよう
に指示を出す。具体的には図3においてCPU指定アド
レス71がDrive#2,ADR3の位置にあるデー
タを書きかえる場合、MP20はアドレステーブル70
においてCPU指定アドレス71(Drive#2,A
DR3)に対応する各項目を調べる。図3においてMP
20はこのCPU指定アドレスはすでに登録されている
がDMポインタ76がそのアドレスに対して登録されて
いないため、このデータはレベル5で処理するデータと
判断し、SCSIドライブアドレス72とパリティドラ
イブアドレス73から書き込み先のSCSIドライブ番
号77とSCSI内Addr78とパリティドライブ番
号79とパリティデータ内Addr80を認識する。M
P20はこの変換後のアドレスによりドライブインタフ
ェース28に対し書き込み先のアドレスにすでに格納さ
れている書き込み前のデータおよびパリティデータの格
納されているSCSIドライブ12に対し、当該データ
および当該パリティデータの読み出し要求を発行するよ
うに指示を出す。ドライブインタフェース28からこの
読み出し要求を受けた2つのSCSIドライブ12にお
いては当該SCSI内Addr78、およびパリティデ
ータ内Addr80に対しアクセスし、書き込み済みの
データおよびパリティデータをそれぞれの当該SCSI
ドライブからキャッシュメモリ7に転送する。パリティ
データ生成回路36はこれらの書込み済みのデータとパ
リティデータと、新たな書き込みデータとからMP20
の指示で、更新後の新しいパリティデータを作成する。
新たな書き込みデータと新たなパリティデータをそれぞ
れ更新前の書き込みデータおよびパリティデータが格納
されていたアドレスに書き込む。(5) Update of Data in Area for Non-Dynamic Address Translation First, the MP1 20 instructs the drive interface 28 to read the written data and the parity data. Specifically, in FIG. 3, when rewriting the data in which the CPU designated address 71 is at the positions of Drive # 2 and ADR3, the MP 20 sets the address table
At CPU designated address 71 (Drive # 2, A
Check each item corresponding to DR3). MP in FIG.
Since 20 has already registered this CPU designated address but the DM pointer 76 is not registered for that address, it judges that this data is data to be processed at level 5, and the SCSI drive address 72 and parity drive address 73 From this, the write destination SCSI drive number 77, SCSI addr 78, parity drive number 79, and parity data addr 80 are recognized. M
P20 is a read request for the data and the parity data from the SCSI interface 12 in which the pre-write data and the parity data already stored in the write destination address are stored in the drive interface 28 by the converted address. Instruct to issue. In the two SCSI drives 12 that have received this read request from the drive interface 28, the Addr 78 in the SCSI and the Addr 80 in the parity data are accessed to write the written data and the parity data to the relevant SCSI.
Transfer from the drive to the cache memory 7. The parity data generation circuit 36 uses the written data, the parity data, and the new write data to generate the MP20.
, The new parity data after the update is created.
The new write data and the new parity data are written to the addresses where the write data and the parity data before the update were stored, respectively.
【0058】(6)動的にアドレス変換をする領域内の
データの書き込みと更新 このように、動的アドレス変換をしない領域に書き込ま
れるべきデータは、そのデータがすでの書き込み済みの
データを更新するデータであるか否かにより異なる処理
を受ける。(6) Writing and updating of data in the area where the address is dynamically converted In this way, the data to be written in the area where the address is not dynamically converted is the already written data. Different processing is performed depending on whether or not the data is updated.
【0059】一方、動的アドレス変換をする領域に書き
込まれるべきデータについては、以下のように処理され
る。On the other hand, the data to be written in the area for dynamic address conversion is processed as follows.
【0060】そのようなデータは、書き込み済みのデー
タを更新するデータであるか否かに依らずに、所定数ず
つまとめて、新たなパリティグループとして論理グルー
プ内の空き領域に記憶される。Such data is grouped by a predetermined number and stored in a free area in the logical group as a new parity group, irrespective of whether or not it is the data for updating the written data.
【0061】すなわち、そのような書き込みデータが所
定数に達した場合には、MP20の指示により、パリテ
ィデータ生成回路36がそれらのデータからパリティデ
ータを生成し、それらの書き込みデータと生成されたパ
リティデータとから、新たなパリティグループを生成す
る。MP20は、それらのパリティグループを書き込む
べき空き領域を決定する。先の、動的アドレス変換をし
ない場合とことなり、空き領域は、動的アドレス変換用
の領域に属する領域から選択する。That is, when the number of such write data reaches a predetermined number, the parity data generation circuit 36 generates the parity data from the data according to the instruction of the MP 20, and the write data and the generated parity. A new parity group is generated from the data. The MP 20 determines a free area in which to write those parity groups. Unlike the case where the dynamic address translation is not performed, the empty area is selected from the areas belonging to the dynamic address translation area.
【0062】すなわち、いずれかの論理グループ10内
の所定数のドライブの互いにドライブ内アドレスが等し
い空き領域を動的アドレステーブル90を参照して選択
する。その後、アドレステーブル70にこれらの書き込
みデータのCPU指定アドレスを登録し、さらに、動的
アドレステーブル90に、これらの書き込みデータに割
り当てられた記録領域のドライブ番号77及びドライブ
内アドレス78、およびパリティデータに関する同様の
アドレス79、80を登録し、キャッシュアドレス81
を登録した上で、キャッシュフラグ82をオン(1)に
セットし、かつ、無効フラグ91、ドライブフラグ83
は0のままにする。That is, a free area of a predetermined number of drives in any of the logical groups 10 having the same in-drive address is selected by referring to the dynamic address table 90. After that, the CPU designated addresses of these write data are registered in the address table 70, and further, in the dynamic address table 90, the drive number 77 and drive address 78 of the recording area assigned to these write data, and the parity data. Register similar addresses 79 and 80 for the cache address 81
, The cache flag 82 is set to ON (1), and the invalid flag 91 and the drive flag 83 are registered.
Remains 0.
【0063】しかる後、これらのパリティグループを、
上で割り当てられた空き領域に記憶する。Then, these parity groups are
Store in the free space allocated above.
【0064】この新たなパリティグループを構成する書
き込みデータのいずれもが、書き込み済みデータを書き
換えるデータでないときには、書き込み動作は以上で終
了するが、それらの書き込みデータのいずれかが、すで
に書き込み済みのデータを更新する場合、その書き込み
済みのデータを無効にする。従って、元のパリティグル
ープは、部分的に無効なデータを含むことになる。When none of the write data forming this new parity group is the data for rewriting the written data, the write operation is completed as described above, but any one of the write data is already written data. When updating, invalidates the written data. Therefore, the original parity group will contain partially invalid data.
【0065】以下、動的アドレス変換をする領域へのデ
ータの書き込みの詳細を図6を参照して説明する。The details of writing data to the area for dynamic address conversion will be described below with reference to FIG.
【0066】例えばSCSIドライブSD#1の内に書
き込み済みデータ#1、次にSD#2書き込み済みデー
タ#2,次にSD#3のデータ#3,次にSD#4に書
き込み済みのデータ#4に対して順に書き込み命令がC
PUより発行された場合を例にして説明する。For example, written data # 1 in the SCSI drive SD # 1, then SD # 2 written data # 2, then SD # 3 data # 3, and then written in SD # 4 data #. For 4 the write command is C in order
A case where the PU is issued will be described as an example.
【0067】MP20はこれらのデータをキャッシュメ
モリ7に書き込む。このとき、キャッシュ内のアドレス
テーブル70,90にそれぞれのデータについての情報
を登録する。なお、更新前の書き込みデータ#1〜#4
がキャッシュメモリ7内に保持されている場合には、キ
ャッシュメモリ7内のそれらの旧データを書き替えた
後、以下のことを行う。The MP 20 writes these data in the cache memory 7. At this time, information about each data is registered in the address tables 70 and 90 in the cache. The write data # 1 to # 4 before update
Are stored in the cache memory 7, the old data in the cache memory 7 are rewritten, and then the following is performed.
【0068】論理グループ10を5台のSCSIドライ
ブ12で構成すると仮定する。MP20は、キャッシュ
メモリ7に4個の書き込みデータが揃うとパリティデー
タの作成を行う。It is assumed that the logical group 10 is composed of five SCSI drives 12. The MP 20 creates parity data when four pieces of write data are prepared in the cache memory 7.
【0069】すなわち、MP20は、動的アドレス変換
テーブル90において、無効フラグ91がオフ(0)で
キャッシュフラグ82がオン(1)でドライブフラグ8
3がオフ(0)のデータを探す。MP20はこの条件を
満足するデータの数を調べその数が4に達し次第、その
4つの書き込みデータについて、パリティデータ生成回
路(PG)36にパリティデータの作成を指示する。M
P20は、これら4つのデータと新たに生成したパリテ
ィデータとを、一つの新たなパリティグループとして論
理ドライブに並列に書き込む。このために、MP20は
まず書き込み先のアドレスを探す。つまり、各SCSI
ドライブ12においてデータ#1から4とパリティデー
タが全て書込み可能なスペースをさがす。具体的には、
MP20は動的アドレス変換テーブル90において、論
理グループを構成するSCSIドライブ12に対し、同
一SCSI内Addr78の無効フラグ91がオンにな
っている領域を探す。この場合、対応するパリティデー
タが有効か否かは問わない。That is, in the dynamic address conversion table 90, the MP 20 sets the invalid flag 91 to off (0), the cache flag 82 to on (1), and the drive flag 8
Look for data where 3 is off (0). The MP 20 checks the number of data items satisfying this condition, and when the number reaches 4, it instructs the parity data generation circuit (PG) 36 to create parity data for the four write data items. M
P20 writes these four data and the newly generated parity data in parallel to the logical drive as one new parity group. For this purpose, the MP 20 first searches for a write destination address. That is, each SCSI
Search for a space where all the data # 1 to data # 4 and parity data can be written in the drive 12. In particular,
In the dynamic address translation table 90, the MP 20 searches the SCSI drives 12 forming the logical group for an area in which the invalid flag 91 of the Addr 78 within the same SCSI is turned on. In this case, it does not matter whether the corresponding parity data is valid or not.
【0070】以下ではデータ#1から4のCPU指定ア
ドレス71が、図4に示す動的アドレス変換テーブル9
0においてデータ#1がDM a−2,データ#2がD
Mb−3、データ#3がDM c−1,データ#4がD
M d−3に対応するとする。In the following, the CPU designated address 71 of the data # 1 to # 4 is the dynamic address conversion table 9 shown in FIG.
0, data # 1 is DM a-2, data # 2 is D
Mb-3, data # 3 is DM c-1, data # 4 is D
It corresponds to M d-3.
【0071】図4の場合SCSIドライブ#1から5が
論理グループを構成するとしてドライブSD#1から4
のアドレスSADR4の領域は全て無効フラグ91がオ
ンになっており、データ#1から4を書き込める空き領
域と判断する。In the case of FIG. 4, it is assumed that the SCSI drives # 1 to 5 constitute the logical group, and drives SD # 1 to SD4.
The invalid flag 91 is turned on in all areas of the address SADR4, and it is determined that the areas # 1 to 4 can be written.
【0072】そこで、ユーザがデータ#1の書き込み先
に指定してきたCPU指定アドレス71(特定アドレ
ス)に対し、MP1 20はDMポインタ76により動
的アドレス変換テーブル90のDM a−2の項目で、
ドライブSD#1のSADR2に書き込む様に変換され
るが、動的アドレス変換を行なうため、書き込みスペー
スの判断後、新たな書き込み先と決定した、SCSIド
ライブSD#1内のSADR4に書き込むことを決定す
る。同様に、MP20はドライブSD#2のアドレスS
ADR3のデータ#2、SD#3のSCSIドライブ1
2のSADR1のデータ#3、ドライブSD#4のSA
DR3のデータ#4をそれぞれ更新する書き込みデータ
#2,#3,#4も、SCSIドライブSD#2〜SD
#4のアドレスSADR4に書き込むことを決定する。Therefore, with respect to the CPU designated address 71 (specific address) designated by the user as the writing destination of the data # 1, the MP1 20 is the DM a-2 item of the dynamic address conversion table 90 by the DM pointer 76.
It is converted so that it will be written to SADR2 of drive SD # 1, but since dynamic address conversion is performed, it is decided to write to SADR4 in SCSI drive SD # 1 which has been decided as a new write destination after judgment of the write space. To do. Similarly, the MP20 uses the address S of the drive SD # 2.
ADR3 data # 2, SD # 3 SCSI drive 1
Data # 3 of SADR1 of 2 and SA of drive SD # 4
The write data # 2, # 3, and # 4 for updating the data # 4 of the DR3 are also SCSI drives SD # 2 to SD.
It is decided to write to the address SADR4 of # 4.
【0073】この様に、MP20が書き込み先のアドレ
スを決定した後、MP20が上記書き込み可能なスペー
スのSCSI内Addr78(SADR4)に対し、ド
ライブインタフェース28に、各SCSIドライブSD
#1〜SD#5への書込み要求を発行するように指示す
る。ドライブインタフェース28ではSCSIの書込み
処理手順に従って、当該SCSIドライブに対し書込み
コマンドとSCSI内Addr78(SADR4)をド
ライブユニットパス9を介して発行する。ドライブイン
タフェース28から書込みコマンドを発行された各SC
SIドライブ12においては指示SCSI内Addr7
8(SADR4)へシーク、回転待ちのアクセス処理を
行なう。当該SCSIドライブ12におけるアクセス処
理が完了した後、キャッシュアダプタ14はキャッシュ
メモリ7からデータを読み出してドライブインタフェー
ス28へ転送する。ドライブインタフェース28は転送
されてきたデータをドライブユニットパス9を介して該
当するSCSIドライブ12へ転送する。データの当該
SCSIドライブ12のSCSI内Addr78(SA
DR4)への書込みが完了すると、当該SCSIドライ
ブ12はドライブインタフェース28に完了報告を行な
い、ドライブインタフェース28がこの完了報告を受け
取ったことを、MP20に報告する。この時、MP20
は、この書込みデータをキャッシュメモリ7上に残さな
い場合は、この報告を元にアドレステーブル70のキャ
ッシュフラグ82をオフにする。パリティデータに関し
てもデータと同様にパリティドライブアドレス73に従
って書き込まれる。また、この様に書込みアドレスを動
的に変換した場合は、SCSIドライブ12からの完了
報告をドライブインタフェース28が受け取った際に、
アドレステーブル70のユーザが書き込み先として指定
したCPU指定アドレス71に対するDMポインタ76
の値を、動的アドレス変換テーブル90における書き込
み後のSCSIドライブアドレス72に対応するDMポ
インタ76の値に変更する。この時、同時に動的アドレ
ス変換テーブル90の各項目も変更する。具体的には図
3のアドレステーブル70において、CPU1がデータ
#1をDrive#1のADR1に書き込むように指示
した場合、このデータ#1を上記のように動的アドレス
変換した場合、書き込み前はDMポインタ76はDM
a−2となっているため、動的アドレス変換テーブル9
0において、SCSIドライブSD#1のアドレスSA
DR2が対応していた。動的アドレス変換後により、デ
ータ#1の書き込み後は、MP1 20はアドレステー
ブル70のDrive#1,ADR1のDMポインタ7
6をDM a−2からDM a−4に変更する。これと
同時にMP20は動的アドレス変換テーブル90におい
てDM a−4の無効フラグ91をオフ(0)、ドライ
ブフラグ83をオン(1)にし、書き込みデータをキャ
ッシュ7内に残すときは、キャッシュアドレス81にア
ドレスを登録しキャッシュフラグ82をオン(1)のま
まとする。将来,ユーザがこのデータに読み出し要求を
発行した場合は前のアドレスにはアクセスせず新しく格
納されたアドレスにアクセスすることになる。As described above, after the MP 20 determines the write destination address, the MP 20 sends the SCSI interface SDr 78 (SADR4) in the writable space to the drive interface 28 and each SCSI drive SD.
Instruct to issue a write request to # 1 to SD # 5. The drive interface 28 issues a write command and an Addr 78 in SCSI (SADR4) to the SCSI drive via the drive unit path 9 in accordance with the SCSI write processing procedure. Each SC for which a write command has been issued from the drive interface 28
In the SI drive 12, the instruction Addr7 in SCSI
8 (SADR4) seek, access processing waiting for rotation is performed. After the access processing in the SCSI drive 12 is completed, the cache adapter 14 reads the data from the cache memory 7 and transfers it to the drive interface 28. The drive interface 28 transfers the transferred data to the corresponding SCSI drive 12 via the drive unit path 9. Addr78 in the SCSI of the relevant SCSI drive 12 of data (SA
When the writing to DR4) is completed, the SCSI drive 12 sends a completion report to the drive interface 28, and reports to the MP 20 that the drive interface 28 has received this completion report. At this time, MP20
If this write data is not left in the cache memory 7, the cache flag 82 of the address table 70 is turned off based on this report. Similarly to the data, the parity data is written according to the parity drive address 73. Further, when the write address is dynamically converted in this way, when the drive interface 28 receives the completion report from the SCSI drive 12,
The DM pointer 76 for the CPU designated address 71 designated as the writing destination by the user of the address table 70
Value is changed to the value of the DM pointer 76 corresponding to the SCSI drive address 72 after writing in the dynamic address conversion table 90. At this time, each item of the dynamic address translation table 90 is also changed at the same time. Specifically, in the address table 70 of FIG. 3, when the CPU 1 instructs to write the data # 1 in the ADR1 of the Drive # 1, when the data # 1 is dynamically converted as described above, DM pointer 76 is DM
Since it is a-2, the dynamic address translation table 9
0, the address SA of the SCSI drive SD # 1
DR2 was compatible. After the data # 1 is written by the dynamic address conversion, the MP1 20 has the Drive # 1 of the address table 70 and the DM pointer 7 of the ADR1.
6 is changed from DM a-2 to DM a-4. At the same time, the MP 20 turns off (0) the invalid flag 91 of DM a-4 and turns on (1) the drive flag 83 in the dynamic address translation table 90, and when the write data is left in the cache 7, the cache address 81 The address is registered in and the cache flag 82 remains on (1). In the future, when the user issues a read request for this data, the previously stored address is not accessed but the newly stored address is accessed.
【0074】また、同時に動的アドレス変換テーブル9
0において、書き込み前のDM a−2の無効フラグ9
1をオン(1)とし、キャッシュフラグ82、ドライブ
フラグ83をオフ(0)とする。この領域は後の別な書
き込みのスペースとして使用される。At the same time, the dynamic address translation table 9
0, invalid flag 9 of DM a-2 before writing
1 is turned on (1), and the cache flag 82 and the drive flag 83 are turned off (0). This area will be used as a space for another writing later.
【0075】以上のようなドライブへの書き込み動作
は、論理グループ10を構成する各SCSIドライブ1
2において並列に行なう。以下では以上の書き込み動作
を一括書き込みとも呼ぶ。The write operation to the drive as described above is performed by each SCSI drive 1 constituting the logical group 10.
2 in parallel. Hereinafter, the above write operation is also referred to as batch write.
【0076】この様に動的アドレス変換をする領域に対
しては、書き込みデータが書き込み済みのデータを更新
するか否かに関係なく、書き込みデータをキャッシュメ
モリ7に溜め、溜められた所定数の書き込みデータによ
りパリティデータを作成し、書き込みデータとパリティ
データを複数のSCSIドライブ12へ並列に書き込
む。従来のレベル5のようなユーザが指定した書き込み
先のアドレスにすでに格納されている、書き込み前のデ
ータとパリティデータに対する読みだしは行なわない。
このため書き込み時のオーバヘッドを削減することが可
能となる。In this way, for the area where the dynamic address conversion is performed, the write data is stored in the cache memory 7 regardless of whether or not the write data updates the written data, and a predetermined number of the stored data is stored. Parity data is created from the write data, and the write data and the parity data are written in parallel to the plurality of SCSI drives 12. No reading is performed on the pre-write data and the parity data which are already stored in the write destination address designated by the user as in the conventional level 5.
Therefore, it becomes possible to reduce the overhead at the time of writing.
【0077】しかし、書き込みデータについて動的にア
ドレスを変更し格納していくと、無効フラグ91がオン
(1)になっている領域が分散されるため、データ格納
効率(SCSIドライブに格納可能なデータ容量に対す
る、実際に格納するデータ容量の割合)が低下し、さら
にこの様な状態が進行すると、動的アドレス変換による
一括書き込みを行なう空き領域が無くなってしまう。こ
れに対しては、後述するデータのつめ替えで対処する。However, when the address of the write data is dynamically changed and stored, the areas in which the invalid flag 91 is turned on (1) are dispersed, so that the data storage efficiency (storable in the SCSI drive can be increased). If the ratio of the actually stored data capacity to the data capacity) decreases and further such a state progresses, there will be no free area for batch writing by dynamic address translation. This is dealt with by refilling the data described later.
【0078】なお、本実施例では同じドライブ内アドレ
スを有する複数の領域にデータを並列に格納するため、
論理グループ10内の各SCSIドライブ12の回転を
全て同期させる方が望ましい。Since data is stored in parallel in a plurality of areas having the same in-drive address in this embodiment,
It is desirable to synchronize all rotations of each SCSI drive 12 in the logical group 10.
【0079】(7)障害回復 いくつかの無効データが存在する場合において、論理グ
ループ10内のSCSIドライブに障害が発生した場
合、障害SCSIドライブを除いた残りのSCSIドラ
イブ12内のデータおよびパリティデータにより障害S
CSIドライブ内のデータを復元することが可能とな
る。このような障害回復を行なう場合、各SCSIドラ
イブ12内のキャッシュメモリ7内の対応する無効フラ
グ91がオンになっているデータも有効なデータとして
読みだして障害データの復元に使用する。無効フラグ9
1がオンになったデータは更新前の古いデータである
が、それが属していたパリティグループが生成されたと
きの値を有している。したがって、障害ドライブのデー
タの回復には使用できる。このため、本実施例では、動
的アドレス変換領域に書き込み済みのデータが更新され
た場合、そのデータに対して無効フラグをつけるが、デ
ータは消去しないのは、そのためである。(7) Failure Recovery When some invalid data exist, if a SCSI drive in the logical group 10 fails, the data and parity data in the remaining SCSI drives 12 excluding the failed SCSI drive Due to obstacle S
It is possible to restore the data in the CSI drive. When such failure recovery is performed, the data in which the corresponding invalid flag 91 in the cache memory 7 in each SCSI drive 12 is turned on is also read as valid data and used to restore the failure data. Invalid flag 9
The data in which 1 is turned on is old data before updating, but has a value when the parity group to which it belongs was generated. Therefore, it can be used to recover the data of the failed drive. Therefore, in the present embodiment, when the data already written in the dynamic address translation area is updated, the invalid flag is attached to the data, but the data is not erased for that reason.
【0080】 (8)動的アドレス変換領域と非動的アドレス変換領域 まず、データ格納領域について説明する。本実施例では
SCSIドライブ12内の動的アドレス変換を行なう領
域に実際に格納するデータの量は、動的アドレス変換を
行なう領域に格納可能な最大容量の1/Vとする。これ
は、書き込みデータのアドレスを動的に変換して一括書
き込みを行なうため、一括書き込みを行なう領域(書き
替え領域)が必要となるからである。つまり、SCSI
ドライブ12の動的アドレス変換を行なう領域に書込み
可能な最大容量のデータを格納してしまうと、後に書き
込み要求が発行された場合、一括書き込みを行なおうと
しても書き込む場所が無くなってしまうためである。大
型汎用計算機では、ユーザは予め自分の使用可能な領域
(容量)を確保しておく。ユーザがデータの読みだし、
書き込みを行なう場合は、この容量に見合う領域内で処
理しなければならない。もし、この使用可能な領域(容
量)を越えた場合は新たに領域(容量)を確保しなけれ
ばならない。そこで、先に示したようにユーザがCPU
1により動的アドレス変換を行なう領域を設定する際、
予め後の書き込み要求のために書き替え領域を見込ん
で、領域を確保しておく((V−1)/V)。(8) Dynamic Address Translation Area and Non-Dynamic Address Translation Area First, the data storage area will be described. In this embodiment, the amount of data actually stored in the area of the SCSI drive 12 where dynamic address translation is performed is 1 / V of the maximum capacity that can be stored in the area where dynamic address translation is performed. This is because the address of the write data is dynamically converted and the batch writing is performed, so that an area (rewriting area) in which the batch writing is performed is required. That is, SCSI
If the maximum writable data is stored in the area of the drive 12 where the dynamic address conversion is performed, if a write request is issued later, there will be no place to write even if batch writing is attempted. is there. In a large-scale general-purpose computer, the user reserves an area (capacity) that he can use in advance. The user reads the data,
When writing, it is necessary to process within the area corresponding to this capacity. If the usable area (capacity) is exceeded, a new area (capacity) must be secured. Therefore, as shown above, the user
When setting the area for dynamic address translation by 1,
An area to be rewritten is reserved in advance for a later write request, and the area is secured ((V-1) / V).
【0081】この予め確保しておく書き替え領域の割合
は、動的アドレス変換をシーケンシャルアクセスされる
データのみで行なうのではなく、一部ランダムアクセス
されるデータについても行なう場合、ランダムデータに
関し、ランダムなアドレスにアクセスする読み出し/書
込み要求が多い場合は1/Vの値を小さくし、比較的同
じようなアドレスにアクセスする読み出し/書込み要求
が多い場合は1/Vの値を大きくするようにVの値を変
えることが望ましい。さらに、前者の場合、キャッシュ
メモリ7から早くSCSIドライブにデータを移し、後
者の場合は逆にデータがキャッシュメモリ7内に長く滞
留させることが望ましい。1/Vを変更する方法には2
つの方法がある。一つは、ユーザが予め格納するデータ
について,ランダムなアクセスの量を認識し,格納する
データの割合(1/V)を決める。ユーザは自分のデー
タの特性から判断し、自分が確保した領域(容量)の中
で、実際に格納するデータの割合を決めるのである。例
えば、同じデータに対して次々と書き換えを行なうアク
セスの割合が、全アクセスに対して約30%程度なら、
1/V=1/2程度に設定し、予めユーザが確保した領
域(容量)の1/2のみユーザはデータを格納してお
く。もう一つは、ユーザが予め領域(容量)を確保する
のではなく、ADC2内のMP20が一定時間アクセス
されたアドレスの履歴を記録しておき,そのアドレス履
歴データからランダムなアクセスの割合を求め、ADC
2のMP20が格納するデータの割合(1/V)を自動
的に割り当てる。例えばSCSIドライブ12に格納可
能なデータ量の4/5のデータが格納されており、この
データに対してランダムなアクセスの割合が増加した場
合、別の論理グループに随時データを移し、MP1 2
0は1/Vを小さくする。 (9)部分無効パリティグループの詰め変え しかし、このように予め書き替え領域を確保しておいて
も、1SCSIドライブ12内に格納できるデータの容
量は有限であるため、一括書き込みを繰り返した場合、
書き替え領域が無くなる。そこで、SCSIドライブ1
2内の有効なデータをまとめ、新たに書き替え領域を作
成する必要が生じる。この方法について次に説明する。The ratio of the rewritable area to be reserved in advance is random for random data when dynamic address translation is performed not only for sequentially accessed data but also for partially randomly accessed data. If there are many read / write requests to access different addresses, the value of 1 / V should be decreased, and if there are many read / write requests to access relatively similar addresses, the value of 1 / V should be increased. It is desirable to change the value of. Further, in the former case, it is desirable to move the data from the cache memory 7 to the SCSI drive earlier, and in the latter case, conversely, the data should be retained in the cache memory 7 for a long time. 2 for changing 1 / V
There are two ways. First, the user recognizes the amount of random access to the data to be stored in advance and determines the ratio (1 / V) of the data to be stored. The user decides the ratio of the data to be actually stored in the area (capacity) secured by the user, judging from the characteristics of his data. For example, if the rate of access to rewrite the same data one after another is about 30% of all accesses,
The value is set to about 1 / V = 1/2, and the user stores data only in 1/2 of the area (capacity) secured by the user in advance. The other is that the user does not reserve the area (capacity) in advance, but records the history of the addresses accessed by the MP 20 in the ADC 2 for a certain period of time, and obtains the random access ratio from the address history data. , ADC
The ratio (1 / V) of the data stored in the MP20 of 2 is automatically assigned. For example, if the SCSI drive 12 stores 4/5 of the amount of data that can be stored and the ratio of random access to this data increases, the data is moved to another logical group at any time, and MP1 2
0 reduces 1 / V. (9) Refilling the partial invalid parity group However, even if the rewrite area is secured in advance in this way, the capacity of data that can be stored in one SCSI drive 12 is finite, so when batch writing is repeated,
The rewriting area disappears. So SCSI drive 1
It becomes necessary to collect valid data in 2 and create a new rewriting area. This method will be described below.
【0082】図7は各SCSIドライブ12内の同一S
CSI内Addr78のデータを抜き出したものであ
る。論理グループ10内における各SCSIドライブ1
2の同一SCSI内Addr78(同一行)のデータつ
まり、同一のパリティグループを形成すべきデータによ
り、パリティデータが作成される。例えばSADR a
のアドレスを考えると、SCSIドライブ#1のデータ
1、SCSIドライブ#2のデータ#5、SCSIドラ
イブ#3のデータ#9、SCSIドライブ#4のデータ
#13によりパリティデータ#1が作成される。図7で
はSADR aのデータグループ内において無効フラグ
91がオフのデータはデータ#9のみである。前述した
ように無効とされたデータ#1,#5,#13は障害発
生時の障害ディスク内のデータ復元用データとして残さ
れている。SADR bについては無効フラグ91がオ
フのデータはデータ#10,#14の2個で、SADR
cではデータ#3,#7,#15の3個、SADR
dはデータ#4,#8,#12,#16と全て無効フラ
グ91がオフとなっている。MP20はキャッシュメモ
リ7内のアドレステーブル70および動的アドレス変換
テーブル90を常に監視しており、動的アドレス変換テ
ーブル90内のSCSIドライブアドレス72と無効フ
ラグ91をみて,同一パリティグループに属する、すな
わち、同一SCSI内Addr78に対応した、無効フ
ラグ91のオン(1)となっている領域の数を認識しこ
の領域の数が予め設定しておいた数より多くなると、詰
め変えを行う。例えば、同一SCSI内Addr78に
対し無効フラグ91がオン(1)になった領域の数が3
個より多くなると詰め変えを行うように予め設定してお
いた場合、図7のSADR aを図4のSADR3とす
ると、このように同一SCSI内Addr78に対し無
効フラグ91が3個オン(1)になると、MP20は詰
め変えを行う。また、この詰め変え処理はユーザの指示
で行なうことも可能とする。FIG. 7 shows the same S in each SCSI drive 12.
The data of Addr78 in CSI is extracted. Each SCSI drive 1 in the logical group 10
Parity data is created by data of two Addr 78 (same row) in the same SCSI, that is, data that should form the same parity group. For example SADR a
, The parity data # 1 is created by the data 1 of the SCSI drive # 1, the data # 5 of the SCSI drive # 2, the data # 9 of the SCSI drive # 3, and the data # 13 of the SCSI drive # 4. In FIG. 7, data # 9 is the only data in which the invalid flag 91 is off in the data group of SADR a. As described above, the invalid data # 1, # 5, and # 13 are left as the data for data restoration in the failed disk when the failure occurs. As for the SADR b, the data with the invalid flag 91 being off is the two data # 10 and # 14, and the SADR
In c, three data # 3, # 7, # 15, SADR
Data d, data # 4, # 8, # 12, and # 16 and the invalid flag 91 are all off. The MP 20 constantly monitors the address table 70 and the dynamic address translation table 90 in the cache memory 7, sees the SCSI drive address 72 and the invalid flag 91 in the dynamic address translation table 90, and belongs to the same parity group, that is, The number of areas in which the invalid flag 91 is turned on (1) corresponding to the same SCSI Addr 78 is recognized, and when the number of areas becomes larger than a preset number, refilling is performed. For example, the number of areas in which the invalid flag 91 is turned on (1) for the same SCSI Addr 78 is 3
When it is set in advance to perform refilling when the number is larger than the number of pieces, if SADR a in FIG. 7 is set to SADR3 in FIG. Then, the MP20 refills. Further, this refilling process can be performed by the user's instruction.
【0083】具体的には、MP20は、その部分無効パ
リティグループ内の有効なデータ、つまり、今の例で
は、図4のドライブSD#3のアドレスSADR3のデ
ータに対し、擬似的な読みだし要求を発行し、このデー
タをキャッシュメモリ7に擬似的に読みだしキャッシュ
メモリ7内に溜め、CPU1から転送された他の書き込
みデータまたは同様に他の行から擬似的に読みだされた
データととからなる4つのデータを組にし、それらから
新たにパリティデータを作成し、動的アドレス変換にお
ける書き込みと同時に書き込み用空きスペースを探し、
それらの領域に並列に格納する。なお、データ#9がキ
ャッシュメモリ7に読み込まれた段階で、MP20はキ
ャッシュメモリ7内のアドレステーブル70内のキャッ
シュアドレス81を変更しキャッシュフラグ82をオン
にする。また、書き替え領域への格納後は、動的アドレ
ス変換の書き込みと同様にアドレステーブル70および
動的アドレス変換テーブル90の各項目を変更する。Specifically, the MP 20 makes a pseudo read request for valid data in the partially invalid parity group, that is, in the present example, for data at the address SADR3 of the drive SD # 3 in FIG. Is issued, this data is pseudo-read to the cache memory 7 and stored in the cache memory 7, and other write data transferred from the CPU 1 or data pseudo-read from another line are also used. The following four data are paired, new parity data is created from them, and a free space for writing is searched at the same time as writing in dynamic address translation,
Store in those areas in parallel. When the data # 9 is read into the cache memory 7, the MP 20 changes the cache address 81 in the address table 70 in the cache memory 7 and turns on the cache flag 82. After the storage in the rewriting area, each item of the address table 70 and the dynamic address conversion table 90 is changed similarly to the writing of the dynamic address conversion.
【0084】また、別の詰め変え方法としては、上述し
たように部分無効パリティグループが詰め変え条件を満
すとすぐ行うというのでなく、そのようなデータに読み
出し要求がCPU1よりその後発行され、SCSIドラ
イブ12から読み出された時に行う方法がある。すなわ
ち、上位装置にそのデータを転送すると同時にキャッシ
ュメモリ7内に溜め、書き込みデータまたは同様に他の
行から吸い上げられたデータと新たにパリティデータを
作成し、これらのデータパリティデータをパリティデー
タを格納するSCSIドライブ12のそれぞれの書き替
え領域に格納する。As another refilling method, as described above, it is not performed as soon as the partially invalid parity group satisfies the refilling condition, but a read request is issued from the CPU 1 to such data, and the SCSI is sent. There is a method to be performed when it is read from the drive 12. That is, at the same time that the data is transferred to the higher-level device, it is stored in the cache memory 7 and write data or data similarly sucked from another row and new parity data are created, and these data parity data are stored in the parity data. The SCSI drive 12 is stored in each rewriting area.
【0085】詰め替えを起動する契機としてはさらに次
のものでもよい。The trigger for activating the refill may be the following.
【0086】すなわち、部分的に無効となったパリティ
グループの数が、予め決めた限界数を越えたときに行な
う。この際、無効となったデータの数が一つでも含んで
いるようなパリティグループの数をカウントして、その
カウント値が所定数を越えたときに、詰め替えを行な
う。この方法では、計数操作が簡単である。That is, this is performed when the number of partially invalidated parity groups exceeds a predetermined limit number. At this time, the number of parity groups in which even the number of invalid data is included is counted, and when the count value exceeds a predetermined number, refilling is performed. With this method, the counting operation is simple.
【0087】これに対して、所定数以上の無効となった
データを含んでいるパリティグループの数をカウントし
て、そのカウント値が所定数を越えたときに、詰め替え
を起動する方法でもよい。この方法では、詰め替えを行
なう回数を制限できる。On the other hand, a method may be used in which the number of parity groups including a predetermined number or more of invalid data is counted and the refilling is activated when the count value exceeds the predetermined number. With this method, the number of times of refilling can be limited.
【0088】さらに別の方法として、空き領域の容量が
所定値以下になったときに行なう方法でもよい。As another method, a method may be performed when the capacity of the free area becomes equal to or less than a predetermined value.
【0089】さらに、より望ましくは、CPU1を介し
てユーザにより確保されたデータ書き込み容量のうち、
空き領域の容量の占める割り合いが、所定値以下になっ
たときに行なう方法でもよい。More preferably, of the data write capacity secured by the user via the CPU 1,
A method may be used in which the ratio of the capacity of the free area becomes equal to or less than a predetermined value.
【0090】なお、書き替え領域に格納する段階で書き
込み時と同様にアドレステーブル70および動的アドレ
ス変換テーブル90を更新する。このようにして行内の
全てのデータの無効フラグ91がオンになると、その行
を空き領域(書き替え領域)とする。At the stage of storing in the rewriting area, the address table 70 and the dynamic address conversion table 90 are updated in the same manner as at the time of writing. When the invalid flags 91 of all the data in the row are turned on in this way, the row is set as a free area (rewrite area).
【0091】以上の詰め変えは、以上の二つの方法のい
ずれを採るにしても論理グループ10に発行される読み
出し/書込み要求が比較的少ない時、特に書き込みが少
ない時に行うとシステムの読み出し/書込み要求処理効
率の低下が少なく効果的である。Regardless of which of the above two methods is used, the above refilling is performed when the read / write request issued to the logical group 10 is relatively small, especially when the write is small, the system read / write. It is effective because there is little reduction in request processing efficiency.
【0092】(10)データの読み出し MP20が読み出し要求のコマンドを認識すると、CP
U1から指定されたCPU指定アドレス71(ドライブ
番号74とCCHHR75)からMP20はアドレステ
ーブル70を参照し、そのアドレスに対してDMポイン
タが登録されているか否かによりそのアドレスに対し動
的アドレス変換を行なっているかを判断し、行なってい
ない場合は、引続きアドレステーブル70により、当該
データのSCSIドライブアドレス72へアドレス変換
を行なう。同時にキャッシュメモリ7内に当該データが
存在するかどうかアドレステーブル70のキャッシュフ
ラグ82を調べ、判定する。一方、アドレステーブル7
0のDMポインタ76に登録されており、動的アドレス
変換を行なっている場合は、動的アドレス変換テーブル
90により、アドレス変換を行なう。但し、無効フラグ
がオフであるドライブ内アドレスを利用する。これによ
りCPU指定アドレスが複数個テーブル90に登録され
ている場合でも、最近に書き込まれたデータを読み出せ
るようになる。(10) Reading of data When the MP20 recognizes the command of the read request, CP
The MP 20 refers to the address table 70 from the CPU designated address 71 (drive number 74 and CCHHR 75) designated by U1 and performs dynamic address translation for that address depending on whether the DM pointer is registered or not. Whether or not the data is being carried out is determined. If not, the address conversion is continued by the address table 70 into the SCSI drive address 72 of the data. At the same time, the cache flag 82 in the address table 70 is checked to determine whether the data exists in the cache memory 7. On the other hand, the address table 7
If it is registered in the DM pointer 76 of 0 and the dynamic address translation is being performed, the address translation is performed by the dynamic address translation table 90. However, the address in the drive in which the invalid flag is off is used. Thus, even if a plurality of CPU-specified addresses are registered in the table 90, the recently written data can be read.
【0093】キャッシュヒット時は、MP20はアドレ
ステーブル70又は動的アドレス変変換テーブル90に
よりCPU1から指定してきたCPU指定アドレス71
(ドライブ番号74とCCHHR75)をキャッシュメ
モリ7のアドレス(キャッシュアドレス81)に変換し
キャッシュメモリ7へ当該データを読み出しに行く。具
体的にはMP20の指示の元でキャッシュアダプタ回路
24によりキャッシュメモリ7から当該データは読み出
される。キャッシュアダプタ24はキャッシュメモリ7
に対するデータの読みだし、書き込みをMP20の指示
で行なう回路で、キャッシュメモリ7の状態の監視、各
読みだし、書き込み要求に対し排他制御を行なう回路で
ある。キャッシュメモリ7内には圧縮回路27によりデ
ータ圧縮されているデータも格納されているため、キャ
ッシュアダプタ24により読み出されたデータは圧縮回
路27に送られる。データ圧縮されていないデータは圧
縮回路27をそのまま通過するが、データ圧縮されてい
るデータは、圧縮回路27によりCPU1から転送され
てきた圧縮前の元のデータに伸長される。圧縮回路27
を通過したデータはデータ制御回路(DCC)22の制
御によりチャネルインターフェース回路21に転送され
る。チャネルインタフェース21ではCPU1における
チャネルインターフェースのプロトコルに変換し、チャ
ネルインターフェースに対応する速度に速度調整する。
このプロトコル変換および速度調整後は、チャネルパス
ディレクタ5において、チャネルパススイッチ16が外
部インターフェースパス4を選択しインタフェースアダ
プタ15によりCPU1へデータ転送を行なう。At the time of a cache hit, the MP 20 sends the CPU-specified address 71 designated by the CPU 1 to the address table 70 or the dynamic address conversion table 90.
(Drive number 74 and CCHHR 75) is converted into an address (cache address 81) of the cache memory 7, and the data is read out to the cache memory 7. Specifically, the data is read from the cache memory 7 by the cache adapter circuit 24 under the instruction of the MP 20. The cache adapter 24 is the cache memory 7
This is a circuit for reading and writing data to and from the MP20 according to an instruction, and is a circuit for monitoring the state of the cache memory 7 and performing exclusive control for each reading and writing request. Since the data compressed by the compression circuit 27 is also stored in the cache memory 7, the data read by the cache adapter 24 is sent to the compression circuit 27. The data that has not been data-compressed passes through the compression circuit 27 as it is, but the data that has been data-compressed is expanded by the compression circuit 27 to the original data that has been transferred from the CPU 1 and has not been compressed. Compression circuit 27
The data passed through is transferred to the channel interface circuit 21 under the control of the data control circuit (DCC) 22. The channel interface 21 converts the protocol into a channel interface protocol in the CPU 1 and adjusts the speed to a speed corresponding to the channel interface.
After this protocol conversion and speed adjustment, in the channel path director 5, the channel path switch 16 selects the external interface path 4 and the interface adapter 15 transfers data to the CPU 1.
【0094】一方、キャッシュミス時はMP20はドラ
イブインタフェース28に対し、SCSIドライブアド
レス72に従って当該ドライブ12への読み出し要求を
発行するように指示する。ドライブインタフェース28
ではSCSIインターフェースの読み出し処理手順に従
って、読み出しコマンドをドライブユニットパス9−
1、または9−2を介して発行する。ドライブインタフ
ェース28から読み出しコマンドを発行された当該ドラ
イブ12においては、指示されたSCSIドライブ内の
アドレス(SCSI内Addr78)へシーク、回転待
ちのアクセス処理を行なう。当該ドライブ12における
アクセス処理が完了した後、当該ドライブ12は当該デ
ータを読み出しドライブユニットパス9を介してドライ
ブインタフェース28へ転送する。ドライブインタフェ
ース28では転送されてきた当該データをドライブ側の
キャッシュアダプタ回路14に転送し、キャッシュアダ
プタ14ではキャッシュメモリ7にデータを格納する。
この時、このキャッシュアダプタ14はキャッシュメモ
リ7にデータを格納することをMP20に報告し、MP
20はこの報告を元にアドレステーブル70または動的
アドレス変換テーブル90のユーザが読みだし要求を発
行したCPU指定アドレス71に対応したキャッシュフ
ラグ82をオンにし、キャッシュメモリ7内のアドレス
を以下のように更新する。CPU1から読みだし要求先
のアドレスとして指定してきた、ドライブ番号とCCH
HRに対し、アドレステーブル70内のCPU指定アド
レス71(ドライブ番号74とCCHHR75)を探
し、そのCPU指定アドレス71に対応して、当該デー
タを格納したキャッシュメモリ7内のアドレスをキャッ
シュアドレス81に書き込む。これと同時にキャッシュ
フラグ82をオンとする。キャッシュメモリ7にデータ
を格納し、アドレステーブル70または動的アドレス変
換テーブル90のキャッシュフラグ82をオンにし、キ
ャッシュメモリ7内のアドレスを更新した後は、キャッ
シュヒット時と同様な手順でCPU1へ当該データを転
送する。On the other hand, when there is a cache miss, the MP 20 instructs the drive interface 28 to issue a read request to the drive 12 according to the SCSI drive address 72. Drive interface 28
Then, according to the read processing procedure of the SCSI interface, the read command is issued to the drive unit path 9-
Issued via 1 or 9-2. In the drive 12 to which the read command is issued from the drive interface 28, a seek and rotation waiting access process is performed to the designated address in the SCSI drive (Addr 78 in SCSI). After the access processing in the drive 12 is completed, the drive 12 transfers the data to the drive interface 28 via the read drive unit path 9. The drive interface 28 transfers the transferred data to the cache adapter circuit 14 on the drive side, and the cache adapter 14 stores the data in the cache memory 7.
At this time, the cache adapter 14 reports to the MP 20 that data is stored in the cache memory 7,
Based on this report, 20 turns on the cache flag 82 corresponding to the CPU designated address 71 of the address table 70 or the dynamic address conversion table 90 that the user has issued and issued the request, and sets the address in the cache memory 7 as follows. To update. The drive number and CCH specified as the address of the read request destination from the CPU1
A CPU-specified address 71 (drive number 74 and CCHHR 75) in the address table 70 is searched for the HR, and the address in the cache memory 7 storing the corresponding data is written in the cache address 81 in correspondence with the CPU-specified address 71. . At the same time, the cache flag 82 is turned on. After storing the data in the cache memory 7, turning on the cache flag 82 of the address table 70 or the dynamic address conversion table 90, and updating the address in the cache memory 7, the CPU 1 is affected by the same procedure as the cache hit. Transfer data.
【0095】(11)変形 本実施例ではパリティデータを作成する単位は、論理グ
ループ10を構成する各SCSIドライブ12につい
て、同一アドレス(シリンダアドレス、ヘッドアドレ
ス、レコードアドレスが全て等しい)とした。しかし、
データ格納効率を向上させるため、同一アドレスに限定
せず、インデックスからの距離が等しければ(レコード
アドレスが等しい)シリンダアドレス、ヘッドアドレス
は異なっていてもパリティデータを作成できる。このよ
うにしても本実施例の動作は可能となる。(11) Modification In the present embodiment, the unit for creating parity data is the same address (cylinder address, head address, and record address are all the same) for each SCSI drive 12 constituting the logical group 10. But,
In order to improve data storage efficiency, parity data can be created even if the cylinder address and the head address are different, if the distances from the index are equal (record addresses are equal), without limiting to the same address. Even in this case, the operation of this embodiment can be performed.
【0096】(12)実施例1のまとめ 以上述べたように、本実施例では、動的にアドレス変換
をする領域へのデータの書き込みにあっては、複数の書
き込みデータからパリティデータを生成し、それらの書
き込みデータと生成したパリティデータとによりパリテ
ィグループを生成し、それらを空き領域に書き込む。こ
の書き込みは、各書き込みデータがすでに書き込み済み
のデータを更新するデータである場合にも適用される。(12) Summary of First Embodiment As described above, in the present embodiment, when writing data to the area where the address is dynamically converted, parity data is generated from a plurality of write data. , A parity group is generated from the write data and the generated parity data, and they are written in a free area. This writing is also applied when each write data is data that updates already written data.
【0097】従来のレベル5のRAIDによる書き込み
のときには、書き込み済みのデータと書き込み済みの対
応するパリティデータをドライブから読み出し、これら
と更新用のデータとから、新たなパリティデータを生成
し、この生成されたパリティデータとその更新用のデー
タとを旧のパリティデータが保持されている領域及び旧
の書き込みデータが保持されている領域に書き込む。こ
れらの二つの領域からの旧データの読み出し及びにそれ
らの領域への新データの書き込みのために、ドライブの
回転待等の待時間がオーバヘッドとして大きい。At the time of writing by the conventional RAID of level 5, the written data and the corresponding written parity data are read from the drive, new parity data is generated from these and the update data, and this generation is generated. The written parity data and the data for updating the parity data are written in the area holding the old parity data and the area holding the old write data. Due to the reading of the old data from these two areas and the writing of the new data to those areas, the waiting time such as the rotation waiting of the drive is large as an overhead.
【0098】本実施例では、以上に述べた書き込み方法
により、以上の従来例で必要であった、ドライブからの
旧データの読み出し、そこへの新データの書き込みが必
要でない。そのため、以上のようなオーバヘッドが生じ
ない。In the present embodiment, by the writing method described above, it is not necessary to read the old data from the drive and write the new data there, which is required in the above conventional example. Therefore, the above overhead does not occur.
【0099】さらに、本実施例では、ある一つのパリテ
ィグループを構成する複数のデータの一部が書き換えら
れたとき、そのパリティグループのいずれのデータもド
ライブから読み出さない。つまり、書き換えられたデー
タは無効とし、それ以外のデータはそのまま有効なデー
タとしてドライブに保持する。この結果、一部のデータ
の書き換え時の処理が早くなる。Further, in the present embodiment, when a part of a plurality of data forming a certain parity group is rewritten, none of the data in the parity group is read from the drive. In other words, the rewritten data is invalidated, and the other data is retained in the drive as valid data. As a result, the processing at the time of rewriting some data becomes faster.
【0100】さらに、本実施例では、一つのパリティグ
ループを構成する複数のデータの長さを上位装置から送
られてくるデータの一定長に等しくした。この結果、い
ずれかのパリティグループ内のデータが部分的に無効に
されたとしても、そのパリティデータ内の全てのデータ
が無効となるケースが増大する。このように、完全に無
効となった領域は空き領域として詰め替えをすることな
くそのまま使用できる。従って、部分的に無効な状態の
ままでいるパリティグループは、より長いデータからパ
リティデータを構成した場合より少なくなり、結果とし
て、詰め替えを要する部分的に無効なパリティグループ
の数は少なくなる。Further, in the present embodiment, the length of a plurality of pieces of data forming one parity group is made equal to the fixed length of the data sent from the host device. As a result, even if the data in one of the parity groups is partially invalidated, the number of cases in which all the data in the parity data are invalidated increases. In this way, the completely invalid area can be used as it is as a free area without refilling. Therefore, the number of parity groups remaining in the partially invalid state is smaller than that in the case of forming the parity data from the longer data, and as a result, the number of the partially invalid parity groups that need to be refilled is smaller.
【0101】さらに、本実施例では、一つのパリティグ
ループを構成する複数のデータの長さを上位装置から送
られてくるデータの一定長に等しくした結果、上位装置
から転送された複数の書き込みデータを、それらからパ
リティグループを構成するまでの期間一時的に保持する
ためのキャッシュ内領域の大きさは小さくてよい。Further, in the present embodiment, as a result of making the lengths of a plurality of data constituting one parity group equal to the fixed length of the data sent from the host device, a plurality of write data transferred from the host device are obtained. The size of the in-cache area for temporarily holding the data from them until the parity group is configured may be small.
【0102】(実施例2)本実施例では実施例1の図1
に示すADC2に対し、データの属性により動的にアド
レス変換を行なうかをADC2内で独自に判断する機能
を付加する。本実施例ではシーケンシャルデータは、A
DC2のMP1 20が独自に判断して、動的なアドレ
ス変換を行なう領域に格納するように制御する。実施例
1では、CPU1から指定されるアドレス(CPU指定
アドレス)71をMP20はアドレステーブル70また
は動的アドレス変換テーブル90により、実際にデータ
の読みだしまたは書き込みを行なうSCSIドライブ1
2に対するSCSIドライブアドレス72に変換する。
書き込み時はこの様なアドレス変換後、CPU1から送
られてきたデータを一端キャッシュメモリ7に格納す
る。その後は、キャッシュ独自のリプレースアルゴリズ
ムでそのデータが追い出されるまで、そのデータをキャ
ッシュに保持する。(Embodiment 2) In this embodiment, FIG.
A function for independently determining whether to dynamically perform address conversion according to the data attribute is added to the ADC 2 shown in FIG. In this embodiment, the sequential data is A
The MP1 20 of DC2 makes a judgment independently and controls so as to store it in the area where dynamic address conversion is performed. In the first embodiment, the MP drive 20 uses the address table 70 or the dynamic address conversion table 90 to actually read or write data from the address 71 designated by the CPU 1 (CPU designated address).
Converted to SCSI drive address 72 for 2.
At the time of writing, after such address conversion, the data sent from the CPU 1 is once stored in the cache memory 7. After that, the data is held in the cache until the data is evicted by the replacement algorithm unique to the cache.
【0103】本実施例では書き込みデータは全て一端キ
ャッシュメモリ7に格納し、一定時間キャッシュメモリ
7内に保持する。このキャッシュメモリ7内に保持する
時間は、ユーザがADC2に対し予め設定することがで
き、ADC2内のMP20により制御される。キャッシ
ュメモリ7内に保持されたデータは、後述するように後
に発行された書き込み要求のCPU指定アドレス71と
でCPU指定アドレス71の比較を行ない、それぞれが
シーケンシャルデータに属するかどうかを判断し、シー
ケンシャルデータに属するデータは動的アドレス変換を
行なう領域に格納するようにMP20が独自に制御を行
なう。In this embodiment, all write data is temporarily stored in the cache memory 7 and held in the cache memory 7 for a certain period of time. The time held in the cache memory 7 can be preset by the user for the ADC 2, and is controlled by the MP 20 in the ADC 2. The data held in the cache memory 7 is compared with the CPU designated address 71 of the write request issued later as will be described later, and the CPU designated address 71 is compared to determine whether each belongs to the sequential data. The MP 20 independently controls so that the data belonging to the data is stored in the area where the dynamic address conversion is performed.
【0104】そこで、以下にMP1 20におけるシー
ケンシャルデータかどうかを判断する方法について示
す。Therefore, a method of determining whether the data is sequential data in MP120 will be described below.
【0105】書き込み時において、CPU1からキャッ
シュメモリ7内へのデータの格納後、MP1 20はC
PU1から送られたCPU指定アドレス71に対し、キ
ャッシュメモリ7内のアドレス変換用テーブルの参照を
行う。図3に示すように本実施例ではアドレステーブル
70の各CPU指定アドレス71に対し、アクセスフラ
グ84を設定する。このアクセスフラグ84は書き込み
時においてCPU1が指定したCPU指定アドレス71
に対し、キャッシュメモリ7内への書き込みデータの格
納後、MP1 20がオン(1)とする。ユーザが予め
指定した一定時間経過後、キャッシュメモリ7からSC
SIドライブ12へ格納した時点でMP1 20により
アクセスフラグ84はオフ(0)とされる。At the time of writing, after the data is stored in the cache memory 7 from the CPU 1, the MP 120 is C
For the CPU-specified address 71 sent from PU1, the address conversion table in the cache memory 7 is referenced. As shown in FIG. 3, in this embodiment, an access flag 84 is set for each CPU designated address 71 in the address table 70. The access flag 84 is the CPU designated address 71 designated by the CPU 1 at the time of writing.
On the other hand, after the write data is stored in the cache memory 7, the MP120 is turned on (1). After a certain period of time designated by the user in advance, the SC is deleted from the cache memory 7.
At the time of storing in the SI drive 12, the access flag 84 is turned off (0) by the MP 120.
【0106】書き込み時において、CPU1から指定さ
れたCPU指定アドレス71について、MP1 20は
アドレステーブル70においてアクセスフラグ84がオ
ン(1)になっているCPU指定アドレス71を調べ、
CPU1から指定されたCPU指定アドレス71とアド
レステーブル70においてアクセスフラグ84がオン
(1)になっている当該CPU指定アドレス71を比較
する。具体的には、ドライブ番号74とCCHHR75
のシリンダアドレス(CC)を比較する。もし、前に発
行され、キャッシュメモリ7内に格納されている(アク
セスフラグ84がオン(1))データのCPU指定アド
レス71と、後に発行された書込み要求のCPU指定ア
ドレス71の比較において、ドライブ番号74が一致
し、しかも、CCHHR75のシリンダアドレスが一致
した場合、これらの書き込み処理はシーケンシャル処理
と判定する。同様に次に発行された書込み要求について
もCPU指定アドレス71を比較する。この様にして、
発行されてきた書込み要求のデータについてMP1 2
0は、ユーザか予め設定しておいた一定時間の間シーケ
ンシャル処理かどうかの判定を行なう。もし、シーケン
シャルなデータの場合は、MP1 20は独自にそのシ
ーケンシャルなデータのグループに対し、当該SCSI
ドライブ12の動的なアドレス変換を行なう領域に書き
込む制御を行なう。具体的には、実施例1と同様にアド
レステーブル70および動的アドレステーブル90の登
録を行ない、キャッシュメモリ7から当該SCSIドラ
イブ12に対する書込み処理をする。At the time of writing, for the CPU designated address 71 designated by the CPU 1, the MP 120 checks the CPU designated address 71 for which the access flag 84 is ON (1) in the address table 70,
The CPU designated address 71 designated by the CPU 1 is compared with the CPU designated address 71 for which the access flag 84 is ON (1) in the address table 70. Specifically, drive number 74 and CCHHR75
Of the cylinder addresses (CC) of. If the CPU designated address 71 of the data issued before and stored in the cache memory 7 (the access flag 84 is on (1)) and the CPU designated address 71 of the write request issued later are compared, the drive If the numbers 74 match and the cylinder addresses of the CCHHR 75 match, these writing processes are determined to be sequential processes. Similarly, the CPU-specified address 71 is compared also with the write request issued next. In this way
Regarding the issued write request data, MP1 2
0 determines whether the process is sequential or not for a predetermined time set by the user. In the case of sequential data, the MP1 20 uniquely sets the SCSI data for the group of sequential data.
Write control is performed in an area of the drive 12 where dynamic address conversion is performed. Specifically, similar to the first embodiment, the address table 70 and the dynamic address table 90 are registered, and the write process from the cache memory 7 to the SCSI drive 12 is performed.
【0107】(実施例3)本実施例では図8に示すよう
に論理グループ10単位にサブDKC11を設け、その
内部に実施例1、2において示したキャッシュメモリ7
内のアドレステーブル70および動的アドレス変換テー
ブル90を持たせたものを示す。本実施例におけるデー
タの処理手順の内、実施例1および2で示した処理手順
と異なる部分のみを図9および10を用いて説明する。
本実施例では図10に示すように実施例1、2で示した
キャッシュメモリ7内のアドレステーブル70および動
的アドレス変換テーブル90を各論理グループ10単位
のサブDKC11内のデータアドレステーブル(DA
T)30に分割する。DAT30は格納されているテー
ブルの形式や機能は実施例1、2と同様であるが、異な
るのは書き込み又は読み出しデータを格納するメモリと
は別のアドレス変換用テーブルを格納する専用メモリ内
に保持される点である。ADC2内のキャッシュメモリ
7内には、図5に示すようなグループアドレステーブル
(GAT)23が格納されており、MP20はこのGA
T23によりCPU1から指示されたCPU指定アドレ
ス71を、そのCPU指定アドレス71が指示する場所
がADU3内のどの論理グループ10かを判定する。(Embodiment 3) In this embodiment, as shown in FIG. 8, a sub DKC 11 is provided for each logical group 10 and the cache memory 7 shown in Embodiments 1 and 2 is provided therein.
The address table 70 and the dynamic address conversion table 90 in FIG. Of the data processing procedure in this embodiment, only the portions different from the processing procedures shown in the first and second embodiments will be described with reference to FIGS.
In this embodiment, as shown in FIG. 10, the address table 70 and the dynamic address conversion table 90 in the cache memory 7 shown in the first and second embodiments are used as the data address table (DA) in the sub DKC 11 for each logical group 10 unit.
T) Divide into 30. The format and function of the stored table of the DAT 30 are similar to those of the first and second embodiments, except that they are held in a dedicated memory for storing an address conversion table different from the memory for storing write or read data. That is the point. A group address table (GAT) 23 as shown in FIG. 5 is stored in the cache memory 7 in the ADC 2, and the MP 20 uses this GA.
The CPU designated address 71 designated by the CPU 1 at T23 determines which logical group 10 in the ADU 3 is the location designated by the CPU designated address 71.
【0108】CPU1からの読み出し要求が転送された
ときにはCPU1から指定されたCPU指定アドレス7
1により、MP20はGAT23で論理グループ10を
確定し、MP20はこの当該論理グループ10に対し読
み出し要求を発行するようにドライブインタフェース2
8に指示する。MP20から指示を受けたドライブイン
タフェース28は当該論理グループ10のサブDKC1
1に対し読み出し要求を発行する。サブDKC11では
マイクロプロセッサMP29がこの読み出し要求のコマ
ンドを受け付け、DAT30を参照し、実施例1で示し
たMP20がアドレステーブル70および動的アドレス
テーブル90を用いて処理したのと同様に当該データが
格納されている論理グループ10内のCPU指定アドレ
ス71に対するSCSIドライブアドレス72およびパ
リティドライブアドレス73を確定する。このアドレス
の確定後、実施例1でのMP20の処理と同様に、MP
29は当該SCSIドライブ12に対し、読み出し要求
を発行する。MP29から読み出し要求を発行されたS
CSIドライブ12ではシーク、回転待ちを行ない、当
該データの読み出しが可能になり次第当該データをドラ
イブアダプタ回路34に転送し、ドライブアダプタ34
はサブキャッシュメモリ32に格納する。サブキャッシ
ュメモリ32に当該データの格納が完了した後、ドライ
ブアダプタ34はMP29に格納報告を行ない、MP2
9は実施例1でのMP20と同様にDAT30内のCP
U指定アドレス71に対応した当該キャッシュフラグ8
2をオン(1)とし、キャッシュアドレス81にサブキ
ャッシュ32内の格納したアドレスを登録する。後に当
該キャッシュフラグ82がオンのデータに対し読み出し
または書込み要求が発行された場合は、サブキャッシュ
32内で処理を行なう。MP3 29によるDAT30
の更新が終了すると、MP3 29はADC2内のDr
ive IF28に対しデータ転送可能という応答を行
ない、DriveIF28はこの応答を受け取ると、M
P1 20に対し報告する。MP1 20はこの報告を
受け取ると、キャッシュメモリ7への格納が可能なら、
Drive IF28に対しサブDKC11からデータ
を転送するように指示する。Drive IF28では
MP1 20からの指示を受けるとサブDKC11のM
P3 29に対し読み出し要求を発行する。この読み出
し要求を受けたMP3 29はサブキャッシュアダプタ
回路(SCA)31に対しサブキャッシュ32から当該
データを読みだすように指示し、SCA31は実際にデ
ータを読み出してDrive IF28にデータを転送
する。Drive IF 28がデータを受け取った後
は、実施例1、2で示した処理を行なう。When the read request from the CPU 1 is transferred, the CPU designated address 7 designated by the CPU 1
1, the MP 20 determines the logical group 10 by the GAT 23, and the MP 20 drives the drive interface 2 so as to issue a read request to the logical group 10.
Tell 8. The drive interface 28 that has received the instruction from the MP 20 sends the sub DKC 1 of the logical group 10 concerned.
Issue a read request to 1. In the sub DKC 11, the microprocessor MP29 accepts the read request command, refers to the DAT 30, and stores the data in the same manner as the MP 20 shown in the first embodiment processes using the address table 70 and the dynamic address table 90. The SCSI drive address 72 and the parity drive address 73 for the CPU designated address 71 in the logical group 10 that has been set are determined. After the address is fixed, the MP is processed in the same manner as the MP20 process in the first embodiment.
29 issues a read request to the SCSI drive 12. S issued a read request from MP29
The CSI drive 12 waits for seek and rotation, transfers the data to the drive adapter circuit 34 as soon as the data can be read, and drives the drive adapter 34.
Is stored in the sub cache memory 32. After the storage of the data in the sub cache memory 32 is completed, the drive adapter 34 reports the storage to the MP 29, and the MP2
9 is a CP in the DAT 30 like the MP 20 in the first embodiment.
The cache flag 8 corresponding to the U designated address 71
2 is turned on (1), and the address stored in the sub cache 32 is registered in the cache address 81. When a read or write request is issued for the data whose cache flag 82 is ON later, the processing is performed in the sub cache 32. DAT 30 by MP3 29
When the update of the
When a response indicating that data transfer is possible is sent to the live IF 28, and the Drive IF 28 receives this response, M
Report to P120. When the MP1 20 receives this report, if it can be stored in the cache memory 7,
It instructs the Drive IF 28 to transfer the data from the sub DKC 11. In Drive IF28, when the instruction from MP1 20 is received, M of sub DKC 11
A read request is issued to P3 29. The MP3 29 receiving this read request instructs the sub cache adapter circuit (SCA) 31 to read the data from the sub cache 32, and the SCA 31 actually reads the data and transfers the data to the Drive IF 28. After the Drive IF 28 receives the data, the processing shown in the first and second embodiments is performed.
【0109】一方書込み時は読み出し時と同様に当該論
理グループ10を確定し、当該論理グループ10のMP
3 29に対し書込み要求を発行する。書込み要求を受
け付け、書込みデータをサブキャッシュ32に格納した
後は、動的にアドレス変換して格納するデータについて
は、実施例1、2に示すように動的アドレス変換してド
ライブ12に書込み、動的アドレス変換しない場合はレ
ベル5の処理を行なう。なお、本実施例ではサブDKC
11内のサブキャッシュ32に格納されたデータにおい
てPG36がパリティデータを作成する。この様にサブ
DKC11においてドライブ12でのアドレス管理とデ
ータ処理を行なうことにより負荷分散が図れる。On the other hand, at the time of writing, the logical group 10 is fixed and the MP of the logical group 10 is determined as in the case of reading.
Issue a write request to 329. After accepting the write request and storing the write data in the sub-cache 32, for the data to be dynamically converted and stored, as shown in the first and second embodiments, the dynamic address is converted and the data is written to the drive 12. If dynamic address translation is not performed, level 5 processing is performed. In this embodiment, the sub DKC is used.
The PG 36 creates parity data in the data stored in the sub-cache 32 in 11. In this way, load management can be achieved by performing address management and data processing in the drive 12 in the sub DKC 11.
【0110】なお、図8では各論理グループ10におい
てサブDKC11が付いているが、一つのサブDKC1
1が複数の論理グループ10を管理しても構わない。こ
のように複数の論理グループ10に対しサブDKC11
をまとめておくことによりDAT30の一括管理が行え
る。In FIG. 8, each logical group 10 has a sub DKC 11, but one sub DKC 1
One may manage a plurality of logical groups 10. In this way, the sub DKC 11 for the plurality of logical groups 10 is
The DAT 30 can be collectively managed by collecting the above.
【0111】なお、本実施例1、2は、磁気ディスクに
ついて述べてきたが、光ディスク、フロッピディスクな
どの記憶装置においても成り立つ。Although the first and second embodiments have been described with respect to the magnetic disk, they are also applicable to a storage device such as an optical disk and a floppy disk.
【0112】[0112]
【発明の効果】以上述べたように、本発明に従って、複
数の書き込みデータとそれらから生成されたパリティデ
ータを含むパリティグループをドライブ内の空き領域に
書き込む方法をとれば、データの書き換えを従来より高
速に行なえる。As described above, according to the present invention, the method of writing a parity group including a plurality of write data and parity data generated from them into an empty area in the drive allows the data to be rewritten more than before. It can be done at high speed.
【0113】さらに、本発明に従って、ある一つのパリ
ティグループを構成する複数のデータの一部が書き換え
られたとき、書き換えられたデータは無効とし、それ以
外のデータはそのまま有効なデータとしてドライブに保
持するようにすれば、データの書き換え時の処理が早く
なる。Further, according to the present invention, when a part of a plurality of data forming a certain parity group is rewritten, the rewritten data is invalidated, and the other data is retained as valid data in the drive as it is. By doing so, the processing at the time of rewriting data becomes faster.
【0114】さらに、本発明に従って、一つのパリティ
グループを構成する複数のデータの長さを上位装置より
送られて来るデータの長さにすれば、いずれかのパリテ
ィグループ内のデータが部分的に無効にされたとして
も、部分的に無効な状態のままでいるパリティグループ
は、より長いデータからパリティデータを構成した場合
より少なくなり、結果として、詰め替えを要する部分的
に無効なパリティグループの数は少なくなる。そのた
め、詰め替え処理の対象となるデータは少なくなる。さ
らに、上位装置から転送された複数の書き込みデータ
を、それらからパリティグループを構成するまでの期間
一時的に保持するためのキャッシュ内領域の大きさは小
さくてよい。Further, according to the present invention, if the length of a plurality of data forming one parity group is set to the length of the data sent from the host device, the data in one of the parity groups is partially Fewer parity groups, even if disabled, remain partially disabled than if the parity data were constructed from longer data, resulting in the number of partially disabled parity groups that need to be refilled. Will be less. Therefore, the data to be refilled is reduced. Furthermore, the size of the in-cache area for temporarily holding the plurality of write data transferred from the higher-level device until they form a parity group may be small.
【図1】第1の実施例の全体構成図。FIG. 1 is an overall configuration diagram of a first embodiment.
【図2】第1の実施例のクラスタ内構成図。FIG. 2 is an internal configuration diagram of a cluster according to the first embodiment.
【図3】アドレステーブルの説明図。FIG. 3 is an explanatory diagram of an address table.
【図4】動的アドレス変換テーブルの説明図。FIG. 4 is an explanatory diagram of a dynamic address translation table.
【図5】第3の実施例で用いるグループアドレステーブ
ル(GAT)の説明図。FIG. 5 is an explanatory diagram of a group address table (GAT) used in the third embodiment.
【図6】本発明のデータ格納方法の説明図。FIG. 6 is an explanatory diagram of a data storage method of the present invention.
【図7】本発明の詰め替え動作説明図。FIG. 7 is an explanatory diagram of a refilling operation of the present invention.
【図8】第3の実施例の全体構成図。FIG. 8 is an overall configuration diagram of a third embodiment.
【図9】第1の実施例のクラスタ内構成図。FIG. 9 is an internal configuration diagram of a cluster according to the first embodiment.
【図10】図9のサブDKC内構成図。FIG. 10 is an internal configuration diagram of the sub DKC of FIG.
【図11】従来のディスクアレイの説明図。FIG. 11 is an explanatory diagram of a conventional disk array.
【図12】従来技術の書込み時間の説明図。FIG. 12 is an explanatory diagram of a writing time according to a conventional technique.
【図13】本発明のドライブの内部アドレス説明図。FIG. 13 is an explanatory diagram of an internal address of the drive of the present invention.
2…アレイディスクコントローラ(ADC)、3…アレ
イディスクユニット(ADU)、4…外部インターフェ
ースパス、5…チャネルパスディレクタ、6…チャネル
パス、7…キャッシュメモリ、8…ドライブパス、9…
アレイディスクユニットパス、12…ドライブ、13…
クラスタ、14…ドライブ側キャッシュアダプタ(C
Adp)、15…インターフェースアダプタ、16…チ
ャネルパススイッチ、17…制御信号線、18…データ
線、19…パス、20…マイクロプロセッサ1(MP
1)、21…チャネルインターフェース(CH IF)
回路、22…データ制御回路(DCC)、23…グルー
プアドレス変換回路(GAT)、24…チャネル側キャ
ッシュアダプタ(C Adp)、27…圧縮回路、28
…ドライブインターフェース回路(Drive I
F)、29…マイクロプロセッサ3(MP3)、30…
データアドレステーブル、31…サブキャッシュアダプ
タ、34…ドライブアダプタ(Drive Adp)、
35…ドライブパス、36…パリティデータ生成回路、
70…アドレステーブル、71…CPU指定アドレス、
72…SCSIドライブアドレス、73…パリティドラ
イブアドレス、74…ドライブ番号、75…CCHH
R、76…DMポインタ、77…SCSIドライブ番
号、78…SCSIドライブ内アドレス、79…パリテ
ィドライブ番号、80…パリティドライブ内アドレス、
81…キャッシュアドレス、82…キャッシュフラグ、
83…ドライブフラグ、84…アクセスフラグ、85…
論理グループアドレス、90…動的アドレス変換テーブ
ル、100…グループアドレステーブル(GAT)。2 ... Array disk controller (ADC), 3 ... Array disk unit (ADU), 4 ... External interface path, 5 ... Channel path director, 6 ... Channel path, 7 ... Cache memory, 8 ... Drive path, 9 ...
Array disk unit path, 12 ... Drive, 13 ...
Cluster, 14 ... Drive side cache adapter (C
Adp), 15 ... Interface adapter, 16 ... Channel path switch, 17 ... Control signal line, 18 ... Data line, 19 ... Path, 20 ... Microprocessor 1 (MP
1), 21 ... Channel interface (CH IF)
Circuits, 22 ... Data control circuit (DCC), 23 ... Group address conversion circuit (GAT), 24 ... Channel side cache adapter (C Adp), 27 ... Compression circuit, 28
... Drive interface circuit (Drive I
F), 29 ... Microprocessor 3 (MP3), 30 ...
Data address table, 31 ... Sub cache adapter, 34 ... Drive adapter (Drive Adp),
35 ... Drive path, 36 ... Parity data generation circuit,
70 ... Address table, 71 ... CPU designated address,
72 ... SCSI drive address, 73 ... parity drive address, 74 ... drive number, 75 ... CCHH
R, 76 ... DM pointer, 77 ... SCSI drive number, 78 ... SCSI drive address, 79 ... Parity drive number, 80 ... Parity drive address,
81 ... Cache address, 82 ... Cache flag,
83 ... Drive flag, 84 ... Access flag, 85 ...
Logical group address, 90 ... Dynamic address conversion table, 100 ... Group address table (GAT).
Claims (28)
数の上位装置から転送された、それぞれ該複数のディス
クドライブに新に書き込まれるべき所定の長さのデータ
あるいは該複数のディスクドライブに書き込み済みのデ
ータを更新すべき該所定長を有するデータのいずれかか
らなる複数の書き込みデータを一時的に保持するキャッ
シユメモリとを有するディスクアレイシステムにおい
て、 (a) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正用データグループを構成するための
データとして、それぞれ該所定長を有する該所定数に等
しい数の書き込みデータを取り出し、取り出された該所
定数の書き込みデータから誤り訂正用のデータを生成
し、 (b) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込み、 (c) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にするス
テップからなるデータ書き込み方法。1. A plurality of disk drives and a predetermined length of data transferred from one or a plurality of host devices to be newly written in each of the plurality of disk drives, or already written in the plurality of disk drives. In a disk array system having a cache memory for temporarily holding a plurality of write data composed of any of the data having the predetermined length to be updated, and (a) a plurality of data held in the cache memory. From the write data, as the data for forming the error correction data group, the write data of the number equal to the predetermined number having the predetermined length are extracted, and the error correction data is extracted from the extracted write data of the predetermined number. (B) The predetermined number of write data and the error correction data are combined into a single error. Correction data group is written in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, and (c) the predetermined number of write data is updated to the data already written to the plurality of disk drives. When the data is included, the data writing method includes the step of invalidating the written data.
された書き込みデータの量が、該レコード長を有する該
所定数に等しい数の書き込みデータを取り出すのに十分
になる毎に、上記ステップ(a)から(c)を実行するステッ
プからなるデータ書き込み方法。2. (d) Each time the amount of write data transferred from the one or more host devices is sufficient to retrieve a number of write data equal to the predetermined number having the record length, A data writing method comprising the steps of executing steps (a) to (c) above.
れたとき、その一つの書き込みデータをキャッシュ記憶
に保持し、 該一つの上位装置から、該一つの書き込みデータが転送
されたときに、該キャッシュに既に保持された他の書き
込みデータの量が、該一定長を有する該所定数に等しい
数の書き込みデータを取り出すのに十分であるときに
は、該一つまたは複数の上位装置から他の書き込みデー
タがそのキャッシュに転送されるのを待たないで、上記
該誤り訂正データの生成を実行し、 該一つの上位装置から、該一つの書き込みデータが転送
されたときに、該キャッシュに保持された書き込みデー
タの量が、該一定長を有する該所定数に等しい数の書き
込みデータを取り出すのに十分でないときには、該キャ
ッシュに保持された書き込みデータの数が、該所定数に
達した後、上記該誤り訂正データの生成を実行するステ
ップからなる請求項1記載のデータ書き込み方法。3. The error correction data is generated by holding one write data in a cache memory when one write data is transferred from the one upper device, When one write data is transferred and the amount of other write data already held in the cache is sufficient to retrieve a number of write data equal to the predetermined number having the fixed length, The generation of the error correction data is executed without waiting for another write data to be transferred to the cache from one or more host devices, and the one write data is transferred from the one host device. And the amount of write data held in the cache is not sufficient to retrieve a predetermined number of write data having the fixed length. The number of write data held in the cache, after reaching the predetermined number, the data writing method of claim 1, wherein comprising a step of executing the generation of the correction data Ri above the mis.
ュメモリに保持された、他の書き込みデータに関して繰
り返し、 (e) 該ステップ(d)を繰り返し実行した結果、該複数の
ドライブに記憶されていたいずれか一つの誤り訂正デー
タグループに属する一群の書き込みデータがすべて無効
となったとき、その後のステップ(d)によるステップ(a)
から(c)の繰り返し特に、その一群の書き込みデータお
よびその誤り訂正データグループに属する誤り訂正用デ
ータを保持していた、該複数のドライブ内の複数の領域
を、空き領域としていずれか他の誤り訂正データグルー
プの書き込みに使用するステップをさらに有する請求項
一記載のデータ書き込み方法。4. (d) The steps (a) to (c) are repeated for other write data held in the cache memory, and (e) the step (d) is repeatedly executed, resulting in the plurality of When all the groups of write data belonging to any one of the error correction data groups stored in the drive are invalidated, the subsequent step (a)
Repeating steps (c) to (c), in particular, a plurality of areas in the plurality of drives, which holds the group of write data and the error correction data belonging to the error correction data group, are set as empty areas and any other error occurs. The data writing method according to claim 1, further comprising a step of writing the correction data group.
数の上位装置から転送された、それぞれ該複数のディス
クドライブに新に書き込まれるべき所定の長さを有する
データあるいは該複数のディスクドライブに書き込み済
みのデータを更新すべき該所定長を有するデータのいず
れかからなる複数の書き込みデータを一時的に保持する
キャッシユメモリとを有するディスクアレイシステムに
おいて、 (a) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正を用データグループを構成するため
のデータとして、それぞれ該所定長を有する該所定数に
等しい数の書き込みデータを取り出し、取り出された該
所定数の書き込みデータから誤り訂正用のデータを生成
し、 (b) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込み、 (c) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にするス
テップからなるデータ書き込み方法。 (d) 該ステップ(a)から(c)を、該キャッシュメモリに保
持された、他の書き込みデータに関して繰り返し、 (e) 該複数のドライブの一つに障害が発生したとき、そ
の一つのドライブに保持されていた複数のデータのう
ち、複数の有効なデータの各々を、該一つのドライブ以
外のドライブに保持されている、そのデータが属する誤
り訂正データグループに属する、複数の他の有効なある
いは無効な書き込みデータと誤り訂正用データとを用い
て選択的に回復するステップからなる障害回復方法。5. A plurality of disk drives and data transferred from one or a plurality of host devices, each having a predetermined length to be newly written in the plurality of disk drives, or written in the plurality of disk drives. A disk array system having a cache memory for temporarily holding a plurality of write data consisting of any of the data having the predetermined length for which the already-written data is to be updated; Of the write data of which the number is equal to the predetermined number having the predetermined length as the data for forming the error correction data group, and the error correction is performed from the extracted predetermined number of write data. Data of (b) the predetermined number of write data and the error correction data, As one error correction data group, write in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, (c) the predetermined number of write data is data that has been written to the plurality of disk drives. The method for writing data, which includes the step of invalidating the already written data when the update data is included. (d) The steps (a) to (c) are repeated for other write data held in the cache memory, and (e) When one of the plurality of drives fails, the one drive Of a plurality of valid data among the plurality of valid data held in the above, each of the plurality of valid data held in a drive other than the one drive belongs to an error correction data group to which the data belongs. Alternatively, a failure recovery method comprising a step of selectively recovering using invalid write data and error correction data.
込みデータに対して、該ステップ(c) を実行した結果、
そのステップ(c) で無効なデータとされたいずれか一つ
のデータが属する誤り訂正データグループに属する一群
の書き込みデータがすべて無効なデータとなった場合に
は、その一群の書き込みデータおよびその誤り訂正グル
ープに属する誤り訂正用データを保持していた、該複数
のドライブ内の複数の領域を、空き領域として他の誤り
訂正データグループに属するデータの書き込みに使用す
るステップをさらに有する請求項5記載の障害回復方
法。6. The result of executing the step (c) for any one group of write data before the occurrence of the failure,
If all the groups of write data that belong to the error correction data group to which any one of the data identified as invalid data in step (c) becomes invalid, the group of write data and its error correction 6. The method according to claim 5, further comprising the step of using a plurality of areas in the plurality of drives, which hold error correction data belonging to a group, as free areas for writing data belonging to another error correction data group. Disaster recovery method.
ブより、該複数の他の有効なまたは無効な書き込みデー
タと該誤り訂正用データとを、選択的に読み出し、 該読み出された書き込み済みデータと該読み出された誤
り訂正用データとから、該一つの有効なデータを回復す
るステップからなる請求項5記載の障害回復方法。7. The recovering step selectively selects a plurality of other valid or invalid write data and the error correction data from a drive other than the one drive among the plurality of drives. 6. The failure recovery method according to claim 5, comprising the step of reading and recovering the one valid data from the read written data and the read error correction data.
数の上位装置から転送された、それぞれ該複数のディス
クドライブに新に書き込まれるべき所定の長さのデータ
あるいは該複数のディスクドライブに書き込み済みのデ
ータを更新すべき該所定長を有するデータのいずれかか
らなる複数の書き込みデータを一時的に保持するキャッ
シユメモリとを有するディスクアレイシステムにおい
て、 (a) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正を用データグループを構成するため
のデータとして、それぞれ該所定長を有する該所定数に
等しい数の書き込みデータを取り出し、取り出された該
所定数の書き込みデータから誤り訂正用のデータを生成
し、 (b) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込み、 (c) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にするス
テップからなるデータ書き込み方法。 (d) 該ステップ(a)から(c)を、該キャッシュメモリに保
持された、他の書き込みデータに関して繰り返し、 (e) それぞれ少なくとも一つの有効な書き込みデータと
少なくとも一つの無効な書き込みデータを含む複数の誤
り訂正データグループ(部分的に無効な誤り訂正データ
グループ)に含まれる複数の有効な書き込みデータを詰
め替えるステップからなり、その詰め替えは、(e1) 部
分的に無効な誤り訂正データグループに含まれている一
つまたは複数の有効な書き込みデータを、該複数のドラ
イブから選択的に読み出し、読み出された一つまたは複
数の有効な書き込みデータをキャッシュ記憶の保持し、
(e2) 該ステップ(e1)を他の部分的に無効な誤り訂正デ
ータグループに対して実行し、(e3) 該キャッシュ記憶
に保持された、複数の有効な書き込みデータから選択さ
れた該所定数に等しい数の有効な書き込みデータの新た
な組みとその書き込みデータの組みに対して新に誤り訂
正用データを生成し、もって、新たな誤り訂正データグ
ループを生成し、(e4) 該生成された新たな誤り訂正デ
ータグループを該複数のドライブ内の空き領域に並列に
再度書き込み、(e5) 該ステップ(e3)(e4)を他の新たな
誤り訂正データグループのために繰返し、(e6) 複数の
部分無効誤り訂正データグループであって、そこに含ま
れていた有効な書き込みデータが該ステップ(e4)(e5)に
より、すべて再書き込みされたものを保持していた複数
の領域を、空き領域として他の誤り訂正データグループ
の書き込みに使用するステップを有するデータ書き込み
方法。8. A plurality of disk drives and a predetermined length of data transferred from one or a plurality of host devices to be newly written in each of the plurality of disk drives, or already written in the plurality of disk drives. In a disk array system having a cache memory for temporarily holding a plurality of write data composed of any of the data having the predetermined length to be updated, and (a) a plurality of data held in the cache memory. From the write data, as the data for forming the data group for error correction, the write data of a number equal to the predetermined number having the predetermined length is extracted, and the error correction is performed from the extracted write data of the predetermined number. Data is generated, and (b) the predetermined number of write data and the error correction data are combined into one As an error correction data group, write in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, and (c) update the predetermined number of write data with respect to the data already written to the plurality of disk drives. When the data is included, the data writing method includes the step of invalidating the written data. (d) repeating steps (a) to (c) with respect to other write data held in the cache memory, (e) each including at least one valid write data and at least one invalid write data It consists of the step of refilling multiple valid write data included in multiple error correction data groups (partially invalid error correction data groups), and the refilling is included in (e1) partially invalid error correction data groups. The one or more valid write data being read out selectively from the plurality of drives, and holding the read one or more valid write data in the cache memory,
(e2) The step (e1) is executed on another partially invalid error correction data group, and (e3) the predetermined number selected from a plurality of valid write data held in the cache memory. A new set of valid write data and a new set of error correction data for that set of write data, and thus a new error correction data group is generated, and (e4) the generated A new error correction data group is written again in parallel to the free space in the plurality of drives, and (e5) the steps (e3) and (e4) are repeated for another new error correction data group, and (e6) a plurality of Of the partial invalid error correction data group of, the valid write data contained therein are all rewritten by the steps (e4) and (e5), Other error correction as Data writing method comprising the step of using a writing over data group.
にある複数の部分的に無効な誤り訂正データグループに
対して選択的に行なわれる請求項8記載のデータ書き込
み方法。9. The data writing method according to claim 8, wherein said step (e1) or (e2) is selectively performed on a plurality of partially invalid error correction data groups in a specific state.
正データグループに含まれた無効とされた書き込みデー
タの数が、予め定めた限界数以上である状態である請求
項8記載のデータ書き込み方法。10. The specific state is a state in which the number of invalid write data included in a partially invalid error correction data group is equal to or more than a predetermined limit number. Data writing method.
達するごとに、その誤り訂正データグループに対して行
なわれる請求項9記載のデータ書き込み方法。11. The data writing according to claim 9, wherein said step (e1) or (e2) is performed on the error correction data group every time any one error correction data group reaches said specific state. Method.
プに属する有効な書き込みデータ対していずれか一つの
上位装置から転送された読み出し要求に応答してその要
求された書き込みデータに対してなされる請求項9記載
のデータ書き込み方法。12. The step (e1) or (e2) is performed on a read request transferred from any one of the host devices for valid write data belonging to any one of the error correction data groups in the specific state. 10. The data writing method according to claim 9, which is performed in response to the requested write data.
所定数に達したときに、該複数の部分的に無効な誤り訂
正データグループに対して行なわれる請求項10記載の
データ書き込み方法。13. The step (e1) or (e2) above, wherein the number of partially invalid error correction data groups is
The data writing method according to claim 10, wherein when a predetermined number is reached, the data writing method is performed on the plurality of partially invalid error correction data groups.
内の空き領域の容量が、予め定めた限界値に達したとき
に、複数の部分的に無効な誤り訂正データグループに対
して選択的に行なわれる請求項9記載のデータ書き込み
方法。14. The step (e1) or (e2) is carried out when a plurality of data writing areas included in the plurality of drives have a free space capacity reaching a predetermined limit value. 10. The data writing method according to claim 9, wherein the data writing is selectively performed on the partially invalid error correction data group.
容量に対する空き領域の容量の比率が、予め定めた限界
比率に達したときに、複数の部分的に無効な誤り訂正デ
ータグループに対して選択的に行なわれる請求項9記載
のデータ書き込み方法。15. The step (e1) or (e2) is carried out when the ratio of the capacity of the free area to the capacity of the area for writing data included in the plurality of drives reaches a predetermined limit ratio. 10. The data writing method according to claim 9, wherein the method is selectively performed on a plurality of partially invalid error correction data groups.
な書き込みデータが転送されたとき、該書き込みデータ
を該キャッシュ記憶に書き込むステップをさらに有し、 上記ステップ(e3)は、該キャッシュにいずれかの上位装
置から転送された新たな書き込みデータがあるときに
は、その新たな書き込みデータと該ステップ(e1)で読み
出された書き込みデータとからなる該所定数に等しい数
の書き込みデータを含む誤り訂正データグループを生成
するステップをさらに有する請求項9記載のデータ書き
込み方法。16. The method further comprises the step of writing the write data to the cache memory when new write data is transferred from the one or more host devices, wherein the step (e3) is performed in the cache. When there is new write data transferred from that higher-level device, an error correction including a number of write data equal to the predetermined number, which is composed of the new write data and the write data read in step (e1) 10. The data writing method according to claim 9, further comprising the step of generating a data group.
複数の上位装置から転送された、それぞれ該複数のディ
スクドライブに新に書き込まれるべき所定の長さのデー
タあるいは該複数のディスクドライブに書き込み済みの
データを更新すべき該所定の長さを有するデータのいず
れかからなる複数の書き込みデータを一時的に保持する
キャッシユメモリとを有するディスクアレイシステムに
おいて、 (a) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正を用データグループを構成するため
のデータとして、それぞれ該所定長を有する該所定数に
等しい数の書き込みデータを取り出し、取り出された該
所定数の書き込みデータから誤り訂正用のデータを生成
し、 (b) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込み、 (c) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にするス
テップからなるデータ書き込み方法。 (d) 該ステップ(a)から(c)を、該キャッシュメモリに保
持された、他の書き込みデータに関して繰り返し、 (e) それぞれ少なくとも一つの有効な書き込みデータと
少なくとも一つの無効な書き込みデータを含む誤り訂正
データグループ(部分的に無効な誤り訂正データグルー
プ)に含まれる複数の有効な書き込みデータを詰め替え
るステップからなり、その詰め替えは、(e1) いずれか
一つの上位装置から転送された、いずれか一つの部分的
に無効な誤り訂正データグループに含まれている有効な
書き込みデータに対する読み出し要求に応答して、その
書き込みデータを該複数のドライブから選択的に読み出
し、かつ、該読み出された書き込みデータを、該一つの
上位装置に転送するとともに、キャッシュ記憶に保持
し、(e2) 該ステップ(e1)および(e2)を他の部分的に無
効な誤り訂正データグループに対して実行し、(e3) 該
キャッシュ記憶に保持された、複数の書き込みデータか
ら選択された該所定数に等しい数の書き込みデータの新
たな組みとその書き込みデータの組みに対して新に誤り
訂正用データを生成し、もって、新たな誤り訂正データ
グループを生成し、(e4) 該生成された新たな誤り訂正
データグループを該複数のドライブ内の空き領域に並列
に書き込み、(e5) 該ステップ(e1)または(e2)により読
み出された書き込みデータが、該ステップ(e4)により再
書き込みされたとき、該複数のドライブに保持されてい
る、その再書き込みされる前のその書き込みデータを無
効にするステップを有するデータ書き込み方法。17. A plurality of disk drives and a predetermined length of data transferred from one or a plurality of host devices and newly written in the plurality of disk drives, respectively, or already written in the plurality of disk drives. In a disk array system having a cache memory for temporarily holding a plurality of write data consisting of any of the data having the predetermined length to be updated (a) held in the cache memory From a plurality of write data, as the data for forming an error correction data group, a number of write data each having the predetermined length and equal to the predetermined number are extracted, and the error correction is performed from the extracted predetermined number of write data. (B) write the predetermined number of write data and the error correction data, As one error correction data group, write in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, (c) the predetermined number of write data is data that has been written to the plurality of disk drives. The method for writing data, which includes the step of invalidating the already written data when the update data is included. (d) repeating steps (a) to (c) with respect to other write data held in the cache memory, (e) each including at least one valid write data and at least one invalid write data It consists of the step of refilling a plurality of valid write data included in the error correction data group (partially invalid error correction data group), and the refilling is either (e1) which is transferred from one of the higher-level devices. In response to a read request for valid write data included in one partially invalid error correction data group, the write data is selectively read from the plurality of drives, and the read write is performed. The data is transferred to the one higher-level device and is retained in the cache memory, and (e2) the steps (e1) and (e2) are performed. And (e3) a new set of write data held in the cache memory and equal in number to the predetermined number selected from the plurality of write data. Error correction data is newly generated for the set of write data, a new error correction data group is generated, and (e4) the generated new error correction data group is stored in the plurality of drives. Writing in the empty area in parallel, (e5) the write data read in step (e1) or (e2) is held in the plurality of drives when rewritten in step (e4), A method for writing data, comprising the step of invalidating the write data before being rewritten.
プ(e1)または(e2)で読み出された書き込みデータが属す
る部分的に無効な誤り訂正データグループが特定状態に
あるときに行なわれる請求項17記載のデータ書き込み
方法。18. The steps (e3) to (e4) are performed when a partially invalid error correction data group to which the write data read in the step (e1) or (e2) belongs is in a specific state. 18. The data writing method according to claim 17, which is performed.
正データグループに含まれた無効とされた書き込みデー
タの数が、予め定めた限界数以上である状態である請求
項18記載のデータ書き込み方法。19. The specific state according to claim 18, wherein the number of invalid write data included in the partially invalid error correction data group is equal to or more than a predetermined limit number. Data writing method.
複数の上位装置から転送された、それぞれ該複数のディ
スクドライブに新に書き込まれるべき所定長を有するデ
ータあるいは該複数のディスクドライブに書き込み済み
のデータを更新すべき該所定長のデータのいずれかから
なる複数の書き込みデータを一時的に保持するキャッシ
ユメモリとを有するディスクアレイシステムにおいて、 (a) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正を用データグループを構成するため
のデータとして、それぞれ該所定長を有する該所定数に
等しい数の書き込みデータを取り出し、取り出された該
所定数の書き込みデータから誤り訂正用のデータを生成
し、 (b) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込み、 (c) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にするス
テップからなるデータ書き込み方法。 (d) 該ステップ(a)から(c)を、該キャッシュメモリに保
持された、他の書き込みデータに関して繰り返し、 (e) それぞれ少なくとも一つの有効な書き込みデータと
少なくとも一つの無効な書き込みデータを含む誤り訂正
データグループ(部分的に無効な誤り訂正データグルー
プ)に含まれる複数の有効な書き込みデータを詰め替え
るステップからなり、その詰め替えは、(e1) いずれか
一つの部分的に無効な誤り訂正データグループに含まれ
ている一つまたは複数の有効な書き込みデータの少なく
とも一つを該複数のドライブから選択的に読み出し、か
つ、該読み出された書き込みデータを該キャッシュ記憶
に一時的に保持し、(e2)いずれか一つの上位装置から新
たな書き込みデータが転送されてきたときに、その書き
込みデータを一時的に該キャッシュ記憶に保持し、(e3)
該ステップ(e1)または(e2)により該キャッシュ記憶に
保持された、複数の書き込みデータから該所定数に等し
い数の書き込みデータの新たな組みを選択し、その書き
込みデータの組みに対して新に誤り訂正用データを生成
し、もって、新たな誤り訂正データグループを生成し、
(e4) 該生成された新たな誤り訂正データグループを該
複数のドライブ内の空き領域に並列に書き込み、(e5)
該ステップ(e1)により読み出された書き込みデータが、
該ステップ(e4)により再書き込みされたとき、該複数の
ドライブに保持されている、その再書き込みされる前の
その書き込みデータを無効にするステップを有するデー
タ書き込み方法。20. A plurality of disk drives and data transferred from one or a plurality of host devices, each having a predetermined length to be newly written in the plurality of disk drives, or already written in the plurality of disk drives. In a disk array system having a cache memory for temporarily holding a plurality of write data consisting of any one of the predetermined length data to be updated, (a) a plurality of write data held in the cache memory From the above, as the data for forming the error correction data group, the write data of the number equal to the predetermined number each having the predetermined length is extracted, and the error correction data is extracted from the extracted predetermined number of write data. (B) The predetermined number of write data and the error correction data are combined into a single error. Correction data group is written in parallel to a plurality of empty areas belonging to different ones of the plurality of drives, and (c) the predetermined number of write data is updated to the data already written to the plurality of disk drives. When the data is included, the data writing method includes the step of invalidating the written data. (d) repeating steps (a) to (c) with respect to other write data held in the cache memory, (e) each including at least one valid write data and at least one invalid write data It consists of the step of refilling a plurality of valid write data included in the error correction data group (partially invalid error correction data group), and the refilling consists of (e1) any one partially invalid error correction data group. Selectively read at least one of the one or more valid write data contained in the plurality of drives, and temporarily hold the read write data in the cache memory, e2) When new write data is transferred from any one of the host devices, the write data is temporarily transferred to the cache. Held in Interview storage, (e3)
A new set of write data of a number equal to the predetermined number is selected from a plurality of write data held in the cache memory by the step (e1) or (e2), and a new set of write data is newly selected. Generate error correction data, and thus generate a new error correction data group,
(e4) The new error correction data group thus generated is written in parallel to an empty area in the plurality of drives, (e5)
The write data read in the step (e1) is
A data writing method comprising: when the data is rewritten by the step (e4), invalidates the write data held in the plurality of drives before the rewriting.
分的に無効な誤り訂正データグループに含まれる有効な
データをすべて読み出すステップからなる請求項20記
載のデータ書き込み方法。21. The data writing method according to claim 20, wherein said step (e1) comprises a step of reading all valid data included in any one partially invalid error correction data group.
プ(e1)または(e2)で読み出された書き込みデータが属す
る部分的に無効な誤り訂正データグループが特定状態に
あるときに行なわれる請求項21記載のデータ書き込み
方法。22. The steps (e3) to (e4) are performed when the partially invalid error correction data group to which the write data read in the step (e1) or (e2) belongs is in a specific state. 22. The data writing method according to claim 21, which is performed.
正データグループに含まれた無効とされた書き込みデー
タの数が、予め定めた限界数以上である状態である請求
項22記載のデータ書き込み方法。23. The specific state is a state in which the number of invalid write data included in a partially invalid error correction data group is equal to or more than a predetermined limit number. Data writing method.
従い確保するときに、その領域が動的アドレス変換をす
る領域か否かをユーザの指示により決定し、 その後上記一つまたは複数の上位装置から上記領域に書
き込むべきデータが転送されたときに、上記書き込み領
域が動的アドレス変換をする領域と決定されている場合
に、上記ステップ(a)から(d)を実行する請求項1記載の
データ書き込み方法。24. When a data write area is secured in accordance with a user's request, it is determined by the user's instruction whether or not the area is a dynamic address translation area, and then the one or more host devices The data according to claim 1, wherein the steps (a) to (d) are executed when the write area is determined to be a dynamic address translation area when the data to be written to the area is transferred. Writing method.
クアレイシステムであって、 (a) それぞれ該複数のディスクドライブに新に書き込ま
れるべき所定の長さを有するデータあるいは該複数のデ
ィスクドライブに書き込み済みのデータを更新すべき該
所定長を有するデータのいずれか一つからなり、一つま
たは複数の上位装置から転送された複数の書き込みデー
タを保持するキャッシュメモリと、 (b) 該キャッシュメモリに保持された複数の書き込みデ
ータから、誤り訂正を用データグループを構成するため
のデータとして、それぞれ該所定長を有する該所定数に
等しい数の書き込みデータを取り出し、取り出された該
所定数の書き込みデータから誤り訂正用のデータを生成
する回路と、 (c) 該所定数の書き込みデータと該誤り訂正用のデータ
とを、一つの誤り訂正データグループとして、該複数の
ドライブの内の互いに異なるものに属する複数の空き領
域に並列に書き込む手段と、 (d) 該所定数の書き込みデータが、該複数のディスクド
ライブに書き込み済みのデータに対する更新データを含
む場合には、その書き込み済みのデータを無効にする手
段とを有するもの。25. A disk array system having a plurality of disk drives, comprising: (a) data having a predetermined length to be newly written in each of the plurality of disk drives or already written in the plurality of disk drives. A cache memory that holds a plurality of write data transferred from one or a plurality of higher-level devices, and that is made up of any one of the data having the predetermined length to be updated, and (b) is held in the cache memory. From the plurality of write data, as the data for forming the data group for error correction, the write data of the number equal to the predetermined number having the predetermined length are extracted, and the error is extracted from the extracted write data of the predetermined number. A circuit for generating correction data, and (c) the predetermined number of write data and the error correction data. And (d) means for writing in parallel to a plurality of empty areas belonging to different ones of the plurality of drives as one error correction data group, and (d) the predetermined number of write data is stored in the plurality of disk drives. When the update data for the written data is included in, the written data is invalidated.
効を複数群の書き込みデータに対して実行した結果、該
複数のドライブに記憶されていたいずれか一つの誤り訂
正データグループに属する一群の書き込みデータがすべ
て無効となったとき、その一群の書き込みデータおよび
その誤り訂正データグループに属する誤り訂正用データ
を保持していた、該複数のドライブ内の複数の領域を、
空き領域として他の誤り訂正データグループの書き込み
に使用する手段を有する請求項25記載のディスクアレ
イシステム26. A group of write data belonging to any one of the error correction data groups stored in the plurality of drives as a result of the invalidation performed by the invalidation unit for a plurality of groups of write data. When all the data become invalid, a plurality of areas in the plurality of drives, which holds the write data of the group and the error correction data belonging to the error correction data group,
26. The disk array system according to claim 25, further comprising means used for writing another error correction data group as a free area.
生したとき、その一つのドライブに保持されていた複数
のデータのうち、複数の有効なデータの各々を、該一つ
のドライブ以外のドライブに保持されている、そのデー
タが属する誤り訂正データグループに属する、複数の他
の有効なあるいは無効な書き込みデータと誤り訂正用デ
ータとを用いて選択的に回復する手段をさらに有する請
求項25記載のディスクアレイシステム。27. (e) When a failure occurs in one of the plurality of drives, each of a plurality of valid data among a plurality of data held in the one drive is transferred to the one drive. A means for selectively recovering by using a plurality of other valid or invalid write data and error correction data belonging to an error correction data group to which the data belongs, which is held in a drive other than Item 25. The disk array system according to Item 25.
き込みデータと少なくとも一つの無効な書き込みデータ
を含む複数の誤り訂正データグループ(部分的に無効な
誤り訂正データグループ)に含まれる複数の有効な書き
込みデータを詰め替える手段をさらに有し、その詰め替
え手段は、(e1) 部分的に無効な誤り訂正データグルー
プに含まれている一つまたは複数の有効な書き込みデー
タを、該複数のドライブから選択的に読み出し、読み出
された一つまたは複数の有効な書き込みデータを該キャ
ッシュメモリに書き込む手段と、(e2) 該書き込み手段
(e1)による書き込みを他の部分的に無効な誤り訂正デー
タグループに対して実行する手段と、(e3) 該キャッシ
ュ記憶に保持された、複数の有効な書き込みデータから
選択された該所定数に等しい数の有効な書き込みデータ
の新たな組みとその書き込みデータの組みに対して新に
誤り訂正用データを生成し、もって、新たな誤り訂正デ
ータグループを生成する手段と、(e4) 該生成された新
たな誤り訂正データグループを該複数のドライブ内の空
き領域に並列に再度書き込みする手段と、(e5) 該手段
(e3)(e4)を他の新たな誤り訂正データグループのために
繰返す手段と、(e6) 複数の部分無効誤り訂正データグ
ループであって、そこに含まれていた有効な書き込みデ
ータが該ステップ(d4)(d5)により、すべて再書き込みさ
れたものを保持していた複数の領域を、空き領域として
他の誤り訂正データグループの書き込みに使用する手段
とを有する請求項25記載のディスクアレイシステム。28. (e) A plurality of valid correction data groups included in a plurality of error correction data groups (partially invalid error correction data groups) each including at least one valid write data and at least one invalid write data. The device further includes means for refilling write data, the refill means selectively selecting one or more valid write data included in the (e1) partially invalid error correction data group from the plurality of drives. Means for writing to the cache memory, one or a plurality of valid write data that have been read, and (e2) the write means.
(e1) means for executing writing to another partially invalid error correction data group, and (e3) the predetermined number selected from a plurality of valid write data held in the cache memory. Means for newly generating error correction data for an equal number of new sets of valid write data and the set of write data, and thereby generating a new error correction data group, and (e4) the generated Means for rewriting the new error correction data group in parallel to the empty areas in the plurality of drives, and (e5) the means.
(e3) A means for repeating (e4) for another new error correction data group, and (e6) a plurality of partially invalid error correction data groups, in which the valid write data included therein 26. The disk array system according to claim 25, further comprising means for using a plurality of areas, which hold all rewritten data, as free areas for writing another error correction data group according to (d4) and (d5). .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5051663A JPH06266510A (en) | 1993-03-12 | 1993-03-12 | Disk array system and data write method and fault recovery method for this system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5051663A JPH06266510A (en) | 1993-03-12 | 1993-03-12 | Disk array system and data write method and fault recovery method for this system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06266510A true JPH06266510A (en) | 1994-09-22 |
Family
ID=12893125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5051663A Pending JPH06266510A (en) | 1993-03-12 | 1993-03-12 | Disk array system and data write method and fault recovery method for this system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06266510A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07295763A (en) * | 1994-04-22 | 1995-11-10 | Internatl Business Mach Corp <Ibm> | Disk, array device and method of storing data |
US6035347A (en) * | 1997-12-19 | 2000-03-07 | International Business Machines Corporation | Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer |
US6233648B1 (en) | 1997-12-26 | 2001-05-15 | Kabushiki Kaisha Toshiba | Disk storage system and data update method used therefor |
US6799245B1 (en) | 1996-11-01 | 2004-09-28 | Fujitsu Limited | Raid apparatus storing a plurality of some logical volumes on different disk units |
JP2005011110A (en) * | 2003-06-19 | 2005-01-13 | Hitachi Ltd | Information processor, method for controlling information processor, program, and information processing system |
US9817717B2 (en) | 2014-12-29 | 2017-11-14 | Samsung Electronics Co., Ltd. | Stripe reconstituting method performed in storage system, method of performing garbage collection by using the stripe reconstituting method, and storage system performing the stripe reconstituting method |
-
1993
- 1993-03-12 JP JP5051663A patent/JPH06266510A/en active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07295763A (en) * | 1994-04-22 | 1995-11-10 | Internatl Business Mach Corp <Ibm> | Disk, array device and method of storing data |
US6799245B1 (en) | 1996-11-01 | 2004-09-28 | Fujitsu Limited | Raid apparatus storing a plurality of some logical volumes on different disk units |
US6035347A (en) * | 1997-12-19 | 2000-03-07 | International Business Machines Corporation | Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer |
US6233648B1 (en) | 1997-12-26 | 2001-05-15 | Kabushiki Kaisha Toshiba | Disk storage system and data update method used therefor |
JP2005011110A (en) * | 2003-06-19 | 2005-01-13 | Hitachi Ltd | Information processor, method for controlling information processor, program, and information processing system |
US9817717B2 (en) | 2014-12-29 | 2017-11-14 | Samsung Electronics Co., Ltd. | Stripe reconstituting method performed in storage system, method of performing garbage collection by using the stripe reconstituting method, and storage system performing the stripe reconstituting method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5463765A (en) | Disk array system, data writing method thereof, and fault recovering method | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
US7831764B2 (en) | Storage system having plural flash memory drives and method for controlling data storage | |
US7882305B2 (en) | Storage apparatus and data management method in storage apparatus | |
US8209595B2 (en) | Storage sub-system and method for controlling the same | |
JP5593577B2 (en) | Storage system and control method thereof | |
JP5116151B2 (en) | A dynamically expandable and contractible fault-tolerant storage system using virtual hot spares | |
JP2902970B2 (en) | System and associated method for writing data to a disk array | |
US20130103895A1 (en) | Flash memory storage system | |
JPH06202817A (en) | Disk array device and data updating method for the same | |
US7849258B2 (en) | Storage apparatus and data verification method for the same | |
WO1993023803A1 (en) | Disk array apparatus | |
CN113971104A (en) | System and method for parity-based fault protection of storage devices | |
US20200133836A1 (en) | Data management apparatus, data management method, and data management program | |
CN111857540B (en) | Data access method, apparatus and computer program product | |
CN114443346A (en) | System and method for parity-based fault protection of storage devices | |
JP2000010738A (en) | Disk array system, storage capacity extension method applied in the system, and record medium | |
WO2015011825A1 (en) | Storage system and control method for storage system | |
JPH07152499A (en) | Parity storage method and fault recovery method in disk array device and disk array device | |
JPH06266510A (en) | Disk array system and data write method and fault recovery method for this system | |
JPH06230903A (en) | Fault recovery method for disk array device and disk array device | |
US11592988B2 (en) | Utilizing a hybrid tier which mixes solid state device storage and hard disk drive storage | |
KR19980047273A (en) | How to Manage Cache on RAID Level 5 Systems | |
JP2004102823A (en) | Write-through processing method, program for write-through processing, and disk controller for redundant logical disk | |
US11609698B1 (en) | Data storage system and storage control method including storing a log related to the stored data |