(57)【要約】【課題】プロトコルレベルで異常が発生したデバイスを検出することを課題とする。【解決手段】ＲＡＩＤ装置は、ＲＡＩＤの構成対象である複数のＨＤＤを有する。そして、ＲＡＩＤ装置は、ＲＡＩＤの構成を制御し、複数のＨＤＤに対して各種データ処理を実施するホストと複数のＨＤＤとの間の通信を制御するコントローラ部を有する。このような状態において、ＲＡＩＤ装置は、複数のＨＤＤ各々に対して一意な物理アドレスを割り与える初期化処理が実行された際に、複数のＨＤＤ各々から初期化フレームを受信する。そして、ＲＡＩＤ装置は、受信された初期化フレームに含まれる情報に基づいて、複数のＨＤＤ各々の異常を検出する。【選択図】図１
2011159243.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤの構成対象である複数のデバイスと、
前記ＲＡＩＤの構成を制御し、前記複数のデバイスに対して各種データ処理を実施するホストと前記複数のデバイスとの間の通信を制御するコントローラ部と、
前記複数のデバイス各々に対して一意な物理アドレスを割り与える初期化処理が実行された際に、前記複数のデバイス各々から初期化フレームを受信するフレーム受信部と、
前記フレーム受信部によって受信された初期化フレームに含まれる情報に基づいて、前記複数のデバイス各々の異常を検出する異常検出部と
を有することを特徴とするＲＡＩＤ装置。
【請求項２】
前記異常検出部は、前記フレーム受信部によって受信された初期化フレームに含まれる識別子がファイバーチャネルプロトコルで定義される所定値でない場合に、当該初期化フレームを送信したデバイスを異常デバイスとして検出することを特徴とする請求項１に記載のＲＡＩＤ装置。
【請求項３】
前記フレーム受信部は、前記初期化処理の実行が当該装置の起動時である場合には、前記複数のデバイス各々と直接接続するループバック接続に移行して、前記初期化フレームを受信することを特徴とする請求項２に記載のＲＡＩＤ装置。
【請求項４】
他のデバイスから送信された初期化フレームを受信して、当該初期化フレームに含まれる前記識別子を保持するとともに、直接接続されるデバイスに当該初期化フレームを送信するフレーム送信部をさらに有し、
前記異常検出部は、前記フレーム受信部によって受信された初期化フレームに含まれる識別子がファイバーチャネルプロトコルで定義される所定値でない場合に、前記フレーム受信部によって受信された初期化フレームに含まれる識別子と前記フレーム送信部によって保持される識別子とを比較し、一致しない場合に、当該初期化フレームを送信したデバイスを異常デバイスとして検出することを特徴とする請求項１に記載のＲＡＩＤ装置。
【請求項５】
２系統のインタフェースを有し、ＲＡＩＤの構成対象である複数のデバイスと、
前記ＲＡＩＤの構成を制御し、前記複数のデバイスに対して各種データ処理を実施するホストと前記複数のデバイスとの間の通信を制御するコントローラ部と、
前記複数のデバイス各々と前記コントローラ部との間の通信を２系統の経路で制御する通信制御部とを有し、
前記通信制御部は、前記複数のデバイス各々に対して一意な物理アドレスを割り与える初期化処理が実行された際に、前記複数のデバイス各々から初期化フレームを２系統の経路それぞれで受信し、両系統でそれぞれ受信された初期化フレームに含まれるデバイス固有の識別子が一致するか否かを判定し、一致しない場合に、当該初期化フレームを送信したデバイスを異常デバイスとして検出することを特徴とするＲＡＩＤ装置。
【請求項６】
前記コントローラ部は、前記初期化フレームを受信して前記デバイス固有の識別子を取得し、前記通信制御部によって前記デバイス固有の識別子が一致すると判定された場合に、当該コントローラ部が取得したデバイス固有の識別子と前記通信制御部が取得したデバイス固有の識別子とを比較し、一致しない場合に、当該初期化フレームを送信したデバイスを異常デバイスとして検出することを特徴とする請求項５に記載のＲＡＩＤ装置。
【請求項７】
複数のデバイス各々に対して一意な物理アドレスを割り与える初期化処理が開始された場合に、前記初期化処理を実施する初期化フレームを前記複数のデバイス各々から受信するフレーム受信部と、
前記フレーム受信部によって受信された初期化フレームに含まれる情報に基づいて、前記デバイスの異常を検出する異常検出部と
を有することを特徴とする異常デバイス検出装置。
【請求項８】
ＲＡＩＤの構成対象である複数のデバイス各々と前記ＲＡＩＤを制御するコントローラ部との間の２系統の経路各々において、前記複数のデバイス各々に対して一意な物理アドレスを割り与える初期化処理が開始された場合に、前記初期化処理を実施する初期化フレームを前記複数のデバイス各々から受信する受信ステップと、
前記受信ステップで受信された初期化フレームに含まれる情報に基づいて、前記複数のデバイス各々の異常を検出する第１異常検出ステップと、
前記２系統の経路各々で受信された初期化フレームに含まれるデバイス固有の識別子が一致するか否かを判定し、一致しない場合に、当該初期化フレームを送信したデバイスを異常デバイスとして検出する第２異常検出ステップと
を含んだことを特徴とする異常デバイス検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ装置、異常デバイス検出装置および異常デバイス検出方法に関する。
【背景技術】
【０００２】
従来、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などFibre  Channel  Inter  Face（以下、ＦＣＩ／Ｆという）に対応するデバイスを複数搭載した記憶装置であるＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）装置が利用されている。
【０００３】
ＲＡＩＤ装置は、複数台のデバイスによってＲＡＩＤ−０やＲＡＩＤ−５などのＲＡＩＤを構成してデバイスに記憶されるデータを冗長保存することにより、１台のデバイスが故障した場合でも記憶されるデータを保持することができる。そして、ＲＡＩＤ装置ＲＡＩＤコントローラが、ＲＡＩＤ装置全体、言い換えると、ＲＡＩＤ−０やＲＡＩＤ−５などのＲＡＩＤの種別等を制御する。
【０００４】
また、ＦＣＩ／Ｆに対応するデバイスは、２つのＦＣＩ／Ｆを有しており、ＲＡＩＤコントローラも、上記デバイスが有する２つのＦＣＩ／Ｆ各々に直接アクセスする２系統のデバイスアダプタ（Device  Adapter：以下、ＤＡという）を有する。なお、１つのＤＡには、最大１２６台のデバイスが接続可能である。
【０００５】
このようなＲＡＩＤ装置は、ＦＣＩ／Ｆの初期化処理（Loop  Initialization）やPortLoginによって、当該ＲＡＩＤ装置に接続されたデバイスを認識する。具体的に例を挙げると、ＲＡＩＤ装置は、ＦＣＩ／Ｆの初期化処理を開始すると、ＤＡを含む全てのデバイス間で、各デバイス固有に割り当てられているＷＷＮ（World  Wide  Name）の比較を行う。そして、ＲＡＩＤ装置は、最も小さいＷＷＮを保持するデバイスをループマスターと決定する。つまり、デバイス間のＷＷＮ比較によってループマスターが決定される。
【０００６】
より具体的に説明すると、ＲＡＩＤ装置に接続された各デバイスは、自分のＷＷＮを含むフレームをＦＣループ経路上の次のデバイスに送信する。その後、デバイスは、他のデバイスからＷＷＮを含むフレームを受信すると、当該ＷＷＮが自身の保持するＷＷＮよりも大きいか否かを判定する。そして、デバイスは、受信したフレームに含まれるＷＷＮが自身のＷＷＮよりも大きい場合には、当該フレームに自身のＷＷＮを付加して、ＦＣループ経路上の次のデバイスに送信する。一方、デバイスは、受信したフレームに含まれるＷＷＮが自身のＷＷＮよりも小さい場合には、当該フレームをそのまま、ＦＣループ経路上の次のデバイスに送信する。そして、全てのデバイスにおいて上記したＷＷＮの比較および更新が実施され、自身のＷＷＮを含むフレームを受信したデバイスがループマスターとして決定される。
【０００７】
続いて、ループマスターは、各デバイスに物理アドレス（ＡＬ＿ＰＡ：Arbitrated  Loop_Physical  Address）を割り与え、ループマスターのＡＬ＿ＰＡを先頭とするＡＬ＿ＰＡのＭＡＰを生成し、各デバイスの接続位置等を取得して初期化処理を終了する。
【０００８】
その後、ＲＡＩＤコントローラのＤＡは、PortLoginコマンドを各デバイスに発行して各デバイスからＷＷＮを取得し、接続される各デバイスを認識する。そして、ＲＡＩＤコントローラは、各デバイスごとに、２系統のＤＡそれぞれに取得されたＷＷＮを比較し、各ＷＷＮが一致した場合に、ＤＡで取得されたＷＷＮがデバイスのＷＷＮであると認識する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−６９４５９号公報
【特許文献２】特開２００３−１５８５２６号公報
【特許文献３】特開２００５−２０８９７１号公報
【非特許文献】
【００１０】
【非特許文献１】「FIBRE  CHANNEL  ARBITRATED  LOOP（FC-AL）  REV  4.5」、working  draft  proposal  American  National  Standard  for  Information  Technology、June  1、1995
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の技術では、プロトコルレベルで異常が発生したデバイスを検出できないという課題があった。具体的には、従来の技術は、デバイスから出力される電気的な異常検出を行っているため、一見、正常動作しているように判断されるデバイスを異常デバイスとして検出することができない。例えば、初期化処理において各デバイスで送受信され、ループマスターを決定するのに使用されるＬＩＳＭ（Loop  Initialization  Select  Master）フレーム内でビットエラーが発生したデバイスを検出することができない。
【００１２】
具体的に例を挙げると、ＬＩＳＭフレームに含まれる識別子であるＳ＿ＩＤ又はＤ＿ＩＤにビットエラーが発生し、かつ、ビットエラーが発生したＳ＿ＩＤ又はＤ＿ＩＤに対応したＣＲＣ（Cyclic  Redundancy  Check）を付加した場合である。この場合、ＲＡＩＤ装置では、ＣＲＣが異常でないため、Ｓ＿ＩＤ又はＤ＿ＩＤの値が異常のある不正な値であるにも関わらず、正当な値と誤認識する。この結果、ＲＡＩＤ装置は、異常を検出できずに、ＲＡＩＤ装置に接続される各デバイスを制御することとなり、ＤＡの正常動作を保証できない。
【００１３】
また、ＬＩＳＭフレームに含まれるＷＷＮにビットエラーが発生し、かつ、ビットエラーが発生したＷＷＮに対応したＣＲＣをデバイスが付加した場合である。各デバイスは、受信したＬＩＳＭフレーム内のＷＷＮと自装置のＷＷＮとを比較し、自装置のＷＷＮの方が小さい場合には、自装置ＷＷＮをＬＩＳＭフレームに付加して次のデバイスに送信する。したがって、ＲＡＩＤ装置では、各デバイスを通過したＬＩＳＭフレームを受信した際に、ＬＩＳＭフレームに付加されているＷＷＮを最も小さい値のＷＷＮと判断し、当該ＷＷＮを保持するデバイスをループマスターと決定する。つまり、ＲＡＩＤ装置では、全てのデバイスそれぞれのＷＷＮを認識することができないので、各デバイスを通過したＬＩＳＭフレームに付加されたＷＷＮがビットエラーによって最も小さい値となったＷＷＮか否かを判断することができない。
【００１４】
この結果、ＲＡＩＤ装置は、ビットエラーによって最も小さい値となってしまったＷＷＮを保持するデバイスをループマスターと決定してしまい、ＲＡＩＤ装置そのものの動作を保証できなくなる。なお、Ｓ＿ＩＤは、初期化後には送信元物理アドレスが格納され、Ｄ＿ＩＤには、初期化後に宛先物理アドレスが格納される。
【００１５】
開示の技術は、上記に鑑みてなされたものであって、プロトコルレベルで異常が発生したデバイスを検出することが可能であるＲＡＩＤ装置、異常デバイス検出装置および異常デバイス検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本願の開示するＲＡＩＤ装置、異常デバイス検出装置および異常デバイス検出方法は、一つの態様において、ＲＡＩＤの構成対象である複数のデバイスを有する。そして、前記ＲＡＩＤの構成を制御し、前記複数のデバイスに対して各種データ処理を実施するホストと前記複数のデバイスとの間の通信を制御するコントローラ部を有する。そして、前記複数のデバイス各々に対して一意な物理アドレスを割り与える初期化処理が実行された際に、前記複数のデバイス各々から初期化フレームを受信するフレーム受信部を有する。さらに、前記フレーム受信部によって受信された初期化フレームに含まれる情報に基づいて、前記複数のデバイス各々の異常を検出する異常検出部を有することを特徴とする。
【発明の効果】
【００１７】
本願の開示するＲＡＩＤ装置、異常デバイス検出装置および異常デバイス検出方法の一つの態様によれば、プロトコルレベルで異常が発生したデバイスを検出することが可能であるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】図１は、実施例１に係るＲＡＩＤ装置の構成を示すブロック図である。
【図２】図２は、ポート診断部の詳細を示すブロック図である。
【図３】図３は、ポート診断部のループバック接続を示す図である。
【図４】図４は、ＬＩＳＭフレームのフォーマット例を示す図である。
【図５】図５は、実施例１に係るＲＡＩＤ装置の初期化処理の流れを示すフローチャートである。
【図６】図６は、初期化処理における異常検出処理の流れを示すフローチャートである。
【図７】図７は、初期化処理における各デバイスのＬＩＳＭフレーム処理の流れを示すフローチャートである。
【図８】図８は、実施例２に係るポート診断部の詳細を示すブロック図である。
【図９】図９は、実施例２に係る識別子ＤＢに記憶される情報の例を示す図である。
【図１０】図１０は、実施例２に係る識別子ＤＢに記憶される情報の例を示す図である。
【図１１】図１１は、実施例２に係る識別子ＤＢに記憶される情報の例を示す図である。
【図１２】図１２は、実施例２に係る異常検出処理の流れを示すフローチャートである。
【図１３】図１３は、実施例３に係るポート診断部の詳細を示すブロック図である。
【図１４】図１４は、実施例３に係る識別子ＤＢに記憶される情報の例を示す図である。
【図１５】図１５は、実施例３に係る異常検出処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下に、本願の開示するＲＡＩＤ装置、異常デバイス検出装置および異常デバイス検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２０】
図１は、実施例１に係るＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）装置の構成を示すブロック図である。図１に示すように、ＲＡＩＤ装置２０は、ファイバーチャネル（ＦＣ）やｉＳＣＳＩ（Internet  Small  Computer  System  Interface）などを用いて、ＲＡＩＤ装置２０にデータを格納したり読み出したりするサーバ装置であるホスト１０と接続される。
【００２１】
このＲＡＩＤ装置２０は、図１に示すように、ＨＤＤ（Hard  Disk  Drive）２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃと、コントローラ部２１と、ポートバイパス回路２２と、ポートバイパス回路２７とを有する。なお、ＲＡＩＤ装置２０は、２系統の通信経路でホスト１０と接続し、さらに、コントローラ部２１と各ＨＤＤと各ポートバイパス回路との間も２系統の通信経路で接続する。したがって、ＲＡＩＤ装置２０は、いずれかの経路が切断等された場合でも、正常に通信を行うことができる。
【００２２】
ＨＤＤ２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃは、ＲＡＩＤ−０やＲＡＩＤ−５などのＲＡＩＤを構成するデバイスであり、ホスト１０によって格納されたデータを記憶する。各ＨＤＤは、２つのFibre  Channel  Inter  Face（以下、ＦＣＩ／Ｆという）を有する。そして、各ＨＤＤは、ファブリック接続（ＦＣ−ＳＷ）やＦＣ−ＡＬ（Fibre  Channel  Arbitrated  Loop）接続によって、他のＨＤＤやコントローラ部２１、２つのポートバイパス回路それぞれと接続される。
【００２３】
コントローラ部２１は、チャネルアダプタ２１ａと２１ｂ、ＲＡＩＤコントローラ２１ｃと２１ｄ、デバイスアダプタ２１ｅと２１ｆとのそれぞれをＰＣＩ  Ｅｘｐｒｅｓｓ等で接続する。
【００２４】
チャネルアダプタ２１ａは、ＦＣやｉＳＣＳＩで接続されるホスト１０のホストアダプタ１０ａとの間の通信を制御する。また、チャネルアダプタ２１ａは、ＰＣＩ  Ｅｘｐｒｅｓｓ等で接続されるＲＡＩＤコントローラ２１ｃとの間の通信を制御する。同様に、チャネルアダプタ２１ｂは、ＦＣやｉＳＣＳＩで接続されるホスト１０のホストアダプタ１０ｂとの間の通信を制御する。また、チャネルアダプタ２１ｂは、ＰＣＩ  Ｅｘｐｒｅｓｓ等で接続されるＲＡＩＤコントローラ２１ｄとの間の通信を制御する。
【００２５】
ＲＡＩＤコントローラ２１ｃは、チャネルアダプタ２１ａ、ＲＡＩＤコントローラ２１ｄ、デバイスアダプタ２１ｅのそれぞれとＰＣＩ  Ｅｘｐｒｅｓｓ等で接続される。また、ＲＡＩＤコントローラ２１ｃは、パリティ演算やデバイス、ディスクの管理を実施し、ＨＤＤ２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃから構成されるＲＡＩＤ構成を実装制御する。すなわち、ＲＡＩＤコントローラ２１ｃは、例えばデータの書き込みや読出しなどＨＤＤ２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃそれぞれに対する各種処理を制御する。
【００２６】
同様に、ＲＡＩＤコントローラ２１ｄは、チャネルアダプタ２１ｂ、ＲＡＩＤコントローラ２１ｃ、デバイスアダプタ２１ｆのそれぞれとＰＣＩ  Ｅｘｐｒｅｓｓ等で接続される。また、ＲＡＩＤコントローラ２１ｄは、パリティ演算やディスクの管理を実施し、ＨＤＤ２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃから構成されるＲＡＩＤ構成を実装制御する。すなわち、ＲＡＩＤコントローラ２１ｄは、例えばデータの書き込みや読出しなどＨＤＤ２０ａ、ＨＤＤ２０ｂ、ＨＤＤ２０ｃそれぞれに対する各種処理を制御する。
【００２７】
デバイスアダプタ２１ｅは、ＲＡＩＤコントローラ２１ｃとＰＣＩ  Ｅｘｐｒｅｓｓ等で接続し、ポートバイパス回路２２を介して各ＨＤＤとＦＣで接続するイニシエータ等である。例えば、デバイスアダプタ２１ｅは、ポートバイパス回路２２の各ポート診断部と各ＨＤＤとをＦＣループ接続する。ＦＣループとは、デバイスアダプタ２１ｅとポートバイパス回路２２の各ポート診断部とがループ接続される状態のことをいう。具体的には、デバイスアダプタ２１ｅからポート診断部２４、ポート診断部２４からＨＤＤ２０ａ、ＨＤＤ２０ａからポート診断部２４、ポート診断部２４からポート診断部２５に接続される。さらに、ポート診断部２５からＨＤＤ２０ｂ、ＨＤＤ２０ｂからポート診断部２５、ポート診断部２５からポート診断部２６、ポート診断部２６からＨＤＤ２０ｃ、ＨＤＤ２０ｃからポート診断部２６、ポート診断部２６からデバイスアダプタ２１ｅに接続される。
【００２８】
同様に、デバイスアダプタ２１ｆは、ＲＡＩＤコントローラ２１ｄとＰＣＩ  Ｅｘｐｒｅｓｓ等で接続し、ポートバイパス回路２７を介して各ＨＤＤとＦＣで接続するイニシエータ等である。例えば、デバイスアダプタ２１ｆは、ポートバイパス回路２７の各ポート診断部と各ＨＤＤとをＦＣループ接続する。具体的には、デバイスアダプタ２１ｆからポート診断部２９、ポート診断部２９からＨＤＤ２０ａ、ＨＤＤ２０ａからポート診断部２９、ポート診断部２９からポート診断部３０に接続される。さらに、ポート診断部３０からＨＤＤ２０ｂ、ＨＤＤ２０ｂからポート診断部３０、ポート診断部３０からポート診断部３１、ポート診断部３１からＨＤＤ２０ｃ、ＨＤＤ２０ｃからポート診断部３１、ポート診断部３１からデバイスアダプタ２１ｆに接続される。
【００２９】
ポートバイパス回路２２は、ポートバイパス回路コントローラ２３、ポート診断部２４、ポート診断部２５、ポート診断部２６を有し、それぞれをＦＣで接続する。なお、ポートバイパス回路２２とポートバイパス回路２７は、同様の構成を有するので、ここではポートバイパス回路２２についてのみ説明する。また、ポート診断部２４、ポート診断部２５、ポート診断部２６も同様の構成を有するので、ここではポート診断部２４についてのみ説明する。
【００３０】
ポートバイパス回路コントローラ２３は、ポートバイパス回路２２全体を制御する制御部である。例えば、ポートバイパス回路コントローラ２３は、デバイスアダプタ２１ｅ、ポート診断部２４、ポート診断部２５、ポート診断部２６が接続されるＦＣインタフェースに流れるデータを、ファブリック接続やＦＣ−ＡＬ接続などの接続状態に従って制御する。
【００３１】
ポート診断部２４は、デバイスアダプタ２１ｅとＨＤＤ２０ａ等との間の通信を制御する制御部であり、図２に示すように、外部Ｉ／Ｆ部２４ａと内部Ｉ／Ｆ部２４ｂとループバック制御部２４ｃとフレーム受信部２４ｄと異常検出部２４ｅとを有する。なお、図２は、ポート診断部の詳細を示すブロック図である。
【００３２】
外部Ｉ／Ｆ部２４ａは、コントローラ部２１または他のポート診断部などからＲＡＩＤを構成するデバイスへの通信を制御するインタフェースである。例えば、外部Ｉ／Ｆ部２４ａは、コントローラ部２１のデバイスアダプタ２１ｅから受け付けた各種要求を受信したり、ポート診断部２５に対して各種要求を転送したりする。
【００３３】
内部Ｉ／Ｆ部２４ｂは、ＲＡＩＤを構成するデバイスとポート診断部２４との間の通信を制御するインタフェースである。例えば、内部Ｉ／Ｆ部２４ｂは、ＨＤＤ２０ａに対して実行されたデータ書き込みや読み出しの要求に対する応答をＨＤＤ２０ａから受信して、ＦＣループ上に転送し、コントローラ部２１に送信する。また、内部Ｉ／Ｆ部２４ｂは、ＨＤＤ２０ａ以外のデバイスに対して実行されたデータ書き込みや読み出しの要求をＦＣループ上に転送し、外部Ｉ／Ｆ部２４ａを介して他のデバイスに転送する。
【００３４】
ループバック制御部２４ｃは、外部Ｉ／Ｆ部２４ａ、内部Ｉ／Ｆ部２４ｂ、後述するフレーム受信部２４ｄや異常検出部２４ｅのそれぞれと接続され、デバイスとの間の通信をループバック状態に遷移させる。例えば、ループバック制御部２４ｃは、ＲＡＩＤ装置２０の電源がＯＮになり、ＨＤＤ２０ａからＬＩＰ（Loop  Initialization  Primitive）が発行され、当該ＬＩＰがＦＣループを一周したことを検知する。そして、ＬＩＰを検知したループバック制御部２４ｃは、図３に示すように、ＨＤＤ２０ａとから出力されたフレームが他のＨＤＤ等に送信されないように、ＨＤＤ２０ａとの間の通信をループバック状態に遷移させる。なお、図３は、ポート診断部のループバック接続を示す図である。
【００３５】
フレーム受信部２４ｄは、ファイバーチャネルを有する複数のデバイスそれぞれに対して一意な物理アドレスを割り与える初期化処理が開始された場合に、初期化処理を実施する初期化フレームを複数のデバイスそれぞれから受信する。具体的には、フレーム受信部２４ｄは、ＨＤＤ２０ａに対して一意な物理アドレスを割り与える初期化処理が開始された場合に、初期化処理を実施する初期化フレームをＨＤＤ２０ａから受信して、後述する異常検出部２４ｅに出力する。
【００３６】
例えば、フレーム受信部２４ｄは、自分のＷＷＮ（World  Wide  Name）からなるポートネームを有し、ループマスターを決定するＬＩＳＭ（Loop  Initialization  Select  Master）フレームをＨＤＤ２０ａから受信する。また、フレーム受信部２４ｄは、Fabricアドレスに該当するビットを有するＬＩＦＡ（Loop  Initialization  Fabric  Assigned）フレームをＨＤＤ２０ａから受信する。また、フレーム受信部２４ｄは、前回割り当てられたＡＬ＿ＰＡに該当するビットを有するＬＩＰＡ（Loop  Initialization  Previously  Acquired）フレームをＨＤＤ２０ａから受信する。
【００３７】
また、フレーム受信部２４ｄは、ハード的に割り当てられたＨＤＤのコネクタに７本の信号線を保持するＳＥＬ−ＩＤに該当するビットを有するＬＩＨＡ（Loop  Initialization  Hard  Assigned）フレームをＨＤＤ２０ａから受信する。また、フレーム受信部２４ｄは、ＬＩＨＡまでで自分のアドレスに該当するビットが既に１になっていた場合に、残っている０のビットから優先順の高いビットを１にするＬＩＳＡ（Loop  Initialization  Soft  Assigned）フレームをＨＤＤ２０ａから受信する。また、フレーム受信部２４ｄは、自身のＡＬ＿ＰＡを格納するＬＩＲＰ（Loop  Initialization  Report  Position）フレーム、全てのデバイスのＡＬ＿ＰＡを各デバイスに通知するＬＩＬＰ（Loop  Initialization  Loop  Position）をＨＤＤ２０ａから受信する。
【００３８】
例えば、フレーム受信部２４ｄは、図４に示すようなＬＩＳＭフレームを受信した場合に、当該ＬＩＳＭフレームを後述する異常検出部２４ｅに出力する。図４は、ＬＩＳＭフレームのフォーマット例を示す図である。図４に示すように、ＬＩＳＭフレームは、４バイト「Start_of_Frame  delimiter」、２４バイトの「Frame_Header」、１２バイトの「Payload」、４バイトの「CRC」、４バイトの「End_of_Frame  delimiter」を有する。
【００３９】
「Start_of_Frame  delimiter」は、フレームの開始を示す情報であり、「Frame_Header」は、ＬＩＳＭフレームのヘッダ情報である。「CRC」は、フレームが正常であるか否かを示す誤り検出符号であり、「End_of_Frame  delimiter」は、フレームの終了を示す情報である。
【００４０】
「Payload」は、フレームのデータ本体であり、ＬＩＳＭフレームであることを示す４バイトの「Loop  Initialization  identifier」と８バイトの「Port_Name」を有する。例えば、ＬＩＳＭフレームの場合には、「Loop  Initialization  identifier」に１６進数表記で「11010000」が格納されており、「Port_Name」にＷＷＮが格納されている。また、ＬＩＦＡフレームの場合には、合計２０バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11020000」が格納され、１６バイトのFabric  Assign  AL_PA  bit  mapを有する。また、ＬＩＰＡフレームの場合には、合計２０バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11030000」が格納され、１６バイトのPreviously  Acquired  AL_PA  bit  mapを有する。
【００４１】
また、ＬＩＰＡフレームの場合には、合計２０バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11040000」が格納され、１６バイトのHard  Assigned  AL_PA  bit  mapを有する。また、ＬＩＳＡフレームの場合には、合計２０バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11050000」が格納され、１６バイトのSoft  Assigned  AL_PA  bit  mapを有する。また、ＬＩＲＰフレームの場合には、合計１３２バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11060000」が格納され、１２８バイトのReport  AL_PA  position  mapを有する。また、ＬＩＬＰフレームの場合には、合計１３２バイトの情報であり、「Loop  Initialization  identifier」に１６進数表記で「11070000」が格納され、１２８バイトのLoop  AL_PA  position  mapを有する。
【００４２】
図２に戻り、異常検出部２４ｅは、フレーム受信部２４ｄによって受信された初期化フレームに含まれる情報に基づいて、デバイスの異常を検出する。具体的には、異常検出部２４ｅは、ＨＤＤ２０ａから受信した初期化フレームに含まれるＳ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」でない場合に、当該初期化フレームの送信元デバイスであるＨＤＤ２０ａを異常デバイスとして検出する。例えば、図４を例にして説明すると、異常検出部２４ｅは、フレーム受信部２４ｄによって受信された初期化フレームの「Frame_Header」の「xxxxxx」が「000000」でも「0000EF」でもない場合に、当該フレームを送信したＨＤＤを異常として検出する。なお、Ｓ＿ＩＤは、初期化後には送信元のＡＬ＿ＰＡが格納され、初期化処理時は固定値である。また、Ｓ＿ＩＤは、初期化後には宛先のＡＬ＿ＰＡが格納され、初期化処理時は固定値である。また、異常検出部２４ｅは、各ＨＤＤがＦＣ−ＦＬ接続されている場合には「0000EF」であるか否かを判定し、各ＨＤＤがＦＣ−ＳＷ接続されている場合には「000000」であるか否かを判定する。
【００４３】
［処理の流れ］
次に、図５〜図７を用いて、ＲＡＩＤ装置の初期化処理の流れを説明する。図５は、実施例１に係るＲＡＩＤ装置の初期化処理の流れを示すフローチャートであり、図６は、初期化処理における異常検出処理の流れを示すフローチャートであり、図７は、初期化処理における各デバイスのＬＩＳＭフレーム処理の流れを示すフローチャートである。
【００４４】
（初期化処理の全体的な流れ）
図５に示すように、ＲＡＩＤ装置２０は、電源がＯＮになると（ステップＳ１０１肯定）、異常検出処理を実行する（ステップＳ１０２）。そして、異常検出処理が終了したＲＡＩＤ装置２０の各デバイスは、ＬＩＰを発行し（ステップＳ１０３）、各ＬＩＰがＦＣループを一周すると（ステップＳ１０４肯定）、各デバイスにおいてＬＩＳＭフレーム処理が実施される（ステップＳ１０５）。
【００４５】
その後、ＲＡＩＤ装置２０は、ループマスターが決定されると（ステップＳ１０６肯定）、ＬＩＳＭ以降のＬＩＦＡ、ＬＩＰＡ、ＬＩＨＡ、ＬＩＳＡの各フレームをＦＣループ上に順に送信する（ステップＳ１０７）。そして、上記フレームの送受信が完了すると（ステップＳ１０８肯定）、ＲＡＩＤ装置２０のループマスターは、全デバイスのＡＬ＿ＰＡを決定する（ステップＳ１０９）。
【００４６】
続いて、ＲＡＩＤ装置２０のループマスターは、ＬＩＲＰフレームをＦＣループに発行し（ステップＳ１１０）、全デバイスを通過したＬＩＲＰフレームを受信する（ステップＳ１１１）。その後、ＲＡＩＤ装置２０のループマスターは、ＬＩＬＰフレームをＦＣループに発行し（ステップＳ１１２）、全デバイスを通過したＬＩＬＰフレームを受信して初期化処理を終了する（ステップＳ１１３）。
【００４７】
（異常検出処理の流れ）
次に、図６を用いて、図５のステップＳ１０２で実行される異常検出処理の流れについて説明する。図６に示すように、ＲＡＩＤ装置２０の各デバイス（図１ではＨＤＤ）は、ＦＣループ上にＬＩＰを発行する（ステップＳ２０１）。そして、デバイスがＦＣループを一周したＬＩＰを受信すると（ステップＳ２０２肯定）、デバイスに接続されるポート診断部２４のループバック制御部２４ｃは、ＨＤＤ２０ａとの接続状態をループバック状態に遷移させる（ステップＳ２０３）。
【００４８】
その後、フレーム受信部２４ｄがＨＤＤ２０ａから送信されたＬＩＳＭフレームを受信すると（ステップＳ２０４肯定）、異常検出部２４ｅは、ＬＩＳＭフレームに含まれるＳ＿ＩＳおよびＤ＿ＩＤが「00」または「EF」であるか否かを判定する（ステップＳ２０５）。
【００４９】
そして、異常検出部２４ｅは、Ｓ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」でない場合（ステップＳ２０５否定）、当該ＬＩＳＭフレームを送信したＨＤＤ２０ａを異常デバイスと判定し、ＲＡＩＤ装置２０に接続しないように制御する（ステップＳ２０６）。つまり、異常検出部２４ｅは、異常デバイス検出アラーム等を出力し、デバイス交換等を保守者等に促す。
【００５０】
一方、異常検出部２４ｅは、Ｓ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」である場合（ステップＳ２０５肯定）、全ての初期化フレームを受信したか否かを判定する（ステップＳ２０７）。そして、異常検出部２４ｅは、全ての初期化フレームを受信した場合には（ステップＳ２０７肯定）、ＨＤＤ２０ａを正常デバイスと判定してＲＡＩＤ装置２０に接続する（ステップＳ２０８）。続いて、ループバック制御部２４ｃは、ループバック状態を通常のループ状態に遷移させる（ステップＳ２０９）。つまり、ポート診断部２４は、初期化処理で送受信した全ての初期化フレームのＳ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」であるデバイスを、正常デバイスと判定する。
【００５１】
また、異常検出部２４ｅは、全ての初期化フレームを受信していない場合には（ステップＳ２０７否定）、次の初期化フレームを受信し（ステップＳ２１０）、ステップＳ２０５以降の処理を繰り返す。
【００５２】
（ＬＩＳＭフレーム処理の流れ）
次に、図７を用いて、図５のステップＳ１０５で実行されるＬＩＳＭフレーム処理の流れについて説明する。図７に示すように、デバイスは、自分のＷＷＮを付加したＬＩＳＭフレームをＦＣループに送信する（ステップＳ３０１）。その後、デバイスは、ＬＩＳＭフレームを受信すると（ステップＳ３０２肯定）、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮより小さいか否かを判定する（ステップＳ３０３）。例えば、デバイスは、ＬＩＳＭフレームの「Payload」の「Port_name」が自身のＷＷＮよりも小さいか否かを判定する。
【００５３】
そして、デバイスは、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮより小さい場合（ステップＳ３０３肯定）、自分のＷＷＮを付加した新たなＬＩＳＭフレームをＦＣループに送信する（ステップＳ３０４）。
【００５４】
一方、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮより小さくない場合（ステップＳ３０３否定）、デバイスは、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮより大きいか否かを判定する（ステップＳ３０５）。
【００５５】
そして、デバイスは、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮより大きい場合（ステップＳ３０５肯定）、受信したＬＩＳＭフレームをそのまま次の宛先に送信する（ステップＳ３０６）。
【００５６】
一方、デバイスは、自分のＷＷＮが受信したＬＩＳＭフレームに含まれるＷＷＮと一致した場合（ステップＳ３０５否定）、自デバイスをループマスターと決定する（ステップＳ３０７）。
【００５７】
［実施例１による効果］
このように、実施例１によれば、ファイバーチャネルを有する複数のＨＤＤなどのデバイスそれぞれに対して一意な物理アドレスを割り与える初期化処理が開始された場合に、初期化処理を実施する初期化フレームを複数のデバイスそれぞれから受信する。そして、受信された初期化フレームに含まれる情報に基づいて、デバイスの異常を検出する。この結果、ＲＡＩＤ装置２０に接続する前に、ＲＡＩＤ対象のデバイス異常を検出することができるので、後に異常を検出することが困難であるプロトコルレベルの異常を検出することができる。
【００５８】
また、本実施例で開示した手法によってプロトコルレベルでの異常診断を実施することができ、出力データに付加されたチェックコードレベルで検出できなかった異常が検出可能になる。その結果、一見、正常動作しているように見えるデバイスの異常が検出可能となる。また、このような異常を事前検出できずに、ＲＡＩＤ装置２０へ接続してしまった場合、故障箇所の特定は困難であるが、装置接続前のデバイス毎に診断することで、故障箇所の特定も容易になる。
【実施例２】
【００５９】
ところで、実施例１では、ＲＡＩＤ装置２０の電源がＯＮになった場合に、ＨＤＤへの接続をループバック接続状態に遷移させて、ＨＤＤごとに初期化処理を実施し、異常がなかった場合には改めて全体で初期化処理を実施する例について説明した。ところが、ＲＡＩＤ装置２０が起動中である場合には、ＨＤＤへの接続をループバック接続状態に遷移させるため、ＲＡＩＤ装置２０自体の運用を停止させる必要がある。そこで、実施例２では、ＲＡＩＤ装置２０が起動中の状態で、新たなＨＤＤを増設する場合などであっても、ＲＡＩＤ装置２０自体の運用を停止させることなく、デバイスの異常をプロトコルレベルで検出する例について説明する。
【００６０】
［ポート診断部の構成］
まず、図８を用いて、実施例２に係るポート診断部を説明する。図８は、実施例２に係るポート診断部の詳細を示すブロック図である。図８に示すように、ポート診断部２４は、外部Ｉ／Ｆ部２４ａと内部Ｉ／Ｆ部２４ｂと識別子ＤＢ２４ｆとフレーム送信部２４ｇとフレーム受信部２４ｈと異常検出部２４ｉとを有する。かかる外部Ｉ／Ｆ部２４ａと内部Ｉ／Ｆ部２４ｂは、実施例１で説明した機能を同様の機能を有するので、ここでは詳細な説明は省略する。
【００６１】
識別子ＤＢ２４ｆは、ＨＤＤ２０ａへ初期化フレームを送信する際に取得されたＳ＿ＩＤおよびＤ＿ＤＩと、ＨＤＤ２０ａから初期化フレームを受信した際に取得されたＳ＿ＩＤおよびＤ＿ＤＩとを記憶する。例えば、識別子ＤＢ２４ｆは、図９に示すように、「送信時」の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」として「00、00」を記憶し、「受信時」の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」として「00、00」を記憶する。なお、図９は、実施例２に係る識別子ＤＢに記憶される情報の例を示す図である。
【００６２】
フレーム送信部２４ｇは、デバイスアダプタ２１ｅ又は他のＨＤＤからＬＩＳＭ等の初期化フレームを受信した場合に、当該初期化フレームに含まれる「Ｓ＿ＩＤ、Ｄ＿ＩＤ」を取得して、送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」として識別子ＤＢ２４ｆに格納する。そして、フレーム送信部２４ｇは、初期化フレームを宛先のＨＤＤ２０ａに送信する。例えば、フレーム送信部２４ｇは、初期化フレームに含まれる「Payload」の先頭０ビットから３１ビット（０バイトから３バイト）、３２ビットから６３ビット（４バイトから７バイト）に含まれる「xxxxxxx」の値を取得して格納する。
【００６３】
フレーム受信部２４ｈは、ＬＩＳＭ等の初期化フレームをＨＤＤ２０ａから受信した場合に、当該初期化フレームに含まれる「Ｓ＿ＩＤ、Ｄ＿ＩＤ」を取得して、受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」として識別子ＤＢ２４ｆに格納する。そして、フレーム受信部２４ｈは、初期化フレームをＦＣループの次の接続先であるデバイスアダプタ２１ｅ又は他のポート診断部に送信する。例えば、フレーム送信部２４ｇは、初期化フレームに含まれる「Payload」の先頭０ビットから３１ビット（０バイトから３バイト）、３２ビットから６３ビット（４バイトから７バイト）に含まれる「xxxxxxx」の値を取得して格納する。
【００６４】
異常検出部２４ｉは、実施例１と同様、ＨＤＤ２０ａから受信した初期化フレームに含まれるＳ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」でない場合に、当該初期化フレームの送信元デバイスであるＨＤＤ２０ａを異常デバイスとして検出する。つまり、異常検出部２４ｉは、ＨＤＤ２０ａから受信した初期化フレームに含まれるＳ＿ＩＤおよびＤ＿ＩＤが「00」または「EF」である場合に、当該初期化フレームの送信元デバイスであるＨＤＤ２０ａを正常デバイスとしてＲＡＩＤ装置２０に接続する。
【００６５】
さらに、異常検出部２４ｉは、実施例１とは異なり、ＨＤＤ２０ａへの初期化フレーム送信時に取得されたＳ＿ＩＤおよびＤ＿ＩＤと、ＨＤＤ２０ａから初期化フレーム受信時のＳ＿ＩＤおよびＤ＿ＩＤとが一致するか否かを判定する。例えば、図１０に示すように、送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「11、0F」であり、受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「11、0F」であったとする。この場合、「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」ではないものの、送信時と受信時とで値が一致しているため、異常があるのはＨＤＤ２０ａではなく、他のデバイスである。したがって、異常検出部２４ｉは、図１０の場合には、初期化フレーム送信元のＨＤＤ２０ａを正常なデバイスと判定する。
【００６６】
また、図１１に示すように、送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「EF、EF」であり、受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「11、0F」であったとする。この場合、受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」ではなく、送信時と受信時とで値が一致していない。したがって、異常検出部２４ｉは、図１１の場合には、初期化フレーム送信元のＨＤＤ２０ａを異常なデバイスと判定する。なお、図１０と図１１は、識別子ＤＢに記憶される情報の例を示す図である。
【００６７】
［処理の流れ］
次に、図１２を用いて、実施例２に係る異常検出処理の流れを説明する。図１２は、実施例２に係る異常検出処理の流れを示すフローチャートである。図１２の処理は、図５において初期化フレームが受信されるたびに実行される処理であり、例えばステップＳ１０５やステップＳ１０７、ステップＳ１１１、ステップＳ１１３等で実行される。
【００６８】
図１２に示すように、フレーム送信部２４ｇは、増設されたデバイスから送信された初期化フレームを受信する（ステップＳ４０１肯定）。すると、フレーム送信部２４ｇは、受信した初期化フレームのＳ＿ＩＤおよびＤ＿ＩＤを取得して、送信時のＳ＿ＩＤおよびＤ＿ＩＤとして識別子ＤＢ２４ｆに格納する（ステップＳ４０２）。
【００６９】
続いて、フレーム送信部２４ｇは、当該ポート診断部２４に接続されるＨＤＤ２０ａに受信した初期化フレームに送信する（ステップＳ４０３）。その後、異常検出部２４ｉは、フレーム受信部２４ｈによってＨＤＤ２０ａから初期化フレームが受信された場合に、当該初期化フレームに含まれる「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」であるか否かを判定する（ステップＳ４０４）。
【００７０】
そして、異常検出部２４ｉは、ＨＤＤ２０ａから受信した初期化フレームに含まれる「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」である場合（ステップＳ４０４肯定）、ＨＤＤ２０ａを正常と判定し、ＲＡＩＤ装置２０の接続を維持する（ステップＳ４０５）。
【００７１】
一方、異常検出部２４ｉは、「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」でない場合（ステップＳ４０４否定）、識別子ＤＢ２４ｆに格納される送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」であるか否かを判定する（ステップＳ４０６）。
【００７２】
そして、識別子ＤＢ２４ｆに格納される送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」である場合（ステップＳ４０６肯定）、送信時と受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が異なる。したがって、異常検出部２４ｉは、この場合には、ＨＤＤ２０ａを異常デバイスとしてＲＡＩＤ装置２０から切り離す（ステップＳ４０７）。
【００７３】
一方、異常検出部２４ｉは、送信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が「00」または「EF」でない場合（ステップＳ４０６否定）、送信時と受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が一致するか否かを判定する（ステップＳ４０８）。
【００７４】
そして、異常検出部２４ｉは、送信時と受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が一致する（ステップＳ４０８肯定）、ＨＤＤ２０ａを正常と判定し、ＲＡＩＤ装置２０の接続を維持する場合（ステップＳ４０５）。また、異常検出部２４ｉは、送信時と受信時の「Ｓ＿ＩＤ、Ｄ＿ＩＤ」が一致しない場合（ステップＳ４０８否定）、ＨＤＤ２０ａを異常デバイスとしてＲＡＩＤ装置２０から切り離す（ステップＳ４０７）。
【００７５】
［実施例２による効果］
このように、実施例２によれば、新たなＨＤＤを増設されたデバイスから送信された初期化フレームに基づいて、全てのデバイスについて異常であるか否かを判定することができる。したがって、ＲＡＩＤ装置２０が起動中の状態で、新たなＨＤＤを増設する場合などであっても、ＲＡＩＤ装置２０自体の運用を停止させることなく、デバイスの異常をプロトコルレベルで検出することが可能である。
【実施例３】
【００７６】
ところで、本願の開示するＲＡＩＤ装置は、実施例１や２で説明した初期化フレームのＳ＿ＩＤやＤ＿ＩＤに基づいて異常デバイスを検出するだけでなく、ＬＩＳＭフレームに含まれるＷＷＮに基づいて異常デバイスを検出することもできる。そこで、実施例３では、ＬＩＳＭフレームに含まれるＷＷＮに基づいて異常デバイスを検出する例について説明する。
【００７７】
［ポート診断部の構成］
まず、図１３を用いて、実施例３に係るポート診断部の構成を説明する。図１３は、実施例３に係るポート診断部の詳細を示すブロック図である。図１３に示すように、ポート診断部２４は、外部Ｉ／Ｆ部２４ａと内部Ｉ／Ｆ部２４ｂと識別子ＤＢ２４ｆとフレーム送信部２４ｇとフレーム受信部２４ｈと異常検出部２４ｉとを有する。かかる外部Ｉ／Ｆ部２４ａ、内部Ｉ／Ｆ部２４ｂ、フレーム送信部２４ｇ、異常検出部２４ｉは、実施例１で説明した機能を同様の機能を有するので、ここでは詳細な説明は省略する。
【００７８】
識別子ＤＢ２４ｆは、実施例２で説明した送信時および受信時のＳ＿ＩＤおよびＤ＿ＤＩに加え、ＨＤＤ２０ａから受信したＬＩＳＭフレームに含まれるＷＷＮを記憶する。例えば、識別子ＤＢ２４ｆは、図１４に示すように、送信時の「Ｓ＿ＩＤおよびＤ＿ＤＩ」として「00、EF」、受信時の「Ｓ＿ＩＤおよびＤ＿ＤＩ」として「00、EF」、ＷＷＮとして「yyyy」を記憶する。なお、図１４は、実施例３に係る識別子ＤＢに記憶される情報の例を示す図である。
【００７９】
フレーム受信部２４ｈは、実施例１や２で説明した機能に加え、ＨＤＤ２０ａから受信したＬＩＳＭフレームに含まれるＷＷＮを取得して、識別子ＤＢ２４ｆに格納する。例えば、フレーム受信部２４ｈは、受信したＬＩＳＭフレームの「Payload」の「Port_name」からＷＷＮを取得して識別子ＤＢ２４ｆに格納する。
【００８０】
［処理の流れ］
次に、図１５を用いて、実施例３における処理の流れを説明する。図１５は、実施例３に係る異常検出処理の流れを示すフローチャートである。なお、この処理は、図５のステップＳ１０２の後に実行される。また、図５のステップＳ１０２において、識別子ＤＢ２４ｆに各情報が格納される。
【００８１】
図１５に示すように、ポート診断部２４は、各デバイスごとの異常検出処理が終了すると（ステップＳ５０１肯定）、ループバック状態から通常のループ状態に遷移させる（ステップＳ５０２）。
【００８２】
続いて、ポートバイパス回路コントローラ２３は、ＨＤＤ２０ａに接続される２系統それぞれに取得されたＷＷＮを比較する（ステップＳ５０３）。例えば、ポートバイパス回路コントローラ２３は、ポート診断部２４の識別子ＤＢ２４ｆに記憶されるＷＷＮと、ポート診断部２９の識別子ＤＢに記憶されるＷＷＮとを比較する。なお、この処理は、各ＨＤＤに接続されるポート診断部全てについて実施される。
【００８３】
そして、ポートバイパス回路コントローラ２３が両方のＷＷＮが一致したと判定したとする（ステップＳ５０４肯定）。この場合、ＲＡＩＤコントローラ２１ｃは、デバイスアダプタ２１ｅが取得したＷＷＮとポート診断部２４が取得したＷＷＮとが一致するか否かを判定する（ステップＳ５０５）。なお、デバイスアダプタ２１ｅは、ＬＩＳＭフレームを受信したタイミングで、ポート診断部２４と同様の手法でＷＷＮを取得する。
【００８４】
そして、ＲＡＩＤコントローラ２１ｃは、デバイスアダプタ２１ｅが取得したＷＷＮと上記比較したＷＷＮとが一致すると判定したとする（ステップＳ５０６肯定）。この場合、ＲＡＩＤコントローラ２１ｃは、ＬＩＳＭフレーム送信元のＨＤＤ２０ａを正常デバイスと判定してＲＡＩＤ装置２０に接続するように制御する（ステップＳ５０７）。
【００８５】
一方、ＲＡＩＤコントローラ２１ｃは、デバイスアダプタ２１ｅが取得したＷＷＮと上記比較したＷＷＮとが一致しないと判定したとする（ステップＳ５０６否定）。この場合、ＲＡＩＤコントローラ２１ｃは、ＬＩＳＭフレーム送信元のＨＤＤ２０ａを異常デバイスと判定してＲＡＩＤ装置２０に接続しないように制御する（ステップＳ５０８）。
【００８６】
また、ステップＳ５０４において、ポートバイパス回路コントローラ２３が両方のＷＷＮが一致しないと判定したとする（ステップＳ５０４否定）。この場合、ＲＡＩＤコントローラ２１ｃは、ＬＩＳＭフレーム送信元のＨＤＤ２０ａを異常デバイスと判定してＲＡＩＤ装置２０に接続しないように制御する（ステップＳ５０８）。
【００８７】
また、ステップＳ５０１において、各デバイスごとの異常検出処理が終了しないとする（ステップＳ５０１否定）。この場合、ポート診断部２４が遷移させたループバック状態での初期化処理が終了しない、つまり、ＨＤＤ２０ａへのＬＩＳＭフレーム送信時とＨＤＤ２０ａからＬＩＳＭフレーム受信時のＷＷＮが不一致であることを意味する。すなわち、ＷＷＮにビットエラーが発生している。したがって、ポートバイパス回路コントローラ２３は、ＨＤＤ２０ａを異常デバイスと判定してＲＡＩＤ装置２０に接続しないように制御する（ステップＳ５０８）。
【００８８】
［実施例３による効果］
このように、実施例３によれば、ＬＩＳＭフレームに含まれるＷＷＮに基づいて異常デバイスを検出することもでき、プロトコルレベルで異常が発生したデバイスを検出することが可能である。また、Ｓ＿ＩＤおよびＤ＿ＩＤによる異常検出終了後に、さらにＷＷＮを用いて異常検出することができる結果、異常デバイスの検出精度を向上させることができる。
【実施例４】
【００８９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００９０】
（デバイスについて）
実施例１〜３では、ＲＡＩＤ対象デバイスとして３台のＨＤＤを例にして説明したが、これに限定されるものではない。例えば、ＨＤＤ以外のデバイスを用いてもよく、３台以上又は３台未満のデバイスを用いてもよい。また、デバイスは、ＨＤＤに限定されるものではなく、例えばＤＡやＳＳＤなどの様々なデバイスを用いることができる。また、各デバイスがＦＣＩ／Ｆを有する例について説明したが、これに限定されるものではなく、他のインタフェースを有していてもよい。
【００９１】
（デバイス異常検出処理の組み合わせ）
本願の開示するＲＡＩＤ装置２０は、実施例１〜３で説明した各異常検出処理を全て実行してもよく、１つの処理のみを実施してもよく、任意に組み合わせることができる。
【００９２】
（デバイス異常検出処理の開始タイミング）
実施例１や３では、ＲＡＩＤ装置２０の起動開始時に異常検出処理を開始し、実施例２では、新たなＨＤＤの増設時に異常検出処理を開始する例について説明したが、これに限定されるものではない。例えば、故障ＨＤＤの切り離しを実施するタイミングやＨＤＤの交換など任意のタイミングで実施例１〜３で開示するデバイス異常検出処理を実施することができる。また、実施例１〜３で開示するデバイス異常検出処理は、１週間に１度など定期的に実行するようにしてもよい。
【００９３】
（ＷＷＮ診断の効率化）
本願の開示するＲＡＩＤ装置は、実施例３によるデバイス異常検出処理を実施した後、異常のなかった各デバイスごとにＷＷＮを、前回の初期化処理時のＷＷＮとして識別子ＤＢ等に保持しておく。そして、次の異常検出処理開始タイミングで、マウント信号に変化のなかったデバイス、言い換えると、取り外し等が行われなかったデバイスについては、前回の初期化処理のＷＷＮと今回のＬＩＳＭフレームから取得したＷＷＮとを比較する。そして、一致しなかったデバイスを異常デバイスとして検出することができる。この結果、マウント信号に変化のなかったデバイスについては、図１５のステップＳ５０１〜ステップＳ５０４を省略することができ、デバイス異常検出処理を効率化できる。
【００９４】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３〜図１１等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、ループバック制御部２４ｃとフレーム受信部２４ｄを統合するなど各装置の分散・統合の具体的形態は図示のものに限られない。例えば、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９６】
（プログラム）
本実施例で説明したデバイス異常検出方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【００９７】
１０  ホスト
２０  ＲＡＩＤ装置
２０ａ、２０ｂ、２０ｃ  ＨＤＤ
２１  コントローラ部
２１ａ、２１ｂ  チャネルアダプタ
２１ｃ、２１ｄ  ＲＡＩＤコントローラ
２１ｅ、２１ｆ  デバイスアダプタ
２２、２７  ポートバイパス回路
２３、２８  ポートバイパス回路コントローラ
２４、２５、２６、２９、３０、３１  ポート診断部
２４ａ  外部Ｉ／Ｆ部
２４ｂ  内部Ｉ／Ｆ部
２４ｃ  ループバック制御部
２４ｄ  フレーム受信部
２４ｅ  異常検出部
２４ｆ  識別子ＤＢ
２４ｇ  フレーム送信部
２４ｈ  フレーム受信部
２４ｉ  異常検出部
【図１】
2011159243.tif 000003
【図２】
2011159243.tif 000004
【図３】
2011159243.tif 000005
【図４】
2011159243.tif 000006
【図５】
2011159243.tif 000007
【図６】
2011159243.tif 000008
【図７】
2011159243.tif 000009
【図８】
2011159243.tif 000010
【図９】
2011159243.tif 000011
【図１０】
2011159243.tif 000012
【図１１】
2011159243.tif 000013
【図１２】
2011159243.tif 000014
【図１３】
2011159243.tif 000015
【図１４】
2011159243.tif 000016
【図１５】
2011159243.tif 000017