(57)【要約】【課題】エクスパンダとコントローラとの間で効率よくデータ転送を行うことが可能なストレージ装置の提供を課題とする。【解決手段】本発明のストレージ装置は、ストレージ装置の環境を監視する環境監視ユニットと、ストレージ装置の環境に応じた処理を実行するコントローラユニットと、環境監視ユニットから取得した環境情報を記憶し、コントローラからの該環境情報の取得依頼があると記憶した環境情報を該コントローラに送信する、コントローラと環境監視ユニットとの間を中継する中継器ユニットとを有する。【選択図】図１
2008158799.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数の記憶装置を有するストレージ装置であって、
該ストレージ装置の状態を検出する検出部と、
該データを該記憶装置に格納するあるいは該データを該記憶装置から読出する制御を行い、かつ、該検出部により検出された状態に応じた処理を実行するコントローラと、
該複数の記憶装置と該コントローラとの間で該データを中継し、かつ、該コントローラからの該ストレージ装置の状態の情報の取得依頼があると該検出部から取得した該ストレージ装置の状態の情報を該コントローラに送信することにより該コントローラと該検出部とを中継する該中継器と、
を有することを特徴とするストレージ装置。
【請求項２】
該中継器は該ストレージ装置の状態に変化があった旨の情報を該コントローラに送っていない場合に、該ストレージ装置の状態に変化があった旨の情報を該コントローラに送信することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
該中継器は該検出部から取得した該ストレージ装置の状態の情報に変化があると判断した場合に、該ストレージ装置の状態に変化があった旨の情報を該コントローラに送信することを特徴とする請求項１に記載のストレージ装置。
【請求項４】
該中継器は該コントローラに該ストレージ装置の状態に変化があった旨の情報を送ったか否かを示すフラグを有することを特徴とする請求項２に記載のストレージ装置。
【請求項５】
該ストレージ装置のコントローラ及び中継器はＳＡＳプロトコルで接続されることを特徴とする請求項１に記載のストレージ装置。
【請求項６】
データを記憶する複数の記憶装置を有するストレージ装置の状態を検出する検出部、該ストレージ装置の状態に応じた処理を実行するコントローラ、および、該検出部と該コントローラとの間を中継する中継器とからなるストレージ装置の制御方法であって、該中継器が、
該検出部からの該ストレージ装置の状態の情報を取得し、
該コントローラから該状態の情報の取得依頼があると、該ストレージ装置の状態の情報を該コントローラに送信する、
ことを特徴とするストレージ装置の制御方法。
【請求項７】
データを記憶する複数の記憶装置を有するストレージ装置の状態を検出する検出部、該ストレージ装置の状態に応じた処理を実行し、かつ、該データを該記憶装置に格納するあるいは該データを該記憶装置から読出す制御を実行するコントローラ、および、該複数の記憶装置と該コントローラとの間で該データを中継し、かつ、該検出部と該コントローラとの間を中継する中継器とからなるストレージ装置を制御するプログラムであって、中継器が、
該検出部からの該ストレージ装置の状態の情報を取得し、
該コントローラから該ストレージ装置の状態の情報の取得依頼があると、該ストレージ装置の状態の情報を該コントローラに送信する、
ことを特徴とするストレージ装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関する。特にストレージ装置のコントローラと各ユニット間を中継する技術に関する。
【背景技術】
【０００２】
ストレージ装置は、ハードディスクドライブ（ＨＤＤ）等の記憶装置にデータを記憶し、あるいは記憶装置からデータを読み出す装置である。ストレージ装置は、ストレージ装置の全体の処理を制御するコントローラユニットとデータが記憶される記憶ユニットとストレージ装置の環境を保つ電源供給ユニット、ファンユニット、温度計ユニット等を有する。
【０００３】
ストレージ装置のインターフェースのプロトコルの一つにＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）がある。ＳＡＳではストレージ装置のコントローラと多数の各ユニットとの間をエクスパンダユニットが中継する構成となる。エクスパンダユニットは、記憶ユニット、ＰＳＵ（電源供給ユニット）、ファンユニット、温度計ユニットに接続する。エクスパンダは、ＰＳＵ、ファンユニットおよび温度計ユニットから所定時間毎に環境情報を取得する。エクスパンダは環境情報の変化を検知すると、その旨をコントローラに送信する。コントローラはＳＡＳエクスパンダからの環境情報に異常変化があった旨を受け取る度に該当するユニットの状態を確認する処理を行う。例えば、ユニットのコネクタに接触不良があった場合は、ストレージ装置の振動に応じて異常状態と正常状態とを繰り返す恐れがある。
【０００４】
環境情報の変化が頻繁に発生する場合、エクスパンダは発生する度にコントローラに対して変化があった旨を送信する。コントローラとエクスパンダとの間の環境情報に関するデータの授受と各記憶ユニットとコントローラとの間のストレージ装置が記憶あるいは読み出すデータ授受とは同じ伝送線によってデータの転送を行う。そのため、コントローラとエクスパンダとの間で環境情報に関するデータの授受を多く行うことは、コントローラとエクスパンダとの間のストレージ装置が記憶あるいは読み出すデータの伝送処理の妨げとなる。
【０００５】
従来技術として下記の文献がある。
【特許文献１】特表平９−５０８９９０号公報
【特許文献２】特開平９−２５９０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上記のような問題点を解決するために、エクスパンダとコントローラとの間で効率よくデータ転送を行うことが可能なストレージ装置の提供を課題とする。
【課題を解決するための手段】
【０００７】
本発明を解決するための手段を以下に述べる。
【０００８】
第一の手段によるストレージ装置は、ストレージ装置の状態を検出する検出部と、検出した状態に応じた処理を実行するコントローラと、検出部から取得した状態の情報を記憶し、コントローラからの状態の情報の取得依頼があると状態の情報をコントローラに送信する、コントローラと該検出部とを中継する中継器とを有する。
【０００９】
第二の手段によるストレージ装置の中継器はストレージ装置の状態に変化があった旨の情報をコントローラに送っていない場合に、ストレージ装置の状態に変化があった旨の情報をコントローラに送信する。
【００１０】
第三の手段によるストレージ装置の中継器は検出部から取得したストレージ装置の状態の情報に変化があると判断した場合に、ストレージ装置の状態に変化があった旨の情報をコントローラに送信する。
【００１１】
第四の手段によるストレージ装置の中継器はコントローラにストレージ装置の状態に変化があった旨の情報を送ったか否かを示すフラグを有する。
【００１２】
第五の手段によるストレージ装置は第一の手段のストレージ装置のコントローラ及び中継器がＳＡＳプロトコルで接続される。
【発明の効果】
【００１３】
本発明によって、エクスパンダとコントローラとの間の環境情報についてのデータの授受の回数が少なくなるため、エクスパンダとコントローラとの間の記憶ユニットに対するデータの伝送量を確保することが可能となる結果、エクスパンダとコントローラとの間で効率よくデータ転送を行うことが可能なストレージ装置の提供が可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、本実施例のストレージシステムの構成図である。本実施例のストレージシステムは、ホストコンピュータ２（Ｈｏｓｔ  Ｃｏｍｐｕｔｅｒ）、ホストコンピュータ３（Ｈｏｓｔ  Ｃｏｍｐｕｔｅｒ）とストレージ装置１（Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ）とから構成される。
【００１５】
ホストコンピュータ２およびホストコンピュータ３は、ネットワーク全体を管理するコンピュータである。計算処理やネットワークの管理、制御処理などを行う。ホストコンピュータ２およびホストコンピュータ３とストレージ装置１との間はＳＡＳ、ｉＳＣＳＩ、あるいは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等のプロトコルに従ってデータの転送を行う。
【００１６】
ストレージ装置１は、ホストコンピュータ２およびホストコンピュータ３からの命令に対応してデータを格納するあるいは読み出す装置である。本実施例のストレージ装置１内は、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）のプロトコルを使用する。ＳＡＳプロトコルはコンピュータ本体と周辺機器の接続方法の取り決めであるＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）プロトコルの一種であり、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｃｅｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）プロトコルのインターフェースを採用してＳＣＳＩのシリアル通信を可能にしたプロトコルである。ＳＡＴＡは、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｃｅｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）プロトコルで採用されていたパラレル転送方式を、シリアル転送方式に変更した仕様である。ＡＴＡプロトコルは、コンピュータとハードディスクとを接続するＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）プロトコルの正式なプロトコルの一つである。
【００１７】
ストレージ装置１は、ホストコンピュータ２およびホストコンピュータ３に対してデータの授受を常に行うことできることが重要である。したがって、ストレージシステムはストレージ装置１内のユニットが故障することによりストレージ装置１全体の機能が停止することを避ける必要がある。そこで、ストレージ装置１は冗長に構成されることが多い。冗長に構成した場合、ストレージ装置１は同じ機能を有する複数のユニットを有することとなる。図１のストレージ装置１では、ホストアダプタ４とホストアダプタ５、コントローラ６とコントローラ７、エクスパンダ８とエクスパンダ９、ＰＳＵ１４１とＰＳＵ１４２，ＦＡＮ１５１とＦＡＮ１５２およびＴＥＭＰ１６１とＴＥＭＰ１６２の各ユニットが冗長な構成である。
【００１８】
ストレージ装置１はホストアダプタユニット４（Ｈｏｓｔ  Ａｄａｐｔｅｒ  Ｕｎｉｔ）とホストアダプタユニット５（Ｈｏｓｔ  Ａｄａｐｔｅｒ  Ｕｎｉｔ）、コントローラユニット６（Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）とコントローラユニット７（Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）、エクスパンダユニット８（Ｅｘｐａｎｄｅｒ  Ｕｎｉｔ）とエクスパンダユニット９（Ｅｘｐａｎｄｅｒ  Ｕｎｉｔ）、記憶（Ｄｉｓｋ）ユニット１０乃至記憶（Ｄｉｓｋ）ユニット１３、電源供給ユニット１４１（ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ））と電源供給ユニット１４２（ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ））、ＦＡＮユニット１５１とＦＡＮユニット１５２、ＴＥＭＰユニット１６１とＴＥＭＰユニット１６２等で構成される。各ユニットはストレージ装置１の筐体内に電気的に接続することにより、それぞれのユニットとしての機能を実行する。
【００１９】
ストレージ装置１内のホストアダプタ４およびホストアダプタ５は、ホストコンピュータ２、ホストコンピュータ３と接続するためのインターフェースである。ホストコンピュータ２、ホストコンピュータ３およびストレージ装置１内の各ユニットは冗長構成であるため、それぞれのホストコンピュータ２、ホストコンピュータ３はそれぞれのホストアダプタ４、ホストアダプタ５に接続する。ホストアダプタ４、ホストアダプタ５はそれぞれのコントローラユニット６、コントローラユニット７とＳＡＳ、ｉＳＣＳＩ、あるいはＦＣプロトコルによって接続する。
【００２０】
ストレージ装置１内のコントローラユニット６、コントローラユニット７は、ストレージ装置１の全体の状態を管理し、また、ストレージ装置１全体の動作を制御する。具体的には、ホストコンピュータ２、ホストコンピュータ３から送信されたデータをストレージ装置１内の各記憶ユニットに格納する処理、あるいはホストコンピュータ２、ホストコンピュータ３からのデータの要求に関する命令に基づき各記憶ユニットに格納されたデータを読み出し、ホストコンピュータ２、ホストコンピュータ３に送信する処理、ストレージ装置１のＰＳＵ１４１およびＰＳＵ１４２の状態を監視する処理、ストレージ装置１のＦＡＮ１５１およびＦＡＮ１５２の状態を監視する処理、ストレージ装置１内のＴＥＭＰ１６１およびＴＥＭＰ１６２の状態を監視する処理等を行う。
【００２１】
ストレージ装置１内のエクスパンダ８およびエクスパンダ９は、ストレージ装置１内のコントローラ６およびコントローラ７と各ユニットとを中継する中継器である。エクスパンダ８およびエクスパンダ９は、コントローラ６およびコントローラ７が管理することが可能なドライブの数を増設させるＳＡＳプロトコルによるストレージ装置１内のハードウェアである。エクスパンダ８およびエクスパンダ９は多数の記憶ユニットと接続する。エクスパンダ８およびエクスパンダ９はＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２と接続する。
【００２２】
環境情報を取得する対象のユニットを監視対象ユニットとする。本実施例では、環境情報を取得する記憶ユニット１０乃至１３、ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２を監視対象ユニットとする。環境情報とは、各ユニットの現在の環境の状態をデータとして示したものである。
【００２３】
記憶ユニット１０乃至１３はデータを格納するユニットである。本実施例では説明の便宜のため、記憶ユニット１０乃至１３とする。エクスパンダ８およびエクスパンダ９に接続する記憶ユニット、あるいはコントローラ６およびコントローラ７に接続する記憶ユニットはストレージ装置１内に他にも存在する。記憶ユニット１０乃至１３はホストコンピュータ２およびホストコンピュータ３からストレージ装置１に送られたデータを格納する。また、ホストコンピュータ２およびホストコンピュータ３からのデータの読出し命令に基づき該当するデータを送信する。記憶ユニット１０乃至１３は例えばハードディスク装置である。ホストコンピュータ２およびホストコンピュータ３からの命令はストレージ装置１のホストアダプタ４およびホストアダプタ５を経由しストレージ装置１のコントローラ６およびコントローラ７に送られる。コントローラ６およびコントローラ７はエクスパンダ８、エクスパンダ９を経由して対象となる記憶ユニットに命令を転送する。また、記憶ユニット１０乃至１３自身が、故障か否かの情報を環境情報として出力する機能を有する場合もある。
【００２４】
ＰＳＵ１４１およびＰＳＵ１４２は電源供給ユニットであり、外部電源からストレージ装置１内の各ユニットに電力を供給するためのユニットである。ＰＳＵ１４は、電圧値を示す情報を環境情報として出力する機能を有する。
【００２５】
ＦＡＮ１５１およびＦＡＮ１５２は、ストレージ装置１内の空気を換気し、ストレージ装置１内の各ユニットを冷却するためのユニットである。ストレージ装置内で発生する熱は、各ユニットの処理能力の低下、あるいは各ユニットの異常な動作等の原因となるためである。また、ＦＡＮ１５１およびＦＡＮ１５２はＦＡＮ１５１、ＦＡＮ１５２のＦＡＮの回転数を示す情報を環境情報として出力する機能を有する。
【００２６】
ＴＥＭＰ１６１およびＴＥＭＰ１６２は、ストレージ装置１内の温度を検出するユニットである。また、ＴＥＭＰ１６１およびＴＥＭＰ１６２はＴＥＭＰ１６１およびＴＥＭＰ１６２の温度を示す情報を環境情報として出力する機能を有する。
【００２７】
コントローラ６とコントローラ７はＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）の規格により接続する。ＰＣＩ  Ｅｘｐｒｅｓｓは、コンピュータ内部の各ユニット間を結ぶデータバスの規格であるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスの規格に代わるシリアル転送インターフェースである。
【００２８】
エクスパンダ８とエクスパンダ９との間はＳＡＳプロトコルにより接続される。また、コントローラ６とエクスパンダ８およびコントローラ７とエクスパンダ９とはＳＡＳプロトコルによって接続する。コントローラ６はエクスパンダ８と接続するためのポートを有する。コントローラ７はエクスパンダ９と接続するためのポートを有する。ポートはＰｈｙによって構成される。ＳＡＳプロトコルを用いたユニット間の物理的なリンクは、ＰｈｙからＰｈｙに行われる。Ｐｈｙは各ユニットのデータの送受信のインターフェースである。したがって各ユニットのポートは１つ以上のＰｈｙによって構成される。ユニットのナローポートは１つのＰｈｙで構成される。ユニットのワイドポートは一般的に４つのＰｈｙで構成される。各ユニットは固有のＳＡＳアドレスを有する。ＳＡＳアドレスはユニットを特定するための識別子である。同一のポート内の全てのＰｈｙはポートの接続先のユニットのＳＡＳアドレスを共有する。ＳＡＳプロトコルで接続する各ユニットは、各ユニットが有するＰｈｙと各ユニットが有するＰｈｙの接続先のユニットとの接続の関係を記憶する。しかし、ユニットが有するＰｈｙの内、サブトラクティブ（Ｓｕｂｔｒａｃｔｉｖｅ）の設定としたＰｈｙについては、Ｐｈｙに接続する先のユニットのＳＡＳアドレスを管理しない。エクスパンダ８とエクスパンダ９との間はＳＡＳプロトコルによって接続する。エクスパンダ９に接続するエクスパンダ８のＰｈｙおよびエクスパンダ８に接続するエクスパンダ９のＰｈｙはサブトラクティブ（Ｓｕｂｔｒａｃｔｉｖｅ）とする。コントローラ６とエクスパンダ８、およびコントローラ７とエクスパンダ９とは上記のワイドポートによって、記憶ユニット１０乃至１３に関するデータの転送を行うとともに、記憶ユニット１０乃至１３、ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２およびＴＥＭＰ１６１、ＴＥＭＰ１６２の環境に関する情報の転送を行う。
【００２９】
エクスパンダ８とＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮユニット１５１、ＦＡＮユニット１５２及びＴＥＭＰユニット１６１、ＴＥＭＰユニット１６２との間、およびエクスパンダ９とＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮユニット１５１、ＦＡＮユニット１５２及びＴＥＭＰユニット１６１、ＴＥＭＰユニット１６２との間はＩ２Ｃ（Ｉｎｔｅｒ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）通信により接続される。Ｉ２ＣはＳＤＡ（ｓｅｒｉａｌ  ｄａｔａ）とＳＣＬ（ｓｅｒｉａｌ  ｃｌｏｃｋ）の２本の信号線だけをバスとして共有して通信を行う方式である。一般的なＩ２Ｃ通信による接続ではマスターが通信の主導権を有し、各スレーブはマスターに対する通信要求に応答する。本実施例はエクスパンダ８およびエクスパンダ９をマスターとして、ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２をスレーブとして接続する。
【００３０】
なお、エクスパンダ８およびエクスパンダ９はストレージ装置１内で扱う記憶ユニットの数を増設するために複数のエクスパンダを接続することも可能である。この時の接続はＳＡＳプロトコルによって接続する。当該複数のエクスパンダは冗長構成となる。この場合の複数のエクスパンダの間はＩ２Ｃにより接続する。詳細は図９にて説明する。
【００３１】
また、各記憶ユニット１０乃至１３は多重のポートを有する。そしてそれぞれの記憶ユニットのポートはそれぞれの冗長構成となるエクスパンダ８、エクスパンダ９に接続する。
【００３２】
次に、エクスパンダの構成について説明する。図２は、エクスパンダ８の構成図である。エクスパンダ８とエクスパンダ９の構成は同様であるため、ここではエクスパンダ８について説明する。エクスパンダ８はＣＰＵ８１、ＲＡＭ８２、ＲＯＭ８３および複数のポートを有する。
【００３３】
ＣＰＵ８１は、エクスパンダ８の機能全体を管理する。ＲＡＭ８２は、ＣＰＵ８１の処理結果を格納する記憶領域である。また、ＲＡＭ８２は図４で説明する環境情報ＤＢ８４も記憶する。また、ＲＡＭ８２は環境情報ＤＢ８４に格納された環境情報に変化があった旨を示す情報をコントローラ６に既に送ったか否かを示すフラグＡ（Ｆｌａｇ）情報８５１を記憶する。また、エクスパンダ８が一回のポーリング内で監視対象ユニットの状態の変化を検出したか否かを示すフラグＢ（ＦｌａｇＢ）情報８５２を記憶する。ＲＯＭ８３は、ＣＰＵ８１をエクスパンダ８として機能させるためのファームウェアが格納された記憶領域である。ＣＰＵ８１、ＲＡＭ８２、ＲＯＭ８３は内部バスにより接続され、相互にデータあるいは命令のやり取りを行う。ＣＰＵ８１は、ＲＯＭ８３に格納されたファームウェアをＲＡＭ８２に展開する。ＣＰＵ８１は、エクスパンダ８を図５乃至図７で示すフローチャートの処理を実行する実行手段として機能する。
【００３４】
エクスパンダ８のポートは、ストレージ装置１内の各ユニット間を接続する端子となる部分である。ワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）８７はコントローラ６に接続する。ワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）８８はＳｕｂｔｒａｃｔｉｖｅの設定でエクスパンダ９に接続する。ナローポート（Ｎａｒｒｏｗ  Ｐｏｒｔ）９０は各記憶ユニット１０乃至１３に接続する。Ｉ２Ｃポート９１はスイッチ（Ｓｗｉｔｃｈ）９５を介してＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２およびＴＥＭＰ１６１、ＴＥＭＰ１６２に接続する。コントローラ６あるいはエクスパンダ９などのデータ転送の信頼性を確保しなければならないユニットに対して接続する場合は、データ転送の安全性を高めるため、ワイドポートによって接続する。
【００３５】
ＰＬＤ８６（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）は、設計者がプログラムを作成することによって設計された論理回路を形成することが可能な論理回路ＩＣである。本実施例のＰＬＤ８６は監視対象ユニット（ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２）のレジスタに書き込むためのパラメータを監視対象ユニットに送る処理を行う。
【００３６】
エクスパンダ８とＰＬＤ８６との間はローカルバス（ＬｏｃａｌＢｕｓ）により接続される。エクスパンダ８はＰＬＤ８６に、ＰＬＤ８６のレジスタのＡｄｄｒｅｓｓ、書込むデータ、および、ＰＬＤ８６内のレジスタにデータを書き込むのかＰＬＤ８６内のレジスタのデータを読み出すのかを区分する制御情報を送信する。ＰＬＤ８６と監視対象ユニット（ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２）の端子に接続する。ＰＬＤ８６はＰＬＤ８６内のレジスタにデータが書き込まれると、該当する監視対象ユニットに対してＰＬＤ８６内のレジスタに書き込まれたデータを送る。
【００３７】
次に、コントローラ６およびコントローラ７の構成について説明する。図３は、コントローラ６の構成図である。コントローラ６とコントローラ７の構成は同様であるため、ここではコントローラ６について説明する。コントローラ６はＣＰＵ６１、ＲＡＭ６２、ＲＯＭ６３および複数のポートを有する。ＣＰＵ６１は、コントローラ６の機能全体を管理する。ＲＡＭ６２は、ＣＰＵ６１の処理結果を格納する記憶領域である。ＲＯＭ６３は、ＣＰＵ６１をコントローラとして機能させるためのファームウェアが格納された記憶領域である。ＣＰＵ６１、ＲＡＭ６２、ＲＯＭ６３は内部バスにより接続され、相互にデータあるいは命令のやり取りを行う。ＣＰＵ６１は、ＲＯＭ６３に格納されたファームウェアをＲＡＭ６２に展開する。ＣＰＵ６１は、コントローラ６を図５乃至図７で示すフローチャートの処理を実行する実行手段として機能する。
【００３８】
コントローラ６のポートは、ストレージ装置１内の各ユニット間を接続する端子となる部分である。ポートはＰｈｙによって構成される。ワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）６４はホストアダプタ４に接続する。ワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）６５はエクスパンダ８に接続する。
ＰＣＩ  Ｅｘｐｒｅｓｓポート６７はＰＣＩ  Ｅｘｐｒｅｓｓの規格によってコントローラ７に接続する。
【００３９】
次に、ＰＳＵ１４１およびＰＳＵ１４２の構成について説明する。ＰＳＵ１４１およびＰＳＵ１４２は、Ｉ２Ｃによりスイッチ９５からの環境情報の取得依頼に対応した値を出力するポートを有する。
【００４０】
次に、ＦＡＮ１５１およびＦＡＮ１５２の構成について説明する。ＦＡＮ１５１およびＦＡＮ１５２は、ＦＡＮの回転数を設定するＲＡＭ、設定値に応じて回転するＦＡＮ、Ｉ２Ｃによりスイッチ９５からの環境情報の取得依頼に対応した値を出力するポートを有する。
【００４１】
次に、ＴＥＭＰ１６１およびＴＥＭＰ１６２の構成について説明する。ＴＥＭＰ１６１およびＴＥＭＰ１６２は、ストレージ装置１内の温度を取得する温度センサ、Ｉ２Ｃによりスイッチ９５からの環境情報の取得依頼に対応した値を出力するポートを有する。
【００４２】
図４は、エクスパンダ８が有する環境情報ＤＢ８４の構成図である。エクスパンダ８とエクスパンダ９の構成は同じであるため、ここではエクスパンダ８が有する環境情報ＤＢ８４について説明する。環境情報ＤＢ８４はストレージ装置１内の環境情報を取得する対象のユニットから取得した環境情報８４２をユニット８４１毎に対応付けて格納するデータベースである。エクスパンダ８はストレージ装置１内の各監視対象ユニットからの最新の環境情報を環境情報変化ＤＢ８４に格納する。
【００４３】
本実施例では、最新の環境情報のみを格納する構成とする。環境状態変化ＤＢ８４のデータがエクスパンダ８のＲＡＭ８２の多くの領域を占めることを防ぐためである。したがって、エクスパンダ８が以前に取得した環境情報に変化があったとしても、最新の環境情報が予め設定した範囲内である場合は、コントローラ６は監視対象ユニットの状態変化を検知しない。一方、エクスパンダ８が環境情報ＤＢ８４を格納することができる領域を多く有する時、あるいはコントローラ６あるいはコントローラ７が環境情報に変化があったユニットを確実に知りたい場合は環境情報ＤＢ８４を環境情報の履歴を格納するデータベースとすることも可能である。
【００４４】
図５は、エクスパンダ８が各ユニットの環境情報を取得するフローチャートである。エクスパンダ８とエクスパンダ９の構成は同じであるため、ここではエクスパンダ８が行う処理について説明する。エクスパンダ８は監視対象ユニット（ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２）に対して環境情報の取得依頼を送信する（Ｓ０１）。エクスパンダ８が各監視対象ユニットに対して送信する取得依頼は例えば定期的に行う。各監視対象ユニット（ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２）は、スイッチ９５を経由してエクスパンダ８からの環境情報の取得依頼を受け取ると各監視対象ユニットのレジスタに格納された現在の環境情報の値をポートに出力する。
【００４５】
監視対象ユニットが環境情報を送信することが可能な記憶ユニット１０乃至１３である場合は、各記憶ユニット１０乃至１３は、ＳＣＳＩプロトコルを利用してエクスパンダ８およびエクスパンダ９に環境情報を通知する。
【００４６】
エクスパンダ８は各監視対象ユニットが出力した環境情報を取得する（Ｓ０２）。エクスパンダ８は取得した各監視対象ユニットの環境情報を環境情報ＤＢ８４に格納する（Ｓ０３）。
【００４７】
エクスパンダ８は、各監視対象ユニットから取得した環境情報からユニットの状態の変化を検知する（Ｓ０４）。環境情報に基づくユニットの状態の変化は、例えば、取得した環境情報が予め指定した値の範囲内に含まれるか否かにより判断する。エクスパンダ８は各監視対象ユニットから取得した環境情報が予め指定した値の範囲外になると環境情報にユニットの状態に変化があったと判断する。環境情報の変化があると判断すると、エクスパンダ８は監視対象ユニットの状態に変化があるとする。また、エクスパンダ８は、予め定めた時間を経過しても応答が無い監視対象ユニットについて状態に変化があったと判断する。この判断は、エクスパンダ８と監視対象ユニットとの間で物理リンクが切れている可能性があるためである。
【００４８】
エクスパンダ８は取得した環境情報に変化がないと判断した場合（Ｓ０５：Ｎｏ）、エクスパンダ８は本処理を終了する。エクスパンダ８は、例えば、次回の定期的なタイミングになると、再度Ｓ０１からの処理を行う。一方、エクスパンダ８は取得した環境監視ユニットの状態の変化を検知した場合（Ｓ０５：Ｙｅｓ）、エクスパンダ８は変化があった旨の通知をコントローラ６に対して必要か否かを判断する（Ｓ０６）。例えば、エクスパンダ８が監視対象ユニットのＴＥＭＰ１６１から取得した温度情報が予め指定した温度の範囲よりも高くなった場合、エクスパンダ８はＦＡＮ１５１に対してファンの回転数を増加させる命令を送信することが可能である。あるいは、エクスパンダ８が監視対象ユニットのＴＥＭＰ１６１から取得した温度情報が予め指定した温度の範囲よりも低くなった場合、エクスパンダはＦＡＮ１５１に対してファンの回転数を低下またはファンの回転を停止させる命令を送信することが可能である。以上の場合は監視対象ユニットの深刻な異常ではないため、エクスパンダ８はコントローラ６に通知する必要はない。そこで、予め指定した環境情報の変化についてはコントローラ６に通知しない構成とすることによって、コントローラ６とエクスパンダ８との間で環境情報に関するデータの伝達を減少させることが可能なストレージ装置１を提供することが可能となる。
【００４９】
エクスパンダ８は、コントローラ６に対して通知が必要ではないと判断した場合（Ｓ０７：Ｎｏ）は、処理を終了する。このとき、エクスパンダ８は環境情報に変化があったユニットに対して変化に応じた措置を実行する。例えば、ストレージ装置１内のＴＥＭＰ１６１から取得した温度情報に対応するＦＡＮ１５１のファンの回転数の制御である。この場合エクスパンダ８は、取得した環境情報と環境情報の値に応じた監視対象ユニットに対する制御パラメータとを関連づけて記憶するデータベースを予め有する。
【００５０】
エクスパンダ８は、コントローラ６に対して通知が必要であると判断した場合（Ｓ０７：Ｙｅｓ）は、エクスパンダ８のＲＡＭ８２に格納されているフラグ８５１のオンあるいはオフを確認する（Ｓ０８）。フラグ８５１は、コントローラ６に環境情報に変化があった旨を送信する必要の有無を判断するものである。
【００５１】
フラグ８５１がオンである場合（Ｓ０９：Ｙｅｓ）、エクスパンダ８は既にコントローラ６に対して環境情報に変化があった旨の情報を送信している状態である。エクスパンダ８は環境情報に変化があった旨を通知することなく処理を終了する。フラグ８５１がオンである状態でエクスパンダ８がコントローラ６に環境情報に変化があった旨を通知することなく処理を終了するのは、コントローラ６は先に送信された環境情報に変化があった旨の通知によりエクスパンダ８の環境情報変化ＤＢ８４に対してアクセスするためである。この結果、エクスパンダ８とコントローラ６との間の環境情報に関する通信の回数は抑えられる。
【００５２】
一方、フラグ８５１がオフである場合（Ｓ０９：Ｎｏ）、エクスパンダ８は環境情報について変化があった旨の情報をコントローラ６に対して送信していない状態である。したがって、エクスパンダ８はフラグ８５１をオンに設定し（Ｓ１０）、エクスパンダ８はコントローラ６に対して環境情報に変化があった旨の情報を通知する（Ｓ１１）。エクスパンダ８がＳ１０でコントローラ６に対して環境情報に変化があった旨の情報を転送する情報をＢｒｏａｄＣａｓｔという。ＢｒｏａｄＣａｓｔはコントローラ６に対するコマンドではなくＰｒｉｍｉｔｉｖｅである。Ｐｒｉｍｉｔｉｖｅはパラメータが入っていない空のデータをいう。具体的には、Ｐｒｉｍｉｔｉｖｅとは４バイトのフレームで構成される。Ｐｒｉｍｉｔｉｖｅの最初の１バイトはＳＡＳ、ＳＡＴＡなどの規格により値が決まっており、残りの３バイトで各イベントを識別する。環境情報に変化があった旨を通知するエクスパンダはＳＡＳプロトコルで接続された各エクスパンダおよびコントローラにＢｒｏａｄＣａｓｔを送信する。ただし、各エクスパンダはサブトラクティブに設定されたＰｈｙから受信したＢｒｏａｄＣａｓｔをその先のユニットに対してはＢｒｏａｄＣａｓｔを送信しない。本実施例ではエクスパンダ８とエクスパンダ９とはサブトラクティブのＰｈｙで接続されている。エクスパンダ８からＢｒｏａｄＣａｓｔを受信したエクスパンダ９は他のユニットにＢｒｏａｄＣａｓｔを送信しない。また、エクスパンダ９からＢｒｏａｄＣａｓｔを受信したエクスパンダ８は他のユニットにＢｒｏａｄＣａｓｔ送信しない。
【００５３】
図６は、エクスパンダ８が環境情報に変化があった旨を示す情報をコントローラ６にＢｒｏａｄＣａｓｔした後のコントローラ６が実行する処理についてのフローチャートである。コントローラ６は、エクスパンダ８からの環境情報に変化があった旨の情報を受け取ると環境情報変化ＤＢ８４に対してアクセスする。コントローラ６はエクスパンダ８の環境情報変化ＤＢ８４を取得する（Ｓ２１）。コントローラ６は取得した環境情報の変化の大きさを示す値に応じた処理を実行する（Ｓ２２）。コントローラ６は環境情報の変化の大きさを示す値に応じた対応情報を予め有する。例えば、環境情報の変化の大きさを示す値の大きさに応じてコントローラ６はストレージ装置１の管理者に対してホストコンピュータ２あるいはホストコンピュータ３を経由して環境情報の変化の大きさを示す値であるユニットを通知する等の処理を実行する処理、また、ユニットの変化を警告する処理とともに該当するユニットをストレージ装置から切り離す処理を実行する。
【００５４】
コントローラ６は環境情報変化ＤＢ８４を取得すると、フラグ８５１をＯｆｆにする指示をエクスパンダ８に出力する（Ｓ２３）。エクスパンダ８はコントローラ６からのフラグ８５１をＯｆｆにする指示に応じて、エクスパンダ８のＲＡＭ８２に格納されたフラグ８５１をＯｆｆに更新する。したがって、フラグ８５１をＯｆｆにした以降にエクスパンダ８が取得した環境情報に変化があった場合は、Ｓ０９の判断が”ｎｏ”となるため、エクスパンダ８は環境情報に変化があった旨の情報をコントローラ６に通知される。なお、別の構成として、エクスパンダ８は、コントローラ６が環境情報変化ＤＢ８４を取得するコマンドを受信したことを条件としてフラグ８５１をＯｆｆにすることも可能である。この構成にすれば、コントローラ６とエクスパンダ８との間でフラグ８５１をＯｆｆにするための命令を送受信する必要が無くなる。その結果、エクスパンダ８とコントローラ６との間の環境情報に関する通信の回数は、毎回環境情報をコントローラにＢｒｏａｄＣａｓｔする場合の回数に比べて少なくなる。
【００５５】
コントローラ６はエクスパンダ８から取得した環境情報変化ＤＢ８４をコントローラ７共有する（Ｓ２４）。環境情報変化ＤＢを共有することにより、冗長構成の一方のエクスパンダが環境情報の変化を検出できないときでも、他方のエクスパンダが環境情報の変化を検出すれば、冗長構成の双方のコントローラは、該当ユニットの環境情報の変化を認識することが可能となる。
【００５６】
次に、エクスパンダがポーリングによって環境情報の取得を行う場合について説明する。エクスパンダ８とエクスパンダ９の構成は同じであるため、ここではエクスパンダ８の処理について説明する。ポーリングは、エクスパンダ８の全てのポートの接続先について予め定めたポートの順番に従ってポートの接続先の環境情報の取得を行う検出処理をいう。図７は、エクスパンダ８が各ユニットの環境情報をポーリングによって取得する場合のエクスパンダ８の処理のフローチャートである。図７のフローチャートのエクスパンダ８はフラグＢ８５２を設ける。フラグＢ８５２は一回のポーリング処理の中で状態の変化が検出された監視対象ユニットの有無を判別するフラグである。一回のポーリングが終了するまでとは、全てのユニットに対して検出処理が完了することである。例えば、監視対象ユニットからの環境情報に基づき、エクスパンダ８が状態の変化を検出するとエクスパンダ８はフラグＢ８５２をオンに設定する。
【００５７】
エクスパンダ８は、一定の期間毎にポーリングを開始する（Ｓ３１）。エクスパンダ８は監視対象ユニット（ＰＳＵ１４１、ＰＳＵ１４２、ＦＡＮ１５１、ＦＡＮ１５２、ＴＥＭＰ１６１およびＴＥＭＰ１６２）に対して環境情報の取得依頼を送信する（Ｓ３２）。エクスパンダ８は各監視対象ユニットが出力した環境情報を取得する（Ｓ３３）。エクスパンダ８は取得した各監視対象ユニットの環境情報を環境情報ＤＢ８４に格納する（Ｓ３４）。エクスパンダ８は、各監視対象ユニットから取得した環境情報からユニットの状態の変化を検知する（Ｓ３５）。
【００５８】
エクスパンダ８は監視対象ユニットから状態の変化を検出する（Ｓ３６：Ｙｅｓ）とフラグＢ８５２をオンにする（Ｓ３７）。エクスパンダ８は一回のポーリングが終了していない場合（Ｓ３８：Ｎｏ）は、ポーリングが終了するまでＳ３２からの処理を引き続き行う。一方、一回のポーリングが終了すると（Ｓ３８：Ｙｅｓ）、エクスパンダ８はフラグＢ８５２を確認する。フラグＢ８５２がオンの場合、エクスパンダ８に接続する先の少なくとも一つ以上の環境監視ユニットの状態が変化している応答をエクスパンダ８が環境監視ユニットから取得したためである。
【００５９】
フラグＢ８５２がオンの場合（Ｓ３５：Ｙｅｓ）、エクスパンダは、フラグＡ８５１がＯｎかＯｆｆかを判断する（Ｓ４０）。フラグＡ８５１がオンである場合（Ｓ４１：Ｙｅｓ）、エクスパンダ８は環境情報に変化があった旨を通知することなく処理を終了する。一方、フラグＡ８５１がオフである場合（Ｓ４１：Ｎｏ）、エクスパンダ８はフラグ８５をオンに設定し（Ｓ４２）、エクスパンダ８はコントローラ６に対して環境情報に変化があった旨の情報を通知する（Ｓ４３）。エクスパンダはフラグＢ８５２をオフにし（Ｓ３６）、次のポーリングの開始の時に再度Ｓ３１からの処理を実行する。
【００６０】
エクスパンダ８はポーリング中に環境情報に変化があった旨の情報をコントローラ６に送信せず、ポーリングが終了した後でコントローラ６に環境情報をＢｒｏａｄＣａｓｔする。この構成により、エクスパンダ８とコントローラ６との間でデータ通信の回数を更に少なくすることが可能となる。例えば、エクスパンダ８が一回のポーリング中に第一の監視対象ユニットの環境情報に変化があった旨を検出する。エクスパンダ８からコントローラ６に変化があった旨の情報をＢｒｏａｄＣａｓｔする。コントローラは受信した情報に応じてエクスパンダにアクセスする。エクスパンダのフラグＡ８５１がオフとなる。ここで、エクスパンダ８は第一回のポーリング中に第二の監視対象ユニットの環境情報に変化があった旨を検出すると再度コントローラにＢｒｏａｄＣａｓｔすることとなる。エクスパンダ８による一回のポーリングに要する時間は短いため、コントローラ６とエクスパンダ８とのやり取りを監視対象ユニット毎に行う必要は無い場合がある。したがって、一回のポーリングで複数の監視対象ユニットから環境情報に変化があったことを検出しても、エクスパンダ８は一回のＢｒｏａｄＣａｓｔでコントローラ６に通知することが可能となる。この結果、コントローラ６とエクスパンダ８との間の環境情報に関する通信の回数を少なくすることが可能となる。
【００６１】
図８は、本実施例によるエクスパンダ８とコントローラ６と監視対象ユニットとの間の環境情報の転送処理の時系列モデル図である。図８の横方向はエクスパンダ８、コントローラ６および監視対象ユニットの時間の経過を示し、縦方向はエクスパンダ８とコントローラ６と監視対象ユニットとの間の環境情報の転送を示した図である。
【００６２】
エクスパンダ８はユニットａに環境情報の取得依頼を転送する（ａ１）。ユニットａはエクスパンダ８に環境情報を転送する（ａ２）。エクスパンダ８は環境情報ＤＢ８４を更新する。エクスパンダ８は環境情報に変化があったか否かを判断する（ａ３）。エクスパンダ８は環境情報が変化した場合にフラグ８５１を確認する。エクスパンダ８はフラグ８５１がオフであるときにコントローラ６に対して環境情報に変化があった旨を転送する（ａ４）。エクスパンダ８はフラグ８５１をオンにする。
【００６３】
エクスパンダ８はユニットａに環境情報の取得依頼を転送する（ａ５）。ユニットａはエクスパンダ８に対して環境情報を転送する（ａ６）。エクスパンダ８は取得した環境情報により環境情報ＤＢ８４を更新する。エクスパンダ８は環境情報の変化の大きさが予め定めた閾値以上か否かを判断する（ａ７）。閾値は設計者が設定する。エクスパンダ８は環境情報の変化の大きさが閾値以上である場合にフラグ８５１を確認する。エクスパンダ８はａ４において既にコントローラ６に環境情報に変化があった旨を転送しており、フラグ８５１はオンの状態である。したがってエクスパンダ８はコントローラ６に対して環境情報に変化があった旨を転送しない。
【００６４】
次に、エクスパンダ８はストレージ装置１内の他の監視対象ユニットｂに環境情報の取得依頼を転送する（ｂ１）。ユニットｂはエクスパンダ８に環境情報を転送する（ｂ２）。エクスパンダ８は取得した環境情報により環境情報ＤＢ８４を更新する。エクスパンダ８は環境情報の変化の大きさが予め定めた閾値以上か否かを判断する（ｂ３）。閾値は設計者が設定する。エクスパンダ８は環境情報の変化の大きさが閾値以上である場合にフラグ８５１を確認する。エクスパンダ８はａ４において既にコントローラ６に環境情報に変化があった旨を転送しており、エクスパンダ８はフラグ８５１がオンであることを確認しコントローラ６に対して環境情報に変化があった旨を転送しない。
【００６５】
次に、コントローラ６は、ａ４においてエクスパンダ８から取得した環境情報に変化があった旨の情報に基づき環境情報ＤＢ８４にアクセスする（ｃ１）。コントローラ６は、環境情報ＤＢ８４を取得し（ｃ２）、変化があった監視対象ユニットを抽出し、変化に対して対応する処理を実行する（ｃ３）。コントローラ６が環境情報ＤＢ８４にアクセスしたことをエクスパンダ８が確認すると、エクスパンダ８はフラグ８５１をオフにする（ｃ４）。一方、コントローラ６はｃ３の結果を監視対象ユニットにエクスパンダ８を介して（ｃ５）送信する（ｃ６）。
【００６６】
次に、エクスパンダ８はユニットｄに環境情報の取得依頼を転送する（ｄ１）。ユニットｄはエクスパンダ８に環境情報を転送する（ｄ２）。エクスパンダ８は環境情報ＤＢ８４を更新する。エクスパンダ８は環境情報の変化の大きさが予め定めた閾値以上か否かを判断する（ｄ３）。閾値は設計者が設定する。エクスパンダ８は環境情報の変化の大きさが閾値以上である場合にフラグ８５１を確認する。エクスパンダ８はフラグ８５１がオフであるときにコントローラ６に対して環境情報に変化があった旨を転送する（ｄ４）。エクスパンダ８はフラグ８５１をオンにする。
【００６７】
次に、エクスパンダを多重に接続した場合の処理について説明する。図９はエクスパンダを多重に接続した場合のストレージ装置１の装置構成図である。
【００６８】
ストレージ装置１はコントローラによってストレージ装置１内の各記憶ユニットにデータを記憶する。コントローラを有する筐体はＣＥ（Ｃｏｎｔｏｒｏｌｌｅｒ  Ｅｎｃｌｏｓｕｒｅ）１００である。ストレージ装置１は記憶容量を増加させることが可能である。ストレージ装置１の記憶容量を増加させることは、記憶ユニットを増設することにより可能である。記憶ユニットを増設するための筐体はコントローラを有さず、エクスパンダおよび記憶ユニット、ＰＳＵ、ＦＡＮ、ＴＥＭＰ等の監視対象ユニットを有する。この筐体は、ＤＥ（Ｄｅｖｉｃｅ  Ｅｎｃｌｏｓｕｒｅ）１０１、あるいはＤＥ（Ｄｅｖｉｃｅ  Ｅｎｃｌｏｓｕｒｅ）１０２である。
【００６９】
図９のストレージ装置１の各エクスパンダは以下の接続となる。エクスパンダ８とエクスパンダ９とは冗長な関係によって構成される。エクスパンダ８とエクスパンダ９との間はＳＡＳプロトコルによって接続される。エクスパンダ８のポート「１」およびエクスパンダ９のポート「１」のＰｈｙはともにサブトラクティブである。エクスパンダ８０２とエクスパンダ９０２とは冗長な関係によって構成される。エクスパンダ８０２とエクスパンダ９０２との間はＩ２Ｃにより接続する。具体的には２つのＩ２Ｃによって接続しており、双方がマスターとなる。エクスパンダ８０３とエクスパンダ９０３とは冗長な関係によって構成される。エクスパンダ８０３とエクスパンダ９０３との間はＩ２Ｃにより接続する。具体的には２つのＩ２Ｃによって接続しており、双方がマスターとなる。
【００７０】
ＣＥ１００のエクスパンダ８のポート「０」はＤＥ１０１のエクスパンダ８０２のポート「１」に接続する。ＣＥ１００のエクスパンダ９のポート「０」はＤＥ１０１のエクスパンダ９０２のポート「１」に接続する。ＤＥ１０１のエクスパンダ８０２のポート「０」はＤＥ１０２のエクスパンダ８０３のポート「１」に接続する。ＤＥ１０１のエクスパンダ９０２のポート「０」はＤＥ１０２のエクスパンダ９０３のポート「１」に接続する。
【００７１】
エクスパンダ８とエクスパンダ８０２との間の接続において、エクスパンダ８のポート「０」は通常のＰｈｙである。したがって、エクスパンダ８は、エクスパンダ８のポート「０」に接続するエクスパンダ８０２に接続するユニットを知ることが可能である。一方、エクスパンダ８０２のポート「１」はサブトラクティブなＰｈｙとなる。したがって、エクスパンダ８０２はエクスパンダ８に接続する先のユニットを知ることはできない。ＣＥ１００のエクスパンダ９とＤＥ１０１のエクスパンダ９０２との接続の関係もエクスパンダ８とエクスパンダ８０２との関係と同様である。
【００７２】
エクスパンダ８０２とエクスパンダ８０３との間の接続において、エクスパンダ８０２のポート「０」は通常のＰｈｙである。したがって、エクスパンダ８０２は、エクスパンダ８０３のポート「２」に接続する各ユニットを知ることが可能である。一方、エクスパンダ８０３のポート「１」はサブトラクティブなＰｈｙとなる。したがって、エクスパンダ８０３はエクスパンダ８０２に接続する先のユニットを知ることはできない。ＤＥ１０１のエクスパンダ９０２とＤＥ１０２のエクスパンダ９０３との接続の関係もエクスパンダ８０２とエクスパンダ８０３との関係と同様である。
【００７３】
ＤＥ１０１のＤｉｓｋ２２、Ｄｉｓｋ２３、ＰＳＵ２４１、ＰＳＵ２４２、ＦＡＮ２５１、ＦＡＮ２５２、ＴＥＭＰ２６１およびＴＥＭＰ２６２は、ＤＥ１０１のエクスパンダ８０２およびエクスパンダ９０２と接続する監視対象ユニットである。
【００７４】
ＤＥ１０２のＤｉｓｋ３２、Ｄｉｓｋ３３、ＰＳＵ３４１、ＰＳＵ３４２、ＦＡＮ３５１、ＦＡＮ３５２、ＴＥＭＰ３６１およびＴＥＭＰ３６２は、ＤＥ１０２のエクスパンダ８０３およびエクスパンダ９０３と接続するユニットである。エクスパンダ８０３とエクスパンダ９０３とは冗長な関係によって構成される。
【００７５】
図１と同じ番号が付されているユニットについては、同じであるため説明を省略する。
【００７６】
各エクスパンダはＰｈｙが接続する先のアドレスを管理するテーブルを有する。エクスパンダ８が有する接続テーブル８１０について説明する。図１０はエクスパンダ８が有する接続テーブル８１０である。接続先８１１は、接続テーブル８１０のＰｈｙ「０」のグループに属するＰｈｙの接続先を示す。エクスパンダ８は直接の接続先として接続情報を格納する。更にエクスパンダ８０２はエクスパンダ８０３に接続し、エクスパンダ８０３はＤｉｓｋ３２とＤｉｓｋ３３に接続する。エクスパンダ８０２はＤｉｓｋ２２、Ｄｉｓｋ２３と直接に接続する。これらのユニットはエクスパンダ８のＰｈｙ「０」のグループの配下の接続として管理する。接続先８１２は、接続テーブル８１０のＰｈｙ「１」のグループに属するＰｈｙの接続先を示す。Ｐｈｙ「１」に属するＰｈｙはサブトラクティブであるため、直接の接続先として接続情報を格納する以外、配下の接続先の情報は取得しない。したがって、接続先８１２に格納する情報は直接の接続先以外ない。
接続先８１３は、接続テーブル８１０のＰｈｙ「２」のグループに属するＰｈｙの接続先を示す。エクスパンダ８はＤｉｓｋ１０、Ｄｉｓｋ１１と直接に接続する。したがってＰｈｙ「２」はＤｉｓｋ１０、Ｄｉｓｋ１１を直接の接続先として接続情報を格納する。
【００７７】
エクスパンダ８０２が有する接続テーブル８１４について説明する。図１１はエクスパンダ８０２が有する接続テーブル８１４である。接続先８１５は、接続テーブル８１４のＰｈｙ「０」のグループに属するＰｈｙの接続先を示す。エクスパンダ８０２は直接の接続先の接続情報としてエクスパンダ８０３を格納する。更に、エクスパンダ８０３はＤｉｓｋ３２とＤｉｓｋ３３に接続する。これらのユニットはエクスパンダ８０２のＰｈｙ「０」のグループの配下の接続として管理する。接続先８１５は、接続テーブル８１４のＰｈｙ「１」のグループに属するＰｈｙの接続先を示す。Ｐｈｙ「１」に属するＰｈｙはサブトラクティブであるため、Ｐｈｙ「１」は直接の接続先として接続情報を格納する以外、配下の接続先の情報を取得しない。したがって、接続先８１６に格納する情報は直接の接続先以外ない。接続先８１７は、接続テーブル８１４のＰｈｙ「２」のグループに属するＰｈｙの接続先を示す。エクスパンダ８０２はＤｉｓｋ２２、Ｄｉｓｋ２３と直接に接続する。したがってＤｉｓｋ２２、Ｄｉｓｋ２３を直接の接続先として接続情報を格納する。
【００７８】
図９において、例えば、ＦＡＮ３５１の環境の状態に変化があるとする。エクスパンダ８０３は監視対象ユニットの環境情報に変化があった旨の情報をＳＡＳプロトコルで接続するエクスパンダ８０２に対して環境情報に関するＢｒｏａｄＣａｓｔをする。エクスパンダ８０３とエクスパンダ９０３とはＩ２Ｃによる接続であるため、エクスパンダ８０３からエクスパンダ９０３に対してはＢｒｏａｄＣａｓｔされない。
【００７９】
エクスパンダ８０２はエクスパンダ８０３からの環境情報に関するＢｒｏａｄＣａｓｔを取得すると、エクスパンダ８０２はＳＡＳプロトコルで接続するエクスパンダ８に対して環境情報に関するＢｒｏａｄＣａｓｔをする。
【００８０】
エクスパンダ８は、エクスパンダ８０２からの環境情報に関するＢｒｏａｄＣａｓｔを取得すると、エクスパンダ８はＳＡＳプロトコルで接続するコントローラ６に対して環境情報に関するＢｒｏａｄＣａｓｔをする。
【００８１】
一方、エクスパンダ８とエクスパンダ９との間はサブトラクティブのＰｈｙ同士による接続であるため、環境情報に関するＢｒｏａｄＣａｓｔはエクスパンダ９に接続される他のユニットには転送されない。この構成によりエクスパンダ間の環境情報に関するデータ転送を抑えることが可能となる。また一方のエクスパンダがユニットの環境情報を認識できない場合でも、他方のエクスパンダが認識できれば、コントローラでは環境情報を共有するため、環境情報の検知は可能である。
【００８２】
以上の転送方法を実行することにより、コントローラ６およびコントローラ７とエクスパンダ８およびエクスパンダ９との間の環境情報に関する転送量は、エクスパンダ８およびエクスパンダ９と各監視対象ユニットとの間の環境情報に関する転送量と比較して少なくすることができる。
【図面の簡単な説明】
【００８３】
【図１】本実施例のストレージシステムの構成図
【図２】エクスパンダ８の構成図
【図３】コントローラ６の構成図
【図４】エクスパンダ８が有する環境状態変化ＤＢ８４の構成図
【図５】エクスパンダ８が各ユニットの環境情報を取得し、環境情報に変化があった旨を通知する処理についてのフローチャート
【図６】エクスパンダ８が環境情報に変化があった旨を示す情報をコントローラ６にＢｒｏａｄＣａｓｔした後のコントローラが実行する処理についてのフローチャート
【図７】エクスパンダ８が各ユニットの環境情報をポーリングによって取得する場合のエクスパンダ８の処理のフローチャート
【図８】本実施例によるエクスパンダ８とコントローラ６と監視対象ユニットとの間の環境情報の転送処理の時系列モデル図
【図９】図９はエクスパンダを多重に接続した場合のストレージ装置１の装置構成図
【図１０】図１０はエクスパンダ８が有する接続テーブル８１０
【図１１】図１１はエクスパンダ８０２が有する接続テーブル８１４
【符号の説明】
【００８４】
１  ストレージ装置（Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ）
２、３  ホストコンピュータ（Ｈｏｓｔ  Ｃｏｍｐｕｔｅｒ）
４、５  ホストアダプタユニット（Ｈｏｓｔ  Ａｄａｐｔｅｒ  Ｕｎｉｔ）
６、７  コントローラユニット（Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）
８、９  エクスパンダユニット（Ｅｘｐａｎｄｅｒ  Ｕｎｉｔ）
１０、１１，１２，１３  記憶ユニット（Ｄｉｓｋ）
１４１、１４２  電源供給ユニット（ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ））
１５１、１５２  ＦＡＮユニット
１６１、１６２  ＴＥＭＰユニット
２２、２３  ＤＥ１０１の記憶ユニット
２４１、２４２  ＤＥ１０１の電源供給ユニット（ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ））
２５１、２５２  ＤＥ１０１のＦＡＮユニット
２６１、２６２  ＤＥ１０１のＴＥＭＰユニット
３２、３３  ＤＥ１０２の記憶ユニット
３４１、３４２  ＤＥ１０２電源供給ユニット（ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ））
３５１、３５２  ＤＥ１０２ＦＡＮユニット
３６１、３６２  ＤＥ１０２ＴＥＭＰユニット
６１  コントローラ６のＣＰＵ
６２  コントローラ６のＲＡＭ
６３  コントローラ６のＲＯＭ
６５  コントローラ６のエクスパンダ８に接続するワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）
６６  コントローラ６の各記憶ユニットに接続するナローポート（Ｎａｒｒｏｗ  Ｐｏｒｔ）
６７  コントローラ６のコントローラ７に接続するワイドポート（Ｗｉｄｅ  Ｐｏｒｔ）
８１  エクスパンダ８のＣＰＵ
８２  エクスパンダ８のＲＡＭ
８３  エクスパンダ８のＲＯＭ
８４  環境状態情報変化ＤＢ
８５１  フラグＡ（ＦｌａｇＡ）
８５２  フラグＢ（ＦｌａｇＢ）
８６  ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）
９５  スイッチ（Ｓｗｉｔｃｈ）
１００  ＣＥ（Ｃｏｎｔｒｏｌｌｅｒ  Ｅｎｃｌｏｓｕｒｅ）
１０１  ＤＥ（Ｄｅｖｉｃｅ  Ｅｎｃｌｏｓｕｒｅ）
１０２  ＤＥ（Ｄｅｖｉｃｅ  Ｅｎｃｌｏｓｕｒｅ）
８０２  ＣＥ１００のＥｘｐａｎｄｅｒ８に接続するＤＥ１０１のＥｘｐａｎｄｅｒ
８０３  ＤＥ１０１のＥｘｐａｎｄｅｒ８０２に接続するＤＥ１０２のＥｘｐａｎｄｅｒ
９０２  ＣＥ１００のＥｘｐａｎｄｅｒ９に接続するＤＥ１０１のＥｘｐａｎｄｅｒ
９０３  ＤＥ１０１のＥｘｐａｎｄｅｒ９０２に接続するＤＥ１０２のＥｘｐａｎｄｅｒ
８１０  エクスパンダ８が有する接続テーブル
８１４  エクスパンダ８０２が有する接続テーブル
【図１】
2008158799.tif 000003
【図２】
2008158799.tif 000004
【図３】
2008158799.tif 000005
【図４】
2008158799.tif 000006
【図５】
2008158799.tif 000007
【図６】
2008158799.tif 000008
【図７】
2008158799.tif 000009
【図８】
2008158799.tif 000010
【図９】
2008158799.tif 000011
【図１０】
2008158799.tif 000012
【図１１】
2008158799.tif 000013