(57)【特許請求の範囲】
【請求項１】
多重化されたループ状インタフェースを有し、前記各ループ状インタフェースへのデバイスの接続および切り離しを行うループ接続切替手段を制御する制御デバイスが前記各ループ状インタフェースに接続され、且つ、前記制御デバイスが相互に通信するためのインタフェースを備えたシステムの障害解析方法であって、前記制御デバイスにおいて全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行うことを特徴とするループ状インタフェースの障害解析方法。
【請求項２】
前記制御デバイスは、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるコマンドの受信が途絶えたことを検出して前記インタフェースを通じて他の前記制御デバイスに通知し、全ての前記制御デバイスにおいて前記コマンドの受信が途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出することを特徴とする請求項１記載のループ状インタフェースの障害解析方法。
【請求項３】
接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施することを特徴とする請求項１記載のループ状インタフェースの障害解析方法。
【請求項４】
多重化されたループ状インタフェースの１つのループ状インタフェースを通じて前記デバイスおよび前記制御デバイスに接続された制御装置が、多重化されたループ状インタフェースの全ループ異常時、自制御装置が接続されたループ状インタフェースのループ異常が一定時間内に解消するか否かを判定し、一定時間内にループ異常が解消した場合には前記制御デバイスに全ての前記デバイスの切り離しを行ったか否かを問い合せ、前記制御デバイスによって全ての前記デバイスの切り離しが行われていたときに前記ループ診断手段によるループ診断を含む両系リンク障害対策処理を実行することを特徴とする請求項３記載のループ状インタフェースの障害解析方法。
【請求項５】
前記一定時間は、多重化されたループ状インタフェースに全ループ異常が発生した場合に前記制御デバイスが全ての前記デバイスの切り離しを行うのに要する時間より若干長い時間に設定されていることを特徴とする請求項４記載のループ状インタフェースの障害解析方法。
【請求項６】
前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させることを特徴とする請求項３乃至５の何れか１項に記載のループ状インタフェースの障害解析方法。
【請求項７】
利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施することを特徴とする請求項６記載のループ状インタフェースの障害解析方法。
【請求項８】
前記ループ状インタフェースがＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）であることを特徴とする請求項１乃至７の何れか１項に記載のループ状インタフェースの障害解析方法。
【請求項９】
前記デバイスがハードディスク装置であり、前記制御デバイスがエンクロージャサービスデバイスであることを特徴とする請求項１乃至７の何れか１項に記載のループ状インタフェースの障害解析方法。
【請求項１０】
多重化されたループ状インタフェースを有し、前記各ループ状インタフェースへのデバイスの接続および切り離しを行うループ接続切替手段を制御する機能を有する制御デバイスが前記各ループ状インタフェースに接続されたシステムにおいて、前記制御デバイスは相互に通信するためのインタフェースを備え、且つ、全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行う手段を備えたことを特徴とするループ状インタフェースの障害解析機能を有するシステム。
【請求項１１】
前記制御デバイスは、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるコマンドの受信が途絶えたことを検出して前記インタフェースを通じて他の前記制御デバイスに通知する手段を備え、全ての前記制御デバイスにおいて前記コマンドの受信が途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するものであることを特徴とする請求項１０記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１２】
接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するループ診断手段を備えたことを特徴とする請求項１０記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１３】
多重化されたループ状インタフェースの１つのループ状インタフェースを通じて前記デバイスおよび前記制御デバイスに接続された制御装置を備え、該制御装置は、多重化されたループ状インタフェースの全ループ異常時、自制御装置が接続されたループ状インタフェースのループ異常が一定時間内に解消するか否かを判定し、一定時間内にループ異常が解消した場合には前記制御デバイスに全ての前記デバイスの切り離しを行ったか否かを問い合せ、前記制御デバイスによって全ての前記デバイスの切り離しが行われていたときに前記ループ診断手段によるループ診断を含む両系リンク障害対策処理を実行するものであることを特徴とする請求項１２記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１４】
前記一定時間は、多重化されたループ状インタフェースに全ループ異常が発生した場合に前記制御デバイスが全ての前記デバイスの切り離しを行うのに要する時間より若干長い時間に設定されていることを特徴とする請求項１３記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１５】
前記ループ診断手段は、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるものであることを特徴とする請求項１２乃至１４の何れか１項に記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１６】
前記ループ診断手段は、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するものであることを特徴とする請求項１５記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１７】
前記ループ状インタフェースがＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）であることを特徴とする請求項１０乃至１６の何れか１項に記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１８】
前記デバイスがハードディスク装置であり、前記制御デバイスがエンクロージャサービスデバイスであることを特徴とする請求項１０乃至１６の何れか１項に記載のループ状インタフェースの障害解析機能を有するシステム。
【請求項１９】
多重化されたループ状インタフェースの１つのループ状インタフェースに接続され、接続された前記ループ状インタフェースへのデバイスの接続および切り離しを行うループ接続切替手段を制御する機能を有するエンクロージャサービスデバイスにおいて、他のループ状インタフェースに接続された他のエンクロージャサービスデバイスと相互に通信するためのインタフェースを備え、且つ、全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行う手段を備えたことを特徴とするエンクロージャサービスデバイス。
【請求項２０】
自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるコマンドが途絶えたことを検出して前記インタフェースを通じて他の前記エンクロージャサービスデバイスに通知する手段を備え、全ての前記エンクロージャサービスデバイスにおいて前記コマンドが途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するものであることを特徴とする請求項１９記載のエンクロージャサービスデバイス。
【請求項２１】
前記ループ状インタフェースがＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）であることを特徴とする請求項１９または２０に記載のエンクロージャサービスデバイス。
【請求項２２】
前記デバイスがハードディスク装置であることを特徴とする請求項１９または２０に記載のエンクロージャサービスデバイス。
【請求項２３】
多重化されたループ状インタフェースの１つのループ状インタフェースを通じて、１以上のデバイスと、前記デバイスのループ状インタフェースへの接続および切り離しを行うループ接続切替手段を制御する機能を有する制御デバイスとに接続された制御装置において、多重化されたループ状インタフェースの全てが異常となったことを検出した前記制御デバイスによって少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスが切り離されたという事象を確認する手段と、接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して、前記制御デバイス間を相互に通信可能に接続するインタフェースを通じて、他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するループ診断手段を備えたことを特徴とする制御装置。
【請求項２４】
前記ループ診断手段は、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるものであることを特徴とする請求項２３記載の制御装置。
【請求項２５】
前記ループ診断手段は、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するものであることを特徴とする請求項２４記載の制御装置。
【請求項２６】
前記ループ状インタフェースがＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）であることを特徴とする請求項２３乃至２５の何れか１項に記載の制御装置。
【請求項２７】
前記デバイスがハードディスク装置であり、前記制御デバイスがエンクロージャサービスデバイスであることを特徴とする請求項２３乃至２５の何れか１項に記載の制御装置。
【請求項２８】
多重化されたループ状インタフェースの１つのループ状インタフェースに接続され、接続された前記ループ状インタフェースへのデバイスの接続および切り離しを行うループ接続切替手段を制御する機能を有し、且つ、他のループ状インタフェースに接続された他のエンクロージャサービスデバイスと相互に通信するためのインタフェースを備えたエンクロージャサービスデバイスを構成するコンピュータを、全ての前記ループ状インタフェースが異常となったことを検出する検出手段、該検出手段による検出時に前記ループ接続切替手段を制御して前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行う手段、として機能させるエンクロージャサービスデバイス用プログラム。
【請求項２９】
前記検出手段は、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるコマンドが途絶えたことを検出して前記インタフェースを通じて他の前記エンクロージャサービスデバイスに通知する手段を備え、全ての前記エンクロージャサービスデバイスにおいて前記コマンドが途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するものであることを特徴とする請求項２８記載のエンクロージャサービスデバイス用プログラム。
【請求項３０】
多重化されたループ状インタフェースの１つのループ状インタフェースを通じて、１以上のデバイスと、前記デバイスのループ状インタフェースへの接続および切り離しを行うループ接続切替手段を制御する機能を有する制御デバイスとに接続された制御装置を構成するコンピュータを、多重化されたループ状インタフェースの全てが異常となったことを検出した前記制御デバイスによって少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスが切り離されたという事象を確認する手段と、接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して、前記制御デバイス間を相互に通信可能に接続するインタフェースを通じて、他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するループ診断手段、として機能させる制御装置用プログラム。
【請求項３１】
前記ループ診断手段は、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるものであることを特徴とする請求項３０記載の制御装置用プログラム。
【請求項３２】
前記ループ診断手段は、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するものであることを特徴とする請求項３１記載の制御装置用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はループ状インタフェースの障害解析方法及びループ状インタフェースの障害解析機能を有するシステムに関する。
【０００２】
【従来の技術】
ＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）のようなループ状にデバイスが接続されるインタフェースは、ケーブルの接続構成がシンプルでデバイスの増設等への対応も容易なことから、ディスクアレイ装置などに近年多く使用されるようになってきた。しかし、このような形態のインタフェースは、接続されているデバイスのインタフェース回路の障害等によってループ内を正常に信号が伝搬できなくなると（これを、ループ異常あるいはリンクダウンなどと呼ぶ）、ループ全体が使用不可能になり、接続されている１デバイスの障害であっても、そのループに接続されている全てのデバイスが使用できなくなる。このため、通常これらのデバイスは独立した２つのループに接続できるようにインタフェース回路を２ポート分備え、２重化されたループ状インタフェースの片方のループが障害により使用できなくなっても、もう一方のループでアクセス可能なようにして信頼性を高めている。また、ループ異常が発生した場合、速やかに故障デバイスを特定して障害を回復させる機能を備えている。
【０００３】
例えば、特許文献１では、ループＡ、Ｂの２つのＦＣ−ＡＬを有するディスクアレイ装置において、一方のループＡに異常が発生したとき、そのループＡのディスク制御部は通常のディスク処理を停止して仮縮退状態へ遷移し、ループＢのディスク制御部はループＡの処理を代行する。そして、ループＡのディスク制御部は自らループＡの診断を実行して故障ディスクをループＡからバイパスし、ループＡの仮縮退状態を解除する。これによって、ループ異常が発生した場合にホストへの応答を継続しながら故障部品を特定する処理を可能にしている。但し、この特許文献１では、ループ異常として間欠障害を想定しており、ループＡの診断時にはループＡが異常でないことを前提としている。
【０００４】
また、特許文献２には、ループＡ、Ｂの２つのＦＣ−ＡＬを有し且つ各ループにエンクロージャサービスデバイス（Ｅｎｃｌｏｓｕｒｅ  Ｓｅｒｖｉｃｅ  Ｄｅｖｉｃｅ）が直接接続されたディスクアレイ装置に適用可能な障害解析方法が開示されている。エンクロージャサービスデバイスはＡＮＳＩ規格（ＮＣＩＴＳ  ３０５−１９９Ｘ）で規定されている装置の筐体内環境監視・資源管理のためのデバイスであり、自身が接続されるループに接続されているディスクのバイパス、バイパス解除を行うループ接続切替部に対する制御機能も有している。ループに直接接続されたエンクロージャサービスデバイスは、ループに接続されたディスクと同様にループ状インタフェースに接続されたデバイスとして振る舞うため、接続されたループに固定的な異常が発生すると、そのループのディスク制御部からそのループを通じてエンクロージャサービスデバイスに指示を与えることができなくなる。そこで特許文献２では、各ループに接続されているエンクロージャサービスデバイスに相互に通信するためのインタフェースを設け、一方のループＡに異常が発生したとき、そのループＡの診断を行うためのループＡのディスクのバイパス、バイパス解除の指示を、他方のループＢのエンクロージャサービスデバイス経由でループＡのエンクロージャサービスデバイスに与えるようにしている。
【０００５】
【特許文献１】
特開２００２−７０７７号公報
【特許文献２】
特開２００１−２１６２０６号公報
【０００６】
【発明が解決しようとする課題】
上述したようにＦＣ−ＡＬ等のループ状インタフェースを有するディスクアレイ装置などのシステムでは、ループ状インタフェースの２重化、ループ異常時における速やかな障害解析による故障部品のバイパス化を行うことで信頼性を高めるようにしている。しかし、２重化されたループ状インタフェースの双方が同時にループ障害になった場合、各ループにエンクロージャサービスデバイスを直接接続したシステムにあっては、以下のような課題がある。
【０００７】
第１の課題は、ループ状インタフェースに接続されたデバイスの切り離し、再接続が全く行えなくなることである。その理由は、デバイスの切り離し、再接続を実際に行うループ接続切替部を制御するエンクロージャサービスデバイス自体にどのループからもアクセスすることができなくなるからである。
【０００８】
第２の課題は、ループ異常の原因となる故障デバイスを特定するループ診断が全く行えないことである。その理由は、ループ診断を実施するためには、ループ状インタフェースに接続されたデバイスの切り離し、再接続が必要であるが、このデバイスの切り離し、再接続が行えないからである。
【０００９】
第３の課題は、システムが完全に停止したままになることである。その理由はループ診断が実施できず、故障部品をループから除去できないからである。
【００１０】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、多重化されたループ状インタフェースを有し且つその各々のループにエンクロージャサービスデバイス等の制御デバイスが接続されたディスクアレイ装置などのシステムにおいて、全てのループで異常が発生しても、ループ状インタフェースに接続されたデバイスの切り離し、再接続が行えるようにし、また、ループ異常の原因となる故障デバイスを特定するループ診断を実施できるようにし、また、システムが完全に停止したままになるのを防止することにある。
【００１１】
【課題を解決するための手段】
本発明のループ状インタフェースの障害解析方法は、多重化されたＦＣ−ＡＬ等のループ状インタフェースを有し、前記各ループ状インタフェースへのハードディスク装置等のデバイスの接続および切り離しを行うループ接続切替手段を制御するエンクロージャサービスデバイス等の制御デバイスが前記各ループ状インタフェースに接続され、且つ、前記制御デバイスが相互に通信するためのインタフェースを備えたディスクアレイ装置等のシステムの障害解析方法であって、前記制御デバイスにおいて全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行うことを特徴とする。
【００１２】
ここで、前記制御デバイスは、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるハートビートコマンド等のコマンドが途絶えたことを検出して前記インタフェースを通じて他の前記制御デバイスに通知し、全ての前記制御デバイスにおいて前記コマンドが途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するようにして良い。また、接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するようにして良い。更に、多重化されたループ状インタフェースの１つのループ状インタフェースを通じて前記デバイスおよび前記制御デバイスに接続された制御装置が、多重化されたループ状インタフェースの全ループ異常時、自制御装置が接続されたループ状インタフェースのループ異常が一定時間内に解消するか否かを判定し、一定時間内にループ異常が解消した場合には前記制御デバイスに全ての前記デバイスの切り離しを行ったか否かを問い合せ、前記制御デバイスによって全ての前記デバイスの切り離しが行われていたときに前記ループ診断手段によるループ診断を含む両系リンク障害対策処理を実行するようにして良い。また、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるようにして良い。また、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するようにして良い。
【００１３】
本発明のループ状インタフェースの障害解析機能を有するシステムは、多重化されたＦＣ−ＡＬ等のループ状インタフェースを有し、前記各ループ状インタフェースへのハードディスク装置等のデバイスの接続および切り離しを行うループ接続切替手段を制御する機能を有するエンクロージャサービスデバイス等の制御デバイスが前記各ループ状インタフェースに接続されたディスクアレイ装置等のシステムにおいて、前記制御デバイスは相互に通信するためのインタフェースを備え、且つ、全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行う手段を備えたことを特徴とする。
【００１４】
ここで、前記制御デバイスは、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるハートビートコマンド等のコマンドが途絶えたことを検出して前記インタフェースを通じて他の前記制御デバイスに通知する手段を備え、全ての前記制御デバイスにおいて前記コマンドが途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するものであって良い。また、接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するループ診断手段を備えていて良い。更に、多重化されたループ状インタフェースの１つのループ状インタフェースを通じて前記デバイスおよび前記制御デバイスに接続された制御装置を備え、該制御装置は、多重化されたループ状インタフェースの全ループ異常時、自制御装置が接続されたループ状インタフェースのループ異常が一定時間内に解消するか否かを判定し、一定時間内にループ異常が解消した場合には前記制御デバイスに全ての前記デバイスの切り離しを行ったか否かを問い合せ、前記制御デバイスによって全ての前記デバイスの切り離しが行われていたときに前記ループ診断手段によるループ診断を含む両系リンク障害対策処理を実行するものであって良い。また、前記ループ診断手段は、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるものであって良い。また、前記ループ診断手段は、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するものであって良い。
【００１５】
本発明のエンクロージャサービスデバイスは、多重化されたＦＣ−ＡＬ等のループ状インタフェースの１つのループ状インタフェースに接続され、接続された前記ループ状インタフェースへのハードディスク装置等のデバイスの接続および切り離しを行うループ接続切替手段を制御する機能を有するエンクロージャサービスデバイスにおいて、他のループ状インタフェースに接続された他のエンクロージャサービスデバイスと相互に通信するためのインタフェースを備え、且つ、全ての前記ループ状インタフェースが異常となったことを検出したときに前記ループ接続切替手段を制御して前記ループ状インタフェースに接続された全ての前記デバイスを切り離す処理を行う手段を備えたことを特徴とする。
【００１６】
ここで、本発明のエンクロージャサービスデバイスは、自デバイスが接続されるループ状インタフェースを通じて定期的に送られてくるコマンドが途絶えたことを検出して前記インタフェースを通じて他の前記エンクロージャサービスデバイスに通知する手段を備え、全ての前記エンクロージャサービスデバイスにおいて前記コマンドが途絶えたことが検出されたときに全ての前記ループ状インタフェースが異常となったことを検出するものであって良い。
【００１７】
本発明の制御装置は、多重化されたＦＣ−ＡＬ等のループ状インタフェースの１つのループ状インタフェースを通じて、１以上のハードディスク装置等のデバイスと、前記デバイスのループ状インタフェースへの接続および切り離しを行うループ接続切替手段を制御する機能を有するエンクロージャサービスデバイス等の制御デバイスとに接続されたディスク制御装置等の制御装置において、多重化されたループ状インタフェースの全てが異常となったことを検出した前記制御デバイスによって少なくとも１つの前記ループ状インタフェースに接続された全ての前記デバイスが切り離されたという事象を確認する手段と、接続された全ての前記デバイスが切り離されてループ異常が解消した前記ループ状インタフェースに接続された前記制御デバイスを経由して、前記制御デバイス間を相互に通信可能に接続するインタフェースを通じて、他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するループ診断手段を備えたことを特徴とする。
【００１８】
ここで、本発明の制御装置における前記ループ診断手段は、前記ループ診断で故障と判断された前記デバイスを前記ループ状インタフェースから切り離して当該ループ状インタフェースの利用を再開させるものであって良い。また、前記ループ診断手段は、利用を再開した前記ループ状インタフェースに接続された前記制御デバイスを経由して他の前記ループ状インタフェースに接続された前記制御デバイスをアクセスして故障デバイスを特定するループ診断を実施するものであって良い。
【００１９】
【作用】
本発明にあっては、多重化された全てのループ状インタフェースが異常になったことが、各ループ状インタフェースに接続された制御デバイスにおいて検出される。そして、その検出時に制御デバイスが自律的に、ループ接続切替手段を制御して少なくとも１つのループ状インタフェースに接続された全てのデバイスをループから切り離す。これにより、ループ障害の原因が何れかのデバイスの故障である場合、全てのデバイスがループから切り離されたループ状インタフェースのループ異常は解消し、そのループ状インタフェースに接続された制御デバイスへのアクセスが可能となる。制御デバイス間はインタフェースにより相互に通信可能になっているので、アクセス可能となった制御デバイスを経由することにより、他の制御デバイスもアクセス可能となる。このため、任意のループ状インタフェースに接続されたデバイスの切り離し、再接続が行える。これにより、ループ異常の原因となる故障デバイスを特定するループ診断を実施でき、故障デバイスを切り離すことによって、システムの運用を継続することができる。
【００２０】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
【構成】
図１を参照すると、本発明の一実施の形態にかかるディスクアレイ装置１は、ホストインタフェースＡ１２１、Ｂ１２２を介してホストＡ９１、Ｂ９２と接続され、ディスクユニット部５と、キャッシュ部６と、ディスク制御部Ａ７１と、ディスク制御部Ｂ７２と、ホスト制御部Ａ８１と、ホスト制御部Ｂ８２とを含んで構成される。
【００２２】
ホスト制御部Ａ８１、Ｂ８２は、ホストＡ９１、Ｂ９２間とのコマンド受信、データ転送、ステータス応答などのホストサービスを行う。ホスト制御部Ａ８１、Ｂ８２は、内部バス１１０によりキャッシュ部６およびディスク制御部Ａ７１、Ｂ７２に接続されており、お互いにデータの送受を行う。またホスト制御部Ａ８１、Ｂ８２とディスク制御部Ａ７１、Ｂ７２は、制御部間通信手段１００により、ディスク処理などの他の制御部に対する処理要求や、ループ診断結果の通知などの制御部の状態通知などを行う。
【００２３】
ディスクユニット部５は、ＦＣ−ＡＬインタフェース・ポートを２ポート有する複数のＦＣ−ＡＬディスク２１〜２Ｎと、ループ接続切替部Ａ３１、Ｂ３２と、エンクロージャサービス部Ａ５１、Ｂ５２とを含んで構成される。
【００２４】
ループ接続切替部Ａ３１、Ｂ３２は、ＦＣ−ＡＬディスク２１〜２ＮのＦＣ−ＡＬ  Ａ４１、Ｂ４２からの切り離し（バイパス）や、ＦＣ−ＡＬ  Ａ４１、Ｂ４２への接続（バイパス解除）を行う回路である。
【００２５】
エンクロージャサービス部Ａ５１、Ｂ５２は、ディスク制御部Ａ７１、Ｂ７２に対してＦＣ−ＡＬ  Ａ４１、Ｂ４２を通じて接続されている。また、エンクロージャサービス部Ａ５１、Ｂ５２は、相互に通信するためのインタフェース１３０を有している。このエンクロージャサービス部Ａ５１、Ｂ５２は、ＡＮＳＩ規格（ＮＣＩＴＳ  ３０５−１９９Ｘ）で規定されている装置の筐体内環境監視・資源管理のためのデバイスであり、ハートビート監視部Ａ５１１、Ｂ５２１と、ハートビート受信部Ａ５１２、Ｂ５２２と、ループ接続制御部Ａ５１３、Ｂ５２３とを有している。
【００２６】
ループ接続制御部Ａ５１３、Ｂ５２３は、ループ接続切替部Ａ３１、Ｂ３２に対して、ＦＣ−ＡＬディスク２１〜２Ｎのバイパス、バイパス解除を制御する機能を有する。
【００２７】
ハートビート受信部Ａ５１２、Ｂ５２２は、ＦＣ−ＡＬ  Ａ４１、Ｂ４２を通じてディスク制御部Ａ７１、Ｂ７２から一定時間間隔で送られてくるコマンドを受信する機能を有する。ディスク制御部Ａ７１、Ｂ７２から一定時間間隔で送られてくるコマンドを、以下、ハートビートコマンドと呼ぶ。ハートビートコマンドはそれ専用のコマンドを定義しても良いし、既存のコマンド（例えばＲｅｃｅｉｖｅ  Ｄｉａｇｎｏｓｔｉｃ  Ｒｅｓｕｌｔｓコマンドなど）であっても良い。
【００２８】
ハートビート監視部Ａ５１１、Ｂ５２１は、自エンクロージャサービス部のハートビート受信部Ａ５１２、Ｂ５２２におけるハートビートコマンドの受信状態を監視し、ハートビートコマンドの受信が途絶えたことを検出すると、インタフェース１３０を通じて他方のハートビート監視部Ｂ５２１、Ａ５１１へその旨を通知する。そして、両ハートビート受信部Ａ５１２、Ｂ５２２の双方でハートビートコマンドの受信が途絶えたことを検出すると、ループ接続制御部Ａ５１３、Ｂ５２３によって、全てのＦＣ−ＡＬディスク２１〜２ＮをＦＣ−ＡＬ  Ａ４１、Ｂ４２からバイパスする機能を有する。また、エンクロージャサービス部Ａ５１、Ｂ５２は、コマンド受信が途絶えたことにより全ディスクのバイパスを実施したときには、その旨を内部に記録し、ディスク制御部Ａ７１、Ｂ７２からの問い合わせに対して、バイパスを実施したことを報告する機能を有する。この問い合わせに対する報告機能は、例えば、Ｒｅｃｅｉｖｅ  Ｄｉａｇｎｏｓｔｉｃ  Ｒｅｓｕｌｔｓコマンドに対する応答機能として実現することができる。
【００２９】
エンクロージャサービス部Ａ５１の内部構成例を図２に示す。エンクロージャサービス部Ｂ５２も同様の構成を有する。この例では、エンクロージャサービス部Ａ５１は、ＣＰＵ５３１と、そのバス５３２に接続されたインタフェースチップ５３３、メモリ５３４、通信部５３５および切替部５３６とを含んで構成される。インタフェースチップ５３３は、ＦＣ−ＡＬ  Ａ４１との間のインタフェース部分である。通信部５３５はインタフェース１３０を通じてエンクロージャサービス部Ｂ５２と相互に通信するためのものである。切替部５３６は、ループ接続切替部Ａ３１に対する制御信号等を保持するレジスタ等で構成される。メモリ５３４は、ＲＯＭおよびＲＡＭで構成され、エンクロージャサービスデバイス用プログラム（ファームウェアを含む）を記憶すると共に、自デバイスの状態やＦＣ−ＡＬ  Ａ４１に接続された各ディスクの状態などを示す状態情報等を記憶するための領域を有する。ＣＰＵ５３１は、メモリ５３４に記憶されたエンクロージャサービスデバイス用プログラムを実行することにより、本デバイス全体を制御し、本デバイスに必要な機能を実現する。
【００３０】
再び図１を参照すると、ディスク制御部Ａ７１は、ＦＣ−ＡＬディスク２１〜２Ｎの一方のポートのみとでＦＣ−ＡＬ  Ａ４１を構成し、別のディスク制御部Ｂ７２は、ＦＣ−ＡＬディスク２１〜２Ｎのもう一方のポートのみとでＦＣ−ＡＬＢ４２を構成する。ディスク制御部Ａ７１、Ｂ７２は、ホスト制御部Ａ８１、Ｂ８２からの指示により、あるいはディスク制御部Ａ７１、Ｂ７２自身の判断により、ＦＣ−ＡＬディスク２１〜２Ｎに対してリードやライト等の各種ディスク処理を行う。また、ディスク制御部Ａ７１、Ｂ７２は、エンクロージャサービス部Ａ５１、Ｂ５２に対してＦＣ−ＡＬディスク２１〜２Ｎのバイパス、バイパス解除の指示を出したり、バイパス状態などの情報をエンクロージャサービス部Ａ５１、Ｂ５２から読み出したりする。更に、ディスク制御部Ａ７１、Ｂ７２は、仮縮退制御部Ａ７１０、Ｂ７２０と、ループ診断部Ａ７１１、Ｂ７２１と、ハートビート送信部Ａ７１２、Ｂ７２２とを有している。
【００３１】
ハートビート送信部Ａ７１２、Ｂ７２２は、エンクロージャサービス部Ａ５１、Ｂ５２の構成要素であるハートビート受信部Ａ５１２、Ｂ５２２に対して、一定時間間隔ごとにハートビートコマンドを発行する。前述したようにエンクロージャサービス部Ａ５１、Ｂ５２の構成要素であるハートビート受信部Ａ５１２、Ｂ５２２は発行されたハートビートコマンドを受信し、ハートビート監視部Ａ５１１、Ｂ５２１は、ハートビートコマンドの受信状態を監視し、両ハートビート受信部Ａ５１２、Ｂ５２２ともハートビートコマンドが途絶えたことを検出すると、全ＦＣ−ＡＬディスク２１〜２Ｎが双方のＦＣ−ＡＬ  Ａ４１、Ｂ４２から切り離される。ハートビート監視部Ａ５１１、Ｂ５２２がハートビートコマンド受信が途絶えたと判断する時間は、ディスク制御部Ａ７１、Ｂ７２から設定可能である。ハートビート送信部Ａ７１２、Ｂ７２２は、ハートビート監視部Ａ５１１、Ｂ５２２によるコマンド受信停止判断時間より短い間隔でハートビート受信部Ａ５１２、Ｂ５２２に対してコマンドを発行する。
【００３２】
ループ診断部Ａ７１１、Ｂ７２１は、ループ異常が発生した場合に、ＦＣ−ＡＬディスクのバイパス、バイパス解除を伴うループ診断を互いに連携して実行し、故障ディスクを特定する機能を有する。
【００３３】
仮縮退制御部Ａ７１０、Ｂ７２０は、ループ診断中もホストＡ９１、Ｂ９２に対する応答を継続するために、ホスト制御部Ａ８１、Ｂ８２やディスク制御部Ａ７１、Ｂ７２間の連携を制御する機能を有する。
【００３４】
ディスク制御部Ａ７１の内部構成例を図３に示す。ディスク制御部Ｂ７２も同様の構成を有する。この例では、ディスク制御部Ａ７１は、ＣＰＵ７３１と、そのバス７３２に接続されたインタフェースチップ７３３、メモリ７３４、通信部７３５およびＤＭＡ（ダイナミックメモリアクセス）コントローラ等で構成されるデータ転送部７３６とを含んで構成される。インタフェースチップ７３３は、ＦＣ−ＡＬ  Ａ４１との間のインタフェース部分である。ディスク制御部におけるループ異常検出機構は、一般にこのインターフェースチップ７３３に設けられている。通信部７３５は制御部間通信手段１００を通じて他の制御部と相互に通信するためのものである。データ転送部７３６は、内部バス１１０を通じて他の制御部とデータの授受を行うと共にインタフェースチップ７３３およびＦＣ−ＡＬＡ４１を通じてエンクロージャサービス部５１Ａや各ディスク２１〜２Ｎとデータの授受を行う部分である。メモリ７３４は、ＲＯＭおよびＲＡＭで構成され、ディスク制御部用プログラム（ファームウェアを含む）等を記憶する。ＣＰＵ７３１は、メモリ７３４に記憶されたディスク制御部用プログラムを実行することにより、本ディスク制御部全体を制御し、本ディスク制御部に必要な機能を実現する。
【００３５】
【動作】
次に本実施の形態のディスクアレイ装置の動作について説明する。
【００３６】
図１を参照すると、ホストＡ９１、Ｂ９２から命令を受け取ったホスト制御部Ａ８１、Ｂ８２は、論理ディスク番号（ＬＵＮ）、命令コード種別、および論理ブロックアドレス（ＬＢＡ）などの必要な情報を認識する。例えば、ホストＡ９１、Ｂ９２からのリード命令を受けたホスト制御部Ａ８１、Ｂ８２は、キャッシュ部６に指定されたデータが存在すれば、直ちにキャッシュ部６からホストＡ９１、Ｂ９２にデータを転送する。キャッシュ部６にデータが存在しなければ、ＦＣ−ＡＬディスク２１〜２Ｎから読み出したデータをキャッシュ部６に格納するようディスク制御部Ａ７１、Ｂ７２に対して指示し、キャッシュ部６に格納されたら、そのデータをホストＡ９１、Ｂ９２に転送する。また例えば、ホストＡ９１、Ｂ９２からのライト命令を受けたホスト制御部Ａ８１、Ｂ８２は、ホストＡ９１、Ｂ９２から受け取ったデータをキャッシュ部６に格納する。このデータはホスト制御部Ａ８１、Ｂ８２からディスク制御部Ａ７１、Ｂ７２に対してディスクへの書き込み指示が出されることにより、あるいはディスク制御部Ａ７１、Ｂ７２がディスクへの未書き込みデータがキャッシュ部６に存在することを検出することにより、ディスク制御部Ａ７１、Ｂ７２によってＦＣ−ＡＬディスク２１〜２Ｎへ書き込まれる。２つのディスク制御部Ａ７１、Ｂ７２は、処理を担当するＦＣ−ＡＬディスク２１〜２Ｎを分担して負荷を分散させる使い方が一般的である。
【００３７】
次に、ＦＣ−ＡＬ  Ａ４１、ＦＣ−ＡＬ  Ｂ４２がループ異常を起こした場合の処理を説明する。
【００３８】
ＦＣ−ＡＬ  Ａ４１にのみループ異常が発生すると、ＦＣ−ＡＬ  Ａ４１上を信号が伝搬できなくなるため、従来と同様にディスク制御部Ａ７１がそのことを検出する。このとき、ディスク制御部Ａ７１のハートビート送信部Ａ７１２が定期的に送信するハートビートコマンドもエンクロージャサービス部Ａ５１のハートビート受信部Ａ５１２で受信されなくなり、ハートビート監視部Ａ５１１はＦＣ−ＡＬ  Ａ４１にループ異常が発生したことを検知するが、他方のＦＣ−ＡＬ  Ｂ４２は正常なので、ＦＣ−ＡＬ  Ａ４１からディスク２１〜２Ｎをバイパスする制御は実施されない。
【００３９】
反対に、ＦＣ−ＡＬ  Ｂ４２にのみループ異常が発生すると、ＦＣ−ＡＬ  Ｂ４２上を信号が伝搬できなくなるため、従来と同様にディスク制御部Ｂ７２がそのことを検出する。このとき、ディスク制御部Ｂ７２のハートビート送信部Ｂ７２２が定期的に送信するハートビートコマンドもエンクロージャサービス部Ｂ５２のハートビート受信部Ｂ５２２で受信されなくなり、ハートビート監視部Ｂ５２１はＦＣ−ＡＬ  Ｂ４２にループ異常が発生したことを検知するが、他方のＦＣ−ＡＬ  Ａ４１は正常なので、ＦＣ−ＡＬ  Ｂ４２からディスク２１〜２Ｎをバイパスする制御は実施されない。
【００４０】
ＦＣ−ＡＬ  Ａ４１、Ｂ４２の双方でループ異常が発生すると、ディスク制御部Ａ７１がＦＣ−ＡＬ  Ａ４１のループ異常を検出し、ディスク制御部Ｂ７２がＦＣ−ＡＬ  Ｂ４２のループ異常を検出する。また、エンクロージャサービス部Ａ５１、Ｂ５２のハートビート監視部Ａ５１１、Ｂ５２１が、ＦＣ−ＡＬ  Ａ４１、Ｂ４２の双方にループ異常が発生したことを検知し、ループ接続制御部Ａ５１３からループ接続切替部Ａ３１が制御されてＦＣ−ＡＬ  Ａ４１から全てのディスク２１〜２Ｎがバイパスされ、同時にループ接続制御部Ｂ５２３からループ接続切替部Ｂ３２が制御されてＦＣ−ＡＬ  Ｂ４２から全てのディスク２１〜２Ｎがバイパスされる。
【００４１】
図４はディスク制御部Ａ７１、Ｂ７２が自ループの異常を検出したときの処理例を示すフローチャートである。ディスク制御部Ａ７１、Ｂ７２とも同じ処理を行うので、以下では、ディスク制御部Ａ７１を例に説明する。
【００４２】
ディスク制御部Ａ７１は、ＦＣ−ＡＬ  Ａ４１のループ異常を検出すると（Ｓ１０１）、制御部間通信手段１００を通じてディスク制御部Ｂ７２に他方のＦＣ−ＡＬ  Ｂ４２のループ状態を問い合せる（Ｓ１０２）。ディスク制御部Ｂ７２は、この問い合わせに対して、ＦＣ−ＡＬ  Ｂ４２のループ状態が正常か、異常かを示す問い合わせ応答を制御部間通信手段１００を通じてディスク制御部Ａ７１に返却する。ディスク制御部Ａ７１は、他方のＦＣ−ＡＬ  Ｂ４２がループ異常でなく正常であれば（Ｓ１０３でＮＯ）、１つのループのみでループ異常が発生した場合の片系リンク障害対策処理を実施する（Ｓ１０４）。この片系リンク障害対策処理の詳細は後述する。他方、ＦＣ−ＡＬ  Ｂ４２もループ異常を起こしていれば（Ｓ１０３でＹＥＳ）、ステップＳ１０５へ進む。
【００４３】
ステップＳ１０５では、ディスク制御部Ａ７１は、一定時間だけ待ち合わせを行う。待ち合わせる時間は、エンクロージャサービス部Ａ５１、Ｂ５２がＦＣ−ＡＬ  Ａ４１およびＢ４２の双方でループ異常が発生した場合に自律的に全てのディスク２１〜２ＮをＦＣ−ＡＬ  Ａ４１、Ｂ４２からバイパスさせるのに要する時間より若干長い時間である。この待ち合わせ後、ディスク制御部Ａ７１は、ＦＣ−ＡＬ  Ａ４１のループ異常が解消しているかどうかを判別する（Ｓ１０６）。そして、自ループの異常が解消していれば（Ｓ１０６でＹＥＳ）、ループ異常が解消したＦＣ−ＡＬ  Ａ４１を通じてエンクロージャサービス部Ａ５１に対して、ハートビートコマンドの受信が両ループで途絶えたために全ディスク２１〜２Ｎのバイパスを実施したかどうかを問い合せる（Ｓ１０７）。この問い合わせに対して、全ディスクのバイパスを実施した旨の回答がエンクロージャサービス部Ａ５１からＦＣ−ＡＬ  Ａ４１を通じて返された場合（Ｓ１０８でＹＥＳ）、ＦＣ−ＡＬ  Ａ４１とＢ４２の両方でループ異常が固定的に発生した場合の両系リンク障害対策処理を実施する（Ｓ１０９）。この両系リンク障害対策処理の詳細は後述する。
【００４４】
他方、エンクロージャサービス部Ａ５１から全ディスクのバイパスを実施していない旨の回答が得られた場合（Ｓ１０８でＮＯ）、発生したループ異常が間欠障害で、自然に治癒したものとして処理する。また、ステップＳ１０５で一定時間待ち合わせても、ＦＣ−ＡＬ  Ａ４１のループ異常が解消しなかった場合（Ｓ１０６でＮＯ）、ループ異常の原因が例えばエンクロージャサービス部Ａ５１自体の故障等、ディスク２１〜２Ｎ以外の箇所に存在するので、それに応じた障害対策処理を実施する。この障害対策処理は本発明と直接関係しないので、その説明は省略する。
【００４５】
図４の処理例では、他ループも異常の場合（Ｓ１０３でＹＥＳ）、一定時間だけ待ってから（Ｓ１０５）、自ループの異常が解消したかを判断したが（Ｓ１０６）、この部分の処理を図５のように変更しても良い。つまり、他ループも異常の場合（Ｓ１０３でＹＥＳ）、自ループの異常が解消したかどうかを判断する処理Ｓ１０６と一定時間経過したどうかを判断する処理Ｓ１１０とを含むループを実行し、自ループの異常が解消していればステップＳ１０７へ進み、一定時間経過しても自ループの異常が解消していなければ（Ｓ１１０でＹＥＳ）、他の障害対策処理へ進む。図４の処理では、ループ障害が間欠障害であって直ぐに解消した場合も一定時間待つ必要があるが、図５の処理によれば、そのようなことがなくなる利点がある。
【００４６】
次に、ステップＳ１０４の片系リンク障害対策処理について、ＦＣ−ＡＬ  Ａ４１がループ異常となった場合を例に説明する。当然ながら、ＦＣ−ＡＬ  Ｂ４２の場合も同様に動作する。
【００４７】
図６は片系リンク障害対策処理（Ｓ１０４）の一例を示すフローチャートである。例えば、何れかのＦＣ−ＡＬディスク２１〜２Ｎの故障によりＦＣ−ＡＬ  Ａ４１にてリンクダウンなどのループ異常が継続したとする（Ｓ１０４１）。この状態ではディスク制御部Ａ７１は、エンクロージャサービス部Ａ５１やＦＣ−ＡＬディスク２１〜２Ｎに対してアクセスができなくなる。ディスク制御部Ａ７１の仮縮退制御部Ａ７１０は、通常のディスク処理の実行を停止（この通常機能を停止している状態を仮縮退状態と呼ぶこととする）するとともに（Ｓ１０４２）、制御部間通信手段１００によりホスト制御部Ａ８１、Ｂ８２および別のディスク制御部Ｂ７２に対して仮縮退状態に遷移したことを通知（仮縮退通知）する（Ｓ１０４３）。
【００４８】
仮縮退通知を受けたディスク制御部Ｂ７２、ホスト制御部Ａ８１、Ｂ８２は、ループＡ仮縮退状態でシステムを運用する（Ｓ１０４４）。具体的には、仮縮退通知を受けたディスク制御部Ｂ７２の仮縮退制御部Ｂ７２０は、最初にＦＣ−ＡＬディスク２１〜２Ｎのリセットを実行し、仮縮退したディスク制御部Ａ７１が放棄したディスク処理によりＦＣ−ＡＬディスク２１〜２Ｎ内に滞留している処理をキャンセルする。またディスク制御部Ｂ７２は、全てのＦＣ−ＡＬディスク２１〜２Ｎを対象に、ホスト制御部Ａ８１、Ｂ８２から指示されたディスク処理、およびディスク制御部Ｂ７２の判断によるディスク処理を行う。他方、仮縮退通知を受けたホスト制御部Ａ８１、Ｂ８２は、仮縮退したディスク制御部Ａ７１に対して要求していた未完了のディスク処理を代替のディスク制御部Ｂ７２に対して再度要求する。またディスク制御部Ａ７１が仮縮退中は、新たなホストＩ／Ｏによるディスク処理について全て代替のディスク制御部Ｂ７２に対して要求する。よって、ディスク制御部Ａ７１が仮縮退している間もディスク制御部Ｂ７２が処理を引き継ぐため、ホストに対して応答を継続することが可能となる。
【００４９】
次に、仮縮退したディスク制御部Ａ７１のループ診断部Ａ７１１とディスク制御部Ｂ７２のループ診断部Ｂ７２１とは、連携してＦＣ−ＡＬ  Ａ４１に接続された複数のディスク２１〜２Ｎから故障部品を特定するための診断処理を行う（Ｓ１０４５）。以下、ステップＳ１０４５のループ診断処理の具体例を説明する。
【００５０】
先ず、ディスク制御部Ａ７１のループ診断部Ａ７１１は、制御部間通信手段１００を通じてディスク制御部Ｂ７２のループ診断部Ｂ７２１に対して、ＦＣ−ＡＬディスク２１〜２Ｎのうち、例えばディスク２１をＦＣ−ＡＬ  Ａ４１からバイパスするよう指示する。指示を受けたディスク制御部Ｂ７２は、ＦＣ−ＡＬ  Ｂ４２を通じて、エンクロージャサービス部Ｂ５２に対して、同様のバイパスを指示し、エンクロージャサービス部Ｂ５２は、インタフェース１３０を通じてエンクロージャサービス部Ａ５１に同様のバイパスを指示する。エンクロージャサービス部Ａ５１のループ接続制御部Ａ５１３は、この指示を受けてループ接続切替部Ａ３１を制御し、ディスク２１をＦＣ−ＡＬ  Ａ４１から切り離す。ディスク制御部Ａ７１は、ＦＣ−ＡＬ  Ａ４１のループ異常が解消したかどうかを判定し、解消していれば、ディスク２１を故障ディスクと特定する。他方、ループ異常がなおも継続していれば、次のディスク２２についてディスク２１と同様の手順でＦＣ−ＡＬ  Ａ４１からバイパスし、ディスク２２が故障ディスクでないかどうかを調べる。このような処理を故障ディスクが特定されるまで、最後のディスク２Ｎまで繰り返す。
【００５１】
こうして故障ディスクを特定すると、ディスク制御部Ａ７１は、故障ディスクは切り離し、正常ディスクはバイパス解除してＦＣ−ＡＬ  Ａ４１に接続し直す（ステップＳ１０４６）。例えば、ディスク２２が故障ディスクであった場合、図７に示すように、ＦＣ−ＡＬ  Ａ４１から故障ディスク２２を切り離し、正常ディスクだけを接続する。
【００５２】
その後、ディスク制御部Ａ７１は、制御部間通信手段１００によりホスト制御部Ａ８１、Ｂ８２および別のディスク制御部Ｂ７２に対して、仮縮退状態を解除し通常状態に遷移したことを通知（仮縮退解除通知）する（Ｓ１０４７）。仮縮退状態を解除したディスク制御部Ａ７１は、通常機能としてのディスク処理を再開する。仮縮退解除通知を受けたディスク制御部Ｂ７２は、仮縮退解除したディスク制御部Ａ７１が受け持つディスクに対する処理を停止し、ループ診断により他方のループからバイパスされたディスクを含めた残りのディスクに対する処理を受け持つ。仮縮退解除通知を受けたホスト制御部Ａ８１、Ｂ８２は、上記のディスクの受け持ちに応じたディスク制御部Ａ７１、Ｂ７２に対してディスク処理を要求する。故障と判断されたディスクは、例えばディスクアレイ装置１に接続された保守端末（図示せず）や、あるいはホストパスで接続されたディスクアレイ管理用ホスト（図示せず）などにより保守員や使用者などに、交換が必要であることが通知される。
【００５３】
上述したループ診断処理の具体例はあくまでも一例であり、本発明は上記具体例に限定されるものではない。例えば、文献２の図５に示されるような手順によるループ診断を行っても良い。また、ＦＣ−ＡＬ  Ａ４１に接続されている全てのディスク２１〜２Ｎを一旦バイパスし、１つのディスク毎にバイパス解除してそのディスクが故障ディスクかどうかを調べるようにしても良い。
【００５４】
次に、図４の両系リンク障害対策処理（Ｓ１０９）について説明する。
【００５５】
図８は両系リンク障害対策処理Ｓ１０９の一例を示すフローチャートである。この両系リンク障害対策処理が開始される前には、エンクロージャサービス部Ａ５１、Ｂ５２によってＦＣ−ＡＬ  Ａ４１、Ｂ４２から全てのディスク２１〜２Ｎがバイパスされており、この状態ではディスク制御部Ａ７１、Ｂ７２は共に通常のディスク処理が行えない。このため、ディスク制御部Ａ７１、Ｂ７２の仮縮退制御部Ａ７１０、Ｂ７２０は、通常のディスク処理の実行を停止して仮縮退状態とするとともに（Ｓ１０９１）、制御部間通信手段１００によりホスト制御部Ａ８１、Ｂ８２に対して仮縮退状態に遷移したことを通知（仮縮退通知）する（Ｓ１０９２）。仮縮退通知を受けたホスト制御部Ａ８１、Ｂ８２は、全てのディスク制御部Ａ７１、Ｂ７２が仮縮退状態となったので、ホストＡ９１、Ｂ９２からの要求の受付を一時的に中断する（Ｓ１０９３）。
【００５６】
次に、仮縮退したディスク制御部Ａ７１、Ｂ７２のループ診断部Ａ７１１、Ｂ７２１は、先ず、何れか一方のＦＣ−ＡＬ、例えばＦＣ−ＡＬ  Ａ４１に接続された複数のディスク２１〜２Ｎから故障部品を特定するための診断処理を連携して行う（Ｓ１０９４）。以下、ステップＳ１０９４のループ診断処理の具体例を説明する。
【００５７】
先ず、ディスク制御部Ａ７１のループ診断部Ａ７１１は、制御部間通信手段１００を通じてディスク制御部Ｂ７２のループ診断部Ｂ７２１に対して、ＦＣ−ＡＬディスク２１〜２Ｎのうち、例えばディスク２１をＦＣ−ＡＬ  Ａ４１に接続（バイパス解除）するよう指示する。指示を受けたディスク制御部Ｂ７２は、ＦＣ−ＡＬ  Ｂ４２を通じて、エンクロージャサービス部Ｂ５２に対して、同様のバイパス解除を指示し、エンクロージャサービス部Ｂ５２は、インタフェース１３０を通じてエンクロージャサービス部Ａ５１に同様のバイパス解除を指示する。エンクロージャサービス部Ａ５１のループ接続制御部Ａ５１３は、この指示を受けてループ接続切替部Ａ３１を制御し、ディスク２１をＦＣ−ＡＬ  Ａ４１に接続する。ディスク制御部Ａ７１は、ＦＣ−ＡＬ  Ａ４１のループ異常が再発したかどうかを判定し、再発していれば、ディスク２１を故障ディスクと特定する。他方、ループ異常が再発しなければ、ディスク２１は正常ディスクと特定する。
【００５８】
ディスク２１を故障ディスクと特定した場合、ディスク制御部Ａ７１のループ診断部Ａ７１１は、そのバイパス解除を指示した場合と同じ経路、つまり、制御部間通信手段１００、ループ診断部Ｂ７２１、エンクロージャサービス部Ｂ５２、インタフェース１３０を経由する経路で、エンクロージャサービス部Ａ５１にディスク２１をバイパスする指示を出し、故障ディスク２１をＦＣ−ＡＬ  Ａ４１から切り離した後、次のディスク２２の診断をディスク２１と同様に実施する。ディスク２１が故障ディスクでない場合は、ディスク２１をＦＣ−ＡＬ  Ａ４１に接続したまま、次のディスク２２の診断をディスク２１と同様に実施する。このような手順を、残りの全てのディスクについて繰り返す。こうしてＦＣ−ＡＬＡ４１のループ診断が終了すると、ＦＣ−ＡＬ  Ａ４１には正常ディスクだけが接続された状態になる。
【００５９】
なお、以上の説明では、ディスク制御部Ａ７１がディスク２１〜２ＮをＦＣ−ＡＬ  Ａ４１に接続する場合、他方のディスク制御部Ｂ７２、ＦＣ−ＡＬ  Ｂ４２、エンクロージャサービス部Ｂ５２経由でエンクロージャサービス部Ａ５１にバイパス解除の指示を伝達したが、ＦＣ−ＡＬ  Ａ４１経由で直接にエンクロージャサービス部５１にバイパス解除の指示を送るようにしても良い。但し、若し、バイパス解除したディスクが故障ディスクであれば、ＦＣ−ＡＬ  Ａ４１は再びループ異常になるので、そのディスクを再び切り離す際には、他方のディスク制御部Ｂ７２、ＦＣ−ＡＬ  Ｂ４２、エンクロージャサービス部Ｂ５２経由でエンクロージャサービス部Ａ５１にバイパスの指示を伝達する必要がある。
【００６０】
その後、ディスク制御部Ａ７１は、制御部間通信手段１００によりホスト制御部Ａ８１、Ｂ８２に対して、ループＡの仮縮退状態を解除し通常状態に遷移したことを通知（仮縮退解除通知）する（Ｓ１０９５）。これにより、ループＢ仮縮退状態でシステムの運用が再開される（Ｓ１０９６）。つまり、ループＡの仮縮退解除通知を受けたホスト制御部Ａ８１、Ｂ８２は、仮縮退したディスク制御部Ａ７１、Ｂ７２に対して要求していた未完了のディスク処理を、仮縮退解除したディスク制御部Ａ７１に対して再度要求する。また、ホストＡ９１、Ｂ９２からの要求の受け付けを再開し、新たなホストＩ／Ｏによるディスク処理について全てディスク制御部Ａ７１に対して要求する。ディスク制御部Ａ７１は、正常な全てのＦＣ−ＡＬディスクを対象に、それらに滞留しているディスク処理をキャンセルした後、ホスト制御部Ａ９１、Ｂ９２から指示されたディスク処理、およびディスク制御部Ａ７１の判断によるディスク処理を行う。これにより、システムの運用が完全に停止する期間を最小限にすることができる。
【００６１】
次に、仮縮退解除したディスク制御部Ａ７１のループ診断部Ａ７１１と、仮縮退中のディスク制御部Ｂ７２のループ診断部Ｂ７２１は、連携してＦＣ−ＡＬ  Ｂ４２に接続された複数のディスク２１〜２Ｎから故障部品を特定するための診断処理を行う（Ｓ１０９７）。このステップＳ１０９７のループ診断処理は、例えば、ステップＳ１０９４の処理と同様に以下のように行われる。
【００６２】
先ず、ディスク制御部Ｂ７２のループ診断部Ｂ７２１は、制御部間通信手段１００、ディスク制御部Ａ７１のループ診断部７１１、ＦＣ−ＡＬ  Ａ４１、エンクロージャサービス部Ａ５１、インタフェース１３０を通じて、エンクロージャサービス部Ｂ５２に対して、ＦＣ−ＡＬディスク２１〜２Ｎのうち、例えばディスク２１をＦＣ−ＡＬ  Ｂ４２に接続（バイパス解除）するよう指示する。エンクロージャサービス部Ｂ５２のループ接続制御部Ｂ５２３は、この指示を受けてループ接続切替部Ｂ３２を制御し、ディスク２１をＦＣ−ＡＬ  Ｂ４２に接続する。ディスク制御部Ｂ７２は、ＦＣ−ＡＬ  Ｂ４２のループ異常が再発したかどうかを判定し、再発していれば、ディスク２１を故障ディスクと特定し、ループ異常が再発しなければ、ディスク２１は正常ディスクと特定する。ディスク２１を故障ディスクと特定した場合、ディスク制御部Ｂ７２のループ診断部Ｂ７２１は、そのバイパス解除を指示した場合と同じ経路で、ループ接続切替部Ｂ３２にディスク２１をバイパスする指示を出し、故障ディスク２１をＦＣ−ＡＬ  Ｂ４２から切り離した後、次のディスク２２の診断をディスク２１と同様に実施する。ディスク２１が故障ディスクでない場合は、ディスク２１をＦＣ−ＡＬ  Ｂ４２に接続したまま、次のディスク２２の診断をディスク２１と同様に実施する。このような手順を、残りの全てのディスクについて繰り返す。こうしてＦＣ−ＡＬＢ４２のループ診断が終了すると、ＦＣ−ＡＬ  Ｂ４２には正常ディスクだけが接続された状態になる。なお、ステップＳ１０９４の場合と同様に、ディスク制御部Ｂ７２はＦＣ−ＡＬ  Ｂ４２経由で直接にエンクロージャサービス部Ｂ５２にバイパス解除の指示を送るようにしても良い。
【００６３】
その後、ディスク制御部Ｂ７２は、制御部間通信手段１００によりホスト制御部Ａ８１、Ｂ８２および他のディスク制御部Ａ７１に対して、ループＢの仮縮退状態を解除し通常状態に遷移したことを通知（仮縮退解除通知）する（Ｓ１０９８）。これにより、ループＡ、Ｂの双方を使用してシステムの運用が継続される（Ｓ１０９９）。つまり、仮縮退状態を解除したディスク制御部Ｂ７２は、通常機能としてのディスク処理を再開する。仮縮退解除通知を受けたディスク制御部Ａ７１は、仮縮退解除したディスク制御部Ｂ７２が受け持つディスクに対する処理を停止する。ループＢの仮縮退解除通知を受けたホスト制御部Ａ８１、Ｂ８２は、上記のディスクの受け持ちに応じたディスク制御部Ａ７１、Ｂ７２に対してディスク処理を要求する。なお、故障と判断されたディスクは、例えばディスクアレイ装置１に接続された保守端末（図示せず）や、あるいはホストパスで接続されたディスクアレイ管理用ホスト（図示せず）などにより保守員や使用者などに、交換が必要であることが通知される。
【００６４】
ステップＳ１０９４、Ｓ１０９７で説明した上述したループ診断処理の具体例はあくまでも一例であり、本発明は上記具体例に限定されるものではない。例えば、ステップＳ１０９４における診断方法として、例えば半分のディスクを一度にＦＣ−ＡＬ  Ａ４１に接続し、ループ異常が発生していなければ、残りのディスクの半分を一度にＦＣ−ＡＬ  Ａ４１に接続するというように、一度に複数のディスクを接続するようにしても良い。この場合、複数のディスクを接続した際にループ異常が再発したら、その中に故障ディスクが存在するので、それら複数のディスクの中から故障ディスクを特定する処理を行えば良い。ステップＳ１０９７においても同様のループ診断方法を用いることができる。
【００６５】
また、実際にはディスク１台の故障で両ループが異常になるケースが多いので、ステップＳ１０９７では、ステップＳ１０９４の診断結果を考慮し、故障ディスクと判定されたディスク以外のディスク全てを一度にＦＣ−ＡＬ  Ｂ４２に接続し、ループ異常が再発しないかどうかを調べるようにしても良い。但し、希ではあるが２台のディスクが１ループづつ同時に故障して２ループ異常が発生する場合もあり、その場合にはループ異常が再発するので、更に診断を続けてＦＣ−ＡＬ  Ｂ４２側のループ異常の原因である故障ディスクを特定する。
【００６６】
【発明の他の実施の形態】
以上の実施の形態では、エンクロージャサービス部Ａ５１、Ｂ５２のハートビート監視部Ａ５１１、Ｂ５２１が双方のループ異常を検出したとき、ループ接続制御部Ａ５１３、Ｂ５２３によって、ＦＣ−ＡＬ  Ａ４１から全ディスク２１〜２Ｎを切り離すと共に、ＦＣ−ＡＬ  Ｂ４２から全ディスク２１〜２Ｎを切り離すことで、双方のループの異常を解消させた。しかし、本発明はこれに限定されず、何れか一方のＦＣ−ＡＬ、例えばＦＣ−ＡＬ  Ｂ４２から全ディスク２１〜２Ｎを切り離し、他方のＦＣ−ＡＬ  Ａ４１にはディスクを接続したままにしておいても良い。この場合、ＦＣ−ＡＬ  Ｂ４２のループ異常は解消するが、ＦＣ−ＡＬ  Ａ４１のループ異常は解消しない。この状態は、１つのループでのみ異常が発生した場合と類似した状態であり、図６のステップＳ１０４５で説明したと同様な方法で、ループ異常のないＦＣ−ＡＬ  Ｂ４２経由でエンクロージャサービス部５１をディスク制御部Ａ７１からアクセスすることで、ＦＣ−ＡＬ  Ａ４１に接続されたディスクの中から故障ディスクを特定するループ診断を実施できる。そして、ループ診断で故障と判断された故障ディスクをＦＣ−ＡＬ  Ａ４１から切り離せば、ＦＣ−ＡＬ  Ａ４１のループ異常が解消するので、ステップＳ１０４５と同様な方法で、他方のＦＣ−ＡＬ  Ｂ４２のループ診断を実施すれば良い。
【００６７】
以上の実施の形態では、ディスク制御部Ａ７１、Ｂ７２に１つのＦＣ−ＡＬが接続されたディスクアレイ装置に本発明を適用したが、本発明はこれに限定されず、ディスク制御部Ａ７１、Ｂ７２に複数のＦＣ−ＡＬが接続されたディスクアレイ装置に対しても本発明は適用可能である。図９にその一例を示す。
【００６８】
図９に示すディスクアレイ装置は、ディスクユニット部５とそれと同様なディスクユニット部５Ｘとの２つのディスクユニット部を備え、双方のディスクユニット部のＦＣ−ＡＬ  Ａ４１がディスク制御部Ａ７１に接続され、双方のディスクユニット部のＦＣ−ＡＬ  Ｂ４２がディスク制御部Ｂ７２に接続されている。つまり、２個の独立したディスクユニット部５、５Ｘが並列にディスク制御部Ａ７１、Ｂ７２に接続されている。ディスクユニット部５だけを備える図１のディスクアレイ装置では、ディスクユニット部５内のディスクを使ってディスクアレイを構成するが、図９のディスクアレイ装置では、それだけでなく、例えばディスクユニット部５のディスク２１とディスクユニット部５Ｘのディスク２１とでＲＡＩＤ１のディスクアレイを構成する如く、異なるディスクユニット部のディスクを組み合わせてディスクアレイを構成することができる。この場合、何れか一方のディスクユニット部で２重ループ異常が発生しても、もう一方のディスクユニット部でディスク処理を継続することができるため、信頼性をより高めることができる。なお、各ディスクユニット部５、５Ｘにおいて２重ループ異常が発生した場合の処理は基本的に図１のディスクアレイ装置と同じである。
【００６９】
以上の実施の形態では、１つのＦＣ−ＡＬにエンクロージャサービス部が１つだけ接続されたディスクアレイ装置に本発明を適用したが、本発明はこれに限定されず、１つのＦＣ−ＡＬに複数のエンクロージャサービス部が接続されたディスクアレイ装置に対しても本発明は適用可能である。その一例を図１０に示す。
【００７０】
図１０に示すディスクアレイ装置は、ディスクユニット部５と同様なディスクユニット部５Ｙ（増設装置）によって１つのＦＣ−ＡＬ  Ａ４１、Ｂ４２に接続するディスクの数を拡張している。この場合、ディスクユニット部５を含む基本装置とディスクユニット部５Ｙを含む増設装置毎にそれぞれの１ループ当り１つのエンクロージャサービス部が設けられるので、ディスクユニット部５に存在する各ループのエンクロージャサービス部５１、５２同士、ディスクユニット部５Ｙ毎に存在する各ループのエンクロージャサービス部５１、５２同士をインタフェース１３０で互いに通信可能に接続する。また、ディスク制御部Ａ７１、Ｂ７２からのハートビートコマンドは、同じループに接続された全てのエンクロージャサービス部に対して送信され、双方のループ異常を検出したときに各エンクロージャサービス部は自身が設けられている基本装置あるいは増設装置内のループ部分に接続されたディスク全てを切り離す。
【００７１】
以上本発明の実施の形態について説明したが、本発明は以上の実施の形態にのみ限定されず、その他各種の付加変更が可能である。例えば、エンクロージャサービス部はハートビートコマンドの受信が途絶えたことでループ異常を検出したが、ディスク制御部におけるループ異常検出機能と同様な機能をエンクロージャサービス部に設けるようにしても良い。
【００７２】
【発明の効果】
以上説明したように本発明によれば以下のような効果が得られる。
【００７３】
ループへのデバイスの接続、切り離しを行うループ接続切替手段を制御するエンクロージャサービスデバイス等の制御デバイスがそのループに直接接続されたループ状インタフェースを多重化したシステムにおいて、全てのループ状インタフェースが同時にループ障害になった場合でも、デバイスの切り離し、再接続が行えることである。その理由は、多重化された全てのループ状インタフェースが異常になると、それが制御デバイスで検出され、制御デバイスが自律的にループ接続切替手段を制御して少なくとも１つのループ状インタフェースに接続された全てのデバイスをループから切り離し、少なくとも１つのループ状インタフェースのループ異常を解消して、そのループに接続された制御デバイスへのアクセス、この制御デバイス経由による他方のループに接続された制御デバイスへのアクセスが可能になるからである。
【００７４】
ループへのデバイスの接続、切り離しを行うループ接続切替手段を制御するエンクロージャサービスデバイス等の制御デバイスがそのループに直接接続されたループ状インタフェースを多重化したシステムにおいて、全てのループ状インタフェースが同時にループ障害になった場合でも、ループ異常の原因となる故障デバイスを特定するループ診断が実施できることである。その理由は、ループ診断を実施するためには、ループ状インタフェースに接続されたデバイスの切り離し、再接続が必要であるが、このデバイスの切り離し、再接続が可能になるからである。
【００７５】
ループへのデバイスの接続、切り離しを行うループ接続切替手段を制御するエンクロージャサービスデバイス等の制御デバイスがそのループに直接接続されたループ状インタフェースを多重化したシステムにおいて、全てのループ状インタフェースが同時にループ障害になった場合でも、システムが完全に停止したままになるのを防止できることである。その理由は、上述したようにループ診断が可能となり、故障部品をループから除去してシステムの運用を再開できるからである。
【図面の簡単な説明】
【図１】本発明を適用したディスクアレイ装置の一例を示すブロック図である。
【図２】本発明を適用したディスクアレイ装置におけるエンクロージャサービス部の内部構成例を示すブロック図である。
【図３】本発明を適用したディスクアレイ装置におけるディスク制御部の内部構成例を示すブロック図である。
【図４】ディスクアレイ装置のディスク制御部がループの異常を検出したときの処理例を示すフローチャートである。
【図５】ディスクアレイ装置のディスク制御部がループの異常を検出したときの別の処理例を示すフローチャートである。
【図６】片系リンク障害対策処理の一例を示すフローチャートである。
【図７】故障ディスクを切り離し、正常ディスクだけを接続したディスクアレイ装置の状態を示す図である。
【図８】両系リンク障害対策処理の一例を示すフローチャートである。
【図９】本発明を適用したディスクアレイ装置の別の例を示すブロック図である。
【図１０】本発明を適用したディスクアレイ装置の更に別の例を示すブロック図である。
【符号の説明】
１…ディスクアレイ装置
５、５Ｘ、５Ｙ…ディスクユニット部
６…キャッシュ部
２１〜２Ｎ…ＦＣ−ＡＬディスク
３１…ループ接続切替部Ａ
３２…ループ接続切替部Ｂ
４１…ＦＣ−ＡＬ  Ａ
４２…ＦＣ−ＡＬ  Ｂ
５１…エンクロージャサービス部Ａ
５２…エンクロージャサービス部Ｂ
７１…ディスク制御部Ａ
７２…ディスク制御部Ｂ
８１…ホスト制御部Ａ
８２…ホスト制御部Ｂ
９１…ホストＡ
９２…ホストＢ
１００…制御部間通信手段
１１０…内部バス
１２１…ホストインタフェースＡ
１２２…ホストインタフェースＢ
１３０…インタフェース
５１１…ハートビート監視部Ａ
５１２…ハートビート受信部Ａ
５１３…ループ接続制御部Ａ
５２１…ハートビート監視部Ｂ
５２２…ハートビート受信部Ｂ
５２３…ループ接続制御部Ｂ
５３１…ＣＰＵ
５３２…バス
５３３…インタフェースチップ
５３４…メモリ
５３５…通信部
５３６…切替部
７１０…仮縮退制御部Ａ
７１１…ループ診断部Ａ
７１２…ハートビート送信部Ａ
７２０…仮縮退制御部Ｂ
７２１…ループ診断部Ｂ
７２２…ハートビート送信部Ｂ
７３１…ＣＰＵ
７３２…バス
７３３…インタフェースチップ
７３４…メモリ
７３５…通信部
７３６…データ転送部
【図１】
0003620527.tif 000002
【図２】
0003620527.tif 000003
【図３】
0003620527.tif 000004
【図４】
0003620527.tif 000005
【図５】
0003620527.tif 000006
【図６】
0003620527.tif 000007
【図７】
0003620527.tif 000008
【図８】
0003620527.tif 000009
【図９】
0003620527.tif 000010
【図１０】
0003620527.tif 000011