(57)【要約】【課題】異常の発生した被疑制御部を誤って特定した場合でも、運用を継続したまま被疑制御部の保守を行なえるようにする。【解決手段】各ＣＭ１１Ａ，１１Ｂは、インタフェース部１４、第１検出部１２ａおよびリセット制御部１２ｂを有する。インタフェース部１４は、通信路４０に接続され、通信路４０による通信を制御する。第１検出部１２ａは、自ＣＭ１１Ａのインタフェース部１４、他ＣＭ１１Ｂのインタフェース部１４および通信路４０を含むＣＭ間経路Ｐ１上での異常を検出する。リセット制御部１２ｂは、第１検出部１２ａによって他ＣＭ１１Ｂ側での異常を検出した場合、他ＣＭ１１Ｂを縮退させるとともに自ＣＭ１１Ａのインタフェース部１２のリセットを行なう。【選択図】図１
2015084144.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からの入出力要求に従ってストレージユニットを制御する一対の制御部と、
前記一対の制御部の相互間を通信可能に接続する通信路と、を備え、
前記一対の制御部のそれぞれは、
前記通信路に接続され、前記通信路による通信を制御するインタフェース部と、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出する第１検出部と、
前記第１検出部によって前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なうリセット制御部と、を有するストレージ制御装置。
【請求項２】
前記一対の制御部のそれぞれは、
前記リセットに伴って発生する、前記制御部間経路上における前記自制御部側でのリンク異常を検出する第２検出部と、
前記第２検出部によって前記リンク異常を検出した場合、前記リンク異常の状況に基づき、前記制御部間経路による制御部間通信を用いた保守が可能か否かを判定する判定部と、を有する、請求項１に記載のストレージ制御装置。
【請求項３】
前記一対の制御部のそれぞれは、
前記制御部間経路における通常動作時の単位時間当たり通信量を取得する取得部と、
前記リンク異常の状況に基づき、前記リンク異常の発生した状態での転送可能な単位時間当たり通信量を算出する算出部と、を有し、
前記判定部は、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量を超える場合、前記他制御部の保守が可能と判定する一方、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量以下である場合、前記他制御部の保守が不可と判定する、請求項２に記載のストレージ制御装置。
【請求項４】
前記取得部は、前記自制御部の動作開始後の、前記制御部間経路における単位時間当たり通信量の最大値を、前記通常動作時の単位時間当たり通信量として取得する、請求項３に記載のストレージ制御装置。
【請求項５】
前記一対の制御部のそれぞれは、前記判定部によって前記保守が可能と判定した場合、前記制御部間経路を用いた各制御部の保守を行なう、請求項２〜請求項４のいずれか一項に記載のストレージ制御装置。
【請求項６】
前記一対の制御部のそれぞれは、
前記判定部によって前記保守が不可と判定した場合、前記制御部間経路による前記制御部間通信を抑止する抑止部を有する、請求項２〜請求項４のいずれか一項に記載のストレージ制御装置。
【請求項７】
前記抑止部は、前記ホスト装置によって発行される入出力要求を受信するための情報を、前記自制御部から前記他制御部へ移動させることにより、前記制御部間経路による前記制御部間通信を抑止する、請求項６に記載のストレージ制御装置。
【請求項８】
前記ホスト装置によって発行される入出力要求を受信するための情報は、前記自制御部において保持される、前記自制御部による管理対象の論理ユニットを特定する第１論理ユニット情報と前記他制御部による管理対象の論理ユニットを特定する第２論理ユニット情報とである、請求項７に記載のストレージ制御装置。
【請求項９】
ストレージユニットと、
ホスト装置からの入出力要求に従って前記ストレージユニットを制御する一対の制御部と、
前記一対の制御部の相互間を通信可能に接続する通信路と、を備え、
前記一対の制御部のそれぞれは、
前記通信路に接続され、前記通信路による通信を制御するインタフェース部と、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出する第１検出部と、
前記第１検出部によって前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なうリセット制御部と、を有するストレージ装置。
【請求項１０】
ホスト装置からの入出力要求に従ってストレージユニットを制御する一対の制御部と、前記一対の制御部の相互間を通信可能に接続する通信路と、前記一対の制御部のそれぞれにおいて前記通信路に接続され前記通信路による通信を制御するインタフェース部と、を備えるストレージ制御装置において、前記一対の制御部のそれぞれとして機能するコンピュータに、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出し、
前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なう、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ装置、及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
ストレージ装置は、例えばディスクアレイ装置によって構成される。ディスクアレイ装置では、複数のディスク（ＨＤＤ (Hard Disk Drive)等）を組み合わせ仮想的な１台のディスク（ＲＡＩＤ (Redundant Arrays of Inexpensive Drives)グループ）として管理するＲＡＩＤ技術が採用されている。ＲＡＩＤ技術の採用により、ディスクに記憶したデータの消失等が防止される。また、ＲＡＩＤ技術では、ＲＡＩＤのレベル（ＲＡＩＤ１〜６等）に応じ、各ディスクへのデータ配置と冗長性とが異なる。
【０００３】
ＲＡＩＤ装置とは、ＲＡＩＤ技術を利用したディスクアレイ装置のことをいう。ＲＡＩＤ装置においては、データ保証の観点から、ＲＡＩＤ装置を制御する制御部が冗長化されて、一対の制御部が搭載されている。なお、当該制御部は、Controller Module（以下ＣＭ）と呼ばれる。各ＣＭは、ホスト装置からの入出力要求（Ｉ／Ｏ要求，コマンド）に従って、上述した複数のディスクを含むストレージユニットを制御する。
【０００４】
一対のＣＭは、通信路（データ伝送路）を通して相互に通信可能に接続されている。当該通信路としては、例えばＰＣＩｅ（Peripheral Components Interconnect express）が用いられる。各ＣＭには、前記通信路に接続され当該通信路による通信を制御するＰＣＩｅスイッチ（ＰＣＩｅＳＷ）が備えられる。ここでは、前記通信路と当該通信路の両端に接続されたＰＣＩｅＳＷとを含む、ＣＭ間を結ぶ経路をＣＭ間経路と呼ぶ。なお、以下では、一対のＣＭをＣＭ＃０，ＣＭ＃１と表記する場合がある。
【０００５】
一対のＣＭのうちの一方でＰＣＩｅＳＷで異常が発生した場合、もう一方の正常なＣＭは、異常の発生したＰＣＩｅＳＷを含む被疑ＣＭ（異常ＣＭ）を縮退させて切り離し、正常なＣＭのみによってＲＡＩＤ装置の運用が継続して実行される。
しかし、ＣＭ間経路上で異常が発生した場合、ＰＣＩｅの特性上、当該異常が一対のＣＭのどちらで発生したかを正確に特定することは困難である。ただし、当該異常が一対のＣＭのうちどちらで発生した可能性が高いかを判断することはできるので、異常の発生した可能性の高い方のＣＭを被疑ＣＭとして特定している。
【０００６】
このため、正常なＣＭを誤って被疑ＣＭとして特定する可能性がある。ここで、実際にはＣＭ＃０のＰＣＩｅＳＷで異常が発生したにもかかわらず、正常なＣＭ＃１を被疑ＣＭとして誤って特定した場合の動作について、図１４の符号Ａ１〜Ａ８を参照しながら説明する。なお、図１４は当該動作を説明するシーケンス図である。ＣＭ＃０側で発生したＣＭ間経路異常（符号Ａ１参照）が、ＣＭ＃１を被疑ＣＭとして検出されると（符号Ａ２参照）、正常なＣＭ＃１が縮退されてＲＡＩＤ装置から切り離され（符号Ａ３参照）、切り離されたＣＭ＃１の保守が行なわれる（符号Ａ４参照）。
【０００７】
一方、生き残ったＣＭ＃０は、ＰＣＩｅＳＷに異常を残したままでＲＡＩＤ装置の運用を継続することになる。このとき、生き残ったＣＭ＃０のＰＣＩｅＳＷに異常が残っていても、生き残ったＣＭ＃０は、ＣＭ間経路を用いたＣＭ間通信を行なわないため、ＲＡＩＤ装置の運用に影響を与えることなく、一台だけで運用を継続することができる。
【０００８】
しかしながら、誤って特定された被疑ＣＭ＃１の保守が行なわれ、保守後のＣＭ＃１がＲＡＩＤ装置に組み込まれ、ＣＭ間経路を用いたＣＭ間通信が再開されると、ＣＭ＃０に残っているＰＣＩｅＳＷ異常のために再び通信異常が発生してしまう（符号Ａ５参照）。したがって、再度、保守後のＣＭ＃１を誤って被疑ＣＭとして特定し、保守後のＣＭ＃１が縮退されて切り離されてしまう（符号Ａ６参照）。このように保守に失敗した場合、ＲＡＩＤ装置の電源を落として、ＣＭ＃０の保守交換を行なってから（符号Ａ７参照）、ＲＡＩＤ装置の電源を再投入することになる（符号Ａ８参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−５９５５８号公報
【特許文献２】特開２００１−４３０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述のように、正常なＣＭを誤って被疑ＣＭとして特定した場合、ＲＡＩＤ装置の電源を落としてＣＭの保守交換を行なう必要があるため、ＲＡＩＤ装置（システム）の運用を停止しなければならないという課題がある。
【００１１】
一つの側面で、本発明は、異常の発生した被疑制御部を誤って特定した場合でも、運用を継続したまま被疑制御部の保守を行なえるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【００１２】
本件のストレージ制御装置は、ホスト装置からの入出力要求に従ってストレージユニットを制御する一対の制御部と、前記一対の制御部の相互間を通信可能に接続する通信路と、を備える。前記一対の制御部のそれぞれは、インタフェース部、第１検出部およびリセット制御部を有する。前記インタフェース部は、前記通信路に接続され、前記通信路による通信を制御する。前記第１検出部は、前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出する。前記リセット制御部は、前記第１検出部によって前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なう。
【発明の効果】
【００１３】
一実施形態によれば、異常の発生した被疑制御部を誤って特定した場合でも、運用を継続したまま被疑制御部の保守を行なうことができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態としてのストレージ制御装置を含むストレージ装置（ＲＡＩＤ装置）のハードウェア構成および機能構成を示すブロック図である。
【図２】図１に示すストレージ制御装置の動作を説明するフローチャートである。
【図３】図１に示すストレージ制御装置の動作（ＰＣＩｅＳＷのリセットによる保守成功例）を説明するシーケンス図である。
【図４】第２実施形態としてのストレージ制御装置を含むストレージ装置（ＲＡＩＤ装置）のハードウェア構成および機能構成を示すブロック図である。
【図５】図４に示すストレージ制御装置の動作を説明するフローチャートである。
【図６】ストレージ制御装置においてリセットに伴うリンク異常が発生した場合の動作（保守失敗例）を説明するシーケンス図である。
【図７】図４に示すストレージ制御装置の最大通信量取得動作、および、図４に示すストレージ制御装置においてリセットに伴うリンク異常が発生した場合の動作（保守成功例）を説明するシーケンス図である。
【図８】第３実施形態としてのストレージ制御装置を含むストレージ装置（ＲＡＩＤ装置）のハードウェア構成および機能構成を示すブロック図である。
【図９】図８に示すストレージ制御装置の動作を説明するフローチャートである。
【図１０】ストレージ制御装置においてリセットに伴うリンク異常が性能ネックとなって保守を行なえない場合の動作を説明するシーケンス図である。
【図１１】図８に示すストレージ制御装置においてリセットに伴うリンク異常が性能ネックとなる場合の動作（保守成功例）を説明するシーケンス図である。
【図１２】第３実施形態としてのストレージ制御装置の変形例を含むストレージ装置（ＲＡＩＤ装置）のハードウェア構成および機能構成を示すブロック図である。
【図１３】図１２に示すストレージ制御装置の動作を説明するフローチャートである。
【図１４】ストレージ制御装置において正常なＣＭを被疑ＣＭとして誤って特定した場合の動作を説明するシーケンス図である。シーケンス図である。
【発明を実施するための形態】
【００１５】
以下に、図面を参照し、本願の開示するストレージ制御装置、ストレージ装置、及びストレージ制御プログラムの実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１６】
〔１〕第１実施形態の説明
まず、図１〜図３を参照しながら、第１実施形態について説明する。
〔１−１〕第１実施形態の構成
図１は、第１実施形態としてのストレージ制御装置１０を含むストレージ装置（ＲＡＩＤ装置）１のハードウェア構成および機能構成を示すブロック図である。
【００１７】
図１に示すストレージ装置１は、ストレージユニット２０に格納された一以上の記憶装置（物理ディスク；図示略）を仮想化して、仮想ストレージ環境を形成する。そして、ストレージ装置１は、仮想ボリュームを、上位装置であるホスト装置２に提供する。
ストレージ装置１は、１以上（図１に示す例では１台）のホスト装置２に対して通信可能に接続されている。図１に示す例では、ホスト装置２における２つのポートが、それぞれストレージ装置１における一対のＣＡ（Communication Adapter）３０Ａ，３０Ｂに接続されている。
【００１８】
ホスト装置２は、例えば、サーバ機能を備えた情報処理装置であり、ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。ホスト装置２は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
【００１９】
そして、ストレージ装置１は、ホスト装置２からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置２からの入出力要求のことをＩ／Ｏ要求もしくはＩ／ＯコマンドもしくはホストＩ／Ｏという場合がある。
【００２０】
ストレージ装置１は、図１に示すように、ストレージ制御装置１０と、ストレージユニット２０と、一対のＣＡ３０Ａ，３０Ｂとを備える。
ＣＡ３０Ａ，３０Ｂは、ホスト装置２と通信可能に接続するネットワークアダプタで、例えば、ＬＡＮ（Local Area Network）インタフェース，ｉＳＣＳＩ（internet Small Computer System Interface）インタフェース，ＦＣ（Fibre Channel）インタフェースである。ＣＡ３０Ａ，３０Ｂは、ホスト装置２から送信されたデータを受信したり、後述するＣＭ１１Ａ，１１Ｂから出力されるデータをホスト装置２に送信する。すなわち、ＣＡ３０Ａ，３０Ｂは、ホスト装置２との間でのデータの入出力（Ｉ／Ｏ）を制御する。
【００２１】
ストレージユニット２０は、１以上の記憶装置（物理ディスク）を搭載可能であり、当該１以上の記憶装置の記憶領域（実ボリューム，実ストレージ）を、ストレージ装置１に対して提供する。例えば、ストレージユニット２０は、複数段のスロット（図示略）を備え、これらのスロットに、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置を挿入することにより、実ボリューム容量を随時変更することができる。また、複数の記憶装置を用いてＲＡＩＤを構成することができる。
【００２２】
ストレージ制御装置１０は、ホスト装置２からのＩ／Ｏ要求に従ってストレージユニット２０を制御する、冗長化された一対のＣＭ（制御部）１１Ａ，１１Ｂと、これらのＣＭ１１Ａ，１１Ｂの相互間を通信可能に接続する通信路（データ伝送路）４０と、を備える。つまり、一対のＣＭ１１Ａ，１１Ｂは、通信路４０を通して相互に通信可能に接続されている。当該通信路４０としては、例えばＰＣＩｅが用いられる。
【００２３】
一対のＣＭ１１Ａ，１１Ｂは、それぞれＣＡ３０Ａ，３０Ｂを介してホスト装置２と通信可能に接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。また、一対のＣＭ１１Ａ，１１Ｂには、１台のストレージユニット２０が接続されており、ストレージユニット２０には、ＣＭ１１Ａ，１１Ｂのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、ストレージユニット２０に対して、ＣＭ１１Ａ，１１Ｂのそれぞれを接続することにより、ストレージユニット２０へのアクセス経路が冗長化されている。
【００２４】
また、ホスト装置２からＣＡ３０Ａ経由でＣＭ１１Ａへ発行されたＩ／Ｏ要求によるアクセス対象の論理ユニットがＣＭ１１Ａによる管理対象である場合、当該Ｉ／Ｏ要求に応じたストレージユニット２０に対する処理はＣＭ１１Ａで実行される。一方、当該アクセス対象の論理ユニットがＣＭ１１Ａによるの管理対象でない場合、当該Ｉ／Ｏ要求は、通信路４０を用いたＣＭ間通信によってＣＭ１１ＡからＣＭ１１Ｂへ転送され、当該Ｉ／Ｏ要求に応じたストレージユニット２０に対する処理がＣＭ１１Ｂで実行される。
【００２５】
同様に、ホスト装置２からＣＡ３０Ｂ経由でＣＭ１１Ｂへ発行されたＩ／Ｏ要求のアクセス対象の論理ユニットがＣＭ１１Ｂによる管理対象である場合、当該Ｉ／Ｏ要求に応じたストレージユニット２０に対する処理はＣＭ１１Ｂで実行される。一方、当該アクセス対象の論理ユニットがＣＭ１１Ａによる管理対象でない場合、当該Ｉ／Ｏ要求は、通信路４０を用いたＣＭ間通信によってＣＭ１１ＢからＣＭ１１Ａへ転送され、当該Ｉ／Ｏ要求に応じたストレージユニット２０に対する処理がＣＭ１１Ａで実行される。
【００２６】
なお、アクセス対象の論理ユニットがＣＭ１１Ａまたは１１Ｂによる管理対象であるか否かは、ＣＭ１１Ａまたは１１Ｂに保存された論理ユニット情報に基づき判断される。論理ユニット情報は、ＣＭ１１Ａまたは１１Ｂの管理対象の論理ユニットを特定する情報、例えばＬＵＮ（Logical Unit Number）で、ＣＭ１１Ａまたは１１Ｂにおけるメモリ１３（後述）に予め登録保存される。このようにメモリ１３に保存されたＬＵＮは、ホスト装置２によって発行されるＩ／Ｏ要求を受信するための情報として用いられる。つまり、ＣＭ１１Ａまたは１１Ｂは、メモリ１３に保存されたＬＵＮ宛のＩ／Ｏ要求をホスト装置２から受信して処理する。
【００２７】
ＣＭ１１Ａ，１１Ｂは、ストレージ装置１を制御するコントローラで、ホスト装置２からＣＡ３０Ａ，３０Ｂ経由で受信したＩ／Ｏ要求（リード／ライト等のコマンド）に従って、ストレージユニット２０のアクセス制御等、各種制御を行なう。ＣＭ１１Ａ，１１Ｂは、互いにほぼ同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１１Ａ，１１Ｂを用いるが、任意のＣＭを指すときには符号１１を用いる。また、ＣＭ１１ＡをＣＭ＃０と、ＣＭ１１ＢをＣＭ＃１とそれぞれ表す場合がある。
【００２８】
ＣＭ１１は、図１に示すように、ＣＰＵ（Central Processing Unit）１２，メモリ１３，ＰＣＩｅＳＷ１４，１６およびディスク用インタフェース部１５を有している。
メモリ１３は、種々のデータやプログラムを一時的に格納する記憶装置で、図示しないメモリ領域とキャッシュ領域とを備える。キャッシュ領域は、ホスト装置２から受信したデータや、ホスト装置に対して送信するデータを一時的に格納する。メモリ領域は、ＣＰＵ１２がプログラムを実行する際にデータやプログラムを一時的に格納・展開するために用いられる。前述したＬＵＮは、メモリ領域に保存される。
【００２９】
ＰＣＩｅＳＷ１４は、ＰＣＩｅの通信路４０に接続され、通信路４０による通信を制御するインタフェース部であり、ＣＰＵ１２と通信路４０との間をつなぐブリッジとして機能する。通信路（ＰＣＩｅＳＷ間通信路）４０は、ＣＭ１１ＡのＰＣＩｅＳＷ１４とＣＭ１１ＢのＰＣＩｅＳＷ１４との間を通信可能に接続する。また、ＰＣＩｅＳＷ１４とＣＰＵ１２との間は、ＰＣＩｅの通信路（ＣＰＵ−ＰＣＩｅＳＷ間通信路）１７によって通信可能に接続される。そして、本実施形態において、ＣＭ１１ＡのＣＰＵ１２とＣＭ１１ＢのＣＰＵ１２とを結ぶ経路を、ＣＭ間経路（制御部間経路；ＣＰＵ間経路）Ｐ１と呼ぶ。つまり、本実施形態のＣＭ間経路Ｐ１は、ＣＭ１１Ａ側の通信路１７およびＰＣＩｅＳＷ１４と、通信路４０と、ＣＭ１１Ｂ側の通信路１７およびＰＣＩｅＳＷ１４とを含んでいる。
【００３０】
ディスク用インタフェース部（ＳＡＳインタフェース部）１５は、ストレージユニット２０における記憶装置等と通信可能に接続する、例えばＳＡＳ（Serial Attached ＳＣＳＩ (Small Computer System Interface)）インタフェースである。また、ＳＡＳインタフェース部１５は、ＳＡＳの通信路５０に接続され、通信路５０による通信を制御するインタフェース部としても機能する。通信路（ＳＡＳインタフェース部間通信路）５０は、ＣＭ１１ＡのＳＡＳインタフェース部１５とＣＭ１１ＢのＳＡＳインタフェース部１５との間を通信可能に接続する。
【００３１】
ＰＣＩｅＳＷ１６は、ＣＡ３０Ａまたは３０Ｂと、ＣＰＵ１２と、ＳＡＳインタフェース部１５との間をつなぐブリッジとして機能する。つまり、ＰＣＩｅＳＷ１６を介して、ＣＰＵ１２とホスト２とストレージユニット２０とが通信可能に接続される。つまり、ＣＰＵ１２による制御の下、ＰＣＩｅＳＷ１６およびＳＡＳインタフェース部１５を介してホスト装置２からのＩ／Ｏ要求に応じたデータの書き込みや読み出しが行なわれる。これにより、ストレージユニット２０には、ＣＭ１１Ａ，１１Ｂのいずれからもデータの書き込みや読み出しを行なうことができる。
【００３２】
ＣＰＵ（処理部）１２は、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１２は、メモリ１３等に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。
特に、第１実施形態のＣＰＵ１２は、所定のストレージ制御プログラムを実行することで、後述する第１検出部１２ａおよびリセット制御部１２ｂとして機能する。なお、図１において、第１検出部１２ａおよびリセット制御部１２ｂは、ＣＭ１１ＡのＣＰＵ１２にのみ図示されているが、ＣＭ１１ＢのＣＰＵ１２にも備えられている。
【００３３】
第１検出部１２ａは、上述したＣＭ間経路Ｐ１上での異常を検出する。前述した通り、ＰＣＩｅを採用したＣＭ間経路Ｐ１上で異常が発生した場合、ＰＣＩｅの特性上、当該異常が一対のＣＭ１１Ａ，１１Ｂのどちらで発生したかを正確に特定することは難しい。しかし、当該異常が一対のＣＭ１１Ａ，１１Ｂのうちどちらで発生した可能性が高いかを判断することは可能である。したがって、第１検出部１２ａは、ＣＭ間経路Ｐ１上の異常を検出した場合、ＣＭ１１Ａ，１１Ｂのうち、異常の発生した可能性の高い方のＣＭを被疑ＣＭ（異常ＣＭ）として特定・検出する。
【００３４】
リセット制御部１２ｂは、第１検出部１２ａによって他ＣＭ（他制御部）側での異常を検出した場合、他ＣＭを縮退させるとともに自ＣＭのＰＣＩｅＳＷ（インタフェース部）１４のリセットを行なう。つまり、ＣＭ１１Ａのリセット制御部１２ｂは、自ＣＭ１１Ａの第１検出部１２ａによって他ＣＭ１１Ｂ側での異常を検出した場合、ＣＭ１１ＡのＣＰＵ１２からＣＭ１１ＢのＣＰＵ１２へ、縮退を指示する信号を送信する。また、ＣＭ１１Ａのリセット制御部１２ｂは、通信路１７を通して、自ＣＭ１１ＡのＰＣＩｅＳＷ１４にリセット信号を送信し、自ＣＭ１１ＡのＰＣＩｅＳＷ１４のリセットを行なう。なお、ＣＭ１１ＡからＣＭ１１Ｂへの縮退指示信号の送信は、例えば、ＣＭ１１ＡとＣＭ１１Ｂとを通信可能に接続するシリアル通信路であるＩ２Ｃ（Inter-Integrated Circuit）信号線６０を通して行なわれる。
【００３５】
以下では、ＣＭ１１Ａ（ＣＭ＃０）がマスタ（主体）である場合の動作について説明するが、ＣＭ１１Ｂ（ＣＭ＃１）がマスタである場合も、ＣＭ１１Ａがマスタである場合と同様に動作することはいうまでもない。このため、ＣＭ１１Ｂがマスタである場合の動作についての詳細な説明は省略する。また、以下では、ＰＣＩｅＳＷ１４に対するリセットのことをＰＣＩｅＳＷリセットと呼ぶ場合がある。
【００３６】
〔１−２〕第１実施形態の動作
次に、図２に示すフローチャート（ステップＳ１〜Ｓ３）に従って、図１に示すストレージ制御装置１０の動作について説明する。
ＣＭ１１Ａ（ＣＭ＃０）の第１検出部１２ａは、ストレージ装置１の動作中、ＣＭ間経路Ｐ１上での異常の発生を監視する（ステップＳ１）。第１検出部１２ａは、ＣＭ間経路Ｐ１上の異常を検出し且つ他ＣＭ１１Ｂ（ＣＭ＃１）を異常の発生した可能性の高い被疑ＣＭ（異常ＣＭ）として特定した場合（ステップＳ１のＹＥＳルート）、リセット制御部１２ｂが以下のように動作する。
【００３７】
つまり、ＣＭ＃０のリセット制御部１２ｂによって、ＣＭ＃０（ＣＰＵ１２）からＣＭ＃１（ＣＰＵ１２）に対しＩ２Ｃ信号線６０を介して縮退指示信号が送信される（ステップＳ２）。また、ＣＭ＃０のリセット制御部１２ｂによって、ＣＰＵ１２からＣＭ＃０のＰＣＩｅＳＷ１４に対し通信路１７を介してリセット信号が送信される（ステップＳ３）。なお、ステップＳ２の処理およびステップＳ３の処理は、上述した順序とは逆の順序で実行されてもよいし、同時に実行されてもよい。
【００３８】
ここで、実際にはＣＭ＃０のＰＣＩｅＳＷ１４で異常が発生したにもかかわらず、正常なＣＭ＃１を被疑ＣＭ（異常ＣＭ）として誤って特定した場合の保守動作について、図２のステップＳ１〜Ｓ３と図３の符号Ａ１１〜Ａ１６とを参照しながら説明する。なお、図３は、図１に示すストレージ制御装置１０の動作（ＰＣＩｅＳＷリセットによる保守成功例）を説明するシーケンス図である。このとき、ＣＭ＃０のＰＣＩｅＳＷ１４で発生した異常は、リセットによって解消可能な異常（例えば間欠故障，ソフトエラー）であるとする。
【００３９】
ＣＭ＃０側で発生したＣＭ間経路Ｐ１の異常（符号Ａ１１参照）が、ＣＭ＃１を被疑ＣＭとして検出されると（符号Ａ１２；ステップＳ１のＹＥＳルート参照）、ＣＭ＃０からＣＭ＃１へ縮退指示信号が送信される（ステップＳ２参照）。ＣＭ＃１で縮退指示信号を受信すると、ＣＭ＃１は、縮退（停止）され、ストレージ装置１から切り離された後（符号Ａ１３参照）、被疑ＣＭ＃１の保守が行なわれ、保守後のＣＭ＃１がストレージ装置１に組み込まれる（符号Ａ１４参照）。
【００４０】
一方、生き残ったＣＭ＃０において、異常を残したままのＰＣＩｅＳＷ１４は、自ＣＭ＃０のＣＰＵ１２からのリセット信号によってリセットされる（符号Ａ１５；ステップＳ３参照）。ＰＣＩｅＳＷ１４で発生する異常の９割がたは、リセットによって解消可能な異常（間欠故障，ソフトエラー等）である。したがって、上述のようにＰＣＩｅＳＷリセットを行なうことで、ＰＣＩｅＳＷ１４に残っている異常の９割がたは解消されることになる。
【００４１】
ＣＭ＃１の縮退・保守およびＣＭ＃０のＰＣＩｅＳＷリセットを行なっている間、ＣＭ＃０は、ＣＭ間通信を行なうことなく、単独でストレージ装置１の運用を継続する。そして、保守後のＣＭ＃１がストレージ制御装置１０に組み込まれてＣＭ間通信が再開され保守に成功すると（符号Ａ１６参照）、ストレージ制御装置１０は、ＣＭ＃０およびＣＭ＃１による通常運用に復帰する。
【００４２】
なお、ＣＭ＃０のＰＣＩｅＳＷリセットおよびＣＭ＃１の保守を行なったにもかかわらずＣＭ間通信を再開できず保守に失敗した場合、ＣＭ＃０のＰＣＩｅＳＷ１４の異常が、リセットによって解消されずに残っているものと考えられる。したがって、この場合、ストレージ装置１の電源を落として、ＣＭ＃０の保守交換を行なってから、ストレージ装置１の電源を再投入することになる。
【００４３】
〔１−３〕第１実施形態の効果
第１実施形態のストレージ制御装置１０およびストレージ装置１によれば、一対のＣＭ＃０，＃１のうちＣＭ＃１での異常が検出された場合、ＣＭ＃１の縮退・保守が行なわれるとともに、ＣＭ＃０のＰＣＩｅＳＷリセットが行なわれる。ＣＭ＃０のＰＣＩｅＳＷ１４に間欠故障，ソフトエラー等の異常が残っている場合、ＰＣＩｅＳＷリセットを行なうことで、その異常は解消される。
【００４４】
これにより、異常の発生した被疑ＣＭを誤って特定した場合でも、ストレージ装置１の運用を継続したまま被疑ＣＭの保守を行なうことができる。特に、ＰＣＩｅＳＷリセットによってＰＣＩｅＳＷ１４の異常の多くが解消される。したがって、ＣＭ間経路Ｐ１上での異常の発生箇所の特定を誤ってストレージ装置１の運用停止を招く可能性を大幅に低くすることができる。
【００４５】
〔２〕第２実施形態の説明
次に、図４〜図７を参照しながら、第２実施形態について説明する。
〔２−１〕第２実施形態の構成
図４は、第２実施形態としてのストレージ制御装置１０′を含むストレージ装置（ＲＡＩＤ装置）１′のハードウェア構成および機能構成を示すブロック図である。なお、図４中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００４６】
図４に示すストレージ装置１′も、図１に示す第１実施形態のストレージ装置１とほぼ同様に構成されている。ただし、図１に示すストレージ装置１と図４に示すストレージ装置１′との相違点は、ストレージ制御装置１０に代えてストレージ制御装置１０′が備えられている点である。また、図１に示すストレージ制御装置１０と図４に示すストレージ制御装置１０′との相違点は、各ＣＭ１１において、ＣＰＵ１２に代えてＣＰＵ１２′が備えられている点である。
【００４７】
ＣＰＵ（処理部）１２′は、第１実施形態のＣＰＵ１２と同様、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１２′は、メモリ１３等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００４８】
特に、第２実施形態のＣＰＵ１２′は、所定のストレージ制御プログラムを実行することで、第１実施形態と同様の第１検出部１２ａ，リセット制御部１２ｂとして機能するのに加え、後述する第２検出部１２ｃ，判定部１２ｄ，取得部１２ｅ，算出部１２ｆとして機能する。なお、図４において、符号１２ａ〜１２ｆで示す機能は、ＣＭ１１ＡのＣＰＵ１２′にのみ図示されているが、ＣＭ１１ＢのＣＰＵ１２′にも備えられている。
【００４９】
第２検出部１２ｃは、上述したＰＣＩｅＳＷリセットに伴って発生する、ＣＭ間経路Ｐ１上における自ＣＭ１１Ａ側でのリンク異常を検出する。リンク異常は、第１実施形態で説明したようにＣＰＵ１２′からＰＣＩｅＳＷ１４に対しリセット信号を出力してＰＣＩｅＳＷリセットを行なうことで、ＣＰＵ１２′とＰＣＩｅＳＷ１４との間の通信路１７上で生じる。リンク異常の詳細については図６を参照しながら後述する。
【００５０】
取得部１２ｅは、ＣＭ間経路Ｐ１における通常動作時の単位時間（例えば１秒）当たり通信量を取得する。取得部１２ｅは、自ＣＭ１１Ａ（１１Ｂ）の動作開始後の、ＣＭ間経路Ｐ１における単位時間当たりの通信量の最大値（最大通信量Ｃmax）を、通常動作時の単位時間当たり通信量として取得する。ここで、通信量は、一定時間（例えば１秒）に転送されるデータサイズ（byte）である。取得部１２ｅによる最大通信量Ｃmaxの取得手順については、図５（ステップＳ１１〜Ｓ１４）を参照しながら後述する。
【００５１】
算出部１２ｆは、第２検出部１２ｃによってリンク異常を検出した場合、当該リンク異常の状況に基づき、当該リンク異常の発生した状態での、ＣＭ間経路Ｐ１におけるハードウェア的に転送可能な単位時間（例えば１秒）当たり通信量（理論値）Ｃ２を算出する。このとき、当該理論値Ｃ２は、リンク異常の生じた通信路１７における通信状況、例えば経路幅（伝送レーンの本数）や転送速度に基づき、ＰＣＩｅの規約に従って算出される。
【００５２】
判定部１２ｄは、第２検出部１２ｃによってリンク異常を検出した場合、当該リンク異常の状況に基づき、ＣＭ間経路Ｐ１によるＣＭ間通信を用いた保守が可能か否かを判定する。特に、判定部１２ｄは、算出部１２ｆによって算出された、リンク異常発生状態での転送可能通信量Ｃ２と、取得部１２ｅによって取得された最大通信量Ｃmaxとを比較することで、ＣＭ間通信を用いた保守の可否判断を行なう。
【００５３】
より具体的には、図５および図７を参照しながら後述するごとく、判定部１２ｄは、転送可能通信量Ｃ２が最大通信量Ｃmaxを超える場合（Ｃ２＞Ｃmax）、他ＣＭ１１Ｂの保守が可能であると判定する。この場合、各ＣＭ１１は、ＣＭ間経路Ｐ１を用いた他ＣＭ１１Ｂの保守を行なう。一方、判定部１２ｄは、転送可能通信量Ｃ２が最大通信量Ｃmax以下である場合（Ｃ２≦Ｃmax）、他ＣＭ１１Ｂの保守が不可であると判定する。
【００５４】
〔２−２〕第２実施形態の動作
次に、図５に示すフローチャート（ステップＳ１１〜Ｓ２２）に従って、図４に示すストレージ制御装置１０′の動作について説明する。
ストレージ装置１′が運用を開始すると、ストレージ制御装置１０′において、単位時間（例えば１秒）が経過したか否かが判断されるとともに（ステップＳ１１）、第１検出部１２ａによって、ＣＭ間経路Ｐ１上での異常の発生が監視される（ステップＳ１５）。単位時間が経過していない場合（ステップＳ１１のＮＯルート）、ステップＳ１５の処理が実行される。
【００５５】
単位時間が経過した場合（ステップＳ１１のＹＥＳルート）、各ＣＭ１１における取得部１２ｅは、最新の単位時間の間にＣＭ間経路Ｐ１上を転送されたデータサイズを、通信量Ｃ１として算出する（ステップＳ１２）。そして、取得部１２ｅは、算出した最新の通信量Ｃ１と、メモリ１３の前記メモリ領域に保存されている、以前に算出された最大の通信量Ｃmaxとを比較する（ステップＳ１３）。
【００５６】
最新通信量Ｃ１が最大通信量以下である場合（Ｃ１≦Ｃmax；ステップＳ１３のＮＯルート）、ＣＰＵ１２′はステップＳ１１の処理に戻る。一方、最新通信量Ｃ１が最大通信量よりも大きい場合（Ｃ１＞Ｃmax；ステップＳ１３のＹＥＳルート）、取得部１２ｅは、メモリ１３の前記メモリ領域に保存されている、現在までの最大通信量Ｃmaxを最新通信量Ｃ１に書き換えてから（ステップＳ１４）、ステップＳ１５の処理に移行する。
【００５７】
取得部１２ｅは、ステップＳ１５で第１検出部１２ａがＣＭ間経路Ｐ１上での異常の発生を検出するまで、ステップＳ１１〜Ｓ１４までの処理を繰り返す（ステップＳ１５のＮＯルート）。これにより、取得部１２ｅは、ストレージ装置１が運用を開始してから、第１検出部１２ａがＣＭ間経路Ｐ１上での異常の発生を検出するまでの間における、ＣＭ間経路Ｐ１の最大通信量Ｃmaxを取得することができる。
【００５８】
一方、ＣＭ１１Ａ（ＣＭ＃０）の第１検出部１２ａは、ストレージ装置１の動作中、ＣＭ間経路Ｐ１上での異常の発生を監視する（ステップＳ１５）。第１検出部１２ａは、ＣＭ間経路Ｐ１上の異常を検出し且つ他ＣＭ１１Ｂ（ＣＭ＃１）を異常の発生した可能性の高い被疑ＣＭ（異常ＣＭ）として特定した場合（ステップＳ１５のＹＥＳルート）、リセット制御部１２ｂが、第１実施形態と同様、以下のように動作する。
【００５９】
つまり、ＣＭ＃０のリセット制御部１２ｂによって、ＣＭ＃０（ＣＰＵ１２′）からＣＭ＃１（ＣＰＵ１２′）に対しＩ２Ｃ信号線６０を介して縮退指示信号が送信される（ステップＳ１６）。また、ＣＭ＃０のリセット制御部１２ｂによって、ＣＰＵ１２′からＣＭ＃０のＰＣＩｅＳＷ１４に対し通信路１７を介してリセット信号が送信される（ステップＳ１７）。なお、ステップＳ１６の処理およびステップＳ１７の処理は、上述した順序とは逆の順序で実行されてもよいし、同時に実行されてもよい。
【００６０】
この後、ＣＭ＃０の第２検出部１２ｃは、ステップＳ１７でのＰＣＩｅＳＷリセットに伴う、ＣＭ間経路Ｐ１上における自ＣＭ＃０側でのリンク異常の発生を監視する（ステップＳ１８）。ＣＭ＃０の第２検出部１２ｃがリンク異常を検出した場合（ステップＳ１８のＹＥＳルート）、算出部１２ｆによって、当該リンク異常の発生した状態での、ＣＭ間経路Ｐ１における転送可能通信量（理論値）Ｃ２が算出される（ステップＳ１９）。
【００６１】
そして、判定部１２ｄは、算出部１２ｆによって算出された転送可能通信量Ｃ２と、取得部１２ｅによって取得された最大通信量Ｃmaxとを比較することで、ＣＭ間通信を用いた保守の可否判断を行なう（ステップＳ２０）。判定部１２ｄは、転送可能通信量Ｃ２が最大通信量Ｃmaxを超える場合（Ｃ２＞Ｃmax；ステップＳ２０のＹＥＳルート）、他ＣＭ＃１の保守が可能であると判定する（ステップＳ２１）。なお、ＣＭ＃０の第２検出部１２ｃがリンク異常を検出しなかった場合（ステップＳ１８のＮＯルート）も、判定部１２ｄは、他ＣＭ＃１の保守が可能であると判定する（ステップＳ２１）。このようにＣＭ間通信を用いた保守が可能であると判定された場合、図７を参照しながら後述するごとく、各ＣＭ１１は、ＣＭ間経路Ｐ１を用いた各ＣＭ１１の保守を行なう。
【００６２】
一方、判定部１２ｄは、転送可能通信量Ｃ２が最大通信量Ｃmax以下である場合（Ｃ２≦Ｃmax；ステップＳ２０のＮＯルート）、他ＣＭ＃１の保守が不可であると判定する（ステップＳ２２）。この場合、ストレージ装置１の電源を落としてＣＭ＃０の保守が実行されるか、あるいは、後述する第３実施形態の手法による保守が実行される。第３実施形態の手法による保守を実行する場合、図５のステップＳ２０のＮＯルートから図９のステップＳ２３以降の処理へ移行する。
【００６３】
ここで、図６（符号Ａ１３〜Ａ１５およびＡ１７〜Ａ１９）を参照しながら、ＰＣＩｅＳＷリセットを行なうことに伴って発生するリンク異常、および、リンク異常によって被疑ＣＭの保守ができなくなる理由について説明する。なお、図６は、ストレージ制御装置においてリセットに伴うリンク異常が発生した場合の動作（保守失敗例）を説明するシーケンス図である。また、図６の符号Ａ１３〜Ａ１５は、それぞれ図３の符号Ａ１３〜Ａ１５に対応している。
【００６４】
上述した第１実施形態では、ＣＭ＃０側でのＣＭ間経路Ｐ１の異常が検出されると、ＣＭ＃１が縮退され（符号Ａ１３参照）、被疑ＣＭ＃１が保守されるとともに（符号Ａ１４参照）、ＣＭ＃０のＰＣＩｅＳＷ１４がＣＰＵ１２′からのリセット信号によってリセットされる（符号Ａ１５参照）。このとき、ＰＣＩｅＳＷリセットによってＰＣＩｅＳＷ１４の異常をかなりの確率で解消することができる。
【００６５】
しかし、ＰＣＩｅＳＷリセットを行なうと、ＣＰＵ１２′とＰＣＩｅＳＷ１４との間の通信路１７が、一旦、切断（リンクダウン）されてから再接続（リンクアップ）されることで、ＣＭ間経路Ｐ１に含まれる通信路１７上でリンク異常が発生する場合がある。リンク異常は、ＣＰＵ１２′とＰＣＩｅＳＷ１４との間で所望の期待状態（所望の経路幅および転送速度）で安定的に通信を行なっている際に、当該通信の切断／接続を行なったことを契機にして発生する。リンク異常が発生した状態の通信路１７は、全く通信を行なえない状態ではないが、経路幅や転送速度が所望の経路幅および転送速度よりも低下した状態（ＣＭ間経路Ｐ１の性能劣化）になっている。
【００６６】
ＣＰＵ１２′とＰＣＩｅＳＷ１４との間の通信路１７ではＰＣＩｅが用いられている。ＰＣＩｅは、通信路におけるリンク状態が所望の期待状態（所望の経路幅および転送速度）でない場合、つまり、例えば上述のごとく性能劣化した状態である場合、性能劣化した当該通信路による通信は許可しない仕様になっている。これは、リンク異常に伴うＣＭ間経路Ｐ１の性能劣化によって、応答遅延やタイムアウトなどが発生する可能性があるからである。
【００６７】
このような仕様のため、ＰＣＩｅＳＷリセットを行なうことで（符号Ａ１５参照）、ＣＰＵ１２′とＰＣＩｅＳＷ１４との間の通信路１７上でリンク異常が発生すると（符号Ａ１７参照）、通信路１７による通信が許可されなくなる。したがって、保守後のＣＭ＃１がストレージ装置１に組み込まれても（符号Ａ１４参照）、ＣＭ＃０からＣＭ＃１へのデータ転送（ＣＭ間通信）を行なえず、ＣＭ＃１のデータリカバリを行なってＣＭ＃１を復旧させることができない（符号Ａ１８参照）。このため、被疑ＣＭ＃１の保守を行なうことができず、被疑ＣＭ＃１の保守に失敗してしまう（符号Ａ１９参照）。保守に失敗した場合、被疑ＣＭ＃１の保守を完了できないままＣＭ＃０の保守交換を行なうべく、ストレージ装置の運用を停止しなければならなくなる。
【００６８】
上述したように、ＰＣＩｅＳＷリセットに伴いリンク異常が発生すると、ＰＣＩｅの仕様のため（性能面での懸念があるため）、保守を行なえなくなっている。しかし、ＣＭ間経路Ｐ１（特に通信路１７）がリンク異常の状態であっても、リンクダウン状態でない限り、通信路１７を経由する通信を行なうことは可能である。ただし、リンク異常状態の通信路１７による通信を行なうと、リンク異常による性能劣化（性能ネック）のために、応答遅延やタイムアウトなどの性能影響が出てしまう虞がある。したがって、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１（通信路１７）に確保できることが分かれば、ＣＭ間経路Ｐ１（通信路１７）を用いて問題なくデータ転送が可能になるので、保守を行なってもよい（保守可）と判断することができる。
【００６９】
そこで、第２実施形態では、ストレージ装置１′の運用開始後、取得部１２ｅにより、ＣＭ間経路Ｐ１における通常動作中の最大通信量Ｃmaxが取得される。リンク異常の発生時には、算出部１２ｆにより、リンク異常の発生した状態での、ＣＭ間経路Ｐ１におけるハードウェア的に転送可能な通信量Ｃ２が、リンク異常の生じた通信路１７における経路幅や転送速度等に基づき、ＰＣＩｅの規約に従って算出される。ストレージ装置１′が運用を開始してからリンク異常が発生するまでに、取得部１２ｅにより取得された最大通信量Ｃmaxは、今後、ＣＭ間経路Ｐ１経由で行なわれる通信の最大通信量とみなすことが可能である。
【００７０】
したがって、Ｃ２＞Ｃmaxの場合、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できるので、リンク異常が性能ネックとはならず、判定部１２ｄは、被疑ＣＭ＃１の保守が可能であると判断することができる。一方、Ｃ２≦Ｃmaxの場合、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できずリンク異常が性能ネックとなる可能性が有るため、被疑ＣＭ＃１の保守が不可であると判断することができる。
【００７１】
ここで、第２実施形態の保守動作について、図５のステップＳ１１〜Ｓ２２と図７の符号Ａ２０〜Ａ３３とを参照しながら説明する。特に、ここでは、通常動作中の最大通信量を取得してから、ＣＭ間経路Ｐ１上の異常検出時に正常なＣＭ＃１を被疑ＣＭとして誤って特定し、ＰＣＩｅＳＷリセットを行ない、当該リセットに伴うリンク異常が発生した場合の保守動作が説明される。なお、図７は、図４に示すストレージ制御装置１０′の最大通信量取得動作、および、図４に示すストレージ制御装置１０′においてリセットに伴うリンク異常が発生した場合の動作（保守成功例）を説明するシーケンス図である。
【００７２】
ストレージ装置１′が運用を開始すると、ＣＭ＃０，＃１のそれぞれにおける取得部１２ｅは、ＣＭ間経路Ｐ１における通常動作時の単位時間当たり通信量Ｃ１を取得する。そして、取得部１２ｅは、運用開始後の通信量Ｃ１の最大値Ｃmaxを、通常動作時の単位時間当たり通信量として取得し保存する（符号Ａ２０〜Ａ２２；ステップＳ１１〜Ｓ１４参照）。
【００７３】
ＣＭ＃０側で発生したＣＭ間経路Ｐ１の異常（符号Ａ２３参照）が、ＣＭ＃１を被疑ＣＭとして検出されると（符号Ａ２４；ステップＳ１５のＹＥＳルート参照）、ＣＭ＃０からＣＭ＃１へ縮退指示信号が送信される（ステップＳ１６参照）。ＣＭ＃１で縮退指示信号を受信すると、ＣＭ＃１は、縮退（停止）され、ストレージ装置１′から切り離された後（符号Ａ２５参照）、被疑ＣＭ＃１の保守が行なわれ、保守後のＣＭ＃１がストレージ装置１′に組み込まれる（符号Ａ２６参照）。
【００７４】
一方、生き残ったＣＭ＃０において、異常を残したままのＰＣＩｅＳＷ１４は、自ＣＭ＃０のＣＰＵ１２′からのリセット信号によってリセットされる（符号Ａ２７；ステップＳ１７参照）。ＰＣＩｅＳＷ１４で発生する異常の９割がたは、リセットによって解消可能な異常（間欠故障，ソフトエラー等）である。したがって、上述のようにＰＣＩｅＳＷリセットを行なうことで、ＰＣＩｅＳＷ１４に残っている異常の９割がたは解消されることになる。
【００７５】
この後、ＰＣＩｅＳＷリセットに伴いＣＭ間経路Ｐ１上における自ＣＭ＃０側の通信路１７上でリンク異常が発生すると（符号Ａ２８参照）、当該リンク異常がＣＭ＃０の第２検出部１２ｃによって検出される（符号Ａ２９；ステップＳ１８のＹＥＳルート参照）。リンク異常が検出されると、最大通信量Ｃmaxおよび転送可能通信量Ｃ２が取得され、上述したように、判定部１２ｄによって、最大通信量Ｃmaxと転送可能通信量Ｃ２とが比較され、ＣＭ間経路Ｐ１を用いた保守の可／不可が判断される（符号Ａ３０；ステップＳ１９，Ｓ２０参照）。
【００７６】
判定部１２ｄによって、ＣＭ間経路Ｐ１を用いた保守が可能であると判断されると（符号Ａ３１；ステップＳ２１参照）、各ＣＭ１１によって、ＣＭ間経路Ｐ１を用いた各ＣＭ１１の保守が行なわれる。つまり、ＣＭ＃０から保守後のＣＭ＃１へのデータ転送（ＣＭ間通信）によってＣＭ＃１のデータリカバリが行なわれ、ＣＭ＃１が復旧される。このようにして、被疑ＣＭ＃１の保守に成功すると（符号Ａ３２参照）、ストレージ制御装置１０′は、ＣＭ＃０およびＣＭ＃１による通常運用に復帰する。
【００７７】
なお、判定部１２ｄによって、ＣＭ間経路Ｐ１を用いた保守が不可であると判断された場合（符号Ａ３３；ステップＳ２２参照）、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できずリンク異常が性能ネックとなる可能性が有る。このため、ストレージ装置１′の電源を落としてＣＭ＃０の保守が実行されるか、あるいは、後述する第３実施形態の手法による保守が実行される。第３実施形態の手法による保守を実行する場合、図７の符号Ａ３３で示すステップから図１１の符号Ａ５１で示すステップへ移行する。
【００７８】
〔２−３〕第２実施形態の効果
第２実施形態のストレージ制御装置１０′およびストレージ装置１′によれば、第１実施形態のストレージ制御装置１０およびストレージ装置１と同様の作用効果を得ることができる。
【００７９】
特に、第２実施形態のストレージ制御装置１０′およびストレージ装置１′によれば、ＰＣＩｅＳＷリセットに伴いリンク異常が発生しても、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できる場合にはＣＭ間経路Ｐ１を用いた保守が行なわれる。これにより、ＰＣＩｅＳＷリセットに伴いリンク異常が発生した場合でも、ストレージ装置１の運用を継続したまま被疑ＣＭの保守を行なうことができる。また、ストレージ装置１′の運用を停止しないで保守可能になるケースが増えるため、保守手法が改善され、ストレージ装置１′の運用停止を招く可能性をより低くすることができる。
【００８０】
〔３〕第３実施形態の説明
次に、図８〜図１１を参照しながら、第３実施形態について説明する。
〔３−１〕第３実施形態の構成
図８は、第３実施形態としてのストレージ制御装置１０″を含むストレージ装置（ＲＡＩＤ装置）１″のハードウェア構成および機能構成を示すブロック図である。なお、図８中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００８１】
図８に示すストレージ装置１″も、図４に示す第２実施形態のストレージ装置１′とほぼ同様に構成されている。ただし、図４に示すストレージ装置１′と図８に示すストレージ装置１″との相違点は、ストレージ制御装置１０′に代えてストレージ制御装置１０″が備えられている点である。また、図４に示すストレージ制御装置１０′と図８に示すストレージ制御装置１０″との相違点は、各ＣＭ１１において、ＣＰＵ１２′に代えてＣＰＵ１２″が備えられている点である。
【００８２】
ＣＰＵ（処理部）１２″は、第２実施形態のＣＰＵ１２′と同様、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１２″は、メモリ１３等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００８３】
特に、第３実施形態のＣＰＵ１２″は、所定のストレージ制御プログラムを実行することで、第２実施形態と同様の、符号１２ａ〜１２ｆで示す機能を果たすのに加え、後述する抑止部１２ｇとして機能する。なお、図８において、符号１２ａ〜１２ｇで示す機能は、ＣＭ１１ＡのＣＰＵ１２″にのみ図示されているが、ＣＭ１１ＢのＣＰＵ１２″にも備えられている。
【００８４】
抑止部１２ｇは、判定部１２ｄによってＣＭ間経路Ｐ１を用いた保守が不可であると判定した場合、ＣＭ間経路Ｐ１によるＣＭ間通信を抑止する。このとき、抑止部１２ｇは、ホスト装置２によって発行される全てのＩ／Ｏ要求を受信するための情報を、自ＣＭ＃０から他ＣＭ＃１へ移動させることにより、ＣＭ間経路Ｐ１によるＣＭ間通信を抑止する。ここで、当該情報は、自ＣＭ＃０のメモリ１３（データ領域）に保持されている。また、当該情報は、例えば、自ＣＭ＃０による管理対象の論理ユニットを特定する第１論理ユニット情報（第１ＬＵＮ）と、他ＣＭ＃１による管理対象の論理ユニットを特定する第２論理ユニット情報（第２ＬＵＮ）との全てである。
【００８５】
〔３−２〕第３実施形態の動作
次に、図９に示すフローチャート（ステップＳ１１〜Ｓ２１およびＳ２３〜Ｓ２６）に従って、図８に示すストレージ制御装置１０″の動作について説明する。なお、図９に示すステップＳ１１〜Ｓ２１の処理は、図５に示すステップＳ１１〜Ｓ２１の処理と同様であるので、その説明は省略する。ここでは、ステップＳ２０のＮＯルートから図９のステップＳ２３以降の処理について説明する。
【００８６】
判定部１２ｄによって転送可能通信量Ｃ２が最大通信量Ｃmax以下であると判定された場合（Ｃ２≦Ｃmax；ステップＳ２０のＮＯルート）、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できず、リンク異常が性能ネックとなる可能性が有る。この場合、ＣＭ＃０は、被疑ＣＭ＃１の保守が行なわれ保守後のＣＭ＃１がストレージ装置１″に組み込まれＣＭ間疎通が完了するのを待機する（ステップＳ２３のＮＯルート）。
【００８７】
ＣＭ間疎通が完了すると（ステップＳ２３のＹＥＳルート）、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行を一旦停止させる（ステップＳ２４）。そして、ＣＭ＃０の抑止部１２ｇは、ホスト装置２によって発行される全てのＩ／Ｏ要求を受信するための前記情報（上述したＬＵＮの全て）を、自ＣＭ＃０から他ＣＭ＃１へ移動させる（ステップＳ２５）。
【００８８】
この後、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行先をＣＭ＃１のみに固定する（ステップＳ２６）。これにより、ホスト装置２からのＩ／Ｏ要求は、全て直接的にＣＭ＃１に対し発行されることになる。したがって、ホスト装置２からのＩ／Ｏ要求が、ＣＭ＃０からＣＭ間経路Ｐ１経由でＣＭ＃０へ転送されることがなくなり、ＣＭ間通信が抑止される。
【００８９】
ところで、上述した第２実施形態では、ＰＣＩｅＳＷリセットに伴いリンク異常が発生した際、リンク異常が性能ネックとはならない場合、ストレージ装置１を停止することなく保守が可能になる。しかし、ＰＣＩｅＳＷリセットに伴いリンク異常が発生した際、依然として、リンク異常が性能ネックとなって保守ができないケースが存在する。
【００９０】
リンク異常が性能ネックとなって保守ができなくなる理由は、データ量の多い、ホスト装置２からのＩ／Ｏ要求の処理が、ＣＭ間通信を利用して実行されるためである。したがって、リンク異常によって性能ネックが生じる場合、ＣＭ間通信を行なうことなくホスト装置２からのＩ／Ｏ要求の処理を実行させるようにすれば、リンク異常が性能ネックとなって保守ができないケースが解消される。
【００９１】
ここで、図１０（符号Ａ４１〜Ａ４８）を参照しながら、ストレージ制御装置においてリセットに伴うリンク異常が性能ネックとなって保守を行なえない場合の動作について説明する。なお、図１０は、当該動作を説明するシーケンス図である。また、図１０では、図７の符号Ａ２６およびＡ３３で示すステップを実行した後のＣＭ＃０，ＣＭ＃１の動作が示されている。
【００９２】
第２実施形態で保守が不可であると判断された場合（図７の符号Ａ３３参照）、被疑ＣＭ＃１の保守が行なわれた後（図７の符号Ａ２６参照）、ＣＭ＃０からＣＭ＃１に対し組み込み実施の指示が行なわれる（符号Ａ４１参照）。組み込み実施指示を受けるとＣＭ＃１の組み込みが開始され（符号Ａ４２参照）、ＣＭ間の疎通が行なわれる（符号Ａ４３，Ａ４４参照）。
【００９３】
そして、現在の仕様では、ＣＭ間の疎通を完了すると（符号Ａ４５参照）、ＣＭ＃０に保持されている、ＣＭ＃１の管理下のＬＵＮ（第２ＬＵＮ）が、ＣＭ＃０から、組み込まれたＣＭ＃１へ転送・譲渡される（符号Ａ４６参照）。なお、第２ＬＵＮは、ＣＭ＃１の縮退直前にＣＭ＃１からＣＭ＃０へ転送・譲渡されている。したがって、ＣＭ＃１の縮退直前から符号Ａ４６で示す処理を実行するまでの間、ＣＭ＃０には、ＣＭ＃０の管理下のＬＵＮ（第１ＬＵＮ）と第２ＬＵＮとの両方が保持されている。これにより、この間、ＣＭ＃０は、ＣＭ間通信を行なうことなく、単独でストレージ装置１の運用を継続する。
【００９４】
第２ＬＵＮがＣＭ＃１で受信されて保存されると（符号Ａ４７参照）、ＣＭ＃０に第１ＬＵＮが保存されるとともにＣＭ＃１に第２ＬＵＮが保存された状態となる。このため、第２ＬＵＮがＣＭ＃１に保存された時点で、Ｉ／Ｏ要求（ホストＩ／Ｏ）のＣＭ間通信が開始されてしまう（符号Ａ４８参照）。
【００９５】
そこで、第３実施形態では、リンク異常によって性能ネックが生じる場合、ＣＭ間通信を行なうことなくホスト装置２からのＩ／Ｏ要求の処理を実行させるべく、ＣＭ間の疎通完了直後に、ＣＭ＃０のＬＵＮの全て（第１ＬＵＮおよび第２ＬＵＮの全て）をＣＭ＃０からＣＭ＃１へ移している。
【００９６】
以下、第３実施形態の保守動作について、図９のステップＳ２０，Ｓ２３〜Ｓ２６と図１１の符号Ａ５１〜Ａ６０とを参照しながら説明する。ただし、図１１の符号Ａ５１〜Ａ５５で示す動作は、それぞれ図１０の符号Ａ４１〜Ａ４５で示す動作と同様であるので、その説明は省略する。なお、図１１は、図８に示すストレージ制御装置１０″においてリセットに伴うリンク異常が性能ネックとなる場合の動作（保守成功例）を説明するシーケンス図である。
【００９７】
保守が不可であると判断された場合（図７の符号Ａ３３；ステップＳ２０のＮＯルート参照）、ＣＭ＃０は、ＣＭ間疎通が完了するのを待機する（ステップＳ２３のＮＯルート参照）。保守後のＣＭ＃１についてＣＭ間の疎通が完了すると（符号Ａ５１〜Ａ５５；ステップＳ２３のＹＥＳルート参照）、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行を一旦停止させる（符号Ａ５６；ステップＳ２４参照）。
【００９８】
そして、ＣＭ＃０の抑止部１２ｇは、ホスト装置２によって発行される全てのＩ／Ｏ要求を受信するための情報（つまり第１ＬＵＮおよび第２ＬＵＮの全て）を、自ＣＭ＃０から他ＣＭ＃１へ移動・譲渡させる（符号Ａ５７参照）。このとき、前記情報は、上述した通り、リンク異常等の発生しているＣＭ間経路Ｐ１を用いて自ＣＭ＃０から他ＣＭ＃１へ転送される。前記情報のデータ量は微々たるものであるため、リンク異常等の発生しているＣＭ間経路Ｐ１であってもリンクダウンしていない限り、性能影響を生じさせることなく前記情報を自ＣＭ＃０から他ＣＭ＃１へ転送することができる。
【００９９】
この後、前記情報がＣＭ＃１で受信されて保存されると（符号Ａ５８参照）、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行先をＣＭ＃１のみに固定する（符号Ａ５９；ステップＳ２６参照）。これにより、ホスト装置２からのＩ／Ｏ要求は、全て直接的にＣＭ＃１に対し発行されることになる。
【０１００】
したがって、ホスト装置２からのＩ／Ｏ要求が、ＣＭ＃０からＣＭ間経路Ｐ１経由でＣＭ＃０へ転送されることがなくなり、ＣＭ間通信が抑止される。このようにＣＭ間通信を抑止した状態で、ホスト装置２から保守後のＣＭ＃１のデータリカバリが行なわれ、ＣＭ＃１が復旧される。また、ＣＭ間通信を抑止した状態では、ＣＭ＃０を縮退させストレージ装置１″から切り離すことができ、元々異常の発生していたＣＭ＃０の保守を行なうことが可能になる（符号Ａ６０参照）。
【０１０１】
なお、ＣＭ＃０およびＣＭ＃１の保守を全て完了すると、ホスト装置２からのＩ／Ｏ要求の発行先のＣＭ＃１固定が解除されるとともに、ＣＭ＃０による管理対象の論理ユニットを特定する第１ＬＵＮがＣＭ＃１からＣＭ＃０へ移動される。これにより、ストレージ制御装置１０″は、ＣＭ＃０およびＣＭ＃１による通常運用に復帰する。
【０１０２】
〔３−３〕第３実施形態の効果
第３実施形態のストレージ制御装置１０″およびストレージ装置１″によれば、第１実施形態のストレージ制御装置１０およびストレージ装置１や、第２実施形態のストレージ制御装置１０′およびストレージ装置１′と同様の作用効果を得ることができる。
【０１０３】
特に、第３実施形態のストレージ制御装置１０″およびストレージ装置１″によれば、リンク異常によって性能ネックが生じる場合、ＣＭ間通信を行なうことなくホスト装置２からのＩ／Ｏ要求の処理を実行させることができる。したがって、上述したように、リンク異常が性能ネックとなって保守ができないケースが解消される。これにより、保守手法が改善され、ストレージ装置１″の運用停止を招く可能性をより低くすることができる。
【０１０４】
〔４〕第３実施形態の変形例の説明
次に、図１２および図１３を参照しながら、第３実施形態の変形例について説明する。
〔４−１〕第３実施形態の変形例の構成
図１２は、第３実施形態としてのストレージ制御装置１０″の変形例を含むストレージ装置（ＲＡＩＤ装置）１″のハードウェア構成および機能構成を示すブロック図である。なお、図１２中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【０１０５】
図１２に示すストレージ装置１″も、図８に示す第３実施形態のストレージ装置１″とほぼ同様に構成されている。ただし、図８に示すストレージ装置１″と図１２に示すストレージ装置１″との相違点は、抑止部１２ｇに代えて抑止部１２ｇ′が備えられている点である。また、第３実施形態の変形例におけるＣＰＵ１２″も、所定のストレージ制御プログラムを実行することで、第３実施形態と同様の、符号１２ａ〜１２ｆで示す機能を果たすのに加え、後述する抑止部１２ｇ′として機能する。なお、図１２において、符号１２ａ〜１２ｆおよび１２ｇ′で示す機能は、ＣＭ１１ＡのＣＰＵ１２″にのみ図示されているが、ＣＭ１１ＢのＣＰＵ１２″にも備えられている。
【０１０６】
抑止部１２ｇ′は、第３実施形態の抑止部１２ｇと同様、判定部１２ｄによってＣＭ間経路Ｐ１を用いた保守が不可であると判定した場合、ＣＭ間経路Ｐ１によるＣＭ間通信を抑止する。このとき、抑止部１２ｇ′も、ホスト装置２によって発行される全てのＩ／Ｏ要求を受信するための情報（第１ＬＵＮおよび第２ＬＵＮの全て）を、自ＣＭ＃０から他ＣＭ＃１へ移動させることにより、ＣＭ間経路Ｐ１によるＣＭ間通信を抑止する。
【０１０７】
特に、抑止部１２ｇ′は、ＣＭ間経路Ｐ１がリンク異常の発生状態であるがリンクアップ状態である場合、ＣＭ間経路Ｐ１を通して、前記情報を自ＣＭ＃０から他ＣＭ＃１へ移動させる。第３実施形態においても説明した通り、前記情報のデータ量は微々たるものであるため、リンク異常等の発生しているＣＭ間経路Ｐ１であってもリンクダウンしていない限り、性能影響を生じさせることなく前記情報を自ＣＭ＃０から他ＣＭ＃１へ転送することができる。
【０１０８】
一方、抑止部１２ｇ′は、制御部間経路Ｐ１がリンクダウン状態である場合、ＣＭ間経路Ｐ１以外で、一対のＣＭ１１Ａ，１１Ｂの相互間を通信可能に接続する経路Ｐ２を通して、前記情報を自ＣＭ＃０から他ＣＭ＃１へ移動させる。ここで、ＣＭ間経路Ｐ１以外のＣＭ間経路（制御部間経路；ＣＰＵ間経路）Ｐ２としては、例えば、ＳＡＳ経路を含む経路が用いられる。より具体的に、図１２に示すＣＭ間経路Ｐ２は、ＣＭ＃０側のＣＰＵ１２″，ＰＣＩｅＳＷおよびディスク用インタフェース部１５と、ＳＡＳの通信路５０と、ＣＭ＃１側のディスク用インタフェース部１５，ＰＣＩｅＳＷおよびＣＰＵ１２″とを経由する。
【０１０９】
〔４−２〕第３実施形態の変形例の動作
上述した第２実施形態および第３実施形態では、ＣＭ間経路Ｐ１がリンク異常であるが少なくともリンクアップ状態であるケースを想定し、リンク異常のＣＭ間経路Ｐ１を用いて前記情報のＣＭ間転送が行なわれている。しかし、ＣＭ間経路Ｐ１がリンクダウン状態である場合には、性能ネックの問題の前にＣＭ間通信のための経路が無くなり、ホストＩ／Ｏを受信するための前記情報のＣＭ間転送を行なえず、各ＣＭ１１の保守が不可となってしまう。
【０１１０】
本実施形態のストレージ装置１″において、ＣＭ間の経路としては、ＰＣＩｅバスの通信路４０を経由する経路Ｐ１のほかに、ＳＡＳの通信路５０を経由する経路Ｐ２がある。
そこで、第３実施形態の変形例では、ＣＭ間経路Ｐ１がリンクダウン状態である場合、前記情報の譲渡を行なう経路を、ＣＭ間経路Ｐ１からＣＭ間経路Ｐ２に変更することで、前記情報のＣＭ間転送を行ない、ＣＭ１１の保守を可能にしている。
【０１１１】
次に、図１３に示すフローチャート（ステップＳ１１〜Ｓ２１およびＳ２３〜Ｓ２８）に従って、図１３に示すストレージ制御装置１０″の動作について説明する。なお、図１３に示すステップＳ１１〜Ｓ２１の処理は、図５に示すステップＳ１１〜Ｓ２１の処理と同様であるので、その説明は省略する。ここでは、ステップＳ２０のＮＯルートから図１３のステップＳ２３以降の処理について説明する。
【０１１２】
判定部１２ｄによって転送可能通信量Ｃ２が最大通信量Ｃmax以下であると判定された場合（Ｃ２≦Ｃmax；ステップＳ２０のＮＯルート）、性能影響が出ない程度の通信量をＣＭ間経路Ｐ１に確保できず、リンク異常が性能ネックとなる可能性が有る。この場合、ＣＭ＃０は、被疑ＣＭ＃１の保守が行なわれ保守後のＣＭ＃１がストレージ装置１″に組み込まれＣＭ間疎通が完了するのを待機する（ステップＳ２３のＮＯルート）。
【０１１３】
ＣＭ間疎通が完了すると（ステップＳ２３のＹＥＳルート）、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行を一旦停止させる（ステップＳ２４）。この後、ＣＭ＃０の抑止部１２ｇ′は、ＣＭ間経路Ｐ１がリンクダウン状態か否かを判定する（ステップＳ２７）。ＣＭ間経路Ｐ１がリンクダウン状態でない場合（ステップＳ２７のＮＯルート）、つまりＣＭ間経路Ｐ１がリンク異常であるがリンクアップ状態である場合、ＣＭ＃０の抑止部１２ｇは、前記情報を自ＣＭ＃０から他ＣＭ＃１へ移動させる（ステップＳ２５）。
【０１１４】
一方、ＣＭ間経路Ｐ１がリンクダウン状態である場合（ステップＳ２７のＹＥＳルート）、ＣＭ＃０の抑止部１２ｇ′は、経路Ｐ２を通して、前記情報を自ＣＭ＃０から他ＣＭ＃１へ移動させる（ステップＳ２８）。
【０１１５】
この後、ＣＭ＃０は、ホスト装置２からのＩ／Ｏ要求の発行先をＣＭ＃１のみに固定する（ステップＳ２６）。これにより、ホスト装置２からのＩ／Ｏ要求は、全て直接的にＣＭ＃１に対し発行されることになる。したがって、ホスト装置２からのＩ／Ｏ要求が、ＣＭ＃０からＣＭ間経路Ｐ１経由でＣＭ＃０へ転送されることがなくなり、ＣＭ間通信が抑止される。
【０１１６】
〔４−３〕第３実施形態の変形例の効果
第３実施形態の変形例としてのストレージ制御装置１０″およびストレージ装置１″によっても、第１〜第３実施形態のストレージ制御装置およびストレージ装置と同様の作用効果を得ることができる。
【０１１７】
特に、図１２に示すストレージ制御装置１０″およびストレージ装置１″によれば、ＣＭ間経路Ｐ１がリンクダウン状態であっても、ＣＭ間経路Ｐ１に代えＣＭ間経路Ｐ２を用いて、ホストＩ／Ｏを受信するための前記情報のＣＭ間転送を行ない、各ＣＭ１１の保守が可能になる。したがって、ＣＭ間経路Ｐ１がリンクダウン状態であるために保守ができないケースが解消される。これにより、保守手法が改善され、ストレージ装置１″の運用停止を招く可能性をさらに低くすることができる。
【０１１８】
〔５〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１１９】
上述した第１検出部１２ａ，リセット制御部１２ｂ，第２検出部１２ｃ，判定部１２ｄ，取得部１２ｅ，算出部１２ｆおよび抑止部１２ｇとしての機能を含む、ストレージ制御装置１０，１０′，１０″の機能の全部もしくは一部は、コンピュータ（ＭＰＵ（Micro-Processing Unit），ＣＰＵ，各種端末を含む）が所定のプログラムを実行することによって実現されてもよい。
【０１２０】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【０１２１】
〔６〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
ホスト装置からの入出力要求に従ってストレージユニットを制御する一対の制御部と、
前記一対の制御部の相互間を通信可能に接続する通信路と、を備え、
前記一対の制御部のそれぞれは、
前記通信路に接続され、前記通信路による通信を制御するインタフェース部と、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出する第１検出部と、
前記第１検出部によって前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なうリセット制御部と、を有するストレージ制御装置。
【０１２２】
（付記２）
前記一対の制御部のそれぞれは、
前記リセットに伴って発生する、前記制御部間経路上における前記自制御部側でのリンク異常を検出する第２検出部と、
前記第２検出部によって前記リンク異常を検出した場合、前記リンク異常の状況に基づき、前記制御部間経路による制御部間通信を用いた保守が可能か否かを判定する判定部と、を有する、付記１に記載のストレージ制御装置。
【０１２３】
（付記３）
前記一対の制御部のそれぞれは、
前記制御部間経路における通常動作時の単位時間当たり通信量を取得する取得部と、
前記リンク異常の状況に基づき、前記リンク異常の発生した状態での転送可能な単位時間当たり通信量を算出する算出部と、を有し、
前記判定部は、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量を超える場合、前記他制御部の保守が可能と判定する一方、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量以下である場合、前記他制御部の保守が不可と判定する、付記２に記載のストレージ制御装置。
【０１２４】
（付記４）
前記取得部は、前記自制御部の動作開始後の、前記制御部間経路における単位時間当たり通信量の最大値を、前記通常動作時の単位時間当たり通信量として取得する、付記３に記載のストレージ制御装置。
【０１２５】
（付記５）
前記一対の制御部のそれぞれは、前記判定部によって前記保守が可能と判定した場合、前記制御部間経路を用いた各制御部の保守を行なう、付記２〜付記４のいずれか一項に記載のストレージ制御装置。
【０１２６】
（付記６）
前記一対の制御部のそれぞれは、
前記判定部によって前記保守が不可と判定した場合、前記制御部間経路による前記制御部間通信を抑止する抑止部を有する、付記２〜付記４のいずれか一項に記載のストレージ制御装置。
【０１２７】
（付記７）
前記抑止部は、前記ホスト装置によって発行される入出力要求を受信するための情報を、前記自制御部から前記他制御部へ移動させることにより、前記制御部間経路による前記制御部間通信を抑止する、付記６に記載のストレージ制御装置。
【０１２８】
（付記８）
前記ホスト装置によって発行される入出力要求を受信するための情報は、前記自制御部において保持される、前記自制御部による管理対象の論理ユニットを特定する第１論理ユニット情報と前記他制御部による管理対象の論理ユニットを特定する第２論理ユニット情報とである、付記７に記載のストレージ制御装置。
【０１２９】
（付記９）
前記抑止部は、前記制御部間経路が前記リンク異常の発生状態であるがリンクアップ状態である場合、前記制御部間経路を通して、前記情報を前記自制御部から前記他制御部へ移動させる、付記７または付記８に記載のストレージ制御装置。
【０１３０】
（付記１０）
前記抑止部は、前記制御部間経路がリンクダウン状態である場合、前記制御部間経路以外で、前記一対の制御部の相互間を通信可能に接続する経路を通して、前記情報を前記自制御部から前記他制御部へ移動させる、付記７または付記８に記載のストレージ制御装置。
【０１３１】
（付記１１）
ストレージユニットと、
ホスト装置からの入出力要求に従って前記ストレージユニットを制御する一対の制御部と、
前記一対の制御部の相互間を通信可能に接続する通信路と、を備え、
前記一対の制御部のそれぞれは、
前記通信路に接続され、前記通信路による通信を制御するインタフェース部と、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出する第１検出部と、
前記第１検出部によって前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なうリセット制御部と、を有するストレージ装置。
【０１３２】
（付記１２）
前記一対の制御部のそれぞれは、
前記リセットに伴って発生する、前記制御部間経路上における前記自制御部側でのリンク異常を検出する第２検出部と、
前記第２検出部によって前記リンク異常を検出した場合、前記リンク異常の状況に基づき、前記制御部間経路による制御部間通信を用いた保守が可能か否かを判定する判定部と、を有する、付記１１に記載のストレージ装置。
【０１３３】
（付記１３）
前記一対の制御部のそれぞれは、
前記制御部間経路における通常動作時の単位時間当たり通信量を取得する取得部と、
前記リンク異常の状況に基づき、前記リンク異常の発生した状態での転送可能な単位時間当たり通信量を算出する算出部と、を有し、
前記判定部は、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量を超える場合、前記他制御部の保守が可能と判定する一方、前記転送可能な単位時間当たり通信量が前記通常動作時の単位時間当たり通信量以下である場合、前記他制御部の保守が不可と判定する、付記１２に記載のストレージ装置。
【０１３４】
（付記１４）
前記取得部は、前記自制御部の動作開始後の、前記制御部間経路における単位時間当たり通信量の最大値を、前記通常動作時の単位時間当たり通信量として取得する、付記１３に記載のストレージ装置。
【０１３５】
（付記１５）
前記一対の制御部のそれぞれは、前記判定部によって前記保守が可能と判定した場合、前記制御部間経路を用いた各制御部の保守を行なう、付記１２〜付記１４のいずれか一項に記載のストレージ装置。
【０１３６】
（付記１６）
前記一対の制御部のそれぞれは、
前記判定部によって前記保守が不可と判定した場合、前記制御部間経路による前記制御部間通信を抑止する抑止部を有する、付記１２〜付記１４のいずれか一項に記載のストレージ装置。
【０１３７】
（付記１７）
前記抑止部は、前記ホスト装置によって発行される入出力要求を受信するための情報を、前記自制御部から前記他制御部へ移動させることにより、前記制御部間経路による前記制御部間通信を抑止する、付記１６に記載のストレージ装置。
【０１３８】
（付記１８）
前記ホスト装置によって発行される入出力要求を受信するための情報は、前記自制御部において保持される、前記自制御部による管理対象の論理ユニットを特定する第１論理ユニット情報と前記他制御部による管理対象の論理ユニットを特定する第２論理ユニット情報とである、付記１７に記載のストレージ装置。
【０１３９】
（付記１９）
前記抑止部は、前記制御部間経路がリンクダウン状態である場合、前記制御部間経路以外で、前記一対の制御部の相互間を通信可能に接続する経路を通して、前記情報を前記自制御部から前記他制御部へ移動させる、付記１７または付記１８に記載のストレージ装置。
【０１４０】
（付記２０）
ホスト装置からの入出力要求に従ってストレージユニットを制御する一対の制御部と、前記一対の制御部の相互間を通信可能に接続する通信路と、前記一対の制御部のそれぞれにおいて前記通信路に接続され前記通信路による通信を制御するインタフェース部と、を備えるストレージ制御装置において、前記一対の制御部のそれぞれとして機能するコンピュータに、
前記一対の制御部のうちの自制御部の前記インタフェース部、前記一対の制御部のうちの他制御部の前記インタフェース部および前記通信路を含む制御部間経路上での異常を検出し、
前記他制御部側での異常を検出した場合、前記他制御部を縮退させるとともに前記自制御部の前記インタフェース部のリセットを行なう、
処理を実行させるストレージ制御プログラム。
【符号の説明】
【０１４１】
１，１′，１″    ストレージ装置（ＲＡＩＤ装置）
２    ホスト装置
１０，１０′，１０″    ストレージ制御装置
１１Ａ    制御部（ＣＭ＃０；自制御部，自ＣＭ）
１１Ｂ    制御部（ＣＭ＃１；他制御部，他ＣＭ）
１２，１２′，１２″    ＣＰＵ（処理部）
１２ａ    第１検出部
１２ｂ    リセット制御部
１２ｃ    第２検出部
１２ｄ    判定部
１２ｅ    取得部
１２ｆ    算出部
１２ｇ，１２ｇ′    抑止部
１３    メモリ
１４    ＰＣＩｅＳＷ（インタフェース部）
１５    ディスク用インタフェース部（ＳＡＳインタフェース部）
１６    ＰＣＩｅＳＷ
１７    ＣＰＵ−ＰＣＩｅＳＷ間通信路
２０    ストレージユニット（ディスク）
３０Ａ，３０Ｂ    ＣＡ
４０    ＰＣＩｅＳＷ間通信路
５０    ＳＡＳインタフェース部間通信路
６０    Ｉ２Ｃ信号線（シリアル通信路）
Ｐ１    ＣＭ間経路（制御部間経路；ＣＰＵ間経路）
Ｐ２    ＣＭ間経路Ｐ１以外のＣＭ間経路（制御部間経路；ＣＰＵ間経路）
【図１】
2015084144.tif 000003
【図２】
2015084144.tif 000004
【図３】
2015084144.tif 000005
【図４】
2015084144.tif 000006
【図５】
2015084144.tif 000007
【図６】
2015084144.tif 000008
【図７】
2015084144.tif 000009
【図８】
2015084144.tif 000010
【図９】
2015084144.tif 000011
【図１０】
2015084144.tif 000012
【図１１】
2015084144.tif 000013
【図１２】
2015084144.tif 000014
【図１３】
2015084144.tif 000015
【図１４】
2015084144.tif 000016