JPH07200187A - Disk array device - Google Patents

Disk array device

Info

Publication number
JPH07200187A
JPH07200187A JP5351130A JP35113093A JPH07200187A JP H07200187 A JPH07200187 A JP H07200187A JP 5351130 A JP5351130 A JP 5351130A JP 35113093 A JP35113093 A JP 35113093A JP H07200187 A JPH07200187 A JP H07200187A
Authority
JP
Japan
Prior art keywords
disk array
data
parity
disk
transferred
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
Application number
JP5351130A
Other languages
Japanese (ja)
Inventor
Yoshifumi Takamoto
良史 高本
Hitoshi Tsunoda
仁 角田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5351130A priority Critical patent/JPH07200187A/en
Publication of JPH07200187A publication Critical patent/JPH07200187A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To provide a disk array device which can carry out fast input/output operation, facilitates disk management, and causes no decrease in reliability even when many disk drives are connected. CONSTITUTION:This disk array device is equipped with a global disk array controller 103 which puts local disk array controllers 104 to 107, where plural disk drivers 137 to 140 are connected, further in a disk array, Each disk array controller performs RAID control over plural disk drives in its machine. The global disk array controller performs RAID control over the local disk array controllers. Consequently, highly reliable disk devices are obtained by fastness by the division of data and global parity which are generated by the local disk arrays and global disk array and stored in the local disk arrays.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、コンピュータシステム
などに用いるディスクファイルシステムに関し、特に高
速でかつ高信頼なディスクアレイ装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a disk file system used in a computer system or the like, and more particularly to a high speed and highly reliable disk array device.

【0002】[0002]

【従来の技術】一般的に、コンピュータシステムは、プ
ロセッサと2次記憶装置とを備えている。多く使用され
る2次記憶装置として、磁気ディスク装置がある。磁気
ディスク装置において、現在その容量の伸び率は極めて
高いが、メカニカル動作を伴う磁気ディスク装置の性能
はプロセッサ性能の伸び率ほど高くない。その課題を解
決する方式として、ディスクアレイが提案された。
2. Description of the Related Art Generally, a computer system includes a processor and a secondary storage device. A magnetic disk device is a secondary storage device that is often used. In the magnetic disk device, the capacity growth rate is extremely high at present, but the performance of the magnetic disk apparatus accompanied by mechanical operation is not as high as the processor performance growth rate. A disk array has been proposed as a method for solving the problem.

【0003】ディスクアレイに関する代表的な論文とし
て、D.Patterson,G.Gibson,and R.H.Kartzらによる「A
Case for Redundant Arrays of Inexpensive Disks(RAI
D),in ACM SIGMOD Conference,Chicago, IL, (June 198
8)」がある。RAIDとは、複数のディスクドライブにデー
タを分散して配置することでアクセス時間を短縮し、か
つ、誤り訂正用のパリティあるいはECCと呼ばれる冗
長データを格納することで信頼性も高めることができる
技術である。つまり、複数のディスクドライブに対して
並列に入出力を行うことができることによる高速性と、
何れかのディスクドライブに障害が発生したときでもパ
リティと障害ディスクドライブ以外のデータから障害デ
ィスクドライブのデータを回復することができる技術で
ある。
As a representative paper on the disk array, "A of D. Patterson, G. Gibson, and RH Kartz et al.
Case for Redundant Arrays of Inexpensive Disks (RAI
D), in ACM SIGMOD Conference, Chicago, IL, (June 198
8) ” RAID is a technology that shortens access time by allocating data to multiple disk drives in a distributed manner, and also improves reliability by storing redundant data called parity for error correction or ECC. Is. In other words, the high speed that can be input and output to multiple disk drives in parallel,
This is a technology that can recover the data of the failed disk drive from the data other than the parity and the failed disk drive even when a failure occurs in any of the disk drives.

【0004】この技術を実現するための特許出願もなさ
れており、例えば、ジャイシヤンカー ムーセダス ミ
ノン,ジェイムス マシューズ カーソン(インターナ
ショナル ビジネス マシーンズ CORP)らによる
特開平4−230512号がある。この公報には、ディ
スクアレイにおける課題の一つであるパリティの更新を
高速にする技術が開示されている。
A patent application for realizing this technique has also been filed, for example, Japanese Patent Laid-Open No. 4-230512 by Jaishyanker Musedas Minon and James Matthews Carson (International Business Machines CORP). This publication discloses a technique for speeding up parity update, which is one of the problems in the disk array.

【0005】ディスクアレイでは、データ書き込み時
に、データ自体とパリティの更新を行わなくてはならな
い。パリティの更新のためには、更新前のデータとパリ
ティが必要となるケースがあり、そのためそれらのデー
タやパリティを事前に読みだすオーバヘッドと元のデー
タやパリティの位置に新しいデータやパリティを書き込
むオーバヘッドがかかる。これをライト・ペナルティと
呼ぶ。上記公報には、新しいデータやパリティを元の位
置に記録せず、ディスクドライブの空き領域に格納する
ことで、ライト・ペナルティによるオーバヘッドを少な
くする技術が開示されている。
In the disk array, the data itself and the parity must be updated when writing the data. In order to update the parity, there are cases in which the data and parity before the update are required. Therefore, the overhead of reading these data and parity in advance and the overhead of writing new data and parity at the original data and parity positions. Takes. This is called the light penalty. The above-mentioned publication discloses a technique for reducing the overhead due to the write penalty by storing new data and parity in the free area of the disk drive without recording them in the original position.

【0006】他に、ディスクアレイの実装を容易にする
ための技術として、特開平5−46524号に開示され
たものがある。この公報に記載のディスクアレイ装置
は、ディスクアレイの実装を容易にするために、複数の
ディスクを共通のバスに接続し、そのバスに接続された
上位コントローラがディスクアレイ制御を行うものであ
る。
Another technique for facilitating the mounting of the disk array is disclosed in Japanese Patent Laid-Open No. 5-46524. The disk array device described in this publication connects a plurality of disks to a common bus to facilitate mounting of the disk array, and a host controller connected to the bus controls the disk array.

【0007】[0007]

【発明が解決しようとする課題】ディスクアレイコント
ローラの基本的な機能として、ホストプロセッサからの
入出力要求を解釈/実行、データの分割、パリティの生
成、キャッシュメモリ管理、およびディスクドライブの
起動/終了処理がある。このように、ディスクアレイコ
ントローラは、通常のディスクコントローラに比べて多
くの処理を行なわなければならない。
The basic functions of the disk array controller are to interpret / execute input / output requests from the host processor, divide data, generate parity, manage cache memory, and start / end disk drive. There is processing. As described above, the disk array controller has to perform more processing than the normal disk controller.

【0008】例えば、2台のドライブ(データを格納す
る1台のディスクドライブとパリティを格納する1台の
ディスクドライブ)でRAID5のディスクアレイ装置
を構成したとする。このとき、新データの書き込み時に
は、旧データと旧パリティをそれぞれ2台のディスクド
ライブから読みだし、その後、新データと新パリティを
前記2台のディスクドライブに出力しなければならな
い。つまり、1つの出力処理で4回のディスク入出力が
発生することになり、これがライト・ペナルティにな
る。その他にも、ディスクアレイコントローラ特有の処
理として、データの分割、パリティの生成などを行なう
必要がある。
For example, assume that a RAID 5 disk array device is configured with two drives (one disk drive for storing data and one disk drive for storing parity). At this time, when writing new data, the old data and the old parity must be read from each of the two disk drives, and then the new data and the new parity must be output to the two disk drives. In other words, one output process results in four disk inputs / outputs, which is a write penalty. In addition, it is necessary to perform data division, parity generation, etc. as processing unique to the disk array controller.

【0009】従来のディスクアレイ装置は、一つのディ
スクアレイコントローラで複数のディスクドライブを制
御していた。そのような構成で多数のディスクドライブ
を制御するためには、高速なディスクアレイコントロー
ラを設けるか、同様のディスクアレイコントローラを複
数設ける必要がある。
In the conventional disk array device, one disk array controller controls a plurality of disk drives. In order to control a large number of disk drives with such a configuration, it is necessary to provide a high speed disk array controller or a plurality of similar disk array controllers.

【0010】しかし、高速なディスクアレイコントロー
ラは非常に高価であり、これはディスクアレイ装置全体
のコストを上げることにつながる。また、同様のディス
クアレイコントローラを複数設けると、利用者から複数
のディスク装置に見えてしまい、ディスク管理を複雑に
する欠点がある。
However, a high speed disk array controller is very expensive, which leads to an increase in the cost of the entire disk array device. Further, if a plurality of similar disk array controllers are provided, the user sees them as a plurality of disk devices, which has the drawback of complicating disk management.

【0011】本発明の目的は、ディスクアレイ装置の改
良にある。また、本発明の目的は、多数のディスクドラ
イブを接続しても、高速な入出力が可能であり、コスト
を上げることがなく、またディスク管理も容易で信頼性
を低下させることもないディスクアレイ装置を提供する
ことにある。
An object of the present invention is to improve a disk array device. Further, an object of the present invention is to enable a high-speed input / output even if a large number of disk drives are connected, which does not increase the cost, and which makes disk management easy and does not reduce reliability. To provide a device.

【0012】[0012]

【課題を解決するための手段】本発明では、複数のディ
スクドライブが、それぞれ複数のディスクドライブを含
む複数の論理グループに分けられており、各論理グルー
プは、例えば各論理グループごとに設けられたディスク
アレイ制御装置によりそれぞれ管理される。そして、ホ
ストプロセッサから転送されたボリウム内アドレスとデ
ータ長に基づいて、前記論理グループの一つまたは複数
を選択し、前記選択された論理グループごとに格納され
るデータからパリティを生成し、前記論理グループ内の
ディスクドライブに前記データとパリティを格納するよ
うにする。
According to the present invention, a plurality of disk drives are divided into a plurality of logical groups each including a plurality of disk drives, and each logical group is provided for each logical group, for example. Each is managed by the disk array controller. Then, based on the address in the volume and the data length transferred from the host processor, one or more of the logical groups are selected, a parity is generated from the data stored in each of the selected logical groups, and the logical The data and parity are stored in the disk drives in the group.

【0013】さらに、前記論理グループ内のパリティが
格納されたドライブを除く他のディスクドライブに対
し、ディスクドライブの格納単位ごとに順次連続した前
記ボリウム内アドレスを割り付け、さらに前記ボリウム
内アドレスは複数の前記論理グループに渡って順次水平
に割り付ける。
Further, to the other disk drives other than the drive in which the parity is stored in the logical group, the consecutive addresses in the volume are sequentially assigned for each storage unit of the disk drive, and the addresses in the volume are plural. Allocate horizontally to the logical groups sequentially.

【0014】[0014]

【作用】複数のディスクドライブから構成される複数の
論理グループに分け、前記論理グループごとに例えばデ
ィスクアレイ制御装置を設けて管理するので、小数のデ
ィスクドライブを管理する安価なディスクアレイコント
ローラになり、また、前記論理グループ内のパリティが
格納されたドライブを除く他のディスクドライブに対
し、ディスクドライブの格納単位毎に順次連続した前記
ボリウム内アドレスを割り付け、さらに前記ボリウム内
アドレスは複数の前記論理グループに渡って順次水平に
割り付けることで、利用者からは単一のディスクドライ
ブとして管理することができるようになる。
The present invention is divided into a plurality of logical groups composed of a plurality of disk drives, and for example, a disk array controller is provided for each logical group for management, so that an inexpensive disk array controller for managing a small number of disk drives, Further, to the other disk drives other than the drive in which the parity is stored in the logical group, the consecutive addresses in the volume are sequentially assigned for each storage unit of the disk drive, and further, the addresses in the volume are plural logical groups. By horizontally allocating the data sequentially over, the user can manage as a single disk drive.

【0015】[0015]

【実施例】以下、図面を用いて、本発明の実施例を詳細
に説明する。
Embodiments of the present invention will be described in detail below with reference to the drawings.

【0016】[実施例1]図1は、本発明の第1の実施
例に係るディスクアレイ装置の全体構成図を示したもの
である。
[Embodiment 1] FIG. 1 is a diagram showing the overall configuration of a disk array device according to a first embodiment of the present invention.

【0017】ディスクアレイ制御装置(102)は、ホ
ストプロセッサ(101)と接続されている。ディスク
アレイ制御装置(102)は、複数のディスク装置(1
33,134,135,136)に接続されている。各
ディスク装置(133,134,135,136)は、
それぞれ複数のディスクドライブ(137,138,1
39,140)を備えている。
The disk array controller (102) is connected to the host processor (101). The disk array control device (102) includes a plurality of disk devices (1
33,134,135,136). Each disk device (133,134,135,136)
Multiple disk drives (137, 138, 1)
39, 140).

【0018】ディスクアレイ制御装置(102)は、イ
ンタフェース制御部(108)と、グローバルディスク
アレイ制御装置(103)と、複数のローカルディスク
アレイ制御装置(104,105,106,107)と
から構成されている。
The disk array controller (102) comprises an interface controller (108), a global disk array controller (103), and a plurality of local disk array controllers (104, 105, 106, 107). ing.

【0019】インタフェース制御部(108)は、ホス
ト(101)との間のデータあるいはコマンドの転送プ
ロトコル制御を行う。グローバルディスクアレイ制御装
置(103)は、複数のローカルディスクアレイ制御装
置(104,105,106,107)に対して、デー
タの分割、パリティの生成/格納、あるいはそれらの複
数のローカルディスクアレイ制御装置(104,10
5,106,107)から転送されたデータのマージ処
理などを行う。
The interface control unit (108) controls the transfer protocol of data or commands with the host (101). The global disk array control device (103) divides data, generates / stores parity, or controls a plurality of local disk array control devices for the plurality of local disk array control devices (104, 105, 106, 107). (104,10
5, 106, 107) and merge processing of the data transferred.

【0020】1つのローカルディスクアレイ制御装置
(104,105,106,107)は、1つの論理グ
ループに相当する。各ローカルディスクアレイ制御装置
(104,105,106,107)は、グローバルデ
ィスクアレイ制御装置(103)から受けたデータの分
割格納やパリティの生成/格納などを行う。論理グルー
プとは、RAID制御の単位である。すなわち、論理グ
ループを構成するローカルディスクアレイ制御装置は、
上位から受けたデータを分割しパリティを生成して複数
のドライブに格納するが、それら複数のドライブを含む
RAID制御の単位を論理グループという。
One local disk array controller (104, 105, 106, 107) corresponds to one logical group. Each local disk array control device (104, 105, 106, 107) performs divided storage of data received from the global disk array control device (103) and generation / storage of parity. A logical group is a unit of RAID control. That is, the local disk array control devices that make up the logical group are
The data received from the host is divided, parity is generated and stored in a plurality of drives, and the unit of RAID control including the plurality of drives is called a logical group.

【0021】グローバルディスクアレイ制御装置(10
3)と複数のローカルディスクアレイ制御装置(10
4,105,106,107)は共に、ディスク装置
(133,134,135,136)の障害やディスク
装置(133,134,135,136)内のディスク
ドライブ(137,138,139,140)の障害時
に、パリティを使用して障害回復が可能である。
Global Disk Array Controller (10
3) and a plurality of local disk array controllers (10
4, 105, 106, 107) both cause a failure of the disk device (133, 134, 135, 136) and a disk drive (137, 138, 139, 140) in the disk device (133, 134, 135, 136). In the event of a failure, parity can be used to recover from the failure.

【0022】本実施例の特徴の一つは、ローカルディス
クアレイ制御装置(104,105,106,107)
を制御するグローバルディスクアレイ制御装置(10
3)を設けていることである。これらの関連した詳細動
作は後で説明する。
One of the characteristics of this embodiment is that the local disk array controller (104, 105, 106, 107)
For controlling the global disk array controller (10
3) is provided. These related detailed operations will be described later.

【0023】グローバルディスクアレイ制御装置(10
3)は、コマンド制御部(141)、制御メモリ(14
5)、キャッシュメモリ(142)、グローバルRAI
D制御部(143)、およびインタフェースコントロー
ラ(144)から構成されている。
Global disk array controller (10
3) is a command controller (141) and a control memory (14
5), cache memory (142), global RAI
It is composed of a D control unit (143) and an interface controller (144).

【0024】コマンド制御部(141)は、ホストプロ
セッサ(101)からの入出力要求を解釈し、制御メモ
リ(145)内のキューに入出力要求をキューイングす
る。制御メモリ(145)内には、ディスクアレイ装置
全体を管理するための制御情報が格納されている。キャ
ッシュメモリ(142)内には、ディスクアレイ装置
(102)が入出力を行ったデータを、キャッシュメモ
リ(142)の容量の範囲内で格納しておく。頻繁にア
クセスされるデータは、キャッシュメモリ(142)に
残っている確率が高くなる。
The command control unit (141) interprets an input / output request from the host processor (101) and queues the input / output request in a queue in the control memory (145). Control information for managing the entire disk array device is stored in the control memory (145). The data input / output by the disk array device (102) is stored in the cache memory (142) within the capacity of the cache memory (142). Data that is frequently accessed has a high probability of remaining in the cache memory (142).

【0025】グローバルRAID制御部(143)は、
複数のローカルディスクアレイ制御装置(104,10
5,106,107)を、ホスト101からは単体ディ
スクまたは複数ディスクとして取り扱うことができるよ
うな制御を行う。インタフェースコントローラ(14
4)は、ローカルディスクアレイ制御装置(104,1
05,106,107)との間のデータあるいはコマン
ドの転送制御を行う。
The global RAID controller (143) is
A plurality of local disk array control devices (104, 10
5, 106, 107) is controlled by the host 101 so that it can be handled as a single disk or a plurality of disks. Interface controller (14
4) is a local disk array controller (104, 1)
05, 106, 107) and transfer control of data or commands.

【0026】以上が本実施例のディスクアレイ装置の構
成概要であり、詳細な説明を以下に述べる。
The above is the outline of the configuration of the disk array device of this embodiment, and a detailed description will be given below.

【0027】図2は、本発明における動作の概要の一例
を示しており、本発明の特徴と効果の一例を以下に述べ
る。
FIG. 2 shows an example of the outline of the operation of the present invention, and an example of the features and effects of the present invention will be described below.

【0028】本動作概要は、ホストプロセッサ(10
1)からデータ(223)がディスク装置(133,1
34,135)内のディスクドライブに格納されるまで
の動作とデータの流れを示している。本例は、ローカル
ディスクアレイ制御装置(104)がRAID3の動作
を行なったケースである。
The outline of this operation is as follows.
Data (223) from the disk drive (133, 1)
34, 135) and the flow of data until the data is stored in the disk drive. In this example, the local disk array controller (104) performs the RAID3 operation.

【0029】ホストプロセッサ(101)から転送され
たデータ(223)は、ディスクアレイ制御装置(10
2)内のグローバルディスクアレイ制御装置(103)
で、ローカルディスクアレイ制御装置(104,10
5,106)の台数分(3つ)に分割される(20
1)。これらのデータ(219,220,221)は、
並列にローカルディスクアレイ制御装置(104,10
5,106)に転送される。
The data (223) transferred from the host processor (101) is transferred to the disk array controller (10).
2) Global disk array controller (103)
Then, the local disk array controller (104, 10
(5,106) divided into three (3) (20
1). These data (219, 220, 221) are
Parallel local disk array control devices (104, 10
5, 106).

【0030】ローカルディスクアレイ制御装置(10
4,105,106)にデータが転送されると、ローカ
ルディスクアレイ制御装置(104,105,106)
内で、各ローカルディスクアレイ制御装置(104,1
05,106)に接続されているディスクドライブ数か
らパリティ格納用ディスクドライブ数を除いた台数分に
データの分割が行われ(207,209,211)、さ
らに同時にグローバルディスクアレイ制御装置(10
3)から転送されたデータのパリティが生成される(2
08,210,212)。ローカルディスクアレイ制御
装置(104,105,106)内で分割されたデータ
とパリティは並列にディスクドライブに格納される。
Local disk array controller (10
Data transfer to the local disk array controller (104, 105, 106)
Within each local disk array controller (104, 1
05, 106), the data is divided into the number of disk drives connected to the number of disk drives connected to (05, 106) (207, 209, 211), and at the same time, the global disk array controller (10
Parity of the data transferred from (3) is generated (2
08, 210, 212). The data and the parity divided in the local disk array controller (104, 105, 106) are stored in parallel in the disk drive.

【0031】ローカルディスクアレイ制御装置(10
4,105,106)は、それぞれ単独で動作可能な機
構を持っているため、全てのディスクドライブの並列動
作が可能となる。こういった構成により、大規模なデー
タの高速な入出力が可能となる。
Local disk array controller (10
4, 105, 106) each have a mechanism capable of operating independently, so that all disk drives can operate in parallel. With such a configuration, high-speed input / output of large-scale data becomes possible.

【0032】図3は、本発明における動作の概要の一例
を示しており、本発明の特徴と効果の一例を以下に述べ
る。
FIG. 3 shows an example of the outline of the operation of the present invention, and an example of the features and effects of the present invention will be described below.

【0033】本動作概要は、ホストプロセッサ(10
1)からデータ(223)がディスク装置(133)内
のディスクドライブに格納されるまでの動作とデータの
流れを示している。本例は、ローカルディスクアレイ制
御装置(104)がRAID5の動作を行なったケース
である。
The outline of this operation is as follows.
The operation and the flow of data from 1) to the storage of data (223) in the disk drive in the disk device (133) are shown. In this example, the local disk array controller (104) performs the RAID5 operation.

【0034】ホストプロセッサ(101)からデータ
(223)が転送されると、ディスクアレイ制御装置
(102)内のグローバルディスクアレイ制御装置(1
03)では、そのデータを格納すべきローカルディスク
アレイ制御装置(104)の選択が行なわれる。
When the data (223) is transferred from the host processor (101), the global disk array controller (1) in the disk array controller (102).
In 03), the local disk array controller (104) to store the data is selected.

【0035】ローカルディスクアレイ制御装置(10
4)にデータが転送されると、ローカルディスクアレイ
制御装置(104)内で、ローカルディスクアレイ制御
装置(104)に接続されているディスクドライブ数か
らパリティ格納用ディスクドライブ数を除いた台数分に
データの分割が行われ(207)、さらに同時にグロー
バルディスクアレイ制御装置(103)から転送された
データのパリティの一括生成が行なわれる(208)。
Local Disk Array Controller (10
When the data is transferred to 4), the number of disk drives connected to the local disk array controller (104) minus the number of disk drives for parity storage is subtracted from the number of disk drives connected to the local disk array controller (104). The data is divided (207), and at the same time, the parity of the data transferred from the global disk array controller (103) is collectively generated (208).

【0036】通常RAID5は、ブロック単位の入出力
を行なうため、複数ブロックの格納時には各ブロック毎
にライト・ペナルティが生じる。しかし、本例に示すよ
うに、連続して複数のブロックの書き込み時には、本発
明によるように、連続してアドレスを設定することで、
一括してパリティの生成を行なうことができるようにな
る。
Since the normal RAID 5 performs input / output in block units, a write penalty occurs in each block when storing a plurality of blocks. However, as shown in this example, when a plurality of blocks are continuously written, as in the present invention, by continuously setting the addresses,
It becomes possible to collectively generate parity.

【0037】ローカルディスクアレイ制御装置(10
4)内で分割されたデータとパリティは並列にディスク
ドライブに格納される。こういった構成により、短いデ
ータのスループットを向上することができる。
Local disk array controller (10
The data and parity divided in 4) are stored in parallel in the disk drive. With such a configuration, the throughput of short data can be improved.

【0038】図4は、本発明における動作の概要の一例
を示しており、本発明の特徴と効果の一例を以下に述べ
る。
FIG. 4 shows an example of the outline of the operation of the present invention, and an example of the features and effects of the present invention will be described below.

【0039】本動作概要は、ホストプロセッサ(10
1)からデータ(223)がディスク装置(133,1
34,135,136)内のディスクドライブ(13
7,138,139,140)に格納されるまでの動作
とデータの流れを示している。
The outline of this operation is as follows.
Data (223) from the disk drive (133, 1)
Disk drives (13, 34, 135, 136)
7, 138, 139, 140) and the data flow.

【0040】ホストプロセッサ(101)から転送され
たデータ(223)は、ディスクアレイ制御装置(10
2)内のグローバルディスクアレイ制御装置(103)
で、ローカルディスクアレイ制御装置(104,10
5,106,107)の台数からグローバルパリティ格
納用のローカルディスクアレイ制御装置(107)の台
数を除いた数に分割される(201)。同時に、ホスト
プロセッサ(101)から転送されたデータ全体のグロ
ーバルパリティが生成される(202)。これらのデー
タは、並列にローカルディスクアレイ制御装置(10
4,105,106,107)に転送される。
The data (223) transferred from the host processor (101) is transferred to the disk array controller (10).
2) Global disk array controller (103)
Then, the local disk array controller (104, 10
5, 106, 107) and the number of local disk array control devices (107) for storing global parity is removed (201). At the same time, global parity of the entire data transferred from the host processor (101) is generated (202). These data are sent in parallel to the local disk array controller (10
4, 105, 106, 107).

【0041】一般に、ディスクアレイは、信頼性の向上
のために、データとは異なるパリティを生成しディスク
ドライブに格納しておく。もし、ディスクドライブに障
害が発生しても、パリティと障害が発生したディスクド
ライブ以外のディスクドライブのデータとから、障害が
発生したディスクドライブのデータを、演算により求め
ることができる。
In general, a disk array generates a parity different from data and stores it in a disk drive in order to improve reliability. Even if a failure occurs in the disk drive, the data of the failed disk drive can be calculated from the parity and the data of the disk drives other than the failed disk drive.

【0042】ローカルディスクアレイ制御装置(10
4,105,106,107)にデータが転送される
と、各ローカルディスクアレイ制御装置(104,10
5,106,107)内で、ローカルディスクアレイ制
御装置(104,105,106,107)に接続され
ているディスクドライブ(137,138,139,1
40)の数からパリティ格納用ディスクドライブを除い
た台数分にデータの分割が行われる(207,209,
211,213)。さらに同時に、グローバルディスク
アレイ制御装置(103)から転送されたデータのパリ
ティが生成される(208,210,212,21
4)。ローカルディスクアレイ制御装置(104,10
5,106,107)内で分割されたデータとパリティ
は、並列にディスクドライブ(137,138,13
9,140)に格納される。
Local disk array controller (10
4, 105, 106, 107), the local disk array controller (104, 10)
5, 106, 107), the disk drives (137, 138, 139, 1) connected to the local disk array controller (104, 105, 106, 107).
40), the data is divided into the number of units excluding the parity storage disk drive (207, 209,
211, 213). At the same time, the parity of the data transferred from the global disk array controller (103) is generated (208, 210, 212, 21).
4). Local disk array controller (104, 10
5, 106, 107) and the data and the parity are divided into disk drives (137, 138, 13) in parallel.
9, 140).

【0043】ローカルディスクアレイ制御装置(10
4,105,106,107)は、それそれ単独で動作
可能な機構を持っているため、全てのディスクドライブ
(137,138,139,140)の並列動作が可能
となる。こういった構成により、大規模なデータの高速
な入出力が可能となる。
Local Disk Array Controller (10
4, 105, 106, 107) have a mechanism capable of operating independently, so that all the disk drives (137, 138, 139, 140) can operate in parallel. With such a configuration, high-speed input / output of large-scale data becomes possible.

【0044】さらには、通常のディスクアレイのパリテ
ィ以外に、ローカルディスクアレイ制御装置(104,
105,106)間のパリティ(グローバルパリティ)
を生成/格納していることから高い信頼性を得ることが
できる。つまり、各ローカルディスクアレイ制御装置
(104,105,106,107)での回復処理と、
上位のグローバルディスクアレイ制御装置(103)で
の回復処理といったように、本発明では障害回復処理が
多層化されることによる。
In addition to the normal disk array parity, the local disk array controller (104,
(Parity between 105 and 106) (global parity)
High reliability can be obtained from the fact that is generated / stored. In other words, recovery processing in each local disk array control device (104, 105, 106, 107),
This is because the failure recovery processing is multi-layered in the present invention, such as the recovery processing in the higher-level global disk array controller (103).

【0045】図5は、図2から図4で述べた特徴と効果
とは別の特徴と効果の一例を示している。具体的には、
本発明の入出力要求と終了報告の流れを示している。
FIG. 5 shows an example of features and effects different from the features and effects described with reference to FIGS. 2 to 4. In particular,
7 shows a flow of an input / output request and a termination report according to the present invention.

【0046】ホストプロセッサ(101)からデータが
転送されると、グローバルディスクアレイ制御装置(1
03)はそのデータを分割しグローバルパリティを生成
して、下位のローカルディスクアレイ制御装置(10
4,105,106,107)に並列に入出力を行なう
(301)。ローカルディスクアレイ制御装置(10
4,105,106,107)は、グローバルディスク
アレイ制御装置(103)から転送されたデータを分割
しパリティを生成して、ディスクドライブ(137,1
38,139,140)に並列に入出力を行なう(30
6,307,308,309)。
When data is transferred from the host processor (101), the global disk array controller (1
03) divides the data and generates global parity, and the lower local disk array controller (10)
Input / output is performed in parallel with (4), 105, 106, 107) (301). Local disk array controller (10
4, 105, 106, 107) divides the data transferred from the global disk array controller (103) and generates parity, and the disk drive (137, 1)
Input / output (30, 139, 140) in parallel (30
6, 307, 308, 309).

【0047】いま仮にローカルディスクアレイ制御装置
(104,105,106,107)の数をmとし、各
ローカルディスクアレイ制御装置(104,105,1
06,107)に接続されたドライブ数をdとすると、
全部でmd台のディスクドライブがあることになる。も
し、一つのディスクアレイ制御装置にこのmd台の全て
のディスクドライブが接続されるとすると、md回の入
出力を一つの制御装置がまかなうことになり、非常に高
速な制御装置が必要となる。
Now, assuming that the number of local disk array control devices (104, 105, 106, 107) is m, each local disk array control device (104, 105, 1).
06, 107) and the number of drives connected is d,
There are a total of md disk drives. If all the md disk drives are connected to one disk array control device, one control device will handle the input / output of md times, and a very high speed control device is required. .

【0048】しかし、本発明では、各ローカルディスク
アレイ制御装置(104,105,106,107)毎
にd回と少ない入出力回数を処理するだけでよく、ロー
カルディスクアレイ制御装置(104,105,10
6,107)に高速な処理は要求されない。
However, in the present invention, it is only necessary to process a small number of times of input / output, d times, for each local disk array control device (104, 105, 106, 107), and the local disk array control device (104, 105, 10
6, 107) does not require high-speed processing.

【0049】図6は、コマンド制御部(141)の構成
を示している。コマンド制御部(141)は、インタフ
ェース制御部(108)とのコマンドやデータの転送制
御を行うアダプタ(401)、プロセッサ(402)、
DMAC(403)、メモリ(404)、バス(40
7)、およびバッファ(408)から構成されている。
FIG. 6 shows the structure of the command control unit (141). The command control unit (141) includes an adapter (401), a processor (402), which controls transfer of commands and data with the interface control unit (108),
DMAC (403), memory (404), bus (40
7) and a buffer (408).

【0050】メモリ(404)内には、コマンド制御を
行うマイクロプログラム(405,406)が格納され
ている。具体的には、コマンド受付処理プログラム(4
05)と終了処理プログラム(406)である。これら
の詳細は後で述べる。
Microprograms (405, 406) for command control are stored in the memory (404). Specifically, the command reception processing program (4
05) and the end processing program (406). These details will be described later.

【0051】マイクロプログラム(405,406)
は、共通バス(408)を介して、プロセッサ(40
2)で実行される。コマンド制御部(141)と外部の
制御部とのデータ転送は、ダイレクトメモリアクセスコ
ントローラであるDMAC(403)が、プロセッサ
(402)とは独立に、実行する。コマンド制御部(1
41)から制御メモリ(145)やキャッシュにデータ
やコマンドを転送する際は、バッファ(408)とバス
(409)を介して行われる。
Micro Program (405, 406)
Via the common bus (408) to the processor (40
It is executed in 2). Data transfer between the command control unit (141) and the external control unit is executed by the DMAC (403) which is a direct memory access controller, independently of the processor (402). Command controller (1
Data and commands are transferred from 41) to the control memory (145) or cache via the buffer (408) and the bus (409).

【0052】図7は、制御メモリ(145)に格納され
ているテーブルやリストを示している。502は仮想ド
ライブ管理テーブル、503はI/O管理リスト、50
4はローカルディスクアレイ管理テーブル、505はキ
ャッシュ管理リスト、506はコマンドキューリストで
ある。
FIG. 7 shows the tables and lists stored in the control memory (145). 502 is a virtual drive management table, 503 is an I / O management list, 50
Reference numeral 4 is a local disk array management table, 505 is a cache management list, and 506 is a command queue list.

【0053】仮想ドライブ管理テーブル(502)は、
複数のローカルディスクアレイ制御装置(104,10
5,106,107)の領域の単一制御やユーザの要求
に合わせて設定する領域を管理している。I/O管理リ
スト(503)は、ホストプロセッサ(101)から受
け取った入出力要求を入出力が環境するまで入出力状態
等と共に管理するテーブルである。
The virtual drive management table (502) is
A plurality of local disk array control devices (104, 10
5, 106, 107), and controls the area set according to the user's request. The I / O management list (503) is a table that manages the input / output requests received from the host processor (101) together with the input / output states and the like until the input / output becomes the environment.

【0054】ローカルディスクアレイ管理テーブル(5
04)は、グローバルディスクアレイ制御装置(10
3)に接続されているローカルディスクアレイ制御装置
(104,105,106,107)を管理するテーブ
ルであり、RAIDレベル、容量、およびパーティショ
ン構成等が格納されている。キャッシュ管理リスト(5
05)は、キャッシュメモリ(142)内に格納されて
いるデータとそのアドレスが格納されている。コマンド
キューリスト(506)は、グローバルディスクアレイ
制御装置(103)がコマンドに対してタグを付加する
為の管理情報が格納されている。
Local disk array management table (5
04) is the global disk array controller (10
This is a table for managing the local disk array control devices (104, 105, 106, 107) connected to 3), and stores the RAID level, capacity, partition configuration and the like. Cache management list (5
In 05), the data stored in the cache memory (142) and its address are stored. The command queue list (506) stores management information for the global disk array controller (103) to add tags to commands.

【0055】制御メモリ145のポインタ501からポ
イントされているこれらのテーブルやリストについての
詳細な構成は後で述べる。
The detailed structure of these tables and lists pointed to by the pointer 501 of the control memory 145 will be described later.

【0056】図8は、ローカルディスクアレイ管理テー
ブル(504)の構成を示したものである。
FIG. 8 shows the structure of the local disk array management table (504).

【0057】カラム601には、ローカルディスクアレ
イの識別子が格納されている。カラム602には、ロー
カルディスクアレイのパーティション識別子が格納され
ている。このカラムにより、単一のローカルディスクア
レイ領域を複数に区切ることができる。これは、ディス
クアレイが複数のディスクドライブから構成されている
ことから、単一領域として使用するには大きすぎること
がある為である。このカラムはユーザが任意に指定可能
である。
The column 601 stores the identifier of the local disk array. The column 602 stores the partition identifier of the local disk array. With this column, a single local disk array area can be divided into a plurality of sections. This is because the disk array is composed of multiple disk drives and may be too large to be used as a single area. This column can be arbitrarily designated by the user.

【0058】カラム603にはパス識別子が格納されて
いる。グローバルディスクアレイ制御装置(103)が
ローカルディスクアレイ制御装置(104,105,1
06,107)に対して入出力要求を発行するときに、
このパス識別子を参照することで、ローカルディスクア
レイ制御装置(104,105,106,107)の位
置を知ることができる。カラム604は、各ローカルデ
ィスクアレイ制御装置(104,105,106,10
7)のドライブ保有数を示している。グローバルディス
クアレイ制御装置(103)がグローバルパリティを作
成する場合のパリティ位置を算出するときなどに使用す
る。
A column 603 stores a path identifier. The global disk array controller (103) is the local disk array controller (104, 105, 1).
06, 107) when issuing an I / O request
The position of the local disk array controller (104, 105, 106, 107) can be known by referring to this path identifier. A column 604 is for each local disk array control device (104, 105, 106, 10).
It shows the number of drives owned in 7). It is used when calculating the parity position when the global disk array controller (103) creates global parity.

【0059】カラム605は、各ローカルディスクアレ
イ制御装置(104,105,106,107)の制御
しているRAIDレベルを示している。これもカラム6
04と同じように、グローバルパリティを作成する場合
のパリティ位置を算出するときなどに使用する。カラム
606には、各ローカルディスクアレイ制御装置(10
4,105,106,107)のパリティを格納するデ
ィスク数が格納されている。これもカラム605と同じ
ように、グローバルパリティを作成する場合のパリティ
位置を算出するときなどに使用する。
A column 605 shows the RAID level controlled by each local disk array controller (104, 105, 106, 107). This is also column 6
Similar to 04, it is used when calculating the parity position when creating global parity. In the column 606, each local disk array controller (10
4, 105, 106, 107) stores the number of disks storing parity. Like column 605, this is also used when calculating the parity position when creating global parity.

【0060】カラム607には、各ローカルディスクア
レイ制御装置(104,105,106,107)のパ
ーティション毎のストライピングサイズが格納される。
ストライピングサイズは、ローカルディスクアレイ制御
装置(104,105,106,107)の最小入出力
単位を意味する。例えば、ストライピングサイズが4
(KB)では、4KB以内のデータ長のデータは、単一
ディスクドライブに格納される。4KBを超える長さの
データは、4KB毎に次のディスクドライブに分割して
格納される。
The column 607 stores the striping size for each partition of each local disk array controller (104, 105, 106, 107).
The striping size means the minimum input / output unit of the local disk array controller (104, 105, 106, 107). For example, the striping size is 4
In (KB), data having a data length of 4 KB or less is stored in a single disk drive. Data having a length exceeding 4 KB is divided and stored in the next disk drive every 4 KB.

【0061】カラム608には、パーティション毎の容
量が格納される。カラム609には、ステータスが格納
されており、例えば障害の発生等の各ローカルディスク
アレイ制御装置(104,105,106,107)の
状態が格納される。
The column 608 stores the capacity of each partition. The column 609 stores the status, for example, the status of each local disk array control device (104, 105, 106, 107) such as occurrence of a failure.

【0062】図9は、仮想ドライブ管理テーブル(50
2)の構成を示している。仮想ドライブ管理テーブル
は、ホストプロセッサ(101)から認識するディスク
ドライブと物理的なディスクドライブとのマッピングを
行うために設けられる。
FIG. 9 shows the virtual drive management table (50
The configuration of 2) is shown. The virtual drive management table is provided for mapping the disk drive recognized by the host processor (101) and the physical disk drive.

【0063】カラム701には、仮想ドライブの識別子
が格納される。カラム702から705までは、仮想ド
ライブ識別子で示される仮想ドライブが、ローカルディ
スクアレイ制御装置(104,105,106,10
7)のどのパーティションから構成されるかを示してい
る。例えば、仮想ドライブVOL1は、ローカルディス
クアレイ制御装置(104,105,106,107)
のパーティション1から構成される。
The column 701 stores virtual drive identifiers. In columns 702 to 705, the virtual drive indicated by the virtual drive identifier is the local disk array controller (104, 105, 106, 10).
It shows which partition of 7) is configured. For example, the virtual drive VOL1 is a local disk array control device (104, 105, 106, 107).
Partition 1 of the above.

【0064】カラム706には、仮想ドライブ容量が格
納される。カラム707には、グローバルRAIDレベ
ルが格納されている。このグローバルRAIDレベル
は、ローカルディスクアレイ制御装置(104,10
5,106,107)のRAIDレベルとは無関係に設
定可能である。カラム708には、パリティを格納する
ディスク数が格納されている。カラム709には、グロ
ーバルディスクアレイ制御装置(103)のストライピ
ングサイズが格納される。カラム710には、ステータ
スが格納されており、例えば障害の発生等の仮想ドライ
ブ管理情報が格納される。
The column 706 stores the virtual drive capacity. The column 707 stores the global RAID level. This global RAID level corresponds to the local disk array controller (104, 10).
5, 106, 107) can be set regardless of the RAID level. The column 708 stores the number of disks storing parity. The striping size of the global disk array controller (103) is stored in the column 709. A column 710 stores a status, for example, virtual drive management information such as a failure occurrence.

【0065】図10は、図7のような仮想ドライブ管理
テーブル(502)を用いることにより、ホストプロセ
ッサ(101)からどのように仮想ドライブが見える
か、および物理的にどのようにデータが配置されている
かを示す概念図である。
FIG. 10 shows how the virtual drive is viewed from the host processor (101) and how data is physically arranged by using the virtual drive management table (502) shown in FIG. It is a conceptual diagram which shows whether or not.

【0066】ホストプロセッサ(101)から入出力要
求(801,802,803)が発行される。このと
き、ホストプロセッサ(101)は、仮想ドライブ(8
04,805,806)に対して入出力を行なってい
る。このような仮想ドライブに対する入出力に対し、物
理的には、ディスク装置(133,134,135,1
36)にデータが分散配置される。ホストプロセッサ
(101)から見える仮想ドライブ(804,805,
806)は、物理的には、LDRV1(807),LD
RV2(808),LDRV3(809)のように、デ
ィスク装置(133,134,135,136)を横切
る形態で分散されている。
Input / output requests (801, 802, 803) are issued from the host processor (101). At this time, the host processor (101) uses the virtual drive (8
04, 805, 806). For input / output to / from such a virtual drive, physically, the disk device (133, 134, 135, 1
The data is distributed in 36). Virtual drives (804, 805, visible from the host processor (101)
806) is physically LDRV1 (807), LD
Like the RV2 (808) and LDRV3 (809), they are distributed across the disk devices (133, 134, 135, 136).

【0067】仮想ドライブ管理テーブル(502)の内
容を変更することで、必ずしもディスク装置(133,
134,135,136)の全てに渡って分散配置され
る構造にはならない。一つのローカルディスクアレイ領
域を一つの仮想ドライブと定義することも可能である。
さらに、810,811,812は、ローカルディスク
アレイ制御装置(104,105,106,107)が
生成/格納したパリティであり、813はグローバルデ
ィスクアレイ制御装置(103)が生成/格納したパリ
ティを示している。こういったテーブルにより、ユーザ
の要求する容量を満足し、また、RAIDレベル等を自
由に設定することができるため、性能における柔軟性も
ある。
By changing the contents of the virtual drive management table (502), the disk device (133,
(134, 135, 136) is not distributed over the entire structure. It is also possible to define one local disk array area as one virtual drive.
Further, 810, 811, 812 are parities generated / stored by the local disk array controller (104, 105, 106, 107), and 813 is parity generated / stored by the global disk array controller (103). ing. With such a table, the capacity required by the user can be satisfied, and the RAID level and the like can be freely set, so that there is flexibility in performance.

【0068】図11は、I/O管理リスト(503)の
構成を示している。
FIG. 11 shows the structure of the I / O management list (503).

【0069】制御メモリ(145)からポイントされて
いるアドレスは、さらに二つのポインタを示している。
一つは次の入出力要求のリストが格納されている領域へ
のポインタ(901)であり、もう一つは入出力要求が
格納されている領域を示すポインタ(902)である。
909は、リストの最後であることを示す識別子であ
る。
The address pointed to by the control memory (145) indicates two more pointers.
One is a pointer (901) to the area where the list of the next input / output requests is stored, and the other is a pointer (902) that indicates the area where the input / output request is stored.
Reference numeral 909 is an identifier indicating the end of the list.

【0070】格納されている入出力要求は、903から
908の範囲で示されている。903は何処のホストプ
ロセッサからの要求であるかを識別するためのホスト識
別子、904は入出力を受け付けた時間、905は入出
力の状態が格納されている。入出力の状態とは、例え
ば、入出力実行中などである。906は、ホストプロセ
ッサから転送されたコマンドが格納されている。
The stored input / output requests are shown in the range 903 to 908. Reference numeral 903 stores a host identifier for identifying from which host processor the request is made, 904 stores the time when the input / output is received, and 905 stores the input / output state. The input / output state is, for example, that input / output is being executed. A command 906 stores the command transferred from the host processor.

【0071】907は、ホストからコマンドが転送され
る際に付加されているタグが格納されている。このタグ
は、入出力を発行したホストプロセッサが、どの入出力
要求が完了したのかを識別するためのものである。これ
は、ホストプロセッサが同一デバイスに対して複数の入
出力要求を発行できる場合に付加される。もしこのタグ
がなければ、ホストプロセッサは、同一デバイスから終
了通知が帰ってきても、どの入出力に対する完了かを識
別することができないからである。
907 stores a tag added when a command is transferred from the host. This tag is for the host processor that issued the I / O to identify which I / O request was completed. This is added when the host processor can issue multiple I / O requests to the same device. If this tag is not present, the host processor cannot identify which input / output is completed even if the end notification is returned from the same device.

【0072】908は新タグが格納されている。この新
タグ(908)は、グローバルディスクアレイ制御装置
(103)が設定するもので、ホストからのタグ(90
7)はホストが入出力を識別するものであるが、新タグ
(908)はグローバルディスクアレイ制御装置(10
3)が同一ローカルディスクアレイ制御装置(104,
105,106,107)に対して複数の入出力要求を
発行したときに使用するものである。
908 stores a new tag. This new tag (908) is set by the global disk array controller (103), and the tag (90
7) is for the host to identify the input / output, the new tag (908) is for the global disk array controller (10).
3) is the same local disk array controller (104,
(105, 106, 107) and is used when a plurality of input / output requests are issued.

【0073】この新タグ(908)が必要な理由は、ホ
ストが識別する仮想ドライブと、グローバルディスクア
レイ制御装置(103)が識別するローカルディスクア
レイ制御装置(104,105,106,107)とが
同一でないことによる。つまり、タグを付加する側はド
ライブ毎にユニークなタグを付加する。しかし、このタ
グをそれを受け取った装置がホストの認識するドライブ
とは異なるドライブに使用すると、ドライブ毎のタグの
ユニークさが失われることになるためである。そのため
に、グローバルディスクアレイ制御装置(103)が使
用するタグとしては、ホストから転送されたタグは使用
せず、グローバルディスクアレイ制御装置(103)が
管理できる新タグ(908)を使用する必要がある。
The reason why the new tag (908) is necessary is that the virtual drive identified by the host and the local disk array control device (104, 105, 106, 107) identified by the global disk array control device (103) are used. Because they are not the same. That is, the tag adding side adds a unique tag for each drive. However, if this device is used by a device that receives the tag for a drive different from the drive recognized by the host, the uniqueness of the tag for each drive will be lost. Therefore, as the tag used by the global disk array controller (103), it is necessary to use the new tag (908) which can be managed by the global disk array controller (103), not the tag transferred from the host. is there.

【0074】図12は、キャッシュ管理リスト(50
5)の構造を示している。キャッシュ管理リスト(50
5)は、キャッシュメモリ(142)内にキャッシング
されているデータの場所やディスクドライブ(137,
138,139,140)との対応等を管理するための
リストである。
FIG. 12 shows the cache management list (50
The structure of 5) is shown. Cache management list (50
5) is the location of the data cached in the cache memory (142) and the disk drive (137,
138, 139, 140) and the like.

【0075】制御メモリ(145)からポイントされて
いるアドレスは、さらに二つのポインタを示している。
一つはキャッシュメモリのフリーポインタ(1001)
であり、もう一つは使用中ポインタ(1002)であ
る。キャッシュメモリ(142)は、ブロック単位で管
理されており、前記フリーポインタ(1001)と使用
中ポインタ(1002)が指すリストの一つ一つ(10
02−1006,1007−1011)は固定のブロッ
クに対応している。
The address pointed to by the control memory (145) indicates two more pointers.
One is a cache memory free pointer (1001)
And the other is the in-use pointer (1002). The cache memory (142) is managed in block units, and each of the lists (10) pointed to by the free pointer (1001) and the in-use pointer (1002).
02-1006, 1007-1011) corresponds to a fixed block.

【0076】フリーポインタ(1001)からポイント
されているリスト(1002−1006)は、キャッシ
ュメモリ(142)の未使用領域(ブロック)を管理す
るために使用される。もし、新規にキャッシュメモリ
(142)の領域を取得するときには、このフリーポイ
ンタ(1001)からポイントされているリスト(10
02−1006)の中から必要なだけのリストを取得し
た後、後述の使用中ポインタ(1002)がポイントし
ているリスト内に入れる操作を行う。
The list (1002-1006) pointed to by the free pointer (1001) is used to manage the unused area (block) of the cache memory (142). If a new area of the cache memory (142) is to be acquired, the list (10) pointed to by the free pointer (1001)
02-1006), the necessary list is obtained, and then the list is inserted into the list pointed to by the in-use pointer (1002) described later.

【0077】各リストには、次のリストをポイントする
エリアと、該リストがディスク上のどこのデータ(BL
K#)を保持しているかを示すエリアと、キャッシュメ
モリ(142)の何処に格納されているかを示すポイン
タとが、格納されている(1043−1045)。フリ
ーポインタがポイントするリストは未使用リストがチェ
インされていることから、キャッシュメモリ(142)
へのポインタの値は意味を持たない。
In each list, an area that points to the next list and the data (BL
(K #) is held, and an area indicating where it is stored in the cache memory (142) is stored (1043-1045). Since the list pointed to by the free pointer is a chain of unused lists, the cache memory (142)
The value of the pointer to has no meaning.

【0078】1007はハッシュリストである。ハッシ
ュリスト(1007)は、要求されたデータがキャッシ
ュメモリ(142)内に格納されているかどうかを高速
に検索する目的で設けられている。要求するディスクド
ライブのブロック番号BLK#をキーとしてハッシング
すれば、簡単に、検索しなければならない候補を絞るこ
とが可能となる。
Reference numeral 1007 is a hash list. The hash list (1007) is provided for the purpose of quickly searching whether the requested data is stored in the cache memory (142). By hashing using the block number BLK # of the requested disk drive as a key, it becomes possible to easily narrow down the candidates to be searched.

【0079】図13は、コマンドキューリスト(50
6)の構成を示している。
FIG. 13 shows the command queue list (50
The configuration of 6) is shown.

【0080】1101は、各ローカルディスクアレイ制
御装置(104,105,106,107)に対応した
コマンドキューへのポインタが格納されている。110
2と1103は、ローカルディスクアレイ制御装置(1
04)に対応するフリー新タグ(1110−1114)
と使用新タグ(1115−1118)のリストをポイン
トしている。1104と1105は、ローカルディスク
アレイ制御装置(105)に対応するフリー新タグ(1
119−1122)と使用新タグ(1123−112
7)のリストをポイントしている。1106と1107
は、ローカルディスクアレイ制御装置(106)に対応
するフリー新タグ(1128−1132)と使用新タグ
(1133−1136)のリストをポイントしている。
1108と1109は、ローカルディスクアレイ制御装
置(107)に対応するフリー新タグ(1137−11
41)と使用新タグ(1142−1145)のリストを
ポイントしている。
Reference numeral 1101 stores a pointer to a command queue corresponding to each local disk array controller (104, 105, 106, 107). 110
2 and 1103 are local disk array control devices (1
04) corresponding to new free tags (1110-1114)
And points to the list of used new tags (1115-1118). 1104 and 1105 are free new tags (1 corresponding to the local disk array controller (105).
119-1122) and new tags used (1123-112)
It points to the list in 7). 1106 and 1107
Points to a list of free new tags (1128-1132) and used new tags (1133-1136) corresponding to the local disk array controller (106).
1108 and 1109 are free new tags (1137-11) corresponding to the local disk array controller (107).
41) and the list of used new tags (1142-1145).

【0081】各リストには、次のリストへのポインタ
と、新タグ値と、ホストプロセッサ(101)から転送
された入出力コマンド(ホストからのタグも含む)と
が、格納されている。フリー新タグ(1110−111
4,1119−1122,1128−1132,113
7−1141)中のコマンドエリア(cmd)の値は意
味を持たない。使用新タグのリストには、それぞれホス
トプロセッサ(101)からの入出力要求の一つが格納
されている。使用新タグ(1115−1118,112
3−1127,1133−1136,1142−114
5)は、コマンドの実行終了時に、使用新タグリストか
らフリー新タグリストへ移される。各ローカルディスク
アレイ制御装置(104,105,106,107)に
対応するコマンドキューリストは、それぞれ重複しない
タグ値を持っている。このコマンドキューリスト(50
6)により、前述のホストプロセッサ(101)から転
送されたタグを新タグに変換することが可能となる。
A pointer to the next list, a new tag value, and an input / output command (including a tag from the host) transferred from the host processor (101) are stored in each list. Free new tag (1110-111
4, 1119-1122, 1128-1132, 113
The value of the command area (cmd) in 7-1141) has no meaning. One of the input / output requests from the host processor (101) is stored in the used new tag list. New tag used (1115-1118, 112)
3-1127, 1133-1136, 1142-114
In step 5), the used new tag list is moved to the free new tag list at the end of command execution. The command queue list corresponding to each local disk array controller (104, 105, 106, 107) has a tag value that does not overlap. This command queue list (50
According to 6), it becomes possible to convert the tag transferred from the above-mentioned host processor (101) into a new tag.

【0082】図14は、コマンド受付処理プログラム
(405)のフローチャートを示している。コマンド受
付処理プログラム(405)は、コマンド制御部(14
5)内のメモリ(404)に格納されているマイクロプ
ログラムである。
FIG. 14 shows a flow chart of the command reception processing program (405). The command reception processing program (405) includes a command control unit (14
5) A microprogram stored in the memory (404) inside.

【0083】ステップ1201ではキャッシュ確保可能
かどうかをチェックする。もし可能であればステップ1
202へ移り、そうでなければステップ1212へ移り
コマンド異常終了処理を行う。通常、キャッシュメモリ
(142)に領域が確保できいないことはない。コマン
ド異常終了処理が実行されるのは、キャッシュメモリ
(145)がアクセス不可能な状態、例えば障害が発生
したときである。
In step 1201, it is checked whether the cache can be secured. Step 1 if possible
If not, the process proceeds to step 1212, and command abnormal end processing is performed. Normally, there is no case where an area cannot be secured in the cache memory (142). The command abnormal termination process is executed when the cache memory (145) is inaccessible, for example, when a failure occurs.

【0084】ステップ1202では、キャッシュメモリ
(145)の所要分領域を確保する。ステップ1203
では、キャッシュ管理リスト(505)のフリーポイン
タ(1001)からポイントされているリストから、所
要分のリストを使用中ポインタ(1002)がポイント
しているリスト内に入れる。ステップ1204では、I
/O管理リスト(503)中に空きリストが存在するか
どうか調べる。もし、空きリストが存在すればステップ
1205に進み、そうでなければステップ1212に進
み異常終了処理を行う。この状態は、ディスクアレイ制
御装置(102)内にホストプロセッサ(101)から
のコマンドを受け付けるためのキューが無くなったこと
を意味する。
At step 1202, a required area of the cache memory (145) is secured. Step 1203
Then, from the list pointed to by the free pointer (1001) of the cache management list (505), the required list is put in the list pointed by the in-use pointer (1002). In step 1204, I
It is checked whether or not there is a free list in the / O management list (503). If there is a free list, the process proceeds to step 1205, and if not, the process proceeds to step 1212 and abnormal termination processing is performed. This state means that there is no queue in the disk array control device (102) for receiving a command from the host processor (101).

【0085】ステップ1205では、I/O管理リスト
(503)に新しいリストを追加する。これにより、当
該コマンドがディスクアレイ制御装置(102)の処理
対象となる。ステップ1206では、ホストIDをI/
O管理リスト(503)のエリア(903)に格納す
る。ステップ1208では、コマンド受付時間をI/O
管理リスト(503)のエリア(904)に格納する。
この時間は、もしディスクアレイ制御装置(102)に
障害が発生した場合などの保守に使用することができ
る。
At step 1205, a new list is added to the I / O management list (503). As a result, the command becomes the processing target of the disk array control device (102). In step 1206, the host ID is set to I /
It is stored in the area (903) of the O management list (503). In step 1208, the command reception time is set to I / O.
It is stored in the area (904) of the management list (503).
This time can be used for maintenance such as when the disk array controller (102) fails.

【0086】ステップ1209では、コマンドをI/O
管理リスト(503)のエリア(906)に格納する。
このとき、I/O管理リスト(503)のエリア907
にもホストプロセッサ(101)から転送されたタグを
格納する。これは、入出力要求完了時に、ホストプロセ
ッサ(101)に対して完了情報と必要であればデータ
などと共にホストプロセッサ(101)へ転送する際に
参照される。ステップ1210では、ステップ1202
で取得したキャッシュメモリ(142)の領域にコマン
ドを転送する。ここでコマンドとは、READ/WRI
TEなどのディスク装置に対する指示と、WRITE要
求であればデータも同様に、キャッシュメモリ(14
2)に格納される。
At step 1209, the command is input / output.
It is stored in the area (906) of the management list (503).
At this time, the area 907 of the I / O management list (503)
Also, the tag transferred from the host processor (101) is stored. This is referred to when the input / output request is completed, and is transferred to the host processor (101) together with the completion information and data if necessary to the host processor (101). In Step 1210, Step 1202
The command is transferred to the area of the cache memory (142) acquired in step. Here, the command is READ / WRI.
In the same manner, the instructions for the disk device such as the TE and the data for the WRITE request are also stored in the cache memory (14
It is stored in 2).

【0087】ステップ1211では、I/O管理リスト
(503)のステータスエリア(905)にコマンド受
付完了を示すフラグを設定する。このステータスエリア
(905)には、コマンド終了時には実行結果が格納さ
れるが、それまでは、ディスクアレイ制御装置(10
2)内でのコマンドの実行状態がイベント毎に格納さ
れ、なんらかの障害発生時にロギング情報として使用す
ることができる。
At step 1211, a flag indicating the completion of command reception is set in the status area (905) of the I / O management list (503). The execution result is stored in this status area (905) at the end of the command, but until then, the disk array controller (10
The execution status of the command in 2) is stored for each event and can be used as logging information when some kind of failure occurs.

【0088】図15は、終了処理プログラム(406)
のフローチャートを示している。終了処理プログラム
(406)は、コマンド制御部(145)内のメモリ
(404)に格納されているマイクロプログラムであ
る。
FIG. 15 shows the end processing program (406).
The flowchart of FIG. The termination processing program (406) is a microprogram stored in the memory (404) in the command control unit (145).

【0089】ステップ1301では、要求されていたコ
マンドがREAD要求かWRITE要求かを判定する。
この判定は、I/O管理リスト(503)のコマンドエ
リアを参照することで達成可能である。判定の結果、R
EAD要求であればステップ1306に進み、WRIT
E要求であればステップ1302へ進む。
In step 1301, it is determined whether the requested command is a READ request or a WRITE request.
This determination can be achieved by referring to the command area of the I / O management list (503). Judgment result, R
If it is an EAD request, the process proceeds to step 1306, and WRIT
If the request is E, the process proceeds to step 1302.

【0090】ステップ1302では、I/O管理リスト
(503)のステータスエリア(905)とタグエリア
(907)の内容をマージする。ステップ1303で
は、ステップ1302でマージしたデータを、I/O管
理リスト(503)のホストエリア(903)が示すホ
ストプロセッサ(101)へ、転送する。その後、ステ
ップ1304に進む。WRITE処理はデータをすでに
ディスクドライブあるいはキャッシュエリアに書き込ん
だ後であるため、ホストプロセッサ(101)への情報
は、処理が正常に終了したかどうかのみである。
At step 1302, the contents of the status area (905) and the tag area (907) of the I / O management list (503) are merged. In step 1303, the data merged in step 1302 is transferred to the host processor (101) indicated by the host area (903) of the I / O management list (503). Then, it progresses to step 1304. Since the WRITE processing is already performed after writing the data in the disk drive or the cache area, the information to the host processor (101) is only whether or not the processing is normally completed.

【0091】ステップ1306は、READ処理要求の
終了時に実行される。キャッシュメモリ(142)内に
は、要求されたデータがすでに格納されている。ステッ
プ1306では、このデータとステータスエリア(90
5)とタグエリア(907)の内容とをマージする。ス
テップ1307では、ステップ1306でマージしたデ
ータを、I/O管理リスト(503)のホストエリア
(903)が示すホストプロセッサ(101)へ、転送
する。その後、ステップ1304に進む。
Step 1306 is executed at the end of the READ processing request. The requested data has already been stored in the cache memory (142). In step 1306, this data and status area (90
5) and the contents of the tag area (907) are merged. In step 1307, the data merged in step 1306 is transferred to the host processor (101) indicated by the host area (903) of the I / O management list (503). Then, it progresses to step 1304.

【0092】ステップ1304では、I/O管理リスト
(503)から、当該入出力要求を削除する。
At step 1304, the input / output request is deleted from the I / O management list (503).

【0093】図16は、グローバルRAID制御部(1
43)の構成を示している。グローバルRAID制御部
(143)は、コマンドやデータの転送制御を行うアダ
プタ(1401)、プロセッサ(1402)、DMAC
(1403)、メモリ(1404)、パススイッチ(1
405)、およびパリティ生成部(1406)から構成
されている。
FIG. 16 shows the global RAID controller (1
43). The global RAID controller (143) includes an adapter (1401) for controlling command and data transfer, a processor (1402), and a DMAC.
(1403), memory (1404), path switch (1
405) and a parity generation unit (1406).

【0094】メモリ(1404)内には、コマンド制御
を行うマイクロプログラム(1407,1408,14
09,1410,1411,1412)が格納されてい
る。具体的には、I/O要求受付処理プログラム(14
07)、データ回復処理プログラム(1408)、I/
O要求終了処理プログラム(1409)、データ配置制
御プログラム(1410)、グローバルパリティ制御プ
ログラム(1411)、およびタグ制御プログラム(1
412)である。これらの詳細は後で述べる。マイクロ
プログラム(1407,1408,1409,141
0,1411,1412)は、プロセッサ(1402)
で実行される。
Microprograms (1407, 1408, 14) for command control are stored in the memory (1404).
09, 1410, 1411, 1412) are stored. Specifically, the I / O request acceptance processing program (14
07), data recovery processing program (1408), I /
O request end processing program (1409), data allocation control program (1410), global parity control program (1411), and tag control program (1
412). These details will be described later. Micro programs (1407, 1408, 1409, 141
0, 1411, 1412) is a processor (1402)
Run on.

【0095】外部の制御部とのデータ転送は、ダイレク
トメモリアクセスコントローラであるDMAC(140
3)が、プロセッサ(1402)とは独立に実行する。
パススイッチ(1405)は、DMAC(1403)か
ら転送されたデータのヘッダを参照し、出力信号を振り
分ける動作を行う。この動作については後で詳細に説明
する。パリティ生成部(1406)は、パリティバッフ
ァ(1415)と、そのパリティバッファ(1415)
に格納された(転送されてきた)データのパリティデー
タを作成するパリティジェネレータ(1408)とから
構成される。
Data transfer with an external control unit is performed by the direct memory access controller DMAC (140
3) executes independently of the processor (1402).
The path switch (1405) refers to the header of the data transferred from the DMAC (1403) and performs an operation of distributing output signals. This operation will be described later in detail. The parity generation unit (1406) includes a parity buffer (1415) and the parity buffer (1415).
And a parity generator (1408) that creates parity data for the data stored (transferred) in the.

【0096】グローバルRAID制御部(143)の大
きな制御の流れは、以下のようなものである。まず、キ
ャッシュメモリ(142)からデータを受け取り、デー
タ配置制御プログラム(1410)によって必要であれ
ばデータの分割を行なう。次に、分割されたデータに、
各々のデータをどのローカルディスクアレイ制御装置
(104,105,106,107)に転送するかを識
別するためのヘッダを付加する。その後、ヘッダに従い
パススイッチ1405が各ローカルディスクアレイ制御
装置(104,105,106,107)に分割後のデ
ータを転送する。
The main control flow of the global RAID controller (143) is as follows. First, data is received from the cache memory (142), and the data allocation control program (1410) divides the data if necessary. Next, for the divided data,
A header for identifying to which local disk array control device (104, 105, 106, 107) each data is transferred is added. Then, the path switch 1405 transfers the divided data to each local disk array control device (104, 105, 106, 107) according to the header.

【0097】図17は、I/O要求受付処理プログラム
(1407)のフローチャートを示している。
FIG. 17 shows a flow chart of the I / O request acceptance processing program (1407).

【0098】ステップ1501では、I/O管理リスト
(503)のステータスエリア(905)に、グローバ
ルRAID制御部(143)が処理要求を受け付けたこ
とを示すフラグを、セットする。ステップ1502で
は、I/O管理リスト(503)のコマンドエリア(9
06)の内容を内部バッファに転送する。その後、ステ
ップ1503に進み、データ配置制御プログラム(14
10)に制御を移行する。
In step 1501, a flag indicating that the global RAID control unit (143) has received a processing request is set in the status area (905) of the I / O management list (503). In step 1502, the command area (9) of the I / O management list (503)
The contents of 06) are transferred to the internal buffer. Then, the process proceeds to step 1503, and the data allocation control program (14
Control is transferred to 10).

【0099】図18は、データ配置制御プログラム(1
410)のフローチャートを示す。
FIG. 18 shows a data allocation control program (1
The flowchart of (410) is shown.

【0100】ステップ1601では、要求処理がREA
DかWRITEかを判定する。もしREAD処理要求で
あれば、ステップ1602に進み、要求データがキャッ
シュメモリ(142)に存在するかどうか判定する。そ
うでばければ、ステップ1603に進み、グローバルR
AID制御部(143)がローカルディスクアレイ制御
装置(104,105,106,107)に対して出力
可能状態であるかどうか判定する。
At step 1601, the request processing is REA.
Judge whether D or WRITE. If it is a READ processing request, the process proceeds to step 1602, and it is determined whether the requested data exists in the cache memory (142). If not, go to Step 1603 and set Global R
The AID control unit (143) determines whether the local disk array control device (104, 105, 106, 107) is in an output enable state.

【0101】ステップ1603について詳しく説明す
る。グローバルディスクアレイ制御装置(103)は、
ローカルディスクアレイ制御装置(104,105,1
06,107)の上位に位置する制御装置であるため、
ストライピングサイズが大きくなるために、ローカルデ
ィスクアレイ制御装置(104,105,106,10
7)よりもたくさんのデータをバッファリングした方が
良いケースがある。例えば、4台のローカルディスクア
レイ制御装置(104,105,106,107)が各
々4KBのデータを4台のディスクドライブに1KBづ
つ分割格納する構成で、グローバルディスクアレイ制御
装置(103)が4台のローカルディスクアレイ制御装
置(104,105,106,107)にフルストライ
ピングするケースでは、グローバルディスクアレイ制御
装置(103)は、 4KB*4台=16KB のデータをバッファリングすることによって4台のロー
カルディスクアレイ制御装置(104,105,10
6,107)に同時に出力処理ができる。この場合、ス
テップ1603では、全てのローカルディスクアレイ制
御装置(104,105,106,107)に同時に出
力可能かどうかを判定する。
The step 1603 will be described in detail. The global disk array controller (103)
Local disk array controller (104, 105, 1
06, 107), it is a control device located above
Due to the large striping size, the local disk array controller (104, 105, 106, 10
There are cases where it is better to buffer more data than 7). For example, four local disk array controllers (104, 105, 106, 107) are configured to store 4 KB of data in each of the four disk drives in units of 1 KB, and there are four global disk array controllers (103). In the case of full striping to the local disk array controller (104, 105, 106, 107) of 4 units, the global disk array controller (103) stores 4 KB * 4 units = 16 KB of data by buffering the four local units. Disk array control device (104, 105, 10
6, 107) can perform output processing simultaneously. In this case, in step 1603, it is determined whether the data can be output to all the local disk array controllers (104, 105, 106, 107) at the same time.

【0102】しかし、このような判定が必要ないケース
もある。上記の例では、フルストライピングを前提とし
たが、RAID4,5のように、基本的にはデータをス
トライピングしない場合もある。その場合は、ホストプ
ロセッサ(101)から転送されたデータを、バッファ
リングすることなく、いづれかのローカルディスクアレ
イ制御装置(104,105,106,107)に出力
処理を行なう。また、別のケースとして、仮想ドライブ
が複数のローカルディスクアレイ制御装置(104,1
05,106,107)に渡って定義されていないとき
がある。この場合は、ローカルディスクアレイ制御装置
(104,105,106,107)の通常の動作通り
に、ローカルディスクアレイ制御装置(104,10
5,106,107)の分割動作に添って実行すれば良
いので、グローバルディスクアレイ制御装置(103)
はバッファリングする必要はない。従って、ステップ1
603では、仮想ドライブ管理テーブル(502)やロ
ーカルディスクアレイ管理テーブル(504)を参照し
て、どのくらいのデータをバッファリングする必要があ
るかを判定する。
However, there are cases where such a determination is not necessary. In the above example, full striping is premised, but in some cases, like RAID 4 and 5, data striping is basically not performed. In that case, the data transferred from the host processor (101) is output to any one of the local disk array controllers (104, 105, 106, 107) without buffering. In another case, the virtual drive has a plurality of local disk array control devices (104, 1).
05, 106, 107). In this case, the local disk array controller (104, 10) is operated according to the normal operation of the local disk array controller (104, 105, 106, 107).
5, 106, 107), the global disk array controller (103)
Does not need to be buffered. Therefore, step 1
At 603, the virtual drive management table (502) and the local disk array management table (504) are referenced to determine how much data needs to be buffered.

【0103】ステップ1605では、ホストコマンドの
ディスク要求アドレスを先頭ローカルディスクアレイ制
御装置(104,105,106,107)のアドレス
に変換する。この処理は、ホストプロセッサ(101)
が認識しているドライブと、実際にローカルディスクア
レイのドライブに格納される場所とが一致していないた
めに行なう必要がある。参照するテーブルは、仮想ドラ
イブ管理テーブル(502)とローカルディスクアレイ
管理テーブル(504)である。
At step 1605, the disk request address of the host command is converted into the address of the head local disk array controller (104, 105, 106, 107). This processing is performed by the host processor (101)
This is necessary because the drive recognized by does not match the location actually stored in the drive of the local disk array. The tables to be referred to are the virtual drive management table (502) and the local disk array management table (504).

【0104】例えば、ホストプロセッサ(101)から
の要求ディスクアドレスが、仮想ドライブ管理テーブル
(502)のVOL2の先頭から32KB目から12K
Bのデータ出力とする。その場合のローカルディスクア
レイ制御装置(104,105,106,107)の先
頭アドレスの求め方は、以下の(1)〜(4)の通りで
ある。
For example, the requested disk address from the host processor (101) is 12K from the 32KB from the beginning of VOL2 of the virtual drive management table (502).
B data output. In that case, the method of obtaining the start address of the local disk array control device (104, 105, 106, 107) is as follows (1) to (4).

【0105】(1)図9の仮想ドライブ管理テーブル
(502)を参照して、ローカルディスクアレイ制御装
置(104,105,106,107)にどのように仮
想ドライブが配置されているかを求める。その結果、V
OL2はローカルディスクアレイ制御装置(104,1
05,106,107)のパーティション2から構成さ
れていることがわかる。
(1) By referring to the virtual drive management table (502) in FIG. 9, how the virtual drives are arranged in the local disk array controller (104, 105, 106, 107) is obtained. As a result, V
OL2 is a local disk array controller (104, 1
05, 106, 107).

【0106】(2)ローカルディスクアレイ制御装置
(104,105,106,107)のパーティション
2は、図8のローカルディスクアレイ管理テーブル(5
04)のカラム605,606,608から、それぞ
れ、RAIDレベル3、パリティ数1であり、パーティ
ション2は各ローカルディスクアレイ制御装置(10
4,105,106,107)の1GB目から始まるこ
とがわかる。
(2) The partition 2 of the local disk array controller (104, 105, 106, 107) is the local disk array management table (5) of FIG.
04), columns 605, 606, and 608 indicate RAID level 3 and parity number 1, respectively, and partition 2 is for each local disk array controller (10).
4, 105, 106, 107).

【0107】(3)図8のローカルディスクアレイ管理
テーブル(504)のカラム604,607から、各ロ
ーカルディスクアレイ制御装置(104,105,10
6,107)のドライブ数は5台であり、ストライピン
グサイズは4KBであることがわかる。パリティ数は1
であることから、各ローカルディスクアレイ制御装置
(104,105,106,107)には、4KB*
(5台−1台)=16KB格納されることになる。
(3) From the columns 604 and 607 of the local disk array management table (504) of FIG. 8, the local disk array control units (104, 105, 10) are selected.
6, 107), the number of drives is 5, and the striping size is 4 KB. Number of parity is 1
Therefore, each local disk array controller (104, 105, 106, 107) has 4 KB *
(5 units-1 unit) = 16 KB will be stored.

【0108】(4)その結果、要求アドレスである32
KB目の物理的なアドレスは、32KB/16KB+1
=3番目のローカルディスクアレイ制御装置(106)
の1GB目が先頭アドレスとなる。
(4) As a result, the requested address is 32.
The physical address of the KBth is 32 KB / 16 KB + 1
= The third local disk array controller (106)
The 1st GB becomes the start address.

【0109】次に、ステップ1605では、要求コマン
ドがREADかWRITEかを判定する。その結果、R
EADであればステップ1606に進み、WRITEで
あればステップ1611に進む。
Next, in step 1605, it is determined whether the request command is READ or WRITE. As a result, R
If it is EAD, the process proceeds to step 1606, and if it is WRITE, the process proceeds to step 1611.

【0110】ステップ1606では、ローカルディスク
アレイ制御装置(104,105,106,107)に
対して入出力要求を発行するためにコマンドを生成す
る。このとき、各ローカルディスクアレイ制御装置(1
04,105,106,107)への入出力単位は、図
9のカラム709のストライピングサイズを指定する。
ステップ1607では、新タグを生成するためにタグ制
御プログラム(1412)を実行する。タグ制御プログ
ラム(1412)の詳細は後で述べる。
At step 1606, a command is generated to issue an input / output request to the local disk array controller (104, 105, 106, 107). At this time, each local disk array controller (1
04, 105, 106, 107) specifies the striping size of the column 709 of FIG.
In step 1607, the tag control program (1412) is executed to generate a new tag. Details of the tag control program (1412) will be described later.

【0111】ステップ1608では、ステップ1606
とステップ1607で生成したコマンドと新タグとをマ
ージし、さらに、どのローカルディスクアレイ制御装置
(104,105,106,107)への要求なのかを
識別するためのヘッダを付加し、パススイッチ(140
5)にデータ転送を行なう。ステップ1609では、次
のローカルディスクアレイ制御装置を選択する。この操
作は、上記物理アドレスを求める際に行なった計算と同
じ要領で可能である。単に格納要求アドレスに図9のカ
ラム709のストライピングサイズを加えたアドレスと
して再計算するだけで可能となる。
In step 1608, step 1606
And the command generated in step 1607 and the new tag are merged, and a header for identifying which local disk array controller (104, 105, 106, 107) the request is made to is added, and the path switch ( 140
Data is transferred to 5). At step 1609, the next local disk array controller is selected. This operation can be performed in the same manner as the calculation performed when obtaining the physical address. This is possible by simply recalculating as an address obtained by adding the striping size in column 709 of FIG. 9 to the storage request address.

【0112】次に、ステップ1610では、全てのデー
タを処理し終わったかどうかを判定し、まだ処理できて
いなければステップ1606から繰り返し、処理し終わ
れば当処理を終了する。
Next, in step 1610, it is determined whether or not all the data has been processed. If not processed, the process is repeated from step 1606, and if the process is completed, this process is ended.

【0113】ステップ1605でWRITEと判定され
たときは、ステップ1611に進む。ステップ1611
は、グローバルパリティ制御プログラムの実行を意味し
ている。この処理についてはあとで詳細説明を行なう。
If it is determined to be WRITE in step 1605, the process proceeds to step 1611. Step 1611
Means execution of the global parity control program. This process will be described in detail later.

【0114】ステップ1612では、ローカルディスク
アレイ制御装置(104,105,106,107)に
対して入出力要求を発行するためにコマンドを生成す
る。このとき、各ローカルディスクアレイ制御装置(1
04,105,106,107)への入出力単位は、図
9のカラム709のストライピングサイズを指定する。
ステップ1613では、新タグを生成するためにタグ制
御プログラム(1412)を実行する。タグ制御プログ
ラム(1412)の詳細は後で述べる。
At step 1612, a command is generated to issue an input / output request to the local disk array controller (104, 105, 106, 107). At this time, each local disk array controller (1
04, 105, 106, 107) specifies the striping size of the column 709 of FIG.
In step 1613, the tag control program (1412) is executed to generate a new tag. Details of the tag control program (1412) will be described later.

【0115】次に、ステップ1614では、ステップ1
608と同様に、ローカルディスクアレイ制御装置(1
04,105,106,107)への入出力要求を発行
する。ステップ1615はステップ1609と同等の処
理であり、ステップ1616はステップ1610と同等
の処理である。
Next, in step 1614, step 1
Similar to 608, the local disk array controller (1
04, 105, 106, 107). Step 1615 is the same process as step 1609, and step 1616 is the same process as step 1610.

【0116】図19は、パススイッチ(1405)の動
作を説明したものである。
FIG. 19 illustrates the operation of the path switch (1405).

【0117】この例では、4つのコマンド(1709,
1710,1711,1712)がセレクタ(141
4)によって分散転送される様子を示している。各コマ
ンドは、READ/WRITEなどのコマンドフィール
ド(1701,1703,1705,1707)と、転
送先を示すパス番号(1702,1704,1706,
1708)とから構成されている。
In this example, four commands (1709,
1710, 1711, 1712) is the selector (141
4) shows how distributed transfer is performed. Each command includes a command field (1701, 1703, 1705, 1707) such as READ / WRITE and a path number (1702, 1704, 1706) indicating a transfer destination.
1708) and.

【0118】例えば、パケット1712はパス番号が
1、パケット1711はパス番号が2、パケット171
0はパス番号が3、パケット1709はパス番号が4で
ある。セレクタ(1414)は、このパス番号を参照す
ることによって、パス番号に続くデータをどのパスに転
送すべきなのかを判定して、パスのスイッチングを行な
う。例えば、パス番号が1であれば、セレクタ(141
4)はパス番号1を選択し、データを転送する(171
3)。同様に、パケット1711,1710,1709
も、セレクタ(1414)によって、1714,171
5,1716に分散して転送される。
For example, the packet 1712 has a path number of 1, the packet 1711 has a path number of 2, and the packet 171
0 has a path number of 3, and packet 1709 has a path number of 4. The selector (1414) refers to this path number to determine to which path the data following the path number should be transferred, and performs path switching. For example, if the pass number is 1, the selector (141
4) selects path number 1 and transfers the data (171
3). Similarly, packets 1711, 1710, 1709
Also, by the selector (1414), 1714, 171
5, 1716 are distributed and transferred.

【0119】図20は、グローバルパリティ制御プログ
ラム(1411)のフローチャートを示したものであ
る。
FIG. 20 is a flow chart of the global parity control program (1411).

【0120】ステップ1801では、仮想ドライブ管理
テーブル(502)からパリティ位置の算出を行なう。
例えば、要求ディスクアドレスが仮想ドライブ管理テー
ブル(502)のVOL2の先頭から32KB目から1
2KBのデータ出力とする。その場合のパリティ位置の
求め方は以下の(1)〜(4)の通りである。
In step 1801, the parity position is calculated from the virtual drive management table (502).
For example, the requested disk address is 1 from the 32 KB from the beginning of VOL2 of the virtual drive management table (502).
2KB data output. The method of obtaining the parity position in that case is as described in (1) to (4) below.

【0121】(1)仮想ドライブ管理テーブル(50
2)を参照して、ローカルディスクアレイ制御装置(1
04,105,106,107)にどのように仮想ドラ
イブが配置されているかを求める。その結果、VOL2
はローカルディスクアレイ制御装置(104,105,
106,107)のパーティション2から構成されてい
ることがわかる。
(1) Virtual drive management table (50
2), the local disk array controller (1
04, 105, 106, 107) and how virtual drives are arranged. As a result, VOL2
Is a local disk array controller (104, 105,
106, 107).

【0122】(2)ローカルディスクアレイ制御装置
(104,105,106,107)のパーティション
2は、ローカルディスクアレイ管理テーブル(504)
のカラム605,606,608から、それぞれ、RA
IDレベル3、パリティ数1であり、パーティション2
は各ローカルディスクアレイ制御装置(104,10
5,106,107)の1GB目から始まることがわか
る。
(2) The partition 2 of the local disk array control device (104, 105, 106, 107) has a local disk array management table (504).
From columns 605, 606 and 608 of
ID level 3, parity number 1 and partition 2
Indicates each local disk array controller (104, 10
It can be seen that it starts from the first GB (5, 106, 107).

【0123】(3)グローバルRAIDレベルは3であ
ることから、パリティは割当最終ローカルディスクアレ
イ(107)であることがわかる。
(3) Since the global RAID level is 3, it can be seen that the parity is the allocated final local disk array (107).

【0124】(4)その結果、パリティの物理的なアド
レスは、ローカルディスクアレイ(107)の1GB目
からとなる。
(4) As a result, the physical address of the parity is from the first GB of the local disk array (107).

【0125】上記パリティ位置計算は一例であり、ロー
カルディスクアレイ制御装置(104,105,10
6,107)のRAIDレベルや、グローバルディスク
アレイ制御装置(103)のRAIDレベルによって異
なってくるが、各RAIDレベルの配置規則を前述の演
算に適用することで容易に実現可能である。
The above parity position calculation is an example, and the local disk array controller (104, 105, 10) is used.
6, 107) and the RAID level of the global disk array controller (103), but can be easily realized by applying the arrangement rule of each RAID level to the above-mentioned calculation.

【0126】次に、ステップ1802では、パリティ演
算に現在ドライブに格納されているデータが必要かどう
かの判定を行なう。つまり、RAIDレベルによって
は、パリティ全体を更新できないことがある。例えばR
AIDレベル5等である。パリティは、RAIDレベル
5に限らず複数のデータから一つあるいは一つ以上のパ
リティを生成する。このとき、あるパリティに関連する
全てのデータが同時に更新されれば、その新しいすべて
のデータから全く新しいパリティを生成できる。しか
し、RAIDレベル5等のように部分的なデータの更新
である場合は、まず更新すべき箇所の過去のデータの情
報をパリティから削除した後、新しいデータにおけるパ
リティを作成しなければならない。
Next, in step 1802, it is determined whether or not the data currently stored in the drive is required for the parity calculation. That is, the entire parity may not be updated depending on the RAID level. For example R
AID level 5 and the like. The parity is not limited to RAID level 5, and one or more than one parity is generated from a plurality of data. At this time, if all the data related to a certain parity are updated at the same time, a completely new parity can be generated from all the new data. However, in the case of partial data update such as RAID level 5, first, the information of the past data at the location to be updated must be deleted from the parity, and then the parity of the new data must be created.

【0127】ステップ1802の判定結果から旧データ
の必要がない場合はステップ1806に進み、そうでな
ければステップ1803に進む。ステップ1803で
は、旧データの読み込みのために、ローカルディスクア
レイ制御装置(104,105,106,107)に対
する入力コマンドを生成する。この処理は、図18のス
テップ1606などと同等である。入力アドレスは、ス
テップ1801で求めたアドレスを使用する。ステップ
1804では、新タグを生成するためにタグ制御プログ
ラム(1412)を実行する。この処理については、後
で詳細に説明する。ステップ1805では、ローカルデ
ィスクアレイ制御装置(104,105,106,10
7)に対して入力要求を発行する。この処理は図18の
ステップ1608等と同等である。
If it is determined from the determination result of step 1802 that the old data is not needed, the process proceeds to step 1806. If not, the process proceeds to step 1803. In step 1803, an input command to the local disk array controller (104, 105, 106, 107) is generated to read the old data. This process is equivalent to step 1606 of FIG. As the input address, the address obtained in step 1801 is used. In step 1804, the tag control program (1412) is executed to generate a new tag. This process will be described in detail later. In step 1805, the local disk array controller (104, 105, 106, 10
Issue an input request to 7). This processing is equivalent to step 1608 and the like in FIG.

【0128】ステップ1806では、キャッシュ領域か
らパリティ生成部(1406)へ、グローバルディスク
アレイ制御装置(103)のストライピングサイズを指
定して、データ転送を行なう。必要であればステップ1
805で取得した旧データも同時に転送する。グローバ
ルディスクアレイ制御装置(103)のストライピング
サイズは、図9のカラム709のストライピングサイズ
を参照することで求めることができる。この動作につい
ては後で詳細に説明する。
At step 1806, the data is transferred from the cache area to the parity generator (1406) by designating the striping size of the global disk array controller (103). Step 1 if necessary
The old data acquired in 805 is also transferred at the same time. The striping size of the global disk array controller (103) can be obtained by referring to the striping size in the column 709 of FIG. This operation will be described later in detail.

【0129】次に、ステップ1807では、パリティ生
成部(1406)から、生成されたパリティを読み取
る。ステップ1808では、ステップ1801で計算し
たパリティ位置に対して、ステップ1807で取得した
新しいパリティを書き込むためのコマンドを生成する。
ステップ1809では、ステップ1808で生成したコ
マンドに対するタグを取得するため、タグ制御プログラ
ム(1412)を実行する。ステップ1810では、ス
テップ1801で求めたパリティ位置に新しいパリティ
を書き込むために出力処理を行なう。
Next, in step 1807, the generated parity is read from the parity generator (1406). In step 1808, a command for writing the new parity acquired in step 1807 is generated for the parity position calculated in step 1801.
In step 1809, the tag control program (1412) is executed to acquire the tag for the command generated in step 1808. In step 1810, an output process is performed to write a new parity in the parity position obtained in step 1801.

【0130】図21は、グローバルパリティの生成の様
子を示している。
FIG. 21 shows how global parity is generated.

【0131】1901はパリティを生成するデータ群で
あり、1902はグローバルディスクアレイ制御装置
(103)のストライピングサイズである。この2つの
データをパリティ生成部(1406)に転送すること
で、まずデータ群(1901)をグローバルディスクア
レイ制御装置(103)のストライピングサイズに分割
し(1903,1904,1905)、それぞれについ
て排他的論理和を取る(1906,1907)。これに
より、グローバルパリティが生成される。
Reference numeral 1901 is a data group for generating a parity, and 1902 is a striping size of the global disk array controller (103). By transferring these two pieces of data to the parity generation unit (1406), the data group (1901) is first divided into striping sizes of the global disk array control device (103) (1903, 1904, 1905), and each is exclusive. Logical OR is taken (1906, 1907). Thereby, global parity is generated.

【0132】図22は、ホストプロセッサ(101)か
ら転送された入出力コマンドが、ディスク装置(13
3,134,135,136)に格納あるいは読みだし
されるまでに、どのように変化するかを示している。
In FIG. 22, when the input / output command transferred from the host processor (101) is the disk device (13
No. 3,134,135,136), it shows how it changes before being stored or read out.

【0133】ホストプロセッサ(101)からは、デー
タ(2001)、データ長(2002)、コマンド(2
003)、ホスト識別子(2004)、タグ(200
5)、および仮想ドライブ識別子(2006)が、一つ
のパケットとなって転送される。それを受けたグローバ
ルディスクアレイ制御装置(103)は、ローカルディ
スクアレイ制御装置(104,105,106,10
7)に対して分割して入出力要求を発行するために、複
数のコマンドを生成する。
From the host processor (101), data (2001), data length (2002), command (2)
003), host identifier (2004), tag (200
5) and the virtual drive identifier (2006) are transferred as one packet. The global disk array control device (103) which received it receives the local disk array control devices (104, 105, 106, 10).
A plurality of commands are generated in order to issue the input / output request for 7).

【0134】その一つ一つは、2007−2012で示
されるように、データ、データ長、コマンド、ホスト識
別子、タグ、およびローカルディスクアレイ識別子(パ
ス番号)が一つのパケットとなっている。ここで、パケ
ットの形式は、2001−2006と同じであるが、内
容は異なる。
As shown in 2007-2012, each of them is a packet of data, data length, command, host identifier, tag, and local disk array identifier (path number). Here, the packet format is the same as that of 2001-2006, but the content is different.

【0135】例えば、データ(2007)は分割されて
いるためにデータ(2001)に比べて少ない。それに
伴い、データ長(2008)もデータ長(2002)よ
り短い値がセットされている。コマンド(2009)
は、格納あるいは読みだし位置がローカルディスクアレ
イのアドレスに変わる。ホスト識別子(2010)は、
ホストプロセッサ(101)の識別子とは異なり、この
場合はグローバルディスクアレイ制御装置(103)の
識別子である。タグ(2011)は、ホストプロセッサ
(101)から転送されたタグではなく、新タグであ
る。この理由は既に述べている。2012は、ホストプ
ロセッサ(101)からは見えないローカルディスクア
レイ識別子(パス番号)が格納されている。
For example, the data (2007) is smaller than the data (2001) because it is divided. Accordingly, the data length (2008) is also set to a value shorter than the data length (2002). Command (2009)
Changes the storage or read position to the address of the local disk array. The host identifier (2010) is
Unlike the identifier of the host processor (101), this is the identifier of the global disk array controller (103) in this case. The tag (2011) is not a tag transferred from the host processor (101) but a new tag. The reason for this has already been mentioned. A local disk array identifier (path number) that is invisible to the host processor (101) is stored in 2012.

【0136】ローカルディスクアレイ制御装置(10
4,105,106,107)内では、2013−20
17に示すように、データ、データ長、コマンド、ホス
ト識別子、およびドライブ番号が一つのパケットとなっ
てドライブに転送される。前述のグローバルディスクア
レイ制御装置(103)内でのコマンドの変化と同じよ
うに、分割が行なわれる。
Local Disk Array Controller (10
4, 105, 106, 107), 2013-20
As shown in 17, the data, the data length, the command, the host identifier, and the drive number are transferred as one packet to the drive. The division is performed in the same manner as the change of the command in the global disk array controller (103) described above.

【0137】図23は、タグ制御プログラム(141
2)のフローチャートを示している。このタグは、前述
の通り、ホストプロセッサ(101)から転送されたタ
グを、グローバルディスクアレイ制御装置(103)か
らローカルディスクアレイ制御装置(104,105,
106,107)に対する入出力には使用できないこと
から、タグの変換が必要であることによる。
FIG. 23 shows the tag control program (141
The flowchart of 2) is shown. As described above, this tag is the tag transferred from the host processor (101) from the global disk array controller (103) to the local disk array controller (104, 105,
This is because it cannot be used for input / output with respect to (106, 107), and therefore tag conversion is necessary.

【0138】ステップ2101では、入出力を行なうロ
ーカルディスクアレイ制御装置(104,105,10
6,107)に対応する、コマンドキューリスト(50
6)中のフリータグポインタ(1102,1104,1
106,1108)を検索する。フリータグポインタ
は、ローカルディスクアレイ制御装置(104,10
5,106,107)毎に設けられており、各ローカル
ディスクアレイ制御装置(104,105,106,1
07)に対する入出力に使用されていないタグがリスト
形式でチェインされている(図13)。ステップ210
2では、このリストの中からタグを一つ取得する。
At step 2101, the local disk array controller (104, 105, 10) for input / output.
Command queue list (50
Free tag pointers (1102, 1104, 1) in 6)
106, 1108). The free tag pointer indicates the local disk array controller (104, 10).
5, 106, 107) and each local disk array control device (104, 105, 106, 1)
07) tags not used for input / output are chained in a list format (FIG. 13). Step 210
In step 2, one tag is acquired from this list.

【0139】次に、ステップ2103では、取得したタ
グを使用中リストに繋ぎ換える。これにより、取得した
タグは他の要求により使用されることが無くなり、同一
ローカルディスクアレイ制御装置(104,105,1
06,107)内で重複するタグが使用されることはな
い。ステップ2104では、取得したタグを、I/O管
理リスト(503)中の新タグエリア(908)に格納
する。これは、ホストプロセッサ(101)から転送さ
れたタグと関連づけるために行なう。これにより、入出
力完了時に、ホストプロセッサ(101)に対してホス
トプロセッサ(101)から転送されたタグを返送する
とき、容易に検索することが可能となる。ステップ21
05では、タグをコマンドに付加し、コマンドキューリ
スト(506)内のコマンド格納エリアに格納する。
Next, in step 2103, the acquired tag is reconnected to the in-use list. As a result, the acquired tag is not used by another request, and the same local disk array control device (104, 105, 1)
No duplicate tags in 06,107) are used. In step 2104, the acquired tag is stored in the new tag area (908) in the I / O management list (503). This is done to associate with the tag transferred from the host processor (101). As a result, when the input / output is completed, when the tag transferred from the host processor (101) is returned to the host processor (101), it becomes possible to easily retrieve it. Step 21
In 05, the tag is added to the command and stored in the command storage area in the command queue list (506).

【0140】図24は、データ回復制御プログラム(1
408)のフローチャートを示している。
FIG. 24 shows the data recovery control program (1
408) is shown.

【0141】ディスクアレイ装置にはデータの回復手段
が設けられている。本発明では、通常のディスクアレイ
に比べより高信頼のディスクアレイにするために、パリ
ティの階層化を行なっている。ローカルディスクアレイ
制御装置(104,105,106,107)が管理す
るパリティと、グローバルディスクアレイ制御装置(1
03)が管理するグローバルパリティである。グローバ
ルパリティは、複数のローカルディスクアレイ制御装置
(104,105,106,107)に渡るパリティで
ある。
The disk array device is provided with data recovery means. In the present invention, parity is hierarchized in order to make the disk array more reliable than the normal disk array. Parity managed by the local disk array controller (104, 105, 106, 107) and the global disk array controller (1
03) manages global parity. The global parity is the parity across a plurality of local disk array controllers (104, 105, 106, 107).

【0142】ローカルディスクアレイ制御装置(10
4,105,106,107)が管理するパリティは、
そのローカルディスクアレイ制御装置(104,10
5,106,107)内でのみ使用することができる。
従って、ローカルディスクアレイ制御装置(104,1
05,106,107)内のいづれかのディスクドライ
ブに障害が発生した場合に、そのパリティを使用して、
障害ドライブのデータを回復することができる。
Local Disk Array Controller (10
4, 105, 106, 107) manage the parity
The local disk array controller (104, 10
5,106,107) only.
Therefore, the local disk array controller (104, 1
05, 106, 107), if any of the disk drives in
The data on the failed drive can be recovered.

【0143】グローバルパリティは、複数のローカルデ
ィスクアレイ制御装置(104,105,106,10
7)に渡って作成されているため、前述のディスクドラ
イブ単体の障害時にも使用することは可能であるが、そ
れ以上にローカルディスクアレイ制御装置(104,1
05,106,107)そのものが障害を起こしたとき
に使用することができることの意味が大きい。
The global parity is defined by a plurality of local disk array controllers (104, 105, 106, 10).
Since it is created over 7), it can be used even when the above-mentioned single disk drive fails, but more than that, the local disk array controller (104, 1)
(05, 106, 107) itself can be used when it fails.

【0144】図24のフローチャートでは障害回復を階
層化した動作を示している。
The flowchart of FIG. 24 shows an operation in which failure recovery is layered.

【0145】ステップ2201では、ローカルディスク
アレイ制御装置(104,105,106,107)の
回復処理が可能かどうか判定する。この判定にはさまざ
まな要因が考えられる。例えば、障害回復機構の障害
や、パリティで回復できる範囲を越えた障害時には、ロ
ーカルディスクアレイ制御装置(104,105,10
6,107)単体では障害回復ができない。この場合
は、ステップ2202に進む。
At step 2201, it is judged whether the recovery processing of the local disk array control device (104, 105, 106, 107) is possible. Various factors can be considered for this determination. For example, in the event of failure of the failure recovery mechanism or failure beyond the range that can be recovered by parity, the local disk array controller (104, 105, 10)
6,107) Failure recovery cannot be done by itself. In this case, the process proceeds to step 2202.

【0146】ステップ2202では、パリティ領域の障
害かどうか判定する。パリティ障害であれば、データ部
分の障害ではないため、ここでは回復処理を行なわな
い。ステップ2203では、障害を起こしたローカルデ
ィスクアレイ以外のデータを取得する。この場合、パリ
ティデータも含む。ステップ2204では、ステップ2
203で取得したデータあるいはパリティから、障害を
起こした部分のデータを回復する。
At step 2202, it is judged whether or not there is a failure in the parity area. If it is a parity failure, it is not a failure of the data portion, so the recovery processing is not performed here. In step 2203, data other than the failed local disk array is acquired. In this case, the parity data is also included. In Step 2204, Step 2
From the data or parity acquired in 203, the data in the failed portion is recovered.

【0147】なお、ここでは述べていないが、グローバ
ルパリティのパリティも存在することがある。これは、
グローバルディスクアレイ制御装置(103)がローカ
ルディスクアレイ制御装置(104,105,106,
107)にグローバルパリティデータを格納したとき
に、ローカルディスクアレイ制御装置(104,10
5,106,107)内では、グローバルパリティデー
タも通常のデータと同じくパリティを作成/格納するた
めである。本発明では、このようにパリティ情報も階層
化されているため、高い信頼性を得ることができる。
Although not described here, global parity may also exist. this is,
The global disk array controller (103) is the local disk array controller (104, 105, 106,
107) when the global parity data is stored in the local disk array controller (104, 10).
5, 106, 107), the parity is created / stored in the global parity data as in the normal data. In the present invention, since the parity information is also layered in this way, high reliability can be obtained.

【0148】図25は、I/O要求終了処理プログラム
(1409)のフローチャートを示している。
FIG. 25 shows a flow chart of the I / O request end processing program (1409).

【0149】ステップ2301では、コマンドキューリ
スト(506)から終了する要求に対応するリストをサ
ーチする。ステップ2302では、I/O管理リスト
(503)からステップ2301と同様にサーチする。
ステップ2304では、I/O管理リスト(503)の
ステータスエリア(905)に、ローカルディスクアレ
イ制御装置(104,105,106,107)から転
送された終了状態を、格納する。
In step 2301, the command queue list (506) is searched for a list corresponding to the request to be terminated. In step 2302, the I / O management list (503) is searched in the same manner as in step 2301.
In step 2304, the end state transferred from the local disk array control device (104, 105, 106, 107) is stored in the status area (905) of the I / O management list (503).

【0150】ステップ2304では、コマンドキューリ
スト(506)からステップ2301でサーチしたリス
トを削除し、未使用リストへ繋ぎ換える。これにより、
本処理で使用したタグは、他の入出力のために使用可能
となる。ステップ2305では、ホストプロセッサ(1
01)から転送されたタグをI/O管理リスト(50
3)のタグエリア(907)から取り出し、コマンド制
御部(145)に通知することで処理を終了する。
In step 2304, the list searched in step 2301 is deleted from the command queue list (506), and the unused list is replaced. This allows
The tag used in this processing can be used for other input / output. In step 2305, the host processor (1
01) from the I / O management list (50
The process is ended by taking out from the tag area (907) of 3) and notifying the command control unit (145).

【0151】次に、ローカルディスクアレイ制御装置
(104,105,106,107)の詳細を述べる。
この中で、コマンド制御部(113,114,115,
116)は、グローバルディスクアレイ制御装置103
のコマンド制御部141と同等である。また、インタフ
ェース制御部(109,110,111,112)は、
グローバルディスクアレイ制御装置103のインタフェ
ース制御部108と同等である。また、インタフェース
コントローラ(129,130,131,132)は、
グローバルディスクアレイ制御装置103のインタフェ
ースコントローラ144と同等である。
Next, the details of the local disk array control device (104, 105, 106, 107) will be described.
Among them, the command control unit (113, 114, 115,
116) is the global disk array controller 103
Command control unit 141. Also, the interface control unit (109, 110, 111, 112)
This is equivalent to the interface control unit 108 of the global disk array control device 103. Also, the interface controllers (129, 130, 131, 132) are
This is equivalent to the interface controller 144 of the global disk array controller 103.

【0152】図26は、ローカルディスクアレイ制御装
置(104,105,106,107)のRAID制御
部(125,126,127,128)の構成を示して
いる。なお、図26において、図16に示したグローバ
ルRAID制御部143の各部と共通の部分は、同じ番
号で示している。
FIG. 26 shows the configuration of the RAID controller (125, 126, 127, 128) of the local disk array controller (104, 105, 106, 107). Note that, in FIG. 26, portions common to the respective portions of the global RAID control unit 143 shown in FIG. 16 are indicated by the same numbers.

【0153】RAID制御部(125,126,12
7,128)は、コマンドやデータの転送制御を行うア
ダプタ(1401)、プロセッサ(1402)、DMA
C(1403)、メモリ(1404)、パススイッチ
(1405)、およびパリティ生成部(1406)から
構成されている。
RAID controller (125, 126, 12
7, 128) are an adapter (1401), a processor (1402), a DMA that controls the transfer of commands and data.
The C (1403), the memory (1404), the path switch (1405), and the parity generation unit (1406).

【0154】メモリ(1404)内には、コマンド制御
を行うマイクロプログラム(1407,2404,24
01,2402,2403)が格納されている。具体的
には、I/O要求受付処理プログラム(1407)、デ
ータ回復処理プログラム(2404)、I/O要求終了
処理プログラム(2401)、データ配置制御プログラ
ム(2403)、およびパリティ制御プログラム(24
02)である。
Microprograms (1407, 2404, 24) for command control are stored in the memory (1404).
01, 2402, 2403) are stored. Specifically, the I / O request acceptance processing program (1407), the data recovery processing program (2404), the I / O request end processing program (2401), the data allocation control program (2403), and the parity control program (24
02).

【0155】I/O要求受付処理プログラム(140
7)は、図17と同様であるので説明を省略する。I/
O要求終了処理プログラム(2401)、データ配置制
御プログラム(2403)、パリティ制御プログラム
(2402)、およびデータ回復処理プログラム(24
04)の詳細は後で述べる。マイクロプログラム(14
07,2404,2401,2402,2403)はプ
ロセッサ(1402)で実行される。
I / O request acceptance processing program (140
Since 7) is the same as that in FIG. 17, its explanation is omitted. I /
O request end processing program (2401), data allocation control program (2403), parity control program (2402), and data recovery processing program (24
Details of 04) will be described later. Micro Program (14
07, 2404, 2140, 2402, 2403) are executed by the processor (1402).

【0156】外部の制御部とのデータ転送は、DMAC
(1403)がプロセッサ(1402)とは独立に実行
する。パススイッチ(1405)は、DMAC(140
3)から転送されたデータのヘッダを参照し、出力信号
を振り分ける動作を行う。パリティ生成部(1606)
は、パリティバッファ(1415)と、そのパリティバ
ッファ(1415)に格納された(転送されてきた)デ
ータのパリティデータを作成するパリティジェネレータ
(1408)とから構成される。
Data transfer with an external control unit is performed by the DMAC.
(1403) executes independently of the processor (1402). The path switch (1405) is connected to the DMAC (140
The header of the data transferred from 3) is referred to, and the operation of distributing the output signal is performed. Parity generator (1606)
Is composed of a parity buffer (1415) and a parity generator (1408) that creates parity data of the data stored (transferred) in the parity buffer (1415).

【0157】RAID制御部(125,126,12
7,128)の大きな制御の流れは、以下のようなもの
である。まず、グローバルディスクアレイ制御装置(1
03)からデータを受け取り、データ配置制御プログラ
ム(2403)によって必要であればデータの分割を行
なう。次に、分割されたデータに、各々のデータをどの
ディスクドライブ(137,138,139,140)
に転送するかを識別するためのヘッダを付加する。その
後、ヘッダに従いパススイッチ(1405)が各ディス
クドライブ(137,138,139,140)に分割
後のデータを転送する。
RAID controller (125, 126, 12
The large control flow of (7, 128) is as follows. First, the global disk array controller (1
03), and the data allocation control program (2403) divides the data if necessary. Next, for each of the divided data, which one of the disk drives (137, 138, 139, 140)
Add a header to identify whether to transfer to. After that, the path switch (1405) transfers the divided data to each disk drive (137, 138, 139, 140) according to the header.

【0158】図27は、制御メモリ(117,118,
119,120)に格納されているリストを示してい
る。2502はI/O管理リスト、2503はキャッシ
ュ管理リストである。
FIG. 27 shows the control memories (117, 118,
119, 120). Reference numeral 2502 is an I / O management list, and 2503 is a cache management list.

【0159】I/O管理リスト(2502)は、グロー
バルディスクアレイ制御装置(103)から受け取った
入出力要求を入出力が環境するまで入出力状態等と共に
管理するテーブルである。キャッシュ管理リスト(25
03)は、キャッシュメモリ(121,122,12
3,124)内に格納されているデータとそのアドレス
が格納されている。I/O管理リスト(2502)とキ
ャッシュ管理リスト(2503)は、図7のI/O管理
リスト503(図11)とキャッシュ管理リスト505
(図12)と同等のリストである。
The I / O management list (2502) is a table for managing the input / output requests received from the global disk array controller (103) together with the input / output states and the like until the input / output becomes the environment. Cache management list (25
03 is a cache memory (121, 122, 12)
3, 124) and the address thereof is stored. The I / O management list (2502) and the cache management list (2503) are the I / O management list 503 (FIG. 11) and the cache management list 505 of FIG.
It is a list equivalent to (FIG. 12).

【0160】図28は、I/O要求終了処理プログラム
(2401)のフローチャートを示している。
FIG. 28 shows a flow chart of the I / O request end processing program (2401).

【0161】ステップ2601では、I/O管理リスト
(2502)から終了する入出力要求のリストをサーチ
する。ステップ2602では、I/O管理リスト(25
02)のステータスエリアにディスク装置(133,1
34,135,136)から転送された終了状態を格納
することで処理を終了する。
At step 2601, the list of input / output requests to be ended is searched from the I / O management list (2502). In step 2602, the I / O management list (25
02) in the status area of the disk device (133, 1
34, 135, 136), the processing is terminated by storing the termination state transferred from the above.

【0162】図29は、データ配置制御プログラム(2
403)のフローチャートを示す。
FIG. 29 shows a data allocation control program (2
The flowchart of (403) is shown.

【0163】ステップ2701では、要求処理がREA
DかWRITEかを判定する。もし、READ処理要求
であれば、ステップ2702に進み、要求データがキャ
ッシュメモリ(142)に存在するかどうか判定する。
ステップ2701でWRITE処理要求のときは、ステ
ップ2703に進み、RAID制御部(125,12
6,127,128)がディスク装置(133,13
4,135,136)に対して出力可能状態であるかど
うか判定する。
At step 2701, the request processing is REA.
Judge whether D or WRITE. If it is a READ processing request, the process proceeds to step 2702, and it is determined whether the requested data exists in the cache memory (142).
When the WRITE processing request is made in step 2701, the process proceeds to step 2703, and the RAID controller (125, 12
6, 127, 128) are disk devices (133, 13
4, 135, 136), it is determined whether output is possible.

【0164】ステップ2704では、グローバルディス
クアレイ制御装置(103)のディスク要求アドレスを
先頭ディスク装置(133,134,135,136)
のアドレスに変換する。ステップ2705では、要求コ
マンドがREADかWRITEかを判定する。その結
果、READであればステップ2706に進み、WRI
TEであればステップ2709に進む。
At step 2704, the disk request address of the global disk array controller (103) is set to the head disk device (133, 134, 135, 136).
Address. In step 2705, it is determined whether the request command is READ or WRITE. As a result, if it is READ, the process proceeds to step 2706 and the WRI
If it is TE, the process proceeds to step 2709.

【0165】ステップ2706では、ディスクドライブ
(137,138,139,140)に対して入出力要
求を発行する。ステップ2707では、次のディスクド
ライブ(137,138,139,140)を選択す
る。ステップ2708では全てのデータ処理が終了した
かどうか判定し、終了していなければステップ2706
から繰り返す。
At step 2706, an input / output request is issued to the disk drive (137, 138, 139, 140). In step 2707, the next disk drive (137, 138, 139, 140) is selected. In step 2708, it is determined whether or not all data processing has been completed, and if not completed, step 2706.
Repeat from.

【0166】ステップ2709はステップ2706と同
等である。ステップ2710はステップ2707と同等
である。ステップ2711はステップ2708と同等で
ある。ステップ2712では、パリティ制御プログラム
(2402)を実行する。
Step 2709 is equivalent to step 2706. Step 2710 is equivalent to step 2707. Step 2711 is equivalent to step 2708. In step 2712, the parity control program (2402) is executed.

【0167】図30は、パリティ制御プログラム(24
02)のフローチャートを示したものである。
FIG. 30 shows the parity control program (24
02) is a flow chart.

【0168】ステップ2801では、RAIDレベル、
ドライブ数、および要求ディスクアドレスからパリティ
位置の算出を行なう。ステップ2802では、パリティ
更新のために旧データが必要かどうか判定する。ステッ
プ2802の判定結果から、旧データの必要がない場合
はステップ2804に進み、そうでなければステップ2
803に進む。
At step 2801, the RAID level,
The parity position is calculated from the number of drives and the requested disk address. In step 2802, it is determined whether old data is needed for updating the parity. From the determination result of step 2802, if old data is not needed, the process proceeds to step 2804, and if not, step 2
Proceed to 803.

【0169】ステップ2803では、旧データの読み込
みのために、ディスクドライブ(137,138,13
9,140)に対して旧データの入力要求を発行する。
入力アドレスは、ステップ2801で求めたアドレスを
使用する。
At step 2803, the disk drive (137, 138, 13) is read in order to read the old data.
9, 140) to issue the old data input request.
As the input address, the address obtained in step 2801 is used.

【0170】ステップ2804では、キャッシュ領域か
らパリティ生成部(1406)へデータ転送を行なう。
必要であればステップ2803で取得した旧データも同
時に転送する。ステップ2805では、パリティ生成部
(1406)から、生成されたパリティを読み取る。ス
テップ2806では、ステップ2801で求めたパリテ
ィ位置に新しいパリティを書き込むために出力処理を行
なう。
At step 2804, data is transferred from the cache area to the parity generation unit (1406).
If necessary, the old data acquired in step 2803 is also transferred at the same time. In step 2805, the generated parity is read from the parity generation unit (1406). In step 2806, output processing is performed to write a new parity in the parity position obtained in step 2801.

【0171】図31は、データ回復制御プログラム(2
404)のフローチャートを示している。ディスクアレ
イ装置にはデータの回復手段が設けられている。従っ
て、ローカルディスクアレイ制御装置(104,10
5,106,107)内のいづれかのディスクドライブ
に障害が発生した場合に、そのパリティを使用して、障
害ドライブのデータを回復することができる。
FIG. 31 shows the data recovery control program (2
404) is shown. The disk array device is provided with data recovery means. Therefore, the local disk array controller (104, 10
If any disk drive in 5, 106, 107) fails, its parity can be used to recover the data in the failed drive.

【0172】まず、ステップ2901では、パリティ領
域の障害かどうか判定する。パリティ障害であれば、デ
ータ部分の障害ではないため、ここでは回復処理を行な
わない。ステップ2902では、障害を起こしたディス
クドライブ以外のデータを取得する。この場合、パリテ
ィデータも含む。ステップ2903では、ステップ29
02で取得したデータあるいはパリティから、障害を起
こした部分のデータを回復する。
First, in step 2901, it is determined whether or not there is a failure in the parity area. If it is a parity failure, it is not a failure of the data portion, so the recovery processing is not performed here. In step 2902, data other than the disk drive in which the failure has occurred is acquired. In this case, the parity data is also included. In Step 2903, Step 29
The data in the faulty part is recovered from the data or parity acquired in 02.

【0173】図32は、コマンド受付処理プログラムの
フローチャートを示している。コマンド受付処理プログ
ラムは、コマンド制御部(113,114,115,1
16)内のメモリに格納されているマイクロプログラム
である。
FIG. 32 shows a flow chart of the command reception processing program. The command reception processing program is a command control unit (113, 114, 115, 1
16) A microprogram stored in the memory.

【0174】ステップ3001では、キャッシュ確保可
能かどうかをチェックする。もし可能であればステップ
3002へ移り、そうでなければステップ3013へ移
りコマンド異常終了処理を行う。ステップ3002で
は、キャッシュメモリ(121,122,123,12
4)の所要分領域を確保する。ステップ3003では、
キャッシュ管理リスト(2503)のフリーポインタ
(1001)でポイントされているリストから、使用中
ポインタ(1002)がポイントしているリスト内に入
れる。
In step 3001, it is checked whether the cache can be secured. If possible, the process proceeds to step 3002, and if not, the process proceeds to step 3013 to execute command abnormal end processing. In step 3002, the cache memory (121, 122, 123, 12
Reserve the required area in 4). In step 3003,
From the list pointed to by the free pointer (1001) of the cache management list (2503), put it in the list pointed to by the in-use pointer (1002).

【0175】ステップ3004では、I/O管理リスト
(2502)中に空きリストが存在するかどうか調べ
る。もし、空きリストが存在すればステップ3005に
進み、そうでなければステップ3013に進み異常終了
処理を行う。
In step 3004, it is checked whether or not there is a free list in the I / O management list (2502). If there is a free list, the process proceeds to step 3005, and if not, the process proceeds to step 3013 and abnormal termination processing is performed.

【0176】ステップ3005では、新しいI/O管理
リスト(2502)を追加する。ステップ3006で
は、ホストIDをI/O管理リスト(2502)のエリ
ア(903)に格納する。ステップ3008では、コマ
ンド受付時間をI/O管理リスト(2502)のエリア
(904)に格納する。この時間は、もしディスクアレ
イ制御装置(102)に障害が発生した場合などの保守
に使用することができる。
At step 3005, a new I / O management list (2502) is added. In step 3006, the host ID is stored in the area (903) of the I / O management list (2502). In step 3008, the command reception time is stored in the area (904) of the I / O management list (2502). This time can be used for maintenance such as when the disk array controller (102) fails.

【0177】ステップ3009では、コマンドをI/O
管理リスト(2502)のエリア(906)に格納す
る。ステップ3010では、ステップ3002で取得し
たキャッシュメモリ(121,122,123,12
4)領域にコマンドを転送する。ここでコマンドとはR
EAD/WRITEなどのディスク装置に対する指示
と、WRITE要求であればデータも同様にキャッシュ
メモリ(142)に格納される。
At step 3009, the command is input / output.
It is stored in the area (906) of the management list (2502). In step 3010, the cache memory (121, 122, 123, 12 acquired in step 3002
4) Transfer the command to the area. Here, the command is R
If an instruction to the disk device such as EAD / WRITE and a WRITE request, the data is also stored in the cache memory (142).

【0178】ステップ3011では、I/O管理リスト
(2502)のステータスエリア(905)にコマンド
受付完了を示すフラグを設定する。このステータスエリ
ア(905)は、コマンド終了時には実行結果が格納さ
れるが、それまでは、ローカルディスクアレイ制御装置
(104,105,106,107)内でのコマンドの
実行状態がイベント毎に格納され、なんらかの障害発生
時にロギング情報として使用することができる。
At step 3011, a flag indicating the completion of command reception is set in the status area (905) of the I / O management list (2502). This status area (905) stores the execution result at the end of the command, but until then, the execution status of the command in the local disk array control device (104, 105, 106, 107) is stored for each event. , It can be used as logging information when some kind of failure occurs.

【0179】図33は、終了処理プログラムのフローチ
ャートを示している。終了処理プログラムは、コマンド
制御部(113,114,115,116)内のメモリ
に格納されているマイクロプログラムである。
FIG. 33 shows a flowchart of the end processing program. The termination processing program is a microprogram stored in the memory in the command control unit (113, 114, 115, 116).

【0180】ステップ1301では、要求されていたコ
マンドがREAD要求かWRITE要求かを判定する。
この判定は、I/O管理リスト(2502)のコマンド
エリアを参照することで達成可能である。判定の結果、
READ要求であればステップ3103に進み、WRI
TE要求であればステップ3102へ進む。
In step 1301, it is determined whether the requested command is a READ request or a WRITE request.
This determination can be achieved by referring to the command area of the I / O management list (2502). Judgment result,
If it is a READ request, the process proceeds to step 3103, and WRI
If it is a TE request, the process proceeds to step 3102.

【0181】ステップ3102では、I/O管理リスト
(2502)のステータスエリア(905)をグローバ
ルディスクアレイ制御装置(103)へ転送する。その
後、ステップ3105に進む。
At step 3102, the status area (905) of the I / O management list (2502) is transferred to the global disk array controller (103). Then, it progresses to step 3105.

【0182】ステップ3103は、READ処理要求の
終了時に実行される。キャッシュメモリ(121,12
2,123,124)内には、要求されたデータがすで
に格納されている。ステップ3103では、このデータ
とステータスエリア(905)の内容をマージする。ス
テップ3104では、ステップ3103でマージしたデ
ータをI/O管理リスト(2502)のホストエリア
(903)が示すグローバルディスクアレイ制御装置
(103)へ転送する。その後、ステップ3105に進
む。
Step 3103 is executed at the end of the READ processing request. Cache memory (121, 12
2, 123, 124), the requested data has already been stored. In step 3103, this data and the contents of the status area (905) are merged. In step 3104, the data merged in step 3103 is transferred to the global disk array controller (103) indicated by the host area (903) in the I / O management list (2502). Then, it progresses to step 3105.

【0183】ステップ3105では、I/O管理リスト
(2502)から、当該入出力要求を削除する。
At step 3105, the input / output request is deleted from the I / O management list (2502).

【0184】図34は、本実施例における障害回復動作
の一例を示す。この図を参照して、本発明による障害回
復動作の一例を説明する。
FIG. 34 shows an example of the failure recovery operation in this embodiment. An example of the failure recovery operation according to the present invention will be described with reference to this figure.

【0185】本例では、ローカルディスクアレイ制御部
(104)が管理するディスクドライブの一つに障害が
発生し、さらに、ローカルディスクアレイ制御装置(1
05)に障害が発生したとき、ホストプロセッサ(10
1)からデータの読みだし要求が出されたときの回復動
作を示している。
In this example, one of the disk drives managed by the local disk array controller (104) fails, and the local disk array controller (1)
05) when a failure occurs, the host processor (10
It shows a recovery operation when a data read request is issued from 1).

【0186】まず、ローカルディスクアレイ制御装置
(104)は、障害が発生したドライブ以外のドライブ
からデータを読みだし、障害が発生したドライブのデー
タを修復する(3204)。修復されたデータと正常ド
ライブのデータはマージされて(3203)、グローバ
ルディスクアレイ制御装置(103)へ転送する。
First, the local disk array controller (104) reads data from a drive other than the drive in which the failure has occurred, and restores the data in the drive in which the failure has occurred (3204). The restored data and the data of the normal drive are merged (3203) and transferred to the global disk array controller (103).

【0187】ローカルディスクアレイ制御装置(10
5)は、要求されたデータ(3205)をそのままグロ
ーバルディスクアレイ制御装置(103)へ転送する。
グローバルディスクアレイ制御装置(103)は、ロー
カルディスクアレイ制御装置(105)が単独で修復不
可能であることを判断し、グローバルパリティを使用し
たデータ修復を行なう。
Local Disk Array Controller (10
5) transfers the requested data (3205) to the global disk array controller (103) as it is.
The global disk array control device (103) judges that the local disk array control device (105) cannot repair independently, and performs data repair using global parity.

【0188】そのために、グローバルパリティが格納さ
れているローカルディスクアレイ制御装置(107)か
ら、回復に必要なグローバルパリティ(3206)を読
みだす。グローバルパリティ(3206)と正常にデー
タが読みだされたローカルディスクアレイのデータは、
グローバルディスクアレイ制御装置(103)内で、障
害が発生したローカルディスクアレイ制御装置(10
5)のデータを修復する(3202)。修復されたデー
タは、正常にデータが読みだされたローカルディスクア
レイのデータとマージされ(3201)、ホストプロセ
ッサ(101)へ転送される。
Therefore, the global parity (3206) required for recovery is read from the local disk array controller (107) in which the global parity is stored. The global parity (3206) and the data of the local disk array from which the data was read normally,
In the global disk array controller (103), the local disk array controller (10) in which the failure has occurred
The data of 5) is restored (3202). The restored data is merged with the data of the local disk array from which the data was read normally (3201) and transferred to the host processor (101).

【0189】このように、本発明では、ドライブ障害だ
けでなく、ディスクアレイそのものに障害が発生して
も、ホストプロセッサ(101)の処理を中断すること
がない。
As described above, according to the present invention, the processing of the host processor (101) is not interrupted not only when the drive fails but also when the disk array itself fails.

【0190】図35は、本発明によるディスクアレイ装
置のパリティデータの格納の一例を示している。図中、
Pはローカルディスクアレイ制御装置(104,10
5,106,107)により生成されたパリティを示
し、GPはグローバルディスクアレイ制御装置(10
3)により生成されたパリティを示す。
FIG. 35 shows an example of storing parity data in the disk array device according to the present invention. In the figure,
P is a local disk array controller (104, 10
5, 106, 107), and GP indicates the global disk array controller (10
3 shows the parity generated by 3).

【0191】3301−3304は、ローカルディスク
アレイ制御装置(104,105,106,107)の
RAIDレベルが3または4のときのパリティを示す。
それに対し、3300はグローバルディスクアレイ制御
装置(103)が生成したパリティであり、このときグ
ローバルディスクアレイ制御装置(103)のRAID
レベルは3または4である。
Reference numerals 3301 to 3304 indicate the parity when the RAID level of the local disk array control device (104, 105, 106, 107) is 3 or 4.
On the other hand, 3300 is the parity generated by the global disk array controller (103), and at this time, the RAID of the global disk array controller (103)
The level is 3 or 4.

【0192】同様に、3309−3312は、ローカル
ディスクアレイ制御装置(104,105,106,1
07)のRAIDレベルが3または4のときのパリティ
を示す。3305−3308はグローバルディスクアレ
イ制御装置(103)が生成したパリティであり、この
ときグローバルディスクアレイ制御装置(103)のR
AIDレベルは5である。このように、データのみなら
ずパリティも複数のローカルディスクアレイ制御装置
(104,105,106,107)に渡って格納され
る。
Similarly, 3309-3312 are local disk array controllers (104, 105, 106, 1).
07) shows the parity when the RAID level is 3 or 4. Reference numeral 3305-3308 is a parity generated by the global disk array control device (103), and at this time, R of the global disk array control device (103).
The AID level is 5. In this way, not only the data but also the parity is stored across the plurality of local disk array controllers (104, 105, 106, 107).

【0193】3313のグローバルパリティも同様であ
る。このとき、ローカルディスクアレイ制御装置(10
4,105,106,107)はRAIDレベルが5で
ある。
The same applies to the global parity of 3313. At this time, the local disk array controller (10
4, 105, 106, 107) have a RAID level of 5.

【0194】図36は、図35と同様にパリティデータ
の格納の一例を示している。図35では、グローバルデ
ィスクアレイ制御装置(103)とローカルディスクア
レイ制御装置(104,105,106,107)の両
方でパリティを生成/格納することで、非常に高い信頼
性を得られる例を示した。図36は、信頼性よりも大容
量を優先する使用方法を示した例である。
Similar to FIG. 35, FIG. 36 shows an example of storing parity data. FIG. 35 shows an example in which the parity is generated / stored in both the global disk array control device (103) and the local disk array control device (104, 105, 106, 107), so that extremely high reliability can be obtained. It was FIG. 36 is an example showing a usage method in which a large capacity is prioritized over reliability.

【0195】3401は、当ディスクアレイ装置の中で
唯一つのパリティである。他のローカルディスクアレイ
制御装置(104,105,106)にはパリティは存
在しない。こうすることで、容量を優先するディスクア
レイを構成することができる。
The numeral 3401 is the only parity in this disk array device. There is no parity in the other local disk array controllers (104, 105, 106). By doing so, it is possible to configure a disk array that prioritizes capacity.

【0196】これと同様の別の例として、ローカルディ
スクアレイ制御装置(107)のすべてのディスクドラ
イブにグローバルパリティを格納することもできる。3
402は、RAID5のグローバルパリティである。し
かし、他のローカルディスクアレイ制御装置(104,
105,106)にはパリティは存在しない。
As another example similar to this, global parity can be stored in all the disk drives of the local disk array controller (107). Three
Reference numeral 402 is the RAID 5 global parity. However, other local disk array controllers (104,
No parity exists in (105, 106).

【0197】同じRAID5のグローバルパリティで
も、3403−3406のようにローカルディスクアレ
イ制御装置(104,105,106,107)に分散
して配置することも可能である。
Even with global parity of the same RAID 5, it is possible to disperse and arrange the local disk array control devices (104, 105, 106, 107) like 3403-3406.

【0198】[実施例2]次に、本発明の第2の実施例
を説明する。
[Embodiment 2] Next, a second embodiment of the present invention will be described.

【0199】図37は、本発明の第2の実施例の全体構
成図を示したものである。図1と共通の部分は同じ番号
で示した。図1と大きく異なるところは、グローバルデ
ィスクアレイ制御装置(3513)とローカルディスク
アレイ制御装置(3502,3503,3504,34
05)との接続に、共通バス(3506)を用いたとこ
ろである。制御メモリ(3511)、グローバルRAI
D制御部(3501)、およびコマンド制御部(350
7−3510)については後で詳細説明を行なうが、そ
の他の部分については図1と同等であるので説明を省略
する。
FIG. 37 shows an overall configuration diagram of the second embodiment of the present invention. The same parts as those in FIG. 1 are indicated by the same numbers. A big difference from FIG. 1 is that the global disk array controller (3513) and the local disk array controller (3502, 3503, 3504, 34).
05), the common bus (3506) is being used. Control memory (3511), global RAI
D control unit (3501) and command control unit (350
7-3510) will be described in detail later, but the other parts are the same as those in FIG.

【0200】図38は、グローバルRAID制御部(3
501)の構成を示している。基本的な構成は、図16
と同じであるが、マイクロプログラム(3601)とマ
ルチキャスト制御部(3602)が異なる。
FIG. 38 shows the global RAID controller (3
501). The basic configuration is shown in FIG.
However, the microprogram (3601) and the multicast control unit (3602) are different.

【0201】グローバルRAID制御部(3501)
は、ホストプロセッサ(101)から入出力要求を受け
取り、データをローカルディスクアレイ制御装置(35
02,3503,3504,3405)に対して転送す
る。このとき、グローバルRAID制御部(3501)
は、マルチキャスト制御部(3602)により共通バス
(3506)に接続された全てのローカルディスクアレ
イ制御装置(3502,3503,3504,340
5)を転送先として同一のコマンドを転送する。
Global RAID Controller (3501)
Receives an input / output request from the host processor (101) and transfers data to the local disk array controller (35
02,3503,3504,3405). At this time, the global RAID control unit (3501)
Are all local disk array control devices (3502, 3503, 3504, 340) connected to the common bus (3506) by the multicast control unit (3602).
The same command is transferred with 5) as the transfer destination.

【0202】図39は、ローカルディスクアレイ制御装
置(3502,3503,3504,3405)内の制
御メモリ(3511)の構造を示している。
FIG. 39 shows the structure of the control memory (3511) in the local disk array controller (3502, 3503, 3504, 3405).

【0203】テーブルやリスト(502,503,50
4,505)は、図7と同等であるが、ローカルディス
クアレイ識別子(3702)が追加されている。ローカ
ルディスクアレイ識別子(3702)は、ローカルディ
スクアレイ制御装置(3502,3503,3504,
3405)毎に異なる識別子が設定される。ローカルデ
ィスクアレイ識別子(3702)は、自ローカルディス
クアレイ制御装置(3502,3503,3504,3
405)がグローバルRAID制御部(3501)から
転送されたコマンドやデータを実行すべきかどうかを判
断するために使用する。
Tables and lists (502, 503, 50
4, 505) is equivalent to that of FIG. 7, but a local disk array identifier (3702) is added. The local disk array identifier (3702) is the local disk array controller (3502, 3503, 3504).
A different identifier is set for each 3405). The local disk array identifier (3702) is the local disk array control device (3502, 3503, 3504, 3).
405) to determine whether to execute the command or data transferred from the global RAID controller (3501).

【0204】図40は、コマンド受付処理プログラムの
フローチャートを示している。コマンド受付処理プログ
ラムは、コマンド制御部(3507,3508,350
9,3510)内のメモリに格納されているマイクロプ
ログラムである。
FIG. 40 shows a flowchart of the command reception processing program. The command reception processing program includes command control units (3507, 3508, 350).
9, 3510) is a microprogram stored in the memory.

【0205】ステップ3801では、制御メモリ(35
11)内のローカルディスクアレイ識別子(3702)
と転送されたコマンドとから、自ローカルディスクアレ
イが実行すべき内容かどうかを判定する。この判定は、
ローカルディスクアレイ識別子(3702)と仮想ドラ
イブ管理テーブル(502)を用いて行なわれる。例え
ば、グローバルRAID制御部(3501)から仮想ド
ライブnのブロックmに対する入出力要求があった場合
は以下のように判定する。
At step 3801, the control memory (35
11) Local disk array identifier (3702)
And the command transferred, it is determined whether or not the content is to be executed by the local disk array. This decision is
This is performed using the local disk array identifier (3702) and the virtual drive management table (502). For example, when there is an input / output request for the block m of the virtual drive n from the global RAID control unit (3501), the following determination is made.

【0206】(1)仮想ドライブ管理テーブル(50
2)から仮想ドライブn、ブロックmが格納されている
ローカルディスクアレイの識別子を得る。 (2)得られた識別子と制御メモリ(3511)内のロ
ーカルディスクアレイ識別子(3702)とを比較し、
自ローカルディスクアレイが実行すべきかどうか判定す
る。
(1) Virtual drive management table (50
From 2), the identifier of the local disk array in which the virtual drive n and the block m are stored is obtained. (2) Compare the obtained identifier with the local disk array identifier (3702) in the control memory (3511),
Determine whether the local disk array should be executed.

【0207】以上の動作により、ステップ3801の判
定が可能となる。自ローカルディスクアレイで実行すべ
きコマンドであったときはステップ3802に進み、総
出内ときは処理を終了する。
With the above operation, the determination in step 3801 becomes possible. If it is a command to be executed in its own local disk array, the process proceeds to step 3802, and if it is the total output, the process ends.

【0208】ステップ3802では、キャッシュ確保可
能かどうかをチェックする。もし可能であればステップ
3803へ移り、そうでなければステップ3814へ移
りコマンド異常終了処理を行う。ステップ3803で
は、キャッシュメモリ(121−124)の所要分領域
を確保する。ステップ3804では、キャッシュ管理リ
スト(505)のフリーポインタ(1001)でポイン
トされているリストから、所要分のリストを、使用中ポ
インタ(1002)がポイントしているリスト内に入れ
る。
At step 3802, it is checked whether the cache can be secured. If possible, the process moves to step 3803, and if not, the process moves to step 3814 to execute command abnormal end processing. In step 3803, a required area of the cache memory (121-124) is secured. In step 3804, the required list is put into the list pointed to by the in-use pointer (1002) from the list pointed to by the free pointer (1001) of the cache management list (505).

【0209】次に、ステップ3805では、I/O管理
リスト(503)中に空きリストが存在するかどうか調
べる。もし、空きリストが存在すればステップ3806
に進み、そうでなければステップ3814に進み異常終
了処理を行う。
Next, in step 3805, it is checked whether or not there is a free list in the I / O management list (503). If there is a free list, step 3806.
If not, the process proceeds to step 3814 to perform abnormal termination processing.

【0210】ステップ3806では、I/O管理リスト
(503)に新しいリストを追加する。ステップ380
7では、ホストIDをI/O管理リスト(503)のエ
リア(903)に格納する。ステップ3809では、コ
マンド受付時間をI/O管理リスト(503)のエリア
(904)に格納する。この時間は、もしディスクアレ
イ制御装置(102)に障害が発生した場合などの保守
に使用することができる。ステップ3810では、コマ
ンドをI/O管理リスト(503)のエリア(906)
に格納する。
At step 3806, a new list is added to the I / O management list (503). Step 380
In 7, the host ID is stored in the area (903) of the I / O management list (503). In step 3809, the command reception time is stored in the area (904) of the I / O management list (503). This time can be used for maintenance such as when the disk array controller (102) fails. In step 3810, the command is sent to the I / O management list (503) area (906).
To store.

【0211】ステップ3811では、ステップ3803
で取得したキャッシュメモリ(121−124)領域に
コマンドを転送する。ここでコマンドとはREAD/W
RITEなどのディスク装置に対する指示と、WRIT
E要求であればデータも同様にキャッシュメモリ(12
1−124)に格納される。ステップ3812では、I
/O管理リスト(503)のステータスエリア(90
5)にコマンド受付完了を示すフラグを設定する。この
ステータスエリア(905)には、コマンド終了時には
実行結果が格納されるが、それまでは、ディスクアレイ
制御装置(102)内でのコマンドの実行状態がイベン
ト毎に格納され、なんらかの障害発生時にロギング情報
として使用することができる。
In Step 3811, Step 3803
The command is transferred to the cache memory (121-124) area acquired in step. Here, the command is READ / W
Instructions for disk devices such as RITE and WRIT
If it is an E request, the data is also cache memory (12
1-124). In step 3812, I
/ O management list (503) status area (90
A flag indicating the completion of command reception is set in 5). In the status area (905), the execution result is stored when the command ends, but until then, the execution state of the command in the disk array control device (102) is stored for each event, and logging is performed when some kind of failure occurs. It can be used as information.

【0212】図41は、データ配置制御プログラム(1
410)の動作フローチャートを示している。
FIG. 41 shows the data allocation control program (1
410) shows an operation flowchart.

【0213】ステップ3901では、要求処理がREA
DかWRITEかを判定する。もし、READ処理要求
であれば、ステップ1602に進み、要求データがキャ
ッシュメモリ(142)に存在するかどうか判定する。
ステップ3901でWRITE処理要求であれば、ステ
ップ3903に進む。ステップ3903では、ホストプ
ロセッサ(101)からの要求をそのままローカルディ
スクアレイ制御装置(3502,3503,3504,
3405)に転送する。
At step 3901, the request processing is REA.
Judge whether D or WRITE. If it is a READ processing request, the process proceeds to step 1602, and it is determined whether the requested data exists in the cache memory (142).
If it is a WRITE processing request in step 3901, the process proceeds to step 3903. At step 3903, the request from the host processor (101) is directly transmitted to the local disk array controller (3502, 3503, 3504,).
3405).

【0214】図42は、本実施例2の動作の一例を示し
ている。
FIG. 42 shows an example of the operation of the second embodiment.

【0215】グローバルディスクアレイ制御装置(35
13)から、データ4002、入出力データ長400
3、入出力先頭アドレス4004、仮想ドライブ識別子
4005、およびコマンド4006が、一つのパケット
として、全てのローカルディスクアレイ制御装置(35
02,3503,3504,3405)に転送される
(4001)。
Global Disk Array Controller (35
13) to data 4002, input / output data length 400
3, the input / output start address 4004, the virtual drive identifier 4005, and the command 4006 are included in one packet for all local disk array control devices (35
02,3503,3504,3405) (4001).

【0216】ローカルディスクアレイ制御装置(350
2,3503,3504,3405)での実行判定の結
果、3502,3505では自ローカルディスクアレイ
制御装置には関係のない入出力となりコマンドキャンセ
ルを行なう。ローカルディスクアレイ制御装置(350
3,3504)は、自ローカルディスクアレイ内の領域
であると判断し、グローバルディスクアレイ制御装置
(3513)から転送されたコマンドを解釈し実行する
(4007,4008)。
Local Disk Array Controller (350
2, 3503, 3504, 3405), as a result of the execution determination, 3502 and 3505 have an input / output that is unrelated to the local disk array control device itself, and the command is canceled. Local disk array controller (350
3, 3504) interprets the command transferred from the global disk array controller (3513) and executes it (4007, 4008).

【0217】こういった処理により、ローカルディスク
アレイ制御装置(3502,3503,3504,34
05)の接続性を良くすることが可能となる。つまり、
グローバルディスクアレイ制御装置(3513)内で
は、入出力制御においてローカルディスクアレイ制御装
置(3502,3503,3504,3405)を意識
する必要がなくなった。従って、ローカルディスクアレ
イ制御装置を新たに追加しても、グローバルディスクア
レイ制御装置(3513)の変更は必要ない。さらに
は、ローカルディスクアレイ制御装置も、制御メモリ
(3507−3510)内のローカルディスクアレイ識
別子を変更するだけで増設が可能となる。
By such processing, the local disk array control device (3502, 3503, 3504, 34)
It is possible to improve the connectivity of 05). That is,
In the global disk array controller (3513), it is no longer necessary to be aware of the local disk array controller (3502, 3503, 3504, 3405) in input / output control. Therefore, even if a new local disk array controller is added, it is not necessary to change the global disk array controller (3513). Further, the local disk array control device can be added by simply changing the local disk array identifier in the control memory (3507-3510).

【0218】[0218]

【発明の効果】本発明によれば、多数のディスク装置を
接続しても、高速な入出力が可能であり、コストを上げ
ることがなく、またディスク管理も容易で信頼性を低下
させることもない。
According to the present invention, even if a large number of disk devices are connected, high-speed input / output is possible, the cost is not increased, the disk management is easy, and the reliability is lowered. Absent.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明によるディスクアレイの一実施例の全体
図を示す。
FIG. 1 is a general view of an embodiment of a disk array according to the present invention.

【図2】本発明による実施例1の動作概要を示す。FIG. 2 shows an operation outline of the first embodiment according to the present invention.

【図3】本発明による実施例1の動作概要を示す。FIG. 3 shows an operation outline of the first embodiment according to the present invention.

【図4】本発明による実施例1の動作概要を示す。FIG. 4 shows an operation outline of the first embodiment according to the present invention.

【図5】本発明による実施例1の動作概要を示す。FIG. 5 shows an operation outline of the first embodiment according to the present invention.

【図6】コマンド制御部の構成を示す。FIG. 6 shows a configuration of a command control unit.

【図7】制御メモリの構成を示す。FIG. 7 shows a configuration of a control memory.

【図8】ローカルディスクアレイ管理テーブルの構成を
示す。
FIG. 8 shows a configuration of a local disk array management table.

【図9】仮想ドライブ管理テーブルの構成を示す。FIG. 9 shows a configuration of a virtual drive management table.

【図10】仮想ドライブの概要を示す。FIG. 10 shows an outline of a virtual drive.

【図11】I/O管理リストの構成を示す。FIG. 11 shows a structure of an I / O management list.

【図12】キャッシュ管理リストの構成を示す。FIG. 12 shows the structure of a cache management list.

【図13】コマンドキューリストの構成を示す。FIG. 13 shows the structure of a command queue list.

【図14】コマンド受付処理プログラムのフローを示
す。
FIG. 14 shows a flow of a command reception processing program.

【図15】終了処理プログラムのフローを示す。FIG. 15 shows a flow of an end processing program.

【図16】グローバルRAID制御部の構成を示す。FIG. 16 shows a configuration of a global RAID control unit.

【図17】I/O要求受付処理プログラムのフローを示
す。
FIG. 17 shows a flow of an I / O request acceptance processing program.

【図18】データ配置制御プログラムのフローを示す。FIG. 18 shows a flow of a data allocation control program.

【図19】パススイッチの動作を示す。FIG. 19 shows the operation of the pass switch.

【図20】グローバルパリティ制御プログラムのフロー
を示す。
FIG. 20 shows a flow of a global parity control program.

【図21】グローバルパリティの生成概要を示す。FIG. 21 shows an outline of generation of global parity.

【図22】コマンドパケットの流れを示す。FIG. 22 shows the flow of a command packet.

【図23】タグ制御プログラムのフローを示す。FIG. 23 shows a flow of a tag control program.

【図24】データ回復制御プログラムのフローを示す。FIG. 24 shows a flow of a data recovery control program.

【図25】I/O要求終了プログラムのフローを示す。FIG. 25 shows a flow of an I / O request end program.

【図26】ローカルディスクアレイのRAID制御部の
構成を示す。
FIG. 26 shows a configuration of a RAID controller of the local disk array.

【図27】ローカルディスクアレイの制御メモリの構成
を示す。
FIG. 27 shows a configuration of a control memory of the local disk array.

【図28】ローカルディスクアレイのI/O要求終了プ
ログラムのフローを示す。
FIG. 28 shows a flow of an I / O request end program for the local disk array.

【図29】ローカルディスクアレイのデータ配置制御プ
ログラムのフローを示す。
FIG. 29 shows a flow of a data arrangement control program for a local disk array.

【図30】ローカルディスクアレイのパリティ制御プロ
グラムのフローを示す。
FIG. 30 shows a flow of a parity control program for a local disk array.

【図31】ローカルディスクアレイのデータ回復制御プ
ログラムのフローを示す。
FIG. 31 shows a flow of a data recovery control program for a local disk array.

【図32】ローカルディスクアレイのコマンド受付処理
プログラムのフローを示す。
FIG. 32 shows a flow of a command reception processing program of the local disk array.

【図33】ローカルディスクアレイの終了処理プログラ
ムのフローを示す。
FIG. 33 shows a flow of a termination processing program for a local disk array.

【図34】本発明によるデータ回復処理の動作を示す。FIG. 34 shows the operation of a data recovery process according to the present invention.

【図35】本発明によるデータ格納例を示す。FIG. 35 shows an example of data storage according to the present invention.

【図36】本発明によるデータ格納例を示す。FIG. 36 shows an example of data storage according to the present invention.

【図37】本発明による実施例2の全体構成図を示す。FIG. 37 shows an overall configuration diagram of a second embodiment according to the present invention.

【図38】実施例2のグローバルRAID制御部の構成
を示す。
FIG. 38 shows a configuration of a global RAID control unit according to the second embodiment.

【図39】実施例2の制御メモリの構成を示す。FIG. 39 shows the configuration of the control memory of the second embodiment.

【図40】実施例2のコマンド受付処理プログラムのフ
ローを示す。
FIG. 40 shows a flow of the command reception processing program of the second embodiment.

【図41】実施例2のデータ配置制御プログラムのフロ
ーを示す。
FIG. 41 shows a flow of the data allocation control program of the second embodiment.

【図42】実施例2の動作例を示す。FIG. 42 shows an operation example of the second embodiment.

【符号の説明】[Explanation of symbols]

101…ホストプロセッサ、102…ディスクアレイ制
御装置、108…インタフェース制御部、133,13
4,135,136…ディスク装置、137,138,
139,140…ディスクドライブ、103…グローバ
ルディスクアレイ制御装置、104,105,106,
107…ローカルディスクアレイ制御装置、141…コ
マンド制御部、145…制御メモリ、142…キャッシ
ュメモリ、143…グローバルRAID制御部、144
…インタフェースコントローラ、402…プロセッ
サ、、502…仮想ドライブ管理テーブル、503…I
/O管理リスト、504…ローカルディスクアレイ管理
テーブル、505…キャッシュ管理リスト、506…コ
マンドキューリスト、405…コマンド受付処理プログ
ラム、406…終了処理プログラム、1407…I/O
要求受付処理プログラム、1408…データ回復処理プ
ログラム、1409…I/O要求終了処理プログラム、
1410…データ配置制御プログラム、1411…グロ
ーバルパリティ制御プログラム、1412…タグ制御プ
ログラム、1405…パススイッチ。
101 ... Host processor, 102 ... Disk array control device, 108 ... Interface control unit, 133, 13
4, 135, 136 ... Disk device, 137, 138,
139, 140 ... Disk drives, 103 ... Global disk array controller, 104, 105, 106,
107 ... Local disk array control device, 141 ... Command control unit, 145 ... Control memory, 142 ... Cache memory, 143 ... Global RAID control unit, 144
... interface controller, 402 ... processor, 502 ... virtual drive management table, 503 ... I
I / O management list, 504 ... Local disk array management table, 505 ... Cache management list, 506 ... Command queue list, 405 ... Command reception processing program, 406 ... End processing program, 1407 ... I / O
Request acceptance processing program, 1408 ... Data recovery processing program, 1409 ... I / O request end processing program,
1410 ... Data allocation control program, 1411 ... Global parity control program, 1412 ... Tag control program, 1405 ... Path switch.

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】ホストプロセッサから転送されたデータを
所定数のグループに分割し各グループのデータを並列に
出力する手段と、 並列に出力された各グループのデータを、グループ単位
でそれぞれ入力し格納する複数のローカルなディスクア
レイ装置とを備えたことを特徴とするディスクアレイ装
置。
1. A means for dividing the data transferred from the host processor into a predetermined number of groups and outputting the data of each group in parallel, and the data of each group output in parallel is input and stored in group units. A disk array device comprising a plurality of local disk array devices.
【請求項2】複数のローカルなディスクアレイ装置と、 ホストプロセッサから転送されたデータを、前記複数の
ローカルなディスクアレイ装置のうちの何れに出力する
かを選択し、選択したディスクアレイ装置に該データを
出力する手段とを備えたことを特徴とするディスクアレ
イ装置。
2. A plurality of local disk array devices and which of the plurality of local disk array devices to output the data transferred from the host processor is selected, and the selected disk array device is provided with the local disk array device. A disk array device comprising means for outputting data.
【請求項3】ホストプロセッサから転送されたデータを
所定数のグループに分割し各グループのデータを並列に
出力する手段と、 前記複数のグループ間のパリティを生成して、前記各グ
ループのデータと並列に出力する手段と、 並列に出力された各グループのデータを、グループ単位
でそれぞれ入力し格納する複数のローカルなディスクア
レイ装置と、 前記パリティを入力し格納するローカルなディスクアレ
イ装置とを備えたことを特徴とするディスクアレイ装
置。
3. A means for dividing data transferred from a host processor into a predetermined number of groups and outputting the data of each group in parallel; and a parity between the plurality of groups to generate data for each group. It comprises means for outputting in parallel, a plurality of local disk array devices for respectively inputting and storing the data of each group output in parallel in group units, and a local disk array device for inputting and storing the parity. A disk array device characterized by the above.
【請求項4】複数のディスクドライブを含み、ホストプ
ロセッサから転送されたデータと前記データから生成さ
れたパリティを、前記ディスクドライブに格納するディ
スクアレイ装置であって、 前記複数のディスクドライブが、それぞれ複数のディス
クドライブを含む複数の論理グループに分けられている
とともに、 前記ホストプロセッサから転送されたボリウム内アドレ
スとデータ長に基づいて、前記論理グループの一つまた
は複数を選択し、選択した論理グループに、格納すべき
データを転送する手段と、 各論理グループごとに設けられ、前記転送されたデータ
から論理グループ内のパリティを生成し、自論理グルー
プ内の複数のディスクドライブに前記データと生成した
パリティとを格納する手段とを備えたことを特徴とする
ディスクアレイ装置。
4. A disk array device comprising a plurality of disk drives, wherein the data transferred from a host processor and the parity generated from the data are stored in the disk drives, wherein the plurality of disk drives are respectively It is divided into a plurality of logical groups including a plurality of disk drives, and one or more of the logical groups are selected based on the address and data length in the volume transferred from the host processor, and the selected logical group is selected. A means for transferring the data to be stored, and a parity provided in each logical group for generating parity in the logical group from the transferred data, and generating the data in a plurality of disk drives in the own logical group. And a means for storing parity and Array device.
【請求項5】複数のディスクドライブを含み、ホストプ
ロセッサから転送されたデータと前記データから生成さ
れたパリティを、前記ディスクドライブに格納するディ
スクアレイ装置であって、 前記複数のディスクドライブが、それぞれ複数のディス
クドライブを含む複数の論理グループに分けられている
とともに、 前記ホストプロセッサから転送されたボリウム内アドレ
スとデータ長に基づいて、前記論理グループの一つまた
は複数を選択し、選択した論理グループに、格納すべき
データを転送する手段と、 前記選択した各論理グループに転送するデータを用いて
論理グループ間パリティを生成し、前記選択した論理グ
ループとは異なる論理グループを選択し、選択した論理
グループに、格納すべきデータとして前記論理グループ
間パリティを転送する手段と、 各論理グループごとに設けられ、前記転送された格納す
べきデータから論理グループ内のパリティを生成し、自
論理グループ内の複数のディスクドライブに前記データ
と生成したパリティとを格納する手段とを備えたことを
特徴とするディスクアレイ装置。
5. A disk array device including a plurality of disk drives, wherein the data transferred from a host processor and the parity generated from the data are stored in the disk drive, wherein each of the plurality of disk drives is a disk array device. It is divided into a plurality of logical groups including a plurality of disk drives, and one or more of the logical groups are selected based on the address and data length in the volume transferred from the host processor, and the selected logical group is selected. A means for transferring data to be stored, and parity between logical groups is generated using the data transferred to each of the selected logical groups, a logical group different from the selected logical group is selected, and the selected logical group is selected. As the data to be stored in the group, the logical group And a parity provided in each logical group for generating parity in the logical group from the transferred data to be stored, and the data and the generated parity in a plurality of disk drives in the own logical group. And a means for storing the disk array device.
【請求項6】請求項4または5に記載のディスクアレイ
装置であって、 前記論理グループ内のパリティが格納されたディスクド
ライブを除く他のディスクドライブに対し、各ディスク
ドライブへの格納単位ごとに順次連続した前記ボリウム
内アドレスを割り付け、さらに前記ボリウム内アドレス
は複数の前記論理グループに渡って順次水平に割り付け
ることを特徴とするディスクアレイ装置。
6. The disk array device according to claim 4 or 5, wherein, with respect to other disk drives other than the disk drive in which parity is stored in the logical group, the storage unit for each disk drive is different. A disk array device characterized in that the addresses in the volume are successively allocated, and further, the addresses in the volume are horizontally allocated sequentially to the plurality of logical groups.
【請求項7】請求項6に記載のディスクアレイ装置であ
って、 前記論理グループにおける前記ボリウム内アドレスの連
続部分を前記論理グループの最小格納単位とし、ホスト
プロセッサから転送されたデータを前記最小格納単位ご
とに複数の前記論理グループに水平に分割し各論理グル
ープに転送することを特徴とするディスクアレイ装置。
7. The disk array device according to claim 6, wherein a continuous portion of the addresses in the volume in the logical group is used as a minimum storage unit of the logical group, and data transferred from a host processor is stored in the minimum storage. A disk array device characterized in that it is horizontally divided into a plurality of logical groups for each unit and is transferred to each logical group.
【請求項8】請求項7に記載のディスクアレイ装置であ
って、 前記各論理グループ内では、前記最小格納単位で転送さ
れたデータを、ディスクドライブの格納単位ごとに水平
に複数のディスクドライブに格納することを特徴とする
ディスクアレイ装置。
8. The disk array device according to claim 7, wherein, in each of the logical groups, the data transferred in the minimum storage unit is horizontally transferred to a plurality of disk drives for each storage unit of the disk drive. A disk array device characterized by storing.
【請求項9】請求項8に記載のディスクアレイ装置であ
って、 前記論理グループの前記最小格納単位を満たしたデータ
から、順次、前記データに対応する前記論理グループに
転送することを特徴とするディスクアレイ装置。
9. The disk array device according to claim 8, wherein data satisfying the minimum storage unit of the logical group is sequentially transferred to the logical group corresponding to the data. Disk array device.
【請求項10】請求項6に記載のディスクアレイ装置で
あって、 前記論理グループにおける前記ボリウム内アドレスの連
続部分のデータが前記ホストプロセッサから転送された
とき、前記転送されたデータからパリティを生成し、前
記データと前記パリティとを並列に前記論理グループ内
のディスクドライブに格納することを特徴とするディス
クアレイ装置。
10. The disk array device according to claim 6, wherein when data of a continuous portion of the address in the volume in the logical group is transferred from the host processor, parity is generated from the transferred data. Then, the data and the parity are stored in parallel in the disk drives in the logical group.
【請求項11】請求項4または5に記載のディスクアレ
イ装置であって、 前記論理グループ内の何れかのディスクドライブに障害
が発生したとき、前記論理グループ内に格納されたパリ
ティと障害ディスクドライブ以外のディスクドライブの
データとから、前記障害ディスクドライブのデータを生
成することを特徴とするディスクアレイ装置。
11. The disk array device according to claim 4, wherein when any disk drive in the logical group fails, the parity and the failed disk drive stored in the logical group are stored. A disk array device, wherein data of the failed disk drive is generated from data of a disk drive other than the above.
【請求項12】請求項5に記載のディスクアレイ装置で
あって、 前記論理グループの何れかに障害が発生したとき、前記
論理グループ間パリティと障害を起こした論理グループ
以外の論理グループのデータとから、前記障害を起こし
た論理グループのデータを生成することを特徴とするデ
ィスクアレイ装置。
12. The disk array device according to claim 5, wherein when a failure occurs in any of the logical groups, the inter-logical group parity and data of a logical group other than the failed logical group are stored. From the disk array device, the data of the logical group in which the failure has occurred is generated.
【請求項13】複数のディスクドライブを含み、ホスト
プロセッサから転送されたデータと前記データから生成
されたパリティを、前記ディスクドライブに格納するデ
ィスクアレイ装置であって、 前記複数のディスクドライブが、それぞれ複数のディス
クドライブを含む複数の論理グループに分けられている
とともに、各論理グループごとに論理グループ制御装置
が設けられており、 該論理グループ制御装置は、ホストプロセッサから転送
された入出力コマンドが、自装置に対応する論理グルー
プに対する入出力要求かどうかを判定し、自装置に対応
する論理グループに対する入出力要求である場合はその
入出力コマンドを実行し、そうでなければその入出力コ
マンドをキャンセルする手段を備えたことを特徴とする
ディスクアレイ装置。
13. A disk array device including a plurality of disk drives, wherein the data transferred from a host processor and the parity generated from the data are stored in the disk drives, wherein the plurality of disk drives are respectively It is divided into a plurality of logical groups including a plurality of disk drives, and a logical group control device is provided for each logical group. The logical group control device is configured such that the I / O commands transferred from the host processor are Determines whether it is an I / O request for the logical group corresponding to the local device, and if it is an I / O request for the logical group corresponding to the local device, executes the I / O command, otherwise cancels the I / O command. A disk array device comprising means for performing.
JP5351130A 1993-12-30 1993-12-30 Disk array device Pending JPH07200187A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5351130A JPH07200187A (en) 1993-12-30 1993-12-30 Disk array device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5351130A JPH07200187A (en) 1993-12-30 1993-12-30 Disk array device

Publications (1)

Publication Number Publication Date
JPH07200187A true JPH07200187A (en) 1995-08-04

Family

ID=18415255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5351130A Pending JPH07200187A (en) 1993-12-30 1993-12-30 Disk array device

Country Status (1)

Country Link
JP (1) JPH07200187A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120120A (en) * 2004-10-20 2006-05-11 Seagate Technology Llc General storage container for assigning a plurality of data formats
WO2006062269A1 (en) * 2004-12-06 2006-06-15 Electronics And Telecommunications Research Institute Data placement method using distributed parity in divided block disk array, and method for controlling block read/write function in divided block distributed parity disk array
JP2007066296A (en) * 2005-08-05 2007-03-15 Seiko Epson Corp Information processing device, data processing method, and program
US7231469B2 (en) 2004-02-16 2007-06-12 Hitachi, Ltd. Disk controller
US7249221B2 (en) 2004-03-12 2007-07-24 Hitachi, Ltd. Storage system having network channels connecting shared cache memories to disk drives
JP2007257630A (en) * 2006-03-21 2007-10-04 Internatl Business Mach Corp <Ibm> Method for generating parity value of raid storage system, and raid storage system with built-in adapter (enclosure-based raid parity assist mechanism)
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP2009545062A (en) * 2006-07-24 2009-12-17 マーベル ワールド トレード リミテッド File server for RAID (Redundant Array of Independent Disks) system
JP2010231807A (en) * 1998-12-22 2010-10-14 Hitachi Ltd Storage device system
US9400620B2 (en) 2013-10-21 2016-07-26 Fujitsu Limited Storage system
WO2016194162A1 (en) * 2015-06-03 2016-12-08 株式会社日立製作所 Computer system

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231807A (en) * 1998-12-22 2010-10-14 Hitachi Ltd Storage device system
US8375168B2 (en) 1998-12-22 2013-02-12 Hitachi, Ltd. Method and system of collection performance data for storage network
US8176248B2 (en) 1998-12-22 2012-05-08 Hitachi, Ltd. Method and system of collection performance data for storage network
US8051244B2 (en) 1998-12-22 2011-11-01 Hitachi, Ltd. Storage system for sending an access request from a host to a storage subsystem
US7917668B2 (en) 2004-02-10 2011-03-29 Hitachi, Ltd. Disk controller
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
US7231469B2 (en) 2004-02-16 2007-06-12 Hitachi, Ltd. Disk controller
US7469307B2 (en) 2004-02-16 2008-12-23 Hitachi, Ltd. Storage system with DMA controller which controls multiplex communication protocol
US7249221B2 (en) 2004-03-12 2007-07-24 Hitachi, Ltd. Storage system having network channels connecting shared cache memories to disk drives
US7814270B2 (en) 2004-03-12 2010-10-12 Hitachi, Ltd. Storage systems and methods of controlling cache memory of storage systems
JP2006120120A (en) * 2004-10-20 2006-05-11 Seagate Technology Llc General storage container for assigning a plurality of data formats
WO2006062269A1 (en) * 2004-12-06 2006-06-15 Electronics And Telecommunications Research Institute Data placement method using distributed parity in divided block disk array, and method for controlling block read/write function in divided block distributed parity disk array
JP2007066296A (en) * 2005-08-05 2007-03-15 Seiko Epson Corp Information processing device, data processing method, and program
JP2007257630A (en) * 2006-03-21 2007-10-04 Internatl Business Mach Corp <Ibm> Method for generating parity value of raid storage system, and raid storage system with built-in adapter (enclosure-based raid parity assist mechanism)
JP2009545062A (en) * 2006-07-24 2009-12-17 マーベル ワールド トレード リミテッド File server for RAID (Redundant Array of Independent Disks) system
US8495416B2 (en) 2006-07-24 2013-07-23 Marvell World Trade Ltd. File server for redundant array of independent disks (RAID) system
US8862931B2 (en) 2006-07-24 2014-10-14 Marvell World Trade Ltd. Apparatus and method for storing and assigning error checking and correcting processing of data to storage arrays
US9400620B2 (en) 2013-10-21 2016-07-26 Fujitsu Limited Storage system
WO2016194162A1 (en) * 2015-06-03 2016-12-08 株式会社日立製作所 Computer system

Similar Documents

Publication Publication Date Title
US6009481A (en) Mass storage system using internal system-level mirroring
US5958078A (en) Storage unit and storage unit subsystem
US5155835A (en) Multilevel, hierarchical, dynamically mapped data storage subsystem
JP4472617B2 (en) RAID system, RAID controller and rebuild / copy back processing method thereof
EP0526487B1 (en) Logical track write scheduling system for a parallel disk drive array data storage subsystem
JP3371044B2 (en) Area allocation method and disk array access method for disk array
US7249221B2 (en) Storage system having network channels connecting shared cache memories to disk drives
US6272571B1 (en) System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
JP4493321B2 (en) Disk array device and data saving method
JP4464378B2 (en) Computer system, storage system and control method for saving storage area by collecting the same data
JP7135162B2 (en) Information processing system, storage system and data transfer method
EP0797141A1 (en) Computer system
JP2006524401A (en) Disk array controller with reconfigurable data path
JPH07152491A (en) Virtual disk system
JPH07200187A (en) Disk array device
JP3260999B2 (en) Control method of disk controller
US20060085663A1 (en) Method for keeping snapshot image in a storage system
JP4252102B2 (en) Computer system and secondary storage device
JP3687111B2 (en) Storage device system and storage device control method
JP4128206B2 (en) Computer system and secondary storage device
US6360296B1 (en) Disk control apparatus
US20070260835A1 (en) Storage controlling device of disk array device and redundancy restoring method
JPH10312246A (en) Storage device subsystem
KR100423812B1 (en) RAID Controller and Parity Operator Method having Disk Cash Memory Controller and Parity Operator Device
JP2733189B2 (en) Disk array device input / output control method