JPH10124263A - アレイ・コントローラおよびデータ記憶アレイ - Google Patents

アレイ・コントローラおよびデータ記憶アレイ

Info

Publication number
JPH10124263A
JPH10124263A JP8260518A JP26051896A JPH10124263A JP H10124263 A JPH10124263 A JP H10124263A JP 8260518 A JP8260518 A JP 8260518A JP 26051896 A JP26051896 A JP 26051896A JP H10124263 A JPH10124263 A JP H10124263A
Authority
JP
Japan
Prior art keywords
data
array
channel
raid3
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8260518A
Other languages
English (en)
Other versions
JP3393765B2 (ja
Inventor
David Judd Ian
イアン・デービッド・ジャッド
G Luenin Steven
スチーブン・ジー・ルーニン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP26051896A priority Critical patent/JP3393765B2/ja
Publication of JPH10124263A publication Critical patent/JPH10124263A/ja
Application granted granted Critical
Publication of JP3393765B2 publication Critical patent/JP3393765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】 改善された記憶アレイ・コントローラ20を
提供すること、またそのようなアレイ・コントローラを
組み込んだ改善されたデータ・アレイを提供すること。 【解決手段】 ホスト・システムからデータ記憶装置の
アレイへのデータの転送を制御する、ローカル・バス2
8を介して前記転送時にデータをステージングするデー
タ・バッファ30を含むアレイ・コントローラ20が開
示される。アレイ・コントローラは、バッファの動作を
制御するバッファ・コントローラを具備し、さらにデー
タ・バッファとの間でデータを転送するために使用する
ローカル・バス・アドレスによって選択可能な複数のデ
ータ・チャネル34,36を提示するチャネル・ハード
ウェアを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ホスト・システム
と複数のデータ記憶装置の間のデータの転送を制御する
コントローラに関し、またそのようなコントローラを組
み込んだデータ処理システムにも関する。
【0002】
【従来の技術】最近数年間に、コンピュータ・システム
内で大量のデータを記憶するディスク・ドライブ・アレ
イに対する関心が高まってきた。ディスク・アレイは、
一般に、ディスク・ドライブとの間のデータの転送を制
御する1つまたは複数の制御要素を介して使用中のシス
テムに接続可能な多数のディスク・ドライブから構成さ
れる。ディスク・アレイは、大容量データ記憶、高い信
頼性、および使用中のシステムとの間の高速データ転送
が可能なように設計されている。
【0003】アレイ・アーキテクチャに広く採用されて
いる1つの方法は、RAID(Redundant A
rrays of Independent Disk
s)と呼ばれるものである。RAIDの詳細は、論文
「A Case for Redundant Arr
ays of Independent disks
(RAID)」(ACM SIGMOD confer
ence proceedings,Chicago,
IL.,1988年6月1日〜3日、pp.109〜1
16)を含む多数の文献に記載されている。この論文で
は、異なるレベルのデータ管理を行う5つのアレイ・レ
ベル(RAID1〜5)が提案されている。各RAID
レベルでは、ユーザが多数の安価なディスク・ドライブ
を結合することによってそれらのデータ記憶容量を増大
させることができる。RAIDシステムでは、2つのド
ライブに2つの同じデータを記憶する(RAID1)
か、またはアレイの2つまたはそれ以上のドライブ間に
データを散布し、ストライプされたデータのパリティを
計算し、そのパリティ・データを別のドライブに記憶す
ることによって、ドライブの故障によるデータの損失に
対する保護を行う。データを保持しているドライブのう
ちの1つが故障した場合、パリティ・データおよびパリ
ティ・グループの残りのデータを使用して、故障したド
ライブ上のデータを再構成することができる(RAID
2〜5)。アレイは、データ・ディスクがN個、パリテ
ィ・ディスクがP個の場合、「N+P」と呼ばれること
が多い。例えば、RAID3では、単一のパリティ・デ
ィスクに記憶されているパリティ・データにより、デー
タをディスク間にビット単位またはバイト単位でストラ
イプする。したがってRAID3の場合、Pは1に等し
い。パリティ・グループは、N個のディスク上のデータ
とP個のディスク上のパリティ・データのグループから
構成される。
【0004】RAID3でディスクにデータを記憶する
場合、記憶されているデータに対してXORオペレーシ
ョンを実行することによってパリティを発生させる。そ
のようにして発生したパリティを別個のディスクに記憶
する。論理データ記録を分割してディスク間にインタリ
ーブし、パリティは別個のディスクに記憶する。ユーザ
のアプリケーション・アクセスに対してすべてのディス
クが同時にアクセスされる。アレイ内に記憶されたデー
タを更新する必要がある場合、そのデータを含んでいる
パリティ・グループのパリティ・データをも更新する必
要がある。パリティの発生は、ソフトウェアか、あるい
はXORハードウェアの形で実施できる。ハードウェア
実施態様では、一般に、ホスト・システムからアレイへ
データを書き込む際にパリティをより迅速に発生でき
る。そのような実施態様の1つの例は、ヨーロッパ特許
EP508604号に記載されている。
【0005】
【発明が解決しようとする課題】本発明の目的は、改善
された記憶アレイ・コントローラを提供すること、また
そのようなアレイ・コントローラを組み込んだ改善され
たデータ・アレイを提供することである。
【0006】
【課題を解決するための手段】本発明によれば、ホスト
・システムからデータ記憶装置のアレイへのデータの転
送を制御するアレイ・コントローラが提供される。アレ
イ・コントローラは、ローカル・バスを介して前記転送
時にデータをステージングするデータ・バッファに接続
されたプロセッサを含み、バッファの動作を制御するバ
ッファ・コントローラを具備し、さらにデータ・バッフ
ァとの間でデータを転送するために使用するローカル・
バス・アドレスによって選択可能な複数のデータ・チャ
ネルを提示するチャネル・ハードウェアを含む。
【0007】
【発明の実施の形態】図1を参照すると、データ・バス
またはデータ・リンク12を介してRAIDコントロー
ラ20に接続されたホスト・コンピュータ・システム1
0を含むデータ処理システムが示されている。RAID
コントローラ20は、データ・リンク40、42、4
4、46を介して磁気ディスク・ドライブ50、52、
54、56の形の複数のデータ記憶装置に接続されてい
る。図1では、各ディスク・ドライブは、別個の通信リ
ンクによってRAIDコントローラ20に接続されてい
るが、代替構成では、ディスク・アレイは、ディスク・
ドライブが互いに連鎖され、連鎖の両端がコントローラ
に通信するために結合されたループとしても構成できる
ことが理解できよう。アレイ内のディスク・ドライブの
数は、それにデータ処理システムをつなげる特定のアプ
リケーションによって異なることが理解できよう。RA
ID3の構成では、アレイは、1つのパリティ・ドライ
ブとともに3個か4個またはそれ以上のデータ・ドライ
ブから構成される。図のRAIDコントローラ20は、
ホスト・システムから分離されているが、例えばアダプ
タ・カードなどの形のホスト・システム内のすべてのR
AIDコントローラ機能を含むことができることが同様
に理解できよう。ホスト・システムは、それ自体のRA
IDコントローラおよびディスク・ドライブのアレイに
接続された第2のホスト・システムに接続することがで
きる。このホスト間通信パスでは、RAIDコントロー
ラのうちの1つが故障した場合にある程度の冗長度が得
られる。
【0008】好ましい実施形態では、ホスト・システム
は、IBM AIXオペレーティング・システムを駆動
するIBM RISC System/6000コンピ
ュータである。RISC System/6000コン
ピュータならびにAIXオペレーティング・システムの
詳細は、出版文献から容易に得られる。ホストとRAI
Dコントローラとディスク・ドライブの間の接続性は、
所要の帯域幅および使用度に応じて多数の種々の方法で
実施できるが、好ましい実施形態について、直列式記憶
アーキテクチャ(SSAアーキテクチャ)を参照ながら
説明する。SSAアーキテクチャは、米国仕様協会(A
NSI)X3T10.1が開発中であり、ディスク・ド
ライブ、テープ装置などの外部接続装置をワークステー
ション・サーバ(ホスト・システム)および記憶サブシ
ステムに接続するために設計されたインタフェースであ
る。SSAに関する情報は、ANSIから得られる。
【0009】SSAアーキテクチャによれば、ホスト・
システムとRAIDコントローラの間のリンクは、直列
化データ用の通信パスとなる直列リンクである。リンク
による完全二重通信は、システムの様々な構成要素間で
データを迅速に伝送できるSSAによって行われる。ル
ープ構成では、各ドライブへの2本の通信パス(すなわ
ち、連鎖の両端からの通信)を使用して、ループ内の各
ドライブに対して帯域幅を倍増し、あるいは通信が失敗
した場合にドライブに対して他のルートを提供すること
ができる。SSAでは、完全二重通信を実現する2信号
接続(送信と受信)を行う。ホスト・システムとRAI
Dコントローラの間の直列接続は、情報のフレームを通
信するのに使用する4本のワイヤから構成される。4つ
の線は、プラスおよびマイナスの出力線(送信)とプラ
スおよびマイナスの入力線(受信)から構成される。ポ
ート(「ゲートウェイ」と呼ばれる)は、リンクの一方
の端部をサポートするハードウェアとファームウェアか
ら構成される(1つは送信パス、1つは受信パス)。S
SAのポートは、インバウンドとアウトバウンドの2つ
の20メガバイト毎秒の会話をいつでも同時に維持する
ことができる。したがって、SSAデュアル・ポート・
ノードは、4つの同時会話を合計80メガバイト毎秒分
実行することができる。あるノードのポートは、リンク
を介して他のノードのポートに接続する。SSAネット
ワークを介して完全二重通信を実現するために2つのノ
ードの間にゲートウェイを確立する。あるノードは、デ
ィスクのアクセスなどの機能を実行するために他のノー
ドにトランザクションを発行する。ゲートウェイは、2
つの接続(各方向に1つ)から構成され、マスタ(トラ
ンザクションを発行する接続)はマスタ制御ブロックを
構成し、ゲートウェイのスレーブ側は、トランザクショ
ン・フレームを受け取り、アドレスされたサービスを呼
び出すタスク制御ブロックを構成する。
【0010】SSAでは、SCSI(小型コンピュータ
・システム・インタフェース)仕様の論理態様を使用し
て、直列に接続されたディスク・ドライブをアドレスす
る。これらのSCSI仕様はSSAの物理仕様に対応す
る。すなわち、SSAは、様々な上層プロトコル用のト
ランスポート層として、特に記憶装置用のSCSI−2
として使用できる。SSAに基づくSCSI−2は、イ
ニシエータ、ターゲット、および論理ユニットが存在す
る場合、SCSI−2仕様で規定されているのと同じア
ドレス体裁を維持する。
【0011】RAIDコントローラの主要な構成要素を
図2に示す。コントローラは、マイクロプロセッサ・バ
ス24を介してコードおよび制御ブロックを含むRAM
25とROM26とに接続されたマイクロプロセッサ2
2を含む。マイクロプロセッサ(MP)・ブリッジ27
は、ローカル・バス28を介してマイクロプロセッサ2
2をDRAMコントローラ29に接続する。DRAMコ
ントローラは、DRAM30に接続される。DRAMコ
ントローラは、RAID3アレイに対してフロースルー
XORを行うのに必要なハードウェアを含む。ホスト・
ブリッジ32は、PCIバス45を介してホスト・シス
テム・ハードウェアへの接続を行う。また、ローカル・
バス28には、ディスク記憶装置のアレイへの通信パス
となる2つのSSAデュアル・ポート・チップ34およ
び36が接続されている。
【0012】図3を参照すると、DRAM30内でデー
タが連続的にアクセスされた場合にアドレス情報および
データ操作を行うチャネル・ハードウェア48がローカ
ル・バス28とDRAM制御ユニット49の間に設けら
れている。DRAMコントローラは、従来の方法で動作
してDRAM内のデータにアクセスし、行列アドレスを
多重化し、DRAM制御信号を発生する。ページモード
・サイクルを使用して、バースト転送時の帯域幅を最大
にする。チャネル・ハードウェアは、ローカル・バス上
で通常のDRAMコントローラなど、スレーブとして動
作し、チャネル・ハードウェアの動作は、チャネルを介
してデータを転送しているマスタにとってトランスペア
レントである。同時データ転送を可能にするために多数
のチャネルを設けると有利である。特定のチャネルは、
入力アドレスの高位ビットによって選択する。例えば、
チャネルが16本の場合、ローカル・バス・アドレス
は、チャネル機能を選択するためのビットと、特定のチ
ャネルをアドレスする4つのビットとを含む。本発明の
この実施形態で使用するローカル・バス・アドレスを図
6に示す。各チャネルは機能フィールドおよび関連する
パラメータを有する。パラメータは、チャネル・ハード
ウェア内のチャネルRAM内に記憶され、チャネルをデ
ータ転送に使用する前にファームウェアによって初期設
定される。本願に記載の実施形態では、チャネル・ハー
ドウェアは、ローカル・バスとDRAMの間のデータ転
送を管理するために16本のチャネルを具備する。チャ
ネルには、0、1...15の番号が付されている。チ
ャネルは、次のようにローカル・バス・アドレスのビッ
ト31:24によって選択される。 ビット 31:24 Function 0100xxxx Direct access to DRAM 0101cccc Access to DRAM via Channel 'cccc' 例えば、チャネル7は、ビット27:24が'0111'
bの場合に選択される。
【0013】本発明の実施形態では、以下に記載するよ
うに、RAID3ストライプ・オペレーションおよび書
込みオペレーションでは任意のチャネルを使用できる。
ただし、RAID3再構成オペレーションではチャネル
15しか使用できない。さらに、これらのチャネルは同
時に動作するように設計されており、コントローラ・ハ
ードウェア内でデータ・バッファおよびパリティ・バッ
ファを使用する場合に衝突が生じる。以下に例を示す。
【0014】16本のチャネルはすべてストライプ機能
およびRAID3書込み機能を同時に実行できる。チャ
ネル「n」がチャネル「n+8」と同時に使用されてい
ないことを条件として(どちらもRAID3書込みに使
用されている場合)、最大8本のチャネルがRAID3
書込み機能を同時に実行できる。チャネル15をRAI
D3再構成に使用し、他の任意のチャネルをストライプ
に使用できる。以下のRAMバッファがコントローラ内
に必要である(図5参照)。
【0015】32ワード×36ビット・デュアル・ポー
トRAMから構成されるデータ・バッファ1個。このデ
ータ・バッファはRAID3再構成およびRAID3書
込みに使用される。
【0016】それぞれ4ワード×36ビット・デュアル
・ポートRAMから構成されるパリティ・バッファ2
個。RAID3再構成のみに使用される。
【0017】データ・バッファおよびパリティ・バッフ
ァは、選択したチャネル内のBufPtrフィールドに
よってアドレスされる。
【0018】これらのチャネルを使用して、定義された
アレイ機能を実行する。次に、これらの機能およびチャ
ネル・ハードウェアの使用について、RAID3として
構成されたアレイを参照しながら説明する。そのような
構成では、機能は次のように分類することができる。
【0019】1.RAID3ストライプ:このオペレー
ションは、デバイスからDRAMへのデータのストライ
プと、DRAMからデバイスへのデータのストライプの
両方を含む。各デバイスごとに1本のチャネルを使用す
る。 2.RAID3書込み:このオペレーションは、ホスト
からDRAMへのデータの転送を含む。この実施形態で
は、このオペレーションは、データをDRAM内に転送
する際にパリティ・データをオンザフライで生成する。
このタイプの転送には単一のチャネルが使用される。こ
の機能は、ディスクが破壊された場合でも、ホストから
DRAMへのすべての転送に使用されることに留意され
たい。その場合、そのディスクのデータはまったく使用
できない。 3.RAID3再構成:このオペレーションは、DRA
Mからホストへのデータの転送を含み、データ記憶装置
のうちの1つが動作不能になった場合に効力を発する。
この実施形態では、データをDRAMから転送する際に
失われたデータをオンザフライで再構成する。このタイ
プの転送には単一のチャネルが使用される。
【0020】まず、ホスト・メモリからRAID3アレ
イとして構成されたデバイスへのデータの書込みを実行
する場合のシステムのセットアップおよびオペレーショ
ンについて説明する。
【0021】ホスト上で動作しているアプリケーション
が記憶装置へのデータの書込みを要求した場合、まずコ
ントローラDRAMバッファにデータを書き込むため
に、RAID3書込みを実行するようにコントローラ・
ハードウェアおよびファームウェアを設定し、またRA
IDバッファから個々のディスク記憶装置へデータを転
送するために、RAID3ストライプを実行するように
コントローラ・ハードウェアおよびファームウェアを設
定する必要がある。以下の議論を簡単にするために、R
AID3書込みとRAID3ストライプの2つのオペレ
ーションは同時に起こるものとして説明する。ただし、
ホスト・メモリとデバイスの間のデータのパイプライン
が効率的に行われるように、RAID3書込みとRAI
D3ストライプの2つのオペレーションは、一般に、並
列に動作するように配置される。以下に詳細に説明する
ように、ホストから指定された量のデータを受け取ると
ディスク・ドライブに書き込むことができるように、コ
ントローラ内でA/Bバッファリングが行われる。次
に、図4を参照しながらRAID3書込みオペレーショ
ンとRAID3ストライプ・オペレーションについて説
明する。
【0022】RAID3書込み RAID3書込みは、ホスト上で動作しているアプリケ
ーション100が記憶装置へのデータの書込みを要求す
ることによって開始する。アプリケーションは、ホスト
・メモリ内のデータのアドレスを含む転送すべきデータ
の詳細を、ホスト・システムと関連するファイル・シス
テム102へ送る。ファイル・システムはこの要求を、
ディスク数、開始論理ブロック・アドレスおよび書き込
むべきデータのブロックの数を含む物理要求に変換す
る。デバイス・ドライバ104のマスタ・プロセスがこ
の要求とともに提示された場合、トランザクションが発
生し、コントローラに発行される。このマスタ・プロセ
スは、トランザクション用のマスタ制御ブロック(MC
B)を指すポインタでホスト・カーネルを呼び出す。M
CBは、コントローラ内で所要のサービスにアドレスさ
れる。本発明の場合、必要とされるサービスはRAID
3である。ホスト・カーネルは、MCBを指すポインタ
でゲートウェイを呼び出す。ゲートウェイのホスト側
は、ホスト・メモリ内の書込みオペレーションのために
ゲートウェイ・トランザクション制御ブロック(GTC
B)を生成する。GTCBは、本発明の議論では、
(i)宛先サービス(コントローラ・ファームウェアに
よって提供されるRAID3サービス)、(ii)ホスト
・メモリ内の書込みデータを指すポインタ、(iii)実
際のオペレーション・パラメータの詳細を指すポインタ
を含む多数のパラメータを指定する。
【0023】PCIゲートウェイは、GTCBを指すポ
インタをメモリ内の待ち行列に書き込む。ホスト・ハー
ドウェアは、ホストがGTCBポインタを書き込む場合
にコントローラに割込みを発生する。ゲートウェイ10
6のコントローラ側は、ホスト・インタフェース・チッ
プを使用して、DMA109によってGTCBをフェッ
チする。次いで、ゲートウェイは、コントローラ・アド
レス空間内にトランザクション制御ブロック(TCB)
を生成する。最後に、ゲートウェイは、TCBに実行要
求するためにコントローラ・カーネル110を呼び出
す。コントローラ・カーネルは、TCBを指すポインタ
でRAID3サービス108を呼び出す。次いで、RA
ID3サービスは、RAID3アレイを構成する各ディ
スク・ドライブごとに書込みトランザクションを生成
し、カーネルを使用してこれらのトランザクションをデ
ィスク・サービス112へ送る。ディスク・サービス
は、適切なSSA−SCSI読出しコマンドを発生し、
これらをシリアル・インタフェース・チップ116を含
むSSAドライバ114へ送る。
【0024】SSAドライバは、SSAプロトコルおよ
びシリアル・インタフェース・チップを使用してディス
ク・ドライブ120にSCSIコマンドを発行する。各
ディスク・ドライブへのSCSIコマンドでは、開始L
BAおよび書き込むべきブロックの数を指定する。
【0025】コントローラでは、メモリ割振りサービス
は、書込みデータ用にDRAMバッファ内に空間を割り
振る。メモリ割振りサービスは、RAID3書込み用の
チャネル・ハードウェア内に1つのチャネルを割り振
り、初期設定する。この初期設定では、次のパラメータ
をチャネルRAM内に書き込む(本発明の説明では、1
ワードは4バイトに等しい)。
【0026】(i)Addrl DRAMワード・アド
レスを含む。 (ii)InP パリティをデータによってインタリーブ
すべきか(InP=1)、またはパリティを割り振られ
たバッファ空間内の別のパリティ・データ領域に書き込
むべきか(InP=0)を指定するためのビットであ
る。 (iii)Fun チャネル機能を選択するためにコード
化された2ビット・フィールドである(RAID3書込
みの場合、このフィールドは10bに設定する)。 (iv)Addr2 追加のDRAMワード・アドレスを
含む(InP=0の場合にパリティに対してDRAM内
のアドレスを指定する)。 (v)ArrWid RAID3アレイの幅を指定す
る。ArrWidは、N−1に等しいと定義する。ただ
し、Nはデータ・ディスクの数である(すなわち、パリ
ティ・ディスクは含まない)。
【0027】ストライプ・サイズ(すなわち、各ディス
クごとにDRAMに記憶されるデータの単位のサイズ、
例えば図5参照)は、コントローラ内のオンチップRA
Mの量を最小にすることと、パリティ・ストライプをア
クセスする際のDRAMの帯域幅を最大にすることの折
合いをつけて選択する。以下の議論では、ストライプ・
サイズは16バイトに設定する。
【0028】ひとたびチャネルが割り振られると、ホス
ト・インタフェース・チップ32内のDMAエンジン1
08に(元の入出力要求時に提供された)ホスト内のソ
ース・アドレス、DRAM内の宛先アドレス、およびバ
イト・カウントがロードされる。次いで、DMAエンジ
ン108は、DMAによってDRAMへのデータの転送
を制御する。チャネルが指定された場合、RAID3書
込みでは、データ・バッファの1つのストライプを使用
して、各ストライプごとのパリティを計算する。ローカ
ル・バス上のデータは、直線的にDRAMのアドレスA
ddr1に記憶される。DRAM内のデータの記憶と同
時に、データの各ストライプ(すなわち、16バイト)
上でXORオペレーションを実行する。第1のディスク
のデータのストライプは、ローカル・バス・アドレスの
ビット26:24によって選択したデータ・バッファ・
ストライプ内に記憶される。残りのディスクのデータ・
ストライプは、バッファ内にXORされる。ストライプ
・バッファ(すなわち、パリティ)の内容は、ひとたび
発生すると、InP=0の場合、Addr2を使用して
DRAMの個別の領域内で直線的に記憶され、またIn
P=1の場合は、追加のデータ・ストライプとして記憶
される。
【0029】RAID3ストライプ すでに述べたように、DRAMからディスクへのRAI
D3ストライプ・オペレーションは、一般に、ホストと
DRAMの間のRAID3書込みオペレーションと並列
に動作する。RAID3ストライプ・オペレーション
は、次のように進行する。
【0030】コントローラによってシリアル・リンクを
介して発行されるSCSIコマンドに応答して、各ディ
スク・ドライブは、データを受け取る用意ができた場合
にデータ要求メッセージを戻す。各ドライブからデータ
要求メッセージを受け取ると、SSAドライバは、デー
タをDMAによってローカル・バスを介してDRAMへ
転送するようにSICをセットアップする。各ディスク
・ドライブでは、SSAドライバがSIC DMAチャ
ネルを動的に割り振り、(RAID3サービスによって
発行された元の書込みトランザクション内に提供され
た)ローカル・バス・アドレスの詳細、転送すべきバイ
トの合計数、およびオペレーションが書込みオペレーシ
ョンであることによってDMAチャネルを初期設定す
る。ローカル・バス・アドレスのビット31:24は、
コントローラ・チャネルの識別および転送がDRAMを
介する必要があることを指定する。
【0031】アレイの各ディスク・ドライブには1つの
コントローラ・チャネルが割り振られ、初期設定され
る。コントローラ・ファームウェアは、アレイの各ディ
スクの指定されたチャネル用のチャネルRAMに、パラ
メータInP、ArrWidおよびAddr1をロード
する(これらのパラメータの定義については上記を参照
せよ)。ストライプは、ローカル・バスを介してデータ
を読み書きする際に実行される。各ディスクごとに、チ
ャネル・ハードウェアは、ワード・アドレスAddr1
を使用してDRAMから要求されたデータにアクセスす
る。Addr1は、通常、各ワードにアクセスした後で
1ずつ増分される。ただし、それぞれのディスクのデー
タ(すなわち、16バイト)の第1のストライプの終了
時には、Addr1は、InP=0(RAID3書込み
中DRAMの個別の領域内に記憶されたパリティ・デー
タ)の場合は1+4*ArrWidだけ増分され、また
InP=1の場合は1+4*(1+ArrWid)だけ
増分される。このようにして、データが割り振られたコ
ントローラ・チャネルによって各ディスクに転送され
る。
【0032】次に、チャネル・ハードウェアをRAID
3再構成オペレーションの一部として使用する場合につ
いて説明する。このオペレーションを使用して、アレイ
読取りコマンドの間に、破壊されたデータ・ディスクか
ら読取りデータを再構成する。再構成オペレーションの
データの流れを図5に示す。再構成オペレーション中、
オペレーショナル・ディスクからのデータを、上述の方
法で任意の使用可能なチャネルを使用してDRAM内に
ストライプする(もちろん、データをDRAMからでは
なくDRAM内に転送する場合を除く)。インタリーブ
されていないパリティを選択した場合(InP=0)、
破壊されたディスクのストライプは空になり、パリティ
・ディスクからの読取りデータは、Addr2を使用し
てDRAMの別個の領域内に直線的に記憶される。しか
しながら、インタリーブされたパリティ・モードを選択
した場合(InP=1)、パリティは、破壊されたディ
スクの代わりにストライプを使用する(Addr2を使
用しない)。RAID3再構成では、A/Bデータおよ
びパリティ・バッファおよびチャネル15を使用する。
ファームウェアは、パラメータInP、ArrWid、
Addr1、Addr2およびBufPtrでチャネル
15用のチャネルRAMを初期設定する。破壊されたデ
ィスクの識別は、RAID3再構成機能を制御する再構
成レジスタ内に記憶される。
【0033】フロースルーXORは、次のように各ディ
スクから1つのストライプを処理する。
【0034】1.ホスト・ブリッジによって要求された
データは、通常、データ・バッファ80からローカル・
バスへ転送され、各ワードの後にバッファ・ポインタ
(BufPtr)を増分する。しかしながら、バッファ
・ポインタが破壊されたディスク(再構成レジスタ内で
識別される)に対応するストライプをアドレスした場
合、データは、代わりに現在のパリティ・バッファ(8
2または84)から転送される。 2.各ワードがローカル・バスを介して転送されると
き、他のデータおよびパリティ・バッファがDRAMか
ら次の1組のストライプで充填される。チャネル15内
の有効データ・ストライプをAddr1を使用してフェ
ッチする。Addr1は各ワード後に増分される。破壊
されたディスクに割り振られたストライプに達すると、
Addr1が増分し続け、InP=0の場合、Addr
2によって指示されるアドレスからパリティ・ストライ
プをフェッチし(この場合、Addr2はパリティ・ス
トライプの各ワード後に増分される)、またInP=1
の場合は破壊されたディスクのストライプ位置からフェ
ッチする(この場合、Addr2は不変である)。フェ
ッチされた各ワードはBufPtrでデータ・バッファ
内に記憶される。第1のストライプもパリティ・バッフ
ァ内に記憶される。次のストライプはパリティ・バッフ
ァ内にXORされる。
【0035】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0036】(1)ホスト・システムからデータ記憶装
置のアレイへのデータの転送を制御するアレイ・コント
ローラにおいて、ローカル・バスを介して前記転送時に
データをステージングするデータ・バッファに接続され
たプロセッサと、バッファの動作を制御するバッファ・
コントローラと、データ・バッファとの間でデータを転
送するのに使用する、ローカル・バス・アドレスによっ
て選択可能な複数のデータ・チャネルを提示するチャネ
ル・ハードウェアとを含むアレイ・コントローラ。 (2)チャネル・ハードウェアが、各データ・チャネル
と関連したパラメータを記憶するチャネル記憶装置を含
むことを特徴とする、上記(1)に記載のアレイ・コン
トローラ。 (3)ローカル・バス・アドレスが、データをデータ・
バッファによって転送すべきことを指定する識別ビット
を含むことを特徴とする、上記(1)に記載のアレイ・
コントローラ。 (4)ローカル・バス・アドレスが、データ転送用に選
択すべきデータ・チャネルを識別するチャネル識別ビッ
トを含むことを特徴とする、上記(3)に記載のアレイ
・コントローラ。 (5)ローカル・バス・アドレスが、選択したチャネル
上に転送すべきデータに対して実行すべきアレイ・コン
トローラ・サービスを指定することを特徴とする、上記
(4)に記載のアレイ・コントローラ。 (6)さらに、それによってRAID3による記憶装置
上にデータを記憶する、ローカル・バス・アドレスによ
って選択可能なRAID3アレイ・コントローラ・サー
ビスを提供する手段を含むことを特徴とする、上記
(5)に記載のアレイ・コントローラ。 (7)前記RAID3サービスのうちの1つが、後でデ
ータ記憶装置上に記憶するために、ローカル・バス・ア
ドレスによって指定されたチャネルを介してデータをホ
ストからデータ・バッファへ転送し、後でパリティ記憶
装置上に記憶するために、データと関連したパリティを
発生させるRAID3書込みオペレーションであること
を特徴とする、上記(6)に記載のアレイ・コントロー
ラ。 (8)前記RAID3サービスのうちの1つが、データ
記憶装置とパリティ記憶装置とデータ・バッファとの間
でデータを転送し、各記憶装置用に1つのデータ・チャ
ネルを選択するRAID3分割オペレーションであるこ
とを特徴とする、上記(7)に記載のアレイ・コントロ
ーラ。 (9)前記RAID3サービスのうちの1つが、故障し
たドライブ上のデータを再構成するRAID3再構成オ
ペレーションであることを特徴とする、上記(8)に記
載のアレイ・コントローラ。 (10)データ・バッファが、ダイナミック・ランダム
・アクセス・メモリ(DRAM)であることを特徴とす
る、上記(1)に記載のアレイ・コントローラ。 (11)アレイとして構成可能な複数のデータ記憶装置
と、ホスト・システムからデータ記憶装置のアレイへの
データの転送を制御するアレイ・コントローラとを含
む、ホスト・コンピュータ・システムと接続するデータ
記憶アレイにおいて、ローカル・バスを介して前記転送
時にデータをステージングするデータ・バッファに接続
されたプロセッサと、バッファの動作を制御するバッフ
ァ・コントローラと、データ・バッファとの間でデータ
を転送するために使用する、ローカル・バス・アドレス
によって選択可能な複数のデータ・チャネルを提示する
チャネル・ハードウェアとを含むアレイ。 (12)チャネル・ハードウェアが、各データ・チャネ
ルと関連したパラメータを記憶するチャネル記憶装置を
含むことを特徴とする、上記(11)に記載のアレイ。 (13)ローカル・バス・アドレスが、データをデータ
・バッファによって転送すべきことを指定する識別ビッ
トを含むことを特徴とする、上記(11)に記載のアレ
イ。 (14)ローカル・バス・アドレスが、データ転送用に
選択すべきデータ・チャネルを識別するチャネル識別ビ
ットを含むことを特徴とする、上記(13)に記載のア
レイ。 (15)ローカル・バス・アドレスが、選択したチャネ
ル上に転送すべきデータに対して実行すべきアレイ・コ
ントローラ・サービスを指定することを特徴とする、上
記(14)に記載のアレイ。 (16)さらに、それによってRAID3による記憶装
置上にデータを記憶する、ローカル・バス・アドレスに
よって選択可能なRAID3アレイ・コントローラ・サ
ービスを提供する手段を含むことを特徴とする、上記
(15)に記載のアレイ。 (17)前記RAID3サービスのうちの1つが、後で
データ記憶装置上に記憶するために、ローカル・バス・
アドレスによって指定されたチャネルを介してデータを
ホストからデータ・バッファへ転送し、後でパリティ記
憶装置上に記憶するために、データと関連したパリティ
を発生させるRAID3書込みオペレーションであるこ
とを特徴とする、上記(16)に記載のアレイ。 (18)前記RAID3サービスのうちの1つが、デー
タ記憶装置とパリティ記憶装置とデータ・バッファとの
間でデータを転送し、各記憶装置用に1つのデータ・チ
ャネルを選択するRAID3分割オペレーションである
ことを特徴とする、上記(17)に記載のアレイ。 (19)前記RAID3サービスのうちの1つが、故障
したドライブ上のデータを再構成するRAID3再構成
オペレーションであることを特徴とする、上記(18)
に記載のアレイ。 (20)データ・バッファが、ダイナミック・ランダム
・アクセス・メモリ(DRAM)であることを特徴とす
る、上記(11)に記載のアレイ。
【図面の簡単な説明】
【図1】RAIDコントローラを介してハード・ディス
ク・デバイスのアレイに接続されたホストを含むデータ
処理システムのブロック図である。
【図2】図1のRAIDコントローラの主要な論理構成
要素を示すブロック図である。
【図3】図1のRAIDコントローラのチャネル・ハー
ドウェアとDRAMコントローラ・ハードウェアの関係
を示すブロック図である。
【図4】本発明によるRAIDオペレーションを実現す
るデータ処理システムによって提供されるサービスを示
すブロック図である。
【図5】RAIDコントローラのDRAMハードウェア
およびフロースルーXORハードウェアのブロック図で
ある。
【図6】ローカル・バス・アドレスの図である。
【符号の説明】
10 ホスト・コンピュータ・システム 12 データ・バス 20 RAIDコントローラ 40 データ・リンク 42 データ・リンク 44 データ・リンク 46 データ・リンク 50 ディスク・ドライブ 52 ディスク・ドライブ 54 ディスク・ドライブ 56 ディスク・ドライブ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スチーブン・ジー・ルーニン アメリカ合衆国95120 カリフォルニア州 サンノゼソーンツリー・ドライブ 5966

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】ホスト・システムからデータ記憶装置のア
    レイへのデータの転送を制御するアレイ・コントローラ
    において、 ローカル・バスを介して前記転送時にデータをステージ
    ングするデータ・バッファに接続されたプロセッサと、 バッファの動作を制御するバッファ・コントローラと、 データ・バッファとの間でデータを転送するのに使用す
    る、ローカル・バス・アドレスによって選択可能な複数
    のデータ・チャネルを提示するチャネル・ハードウェア
    とを含むアレイ・コントローラ。
  2. 【請求項2】チャネル・ハードウェアが、各データ・チ
    ャネルと関連したパラメータを記憶するチャネル記憶装
    置を含むことを特徴とする、請求項1に記載のアレイ・
    コントローラ。
  3. 【請求項3】ローカル・バス・アドレスが、データをデ
    ータ・バッファによって転送すべきことを指定する識別
    ビットを含むことを特徴とする、請求項1に記載のアレ
    イ・コントローラ。
  4. 【請求項4】ローカル・バス・アドレスが、データ転送
    用に選択すべきデータ・チャネルを識別するチャネル識
    別ビットを含むことを特徴とする、請求項3に記載のア
    レイ・コントローラ。
  5. 【請求項5】ローカル・バス・アドレスが、選択したチ
    ャネル上に転送すべきデータに対して実行すべきアレイ
    ・コントローラ・サービスを指定することを特徴とす
    る、請求項4に記載のアレイ・コントローラ。
  6. 【請求項6】さらに、それによってRAID3による記
    憶装置上にデータを記憶する、ローカル・バス・アドレ
    スによって選択可能なRAID3アレイ・コントローラ
    ・サービスを提供する手段を含むことを特徴とする、請
    求項5に記載のアレイ・コントローラ。
  7. 【請求項7】前記RAID3サービスのうちの1つが、
    後でデータ記憶装置上に記憶するために、ローカル・バ
    ス・アドレスによって指定されたチャネルを介してデー
    タをホストからデータ・バッファへ転送し、後でパリテ
    ィ記憶装置上に記憶するために、データと関連したパリ
    ティを発生させるRAID3書込みオペレーションであ
    ることを特徴とする、請求項6に記載のアレイ・コント
    ローラ。
  8. 【請求項8】前記RAID3サービスのうちの1つが、
    データ記憶装置とパリティ記憶装置とデータ・バッファ
    との間でデータを転送し、各記憶装置用に1つのデータ
    ・チャネルを選択するRAID3分割オペレーションで
    あることを特徴とする、請求項7に記載のアレイ・コン
    トローラ。
  9. 【請求項9】前記RAID3サービスのうちの1つが、
    故障したドライブ上のデータを再構成するRAID3再
    構成オペレーションであることを特徴とする、請求項8
    に記載のアレイ・コントローラ。
  10. 【請求項10】データ・バッファが、ダイナミック・ラ
    ンダム・アクセス・メモリ(DRAM)であることを特
    徴とする、請求項1に記載のアレイ・コントローラ。
  11. 【請求項11】アレイとして構成可能な複数のデータ記
    憶装置と、ホスト・システムからデータ記憶装置のアレ
    イへのデータの転送を制御するアレイ・コントローラと
    を含む、ホスト・コンピュータ・システムと接続するデ
    ータ記憶アレイにおいて、 ローカル・バスを介して前記転送時にデータをステージ
    ングするデータ・バッファに接続されたプロセッサと、 バッファの動作を制御するバッファ・コントローラと、 データ・バッファとの間でデータを転送するために使用
    する、ローカル・バス・アドレスによって選択可能な複
    数のデータ・チャネルを提示するチャネル・ハードウェ
    アとを含むアレイ。
  12. 【請求項12】チャネル・ハードウェアが、各データ・
    チャネルと関連したパラメータを記憶するチャネル記憶
    装置を含むことを特徴とする、請求項11に記載のアレ
    イ。
  13. 【請求項13】ローカル・バス・アドレスが、データを
    データ・バッファによって転送すべきことを指定する識
    別ビットを含むことを特徴とする、請求項11に記載の
    アレイ。
  14. 【請求項14】ローカル・バス・アドレスが、データ転
    送用に選択すべきデータ・チャネルを識別するチャネル
    識別ビットを含むことを特徴とする、請求項13に記載
    のアレイ。
  15. 【請求項15】ローカル・バス・アドレスが、選択した
    チャネル上に転送すべきデータに対して実行すべきアレ
    イ・コントローラ・サービスを指定することを特徴とす
    る、請求項14に記載のアレイ。
  16. 【請求項16】さらに、それによってRAID3による
    記憶装置上にデータを記憶する、ローカル・バス・アド
    レスによって選択可能なRAID3アレイ・コントロー
    ラ・サービスを提供する手段を含むことを特徴とする、
    請求項15に記載のアレイ。
  17. 【請求項17】前記RAID3サービスのうちの1つ
    が、後でデータ記憶装置上に記憶するために、ローカル
    ・バス・アドレスによって指定されたチャネルを介して
    データをホストからデータ・バッファへ転送し、後でパ
    リティ記憶装置上に記憶するために、データと関連した
    パリティを発生させるRAID3書込みオペレーション
    であることを特徴とする、請求項16に記載のアレイ。
  18. 【請求項18】前記RAID3サービスのうちの1つ
    が、データ記憶装置とパリティ記憶装置とデータ・バッ
    ファとの間でデータを転送し、各記憶装置用に1つのデ
    ータ・チャネルを選択するRAID3分割オペレーショ
    ンであることを特徴とする、請求項17に記載のアレ
    イ。
  19. 【請求項19】前記RAID3サービスのうちの1つ
    が、故障したドライブ上のデータを再構成するRAID
    3再構成オペレーションであることを特徴とする、請求
    項18に記載のアレイ。
  20. 【請求項20】データ・バッファが、ダイナミック・ラ
    ンダム・アクセス・メモリ(DRAM)であることを特
    徴とする、請求項11に記載のアレイ。
JP26051896A 1996-10-01 1996-10-01 アレイ・コントローラおよびデータ記憶アレイ Expired - Fee Related JP3393765B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26051896A JP3393765B2 (ja) 1996-10-01 1996-10-01 アレイ・コントローラおよびデータ記憶アレイ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26051896A JP3393765B2 (ja) 1996-10-01 1996-10-01 アレイ・コントローラおよびデータ記憶アレイ

Publications (2)

Publication Number Publication Date
JPH10124263A true JPH10124263A (ja) 1998-05-15
JP3393765B2 JP3393765B2 (ja) 2003-04-07

Family

ID=17349088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26051896A Expired - Fee Related JP3393765B2 (ja) 1996-10-01 1996-10-01 アレイ・コントローラおよびデータ記憶アレイ

Country Status (1)

Country Link
JP (1) JP3393765B2 (ja)

Also Published As

Publication number Publication date
JP3393765B2 (ja) 2003-04-07

Similar Documents

Publication Publication Date Title
US5893138A (en) System and method for improving channel hardware performance for an array controller
US6219753B1 (en) Fiber channel topological structure and method including structure and method for raid devices and controllers
US5345565A (en) Multiple configuration data path architecture for a disk array controller
JP3151008B2 (ja) ディスクセクタ解析方法
US5526507A (en) Computer memory array control for accessing different memory banks simullaneously
US6684295B2 (en) Disk array control device with two different internal connection systems
US5148432A (en) Arrayed disk drive system and method
US7206899B2 (en) Method, system, and program for managing data transfer and construction
US5487160A (en) Concurrent image backup for disk storage system
AU630635B2 (en) Arrayed disk drive system and method
US5479653A (en) Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5978856A (en) System and method for reducing latency in layered device driver architectures
US8386744B2 (en) Thin provisioning migration and scrubbing
US20050027938A1 (en) Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
JP2010271808A (ja) ストレージ装置及びデータコピー方法
WO1996018141A1 (fr) Systeme informatique
CA2218296C (en) Method and apparatus for storing and retrieving error check information
US6425053B1 (en) System and method for zeroing data storage blocks in a raid storage implementation
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5680538A (en) System and method for maintaining a minimum quality of service during read operations on disk arrays
US6678768B1 (en) Method and apparatus for configuring redundant array of independent disks (RAID)
US6370616B1 (en) Memory interface controller for datum raid operations with a datum multiplier
GB2297636A (en) Storing data on emulated, logical, removable, disc drives
US20030135692A1 (en) Method and system for configuring RAID subsystems with block I/O commands and block I/O path
JP2000076207A (ja) 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080131

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090131

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090131

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100131

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110131

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120131

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

S802 Written request for registration of partial abandonment of right

Free format text: JAPANESE INTERMEDIATE CODE: R311802

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

Free format text: PAYMENT UNTIL: 20130131

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140131

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees