以下、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。図1に示すストレージシステムは、ストレージ装置1,2,3がループ状に接続された構成を有している。なお、ループ状に接続されるストレージ装置の数は、2台でもよいし、4台以上でもよい。
各ストレージ装置は、1つの制御装置と、1以上の記憶装置とを有する。図1の例では、ストレージ装置1,2,3は、ともに2台の記憶装置を有している。また、各ストレージ装置は、制御装置を始端とするローカル伝送路(第1の伝送路)を含み、1以上の記憶装置はローカル伝送路を通じて制御装置と直列に接続されている。
すなわち、図1において、ストレージ装置1は、制御装置1aと記憶装置1b,1cとを有し、記憶装置1b,1cは、制御装置1aを始端とするローカル伝送路1dを通じて制御装置1aと直列に接続されている。ストレージ装置2は、制御装置2aと記憶装置2b,2cとを有し、記憶装置2b,2cは、制御装置2aを始端とするローカル伝送路2dを通じて制御装置2aと直列に接続されている。ストレージ装置3は、制御装置3aと記憶装置3b,3cとを有し、記憶装置3b,3cは、制御装置3aを始端とするローカル伝送路3dを通じて制御装置3aと直列に接続されている。
また、図1では例として、制御装置1a,2a,3aに、それぞれホスト装置1e,2e,3eが接続されている。制御装置1aは、少なくとも、ホスト装置1eからの要求に応じて記憶装置にアクセスすることができる。同様に、制御装置2aは、少なくとも、ホスト装置2eからの要求に応じて記憶装置にアクセスすることができ、制御装置3aは、少なくとも、ホスト装置3eからの要求に応じて記憶装置にアクセスすることができる。
ストレージ装置1,2,3は、ローカル伝送路1d,2d,3dを含むループ状伝送路4(第2の伝送路)を通じて、ループ状に接続されている。ループ状伝送路4は、制御装置1a,2a,3aの間で通信することを可能にする。
このループ状伝送路4は、ローカル伝送路1d,2d,3dがループ状に接続されることで形成される。より具体的には、ローカル伝送路1dの終端がローカル伝送路2dの始端に接続され、ローカル伝送路2dの終端がローカル伝送路3dの始端に接続され、ローカル伝送路3dの終端がローカル伝送路1dの始端に接続されることで、ループ状伝送路4が形成される。
なお、「ローカル伝送路1d,2d,3dがループ状に接続される」とは、各伝送路に対応する通信ケーブル同士が物理的に結線されることを必ずしも意味しない。例えば、ローカル伝送路1dを伝送されたデータが、制御装置2aの内部的な処理によってローカル伝送路2dに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。同様に、ローカル伝送路2dを伝送されたデータが、制御装置3aの内部的な処理によってローカル伝送路3dに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。また、ローカル伝送路3dを伝送されたデータが、制御装置1aの内部的な処理によってローカル伝送路1dに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。
このストレージシステムでは、例えば、ストレージ装置を増設することができる。その場合、新たなストレージ装置は、そのストレージ装置内のローカル伝送路が、ループ状伝送路4における既存のローカル伝送路の間に挿入される。例えば、ストレージ装置3のローカル伝送路3dとストレージ装置1のローカル伝送路1dとの間に、新たなストレージ装置のローカル伝送路が直列に挿入される。このようにしてストレージ装置単位で増設が行われることで、ストレージシステムにおける記憶装置へのアクセス性能を増強できるとともに、記憶容量を拡大することができる。
また、制御装置1a,2a,3aは、ループ状伝送路4を通じて互いに通信することができる。例えば、制御装置1aは、他のストレージ装置2内の制御装置2aを介して、ストレージ装置2内のDEにアクセスすることができる。これにより、例えば、ストレージ装置1内のDEに記録されたデータをストレージ装置2内のDEにコピーしたり、あるいは移動することができる。したがって、システム内で記憶容量やアクセス頻度をバランスさせる、あるいはデータの冗長度を高めることができる。
さらに、例えば、制御装置1aがホスト装置1eからアクセスを受け付ける論理ボリュームの物理記憶装置として、ストレージ装置2内のDEのHDDを割り当てることもできる。これにより、データ配置の自由度が向上する。また、例えば、1つの論理ボリュームに対して、それぞれ異なるストレージ装置内の記憶装置を物理記憶領域として割り当て、それらの記憶装置の書き込みをRAIDによって制御することもできる。この場合、1つのストレージ装置が故障しても論理ボリュームのデータの読み書きを継続できる可能性が高まり、可用性の高いストレージシステムが実現される。
このように、制御装置間で通信できるようにする方法としては、例えば、制御装置間を中継装置を介して接続する方法が考えられる。しかし、この方法では、システム内のストレージ装置の数が多いほど、中継装置での通信負荷が高くなる。このため、大規模なストレージシステムを実現するためには、通信性能の高い高価な中継装置が必要になるという問題がある。また、制御装置間をネットワークを介して接続する方法も考えられる。しかし、この方法でも、ストレージ装置の数が多いほどネットワークのトラフィックが増大するので、高帯域のネットワークが必要となる。
これに対して、本実施の形態のストレージシステムでは、異なるストレージ装置の制御装置は、各ストレージ装置に含まれるローカル伝送路1d,2d,3dを流用して形成されるループ状伝送路4によって接続される。制御装置間を接続する専用の中継装置を設けず、ローカル伝送路同士を接続するという単純な構成とすることで、システム構築のためのコストが低減される。
また、制御装置から記憶装置へのアクセスのための通信処理負荷がシステム上の各装置に分散するので、ストレージ装置の数が多い場合でも、通信負荷が特定の装置に集中する可能性が低い。このため、システム上の各装置として通信性能が高いものを選択する必要もない。
したがって、第1の実施の形態によれば、ストレージシステムの規模の拡大に伴うネットワーク接続の構築を簡素化することができる。
[第2の実施の形態]
次に、第2の実施の形態に係るストレージシステムについて説明する。
図2は、ストレージシステムを構成するストレージ装置の構成例を示す図である。第2の実施の形態に係るストレージシステムは、図2に示すストレージ装置10を1組以上含む。ストレージ装置10は、ストレージシステムでの増設の単位となっており、ストレージシステムに新たなストレージ装置10を増設することで、ストレージシステムを拡張可能になっている。
ストレージ装置10は、1台のCE(Controller Enclosure)100と、1台以上のDE(Drive Enclosure)とを含む。以下、図2に例示するように、ストレージ装置10は2台のDE200,300を含むものとして説明する。
CE100には、ホスト装置400が接続される。CE100は、ホスト装置400からのアクセス要求に応じて、ストレージシステム内のDEに搭載された記憶装置に対するアクセスを制御する。ホスト装置400からのアクセスの対象となる記憶装置は、ホスト装置400と通信するCE100と同じストレージ装置10に搭載されたDE200,300内の記憶装置であってもよいし、それ以外のストレージ装置10に搭載されたDE200,300内の記憶装置であってもよい。
DE200,300には、ホスト装置400からのアクセス対象となり得る記憶装置が複数台搭載されている。記憶装置は、例えば、HDDであり、その場合、DE200,300は、ディスクアレイ装置とも呼ばれる。また、記憶装置は、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置であってもよい。
ストレージ装置10に複数台のDEが搭載される場合、CEを先頭に複数台のDEが直列に接続される。図2の例では、CE100にDE200が接続され、DE200にDE300が接続されている。この構成では、CE100は基本的に、DE200を介してDE300内の記憶装置にアクセスする。
ストレージシステムがストレージ装置10を複数組含む場合、CE100は、他のストレージ装置10内のDEに接続され、ストレージ装置10内の末端のDE(図2ではDE300)は、他のストレージ装置10内のCE100に接続される。CE100から他のストレージ装置10への伝送経路は、最終的にDE300から他のストレージ装置10への伝送経路に接続し、これによりループ状の伝送経路が形成される。一方、ストレージシステムがストレージ装置10を1組のみ含む場合、図2で点線によって示すように、DE300とCE100とが接続されて、ストレージ装置10内でループ状の伝送経路が形成される。なお、このような伝送経路の形成パターンについては、後に詳しく説明する。
図3は、CEおよびDEのハードウェア構成例を示す図である。
CE100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。プロセッサ101は、マルチプロセッサであってもよい。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス107を介して、RAM(Random Access Memory)102および複数の周辺機器が接続されている。
RAM102は、CE100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス107には、周辺機器としてSSD103、CA(Channel Adapter)104、DA−L(Device Adapter−Local)105およびDA−O(Out)106が接続されている。
SSD103は、CE100の補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラムおよび各種データが格納される。なお、補助記憶装置としては、HDDなどの他の種類の不揮発性記憶装置を使用することもできる。
CA104は、ホスト装置400と通知するためのインタフェースである。
DA−L105は、同じストレージ装置10内のDEと通信するためのインタフェースである。一方、DA−O106は、同じストレージ装置10内の末端のDE、または、他のストレージ装置10内の末端のDEと通知するためのインタフェースである。DA−L105およびDA−O106は、ストレージシステムに形成されるループ状の伝送経路の一部を構成する。
本実施の形態では、例として、DA−L105およびDA−O106は、SAS(Serial Attached SCSI,SCSI:Small Computer System Interface)規格に準拠して通信するインタフェースである。また、DA−L105およびDA−O106は、SASイニシエータ(データ転送を指定して送信することができるマスタ)としても動作可能であるし、SASターゲット(指定されたデータ転送を受けとることができるスレーブ)としても動作可能である。
なお、CE100には、上記のプロセッサ101、RAM102、HDD103、CA104、DA−L105およびDA−O106を備えるストレージ制御装置が、複数台搭載されていてもよい。
DE200は、I(In)−ポート201、O(Out)−ポート202、SASスイッチ203および複数のHDD211,212,213,・・・を有する。
I−ポート201は、同じストレージ装置10内のCE100と接続する通信ポートである。一方、O−ポート202は、同じストレージ装置10内の他のDEのうち、DE200より1段末端側に配置されたDE、または、他のストレージ装置10内のCEと接続する通知ポートである。
SASスイッチ203は、I−ポート201、O−ポート202、HDD211,212,213,・・・の間でのデータ送受信を制御する。なお、SASスイッチ203は、例えば、SASエキスパンダとして実装される。
HDD211,212,213,・・・は、それぞれ、ホスト装置からのアクセス対象となる記憶装置である。より具体的には、HDD211,212,213,・・・は、ホスト装置からアクセス可能な論理ボリュームの物理記憶領域の一部を構成することが可能である。
なお、図3ではDE200を例示したが、DE300もDE200と同様のハードウェア構成を有する。ただし、DE300におけるI−ポート201に対応するインタフェースは、同じストレージ装置10内の他のDEのうち、DE300より1段先頭側(CE100側)に配置されたDEと接続する。
次に、ストレージ装置10の接続例について説明する。
図4は、ストレージ装置を1組含むストレージシステムの構成例を示す図である。ストレージ装置10においては、CE100のDA−L105とDE200のI−ポート201とが接続され、DE200のO−ポート202とDE300のI−ポート301とが接続される。これにより、CE100,DE200およびDE300は直列に接続される。また、CE100のCA104にはホスト装置400が接続される。以上の接続関係は、ストレージシステムに含まれるストレージ装置の個数に関係なく、同じである。
ストレージシステムに1組のストレージ装置10のみが含まれる場合、末端のDE300のO−ポート302とCE100のDA−O106とが接続される。これにより、DA−L105、I−ポート201、O−ポート202、I−ポート301、O−ポート302およびDA−O106を経由するループ状通信経路が形成される。このループ状通信経路は、CE100からDE200,300内のHDDへのアクセスに利用される。
また、図4の構成において、ループ状通信経路は、CE100のDA−L105からCE100のDA−O106までの、図4で点線によって示すローカル伝送路11によって形成されている。ローカル伝送路11は、1つのSASイニシエータと1以上のSASターゲットとを少なくとも1組含む伝送路である。
CE100は、このループ状通信経路のどちらの方向にも通信可能になっている。これは、ストレージシステムがSASのマルチイニシエータ機能をサポートすることで実現される。CE100のDA−L105がローカル伝送路11のSASイニシエータとして動作することで、CE100はループ状通信経路を通じて図4の左回り方向にコマンドを送信する。また、CE100のDA−O106がローカル伝送路11のSASイニシエータとして動作することで、CE100はループ状通信経路の図4の右回り方向にコマンドを送信する。
図5は、DEの増設例を示す図である。図5は例として、図4に示した構成のストレージシステムにおいて、ストレージ装置10に新たなDE500を増設する場合について示す。
ストレージ装置10に新たなDE500が増設される場合、新たなDE500は、ストレージ装置10内の末端のDE300に直列に接続される。このとき、DE500のI−ポート501は、DE300のO−ポート302に接続される。また、DE500のO−ポート502は、CE100のDA−O106に接続される。
図4の状態からDE500が増設される際には、DE300のO−ポート302とCE100のDA−O106とが切り離され、これらの間にDE500が接続される。すなわち、ローカル伝送路11におけるDE300のO−ポート302とCE100のDA−O106と間に、DE500のI−ポート501およびO−ポート502を含む伝送路が挿入される。
このような増設作業の間、上記のループ状通信経路のうち、DA−L105、I−ポート201、O−ポート202およびI−ポート301を介する通信経路は維持される。このため、CE100からDE200,300内のHDDへのアクセス動作を停止させずに、新たなDE500の増設作業を実行することができる。
図6は、ストレージ装置を2組含むストレージシステムの構成例を示す図である。なお、図6において、ストレージ装置10aに含まれるCE100a、DE200a,300aは、それぞれCE100、DE200,300と同様のハードウェア構成を有する。また、CE100aには、ホスト装置400aが接続されている。なお、図6では、DEに含まれるI−ポートとO−ポートの図示を省略する。
図4の状態から新たなストレージ装置10aが増設される場合、DE300のO−ポートと、CE100のDA−O106とが切り離され、これらの間に新たなストレージ装置10aが挿入される。具体的には、DE300のO−ポートとCE100aのDA−O106aとが接続され、CE100のDA−O106とDE300aのO−ポートとが接続される。
これにより、CE100のDA−L105、DE200のI−ポート、DE200のO−ポート、DE300のI−ポート、DE300のO−ポート、CE100aのDA−O106a、CE100aのDA−L105a、DE200aのI−ポート、DE200aのO−ポート、DE300aのI−ポート、DE300aのO−ポートおよびCE100のDA−O106を経由するループ状通信経路が形成される。
図6のループ状通信経路は、ローカル伝送路11,11aがループ状に接続されることで形成される。図4の状態からの増設作業では、ローカル伝送路11の一端に新たなローカル伝送路11aが挿入されると言うことができる。これにより、ローカル伝送路11の一端は、CE100のDA−O106から新たなCE100aのDA−O106aに変更される。また、新たなローカル伝送路11aは、CE100aのDA−L105a、DE200aのI−ポート、DE200aのO−ポート、DE300aのI−ポート、DE300aのO−ポートおよびCE100のDA−O106を含む。
また、ストレージ装置10aの増設作業中でも、CE100のDA−L105、DE200のI−ポート、DE200のO−ポートおよびDE300のI−ポートを介する通信経路は維持される。このため、CE100からDE200,300内のHDDへのアクセス動作を停止させずに、新たなストレージ装置10aの増設作業を実行することができる。
また、図6の状態からさらに新たなストレージ装置が増設される場合、DE300aのO−ポートと、CE100のDA−O106とが切り離され、これらの間に新たなストレージ装置が挿入される。
図7は、ストレージ装置を4組含むストレージシステムの構成例を示す図である。なお、図7において、ストレージ装置10bに含まれるCE100b、DE200b,300bは、それぞれCE100、DE200,300と同様のハードウェア構成を有し、ストレージ装置10cに含まれるCE100c、DE200c,300cも、それぞれCE100、DE200,300と同様のハードウェア構成を有する。また、CE100bには、ホスト装置400bが接続されており、CE100cには、ホスト装置400cが接続されている。なお、図7では図6と同様に、DEに含まれるI−ポートとO−ポートの図示を省略する。
図7の例では、ストレージ装置10の末端に位置するDE300のO−ポートは、次のストレージ装置10aのCE100aのDA−O106aに接続されている。ストレージ装置10aの末端に位置するDE300aのO−ポートは、次のストレージ装置10bのCE100bのDA−O106bに接続されている。ストレージ装置10bの末端に位置するDE300bのO−ポートは、次のストレージ装置10cのCE100cのDA−O106cに接続されている。ストレージ装置10cの末端に位置するDE300cのO−ポートは、先頭のストレージ装置10のCE100のDA−O106に接続されている。
これにより、ストレージ装置10,10a,10b,10cがループ状に接続される。そして、CE100のDA−L105、DE200のI−ポート、DE200のO−ポート、DE300のI−ポート、DE300のO−ポート、CE100aのDA−O106a、CE100aのDA−L105a、DE200aのI−ポート、DE200aのO−ポート、DE300aのI−ポート、DE300aのO−ポート、CE100bのDA−O106b、CE100bのDA−L105b、DE200bのI−ポート、DE200bのO−ポート、DE300bのI−ポート、DE300bのO−ポート、CE100cのDA−O106c、CE100cのDA−L105c、DE200cのI−ポート、DE200cのO−ポート、DE300cのI−ポート、DE300cのO−ポートおよびCE100のDA−O106を経由するループ状通信経路が形成される。なお、このループ状通信経路は、ローカル伝送路11,11a,11b,11cがループ状に接続されることで形成される。
以上の図6,図7の例のように、本実施の形態のストレージシステムでは、ストレージ装置をループ状に追加接続していくことで、ストレージ装置を増設し、ストレージシステムを拡張することができる。また、新たなストレージ装置が増設される場合、増設前に形成されていたループ状通信経路上に、新たなストレージ装置を経由する通信経路が挿入される。
ストレージシステム上のCEは、ループ状通信経路を通じて、どのDE内のHDDにもアクセスすることができる。例えば、図7において、CE100は、ストレージ装置10に含まれるDE200,300内のHDDだけでなく、他のストレージ装置に含まれるDE(例えば、ストレージ装置10bに含まれるDE200b)内のHDDにもアクセスできる。このため、ストレージシステムでは、例えば、あるCEにて設定された論理ボリュームに対応する物理記憶領域を、どのDE内のHDDにも割り当てることができる。
したがって、ストレージ装置を増設することで、ホスト装置からのアクセス要求に対する応答性能が向上するとともに、ホスト装置からのアクセス対象となる記憶容量が増加する。また、ストレージ装置単位で増設可能になることで、アクセス要求に対する応答性能と記憶容量とを必要に応じて段階的に増加させることができるので、ストレージシステム構築のための初期投資を抑制できる。
また、マルチイニシエータ機能がサポートされ、ストレージシステム上のどのCEのDA−LおよびDA−Oも、SASイニシエータとして動作することができる。これにより、各CEは、ループ状通信経路を通じて、左回り方向と右回り方向のどちらでも、他のストレージ装置内のHDDにアクセスすることができる。このため、ストレージ装置やDEの増設作業のためにループ状通信経路の一部が切り離されても、各CEは既存のDE内のHDDとの通信を継続することができる。したがって、可用性の高いストレージシステムを実現できる。
ここで、本実施の形態のストレージシステムにおける機器の接続ルールをまとめると、次のようになる。
(1)CEのDA−Lは、同じストレージ装置内のDEのI−ポートに接続される。
(2)CEのDA−Oは、他のストレージ装置内または同じストレージ装置内のDEのO−ポートに接続される。
(3)DEのI−ポートは、同じストレージ装置内のCEのDA−L、または、同じストレージ装置内の他のDEのO−ポートに接続される。
(4)DEのO−ポートは、同じストレージ装置内の他のDEのI−ポート、または、他のストレージ装置内のCEのDA−Oに接続される。
(5)新たなストレージ装置が増設される場合、新たなストレージ装置は、既存のストレージ装置のうち末端のストレージ装置に含まれる末端のDEのO−ポートと、先頭のストレージ装置のCEのDA−Oとの間に接続される。
(6)あるストレージ装置に新たなDEが増設される場合、新たなDEは、当該ストレージ装置の末端のDEのO−ポートと、次段のストレージ装置のCEのDA−Oとの間に接続される。
次に、CEが記憶するテーブル情報の例を示し、これらのテーブル情報を用いた通信処理についてさらに詳しく説明する。
まず、図8は、構成管理テーブルの例を示す図である。構成管理テーブル111は、ストレージシステムに含まれるCE、DEおよびHDDの一覧と、これらの接続関係とを管理するためのテーブル情報である。構成管理テーブル111は、CEの識別番号が登録されるCE番号、DEの識別番号が登録されるDE番号、および、DE内のHDDの位置を示す番号が登録されるスロット番号の各項目を有する。
CE番号には、同じストレージ装置に搭載される1台以上のDEの番号が対応づけて登録される。図8では、CE#0、DE#0およびDE#1が同じストレージ装置に搭載された例を示している。この場合、CE#0に対してDE#0,DE#1が対応づけて登録される。また、DE番号には、そのDE内に搭載されるHDDの位置を示すスロット番号が対応づけて登録される。
構成管理テーブル111においては、CEの登録順が、各CEを含むストレージ装置の接続順を示している。図8の例では、CE#0を含むストレージ装置、CE#1を含むストレージ装置、CE#2を含むストレージ装置、CE#3を含むストレージ装置の順に直列に接続されていることを示す。そして、末端に登録されたCE#3を含むストレージ装置と、先頭に登録されたCE#0を含むストレージ装置とが接続されていて、これによって各ストレージ装置がループ状に接続されていることを示している。また、新たなストレージ装置が増設される場合には、当該ストレージ装置に含まれるCEの番号が構成管理テーブル111の末端に追加される。
さらに、構成管理テーブル111においては、CE番号に対応付けて登録されるDEの登録順が、ストレージ装置におけるDEの接続順を示している。図8の例では、CE#0を含むストレージ装置においては、CE#0、DE#0、DE#1の順に直列に接続されていることを示す。また、新たなDEが増設される場合には、同じストレージ装置内のDEの番号の次に、新たなDEの番号が追加される。
以上のような構成管理テーブル111は、ストレージシステムに含まれるすべてのCEにおいて共通に記憶される。そして、ストレージシステムにストレージ装置やDEが増設された場合に、すべてのCE内の構成管理テーブル111が更新される。各CEに対する構成管理テーブル111の登録や更新は、例えば、管理者の入力操作によって行われる。あるいは、ストレージ装置やDEの増設が自動的に検知されることによって構成管理テーブル111の登録や更新が自動的に行われてもよい。例えば、ストレージシステムに接続される各CEは、後述するように、自装置の制御下にあるデバイスグループに含まれるSASデバイスを自動的に検知する機能を備える。各CEは、自装置が検知したSASデバイスを、その接続関係とともに他のCEに配信する。各CEは、他のCEから配信された情報に基づいて構成管理テーブル111を構築する。
図9は、ボリューム管理テーブルの例を示す図である。ボリューム管理テーブル112は、ストレージシステムに設定されたすべての論理ボリュームに関する情報を管理するためのテーブル情報である。ボリューム管理テーブル112は、ボリューム番号、ディスク数、RAID種別およびデバイス番号の各項目を有する。
ボリューム番号の項目には、設定された論理ボリュームの識別番号が登録される。ディスク数は、論理ボリュームに対応する物理記憶領域を構成するHDDの数が登録される。RAID種別の項目は、論理ボリュームに対応する物理記憶領域へのデータ記録動作を制御するためのRAIDの種別を示す。デバイス番号の項目には、論理ボリュームに対応する物理記憶領域を構成するHDDを識別するための情報が登録される。HDDの識別は、構成管理テーブル111に登録されたCE番号、DE番号およびスロット番号の組み合わせによって行われる。
ここで、例えば、図9のボリューム番号「LU#1」には、物理記憶領域として、CE#1が含まれるストレージ装置に搭載された2台のHDDと、CE#2が含まれるストレージ装置に搭載された2台のHDDとが割り当てられている。この例のように、ストレージシステムにおいては、1つの論理ボリュームに対して、異なるストレージ装置に含まれるHDDを物理記憶領域として割り当てることができる。
以上のようなボリューム管理テーブル112は、ストレージシステムに含まれるすべてのCEにおいて共通に記憶される。そして、ストレージシステムに論理ボリュームが追加設定された場合、すべてのCE内のボリューム管理テーブル112が更新される。例えば、あるCEに対して論理ボリュームの設定が行われると、そのCEが記憶するボリューム管理テーブル112が更新されるとともに、その設定情報が他のすべてのCEに配信される。各CEは、他のCEから配信された設定情報に基づいて、自装置が記憶するボリューム管理テーブル112を更新する。
次に、図10は、SASデバイスによるデバイスグループの例を示す図である。デバイスグループとは、1つのSASイニシエータによって動作が制御されるSASデバイスの単位である。デバイスグループには、1つのSASイニシエータと、1つ以上のSASターゲットとが含まれる。デバイスグループに含まれるデバイスは、図4や図6で説明した1つのローカル伝送路に接続されたSASデバイスである。
例えば、図10に示す構成のストレージシステムでは、デバイスグループは次のように設定される。なお、以下の説明において、CEがDA−Lからコマンドを送信することで開始される通信を、ループ状通信経路における「順方向通信」と呼び、CEがDA−Oからコマンドを送信することで開始される通信を、ループ状通信経路における「逆方向通信」と呼ぶことにする。図10の構成において、順方向通信は、左回り方向にコマンドが送信される通信に対応し、逆方向通信は、右回り方向にコマンドが送信される通信に対応する。
順方向通信におけるデバイスグループは、SASイニシエータとしてDA−Lを含み、SASターゲットとして、DA−Lと同一のストレージ装置に含まれるDE内のHDDを含む。そして、デバイスグループに含まれる最終のSASターゲットは、DA−Lと同一のストレージ装置または次のストレージ装置のDA−Oとなる。
図10の例では、順方向通信について2つのデバイスグループ31,32が設定される。デバイスグループ31は、SASイニシエータとしてCE100のDA−L105を含み、SASターゲットとして、DE200,300内のHDDと、CE100aのDA−O106aとを含む。また、デバイスグループ32は、SASイニシエータとしてCE100aのDA−L105aを含み、SASターゲットとして、DE200a,300a内のHDDと、CE100のDA−O106とを含む。すなわち、デバイスグループ31は、図6に示したローカル伝送路11に接続されたSASデバイスであり、デバイスグループ32は、図6に示したローカル伝送路11aに接続されたSASデバイスである。
例えば、デバイスグループ31においては、CE100のDA−L105から順方向にコマンドが送信されることにより、CE100はDE200,300内のHDDとの間でデータの読み書きを行うことができる。また、CE100のDA−L105からCE100aのDA−O106aへのコマンドは、後述するように、CE間のデータ伝送に利用される。
一方、逆方向通信におけるデバイスグループは、SASイニシエータとしてDA−Oを含み、SASターゲットとして、DA−Oと同一のストレージ装置または1段前に位置する他のストレージ装置のDA−Lを含み、HDDを含まないものとする。図10の例では、逆方向通信についての2つのデバイスグループ33,34が設定される。デバイスグループ33は、SASイニシエータとしてCE100のDA−O106を含み、SASターゲットとしてCE100aのDA−L105aを含む。デバイスグループ34は、SASイニシエータとしてCE100aのDA−O106aを含み、SASターゲットとしてCE100のDA−L105を含む。後述するように、逆方向通信では、SASイニシエータからHDDへの直接の読み書き制御は行われず、CE間のデータ伝送のみが行われる。
図11は、SASマップの例を示す図である。SASマップ113は、デバイスグループごとに作成され、デバイスグループに含まれるSASデバイスの一覧を保持するためのテーブル情報である。
SASマップ113は、IDおよびSASデバイス名の各項目を有する。IDの項目には、デバイスグループに含まれるSASデバイスに付与される通し番号があらかじめ登録される。SASデバイス名の項目には、対応するSASデバイスの識別情報が登録される。SASデバイスの識別情報としては、実際には例えば、SASデバイスにユニークに付与されているWWN(World Wide Name)が登録される。
SASマップ113の先頭レコードには、SASイニシエータとして動作するDA−LまたはDA−Oが登録され、2番目以降のレコードには、SASターゲットであるHDDが登録される。また、SASマップ113の最終レコード(例えば、ID=127)には、SASターゲットのうちDA−OまたはDA−Lが登録される。
順方向通信におけるデバイスグループに対応するSASマップ113では、先頭レコードのSASイニシエータとしてDA−Lが登録され、最終レコードにはDA−Oが登録される。一方、逆方向通信におけるデバイスグループに対応するSASマップ113では、先頭レコードのSASイニシエータとしてDA−Oが登録され、最終レコードにはDA−Lが登録される。後者のSASマップ113には、HDDが登録されない。
SASイニシエータは、SASで規定されたディスカバープロセスにおいて、自装置に接続されたSASデバイスを探索し、SASマップ113を自動的に作成する。順方向通信におけるSASマップ113では、SASイニシエータ(DA−L)から近いSASスイッチ203に搭載されたHDDほど先頭側のレコードに登録される。そのため、CEは、SASマップ113に登録されたHDDと、構成管理テーブル111に登録された、自装置と同じストレージ装置に含まれるDE内のHDD(スロット番号)とを、一対一で対応づけて管理することができる。
図12は、ストレージ装置の増設に伴うSASマップの変化の例を示す図である。図12では例として、図4に示した状態から、図6に示したように新たなストレージ装置10aが増設された場合のSASマップの変化の例を示す。
SASマップ113_1には、図4に示した状態において、CE100のDA−L105をSASイニシエータとするデバイスグループに属するSASデバイスが登録されている。DA−L105は、SASターゲットとして、DE200,300に搭載されたHDDと、CE100のDA−O106とを検知して、SASマップ113_1に登録する。
DE200,300には、それぞれ24本のHDDが搭載されているものとする。したがって、SASマップ113_1における第1バイトから第24バイトまでのレコードに、DE200に搭載されたHDDが登録され、第25バイトから第48バイトまでのレコードに、DE300に搭載されたHDDが登録される。なお、SASマップ113_1において、「CE#0」はCE100に対応する。
新たなストレージ装置10aを増設する場合には、まず、図4の状態から、DE300のO−ポート302とCE100のDA−O106とが切り離される。図12に示すSASマップ113_2はこのときの状態を示し、切り離されたDA−O106が削除されている。
次に、図6のように新たなストレージ装置10aが接続される。図12に示すSASマップ113_3はこのときの状態を示す。CE100のDA−L105は、DE300のO−ポートにCE100aのDA−O106aが接続されたことを検知し、SASマップ113_3の第127バイトにDA−O106aを登録する。なお、SASマップ113_3において、「CE#1」はCE100aに対応する。
ところで、デバイスグループ内では、SASイニシエータからHDDに対するデータの読み書きを、標準のSASプロトコルにしたがって制御することができる。図10に例示したように、デバイスグループには、SASターゲットのHDDとして、SASイニシエータと同一のストレージ装置に含まれるHDDだけが含まれる。このため、本実施の形態のストレージシステムにおいては、各ストレージ装置に含めることが可能なHDDの数は、SASで規定された、デバイスグループに含めることが可能なSASターゲットの最大数に近い数となる。したがって、ストレージシステム全体に増設可能なHDDの数が非常に大きくなり、システムの拡張性が高く、大規模なシステムを構築可能である。
しかしながら、デバイスグループ間では、既存のSCSIコマンドを伝送することができない。そこで、本実施の形態では、CE間でSCSIコマンドを伝送するための専用のコマンドを規定する。
図13は、第2の実施の形態で利用されるコマンドの例を示す図である。
図13(A)は、ReadコマンドまたはWriteコマンドが定義されたCDB(Command Descriptor Block)のフォーマットを示す。この図13(A)に示すCDBは、SCSI規格で規定されたものである。
第1バイトには、オペレーションコードが格納される。Readコマンドの場合、オペレーションコードは「88h」であり、Writeコマンドの場合、オペレーションコードは「8Ah」である。第2バイトから第9バイトにはLBAが格納され、第10バイトから第13バイトにはデータ長が格納される。LBAは、読み出し元または書き込み先の先頭アドレスを示し、データ長は、ReadデータまたはWriteデータのサイズを示す。
一方、図13(B)は、CE間でReadコマンドまたはWriteコマンドを伝送するために新たに定義されたCDBのフォーマット例を示す。図13(B)に示すCDBでは、オペレーションコードとして、SCSI規格でベンダが固有に利用できるように割り当てられている「C7h」が格納される。
第1バイトから第4バイトは、ReadコマンドまたはWriteコマンドの送信先HDDを指定するために定義されている。例えば、第1バイトと第2バイトにCE番号が格納され、第3バイトと第4バイトにデバイス番号が格納される。CE番号は、送信先HDDと同じストレージ装置に含まれるCEの番号を示す。このCE番号は、構成管理テーブル111に登録されているCE番号の1つである。デバイス番号は、送信先HDDが搭載されているDEの番号と、HDDのスロットの番号とを含む。これらの番号は、構成管理テーブル111に登録されているDE番号およびスロット番号の1つである。
第6バイト以降はコマンド領域とされ、第5バイトには、コマンド領域の大きさを示すコマンド領域長が格納される。コマンド領域には、CE間で伝送されるReadコマンドまたはWriteコマンドの内容が格納される。具体的には、コマンド領域に格納される情報は、図13(A)に示すCDBの情報のうち、オペレーションコード、LBA、データ長を少なくとも含む。また、コマンド領域には、図13(A)に示すCDB全体が格納されてもよい。
以下の説明では、図13(B)に示すCDBを用いて伝送されるコマンドを、「VU(Vender Unique)コマンド」と記載する。VUコマンドは、SASイニシエータから、同じデバイスグループ内のSASターゲットのうちDA−LまたはDA−Oに送信される。VUコマンドを受信したDA−LまたはDA−Oは、VUコマンド内のオペレーションコードに基づいて、ReadコマンドまたはWriteコマンドをCE間で伝送するためのデータであることを認識する。
図14は、CEから他のストレージ装置内のHDDにアクセスする際の処理例を示すシーケンス図である。この図14では、図6のような構成のストレージシステムにおいて、CE100がDE200a内のHDDからデータを読み出す場合の処理例を示す。
[ステップS11]CE100は、ホスト装置400から、論理ボリュームからのデータ読み出し要求を受信する。CE100は、ボリューム管理テーブル112を参照し、読み出し元のHDDを特定する。ここでは、読み出し元のHDDとして、DE200a内のHDDが特定されたものとする。
CE100は、特定されたHDDへReadコマンドを送信するための処理を開始する。ここでは、CE100は、Readコマンドの送信先HDDが自装置の配下でない(自装置と同じストレージ装置10に含まれていない)と判定する。
[ステップS12]送信先HDDが自装置の配下でないと判定した場合、CE100は、送信先HDDからデータを読み出すためのReadコマンドを格納したVUコマンドを生成する。CE100は、生成したVUコマンドを含むSASフレーム(コマンドフレーム)を、DA−L105から送信する。このSASフレームの宛先は、DA−L105をSASイニシエータとするデバイスグループに対応するSASマップ113に基づいて、CE100aのDA−O106aに設定される。
[ステップS13]送信されたSASフレームは、DE200のI−ポート201を介してSASスイッチ203に入力される。SASスイッチ203は、SASフレームの宛先に基づいて、SASフレームをO−ポート202から送信する。これにより、VUコマンドがDE200からDE300に転送される。
[ステップS14]送信されたSASフレームは、DE300のI−ポートを介して、DE300のSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームをDE300のO−ポートから送信する。これにより、VUコマンドがDE300からCE100aに転送される。
[ステップS15]CE100aは、送信されたSASフレームをDA−O106aを介して受信する。CE100aは、SASフレームからVUコマンドの領域(CDB)を特定し、特定した領域内のコマンド領域を参照して、送信先HDDを特定する。CE100aは、構成管理テーブル111に基づいて、送信先HDDが自装置の配下であると判定する。
[ステップS16]送信先HDDが自装置の配下であると判定した場合、CE100aは、Readコマンドを含むSASフレーム(コマンドフレーム)を、DA−L105aから送信先HDD宛てに送信する。
[ステップS17]送信されたSASフレームは、DE200aのI−ポートを介して、DE200aのSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームを該当HDDに送信する。SASフレームを受信したHDDは、SASフレーム内のReadコマンドに基づいてReadデータを読み出す。
[ステップS18]HDDは、読み出したReadデータを含むSASフレーム(データフレーム)を、SASイニシエータであるCE100aのDA−L105a宛てに送信する。送信されたSASフレームは、DE200a内のSASスイッチおよびI−ポートを介して、CE100aに送信される。
[ステップS19]CE100aは、送信されたSASフレームをDA−L105aを介して受信する。CE100aは、受信したSASフレームがステップS16で送信したSASフレームに対する応答であることを判別し、ステップS15で受信したSASコマンドに対する応答としてのSASフレーム(データフレーム)を、DA−O106aから送信する。このSASフレームはReadデータを含み、宛先としてSASイニシエータであるCE100のDA−L105が設定される。
[ステップS20]送信されたSASフレームは、DE300のO−ポートを介して、DE300のSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームをDE300のI−ポートから送信する。これにより、ReadデータがDE300からDE200に転送される。
[ステップS21]送信されたSASフレームは、DE200のO−ポート202を介してSASスイッチ203に入力される。SASスイッチ203は、SASフレームの宛先に基づいて、SASフレームをI−ポート201から送信する。これにより、ReadデータがDE200からCE100に転送される。
[ステップS22]CE100は、送信されたSASフレームをDA−L105を介して受信する。CE100は、受信したSASフレームをステップS12で送信したSASフレームに対する応答であることを判別し、ホスト装置400に対する応答として、SASフレームから抽出したReadデータをホスト装置400に送信する。
以上の図14の処理によれば、CEは、VUコマンドを用いることで、他のCEに対してReadコマンドを転送することができる。VUコマンドを用いることで、SASプロトコルを大きく変更することなくCE間でのReadコマンド(およびWriteコマンド)の転送を実現できる。そのため、拡張性が高く、規模を大きくすることが可能なストレージシステムを低コストで実現することができる。
ここで、ステップS12〜S14,S19〜S21でのデータ送受信処理は、デバイスグループ31(図10参照)の内部でのデータ送受信処理である。一方、ステップS16,S18でのデータ送受信処理は、デバイスグループ32(図10参照)の内部でのデータ送受信処理である。すなわち、前者の処理と後者の処理とは、SASプロトコル上でそれぞれ独立した処理である。
このため、例えば、ストレージ装置10だけを含むストレージシステムにストレージ装置10aを増設する場合、新たなストレージ装置10aでのSASイニシエータとHDDとの間の通信処理は、既存のストレージ装置10でのSASイニシエータとHDDとの間の通信処理に対して特に影響を与えない。このように、ストレージシステムにおけるストレージ装置の増設は、独立した通信が行われる通信系統がシステムに追加されることにほぼ等しい。そのため、ストレージ装置が増設されても、構成管理テーブル111が更新されるだけで、ストレージシステム全体での基本的な通信制御手順が変更される訳ではなく、増設作業が容易である。
すなわち、上記のストレージシステムでは、ストレージ装置の増設により、独立して制御される通信系統がシステムに追加される。そして、上記のVUコマンドにより、このような独立した通信系統間でのデータの受け渡しが実現される。このような仕組みにより、システムの拡張が容易で、なおかつシステムの大規模化が可能なストレージシステムが実現される。
図15は、CEから他のストレージ装置内のHDDにアクセスする際の別の処理例を示すシーケンス図である。
上記の図14では順方向通信の例について説明したが、逆方向通信の場合には、例えば図15に示すような処理が行われる。ここでは例として、図7のような構成のストレージシステムにおいて、CE100がDE200c内のHDDからデータを読み出す場合の処理例を示す。
[ステップS31]CE100は、ホスト装置400から、論理ボリュームからのデータ読み出し要求を受信する。CE100は、ボリューム管理テーブル112を参照し、読み出し元のHDDを特定する。ここでは、読み出し元のHDDとして、DE200c内のHDDが特定されたものとする。
CE100は、特定されたHDDへReadコマンドを送信するための処理を開始する。ここでは、CE100は、Readコマンドの送信先HDDが自装置の配下でない(自装置と同じストレージ装置10に含まれていない)と判定する。さらに、CE100は、順方向通信を実行するよりも逆方向通信を実行する方が、送信先HDDへの経路が短いと判定する。この判定は、例えば、構成管理テーブル111に基づいて送信先HDDまでの経路をたどることで行われてもよい。あるいは、後述するホップ数テーブルに基づいて判定が行われてもよい。
[ステップS32]送信先HDDが自装置の配下でないと判定した場合、CE100は、送信先HDDからデータを読み出すためのReadコマンドを格納したVUコマンドを生成する。CE100は、生成したVUコマンドを含むSASフレーム(コマンドフレーム)を、DA−O106から送信する。このSASフレームの宛先は、DA−O106をSASイニシエータとするデバイスグループに対応するSASマップ113に基づいて、CE100cのDA−Oに設定される。
[ステップS33]送信されたSASフレームは、DE300cのO−ポートを介して、DE300cのSASスイッチに入力される。SASスイッチ203は、SASフレームの宛先に基づいて、SASフレームをDE300cのI−ポートから送信する。これにより、VUコマンドがDE300cからDE200cに転送される。
[ステップS34]送信されたSASフレームは、DE200cのO−ポートを介して、DE200cのSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームをDE200cのI−ポートから送信する。これにより、VUコマンドがDE200cからCE100cに転送される。
[ステップS35]CE100cは、送信されたSASフレームをDA−L105cを介して受信する。CE100cは、SASフレームからVUコマンドの領域(CDB)を特定し、特定した領域内のコマンド領域を参照して、送信先HDDを特定する。CE100cは、構成管理テーブル111に基づいて、送信先HDDが自装置の配下であると判定する。
[ステップS36]送信先HDDが自装置の配下であると判定した場合、CE100cは、Readコマンドを含むSASフレーム(コマンドフレーム)を、DA−L105cから送信先HDD宛てに送信する。
[ステップS37]送信されたSASフレームは、DE200cのI−ポートを介して、DE200cのSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームを該当HDDに送信する。SASフレームを受信したHDDは、SASフレーム内のReadコマンドに基づいてReadデータを読み出す。
[ステップS38]HDDは、読み出したReadデータを含むSASフレーム(データフレーム)を、SASイニシエータであるCE100cのDA−L105c宛てに送信する。送信されたSASフレームは、DE200c内のSASスイッチおよびI−ポートを介して、CE100cに送信される。
[ステップS39]CE100cは、送信されたSASフレームをDA−L105cを介して受信する。CE100cは、受信したSASフレームがステップS36で送信したSASフレームに対する応答であることを判別し、ステップS35で受信したSASコマンドに対する応答としてのSASフレーム(データフレーム)を、DA−L105cから送信する。このSASフレームはReadデータを含み、宛先としてSASイニシエータであるCE100のDA−O106が設定される。
[ステップS40]送信されたSASフレームは、DE200cのI−ポートを介して、DE200cのSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームをDE200cのO−ポートから送信する。これにより、ReadデータがDE200cからDE300cに転送される。
[ステップS41]送信されたSASフレームは、DE300cのI−ポートを介してDE300cのSASスイッチに入力される。SASスイッチは、SASフレームの宛先に基づいて、SASフレームをDE300cのO−ポートから送信する。これにより、ReadデータがDE300cからCE100に転送される。
[ステップS42]CE100は、送信されたSASフレームをDA−O106を介して受信する。CE100は、受信したSASフレームをステップS32で送信したSASフレームに対する応答であることを判別し、ホスト装置400に対する応答として、SASフレームから抽出したReadデータをホスト装置400に送信する。
以上の図15の処理のように、逆方向通信では、Readコマンドは、VUコマンドを用いて、送信先HDDと同じストレージ装置内のCEに一旦送信され、そのCEから送信先HDDに送信される。Writeコマンドについても同様である。
次に、図16は、CEの処理機能の構成例を示すブロック図である。なお、図16では例としてCE100について示すが、他のCE(例えば、CE100a,100b,100c)も同様の構成の処理機能を有する。
CE100は、ホストI/O制御部121、ディスクI/O制御部122および記憶部123を有する。記憶部123には、前述の構成管理テーブル111、ボリューム管理テーブル112およびSASマップ113に加え、ホップ数テーブル114が記憶される。ホストI/O制御部121およびディスクI/O制御部122の処理は、例えば、CE100が備えるプロセッサ101が所定のアプリケーションプログラムを実行することで実現される。記憶部123は、例えば、CE100が備える記憶装置(例えば、RAM102またはSSD103)の記憶領域として実装される。
ホストI/O制御部121は、CE100に接続されたホスト装置400との間の通信を制御する。具体的には、ホストI/O制御部121は、ホスト装置400から論理ボリュームへのアクセス要求を受信すると、ボリューム管理テーブル112に基づいて、アクセス先のHDDを判別する。そして、ホストI/O制御部121は、ディスクI/O制御部122に対して、判別したHDDへのアクセスを要求する。
ディスクI/O制御部122は、SASプロトコルを用いて、HDDにアクセスするための通信を制御する。例えば、ディスクI/O制御部122は、ホストI/O制御部121からHDDへのアクセス要求を受け付けると、そのHDDへのアクセスのためのコマンドを含むSASフレームをDA−L105またはDA−O106から送信する。また、ディスクI/O制御部122は、DA−L105またはDA−O106からSASフレームを受信すると、そのSASフレームに応じた情報送信先を判別する。例えば、CE100の配下のHDDへアクセスするためのVUコマンドを含むSASフレームを受信した場合、ディスクI/O制御部122は、そのHDDに対するReadコマンドまたはWriteコマンドを含むSASフレームをDA−L105から送信する。また、他のCEの配下のHDDへアクセスするためのVUコマンドを含むSASフレームを受信した場合、ディスクI/O制御部122は、VUコマンドを転送する。ディスクI/O制御部122は、そのVUコマンドをDA−O106から受信した場合、DA−L105から転送し、DA−L105から受信した場合、DA−O106から転送する。
ホップ数テーブル114は、CE100から他のCEまでの間にCEが何台存在するかを示す情報が登録されている。
図17は、ホップ数テーブルの例を示す図である。ホップ数テーブル114は、CE番号、DA−L、DA−Oの各項目を有する。
CE番号の項目には、ストレージシステムに含まれる他のCEの識別番号が登録される。DA−Lの項目には、システム上のCEの中で、対応する他のCEがDA−Lの方向(順方向)に何台目に接続されているかを示す数値が登録される。DA−Oの項目には、システム上のCEの中で、対応する他のCEがDA−Oの方向(逆方向)に何台目に接続されているかを示す数値が登録される。
ホップ数テーブル114は、例えば、構成管理テーブル111に基づいて作成される。例えば、CE100は、構成管理テーブル111が更新されるたびに、ホップ数テーブル114も更新する。ホップ数テーブル114は、VUコマンドを順方向と逆方向のどちらに送信するかを判定するためにディスクI/O制御部122によって参照される。
次に、CEの処理についてフローチャートを用いて説明する。以下の説明では、例としてCE100の処理について説明する。
まず、図18,図19は、ホスト装置から、論理ボリュームからの読み出し要求を受信した場合の処理例を示すフローチャートである。
[ステップS51]ホストI/O制御部121は、論理ボリュームと読み出し元領域とが指定された読み出し要求を、ホスト装置400から受信する。ホストI/O制御部121は、ボリューム管理テーブル112における指定された論理ボリュームのレコードを参照して、読み出し元領域に対応するHDDの位置とそのHDDでの読み出し元領域とを特定する。
このとき、HDDおよび読み出し元領域が複数組特定される場合があるが、これ以下では、説明を簡単にするために、HDDおよび読み出し元領域が1組だけ特定されたものとする。
[ステップS52]ホストI/O制御部121は、HDDの位置と読み出し元領域とをディスクI/O制御部122に通知し、データの読み出しを要求する。ディスクI/O制御部122は、構成管理テーブル111に基づいて、通知されたHDDが自CE(CE100)の配下のHDDかを判定する。CE100の配下のHDDとは、CE100と同じストレージ装置10に含まれるDE内のHDDを示し、これは構成管理テーブル111においてCE100に対応付けられたスロット番号が示すHDDである。
通知されたHDDがCE100の配下のHDDである場合、ステップS53の処理が実行される。通知されたHDDが他のCEの配下のHDDである場合、ステップS61の処理が実行される。
[ステップS53]ディスクI/O制御部122は、ステップS52で通知されたHDDを送信先とするSASフレーム(コマンドフレーム)をDA−L105から送信する。このSASフレームには、ステップS52で通知された読み出し元領域が設定されたReadコマンドが含まれる。
[ステップS54]ディスクI/O制御部122は、ステップS53で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−L105から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS55]ディスクI/O制御部122は、受信したSASフレームから抽出したReadデータをホストI/O制御部121に受け渡す。ホストI/O制御部121は、ステップS51で受信した読み出し要求に対する応答として、Readデータをホスト装置400に送信する。
[ステップS61]ディスクI/O制御部122は、ホップ数テーブル114に基づいて、VUコマンドの送信方向を判定する。具体的には、ディスクI/O制御部122は、ホップ数テーブル114のレコードのうち、ステップS52で通知されたHDDと同じストレージ装置内のCEに対応するレコードを参照する。ディスクI/O制御部122は、そのレコードに基づいて、DA−LとDA−OのどちらからVUを送信する方が、そのCEとの間に存在する他のCEが少ないかを判定する。
DA−Lの方が少ない場合、ディスクI/O制御部122は、送信方向を順方向と判定し、ステップS62の処理を実行する。一方、DA−Oの方が少ない場合、ディスクI/O制御部122は、送信方向を逆方向と判定し、ステップS64の処理を実行する。
[ステップS62]ディスクI/O制御部122は、DA−L105に接続されたDA−Oを送信先とするSASフレーム(コマンドフレーム)をDA−L105から送信する。このSASフレームには、CE番号およびデバイス番号の欄にステップS52で通知されたHDDの位置を示す情報が設定され、コマンド領域にステップS52で通知された読み出し元領域を含むReadコマンドが設定されたVUコマンドが含まれる。
[ステップS63]ディスクI/O制御部122は、ステップS62で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)をDA−L105から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS64]ディスクI/O制御部122は、DA−O106に接続されたDA−Lを送信先とするSASフレーム(コマンドフレーム)をDA−O106から送信する。このSASフレームには、CE番号およびデバイス番号の欄にステップS52で通知されたHDDの位置を示す情報が設定され、コマンド領域にステップS52で通知された読み出し元領域を含むReadコマンドが設定されたVUコマンドが含まれる。
[ステップS65]ディスクI/O制御部122は、ステップS64で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)をDA−O106から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS66]ディスクI/O制御部122は、ステップS63またはステップS65で受信したSASフレームからReadデータを抽出し、抽出したReadデータをホストI/O制御部121に受け渡す。ホストI/O制御部121は、ステップS51で受信した読み出し要求に対する応答として、Readデータをホスト装置400に送信する。
図20,図21は、ホスト装置から、論理ボリュームへの書き込み要求を受信した場合の処理例を示すフローチャートである。
[ステップS71]ホストI/O制御部121は、論理ボリュームと書き込み先領域とが指定された読み出し要求を、Writeデータとともにホスト装置400から受信する。ホストI/O制御部121は、ボリューム管理テーブル112における指定された論理ボリュームのレコードを参照して、書き込み先領域に対応するHDDの位置とそのHDDでの書き込み先領域とを特定する。
このとき、HDDおよび書き込み先領域が複数組特定される場合があるが、これ以下では、説明を簡単にするために、HDDおよび書き込み先領域が1組だけ特定されたものとする。
[ステップS72]ホストI/O制御部121は、HDDの位置、書き込み先領域およびWriteデータをディスクI/O制御部122に通知し、データの書き込みを要求する。ディスクI/O制御部122は、構成管理テーブル111に基づいて、通知されたHDDが自CE(CE100)の配下のHDDかを判定する。通知されたHDDがCE100の配下のHDDである場合、ステップS73の処理が実行される。通知されたHDDが他のCEの配下のHDDである場合、ステップS81の処理が実行される。
[ステップS73]ディスクI/O制御部122は、ステップS72で通知されたHDDを送信先とするSASフレーム(コマンドフレーム)を、DA−L105から送信する。このSASフレームには、ステップS72で通知された書き込み先領域が設定されたWriteコマンドが含まれる。
[ステップS74]ディスクI/O制御部122は、ステップS73で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム。XFER_RDY:Transfer Ready)を、DA−L105から受信する。なお、XFER_RDYフレームは、データの書き込み準備が整ったことを示す。
[ステップS75]ディスクI/O制御部122は、ステップS72で通知されたHDDを送信先とするSASフレーム(データフレーム)をDA−L105から送信する。このSASフレームには、ステップS72で通知されたWriteデータが含まれる。
[ステップS81]ディスクI/O制御部122は、ホップ数テーブル114に基づいて、VUコマンドの送信方向を判定する。具体的には、ディスクI/O制御部122は、ホップ数テーブル114のレコードのうち、ステップS72で通知されたHDDと同じストレージ装置内のCEに対応するレコードを参照する。ディスクI/O制御部122は、そのレコードに基づいて、DA−LとDA−OのどちらからVUを送信する方が、そのCEとの間に存在する他のCEが少ないかを判定する。
DA−Lの方が少ない場合、ディスクI/O制御部122は、送信方向を順方向と判定し、ステップS82の処理を実行する。一方、DA−Oの方が少ない場合、ディスクI/O制御部122は、送信方向を逆方向と判定し、ステップS85の処理を実行する。
[ステップS82]ディスクI/O制御部122は、DA−L105に接続されたDA−Oを送信先とするSASフレーム(コマンドフレーム)をDA−L105から送信する。このSASフレームには、CE番号およびデバイス番号の欄にステップS72で通知されたHDDの位置を示す情報が設定され、コマンド領域にステップS72で通知された書き込み先領域を含むWriteコマンドが設定されたVUコマンドが含まれる。
[ステップS83]ディスクI/O制御部122は、ステップS82で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−L105から受信する。
[ステップS84]ディスクI/O制御部122は、DA−L105に接続されたDA−Oを送信先とするSASフレーム(データフレーム)をDA−L105から送信する。このSASフレームには、ステップS72で通知されたWriteデータが含まれる。
[ステップS85]ディスクI/O制御部122は、DA−O106に接続されたDA−Lを送信先とするSASフレーム(コマンドフレーム)をDA−O106から送信する。このSASフレームには、CE番号およびデバイス番号の欄にステップS72で通知されたHDDの位置を示す情報が設定され、コマンド領域にステップS72で通知された書き込み先領域を含むWriteコマンドが設定されたVUコマンドが含まれる。
[ステップS86]ディスクI/O制御部122は、ステップS85で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−O106から受信する。
[ステップS87]ディスクI/O制御部122は、DA−O106に接続されたDA−Lを送信先とするSASフレーム(データフレーム)をDA−O106から送信する。このSASフレームには、ステップS72で通知されたWriteデータが含まれる。
なお、図示しないが、ステップS75,S84,S87のいずれかでのWriteデータの送信が完了すると、ディスクI/O制御部122は、Writeデータの送信が完了したことをホストI/O制御部121に通知する。ホストI/O制御部121は、ステップS71で受信した書き込み要求に対する応答の情報をホスト装置400に送信する。
次に、図22,図23は、DA−OからVUコマンドを受信した場合の処理例を示すフローチャートである。
[ステップS101]ディスクI/O制御部122は、DA−O106からVUコマンドを含むSASフレーム(コマンドフレーム)を受信する。
[ステップS102]ディスクI/O制御部122は、構成管理テーブル111に基づき、受信したVUコマンドに設定されているCE番号およびデバイス番号が示すアクセス先のHDDが、自CE(CE100)の配下のHDDかを判定する。ディスクI/O制御部122は、アクセス先のHDDがCE100の配下のHDDである場合、ステップS103の処理を実行し、アクセス先のHDDが他のCEの配下のHDDである場合、ステップS121の処理を実行する。
[ステップS103]ディスクI/O制御部122は、受信したVUコマンドのコマンド領域に設定されているコマンドの種別が、ReadコマンドかWriteコマンドかを判定する。ディスクI/O制御部122は、Readコマンドの場合、ステップS104の処理を実行し、Writeコマンドの場合、ステップS107の処理を実行する。
[ステップS104]ディスクI/O制御部122は、VUコマンドのCE番号およびデバイス番号が示すHDDを送信先とするSASフレーム(コマンドフレーム)を、DA−L105から送信する。このSASフレームには、VUコマンドのコマンド領域に設定されている読み出し元領域が設定されたReadコマンドが含まれる。
[ステップS105]ディスクI/O制御部122は、ステップS104で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−L105から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS106]ディスクI/O制御部122は、ステップS101で受信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−O106から送信する。このSASフレームの送信先は、DA−O106に接続された前段のストレージ装置のCEのDA−L(図7の例では、CE100cのDA−L105c)とされる。また、このSASフレームには、ステップS105で受信したSASフレームから抽出したReadデータが含まれる。
[ステップS107]ディスクI/O制御部122は、VUコマンドのCE番号およびデバイス番号が示すHDDを送信先とするSASフレーム(コマンドフレーム)を、DA−L105から送信する。このSASフレームには、VUコマンドのコマンド領域に設定されている書き込み先領域が設定されたWriteコマンドが含まれる。
[ステップS108]ディスクI/O制御部122は、ステップS107で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−L105から受信する。
[ステップS109]ディスクI/O制御部122は、ステップS101で受信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−O106から送信する。このSASフレームの送信先は、DA−O106に接続された前段のストレージ装置のCEのDA−L(図7の例では、CE100cのDA−L105c)とされる。
[ステップS110]ディスクI/O制御部122は、ステップS109で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−O106から受信する。このSASフレームには、Writeデータが含まれる。
[ステップS111]ディスクI/O制御部122は、ステップS107で送信したSASフレームと同じHDDを送信先とするSASフレーム(データフレーム)を、DA−L105から送信する。このSASフレームには、ステップS110で受信したWriteデータが含まれる。これにより、SASフレームの送信先のHDDに対してWriteデータが書き込まれる。
[ステップS121]ディスクI/O制御部122は、VUコマンドを含むSASフレーム(コマンドフレーム)を、DA−L105から送信する。このSASフレームの送信先は、DA−L105に接続された次段のストレージ装置のCEのDA−O(図7の例では、CE100aのDA−O106a)とされる。また、このSASフレームには、送信先以外はステップS101で受信したSASフレームと同じ内容が設定される。
[ステップS122]ディスクI/O制御部122は、ステップS121で送信したSASフレームのVUコマンドに設定されたコマンド種別がReadコマンドの場合、ステップS123の処理を実行し、Writeコマンドの場合、ステップS125の処理を実行する。
[ステップS123]ディスクI/O制御部122は、ステップS121で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−L105から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS124]ディスクI/O制御部122は、ステップS101で受信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−O106から送信する。このSASフレームの送信先は、ステップS106でのSASフレームの送信先と同じである。また、このSASフレームには、ステップS123で受信したSASフレームから抽出したReadデータが含まれる。
[ステップS125]ディスクI/O制御部122は、ステップS121で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−L105から受信する。
[ステップS126]ディスクI/O制御部122は、ステップS101で受信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−O106から送信する。このSASフレームの送信先は、ステップS109でのSASフレームの送信先と同じである。
[ステップS127]ディスクI/O制御部122は、ステップS126で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−O106から受信する。このSASフレームには、Writeデータが含まれる。
[ステップS128]ディスクI/O制御部122は、ステップS121で送信したSASフレームと同じSASデバイス(DA−O)を送信先とするSASフレーム(データフレーム)を、DA−L105から送信する。このSASフレームには、ステップS127で受信したWriteデータが含まれる。これにより、Writeデータが次段のストレージ装置のCEに受け渡される。
図24は、DA−LからVUコマンドを受信した場合の処理例を示すフローチャートである。
[ステップS141]ディスクI/O制御部122は、DA−L105からVUコマンドを含むSASフレーム(コマンドフレーム)を受信する。
[ステップS142]ディスクI/O制御部122は、構成管理テーブル111に基づき、受信したVUコマンドに設定されているCE番号およびデバイス番号が示すアクセス先のHDDが、自CE(CE100)の配下のHDDかを判定する。ディスクI/O制御部122は、アクセス先のHDDがCE100の配下のHDDである場合、ステップS143の処理を実行し、アクセス先のHDDが他のCEの配下のHDDである場合、ステップS144の処理を実行する。
[ステップS143]図22のステップS103以降の処理が実行される。
[ステップS144]ディスクI/O制御部122は、VUコマンドを含むSASフレーム(コマンドフレーム)を、DA−O106から送信する。このSASフレームの送信先は、DA−O106に接続された前段のストレージ装置のCEのDA−L(図7の例では、CE100cのDA−L105c)とされる。また、このSASフレームには、送信先以外はステップS141で受信したSASフレームと同じ内容が設定される。
[ステップS145]ディスクI/O制御部122は、ステップS144で送信したSASフレームのVUコマンドに設定されたコマンド種別がReadコマンドの場合、ステップS146の処理を実行し、Writeコマンドの場合、ステップS148の処理を実行する。
[ステップS146]ディスクI/O制御部122は、ステップS144で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−O106から受信する。このSASフレームには、読み出し元領域から読み出されたReadデータが含まれる。
[ステップS147]ディスクI/O制御部122は、ステップS141で受信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−L105から送信する。このSASフレームの送信先は、DA−L105に接続された次段のストレージ装置のCEのDA−O(図7の例では、CE100aのDA−O106)とされる。また、このSASフレームには、ステップS146で受信したSASフレームから抽出したReadデータが含まれる。
[ステップS148]ディスクI/O制御部122は、ステップS144で送信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−O106から受信する。
[ステップS149]ディスクI/O制御部122は、ステップS141で受信したSASフレームに対する応答としてのSASフレーム(XFER_RDYフレーム)を、DA−L105から送信する。このSASフレームの送信先は、ステップS147でのSASフレームの送信先と同じである。
[ステップS150]ディスクI/O制御部122は、ステップS149で送信したSASフレームに対する応答としてのSASフレーム(データフレーム)を、DA−L105から受信する。このSASフレームには、Writeデータが含まれる。
[ステップS151]ディスクI/O制御部122は、ステップS144で送信したSASフレームと同じSASデバイス(DA−L)を送信先とするSASフレーム(データフレーム)を、DA−O106から送信する。このSASフレームには、ステップS150で受信したWriteデータが含まれる。これにより、Writeデータが前段のストレージ装置のCEに受け渡される。
なお、DE内のSASスイッチは、受信したSASフレームをその送信先のSASデバイスの方向のポートから転送するだけであるので、SASスイッチの処理については図示を省略する。
最後に、複数のストレージ装置が接続されるストレージシステムの比較例を図25,図26に示し、これらの比較例に対する第2の実施の形態のストレージシステムの優位点について説明する。
図25は、第1の比較例を示す図である。図25に示すストレージシステムは、CE901およびDE902,903を含むストレージ装置と、CE901aおよびDE902a,903aを含むストレージ装置と、CE901bおよびDE902b,903bを含むストレージ装置と、CE901cおよびDE902c,903cを含むストレージ装置とを有する。CE901にはホスト装置904が接続され、CE901aにはホスト装置904aが接続され、CE901bにはホスト装置904bが接続され、CE901cにはホスト装置904cが接続されている。
このようなストレージ装置同士を接続して、各CEがストレージシステム内のどのCE内のHDDにもアクセスできるようにする方法としては、図25に示すように、CE901,901a,901b,901cを専用の中継装置911を介して接続する方法が考えられる。
しかし、この方法では、CE間の通信トラフィックが中継装置911に集中するので、ストレージ装置が増設されてシステム規模が大きくなるほど、中継装置911の通信負荷が増大する。このため、大規模なシステムを構築するためには、通信処理性能の高い高価な中継装置911が必要になる。さらに、増設可能なストレージ装置の数が、中継装置911に搭載されているポート数によって制限される。
これに対して、第2の実施の形態のストレージシステムでは、あるストレージ装置においてCEからHDDにアクセスするためのローカル伝送路を、次のストレージ装置のCEに接続することで、ストレージ装置がループ状に接続される。この構成によれば、CE間で伝送されるデータがストレージシステム内で分散され、通信トラフィックがシステム内の特定の箇所に集中しにくい。このため、高性能で高価な中継装置911を用いずに、高性能かつ大規模なストレージシステムを低コストで構築できる。
また、上記のような単純な接続構造としたことで、中継装置911のポート数に依存せずに、ストレージ装置の数を増加させることができ、ストレージ装置の最大増設数を増やすことができる。これに加えて、第2の実施の形態では、各ストレージ装置に対応するローカル伝送路ごとに、SASプロトコルが終端され、SASプロトコルをそれぞれ用いた独立した通信が行われる。このため、ストレージ装置をどれだけ増設しても、それぞれのストレージ装置に、SASプロトコルで許容される最大数に近い数のHDDを搭載することができる。すなわち、ストレージシステムに増設可能なストレージ装置の数を多くすることができるだけでなく、ストレージシステム全体に増設可能なHDDの数も多くすることができる。
次に、ストレージ装置同士を接続する他の方法としては、図25の中継装置911の代わりに、CE間をネットワークを介して接続する方法が考えられる。しかし、この方法でも、ストレージ装置が増設されてシステム規模が大きくなるほど、ネットワークの通信トラフィックが増大する。このため、大規模なシステムを構築するためには、通信帯域幅の大きいネットワークが必要となり、コストが増大する。
これに対して、上記のように、第2の実施の形態のストレージシステムでは、高性能かつ大規模なストレージシステムを低コストで構築できる。
図26は、第2の比較例を示す図である。なお、図26では、図25に対応する構成要素については同じ符号を付して示している。
図26の例では、CE901,901a,901b,901cと、ホスト装置904,904a,904b,904cとが、中央制御装置912を介して接続されている。この例では、中央制御装置912は、配下に接続されたDE902,903,902a,903a,902b,903b,902c,903cのそれぞれの記憶領域全体を、仮想記憶領域として管理する。そして、中央制御装置912は、ホスト装置904,904a,904b,904cから仮想記憶領域へのアクセス要求を受け付け、そのアクセス要求を対応するHDDに配信する。
このような中央集権型の中央制御装置912を用いた場合には、ストレージ装置が増設されてシステム規模が大きくなるほど、中央制御装置912の処理負荷が増大する。このため、大規模なシステムを構築するためには、処理性能の高い高価な中央制御装置912が必要になる。
第2の実施の形態のストレージシステムによれば、このような高性能で高価な中央制御装置912を用いずに、高性能かつ大規模なストレージシステムを低コストで構築できる。
また、図25,図26のいずれの方法でも、中継装置911や中央制御装置912が故障した場合に、HDDへのアクセスが停止されるという問題もある。第2の実施の形態のストレージシステムでは、ループ状伝送路における双方向が可能となっている。これにより、CE、DE、ストレージ装置のいずれが故障した場合でも、故障した機器を含むストレージ装置を除く残りのストレージ装置を用いた運用を継続することができる。
なお、上記の第2の実施の形態では、CEとDEおよび隣接CEとの通信のためのインタフェースとして、SASインタフェースを用いた例について説明した。しかし、これに限定されるものではなく、少なくともマルチイニシエータをサポートするインタフェースを用いることができる。また、活性でのデバイスの挿抜が可能なインタフェースを用いることで、システムの運用を継続したまま、ストレージ装置やDEの増設作業や、故障した機器の入れ替え作業を行うことができる。このような条件を満たすインタフェースとしては、例えば、FCがある。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 制御装置と、前記制御装置を始端とする第1の伝送路を通じて前記制御装置と直列に接続され、前記制御装置からアクセスされる1以上の記憶装置と、をそれぞれ備える複数のストレージ装置と、
前記複数のストレージ装置をループ状に接続し、前記各制御装置間で通信するための第2の伝送路であって、前記複数のストレージ装置にそれぞれ含まれる前記第1の伝送路を含むとともに、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第1の伝送路の終端が、前記複数のストレージ装置のうち前記第2の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第1の伝送路の始端に接続されることで形成される前記第2の伝送路と、
を有するストレージシステム。
(付記2) 前記各制御装置は、第1のインタフェースと第2のインタフェースとを有し、
前記一のストレージ装置に含まれる前記第1の伝送路の始端が、前記一のストレージ装置に含まれる前記第1のインタフェースに接続され、前記一のストレージ装置に含まれる前記第1の伝送路の終端が、前記他のストレージ装置に含まれる前記第2のインタフェースに接続されることで、前記第2の伝送路が形成される、
付記1記載のストレージシステム。
(付記3) 前記複数のストレージ装置のうち第1のストレージ装置に含まれる制御装置は、
アクセス先記憶装置を示す位置情報と、前記アクセス先記憶装置に実行させる動作を示す第1のコマンド情報とを含む第2のコマンド情報を、前記第2のインタフェースを通じて受信すると、前記位置情報に基づいて前記アクセス先記憶装置が前記第1のストレージ装置に含まれる前記1以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記第1のストレージ装置に含まれる前記1以上の記憶装置のいずれかである場合、前記第2のコマンド情報から抽出した前記第1のコマンド情報を前記第1のインタフェースから前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記第1のストレージ装置に含まれる前記1以上の記憶装置のいずれでもない場合、前記第2のコマンド情報を前記第1のインタフェースから、前記第2の伝送路において前記第1のストレージ装置の次に接続された第2のストレージ装置に含まれる前記第2のインタフェースに対して転送する、
付記2記載のストレージシステム。
(付記4) 前記第1のストレージ装置に含まれる前記第1のインタフェースは、前記第1のストレージ装置に含まれる前記第1の伝送路上のイニシエータとして動作し、当該第1の伝送路に接続された前記1以上の記憶装置と、当該第1の伝送路に接続された前記第2のストレージ装置に含まれる前記第2のインタフェースとは、当該第1の伝送路上のターゲットとして動作する、
付記3記載のストレージシステム。
(付記5) 前記複数のストレージ装置のうち第1のストレージ装置に含まれる第1の制御装置は、前記複数のストレージ装置のうち第2のストレージ装置に含まれる一の記憶装置にアクセスする際、前記第2のストレージ装置に含まれる第2の制御装置に対して、前記一の記憶装置へのアクセス要求を前記第2の伝送路を通じて送信し、
前記第2の制御装置は、前記アクセス要求に応じて前記一の記憶装置にアクセスする、
付記1または2記載のストレージシステム。
(付記6) 前記第1の制御装置は、前記一の記憶装置にアクセスする際、前記一の記憶装置の位置を示す位置情報と、前記一の記憶装置に実行させる動作を示す第1のコマンド情報とを含む第2のコマンド情報を、前記アクセス要求として前記第2の伝送路を通じて前記第2の制御装置に送信し、
前記第2の制御装置は、前記第2のコマンド情報を受信すると、前記第1のコマンド情報に基づいて前記一の記憶装置にアクセスする、
付記5記載のストレージシステム。
(付記7) 前記第2の制御装置は、前記第2のコマンド情報を受信すると、前記位置情報が示すアクセス先記憶装置が前記第2のストレージ装置に含まれる記憶装置であると判定し、前記第1のコマンド情報に基づいて前記位置情報が示す前記一の記憶装置にアクセスする、
付記6記載のストレージシステム。
(付記8) 前記第1のストレージ装置と前記第2のストレージ装置との間の前記第2の伝送路上に第3のストレージ装置が存在する場合、前記第3のストレージ装置に含まれる第3の制御装置は、前記第2の伝送路を通じて前記第2のコマンド情報を受信すると、前記位置情報が示すアクセス先記憶装置が前記第3のストレージ装置に含まれる記憶装置でないと判定し、前記第2のコマンド情報を前記第2の伝送路において次に接続された第4の制御装置に転送する、
付記6または7記載のストレージシステム。
(付記9) 前記第1の制御装置は、前記第2の伝送路において前記第2の制御装置と間に存在する他の制御装置の数に基づいて、前記第2の伝送路において前記第2のコマンド情報を送信する方向を決定し、前記決定された方向に前記第2のコマンド情報を送信する、
付記6乃至8のいずれか1項に記載のストレージシステム。
(付記10) 複数の記憶装置を有するストレージシステムに含まれるストレージ装置において、
制御装置と、
前記制御装置を始端とする伝送路と、
前記伝送路を通じて前記制御装置と直列に接続され、前記制御装置によってアクセスが制御される1以上の記憶装置と、
を有し、
前記制御装置は、
前記1以上の記憶装置のうちの一の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第1のコマンド情報を前記一の記憶装置に送信し、
前記複数の記憶装置のうち前記1以上の記憶装置以外の他の記憶装置にアクセスする際は、前記他の記憶装置の位置を示す位置情報と、前記他の記憶装置に実行させる動作を示す第2のコマンド情報とを含む第3のコマンド情報を、前記伝送路の終端に接続された第1の他のストレージ装置に送信する、
ストレージ装置。
(付記11) 前記制御装置は、前記制御装置に接続されたホスト装置からの要求に応じて前記他の記憶装置にアクセスする場合には、前記第3のコマンド情報を生成して前記伝送路に送信する、
付記10記載のストレージ装置。
(付記12) 前記制御装置は、
前記伝送路の始端に接続された第1のインタフェースと、
第2の他のストレージ装置に接続された第2のインタフェースと、
を有し、
アクセス先記憶装置の位置を示す他の位置情報と、前記アクセス先記憶装置に実行させる動作を示す第4のコマンド情報とを含む第5のコマンド情報を、前記第2のインタフェースを通じて前記第2の他のストレージ装置から受信すると、前記他の位置情報に基づいて前記アクセス先記憶装置が前記1以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記1以上の記憶装置のいずれかである場合、前記第5のコマンド情報から抽出した前記第4のコマンド情報を前記伝送路を通じて前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記1以上の記憶装置のいずれでもない場合、前記第5のコマンド情報を前記伝送路に転送する、
付記10または11記載のストレージ装置。
(付記13) 制御装置と、前記制御装置を始端とする第1の伝送路を通じて前記制御装置と直列に接続された1以上の記憶装置と、をそれぞれ備える複数のストレージ装置の間での通信方法において、
前記複数のストレージ装置は、前記複数のストレージ装置にそれぞれ含まれる前記第1の伝送路を含む第2の伝送路によってループ状に接続され、前記第2の伝送路は、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第1の伝送路の終端が、前記複数のストレージ装置のうち前記第2の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第1の伝送路の始端に接続されることで形成されている状態で、
前記複数のストレージ装置のうち第1のストレージ装置に含まれる一の制御装置は、
前記第1のストレージ装置に含まれる第1の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第1のコマンド情報を前記第2の伝送路に送信し、
前記複数のストレージ装置のうち第2のストレージ装置に含まれる第2の記憶装置にアクセスする際は、前記第2の記憶装置の位置を示す位置情報と、前記第2の記憶装置に実行させる動作を示す第2のコマンド情報とを含む第3のコマンド情報を、前記第2の伝送路に送信する、
通信方法。