JPH10105347A - ディスクアレイ制御システム - Google Patents

ディスクアレイ制御システム

Info

Publication number
JPH10105347A
JPH10105347A JP8262147A JP26214796A JPH10105347A JP H10105347 A JPH10105347 A JP H10105347A JP 8262147 A JP8262147 A JP 8262147A JP 26214796 A JP26214796 A JP 26214796A JP H10105347 A JPH10105347 A JP H10105347A
Authority
JP
Japan
Prior art keywords
disk array
command
disk
controller
host
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
JP8262147A
Other languages
English (en)
Inventor
Naoto Matsunami
直人 松並
Takashi Oeda
高 大枝
Taisuke Kaneda
泰典 兼田
Takashi Arakawa
敬史 荒川
Ikuya Yagisawa
育哉 八木沢
Masahiro Takano
雅弘 高野
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 JP8262147A priority Critical patent/JPH10105347A/ja
Publication of JPH10105347A publication Critical patent/JPH10105347A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】ディスクアレイコントローラに低価格なMPU
を使用しても性能が制限されない高性能なディスクアレ
イ制御システムを提供する。 【解決手段】ホスト計算機のCPU10は、ディスクア
レイ装置への論理コマンドからディスクコマンドを生成
し、かつ、パリテイ生成コマンドを生成する上位ディス
クアレイ制御ドライバ103を備えている。ディスクア
レイコントローラは、ディスクアレイコントローラの内
部の制御プログラムを実行するCPUよりも処理能力の
小さいMPU30と、SCSIコントローラ34と、パ
リテイ生成回路35とを備える。MPU30は、上位デ
ィスクアレイ制御ドライバ103が発行したディスクコ
マンド及びパリテイ生成コマンドを受信してそれらをデ
ィスクやパリテイ生成回路35に対して発行する下位デ
ィスクアレイ制御部303を備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディスクアレイを
制御するディスクアレイ制御システムに関する。
【0002】
【従来の技術】ディスクアレイは、複数のディスクを並
列に動作させることで、単体のディスクに比べ高速化を
実現する技術である。しかし、ディスクをn台並べた場
合、その故障確率は、n倍に悪化する。
【0003】そこで、高速化と高信頼化を両立するため
の技術として、「RAID(Redundant Ar
rays of Inexpensive Disk
s)」が知られている。RAIDは、例えば、”A C
ase for Redundant Arrays
of Inexpensive Disks (RAI
D) ”; In Proc. ACM SIGMO
D, June 1988(カリフォルニア大学バーク
レー校発行)」に記載されている。
【0004】RAIDは、複数のディスクを並列に動作
させることで高速制御を実現し、また、パリティと呼ぶ
冗長データをパリティディスクと呼ぶ特定のディスクに
格納することにより、万一、データを格納する1台のデ
ィスクが故障しても、他のディスクとパリティディスク
のパリティとから故障したディスクのデータを再現する
ことができ、耐ディスク障害信頼性を高めることができ
るディスク制御の方法である。
【0005】RAIDは、そのパリティの格納の方法に
よりレベル1から5がある。レベル4のRAID型ディ
スクアレイでは、例えば、ディスクが5台あり、4台が
データディスク0〜3、1台がパリティディスクとする
と、データをディスク0,ディスク1,ディスク2,デ
ィスク3の順番で、ある一定のデータブロック毎に順に
分散して格納する。このデータブロック単位のことをス
トライプと称し、この分散する制御のことをストライピ
ングと称する。
【0006】ディスク0〜3に格納した同一ストライプ
のデータD0〜3の排他的論理和(以下XORと称す
る)を計算することで、 P=D0+D1+D2+D3 (ただし、+はXOR演
算を示す) パリティPを生成する事ができる。また、D0を格納す
るディスク0が故障した際には、 D0=D1+D2+D3+P により、故障したディスク0のD0を再現できる。
【0007】また、RAIDをはじめとするディスクア
レイの制御方法には、「ハードアレイ」方式、「ソフト
アレイ」方式と言われる方法がある。「ハードアレイ」
方式は、ディスクアレイ制御専用のコントローラを備
え、そのコントローラ上のCPUで、上記のようなディ
スクアレイのデータ分散制御を行う方式である。「ハー
ドアレイ」は、例えば、米国特許第5,249,279
号明細書に記載されている。ここで、コントローラ上の
CPUを、ホスト計算機のCPUと区別するため、MP
U(Micro Processing Unit)と
称することにする。ただし、MPUは、1つで構成して
も複数で構成してもよいので、これらを分け隔て無く同
一の呼称を用いることにする。
【0008】「ハードアレイ」方式では、ホスト計算機
は、ディスクアレイを1台の大容量の仮想ディスクとし
てとらえ、仮想ディスクに対してリード/ライト等のコ
マンドを発行する。ディスクアレイコントローラはこの
コマンドを受信し、ディスクアレイを構成する各ディス
クへのコマンドに変換する。この方式は専用のハード
(コントローラ)を有することから「ハードアレイ」と
称されている。
【0009】一方、「ソフトアレイ」方式は、ディスク
アレイ専用のコントローラを持たず、ホスト計算機に複
数台のディスクを接続し、CPUでディスクアレイのデ
ータ分散制御を行うものである。ホスト計算機のCPU
のソフトウェアでディスクアレイ制御をおこなうことか
ら「ソフトアレイ」と称されている。
【0010】
【発明が解決しようとする課題】最初に従来の第1の問
題点について説明する。従来の「ハードアレイ」方式の
ディスクアレイでは、ロジカルアクセスリクエストをデ
ィスクのコマンドへの変換処理からディスクのコマンド
処理まで、すべてのディスクアレイ制御を、ディスクア
レイコントローラのMPUで行う方式である。この方法
では、多数のディスクを接続し、多数のロジカルアクセ
スリクエストを処理しようとすると、MPUの能力でそ
の処理リクエスト数が限定されてしまうという問題があ
る。これは、一般に、ディスクアレイコントローラに搭
載するMPUの能力は、ホスト計算機のCPU能力に比
べ非常に低いためである。
【0011】また、従来の「ソフトアレイ」方式のディ
スクアレイでは、処理能力の高いCPUで全てのディス
クアレイ処理を行うので、専用のMPUをもつ「ハード
アレイ」より高性能が期待できる。しかし、CPUで
は、負荷の重いアプリケーションや,ネットワーク,グ
ラフィック等の処理を並行して実行しなくてはならない
ので、負荷の重いディスクアレイ処理をCPUで実行す
ることにより、CPU負荷率が上昇し、本来のアプリケ
ーション処理を妨げてしまうという問題がある。さら
に、「ソフトアレイ」はホスト計算機のOSのファイル
システムや、デバイスドライバで実現するが、このた
め、ホスト計算機の種類やOSの種類に依存してしまう
という問題がある。
【0012】次に、従来の第2の問題点について説明す
る。また、従来の「ハードアレイ」方式は、ディスクア
レイコントローラをホスト計算機に内蔵する方式とホス
ト計算機に外付けする方式がある。内蔵方式は、ホスト
I/Fに高速なホストバスを用い、また、SCSI等の
オーバヘッドが無いので高性能であり、さらに、ホスト
計算機にディスクアレイを内蔵できるので小型化に適す
るが、その反面、ホストバスの種類に依存し、さらにロ
ジカルディスクアクセスリクエストを発行する手段が、
ホスト計算機のOSに依存してしまい、接続性が低いと
いう問題がある。
【0013】一方、外付け方式は、ホストI/Fに、S
CSI等のディスク接続バスを用いるので、ホスト計算
機のホストバスやOSに依存しないため、接続性が高い
が、その反面、SCSIのオーバヘッドが大きく、転送
性能も低いので性能が劣るという問題がある。このよう
に両方式は一長一短の面があり、ホスト計算機と要求性
能によりいずれかを選択する必要がある。このため、そ
れぞれのホストI/Fを有するディスクアレイコントロ
ーラを別々に製作する必要があり、開発コストが高くな
るという問題がある。
【0014】次に、従来の第3の問題点について説明す
る。内蔵方式のハードアレイにおいては、ディスクアレ
イコントローラをホスト計算機に内蔵するので、複数台
のホスト計算機が1台のディスクアレイを共用する構成
を実現できないという問題がある。すなわち、複数台の
ホスト計算機で分散処理をすることで処理の高速化を図
る「クラスタ構成」や、1台のホスト計算機が故障した
際に待機するホスト計算機に処理を引き継ぐ「スタンバ
イ構成」を実現できないという問題がある。
【0015】本発明の第1の目的は、上記第1の問題点
を解決して、ディスクアレイコントローラに低価格なM
PUを使用しても、MPUの能力で性能が制限されない
高性能なディスクアレイ制御システムを提供することに
ある。
【0016】本発明の第2の目的は、上記第2の問題点
を解決して、ホストバスに接続してホスト計算機に内蔵
する「内蔵型ディスクアレイ」と、SCSI等のディス
ク接続バスでホスト計算機に外付け接続する「外付け型
ディスクアレイ」を、唯一つのディスクアレイコントロ
ーラで実現することができるディスクアレイ制御システ
ムを提供することにある。
【0017】さらに、本発明の第3の目的は、ホスト計
算機のホストバスやOSや、動作させるアプリケーショ
ンの要求性能に応じて、「ハードアレイ」方式のディス
クアレイと、本発明の第1の目的を達成する高性能なデ
ィスクアレイを、選択的に切り換えることができるディ
スクアレイ制御システムを提供することにある。
【0018】本発明の第4の目的は、上記第3の問題点
を解決して、内蔵型ディスクアレイにおいても、クラス
タ構成やスタンバイ構成等の複数台のホスト計算機で1
台のディスクアレイを共用できるディスクアレイ制御シ
ステムを提供することにある。
【0019】本発明の第5の目的は、ホスト計算機にデ
ィスクアレイを内蔵したときに、そのホスト計算機自体
を一つのディスクアレイ装置として構成し得るディスク
アレイ制御システムを提供することにある。
【0020】
【課題を解決するための手段】上記第1の目的を実現す
るために、本発明は、プログラムを実行するCPUを有
するホスト計算機と、このホスト計算機にホストインタ
ーフェースを介して接続されるとともに、複数のディス
クからなるディスクアレイと、このディスクアレイを制
御するディスクアレイコントローラとを有するディスク
アレイ装置から構成され、上記CPUは、上記ディスク
アレイ装置への論理コマンドから上記ディスクアレイを
構成するディスクへのディスクコマンドを生成し、か
つ、冗長データを生成するための冗長データ生成コマン
ドを生成する上位ディスクアレイ制御手段を備え、上記
ディスクアレイコントローラは、上記ディスクアレイコ
ントローラの内部の制御プログラムを実行する上記CP
Uよりも処理能力の小さいMPUと、上記ディスクアレ
イを構成するディスクを接続するディスクインターフェ
ースと、上記ディスクアレイに格納する冗長データを生
成する冗長データ生成手段とを備え、上記MPUは、上
記上位ディスクアレイ制御手段が発行した上記ディスク
コマンド及び冗長データ生成コマンドを受信し、上記デ
ィスクアレイを構成するディスクにディスクコマンドを
発行し、また、上記冗長データ生成手段に冗長データ生
成コマンドを発行する下位ディスクアレイ制御手段を備
えるようにしたものであり、かかる構成により、高性能
化が図り得るものとなる。
【0021】上記第2の目的を達成するために、本発明
は、プログラムを実行するCPUを有するホスト計算機
と、このホスト計算機にホストインターフェースを介し
て接続されるとともに、複数のディスクからなるディス
クアレイと、このディスクアレイを制御するディスクア
レイコントローラとを有するディスクアレイ装置から構
成され、上記ディスクアレイ装置の上記ホストインター
フェースは、上記ホスト計算機の内部システムバスに直
結するカードエッジを有する構造の第1ホストインター
フェースと、上記ホスト計算機とケーブルを介して接続
する構造の第2ホストインターフェースとから構成さ
れ、上記ディスクアレイ装置は、上記第1ホストインタ
ーフェースと上記第2ホストインターフェースのいずれ
か一方を選択するホストインターフェースモード選択手
段を備えるようにしたものであり、かかる構成により、
内蔵型と外付け型を選択し得るものとなる。
【0022】また、上記ディスクアレイ制御システムに
おいて、好ましくは、上記CPUは、さらに、上記第1
ホストインターフェースに上記CPUが生成したコマン
ドを送信し、上記ディスクアレイコントローラからの終
了報告を受信する第1コマンド送信制御手段と、上記第
2ホストインターフェースに上記CPUが生成したコマ
ンドを送信し、ディスクアレイコントローラからの終了
報告を受信する第2コマンド送信制御手段と、上記第1
若しくは第2コマンド送信制御手段を選択するコマンド
送信選択手段を備え、上記ディスクアレイコントローラ
は、さらに、上記第1ホストインターフェースから上記
CPUが生成したコマンドを受信し、その終了を上記ホ
スト計算機に報告する第1コマンド受信制御手段と、上
記第2ホストインターフェースから上記CPUが生成し
たコマンドを受信し、その終了をホストに報告する第2
コマンド受信制御手段と、上記ホストインターフェース
モード選択手段により決定した上記第1若しくは第2ホ
ストインターフェースに応じた上記第1若しくは第2コ
マンド受信制御手段を選択するコマンド受信選択手段と
を備えるようにしたものである。
【0023】上記ディスクアレイ制御システムにおい
て、好ましくは、上記ホストインターフェースモード選
択手段が、上記第2ホストインターフェースを選択した
際には、上記2ホストインターフェースと上記ホスト計
算機はケーブルで接続し、上記ホスト計算機の外部に設
けたディスクアレイ筐体に上記ディスクアレイコントロ
ーラ及び上記ディスクアレイを搭載し、上記ディスクア
レイ筐体は、上記第1ホストインターフェースのカード
エッジを接続する構造のコネクタと、電源と、クロック
信号生成手段を備え、上記ディスクアレイコントローラ
は、第1ホストインターフェースのカードエッジで上記
コネクタに接続し、上記コネクタを介して上記電源から
電力を供給し、上記クロック信号生成手段からクロック
信号を供給するようにしたものである。
【0024】上記ディスクアレイ制御システムにおい
て、好ましくは、上記ディスクアレイ筐体は、上記ホス
トインターフェースモード選択手段と接続するコネクタ
を有し、上記ホストインターフェースモード選択手段
は、上記ディスクアレイ筐体のコネクタと接続した際に
は第2ホストインターフェース制御手段を選択するよう
にしたものである。
【0025】上記第3の目的を達成するために、本発明
は、プログラムを実行するCPUを有するホスト計算機
と、このホスト計算機にホストインターフェースを介し
て接続されるとともに、複数のディスクからなるディス
クアレイと、このディスクアレイを制御するディスクア
レイコントローラとを有するディスクアレイ装置から構
成され、上記CPU若しくは上記MPUは、上記ディス
クアレイ装置への論理コマンドから上記ディスクアレイ
を構成するディスクへのディスクコマンドを生成し、か
つ、冗長データを生成するための冗長データ生成コマン
ドを生成する上位ディスクアレイ制御手段を備え、上記
ディスクアレイコントローラは、上記ディスクアレイコ
ントローラの内部の制御プログラムを実行する上記CP
Uよりも処理能力の小さいMPUと、上記ディスクアレ
イを構成するディスクを接続するディスクインターフェ
ースと、上記ディスクアレイに格納する冗長データを生
成する冗長データ生成手段とを備え、上記MPUは、上
記上位ディスクアレイ制御手段が発行した上記ディスク
コマンド及び冗長データ生成コマンドを受信し、上記デ
ィスクアレイを構成するディスクにディスクコマンドを
発行し、また、上記冗長データ生成手段に冗長データ生
成コマンドを発行する下位ディスクアレイ制御手段を備
え、さらに、上記ディスクアレイコントローラは、上記
CPU若しくは上記MPUが備える上記上位ディスクア
レイ制御手段を選択するディスクアレイモード選択手段
を備えるようにしたものであり、かかる構成により、ハ
イブリッドアレイ構成とハードアレイ構成を選択し得る
ものとなる。
【0026】上記第4の目的を達成するために、本発明
は、プログラムを実行するCPUを有する複数のホスト
計算機と、これらのホスト計算機にホストインターフェ
ースを介して接続されるとともに、複数のディスクから
なるディスクアレイと、このディスクアレイを制御する
ディスクアレイコントローラとを有するディスクアレイ
装置から構成され、上記複数のホスト計算機のそれぞれ
の上記CPUは、上記ディスクアレイ装置への論理コマ
ンドから上記ディスクアレイを構成するディスクへのデ
ィスクコマンドを生成し、かつ、冗長データを生成する
ための冗長データ生成コマンドを生成する上位ディスク
アレイ制御手段を備え、上記ディスクアレイコントロー
ラは、上記ディスクアレイコントローラの内部の制御プ
ログラムを実行する上記CPUよりも処理能力の小さい
MPUと、上記ディスクアレイを構成するディスクを接
続するディスクインターフェースと、上記ディスクアレ
イに格納する冗長データを生成する冗長データ生成手段
とを備え、上記MPUは、上記上位ディスクアレイ制御
手段が発行した上記ディスクコマンド及び冗長データ生
成コマンドを受信し、上記ディスクアレイを構成するデ
ィスクにディスクコマンドを発行し、また、上記冗長デ
ータ生成手段に冗長データ生成コマンドを発行する下位
ディスクアレイ制御手段を備え、上記ディスクアレイ装
置は、第1の上記ホスト計算機に内蔵され、上記ディス
クアレイ装置の上記ホストインターフェースは、上記第
1のホスト計算機の内部システムバスに直結するカード
エッジを有する構造の第1ホストインターフェースと、
上記第1のホスト計算機以外の上記ホスト計算機とケー
ブルを介して接続する構造の第2ホストインターフェー
スとから構成するようにしたものである。
【0027】上記第5の目的を達成するために、本発明
は、プログラムを実行するCPUを有する第1のホスト
計算機と、プログラムを実行するCPUを有する第2の
ホスト計算機と、上記第1及び第2のホスト計算機にホ
ストインターフェースを介して接続されるとともに、複
数のディスクにからなるディスクアレイと、このディス
クアレイを制御するディスクアレイコントローラとを有
するディスクアレイ装置から構成され、上記第1の計算
機の上記CPUは、上記ディスクアレイ装置への論理コ
マンドから上記ディスクアレイを構成するディスクへの
ディスクコマンドを生成し、かつ、冗長データを生成す
るための冗長データ生成コマンドを生成する上位ディス
クアレイ制御手段を備え、上記第2の計算機の上記CP
Uは、上記ディスクアレイ装置への論理コマンドを上記
ディスクアレイコントローラに発行するディスク制御手
段を備え、上記ディスクアレイコントローラは、上記デ
ィスクアレイコントローラの内部の制御プログラムを実
行する上記CPUよりも処理能力の小さいMPUと、上
記ディスクアレイを構成するディスクを接続するディス
クインターフェースと、上記ディスクアレイに格納する
冗長データを生成する冗長データ生成手段とを備え、上
記MPUは、上記上位ディスクアレイ制御手段が発行し
た上記ディスクコマンド及び冗長データ生成コマンドを
受信し、上記ディスクアレイを構成するディスクにディ
スクコマンドを発行し、また、上記冗長データ生成手段
に冗長データ生成コマンドを発行する下位ディスクアレ
イ制御手段を備え、上記ディスクアレイ装置は、第1の
上記ホスト計算機に内蔵され、上記ディスクアレイ装置
の上記ホストインターフェースは、上記第1のホスト計
算機の内部システムバスに直結するカードエッジを有す
る構造の第1ホストインターフェースと、上記第2のホ
スト計算機とケーブルを介して接続する構造の第2ホス
トインターフェースとから構成するようにしたものであ
る。
【0028】また、本発明は、ホスト計算機にホストイ
ンターフェースを介して接続されるとともに、複数のデ
ィスクからなるディスクアレイを制御するディスクアレ
イコントローラにおいて、上記ディスクアレイコントロ
ーラの内部の制御プログラムを実行するMPUと、上記
ディスクアレイを構成するディスクを接続するディスク
インターフェースと、上記ディスクアレイに格納する冗
長データを生成する冗長データ生成手段とを備え、上記
ホストインターフェースは、上記ホスト計算機の内部シ
ステムバスに直結するカードエッジを有する構造の第1
ホストインターフェースと、上記ホスト計算機とケーブ
ルを介して接続する構造の第2ホストインターフェース
とから構成するようにしたものである。
【0029】
【発明の実施の形態】以下、図1〜図19を用いて、本
発明の一実施形態によるディスクアレイ制御システムに
ついて説明する。
【0030】[構成の説明]最初に、図1を用いて、本
発明の一実施形態による内蔵型ハイブリッドアレイ構成
のディスクアレイ制御システムの全体構成について説明
する。図1は、本発明の一実施形態によるディスクアレ
イ制御システムのハードウエアの全体構成のブロック図
である。
【0031】ホスト計算機1は、CPU10と、主記憶
メモリ11と、システム制御手段12と、PCIバス1
3と、PCIコネクタ14と、ディスクアレイ装置2に
よって構成されている。
【0032】システム制御手段12は、CPU10とP
CIバス13と主記憶メモリ11との間のデータ転送を
制御する。PCIバス13は、ホストバス若しくはシス
テムバスである。PCIコネクタ14は、PCIバス1
3にPCI拡張ボードを接続する。ディスクアレイ装置
2は、PCIコネクタ14を介して、PCIバス13に
接続されている。ディスクアレイ装置2は、ホスト計算
機1の中に内蔵されており、この構成を、「内蔵型」と
称する。
【0033】ディスクアレイ装置2は、少なくとも1台
以上のディスク21a,21b,21c,21d,21
e,21f,…と、ディスクアレイコントローラ3によ
って構成されている。ディスクアレイコントローラ3
は、複数台のディスク21a,21b,…を制御して、
これらのディスクをディスクアレイとして機能させるデ
ィスクアレイコントローラ3は、MPU30と、メモリ
42と、PCI I/Fコントローラ321と、SCS
I33,34a,34bと、パリティ生成回路35と、
キャッシュメモリ36と、ホストI/Fモード選択手段
37と、PCIバス38とから構成されている。
【0034】MPU30は、ディスクアレイコントロー
ラ3の制御プログラムを実行するものである。メモリ4
2は、MPU30が実行するプログラムやデータを格納
している。
【0035】PCI I/Fコントローラ321は、ホ
スト計算機1の第1ホストI/FであるPCII/F3
2を制御する。PCII/F32は、PCIコネクタ1
4とPCI I/Fコントローラ321によって構成さ
れる。また、PCI I/Fコントローラ321は、D
MAコントローラ(図示せず)を内蔵している。
【0036】SCSI33は、ホスト計算機1と接続す
るための第2ホストI/Fである。SCSI33は、P
CIカードエッジ332と、SCSIコントローラ33
1によって構成されている。SCSIコントローラ33
1は、SCSI33を制御する。SCSIコントローラ
331は、DMAコントローラ(図示せず)を内蔵して
いる。PCIカードエッジ332は、SCSIケーブル
を接続するSCSIコネクタであるが、本実施形態にお
いては、SCSIケーブルは接続されていない。
【0037】SCSI34aは、少なくとも1台以上の
ディスク21a,21b,21c,…を接続するための
ディスクI/Fである。SCSI34aは、SCSIコ
ントローラ34a1と、SCSIコネクタ40a1によ
って構成されている。SCSIコントローラ34a1
は、SCSI34aを制御する。SCSIコントローラ
34a1は、DMAコントローラ(図示せず)を内蔵し
ている。SCSIコネクタ40a1は、SCSIケーブ
ルを接続するコネクタである。
【0038】SCSI34bは、少なくとも1台以上の
ディスク21d,21e,21f,…を接続するための
ディスクI/Fである。SCSI34bは、SCSIコ
ントローラ34b1と、SCSIコネクタ40b1によ
って構成されている。SCSIコントローラ34b1
は、SCSI34bを制御する。SCSIコントローラ
34b1は、DMAコントローラ(図示せず)を内蔵し
ている。SCSIコネクタ40b1は、SCSIケーブ
ルを接続するコネクタである。
【0039】パリティ生成回路35は、ディスクアレイ
に格納する冗長データであるパリティデータを生成す
る。キャッシュメモリ36は、ディスク21a,21
b,21c,21d,21e,21f,…のデータを一
時的に保持する。
【0040】ホストI/Fモード選択手段37は、ホス
ト計算機1とディスクアレイコントローラ3の接続を上
記第1ホストI/FであるPCI I/F32を用いる
か、第2ホストI/FであるSCSI33を用いるかを
選択するものである。
【0041】PCIバス38は、ディスクアレイコント
ローラ3の内部のバスである。
【0042】同図において、ホスト計算機1のホストバ
ス及びディスクアレイコントローラ3の内部バスにPC
Iバス13,38を用いているが、他のバスを用いても
よい。
【0043】また、ディスクI/F34a,34bにS
CSIを用いているがこれもこの限りではない。また、
SCSIコントローラ34の数を2としているが、これ
はそれ以上でも以下でもよい。また、PCI I/Fコ
ントローラ321とMPU30は別の構成にしている
が、MPU30がPCI I/Fを備えているものであ
ってもよい。また、キャッシュメモリ36の制御回路
は、キャッシュメモリ36に含まれているものとし、パ
リティ生成回路35は独立した構成にしているが、パリ
ティ生成回路をキャッシュメモリ制御回路と一体化し
て、キャッシュメモリ36内に含まれるものとしてもよ
い。このように、本実施形態は、様々な構成のバリエー
ションに適用できるものであり、本実施形態は本発明の
範囲を限定するものではない。
【0044】次に、図2を用いて、本発明の一実施形態
による内蔵型ハイブリッドアレイ構成のディスクアレイ
制御システムのCPU10及びMPU30で実行するプ
ログラムの構成について説明する。図2は、本発明の一
実施形態によるディスクアレイ制御システムのソフトウ
エアの全体構成のブロック図である。
【0045】本実施形態においては、ディスクアレイ処
理を、ホスト計算機1のCPU10とディスクコントロ
ーラ3のMPU30とで分散しており、この処理構成を
「ハイブリッドアレイ」構成と称する。
【0046】CPU10が実行するプログラムは、アプ
リケーション100と、OS101と、ファイルシステ
ム102と、上位ディスクアレイ制御ドライバ103
と、PCI I/Fドライバ104と、SCSIドライ
バ105から構成されている。
【0047】ここで、上位ディスクアレイ制御ドライバ
103は、論理コマンドアドレス変換部1031と、キ
ャッシュ管理部1032と、コマンドI/F制御部10
34と、コントローラ検出部1035とから構成されて
いる。論理コマンドアドレス変換部1031は、ファイ
ルシステム102から受信したディスクアレイへの論理
コマンドをディスクアレイ装置2を構成する少なくとも
1台以上のディスク21へのコマンドに変換するもので
ある。キャッシュ管理部1032は、キャッシュメモリ
36の管理を行うものである。コマンドI/F制御部1
034は、PCI I/Fドライバ104およびSCS
Iドライバ105のいずれか選択されたドライバとの間
でコマンド送信等のやりとりを行うものである。コント
ローラ検出部1035は、PCI I/F32とSCS
I33のどちらのホストI/Fを使用するかを選択し、
ディスクアレイコントローラの検出,初期化を行うもの
である。
【0048】PCI I/Fドライバ104は、PCI
I/F32を用いてディスクアレイコントローラ3に
コマンドを送信するためのものであり、第1コマンド送
信手段である。SCSIドライバ105は、SCSI3
3を用いてディスクアレイコントローラ3にコマンドを
送信するためのものであり、第2コマンド送信手段であ
る。
【0049】また、MPU30が実行するプログラム
は、PCI I/Fコマンド制御部301と、SCSI
コマンド制御部302と、下位ディスクアレイ制御部3
03と、ホストI/Fモード制御部305とから構成さ
れている。PCI I/Fコマンド制御部301は、P
CI I/F32を介してホスト計算機1からのコマン
ドを受信するものであり、第1コマンド受信手段であ
る。PCI I/Fコマンド制御部301は、DMA制
御部を含んでおり、このDMA制御部は、ホスト計算機
1の主記憶メモリ11とディスクアレイコントローラ3
のキャッシュメモリ36間のデータ転送制御を実行す
る。SCSIコマンド制御部302は、SCSI33を
介してホスト計算機1からのコマンドを受信するもので
あり、第2コマンド受信手段である。SCSIコマンド
制御部302は、DMA制御部を含んでおり、このDM
A制御部は、ホスト計算機1の主記憶メモリ11とディ
スクアレイコントローラ3のキャッシュメモリ36間の
データ転送制御を実行する。なお、図1に示す内蔵型に
おいては、SCSIコマンド制御部302は、使用され
ていない。下位ディスクアレイ制御部303は、上位デ
ィスクアレイ制御ドライバ103の生成したディスクコ
マンドやパリティ生成コマンドを実行するものである。
ホストI/Fモード制御部305は、ホストI/Fモー
ド選択手段37により選択されたホストI/Fで、ホス
ト計算機1とコマンドの授受をできるように制御する。
図1に示す構成においては、ホストI/Fモード制御部
305からの制御信号によって、PCI I/F32が
ホストI/Fとして選択されており、ホスト計算機1と
コマンドの授受をできるように制御する。
【0050】下位ディスクアレイ制御部303は、コマ
ンドI/F制御部3031と、ディスクコマンド制御部
3032と、パリティ生成コマンド制御部3033と、
初期化部3035と、コマンド管理部3036とから構
成されている。コマンドI/F制御部3031は、ホス
トI/Fモード制御部305により決定されたPCI
I/F制御部301もしくはSCSI制御部302のど
ちらか一方からコマンドを受信するものである。ディス
クコマンド制御部3032は、ディスクI/F34a,
34bのSCSIコントローラ34a1,34b1を制
御し、ディスクコマンドを実行するものである。パリテ
ィ生成コマンド制御部3033は、パリティ生成回路3
5を制御し、パリティ生成コマンドを実行するものであ
る。初期化部3035は、ディスクアレイコントローラ
3の初期化処理を実行するものである。コマンド管理部
3036は、受信したコマンドの管理を行うものであ
る。
【0051】[動作の説明] (1)ホストI/Fモードの選択 次に、図3及び図4を用いて、本発明の一実施形態によ
る内蔵型ハイブリッドアレイ構成のディスクアレイ制御
システムにおけるホストI/Fモード選択手段37の構
成及び機能について説明する。図3は、本発明の一実施
形態によるディスクアレイ制御システムのホストI/F
モード選択手段の構成を示す回路図であり、図4は、本
発明の一実施形態によるディスクアレイ制御システムの
ホストI/Fモード選択手段の論理図である。
【0052】ホストI/Fモード選択手段37は、例え
ば,図3に示すような構成を有している。スイッチ37
1の開閉により、ホストI/Fモード選択手段37の出
力信号であるIF_Mode信号372は、”1”と”
0”の2値を持つことができる。
【0053】図4に示すように、ホストI/Fモード制
御部305は、IF_Mode信号372に応じて、ホ
ストI/Fを選択する。即ち、IF_Mode信号37
2が”1”の時、ホストI/Fモード制御部305は、
ホストI/Fとして、第1ホストI/FであるPCI
I/F32を選択し、IF_Mode信号が”0”の
時、ホストI/Fとして、第2ホストI/FであるSC
SI33を選択する。図3に示す状態では、IF_Mo
de信号372は”1”であるので、PCII/F32
を選択していることを示している。
【0054】以下の説明においては、ホストI/Fモー
ド制御部305は、IF_Mode信号372に基づい
てPCI I/F32を選択し、図1に示したように、
ディスクアレイコントローラ3がホスト計算機1のPC
Iコネクタ14に接続している場合について説明する。
【0055】ディスクアレイ装置2の電源投入時に、M
PU30は初期化を開始する。初期化開始後、MPU3
0は、メモリ42からプログラムをリードし、下位ディ
スクアレイ制御部303が動作可能なように初期化を実
施する。このとき、ホストI/Fモード選択手段37が
出力するIF_Mode372信号は、MPU30に入
力され、下位ディスクアレイ制御部303のホストI/
Fモード制御部305は、選択されたホストI/Fに対
応するコマンド受信手段を選択する。
【0056】図3に示す場合においては、PCI I/
F32が選択されているので、MPU30は、PCI
I/F制御部301を以降使用する。また、コマンドI
/F制御部3031をPCI I/F制御部301と接
続するよう初期化する。さらに、SCSIコントローラ
331,34a1,34b1やパリティ生成回路35等
のハードウェアの初期化も実施する。
【0057】また、以降、選択したホストI/Fとは異
なるI/Fからコマンドが送信されてもディスクアレイ
コントローラ3は応答しないか、エラー応答を返すか何
れかの方法でホスト計算機に以後のコマンド発行を抑止
するよう知らせる。
【0058】(2)コントローラの検出 次に、図5を用いて、本発明の一実施形態による内蔵型
ハイブリッドアレイ構成のディスクアレイ制御システム
におけるディスクアレイコントローラの検出及び初期化
処理について説明する。図5は、本発明の一実施形態に
よるディスクアレイ制御システムにおけるディスクアレ
イコントローラ検出処理を説明するフローチャートであ
る。
【0059】図1に示すホスト計算機1に電源が投入さ
れると、図2に示したOS101は、初期化処理の段階
で、各周辺機器用のデバイスドライバを組み込み、デバ
イスドライバは周辺機器の検出、初期化を行う。ディス
クアレイ装置2についても同様である。
【0060】OS101は、上位ディスクアレイ制御ド
ライバ103を組み込む。上位ディスクアレイ制御ドラ
イバ103のコントローラ検出部1035は、図5に示
すフローチャートに従い、ディスクアレイコントローラ
の検,、初期化処理を行う。
【0061】図5のステップ1000において、上位デ
ィスクアレイ制御ドライバ103がロードされ、処理が
開始される。最初に、ステップ1001において、上位
ディスクアレイ制御ドライバ103のコントローラ検出
部1035は、PCI I/F32を選択する。次に、
ステップ1002において、コントローラ検出部103
5は、PCIバス13を走査し、ディスクアレイコント
ローラ3があるかどうか検査する。具体的には、PCI
バス13に接続する全てのデバイス(コントローラ)の
ベンダIDとデバイスIDを示すレジスタをリードし、
ディスクアレイコントローラ3のPCI I/Fコント
ローラ321の持つベンダID,デバイスIDを検査す
る。
【0062】ステップ1003において、検出の有無を
判断し、検出した場合には、ステップ1008におい
て、コントローラ検出部1035は、ディスクアレイコ
ントローラ3へのコマンド発行等の通信には、PCI
I/F32を使用することとし、上位ディスクアレイ制
御ドライバ103とPCI I/Fドライバ104とを
接続するようコマンドI/F制御部1034を初期化す
る。また、PCIバス13上にディスクアレイコントロ
ーラ3を検出できなかったときには、ステップ1004
において、コントローラ検出部1035は、SCSIを
選択する。次に、ステップ1005において、コントロ
ーラ検出部1035は、SCSIを走査し、ディスクア
レイコントローラ3があるかどうか検査する。具体的に
は、SCSIに接続する全てのデバイス(コントロー
ラ)にコントローラ種別を問いかけるコマンド(Inq
uiryコマンド)をSCSIドライバ経由105で発
行し、その返値から、ディスクアレイコントローラ3が
存在するかどうか特定する。
【0063】ステップ1006において、検出の有無を
判断し、検出した場合には、以降、ディスクアレイコン
トローラ3へのコマンド発行等の通信にはSCSIを使
用することとし、上位ディスクアレイ制御ドライバ10
3とSCSIドライバ105とを接続するようコマンド
I/F制御部1034を初期化する。
【0064】なお、ステップ1004,1005,10
06における処理は、PCIバス13にSCSIが接続
され、このSCSIとディスクアレイコントローラ3の
SCSI33が接続される場合の処理であり、このよう
な接続関係を「外付け型」と称し、「外付け型」の詳細
については、図20を用いて後述する。
【0065】ステップ1010において、上位ディスク
アレイ制御ドライバ103のコントローラ検出部103
5は、上述したように、何れかのホストI/F上にディ
スクアレイコントローラ3を検出したならば、ディスク
アレイコントローラの初期化コマンドを生成し、各ホス
トI/Fに対応するPCI I/Fドライバ104,若
しくはSCSIドライバ105を介して、ディスクアレ
イコントローラ3にディスクアレイ構成情報リードコマ
ンドを発行する。ディスクアレイコントローラ3のPC
I I/F制御部301若しくはSCSI制御部302
は、ディスクアレイ構成情報リードコマンドを受信し、
下位ディスクアレイ制御部303の初期化部3035
は、ディスク21の特定の領域に格納しているディスク
アレイの構成情報をリードし、ホスト計算機1にディス
クアレイ構成情報を転送する。
【0066】次に、ステップ1011において、コント
ローラ検出部1035は、このディスクアレイ構成情報
に基づき、上位ディスクアレイ制御ドライバ103の初
期設定を実施する。
【0067】また、もし、ステップ1006において、
コントローラ検出部1035が、何れのホストI/Fに
もディスクアレイコントローラ3が検出できなかったと
きは、ステップ1007において、上位ディスクアレイ
制御ドライバはアンロードされる。
【0068】(3)ディスクアレイの動作 次に、図1に示すように、ホストI/FとしてPCI
I/F32を選択した時のディスクアレイの動作につい
て説明する。
【0069】(a)リード動作 次に、図6を用いて、本発明の一実施形態による内蔵型
ハイブリッドアレイ構成のディスクアレイ制御システム
におけるディスクアレイのリード動作について説明す
る。図6は、本発明の一実施形態によるディスクアレイ
制御システムにおけるディスクアレイのリード処理の説
明図である。
【0070】アプリケーション100からディスクアレ
イ装置2へのリード要求が発行されたものとする。リー
ドデータAは、主記憶メモリ11の領域111にリード
される。リードデータAは、ディスクアレイ装置2のス
トライプサイズより大きく、図6に示すように、ディス
ク21aのストライプsaに格納されたデータブロック
aと、ディスク21bのストライプsbに格納されたデ
ータブロックbと、ディスク21cのストライプscの
一部に格納されたデータブロックcとによって構成され
ているものとする。
【0071】次に、図7〜図15を用いて、ディスクア
レイのリード動作について順次説明する。
【0072】(i) コマンドリンクの発行 アプリケーション100が、リードデータAのリード要
求を発行する。ファイルシステム102は、このリード
要求を受信し、ディスクアレイ21への論理リードコマ
ンドを上位ディスクアレイ制御ドライバ103に発行す
る。
【0073】次に、図7を用いて、本発明の一実施形態
によるディスクアレイ制御システムにおける上位ディス
クアレイ制御ドライバ103のコマンドリンクの発行方
法について説明する。図7は、本発明の一実施形態によ
るディスクアレイ制御システムにおける上位ディスクア
レイ制御ドライバのコマンドリンクの発行方法について
説明するフローチャートである。
【0074】図7のステップ1100において、上位デ
ィスクアレイ制御ドライバ103の論理コマンドアドレ
ス変換部1031は、論理リードコマンドを受信する。
ステップ1101において、論理コマンドアドレス変換
部1031は、受信した論理リードコマンドの論理アド
レスを、ディスクアレイを構成する少なくとも1台以上
の個々のディスクのアドレスに変換する。この時点で、
図6に示すように、リードデータAがディスク21a,
21b,21cのストライプsa,sb,scに格納す
るデータブロックa,b,cにより構成されていること
がわかる。
【0075】次に、ステップ1102において、キャッ
シュ管理部1032は、データブロックa,b,c毎
に、ディスクアレイコントローラ3のキャッシュメモリ
36のヒットミス判定を実施する。図6に示す例におい
ては、データbはヒット、データa,cはミスヒットで
あったとする。ステップ1103において、ヒット,ミ
スヒットの判定を行い、ヒット時には、ステップ110
4において、キャッシュ管理部1032は、キャッシュ
メモリ36から主記憶メモリ11にデータを転送するた
めのディスクアレイコントローラへのコマンドである
「キャッシュリードコマンド」を生成する。以下、ディ
スクアレイコントローラへのコマンドを「コントローラ
コマンド」と称する。なお、図7のステップ1104に
記載した「キャッシュライトコマンド」は、ライト動
作時のコマンドであり、これについては、ライト動作の
説明において後述する。
【0076】ミスヒット時には、ステップ1105にお
いて、キャッシュ管理部1032は、キャッシュメモリ
36にデータをロードする領域を割り当てる。そして、
ステップ1106において、キャッシュ管理部1032
は、ディスク21からキャッシュメモリ36にロード
後、主記憶メモリ11にデータを転送するための「キャ
ッシュロード&リードコマンド」を生成する。なお、図
7のステップ1106に記載した「キャッシュロード
&ライトコマンド」及び「キャッシュライトコマン
ド」は、ライト動作時のコマンドであり、これについて
は、ライト動作の説明において後述する。
【0077】ステップ1107において、キャッシュ管
理部1032は、生成したコントローラコマンドについ
て、同一論理コマンド毎にコマンドリンクを生成し、主
記憶メモリの特定の領域に格納する。ステップ1108
において、キャッシュ管理部1032は、ステップ11
02〜1107の処理を、論理コマンドの扱うリードデ
ータを構成する全てのデータブロックについて実施す
る。
【0078】図6に示す例では、データブロックa,c
に対応するキャッシュロード&リードコマンドと、デー
タブロックbに対応するキャッシュリードコマンドの3
つのコマンドがリンクされ、主記憶メモリ11に格納さ
れる。
【0079】以下、このコントローラコマンドをリンク
したコマンド群を「コマンドリンク」と称する。この例
の場合、データブロックcは、ストライプcの一部デー
タのみをリードするので、キャッシュロード&リードコ
マンドには、ディスク21c上のストライプcの先頭ア
ドレスと、データブロックcの先頭アドレスの両者を格
納している。
【0080】次に、ステップ1109において、コマン
ドI/F制御部103は、PCII/Fドライバ104
に指示し、コマンドリンクをディスクアレイコントロー
ラ3に発行する。
【0081】ここで、図8を用いて、ホスト計算機1と
ディスクアレイコントローラ3の間のコマンドリンクの
発行の方法について説明する。図8は、本発明の一実施
形態によるディスクアレイ制御システムにおけるホスト
計算機とディスクアレイコントローラの間のコマンドリ
ンクの発行方法の説明図である。
【0082】ディスクアレイコントローラ3のPCI
I/Fコントローラ321は、図8に示すように、DM
Aコントローラ3211と、MailBoxレジスタ3
212とDoorBellレジスタ3213の2つのレ
ジスタを備えている。CPU10のPCI I/Fドラ
イバ104は、主記憶メモリ11上のコマンドリンク1
11のアドレスとその識別番号を含む「コマンドリンク
発行パケット」を、MailBoxレジスタ3212に
ライトする(図8(イ))。すると、PCII/Fコン
トローラ321は、MPU30に割り込みを発行する
(図8(ロ))。
【0083】次に、図9を用いて、PCI I/Fコン
トローラ321から割り込みを受信したMPU30の処
理について説明する。図9は、本発明の一実施形態によ
るディスクアレイ制御システムにおけるMPUのコマン
ドリンクの割り込み処理について説明するフローチャー
トである。
【0084】図9のステップ1200において、MPU
30は割り込みを受信する。
【0085】次に、ステップ1201において、MPU
30のPCI I/F制御部301は、MailBox
レジスタ3212をリードし、「コマンドリンク発行パ
ケット」が送信されたことを認識し、DoorBell
レジスタ3213の「パケット受領ビット」をセットす
る。ステップ1202において、PCI I/F制御部
301は、コマンドリンクをホスト計算機1の主記憶メ
モリ11からディスクアレイコントローラ3のメモリ4
2に転送するための「DMAコマンド」を生成する。さ
らに、ステップ1203において、PCI I/F制御
部301は、PCI I/F制御部301が備えている
DMA制御部のDMAコマンドキューにキィーイングす
る。ここで、図7のステップ1110に戻り、ホスト計
算機1のPCI I/Fドライバ104は、DoorB
ellレジスタ3213の「パケット受領ビット」がセ
ットされたことを確認する。
【0086】以上の処理によって、コマンドリンクの発
行処理を終了する。以降、コマンドリンクがすべて実行
終了し、終了割り込みを受信するまで、CPU10はそ
の他の処理を実行することができる。
【0087】次に、図10〜図14を用いて、ディスク
アレイコントローラ3の内部処理について説明する。
【0088】(ii)コマンドリンクの受信 次に、図6及び図10を用いて、DMAコマンドキュー
にコマンドがキューイングされた時の、ディスクアレイ
コントローラ3のMPU30のPCI I/F制御部3
01の中のDMA制御部の処理について説明する。図1
0は、本発明の一実施形態によるディスクアレイ制御シ
ステムにおけるMPUのPCI I/F制御部の中のD
MA制御部の処理について説明するフローチャートであ
る。
【0089】ステップ1210において、PCI I/
F制御部301の中のDMA制御部は、DMAコマンド
キューの先頭のDMAコマンドを取り出す。次に、ステ
ップ1211において、PCI I/F制御部301の
中のDMA制御部は、PCI I/Fコントローラ32
1のDMAコントローラ3211にDMAコマンドを発
行し、DMAを起動する(図8(ハ))。DMAが起動
すると、コマンドリンク111が、ホスト計算機1の主
記憶メモリ11からディスクコントローラ3のメモリ4
2にDMA転送される(図8(ニ))。PCI I/F
制御部301の中のDMA制御部は、DMA転送が終了
するまでの間スリープし、MPU30は他の処理を実行
する事ができる。
【0090】次に、DMA転送が終了すると、PCI
I/Fコントローラ321のDMAコントローラ321
1は、割り込みを発行し(図8(ホ))、ステップ12
12において、この割り込みをMPU30は受信し、P
CI I/F制御部301の中のDMA制御部は動作を
再開する。次に、ステップ1213の中のステップ12
13aにおいて、PCI I/F制御部301の中のD
MA制御部は、下位ディスクアレイ制御部303のコマ
ンドI/F制御部3031のホストコマンドキューに、
受信したコマンドリンクをキューイングし、DMAコマ
ンドキューから終了したDMAコマンドを削除する。な
お、ステップ1213bは、データ転送時の処理であ
り、これについては、後述する。
【0091】ステップ1214において、PCI I/
F制御部301の中のDMA制御部は、DMAコマンド
キューにまだコマンドがあるか否かを判断し、DMAコ
マンドキューにまだコマンドがあるならば、ステップ1
210に戻り、ステップ1210〜1213を繰り返す
ものである。
【0092】(iii)コントローラコマンド(コマン
ドリンク)の起動処理 次に、図11及び図12を用いて、コマンドI/F制御
部3031のホストコマンドキューにコマンドリンクが
キューイングされた時の、下位ディスクアレイ制御部3
03における処理について説明する。図11及び図12
は、本発明の一実施形態によるディスクアレイ制御シス
テムにおけるMPUの下位ディスクアレイ制御部の処理
について説明するフローチャートである。なお、図11
におけるX,Y,Zは、それぞれ、図12のX,Y,Z
に連結される。
【0093】ステップ1220において、コマンドI/
F制御部3031のホストコマンドキューにコマンドリ
ンクがキューイングされると、下位ディスクアレイ制御
部303のコマンド管理部3036は、ホストコマンド
キューからコマンドリンクを一つ取り出す。
【0094】次に、ステップ1221において、下位デ
ィスクアレイ制御部303のコマンド管理部3036
は、そのコマンドリンクに登録されたコントローラコマ
ンドを一つ取り出し、ステップ1221において、その
コントローラコマンドを解析する。解析されたコントロ
ーラコマンドの種類によって、ステップ1227の「キ
ャッシュリードコマンド」と、ステップ1223の「キ
ャッシュロード&リードコマンド」と、ステップ123
4の「キャッシュライトコマンド」と、ステップ123
0の「キャッシュロード&ライトコマンド」と、ステッ
プ1236の「キャッシュロード&デステージコマン
ド」と、ステップ1242の「パリティ生成&デステー
ジコマンド」と、ステップ1246の「キャッシュデス
テージコマンド」との各処理に分かれる。これらの各処
理の詳細については、後述する。
【0095】ステップ1249において、コマンド管理
部3036は、全コントローラコマンドの処理が終了し
たか否かを判断し、全コントローラコマンドの処理が終
了するまで、各コントローラコマンド毎の処理が終了す
ると、次のコントローラコマンドを取り出し、以下コマ
ンドリンクに登録されたすべてのコントローラコマンド
の起動処理を行う。
【0096】全コントローラコマンドの処理が終了する
と、ステップ1250において、コマンド管理部303
6は、ホストコマンドキューから次のコマンドリンクを
取り出し、上記の起動処理を繰り返し、すべてのキュー
イングされたコマンドリンクの起動が終了するとコマン
ド管理部3036は処理を終了する。
【0097】ここで、図6に示した例では、コントロー
ラコマンドとして、データブロックa,cに対する「キ
ャッシュロード&リードコマンド」と、データブロック
bに対する「キャッシュリードコマンド」が使用され
る。データブロックa,b,cの順にコントローラコマ
ンドの起動処理が行われる。以下、この2つのコマンド
について、コマンド管理部3036の動作を図11を用
いて説明する。
【0098】図11のステップ1223において、コマ
ンド管理部3036が、「キャッシュロード&リードコ
マンド」と判断すると、ステップ1224に進む。ステ
ップ1224において、コマンド管理部3036は、当
該ストライプの上位ディスクアレイ制御ドライバ103
の指定したキャッシュメモリ36のアドレスに、ディス
ク21からデータをロードするためのディスクリードコ
マンドを生成する。なお、本実施形態では、必ずキャッ
シュへのロードは、ストライプ単位であるとする。よっ
て、データブロックcは、アプリケーションからのリー
ド要求はストライプの一部ではあるが、上位ディスクア
レイ制御ドライバの指示に基づき、ディスク21cから
キャッシュメモリ36へのロードは、ストライプsc全
部をロードすることになる。
【0099】ステップ1225において、コマンド管理
部3036は、生成したディスクコマンドを、ディスク
コマンド制御部3032のディスクコマンドキューにキ
ューイングする。さらに、ステップ1226において、
コマンド管理部3036は、このコントローラコマンド
を「コマンドペンディング状態」に設定し、このコント
ローラコマンドの処理は一旦中断し、コントローラコマ
ンドの終了を待つものである。次に、コマンド管理部3
036は、図12のステップ1249に進み、次のコン
トローラコマンドの処理を続行する。
【0100】ここで、「コマンドペンディング状態」と
は、「キャッシュロード&リードコマンド」のように、
(1)第1フェーズ:ディスクからキャッシュメモリへ
のデータのロードと、(2)第2フェーズ:キャッシュ
メモリから主記憶メモリへのデータのリードの2つの処
理を逐次的に行う必要がある場合、第1フェーズを起動
後、一旦、このコントローラコマンドを「コマンドペン
ディング状態」に設定し、第1フェーズが終了後、第2
フェーズの処理を継続するよう制御するためのものであ
る。「コマンドペンディング状態」のコントローラコマ
ンドの第1フェーズが終了した後に、図11及び図12
に点線で示すコントローラコマンド種の処理を、第2フ
ェーズとして実行する。同図の他のコントローラコマン
ド処理の点線はすべて第1フェーズ終了後の第2フェー
ズ、若しくは、第2フェーズ終了後の第3フェーズを示
している。
【0101】「キャッシュロード&リードコマンド」の
例においては、ディスクコマンド終了後は、図11の点
線に従い、以下に説明する「キャッシュリードコマン
ド」の処理を実施する。
【0102】図11のステップ1227において、コマ
ンド管理部3036が、「キャッシュリードコマンド」
と判断すると、ステップ1228に進む。ステップ12
28において、コマンド管理部3036は、キャッシュ
メモリ36のデータを主記憶メモリ11にDMA転送す
るためのキャッシュリードDMAコマンドを生成する。
そして、ステップ1229において、コマンド管理部3
036は、キャッシュリードDMAコマンドをDMAコ
マンドキューにキューイングし、キャッシュリードコマ
ンドの終了を待つものである。
【0103】なお、ステップ1234の「キャッシュラ
イトコマンド」と、ステップ1230の「キャッシュロ
ード&ライトコマンド」と、ステップ1236の「キャ
ッシュロード&デステージコマンド」と、ステップ12
42の「パリティ生成&デステージコマンド」と、ステ
ップ1246の「キャッシュデステージコマンド」との
各処理の詳細については、ライト処理において後述す
る。
【0104】(iv) ディスクコマンドの処理 次に、図13を用いて、ディスクコマンドキューにコマ
ンドがキューイングされた時の、下位ディスクアレイ制
御部303のディスクコマンド制御部3032における
処理について説明する。図13は、本発明の一実施形態
によるディスクアレイ制御システムにおけるMPUの下
位ディスクアレイ制御部のディスクコマンド制御部の処
理について説明するフローチャートである。
【0105】ステップ1260において、ディスクコマ
ンド制御部3032は、ディスクコマンドキューから一
つのディスクコマンドを取り出す。ステップ1261に
おいて、ディスクコマンド制御部3032は、取りだし
たディスクコマンドをSCSIコントローラ34に発行
して、ディスクコマンドを起動する。ステップ1262
において、ディスクコマンド制御部3032は、まだデ
ィスクコマンドキューにディスクコマンドがあるか否か
を判断し、ディスクコマンドキューにディスクコマンド
が残っており、未動作のディスクがあったり、1台のデ
ィスクが複数のコマンドを受信できるときには、ディス
クコマンドの起動を繰り返す。ディスクコマンドが全て
無くなる、若しくはそれ以上の起動ができない時には、
ディスクコマンド制御部3032は、処理を停止し、ス
リープする。この間、MPU30は、他の処理を実行で
きる。
【0106】SCSIコントローラ34は、内部にDM
Aコントローラを備えており、DMAコントローラが、
キャッシュメモリ36とSCSIコントローラ34間の
データ転送を実行する。
【0107】データ転送が終了すると、SCSIコント
ローラ34は終了割り込みをMPU30に発行する。ス
テップ1263において、MPU30は、終了割込みを
受信し、ディスクコマンド制御部3032は、処理を再
開する。
【0108】ステップ1264において、ディスクコマ
ンド制御部3032は、終了報告をコマンド管理部30
36に対し行う。ステップ1265において、ディスク
コマンド制御部3032は、終了したディスクコマンド
をディスクコマンドキューから削除する。
【0109】ステップ1266において、ディスクコマ
ンド制御部3032は、ディスクコマンドキューに未起
動のコマンドがあるか否かを判断し、ディスクコマンド
キューに未起動のコマンドがある場合には、上記の起動
処理を実行し、もしなければ処理を終了する。
【0110】(v) DMAコマンドの処理 キャッシュメモリ36と主記憶メモリ11間のデータの
DMA転送は、上述した(i)コマンドリンクの受信と
同様、PCI I/Fコントローラ321のDMAコン
トローラ3211で実行する。
【0111】処理の手順は、上述した(i)コマンドリ
ンクの受信とほぼ同様であるが、相違点は、図10のス
テップ1213aの代わりに、ステップ1213bにお
いて、データ転送終了時には、コマンド管理部3036
に終了報告を行うことと、転送の対象がメモリ42では
なくキャッシュメモリ36であることと、転送の方向が
双方向であることだけである。
【0112】(vi)コントローラコマンド(コマンド
リンク)の終了処理 次に、図14を用いて、上述した(iv)ディスクコマ
ンドの終了報告,(v)DMAコマンドの終了報告,お
よび下記するパリティ生成コマンドの終了報告を受信し
た時の、下位ディスクアレイ制御部303のディスクコ
マンド制御部3032における処理について説明する。
図14は、本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
のディスクコマンド制御部の終了報告受信時の処理につ
いて説明するフローチャートである。
【0113】ステップ1251において、ディスクコマ
ンド制御部3032は、コマンド終了報告を受信する。
次に、ステップ1252において、ディスクコマンド制
御部3032は、そのコマンドに該当するコントローラ
コマンドが「コマンドペンディング状態」であるが否か
を判断し、そのコマンドに該当するコントローラコマン
ドが「コマンドペンディング状態」であるならば、ステ
ップ1253に進み、そうでないならば、ステップ12
55に進む。
【0114】ステップ1253において、ディスクコマ
ンド制御部3032は、もし、そのフェーズが最終フェ
ーズであるならば、起動に先立ち、コマンドのペンディ
ングフラグを変更して、「コマンドペンディング状態」
を解除する。即ち、「キャッシュロード&リードコマン
ド」の処理において、図11のステップ1226による
コマンドペンディング状態であるとすると、次の「キャ
ッシュリードコマンド」は、第2フェーズであり、最終
フェーズであるため、「コマンドペンディング状態」を
解除する。しかしながら、第2フェーズに続いて第3フ
ェーズがある場合には、「コマンドペンディング状態」
の解除は行わない。
【0115】次に、ステップ1254において、ディス
クコマンド制御部3032は、引き続き、コントローラ
コマンドの第2フェーズ,若しくは第3フェーズを起動
する。即ち、図11の(A)からステップ1222に戻
り、ステップ1249の前の(B)までの処理を行う。
例えば、「キャッシュロード&リードコマンド」の処理
において、図11のステップ1226によるコマンドペ
ンディング状態であるとすると、ステップ1227の
「キャッシュリードコマンド」を起動する。
【0116】コントローラコマンドが「コマンドペンデ
ィング状態」でないときには、ステップ1255におい
て、ディスクコマンド制御部3032は、そのコントロ
ーラコマンドの終了でコマンドリンクに登録されたコン
トローラコマンドがすべて終了したが否かを判断する。
【0117】そのコントローラコマンドの終了でコマン
ドリンクに登録されたコントローラコマンドがすべて終
了したならば、ステップ1256において、ディスクコ
マンド制御部3032は、コマンドI/F制御部303
1に通知し、ホストコマンドキューから当該コマンドリ
ンクを削除する。
【0118】次に、ステップ1257において、PCI
I/F制御部301は、PCII/Fコントローラ3
21内部のDoorBellレジスタ3213に終了ス
テータスとコマンドリンクの識別番号をライトする(図
8(ヘ))。この動作により、PCI I/Fコントロ
ーラ32は、CPU10に割り込みを発行する(図8
(ト))。
【0119】次に、図15を用いて、終了報告を受信し
た時の、ホスト計算機1のPCII/Fドライバ104
における処理について説明する。図15は、本発明の一
実施形態によるディスクアレイ制御システムにおけるホ
スト計算機のPCI I/Fドライバにおける終了報告
処理について説明するフローチャートである。
【0120】ステップ1111において、ホスト計算機
1のPCI I/Fドライバ104は、PCI I/F
コントローラ32からCPU10への割り込みを受信す
る。ステップ1112において、PCI I/Fドライ
バ104は、DoorBellレジスタ3213をリー
ドし、ステップ1113において、コマンドリンクの識
別番号を獲得し、ステップ1114において、終了ステ
ータスを確認する。次に、ステップ1115において、
PCI I/Fドライバ104は、コマンドリンク識別
番号と終了ステータスを、上位ディスクアレイ制御ドラ
イバ103の論理コマンドアドレス変換部1031にコ
マンドI/F1034経由で報告する。論理コマンドア
ドレス変換部1031は、コマンドリンクの終了処理を
行い、ディスクアレイのリードコマンドの終了報告をフ
ァイルシステム102に報告する。
【0121】さらに、OS101は、アプリケーション
100にディスクアレイのリードコマンドの終了を報告
し、コントローラコマンドの全処理が終了する。
【0122】(b)ライト動作 次に、図16を用いて、本発明の一実施形態による内蔵
型ハイブリッドアレイ構成のディスクアレイ制御システ
ムにおけるディスクアレイのライト動作について説明す
る。図16は、本発明の一実施形態によるディスクアレ
イ制御システムにおけるディスクアレイのライト処理の
説明図である。
【0123】ここで、アプリケーション100からディ
スクアレイ装置2へのライト要求が発行されたとする。
主記憶メモリ11の領域111のライトデータBをライ
トする。ライトデータBは、ディスクアレイ装置2のス
トライプサイズより大きく、図16のように、ディスク
アレイ21a,21b,21cの異なる3つのストライ
プsa,sb,scにまたがるデータブロックa,b,
cにより構成されるとする。
【0124】本実施形態では、ディスクアレイへのデー
タのライトは、ディスクアレイコントローラ3のキャッ
シュメモリ36にデータをライトすることで処理を終了
するものとする。また、キャッシュメモリ36からディ
スクへの書き戻しは、非同期的に実施し、これを「デス
テージ動作」と称し、後述する。
【0125】ライト動作の処理フローは、上述した
「(a)リード動作」とほとんど同一であるので、相違
点についてのみ説明する。
【0126】(i) コマンドリンクの発行 アプリケーション100がライトデータBのライト要求
を発行する。ファイルシステム102は、このライト要
求を受信し、ディスクアレイ21への論理ライトコマン
ドを上位ディスクアレイ制御ドライバ103に発行す
る。
【0127】次に、図7に示す処理フローに従って、上
位ディスクアレイ制御ドライバ103は、コマンドリン
クを発行する。
【0128】図7のステップ1100において、上位デ
ィスクアレイ制御ドライバ103の論理コマンドアドレ
ス変換部1031は、論理ライトコマンドを受信する。
【0129】ステップ1101において、論理コマンド
アドレス変換部1031は、受信した論理ライトコマン
ドの論理アドレスを、ディスクアレイを構成する少なく
とも1台以上の個々のディスクのアドレスに変換する。
上位ディスクアレイ制御ドライバ103の論理コマンド
アドレス変換部1031は、図16に示すように、ライ
トデータBがディスク21a,21b,21cのストラ
イプa,b,cに格納するデータブロックa,b,cに
より構成されていることを認識する。
【0130】次に、ステップ1102において、キャッ
シュ管理部1032は、データブロックa,b,c毎
に、ディスクアレイコントローラ3のキャッシュメモリ
36のヒットミス判定を実施する。図16に示す例にお
いては、データbはヒット、データa,cはミスヒット
であったとする。
【0131】ステップ1103において、ヒット,ミス
ヒットの判定を行い、ヒット時には、ステップ1104
において、キャッシュの割当は不要であるため、キャッ
シュ管理部1032は、「キャッシュライトコマンド」
を生成する。
【0132】ミスヒット時には、ステップ1105にお
いて、キャッシュ管理部1032は、キャッシュメモリ
36にデータをライトする領域を割り当てる。そして、
ステップ1106において、キャッシュ管理部1032
は、ストライプの一部にデータをライトするデータブロ
ックcのような場合には、一旦ディスク装置21から当
該ストライプを全部キャッシュメモリ36にロードした
後、一部データをキャッシュメモリ36上で更新する処
理を行う。この処理を行うため、キャッシュ管理部10
32は、「キャッシュロード&ライトコマンド」を生成
する(1106)。データブロックaのようにストライ
プ全体をライトする場合は、「キャッシュライトコマン
ド」を生成する。
【0133】なお、キャッシュメモリ36へのデータブ
ロックのライトによりキャッシュメモリ36とディスク
のデータの不整合が発生する。これを識別するため、当
該ストライプのキャッシュには「Dirty」の識別子
を設定する。なお、後のデステージ処理において、キャ
ッシュメモリ36とディスク21のデータが一致した際
には、この識別子を「Clean」に設定する。
【0134】ステップ1107において、キャッシュ管
理部1032は、生成したコントローラコマンドについ
て、同一論理コマンド毎にコマンドリンクを生成し、主
記憶メモリの特定の領域に格納する。
【0135】ステップ1108において、キャッシュ管
理部1032は、ステップ1102〜1107の処理
を、論理コマンドの扱うライトデータを構成する全ての
データブロックについて実施する。
【0136】図16に示す例では、データブロックaに
対応するキャッシュライトコマンドと、データブロック
bに対応するキャッシュライトコマンドと、データブロ
ックcに対応するキャッシュロード&ライトコマンド
と、の3つのコマンドがリンクされ、キャッシュメモリ
36に格納される。
【0137】この例の場合、データブロックcは、スト
ライプcの一部データのみをライトするので、キャッシ
ュロード&ライトコマンドには、ディスク21c上のス
トライプcの先頭アドレスと、データブロックcの先頭
アドレスの両者を格納している。
【0138】次に、ステップ1109において、コマン
ドI/F制御部103は、PCII/Fドライバ104
に指示し、コマンドリンクをディスクアレイコントロー
ラ3に発行する。
【0139】以下、「コマンドリンク発行パケット」の
ディスクアレイコントローラへの送信は、上述した
「(a)リード動作」の「(i)コマンドリンク発行パ
ケット」と同様である。
【0140】(ii)コマンドリンクの受信 「(a)リード動作」の「(ii)コマンドリンクの受
信」と同様である。
【0141】(iii)コントローラコマンド(コマン
ドリンク)の起動処理 次に、図11及び図12を用いて、コマンドI/F制御
部3031のホストコマンドキューにコマンドリンクが
キューイングされた時の、下位ディスクアレイ制御部3
03における処理について説明する。
【0142】「(a)リード動作」と同様に、コマンド
管理部3036は、ステップ1220において、ホスト
コマンドキューからコマンドリンクを一つ取り出し、ス
テップ1221において、そのコマンドリンクに登録さ
れたコントローラコマンドを一つ取り出し、ステップ1
221において、コントローラコマンドを解析する。
【0143】図16の例では、コントローラコマンドと
して、データブロックcに対する「キャッシュロード&
ライトコマンド」と、データブロックa,bに対する
「キャッシュライトコマンド」が使用される。データブ
ロックa,b,cの順にコントローラコマンドの起動処
理を行う。以下、この2つのコマンドについてコマンド
管理部の動作を図11及び図12を用いて説明する。
【0144】図11のステップ1230において、コマ
ンド管理部3036が、「キャッシュロード&ライトコ
マンド」と判断すると、ステップ1231に進む。
【0145】ステップ1231において、コマンド管理
部3036は、第1フェーズの処理として、当該ストラ
イプの全データを上位ディスクアレイ制御ドライバの指
定したキャッシュメモリ36のアドレスにディスク21
からデータをロードするためのディスクロードコマンド
を生成するなお、本実施形態では、必ずキャッシュへの
ロードは、ストライプ単位であるとする。よって、デー
タブロックcは、アプリケーションからのリード要求は
ストライプの一部ではあるが、上位ディスクアレイ制御
ドライバの指示に基づき、ディスク21cからキャッシ
ュメモリ36へのロードは、ストライプsc全部をロー
ドすることになる。
【0146】ステップ1232において、コマンド管理
部3036は生成したディスクコマンドをディスクコマ
ンド制御部3032のディスクコマンドキューにキュー
イングする。
【0147】さらに、ステップ1233において、コマ
ンド管理部3036は、このコントローラコマンドを
「コマンドペンディング状態」に設定し、このコントロ
ーラコマンドの処理は一旦中断し、コントローラコマン
ドの終了を待つものである。次に、コマンド管理部30
36は、図12のステップ1249に進み、次のコント
ローラコマンドの処理を続行する。ディスクロードコマ
ンド終了後は、同図の点線に従い、以下に示すキャッシ
ュライトコマンドの処理を実施する。
【0148】図11のステップ1234において、コマ
ンド管理部3036が、「キャッシュライトコマンド」
と判断すると、ステップ1235に進む。
【0149】ステップ1235において、コマンド管理
部3036は、ディスクからデータをキャッシュメモリ
36にロードする必要なく、主記憶メモリ11のデータ
キャッシュメモリ36にDMA転送するためのキャッシ
ュライトDMAコマンドを生成する。
【0150】そして、ステップ1236において、コマ
ンド管理部3036は、キャッシュライトDMAコマン
ドをDMAコマンドキューにキューイングし、キャッシ
ュライトコマンドの終了を待つものである。
【0151】(iv)ディスクコマンドの処理 「(a)リード動作」の「(iv)ディスクコマンドの
処理」と同様である。
【0152】(v)DMAコマンドの処理 「(a)リード動作」の「(v)DMAコマンドの処
理」と同様である。
【0153】(vi)コントローラコマンド(コマンド
リンク)の終了処理 「(a)リード動作」の「(vi)コントローラコマン
ド(コマンドリンク)の終了処理」と同様である。「コ
マンドペンディング状態」のコントローラコマンドは、
第2フェーズの処理を実施し、コマンドリンクに登録さ
れた全てのコントローラコマンドの処理を実行し終わ
り、アプリケーションに「(a)リード動作」と同様に
終了報告がなされれば、この論理ライトコマンドの処理
はすべて終了する。
【0154】(c)デステージ動作 本実施形態においては、上述したように、データのライ
ト処理は、キャッシュメモリ36に対して実行し、ディ
スクへの書き戻しは、この処理から遅延させて非同期に
実行する。この書き戻し処理を、「デステージ処理」と
称する。
【0155】デステージ処理の起動は、ホスト計算機1
の上位ディスクアレイ制御ドライバ103が行う。キャ
ッシュ管理部1032は、キャッシュの利用状況を考慮
し、例えば、ある一定以上のキャッシュに「Dirt
y」なブロックが格納されたときや、ライトが行われ、
ある一定時間経過したとき等に、キャッシュの「Dir
ty」ブロックのデステージ処理を起動する。
【0156】デステージ処理は、処理効率をあげるた
め、まとめ処理を行う等、様々なアルゴリズムを実装で
きるが、本実施形態では、2つの単純な例で説明する。
それ以上の複雑な実装も、その応用として同様に実現で
きるものである。
【0157】ここで、図17及び図18を用いて、デス
テージ動作について説明する。
【0158】(i)コマンドリンクの発行 ここで、図17を用いて、1つのDirtyブロックC
(新データストライプ)のデステージ処理の動作につい
て説明する。図17は、本発明の一実施形態によるディ
スクアレイ制御システムにおけるディスクアレイの第1
のデステージ処理の説明図である。
【0159】本例においては、1つのDirtyブロッ
クC(新データストライプ)367をデステージする場
合について説明する。
【0160】上位ディスクアレイ制御ドライバ103の
キャッシュ管理部1032は、DirtyブロックCの
デステージを行うことを決定すると、上記同様、コント
ローラコマンドを生成する。
【0161】この例では、新パリティストライプ367
を生成するために必要な旧データストライプ368と旧
パリティストライプ370がキャッシュメモリ36上に
存在しないとすると、(1)これらのストライプ36
8,370をリードし、(2)新データストライプであ
るDirtyブロックC367の3者の排他的論理和
(以下、「XOR」と略記する)を演算することで新パ
リティストライプ369を生成し、(3)Dirtyブ
ロックC367および新パリティストライプ369の両
者をディスク21にライトする、という3フェーズを実
行する必要がある。
【0162】この処理のためのコントローラコマンドと
して、「キャッシュロード&デステージコマンド」を生
成する。「キャッシュロード&デステージコマンド」に
ついては、図12を用いて後述する。「キャッシュロー
ド&デステージコマンド」には、上記(1)から(3)
の処理に必要な、キャッシュメモリのアドレス情報,デ
ィスクのアドレス情報,コントローラコマンドの識別番
号等の必要な情報をすべて格納する。
【0163】また、図18を用いて、ディスクアレイの
同一パリティグループを構成する全てのデータブロック
をまとめてデステージするデステージ処理の動作につい
て説明する。図18は、本発明の一実施形態によるディ
スクアレイ制御システムにおけるディスクアレイの第2
のデステージ処理の説明図である。
【0164】本例においては、ディスクアレイのディス
ク数は5台で、パリティグループを4つのデータと1つ
のパリティで構成する4D+1P構成としている。
【0165】上位ディスクアレイ制御ドライバ103の
キャッシュ管理部1032は、Dirtyブロック(新
データストライプ)D0,D1,D2,D3(371,
372,373,374)のデステージを行うことを決
定すると、新パリティストライプPは、 P=D0+D1+D2+D3 (ただし、+は、XOR
演算を示す。) として生成できるので、(1)パリティストライプPの
生成、(2)全新データおよび新パリティストライプの
デステージ、の2フェーズを実行する必要がある。
【0166】この処理のためのコントローラコマンドと
して、「キャッシュデステージコマンド」を生成する。
「キャッシュデステージコマンド」については、図12
を用いて後述する。「キャッシュデステージコマンド」
には、上記(1)から(2)の処理に必要な、キャッシ
ュメモリのアドレス情報,ディスクのアドレス情報,コ
ントローラコマンドの識別番号等の必要な情報をすべて
格納する。
【0167】以上の処理をすべて、もしくは一部の対象
Dirtyブロックに対し実施し、コマンドリンクを生
成し、コマンド発行パケットを上記同様ディスクアレイ
コントローラ3に送信する。
【0168】(ii)コマンドリンクの受信 「(a)リード動作」の「(ii)コマンドリンクの受
信」と同様である。
【0169】(iii)コントローラコマンド(コマン
ドリンク)の起動処理 図11に示すように、「(a)リード動作」と同様に、
コマンド管理部3036は、ステップ1220におい
て、ホストコマンドキューからコマンドリンクを一つ取
り出し、ステップ1221において、そのコマンドリン
クに登録されたコントローラコマンドを一つ取り出し、
ステップ1222において、コントローラコマンドを解
析する。
【0170】図17の例では、コントローラコマンドと
して、上述したように、「キャッシュロード&デステー
ジコマンド」が使用される。また、図18の例では、コ
ントローラコマンドとして、上述したように、「パリテ
ィ生成&デステージコマンド」が使用される。
【0171】次に、図12を用いて、これらのコントロ
ーラコマンドの処理におけるコマンド管理部3036の
動作について説明する。
【0172】図12のステップ1236において、コマ
ンド管理部3036が、「キャッシュロード&デステー
ジコマンド」と判断すると、ステップ1237に進む。
ステップ1237において、コマンド管理部3036
は、第1フェーズの処理として、旧データストライプ3
68と、旧パリティストライプ370の両者をディスク
21cからキャッシュメモリ36にロードするためのデ
ィスクリードコマンドを生成する。ステップ1238に
おいて、コマンド管理部3036は、生成したディスク
コマンドを、ディスクコマンド制御部3032のディス
クコマンドキューにキューイングする。
【0173】さらに、ステップ1239において、コマ
ンド管理部3036は、このコントローラコマンドを
「コマンドペンディング状態」に設定し、このコントロ
ーラコマンドの処理は一旦中断し、コントローラコマン
ドの終了を待つものである。ディスクコマンド終了後
は、第2フェーズとして、同図の点線に従い、以下に示
す「パリティ生成&デステージコマンド」の処理を実施
する。
【0174】図12のステップ1242において、コマ
ンド管理部3036が、「パリティ生成&デステージコ
マンド」と判断すると、ステップ1243に進む。
【0175】ステップ1243において、コマンド管理
部3036は、第1フェーズの処理として(キャッシュ
ロード&デステージコマンドから引き継いだときは、第
2フェーズの処理として)、新パリティストライプの生
成のために必要なデータストライプのXOR演算を実行
するための「パリティ生成コマンド」を生成する。図1
7に示した第1の例では、新データストライプ367
と、旧データストライプ368と、旧パリティ370と
をXOR演算して、新パリティ369を生成するための
「パリティ生成コマンド」を生成する。また、図18に
示した例では、新データストライプD0,D1,D2,
D3(371,372,373,374)のXOR演算
を実行して、新パリティ375を生成するための「パリ
ティ生成コマンド」を生成する。
【0176】ステップ1244において、コマンド管理
部3036は、生成したパリティ生成コマンドをパリテ
ィ生成コマンド制御部3033のパリティ生成コマンド
キュー30331にキューイングする。
【0177】さらに、ステップ1245において、コマ
ンド管理部3036は、このコントローラコマンドを
「コマンドペンディング状態」に設定し、このコントロ
ーラコマンドの処理は一旦中断し、コントローラコマン
ドの終了を待つものである。ディスクコマンド終了後
は、第2フェーズとして、同図の点線に従い、以下に示
す「キャッシュデステージコマンド」の処理を実施す
る。
【0178】「キャッシュデステージコマンド」は、ホ
スト計算機1の上位ディスクアレイ制御ドライバ103
からは発行されないコントローラコマンドである。キャ
ッシュデステージコマンドは、キャッシュロード&デス
テージコマンド、及びパリティ生成&デステージコマン
ドから引き継いで、第2,若しくは第3フェーズの処理
として実行され、コントローラコマンドに登録されたD
irtyな新データストライプもしくは生成した新パリ
ティストライプのディスクへのライトを行うものであ
る。
【0179】図12のステップ1246において、コマ
ンド管理部3036が、「キャッシュデステージコマン
ド」と判断すると、ステップ1247に進む。
【0180】ステップ1247において、コマンド管理
部3036は、ディスクライトコマンドを生成する。図
17の例では、新データストライプC367および新パ
リティストライプ369をデステージするため、これら
全てのディスクライトコマンドを生成する。また、図1
8に示す例では、新データストライプD0,D1,D
2,D3(371,372,373,374)および新
パリティストライプP375をデステージするため、こ
れら全てのディスクライトコマンドを生成する。
【0181】ステップ1248において、コマンド管理
部3036は、これらのディスクライトコマンドをディ
スクコマンドキューにキューイングし、全ディスクライ
トコマンドの終了を待つものである。
【0182】(iv)ディスクコマンドの処理 「(a)リード動作」の「(iv)ディスクコマンド」
と同様である。
【0183】(v) パリティ生成コマンドの処理 次に、図19を用いて、パリティ生成コマンドキュー3
0331にコマンドがキューイングされた時の、下位デ
ィスクアレイ制御部303のパリティ生成コマンド制御
部3033における処理について説明する。図19は、
本発明の一実施形態によるディスクアレイ制御システム
におけるMPUの下位ディスクアレイ制御部のパリティ
生成コマンド制御部の処理について説明するフローチャ
ートである。
【0184】ステップ1270において、パリティ生成
コマンド制御部3033は、パリティ生成コマンドキュ
ー30331から一つのコマンドを取り出す。ステップ
1271において、パリティ生成コマンド制御部303
3は、パリティ生成コマンドを起動する。パリティ生成
コマンド制御部3033は、処理を停止し、スリープす
る。この間、MPU30は他の処理を実行できる。パリ
ティ生成回路35は、キャッシュメモリ36からXOR
演算対象データをリードし、演算結果を新パリティとし
てキャッシュメモリ36にライトする。
【0185】パリティ演算が終了すると、パリティ生成
回路35は終了割り込みをMPU30に発行する。ステ
ップ1272において、MPU30は、終了割り込みを
受信する。そして、パリティ生成コマンド制御部303
3が処理を再開する。ステップ1273において、パリ
ティ生成コマンド制御部3033は、終了報告をコマン
ド管理部3036に対し行う。ステップ1274におい
て、パリティ生成コマンド制御部3033は、この終了
したパリティ生成コマンドを、パリティ生成コマンドキ
ュー30331から削除する。
【0186】ステップ1274において、パリティ生成
コマンド制御部3033は、パリティ生成コマンドキュ
ー30331に未起動のコマンドがあるか否かを判断
し、パリティ生成コマンドキュー30331に未起動の
コマンドがある場合には、上記の起動処理を実行し、な
ければ処理を終了する。
【0187】(vi)コントローラコマンド(コマンド
リンク)の終了処理 「(a)リード動作」の「(vi)コントローラコマン
ド(コマンドリンク)の終了処理」と同様である。
【0188】「コマンドペンディング状態」のコントロ
ーラコマンドは、第2,第3フェーズの処理を実施し、
コマンドリンクに登録された全てのコントローラコマン
ドの処理を実行し終わったなら、上記「(a)リード動
作」と同様の方法で、上位ディスクアレイ制御ドライバ
103のキャッシュ管理部1032に終了報告を行い、
キャッシュ管理部1032は、キャッシュメモリ36と
ディスク21のデータが一致したので「Dirty」識
別子を「Clean」に設定する。以上でデステージ処
理は終了する。
【0189】(d)縮退動作 ディスクアレイを構成するディスク21の内の1つのデ
ィスクが故障して、データストライプが失われた場合、
パリティストライプから故障ディスクのデータを再現す
ることができる。この動作を、「縮退動作」と称する。
【0190】図18に示したような4D+1P構成のデ
ィスクアレイの場合、ディスク21a,21b,21
c,21d,21eのうち、例えば、ディスク21aが
故障したとすると、各々に格納されるデータストライプ
D0,D1,D2,D3のうち、データストライプD0
が失われる。しかしながら、データストライプD0は、
パリティストライプPを用い、以下の式に基づき再現で
きる。
【0191】D0=D1+D2+D3+P (但し、+
はXOR演算を表す。) また、ディスクアレイを構成するディスク21の内の1
つのディスクが故障した状態で、新規なデータストライ
プD0newをライトするときは、新パリテイP1を生
成する必要がある。そこで、以下の式に基づき、ディス
ク21b,21c,21dからデータストライプD1,
D2,D3をリードし、新規なデータストライプD0n
ewとのXOR演算の実行により、新パリテイP1を生
成し、新パリテイP1のみをディスク21eにライトす
る。
【0192】P1=D0new+D1+D2+D3
(但し、+はXOR演算を表す。) これらの縮退動作については、図11及び図12に示す
処理フロー中には記載していないが、すべて上述した動
作の組み合わせで実現できる。または、新規にコントロ
ーラコマンドを用意することもできるが、やはり上記動
作の応用として容易に実現できるものである。
【0193】以上の説明したように、ディスクアレイコ
ントローラ3をホスト計算機1に内蔵し、ホストI/F
としてPCI I/F32を用いて、上位ディスクアレ
イ制御ドライバ103と下位ディスクアレイ制御部30
3との間のコマンド転送や、主記憶メモリ11とキャッ
シュメモリ36間のデータ転送を行うことができる。
【0194】このとき、第2ホストI/FであるSCS
Iは用いていないので、SCSIコントローラ331
は、ディスク用のSCSIコントローラとして使用する
ことができる。
【0195】以上説明したように、ディスクアレイ処理
を、ホスト計算機1のCPU10とディスクコントロー
ラ3のMPU30とで分散した「ハイブリッドアレイ」
構成とすることにより、処理負荷の重いディスクアレイ
の処理に、処理能力の高いCPU10で処理負荷の重い
上位ディスクアレイ制御を実行し、処理能力の低いMP
U30で処理負荷の軽い下位ディスクアレイ制御を実施
することができ、従来のディスクアレイコントローラの
MPUが性能ボトルネックになることによる限界性能を
越える高性能化を実現することができるものである。
【0196】本実施形態によれば、ディスクアレイコン
トローラに低価格なMPUを使用したディスクアレイ制
御システムにおいて、MPUの能力で性能が制限される
ことなく高性能なディスクアレイ制御が実現できる。
【0197】次に、図20〜図22を用いて、本発明の
第2の実施形態によるディスクアレイ制御システムにつ
いて説明する。
【0198】[構成の説明]最初に、図20を用いて、
本発明の第2の実施形態による外付け型ハイブリッドア
レイ構成のディスクアレイ制御システムの全体構成につ
いて説明する。図20は、本発明の第2の実施形態によ
るディスクアレイ制御システムのハードウエアの全体構
成のブロック図である。なお、図1と同一符号は、同一
部分を示しており、以下の説明においては、図1との相
違点を中心に説明する。
【0199】ホスト計算機1は、図1に示した構成に加
え、SCSI15を制御するSCSIコントローラ15
1と、SCSI15を接続するSCSIコネクタ152
を備えている。
【0200】ディスクアレイ装置2は、ホスト計算機1
とは独立した別の筐体を備える。この構成を、「外付け
型」と称する。ディスクアレイ装置2は、図1の構成に
加え、電源22と、クロック発生器23と、ホストI/
FとしてSCSIを選択するSCSI選択手段25とを
備えている。また、ディスクアレイ装置2は、筐体内の
温度を監視する温度監視手段281と、ディスクの挿抜
を検出する挿抜検出手段282と、LEDの点灯制御を
行うLED制御手段283と、電源22やFAN200
の故障を検出する故障検出手段284と、温度監視手段
281と挿抜検出手段282とLED制御手段283と
故障検出手段284を制御し、筐体に発生する全ての異
常検出を行う筐体異常検出手段28とを備えている。な
お、ディスクアレイ装置2は、さらに、ハードアレイ選
択手段29を備えているが、これについては、第3の実
施形態において説明する。
【0201】ディスクアレイコントローラ3は、図1の
構成に加え、使用するホストI/Fを選択するホストI
/Fモード選択手段37aと、筐体の異常を監視する筐
体異常監視手段43とを備えている。なお、ディスクア
レイコントローラ3は、ディスクアレイモード選択手段
44を備えているが、これについては、第3の実施形態
において説明する。
【0202】次に、図21を用いて、本発明の第2の実
施形態による外付け型ハイブリッドアレイ構成のディス
クアレイ制御システムの立体的構成について説明する。
図21は、本発明の第2の実施形態によるディスクアレ
イ制御システムのハードウエアのブロック斜視図であ
る。なお、図20と同一符号は、同一部分を示してい
る。
【0203】ディスクアレイ装置2は、さらに、ディス
クアレイコントローラ3を搭載するためのコネクタ24
と、バックボード290と、バックボード290とディ
スクアレイコントローラ3を接続するバックボードI/
Fコネクタ251と、筐体内部の空調を行うFAN20
0と、ディスクや電源やFANの状態を表示するLED
213a,b,c…,223,201を備えている。
【0204】ディスクアレイ装置2のバックボード29
0は、カードエッジ31を接続するコネクタ24を備え
ており、ディスクアレイコントローラ2を接続する。ブ
ラケット27aは、ディスクアレイ装置2の筐体に固定
されている。ブラケット27aは、ホスト計算機1とS
CSIケーブル17に接続されている。筐体には、ブラ
ケット27aの逆側の横辺を固定するための、支え金具
27bが設けられている。
【0205】ディスクアレイコントローラ3は、さら
に、ディスクアレイ装置2のバックボード290と接続
するバックボードI/Fコネクタ373とPCI I/
F32に接続するためのカードエッジ31を備えてい
る。
【0206】[動作の説明] (1)ホストI/Fの選択 図22を用いて、ホストI/Fモード選択手段37aに
よるホストI/Fの選択について説明する。図22は、
本発明の第2の実施形態によるディスクアレイ制御シス
テムのホストI/Fモード選択手段の構成を示す回路図
である。
【0207】ディスクアレイコントローラ3のホストI
/Fモード選択手段37aは、どちらのホストI/Fを
選択しているかを示すIF_Mode信号372をMP
U30に送出する。IF_Mode信号372は、抵抗
で電源にプルアップされている。ホストI/Fモード選
択手段37aは、バックボードI/Fコネクタ373を
備えている。
【0208】ディスクアレイ装置内部のバックボード2
90は、SCSI選択手段25を備えている。SCSI
選択手段25のバックボードI/Fコネクタ251は、
バックボードI/Fコネクタ373と対になるものであ
り、グランド線に接地してされている。
【0209】図21に示したように、ディスクアレイコ
ントローラ3をディスクアレイ装置2のバックボード2
90に実装すると、ホストI/Fモード選択手段37a
のバックボードI/Fコネクタ373と、SCSI選択
手段25のバックボードI/Fコネクタ251は接続す
る。この結果、IF_Mode信号372は、信号レベ
ルが”L”になる。一方、もし、両者が接続していない
ときは、バックボードI/Fコネクタ373がオープン
になり、プルアップ抵抗により、IF_Mode信号3
72は、信号レベルが”H”になる。従って、バックボ
ード290との接続しているかどうかにより、図4に示
したように、IF_Mode信号372が変化すること
になる。
【0210】以上のように、ディスクアレイコントロー
ラ3を、ホスト計算機1から独立したディスクアレイ装
置2に内蔵している「外付け型」のときは、ホストI/
Fとして、SCSI33を選択し、そうでないとき、す
なわち、ホスト計算機1に内蔵している「内蔵型」のと
きは、ホストI/Fとして、PCI I/F32を選択
することができる。
【0211】本実施形態においては、ディスクアレイコ
ントローラ3がディスクアレイ装置2に内蔵され、バッ
クボード290に接続しているものとする。
【0212】ディスクアレイ装置2の電源が投入される
と、IF_Mode信号372が信号レベル”L”でM
PU30に入力し、MPU30で動作する図2に示した
ホストI/Fモード制御部305はこれを認識し、図5
のステップ1009において、ホストI/Fとして、S
CSI33を選択し、初期化部3035は、ディスクア
レイコントローラ3の初期化を実施する。
【0213】(2) ディスクアレイコントローラの実
装 次に、図21を用いて、ディスクコントローラ3のディ
スクアレイ装置2への実装の方法について説明する。
【0214】ディスクアレイコントローラ3は、PCI
I/F32に接続するためのカードエッジ31を備え
ている。ディスクアレイ装置2のバックボード290
は、カードエッジ31を接続するコネクタ24を備えて
おり、ディスクアレイコントローラ2を接続する。ホス
トI/Fとして使用するSCSI33は、ディスクアレ
イコントローラ2の横辺に備えるブラケット27aに固
定したSCSIコネクタ332を用い、ホスト計算機1
とSCSIケーブル17によって接続する。このブラケ
ット27aは、ディスクアレイ装置2の筐体に固定され
ている。また、ディスクアレイ装置2の筐体には、ブラ
ケット27aの逆側の横辺を固定するための支え金具2
7bを設けてある。カードエッジ31用コネクタ24,
ブラケット27a,支え金具27bの3点によって、デ
ィスクアレイコントローラ3は、ディスクアレイ装置2
の筐体に固定されている。
【0215】また、ディスクアレイコントローラ3への
電力や動作用クロックの供給は、バックボード290か
らPCI I/F32のカードエッジ31を介して行わ
れる。
【0216】バックボード290上には、クロック発生
器23を備えている。また、ディスクアレイ装置2に
は、電源22を備えている。クロック発生器23が送出
するクロック信号231と、電源22が送出する電力を
伝達する電源線222は、バックボード290に備えて
あり、コネクタ24からPCI I/F32のカードエ
ッジ仕様にあわせ接続する。
【0217】以上のような構成により、ディスクアレイ
コントローラ3をホスト計算機1に内蔵してPCI I
/F32をホストI/Fとして使用するときと全く同じ
方法で、ディスクアレイコントローラ3に電力とクロッ
ク信号を供給できる。
【0218】(3)筐体異常の検出と制御 ディスクアレイ装置2は、ホスト計算機1とは独立して
いるので、上述したように、ディスクアレイ装置2は、
専用の電源22を備えている。また、装置内部の空調用
のファン200を備えている。また、図21には記載し
ていないが、電源もファンも複数台備えることで耐故障
性を持つことができる。
【0219】これらの各部位の故障の有無を、ディスク
アレイコントローラは監視する必要がある。そこで、デ
ィスクアレイ装置2は、故障検出手段284を備えてお
り、故障検出手段284が、電源22,ファン200の
異常を検出する。
【0220】また、電源22,ファン200は、冗長構
成の場合、オンライン中に交換することができる。そこ
で、どの電源22,ファン200が故障しているかをデ
ィスクアレイ装置2のユーザに視覚的に報告する必要が
あるので、電源22及びファン200は、それぞれ、L
ED223,201を備えている。LED制御手段28
3は、LED223,201の点灯制御を行うものであ
る。
【0221】また、ディスクアレイ装置2は、ディスク
の故障に対しても耐故障性を備えている。ディスクが故
障した際には、縮耐運転を行うことで、ディスクアレイ
の処理を継続可能である。ただし、同一パリティグルー
プを構築するディスクが2台以上同時に故障すると、デ
ータを喪失してしまうので、1台のディスクが故障した
ら速やかにディスクを交換する必要がある。そこで、デ
ィスクアレイ装置2のユーザには、ディスク装置21
a,21b,21c,21dの状態と故障ディスクを視
覚的に報告する必要があるので、ディスク装置21a,
21b,21c,21dは、LED213a,…,21
3eを備えている。上記LED制御手段283は、LE
D213a,…,213eの点灯制御を行う。
【0222】また、故障したディスクが抜き取られた
り、新しいディスクが挿入されたりした際には、この状
態変化をディスクアレイコントローラ3は検出する必要
がある。挿抜検出手段282は、ディスクの挿抜を検出
する。
【0223】また、ディスクアレイ装置2の内部は何ら
かの異常により、温度が上昇し、装置全体に悪影響を及
ぼす恐れがある。そこで、温度監視手段281は、ディ
スクアレイ装置内部の温度を監視する。
【0224】故障検出手段284,LED制御手段28
3,挿抜検出手段282,温度監視手段281は、ディ
スクアレイ装置2に備えた筐体異常検出手段28に接続
される。筐体異常検出手段28は、ディスクアレイコン
トローラ2が備える筐体監視手段43に接続される。筐
体異常検出手段28は、ディスクアレイ装置2の内部で
発生した上記異常を検出し、筐体監視手段43に報告す
る。また、筐体監視手段43は、必要なLEDの点灯指
示を筐体異常検出手段28経由でLED制御手段283
に発行する。
【0225】ディスクアレイコントローラ3上の筐体監
視手段43と、ディスクアレイ装置2の筐体異常検出手
段28の接続には、上記バックボードI/Fコネクタ3
73,251を使用する。これにより、特別なケーブル
無しにディスクアレイコントローラ3が、筐体の異常情
報を検出することができる。
【0226】なお、この筐体異常の検出の方法は、第1
実施形態記載のホストI/FとしてPCI I/F32
を選択した際にも使用することができるものである。
【0227】(4)ディスクアレイ動作 次に、ディスクアレイの動作について説明する。本実施
形態においては、ホストI/FとしてPCI I/F3
2ではなくSCSI33を用いるようにしているので、
ホスト計算機1の上位ディスクアレイ制御ドライバ10
3で生成したコントローラコマンドをディスクアレイコ
ントローラ3の下位ディスクアレイ制御部303に送信
する方法が異なるものである。そこで、コントローラコ
マンドの送信方法について、以下に説明する。
【0228】コントローラコマンドの種類と生成の方法
は、上述した第1の実施形態と同様である。相違する点
は、SCSI33を用いる場合には、SCSIのコマン
ドブロックであるCDB(Command Discr
ipter Block)として実現することである。
また、コマンドリンクは、SCSIの仕様であるリンク
コマンド機能を用いて実現できる。この機能は、CDB
のLinkビットを”1”にセットすることで、連続し
てCDBを送信し、これらのリンクされたコマンドが終
了した時点で終了報告をまとめて受信する。この機能を
用いることで、第1の実施形態と等価なコマンドリンク
を実現できる。
【0229】次に、コマンドリンクの発行の手順を説明
する。図2に示した上位ディスクアレイ制御ドライバ1
03のキャッシュ管理部1032は、コントローラコマ
ンドを生成し、主記憶メモリ11にコマンドリンクを生
成する。コマンドI/F制御部1034は、SCSIド
ライバ105にコマンド発行を指示する。SCSIドラ
イバ105は、SCSIコントローラ15のコマンド起
動ビットをセットする。SCSIコントローラ15は、
インテリジェント型である場合、コマンド起動ビットの
セットにより、コマンドリンクをSCSIコントローラ
15の内部のDMAコントローラでとりこみ、SCSI
バスを駆動して、ディスクアレイコントローラ3に送信
する。
【0230】ディスクアレイコントローラ3のSCSI
コントローラ331は、このコマンドリンクを受信し、
その内部のDMAコントローラでメモリ42に転送し、
MPU30に割り込みを発行する。MPU30は、この
割り込みを受信し、SCSI制御部302を起動する。
SCSI制御部302は、受信したコマンドリンクを取
り込み、下位ディスクアレイ制御部303のホストコマ
ンドキューにキューイングする。以下の処理は、上述し
た第1の実施形態と同様である。
【0231】また、ホスト計算機1の主記憶メモリ11
とディスクアレイコントローラ3のキャッシュメモリ3
6との間のデータ転送は、上述した第1の実施形態で
は、図8に示したPCI I/Fコントローラ321の
有するDMAコントローラ3211が直接両者間を転送
したが、本実施形態ではSCSIを用いるため、このよ
うな転送ができない。
【0232】そこで、主記憶メモリ11とのキャッシュ
メモリ36との間のデータ転送の方法について、ディス
クアレイのキャッシュリードを例にとって、以下に、説
明する。ここでは、キャッシュメモリ36から主記憶メ
モリ11へデータが転送される。キャッシュライト時
は、方向が逆になるだけで同様である。
【0233】図2において、ディスク21からデータが
キャッシュメモリ36に転送されると、コマンド管理部
3036は、SCSI制御部302に通知する。SCS
Iバスは、コマンドを受信した後、キャッシュメモリ3
6にデータが準備されるまでの間ディスコネクトしてお
り、この間、ホストI/FであるSCSI33は他のコ
マンドの受信や、他のコマンドのデータ転送に用いるこ
とができる。SCSI制御部302は、この通知を受け
SCSIバスをリコネクトし、SCSIコントローラ3
31の内部のDMAコントローラを起動し、キャッシュ
メモリ36からデータをSCSIコントローラ331内
部に転送し、このデータをSCSI33経由でホスト計
算機1のSCSIコントローラ15に転送する。ホスト
計算機1のSCSIコントローラ15の内部のDMAコ
ントローラは、このデータを受信し、主記憶メモリ11
にDMA転送する。
【0234】また、コントローラコマンドの終了報告
も、SCSI33のステータスを用いて実現することが
できる。
【0235】なお、デステージ処理は、ホスト計算機1
からコントローラコマンドが送信されるだけで、ディス
クアレイ装置2内部で処理が実行されるので、SCSI
バス上でデータ転送は行われないので、上述した第1の
実施形態と同様である。
【0236】以上の説明したように、ディスクアレイコ
ントローラ3をホスト計算機1に内蔵し、ホストI/F
としてPCI I/F32を用いて、上位ディスクアレ
イ制御ドライバ103と下位ディスクアレイ制御部30
3との間のコマンド転送や、主記憶メモリ11とキャッ
シュメモリ36間のデータ転送を行うことができる。
【0237】このとき、第2ホストI/FであるSCS
Iは用いていないので、SCSIコントローラ331
は、ディスク用のSCSIコントローラとして使用する
ことができる。
【0238】以上説明したように、ディスクアレイ処理
を、ホスト計算機1のCPU10とディスクコントロー
ラ3のMPU30とで分散した「ハイブリッドアレイ」
構成とすることにより、処理負荷の重いディスクアレイ
の処理に、処理能力の高いCPU10で処理負荷の重い
上位ディスクアレイ制御を実行し、処理能力の低いMP
U30で処理負荷の軽い下位ディスクアレイ制御を実施
することができ、従来のディスクアレイコントローラの
MPUが性能ボトルネックになることによる限界性能を
越える高性能化を実現することができるものである。
【0239】また、第1の実施形態及び第2の実施形態
において説明したように、同一のディスクアレイコント
ローラを用いながら、ホストI/FをPCIバス等のホ
ストの内部バスと、SCSIバス等のホスト計算機とデ
ィスクアレイ装置をケーブルで接続する外部バスの両者
を選択的に使用することができる。
【0240】また、ディスクアレイ装置2のバックボー
ド290とディスクアレイコントローラ3を接続するコ
ネクタを設けることで、両者を接続した際には自動的に
ホストI/FとしてSCSIを選択するようにできる。
【0241】本実施形態によれば、ディスクアレイコン
トローラに低価格なMPUを使用したディスクアレイ制
御システムにおいて、MPUの能力で性能が制限される
ことなく高性能なディスクアレイ制御が実現できる。
【0242】また、内蔵型ハイブリットアレイ構成のデ
ィスクアレイ制御システムと、外付け型ハイブリットア
レイ構成のディスクアレイ制御システムとを同一のディ
スクアレイコントローラを用いて選択的に構成すること
ができる。
【0243】次に、図23〜図24を用いて、本発明の
第3の実施形態によるディスクアレイ制御システムにつ
いて説明する。上述した第2の実施形態においては、ハ
イブリットアレイ構成のディスクアレイ制御システムに
ついて説明したが、本実施形態においては、ディスクア
レイコントローラ3を、「ハードアレイ」としても、
「ハイブリッドアレイ」としても動作可能とし、この両
者を選択的に使用できるよう構成したものである。
【0244】ここで、「ハードアレイ」とは、ディスク
アレイコントローラ3においてすべてのディスクアレイ
制御を行うもので、本明細書においては特にディスクア
レイへの論理アドレスを各ディスクのディスクアドレス
へアドレス変換する手段が、ディスクアレイコントロー
ラ3上にあるディスクアレイの制御方法と定義する。
【0245】また、「ハイブリッドアレイ」とは、ディ
スクアレイコントローラ3とホスト計算機1の両方で分
担してディスクアレイ制御を行うもので、本明細書にお
いては特に上記アドレス変換する手段がホスト計算機1
上にあり、さらに、ディスクアレイ制御のアドレス変換
以外のある部分がディスクアレイコントローラ3上にあ
る、ディスクアレイの制御方法と定義する。
【0246】すなわち、「ハイブリッドアレイ」は、上
述した第1,2の実施形態のように、上位ディスクアレ
イ制御手段(上位ディスクアレイ制御ドライバ)がホス
ト計算機1上にあるもので、「ハードアレイ」は、上位
ディスクアレイ制御部がディスクアレイコントローラ3
上にあるものである。
【0247】最初に、図23を用いて、本発明の第3の
実施形態によるディスクアレイ制御システムのソフトウ
エアの全体構成について説明する。図23は、本発明の
第3の実施形態によるディスクアレイ制御システムのソ
フトウエアの全体構成のブロック図である。なお、図2
と同一符号は、同一部分を示しており、以下の説明にお
いては、図2との相違点を中心に説明する。
【0248】図23において、ホスト計算機1は、図2
に示すプログラムに加えて、さらに、CPU10で動作
するディスクドライバ106を備えている。また、ディ
スクアレイコントローラ3のMPU30は、図2に示す
プログラムに加えて、さらに、第2上位ディスクアレイ
制御部304と、ディスクアレイモード制御部306を
備えている。
【0249】本実施形態におけるハード構成としては、
図1若しくは図20に示したハード構成とすることがで
きる。本実施形態においては、図20に示したハード構
成に加えて、さらに、ディスクアレイコントローラは、
ディスクアレイモード選択手段44を備え、ディスクア
レイ装置は、ハードアレイ選択手段29を備えている。
ハードアレイ選択手段29は、図20のSCSI選択手
段25と全く同一に構成することができる。
【0250】ディスクアレイモード選択手段44とハー
ドアレイ選択手段29の接続は、図21に示したよう
に、バックボードI/Fコネクタ353,251により
行うことができる。
【0251】ディスクドライバ106は、ホスト計算機
1に単体のディスクを接続するときに、ファイルシステ
ムからのディスクアクセス要求をディスクへのコマンド
に変換するものである。一般に、OS101は、標準で
ディスクドライバ106を備えている。
【0252】第2上位ディスクアレイ制御部304は、
ファイルシステム102の代わりにPCI I/F制御
部301やSCSI制御部302からディスクアレイへ
の論理コマンドを受信するものであり、この機能におい
ては、上位ディスクアレイ制御ドライバ103の機能と
同一である。
【0253】ディスクアレイモード選択手段44の構成
は、図3もしくは図22に示したホストI/Fモード選
択手段と全く同様に構成できる。本実施形態において
は、図22に示したホストI/Fモード選択手段と同様
に構成したものとする。
【0254】また、ディスクアレイモード選択手段44
は、ディスクアレイモードとして、「ハイブリッドアレ
イモード」と「ハードアレイモード」のいずれを選択す
るかのDiskArray_Mode信号をMPU30
に送出する。
【0255】ここで、図24を用いて、ディスクアレイ
モード選択手段44が送出するDiskArray_M
ode信号について説明する。図24は、本発明の第3
の実施形態によるディスクアレイ制御システムにおける
ディスクアレイコントローラのディスクアレイモード選
択手段が送出するDiskArray_Mode信号の
論理図である。
【0256】図24に示すように、DiskArray
_Mode信号が”1”の時には、ディスクアレイモー
ドとして、「ハイブリッドアレイモード」を選択し、D
iskArray_Mode信号が”0”の時には、デ
ィスクアレイモードとして、「ハードアレイモード」の
いずれを選択するようにしている。なお、DiskAr
ray_Mode信号[1:0]は、本発明の第5の実
施形態に関するものであり、この点については、後述す
る。
【0257】ディスクアレイモード制御部306は、デ
ィスクアレイモード選択手段44が送出するDiskA
rray_Mode信号に従い、「ハードアレイモー
ド」、「ハイブリッドアレイモード」のどちらでディス
クアレイコントローラ3を動作させるかを決定する。
【0258】「ハイブリッドアレイモード」の時には、
ディスクアレイモード制御部306は、第2上位ディス
クアレイ制御部304をディスエーブルにする。また、
ディスクアレイモード制御部306は、下位ディスクア
レイ制御部303がコントローラコマンドをPCIもし
くはSCSIのホストI/F制御部(PCII/F制御
部301,SCSI制御部302)から受信するように
制御する。
【0259】「ハードアレイモード」の時には、ディス
クアレイモード制御部306は、第2上位ディスクアレ
イ制御部304をイネーブルにする。また、ディスクア
レイモード制御部306は、下位ディスクアレイ制御部
303がコントローラコマンドを第2上位ディスクアレ
イ制御部304から受信するように制御する。
【0260】ホストI/F32,33は、「ハイブリッ
ドモード」,「ハードアレイモード」のいずれが選択さ
れていても、PCI I/F32とSCSI33のどち
らでも使用できる。即ち、PCI I/F32を使用す
ることにより、図1に示したような「内蔵型」の構成と
することができ、また、SCSI33を使用することに
より、図20に示したような「内蔵型」の構成とするこ
とができる。
【0261】このようにホストI/Fモードとディスク
アレイモードは独立なので、上記のようにディスクアレ
イモード選択手段44を構成した場合、バックボードI
/Fコネクタ353,251は、それぞれに専用な信号
線を有する必要がある。
【0262】また、図3に示したホストI/Fモード選
択手段37のように、スイッチを用いてディスクアレイ
モード選択手段44を構成した場合、スイッチはそれぞ
れ独立に備える必要がある。
【0263】本実施形態においては、図20に示したよ
うに、ホストI/FとしてSCSI33が選択されてい
て、ディスクアレイコントローラ3がディスクアレイコ
ントローラ3のバックボード290に接続しているもの
とする。ディスクアレイ装置2は、ハードアレイ選択手
段29を備えるので、図22に示したSCSI選択手段
によるホストI/Fの選択と同様に、ハードアレイ選択
手段29により「ハードアレイモード」が選択される。
もちろん、ハードアレイ選択手段を切り換え可能に構成
し、「ハードアレイモード」と「ハイブリッドアレイモ
ード」を切り換えることもできる。
【0264】上述したように、「ハードアレイ」と「ハ
イブリッドアレイ」の何れのディスクアレイでも、同一
ディスクアレイコントローラを用い、かつ、ホストI/
FもPCIやSCSIによらず構築することができ、高
性能が必要な場合には高速なホスト計算機のCPUで上
位ディスクアレイ制御を行える「ハイブリッドアレイモ
ード」を選択でき、また、ホスト計算機やOSに非依存
なディスクアレイを構築したい際や、CPUの負担を下
げたい(CPU負荷率を低減したい)際には、標準のデ
ィスクドライバを使用できる「ハードアレイ」を選択す
ることができるものである。このように、構築自由度の
高いディスクアレイを構成することができるものであ
る。
【0265】以上説明したように、本実施形態によれ
ば、ホスト計算機のホストバスやOSや、動作させるア
プリケーションの要求性能に応じて、「ハードアレイ」
方式のディスクアレイと、「ハイブリッドアレイ」方式
のディスクアレイを、選択的に切り換えることができる
ディスクアレイコントローラを実現できるものである。
【0266】次に、図25〜図26を用いて、本発明の
第4の実施形態によるディスクアレイ制御システムにつ
いて説明する。従来のホスト計算機の内部バスに直結す
るタイプのディスクアレイ装置は、複数のホスト計算機
により共用できないものであったが、本実施形態におい
ては、これを可能とするものである。
【0267】最初に、図25を用いて、本発明の第4の
実施形態によるマルチアレイ式のハイブリッドアレイ構
成のディスクアレイ制御システムの全体構成について説
明する。図25は、本発明の第4の実施形態によるディ
スクアレイ制御システムのハードウエアの全体構成のブ
ロック図である。なお、図1及び図20と同一符号は、
同一部分を示しており、以下の説明においては、図1と
の相違点を中心に説明する。
【0268】図25に示すように、本実施形態において
は、2台のホスト計算機1a、1bを備えている。ホス
ト計算機1aは、図1に示したホスト計算機1と同一で
ある。また、ホスト計算機1bは、図20に示したホス
ト計算機1と同一である。ホスト計算機1aは、ディス
クアレイコントローラ3をPCI I/F32で接続し
ており、ディスクアレイ装置2を内蔵している内蔵型の
構成となっている。また、ホスト計算機1bは、ディス
クアレイコントローラ3とSCSI33で接続している
外付け型の構成となっている。
【0269】ディスクアレイコントローラ3のホストI
/F選択手段37は、IF_Mode[1:0]信号を
送出する。ここで、図26を用いて、ホストI/F選択
手段37が送出するIF_Mode[1:0]信号につ
いて説明する。図26は、本発明の第4の実施形態によ
るディスクアレイ制御システムにおけるディスクアレイ
コントローラのホストI/F選択手段が送出するIF_
Mode[1:0]信号の論理図である。
【0270】ホストI/F選択手段37は、図26に示
すようにIF_Mode[1:0]信号をIF_Mod
e0とIF_Mode1の2本出力する。そして、IF
_Mode[1:0]信号=(0,1)の状態では、ホ
ストI/Fとして、PCII/F32が選択され、IF
_Mode[1:0]信号=(1,0)の状態では、ホ
ストI/Fとして、SCSI33が選択され、IF_M
ode[1:0]信号=(1,1)の状態では、ホスト
I/Fとして、PCII/F32とSCSI33との両
方が選択されるクラスタモードとなるものである。即
ち、ディスクアレイコントローラ3が備えている2つの
ホストI/Fの何れか一方,若しくは両方を使用可能に
する。何れか一方を使用する際には、信号線が2本ある
ことをのぞき、図1若しくは図20に示した実施形態と
同様である。
【0271】また、両方使用する際には、ホストI/F
モード制御部305は、IF_Mode[1:0]=
(1、1)の状態で信号を受信すると、初期化部303
5に通知し、初期化部3035はいずれのホストI/F
からのコントローラコマンドも処理できるようにPCI
I/F制御部301,およびSCSI制御部302を
設定する。
【0272】また、ディスクアレイモード選択手段44
により決定されたディスクアレイモードで動作しなが
ら、両方のホストI/Fで受信したコントローラコマン
ドもしくは論理コマンドを処理するように、下位ディス
クアレイ制御部303と第2上位ディスクアレイ制御部
304を設定する。
【0273】この際、ディスクアレイモードに応じ、ホ
スト計算機は上位ディスクアレイ制御ドライバもしくは
ディスクドライバのいずれか一方を備える必要がある。
【0274】また、ディスクアレイモード選択手段44
の出力信号DiskArray_Mode信号も2本に
拡張することで、各ホストI/F毎にディスクアレイモ
ードを設定することも可能である。すなわち、例えば、
ホスト計算機1aは、「ハイブリッドアレイモード」で
動作し、ホスト計算機1bは、「ハードアレイモード」
で動作することが可能である。
【0275】この際、PCI I/F制御部301は、
直接下位ディスクアレイ制御部303に受信したコント
ローラコマンドを引き渡し、また、SCSI制御部30
2は、第2上位ディスクアレイ制御部304に受信した
論理コマンドを引き渡し、第2上位ディスクアレイ制御
部304が、下位ディスクアレイ制御部303にコント
ローラコマンドを引き渡す。
【0276】以上のように、一台のディスクアレイ装置
を、1台のホスト計算機1aに内蔵した状態でもう1台
のホスト計算機1bを同一ディスクアレイ装置に接続す
ることができるので、ディスクアレイを2台のホスト計
算機で共用できるようになる。
【0277】また、このように1台のディスクアレイ装
置を2台のホスト計算機で共用できるので、2台のホス
ト計算機1a,1bの何れか一方を通常は動作していな
いスタンバイ機として運用し、普段動作する現用機が故
障等によりダウンしたさいにスタンバイ機を動作させ
る、スタンバイ構成や、または両方のホスト計算機を常
に動作させるクラスタ構成に対応するディスクアレイを
構成できるものである。
【0278】また、上述した例では、ホスト計算機が2
台の場合で説明したが、SCSIにさらに多くのホスト
計算機を接続することで、n台のホスト計算機で唯一の
ディスクアレイを共用することができる。
【0279】以上のように、本実施形態によれば、「内
蔵型ディスクアレイ」を実現した時にも、クラスタ構成
や、スタンバイ構成等の複数台のホスト計算機で1台の
ディスクアレイを共用できるディスクアレイを実現でき
るようになる。
【0280】次に、図24及び図25を用いて、本発明
の第5の実施形態によるディスクアレイ制御システムに
ついて説明する。図25に示したディスクアレイコント
ローラ3を内蔵したホスト計算機1aの全体を一つのデ
ィスクアレイ装置とみなした例について説明する。この
場合、ホスト計算機1aは、ホスト計算機としての機能
は有しておらず、ユーザのアプリケーションプログラム
や,ネットワークや,グラフィック処理等は行わないも
のである。
【0281】ここで、図25に示したディスクアレイコ
ントローラ3のディスクアレイモード選択手段44を拡
張し、図24に示すように、DiskArray_Mo
deをDiskArray_Mode[1:0]に2ビ
ットに拡張することにより、「ハイブリッドアレイモー
ド」及び「ハードアレイモード」に加えて、「超ディス
クアレイモード」を設ける。この場合、SCSI33の
みがホストI/Fとなる。
【0282】ディスクアレイモード選択手段44が送出
するDiskArray_Mode[1:0]=(1,
1)の状態では、ディスクアレイモードとして、「超デ
ィスクアレイモード」に初期設定する。
【0283】図25に示したホスト計算機1bのCPU
10は、ディスクアレイコントローラ3に論理コマンド
を発行する。図23において説明したように、SCSI
制御部302は、論理コマンドを受信し、メモリ42に
格納する。MPU30のPCI I/F制御部301
は、PCI I/Fコントローラ321のDMA制御部
を起動し、ホスト計算機1aの主記憶メモリ11にDM
A転送する。
【0284】転送が終了すると、PCI I/F制御部
はDoorBellレジスタにステータスを設定し、C
PU10に割り込みを発行する。CPU10のPCI
I/Fドライバは割り込みを受信すると、DoorBe
llレジスタのステータスをリードし、論理コマンドが
転送されたことを認識する。上位ディスクアレイ制御ド
ライバ103は、論理コマンドを取り出し、以下、図1
に示した実施形態と同様に動作する。
【0285】論理コマンドの実行が終了すると、上位デ
ィスクアレイ制御ドライバ103はPCI I/Fドラ
イバ321を制御し、論理コマンド終了ステータスを、
図1に示した実施形態のコマンドリンク発行パケットの
発行同様、ディスクアレイコントローラ3のメモリ42
に転送する。MPU30のSCSI制御部302は、図
23に示した実施形態と同様に、ホスト計算機1bに論
理コマンドの終了を報告し、処理を終了する。
【0286】以上のように、ホスト計算機1aのCPU
10は、上位ディスクアレイ制御ドライバを動作させる
ことに専念できるので、さらに高性能化を図ることがで
きる。また、より高度なディスクアレイ制御アルゴリズ
ムを搭載し、処理をすることができるので一層の高性能
化を図ることができる。
【0287】本実施形態によれば、ホスト計算機にディ
スクアレイを内蔵したときに、そのホスト計算機自体を
一つのディスクアレイ装置として構成し、さらに高性能
なディスクアレイを実現することができる。
【0288】
【発明の効果】本発明によれば、ディスクアレイコント
ローラに低価格なMPUを使用したディスクアレイ制御
システムにおいて、MPUの能力で性能が制限されるこ
となく高性能なディスクアレイ制御が実現できる。
【0289】また、本発明によれば、ディスクアレイコ
ントローラに低価格なMPUを使用したディスクアレイ
制御システムにおいて、MPUの能力で性能が制限され
ることなく高性能なディスクアレイ制御が実現できる。
【0290】さらに、本発明によれば、ホスト計算機の
ホストバスやOSや、動作させるアプリケーションの要
求性能に応じて、「ハードアレイ」方式のディスクアレ
イと、「ハイブリッドアレイ」方式のディスクアレイ
を、選択的に切り換えることができるディスクアレイコ
ントローラを実現できるものである。
【0291】また、さらに、本発明によれば、複数台の
ホスト計算機で1台の「内蔵型ディスクアレイ」を共用
できるディスクアレイを実現でき、クラスタ構成やスタ
ンバイ型構成を実現することができるものである。
【0292】さらに、本発明によれば、ホスト計算機に
ディスクアレイを内蔵したときに、そのホスト計算機自
体を一つのディスクアレイ装置の一部として構成できる
ので、ホスト計算機の高性能なCPUを利用した高性能
なディスクアレイを実現できるものである。
【図面の簡単な説明】
【図1】本発明の一実施形態によるディスクアレイ制御
システムのハードウエアの全体構成のブロック図であ
る。
【図2】本発明の一実施形態によるディスクアレイ制御
システムのソフトウエアの全体構成のブロック図であ
る。
【図3】本発明の一実施形態によるディスクアレイ制御
システムのホストI/Fモード選択手段の構成を示す回
路図である。
【図4】本発明の一実施形態によるディスクアレイ制御
システムのホストI/Fモード選択手段の論理図であ
る。
【図5】本発明の一実施形態によるディスクアレイ制御
システムにおけるディスクアレイコントローラ検出処理
を説明するフローチャートである。
【図6】本発明の一実施形態によるディスクアレイ制御
システムにおけるディスクアレイのリード処理の説明図
である。
【図7】本発明の一実施形態によるディスクアレイ制御
システムにおける上位ディスクアレイ制御ドライバのコ
マンドリンクの発行方法について説明するフローチャー
トである。
【図8】本発明の一実施形態によるディスクアレイ制御
システムにおけるホスト計算機とディスクアレイコント
ローラの間のコマンドリンクの発行方法の説明図であ
る。
【図9】本発明の一実施形態によるディスクアレイ制御
システムにおけるMPUのコマンドリンクの割り込み処
理について説明するフローチャートである。
【図10】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUのPCI I/F制御部の中
のDMA制御部の処理について説明するフローチャート
である。
【図11】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
の処理について説明するフローチャートである。
【図12】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
の処理について説明するフローチャートである。
【図13】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
のディスクコマンド制御部の処理について説明するフロ
ーチャートである。
【図14】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
のディスクコマンド制御部の終了報告受信時の処理につ
いて説明するフローチャートである。
【図15】本発明の一実施形態によるディスクアレイ制
御システムにおけるホスト計算機のPCI I/Fドラ
イバにおける終了報告処理について説明するフローチャ
ートである。
【図16】本発明の一実施形態によるディスクアレイ制
御システムにおけるディスクアレイのライト処理の説明
図である。
【図17】本発明の一実施形態によるディスクアレイ制
御システムにおけるディスクアレイの第1のデステージ
処理の説明図である。
【図18】本発明の一実施形態によるディスクアレイ制
御システムにおけるディスクアレイの第2のデステージ
処理の説明図である。
【図19】本発明の一実施形態によるディスクアレイ制
御システムにおけるMPUの下位ディスクアレイ制御部
のパリティ生成コマンド制御部の処理について説明する
フローチャートである。
【図20】本発明の第2の実施形態によるディスクアレ
イ制御システムのハードウエアの全体構成のブロック図
である。
【図21】本発明の第2の実施形態によるディスクアレ
イ制御システムのハードウエアのブロック斜視図であ
る。
【図22】本発明の第2の実施形態によるディスクアレ
イ制御システムのホストI/Fモード選択手段の構成を
示す回路図である。
【図23】本発明の第3の実施形態によるディスクアレ
イ制御システムのソフトウエアの全体構成のブロック図
である。
【図24】本発明の第3の実施形態によるディスクアレ
イ制御システムにおけるディスクアレイコントローラの
ディスクアレイモード選択手段が送出するDiskAr
ray_Mode信号の論理図である。
【図25】本発明の第4の実施形態によるディスクアレ
イ制御システムのハードウエアの全体構成のブロック図
である。
【図26】本発明の第4の実施形態によるディスクアレ
イ制御システムにおけるディスクアレイコントローラの
ホストI/F選択手段が送出するIF_Mode[1:
0]信号の論理図である。
【符号の説明】
1,1a,1b…ホスト計算機 10…CPU 101…OS 102…ファイルシステム 103…上位ディスクアレイ制御ドライバ 1031…論理コマンドアドレス変換部 1032…キャッシュ管理部 1034…コマンドI/F制御部 1035…コントローラ検出部 104…PCI I/Fドライバ 105…SCSIドライバ 106…ディスクドライバ 11…主記憶メモリ 12…システム制御手段 13…PCIバス 14…PCIコネクタ 15…SCSIコントローラ 16…SCSIコネクタ 17…SCSIケーブル 2…ディスクアレイ装置 21,21a,21b,21c,21d,21e,21
f…ディスク 22…電源 23…クロック発生器 24…コネクタ 25…SCSI選択手段 26…SCSIコネクタ 28…筐体異常検出手段 29…ハードアレイ選択手段 3…ディスクアレイコントローラ 30…MPU 301…PCI I/F制御部 302…SCSI制御部 303…下位ディスクアレイ制御部 304…第2上位ディスクアレイ制御部 31…PCIカードエッジ 32…PCII/F 321…PCI I/Fコントローラ 3211…DMAC 33,34a,34b…SCSI 331…SCSIコントローラ 332…SCSIコネクタ 34a1,34b1…SCSIコントローラ 35…パリティ生成回路 36…キャッシュメモリ 37,37a…ホストI/Fモード選択手段 38…PCIバス 40a1,40b1…SCSIコネクタ 42…メモリ 43…筐体監視手段 44…ディスクアレイモード選択手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 荒川 敬史 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 八木沢 育哉 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 高野 雅弘 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージシステム事業部内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 プログラムを実行するCPUを有するホ
    スト計算機と、 このホスト計算機にホストインターフェースを介して接
    続されるとともに、複数のディスクからなるディスクア
    レイと、このディスクアレイを制御するディスクアレイ
    コントローラとを有するディスクアレイ装置から構成さ
    れ、 上記CPUは、上記ディスクアレイ装置への論理コマン
    ドから上記ディスクアレイを構成するディスクへのディ
    スクコマンドを生成し、かつ、冗長データを生成するた
    めの冗長データ生成コマンドを生成する上位ディスクア
    レイ制御手段を備え、 上記ディスクアレイコントローラは、 上記ディスクアレイコントローラの内部の制御プログラ
    ムを実行する上記CPUよりも処理能力の小さいMPU
    と、 上記ディスクアレイを構成するディスクを接続するディ
    スクインターフェースと、 上記ディスクアレイに格納する冗長データを生成する冗
    長データ生成手段とを備え、 上記MPUは、上記上位ディスクアレイ制御手段が発行
    した上記ディスクコマンド及び冗長データ生成コマンド
    を受信し、上記ディスクアレイを構成するディスクにデ
    ィスクコマンドを発行し、また、上記冗長データ生成手
    段に冗長データ生成コマンドを発行する下位ディスクア
    レイ制御手段を備えることを特徴とするハイブリッドア
    レイ構成のディスクアレイ制御システム。
  2. 【請求項2】 プログラムを実行するCPUを有するホ
    スト計算機と、 このホスト計算機にホストインターフェースを介して接
    続されるとともに、複数のディスクからなるディスクア
    レイと、このディスクアレイを制御するディスクアレイ
    コントローラとを有するディスクアレイ装置から構成さ
    れ、 上記ディスクアレイ装置の上記ホストインターフェース
    は、上記ホスト計算機の内部システムバスに直結するカ
    ードエッジを有する構造の第1ホストインターフェース
    と、 上記ホスト計算機とケーブルを介して接続する構造の第
    2ホストインターフェースとから構成され、 上記ディスクアレイ装置は、上記第1ホストインターフ
    ェースと上記第2ホストインターフェースのいずれか一
    方を選択するホストインターフェースモード選択手段を
    備え、内蔵型と外付け型を選択できることを特徴とする
    ディスクアレイ制御システム。
  3. 【請求項3】 請求項2記載のディスクアレイ制御シス
    テムにおいて、 上記CPUは、さらに、 上記第1ホストインターフェースに上記CPUが生成し
    たコマンドを送信し、上記ディスクアレイコントローラ
    からの終了報告を受信する第1コマンド送信制御手段
    と、 上記第2ホストインターフェースに上記CPUが生成し
    たコマンドを送信し、ディスクアレイコントローラから
    の終了報告を受信する第2コマンド送信制御手段と、 上記第1若しくは第2コマンド送信制御手段を選択する
    コマンド送信選択手段を備え、 上記ディスクアレイコントローラは、さらに、 上記第1ホストインターフェースから上記CPUが生成
    したコマンドを受信し、その終了を上記ホスト計算機に
    報告する第1コマンド受信制御手段と、 上記第2ホストインターフェースから上記CPUが生成
    したコマンドを受信し、その終了をホストに報告する第
    2コマンド受信制御手段と、 上記ホストインターフェースモード選択手段により決定
    した上記第1若しくは第2ホストインターフェースに応
    じた上記第1若しくは第2コマンド受信制御手段を選択
    するコマンド受信選択手段とを備えたことを特徴とする
    ディスクアレイ制御システム。
  4. 【請求項4】 請求項2記載のディスクアレイ制御シス
    テムにおいて、 上記ホストインターフェースモード選択手段が、上記第
    2ホストインターフェースを選択した際には、 上記第2ホストインターフェースと上記ホスト計算機は
    ケーブルで接続し、 上記ホスト計算機の外部に設けたディスクアレイ筐体に
    上記ディスクアレイコントローラ及び上記ディスクアレ
    イを搭載し、 上記ディスクアレイ筐体は、上記第1ホストインターフ
    ェースのカードエッジを接続する構造のコネクタと、電
    源と、クロック信号生成手段を備え、 上記ディスクアレイコントローラは、第1ホストインタ
    ーフェースのカードエッジで上記コネクタに接続し、上
    記コネクタを介して上記電源から電力を供給し、上記ク
    ロック信号生成手段からクロック信号を供給することを
    特徴とするディスクアレイ制御システム。
  5. 【請求項5】 請求項4記載のディスクアレイ制御シス
    テムにおいて、 上記ディスクアレイ筐体は、上記ホストインターフェー
    スモード選択手段と接続するコネクタを有し、 上記ホストインターフェースモード選択手段は、上記デ
    ィスクアレイ筐体のコネクタと接続した際には第2ホス
    トインターフェース制御手段を選択することを特徴とす
    るディスクアレイ制御システム。
  6. 【請求項6】 プログラムを実行するCPUを有するホ
    スト計算機と、 このホスト計算機にホストインターフェースを介して接
    続されるとともに、複数のディスクからなるディスクア
    レイと、このディスクアレイを制御するディスクアレイ
    コントローラとを有するディスクアレイ装置から構成さ
    れ、 上記CPU若しくは上記MPUは、上記ディスクアレイ
    装置への論理コマンドから上記ディスクアレイを構成す
    るディスクへのディスクコマンドを生成し、かつ、冗長
    データを生成するための冗長データ生成コマンドを生成
    する上位ディスクアレイ制御手段を備え、 上記ディスクアレイコントローラは、 上記ディスクアレイコントローラの内部の制御プログラ
    ムを実行する上記CPUよりも処理能力の小さいMPU
    と、 上記ディスクアレイを構成するディスクを接続するディ
    スクインターフェースと、 上記ディスクアレイに格納する冗長データを生成する冗
    長データ生成手段とを備え、 上記MPUは、上記上位ディスクアレイ制御手段が発行
    した上記ディスクコマンド及び冗長データ生成コマンド
    を受信し、上記ディスクアレイを構成するディスクにデ
    ィスクコマンドを発行し、また、上記冗長データ生成手
    段に冗長データ生成コマンドを発行する下位ディスクア
    レイ制御手段を備え、 さらに、上記ディスクアレイコントローラは、上記CP
    U若しくは上記MPUが備える上記上位ディスクアレイ
    制御手段を選択するディスクアレイモード選択手段を備
    え、ハイブリッドアレイ構成とハードアレイ構成を選択
    できることを特徴とするディスクアレイ制御システム。
  7. 【請求項7】 プログラムを実行するCPUを有する複
    数のホスト計算機と、 これらのホスト計算機にホストインターフェースを介し
    て接続されるとともに、複数のディスクからなるディス
    クアレイと、このディスクアレイを制御するディスクア
    レイコントローラとを有するディスクアレイ装置から構
    成され、 上記複数のホスト計算機のそれぞれの上記CPUは、上
    記ディスクアレイ装置への論理コマンドから上記ディス
    クアレイを構成するディスクへのディスクコマンドを生
    成し、かつ、冗長データを生成するための冗長データ生
    成コマンドを生成する上位ディスクアレイ制御手段を備
    え、 上記ディスクアレイコントローラは、 上記ディスクアレイコントローラの内部の制御プログラ
    ムを実行する上記CPUよりも処理能力の小さいMPU
    と、 上記ディスクアレイを構成するディスクを接続するディ
    スクインターフェースと、 上記ディスクアレイに格納する冗長データを生成する冗
    長データ生成手段とを備え、 上記MPUは、上記上位ディスクアレイ制御手段が発行
    した上記ディスクコマンド及び冗長データ生成コマンド
    を受信し、上記ディスクアレイを構成するディスクにデ
    ィスクコマンドを発行し、また、上記冗長データ生成手
    段に冗長データ生成コマンドを発行する下位ディスクア
    レイ制御手段を備え、 上記ディスクアレイ装置は、第1の上記ホスト計算機に
    内蔵され、 上記ディスクアレイ装置の上記ホストインターフェース
    は、上記第1のホスト計算機の内部システムバスに直結
    するカードエッジを有する構造の第1ホストインターフ
    ェースと、 上記第1のホスト計算機以外の上記ホスト計算機とケー
    ブルを介して接続する構造の第2ホストインターフェー
    スとから構成されることを特徴とするディスクアレイ制
    御システム。
  8. 【請求項8】 プログラムを実行するCPUを有する第
    1のホスト計算機と、 プログラムを実行するCPUを有する第2のホスト計算
    機と、 上記第1及び第2のホスト計算機にホストインターフェ
    ースを介して接続されるとともに、複数のディスクにか
    らなるディスクアレイと、このディスクアレイを制御す
    るディスクアレイコントローラとを有するディスクアレ
    イ装置から構成され、 上記第1の計算機の上記CPUは、上記ディスクアレイ
    装置への論理コマンドから上記ディスクアレイを構成す
    るディスクへのディスクコマンドを生成し、かつ、冗長
    データを生成するための冗長データ生成コマンドを生成
    する上位ディスクアレイ制御手段を備え、 上記第2の計算機の上記CPUは、上記ディスクアレイ
    装置への論理コマンドを上記ディスクアレイコントロー
    ラに発行するディスク制御手段を備え、 上記ディスクアレイコントローラは、 上記ディスクアレイコントローラの内部の制御プログラ
    ムを実行する上記CPUよりも処理能力の小さいMPU
    と、 上記ディスクアレイを構成するディスクを接続するディ
    スクインターフェースと、 上記ディスクアレイに格納する冗長データを生成する冗
    長データ生成手段とを備え、 上記MPUは、上記上位ディスクアレイ制御手段が発行
    した上記ディスクコマンド及び冗長データ生成コマンド
    を受信し、上記ディスクアレイを構成するディスクにデ
    ィスクコマンドを発行し、また、上記冗長データ生成手
    段に冗長データ生成コマンドを発行する下位ディスクア
    レイ制御手段を備え、 上記ディスクアレイ装置は、第1の上記ホスト計算機に
    内蔵され、 上記ディスクアレイ装置の上記ホストインターフェース
    は、上記第1のホスト計算機の内部システムバスに直結
    するカードエッジを有する構造の第1ホストインターフ
    ェースと、 上記第2のホスト計算機とケーブルを介して接続する構
    造の第2ホストインターフェースとから構成されること
    を特徴とするディスクアレイ制御システム。
  9. 【請求項9】 ホスト計算機にホストインターフェース
    を介して接続されるとともに、複数のディスクからなる
    ディスクアレイを制御するディスクアレイコントローラ
    において、 上記ディスクアレイコントローラの内部の制御プログラ
    ムを実行するMPUと、 上記ディスクアレイを構成するディスクを接続するディ
    スクインターフェースと、 上記ディスクアレイに格納する冗長データを生成する冗
    長データ生成手段とを備え、 上記ホストインターフェースは、上記ホスト計算機の内
    部システムバスに直結するカードエッジを有する構造の
    第1ホストインターフェースと、 上記ホスト計算機とケーブルを介して接続する構造の第
    2ホストインターフェースとから構成されることを特徴
    とするディスクアレイコントローラ。
JP8262147A 1996-10-02 1996-10-02 ディスクアレイ制御システム Pending JPH10105347A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8262147A JPH10105347A (ja) 1996-10-02 1996-10-02 ディスクアレイ制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8262147A JPH10105347A (ja) 1996-10-02 1996-10-02 ディスクアレイ制御システム

Publications (1)

Publication Number Publication Date
JPH10105347A true JPH10105347A (ja) 1998-04-24

Family

ID=17371719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8262147A Pending JPH10105347A (ja) 1996-10-02 1996-10-02 ディスクアレイ制御システム

Country Status (1)

Country Link
JP (1) JPH10105347A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007048170A (ja) * 2005-08-12 2007-02-22 Fujitsu Ltd データ処理装置、データ処理実行制御方法及びデータ処理実行制御プログラム
US7231469B2 (en) 2004-02-16 2007-06-12 Hitachi, Ltd. Disk controller
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
JP2008527496A (ja) * 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP2012113704A (ja) * 2010-11-19 2012-06-14 Internatl Business Mach Corp <Ibm> フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ)
JP2013109419A (ja) * 2011-11-17 2013-06-06 Toshiba Corp 情報処理装置
US9268706B2 (en) 2011-08-01 2016-02-23 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having plurality of address conversion information

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
US7917668B2 (en) 2004-02-10 2011-03-29 Hitachi, Ltd. Disk controller
US7231469B2 (en) 2004-02-16 2007-06-12 Hitachi, Ltd. Disk controller
JP2007529833A (ja) * 2004-07-15 2007-10-25 株式会社ソニー・コンピュータエンタテインメント アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
JP2008527496A (ja) * 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
JP2007048170A (ja) * 2005-08-12 2007-02-22 Fujitsu Ltd データ処理装置、データ処理実行制御方法及びデータ処理実行制御プログラム
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
JP2012113704A (ja) * 2010-11-19 2012-06-14 Internatl Business Mach Corp <Ibm> フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ)
US10331356B2 (en) 2011-08-01 2019-06-25 Toshiba Memory Corporation Data writing processing into memory of a semiconductor memory device by using a memory of a host device
US9268706B2 (en) 2011-08-01 2016-02-23 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having plurality of address conversion information
US9542117B2 (en) 2011-08-01 2017-01-10 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having a plurality of address conversion information
US9870155B2 (en) 2011-08-01 2018-01-16 Toshiba Memory Corporation Information processing device including host device and semiconductor memory device having a block rearrangement to secure free blocks
US10949092B2 (en) 2011-08-01 2021-03-16 Toshiba Memory Corporation Memory system with block rearrangement to secure a free block based on read valid first and second data
US11537291B2 (en) 2011-08-01 2022-12-27 Kioxia Corporation Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
US11868618B2 (en) 2011-08-01 2024-01-09 Kioxia Corporation Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
JP2013109419A (ja) * 2011-11-17 2013-06-06 Toshiba Corp 情報処理装置

Similar Documents

Publication Publication Date Title
US6601138B2 (en) Apparatus system and method for N-way RAID controller having improved performance and fault tolerance
US6061750A (en) Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure
US7536508B2 (en) System and method for sharing SATA drives in active-active RAID controller system
US7191287B2 (en) Storage system having a plurality of interfaces
US7073022B2 (en) Serial interface for a data storage array
US5694581A (en) Concurrent disk array management system implemented with CPU executable extension
US7562249B2 (en) RAID system, RAID controller and rebuilt/copy back processing method thereof
US7631218B2 (en) RAID system and Rebuild/Copy back processing method thereof
US7607035B2 (en) Disk array apparatus and method for controlling the same
US9626329B2 (en) Apparatus for enhancing performance of a parallel processing environment, and associated methods
US7426588B2 (en) Storage apparatus
JPH0784876A (ja) データ記憶装置のマトリックス構造
JPH0683708A (ja) データ記憶方法及び装置
JP2005157636A (ja) 処理オフロード機能モジュールを備えた磁気ディスクアレイ装置
WO1996018141A1 (fr) Systeme informatique
JPH10105347A (ja) ディスクアレイ制御システム
US9824716B2 (en) Storage control apparatus, storage apparatus, and computer-readable recording medium having stored therein storage control program
JP2003131818A (ja) クラスタ構成ストレージにおけるクラスタ間raid構成
US20020078276A1 (en) RAID controller with IDE interfaces
JP2004164171A (ja) パス冗長化装置及び方法
JP2003345530A (ja) 記憶システム
JP2002116883A (ja) ディスクアレイ制御装置
JPH0830402A (ja) パリティ格納方法
JPH10269695A (ja) コンピュータシステムにおける記憶装置の制御方式
Russell et al. Netfinity Server Disk Subsystems