(57)【要約】【課題】エクスパンダにディスカバリ処理を集中させないこと。【解決手段】ストレージ装置１は、マップ担当ＣＭ１００、ＣＭ２００ａ〜２００ｃを有する。マップ担当ＣＭ１００は、取得部１２２、更新部１２３、通知部１２４を有する。取得部１２２は、ストレージ装置１の構成が変化した場合に、新たなマップ情報を各エクスパンダ、もしくは、各エクスパンダ及び各エンクロージャから取得する。そして、更新部１２３は、マップ情報テーブル格納部１１１が記憶するマップ情報を取得した新たなマップ情報に基づいて更新する。また、通知部１２４は、取得した新たなマップ情報を他のＣＭに通知する。ＣＭ２００ａ〜２００ｃは、更新部２２１を有する。更新部２２１は、マップ情報テーブル格納部２１１が記憶するマップ情報をマップ担当ＣＭ１００により通知された新たなマップ情報に基づいて更新する。【選択図】図１
2013134607.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、外部装置からの前記記憶装置へのアクセスを制御する複数の制御装置と、前記複数の制御装置と接続し、前記複数の制御装置からの前記記憶装置へのアクセスを中継する中継装置とを有するストレージ装置において、
前記複数の制御装置は、
ストレージ装置の構成を示す構成情報を記憶する記憶部と、
前記構成が変化した場合に、新たな構成情報を前記中継装置、若しくは、前記中継装置及び前記記憶装置から取得する取得部と、
前記記憶部が記憶する構成情報を取得した新たな構成情報に基づいて更新する更新部と、
取得した新たな構成情報を他の制御装置に通知する通知部と、を有する第１の制御装置と、
ストレージ装置の構成を示す構成情報を記憶する記憶部と、
前記記憶部が記憶する構成情報を前記第１の制御装置により通知された新たな構成情報に基づいて更新する更新部と、を有する第２の制御装置と、
を有することを特徴とするストレージ装置。
【請求項２】
前記第１の制御装置は、
前記構成が変化した場合に、前記構成が変化した旨を示す変化通知を、自装置のみへ発行させる発行要求を前記中継装置に送信する発行要求部を更に有し、
前記中継装置は、前記第１の制御装置の発行要求部から発行要求を受信した場合であって、前記構成が変化した際に、前記第１の制御装置へ前記変化通知を送信する送信部を有し、
前記第１の制御装置の取得部は、前記変化通知を前記中継装置から受信した場合に新たな構成情報を前記中継装置または、前記中継装置及び前記記憶装置から取得する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記第１の制御装置は、
前記構成が変化した場合に、前記構成が変化した旨を示す変化通知を、前記第１の制御装置及び前記第２の制御装置への発行を禁止させる禁止要求を前記中継装置に送信する禁止要求部と、
前記中継装置を定期的に監視し、前記構成が変化したか否かを判定する判定部と、を更に有し、
前記中継装置は、前記第１の制御装置の禁止要求部から禁止要求を受信した場合であって、前記構成が変化した際に、前記第１の制御装置及び前記第２の制御装置へ変化通知の送信を抑止させる抑止部を有し、
前記第１の制御装置の取得部は、前記判定部により前記構成が変化したと判定された場合に新たな構成情報を前記中継装置または、前記中継装置及び前記記憶装置から取得する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記第２の制御装置は、
前記第１の制御装置に異常が生じた場合、前記第１の制御装置以外の制御装置の中から正常に動作可能な装置を選択して第１の制御装置として設定する設定部を更に有する
ことを特徴とする請求項１から３のいずれか一つに記載のストレージ装置。
【請求項５】
記憶装置と、外部装置からの前記記憶装置へのアクセスを制御する複数の制御装置と、前記複数の制御装置と接続し、前記複数の制御装置からの前記記憶装置へのアクセスを中継する中継装置とを有するストレージ装置におけるストレージ装置の制御方法であって、
前記複数の制御装置が有する第１の制御装置が、
ストレージ装置の構成が変化した場合に、ストレージ装置の構成を示す構成情報を前記中継装置、若しくは、前記中継装置及び前記記憶装置から新たに取得し、
記憶部が記憶する構成情報を取得した新たな構成情報に基づいて更新し、
取得した新たな構成情報を他の制御装置に通知する処理と、を含み、
前記複数の制御装置が有する第２の制御装置が、
記憶部が記憶する構成情報を前記第１の制御装置により通知された新たな構成情報に基づいて更新する処理を
含んだことを特徴とするストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びストレージ装置の制御方法に関する。
【背景技術】
【０００２】
ＳＣＳＩ（Small  Computer  System  Interface）による転送方式をシリアル化したＳＡＳ（Serial  Attached  SCSI）規格を採用して、ディスク装置などの記憶装置を接続するストレージ装置がある。図１８を用いて、従来技術に係るＳＡＳ規格を採用するストレージ装置の構成を説明する。
【０００３】
図１８は、従来技術に係るＳＡＳ規格を採用するストレージ装置の構成の一例を示す図である。図１８に示すように、ストレージ装置９００は、入出力を制御するＣＭ（Control  Module）９０１ａ〜９０１ｄ、スイッチ機能とディスク拡張機能とを有するエクスパンダ９０２ａ〜９０２ｂを有する。また、ストレージ装置９００は、複数のディスク装置を格納するエンクロージャ９１０ａ〜９１０ｃ、９２０ａ〜９２０ｃ、９３０ａ〜９３０ｃを有する。
【０００４】
このようなストレージ装置９００では、各装置が階層構造に接続される。例えば、各ＣＭに対してエクスパンダ９０２ａ、９０２ｂが接続され、エクスパンダ９０２ａ、９０２ｂそれぞれに対してエンクロージャ９１０ａ〜９１０ｃが接続される。また、エンクロージャ９１０ａに対してエンクロージャ９２０ａが接続され、エンクロージャ９２０ａに対してエンクロージャ９３０ａが接続される。なお、ＣＭ９０１ａ〜９０１ｄ側に位置する装置を上位の装置と呼び、エンクロージャ９３０ａ〜９３０ｃ側に位置する装置を下位の装置と呼ぶものとする。例えば、エクスパンダ９０２ａは、エンクロージャ９１０ａに対して上位の装置であり、また、エンクロージャ９１０ａは、エクスパンダ９０２ａに対して下位の装置である。
【０００５】
また、ストレージ装置９００では、各ＣＭ、各エクスパンダ及び各エンクロージャは、ストレージ装置の構成を示すマップ情報を有している。例えば、ＣＭ９０１ａは、サーバなどの情報処理装置から入出力要求を受付けた場合、マップ情報を参照してディスク装置からデータの読出しやディスク装置へのデータの書込み処理を実行する。
【０００６】
また、ストレージ装置９００において、故障によるディスク装置の取り外しや保守によるディスク装置の増設によりストレージ装置の構成に変化が発生した場合、マップ情報を新しく更新するディスカバリ処理が実行される。
【０００７】
以下では、エンクロージャ９３０ａが有するディスク装置が取り外された場合を例にしてディスカバリ処理について説明する。エンクロージャ９３０ａは、ストレージ装置の構成に変化が発生したことを示すコマンドであるＢｒｏａｄｃａｓｔ（Ｃｈａｎｇｅ）（以下、ＢＣ（ＣＨＧ）と記す）を発行し、エンクロージャ９２０ａに送信する。このＢＣ（ＣＨＧ）は、順次上位の装置に対して送信され、最終的にＣＭ９０１ａ〜９０１ｄに送信される。
【０００８】
そして、ＢＣ（ＣＨＧ）を受信した上位の装置は、下位の装置に対して物理リンクの数や物理リンクに接続された装置の数を示すマップ情報を要求し、下位の装置から新しいマップ情報を取得する。また、新しいマップ情報を取得した装置は、上位の装置からマップ情報の取得を要求された場合、新しいマップ情報を上位の装置に応答する。例えば、ストレージ装置９００では、各ＣＭは、エクスパンダ９０２ａ、９０２ｂにマップ情報の取得を要求し、エクスパンダ９０２ａ、９０２ｂから新しいマップ情報を取得する。
【０００９】
また、ＢＣ（ＣＨＧ）を受信した上位の装置は、下位の装置においてディスカバリ処理が実行中の場合、ディスカバリ処理を実行できず待機状態となる。このようなことから、例えば、エンクロージャ９２０ａにおいて異常が発生し、所定時間を経過してもディスカバリ処理が完了しない場合には、ディスカバリ処理を強制的に完了させる技術が知られている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−１２９０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した従来の技術では、エクスパンダにディスカバリ処理が集中するという課題がある。
【００１２】
具体的には、１つのエクスパンダに多数のＣＭが接続されるような場合、各ＣＭは、それぞれに配下のエクスパンダに対してマップ情報を要求するコマンドを送信する。図１８に示す例では、エクスパンダ９０２ａは、ＣＭ９０１ａ〜９０１ｄからマップ情報の取得要求を受付ける。
【００１３】
また、エクスパンダ９０２ａが処理能力を超えたディスカバリ処理を受付けた場合、各ＣＭから受付けたディスカバリ処理同士は、競合する。この結果、あるＣＭでは、マップ情報の獲得が遅れる、タイムアウトする、あるいは応答がないエクスパンダを故障モジュールと誤って判定するなどシステムの安定な運用に影響を与える可能性がある。
【００１４】
１つの側面では、エクスパンダへのディスカバリ処理の集中の抑制を図ったストレージ装置及びストレージ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の案では、記憶装置と、外部装置からの記憶装置へのアクセスを制御する複数の制御装置と、複数の制御装置と接続し、複数の制御装置からの記憶装置へのアクセスを中継する中継装置とを有するストレージ装置である。複数の制御装置は、第１の制御装置と、第２の制御装置とを有する。第１の制御装置は、ストレージ装置の構成を示す構成情報を記憶部に記憶する。また、第１の制御装置は、構成が変化した場合に、新たな構成情報を中継装置、若しくは、中継装置及び記憶装置から取得する。そして、第１の制御装置は、記憶部が記憶する構成情報を取得した新たな構成情報に基づいて更新する。また、第１の制御装置は、取得した新たな構成情報を他の制御装置に通知する。第２の制御装置は、ストレージ装置の構成を示す構成情報を記憶部に記憶する。そして、第２の制御装置は、記憶部が記憶する構成情報を第１の制御装置により通知された新たな構成情報に基づいて更新する。
【発明の効果】
【００１６】
１つの実施態様によれば、エクスパンダへのディスカバリ処理の集中を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、ストレージ装置の構成を示すブロック図である。
【図２】図２は、実施例１に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。
【図３】図３は、実施例１に係るＣＭの機能構成を示す機能ブロック図である。
【図４】図４は、実施例１に係るエクスパンダの機能構成を示す機能ブロック図である。
【図５】図５は、実施例１に係るストレージ装置による処理手順を示すフローチャートである。
【図６】図６は、実施例１に係るマップ担当ＣＭによるマップ情報取得処理の処理手順を示すフローチャートである。
【図７】図７は、実施例１に係るＣＭによるマップ担当ＣＭ変更処理の処理手順を示すフローチャートである。
【図８】図８は、実施例１に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。
【図９】図９は、実施例１に係るエクスパンダによるＢＣ（ＣＨＧ）転送処理の処理手順を示すフローチャートである。
【図１０】図１０は、実施例２に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。
【図１１】図１１は、実施例２に係るストレージ装置による処理手順を示すフローチャートである。
【図１２】図１２は、実施例２に係るマップ担当ＣＭによるマップ情報取得処理の処理手順を示すフローチャートである。
【図１３】図１３は、実施例２に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。
【図１４】図１４は、実施例２に係るエクスパンダによるＢＣ（ＣＨＧ）転送抑止処理の処理手順を示すフローチャートである。
【図１５】図１５は、実施例３に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。
【図１６】図１６は、実施例３に係るストレージ装置による処理手順を示すフローチャートである。
【図１７】図１７は、実施例３に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。
【図１８】図１８は、従来技術に係るＳＡＳ規格を採用するストレージ装置の構成の一例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示するストレージ装置及びストレージ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１９】
実施例１では、図１から図９を用いて、ストレージ装置の構成、処理の流れ、効果などについて説明する。
【００２０】
［実施例１に係るストレージ装置の構成］
図１は、ストレージ装置の構成を示すブロック図である。図１に示すように、ストレージ装置１は、エンクロージャ１０ａ〜１０ｃ、２０ａ〜２０ｃ、３０ａ〜３０ｃと、マップ担当ＣＭ（Control  Module）１００と、ＣＭ２００ａ〜２００ｃと、エクスパンダ３００ａ、３００ｂとを有する。なお、ここで言うマップ担当ＣＭとは、通常時にはＣＭと同様の機能を有し、ストレージ装置の構成が変化した場合に、ＣＭを代表してマップ情報を取得するＣＭを示す。また、ストレージ装置１は、マップ担当ＣＭを１つ有する点を除いて、ストレージ装置１が有するＣＭ、エクスパンダ、エンクロージャの数は図１に示した例に限定されるものではない。また、マップ担当ＣＭ１００は、ストレージ装置１の起動時に管理者により設定されるものとして説明する。
【００２１】
マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃは互いにバスにより通信可能に接続される。また、マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃのそれぞれは、エクスパンダ３００ａ及びエクスパンダ３００ｂとＳＡＳ（Serial  Attached  SCSI）インターフェースにより通信可能に接続される。また、エクスパンダ３００ａ、３００ｂそれぞれは、エンクロージャ１０ａ〜１０ｃとＳＡＳにより通信可能に接続される。
【００２２】
また、エンクロージャ１０ａは、エンクロージャ２０ａとＳＡＳにより通信可能に接続される。エンクロージャ２０ａは、エンクロージャ３０ａとＳＡＳにより通信可能に接続される。すなわち、エンクロージャ１０ａ〜３０ａは、ＳＡＳを介して階層構造に接続される。なお、エンクロージャ１０ｂ〜３０ｂ、１０ｃ〜３０ｃについてもエンクロージャ１０ａ〜３０ａと同様に、ＳＡＳを介して階層構造に接続される。
【００２３】
なお、ストレージ装置１において、マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃ側に位置する装置を上位の装置、エンクロージャ３０ａ〜３０ｃ側に位置する装置を下位の装置と適宜記載する。例えば、エンクロージャ１０ａ〜１０ｃは、エンクロージャ２０ａ〜２０ｃに対して上位の装置であり、エンクロージャ２０ａ〜２０ｃは、エンクロージャ１０ａ〜１０ｃに対して下位の装置である。
【００２４】
エンクロージャ１０ａは、ディスク装置などの記憶装置を格納する。なお、エンクロージャ１０ｂ、１０ｃ、２０ａ〜２０ｃ、３０ａ〜３０ｃは、エンクロージャ１０ａと同様に、ディスク装置などの記憶装置を格納する。
【００２５】
マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃは、図示しないサーバなどの情報処理装置からの記憶装置へのアクセスを制御する。エクスパンダ３００ａ、３００ｂは、マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃと接続し、マップ担当ＣＭ１００及びＣＭ２００ａ〜２００ｃからの記憶装置へのアクセスを中継する。
【００２６】
また、ストレージ装置１において、マップ担当ＣＭ１００、各ＣＭ、各エクスパンダ及び各エンクロージャは、ストレージ装置１の構成を示すマップ情報を有している。例えば、ＣＭ２００ａは、サーバなどの情報処理装置から入出力要求を受付けた場合、マップ情報を参照して記憶装置からデータの読出しや記憶装置へのデータの書込み処理を実行する。
【００２７】
このように構成されるストレージ装置１において、故障によるディスク装置の取り外しや保守によるディスク装置の増設によりストレージ装置の構成に変化が発生した場合、マップ情報を新しく更新するディスカバリ処理が実行される。なお、以下では、ストレージ装置１では、各エクスパンダ及び各エンクロージャは、ストレージ装置の構成に変化が発生した場合、自装置でマップ情報を登録及び更新するセルフディスカバーモードを採用するものとして説明する。
【００２８】
マップ担当ＣＭ１００は、取得部１２２と更新部１２３と通知部１２４とを有する。取得部１２２は、ストレージ装置１の構成が変化した場合に、新たなマップ情報をエクスパンダ３００ａ、３００ｂから取得する。また、更新部１２３は、マップ情報テーブル格納部１１１が記憶するマップ情報を取得した新たなマップ情報に基づいて更新する。そして、通知部１２４は、取得した新たなマップ情報を他のＣＭ２００ａ〜２００ｃに通知する。
【００２９】
ＣＭ２００ａは、更新部２２１を有する。更新部２２１は、マップ情報テーブル格納部２１１が記憶するマップ情報をマップ担当ＣＭ１００により通知された新たなマップ情報に基づいて更新する。
【００３０】
このようにして、ストレージ装置１では、ストレージ装置１の構成が変化した場合、マップ担当ＣＭ１００がマップ情報を取得し、取得したマップ情報をＣＭ２００ａ〜２００ｃに通知する。これにより、ストレージ装置１は、エクスパンダ３００ａ、３００ｂにディスカバリ処理の集中を発生させない。
【００３１】
［実施例１に係るマップ担当ＣＭの構成］
次に、図２を用いて、マップ担当ＣＭ１００の構成を説明する。図２は、実施例１に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。なお、同図では、マップ担当ＣＭに設定された場合の機能に関連する構成のみを図示する。
【００３２】
図２に示すように、マップ担当ＣＭ１００は、ＣＡ（channel  adapter）１０１、物理ポート１０２ａ、１０２ｂ、記憶部１１０、制御部１２０を有する。
【００３３】
ＣＡ１０１は、図示しないサーバなどの情報処理装置や他のＣＭとの情報をやりとりするインターフェースである。物理ポート１０２ａ、１０２ｂは、ＳＡＳ規格のインターフェースであり、エクスパンダ３００ａ、３００ｂとの情報のやり取りを制御する。
【００３４】
記憶部１１０は、例えば、ＲＡＭなどの半導体メモリ素子であり、マップ情報テーブル格納部１１１を有する。マップ情報テーブル格納部１１１は、ストレージ装置１の構成を示す情報であるマップ情報を記憶する。例えば、マップ情報テーブル格納部１１１は、ストレージ装置１の構成を示す情報として、ストレージ装置１が有する各装置の物理リンクの数と、物理リンクに接続された装置の数とを対応付けた情報を記憶する。
【００３５】
制御部１２０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路であり、コマンド発行部１２１、取得部１２２、更新部１２３、通知部１２４、異常検出部１２５を有する。
【００３６】
コマンド発行部１２１は、ストレージ装置１の構成が変化した場合に、ストレージ装置１の構成が変化した旨を示すＢｒｏａｄｃａｓｔ（Ｃｈａｎｇｅ）（以下、ＢＣ（ＣＨＧ）と記す）を、自装置のみへ発行させる発行要求を各エクスパンダに送信する。例えば、コマンド発行部１２１は、ＳＡＳアドレスなどの自装置の識別子やポート番号を含んだ発行要求を各エクスパンダに送信する。
【００３７】
取得部１２２は、ストレージ装置１の構成が変化した場合に、新たなマップ情報をエクスパンダ３００ａ及び３００ｂから取得する。例えば、取得部１２２は、ＢＣ（ＣＨＧ）をエクスパンダ３００ａまたは３００ｂから受信した場合に、新たなマップ情報をエクスパンダ３００ａ及び３００ｂから取得する。なお、取得部１２２は、取得した新たなマップ情報を更新部１２３及び通知部１２４に出力する。
【００３８】
更新部１２３は、マップ情報テーブル格納部１１１が記憶するマップ情報を取得部１２２により取得された新たなマップ情報に基づいて更新する。通知部１２４は、取得部１２２により取得された新たなマップ情報を他のＣＭに通知する。
【００３９】
異常検出部１２５は、他のＣＭとの通信が可能であるか否かを他のＣＭと相互に監視する。また、異常検出部１２５は、自装置の電圧や温度を監視し、自装置に異常が生じたか否かを判定する。異常検出部１２５は、自装置に異常が生じたと判定した場合、自装置の異常を検出した旨を他のＣＭに通知する。
【００４０】
［実施例１に係るＣＭの構成］
次に、図３を用いて、ＣＭ２００ａ〜２００ｃの構成を説明する。なお、同図では、マップ担当ＣＭに設定されていない場合の機能に関連する構成のみを図示する。また、ここでは、ＣＭ２００ａ〜２００ｃを総称してＣＭ２００と記載する。
【００４１】
図３は、実施例１に係るＣＭの機能構成を示す機能ブロック図である。図３に示すように、ＣＭ２００は、ＣＡ２０１、物理ポート２０２ａ、２０２ｂ、記憶部２１０、制御部２２０を有する。
【００４２】
ＣＡ２０１は、図示しないサーバなどの情報処理装置や他のＣＭとの情報をやりとりするインターフェースである。物理ポート２０２ａ、２０２ｂは、ＳＡＳ規格のインターフェースであり、エクスパンダ３００ａ、３００ｂとの情報のやり取りを制御する。
【００４３】
記憶部２１０は、例えば、ＲＡＭなどの半導体メモリ素子であり、マップ情報テーブル格納部２１１を有する。マップ情報テーブル格納部２１１は、マップ情報テーブル格納部１１１と同一の内容であり、ストレージ装置１の構成を示す情報を記憶する。
【００４４】
制御部２２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、更新部２２１、設定部２２２、異常検出部２２３を有する。
【００４５】
更新部２２１は、マップ情報テーブル格納部２１１が記憶するマップ情報をマップ担当ＣＭ１００により通知された新たなマップ情報に基づいて更新する。
【００４６】
設定部２２２は、マップ担当ＣＭ１００に異常が生じた場合、マップ担当ＣＭ１００以外のＣＭの中から正常に動作可能な装置を選択してマップ担当ＣＭ１００として設定する。例えば、設定部２２２は、異常検出部２２３によりマップ担当ＣＭ１００の異常を検出したと判定された場合、全てのＣＭの状態を取得する。ここでいうＣＭの状態とは、電圧や温度及び、通信状態を含み、ＣＭが運用可能であるか否かを示す情報を示す。
【００４７】
そして、設定部２２２は、取得したＣＭの状態を比較し、取得したＣＭの状態の中から最も安全に運用可能であるＣＭをマップ担当ＣＭ１００に選択する。そして、設定部２２２は、自装置がマップ担当ＣＭ１００に選択されたか否かを判定する。ここで、設定部２２２は、自装置がマップ担当ＣＭ１００に選択されたと判定した場合、自装置をマップ担当ＣＭ１００に設定を変更する。
【００４８】
異常検出部２２３は、マップ担当ＣＭ１００と通信が可能であるか否かを相互に監視し、マップ担当ＣＭ１００の異常を検出したか否かを判定する。異常検出部２２３は、他のＣＭとは通信が可能であるがマップ担当ＣＭ１００と通信が出来ない場合や、マップ担当ＣＭ１００から異常が生じた旨を通知された場合、設定部２２２にマップ担当ＣＭ１００に異常が生じた旨を通知する。
【００４９】
また、異常検出部２２３は、他のＣＭと通信が可能であるか否かを相互に監視する。また、異常検出部２２３は、自装置の電圧や温度を監視し、自装置に異常が生じたか否かを判定する。異常検出部２２３は、自装置に異常が生じたと判定した場合、自装置の異常を検出した旨を他のＣＭに通知する。
【００５０】
［実施例１に係るエクスパンダの構成］
次に、図４を用いて、実施例１に係るエクスパンダ３００ａ、３００ｂの構成を説明する。なお、ここでは、エクスパンダ３００ａ、３００ｂを総称してエクスパンダ３００と記載する。図４は、実施例１に係るエクスパンダの機能構成を示す機能ブロック図である。
【００５１】
図４に示すように、エクスパンダ３００は、物理ポート３０１ａ〜３０１ｃ、物理ポート３０２ａ〜３０２ｃ、記憶部３１０、制御部３２０を有する。物理ポート３０１ａ〜３０１ｃは、ＳＡＳ規格のインターフェースであり、マップ担当ＣＭ１００、ＣＭ２００ａ〜２００ｃとの情報のやり取りを制御する。物理ポート３０２ａ〜３０２ｃは、ＳＡＳ規格のインターフェースであり、エンクロージャ１０ａ〜１０ｃとの情報のやり取りを制御する。
【００５２】
記憶部３１０は、例えば、ＲＡＭなどの半導体メモリ素子であり、マップ情報テーブル格納部３１１、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２、ＢＣ（ＣＨＧ）発行回数テーブル格納部３１３を有する。マップ情報テーブル格納部３１１は、マップ情報テーブル格納部１１１と同様に、ストレージ装置１の構成を示す情報を記憶する。
【００５３】
ＢＣ（ＣＨＧ）送信先テーブル格納部３１２は、ＢＣ（ＣＨＧ）の送信先としてポート番号やＳＡＳアドレスを対応付けて記憶する。なお、このＢＣ（ＣＨＧ）送信先テーブル格納部３１２は、後述するポート設定部３２３により設定される。
【００５４】
ＢＣ（ＣＨＧ）発行回数テーブル格納部３１３は、ＢＣ（ＣＨＧ）の発行回数を記憶する。例えば、ＢＣ（ＣＨＧ）発行回数テーブル格納部３１３には、ＢＣ（ＣＨＧ）が３回発行されたことを示す「３」が記憶される。なお、このＢＣ（ＣＨＧ）発行回数テーブル格納部３１３は、コマンド転送部３２２により更新される。
【００５５】
制御部３２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、監視部３２１、コマンド転送部３２２、ポート設定部３２３を有する。
【００５６】
監視部３２１は、自装置と接続されるエンクロージャの構成が変化したか否かを判定する。監視部３２１は、自装置と接続されるエンクロージャの構成が変化したと判定した場合、コマンド転送部３２２にＢＣ（ＣＨＧ）を発行する旨を通知する。
【００５７】
コマンド転送部３２２は、エンクロージャ１０ａ〜１０ｃのいずれかからＢＣ（ＣＨＧ）を受信した場合、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２に指定される送信先に受信したＢＣ（ＣＨＧ）を送信する。
【００５８】
また、コマンド転送部３２２は、監視部３２１によりストレージ装置１の構成が変化したと判定された場合、ＢＣ（ＣＨＧ）を生成し、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２に指定される送信先に生成したＢＣ（ＣＨＧ）を送信する。
【００５９】
また、コマンド転送部３２２は、ＢＣ（ＣＨＧ）を１回送信する度に、ＢＣ（ＣＨＧ）発行回数テーブル格納部３１２の「発行回数」に１を加算する。
【００６０】
なお、コマンド転送部３２２によりＢＣ（ＣＨＧ）発行回数テーブル格納部３１２の「発行回数」が更新された後、制御部３２０は、下位のエンクロージャにディスカバリ処理を行い、物理リンクの数や物理リンクに接続された装置の数を示すマップ情報を取得する。
【００６１】
ポート設定部３２３は、ストレージ装置１の構成が変化した際に、マップ担当ＣＭ１００へＢＣ（ＣＨＧ）を送信するようにＢＣ（ＣＨＧ）送信先テーブル格納部３１２を設定する。例えば、ポート設定部３２３は、マップ担当ＣＭ１００から発行要求を受信した場合、発行要求に含まれるポート番号やＳＡＳアドレスを抽出し、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２が記憶する送信先として抽出したポート番号やＳＡＳアドレスを設定する。この結果、マップ情報が変化した場合、コマンド転送部３２２は、ＢＣ（ＣＨＧ）をマップ担当ＣＭ１００に送信する。
【００６２】
［実施例１に係るストレージ装置による処理の処理手順］
次に図５から図９を用いて、実施例１に係るストレージ装置１による処理の処理手順を説明する。
【００６３】
図５は、実施例１に係るストレージ装置による処理手順を示すフローチャートである。図５に示すように、ストレージ装置１は、マップ担当ＣＭ１００を決定する（ステップＳ１０１）。そして、マップ担当ＣＭ１００は、ＢＣ発行先特定コマンドをエクスパンダ３００ａ、３００ｂに送信する（ステップＳ１０２）。
【００６４】
また、ストレージ装置１は、ＣＭ１００、２００ａ〜２００ｃを監視し、異常が発生したか否かを判定する（ステップＳ１０３）。ここで、ストレージ装置１は、いずれかのＣＭに異常が発生したと判定した場合（ステップＳ１０３、Ｙｅｓ）、マップ担当ＣＭ１００に異常が発生したか否かを判定する（ステップＳ１０４）。
【００６５】
ストレージ装置１は、マップ担当ＣＭ１００に異常が発生したと判定した場合（ステップＳ１０４、Ｙｅｓ）、ステップＳ１０１に移行して、新たなマップ担当ＣＭを決定する。一方、ストレージ装置１は、いずれのＣＭにも異常が発生していないと判定した場合（ステップＳ１０３、Ｎｏ）、または、異常が発生したＣＭがマップ担当ＣＭ１００ではないと判定した場合（ステップＳ１０４、Ｎｏ）、ステップＳ１０３に移行する。
【００６６】
図６は、実施例１に係るマップ担当ＣＭによるマップ情報取得処理の処理手順を示すフローチャートである。マップ担当ＣＭ１００において、制御部１２０は、いずれかの物理ポート１０２ａ、１０２ｂを介してコマンドを受信したことを契機に処理を開始する。
【００６７】
図６に示すように、制御部１２０は、ＢＣ（ＣＨＧ）を受信したか否かを判定する（ステップＳ２０１）。そして、制御部１２０によりＢＣ（ＣＨＧ）を受信したと判定された場合（ステップＳ２０１、Ｙｅｓ）、取得部１２２は、エクスパンダ３００ａ、３００ｂにディスカバリ処理を行い、マップ情報を取得する（ステップＳ２０２）。そして、通知部１２４は、他のＣＭ２００ａ〜２００ｃにマップ情報を通知する（ステップＳ２０３）。
【００６８】
また、制御部１２０は、ＢＣ（ＣＨＧ）を受信していないと判定した場合（ステップＳ２０１、Ｎｏ）、またはステップＳ２０３の処理が終了後、ステップＳ２０１に移行し、ＢＣ（ＣＨＧ）を受信したか否かを判定する。
【００６９】
図７は、実施例１に係るＣＭによるマップ担当ＣＭ変更処理の処理手順を示すフローチャートである。例えば、ＣＭは、いずれかのＣＭに異常が発生したことを検出した場合に以下の処理を実行する。
【００７０】
図７に示すように、ＣＭ２００において、異常検出部２２３は、マップ担当ＣＭ１００の異常を検出したか否かを判定する（ステップＳ３０１）。ここで、異常検出部２２３によりマップ担当ＣＭ１００の異常を検出したと判定された場合（ステップＳ３０１、Ｙｅｓ）、設定部２２２は、全てのＣＭの状態を取得する（ステップＳ３０２）。
【００７１】
そして、設定部２２２は、取得したＣＭの状態を比較する（ステップＳ３０３）。続いて、設定部２２２は、自装置がマップ担当ＣＭに選択されたか否かを判定する（ステップＳ３０４）。ここで、設定部２２２は、マップ担当ＣＭに選択されたと判定した場合（ステップＳ３０４、Ｙｅｓ）、マップ担当ＣＭに設定を変更し（ステップＳ３０５）、処理を終了する。
【００７２】
一方、設定部２２２は、マップ担当ＣＭに選択されていないと判定した場合（ステップＳ３０４、Ｎｏ）、マップ担当ＣＭ１００の異常を検出していないと判定した場合（ステップＳ３０１、Ｎｏ）、処理を終了する。
【００７３】
図８は、実施例１に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。エクスパンダ３００において、制御部３２０は、物理ポート３０１ａ〜３０１ｃのいずれか介してコマンドを受信したことを契機に処理を開始する。
【００７４】
図８に示すように、制御部３２０は、ＢＣ発行先特定コマンドを受信したか否かを判定する（ステップＳ４０１）。そして、制御部３２０によりＢＣ発行先特定コマンドを受信したと判定された場合（ステップＳ４０１、Ｙｅｓ）、ポート設定部３２３は、以下の処理を実行する。すなわち、ポート設定部３２３は、受信したＢＣ発行先特定コマンドから抽出したＣＭに対してＢＣ（ＣＨＧ）を転送するように、ポートの設定を行う（ステップＳ４０２）。
【００７５】
また、制御部３２０は、ＢＣ発行先特定コマンドを受信していないと判定した場合（ステップＳ４０１、Ｎｏ）、またはステップＳ４０２の処理が終了後、ステップＳ４０１に移行し、ＢＣ発行先特定コマンドを受信したか否かを判定する。
【００７６】
図９は、実施例１に係るエクスパンダによるＢＣ（ＣＨＧ）転送処理の処理手順を示すフローチャートである。例えば、エクスパンダ３００は、電源が投入された後、定常的にこの処理を実行する。
【００７７】
図９に示すように、監視部３２１は、エクスパンダ３００に接続されるエンクロージャが変更されたか否かを判定する（ステップＳ５０１）。ここで、監視部３２１により、エクスパンダ３００に接続されるエンクロージャが変更されたと判定された場合（ステップＳ５０１、Ｙｅｓ）、コマンド転送部３２２は、ＢＣ（ＣＨＧ）を生成する（ステップＳ５０３）。そして、コマンド転送部３２２は、マップ担当ＣＭ１００にＢＣ（ＣＨＧ）を転送する（ステップＳ５０４）。
【００７８】
一方、監視部３２１により、エクスパンダ３００に接続されるエンクロージャが変更されていないと判定された場合（ステップＳ５０１、Ｎｏ）、制御部３２０は、以下の処理を実行する。すなわち、制御部３２０は、物理ポート３０２ａ〜３０２ｃのいずれかを介してＢＣ（ＣＨＧ）を受信したか否かを判定する（ステップＳ５０２）。
【００７９】
制御部３２０により、ＢＣ（ＣＨＧ）を受信したと判定された場合（ステップＳ５０２、Ｙｅｓ）、コマンド転送部３２２は、マップ担当ＣＭ１００にＢＣ（ＣＨＧ）を転送する（ステップＳ５０４）。
【００８０】
ステップＳ５０４の処理の終了後、または、制御部３２０により、ＢＣ（ＣＨＧ）を受信していないと判定された場合（ステップＳ５０２、Ｎｏ）、ステップＳ５０１に移行する。
【００８１】
上述してきたように、実施例１において、ストレージ装置１の構成が変化した場合、マップ担当ＣＭ１００がマップ情報を取得し、取得したマップ情報をＣＭ２００ａ〜２００ｃに通知する。これにより、ストレージ装置１は、エクスパンダ３００ａ、３００ｂにディスカバリ処理の集中を発生させない。
【００８２】
また、ストレージ装置１では、マップ担当ＣＭ１００が各エクスパンダに発行要求を送信することで、ＢＣ（ＣＨＧ）をマップ担当ＣＭ１００にだけ送信させる。これにより、エクスパンダは、他のＣＭにＢＣ（ＣＨＧ）を送信しなくてもよいので、通信負荷を軽減できる。
【００８３】
また、ストレージ装置１では、マップ担当ＣＭ１００に異常が生じても、マップ担当ＣＭ１００以外のＣＭから新たなマップ担当ＣＭを設定する。このため、ストレージ装置１は、マップ担当ＣＭ１００に異常が生じても、エクスパンダにディスカバリ処理の集中を発生させない。
【実施例２】
【００８４】
実施例１では、マップ担当ＣＭ１００は、コマンド発行先特定コマンドをエクスパンダ３００ａ、３００ｂに送信し、ＢＣ（ＣＨＧ）をマップ担当ＣＭ１００に送信するように要求した。ところで、各エクスパンダは、ストレージ装置１の構成が変化してもＢＣ（ＣＨＧ）をマップ担当ＣＭ１００に送信せず、マップ担当ＣＭ１００が各エクスパンダにストレージ装置１の構成が変化したか否かを問い合わせるようにしてもよいものである。そこで、実施例２では、マップ担当ＣＭ１００は、ストレージ装置１の構成が変化してもＢＣ（ＣＨＧ）を送信しないように、各エクスパンダに要求する場合を例に説明する。
【００８５】
［実施例２に係るストレージ装置の構成］
実施例２に係るストレージ装置の構成を説明する。実施例２に係るストレージ装置の構成は、マップ担当ＣＭ及びエクスパンダが有する機能が異なる点を除いて、図１に示した実施例１に係るストレージ装置１の構成と同様である。このため実施例２では、マップ担当ＣＭを４００、エクスパンダを５００ａ、５００ｂとして説明する。
【００８６】
［実施例２に係るマップ担当ＣＭの構成］
図１０を用いて、実施例２に係るマップ担当ＣＭ４００の構成を説明する。図１０は、実施例２に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。なお、同図では、マップ担当ＣＭに設定された場合の機能に関連する構成のみを図示する。
【００８７】
実施例２に係るマップ担当ＣＭ４００は、ＣＡ１０１、物理ポート１０２ａ、１０２ｂ、記憶部１１０、制御部４２０を有する。なお、ここでは、図２に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【００８８】
制御部４２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、コマンド発行部４２１、定期監視部４２２、取得部４２３、更新部１２３、通知部１２４、異常検出部１２５を有する。
【００８９】
コマンド発行部４２１は、ストレージ装置１の構成が変化した場合に、ストレージ装置１の構成が変化した旨を示すＢＣ（ＣＨＧ）を、自装置及び他のＣＭへの発行を禁止させる禁止要求をエクスパンダ５００ａ及び５００ｂに送信する。例えば、コマンド発行部４２１は、禁止要求に、ＳＡＳアドレスなどの自装置の識別子やポート番号を含めて各エクスパンダに送信するようにしてもよい。
【００９０】
定期監視部４２２は、エクスパンダ５００ａ、５００ｂを定期的に監視し、ストレージ装置１の構成が変化したか否かを判定する。例えば、定期監視部４２２は、所定の時間毎に、エクスパンダ５００ａ、５００ｂのコマンド発行回数を読み出す。そして、定期監視部４２２は、読み出した発行回数と前回読み出した発行回数の値から、エクスパンダ５００ａ、５００ｂのマップ情報が変化したか否かを判定する。ここで、定期監視部４２２は、エクスパンダ５００ａ、５００ｂのマップ情報が変化したと判定した場合、マップ情報を取得する旨を取得部４２３に通知する。
【００９１】
取得部４２３は、ストレージ装置１の構成が変化した場合に、新たなマップ情報をエクスパンダ５００ａ及び５００ｂから取得する。例えば、取得部４２３は、定期監視部４２２によりストレージ装置１の構成が変化したと判定された場合に、新たなマップ情報をエクスパンダ５００ａ及び５００ｂから取得する。なお、取得部４２３は、取得した新たなマップ情報を更新部１２３及び通知部１２４に出力する。
【００９２】
［実施例２に係るエクスパンダの構成］
次に、実施例２に係るエクスパンダの構成を説明する。実施例２に係るエクスパンダの構成は、ポート設定部３２３の一部の動作が異なる点を除いて、図４に示す実施例１に係るエクスパンダの構成と同様である。このため、ポート設定部３２３の符号をポート設定部５２３と置き換えた図４を用いて、実施例２に係るエクスパンダの構成を説明する。
【００９３】
ポート設定部５２３は、ストレージ装置１の構成が変化した際に、マップ担当ＣＭ４００及びＣＭ２００ａ〜２００ｃへＢＣ（ＣＨＧ）の送信を抑止させるようにＢＣ（ＣＨＧ）送信先テーブル格納部３１２を設定する。例えば、ポート設定部５２３は、マップ担当ＣＭ４００から禁止要求を受信した場合、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２に設定されていたポート番号やＳＡＳアドレスを消去する。この結果、コマンド転送部３２２は、マップ情報が変化した場合、ＢＣ（ＣＨＧ）をマップ担当ＣＭ４００及び各ＣＭのいずれにも送信しない。
【００９４】
［実施例２に係るストレージ装置による処理の処理手順］
次に図１１から図１４を用いて、実施例２に係るストレージ装置による処理の処理手順を説明する。
【００９５】
図１１は、実施例２に係るストレージ装置による処理手順を示すフローチャートである。図１１に示すように、ストレージ装置１は、マップ担当ＣＭ４００を決定する（ステップＳ６０１）。そして、マップ担当ＣＭ４００は、ＢＣ発行抑止コマンドをエクスパンダ５００ａ、５００ｂに送信する（ステップＳ６０２）。
【００９６】
また、ストレージ装置１は、ＣＭ４００、２００ａ〜２００ｃを監視し、異常が発生したか否かを判定する（ステップＳ６０３）。ここで、ストレージ装置１は、いずれかのＣＭに異常が発生したと判定した場合（ステップＳ６０３、Ｙｅｓ）、マップ担当ＣＭ４００に異常が発生したか否かを判定する（ステップＳ６０４）。
【００９７】
ストレージ装置１は、マップ担当ＣＭ４００に異常が発生したと判定した場合（ステップＳ６０４、Ｙｅｓ）、ステップＳ６０１に移行して、マップ担当ＣＭを決定する。一方、ストレージ装置１は、いずれのＣＭにも異常が発生していないと判定した場合（ステップＳ６０３、Ｎｏ）、または、異常が発生したＣＭがマップ担当ＣＭ４００ではないと判定した場合（ステップＳ６０４、Ｎｏ）、ステップＳ６０３に移行する。
【００９８】
図１２は、実施例２に係るマップ担当ＣＭによるマップ情報取得処理の処理手順を示すフローチャートである。マップ担当ＣＭ４００において、制御部４２０は、電源が投入された後、所定の時間ごとにこの処理を実行する。
【００９９】
図１２に示すように、制御部４２０は、所定の時間が経過したか否かを判定する（ステップＳ７０１）。制御部４２０により、所定の時間が経過したと判定された場合（ステップＳ７０１、Ｙｅｓ）、定期監視部４２２は、エクスパンダ５００ａ、５００ｂのコマンド発行回数を読み出す（ステップＳ７０２）。なお、制御部４２０は、所定の時間が経過していないと判定した場合（ステップＳ７０１、Ｎｏ）、所定の時間が経過するまで待機する。
【０１００】
定期監視部４２２は、読み出した発行回数の値から、エクスパンダ５００ａ、５００ｂのマップ情報が変化したか否かを判定する（ステップＳ７０３）。ここで、定期監視部４２２により、エクスパンダ５００ａ、５００ｂのマップ情報が変化したと判定された場合（ステップＳ７０３、Ｙｅｓ）、取得部４２３は、エクスパンダにディスカバリ処理を行い、マップ情報を取得する（ステップＳ７０４）。
【０１０１】
そして、通知部１２４は、他のＣＭ２００ａ〜２００ｃにマップ情報を通知する（ステップＳ７０５）。また、制御部４２０は、定期監視部４２２により、マップ情報が変化していないと判定された場合（ステップＳ７０３、Ｎｏ）、または、ステップＳ７０５の処理が終了後、ステップＳ７０１に移行し、所定の時間が経過したか否かを判定する。
【０１０２】
図１３は、実施例２に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。エクスパンダ５００において、制御部５２０は、物理ポート３０１ａ〜３０１ｃのいずれか介してコマンドを受信したことを契機に処理を開始する。
【０１０３】
図１３に示すように、制御部５２０は、ＢＣ発行抑止コマンドを受信したか否かを判定する（ステップＳ８０１）。そして、制御部５２０によりＢＣ発行抑止コマンドを受信したと判定された場合（ステップＳ８０１、Ｙｅｓ）、ポート設定部５２３は、ＢＣ（ＣＨＧ）の転送を抑止する設定を行う（ステップＳ８０２）。
【０１０４】
また、制御部５２０は、ＢＣ発行抑止コマンドを受信していないと判定した場合（ステップＳ８０１、Ｎｏ）、またはステップＳ８０２の処理が終了後、ステップＳ８０１に移行し、ＢＣ発行抑止コマンドを受信したか否かを判定する。
【０１０５】
図１４は、実施例２に係るエクスパンダによるＢＣ（ＣＨＧ）転送抑止処理の処理手順を示すフローチャートである。例えば、エクスパンダ５００は、電源が投入された後、定常的にこの処理を実行する。
【０１０６】
図１４に示すように、監視部３２１は、エクスパンダ５００に接続されるエンクロージャが変更されたか否かを判定する（ステップＳ９０１）。ここで、監視部３２１により、エクスパンダ５００に接続されるエンクロージャが変更されていないと判定された場合（ステップＳ９０１、Ｎｏ）、制御部５２０は、以下の処理を実行する。すなわち、制御部５２０は、物理ポート３０２ａ〜３０２ｃのいずれかを介してＢＣ（ＣＨＧ）を受信したか否かを判定する（ステップＳ９０２）。
【０１０７】
ここで、制御部５２０により、ＢＣ（ＣＨＧ）を受信したと判定された場合（ステップＳ９０２、Ｙｅｓ）、コマンド転送部３２２は、以下の処理を実行する。すなわち、コマンド転送部３２２は、ＢＣ（ＣＨＧ）発行回数テーブル格納部３１３に記憶されるコマンド発行回数に１を加算する（ステップＳ９０３）。また、監視部３２１により、エクスパンダ５００に接続されるエンクロージャが変更されたと判定された場合（ステップＳ９０１、Ｙｅｓ）、コマンド転送部３２２は、ＢＣ（ＣＨＧ）発行回数テーブル格納部３１３に記憶されるコマンド発行回数に１を加算する。
【０１０８】
ステップＳ９０３の処理の終了後、または、制御部５２０により、ＢＣ（ＣＨＧ）を受信していないと判定された場合（ステップＳ９０２、Ｎｏ）、ステップＳ９０１に移行する。
【０１０９】
［実施例２の効果］
上述してきたように、実施例２では、マップ担当ＣＭ４００は、ストレージ装置１の構成が変化したと判定した場合、マップ情報を取得し、取得したマップ情報をＣＭ２００ａ〜２００ｃに通知する。これにより、ストレージ装置１は、エクスパンダ３００ａ、３００ｂにディスカバリ処理の集中を発生させない。
【０１１０】
また、ストレージ装置１では、マップ担当ＣＭ４００は、各エクスパンダにＢＣ（ＣＨＧ）の発行を禁止させる。そして、マップ担当ＣＭ４００は、各エクスパンダのＢＣ（ＣＨＧ）発行回数を監視し、ストレージ装置１の構成が変化したか否かを判定する。これにより、各エクスパンダは、マップ担当ＣＭ４００及び他のＣＭのいずれにもＢＣ（ＣＨＧ）を送信しなくてもよいので、通信負荷を軽減できる。
【実施例３】
【０１１１】
実施例１では、マップ担当ＣＭ１００が自装置にのみＢＣ（ＣＨＧ）を送信するように各エクスパンダに要求する場合を例に説明した。また、実施例２では、マップ担当ＣＭ４００が自装置及び他のＣＭのいずれにもＢＣ（ＣＨＧ）を送信しないように各エクスパンダに要求する場合を例に説明した。ところで、ストレージ装置１において、マップ担当ＣＭが変更された場合、変更後のマップ担当ＣＭは、変更前のマップ担当ＣＭとは異なる要求を各エクスパンダに送信してもよいものである。そこで、実施例３では、マップ担当ＣＭごとに、ＢＣ（ＣＨＧ）の発行要求もしくは禁止要求を切り替える場合を例に説明する。
【０１１２】
［実施例３に係るストレージ装置の構成］
実施例３に係るストレージ装置の構成を説明する。実施例３に係るストレージ装置の構成は、マップ担当ＣＭ及びエクスパンダが有する機能が異なる点を除いて、図１に示した実施例１に係るストレージ装置１の構成と同様である。このため実施例３では、マップ担当ＣＭを６００、エクスパンダを７００ａ、７００ｂとして説明する。
【０１１３】
［実施例３に係るマップ担当ＣＭの構成］
図１５を用いて、実施例３に係るマップ担当ＣＭ６００の構成を説明する。図１５は、実施例３に係るマップ担当ＣＭの機能構成を示す機能ブロック図である。なお、同図では、マップ担当ＣＭに設定された場合の機能に関連する構成のみを図示する。
【０１１４】
実施例３に係るマップ担当ＣＭ６００は、ＣＡ１０１、物理ポート１０２ａ、１０２ｂ、記憶部６１０、制御部６２０を有する。なお、ここでは、図２または図１０に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。
【０１１５】
記憶部６１０は、例えば、ＲＡＭなどの半導体メモリ素子であり、マップ情報テーブル格納部１１１、モード設定テーブル格納部６１１を有する。モード設定テーブル格納部６１１は、ＢＣ（ＣＨＧ）を、自装置のみへ発行させる発行要求モードであるか、ＢＣ（ＣＨＧ）を、自装置及び他のＣＭへの発行を禁止させる禁止要求モードであるかを示す情報を記憶する。例えば、モード設定テーブル格納部６１１は、発行要求モードである場合には「１」を記憶し、禁止要求モードである場合には、「０」を記憶する。
【０１１６】
制御部６２０は、例えば、ＣＰＵやＭＰＵなどの電子回路であり、コマンド発行部６２１、定期監視部４２２、取得部４２３、更新部１２３、通知部１２４、異常検出部１２５を有する。
【０１１７】
コマンド発行部６２１は、モード設定テーブル格納部６１１を参照して、自装置のモードを判定し、判定したモードに応じたコマンドをエクスパンダ７００ａ、７００ｂに送信する。例えば、コマンド発行部６２１は、モード設定テーブル格納部６１１に発行要求モードに設定されていることを示す「１」が記憶されていると判定した場合、ＢＣ（ＣＨＧ）を、自装置のみへ発行させる発行要求を各エクスパンダに送信する。また、コマンド発行部６２１は、モード設定テーブル格納部６１１に禁止要求モードに設定されていることを示す「０」が記憶されていると判定した場合、ＢＣ（ＣＨＧ）を、自装置及び他のＣＭへの発行を禁止させる禁止要求を各エクスパンダに送信する。
【０１１８】
［実施例３に係るエクスパンダの構成］
次に、実施例３に係るエクスパンダの構成を説明する。実施例３に係るエクスパンダの構成は、ポート設定部３２３の一部の動作が異なる点を除いて、図４に示す実施例１に係るエクスパンダの構成と同様である。このため、ポート設定部３２３の符号をポート設定部７２３と置き換えた図４を用いて、実施例３に係るエクスパンダの構成を説明する。
【０１１９】
ポート設定部７２３は、マップ担当ＣＭ６００から発行要求を受信した場合、発行要求に含まれるポート番号やＳＡＳアドレスを抽出し、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２が記憶する送信先として抽出したポート番号やＳＡＳアドレスを設定する。この結果、マップ情報が変化した場合、コマンド転送部３２２は、ＢＣ（ＣＨＧ）をマップ担当ＣＭ６００に送信する。
【０１２０】
また、ポート設定部７２３は、マップ担当ＣＭ６００から禁止要求を受信した場合、ＢＣ（ＣＨＧ）送信先テーブル格納部３１２に設定されていたポート番号やＳＡＳアドレスを消去する。この結果、コマンド転送部３２２は、マップ情報が変化した場合、ＢＣ（ＣＨＧ）をマップ担当ＣＭ６００及び各ＣＭのいずれにも送信しない。
【０１２１】
［実施例３に係るストレージ装置による処理の処理手順］
次に図１６及び図１７を用いて、実施例３に係るストレージ装置１による処理の処理手順を説明する。
【０１２２】
図１６は、実施例３に係るストレージ装置による処理手順を示すフローチャートである。図１６に示すように、ストレージ装置１は、マップ担当ＣＭ６００を決定する（ステップＳ１００１）。そして、マップ担当ＣＭ６００は、モード設定テーブル格納部６１１を参照してモードが発行先特定モードであるか否かを判定する（ステップＳ１００２）。
【０１２３】
ここで、マップ担当ＣＭ６００は、モードが発行先特定モードであると判定した場合（ステップＳ１００２、Ｙｅｓ）、ＢＣ発行先特定コマンドをエクスパンダ７００に送信する（ステップＳ１００３）。一方、マップ担当ＣＭ６００は、モードが発行先特定モードではないと判定した場合（ステップＳ１００２、Ｎｏ）、ＢＣ発行抑止コマンドをエクスパンダ７００に送信する（ステップＳ１００４）。
【０１２４】
また、ストレージ装置１は、ＣＭ６００、２００ａ〜２００ｃを監視し、異常が発生したか否かを判定する（ステップＳ１００５）。ここで、ストレージ装置１は、いずれかのＣＭに異常が発生したと判定した場合（ステップＳ１００５、Ｙｅｓ）、マップ担当ＣＭ６００に異常が発生したか否かを判定する（ステップＳ１００６）。
【０１２５】
ストレージ装置１は、マップ担当ＣＭ６００に異常が発生したと判定した場合（ステップＳ１００６、Ｙｅｓ）、ステップＳ１００１に移行して、マップ担当ＣＭを決定する。一方、ストレージ装置１は、いずれのＣＭにも異常が発生していないと判定した場合（ステップＳ１００５、Ｎｏ）、または、異常が発生したＣＭがマップ担当ＣＭ６００ではないと判定した場合（ステップＳ１００６、Ｎｏ）、ステップＳ１００５に移行する。
【０１２６】
図１７は、実施例３に係るエクスパンダによるポート設定処理の処理手順を示すフローチャートである。エクスパンダ７００において、制御部７２０は、物理ポート３０１ａ〜３０１ｃのいずれか介してコマンドを受信したことを契機に処理を開始する。
【０１２７】
図１７に示すように、制御部７２０は、コマンドを受信したか否かを判定する（ステップＳ１１０１）。ここで、制御部７２０は、コマンドを受信したと判定した場合（ステップＳ１１０１、Ｙｅｓ）、ＢＣ発行先特定コマンドを受信したか否かを判定する（ステップＳ１１０２）。
【０１２８】
そして、制御部７２０によりＢＣ発行先特定コマンドを受信したと判定された場合（ステップＳ１１０２、Ｙｅｓ）、ポート設定部７２３は、以下の処理を実行する。すなわち、ポート設定部７２３は、受信したＢＣ発行先特定コマンドから抽出したＣＭに対してＢＣ（ＣＨＧ）を転送するように、ポートの設定を行う（ステップＳ１１０３）。
【０１２９】
一方、制御部７２０によりＢＣ発行先特定コマンドを受信していないと判定された場合（ステップＳ１１０２、Ｎｏ）、ポート設定部７２３は、ＢＣ（ＣＨＧ）の転送を抑止する設定を行う（ステップＳ１１０４）。
【０１３０】
また、制御部７２０は、コマンドを受信していないと判定した場合（ステップＳ１１０１、Ｎｏ）、ステップＳ１１０３、または、ステップＳ１１０４の処理が終了後、ステップＳ１１０１に移行し、コマンドを受信したか否かを判定する。
【０１３１】
［実施例３の効果］
上述してきたように、本実施例３では、コマンド発行部６２１が、モード設定テーブル格納部６１１に記憶される情報を判定することで、ＢＣ（ＣＨＧ）の発行モードをマップ担当ＣＭごとに設定できる。
【実施例４】
【０１３２】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例４では、本発明に含まれる他の実施例について説明する。
【０１３３】
（システム構成等）
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。また、記憶部が格納する情報は一例に過ぎず、必ずしも説明通りに情報が記憶される必要はない。
【０１３４】
また、ストレージ装置１において、セルフディスカバーモードを採用するものとして説明したが、これに限定されるものではない。例えば、ストレージ装置１では、各エクスパンダ及び各エンクロージャは、ＣＭによりマップ情報が登録及び更新されるノンセルフディスカバーモードを採用してもよい。ノンセルフディスカバーモードを採用する場合、マップ担当ＣＭ１００は、エクスパンダ３００ａ、３００ｂ、エンクロージャ１０ａ〜１０ｃ、２０ａ〜２０ｃ、３０ａ〜３０ｃから新たなマップ情報を取得する。
【０１３５】
また、マップ担当ＣＭは、ストレージ装置１の起動時に管理者により設定されるものとして説明したが、これに限定されるものではない。例えば、ストレージ装置１の起動時に、各ＣＭがＣＭの状態を相互にやり取りし、取得したＣＭの状態に基づいてＣＭの中からあるＣＭをマップ担当ＣＭに選択するようにしてもよい。
【０１３６】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、マップ担当ＣＭ１００では、取得部１２２と更新部１２３とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１３７】
１  ストレージ装置
１０ａ〜１０ｃ、２０ａ〜２０ｃ、３０ａ〜３０ｃ  エンクロージャ
１００  マップ担当ＣＭ
１１１、２１１  マップ情報テーブル格納部
１２２  取得部
１２３  更新部
１２４  通知部
２００ａ〜２００ｃ  ＣＭ
２２１  更新部
３００ａ、３００ｂ  エクスパンダ
【図１】
2013134607.tif 000003
【図２】
2013134607.tif 000004
【図３】
2013134607.tif 000005
【図４】
2013134607.tif 000006
【図５】
2013134607.tif 000007
【図６】
2013134607.tif 000008
【図７】
2013134607.tif 000009
【図８】
2013134607.tif 000010
【図９】
2013134607.tif 000011
【図１０】
2013134607.tif 000012
【図１１】
2013134607.tif 000013
【図１２】
2013134607.tif 000014
【図１３】
2013134607.tif 000015
【図１４】
2013134607.tif 000016
【図１５】
2013134607.tif 000017
【図１６】
2013134607.tif 000018
【図１７】
2013134607.tif 000019
【図１８】
2013134607.tif 000020