(57)【特許請求の範囲】
【請求項１】
制御装置と、前記制御装置を始端とする第１の伝送路を通じて前記制御装置と直列に接続され、前記制御装置からアクセスされる１以上の記憶装置と、をそれぞれ備える複数のストレージ装置と、
前記複数のストレージ装置をループ状に接続し、前記各制御装置間で通信するための第２の伝送路であって、前記複数のストレージ装置にそれぞれ含まれる前記第１の伝送路を含むとともに、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第１の伝送路の終端が、前記複数のストレージ装置のうち前記第２の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第１の伝送路の始端に接続されることで形成される前記第２の伝送路と、
を有し、
前記各制御装置は、第１のインタフェースと第２のインタフェースとを有し、
前記一のストレージ装置に含まれる前記第１の伝送路の始端が、前記一のストレージ装置に含まれる前記第１のインタフェースに接続され、前記一のストレージ装置に含まれる前記第１の伝送路の終端が、前記他のストレージ装置に含まれる前記第２のインタフェースに接続されることで、前記第２の伝送路が形成される、
ストレージシステム。
【請求項２】
前記複数のストレージ装置のうち第１のストレージ装置に含まれる制御装置は、
アクセス先記憶装置を示す位置情報と、前記アクセス先記憶装置に実行させる動作を示す第１のコマンド情報とを含む第２のコマンド情報を、前記第２のインタフェースを通じて受信すると、前記位置情報に基づいて前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれかである場合、前記第２のコマンド情報から抽出した前記第１のコマンド情報を前記第１のインタフェースから前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれでもない場合、前記第２のコマンド情報を前記第１のインタフェースから、前記第２の伝送路において前記第１のストレージ装置の次に接続された第２のストレージ装置に含まれる前記第２のインタフェースに対して転送する、
請求項１記載のストレージシステム。
【請求項３】
前記第１のストレージ装置に含まれる前記第１のインタフェースは、前記第１のストレージ装置に含まれる前記第１の伝送路上のイニシエータとして動作し、当該第１の伝送路に接続された前記１以上の記憶装置と、当該第１の伝送路に接続された前記第２のストレージ装置に含まれる前記第２のインタフェースとは、当該第１の伝送路上のターゲットとして動作する、
請求項２記載のストレージシステム。
【請求項４】
前記複数のストレージ装置のうち第１のストレージ装置に含まれる第１の制御装置は、前記複数のストレージ装置のうち第２のストレージ装置に含まれる一の記憶装置にアクセスする際、前記第２のストレージ装置に含まれる第２の制御装置に対して、前記一の記憶装置へのアクセス要求を前記第２の伝送路を通じて送信し、
前記第２の制御装置は、前記アクセス要求に応じて前記一の記憶装置にアクセスする、
請求項１記載のストレージシステム。
【請求項５】
制御装置と、前記制御装置を始端とする第１の伝送路を通じて前記制御装置と直列に接続され、前記制御装置からアクセスされる１以上の記憶装置と、をそれぞれ備える複数のストレージ装置と、
前記複数のストレージ装置をループ状に接続し、前記各制御装置間で通信するための第２の伝送路であって、前記複数のストレージ装置にそれぞれ含まれる前記第１の伝送路を含むとともに、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第１の伝送路の終端が、前記複数のストレージ装置のうち前記第２の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第１の伝送路の始端に接続されることで形成される前記第２の伝送路と、
を有し、
前記複数のストレージ装置のうち第１のストレージ装置に含まれる第１の制御装置は、
前記第１のストレージ装置に含まれる第１の記憶装置にアクセスする際は、前記第１の記憶装置に実行させる動作を示す第１のコマンド情報を前記第１の記憶装置に送信し、
前記複数のストレージ装置のうち第２のストレージ装置に含まれる第２の記憶装置にアクセスする際は、前記第２の記憶装置の位置を示す位置情報と、前記第２の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、前記第１のストレージ装置に含まれる前記第１の伝送路の終端に接続された、前記複数のストレージ装置のうち前記第１のストレージ装置以外のストレージ装置に送信する、
ストレージシステム。
【請求項６】
複数の記憶装置を有するストレージシステムに含まれるストレージ装置において、
制御装置と、
前記制御装置を始端とする伝送路と、
前記伝送路を通じて前記制御装置と直列に接続され、前記制御装置によってアクセスが制御される１以上の記憶装置と、
を有し、
前記制御装置は、
前記１以上の記憶装置のうちの一の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第１のコマンド情報を前記一の記憶装置に送信し、
前記複数の記憶装置のうち前記１以上の記憶装置以外の他の記憶装置にアクセスする際は、前記他の記憶装置の位置を示す位置情報と、前記他の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、前記伝送路の終端に接続された第１の他のストレージ装置に送信する、
ストレージ装置。
【請求項７】
前記制御装置は、前記制御装置に接続されたホスト装置からの要求に応じて前記他の記憶装置にアクセスする場合には、前記第３のコマンド情報を生成して前記伝送路に送信する、
請求項６記載のストレージ装置。
【請求項８】
前記制御装置は、
前記伝送路の始端に接続された第１のインタフェースと、
第２の他のストレージ装置に接続された第２のインタフェースと、
を有し、
アクセス先記憶装置の位置を示す他の位置情報と、前記アクセス先記憶装置に実行させる動作を示す第４のコマンド情報とを含む第５のコマンド情報を、前記第２のインタフェースを通じて前記第２の他のストレージ装置から受信すると、前記他の位置情報に基づいて前記アクセス先記憶装置が前記１以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記１以上の記憶装置のいずれかである場合、前記第５のコマンド情報から抽出した前記第４のコマンド情報を前記伝送路を通じて前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記１以上の記憶装置のいずれでもない場合、前記第５のコマンド情報を前記伝送路に転送する、
請求項６または７記載のストレージ装置。
【請求項９】
制御装置と、前記制御装置を始端とする第１の伝送路を通じて前記制御装置と直列に接続された１以上の記憶装置と、をそれぞれ備える複数のストレージ装置の間での通信方法において、
前記複数のストレージ装置は、前記複数のストレージ装置にそれぞれ含まれる前記第１の伝送路を含む第２の伝送路によってループ状に接続され、前記第２の伝送路は、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第１の伝送路の終端が、前記複数のストレージ装置のうち前記第２の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第１の伝送路の始端に接続されることで形成されている状態で、
前記複数のストレージ装置のうち第１のストレージ装置に含まれる一の制御装置は、
前記第１のストレージ装置に含まれる第１の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第１のコマンド情報を前記第２の伝送路に送信し、
前記複数のストレージ装置のうち第２のストレージ装置に含まれる第２の記憶装置にアクセスする際は、前記第２の記憶装置の位置を示す位置情報と、前記第２の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、前記第２の伝送路に送信する、
通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ装置および通信方法に関する。
【背景技術】
【０００２】
ストレージシステムは、一般的に、ディスクアレイなどの記憶装置と、ホスト装置からの要求に応じて記憶装置にアクセスする制御装置とを備える。近年では、初期導入時の状態から記憶装置や制御装置を適宜増設可能な拡張性の高いストレージシステムが要求されている。このようなストレージシステムによれば、顧客は、初期投資を抑制し、業務の拡大に応じて少ない投資でアクセス性能や記憶容量を高めることができる。
【０００３】
ストレージシステムの例として、次のようなストレージ共有型分散マルチメディアサーバシステムが提案されている。このシステムは、複数の要素サーバと、コンテンツを格納した複数のディスク装置を含む共有ディスクアレイと、各要素サーバおよび共有ディスクアレイが接続されるマルチイニシエータ構成が可能な共有チャネル網とを備える。そして、各要素サーバは、クライアントからの要求に応じて共有ディスクアレイに格納されたコンテンツを読み出し、情報配信網に出力する。
【０００４】
また、ディスクアレイの例として、ループ状インタフェースを利用した次のようなディスクアレイが提案されている。このディスクアレイは、ＦＣ（Fibre Channel）ポートからループ状に接続されたチャネルに、それぞれ個別のポートバイパス回路を介してＨＤＤ（Hard Disk Drive）が接続された構成を有する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１３４４８５号公報
【特許文献２】特開２００１−２１６２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストレージシステムの例として、制御装置と１台以上の記憶装置とを有するストレージ装置を単位として増設を可能にしたスケールアウト型のストレージシステムがある。このようなストレージシステムでは、システム全体の記憶容量が拡大するとともに、記憶装置へのアクセスを制御装置間で分散させることでアクセス性能が向上する。
【０００７】
これに加えて、複数のストレージ装置の制御装置同士で通信することによって様々な処理を行うことができる。例えば、ストレージ装置間でデータを移動して、ストレージ装置間で容量やアクセス頻度をバランスさせることが考えられる。また、あるストレージ装置内のデータを他のストレージ装置にコピーしてデータを冗長化することも考えられる。さらに、１つの論理ボリュームに対して、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）によって制御される物理記憶領域を複数のストレージ装置に分散させて割り当てることも考えられる。この場合、記憶装置単位だけでなくストレージ装置単位での故障に対する可用性が向上する。
【０００８】
ここで、上記のように制御装置間の通信を可能にする方法としては、例えば、制御装置間を中継装置を介して接続する方法が考えられる。しかし、この方法では、ストレージ装置の増設によりシステム規模が大きくなるほど、中継装置での通信負荷が高くなる。このため、大規模なストレージシステムを実現するためには、通信性能の高い高価な中継装置が必要になるという問題がある。また、制御装置間をネットワークを介して接続する方法も考えられる。しかし、この方法でも、システム規模が大きくなるほどネットワークのトラフィックが増大するので、高帯域のネットワークが必要となる。
【０００９】
１つの側面では、本発明は、システム規模の拡大に伴うネットワーク接続の構築を簡素化可能なストレージシステム、ストレージ装置および通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、制御装置と、制御装置を始端とする第１の伝送路を通じて制御装置と直列に接続され、制御装置からアクセスされる１以上の記憶装置と、をそれぞれ備える複数のストレージ装置と、複数のストレージ装置をループ状に接続し、各制御装置間で通信するための第２の伝送路と、を有するストレージシステムが提供される。ここで、第２の伝送路は、複数のストレージ装置にそれぞれ含まれる第１の伝送路を含むとともに、複数のストレージ装置のうち一のストレージ装置に含まれる第１の伝送路の終端が、複数のストレージ装置のうち第２の伝送路上で一のストレージ装置の次に接続される他のストレージ装置に含まれる第１の伝送路の始端に接続されることで形成される。
【００１１】
また、１つの案では、複数の記憶装置を有するストレージシステムに含まれるストレージ装置が提供される。このストレージ装置は、制御装置と、制御装置を始端とする伝送路と、伝送路を通じて制御装置と直列に接続され、制御装置によってアクセスが制御される１以上の記憶装置と、を有する。また、制御装置は、１以上の記憶装置のうちの一の記憶装置にアクセスする際は、一の記憶装置に実行させる動作を示す第１のコマンド情報を一の記憶装置に送信し、複数の記憶装置のうち１以上の記憶装置以外の他の記憶装置にアクセスする際は、他の記憶装置の位置を示す位置情報と、他の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、伝送路の終端に接続された第１の他のストレージ装置に送信する。
【００１２】
さらに、１つの案では、制御装置と、制御装置を始端とする第１の伝送路を通じて制御装置と直列に接続された１以上の記憶装置と、をそれぞれ備える複数のストレージ装置の間での通信方法が提供される。この通信方法では、複数のストレージ装置は、複数のストレージ装置にそれぞれ含まれる第１伝送路を含む第２の伝送路によってループ状に接続され、第２の伝送路は、複数のストレージ装置のうち一のストレージ装置に含まれる第１の伝送路の終端が、複数のストレージ装置のうち第２の伝送路上で一のストレージ装置の次に接続される他のストレージ装置に含まれる第１の伝送路の始端に接続されることで形成されている状態で、次のような処理が行われる。複数のストレージ装置のうち第１のストレージ装置に含まれる一の制御装置は、第１のストレージ装置に含まれる第１の記憶装置にアクセスする際は、一の記憶装置に実行させる動作を示す第１のコマンド情報を第２の伝送路に送信し、複数のストレージ装置のうち第２のストレージ装置に含まれる第２の記憶装置にアクセスする際は、第２の記憶装置の位置を示す位置情報と、第２の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、第２の伝送路に送信する。
【発明の効果】
【００１３】
１つの側面では、システム規模の拡大に伴うネットワーク接続の構築を簡素化できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るストレージシステムの構成例を示す図である。
【図２】ストレージシステムを構成するストレージ装置の構成例を示す図である。
【図３】ＣＥおよびＤＥのハードウェア構成例を示す図である。
【図４】ストレージ装置を１組含むストレージシステムの構成例を示す図である。
【図５】ＤＥの増設例を示す図である。
【図６】ストレージ装置を２組含むストレージシステムの構成例を示す図である。
【図７】ストレージ装置を４組含むストレージシステムの構成例を示す図である。
【図８】構成管理テーブルの例を示す図である。
【図９】ボリューム管理テーブルの例を示す図である。
【図１０】ＳＡＳデバイスによるデバイスグループの例を示す図である。
【図１１】ＳＡＳマップの例を示す図である。
【図１２】ストレージ装置の増設に伴うＳＡＳマップの変化の例を示す図である。
【図１３】第２の実施の形態で利用されるコマンドの例を示す図である。
【図１４】ＣＥから他のストレージ装置内のＨＤＤにアクセスする際の処理例を示すシーケンス図である。
【図１５】ＣＥから他のストレージ装置内のＨＤＤにアクセスする際の別の処理例を示すシーケンス図である。
【図１６】ＣＥの処理機能の構成例を示すブロック図である。
【図１７】ホップ数テーブルの例を示す図である。
【図１８】ホスト装置から、論理ボリュームからの読み出し要求を受信した場合の処理例を示すフローチャート（その１）である。
【図１９】ホスト装置から、論理ボリュームからの読み出し要求を受信した場合の処理例を示すフローチャート（その２）である。
【図２０】ホスト装置から、論理ボリュームへの書き込み要求を受信した場合の処理例を示すフローチャート（その１）である。
【図２１】ホスト装置から、論理ボリュームへの書き込み要求を受信した場合の処理例を示すフローチャート（その２）である。
【図２２】ＤＡ−ＯからＶＵコマンドを受信した場合の処理例を示すフローチャート（その１）である。
【図２３】ＤＡ−ＯからＶＵコマンドを受信した場合の処理例を示すフローチャート（その２）である。
【図２４】ＤＡ−ＬからＶＵコマンドを受信した場合の処理例を示すフローチャートである。
【図２５】第１の比較例を示す図である。
【図２６】第２の比較例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係るストレージシステムの構成例を示す図である。図１に示すストレージシステムは、ストレージ装置１，２，３がループ状に接続された構成を有している。なお、ループ状に接続されるストレージ装置の数は、２台でもよいし、４台以上でもよい。
【００１６】
各ストレージ装置は、１つの制御装置と、１以上の記憶装置とを有する。図１の例では、ストレージ装置１，２，３は、ともに２台の記憶装置を有している。また、各ストレージ装置は、制御装置を始端とするローカル伝送路（第１の伝送路）を含み、１以上の記憶装置はローカル伝送路を通じて制御装置と直列に接続されている。
【００１７】
すなわち、図１において、ストレージ装置１は、制御装置１ａと記憶装置１ｂ，１ｃとを有し、記憶装置１ｂ，１ｃは、制御装置１ａを始端とするローカル伝送路１ｄを通じて制御装置１ａと直列に接続されている。ストレージ装置２は、制御装置２ａと記憶装置２ｂ，２ｃとを有し、記憶装置２ｂ，２ｃは、制御装置２ａを始端とするローカル伝送路２ｄを通じて制御装置２ａと直列に接続されている。ストレージ装置３は、制御装置３ａと記憶装置３ｂ，３ｃとを有し、記憶装置３ｂ，３ｃは、制御装置３ａを始端とするローカル伝送路３ｄを通じて制御装置３ａと直列に接続されている。
【００１８】
また、図１では例として、制御装置１ａ，２ａ，３ａに、それぞれホスト装置１ｅ，２ｅ，３ｅが接続されている。制御装置１ａは、少なくとも、ホスト装置１ｅからの要求に応じて記憶装置にアクセスすることができる。同様に、制御装置２ａは、少なくとも、ホスト装置２ｅからの要求に応じて記憶装置にアクセスすることができ、制御装置３ａは、少なくとも、ホスト装置３ｅからの要求に応じて記憶装置にアクセスすることができる。
【００１９】
ストレージ装置１，２，３は、ローカル伝送路１ｄ，２ｄ，３ｄを含むループ状伝送路４（第２の伝送路）を通じて、ループ状に接続されている。ループ状伝送路４は、制御装置１ａ，２ａ，３ａの間で通信することを可能にする。
【００２０】
このループ状伝送路４は、ローカル伝送路１ｄ，２ｄ，３ｄがループ状に接続されることで形成される。より具体的には、ローカル伝送路１ｄの終端がローカル伝送路２ｄの始端に接続され、ローカル伝送路２ｄの終端がローカル伝送路３ｄの始端に接続され、ローカル伝送路３ｄの終端がローカル伝送路１ｄの始端に接続されることで、ループ状伝送路４が形成される。
【００２１】
なお、「ローカル伝送路１ｄ，２ｄ，３ｄがループ状に接続される」とは、各伝送路に対応する通信ケーブル同士が物理的に結線されることを必ずしも意味しない。例えば、ローカル伝送路１ｄを伝送されたデータが、制御装置２ａの内部的な処理によってローカル伝送路２ｄに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。同様に、ローカル伝送路２ｄを伝送されたデータが、制御装置３ａの内部的な処理によってローカル伝送路３ｄに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。また、ローカル伝送路３ｄを伝送されたデータが、制御装置１ａの内部的な処理によってローカル伝送路１ｄに伝送されてもよく、またその逆方向のデータ伝送が行われてもよい。
【００２２】
このストレージシステムでは、例えば、ストレージ装置を増設することができる。その場合、新たなストレージ装置は、そのストレージ装置内のローカル伝送路が、ループ状伝送路４における既存のローカル伝送路の間に挿入される。例えば、ストレージ装置３のローカル伝送路３ｄとストレージ装置１のローカル伝送路１ｄとの間に、新たなストレージ装置のローカル伝送路が直列に挿入される。このようにしてストレージ装置単位で増設が行われることで、ストレージシステムにおける記憶装置へのアクセス性能を増強できるとともに、記憶容量を拡大することができる。
【００２３】
また、制御装置１ａ，２ａ，３ａは、ループ状伝送路４を通じて互いに通信することができる。例えば、制御装置１ａは、他のストレージ装置２内の制御装置２ａを介して、ストレージ装置２内のＤＥにアクセスすることができる。これにより、例えば、ストレージ装置１内のＤＥに記録されたデータをストレージ装置２内のＤＥにコピーしたり、あるいは移動することができる。したがって、システム内で記憶容量やアクセス頻度をバランスさせる、あるいはデータの冗長度を高めることができる。
【００２４】
さらに、例えば、制御装置１ａがホスト装置１ｅからアクセスを受け付ける論理ボリュームの物理記憶装置として、ストレージ装置２内のＤＥのＨＤＤを割り当てることもできる。これにより、データ配置の自由度が向上する。また、例えば、１つの論理ボリュームに対して、それぞれ異なるストレージ装置内の記憶装置を物理記憶領域として割り当て、それらの記憶装置の書き込みをＲＡＩＤによって制御することもできる。この場合、１つのストレージ装置が故障しても論理ボリュームのデータの読み書きを継続できる可能性が高まり、可用性の高いストレージシステムが実現される。
【００２５】
このように、制御装置間で通信できるようにする方法としては、例えば、制御装置間を中継装置を介して接続する方法が考えられる。しかし、この方法では、システム内のストレージ装置の数が多いほど、中継装置での通信負荷が高くなる。このため、大規模なストレージシステムを実現するためには、通信性能の高い高価な中継装置が必要になるという問題がある。また、制御装置間をネットワークを介して接続する方法も考えられる。しかし、この方法でも、ストレージ装置の数が多いほどネットワークのトラフィックが増大するので、高帯域のネットワークが必要となる。
【００２６】
これに対して、本実施の形態のストレージシステムでは、異なるストレージ装置の制御装置は、各ストレージ装置に含まれるローカル伝送路１ｄ，２ｄ，３ｄを流用して形成されるループ状伝送路４によって接続される。制御装置間を接続する専用の中継装置を設けず、ローカル伝送路同士を接続するという単純な構成とすることで、システム構築のためのコストが低減される。
【００２７】
また、制御装置から記憶装置へのアクセスのための通信処理負荷がシステム上の各装置に分散するので、ストレージ装置の数が多い場合でも、通信負荷が特定の装置に集中する可能性が低い。このため、システム上の各装置として通信性能が高いものを選択する必要もない。
【００２８】
したがって、第１の実施の形態によれば、ストレージシステムの規模の拡大に伴うネットワーク接続の構築を簡素化することができる。
［第２の実施の形態］
次に、第２の実施の形態に係るストレージシステムについて説明する。
【００２９】
図２は、ストレージシステムを構成するストレージ装置の構成例を示す図である。第２の実施の形態に係るストレージシステムは、図２に示すストレージ装置１０を１組以上含む。ストレージ装置１０は、ストレージシステムでの増設の単位となっており、ストレージシステムに新たなストレージ装置１０を増設することで、ストレージシステムを拡張可能になっている。
【００３０】
ストレージ装置１０は、１台のＣＥ（Controller Enclosure）１００と、１台以上のＤＥ（Drive Enclosure）とを含む。以下、図２に例示するように、ストレージ装置１０は２台のＤＥ２００，３００を含むものとして説明する。
【００３１】
ＣＥ１００には、ホスト装置４００が接続される。ＣＥ１００は、ホスト装置４００からのアクセス要求に応じて、ストレージシステム内のＤＥに搭載された記憶装置に対するアクセスを制御する。ホスト装置４００からのアクセスの対象となる記憶装置は、ホスト装置４００と通信するＣＥ１００と同じストレージ装置１０に搭載されたＤＥ２００，３００内の記憶装置であってもよいし、それ以外のストレージ装置１０に搭載されたＤＥ２００，３００内の記憶装置であってもよい。
【００３２】
ＤＥ２００，３００には、ホスト装置４００からのアクセス対象となり得る記憶装置が複数台搭載されている。記憶装置は、例えば、ＨＤＤであり、その場合、ＤＥ２００，３００は、ディスクアレイ装置とも呼ばれる。また、記憶装置は、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置であってもよい。
【００３３】
ストレージ装置１０に複数台のＤＥが搭載される場合、ＣＥを先頭に複数台のＤＥが直列に接続される。図２の例では、ＣＥ１００にＤＥ２００が接続され、ＤＥ２００にＤＥ３００が接続されている。この構成では、ＣＥ１００は基本的に、ＤＥ２００を介してＤＥ３００内の記憶装置にアクセスする。
【００３４】
ストレージシステムがストレージ装置１０を複数組含む場合、ＣＥ１００は、他のストレージ装置１０内のＤＥに接続され、ストレージ装置１０内の末端のＤＥ（図２ではＤＥ３００）は、他のストレージ装置１０内のＣＥ１００に接続される。ＣＥ１００から他のストレージ装置１０への伝送経路は、最終的にＤＥ３００から他のストレージ装置１０への伝送経路に接続し、これによりループ状の伝送経路が形成される。一方、ストレージシステムがストレージ装置１０を１組のみ含む場合、図２で点線によって示すように、ＤＥ３００とＣＥ１００とが接続されて、ストレージ装置１０内でループ状の伝送経路が形成される。なお、このような伝送経路の形成パターンについては、後に詳しく説明する。
【００３５】
図３は、ＣＥおよびＤＥのハードウェア構成例を示す図である。
ＣＥ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。プロセッサ１０１は、マルチプロセッサであってもよい。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３６】
プロセッサ１０１には、バス１０７を介して、ＲＡＭ（Random Access Memory）１０２および複数の周辺機器が接続されている。
ＲＡＭ１０２は、ＣＥ１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３７】
バス１０７には、周辺機器としてＳＳＤ１０３、ＣＡ（Channel Adapter）１０４、ＤＡ−Ｌ（Device Adapter−Local）１０５およびＤＡ−Ｏ（Out）１０６が接続されている。
【００３８】
ＳＳＤ１０３は、ＣＥ１００の補助記憶装置として使用される。ＳＳＤ１０３には、ＯＳプログラム、アプリケーションプログラムおよび各種データが格納される。なお、補助記憶装置としては、ＨＤＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【００３９】
ＣＡ１０４は、ホスト装置４００と通知するためのインタフェースである。
ＤＡ−Ｌ１０５は、同じストレージ装置１０内のＤＥと通信するためのインタフェースである。一方、ＤＡ−Ｏ１０６は、同じストレージ装置１０内の末端のＤＥ、または、他のストレージ装置１０内の末端のＤＥと通知するためのインタフェースである。ＤＡ−Ｌ１０５およびＤＡ−Ｏ１０６は、ストレージシステムに形成されるループ状の伝送経路の一部を構成する。
【００４０】
本実施の形態では、例として、ＤＡ−Ｌ１０５およびＤＡ−Ｏ１０６は、ＳＡＳ（Serial Attached ＳＣＳＩ，ＳＣＳＩ：Small Computer System Interface）規格に準拠して通信するインタフェースである。また、ＤＡ−Ｌ１０５およびＤＡ−Ｏ１０６は、ＳＡＳイニシエータ（データ転送を指定して送信することができるマスタ）としても動作可能であるし、ＳＡＳターゲット（指定されたデータ転送を受けとることができるスレーブ）としても動作可能である。
【００４１】
なお、ＣＥ１００には、上記のプロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、ＣＡ１０４、ＤＡ−Ｌ１０５およびＤＡ−Ｏ１０６を備えるストレージ制御装置が、複数台搭載されていてもよい。
【００４２】
ＤＥ２００は、Ｉ（In）−ポート２０１、Ｏ（Out）−ポート２０２、ＳＡＳスイッチ２０３および複数のＨＤＤ２１１，２１２，２１３，・・・を有する。
Ｉ−ポート２０１は、同じストレージ装置１０内のＣＥ１００と接続する通信ポートである。一方、Ｏ−ポート２０２は、同じストレージ装置１０内の他のＤＥのうち、ＤＥ２００より１段末端側に配置されたＤＥ、または、他のストレージ装置１０内のＣＥと接続する通知ポートである。
【００４３】
ＳＡＳスイッチ２０３は、Ｉ−ポート２０１、Ｏ−ポート２０２、ＨＤＤ２１１，２１２，２１３，・・・の間でのデータ送受信を制御する。なお、ＳＡＳスイッチ２０３は、例えば、ＳＡＳエキスパンダとして実装される。
【００４４】
ＨＤＤ２１１，２１２，２１３，・・・は、それぞれ、ホスト装置からのアクセス対象となる記憶装置である。より具体的には、ＨＤＤ２１１，２１２，２１３，・・・は、ホスト装置からアクセス可能な論理ボリュームの物理記憶領域の一部を構成することが可能である。
【００４５】
なお、図３ではＤＥ２００を例示したが、ＤＥ３００もＤＥ２００と同様のハードウェア構成を有する。ただし、ＤＥ３００におけるＩ−ポート２０１に対応するインタフェースは、同じストレージ装置１０内の他のＤＥのうち、ＤＥ３００より１段先頭側（ＣＥ１００側）に配置されたＤＥと接続する。
【００４６】
次に、ストレージ装置１０の接続例について説明する。
図４は、ストレージ装置を１組含むストレージシステムの構成例を示す図である。ストレージ装置１０においては、ＣＥ１００のＤＡ−Ｌ１０５とＤＥ２００のＩ−ポート２０１とが接続され、ＤＥ２００のＯ−ポート２０２とＤＥ３００のＩ−ポート３０１とが接続される。これにより、ＣＥ１００，ＤＥ２００およびＤＥ３００は直列に接続される。また、ＣＥ１００のＣＡ１０４にはホスト装置４００が接続される。以上の接続関係は、ストレージシステムに含まれるストレージ装置の個数に関係なく、同じである。
【００４７】
ストレージシステムに１組のストレージ装置１０のみが含まれる場合、末端のＤＥ３００のＯ−ポート３０２とＣＥ１００のＤＡ−Ｏ１０６とが接続される。これにより、ＤＡ−Ｌ１０５、Ｉ−ポート２０１、Ｏ−ポート２０２、Ｉ−ポート３０１、Ｏ−ポート３０２およびＤＡ−Ｏ１０６を経由するループ状通信経路が形成される。このループ状通信経路は、ＣＥ１００からＤＥ２００，３００内のＨＤＤへのアクセスに利用される。
【００４８】
また、図４の構成において、ループ状通信経路は、ＣＥ１００のＤＡ−Ｌ１０５からＣＥ１００のＤＡ−Ｏ１０６までの、図４で点線によって示すローカル伝送路１１によって形成されている。ローカル伝送路１１は、１つのＳＡＳイニシエータと１以上のＳＡＳターゲットとを少なくとも１組含む伝送路である。
【００４９】
ＣＥ１００は、このループ状通信経路のどちらの方向にも通信可能になっている。これは、ストレージシステムがＳＡＳのマルチイニシエータ機能をサポートすることで実現される。ＣＥ１００のＤＡ−Ｌ１０５がローカル伝送路１１のＳＡＳイニシエータとして動作することで、ＣＥ１００はループ状通信経路を通じて図４の左回り方向にコマンドを送信する。また、ＣＥ１００のＤＡ−Ｏ１０６がローカル伝送路１１のＳＡＳイニシエータとして動作することで、ＣＥ１００はループ状通信経路の図４の右回り方向にコマンドを送信する。
【００５０】
図５は、ＤＥの増設例を示す図である。図５は例として、図４に示した構成のストレージシステムにおいて、ストレージ装置１０に新たなＤＥ５００を増設する場合について示す。
【００５１】
ストレージ装置１０に新たなＤＥ５００が増設される場合、新たなＤＥ５００は、ストレージ装置１０内の末端のＤＥ３００に直列に接続される。このとき、ＤＥ５００のＩ−ポート５０１は、ＤＥ３００のＯ−ポート３０２に接続される。また、ＤＥ５００のＯ−ポート５０２は、ＣＥ１００のＤＡ−Ｏ１０６に接続される。
【００５２】
図４の状態からＤＥ５００が増設される際には、ＤＥ３００のＯ−ポート３０２とＣＥ１００のＤＡ−Ｏ１０６とが切り離され、これらの間にＤＥ５００が接続される。すなわち、ローカル伝送路１１におけるＤＥ３００のＯ−ポート３０２とＣＥ１００のＤＡ−Ｏ１０６と間に、ＤＥ５００のＩ−ポート５０１およびＯ−ポート５０２を含む伝送路が挿入される。
【００５３】
このような増設作業の間、上記のループ状通信経路のうち、ＤＡ−Ｌ１０５、Ｉ−ポート２０１、Ｏ−ポート２０２およびＩ−ポート３０１を介する通信経路は維持される。このため、ＣＥ１００からＤＥ２００，３００内のＨＤＤへのアクセス動作を停止させずに、新たなＤＥ５００の増設作業を実行することができる。
【００５４】
図６は、ストレージ装置を２組含むストレージシステムの構成例を示す図である。なお、図６において、ストレージ装置１０ａに含まれるＣＥ１００ａ、ＤＥ２００ａ，３００ａは、それぞれＣＥ１００、ＤＥ２００，３００と同様のハードウェア構成を有する。また、ＣＥ１００ａには、ホスト装置４００ａが接続されている。なお、図６では、ＤＥに含まれるＩ−ポートとＯ−ポートの図示を省略する。
【００５５】
図４の状態から新たなストレージ装置１０ａが増設される場合、ＤＥ３００のＯ−ポートと、ＣＥ１００のＤＡ−Ｏ１０６とが切り離され、これらの間に新たなストレージ装置１０ａが挿入される。具体的には、ＤＥ３００のＯ−ポートとＣＥ１００ａのＤＡ−Ｏ１０６ａとが接続され、ＣＥ１００のＤＡ−Ｏ１０６とＤＥ３００ａのＯ−ポートとが接続される。
【００５６】
これにより、ＣＥ１００のＤＡ−Ｌ１０５、ＤＥ２００のＩ−ポート、ＤＥ２００のＯ−ポート、ＤＥ３００のＩ−ポート、ＤＥ３００のＯ−ポート、ＣＥ１００ａのＤＡ−Ｏ１０６ａ、ＣＥ１００ａのＤＡ−Ｌ１０５ａ、ＤＥ２００ａのＩ−ポート、ＤＥ２００ａのＯ−ポート、ＤＥ３００ａのＩ−ポート、ＤＥ３００ａのＯ−ポートおよびＣＥ１００のＤＡ−Ｏ１０６を経由するループ状通信経路が形成される。
【００５７】
図６のループ状通信経路は、ローカル伝送路１１，１１ａがループ状に接続されることで形成される。図４の状態からの増設作業では、ローカル伝送路１１の一端に新たなローカル伝送路１１ａが挿入されると言うことができる。これにより、ローカル伝送路１１の一端は、ＣＥ１００のＤＡ−Ｏ１０６から新たなＣＥ１００ａのＤＡ−Ｏ１０６ａに変更される。また、新たなローカル伝送路１１ａは、ＣＥ１００ａのＤＡ−Ｌ１０５ａ、ＤＥ２００ａのＩ−ポート、ＤＥ２００ａのＯ−ポート、ＤＥ３００ａのＩ−ポート、ＤＥ３００ａのＯ−ポートおよびＣＥ１００のＤＡ−Ｏ１０６を含む。
【００５８】
また、ストレージ装置１０ａの増設作業中でも、ＣＥ１００のＤＡ−Ｌ１０５、ＤＥ２００のＩ−ポート、ＤＥ２００のＯ−ポートおよびＤＥ３００のＩ−ポートを介する通信経路は維持される。このため、ＣＥ１００からＤＥ２００，３００内のＨＤＤへのアクセス動作を停止させずに、新たなストレージ装置１０ａの増設作業を実行することができる。
【００５９】
また、図６の状態からさらに新たなストレージ装置が増設される場合、ＤＥ３００ａのＯ−ポートと、ＣＥ１００のＤＡ−Ｏ１０６とが切り離され、これらの間に新たなストレージ装置が挿入される。
【００６０】
図７は、ストレージ装置を４組含むストレージシステムの構成例を示す図である。なお、図７において、ストレージ装置１０ｂに含まれるＣＥ１００ｂ、ＤＥ２００ｂ，３００ｂは、それぞれＣＥ１００、ＤＥ２００，３００と同様のハードウェア構成を有し、ストレージ装置１０ｃに含まれるＣＥ１００ｃ、ＤＥ２００ｃ，３００ｃも、それぞれＣＥ１００、ＤＥ２００，３００と同様のハードウェア構成を有する。また、ＣＥ１００ｂには、ホスト装置４００ｂが接続されており、ＣＥ１００ｃには、ホスト装置４００ｃが接続されている。なお、図７では図６と同様に、ＤＥに含まれるＩ−ポートとＯ−ポートの図示を省略する。
【００６１】
図７の例では、ストレージ装置１０の末端に位置するＤＥ３００のＯ−ポートは、次のストレージ装置１０ａのＣＥ１００ａのＤＡ−Ｏ１０６ａに接続されている。ストレージ装置１０ａの末端に位置するＤＥ３００ａのＯ−ポートは、次のストレージ装置１０ｂのＣＥ１００ｂのＤＡ−Ｏ１０６ｂに接続されている。ストレージ装置１０ｂの末端に位置するＤＥ３００ｂのＯ−ポートは、次のストレージ装置１０ｃのＣＥ１００ｃのＤＡ−Ｏ１０６ｃに接続されている。ストレージ装置１０ｃの末端に位置するＤＥ３００ｃのＯ−ポートは、先頭のストレージ装置１０のＣＥ１００のＤＡ−Ｏ１０６に接続されている。
【００６２】
これにより、ストレージ装置１０，１０ａ，１０ｂ，１０ｃがループ状に接続される。そして、ＣＥ１００のＤＡ−Ｌ１０５、ＤＥ２００のＩ−ポート、ＤＥ２００のＯ−ポート、ＤＥ３００のＩ−ポート、ＤＥ３００のＯ−ポート、ＣＥ１００ａのＤＡ−Ｏ１０６ａ、ＣＥ１００ａのＤＡ−Ｌ１０５ａ、ＤＥ２００ａのＩ−ポート、ＤＥ２００ａのＯ−ポート、ＤＥ３００ａのＩ−ポート、ＤＥ３００ａのＯ−ポート、ＣＥ１００ｂのＤＡ−Ｏ１０６ｂ、ＣＥ１００ｂのＤＡ−Ｌ１０５ｂ、ＤＥ２００ｂのＩ−ポート、ＤＥ２００ｂのＯ−ポート、ＤＥ３００ｂのＩ−ポート、ＤＥ３００ｂのＯ−ポート、ＣＥ１００ｃのＤＡ−Ｏ１０６ｃ、ＣＥ１００ｃのＤＡ−Ｌ１０５ｃ、ＤＥ２００ｃのＩ−ポート、ＤＥ２００ｃのＯ−ポート、ＤＥ３００ｃのＩ−ポート、ＤＥ３００ｃのＯ−ポートおよびＣＥ１００のＤＡ−Ｏ１０６を経由するループ状通信経路が形成される。なお、このループ状通信経路は、ローカル伝送路１１，１１ａ，１１ｂ，１１ｃがループ状に接続されることで形成される。
【００６３】
以上の図６，図７の例のように、本実施の形態のストレージシステムでは、ストレージ装置をループ状に追加接続していくことで、ストレージ装置を増設し、ストレージシステムを拡張することができる。また、新たなストレージ装置が増設される場合、増設前に形成されていたループ状通信経路上に、新たなストレージ装置を経由する通信経路が挿入される。
【００６４】
ストレージシステム上のＣＥは、ループ状通信経路を通じて、どのＤＥ内のＨＤＤにもアクセスすることができる。例えば、図７において、ＣＥ１００は、ストレージ装置１０に含まれるＤＥ２００，３００内のＨＤＤだけでなく、他のストレージ装置に含まれるＤＥ（例えば、ストレージ装置１０ｂに含まれるＤＥ２００ｂ）内のＨＤＤにもアクセスできる。このため、ストレージシステムでは、例えば、あるＣＥにて設定された論理ボリュームに対応する物理記憶領域を、どのＤＥ内のＨＤＤにも割り当てることができる。
【００６５】
したがって、ストレージ装置を増設することで、ホスト装置からのアクセス要求に対する応答性能が向上するとともに、ホスト装置からのアクセス対象となる記憶容量が増加する。また、ストレージ装置単位で増設可能になることで、アクセス要求に対する応答性能と記憶容量とを必要に応じて段階的に増加させることができるので、ストレージシステム構築のための初期投資を抑制できる。
【００６６】
また、マルチイニシエータ機能がサポートされ、ストレージシステム上のどのＣＥのＤＡ−ＬおよびＤＡ−Ｏも、ＳＡＳイニシエータとして動作することができる。これにより、各ＣＥは、ループ状通信経路を通じて、左回り方向と右回り方向のどちらでも、他のストレージ装置内のＨＤＤにアクセスすることができる。このため、ストレージ装置やＤＥの増設作業のためにループ状通信経路の一部が切り離されても、各ＣＥは既存のＤＥ内のＨＤＤとの通信を継続することができる。したがって、可用性の高いストレージシステムを実現できる。
【００６７】
ここで、本実施の形態のストレージシステムにおける機器の接続ルールをまとめると、次のようになる。
（１）ＣＥのＤＡ−Ｌは、同じストレージ装置内のＤＥのＩ−ポートに接続される。
【００６８】
（２）ＣＥのＤＡ−Ｏは、他のストレージ装置内または同じストレージ装置内のＤＥのＯ−ポートに接続される。
（３）ＤＥのＩ−ポートは、同じストレージ装置内のＣＥのＤＡ−Ｌ、または、同じストレージ装置内の他のＤＥのＯ−ポートに接続される。
【００６９】
（４）ＤＥのＯ−ポートは、同じストレージ装置内の他のＤＥのＩ−ポート、または、他のストレージ装置内のＣＥのＤＡ−Ｏに接続される。
（５）新たなストレージ装置が増設される場合、新たなストレージ装置は、既存のストレージ装置のうち末端のストレージ装置に含まれる末端のＤＥのＯ−ポートと、先頭のストレージ装置のＣＥのＤＡ−Ｏとの間に接続される。
【００７０】
（６）あるストレージ装置に新たなＤＥが増設される場合、新たなＤＥは、当該ストレージ装置の末端のＤＥのＯ−ポートと、次段のストレージ装置のＣＥのＤＡ−Ｏとの間に接続される。
【００７１】
次に、ＣＥが記憶するテーブル情報の例を示し、これらのテーブル情報を用いた通信処理についてさらに詳しく説明する。
まず、図８は、構成管理テーブルの例を示す図である。構成管理テーブル１１１は、ストレージシステムに含まれるＣＥ、ＤＥおよびＨＤＤの一覧と、これらの接続関係とを管理するためのテーブル情報である。構成管理テーブル１１１は、ＣＥの識別番号が登録されるＣＥ番号、ＤＥの識別番号が登録されるＤＥ番号、および、ＤＥ内のＨＤＤの位置を示す番号が登録されるスロット番号の各項目を有する。
【００７２】
ＣＥ番号には、同じストレージ装置に搭載される１台以上のＤＥの番号が対応づけて登録される。図８では、ＣＥ＃０、ＤＥ＃０およびＤＥ＃１が同じストレージ装置に搭載された例を示している。この場合、ＣＥ＃０に対してＤＥ＃０，ＤＥ＃１が対応づけて登録される。また、ＤＥ番号には、そのＤＥ内に搭載されるＨＤＤの位置を示すスロット番号が対応づけて登録される。
【００７３】
構成管理テーブル１１１においては、ＣＥの登録順が、各ＣＥを含むストレージ装置の接続順を示している。図８の例では、ＣＥ＃０を含むストレージ装置、ＣＥ＃１を含むストレージ装置、ＣＥ＃２を含むストレージ装置、ＣＥ＃３を含むストレージ装置の順に直列に接続されていることを示す。そして、末端に登録されたＣＥ＃３を含むストレージ装置と、先頭に登録されたＣＥ＃０を含むストレージ装置とが接続されていて、これによって各ストレージ装置がループ状に接続されていることを示している。また、新たなストレージ装置が増設される場合には、当該ストレージ装置に含まれるＣＥの番号が構成管理テーブル１１１の末端に追加される。
【００７４】
さらに、構成管理テーブル１１１においては、ＣＥ番号に対応付けて登録されるＤＥの登録順が、ストレージ装置におけるＤＥの接続順を示している。図８の例では、ＣＥ＃０を含むストレージ装置においては、ＣＥ＃０、ＤＥ＃０、ＤＥ＃１の順に直列に接続されていることを示す。また、新たなＤＥが増設される場合には、同じストレージ装置内のＤＥの番号の次に、新たなＤＥの番号が追加される。
【００７５】
以上のような構成管理テーブル１１１は、ストレージシステムに含まれるすべてのＣＥにおいて共通に記憶される。そして、ストレージシステムにストレージ装置やＤＥが増設された場合に、すべてのＣＥ内の構成管理テーブル１１１が更新される。各ＣＥに対する構成管理テーブル１１１の登録や更新は、例えば、管理者の入力操作によって行われる。あるいは、ストレージ装置やＤＥの増設が自動的に検知されることによって構成管理テーブル１１１の登録や更新が自動的に行われてもよい。例えば、ストレージシステムに接続される各ＣＥは、後述するように、自装置の制御下にあるデバイスグループに含まれるＳＡＳデバイスを自動的に検知する機能を備える。各ＣＥは、自装置が検知したＳＡＳデバイスを、その接続関係とともに他のＣＥに配信する。各ＣＥは、他のＣＥから配信された情報に基づいて構成管理テーブル１１１を構築する。
【００７６】
図９は、ボリューム管理テーブルの例を示す図である。ボリューム管理テーブル１１２は、ストレージシステムに設定されたすべての論理ボリュームに関する情報を管理するためのテーブル情報である。ボリューム管理テーブル１１２は、ボリューム番号、ディスク数、ＲＡＩＤ種別およびデバイス番号の各項目を有する。
【００７７】
ボリューム番号の項目には、設定された論理ボリュームの識別番号が登録される。ディスク数は、論理ボリュームに対応する物理記憶領域を構成するＨＤＤの数が登録される。ＲＡＩＤ種別の項目は、論理ボリュームに対応する物理記憶領域へのデータ記録動作を制御するためのＲＡＩＤの種別を示す。デバイス番号の項目には、論理ボリュームに対応する物理記憶領域を構成するＨＤＤを識別するための情報が登録される。ＨＤＤの識別は、構成管理テーブル１１１に登録されたＣＥ番号、ＤＥ番号およびスロット番号の組み合わせによって行われる。
【００７８】
ここで、例えば、図９のボリューム番号「ＬＵ＃１」には、物理記憶領域として、ＣＥ＃１が含まれるストレージ装置に搭載された２台のＨＤＤと、ＣＥ＃２が含まれるストレージ装置に搭載された２台のＨＤＤとが割り当てられている。この例のように、ストレージシステムにおいては、１つの論理ボリュームに対して、異なるストレージ装置に含まれるＨＤＤを物理記憶領域として割り当てることができる。
【００７９】
以上のようなボリューム管理テーブル１１２は、ストレージシステムに含まれるすべてのＣＥにおいて共通に記憶される。そして、ストレージシステムに論理ボリュームが追加設定された場合、すべてのＣＥ内のボリューム管理テーブル１１２が更新される。例えば、あるＣＥに対して論理ボリュームの設定が行われると、そのＣＥが記憶するボリューム管理テーブル１１２が更新されるとともに、その設定情報が他のすべてのＣＥに配信される。各ＣＥは、他のＣＥから配信された設定情報に基づいて、自装置が記憶するボリューム管理テーブル１１２を更新する。
【００８０】
次に、図１０は、ＳＡＳデバイスによるデバイスグループの例を示す図である。デバイスグループとは、１つのＳＡＳイニシエータによって動作が制御されるＳＡＳデバイスの単位である。デバイスグループには、１つのＳＡＳイニシエータと、１つ以上のＳＡＳターゲットとが含まれる。デバイスグループに含まれるデバイスは、図４や図６で説明した１つのローカル伝送路に接続されたＳＡＳデバイスである。
【００８１】
例えば、図１０に示す構成のストレージシステムでは、デバイスグループは次のように設定される。なお、以下の説明において、ＣＥがＤＡ−Ｌからコマンドを送信することで開始される通信を、ループ状通信経路における「順方向通信」と呼び、ＣＥがＤＡ−Ｏからコマンドを送信することで開始される通信を、ループ状通信経路における「逆方向通信」と呼ぶことにする。図１０の構成において、順方向通信は、左回り方向にコマンドが送信される通信に対応し、逆方向通信は、右回り方向にコマンドが送信される通信に対応する。
【００８２】
順方向通信におけるデバイスグループは、ＳＡＳイニシエータとしてＤＡ−Ｌを含み、ＳＡＳターゲットとして、ＤＡ−Ｌと同一のストレージ装置に含まれるＤＥ内のＨＤＤを含む。そして、デバイスグループに含まれる最終のＳＡＳターゲットは、ＤＡ−Ｌと同一のストレージ装置または次のストレージ装置のＤＡ−Ｏとなる。
【００８３】
図１０の例では、順方向通信について２つのデバイスグループ３１，３２が設定される。デバイスグループ３１は、ＳＡＳイニシエータとしてＣＥ１００のＤＡ−Ｌ１０５を含み、ＳＡＳターゲットとして、ＤＥ２００，３００内のＨＤＤと、ＣＥ１００ａのＤＡ−Ｏ１０６ａとを含む。また、デバイスグループ３２は、ＳＡＳイニシエータとしてＣＥ１００ａのＤＡ−Ｌ１０５ａを含み、ＳＡＳターゲットとして、ＤＥ２００ａ，３００ａ内のＨＤＤと、ＣＥ１００のＤＡ−Ｏ１０６とを含む。すなわち、デバイスグループ３１は、図６に示したローカル伝送路１１に接続されたＳＡＳデバイスであり、デバイスグループ３２は、図６に示したローカル伝送路１１ａに接続されたＳＡＳデバイスである。
【００８４】
例えば、デバイスグループ３１においては、ＣＥ１００のＤＡ−Ｌ１０５から順方向にコマンドが送信されることにより、ＣＥ１００はＤＥ２００，３００内のＨＤＤとの間でデータの読み書きを行うことができる。また、ＣＥ１００のＤＡ−Ｌ１０５からＣＥ１００ａのＤＡ−Ｏ１０６ａへのコマンドは、後述するように、ＣＥ間のデータ伝送に利用される。
【００８５】
一方、逆方向通信におけるデバイスグループは、ＳＡＳイニシエータとしてＤＡ−Ｏを含み、ＳＡＳターゲットとして、ＤＡ−Ｏと同一のストレージ装置または１段前に位置する他のストレージ装置のＤＡ−Ｌを含み、ＨＤＤを含まないものとする。図１０の例では、逆方向通信についての２つのデバイスグループ３３，３４が設定される。デバイスグループ３３は、ＳＡＳイニシエータとしてＣＥ１００のＤＡ−Ｏ１０６を含み、ＳＡＳターゲットとしてＣＥ１００ａのＤＡ−Ｌ１０５ａを含む。デバイスグループ３４は、ＳＡＳイニシエータとしてＣＥ１００ａのＤＡ−Ｏ１０６ａを含み、ＳＡＳターゲットとしてＣＥ１００のＤＡ−Ｌ１０５を含む。後述するように、逆方向通信では、ＳＡＳイニシエータからＨＤＤへの直接の読み書き制御は行われず、ＣＥ間のデータ伝送のみが行われる。
【００８６】
図１１は、ＳＡＳマップの例を示す図である。ＳＡＳマップ１１３は、デバイスグループごとに作成され、デバイスグループに含まれるＳＡＳデバイスの一覧を保持するためのテーブル情報である。
【００８７】
ＳＡＳマップ１１３は、ＩＤおよびＳＡＳデバイス名の各項目を有する。ＩＤの項目には、デバイスグループに含まれるＳＡＳデバイスに付与される通し番号があらかじめ登録される。ＳＡＳデバイス名の項目には、対応するＳＡＳデバイスの識別情報が登録される。ＳＡＳデバイスの識別情報としては、実際には例えば、ＳＡＳデバイスにユニークに付与されているＷＷＮ（World Wide Name）が登録される。
【００８８】
ＳＡＳマップ１１３の先頭レコードには、ＳＡＳイニシエータとして動作するＤＡ−ＬまたはＤＡ−Ｏが登録され、２番目以降のレコードには、ＳＡＳターゲットであるＨＤＤが登録される。また、ＳＡＳマップ１１３の最終レコード（例えば、ＩＤ＝１２７）には、ＳＡＳターゲットのうちＤＡ−ＯまたはＤＡ−Ｌが登録される。
【００８９】
順方向通信におけるデバイスグループに対応するＳＡＳマップ１１３では、先頭レコードのＳＡＳイニシエータとしてＤＡ−Ｌが登録され、最終レコードにはＤＡ−Ｏが登録される。一方、逆方向通信におけるデバイスグループに対応するＳＡＳマップ１１３では、先頭レコードのＳＡＳイニシエータとしてＤＡ−Ｏが登録され、最終レコードにはＤＡ−Ｌが登録される。後者のＳＡＳマップ１１３には、ＨＤＤが登録されない。
【００９０】
ＳＡＳイニシエータは、ＳＡＳで規定されたディスカバープロセスにおいて、自装置に接続されたＳＡＳデバイスを探索し、ＳＡＳマップ１１３を自動的に作成する。順方向通信におけるＳＡＳマップ１１３では、ＳＡＳイニシエータ（ＤＡ−Ｌ）から近いＳＡＳスイッチ２０３に搭載されたＨＤＤほど先頭側のレコードに登録される。そのため、ＣＥは、ＳＡＳマップ１１３に登録されたＨＤＤと、構成管理テーブル１１１に登録された、自装置と同じストレージ装置に含まれるＤＥ内のＨＤＤ（スロット番号）とを、一対一で対応づけて管理することができる。
【００９１】
図１２は、ストレージ装置の増設に伴うＳＡＳマップの変化の例を示す図である。図１２では例として、図４に示した状態から、図６に示したように新たなストレージ装置１０ａが増設された場合のＳＡＳマップの変化の例を示す。
【００９２】
ＳＡＳマップ１１３＿１には、図４に示した状態において、ＣＥ１００のＤＡ−Ｌ１０５をＳＡＳイニシエータとするデバイスグループに属するＳＡＳデバイスが登録されている。ＤＡ−Ｌ１０５は、ＳＡＳターゲットとして、ＤＥ２００，３００に搭載されたＨＤＤと、ＣＥ１００のＤＡ−Ｏ１０６とを検知して、ＳＡＳマップ１１３＿１に登録する。
【００９３】
ＤＥ２００，３００には、それぞれ２４本のＨＤＤが搭載されているものとする。したがって、ＳＡＳマップ１１３＿１における第１バイトから第２４バイトまでのレコードに、ＤＥ２００に搭載されたＨＤＤが登録され、第２５バイトから第４８バイトまでのレコードに、ＤＥ３００に搭載されたＨＤＤが登録される。なお、ＳＡＳマップ１１３＿１において、「ＣＥ＃０」はＣＥ１００に対応する。
【００９４】
新たなストレージ装置１０ａを増設する場合には、まず、図４の状態から、ＤＥ３００のＯ−ポート３０２とＣＥ１００のＤＡ−Ｏ１０６とが切り離される。図１２に示すＳＡＳマップ１１３＿２はこのときの状態を示し、切り離されたＤＡ−Ｏ１０６が削除されている。
【００９５】
次に、図６のように新たなストレージ装置１０ａが接続される。図１２に示すＳＡＳマップ１１３＿３はこのときの状態を示す。ＣＥ１００のＤＡ−Ｌ１０５は、ＤＥ３００のＯ−ポートにＣＥ１００ａのＤＡ−Ｏ１０６ａが接続されたことを検知し、ＳＡＳマップ１１３＿３の第１２７バイトにＤＡ−Ｏ１０６ａを登録する。なお、ＳＡＳマップ１１３＿３において、「ＣＥ＃１」はＣＥ１００ａに対応する。
【００９６】
ところで、デバイスグループ内では、ＳＡＳイニシエータからＨＤＤに対するデータの読み書きを、標準のＳＡＳプロトコルにしたがって制御することができる。図１０に例示したように、デバイスグループには、ＳＡＳターゲットのＨＤＤとして、ＳＡＳイニシエータと同一のストレージ装置に含まれるＨＤＤだけが含まれる。このため、本実施の形態のストレージシステムにおいては、各ストレージ装置に含めることが可能なＨＤＤの数は、ＳＡＳで規定された、デバイスグループに含めることが可能なＳＡＳターゲットの最大数に近い数となる。したがって、ストレージシステム全体に増設可能なＨＤＤの数が非常に大きくなり、システムの拡張性が高く、大規模なシステムを構築可能である。
【００９７】
しかしながら、デバイスグループ間では、既存のＳＣＳＩコマンドを伝送することができない。そこで、本実施の形態では、ＣＥ間でＳＣＳＩコマンドを伝送するための専用のコマンドを規定する。
【００９８】
図１３は、第２の実施の形態で利用されるコマンドの例を示す図である。
図１３（Ａ）は、ＲｅａｄコマンドまたはＷｒｉｔｅコマンドが定義されたＣＤＢ（Command Descriptor Block）のフォーマットを示す。この図１３（Ａ）に示すＣＤＢは、ＳＣＳＩ規格で規定されたものである。
【００９９】
第１バイトには、オペレーションコードが格納される。Ｒｅａｄコマンドの場合、オペレーションコードは「８８ｈ」であり、Ｗｒｉｔｅコマンドの場合、オペレーションコードは「８Ａｈ」である。第２バイトから第９バイトにはＬＢＡが格納され、第１０バイトから第１３バイトにはデータ長が格納される。ＬＢＡは、読み出し元または書き込み先の先頭アドレスを示し、データ長は、ＲｅａｄデータまたはＷｒｉｔｅデータのサイズを示す。
【０１００】
一方、図１３（Ｂ）は、ＣＥ間でＲｅａｄコマンドまたはＷｒｉｔｅコマンドを伝送するために新たに定義されたＣＤＢのフォーマット例を示す。図１３（Ｂ）に示すＣＤＢでは、オペレーションコードとして、ＳＣＳＩ規格でベンダが固有に利用できるように割り当てられている「Ｃ７ｈ」が格納される。
【０１０１】
第１バイトから第４バイトは、ＲｅａｄコマンドまたはＷｒｉｔｅコマンドの送信先ＨＤＤを指定するために定義されている。例えば、第１バイトと第２バイトにＣＥ番号が格納され、第３バイトと第４バイトにデバイス番号が格納される。ＣＥ番号は、送信先ＨＤＤと同じストレージ装置に含まれるＣＥの番号を示す。このＣＥ番号は、構成管理テーブル１１１に登録されているＣＥ番号の１つである。デバイス番号は、送信先ＨＤＤが搭載されているＤＥの番号と、ＨＤＤのスロットの番号とを含む。これらの番号は、構成管理テーブル１１１に登録されているＤＥ番号およびスロット番号の１つである。
【０１０２】
第６バイト以降はコマンド領域とされ、第５バイトには、コマンド領域の大きさを示すコマンド領域長が格納される。コマンド領域には、ＣＥ間で伝送されるＲｅａｄコマンドまたはＷｒｉｔｅコマンドの内容が格納される。具体的には、コマンド領域に格納される情報は、図１３（Ａ）に示すＣＤＢの情報のうち、オペレーションコード、ＬＢＡ、データ長を少なくとも含む。また、コマンド領域には、図１３（Ａ）に示すＣＤＢ全体が格納されてもよい。
【０１０３】
以下の説明では、図１３（Ｂ）に示すＣＤＢを用いて伝送されるコマンドを、「ＶＵ（Vender Unique）コマンド」と記載する。ＶＵコマンドは、ＳＡＳイニシエータから、同じデバイスグループ内のＳＡＳターゲットのうちＤＡ−ＬまたはＤＡ−Ｏに送信される。ＶＵコマンドを受信したＤＡ−ＬまたはＤＡ−Ｏは、ＶＵコマンド内のオペレーションコードに基づいて、ＲｅａｄコマンドまたはＷｒｉｔｅコマンドをＣＥ間で伝送するためのデータであることを認識する。
【０１０４】
図１４は、ＣＥから他のストレージ装置内のＨＤＤにアクセスする際の処理例を示すシーケンス図である。この図１４では、図６のような構成のストレージシステムにおいて、ＣＥ１００がＤＥ２００ａ内のＨＤＤからデータを読み出す場合の処理例を示す。
【０１０５】
［ステップＳ１１］ＣＥ１００は、ホスト装置４００から、論理ボリュームからのデータ読み出し要求を受信する。ＣＥ１００は、ボリューム管理テーブル１１２を参照し、読み出し元のＨＤＤを特定する。ここでは、読み出し元のＨＤＤとして、ＤＥ２００ａ内のＨＤＤが特定されたものとする。
【０１０６】
ＣＥ１００は、特定されたＨＤＤへＲｅａｄコマンドを送信するための処理を開始する。ここでは、ＣＥ１００は、Ｒｅａｄコマンドの送信先ＨＤＤが自装置の配下でない（自装置と同じストレージ装置１０に含まれていない）と判定する。
【０１０７】
［ステップＳ１２］送信先ＨＤＤが自装置の配下でないと判定した場合、ＣＥ１００は、送信先ＨＤＤからデータを読み出すためのＲｅａｄコマンドを格納したＶＵコマンドを生成する。ＣＥ１００は、生成したＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームの宛先は、ＤＡ−Ｌ１０５をＳＡＳイニシエータとするデバイスグループに対応するＳＡＳマップ１１３に基づいて、ＣＥ１００ａのＤＡ−Ｏ１０６ａに設定される。
【０１０８】
［ステップＳ１３］送信されたＳＡＳフレームは、ＤＥ２００のＩ−ポート２０１を介してＳＡＳスイッチ２０３に入力される。ＳＡＳスイッチ２０３は、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＯ−ポート２０２から送信する。これにより、ＶＵコマンドがＤＥ２００からＤＥ３００に転送される。
【０１０９】
［ステップＳ１４］送信されたＳＡＳフレームは、ＤＥ３００のＩ−ポートを介して、ＤＥ３００のＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ３００のＯ−ポートから送信する。これにより、ＶＵコマンドがＤＥ３００からＣＥ１００ａに転送される。
【０１１０】
［ステップＳ１５］ＣＥ１００ａは、送信されたＳＡＳフレームをＤＡ−Ｏ１０６ａを介して受信する。ＣＥ１００ａは、ＳＡＳフレームからＶＵコマンドの領域（ＣＤＢ）を特定し、特定した領域内のコマンド領域を参照して、送信先ＨＤＤを特定する。ＣＥ１００ａは、構成管理テーブル１１１に基づいて、送信先ＨＤＤが自装置の配下であると判定する。
【０１１１】
［ステップＳ１６］送信先ＨＤＤが自装置の配下であると判定した場合、ＣＥ１００ａは、Ｒｅａｄコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５ａから送信先ＨＤＤ宛てに送信する。
【０１１２】
［ステップＳ１７］送信されたＳＡＳフレームは、ＤＥ２００ａのＩ−ポートを介して、ＤＥ２００ａのＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームを該当ＨＤＤに送信する。ＳＡＳフレームを受信したＨＤＤは、ＳＡＳフレーム内のＲｅａｄコマンドに基づいてＲｅａｄデータを読み出す。
【０１１３】
［ステップＳ１８］ＨＤＤは、読み出したＲｅａｄデータを含むＳＡＳフレーム（データフレーム）を、ＳＡＳイニシエータであるＣＥ１００ａのＤＡ−Ｌ１０５ａ宛てに送信する。送信されたＳＡＳフレームは、ＤＥ２００ａ内のＳＡＳスイッチおよびＩ−ポートを介して、ＣＥ１００ａに送信される。
【０１１４】
［ステップＳ１９］ＣＥ１００ａは、送信されたＳＡＳフレームをＤＡ−Ｌ１０５ａを介して受信する。ＣＥ１００ａは、受信したＳＡＳフレームがステップＳ１６で送信したＳＡＳフレームに対する応答であることを判別し、ステップＳ１５で受信したＳＡＳコマンドに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６ａから送信する。このＳＡＳフレームはＲｅａｄデータを含み、宛先としてＳＡＳイニシエータであるＣＥ１００のＤＡ−Ｌ１０５が設定される。
【０１１５】
［ステップＳ２０］送信されたＳＡＳフレームは、ＤＥ３００のＯ−ポートを介して、ＤＥ３００のＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ３００のＩ−ポートから送信する。これにより、ＲｅａｄデータがＤＥ３００からＤＥ２００に転送される。
【０１１６】
［ステップＳ２１］送信されたＳＡＳフレームは、ＤＥ２００のＯ−ポート２０２を介してＳＡＳスイッチ２０３に入力される。ＳＡＳスイッチ２０３は、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＩ−ポート２０１から送信する。これにより、ＲｅａｄデータがＤＥ２００からＣＥ１００に転送される。
【０１１７】
［ステップＳ２２］ＣＥ１００は、送信されたＳＡＳフレームをＤＡ−Ｌ１０５を介して受信する。ＣＥ１００は、受信したＳＡＳフレームをステップＳ１２で送信したＳＡＳフレームに対する応答であることを判別し、ホスト装置４００に対する応答として、ＳＡＳフレームから抽出したＲｅａｄデータをホスト装置４００に送信する。
【０１１８】
以上の図１４の処理によれば、ＣＥは、ＶＵコマンドを用いることで、他のＣＥに対してＲｅａｄコマンドを転送することができる。ＶＵコマンドを用いることで、ＳＡＳプロトコルを大きく変更することなくＣＥ間でのＲｅａｄコマンド（およびＷｒｉｔｅコマンド）の転送を実現できる。そのため、拡張性が高く、規模を大きくすることが可能なストレージシステムを低コストで実現することができる。
【０１１９】
ここで、ステップＳ１２〜Ｓ１４，Ｓ１９〜Ｓ２１でのデータ送受信処理は、デバイスグループ３１（図１０参照）の内部でのデータ送受信処理である。一方、ステップＳ１６，Ｓ１８でのデータ送受信処理は、デバイスグループ３２（図１０参照）の内部でのデータ送受信処理である。すなわち、前者の処理と後者の処理とは、ＳＡＳプロトコル上でそれぞれ独立した処理である。
【０１２０】
このため、例えば、ストレージ装置１０だけを含むストレージシステムにストレージ装置１０ａを増設する場合、新たなストレージ装置１０ａでのＳＡＳイニシエータとＨＤＤとの間の通信処理は、既存のストレージ装置１０でのＳＡＳイニシエータとＨＤＤとの間の通信処理に対して特に影響を与えない。このように、ストレージシステムにおけるストレージ装置の増設は、独立した通信が行われる通信系統がシステムに追加されることにほぼ等しい。そのため、ストレージ装置が増設されても、構成管理テーブル１１１が更新されるだけで、ストレージシステム全体での基本的な通信制御手順が変更される訳ではなく、増設作業が容易である。
【０１２１】
すなわち、上記のストレージシステムでは、ストレージ装置の増設により、独立して制御される通信系統がシステムに追加される。そして、上記のＶＵコマンドにより、このような独立した通信系統間でのデータの受け渡しが実現される。このような仕組みにより、システムの拡張が容易で、なおかつシステムの大規模化が可能なストレージシステムが実現される。
【０１２２】
図１５は、ＣＥから他のストレージ装置内のＨＤＤにアクセスする際の別の処理例を示すシーケンス図である。
上記の図１４では順方向通信の例について説明したが、逆方向通信の場合には、例えば図１５に示すような処理が行われる。ここでは例として、図７のような構成のストレージシステムにおいて、ＣＥ１００がＤＥ２００ｃ内のＨＤＤからデータを読み出す場合の処理例を示す。
【０１２３】
［ステップＳ３１］ＣＥ１００は、ホスト装置４００から、論理ボリュームからのデータ読み出し要求を受信する。ＣＥ１００は、ボリューム管理テーブル１１２を参照し、読み出し元のＨＤＤを特定する。ここでは、読み出し元のＨＤＤとして、ＤＥ２００ｃ内のＨＤＤが特定されたものとする。
【０１２４】
ＣＥ１００は、特定されたＨＤＤへＲｅａｄコマンドを送信するための処理を開始する。ここでは、ＣＥ１００は、Ｒｅａｄコマンドの送信先ＨＤＤが自装置の配下でない（自装置と同じストレージ装置１０に含まれていない）と判定する。さらに、ＣＥ１００は、順方向通信を実行するよりも逆方向通信を実行する方が、送信先ＨＤＤへの経路が短いと判定する。この判定は、例えば、構成管理テーブル１１１に基づいて送信先ＨＤＤまでの経路をたどることで行われてもよい。あるいは、後述するホップ数テーブルに基づいて判定が行われてもよい。
【０１２５】
［ステップＳ３２］送信先ＨＤＤが自装置の配下でないと判定した場合、ＣＥ１００は、送信先ＨＤＤからデータを読み出すためのＲｅａｄコマンドを格納したＶＵコマンドを生成する。ＣＥ１００は、生成したＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの宛先は、ＤＡ−Ｏ１０６をＳＡＳイニシエータとするデバイスグループに対応するＳＡＳマップ１１３に基づいて、ＣＥ１００ｃのＤＡ−Ｏに設定される。
【０１２６】
［ステップＳ３３］送信されたＳＡＳフレームは、ＤＥ３００ｃのＯ−ポートを介して、ＤＥ３００ｃのＳＡＳスイッチに入力される。ＳＡＳスイッチ２０３は、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ３００ｃのＩ−ポートから送信する。これにより、ＶＵコマンドがＤＥ３００ｃからＤＥ２００ｃに転送される。
【０１２７】
［ステップＳ３４］送信されたＳＡＳフレームは、ＤＥ２００ｃのＯ−ポートを介して、ＤＥ２００ｃのＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ２００ｃのＩ−ポートから送信する。これにより、ＶＵコマンドがＤＥ２００ｃからＣＥ１００ｃに転送される。
【０１２８】
［ステップＳ３５］ＣＥ１００ｃは、送信されたＳＡＳフレームをＤＡ−Ｌ１０５ｃを介して受信する。ＣＥ１００ｃは、ＳＡＳフレームからＶＵコマンドの領域（ＣＤＢ）を特定し、特定した領域内のコマンド領域を参照して、送信先ＨＤＤを特定する。ＣＥ１００ｃは、構成管理テーブル１１１に基づいて、送信先ＨＤＤが自装置の配下であると判定する。
【０１２９】
［ステップＳ３６］送信先ＨＤＤが自装置の配下であると判定した場合、ＣＥ１００ｃは、Ｒｅａｄコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５ｃから送信先ＨＤＤ宛てに送信する。
【０１３０】
［ステップＳ３７］送信されたＳＡＳフレームは、ＤＥ２００ｃのＩ−ポートを介して、ＤＥ２００ｃのＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームを該当ＨＤＤに送信する。ＳＡＳフレームを受信したＨＤＤは、ＳＡＳフレーム内のＲｅａｄコマンドに基づいてＲｅａｄデータを読み出す。
【０１３１】
［ステップＳ３８］ＨＤＤは、読み出したＲｅａｄデータを含むＳＡＳフレーム（データフレーム）を、ＳＡＳイニシエータであるＣＥ１００ｃのＤＡ−Ｌ１０５ｃ宛てに送信する。送信されたＳＡＳフレームは、ＤＥ２００ｃ内のＳＡＳスイッチおよびＩ−ポートを介して、ＣＥ１００ｃに送信される。
【０１３２】
［ステップＳ３９］ＣＥ１００ｃは、送信されたＳＡＳフレームをＤＡ−Ｌ１０５ｃを介して受信する。ＣＥ１００ｃは、受信したＳＡＳフレームがステップＳ３６で送信したＳＡＳフレームに対する応答であることを判別し、ステップＳ３５で受信したＳＡＳコマンドに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５ｃから送信する。このＳＡＳフレームはＲｅａｄデータを含み、宛先としてＳＡＳイニシエータであるＣＥ１００のＤＡ−Ｏ１０６が設定される。
【０１３３】
［ステップＳ４０］送信されたＳＡＳフレームは、ＤＥ２００ｃのＩ−ポートを介して、ＤＥ２００ｃのＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ２００ｃのＯ−ポートから送信する。これにより、ＲｅａｄデータがＤＥ２００ｃからＤＥ３００ｃに転送される。
【０１３４】
［ステップＳ４１］送信されたＳＡＳフレームは、ＤＥ３００ｃのＩ−ポートを介してＤＥ３００ｃのＳＡＳスイッチに入力される。ＳＡＳスイッチは、ＳＡＳフレームの宛先に基づいて、ＳＡＳフレームをＤＥ３００ｃのＯ−ポートから送信する。これにより、ＲｅａｄデータがＤＥ３００ｃからＣＥ１００に転送される。
【０１３５】
［ステップＳ４２］ＣＥ１００は、送信されたＳＡＳフレームをＤＡ−Ｏ１０６を介して受信する。ＣＥ１００は、受信したＳＡＳフレームをステップＳ３２で送信したＳＡＳフレームに対する応答であることを判別し、ホスト装置４００に対する応答として、ＳＡＳフレームから抽出したＲｅａｄデータをホスト装置４００に送信する。
【０１３６】
以上の図１５の処理のように、逆方向通信では、Ｒｅａｄコマンドは、ＶＵコマンドを用いて、送信先ＨＤＤと同じストレージ装置内のＣＥに一旦送信され、そのＣＥから送信先ＨＤＤに送信される。Ｗｒｉｔｅコマンドについても同様である。
【０１３７】
次に、図１６は、ＣＥの処理機能の構成例を示すブロック図である。なお、図１６では例としてＣＥ１００について示すが、他のＣＥ（例えば、ＣＥ１００ａ，１００ｂ，１００ｃ）も同様の構成の処理機能を有する。
【０１３８】
ＣＥ１００は、ホストＩ／Ｏ制御部１２１、ディスクＩ／Ｏ制御部１２２および記憶部１２３を有する。記憶部１２３には、前述の構成管理テーブル１１１、ボリューム管理テーブル１１２およびＳＡＳマップ１１３に加え、ホップ数テーブル１１４が記憶される。ホストＩ／Ｏ制御部１２１およびディスクＩ／Ｏ制御部１２２の処理は、例えば、ＣＥ１００が備えるプロセッサ１０１が所定のアプリケーションプログラムを実行することで実現される。記憶部１２３は、例えば、ＣＥ１００が備える記憶装置（例えば、ＲＡＭ１０２またはＳＳＤ１０３）の記憶領域として実装される。
【０１３９】
ホストＩ／Ｏ制御部１２１は、ＣＥ１００に接続されたホスト装置４００との間の通信を制御する。具体的には、ホストＩ／Ｏ制御部１２１は、ホスト装置４００から論理ボリュームへのアクセス要求を受信すると、ボリューム管理テーブル１１２に基づいて、アクセス先のＨＤＤを判別する。そして、ホストＩ／Ｏ制御部１２１は、ディスクＩ／Ｏ制御部１２２に対して、判別したＨＤＤへのアクセスを要求する。
【０１４０】
ディスクＩ／Ｏ制御部１２２は、ＳＡＳプロトコルを用いて、ＨＤＤにアクセスするための通信を制御する。例えば、ディスクＩ／Ｏ制御部１２２は、ホストＩ／Ｏ制御部１２１からＨＤＤへのアクセス要求を受け付けると、そのＨＤＤへのアクセスのためのコマンドを含むＳＡＳフレームをＤＡ−Ｌ１０５またはＤＡ−Ｏ１０６から送信する。また、ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｌ１０５またはＤＡ−Ｏ１０６からＳＡＳフレームを受信すると、そのＳＡＳフレームに応じた情報送信先を判別する。例えば、ＣＥ１００の配下のＨＤＤへアクセスするためのＶＵコマンドを含むＳＡＳフレームを受信した場合、ディスクＩ／Ｏ制御部１２２は、そのＨＤＤに対するＲｅａｄコマンドまたはＷｒｉｔｅコマンドを含むＳＡＳフレームをＤＡ−Ｌ１０５から送信する。また、他のＣＥの配下のＨＤＤへアクセスするためのＶＵコマンドを含むＳＡＳフレームを受信した場合、ディスクＩ／Ｏ制御部１２２は、ＶＵコマンドを転送する。ディスクＩ／Ｏ制御部１２２は、そのＶＵコマンドをＤＡ−Ｏ１０６から受信した場合、ＤＡ−Ｌ１０５から転送し、ＤＡ−Ｌ１０５から受信した場合、ＤＡ−Ｏ１０６から転送する。
【０１４１】
ホップ数テーブル１１４は、ＣＥ１００から他のＣＥまでの間にＣＥが何台存在するかを示す情報が登録されている。
図１７は、ホップ数テーブルの例を示す図である。ホップ数テーブル１１４は、ＣＥ番号、ＤＡ−Ｌ、ＤＡ−Ｏの各項目を有する。
【０１４２】
ＣＥ番号の項目には、ストレージシステムに含まれる他のＣＥの識別番号が登録される。ＤＡ−Ｌの項目には、システム上のＣＥの中で、対応する他のＣＥがＤＡ−Ｌの方向（順方向）に何台目に接続されているかを示す数値が登録される。ＤＡ−Ｏの項目には、システム上のＣＥの中で、対応する他のＣＥがＤＡ−Ｏの方向（逆方向）に何台目に接続されているかを示す数値が登録される。
【０１４３】
ホップ数テーブル１１４は、例えば、構成管理テーブル１１１に基づいて作成される。例えば、ＣＥ１００は、構成管理テーブル１１１が更新されるたびに、ホップ数テーブル１１４も更新する。ホップ数テーブル１１４は、ＶＵコマンドを順方向と逆方向のどちらに送信するかを判定するためにディスクＩ／Ｏ制御部１２２によって参照される。
【０１４４】
次に、ＣＥの処理についてフローチャートを用いて説明する。以下の説明では、例としてＣＥ１００の処理について説明する。
まず、図１８，図１９は、ホスト装置から、論理ボリュームからの読み出し要求を受信した場合の処理例を示すフローチャートである。
【０１４５】
［ステップＳ５１］ホストＩ／Ｏ制御部１２１は、論理ボリュームと読み出し元領域とが指定された読み出し要求を、ホスト装置４００から受信する。ホストＩ／Ｏ制御部１２１は、ボリューム管理テーブル１１２における指定された論理ボリュームのレコードを参照して、読み出し元領域に対応するＨＤＤの位置とそのＨＤＤでの読み出し元領域とを特定する。
【０１４６】
このとき、ＨＤＤおよび読み出し元領域が複数組特定される場合があるが、これ以下では、説明を簡単にするために、ＨＤＤおよび読み出し元領域が１組だけ特定されたものとする。
【０１４７】
［ステップＳ５２］ホストＩ／Ｏ制御部１２１は、ＨＤＤの位置と読み出し元領域とをディスクＩ／Ｏ制御部１２２に通知し、データの読み出しを要求する。ディスクＩ／Ｏ制御部１２２は、構成管理テーブル１１１に基づいて、通知されたＨＤＤが自ＣＥ（ＣＥ１００）の配下のＨＤＤかを判定する。ＣＥ１００の配下のＨＤＤとは、ＣＥ１００と同じストレージ装置１０に含まれるＤＥ内のＨＤＤを示し、これは構成管理テーブル１１１においてＣＥ１００に対応付けられたスロット番号が示すＨＤＤである。
【０１４８】
通知されたＨＤＤがＣＥ１００の配下のＨＤＤである場合、ステップＳ５３の処理が実行される。通知されたＨＤＤが他のＣＥの配下のＨＤＤである場合、ステップＳ６１の処理が実行される。
【０１４９】
［ステップＳ５３］ディスクＩ／Ｏ制御部１２２は、ステップＳ５２で通知されたＨＤＤを送信先とするＳＡＳフレーム（コマンドフレーム）をＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ５２で通知された読み出し元領域が設定されたＲｅａｄコマンドが含まれる。
【０１５０】
［ステップＳ５４］ディスクＩ／Ｏ制御部１２２は、ステップＳ５３で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１５１】
［ステップＳ５５］ディスクＩ／Ｏ制御部１２２は、受信したＳＡＳフレームから抽出したＲｅａｄデータをホストＩ／Ｏ制御部１２１に受け渡す。ホストＩ／Ｏ制御部１２１は、ステップＳ５１で受信した読み出し要求に対する応答として、Ｒｅａｄデータをホスト装置４００に送信する。
【０１５２】
［ステップＳ６１］ディスクＩ／Ｏ制御部１２２は、ホップ数テーブル１１４に基づいて、ＶＵコマンドの送信方向を判定する。具体的には、ディスクＩ／Ｏ制御部１２２は、ホップ数テーブル１１４のレコードのうち、ステップＳ５２で通知されたＨＤＤと同じストレージ装置内のＣＥに対応するレコードを参照する。ディスクＩ／Ｏ制御部１２２は、そのレコードに基づいて、ＤＡ−ＬとＤＡ−ＯのどちらからＶＵを送信する方が、そのＣＥとの間に存在する他のＣＥが少ないかを判定する。
【０１５３】
ＤＡ−Ｌの方が少ない場合、ディスクＩ／Ｏ制御部１２２は、送信方向を順方向と判定し、ステップＳ６２の処理を実行する。一方、ＤＡ−Ｏの方が少ない場合、ディスクＩ／Ｏ制御部１２２は、送信方向を逆方向と判定し、ステップＳ６４の処理を実行する。
【０１５４】
［ステップＳ６２］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｌ１０５に接続されたＤＡ−Ｏを送信先とするＳＡＳフレーム（コマンドフレーム）をＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ＣＥ番号およびデバイス番号の欄にステップＳ５２で通知されたＨＤＤの位置を示す情報が設定され、コマンド領域にステップＳ５２で通知された読み出し元領域を含むＲｅａｄコマンドが設定されたＶＵコマンドが含まれる。
【０１５５】
［ステップＳ６３］ディスクＩ／Ｏ制御部１２２は、ステップＳ６２で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）をＤＡ−Ｌ１０５から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１５６】
［ステップＳ６４］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｏ１０６に接続されたＤＡ−Ｌを送信先とするＳＡＳフレーム（コマンドフレーム）をＤＡ−Ｏ１０６から送信する。このＳＡＳフレームには、ＣＥ番号およびデバイス番号の欄にステップＳ５２で通知されたＨＤＤの位置を示す情報が設定され、コマンド領域にステップＳ５２で通知された読み出し元領域を含むＲｅａｄコマンドが設定されたＶＵコマンドが含まれる。
【０１５７】
［ステップＳ６５］ディスクＩ／Ｏ制御部１２２は、ステップＳ６４で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）をＤＡ−Ｏ１０６から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１５８】
［ステップＳ６６］ディスクＩ／Ｏ制御部１２２は、ステップＳ６３またはステップＳ６５で受信したＳＡＳフレームからＲｅａｄデータを抽出し、抽出したＲｅａｄデータをホストＩ／Ｏ制御部１２１に受け渡す。ホストＩ／Ｏ制御部１２１は、ステップＳ５１で受信した読み出し要求に対する応答として、Ｒｅａｄデータをホスト装置４００に送信する。
【０１５９】
図２０，図２１は、ホスト装置から、論理ボリュームへの書き込み要求を受信した場合の処理例を示すフローチャートである。
［ステップＳ７１］ホストＩ／Ｏ制御部１２１は、論理ボリュームと書き込み先領域とが指定された読み出し要求を、Ｗｒｉｔｅデータとともにホスト装置４００から受信する。ホストＩ／Ｏ制御部１２１は、ボリューム管理テーブル１１２における指定された論理ボリュームのレコードを参照して、書き込み先領域に対応するＨＤＤの位置とそのＨＤＤでの書き込み先領域とを特定する。
【０１６０】
このとき、ＨＤＤおよび書き込み先領域が複数組特定される場合があるが、これ以下では、説明を簡単にするために、ＨＤＤおよび書き込み先領域が１組だけ特定されたものとする。
【０１６１】
［ステップＳ７２］ホストＩ／Ｏ制御部１２１は、ＨＤＤの位置、書き込み先領域およびＷｒｉｔｅデータをディスクＩ／Ｏ制御部１２２に通知し、データの書き込みを要求する。ディスクＩ／Ｏ制御部１２２は、構成管理テーブル１１１に基づいて、通知されたＨＤＤが自ＣＥ（ＣＥ１００）の配下のＨＤＤかを判定する。通知されたＨＤＤがＣＥ１００の配下のＨＤＤである場合、ステップＳ７３の処理が実行される。通知されたＨＤＤが他のＣＥの配下のＨＤＤである場合、ステップＳ８１の処理が実行される。
【０１６２】
［ステップＳ７３］ディスクＩ／Ｏ制御部１２２は、ステップＳ７２で通知されたＨＤＤを送信先とするＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ７２で通知された書き込み先領域が設定されたＷｒｉｔｅコマンドが含まれる。
【０１６３】
［ステップＳ７４］ディスクＩ／Ｏ制御部１２２は、ステップＳ７３で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム。ＸＦＥＲ＿ＲＤＹ：Transfer Ready）を、ＤＡ−Ｌ１０５から受信する。なお、ＸＦＥＲ＿ＲＤＹフレームは、データの書き込み準備が整ったことを示す。
【０１６４】
［ステップＳ７５］ディスクＩ／Ｏ制御部１２２は、ステップＳ７２で通知されたＨＤＤを送信先とするＳＡＳフレーム（データフレーム）をＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ７２で通知されたＷｒｉｔｅデータが含まれる。
【０１６５】
［ステップＳ８１］ディスクＩ／Ｏ制御部１２２は、ホップ数テーブル１１４に基づいて、ＶＵコマンドの送信方向を判定する。具体的には、ディスクＩ／Ｏ制御部１２２は、ホップ数テーブル１１４のレコードのうち、ステップＳ７２で通知されたＨＤＤと同じストレージ装置内のＣＥに対応するレコードを参照する。ディスクＩ／Ｏ制御部１２２は、そのレコードに基づいて、ＤＡ−ＬとＤＡ−ＯのどちらからＶＵを送信する方が、そのＣＥとの間に存在する他のＣＥが少ないかを判定する。
【０１６６】
ＤＡ−Ｌの方が少ない場合、ディスクＩ／Ｏ制御部１２２は、送信方向を順方向と判定し、ステップＳ８２の処理を実行する。一方、ＤＡ−Ｏの方が少ない場合、ディスクＩ／Ｏ制御部１２２は、送信方向を逆方向と判定し、ステップＳ８５の処理を実行する。
【０１６７】
［ステップＳ８２］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｌ１０５に接続されたＤＡ−Ｏを送信先とするＳＡＳフレーム（コマンドフレーム）をＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ＣＥ番号およびデバイス番号の欄にステップＳ７２で通知されたＨＤＤの位置を示す情報が設定され、コマンド領域にステップＳ７２で通知された書き込み先領域を含むＷｒｉｔｅコマンドが設定されたＶＵコマンドが含まれる。
【０１６８】
［ステップＳ８３］ディスクＩ／Ｏ制御部１２２は、ステップＳ８２で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｌ１０５から受信する。
【０１６９】
［ステップＳ８４］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｌ１０５に接続されたＤＡ−Ｏを送信先とするＳＡＳフレーム（データフレーム）をＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ７２で通知されたＷｒｉｔｅデータが含まれる。
【０１７０】
［ステップＳ８５］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｏ１０６に接続されたＤＡ−Ｌを送信先とするＳＡＳフレーム（コマンドフレーム）をＤＡ−Ｏ１０６から送信する。このＳＡＳフレームには、ＣＥ番号およびデバイス番号の欄にステップＳ７２で通知されたＨＤＤの位置を示す情報が設定され、コマンド領域にステップＳ７２で通知された書き込み先領域を含むＷｒｉｔｅコマンドが設定されたＶＵコマンドが含まれる。
【０１７１】
［ステップＳ８６］ディスクＩ／Ｏ制御部１２２は、ステップＳ８５で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｏ１０６から受信する。
【０１７２】
［ステップＳ８７］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｏ１０６に接続されたＤＡ−Ｌを送信先とするＳＡＳフレーム（データフレーム）をＤＡ−Ｏ１０６から送信する。このＳＡＳフレームには、ステップＳ７２で通知されたＷｒｉｔｅデータが含まれる。
【０１７３】
なお、図示しないが、ステップＳ７５，Ｓ８４，Ｓ８７のいずれかでのＷｒｉｔｅデータの送信が完了すると、ディスクＩ／Ｏ制御部１２２は、Ｗｒｉｔｅデータの送信が完了したことをホストＩ／Ｏ制御部１２１に通知する。ホストＩ／Ｏ制御部１２１は、ステップＳ７１で受信した書き込み要求に対する応答の情報をホスト装置４００に送信する。
【０１７４】
次に、図２２，図２３は、ＤＡ−ＯからＶＵコマンドを受信した場合の処理例を示すフローチャートである。
［ステップＳ１０１］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｏ１０６からＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を受信する。
【０１７５】
［ステップＳ１０２］ディスクＩ／Ｏ制御部１２２は、構成管理テーブル１１１に基づき、受信したＶＵコマンドに設定されているＣＥ番号およびデバイス番号が示すアクセス先のＨＤＤが、自ＣＥ（ＣＥ１００）の配下のＨＤＤかを判定する。ディスクＩ／Ｏ制御部１２２は、アクセス先のＨＤＤがＣＥ１００の配下のＨＤＤである場合、ステップＳ１０３の処理を実行し、アクセス先のＨＤＤが他のＣＥの配下のＨＤＤである場合、ステップＳ１２１の処理を実行する。
【０１７６】
［ステップＳ１０３］ディスクＩ／Ｏ制御部１２２は、受信したＶＵコマンドのコマンド領域に設定されているコマンドの種別が、ＲｅａｄコマンドかＷｒｉｔｅコマンドかを判定する。ディスクＩ／Ｏ制御部１２２は、Ｒｅａｄコマンドの場合、ステップＳ１０４の処理を実行し、Ｗｒｉｔｅコマンドの場合、ステップＳ１０７の処理を実行する。
【０１７７】
［ステップＳ１０４］ディスクＩ／Ｏ制御部１２２は、ＶＵコマンドのＣＥ番号およびデバイス番号が示すＨＤＤを送信先とするＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ＶＵコマンドのコマンド領域に設定されている読み出し元領域が設定されたＲｅａｄコマンドが含まれる。
【０１７８】
［ステップＳ１０５］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０４で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１７９】
［ステップＳ１０６］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの送信先は、ＤＡ−Ｏ１０６に接続された前段のストレージ装置のＣＥのＤＡ−Ｌ（図７の例では、ＣＥ１００ｃのＤＡ−Ｌ１０５ｃ）とされる。また、このＳＡＳフレームには、ステップＳ１０５で受信したＳＡＳフレームから抽出したＲｅａｄデータが含まれる。
【０１８０】
［ステップＳ１０７］ディスクＩ／Ｏ制御部１２２は、ＶＵコマンドのＣＥ番号およびデバイス番号が示すＨＤＤを送信先とするＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ＶＵコマンドのコマンド領域に設定されている書き込み先領域が設定されたＷｒｉｔｅコマンドが含まれる。
【０１８１】
［ステップＳ１０８］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０７で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｌ１０５から受信する。
【０１８２】
［ステップＳ１０９］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの送信先は、ＤＡ−Ｏ１０６に接続された前段のストレージ装置のＣＥのＤＡ−Ｌ（図７の例では、ＣＥ１００ｃのＤＡ−Ｌ１０５ｃ）とされる。
【０１８３】
［ステップＳ１１０］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０９で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から受信する。このＳＡＳフレームには、Ｗｒｉｔｅデータが含まれる。
【０１８４】
［ステップＳ１１１］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０７で送信したＳＡＳフレームと同じＨＤＤを送信先とするＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ１１０で受信したＷｒｉｔｅデータが含まれる。これにより、ＳＡＳフレームの送信先のＨＤＤに対してＷｒｉｔｅデータが書き込まれる。
【０１８５】
［ステップＳ１２１］ディスクＩ／Ｏ制御部１２２は、ＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームの送信先は、ＤＡ−Ｌ１０５に接続された次段のストレージ装置のＣＥのＤＡ−Ｏ（図７の例では、ＣＥ１００ａのＤＡ−Ｏ１０６ａ）とされる。また、このＳＡＳフレームには、送信先以外はステップＳ１０１で受信したＳＡＳフレームと同じ内容が設定される。
【０１８６】
［ステップＳ１２２］ディスクＩ／Ｏ制御部１２２は、ステップＳ１２１で送信したＳＡＳフレームのＶＵコマンドに設定されたコマンド種別がＲｅａｄコマンドの場合、ステップＳ１２３の処理を実行し、Ｗｒｉｔｅコマンドの場合、ステップＳ１２５の処理を実行する。
【０１８７】
［ステップＳ１２３］ディスクＩ／Ｏ制御部１２２は、ステップＳ１２１で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１８８】
［ステップＳ１２４］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの送信先は、ステップＳ１０６でのＳＡＳフレームの送信先と同じである。また、このＳＡＳフレームには、ステップＳ１２３で受信したＳＡＳフレームから抽出したＲｅａｄデータが含まれる。
【０１８９】
［ステップＳ１２５］ディスクＩ／Ｏ制御部１２２は、ステップＳ１２１で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｌ１０５から受信する。
【０１９０】
［ステップＳ１２６］ディスクＩ／Ｏ制御部１２２は、ステップＳ１０１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの送信先は、ステップＳ１０９でのＳＡＳフレームの送信先と同じである。
【０１９１】
［ステップＳ１２７］ディスクＩ／Ｏ制御部１２２は、ステップＳ１２６で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から受信する。このＳＡＳフレームには、Ｗｒｉｔｅデータが含まれる。
【０１９２】
［ステップＳ１２８］ディスクＩ／Ｏ制御部１２２は、ステップＳ１２１で送信したＳＡＳフレームと同じＳＡＳデバイス（ＤＡ−Ｏ）を送信先とするＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームには、ステップＳ１２７で受信したＷｒｉｔｅデータが含まれる。これにより、Ｗｒｉｔｅデータが次段のストレージ装置のＣＥに受け渡される。
【０１９３】
図２４は、ＤＡ−ＬからＶＵコマンドを受信した場合の処理例を示すフローチャートである。
［ステップＳ１４１］ディスクＩ／Ｏ制御部１２２は、ＤＡ−Ｌ１０５からＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を受信する。
【０１９４】
［ステップＳ１４２］ディスクＩ／Ｏ制御部１２２は、構成管理テーブル１１１に基づき、受信したＶＵコマンドに設定されているＣＥ番号およびデバイス番号が示すアクセス先のＨＤＤが、自ＣＥ（ＣＥ１００）の配下のＨＤＤかを判定する。ディスクＩ／Ｏ制御部１２２は、アクセス先のＨＤＤがＣＥ１００の配下のＨＤＤである場合、ステップＳ１４３の処理を実行し、アクセス先のＨＤＤが他のＣＥの配下のＨＤＤである場合、ステップＳ１４４の処理を実行する。
【０１９５】
［ステップＳ１４３］図２２のステップＳ１０３以降の処理が実行される。
［ステップＳ１４４］ディスクＩ／Ｏ制御部１２２は、ＶＵコマンドを含むＳＡＳフレーム（コマンドフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームの送信先は、ＤＡ−Ｏ１０６に接続された前段のストレージ装置のＣＥのＤＡ−Ｌ（図７の例では、ＣＥ１００ｃのＤＡ−Ｌ１０５ｃ）とされる。また、このＳＡＳフレームには、送信先以外はステップＳ１４１で受信したＳＡＳフレームと同じ内容が設定される。
【０１９６】
［ステップＳ１４５］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４４で送信したＳＡＳフレームのＶＵコマンドに設定されたコマンド種別がＲｅａｄコマンドの場合、ステップＳ１４６の処理を実行し、Ｗｒｉｔｅコマンドの場合、ステップＳ１４８の処理を実行する。
【０１９７】
［ステップＳ１４６］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４４で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から受信する。このＳＡＳフレームには、読み出し元領域から読み出されたＲｅａｄデータが含まれる。
【０１９８】
［ステップＳ１４７］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームの送信先は、ＤＡ−Ｌ１０５に接続された次段のストレージ装置のＣＥのＤＡ−Ｏ（図７の例では、ＣＥ１００ａのＤＡ−Ｏ１０６）とされる。また、このＳＡＳフレームには、ステップＳ１４６で受信したＳＡＳフレームから抽出したＲｅａｄデータが含まれる。
【０１９９】
［ステップＳ１４８］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４４で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｏ１０６から受信する。
【０２００】
［ステップＳ１４９］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４１で受信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（ＸＦＥＲ＿ＲＤＹフレーム）を、ＤＡ−Ｌ１０５から送信する。このＳＡＳフレームの送信先は、ステップＳ１４７でのＳＡＳフレームの送信先と同じである。
【０２０１】
［ステップＳ１５０］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４９で送信したＳＡＳフレームに対する応答としてのＳＡＳフレーム（データフレーム）を、ＤＡ−Ｌ１０５から受信する。このＳＡＳフレームには、Ｗｒｉｔｅデータが含まれる。
【０２０２】
［ステップＳ１５１］ディスクＩ／Ｏ制御部１２２は、ステップＳ１４４で送信したＳＡＳフレームと同じＳＡＳデバイス（ＤＡ−Ｌ）を送信先とするＳＡＳフレーム（データフレーム）を、ＤＡ−Ｏ１０６から送信する。このＳＡＳフレームには、ステップＳ１５０で受信したＷｒｉｔｅデータが含まれる。これにより、Ｗｒｉｔｅデータが前段のストレージ装置のＣＥに受け渡される。
【０２０３】
なお、ＤＥ内のＳＡＳスイッチは、受信したＳＡＳフレームをその送信先のＳＡＳデバイスの方向のポートから転送するだけであるので、ＳＡＳスイッチの処理については図示を省略する。
【０２０４】
最後に、複数のストレージ装置が接続されるストレージシステムの比較例を図２５，図２６に示し、これらの比較例に対する第２の実施の形態のストレージシステムの優位点について説明する。
【０２０５】
図２５は、第１の比較例を示す図である。図２５に示すストレージシステムは、ＣＥ９０１およびＤＥ９０２，９０３を含むストレージ装置と、ＣＥ９０１ａおよびＤＥ９０２ａ，９０３ａを含むストレージ装置と、ＣＥ９０１ｂおよびＤＥ９０２ｂ，９０３ｂを含むストレージ装置と、ＣＥ９０１ｃおよびＤＥ９０２ｃ，９０３ｃを含むストレージ装置とを有する。ＣＥ９０１にはホスト装置９０４が接続され、ＣＥ９０１ａにはホスト装置９０４ａが接続され、ＣＥ９０１ｂにはホスト装置９０４ｂが接続され、ＣＥ９０１ｃにはホスト装置９０４ｃが接続されている。
【０２０６】
このようなストレージ装置同士を接続して、各ＣＥがストレージシステム内のどのＣＥ内のＨＤＤにもアクセスできるようにする方法としては、図２５に示すように、ＣＥ９０１，９０１ａ，９０１ｂ，９０１ｃを専用の中継装置９１１を介して接続する方法が考えられる。
【０２０７】
しかし、この方法では、ＣＥ間の通信トラフィックが中継装置９１１に集中するので、ストレージ装置が増設されてシステム規模が大きくなるほど、中継装置９１１の通信負荷が増大する。このため、大規模なシステムを構築するためには、通信処理性能の高い高価な中継装置９１１が必要になる。さらに、増設可能なストレージ装置の数が、中継装置９１１に搭載されているポート数によって制限される。
【０２０８】
これに対して、第２の実施の形態のストレージシステムでは、あるストレージ装置においてＣＥからＨＤＤにアクセスするためのローカル伝送路を、次のストレージ装置のＣＥに接続することで、ストレージ装置がループ状に接続される。この構成によれば、ＣＥ間で伝送されるデータがストレージシステム内で分散され、通信トラフィックがシステム内の特定の箇所に集中しにくい。このため、高性能で高価な中継装置９１１を用いずに、高性能かつ大規模なストレージシステムを低コストで構築できる。
【０２０９】
また、上記のような単純な接続構造としたことで、中継装置９１１のポート数に依存せずに、ストレージ装置の数を増加させることができ、ストレージ装置の最大増設数を増やすことができる。これに加えて、第２の実施の形態では、各ストレージ装置に対応するローカル伝送路ごとに、ＳＡＳプロトコルが終端され、ＳＡＳプロトコルをそれぞれ用いた独立した通信が行われる。このため、ストレージ装置をどれだけ増設しても、それぞれのストレージ装置に、ＳＡＳプロトコルで許容される最大数に近い数のＨＤＤを搭載することができる。すなわち、ストレージシステムに増設可能なストレージ装置の数を多くすることができるだけでなく、ストレージシステム全体に増設可能なＨＤＤの数も多くすることができる。
【０２１０】
次に、ストレージ装置同士を接続する他の方法としては、図２５の中継装置９１１の代わりに、ＣＥ間をネットワークを介して接続する方法が考えられる。しかし、この方法でも、ストレージ装置が増設されてシステム規模が大きくなるほど、ネットワークの通信トラフィックが増大する。このため、大規模なシステムを構築するためには、通信帯域幅の大きいネットワークが必要となり、コストが増大する。
【０２１１】
これに対して、上記のように、第２の実施の形態のストレージシステムでは、高性能かつ大規模なストレージシステムを低コストで構築できる。
図２６は、第２の比較例を示す図である。なお、図２６では、図２５に対応する構成要素については同じ符号を付して示している。
【０２１２】
図２６の例では、ＣＥ９０１，９０１ａ，９０１ｂ，９０１ｃと、ホスト装置９０４，９０４ａ，９０４ｂ，９０４ｃとが、中央制御装置９１２を介して接続されている。この例では、中央制御装置９１２は、配下に接続されたＤＥ９０２，９０３，９０２ａ，９０３ａ，９０２ｂ，９０３ｂ，９０２ｃ，９０３ｃのそれぞれの記憶領域全体を、仮想記憶領域として管理する。そして、中央制御装置９１２は、ホスト装置９０４，９０４ａ，９０４ｂ，９０４ｃから仮想記憶領域へのアクセス要求を受け付け、そのアクセス要求を対応するＨＤＤに配信する。
【０２１３】
このような中央集権型の中央制御装置９１２を用いた場合には、ストレージ装置が増設されてシステム規模が大きくなるほど、中央制御装置９１２の処理負荷が増大する。このため、大規模なシステムを構築するためには、処理性能の高い高価な中央制御装置９１２が必要になる。
【０２１４】
第２の実施の形態のストレージシステムによれば、このような高性能で高価な中央制御装置９１２を用いずに、高性能かつ大規模なストレージシステムを低コストで構築できる。
【０２１５】
また、図２５，図２６のいずれの方法でも、中継装置９１１や中央制御装置９１２が故障した場合に、ＨＤＤへのアクセスが停止されるという問題もある。第２の実施の形態のストレージシステムでは、ループ状伝送路における双方向が可能となっている。これにより、ＣＥ、ＤＥ、ストレージ装置のいずれが故障した場合でも、故障した機器を含むストレージ装置を除く残りのストレージ装置を用いた運用を継続することができる。
【０２１６】
なお、上記の第２の実施の形態では、ＣＥとＤＥおよび隣接ＣＥとの通信のためのインタフェースとして、ＳＡＳインタフェースを用いた例について説明した。しかし、これに限定されるものではなく、少なくともマルチイニシエータをサポートするインタフェースを用いることができる。また、活性でのデバイスの挿抜が可能なインタフェースを用いることで、システムの運用を継続したまま、ストレージ装置やＤＥの増設作業や、故障した機器の入れ替え作業を行うことができる。このような条件を満たすインタフェースとしては、例えば、ＦＣがある。
【０２１７】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  制御装置と、前記制御装置を始端とする第１の伝送路を通じて前記制御装置と直列に接続され、前記制御装置からアクセスされる１以上の記憶装置と、をそれぞれ備える複数のストレージ装置と、
前記複数のストレージ装置をループ状に接続し、前記各制御装置間で通信するための第２の伝送路であって、前記複数のストレージ装置にそれぞれ含まれる前記第１の伝送路を含むとともに、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第１の伝送路の終端が、前記複数のストレージ装置のうち前記第２の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第１の伝送路の始端に接続されることで形成される前記第２の伝送路と、
を有するストレージシステム。
【０２１８】
（付記２）  前記各制御装置は、第１のインタフェースと第２のインタフェースとを有し、
前記一のストレージ装置に含まれる前記第１の伝送路の始端が、前記一のストレージ装置に含まれる前記第１のインタフェースに接続され、前記一のストレージ装置に含まれる前記第１の伝送路の終端が、前記他のストレージ装置に含まれる前記第２のインタフェースに接続されることで、前記第２の伝送路が形成される、
付記１記載のストレージシステム。
【０２１９】
（付記３）  前記複数のストレージ装置のうち第１のストレージ装置に含まれる制御装置は、
アクセス先記憶装置を示す位置情報と、前記アクセス先記憶装置に実行させる動作を示す第１のコマンド情報とを含む第２のコマンド情報を、前記第２のインタフェースを通じて受信すると、前記位置情報に基づいて前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれかである場合、前記第２のコマンド情報から抽出した前記第１のコマンド情報を前記第１のインタフェースから前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記第１のストレージ装置に含まれる前記１以上の記憶装置のいずれでもない場合、前記第２のコマンド情報を前記第１のインタフェースから、前記第２の伝送路において前記第１のストレージ装置の次に接続された第２のストレージ装置に含まれる前記第２のインタフェースに対して転送する、
付記２記載のストレージシステム。
【０２２０】
（付記４）  前記第１のストレージ装置に含まれる前記第１のインタフェースは、前記第１のストレージ装置に含まれる前記第１の伝送路上のイニシエータとして動作し、当該第１の伝送路に接続された前記１以上の記憶装置と、当該第１の伝送路に接続された前記第２のストレージ装置に含まれる前記第２のインタフェースとは、当該第１の伝送路上のターゲットとして動作する、
付記３記載のストレージシステム。
【０２２１】
（付記５）  前記複数のストレージ装置のうち第１のストレージ装置に含まれる第１の制御装置は、前記複数のストレージ装置のうち第２のストレージ装置に含まれる一の記憶装置にアクセスする際、前記第２のストレージ装置に含まれる第２の制御装置に対して、前記一の記憶装置へのアクセス要求を前記第２の伝送路を通じて送信し、
前記第２の制御装置は、前記アクセス要求に応じて前記一の記憶装置にアクセスする、
付記１または２記載のストレージシステム。
【０２２２】
（付記６）  前記第１の制御装置は、前記一の記憶装置にアクセスする際、前記一の記憶装置の位置を示す位置情報と、前記一の記憶装置に実行させる動作を示す第１のコマンド情報とを含む第２のコマンド情報を、前記アクセス要求として前記第２の伝送路を通じて前記第２の制御装置に送信し、
前記第２の制御装置は、前記第２のコマンド情報を受信すると、前記第１のコマンド情報に基づいて前記一の記憶装置にアクセスする、
付記５記載のストレージシステム。
【０２２３】
（付記７）  前記第２の制御装置は、前記第２のコマンド情報を受信すると、前記位置情報が示すアクセス先記憶装置が前記第２のストレージ装置に含まれる記憶装置であると判定し、前記第１のコマンド情報に基づいて前記位置情報が示す前記一の記憶装置にアクセスする、
付記６記載のストレージシステム。
【０２２４】
（付記８）  前記第１のストレージ装置と前記第２のストレージ装置との間の前記第２の伝送路上に第３のストレージ装置が存在する場合、前記第３のストレージ装置に含まれる第３の制御装置は、前記第２の伝送路を通じて前記第２のコマンド情報を受信すると、前記位置情報が示すアクセス先記憶装置が前記第３のストレージ装置に含まれる記憶装置でないと判定し、前記第２のコマンド情報を前記第２の伝送路において次に接続された第４の制御装置に転送する、
付記６または７記載のストレージシステム。
【０２２５】
（付記９）  前記第１の制御装置は、前記第２の伝送路において前記第２の制御装置と間に存在する他の制御装置の数に基づいて、前記第２の伝送路において前記第２のコマンド情報を送信する方向を決定し、前記決定された方向に前記第２のコマンド情報を送信する、
付記６乃至８のいずれか１項に記載のストレージシステム。
【０２２６】
（付記１０）  複数の記憶装置を有するストレージシステムに含まれるストレージ装置において、
制御装置と、
前記制御装置を始端とする伝送路と、
前記伝送路を通じて前記制御装置と直列に接続され、前記制御装置によってアクセスが制御される１以上の記憶装置と、
を有し、
前記制御装置は、
前記１以上の記憶装置のうちの一の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第１のコマンド情報を前記一の記憶装置に送信し、
前記複数の記憶装置のうち前記１以上の記憶装置以外の他の記憶装置にアクセスする際は、前記他の記憶装置の位置を示す位置情報と、前記他の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、前記伝送路の終端に接続された第１の他のストレージ装置に送信する、
ストレージ装置。
【０２２７】
（付記１１）  前記制御装置は、前記制御装置に接続されたホスト装置からの要求に応じて前記他の記憶装置にアクセスする場合には、前記第３のコマンド情報を生成して前記伝送路に送信する、
付記１０記載のストレージ装置。
【０２２８】
（付記１２）  前記制御装置は、
前記伝送路の始端に接続された第１のインタフェースと、
第２の他のストレージ装置に接続された第２のインタフェースと、
を有し、
アクセス先記憶装置の位置を示す他の位置情報と、前記アクセス先記憶装置に実行させる動作を示す第４のコマンド情報とを含む第５のコマンド情報を、前記第２のインタフェースを通じて前記第２の他のストレージ装置から受信すると、前記他の位置情報に基づいて前記アクセス先記憶装置が前記１以上の記憶装置のいずれかであるかを判定し、
前記アクセス先記憶装置が前記１以上の記憶装置のいずれかである場合、前記第５のコマンド情報から抽出した前記第４のコマンド情報を前記伝送路を通じて前記アクセス先記憶装置に送信し、
前記アクセス先記憶装置が前記１以上の記憶装置のいずれでもない場合、前記第５のコマンド情報を前記伝送路に転送する、
付記１０または１１記載のストレージ装置。
【０２２９】
（付記１３）  制御装置と、前記制御装置を始端とする第１の伝送路を通じて前記制御装置と直列に接続された１以上の記憶装置と、をそれぞれ備える複数のストレージ装置の間での通信方法において、
前記複数のストレージ装置は、前記複数のストレージ装置にそれぞれ含まれる前記第１の伝送路を含む第２の伝送路によってループ状に接続され、前記第２の伝送路は、前記複数のストレージ装置のうち一のストレージ装置に含まれる前記第１の伝送路の終端が、前記複数のストレージ装置のうち前記第２の伝送路上で前記一のストレージ装置の次に接続される他のストレージ装置に含まれる前記第１の伝送路の始端に接続されることで形成されている状態で、
前記複数のストレージ装置のうち第１のストレージ装置に含まれる一の制御装置は、
前記第１のストレージ装置に含まれる第１の記憶装置にアクセスする際は、前記一の記憶装置に実行させる動作を示す第１のコマンド情報を前記第２の伝送路に送信し、
前記複数のストレージ装置のうち第２のストレージ装置に含まれる第２の記憶装置にアクセスする際は、前記第２の記憶装置の位置を示す位置情報と、前記第２の記憶装置に実行させる動作を示す第２のコマンド情報とを含む第３のコマンド情報を、前記第２の伝送路に送信する、
通信方法。
【符号の説明】
【０２３０】
１，２，３  ストレージ装置
１ａ，２ａ，３ａ  制御装置
１ｂ，１ｃ，２ｂ，２ｃ，３ｂ，３ｃ  記憶装置
１ｄ，２ｄ，３ｄ  ローカル伝送路
１ｅ，２ｅ，３ｅ  ホスト装置
４  ループ状伝送路
【図１】
0006555029.tif 000002
【図２】
0006555029.tif 000003
【図３】
0006555029.tif 000004
【図４】
0006555029.tif 000005
【図５】
0006555029.tif 000006
【図６】
0006555029.tif 000007
【図７】
0006555029.tif 000008
【図８】
0006555029.tif 000009
【図９】
0006555029.tif 000010
【図１０】
0006555029.tif 000011
【図１１】
0006555029.tif 000012
【図１２】
0006555029.tif 000013
【図１３】
0006555029.tif 000014
【図１４】
0006555029.tif 000015
【図１５】
0006555029.tif 000016
【図１６】
0006555029.tif 000017
【図１７】
0006555029.tif 000018
【図１８】
0006555029.tif 000019
【図１９】
0006555029.tif 000020
【図２０】
0006555029.tif 000021
【図２１】
0006555029.tif 000022
【図２２】
0006555029.tif 000023
【図２３】
0006555029.tif 000024
【図２４】
0006555029.tif 000025
【図２５】
0006555029.tif 000026
【図２６】
0006555029.tif 000027