JP3668922B2 - システム - Google Patents
システム Download PDFInfo
- Publication number
- JP3668922B2 JP3668922B2 JP32176798A JP32176798A JP3668922B2 JP 3668922 B2 JP3668922 B2 JP 3668922B2 JP 32176798 A JP32176798 A JP 32176798A JP 32176798 A JP32176798 A JP 32176798A JP 3668922 B2 JP3668922 B2 JP 3668922B2
- Authority
- JP
- Japan
- Prior art keywords
- disk
- host
- data
- transfer
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、システムに関し、さらに詳しくは、低コスト化と高速化とを可能とするシステムに関する。
【0002】
【従来の技術】
(1) RAID
ディスクアレイは、複数のディスク装置を並列に動作させることで高速化を実現する技術である。しかし、ディスク装置をn(>1)台並べた場合、その故障確率はn倍に悪化する。そこで、高速化と高信頼化を両立するための技術として、「RAID(Redundant Arrays of Inexpensive Disks)」が知られている。なお、RAIDについての詳細は、"A Case for Redundant Arrays of Inexpensive Disks (RAID) "; In Proc. ACM SIGMOD, June 1988(カリフォルニア大学バークレー校発行)に述べられている。
【0003】
RAIDは、複数のディスク装置を並列に動作させることにより、高速化を実現する。また、パリティと呼ぶ冗長データをパリティ用ディスク装置に格納しておき、データを格納するデータ用ディスク装置の1台が故障したときに、その故障したデータ用ディスク装置のデータを他のデータ用ディスク装置のデータとパリティ用ディスク装置のパリティとから復元することにより、高信頼化を実現する。RAIDは、そのパリティの格納の方法によりレベル1からレベル5まである。
【0004】
図13に、レベル4のRAIDのデータ配置図の一例を示す。
この例では、ディスク装置が5台で、そのうちの4台がデータ用ディスク装置200〜203、1台がパリティ用ディスク装置204とすると、データを所定単位のデータブロックD0,D1,D2,D3に分解し、データ用ディスク装置200、データ用ディスク装置201、データ用ディスク装置202、データ用ディスク装置203の順に分散して格納する。これらデータブロックのことをストライプと称し、この分散する制御のことをストライピングと称する。
さらに、ストライプD0〜D3の排他的論理和を計算し、パリティP0を生成し、パリティ用ディスク装置204に格納する。一つのパリティを生成するための同一列のストライプ及びパリティをパリティグループと称する。レベル4の外、レベル3,5が上記と同一の方法でパリティを生成する。
なお、RAIDを構成するディスク装置群のことをRAIDグループと称する。
【0005】
たとえば、データ(D0,D1,D2,D3)を読み出したいときにデータ用ディスク装置200が故障した場合には、データD1,D2,D3とパリティP0を読み出し、これらの排他的論理和を計算し、データD0を復元する。
【0006】
(2) ディスクアレイコントローラ
上記のようなRAID型ディスクアレイを実現するためには、ホスト(ホストコンピュータ)からのリード/ライト要求を各ディスク装置へのリード/ライト要求に変換し、ライト時にはデータを各ディスク装置へ分散し、リード時には各ディスク装置からデータを集合するデータ分散・集合制御を行う必要がある。また、パリティを計算するパリティ生成制御を行う必要がある。これらの制御を行うため、通常、ホストと複数のディスク装置の間に、ディスクアレイコントローラと呼ぶディスクアレイ制御装置を設ける。
【0007】
図14に、従来の計算機システムの第1例を示す。
この計算機システム500は、ホスト3と、ディスクアレイ4とを備えてなる。31は、ホスト3とディスクアレイコントローラ4を接続するホストインターフェースである。
【0008】
ディスクアレイ4は、ディスクアレイコントローラ1と、ディスク装置200〜204を備えてなる。210〜214は、ディスクアレイコントローラ1とディスク装置200〜204を接続するディスクインタフェースである。
【0009】
ディスクアレイコントローラ1は、ディスクアレイコントローラ全体の制御を司る中央制御手段10と、データ分散・集中のために一時的にデータを格納するとともにキャッシュとして使用するためのデータキャッシュ手段11と、ホストインタフェース31に対する制御を行うホストI/Fコントローラ120と、ディスクインタフェース210〜214を制御するディスクI/Fコントローラ130〜134を備えてなる。
【0010】
ホストインタフェース31およびディスクインタフェース210〜214には、SCSI(Small Computer System Interface)が使われている。そこで、このようなディスクアレイのことをSCSI型ディスクアレイと称することにする。
【0011】
(3) Fibre Channel
近年、SCSIに対して性能が高く、接続距離が長いFibre Channel(以下、FCと略記する)が登場してきた。
Fibre Channelは、ホストとディスクアレイを1対1で接続するポイント−ポイントトポロジの外に、複数のホストおよびディスクアレイをループ構成で接続するループトポロジ、さらには、ファブリックと呼ぶスイッチ装置を用い、ポイント−ポイントやループの任意の組み合わせで大規模なネットワークを組むことができるスイッチトポロジの3つの形態をとることができる。
特に、ループトポロジは、FC-AL(FibreChannel−Arbitrated Loop)と呼ばれ、複数のホストと複数のストレージを相互に接続するネットワークであるSAN(Storage Area Network)を容易に構築できる。
また、FC-ALは、ディスク装置インタフェース210〜214にも使用されるようになってきた。FC-ALは、SCSIに対する性能、接続距離の長所に加え、ディスク装置の活線挿抜が可能、ディスク装置の接続台数が1ループあたり126台と多い、シリアルケーブルなので引き回しが容易、などの長所を備えており、ディスク装置インタフェースに適用するために好ましい機能を備えている。
【0012】
(4) FC型ディスクアレイ
図15に、従来の計算機システムの第2例を示す。
この計算機システム600は、ホストインタフェース31にFC−ALを用いると共に、ディスクインタフェース13にもFC−ALを用いた構成である。
ホストホストインタフェース31には、複数台のホスト3、3a、3bが接続しており、同様に複数台のディスクアレイ4、4aも接続している。
ディスクアレイ4のディスクアレイコントローラ1は、1つのディスクインタフェース13に複数台のディスク装置200〜204が接続するループ構成である。ディスクインタフェース13を制御するディスクI/Fコントローラ130も1つである。このようなディスクアレイを、FC型ディスクアレイと称することにする。
【0013】
Fibre Channelをホストインタフェースに使う例は、”日経エレクトロニクス 1994.7.4 (no.612)号 特集「ポストSCSIの設計思想を探る。三つの新インタフェースを比較」p.128”に示されている。
また、Fibre Channelをディスクインタフェースに使う例は、同資料p.131に示されている。
【0014】
(5) マルチポートI/F
図14に示すSCSI型ディスクアレイ4の場合、RAIDグループを構築する複数のディスク装置200〜204を1台ずつ異なるディスクインタフェース210〜214に接続することで、1つのディスクインタフェースに障害が発生しても運転を継続できる。
また、ホストインタフェース31も複数本用意し、同一のホスト3から複数のホストインタフェース31を介してディスクアレイ4に接続すると、ホストインタフェース31についても耐障害性を持たせることができる。
このように複数ホストインタフェース、複数ディスクインタフェースを持つ構成をマルチポートI/Fと称する。
これに対して、1つのホストインタフェース、1つのディスクインタフェースしか持たない構成をシングルポートI/Fと称する。
FC型ディスクアレイにおいても、耐障害性を持たせるためには、マルチポートI/F化する必要があり、各々2つずつI/Fを設ける。
【0015】
【発明が解決しようとする課題】
(1) コスト上昇の課題
FC型ディスクアレイ(図15)は、SCSI型ディスクアレイ(図14)を越える性能、機能を実現できる。
しかしながら、Fibre Channel用のI/F制御手段はSCSI用のI/F制御手段に対し、非常に高価であるため、ホストインタフェースとディスクインタフェースの両方にFibre Channelを使用すると、ディスクアレイ制御装置のコストが上昇してしまう問題点がある。
この問題点は、Fibre Channelに限るものではなく、一般に、高速なインタフェースになるほど高価格になる傾向があるので、他の高速インタフェースでも同様の問題点がある。マルチポートI/F化すると、高コスト化はさらに助長される。
【0016】
(2) 応答時間低下、技術的困難性の課題
従来のFC型ディスクアレイ、SCSI型ディスクアレイのいずれにしても、ディスク装置からホストにデータをリードするときに、ディスク装置からディスクアレイ制御装置内部にデータの一部もしくは全部をバッファリングしてから、そのデータをホストに転送する。そのため、応答時間が低下する問題点がある。
また、ホストインタフェース、ディスクインタフェースともにFibre Channelとした場合、その両者の転送速度を各々100MB/Sとすると、この帯域を最大限発揮したデータ転送を実現するためには、ディスクアレイ制御装置内部の転送速度は少なくとも200MB/Sが必要となり、高速なデータバスが必要である。また、ディスク装置がRAIDの場合、データ転送と並行してパリティも生成する必要がある。そこで、ディスクアレイ制御装置内部のキャッシュメモリには、データ転送に必要な帯域の200MB/Sに加え、さらに100MB/Sの帯域が必要である。また、デュアルコントローラ構成にする場合、ホストからのデータを一方のディスクアレイコントローラが受信し、そのデータを他系のディスクアレイコントローラに転送する二重化ライトを行うので、キャッシュメモリには他系から転送されるのデータをライトする分の100MB/Sの帯域がさらに必要である。以上より、100MB/Sのホストインタフェース、ディスクインタフェースの一対あたり、データバスには200MB/Sの転送帯域、キャッシュメモリには400MB/Sの転送帯域が必要である。さらに、ホストインタフェースとディスクインタフェースをn対にマルチポートI/F化した場合、そのマルチポート分の性能を発揮させようとすると、データバス、キャッシュメモリは各々上記のn倍の転送帯域が必要である。このように、インタフェースの高速化やマルチポート化により、ディスクアレイ制御装置内部の転送速度は非常に高い転送帯域が必要になる。そのため、内部バスやキャッシュメモリの動作周波数の向上やビット数の拡大が必要になり、技術的難易度が上昇し、実現困難になる。また、実現可能な転送速度であってもコスト的に非常に高くなってしまう問題点がある。
【0017】
そこで、本発明の第一の目的は、高速インタフェースを使用しても低コスト化を図ることが出来るシステムを提供することにある。
また、本発明の第二の目的は、応答性を改善でき、高速インタフェースの性能を最大限発揮することができ、かつ、ディスクアレイ制御装置内部の転送速度を低く押さえ、技術的にも容易に開発可能で、さらに低コスト化を図ることが出来るシステムを提供することにある。
【0018】
【課題を解決するための手段】
第1の観点では、本発明は、複数のディスク装置と、前記複数のディスク装置に対するデータのリード及びライトを制御するディスク制御装置とを有し、前記複数のディスク装置、及び前記ディスク制御装置は、ホストが接続されているホストインタフェースに接続され、前記ディスク制御装置と前記ホストとの間の通信、及び前記ディスク制御装置と前記複数のディスク装置との間の通信は、前記ホストインタフェースを介して実行され、前記ディスク制御装置は、前記ホストからコマンドを受信するホストコマンド制御手段と、前記ホストから受信したコマンドを解釈し、解釈結果に応じて、該コマンドに応じたデータの転送経路を選択する転送形態制御手段と、前記ホストから受信したコマンドで指定されたアドレスを、ディスク装置に対応するアドレスに変換するアドレス変換制御手段と、変換されたアドレスに基づいて、ディスク装置に対するディスクコマンドを生成するディスクコマンド制御手段と、ディスクコマンドを前記ホストインタフェースを介してディスク装置に発行するI/F制御手段とを有することを特徴とするシステムを提供する。
上記第1の観点によるシステムでは、ディスク制御装置とホストの間の通信を行うホストインタフェースを利用して、ディスク制御装置とディスク装置の間の通信をも行うため、インタフェースが1つで済み、高速インタフェースでも低コスト化を実現できる。特に、ディスク制御装置のI/F制御手段をホスト用およびディスク装置用として共用すれば、より低コスト化できる。
【0020】
第2の観点では、本発明は、前記転送形態制御手段は、前記ホストから受信したコマンドがリードのときには、ディスク装置から前記ディスク制御装置にデータを転送し、次いで前記ディスク制御装置から前記ホストにデータを転送するノーマル転送を選択し、前記ホストから受信したコマンドがライトのときには、前記ホストから前記ディスク制御装置にデータを転送し、次いで前記ディスク制御装置からディスク装置にデータを転送するノーマル転送を選択することを特徴とする上記第1の観点のシステムを提供する。
上記第2の観点のシステムでは、従来のホストとディスク装置とを用いて、上記第1の観点のシステムを実施可能となる。
【0021】
第3の観点では、本発明は、前記転送形態制御手段は、前記ホストから受信したコマンドがリードのときには、ディスク装置から前記ディスク制御装置を経由せずに前記ホストにデータを直接転送するダイレクト転送を選択し、前記ホストから受信したコマンドがライトのときには、前記ホストから前記ディスク制御装置を経由せずにディスク装置にデータを直接転送するダイレクト転送を選択することを特徴とする上記第1の観点のシステムを提供する。
上記第3の観点のシステムでは、ディスク制御装置を経由せずに、ホストとディスク装置の間でデータを直接転送するため、応答性を改善でき、高速インタフェースの性能を最大限発揮することができ、かつ、ディスク制御装置内部の転送速度を低く押さえることが出来る。よって、技術的に容易に開発可能となり、低コスト化できる。また、ディスク制御装置における処理負担を軽減できる。
【0022】
第4の観点では、本発明は、前記ディスク制御装置は更にデータキャッシュ手段を有しており、前記転送形態制御手段は、前記ホストから受信したコマンドを解析し、更にキャッシュヒットミス判定を実行し、前記ホストから受信したコマンドがリードで且つキャッシュミスである場合には、ディスク装置から前記ディスク制御装置及び前記ホストの両方にデータを転送するマルチターゲットダイレクト転送を選択し、前記ホストから受信したコマンドがライトの場合には、前記ホストから前記ディスク制御装置及びディスク装置の両方にデータを転送するマルチターゲットダイレクト転送を選択することを特徴とする上記第1の観点のシステムを提供する。
上記第4の観点のシステムでは、ディスク制御装置を経由せずに、ホストとディスク装置の間でデータを直接転送するため、応答性を改善でき、高速インタフェースの性能を最大限発揮することができ、かつ、ディスク制御装置内部の転送速度を低く押さえることが出来る。よって、技術的に容易に開発可能となり、低コスト化できる。また、ディスク制御装置における処理負担を軽減できる。
また、データをディスク制御装置にも転送するため、キャッシュによる応答性の改善も期待できる。
さらに、ホストコマンドがライトのときにマルチターゲットダイレクト転送すれば、ディスク制御装置で迅速にパリティを生成可能となり、特にディスク装置がRAIDのときに有用となる。
【0023】
第5の観点では、本発明は、前記ディスク制御装置は更にデータキャッシュ手段を有しており、前記転送形態制御手段は、前記ホストから受信したコマンドがリードで、且つキャッシュヒットの場合には、データキャッシュ手段から前記ホストにデータを転送する転送方法を選択し、前記ホストから受信したコマンドがリードで、且つキャッシュミスの場合には、ディスク装置から前記ディスク制御装置及び前記ホストの両方にデータを転送するマルチターゲットダイレクト転送を選択することを特徴とする上記第1の観点のシステムを提供する。
【0024】
第6の観点では、本発明は、ホストと、複数のディスク装置と、前記複数のディスク装置へのデータのリード及びライトを制御するディスク制御装置とを有し、前記複数のディスク装置、及び前記ディスク制御装置は、前記ホストが接続しているインタフェースに接続しており、前記ディスク制御装置は、前記ホストから受信したリードコマンドで指定されたアドレスを、リード対象のデータが格納されている複数のディスク装置各々に対応するアドレスに変換するアドレス変換制御部と、変換されたアドレスに基づいて、リード対象のデータが格納されている複数のディスク装置各々へのディスクコマンドを生成するディスクコマンド制御部と、ディスクコマンドをディスク装置へ発行するI/F制御手段とを有し、前記ホストは、前記ディスク制御装置若しくは複数のディスク装置から分割されたリード対象のデータを前記インタフェースを介して受信する手段と、受信したデータを、前記ホストが有するメモリの予め定められたメモリアドレスに格納する手段とを有することを特徴とするシステムを提供する。
【0026】
【発明の実施の形態】
以下、図を参照して本発明の実施形態を説明する。なお、これにより本発明が限定されるものではない。
【0027】
[第一実施形態](ノーマル転送の例)
第一実施形態では、本発明のディスクアレイが備える転送形態の一つである「ノーマル転送」と呼ぶ転送形態を説明する。
「ノーマル転送」は、ホストとディスクアレイコントローラ、およびディスクアレイコントローラとディスク装置の間でのみデータ転送を行なう転送形態である。これは従来のディスクアレイの転送形態と同一であるが、後述するようにホストインタフェースとディスクインタフェースを一つのインタフェースに統合した点が従来と異なっている。
【0028】
(1) ディスクアレイの構成
図1に、第一実施形態の計算機システムの構成例を示す。
この計算機システム100は、ホスト3と、ホストインタフェース31と、ディスクアレイ4とを具備している。
ホストインタフェース31は、FC−ALである。
ディスクアレイ4は、ディスクアレイコントローラ1と、ディスク装置200〜204(これらを総称してディスク装置2と表現する)を具備している。図1では簡略化して表現しているが、ディスク装置200〜204は、ホストインタフェース31に接続している。
(2) ディスクアレイコントローラの構成
ディスクアレイコントローラ1は、中央制御手段10と、データキャッシュ手段11と、I/F制御手段12と、パリティ演算手段14と、内部バス15とを具備している。
前記I/F制御手段12は、ホスト3との通信に用いるときにはI/F制御手段12をターゲットモードにし、ディスク装置2との通信に用いるときにはI/F制御手段12をイニシエータモードに切り替える制御を行うイニシエータ/ターゲット切り替え部121を備えている。
【0029】
前記中央制御手段10は、MPU(Micro Processing Unit)を用いて実現している。そして、各種制御部は、MPUで動作する制御プログラムで実現している。
図2に、中央制御手段10の構成を示す。
中央制御手段10は、I/F制御手段12の操作を行いホスト3からコマンドを受信する等のホスト3との通信を行うホストコマンド制御部101と、受信したホストコマンドを解析しキャッシュのヒットミス判定やアクセスのシーケンシャル性判定などを行いコマンド毎にホスト3とディスクアレイコントローラ4とディスク装置2の間の転送の経路等のデータ転送形態を決定する転送形態制御部102と、ホストコマンドに格納されたディスクアレイ4への論理アドレスからディスク装置2への物理アドレスに変換するアドレス変換制御部103と、ディスクコマンドを生成しI/F制御手段12の操作を行いディスク装置2にコマンドを発行する等のディスク装置2との通信を行うディスクコマンド制御部104とを具備している。
【0030】
なお、上記において、ディスク装置2のアドレスを物理アドレスと称したが、一般に、Fibre ChannelをI/Fとするディスク装置は論理的なアドレス(LBA:ロジカルブロックアドレス)を用いて操作する。しかし、ここでは、ホスト3からディスクアレイ4を1台のディスク装置と見なしてアクセスするために用いるアドレスを論理アドレスと呼び、ディスク装置2をアクセスするために用いるディスク装置のアドレスを物理アドレスと呼んで、両者を区別することにする。
【0031】
また、前記転送形態制御部102は、第一実施形態でも使用しているが、「ノーマル転送」のみで動作する場合は省略可能である。
【0032】
(3) ホストとディスク装置の構成
図1に戻り、ホスト3は、ディスクアレイコントローラ1を接続するホストI/F制御手段32を具備している。なお、ホスト3は、ホスト転送形態制御手段33を具備しているが、ホスト転送形態制御手段33は第一実施形態では使用しない(第二実施形態以降で使用する)ため、説明しない。従って、第一実施形態「ノーマル転送」のみで動作する場合はホスト転送形態制御手段33を省略可能である。
【0033】
ディスク装置200〜204は、それぞれディスクI/F制御手段21を具備している。なお、ディスク装置200〜204は、ディスク転送形態制御手段22を具備しているが、ディスク転送形態制御手段22は第一実施形態では使用しない(第三実施形態以降で使用する)ため、説明しない。従って、第一実施形態「ノーマル転送」のみで動作する場合はディスク転送形態制御手段22を省略可能である。
【0034】
(4) アクセス種類
一般に、アクセスの種類を大別すると、ランダムアクセスと、シーケンシャルアクセスとがある。
ランダムアクセスは、ディスクアレイ4の論理アドレス空間の任意のアドレスのリードライトを行うアクセスである。データベースのレコード参照等で発生する。一般に、ランダムアクセスは、4KB程度の小転送長でアクセスされることが多い。ランダムアクセスでは、データ転送長が短いため、転送時間はわずかである。従って、全処理時間において、ディスク装置のシーク、回転待ち時間が支配的である。
シーケンシャルアクセスは、ディスクアレイ4の連続した論理アドレスを続けてリードライトするアクセスである。バッチ処理や画像アクセス等で発生する。一般に、シーケンシャルアクセスは、64KB等の大転送長でアクセスされることが多い。シーケンシャルアクセスでは、連続アクセスのためディスク装置のシークはほとんど発生しないし、シーケンシャルリード時にはディスク装置の内部でデータの先読みを行うので回転待ちもほとんど発生しないが、データ転送長が長いため転送時間は長い。よって、全処理時間において、データ転送時間が支配的である。
以下では、シーケンシャルアクセスとランダムアクセスの2つに分けて説明するが、シーケンシャルアクセスとランダムアクセスの中間または混合に位置するようなアクセスは、シーケンシャルアクセスとランダムアクセスのいずれかの処理方法で対処可能である。
【0035】
(5) ランダムリード
図3は、ディスクアレイのランダムリード動作を説明する概念図である。
・リードコマンド受信(図3(1))
ホスト3は、小転送長のリードホストコマンドを生成し、ホストI/F制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1へと発行する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けており、リードホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、リードホストコマンドを受領する。
【0036】
・転送形態の判定
転送形態制御部102は、リードホストコマンドを解析し、キャッシュのヒットミス判定を行う。
キャッシュがヒットした場合、データキャッシュ手段11からホスト3へのデータ転送を開始する。この動作は、後述するディスクアレイコントローラ1からホスト3へのデータ転送と同一である(図3(5)(6))。
キャッシュがミスした場合、転送形態制御部102は、シーケンシャルアクセス判定を行う。シーケンシャル判定は、前回のリードコマンドの論理アドレスと今回のリードコマンドの論理アドレスの連続性を判定することで行う。ここでは、ランダムアクセスのため、シーケンシャル判定がミスする。すると、転送形態制御部102は、転送形態を「ノーマル転送」であると判定する。
「ノーマル転送」においては、その転送形態をホスト3およびディスク装置2に通知する必要はない。そこで、続けて、転送形態制御部102は、データキャッシュ手段11の適切なアドレスに、このリードホストコマンドのデータを格納するキャッシュ領域を確保する。
【0037】
・アドレス変換
アドレス変換制御部103は、リードホストコマンドに格納されたディスクアレイへの論理アドレスから、ディスクアレイの構成に基づき、この論理アドレスのデータを格納するディスク装置番号を特定し、そのディスク装置の物理アドレスに変換する。
【0038】
・ディスクコマンドの発行(図3(2))
ディスクコマンド制御部104は、対象ディスク装置へのリードディスクコマンドを生成し、I/F制御部12にリードディスクコマンドを発行する。I/F制御手段12は、このリードディスクコマンドを受信する。イニシエータ/ターゲット切り替え制御部121は、I/F制御部12をターゲットモードに切り替える。I/F制御部12は、ホストインタフェース31を介し、ディスク装置2にリードディスクコマンドを発行する。リードディスクコマンドは、Fibre Channelのフレームとして送信する。
【0039】
・ディスク装置2からディスクアレイコントローラ4へのデータ転送(図3(3))
ディスク装置2は、リードディスクコマンドを受領すると、リードディスクコマンドを解析し、ヘッドのシーク、回転待ちを行い、指示された物理アドレスから指示された転送長のデータをリードする。次に、全データ転送に必要な個数のデータフレームを生成し、ディスクアレイコントローラ1にホストインタフェース31を介し発行する。
ディスクアレイコントローラ1のI/F制御手段12は、イニシエータモードとして動作し、データフレームを受信し、データキャッシュ手段11に転送する。
【0040】
・ディスクコマンド終了(図3(4))
ディスク装置2は、データフレームの転送終了後に、ステータスを格納したフレームを作成し、ディスクアレイコントローラ1に送信する。
ディスクアレイコントローラ1のI/F制御手段12は、ステータスを格納したフレームを受信し、中央制御手段10に通知する。
中央制御手段10のディスクコマンド制御部104は、正常にコマンド処理が終了したことを確認する。
【0041】
・ディスクアレイコントローラからホストへのデータ転送(図3(5))
ホストコマンド制御部101は、I/F制御手段12にデータ転送開始を指示する。I/F制御手段12のイニシエータ/ターゲット切り替え制御部121は、I/F制御手段12をターゲットモードに切り替える。I/F制御手段12は、データキャッシュ手段11からデータをリードし、データフレームを作成し、ホスト3にホストインタフェース31を介し転送を行う。
【0042】
・リードホストコマンドの終了(図3(6))
ディスクアレイコントローラ1のI/F制御手段12は、全データフレームを転送終了すると、ステータスフレームを生成し、ホスト3に送信する。
ホスト3は、ステータスフレームを受信し、データ転送が完了し、リードコマンドが正常終了したことを確認する。
【0043】
(6) ランダムライト
図4に、ディスクアレイ4のランダムリード動作の概念図を示す。
・ライトホストコマンドの処理(図4(1)(2)(3))
ホスト3は、ライトホストコマンドを生成し、ホストI/F制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1へと発行する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けており、ライトホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、ライトホストコマンドを受領する。
転送形態制御部102は、ホストコマンドを解析し、「ノーマル転送」と判断し、データを格納するためのキャッシュ領域をデータキャッシュ手段11に確保する。
ホストコマンド制御部101は、I/F制御手段12にキャッシュ領域のアドレスを通知し、転送開始を指示する。
I/F制御手段12は、転送許可フレームをホスト3に送信する。
ホスト3は、データフレームを送信する。
I/F制御手段12は、データを受信し、データキャッシュ手段11の指定された領域に格納し、転送が終了したらステータスフレームをホスト3に送信し、データ転送が完了したことを中央制御手段10に通知する。
ホスト3は、ステータスフレームを受信し、転送が完了し、ライトホストコマンドが正常終了したことを確認する。
【0044】
以上のように、ディスクアレイコントローラ1のデータキャッシュ手段11にデータをライトした時点でホストコマンドを終了する方法を、ライトバックキャッシュと呼ぶ。また、データキャッシュ手段11中にディスク装置2には書き込まれずに保存されているデータをダーティデータと呼び、ダーティデータを保存しているキャッシュのことを、ダーティキャッシュと呼ぶ。
ダーティデータの量が規定値以上になった場合や所定時間以上ダーティデータが保存されていた場合、ディスクアレイコントローラ1は、ダーティデータをディスク装置2に書き戻す処理を行う。この処理を、デステージ処理と呼ぶ。
【0045】
・パリティの生成(図4(4)(5)(6))
デステージに先立ち、ダーティデータに対応するパリティを生成する。ここで、ダーティデータがD1(new)であるとすると、それに対応した新パリティP0(new)は、D1(new)とD1(old)とP0(old)の排他的論理和により求める。このため、D1(old)とP0(old)をディスク装置2からリードする必要がある。そこで、両データをデータキャッシュ制御手段11上に一時的に格納する領域を割り当て、その領域に前記リードホストコマンドに対するディスク装置からディスクアレイコントローラへのデータ転送と同一の方法でリードする。
中央制御手段10は、パリティ演算手段14にパリティP0(new)の生成要求を発行する。
パリティ演算手段14は、パリティP0(new)を生成し、データキャッシュ手段11に予め用意した領域に格納する。
【0046】
・デステージ処理(ディスク装置ライト処理)(図4(7)(8)(9))
新データと新パリティのデステージ処理は、前記リードホストコマンドに対するディスク装置からディスクアレイコントローラへのデータ転送と基本的に同一である。相違点は、転送方向が逆である(リードがライトになる)こと、および、ディスクアレイコントローラ1がディスク装置2にライトディスクコマンドを発行すると、ディスク装置2は転送許可フレームをディスクアレイコントローラ1に発行し、これを受信したディスクアレイコントローラ1のI/F制御手段12がデータフレームをディスク装置2に送出することである。
【0047】
ディスク装置2は、データのライトが終了すると、ステータスフレームをディスクアレイコントローラ1に送信する。
これを受信すると、ディスクアレイコントローラ1の中央制御手段10は、新データおよび新パリティのデータキャッシュ領域をダーティからクリーンに属性を変更すると共に、旧データおよび旧パリティのデータキャッシュ領域を無効化する。以上で、ライトホストコマンドの処理を終了する。
【0048】
・シーケンシャルアクセス
キャッシュのヒットミス判定でミスし、さらにシーケンシャル判定でヒットすると、シーケンシャルアクセスの処理の行なうが、これは上記ランダムアクセスと基本的に同一の手順である。異なる点は、シーケンシャルリード時には、複数のディスク装置201〜204に対し同時に複数のリードコマンドを発行し、データキャッシュ手段11上でデータを集合しホスト3に転送することと、シーケンシャルライト時には、データキャッシュ手段11上にパリティグループのデータがそろう場合があるため、ディスク装置2から旧データ,旧パリティをリードすることなく新パリティを生成する場合があることである。
【0049】
(7) 第一実施形態の効果
以上の第一実施形態によれば、ディスクアレイコントローラ1は、ホスト3との接続インタフェースおよびディスク装置2との接続インタフェースを一つのホストインタフェース31で共用し、これを唯一つのI/F制御手段12で制御しているので、fibre channelのような高価なインタフェースであっても、ディスクアレイコントローラ1を低コスト化できる。
【0050】
[第二実施形態](ダイレクト転送の例1)
第二実施形態では、本発明のディスクアレイが備える転送形態の一つである「ダイレクト転送」と呼ぶ転送形態を説明する。
「ダイレクト転送」は、ホストとディスク装置がディスクアレイコントローラを介さずにデータ転送を行なう転送形態である。「ダイレクト転送」は、主にシーケンシャルリード時に有効な転送形態である。
【0051】
(1) ディスクアレイの構成
ディスクアレイ1は、図1,図2を参照して第一実施形態で説明した構成と同様である。「ダイレクト転送」を行う際には、図2の中央制御手段10の転送形態制御手段102を使用する。
【0052】
(2) ホストの構成
ホスト3は、図1を参照して第一実施形態で説明した構成と同様である。「ダイレクト転送」を行う際には、ホスト転送形態制御手段33を使用する。ホスト転送形態制御手段33は、ディスクアレイコントローラ1が決定し通知してきた転送形態情報を受信し、指示された転送形態を用いてデータを授受できるようにホストI/F制御手段32を制御する。
【0053】
(3) ディスク装置の構成
ディスク装置2は、図1を参照して第一実施形態で説明した構成と同様である。なお、ディスク装置200〜204は、ディスク転送形態制御手段22を具備しているが、ディスク転送形態制御手段22は第二実施形態では使用しない(第三実施形態以降で使用する)ため、説明しない。従って、第一実施形態「ノーマル転送」および第二実施形態「ダイレクト転送の例1」のみで動作する場合はディスク転送形態制御手段22を省略可能である。
【0054】
(4) シーケンシャルリード
・リードコマンド受信(図5(1))
ホスト3は、シーケンシャルアクセスを行うため、リードホストコマンドを生成し、ホストI/F制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1に発行する。ここで、転送長は64KBであると仮定する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けしており、リードホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、リードホストコマンドを受領する。
【0055】
・転送形態の判定
中央制御手段10の転送形態制御部102は、リードホストコマンドを解析し、キャッシュのヒットミス判定を行う。シーケンシャルアクセスなのでキャッシュはミスする。
キャッシュがミスした場合、転送形態制御部102は、シーケンシャルアクセス判定を行う。ここでは、シーケンシャルアクセスなので、シーケンシャル判定はヒットする。すると、転送形態制御部102は、転送形態を「ダイレクト転送」と決定する。
【0056】
・アドレス変換
アドレス変換制御部103は、リードホストコマンドの論理アドレスからディスクアレイの構成に基づき、この論理アドレスのデータを格納するディスク装置番号を特定し、そのディスク装置の物理アドレスに変換する。この変換を次に具体的に説明する。
図6は、RAID4もしくはRAID5のディスクアレイの一つのパリティグループを示した図である。
ストライプ220,…,224は、ディスク装置200,…,204のそれぞれのストライプを示している。ステップ220〜223はデータストライプであり、ストライプ224はパリティストライプである。ストライプサイズは、64KBとする。
シーケンシャルアクセス対象のデータの転送長が64KBであるが、アドレス変換の結果、このデータがディスク装置200のストライプ220の後半16KBとディスク装置201のストライプ221の前半48KBに該当する場合、シーケンシャルアクセス対象のデータは図6の斜線のようになる。
【0057】
図7は、論理アドレスと物理アドレスの関係の説明図である。
一般に、ホスト3のホストメモリは、仮想記憶と呼ばれるメモリメカニズムを使用しており、4KB等のメモリブロックをページと呼び、ページ単位で必要なメモリの割り当てを行っている。このため、アプリケーションから見て連続した論理アドレスでも、実際のホストメモリへのマッピングは、いくつかの領域に分断されていることが多い。そこで、ホストメモリアドレスと論理アドレスとディスクアレイ4の物理アドレスの対応を管理している。
そして、その対応に従って、ホストI/F制御手段32は、受信したデータを適切なホストメモリアドレスに転送する。
このようなメカニズムをScatter/Gather(S/G)と呼び、論理アドレスとメモリアドレスとの関係を示したリストをS/Gリストと呼び、ホストコマンドを発行する際には、ホスト3が生成し、ホストI/F制御手段32に通知してある。このリストに従って、ホストI/F制御手段32が、データ転送を行う。
【0058】
図8に、アドレス変換制御部103が作成するアドレス変換リスト1030を例示する。
このアドレス変換リスト1030は、ある論理アドレス(例えばLA0)からある転送長分(例えば16KB)のデータが特定のディスク装置(例えばディスク装置200)の特定の物理アドレス(例えばPA1)から開始することを示している。
【0059】
・ダイレクト転送メッセージの転送(図5(2)、(3))
図5に戻り、次にホストコマンド制御部101は、ホスト3に対するダイレクト転送メッセージを作成し、I/F制御手段12に発行する。ダイレクト転送メッセージには、ダイレクト転送メッセージであることを示す識別子と、上記アドレス変換リスト1030を格納する。
I/F制御手段12は、メッセージフレームを作成し、そのメッセージフレームをホスト3に送付し、さらに、ステータスフレームをホスト3に転送し、リードホストコマンドを一旦終了する。
【0060】
・ダイレクト転送S/Gリストの生成
ホスト3のホストI/F制御手段32は、メッセージフレームを受信し、さらに続けてステータスフレームを受信し、ここで一旦リードホストコマンドを仮終了とする。
ホスト転送形態制御手段33は、このメッセージフレームに格納されたダイレクト転送メッセージを解析し、転送形態が「ダイレクト転送」であることを認識する。そして、ダイレクト転送メッセージに格納された上記アドレス変換リスト1030とS/Gリストを比較し、各ディスク装置毎の物理アドレスとメモリ転送先アドレスとの関係を調査し、各ディスク装置200,201に対応したダイレクト転送S/Gリストを生成する。
図9に、ダイレクト転送S/Gリストを例示する。
ダイレクト転送S/Gリスト3300がディスク装置200に対応し、ダイレクト転送S/Gリスト3301がディスク装置201に対応する。
【0061】
・ダイレクト転送の実行(図5(4)、(5)、(6))
次に、ホスト転送形態制御手段33は、アドレス変換リスト1030を用い、各ディスク装置に対するディスクコマンドを作成し、ホストI/F制御手段32に発行する。
ホストI/F制御手段32は、ホストインタフェース31を介して、各ディスク装置200,201にディスクコマンドを発行する。
ディスク装置200,300は、独立にシーク,回転待ちを行い、どちらか先に準備の出来たものからデータ転送を開始する。
ホストI/F制御手段32は、データフレームを受信し、フレームのヘッダから転送元ディスク装置の番号を確認し、それぞれのディスク装置毎のダイレクト転送S/Gリストに従ってホストメモリにデータ転送を行う。この例では、ディスク装置200からデータが送られてきた場合、最初の8KBをホストメモリのメモリアドレスMA0に格納し、次の8KBをメモリアドレスMA1に格納する。また、ディスク装置201からデータが送られてきた場合、最初の24KBをメモリアドレス(MA1+8KB)に格納し、次の24KBをメモリアドレスMA2に格納する。この際、ディスク装置200,201の物理アドレスは意識する必要はなく、送られてきたデータの順番にダイレクト転送S/Gリストに従ってデータを格納していけばよい。
全てのディスク装置からのデータ転送が完了し、ステータスフレームを受信すると、ディスクコマンドが正常終了する。
【0062】
・ホストコマンドの終了
全てのディスクコマンドが正常終了した時点で、データ転送が完了するので、ホストI/F制御手段32は、先に仮終了したホストコマンドを正常終了し、この要求を発行したアプリケーションに対して正常終了ステータスを返し、処理を終える。
【0063】
(5) シーケンシャルリード以外の処理
上記ではシーケンシャルリードの処理について説明したが、シーケンシャルリード以外(例えばランダムリード)においても上記と同様にダイレクト転送を行うことが出来る。
【0064】
上記ダイレクト転送の場合、ディスクアレイコントローラ1内部のデータキャッシュ手段11にデータをキャッシュすることが出来ないため、キャッシュヒットによるアクセスの高速化を実現できなくなる。
しかし、2度と使わないデータであることが分かっている(キャッシュをする必要がない)場合や、データキャッシュ手段11のメモリ容量が小さい(データキャッシュ手段11でのキャッシュのヒットが期待できない)場合や、ホスト3に設けたディスク装置キャッシュの容量が大きい(データキャッシュ手段11を使う必要がない)場合などでは、上記ダイレクト転送も有効である。
なお、後述の第四実施形態では、ディスクアレイコントローラ1においてキャッシングを行うと同時にダイレクト転送を行う。
【0065】
(6) 第二実施形態の効果
以上の第二実施形態によれば、シーケンシャルリードの際には、ディスク装置2からリードしたデータをディスクアレイコントローラ1を経由せず、直接ホスト3に転送するので、ホストインタフェース31の転送速度を最大限に利用したデータ転送を実現できる。また、ホストI/Fとディスク装置I/Fが1本になり、低価格化できる。さらに、第一実施形態の「ノーマル転送」のようにディスク装置2からディスクアレイコントローラ1への転送とディスクアレイコントローラ1からホスト3への転送の2回に渡って同一のI/Fを使用するのでは性能の低下があるが、このような性能の低下を引き起こすことなく高速転送を実現できる。すなわち、データを一旦ディスクアレイコントローラ1のデータキャッシュ手段11にリードするデータバッファリングに要していた処理時間を削減でき、アクセス応答時間を短縮できる。
【0066】
さらに、ディスク装置2からのデータは、ディスクアレイコントローラ1内部のデータバスを通らないので、ディスクアレイコントローラ1のデータバスとキャッシュメモリの帯域を大きくする必要がない。その結果、バスのビット幅を減らしたり、周波数を下げたり、メモリのビット幅を減らしたり、インタリーブの数を少なくしたりすることができ、ディスクアレイコントローラ1を容易に開発でき、さらにディスクアレイコントローラ1のコストを著しく低下させることができる。
【0067】
さらに、シーケンシャルアクセス時にはキャッシュヒットはほとんどないため、従来のディスクアレイにおいて無駄にデータキャッシュを使用していたことによるキャッシュヒット率の低下を防止することができ、ランダムアクセスのようなキャッシュヒットするアクセスの高速化を実現できる。
【0068】
さらに、従来と同一のディスク装置を使用したままでダイレクト転送による高速化を実現でき、従来システムからの移行が容易である。
【0069】
[第三実施形態](ダイレクト転送の例2)
第三実施形態では、上記第二実施形態とは異なる「ダイレクト転送」を説明する。
第三実施形態の「ダイレクト転送」も、第二実施形態同様、主にシーケンシャルリード時に有効な転送形態である。
(1) ディスクアレイの構成
上記第二実施形態と同一である。
(2) ホストの構成
上記第二実施形態と同一である。
(3) ディスク装置の構成
上記第二実施形態と同一である。第三実施形態では、ディスクアレイコントローラ1が決定した転送形態を受信し、それに基づき転送形態を決定するディスク転送形態制御手段22を使用する。
【0070】
(4)シーケンシャルリード
・リードコマンド受信(図10(1))
ホスト3は、シーケンシャルアクセスを行うため、リードホストコマンドを生成し、ホストI/F制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1に発行する。ここで、転送長は64KBであると仮定する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けしており、リードホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、リードホストコマンドを受領する。
【0071】
・転送形態の判定
中央制御手段10の転送形態制御部102は、リードホストコマンドを解析し、キャッシュのヒットミス判定を行う。シーケンシャルアクセスなのでキャッシュはミスする。
キャッシュがミスした場合、転送形態制御部102は、シーケンシャルアクセス判定を行う。ここでは、シーケンシャルアクセスなので、シーケンシャル判定はヒットする。すると、転送形態制御部102は、転送形態を「ダイレクト転送」と決定する。
【0072】
・アドレス変換
アドレス変換制御部103は、リードホストコマンドの論理アドレスからディスクアレイの構成に基づき、この論理アドレスのデータを格納するディスク装置番号を特定し、そのディスク装置の物理アドレスに変換する。ここで、アドレス変換制御部103は、図8に示すアドレス変換リスト1030を生成したものとする。
【0073】
・ダイレクト転送メッセージの転送(図10(2))
図10に戻り、次にホストコマンド制御部101は、ホスト3に対するダイレクト転送メッセージを作成し、I/F制御手段12に発行する。
I/F制御手段12は、メッセージフレームを作成し、そのメッセージフレームをホスト3に送付する。ただし、第二実施形態とは異なり、この時点では、ステータスフレームは送出しない。
【0074】
・ダイレクト転送S/Gリストの生成
ホスト3のホストI/F制御手段32は、メッセージフレームを受信する。
ホスト転送形態制御手段33は、受信したメッセージフレームに格納されたダイレクト転送メッセージを解析し、転送形態が「ダイレクト転送」であることを認識する。
そして、第二実施形態と同様にして、ダイレクト転送S/Gリスト3300,3301を生成し、ディスク装置2からデータ転送が行われるのを待機する。
【0075】
・ディスク装置へのコピーコマンドの発行(図10(3))
一方、ディスクアレイコントローラ1において、中央制御手段10のディスクコマンド制御部104は、アドレス変換リスト1030に基づいて、ディスク装置2の指定アドレスから指定長のデータをホスト3に対して転送するよう指示するコピーコマンドを生成し、I/F制御手段12に発行する。このコピーコマンドは、ディスクアレイコントローラ1にディスク装置2からデータをリードするリードコマンドとは区別する。
I/F制御手段12は、各ディスク装置200,201にそれぞれコピーコマンドを発行する。
【0076】
・コピーコマンドによるダイレクト転送の実行(図10(4)、(5))
ディスク装置200,201では、それぞれのディスクI/F制御手段21がコピーコマンドを受信する。
ディスク転送形態制御手段22は、コピーコマンドによるダイレクト転送を実施することを確認する。
そして、ディスク装置200,201は、独立にシーク、回転待ちを行い、どちらか先に準備の出来たものからホスト3に対しデータ転送を開始する。
ホスト3のホストI/F制御手段32は、データフレームを受信し、そのデータフレームのヘッダから転送元ディスク装置の番号を確認し、それぞれのディスク装置毎のダイレクト転送S/Gリスト3300,3301に従ってホストメモリにデータ転送を行う。
全てのディスク装置からのデータ転送が完了すると、ディスク装置200,201は、ステータスフレームを作成し、ディスクアレイコントローラ1に送出する。
そのステータスフレームをディスクアレイコントローラ1のI/F制御手段12が受信すると、コピーコマンドが正常終了する。
【0077】
・ホストコマンドの終了
全てのコピーコマンドが正常終了した時点で、ディスクアレイコントローラ1のホストコマンド制御部101は、リードホストコマンドに対するステータスを作成する。
I/F制御手段12は、ステータスフレームを作成し、ホスト3に送出する。ホスト3は、このステータスフレームを受信し、ホストコマンドが正常終了したことを認識し、この要求を発行したアプリケーションに対して正常終了ステータスを返し、処理を終える。
【0078】
(5) 第三実施形態の効果
以上の第三実施形態によっても、第二実施形態と同様の効果を得ることができる。
【0079】
[第四実施形態](マルチターゲットダイレクト転送の例)
第四実施形態では、本発明のディスクアレイが備える転送形態の一つである「マルチターゲットダイレクト転送」と呼ぶ転送形態を説明する。
「マルチターゲットダイレクト転送」は、主にランダムリード時に有効な転送形態であり、第二および第三実施形態と同様にインタフェース帯域の消費と応答時間の遅延の両方を解決できると共に、キャッシュによる高速化も可能となる。(1) ディスクアレイの構成
第三実施形態と同一である。
(2) ホストの構成
第三実施形態と同一である。
(3) ディスク装置の構成
第三実施形態と同一である。
【0080】
(4)ランダムリード
・リードコマンド受信(図11(1))
図11に示すように、ホスト3は、リードアクセスを行うため、リードホストコマンドを生成し、ホストインタフェース制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1に発行する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けしており、リードホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、リードホストコマンドを受領する。
【0081】
・転送形態の判定
転送形態制御部102は、リードホストコマンドを解析し、キャッシュのヒットミス判定を行う。ここでは、キャッシュミスであったとする。すると、転送形態制御部102は、次にシーケンシャルアクセス判定を行う。ここでは、ランダムアクセスなので、ミスヒットとなる。そこで、転送形態制御部102は、転送形態を「マルチターゲットダイレクト転送」と決定する。
【0082】
・アドレス変換
次に、アドレス変換制御部103は、リードホストコマンドの論理アドレスからディスクアレイの構成に基づきディスク装置番号と物理アドレスを得て、対象ディスク装置へのマルチターゲットリードディスクコマンドを生成する。このマルチターゲットリードディスクコマンドは、ディスク装置2からリードしたデータをディスクアレイコントローラ1とホスト3の両方に同時に転送することを指令する命令であり、イニシエータIDと複数のターゲットIDとを持つことができる。
【0083】
・ダイレクト転送メッセージの転送(図11(2))
次に、ホストコマンド制御部101は、ホスト3に対するダイレクト転送メッセージを作成し、I/F制御手段12に発行する。
I/F制御手段12は、メッセージフレームを作成し、ホスト3に送付する。
【0084】
・ダイレクト転送S/Gリストの生成
ホスト3のホストI/F制御手段32は、メッセージフレームを受信する。
ホスト転送形態制御手段33は、受信したメッセージフレームに格納されたダイレクト転送メッセージを解析し、転送形態が「マルチターゲットダイレクト転送」であることを認識する。そして、ダイレクト転送S/Gリストを生成し、ディスク装置2からデータ転送が行われるのを待機する。
【0085】
・マルチターゲットリードディスクコマンドの発行(図11(3))
一方、ディスクコマンド制御部104は、I/F制御部12に、マルチターゲットリードディスクコマンドを発行する。
I/F制御手段12は、ホストインタフェース31を介し、ディスク装置2にコマンドフレームを発行する。
【0086】
・ディスク装置からディスクアレイコントローラとホストへのデータ転送(図11(4))
ディスク装置2のディスクI/F制御手段21は、コマンドフレームを受領する。
ディスク転送形態制御手段22は、コマンドを解析し、マルチターゲットリードディスクコマンドであることを認識し、データをディスクアレイコントローラ1とホスト3の両者に転送することを判断する。そして、ヘッドのシーク,回転待ちを行い、目的の物理アドレスから指示された転送長のデータをリードする。
次に、ディスクI/F制御手段21は、ディスクアレイコントローラ1とホスト3の2つのターゲットIDを有するデータフレームを全データ転送に必要な個数生成し、ホストインタフェース31を介して発行する。
ディスクアレイコントローラ1のI/F制御手段12とホスト3のホストI/F制御手段32とは、同一のデータフレームを受信する。
ディスクアレイコントローラ1のI/F制御手段12は、あらかじめ指示されたデータキャッシュ手段11の領域にデータを格納する。
また、ホスト3のホストI/F制御手段32は、ダイレクトS/Gリストに従ってホストメモリにデータを格納する。
【0087】
・ディスクコマンド終了(図11(5))
転送終了後に、ディスク装置2のディスクI/F制御手段21は、ステータスを格納したフレームを作成し、ディスクアレイコントローラ1に送信する。
ディスクアレイコントローラ1のI/F制御手段12は、これを受信し、中央制御手段10に通知する。
中央制御手段10のディスクコマンド制御部104は、正常にコマンド処理が終了したことを確認する。
【0088】
・ホストコマンドの終了(図11(6))
ディスクアレイコントローラ1のI/F制御手段12は、ステータスフレームを生成し、ホスト3に送信する。
ホスト3は、ステータスフレームを受信し、データ転送が完了し、リードコマンドが正常終了したことを確認する。
【0089】
(5)シーケンシャルライト
・ライトコマンド受信(図12(1))
図12に示すように、ホスト3は、ライトアクセスを行うため、ライトホストコマンドを生成し、ホストインタフェース制御手段32を制御し、ホストインタフェース31を介して、ディスクアレイコントローラ1に発行する。
ディスクアレイコントローラ1のI/F制御手段12は、ターゲットモードでコマンドを待ち受けしており、ライトホストコマンドを受信し、中央制御手段10に通知する。
通知を受けた中央制御手段10のホストコマンド制御部101は、ライトホストコマンドを受領する。
【0090】
・転送形態の判定
転送形態制御部102は、ライトホストコマンドを解析し、パリティグループの全データのライトであることを認識し、「マルチターゲットダイレクト転送」と判定する。
【0091】
・アドレス変換
次に、アドレス変換制御部103は、ライトホストコマンドの論理アドレスからディスクアレイの構成に基づきディスク装置番号と物理アドレスを得て、対象ディスク装置へのマルチターゲットライトディスクコマンドを生成する。このマルチターゲットライトディスクコマンドは、ライトするデータをホスト3からディスク装置2とディスクアレイコントローラ1の両方に同時に転送することを指令する命令であり、イニシエータIDと複数のターゲットIDとを持つことができる。
【0092】
・ダイレクト転送メッセージの転送(図12(2))
次に、ホストコマンド制御部101は、ホスト3に対するダイレクト転送メッセージを作成し、I/F制御手段12に発行する。
I/F制御手段12は、メッセージフレームを作成し、ホスト3に送付する。
【0093】
・ダイレクト転送S/Gリストの生成
ホスト3のホストI/F制御手段32は、メッセージフレームを受信する。
ホスト転送形態制御手段33は、受信したメッセージフレームに格納されたダイレクト転送メッセージを解析し、転送形態が「マルチターゲットダイレクト転送」であることを認識する。そして、ダイレクト転送S/Gリストを生成する。
【0094】
・マルチターゲットライトディスクコマンドの発行(図12(3))
一方、ディスクコマンド制御部104は、I/F制御部12に、マルチターゲットライトディスクコマンドを発行する。
I/F制御手段12は、ホストインタフェース31を介し、ディスク装置2にコマンドフレームを発行する。
ディスク装置2のディスクI/F制御手段21は、コマンドフレームを受領する。
ディスク転送形態制御手段22は、コマンドを解析し、マルチターゲットライトディスクコマンドであることを認識する。
【0095】
・ホストからディスク装置とディスクアレイコントローラへのデータ転送(図12(4))
ホスト3は、ディスク装置2とディスクアレイコントローラ1の両方にデータを転送する。
ディスクアレイコントローラ1は、キヤッシュにデータを格納する。
ディスク装置2は、データを格納する。
【0096】
・ディスクコマンド終了(図12(5))
データ格納終了後に、ディスク装置2のディスクI/F制御手段21は、ステータスを格納したフレームを作成し、ディスクアレイコントローラ1に送信する。
ディスクアレイコントローラ1のI/F制御手段12は、これを受信し、中央制御手段10に通知する。
中央制御手段10のディスクコマンド制御部104は、正常にコマンド処理が終了したことを確認する。
【0097】
・ホストコマンドの終了(図12(6))
ディスクアレイコントローラ1のI/F制御手段12は、ステータスフレームを生成し、ホスト3に送信する。
ホスト3は、ステータスフレームを受信し、データ転送が完了し、ライトコマンドが正常終了したことを確認する。
【0098】
・パリティのライト(図12(7)(8))
ディスクアレイコントローラ1は、キャッシュにパリティグループの全データがそろっていれば、パリティを生成し、ディスク装置2にライトする。一方、パリティグループの全データがそろわない場合は、ディスクアレイコントローラ1がディスク装置2から旧データおよび旧パリティのリードを行い、新データと旧データと旧パリティから新パリティを生成し、新パリティをディスク装置2にライトする。
【0099】
・ディスクコマンドの終了(図12(9))
パリティ格納終了後に、ディスク装置2のディスクI/F制御手段21は、ステータスを格納したフレームを作成し、ディスクアレイコントローラ1に送信する。
ディスクアレイコントローラ1のI/F制御手段12は、これを受信し、中央制御手段10に通知する。
中央制御手段10のディスクコマンド制御部104は、正常にコマンド処理が終了したことを確認する。
【0100】
(6) ランダムリードおよびシーケンシャルライト以外の処理
ランダムライトやシーケンシャルリードの場合も、上記と同様にマルチターゲットダイレクト転送を行える。
【0101】
(7) 第四実施形態の効果
以上の第四実施形態によれば、ホスト3とディスクアレイコントローラ1とディスク装置2のすべてが同一のホストインタフェース31に接続しているので、1回のディスク装置2からの転送によりホスト3とディスクアレイコントローラ1の両方に同時にデータを転送できると共に1回のホスト3からの転送によりディスク装置2とディスクアレイコントローラ1の両方に同時にデータを転送でき、ホストインタフェース31のトラフィックを低減できる。すなわち、第二実施形態と同様の効果をすべてのアクセス種類において実現できる。また、ディスクアレイコントローラ1のデータキャッシュ手段11にデータをキャッシュできる。特に、常時パリティグループ単位でライトするRAlD3のライト動作で有効に機能する。
【0102】
[第五実施形態](デュアルコントローラ構成)
第五実施形態では、第一実施形態〜第四実施形態において、同一のディスクアレイコントローラを2台設け、それぞれが同一のホストインタフェースとディスク装置I/F(とディスク装置)を共有する構成にする。このような構成をデュアルコントローラ構成と称する。
デュアルコントローラ構成では、コントローラ内部のバス、MPU、キャッシュメモリ等の構成部のそれぞれの障害に対して耐性を持たせることができる。
【0103】
第1実施形態または第四実施形態にデュアルコントローラ構成を適用した場合、ホスト3からのデータライト時には、一方のディスクアレイコントローラがデータをキャッシュにライトすると同時に、他方のディスクアレイコントローラのキャッシュにもライトし、データを二重化する。
このとき、一方のディスクアレイコントローラがデータを受け取った後、そのディスクアレイコントローラが他方のディスクアレイコントローラにデータをコピーしてもよいが、マルチターゲット転送によりホスト3から両方のディスクアレイコントローラに同時にデータを転送するのが好ましい。これにより、ディスクアレイコントローラ間のコピー処理を削減できる。
【0104】
[第六実施形態](インタフェースの分離)
上記第一実施形態〜第五実施形態では、ホスト3に対する通信を行うI/F制御手段とディスク装置2に対する通信を行うI/F制御手段とを一つのI/F制御手段12で共用したが、両者を別々のI/F制御手段に分離し、両I/F制御手段を同一のホストインタフェース31に接続する構成としてもよい。
この場合、I/F制御手段のコストが2倍になるものの、イニシエータ/ターゲットを切り替えずに使用できるので、制御が容易になり、性能が向上する。
【0105】
[追記]
本発明の転送形態は、上記第一から第四の実施形態で説明したアクセス種類との組み合わせに限定されるものではなく、任意のアクセス種類(上記していないアクセス種類でもよい)と組み合わせて使用することができる。
【0106】
【発明の効果】
本発明のシステムによれば、次の効果が得られる。
(1)高速インタフェースを採用したとしても、ホスト用インタフェースとディスク装置用インタフェースを1つのインタフェースで共用するので、低コスト化できる。
(2)ダイレクト転送を用いることで、ディスク制御装置を経由せずに、ディスク装置とホスト間でデータを直接転送することができるので、バッファリングに要していたオーバヘッド時間を削減でき、応答性を改善でき、高速インタフェースの性能を最大限発揮することができ、かつ、ディスク制御装置内部の転送速度を低く押さえることができるので、技術的にも容易に開発可能となり、低コスト化を図ることができる。
(3)マルチターゲットダイレクト転送を用いることで、ダイレクト転送による上記効果と、キャッシュによる応答性の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の計算機システムの構成図である。
【図2】本発明の一実施形態のディスクアレイコントローラにおける中央制御手段の内部構成図である。
【図3】本発明の第一実施形態のランダムリードにおける「ノーマル転送」の動作説明図である。
【図4】本発明の第一実施形態のランダムライトにおける「ノーマル転送」の動作説明図である。
【図5】本発明の第二実施形態のシーケンシャルリードにおける「ダイレクト転送」の動作説明図である。
【図6】本発明の第二実施形態を説明するためのリードデータの概念図である。
【図7】本発明の第二実施形態を説明するための論理アドレスと物理アドレスの関係の説明図である。
【図8】本発明の第二実施形態を説明するためのアドレス変換リストの構成図である。
【図9】本発明の第二実施形態を説明するためのダイレクト転送S/Gリストの構成図である。
【図10】本発明の第三実施形態のシーケンシャルリードにおける「ダイレクト転送」の動作説明図である。
【図11】本発明の第四実施形態のランダムリードにおける「マルチターゲットダイレクト転送」の動作説明図である。
【図12】本発明の第四実施形態のシーケンシャルライトにおける「マルチターゲットダイレクト転送」の動作説明図である。
【図13】従来のRAID型ディスクアレイのデータ構造の説明図である。
【図14】従来のSCSI型ディスクアレイの一例の構成図である。
【図15】従来のFC型ディスクアレイの一例の構成図である。
【符号の説明】
1 ディスクアレイコントローラ
2 ディスク装置
3 ホスト
4 ディスクアレイ
10 中央制御手段
11 データキャッシュ手段
12 I/F制御手段
14 パリティ演算手段
21 ディスクI/F制御手段
22 ディスク転送形態制御手段
31 ホストインタフェース
32 ホストI/F制御手段
33 ホスト転送形態制御手段
100 計算機システム
101 ホストコマンド制御部
102 転送形態制御部
103 アドレス変換制御部
104 ディスクコマンド制御部
121 イニシエータ/ターゲット切り替え制御部
200〜204 ディスク装置
Claims (6)
- 複数のディスク装置と、
前記複数のディスク装置に対するデータのリード及びライトを制御するディスク制御装置とを有し、
前記複数のディスク装置、及び前記ディスク制御装置は、ホストが接続されているホストインタフェースに接続され、
前記ディスク制御装置と前記ホストとの間の通信、及び前記ディスク制御装置と前記複数のディスク装置との間の通信は、前記ホストインタフェースを介して実行され、
前記ディスク制御装置は、
前記ホストからコマンドを受信するホストコマンド制御手段と、
前記ホストから受信したコマンドを解釈し、解釈結果に応じて、該コマンドに応じたデータの転送経路を選択する転送形態制御手段と、
前記ホストから受信したコマンドで指定されたアドレスを、ディスク装置に対応するアドレスに変換するアドレス変換制御手段と、
変換されたアドレスに基づいて、ディスク装置に対するディスクコマンドを生成するディスクコマンド制御手段と、
ディスクコマンドを前記ホストインタフェースを介してディスク装置に発行するI/F制御手段とを有することを特徴とするシステム。 - 前記転送形態制御手段は、
前記ホストから受信したコマンドがリードのときには、ディスク装置から前記ディスク制御装置にデータを転送し、ついで前記ディスク制御装置から前記ホストにデータを転送するノーマル転送を選択し、
前記ホストから受信したコマンドがライトのときには、前記ホストから前記ディスク制御装置にデータを転送し、ついで前記ディスク制御装置からディスク装置にデータを転送するノーマル転送を選択することを特徴とする請求項1記載のシステム。 - 前記転送形態制御手段は、
前記ホストから受信したコマンドがリードのときには、ディスク装置から前記ディスク制御装置を経由せずに前記ホストにデータを直接転送するダイレクト転送を選択し、
前記ホストから受信したコマンドがライトのときには、前記ホストから前記ディスク制御装置を経由せずにディスク装置にデータを直接転送するダイレクト転送を選択することを特徴とする請求項1記載のシステム。 - 前記ディスク制御装置は更にデータキャッシュ手段を有しており、
前記転送形態制御手段は、
前記ホストから受信したコマンドを解析し、更にキャッシュヒットミス判定を実行し、
前記ホストから受信したコマンドがリードで、且つキャッシュミスである場合には、ディスク装置から前記ディスク制御装置及び前記ホストの両方にデータを転送するマルチターゲットダイレクト転送を選択し、
前記ホストから受信したコマンドがライトの場合には、前記ホストから前記ディスク制御装置及びディスク装置の両方にデータを転送するマルチターゲットダイレクト転送を選択することを特徴とする請求項1記載のシステム。 - 前記ディスク制御装置は更にデータキャッシュ手段を有しており、
前記転送形態制御手段は、
前記ホストから受信したコマンドがリードで、且つキャッシュヒットの場合には、データキャッシュ手段から前記ホストにデータを転送する転送方法を選択し、
前記ホストから受信したコマンドがリードで、且つキャッシュミスの場合には、ディス ク装置から前記ディスク制御装置及び前記ホストの両方にデータを転送するマルチターゲットダイレクト転送を選択することを特徴とする請求項1記載のシステム。 - ホストと、
複数のディスク装置と、
前記複数のディスク装置へのデータのリード及びライトを制御するディスク制御装置とを有し、
前記複数のディスク装置、及び前記ディスク制御装置は、前記ホストが接続しているインタフェースに接続しており、
前記ディスク制御装置は、
前記ホストから受信したリードコマンドで指定されたアドレスを、リード対象のデータが格納されている複数のディスク装置各々に対応するアドレスに変換するアドレス変換制御部と、
変換されたアドレスに基づいて、リード対象のデータが格納されている複数のディスク装置各々へのディスクコマンドを生成するディスクコマンド制御部と、
ディスクコマンドをディスク装置へ発行するI/F制御手段とを有し、
前記ホストは、
前記ディスク制御装置若しくは複数のディスク装置から、分割されたリード対象のデータを前記インタフェースを介して受信する手段と、
受信したデータを、前記ホストが有するメモリの予め定められたメモリアドレスに格納する手段とを有することを特徴とするシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32176798A JP3668922B2 (ja) | 1998-11-12 | 1998-11-12 | システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32176798A JP3668922B2 (ja) | 1998-11-12 | 1998-11-12 | システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004189108A Division JP4111450B2 (ja) | 2004-06-28 | 2004-06-28 | ディスクアレイ制御方法及びディスクアレイ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000148652A JP2000148652A (ja) | 2000-05-30 |
JP3668922B2 true JP3668922B2 (ja) | 2005-07-06 |
Family
ID=18136218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32176798A Expired - Fee Related JP3668922B2 (ja) | 1998-11-12 | 1998-11-12 | システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3668922B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4116413B2 (ja) | 2002-12-11 | 2008-07-09 | 株式会社日立製作所 | プリフェッチアプライアンスサーバ |
JP2005148868A (ja) | 2003-11-12 | 2005-06-09 | Hitachi Ltd | ストレージ装置におけるデータのプリフェッチ |
JP2012027649A (ja) * | 2010-07-22 | 2012-02-09 | Toshiba Corp | データ記憶装置及びデータ読み出し方法 |
WO2016194162A1 (ja) * | 2015-06-03 | 2016-12-08 | 株式会社日立製作所 | 計算機システム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05128040A (ja) * | 1991-10-31 | 1993-05-25 | Hitachi Ltd | デイスク制御方式及び装置 |
JP3250859B2 (ja) * | 1993-02-19 | 2002-01-28 | 株式会社日立製作所 | ディスクアレイ装置、コンピュータシステム及びデータ記憶装置 |
JPH07261946A (ja) * | 1994-03-22 | 1995-10-13 | Hitachi Ltd | アレイ型記憶装置 |
JPH08263225A (ja) * | 1995-03-22 | 1996-10-11 | Mitsubishi Electric Corp | データストレージシステム及びストレージ管理方法 |
US5694615A (en) * | 1995-06-26 | 1997-12-02 | Hewlett Packard Company | Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts |
JP3776496B2 (ja) * | 1996-01-17 | 2006-05-17 | 株式会社日立製作所 | データ記憶システム |
JP3481391B2 (ja) * | 1996-05-23 | 2003-12-22 | 日本電気株式会社 | ファイルデータ分散格納方式 |
JP2868080B2 (ja) * | 1996-09-12 | 1999-03-10 | 三菱電機株式会社 | 通信監視制御装置及び通信監視制御方法 |
-
1998
- 1998-11-12 JP JP32176798A patent/JP3668922B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000148652A (ja) | 2000-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5112003B2 (ja) | ストレージ装置及びこれを用いたデータ格納方法 | |
KR100255847B1 (ko) | 레이드 제어기에서의 스트라이프 기록 방법 | |
JP3944449B2 (ja) | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 | |
US8644174B2 (en) | Network based virtualization performance | |
US7181578B1 (en) | Method and apparatus for efficient scalable storage management | |
JP5124792B2 (ja) | RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ | |
JP4814617B2 (ja) | ストレージシステム | |
JP7135162B2 (ja) | 情報処理システム、ストレージシステム及びデータ転送方法 | |
US20010049773A1 (en) | Fabric cache | |
US8032610B2 (en) | Scalable high-speed cache system in a storage network | |
US8392678B2 (en) | Storage system and data management method | |
JP2007079958A (ja) | 記憶制御装置、データ処理方法、及びコンピュータプログラム | |
JP2003162377A (ja) | ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法 | |
US7472231B1 (en) | Storage area network data cache | |
JP3713788B2 (ja) | 記憶装置および記憶装置システム | |
EP1552378A2 (en) | Methods and apparatus for implementing virtualization of storage within a storage area network | |
JPH06202817A (ja) | ディスクアレイ装置及びそのデータ更新方法 | |
JP2010049502A (ja) | ストレージサブシステム、及びこれを有するストレージシステム | |
US7162582B2 (en) | Caching in a virtualization system | |
US6842829B1 (en) | Method and apparatus to manage independent memory systems as a shared volume | |
US10303396B1 (en) | Optimizations to avoid intersocket links | |
JPH0863298A (ja) | ディスクアレイ装置 | |
JP4640854B2 (ja) | ディスクアレイ制御方法及びディスクアレイ制御装置 | |
US20050063216A1 (en) | System and method for providing efficient redundancy mirroring communications in an n-way scalable network storage system | |
JP3668922B2 (ja) | システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040628 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050331 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110422 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120422 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130422 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |