(57)【特許請求の範囲】
【請求項１】
少なくとも一つの記憶部を備える記憶装置と前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置であって、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送する通知部と、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視する監視部と、
前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える通知制御部と、を備えることを特徴とする、接続装置。
【請求項２】
前記監視部は、前記通知が転送された制御部から前記記憶装置に対して発行される、前記状態変化の発生に応じて前記記憶装置を制御する制御情報、及び、前記記憶装置から前記制御部に対して発行される前記制御情報に対する応答情報、の少なくとも一方を監視し、監視する前記制御情報及び前記応答情報の少なくとも一方の発行が終了した場合、前記アクセスが終了したことを検出することを特徴とする、請求項１記載の接続装置。
【請求項３】
前記通知制御部は、前記通知部による前記通知の転送が全ての前記制御部に対して行なわれるまで、前記切り換えを行なうことを特徴とする、請求項１又は請求項２記載の接続装置。
【請求項４】
前記接続装置には、それぞれが少なくとも一つの記憶部を備える複数の記憶装置が、直接接続、又は、前記直接接続される記憶装置に縦続接続され、
前記監視部は、前記通知が転送された制御部から、前記複数の記憶装置の接続状態を示す情報に基づくアクセス順序における最終の記憶装置へのアクセスが終了した場合、前記アクセスが終了したことを検出することを特徴とする、請求項１〜３のいずれか１項記載の接続装置。
【請求項５】
前記記憶部に係る状態変化の発生を示す新たな通知を前記記憶装置から受けた場合、前記通知部、前記監視部及び前記通知制御部における先の通知に係る処理をリセットするリセット部をさらに備え、
前記通知部は、前記リセット部によるリセット後に、前記複数の制御部のうちの一部の制御部に対して前記新たな通知を転送することを特徴とする、請求項１〜４のいずれか１項記載の接続装置。
【請求項６】
少なくとも一つの記憶部を備える記憶装置と、
前記記憶装置に対する制御を行なう複数の制御部と、
前記記憶装置と前記複数の制御部との間に介設される接続装置であって、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送する通知部と、前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視する監視部と、前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える通知制御部と、を備える接続装置と、を備えることを特徴とする、ストレージ装置。
【請求項７】
少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置における処理方法であって、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視し、
前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換えることを特徴とする、処理方法。
【請求項８】
少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置としてのコンピュータに、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視し、
前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える、
処理を実行させることを特徴とする、処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、記憶装置とその記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置、並びに、ストレージ装置、接続装置における処理方法及び処理プログラムに関する。
【背景技術】
【０００２】
ストレージ装置において、ＳＣＳＩ（Small Computer System Interface）規格の一種であるＳＡＳ（Serial Attached SCSI）に対応したＨＤＤ（Hard Disk Drive）等のデバイスを多数搭載する場合、ＳＡＳ  Ｅｘｐａｎｄｅｒ（ＳＡＳエクスパンダ；以下、ＥＸＰという）が用いられることがある。
ＥＸＰは、ＳＡＳ接続の拡張を行なうために用いられるＳＡＳスイッチである。
【０００３】
図７は、複数のＳＡＳデバイス７００並びにＥＸＰ４００及び６００を備えるストレージシステムの構成例を示す図であり、特に、図７では、多数のＳＡＳデバイス７００並びにＥＸＰ４００及び６００を用いた大規模ストレージシステムの例を示す。
図７に示すように、ストレージシステムは、コントローラエンクロージャ（Controller Enclosure；以下、ＣＥという）２００と複数のドライブエンクロージャ（Drive Enclosure；以下、ＤＥという）５００とを備えるストレージ装置１００、及び、ホスト８００を備える。
【０００４】
なお、図７において、二重のラインはホストインタフェースを示し、一本のラインはＳＡＳ接続を示す。
ＣＥ２００は、ホスト８００からＳＡＳデバイス７００に対するデータの書き込み及び読み出し等のデータアクセス要求の制御を行なうものであり、コントローラモジュール（Controller Module；以下、ＣＭという）３００及びＥＸＰ４００を備える。
【０００５】
ＣＭ３００は、配下のＳＡＳデバイス７００を管理し、サーバ等のホスト８００からＳＡＳデバイス７００へのデータアクセス要求に対して適切なＳＡＳデバイス７００を割り当てるモジュールである。また、ＣＭ３００は、ＳＡＳデバイス７００やＥＸＰ４００及び６００のイニシエータとして機能し、配下のＥＸＰ４００及び６００を経由して、アクセス対象のＳＡＳデバイス７００に対するアクセスを行なう。
【０００６】
ＥＸＰ４００は、ＳＡＳ接続の拡張を行なうためのモジュールであり、ＳＡＳの制御デバイスであるエクスパンダチップやＳＡＳの物理ポートであるＰｈｙを備える。
また、ＥＸＰ４００は、Ｐｈｙを介してＣＭ３００及び配下のＤＥ５００内のＥＸＰ６００と接続され、ＣＭ３００からのデータアクセス要求をアクセス対象のＥＸＰ６００に転送する。
【０００７】
なお、ＣＥ２００は、冗長化を目的として、複数（図７に示す例では８つ）のＣＭ３００を備え、マルチイニシエータ構成をとっている。また、ＣＥ２００は、冗長化のため、複数（図７に示す例では２つ）のＥＸＰ４００を備える。
ＤＥ５００は、ＨＤＤ等の複数のＳＡＳデバイス（ＳＡＳドライブ）７００を搭載するとともに、冗長化を目的として複数（図７に示す例では２つ）のＥＸＰ６００を備える。なお、図７においては、図の簡略化のため、ＤＥ５００におけるＳＡＳデバイス７００の図示並びに符号６００及び７００の図示を一部省略しているが、ＤＥ５００はいずれも同様の構成を備える。
【０００８】
なお、以下、ＣＭ３００からＤＥ５００までのデータ経路において、ＣＭ３００側を上位といい、ＤＥ５００側を下位という。
ＥＸＰ６００は、ＣＥ２００内のＥＸＰ４００と同様の構成であり、図示しないＰｈｙ（物理ポート）を介してＣＥ２００内のＥＸＰ４００及び／又は他のＤＥ５００内のＥＸＰ６００と接続され、上位、すなわちＣＭ３００側からのデータアクセス要求に応じた処理を行なう。
【０００９】
なお、以下、複数のＣＭ３００のうちの１つを特定する必要があるときには、図７に示すようにＣＭ００〜ＣＭ０７のいずれかを用いる。また、以下、複数のＥＸＰ４００又は６００のうちの１つを特定する必要があるときには、図７に示すようにＥＸＰ００，１０〜１７，２０〜２７，３０〜３７，４０〜４７のいずれかを用いる。
図７に示すように、ストレージ装置１００においては、ＥＸＰ００及び０１の上位には、それぞれ、ＣＭ００〜ＣＭ０７が接続される。また、ＥＸＰ００の下位には、ＥＸＰ１０〜１３がそれぞれ接続され、ＥＸＰ０１の下位には、ＥＸＰ１４〜１７がそれぞれ接続されている。
【００１０】
また、ＥＸＰ１０にはＥＸＰ２０，３０，４０が、ＥＸＰ１１にはＥＸＰ２１，３１，４１が、ＥＸＰ１２にはＥＸＰ２２，３２，４２が、ＥＸＰ１３にはＥＸＰ２３，３３，４３が、それぞれ直列にカスケード接続（多段接続）されている。同様に、ＥＸＰ１４にはＥＸＰ２４，３４，４４が、ＥＸＰ１５にはＥＸＰ２５，３５，４５が、ＥＸＰ１６にはＥＸＰ２６，３６，４６が、ＥＸＰ１７にはＥＸＰ２７，３７，４７が、それぞれ直列にカスケード接続（多段接続）されている。
【００１１】
さらに、各ＤＥ５００における２つのＥＸＰ６００は、それぞれ、自身のＤＥ５００が備える少なくとも１つのＳＡＳデバイス７００に接続される。
以上のように構成されたストレージ装置１００は、ＥＸＰ４００及び６００を用いることにより、多数のＳＡＳデバイス７００を接続することができる。
ここで、ＥＸＰ４００及び６００は、冗長化のために各エンクロージャ内に２つずつ設けられている。以下、冗長化されたＥＸＰ４００及び６００のうち、ＣＥ２００内のＥＸＰ００と、各ＤＥ５００内のＥＸＰ１０〜１３とが接続された系列を第１系列といい、ＣＥ２００内のＥＸＰ０１と、各ＤＥ５００内のＥＸＰ１４〜１７とが接続された系列を第２系列という。
【００１２】
なお、以下、第１系列における各系統のＥＸＰ１０〜１３，２０〜２３，３０〜３３，４０〜４３をまとめてＥＸＰ１０〜４３という。
ところで、図７の構成において、第１系列のＥＸＰ１０〜４３配下のＳＡＳデバイス７００に何らかの状態変化が発生した場合、そのＳＡＳデバイス７００が接続されているＥＸＰ６００は、上位に対してブロードキャストチェンジ（BroadCast (Change)；以下、ＢＣ（ＣＨＧ）という）を発行する。なお、ＳＡＳデバイス７００の状態変化としては、例えばＳＡＳデバイス７００の挿抜やデバイス異常が挙げられる。
【００１３】
ＢＣ（ＣＨＧ）は、状態変化の発生を示す通知であり、発行元のＥＸＰ６００から上位のＥＸＰ６００及び４００を経由して、全てのＣＭ３００に転送される。
イニシエータであるＣＭ３００は、ＢＣ（ＣＨＧ）を受領後、配下のＳＡＳデバイス７００を再認識するためのディスカバリ（Discovery）プロセスを行なう。
なお、ＢＣ（ＣＨＧ）を受け取ったＥＸＰ４００及び６００は、全てのＳＡＳポート、すなわちＰｈｙに対してＢＣ（ＣＨＧ）を転送するため、ＢＣ（ＣＨＧ）が上位に伝搬される結果、全てのＣＭ３００がほぼ同時にディスカバリプロセスを開始することになる。
【００１４】
ディスカバリプロセスでは、ＣＭ３００は、下位側に接続される全てのＥＸＰ４００及び６００に対して、それぞれ複数のＳＭＰ（SAS Management Protocol）  Ｆｕｎｃｔｉｏｎを発行する。ＳＭＰ  Ｆｕｎｃｔｉｏｎは、ＥＸＰを管理するプロトコルであるＳＭＰにより規定されるコマンドであり、ＥＸＰ配下のＳＡＳデバイス７００の情報の取得，ＥＸＰのルーティング情報の構築，トポロジーの構築，Ｐｈｙの制御及びＳＡＳ接続のリンクネゴシエーション等に用いられる。
【００１５】
ＣＭ３００は、ディスカバリプロセスにおいて必要な情報を取得するため、例えば各ＥＸＰ４００又は６００に対して、５〜１０のＳＭＰ  Ｆｕｎｃｔｉｏｎ（コマンド）を発行する。
ＳＭＰ  Ｆｕｎｃｔｉｏｎを受領したＥＸＰ４００及び６００は、コマンド種に応じた情報、例えば、自らが有しているＰｈｙの数やこれらのＰｈｙに接続されたＳＡＳデバイス７００の情報等をマップ情報としてＣＭ３００に向けて発行する。
【００１６】
ＣＭ３００は、下位のＥＸＰ４００及び６００から送信されたマップ情報を用いて、下位のＳＡＳデバイス７００の情報を管理する。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００６−２７９３４７号公報
【特許文献２】特表２００９−５４０４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
上述の如く、ディスカバリプロセスでは、ＣＭ３００は、全てのＥＸＰ４００及び６００に対して複数のＳＭＰ  Ｆｕｎｃｔｉｏｎを発行する。
一方、各ＥＸＰ４００及び６００は、受け取った複数のＳＭＰ  Ｆｕｎｃｔｉｏｎについて、１つずつしか処理を行なうことができない。
従って、図７に例示するマルチイニシエータ環境では、ディスカバリプロセスが発生した場合、各ＥＸＰ４００及び６００において、複数のＣＭ３００からのＳＭＰ  Ｆｕｎｃｔｉｏｎによるアクセスが競合し、各ＥＸＰ４００及び６００での負荷が大きくなるという課題がある。
【００１９】
１つの側面では、本発明は、記憶部の状態変化の発生を示す通知が接続装置を介して複数の制御部に対して発行される場合に、当該通知に応じて発生する接続装置の処理負荷を軽減することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００２０】
本件の接続装置は、少なくとも一つの記憶部を備える記憶装置と前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置であって、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送する通知部と、前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視する監視部と、前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える通知制御部と、を備えるものである。
【００２１】
また、本件のストレージ装置は、少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部と、上記接続装置と、を備えるものである。
さらに、本件の処理方法は、少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置における処理方法であって、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視し、前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換えるものである。
【００２２】
また、本件の処理プログラムは、少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置としてのコンピュータに、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、前記通知が転送された制御部から前記接続装置を介した前記記憶装置への、前記状態変化の発生に応じた前記記憶装置の制御に係るアクセスを監視し、前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える、処理を実行させるものである。
【発明の効果】
【００２３】
１実施形態によれば、記憶部の状態変化の発生を示す通知が接続装置を介して複数の制御部に対して発行される場合に、当該通知に応じて発生する接続装置の処理負荷を軽減することができる。
【図面の簡単な説明】
【００２４】
【図１】一実施形態としてのストレージシステムの構成例を示す図である。
【図２】本実施形態に係るコントローラエンクロージャの構成例を示す図である。
【図３】本実施形態に係るエクスパンダの構成例を示す図である。
【図４】本実施形態に係るドライブエンクロージャの構成例を示す図である。
【図５】図１に例示するストレージ装置のコントローラモジュール並びに第１系列のエクスパンダに注目した図である。
【図６】本実施形態に係るストレージ装置の動作例を説明するフローチャートである。
【図７】複数のＳＡＳドライブ及びＥＸＰを備えるストレージシステムの構成例を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して実施の形態を説明する。
〔１〕一実施形態
〔１−１〕ストレージシステムの構成例
図１は、一実施形態としてのストレージシステムの構成例を示す図であり、図２は、本実施形態に係るコントローラエンクロージャ２の構成例を示す図である。また、図３は、本実施形態に係るエクスパンダ４及び６の構成例を示す図であり、図４は、ドライブエンクロージャ５の構成例を示す図である。
【００２６】
図１に例示するように、本実施形態に係るストレージシステムは、ＣＥ２と複数のＤＥ５とを備えるストレージ装置１、及び、ホスト８を備える。
なお、図１において、二重のラインはホストインタフェースを示し、一本のラインはＳＡＳ接続を示す。
また、以下、ＣＭ３からＤＥ５までのデータ経路において、ＣＭ３側を上位といい、ＤＥ５側を下位という場合がある。
【００２７】
ホスト８は、ストレージ装置１が備えるＳＡＳデバイス７に対するデータの書き込み及び読み出し等のデータアクセス要求を発行する装置であり、ホスト８としてはサーバ等の情報処理装置が挙げられる。
ＣＥ２は、ホスト８から発行されたデータアクセス要求に係る制御を行なう制御装置であり、冗長化を目的として、複数（図１に示す例では８つ）のＣＭ３及び複数（図１に示す例では２つ）のＥＸＰ４を備える。
【００２８】
ＣＭ（制御部）３は、ＤＥ５に対する制御を行なうものであり、上述したＣＭ３００と同様に、配下のＳＡＳデバイス７を管理し、ホスト８から発行されたデータアクセス要求に対して適切なＳＡＳデバイス７を割り当てるモジュールである。
ＣＭ３は、具体的には、図２に例示するように、ホストアダプタ３１，プロセッサ３２，メモリ３３及びＳＡＳ  ＩＯ（Input Output）コントローラ３４を備える。
【００２９】
ホストアダプタ３１は、ホスト８からのデータアクセス要求等の情報を受信したり、ＥＸＰ４又はＤＥ５からのデータやコマンド等の情報をホスト８に送信するアダプタであり、ホスト８とホストインタフェースを介して接続される。
プロセッサ３２は、種々の制御や演算を行なうＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）等の処理装置であり、図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、ＣＭ３における種々の機能を実現する。本実施形態においては、プロセッサ３２は、ホスト８からのデータアクセス要求に係る処理や、ディスカバリプロセスの実行を行なう。
【００３０】
メモリ３３は、種々のデータやプログラムを一時的に格納する記憶装置であって、プロセッサ３２がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ３３としては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
ＳＡＳ  ＩＯコントローラ３４は、配下のＥＸＰ４に対する入出力を司るコントローラであり、ＥＸＰ４の後述するＰｈｙ４４とケーブル等によりＳＡＳ接続される。
【００３１】
また、ＣＭ３は、ＳＡＳデバイス７やＥＸＰ４及び６のイニシエータとして機能し、配下のＥＸＰ４及び６を経由して、アクセス対象のＳＡＳデバイス７に対するアクセスを行なう。
さらに、ＣＭ３は、上述したＣＭ３００と同様に、ＥＸＰ４を介してＤＥ５（ＥＸＰ６）から発行されたＢＣ（ＣＨＧ）、つまり状態変化の発生を示す通知を受領すると、配下のＳＡＳデバイス７を再認識するためのディスカバリプロセスを開始する。
【００３２】
すなわち、ＣＭ３は、ディスカバリプロセスにおいて、ＳＡＳ  ＩＯコントローラ３４により、下位側に接続される全てのＥＸＰ４及びＤＥ５（ＥＸＰ６）に対して、ＥＸＰ４を介して、ＳＭＰ  Ｆｕｎｃｔｉｏｎ（制御情報）を発行する。
なお、上述の如く、ＳＭＰ  Ｆｕｎｃｔｉｏｎは、ＥＸＰを管理するプロトコルであり、ＥＸＰ配下のＳＡＳデバイス７の情報の取得，ＥＸＰのルーティング情報の構築，トポロジーの構築，Ｐｈｙの制御及びＳＡＳ接続のリンクネゴシエーション等に用いられる。
【００３３】
例えば、ＳＭＰ  Ｆｕｎｃｔｉｏｎは、ＥＸＰ４又は６の配下のＤＥ５（ＥＸＰ６）、つまりＥＸＰ４又は６の下位側に接続されるＥＸＰ６やＳＡＳデバイス７等のデバイスの接続状態等を示すマップ情報（接続情報）を要求する制御情報である。このように、ＳＭＰ  Ｆｕｎｃｔｉｏｎは、状態変化の発生に応じてＥＸＰ４やＤＥ５を制御する情報である。
【００３４】
ＣＭ３は、ディスカバリプロセスにおいて必要な上述のような情報を取得するため、例えば各ＥＸＰ４又は６に対して、複数（例えば５〜１０）のＳＭＰ  Ｆｕｎｃｔｉｏｎを発行する。
また、ＣＭ３は、ディスカバリプロセスにおいて、ＥＸＰ４やＤＥ５（ＥＸＰ６）から受信したレスポンス（応答情報）をメモリ３３等の記憶装置に格納し、マップ情報を用いて、下位のＳＡＳデバイス７の情報を管理することができる。
【００３５】
図１に示す例においては、ＣＭ３は、ＥＸＰ４に対するＳＭＰ  Ｆｕｎｃｔｉｏｎのレスポンス（応答情報）のうちのマップ情報により、ＳＭＰ  Ｆｕｎｃｔｉｏｎを発行するＤＥ５（ＥＸＰ６）をＥＸＰ１０〜１３として認識することができる。また、ＣＭ３は、ＥＸＰ６に対するＳＭＰ  Ｆｕｎｃｔｉｏｎのレスポンス（応答情報）のうちのマップ情報により、例えばＥＸＰ１０〜１３の配下のＥＸＰ６をそれぞれＥＸＰ２０〜２３として認識することができる。
【００３６】
すなわち、ＣＭ３は、マップ情報により、ＳＭＰ  Ｆｕｎｃｔｉｏｎを発行するＤＥ５（ＥＸＰ６）を認識することができる。
なお、ＥＸＰ４及び６が送信するマップ情報には、送信元の各ＥＸＰ４及び６が有しているＰｈｙ４４の数やこれらのＰｈｙ４４に接続されたＳＡＳデバイス７の情報等が含まれる。
【００３７】
ＥＸＰ（接続装置）４は、ＤＥ５と複数のＣＭ３との間に介設される、ＳＡＳ接続の拡張を行なうためのモジュールであり、ＣＭ３からのデータアクセス要求をアクセス対象のＤＥ５（ＥＸＰ６）に転送する。
ＥＸＰ４は、具体的には、図３に例示するように、エクスパンダチップ４１，電源４６，ＰＬＤ（Programmable Logic Device）４７及びスイッチ４８を備える。
【００３８】
エクスパンダチップ４１は、ＳＡＳの制御デバイスであり、プロセッサ４２，メモリ４３，Ｐｈｙ４４、並びに、シリアル接続及びイーサネット（登録商標）接続のインタフェースであるシリアルポート４５ａ及びイーサポート４５ｂを備える。
プロセッサ４２は、種々の制御や演算を行なうＣＰＵやＭＰＵ等の処理装置であり、図示しないＲＯＭ等に格納されたプログラムを実行することにより、ＥＸＰ４における種々の機能を実現する。本実施形態においては、プロセッサ４２は、ＳＡＳの物理ポートであるＰｈｙ４４の制御の他、ＳＭＰ論理デバイスとしてＳＭＰ  Ｆｕｎｃｔｉｏｎに係る処理を行なうとともに、ＳＳＰ（Serial SCSI Protocol）論理デバイスとしてＳＣＳＩコマンドに係る処理を行なう。
【００３９】
また、本実施形態に係るＥＸＰ４は、後述する通知部４０ａ，監視部４０ｂ，通知制御部４０ｃ及びリセット部４０ｄとしての機能を備え、これらの機能は、プロセッサ４２によって実現される。
メモリ（保持部）４３は、種々のデータやプログラムを一時的に格納する記憶装置であって、プロセッサ４２がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、メモリ４３としては、例えばＲＡＭ等の揮発性メモリが挙げられる。
【００４０】
Ｐｈｙ４４は、ＣＭ３及びＤＥ５内のＥＸＰ６とケーブル等によりＳＡＳ接続される物理ポートであり、図３に示す例においては、０〜３５のポートを備える。なお、図示を省略しているが、ＣＥ２にも、ＳＡＳデバイス７を備えることができ、この場合、ＥＸＰ４は、Ｐｈｙ４４を介してＣＥ２内のＳＡＳデバイス７と接続される。
電源４６は、図示しない外部電源からの電力によってエクスパンダ４内に電力を供給するものであり、ＰＬＤ４７は、電源４６等からの常駐電源で動作し、エクスパンダ４の電源制御等を行なう。具体的には、ＰＬＤ４７は、スイッチ４８に対する電源制御を通じて、エクスパンダチップ４１に対して電源４６からの電力を供給する制御を行なう。
【００４１】
ＥＸＰ４は、ＢＣ（ＣＨＧ）をＤＥ５（ＥＸＰ６）から受けた場合、配下のＳＡＳデバイス７やＥＸＰ６を再認識するため、ディスカバリプロセスを実行し、下位側に接続されたＥＸＰ６にＳＭＰ  Ｆｕｎｃｔｉｏｎを発行する。このＳＭＰ  Ｆｕｎｃｔｉｏｎは、例えば下位側に接続されたＥＸＰ６における更新後のルートテーブル等のＤＥ５の状態情報を要求するコマンドである。
【００４２】
そして、下位側に接続されたＥＸＰ６からＳＭＰ  Ｆｕｎｃｔｉｏｎに対するレスポンスを受信すると、ＥＸＰ４は、レスポンスのうちの状態情報に基づいて自身のルートテーブル（状態情報）を更新（作成）し、メモリ４３等の記憶装置に格納する。
また、ＥＸＰ４は、ディスカバリプロセスの実行により状態情報を取得すると、ＢＣ（ＣＨＧ）をＣＭ３に対して転送するが、本実施形態に係るＥＸＰ４は、ＣＭ３に対するＢＣ（ＣＨＧ）の転送に際して、通知部４０ａ，監視部４０ｂ，通知制御部４０ｃ及びリセット部４０ｄによる後述する処理を行なう。
【００４３】
なお、ＥＸＰ４は、ＢＣ（ＣＨＧ）を転送したＣＭ３からＳＭＰ  Ｆｕｎｃｔｉｏｎを受信した場合には、受信したコマンドに応じた処理、例えば自身のＰｈｙ４４やＰｈｙ４４に接続されたデバイスの情報を取得する処理を行ない、この情報をマップ情報としてレスポンスに含めてＣＭ３に返す。
ＤＥ（記憶装置）５は、図４に例示するように、少なくとも一つのＳＡＳデバイス７を備えるとともに、冗長化を目的として、複数（図４に示す例では２つ）のＥＸＰ６を備える。なお、図１においては、図の簡略化のため、ＤＥ５におけるＳＡＳデバイス７の図示並びに符号６及び７の図示を一部省略しているが、ＤＥ５はいずれも同様の構成を備える。
【００４４】
ＳＡＳデバイス（記憶部）７は、ＳＡＳに対応したＨＤＤ等の磁気ディスク装置等、種々のデータやプログラム等を格納するハードウェアである。なお、ＳＡＳデバイス７は、ＳＡＳに対応した他のデバイスであっても良い。
ＥＸＰ６は、図２に例示するＥＸＰ４と同様の構成であり、図３に示すＰｈｙ４４を介してＣＥ２内のＥＸＰ４及び／又は他のＤＥ５内のＥＸＰ６とケーブル等によりＳＡＳ接続され、上位、すなわちＣＭ３側からのデータアクセス要求に応じた処理を行なう。
【００４５】
また、ＥＸＰ６は、ＤＥ５内、つまりＥＸＰ６に直接接続されたＳＡＳデバイス７に係る状態変化が発生した場合、Ｐｈｙ４４に接続されたＳＡＳデバイス７を再認識するため、ルートテーブル（状態情報）を更新（作成）し、メモリ４３等の記憶装置に格納する。
なお、状態変化が発生した場合とは、例えば、Ｐｈｙ４４のリンクアップ／リンクダウンや、ＳＡＳデバイス７の抜き挿しが発生した場合が挙げられる。
【００４６】
さらに、ＥＸＰ６は、ＢＣ（ＣＨＧ）を全てのＰｈｙ４４、例えば図１に示す上位に接続された他のＥＸＰ４又は６に対して発行する。
また、下位側に接続されたＥＸＰ６からＢＣ（ＣＨＧ）を受け取った上位のＥＸＰ６は、配下のＳＡＳデバイス７やＥＸＰ６を再認識するため、ディスカバリプロセスを実行し、下位側に接続されたＥＸＰ６にＳＭＰ  Ｆｕｎｃｔｉｏｎを発行する。このＳＭＰ  Ｆｕｎｃｔｉｏｎは、例えば下位側に接続されたＥＸＰ６における更新後のルートテーブルの情報を要求するコマンドである。
【００４７】
そして、下位側に接続されたＥＸＰ６からＳＭＰ  Ｆｕｎｃｔｉｏｎに対するレスポンスを受信すると、上位のＥＸＰ６は、レスポンスのうちの状態情報に基づいて自身のルートテーブル（状態情報）を更新（作成）し、メモリ４３等の記憶装置に格納する。
さらに、上位のＥＸＰ６は、ＢＣ（ＣＨＧ）を全てのＰｈｙ４４、例えば上位に接続されたＥＸＰ４又はＥＸＰ６に転送する。
【００４８】
また、ＥＸＰ６は、ＣＭ３から発行されたＳＭＰ  Ｆｕｎｃｔｉｏｎを受信した場合には、受信したコマンドに応じた処理、例えば自身のＰｈｙ４４やＰｈｙ４４に接続されたデバイスの情報を取得する処理を行ない、この情報をマップ情報としてレスポンスに含めてＣＭ３に返す。
なお、以下、複数のＣＭ３のうちの１つを特定する必要があるときには、図１に示すようにＣＭ００〜ＣＭ０７のいずれかを用いる。また、以下、複数のＥＸＰ４又は６のうちの１つを特定する必要があるときには、図１に示すようにＥＸＰ００，１０〜１７，２０〜２７，３０〜３７，４０〜４７のいずれかを用いる。
【００４９】
図１に示すように、ストレージ装置１においては、ＥＸＰ００及び０１の上位には、それぞれ、ＣＭ００〜ＣＭ０７が接続される。また、ＥＸＰ００の下位には、ＥＸＰ１０〜１３がそれぞれ接続され、ＥＸＰ０１の下位には、ＥＸＰ１４〜１７がそれぞれ接続されている。
また、ＥＸＰ１０にはＥＸＰ２０，３０，４０が、ＥＸＰ１１にはＥＸＰ２１，３１，４１が、ＥＸＰ１２にはＥＸＰ２２，３２，４２が、ＥＸＰ１３にはＥＸＰ２３，３３，４３が、それぞれ直列にカスケード接続（縦続接続，多段接続）されている。同様に、ＥＸＰ１４にはＥＸＰ２４，３４，４４が、ＥＸＰ１５にはＥＸＰ２５，３５，４５が、ＥＸＰ１６にはＥＸＰ２６，３６，４６が、ＥＸＰ１７にはＥＸＰ２７，３７，４７が、それぞれ直列にカスケード接続（縦続接続，多段接続）されている。
【００５０】
さらに、各ＤＥ５における２つのＥＸＰ６は、それぞれ、自身のＤＥ５が備える少なくとも１つのＳＡＳデバイス７に接続される。
ここで、ＥＸＰ４及び６は、冗長化のために各エンクロージャ内に２つずつ設けられている。以下、冗長化されたＥＸＰ４及び６のうち、ＣＥ２内のＥＸＰ００と、各ＤＥ５内のＥＸＰ１０〜１３とが接続された系列を第１系列といい、ＣＥ２内のＥＸＰ０１と、各ＤＥ５内のＥＸＰ１４〜１７とが接続された系列を第２系列という。
【００５１】
以上のように、図１及び図５に示すように、ストレージ装置１は、第１系列において、１つのＥＸＰ４（ＥＸＰ００）に全てのＣＭ３が接続され、ＥＸＰ００配下に複数の系統毎にＥＸＰ００から直列にカスケード接続で複数のＥＸＰ６が配置された構成となっている。すなわち、ＥＸＰ４には、それぞれが少なくとも一つのＳＡＳデバイス７を備える複数のＤＥ５が、複数の系統で、直接接続、又は、直接接続されるＤＥ５に縦続接続される。なお、複数の系統とは、ＥＸＰ１０以下直列に接続された系統，ＥＸＰ１１以下直列に接続された系統，ＥＸＰ１２以下直列に接続された系統、及び、ＥＸＰ１３以下直列に接続された系統をいう。
【００５２】
なお、以下、第１系列における各系統のＥＸＰ１０〜１３，２０〜２３，３０〜３３，４０〜４３をまとめてＥＸＰ１０〜４３という。
〔１−２〕エクスパンダの説明
次に、ＥＸＰ４における通知部４０ａ，監視部４０ｂ，通知制御部４０ｃ及びリセット部４０ｄとしての機能について図５を参照しながら説明する。
【００５３】
ＥＸＰ４は、上述の如く、下位側に接続されたＥＸＰ６から、ＳＡＳデバイス７に係る状態変化の発生を示す通知であるＢＣ（ＣＨＧ）を受け取ると、ディスカバリプロセスを実行して状態情報を取得する。
そして、ＥＸＰ４は、ディスカバリプロセスにより状態情報を全てのＤＥ５から取得し、ＢＣ（ＣＨＧ）をＣＭ３に対して転送する際に、通知部４０ａ，監視部４０ｂ，通知制御部４０ｃ及びリセット部４０ｄとして機能する。
【００５４】
通知部４０ａは、転送先である複数のＣＭ３のうちの一部のＣＭ３に対してＢＣ（ＣＨＧ）を転送するものである。なお、一部のＣＭ３とは、１以上且つＣＥ２内のＣＭ３の数（図５に示す例では８つ）未満の数のＣＭ３をいい、以下に示す例においては、１つのＣＭ３である。
具体的には、通知部４０ａは、予め設定された接続構成情報に基づいて、ＢＣ（ＣＨＧ）を転送する転送先のＣＭ３を選択する。例えば、図５に示す例においては、ＥＸＰ４は、ＣＭ００〜０７のうちの最小の番号（最若番）であるＣＭ００をＢＣ（ＣＨＧ）を転送するＣＭ３として選択する。なお、接続構成情報は、ストレージ装置１における各ＣＭ３やＥＸＰ４及び６の接続関係を示す情報である。
【００５５】
また、通知部４０ａは、選択したＣＭ３（例えばＣＭ００）以外のＣＭ３に対して転送する状態変化の発生を示す情報、つまりＢＣ（ＣＨＧ）の情報については、メモリ４３等のバッファにキューイングする。
なお、上述の如く、ＢＣ（ＣＨＧ）が転送されたＣＭ３は、ディスカバリプロセスを実行し、ＥＸＰ４に対してＳＭＰ  Ｆｕｎｃｔｉｏｎを発行し、ＥＸＰ４は、自身に対するＳＭＰ  Ｆｕｎｃｔｉｏｎのレスポンスにマップ情報を含めてＣＭ３に返す。そして、ＣＭ３は、ＥＸＰ４からのマップ情報に基づいて、ＥＸＰ４の配下のＤＥ５に対するディスカバリプロセスを実行する。
【００５６】
監視部４０ｂは、通知部４０ａによりＢＣ（ＣＨＧ）が転送されたＣＭ３（例えばＣＭ００）からＥＸＰ４又はＥＸＰ４を介したＤＥ５へのディスカバリプロセスに起因するアクセスを監視し、このアクセスが終了したことを検出するものである。
具体的には、監視部４０ｂは、ＢＣ（ＣＨＧ）が転送されたＣＭ３からＥＸＰ４又はＤＥ５に対して発行される、状態変化の発生に応じてＥＸＰ４又はＤＥ５を制御するＳＭＰ  Ｆｕｎｃｔｉｏｎ、及び、ＥＸＰ４又はＤＥ５からＣＭ３に対して発行されるＳＭＰ  Ｆｕｎｃｔｉｏｎに対するレスポンス、の少なくとも一方を監視する。そして、監視部４０ｂは、監視するＳＭＰ  Ｆｕｎｃｔｉｏｎ及びレスポンスの少なくとも一方の発行が終了した場合、ＢＣ（ＣＨＧ）が転送されたＣＭ３によるアクセスが終了したことを検出する。なお、以下の例においては、監視部４０ｂは、ＢＣ（ＣＨＧ）が転送されたＣＭ３からＥＸＰ４又はＤＥ５に対して発行されるＳＡＳフレーム、つまりＳＭＰ  Ｆｕｎｃｔｉｏｎを監視するものとする。
【００５７】
なお、監視部４０ｂは、例えば、ＢＣ（ＣＨＧ）を転送したＣＭ３及び／又はＥＸＰ６へのＳＡＳポートであるＰｈｙ４４を監視状態として、当該Ｐｈｙ４４を通過する情報（ＳＡＳフレーム）を見ることにより、上述したアクセスの監視を行なう。
また、監視部４０ｂは、図５に示すようにＥＸＰ４の配下に複数のＤＥ５（ＥＸＰ６）があるときには、ＢＣ（ＣＨＧ）が転送されたＣＭ３から複数のＤＥ５のうちの最終のＤＥ５（ＥＸＰ６）へのアクセスが終了した場合に、ＣＭ３からのアクセスが終了したことを検出する。例えば、図５に示す例において、ＣＭ３がＳＭＰ  ＦｕｎｃｔｉｏｎをＥＸＰ１０から順にＥＸＰ４３まで発行する場合には、監視部４０ｂは、ＣＭ３からＥＸＰ４３へのアクセスが終了した場合に、ＣＭ３からのアクセスが終了したことを検出する。
【００５８】
なお、監視部４０ｂは、複数のＤＥ５（ＥＸＰ６）のうちのいずれのＤＥ５が最終であるかを、ＥＸＰ４がＳＭＰ  Ｆｕｎｃｔｉｏｎに応じて取得したマップ情報に基づいて判断（検出）することができる。すなわち、ＣＭ３が、ＥＸＰ４に対するディスカバリプロセスによって取得したマップ情報に基づいてＥＸＰ４配下のＤＥ５を認識しＤＥ５へのＳＭＰ  Ｆｕｎｃｔｉｏｎの発行順序を決定する場合には、監視部４０ｂは、当該マップ情報に基づいて、ＣＭ３が最後にＳＭＰ  Ｆｕｎｃｔｉｏｎを発行するＤＥ５を予測することができる。
【００５９】
通知制御部４０ｃは、監視部４０ｂによりアクセスが終了したことが検出された場合、通知部４０ａによるＢＣ（ＣＨＧ）の転送先を、ＢＣ（ＣＨＧ）の転送が行なわれなかったＣＭ３のうちの１以上のＣＭ３に切り換えるものである。なお、１以上のＣＭ３とは、以下に示す例においては、１つのＣＭ３である。
通知制御部４０ｃは、通知部４０ａによるＢＣ（ＣＨＧ）の転送が全てのＣＭ３に対して行なわれるまで、ＢＣ（ＣＨＧ）の転送先の切り換えを行なう。
【００６０】
具体的には、通知制御部４０ｃは、監視部４０ｂによりＣＭ３（例えばＣＭ００）からのアクセスが終了したことが検出されると、上述した接続構成情報に基づいて、所定の順序（例えばＣＭ３の最小の番号から順）で次の転送先のＣＭ３（例えばＣＭ０１）を選択する。そして、通知制御部４０ｃは、選択した転送先のＣＭ３に対して、キューイング中のＢＣ（ＣＨＧ）を通知部４０ａに転送させる。
【００６１】
なお、この所定の順序は上述したものに限定されず、例えば、ＣＭ００〜０７のうちの最大の番号から順であっても良いし、ＣＭ３に接続されるＥＸＰ４のＰｈｙ４４のポート番号に基づく順序であっても良く、複数のＣＭ３間で順序付けができればどのような情報を用いても良い。
そして、通知部４０ａは、通知制御部４０ｃにより選択された次の転送先のＣＭ３に対して、メモリ４３等のバッファに保持された状態情報の発生を示す情報に基づくＢＣ（ＣＨＧ）を転送する。
【００６２】
なお、ＥＸＰ４は、予め設定された接続構成情報における全てのＣＭ３からのディスカバリプロセス（マップ情報要求）を処理したことを契機に、ＢＣ（ＣＨＧ）の発行元のＥＸＰ６にＢＣ（ＣＨＧ）に係る処理が終了したことを示す応答を返す。
このように、通知部４０ａ，監視部４０ｂ及び通知制御部４０ｃによれば、複数のＣＭ３からのディスカバリプロセスがＥＸＰ４に集中しないため、ＥＸＰ４の性能ネックによる処理遅延や、ＣＭ３におけるマップ情報の獲得遅延、タイムアウト発生等を回避することができる。
【００６３】
リセット部４０ｄは、ＳＡＳデバイス７に係る状態変化の発生を示す他の通知、つまり他のＢＣ（ＣＨＧ）をＤＥ５から受けた場合、通知部４０ａ，監視部４０ｂ及び通知制御部４０ｃにおける先のＢＣ（ＣＨＧ）に係る処理をリセットするものである。
具体的には、リセット部４０ｄは、全てのＣＭ３におけるディスカバリプロセスが終了しない状態で、ＥＸＰ４がいずれかのＤＥ５で発生した他の状態変化によるＢＣ（ＣＨＧ）を受領した場合、通知部４０ａの動作を停止させるとともに、キューイング中のＢＣ（ＣＨＧ）を破棄させる。また、監視部４０ｂに対して、Ｐｈｙ４４の監視状態を解除させるとともに、通知制御部４０ｃの動作を停止させる。
【００６４】
リセット部４０ｄによりリセットが行なわれると、通知部４０ａは、上述した動作と同様に、複数のＣＭ３のうちの一部のＣＭ３に対して、新たに発生した他のＢＣ（ＣＨＧ）を転送する。
〔１−３〕ストレージ装置の動作例
次に、上述の如く構成された本実施形態に係るストレージ装置１におけるＢＣ（ＣＨＧ）発行時の動作例を図５及び図６を参照しながら説明する。なお、図６は、本実施形態に係るストレージ装置１の動作例を説明するフローチャートである。
【００６５】
はじめに、ＤＥ５（ＥＸＰ１０〜４３）のいずれかにおいてＳＡＳの変化（ＳＡＳデバイス７に係る状態変化）が発生すると、状態変化の発生を検出したＥＸＰ６により、上位のＥＸＰ４又は６に対してＢＣ（ＣＨＧ）が発行される（ステップＳ１）。
例えば、図５に示すＥＸＰ３０において状態変化の発生が検出されると、ＥＸＰ３０により上位のＥＸＰ２０に対してＢＣ（ＣＨＧ）が発行される。ＢＣ（ＣＨＧ）を受信したＥＸＰ２０は、ディスカバリプロセスを実行して自身に接続されているＳＡＳデバイス７や下位のＥＸＰ３０に関するルートテーブル（状態情報）を更新するとともに、上位のＥＸＰ１０に対してＢＣ（ＣＨＧ）を転送する。ＢＣ（ＣＨＧ）を転送されたＥＸＰ１０も、同様に、ディスカバリプロセスの実行により下位のＳＡＳデバイス７やＥＸＰ２０，３０，４０に関するルートテーブル（状態情報）を更新するとともに、上位のＥＸＰ００に対してＢＣ（ＣＨＧ）を転送する。
【００６６】
次いで、下位側のＥＸＰ６からＢＣ（ＣＨＧ）を受領したＥＸＰ４により、下位側のＥＸＰ６に対してディスカバリプロセスが開始され、下位側のＥＸＰ６から状態情報等の情報が採取される（ステップＳ２）。
例えば、図５に示すＥＸＰ３０から発行されたＢＣ（ＣＨＧ）を受領すると、ＥＸＰ４は、下位に接続されたＥＸＰ１０〜１３（及びＳＡＳデバイス７）から状態情報を取得する。
【００６７】
そして、ＥＸＰ４（通知部４０ａ）により、ＣＭ番号をＸＸとし初期値がＸＸ＝００に設定され（ステップＳ３）、最小の番号のＣＭ３であるＣＭ００へのみＢＣ（ＣＨＧ）が転送される。なお、その他のＣＭ０１〜０７に対するＢＣ（ＣＨＧ）は転送されず、通知部４０ａによりＥＸＰ４内でキューイングされる。
また、ＥＸＰ４（監視部４０ｂ）により、ＢＣ（ＣＨＧ）を転送したＣＭ００へのＳＡＳポートであるＰｈｙ４４が監視状態とされ、ＣＭ００からのＳＡＳフレームが監視される（ステップＳ４）。
【００６８】
次に、ＥＸＰ４からＢＣ（ＣＨＧ）を受領したＣＭ００により、ディスカバリプロセスが開始される。
まず、ＣＭ００により、配下のＥＸＰ４に対してＳＭＰ  Ｆｕｎｃｔｉｏｎが発行され、ＥＸＰ４からのレスポンスであるマップ情報が受信される。そして、ＣＭ００により、ＥＸＰ４の配下にＥＸＰ１０〜１３が存在することが認識されると、これらのＥＸＰ１０〜１３に対してそれぞれＳＭＰ  Ｆｕｎｃｔｉｏｎが発行される（ステップＳ５）。
【００６９】
続いて、ＣＭ００により、例えばＥＸＰ２０〜２３，ＥＸＰ３０〜３３及びＥＸＰ４０〜４３の順でＳＭＰ  Ｆｕｎｃｔｉｏｎが発行され、全てのＥＸＰ６が認識されると、ＣＭ００におけるディスカバリプロセスが終了する（ステップＳ６）。
なお、監視部４０ｂによるＣＭ００から発行されるＳＭＰ  Ｆｕｎｃｔｉｏｎの監視によって、最下段のＥＸＰ４０〜４３に対するＳＭＰ  Ｆｕｎｃｔｉｏｎが終了したことが判断された場合に、ＥＸＰ４は、ＣＭ００によるディスカバリプロセスが終了したと判断する。
【００７０】
そして、ＥＸＰ４（通知制御部４０ｃ）により、全てのＣＭ３によるディスカバリプロセスが終了したか否かが判断され（ステップＳ７）、終了していない場合には（ステップＳ７のＮｏルート）、ＣＭ番号のＸＸが所定の順序に応じて次のＣＭ番号（例えば次に小さい番号であるＸＸ＝０１）に設定される（ステップＳ８）。この場合、通知部４０ａにより、キューイングしていたＢＣ（ＣＨＧ）がＣＭ０１に対して転送され、監視部４０ｂにより、ＣＭ０１へのＰｈｙ４４が監視状態とされ（ステップＳ４）、ステップＳ５の処理に移行する。なお、監視部４０ｂによるＣＭ００へのＰｈｙ４４の監視状態は解除される。
【００７１】
上述したステップＳ４〜Ｓ８の処理が全ＣＭ３に対して行なわれると、通知制御部４０ｃにより、ステップＳ７においてすべてのＣＭ３によるディスカバリプロセスが終了したと判断される（ステップＳ７のＹｅｓルート）。すなわち、全てのＣＭ３がＳＡＳの変化を認識したことになる。
なお、ステップＳ４〜Ｓ８の処理中にＥＸＰ４が他の新たなＢＣ（ＣＨＧ）を受領した場合には、上述の如く、リセット部４０ｄにより、キューイング中の先のＢＣ（ＣＨＧ）が破棄され、新たなＢＣ（ＣＨＧ）についてステップＳ２以降の処理が行なわれる。
【００７２】
上述のように、本実施形態に係るＥＸＰ４によれば、配下のＥＸＰ６からＢＣ（ＣＨＧ）を受信した際に、全ＣＭ３に同時にＢＣ（ＣＨＧ）を転送する動作に代えて、最小の番号のＣＭ３から１つずつ順番にＢＣ（ＣＨＧ）を転送することになる。より具体的には、ＥＸＰ４が配下のＥＸＰ６からのＢＣ（ＣＨＧ）を受信すると、ＥＸＰ４により、上位の全ＣＭ３に対して１ＣＭずつ順次ディスカバリプロセスが開始されるように、ＢＣ（ＣＨＧ）の送信が制御される。
【００７３】
従って、各ＣＭ３のディスカバリプロセスに時間差を設けることができ、各ＣＭ３のディスカバリプロセスが競合しなくなるため、ＥＸＰ４及び６に対するアクセス競合を軽減することができる。特に、任意のＥＸＰ６から送信されたＢＣ（ＣＨＧ）に対応して、各ＣＭ３が一斉にディスカバリプロセスを開始することを防止できるため、多数のＣＭ３からＥＸＰ４へのディスカバリプロセスの集中を回避することができる。これにより、ＥＸＰ４が輻輳状態となることを抑止することができ、性能ネックによる処理遅延やＣＭ３におけるマップ情報の獲得遅延、タイムアウト発生等を抑止することができる。特に、各ＥＸＰ４に対して複数のイニシエータが接続される、図１及び図５に例示する大規模ストレージシステムの構成において、顕著な効果を得ることができる。
【００７４】
また、本実施形態に係るＥＸＰ４によれば、監視部４０ｂにより、ＢＣ（ＣＨＧ）が転送されたＣＭ３からＥＸＰ４を介したＤＥ５へのアクセスが監視される。そして、監視部４０ｂによりアクセスが終了したことが検出された場合に、通知制御部４０ｃにより、ＢＣ（ＣＨＧ）の転送先が、転送が行なわれなかったＣＭ３のうちの一以上のＣＭ３に切り換えられる。このように、ＣＭ３のディスカバリプロセスによるアクセスが終了したときに次のＣＭ３にＢＣ（ＣＨＧ）が転送されるため、ＥＸＰ４は、ディスカバリプロセスの処理状態に追従して柔軟に次のＣＭ３のディスカバリプロセスの開始を制御することができ、効率的にリソースを利用することができる。
【００７５】
なお、本実施形態に係る監視部４０ｂによれば、ＢＣ（ＣＨＧ）が転送されたＣＭ３とＤＥ５との間のＳＭＰ  Ｆｕｎｃｔｉｏｎ（制御情報）、及び、レスポンス（応答情報）、の少なくとも一方が監視される。従って、ＥＸＰ４は、ＳＭＰ  Ｆｕｎｃｔｉｏｎ又はレスポンスの発行が終了した場合に、ＣＭ３によるディスカバリプロセスに係るアクセスが終了したことを確実に検出することができる。
【００７６】
また、本実施形態に係る通知制御部４０ｃによれば、通知部４０ａによるＢＣ（ＣＨＧ）の転送が全てのＣＭ３に対して行なわれるまで、転送先の切り換えが行なわれるため、全てのＣＭ３が、ディスカバリプロセスの処理遅延やタイムアウト発生等の影響を受けずに確実にマップ情報を獲得することができる。
さらに、本実施形態に係るリセット部４０ｄによれば、ＳＡＳデバイス７に係る状態変化の発生を示す他の通知、つまり他のＢＣ（ＣＨＧ）をＤＥ５から受けた場合、通知部４０ａ、監視部４０ｂ及び通知制御部４０ｃにおける先の通知に係る処理がリセットされる。また、通知部４０ａにより、リセット後に、複数のＣＭ３のうちの一部のＣＭ３に対して他のＢＣ（ＣＨＧ）が転送される。これにより、先のＢＣ（ＣＨＧ）に係る処理中に他のＢＣ（ＣＨＧ）が発行された場合には、ストレージ装置１の最新の状態に関する情報を取得するための当該他のＢＣ（ＣＨＧ）に係るディスカバリプロセスを、効率的に（速やかに）実行することができる。
【００７７】
〔２〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した実施形態において、通知部４０ａは、ＢＣ（ＣＨＧ）の転送先のＣＭ３として、複数のＣＭ３のうちの１つのＣＭ３を選択し、通知制御部４０ｃは、次の転送先のＣＭ３として、転送が行なわれていないＣＭ３のうちの１つのＣＭ３を選択していたが、これに限定されるものではない。
【００７８】
例えば、通知部４０ａ及び通知制御部４０ｃは、転送先として、２つ以上のＣＭ３を同時に選択し、通知部４０ａは、２つ以上のＣＭ３に対してＢＣ（ＣＨＧ）を転送しても良い。この場合においても、全てのＣＭ３に対して同時にＢＣ（ＣＨＧ）が転送されるよりも、ＥＸＰ４及び６に対するアクセス競合を軽減することができるため、上述の如き効果を得ることができる。
【００７９】
また、上述した実施形態において、通知制御部４０ｃは、監視部４０ｂによりＣＭ３と最終のＤＥ５（ＥＸＰ６）との間のアクセスが終了したことが検出された場合に、ＢＣ（ＣＨＧ）の転送先を切り換えていたが、これに限定されるものではない。
例えば、通知制御部４０ｃは、監視部４０ｂによる監視により、ＣＭ３と所定のＤＥ５（ＥＸＰ６）との間のアクセスが終了した場合に、転送先を切り換えて通知部４０ａにＢＣ（ＣＨＧ）を転送させても良い。すなわち、ＢＣ（ＣＨＧ）の転送が、先のＣＭ３によるディスカバリプロセスが終了する前に行なわれても良い。この場合、先にＢＣ（ＣＨＧ）が転送されたＣＭ３によるディスカバリプロセスと、後にＢＣ（ＣＨＧ）が転送されたＣＭ３によるディスカバリプロセスとは、一部の時間において並行して行なわれることになる。この場合においても、全てのＣＭ３に対して同時にＢＣ（ＣＨＧ）が転送されるよりも、ＥＸＰ４及び６に対するアクセス競合を軽減することができるため、上述の如き効果を得ることができる。
【００８０】
さらに、上述した実施形態において、ＢＣ（ＣＨＧ）がＥＸＰ６から発行される場合について説明したが、これに限定されるものではない。
例えば、ＣＥ２がＳＡＳデバイス７を備える記憶装置として機能し、ＥＸＰ４がＳＡＳデバイス７の状態変化の発生を検出した場合には、ＥＸＰ４がディスカバリプロセスを実行して配下のデバイスに関する状態情報を取得する。そして、通知部４０ａが、上述したようにＢＣ（ＣＨＧ）を発行し、図６等を用いて上述した処理を行なうことができる。
【００８１】
なお、図１に例示するＣＥ２内のＥＸＰ４及び各ＤＥ５内のＥＸＰ６は、それぞれ冗長化されているが、上述した実施形態においては、ＥＸＰ４について、図５に例示するように第１系列に着目して説明した。しかし、実際には、任意のＤＥ５（例えばＥＸＰ３０及び３４を備えるＤＥ５）において状態変化の発生が検出された場合、ＥＸＰ３０及び３４の両方からＢＣ（ＣＨＧ）が発行される。
【００８２】
例えばＥＸＰ３０及び３４からＢＣ（ＣＨＧ）が発行される場合、第１及び第２系列のそれぞれにおいて、上述したＢＣ（ＣＨＧ）の伝搬及びディスカバリプロセスが並行して行なわれる。この場合、ＥＸＰ００及び０１は、接続構成情報に基づいて、互いに異なる順序で、ＢＣ（ＣＨＧ）の転送先のＣＭ３を選択しても良い。これにより、１つのＣＭ３が同時に第１及び第２系列に対するディスカバリプロセスを行なうことを防止することができ、ＣＭ３の処理遅延等を抑止することができる。
【００８３】
なお、通知部４０ａ、監視部４０ｂ、通知制御部４０ｃ及びリセット部４０ｄとしての機能を実現するためのプログラム（処理プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしても良い。
【００８４】
通知部４０ａ、監視部４０ｂ、通知制御部４０ｃ及びリセット部４０ｄとしての機能を実現する際には、内部記憶装置（本実施形態では図示しないＲＯＭ又はメモリ４３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではプロセッサ４２）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしても良い。
【００８５】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。また、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ＥＸＰ４がコンピュータとしての機能を有しているのである。
【００８６】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
少なくとも一つの記憶部を備える記憶装置と前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置であって、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送する通知部と、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置へのアクセスを監視する監視部と、
前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える通知制御部と、を備えることを特徴とする、接続装置。
【００８７】
（付記２）
前記監視部は、前記通知が転送された制御部から前記記憶装置に対して発行される、前記状態変化の発生に応じて前記記憶装置を制御する制御情報、及び、前記記憶装置から前記制御部に対して発行される前記制御情報に対する応答情報、の少なくとも一方を監視し、監視する前記制御情報及び前記応答情報の少なくとも一方の発行が終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１記載の接続装置。
【００８８】
（付記３）
前記通知制御部は、前記通知部による前記通知の転送が全ての前記制御部に対して行なわれるまで、前記切り換えを行なうことを特徴とする、付記１又は付記２記載の接続装置。
（付記４）
前記記憶装置から通知された前記状態変化の発生を示す情報を保持する保持部をさらに備え、
前記通知部は、前記転送先の制御部に対して、前記保持部に保持された前記状態情報の発生を示す情報に基づく前記通知を転送し、
前記通知制御部は、前記通知部による前記通知の転送が全ての前記制御部に対して行なわれると、前記保持部に保持された前記状態情報の発生を示す情報を破棄することを特徴とする、付記３記載の接続装置。
【００８９】
（付記５）
前記接続装置には、それぞれが少なくとも一つの記憶部を備える複数の記憶装置が、直接接続、又は、前記直接接続される記憶装置に縦続接続され、
前記監視部は、前記通知が転送された制御部から前記複数の記憶装置のうちの最終の記憶装置へのアクセスが終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１〜４のいずれか１項記載の接続装置。
【００９０】
（付記６）
前記接続装置は、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記接続装置に接続された前記記憶装置から、前記記憶装置の状態情報を取得し、
前記通知部は、前記状態情報を全ての前記記憶装置から取得した場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送することを特徴とする、付記５記載の接続装置。
【００９１】
（付記７）
前記接続装置は、前記通知が転送された制御部から、前記記憶装置へのアクセスに先立って前記接続装置に対して接続情報の要求があった場合に、前記制御部に対して接続情報を送信し、
前記監視部は、前記送信した接続情報に基づいて、前記最終の記憶装置を検出することを特徴とする、付記５又は付記６記載の接続装置。
【００９２】
（付記８）
前記記憶部に係る状態変化の発生を示す他の通知を前記記憶装置から受けた場合、前記通知部、前記監視部及び前記通知制御部における先の通知に係る処理をリセットするリセット部をさらに備え、
前記通知部は、前記リセット部によるリセット後に、前記複数の制御部のうちの一部の制御部に対して前記他の通知を転送することを特徴とする、付記１〜７のいずれか１項記載の接続装置。
【００９３】
（付記９）
前記通知部は、予め設定された接続構成情報に基づいて、前記通知を転送する前記複数の制御部のうちの一部の制御部を選択し、
前記通知制御部は、前記接続構成情報に基づいて、所定の順序で前記転送先の一以上の制御部を選択することを特徴とする、付記１〜８のいずれか１項記載の接続装置。
【００９４】
（付記１０）
前記通知部は、前記通知を前記複数の制御部のうちの一の制御部に対して転送し、
前記通知制御部は、前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの他の制御部に切り換えることを特徴とする、付記１〜９のいずれか１項記載の接続装置。
【００９５】
（付記１１）
少なくとも一つの記憶部を備える記憶装置と、
前記記憶装置に対する制御を行なう複数の制御部と、
前記記憶装置と前記複数の制御部との間に介設される接続装置であって、前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送する通知部と、前記通知が転送された制御部から前記接続装置を介した前記記憶装置へのアクセスを監視する監視部と、前記監視部により前記アクセスが終了したことが検出された場合、前記通知部による前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える通知制御部と、を備える接続装置と、を備えることを特徴とする、ストレージ装置。
【００９６】
（付記１２）
前記監視部は、前記通知が転送された制御部から前記記憶装置に対して発行される、前記状態変化の発生に応じて前記記憶装置を制御する制御情報、及び、前記記憶装置から前記制御部に対して発行される前記制御情報に対する応答情報、の少なくとも一方を監視し、監視する前記制御情報及び前記応答情報の少なくとも一方の発行が終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１１記載のストレージ装置。
【００９７】
（付記１３）
前記通知制御部は、前記通知部による前記通知の転送が全ての前記制御部に対して行なわれるまで、前記切り換えを行なうことを特徴とする、付記１１又は付記１２記載のストレージ装置。
（付記１４）
前記接続装置には、それぞれが少なくとも一つの記憶部を備える複数の記憶装置が、直接接続、又は、前記直接接続される記憶装置に縦続接続され、
前記監視部は、前記通知が転送された制御部から前記複数の記憶装置のうちの最終の記憶装置へのアクセスが終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１１〜１３のいずれか１項記載のストレージ装置。
【００９８】
（付記１５）
少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置における処理方法であって、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置へのアクセスを監視し、
前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換えることを特徴とする、処理方法。
【００９９】
（付記１６）
前記アクセスの監視は、前記通知が転送された制御部から前記記憶装置に対して発行される、前記状態変化の発生に応じて前記記憶装置を制御する制御情報、及び、前記記憶装置から前記制御部に対して発行される前記制御情報に対する応答情報、の少なくとも一方を監視することにより行なわれ、
監視する前記制御情報及び前記応答情報の少なくとも一方の発行が終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１５記載の処理方法。
【０１００】
（付記１７）
前記通知の転送先は、前記通知の転送が全ての前記制御部に対して行なわれるまで、切り換えられることを特徴とする、付記１５又は付記１６記載の処理方法。
（付記１８）
前記接続装置には、それぞれが少なくとも一つの記憶部を備える複数の記憶装置が、直接接続、又は、前記直接接続される記憶装置に縦続接続され、
前記通知が転送された制御部から前記複数の記憶装置のうちの最終の記憶装置へのアクセスが終了した場合、前記アクセスが終了したことを検出することを特徴とする、付記１５〜１７のいずれか１項記載の処理方法。
【０１０１】
（付記１９）
前記記憶部に係る状態変化の発生を示す他の通知を前記記憶装置から受けた場合、先の通知に係る前記通知の転送、前記アクセスの監視及び前記通知の転送先の切り換えの処理をリセットし、
リセット後に、前記複数の制御部のうちの一部の制御部に対して前記他の通知を転送することを特徴とする、付記１５〜１８のいずれか１項記載の処理方法。
【０１０２】
（付記２０）
少なくとも一つの記憶部を備える記憶装置と、前記記憶装置に対する制御を行なう複数の制御部との間に介設される接続装置としてのコンピュータに、
前記記憶部に係る状態変化の発生を示す通知を前記記憶装置から受けた場合、前記複数の制御部のうちの一部の制御部に対して前記通知を転送し、
前記通知が転送された制御部から前記接続装置を介した前記記憶装置へのアクセスを監視し、
前記監視により前記アクセスが終了したことが検出された場合、前記通知の転送先を、前記通知の転送が行なわれなかった制御部のうちの一以上の制御部に切り換える、
処理を実行させることを特徴とする、処理プログラム。
【符号の説明】
【０１０３】
１，１００    ストレージ装置
２，２，２００    コントローラエンクロージャ
３    コントローラモジュール（制御部）
３１    ホストアダプタ
３２，４２    プロセッサ
３３    メモリ（保持部）
３４    ＳＡＳ  ＩＯコントローラ
３００    コントローラモジュール
４    エクスパンダ（接続装置）
４０ａ    通知部
４０ｂ    監視部
４０ｃ    通知制御部
４０ｄ    リセット部
４１    エクスパンダチップ
４２ａ    ＳＭＰ論理デバイス
４２ｂ    ＳＳＰ論理デバイス
４３    メモリ
４４    Ｐｈｙ（ポート）
４５ａ    シリアルポート
４５ｂ    イーサポート
４６    電源
４７    ＰＬＤ
４８    スイッチ
５    ドライブエンクロージャ（記憶装置）
５００    ドライブエンクロージャ
６，４００，６００    エクスパンダ
７    ＳＡＳドライブ（記憶部）
７００    ＳＡＳドライブ
８，８００    ホスト
【図１】
0005923976.tif 000002
【図２】
0005923976.tif 000003
【図３】
0005923976.tif 000004
【図４】
0005923976.tif 000005
【図５】
0005923976.tif 000006
【図６】
0005923976.tif 000007
【図７】
0005923976.tif 000008