(57)【要約】【課題】複数のストレージ装置を接続して備えるストレージシステムにおいて、活性ファームウェア交換処理を行なう際のシステムダウンの発生を抑止する。【解決手段】活性プログラム交換を行なう前に、ストレージ制御装置１０ａと冗長構成にある冗長ストレージ制御装置１０ｂと第２ストレージ装置との通信状態を確認し、冗長ストレージ制御装置１０ｂと第２ストレージ装置との通信状態に異常が検出された場合に、ストレージ制御装置１０ａの活性プログラム交換の実行を抑止する。【選択図】図３
2019096065.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と通信可能に接続される第１ストレージ装置と、
前記第１ストレージ装置と通信可能に接続され、前記ホスト装置からのアクセス要求に対して前記第１ストレージ装置を介して処理を実行する第２ストレージ装置と、を備え、
前記第１ストレージ装置は、第１ストレージ制御装置と第２ストレージ制御装置を備え、前記第１ストレージ制御装置と前記第２ストレージ制御装置は前記ホスト装置に対して冗長的に接続し、
前記第１ストレージ制御装置と前記第２ストレージ制御装置とは、前記第２ストレージ装置に対して冗長的に接続し、
前記第１ストレージ制御装置は、前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、プログラム前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記第１ストレージ制御装置の活性プログラム交換の実行を抑止する、
ことを特徴とする、ストレージシステム。
【請求項２】
前記第２ストレージ制御装置は、前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、前記第１ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記第１ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記第２ストレージ制御装置の活性プログラム交換の実行を抑止する、
ことを特徴とする、請求項１記載のストレージシステム。
【請求項３】
ホスト装置および第２ストレージ装置と通信可能に接続される第１ストレージ装置に備えられるストレージ制御装置であって、
前記ホスト装置と通信可能に接続される第１通信部と、
前記第２ストレージ装置と通信可能に接続される第２通信部と、
前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう保守制御部とを備え、
前記保守制御部は、
前記活性プログラム交換を行なう前に、前記ストレージ制御装置と冗長構成にある冗長ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記ストレージ制御装置の活性プログラム交換の実行を抑止する
ことを特徴とする、ストレージ制御装置。
【請求項４】
前記保守制御部は、前記冗長ストレージ制御装置から前記第２ストレージ装置の配下の論理ボリュームへのデータアクセスの状況に基づいて、前記通信状態を確認する
ことを特徴とする、請求項３記載のストレージ制御装置。
【請求項５】
前記保守制御部は、前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記活性プログラム交換により前記電子部品に対して適用されたプログラムを、前記活性プログラム交換前に適用されていたプログラムに戻す
ことを特徴とする、請求項３または４記載のストレージ制御装置。
【請求項６】
前記保守制御部は、前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、通信状態に異常が検出された旨の警告を出力する
ことを特徴とする、請求項３〜５のいずれか１項に記載のストレージ制御装置。
【請求項７】
ホスト装置および第２ストレージ装置と通信可能に接続される第１ストレージ装置に備えられるストレージ制御装置のプロセッサに、
前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、前記ストレージ制御装置と冗長構成にある冗長ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記ストレージ制御装置の活性プログラム交換の実行を抑止する
処理を実行させる、ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム，ストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
近年、複数のストレージ装置上の論理ボリュームを統合して論理的なストレージプールを構成するストレージ仮想化技術が知られている。このようなストレージ仮想化技術により、システム運用の負担の軽減やストレージ装置間でのデータ移行を簡単にすることが可能となる。従って、複数のストレージを統合管理できるストレージ仮想化技術は重要な機能といえる。
【０００３】
ストレージ装置には多数のモジュール（電子部品，電子装置）が備えられている。例えば、ＨＤＤ（Hard Disk Drive）等の記憶装置を格納するＤＥ（Drive Enclosure）には、ＩＯＭ（Input Output Module）やＦＥＭ（Fan Expander Module）等のモジュールが備えられている。また、近年のストレージの大容量化や高密度化に伴い、ストレージ装置に搭載されるモジュールの数も増加している。
【０００４】
これらのモジュールでは、それぞれファームウェアが実行されている。ストレージ装置の安定化や運用の効率化を図り、また、新機能を利用できるようにするためには、モジュールに最新のファームウェアを適用することが不可欠である。
【０００５】
また、ファームウェアの適用は、装置の運用状態を維持したまま、搭載された全てのモジュールに対して行なうことが望ましい。従って、モジュールにファームウェアを適用する機能の重要性は高い。
【０００６】
上述の如く、ストレージ装置は複数のモジュールを備え、各モジュールがそれぞれ独立したファームウェアで動作する。それぞれのモジュールは、一般に、ファームウェアを書き込む記憶領域として稼働面側領域と非稼働面側領域との２つの領域を有する。
【０００７】
モジュールに更新用のファームウェア（以下、新ファームウェアという）を適用する際には、先ず、非稼働面側領域に新ファームウェアを書き込む。その後、新ファームウェアが書き込まれた非稼働面側領域を稼働面側領域に切替えてから、モジュールのリセット（リブート，再起動）を行ない、稼働面側領域に書き込まれた新ファームウェアを用いて起動させる。なお、以下、新ファームウェアを適用することを、ファームウェアの交換または改版という場合がある。
【０００８】
また、システムを運用状態に維持したままファームウェアの交換を行なう処理を、活性ファームウェア交換処理という場合がある。活性ファームウェア交換処理においては、複数のモジュールを前半モジュール群と後半モジュール群との２つの系統のモジュール群に分けて、オンライン状態を維持したまま片系ずつファームウェア交換を行なうことが望ましい。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１８６２９６公報
【特許文献２】特開２００５−６３０５０号公報
【特許文献３】特開２００８−２９９７０９号公報
【特許文献４】特開２０１２−７９１７５号公報
【特許文献５】特開２０１６−５３８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
複数のストレージ装置を備えるストレージシステムにおいて、ストレージ装置間の冗長化されたパスのうち、片系のパスの接続が何らかの理由で切断状態となる場合がある。
活性ファームウェア交換処理を行なう過程において、ストレージ装置間の片系のパスの接続が切断した状態のまま、新ファームウェアの書き込み後に前半モジュール群を再起動させると、ストレージ装置間の両系のパス接続が切断した状態が生じる場合がある。
両系のパスが切断状態になると、ストレージ装置間の接続構成及びボリューム管理方法によっては、ストレージ装置間の接続情報が完全に失われ、運用中にシステムダウンに陥ることがある。
【００１１】
１つの側面では、本発明は、複数のストレージ装置を接続して備えるストレージシステムにおいて、活性ファームウェア交換処理を行なう際のシステムダウンの発生を抑止することを目的とする。
【課題を解決するための手段】
【００１２】
このため、このストレージシステムは、ホスト装置と通信可能に接続される第１ストレージ装置と、前記第１ストレージ装置と通信可能に接続され、前記ホスト装置からのアクセス要求に対して前記第１ストレージ装置を介して処理を実行する第２ストレージ装置と、を備える。前記第１ストレージ装置は、第１ストレージ制御装置と第２ストレージ制御装置を備え、前記第１ストレージ制御装置と前記第２ストレージ制御装置は前記ホスト装置に対して冗長的に接続する。前記第１ストレージ制御装置と前記第２ストレージ制御装置とは、前記第２ストレージ装置に対して冗長的に接続する。前記第１ストレージ制御装置は、前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、プログラム前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記第１ストレージ制御装置の活性プログラム交換の実行を抑止する。
【発明の効果】
【００１３】
一実施形態によれば、複数のストレージ装置を接続して備えるストレージシステムにおいて、活性ファームウェア交換処理を行なう際のシステムダウンの発生を抑止することができる。
【図面の簡単な説明】
【００１４】
【図１】実施形態の一例としてのストレージシステムにおける複数のストレージ装置の接続状態の構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムのストレージ装置のハードウェア構成を例示する図である。
【図３】実施形態の一例としてのストレージシステムのローカルストレージの機能構成を示す図である。
【図４】実施形態の一例としてのストレージシステムにおいて、ローカルストレージのファームウェア交換を行なう場合の処理を説明するためのフローチャートである。
【図５】実施形態の一例としてのストレージシステムのローカルストレージにおけるスレーブＣＭと外部ストレージとの接続状態の確認方法を説明するためのフローチャートである。
【図６】実施形態の一例としてのストレージシステムのローカルストレージにおける、ファームウェア交換過程におけるＣＭ組み込み時の処理を説明するためのフローチャートである。
【図７】ハイエンドのストレージシステムの構成を例示する図である。
【図８】ストレージ仮想化を実現するストレージシステムの構成を例示する図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本ストレージシステム，ストレージ制御装置およびストレージ制御プログラムにかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１６】
（Ａ）参考
図８はストレージ仮想化を実現するストレージシステム５００の構成を例示する図である。
【００１７】
ストレージシステム５００は、ローカルストレージ５０１−１と、このローカルストレージ５０１−１にネットワークを介して接続された外付けの外部ストレージ５０１−２とを備える。
【００１８】
ローカルストレージ５０１−１は、業務サーバ５１０に接続され、この業務サーバ５１０に対して論理ボリューム６００−１を提供するストレージ装置である。
【００１９】
外部ストレージ５０１−２は、ローカルストレージ５０１−１を介して業務サーバ５１０に接続されている。すなわち、業務サーバ５１０に対して直接接続されたストレージ装置がローカルストレージ５０１−１であり、業務サーバ５１０にローカルストレージ５０１−１を介して間接的に接続されたストレージ装置が外部ストレージ５０１−２である。これらのローカルストレージ５０１−１と外部ストレージ５０１−２とは遠隔した場所に配置される必要はなく、例えば、同一のサーバルーム内に配置されてもよい。また、業務サーバ５１０も同一のサーバルーム内に配置されてもよい。
【００２０】
ローカルストレージ５０１−１は、冗長化されたＣＭ（Controller Module）５０２ａ，５０２ｂおよび冗長化されたＤＥ５０３ａ，５０３ｂを備える。
【００２１】
ＤＥ５０３ａ，５０３ｂには、図示しない１つ以上のＨＤＤ等の記憶装置が備えられる。ＤＥ５０３ａをＤＥ＃０と、ＤＥ５０３ｂをＤＥ＃１と、それぞれ表す場合がある。
【００２２】
ＣＭ５０２ａ，５０２ｂは、種々の制御を行なうストレージ制御装置であり、業務サーバ５１０からのストレージアクセス要求（以下、ホストＩ／Ｏという場合がある）に従って、ＤＥ５０３ａ，５０３ｂの記憶装置へのアクセス制御等、各種制御を行なう。例えば、ＣＭ５０２ａ，５０２ｂは、ＤＥ５０３ａ，５０３ｂの記憶装置の記憶領域を用いて１つ以上の論理ボリューム６００−１を生成し、業務サーバ５１０に提供する。
【００２３】
ＣＭ５０２ａ，５０２ｂは、業務サーバ５１０から論理ボリューム６００−１に対して発行されたホストＩ／Ｏを処理し、ＤＥ５０３ａ，５０３ｂの記憶装置にデータのリードやライトを行なう。
【００２４】
ＣＭ５０２ａ，５０２ｂは二重化されており、例えばＣＭ５０２ａがプライマリとして各種制御を行なう。このプライマリＣＭ５０２ａの故障時等には、セカンダリのＣＭ５０２ｂがプライマリとしてＣＭ５０２ａの動作を引き継ぐ。ＣＭ５０２ａをＣＭ＃０と、ＣＭ５０２ｂをＣＭ＃１と、それぞれ表す場合がある。
【００２５】
外部ストレージ５０１−２はローカルストレージ５０１−１にネットワークを介して接続されている。
【００２６】
外部ストレージ５０１−２は、１つ以上の論理ボリューム６００−２を生成する。
【００２７】
ローカルストレージ５０１−１は、外部ストレージ５０１−２の論理ボリューム６００−２を仮想ボリュームとして組み込み、業務サーバ５１０からのホストＩ／Ｏをローカルストレージ５０１−１から外部ストレージ５０１−２に対して発行する。これにより、業務サーバ５１０による外部ストレージ５０１−２の論理ボリューム６００−２の利用が可能となる。
【００２８】
また、ローカルストレージ５０１−１が外部ストレージ５０１−２のデバイス情報を引き継ぐことで、業務サーバ５１０はローカルストレージ５０１−１を外部ストレージ５０１−２のように認識することができる。
【００２９】
外部ストレージ５０１−２もローカルストレージ５０１−１と同様に、冗長化されたＣＭ５０２ａ，５０２ｂおよび冗長化されたＤＥ５０３ａ，５０３ｂを備える。なお、なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
【００３０】
ローカルストレージ５０１−１と外部ストレージ５０１−２とは、ネットワークにおいて冗長化されたパスを介して接続されており、一方のパスが切断された場合においても、他方のパスを介して、Ｉ／Ｏを継続して通信することが可能である。
【００３１】
例えば、ローカルストレージ５０１−１や外部ストレージ５０１−２のファームウェア交換を実施する場合に、冗長構成となっているＣＭ５０２ａ，５０２ｂを片方ずつリブートさせることで交換を実施する。ＣＭ５０２ａ，５０２ｂのリブート時にはボリュームの組み込み処理が再度行なわれる。
【００３２】
図８に示す構成において、ローカルストレージ５０１−１においてＣＭ＃０もしくはＣＭ＃１のリブートを行なうと、このリブートしたＣＭ＃０もしくはＣＭ＃１と外部ストレージ５０２ａ，５０２ｂとの各間のパス接続は一時的に喪失する。
【００３３】
例えば、ローカルストレージ５０１−１のＣＭ＃１のリブート中に、このＣＭ＃１と外部ストレージ５０１−２のＣＭ＃０，＃１とを接続する各パスの接続が何らかの理由で切断状態となったとする（図８中の符号Ｐ１参照）。
【００３４】
そして、ローカルストレージ５０１−１のＣＭ＃１のリブート完了後に、上述したパスの切断状態が解消しない状態（符号Ｐ１参照）で、活性ファームウェア交換処理においてローカルストレージ５０１−１のＣＭ＃０のリブートが行なわれる場合を考える。
【００３５】
このような場合においては、ローカルストレージ５０１−１のＣＭ＃０と外部ストレージ５０１−２のＣＭ＃０，＃１とを接続する各パス、つまり冗長パスも切断状態となる（図８中の符号Ｐ２参照）。これにより、ローカルストレージ５０１−１と外部ストレージ５０１−２との間をつなぐパス接続が喪失することになる。
【００３６】
このように、業務サーバ５１０からのホストＩ／Ｏを外部ストレージ５０１−２に流すパスが使用できなくなった場合には、ホストＩ／Ｏが異常終了し、システムダウンとなる。
【００３７】
（Ｂ）装置構成
図１は実施形態の一例としてのストレージシステム１００のストレージ装置１−１，１−２の接続状態の構成を示す図である。図２は実施形態の一例としてのストレージシステム１００のストレージ装置１−１，１−２のハードウェア構成を例示する図である。また、図３は実施形態の一例としてのストレージシステム１００におけるローカルストレージ１−１の機能構成を示す図である。
【００３８】
本実施形態の一例におけるストレージシステム１００は、１つ以上（図１に示す例では１つ）のホスト装置５０と通信線５１を介して通信可能に接続され、このホスト装置５０に対して記憶領域を提供する。通信線５１は、例えば、ＬＡＮ（Local Area Network）ケーブルである。
【００３９】
図１に例示するストレージシステム１００は、２つのストレージ装置１−１，１−２を備える。
【００４０】
ホスト装置５０には、通信線５１を介してストレージ装置１−１が接続され、このストレージ装置１−１には、通信線５２を介してストレージ装置１−２が接続されている。従って、ストレージ装置１−２は、ストレージ装置１−１を介してホスト装置５０に間接的に接続されている。ホスト装置５０は業務サーバであってもよい。
【００４１】
ストレージ装置１−１，１−２は、ホスト装置５０に記憶領域を提供するものであり、それぞれ１つ以上の論理ボリューム（図示省略）を作成し管理する機能を有する。
【００４２】
ストレージ装置１−１は、ホスト装置５０に対して仮想化ボリューム（図示省略）を提供する。
【００４３】
また、ストレージ装置１−１はストレージ装置１−２に対して命令を発行するイニシエータとして機能し、ストレージ装置１−２はストレージ装置１−１に対してターゲットとして機能する。
【００４４】
以下、ストレージ装置１−１をローカルストレージ１−１という場合があり、ストレージ装置１−２を外部ストレージ（リモートストレージ）１−２という場合がある。
【００４５】
例えば、ローカルストレージ１−１に、外部ストレージ１−２の論理ボリューム（図示省略）を仮想化ボリュームとして組み込むことで、ホスト装置５０に対して、外部ストレージ１−２のデータがローカルストレージ１−１にあるように見せることができる。なお、ここで示すストレージシステムは、別々のストレージ装置を統合管理するものであり、マスタストレージ装置もしくはマスタの制御筐体が複数のデバイス筐体を一元管理するものとは接続構成や管理方法が異なる。
【００４６】
ローカルストレージ１−１は、イニシエータとしての機能を用いて、ホスト装置５０からのホストＩ／Ｏを外部ストレージ１−２に対して発行することで、ホスト装置５０による外部ストレージ１−２の論理ボリュームの利用を可能とする。
【００４７】
また、例えば、ローカルストレージ１−１の論理ボリューム等を外部ストレージ１−２にミラーリングしてもよい。また、外部ストレージ１−２の論理ボリュームをローカルストレージ１−１に移行させるために、図１に示すストレージシステム１００を構成してもよい。
【００４８】
ストレージ装置１−１とストレージ装置１−２とは同様の構成を有する。以下、ストレージ装置を示す符号としては、複数のストレージ装置のうち１つを特定する必要があるときには符号１−１，１−２を用いるが、任意のストレージ装置を指すときには符号１を用いる。
【００４９】
また、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
【００５０】
ストレージ装置１は、後述する複数の記憶装置２１（図２参照）を搭載し、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を用いて複数の記憶装置２１にデータを分散し、冗長化した状態で保存する。ストレージ装置１はＣＥ２を備え、各ＣＥ２には内部ストレージとしてＤＥ２０が接続される。
【００５１】
図２に示す例においては、各ストレージ装置１は、複数のＤＥ２０ａ−１〜２０ａ−ｎ，２０ｂ−１〜２０ｂ−ｍを備える（なお、ｎ，ｍはそれぞれ自然数）。
【００５２】
以下、ＤＥを示す符号としては、複数のＤＥのうち１つを特定する必要があるときには符号２０ａ−１〜２０ａ−ｎ，２０ｂ−１〜２０ｂ−ｍを用いるが、任意のＤＥを指すときには符号２０を用いる。
【００５３】
ＣＥ２は、複数（図１に示す例では２つ）のＣＭ１０ａ，１０ｂを備える。
【００５４】
ＣＭ１０ａ，１０ｂは、ストレージ装置１内の動作を制御する制御装置（コントローラ，ストレージ制御装置）であり、ホスト装置５０等から送信されるＩ／Ｏ要求に従って、ＤＥ２０の記憶装置２１へのデータアクセス制御等、各種制御を行なう。
【００５５】
ＣＭ１０ａ，１０ｂは二重化されており、通常は、一方のＣＭ１０（例えば、ＣＭ１０ａ）がプライマリとして各種制御を行なう。しかし、このプライマリＣＭ１０ａの故障時等には、セカンダリのＣＭ１０ｂがプライマリとしてＣＭ１０ａの動作を引き継ぐ。ＣＭ１０ａ，１０ｂは冗長構成（冗長パス構成）を有する。
【００５６】
また、ＣＭ１０ａ，１０ｂは互いに同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する場合には符号１０ａ，１０ｂを用い、任意のＣＭを指すときには符号１０を用いる。また、ＣＭ１０ａをＣＭ＃０と、ＣＭ１０ｂをＣＭ＃１と、それぞれ表す場合がある。
【００５７】
ＣＭ＃０とＣＭ＃１とは、図示しない内部バスを介して通信可能に接続されている。内部バスは、例えばＰＣＩｅ（Peripheral Component Interconnect Express）の規格に準じた通信を行なってもよく、また、他の規格に準じた通信を行なってもよい。また、各ＣＭ１０と各ＤＥ２０とは例えばバス線（データアクセスパス）を介して通信可能に接続されている。
【００５８】
ＤＥ２０は、図２に示すように、記憶装置２１やＩＯＭ２３ａ−Ａ１〜２３ａ−Ａｎ，２３ｂ−Ａ１〜２３ｂ−Ａｎ，２３ａ−Ｂ１〜２３ａ−Ｂｍ，２３ｂ−Ｂ１〜２３ｂ−Ｂｍを搭載するデバイス筐体である。
【００５９】
ＤＥ２０は、２つのＣＭ＃０，＃１のそれぞれとデータアクセスパスで通信可能に接続されており、それぞれ、２つのＩＯＭ２３と、複数の記憶装置２１もしくはＦＥＭ２２とを備える。
【００６０】
なお、ＩＯＭを示す符号としては、複数のＩＯＭのうち１つを特定する必要があるときには符号２３ａ−Ａ１〜２３ａ−Ａｎ，２３ｂ−Ａ１〜２３ｂ−Ａｎ，２３ａ−Ｂ１〜２３ａ−Ｂｍ，２３ｂ−Ｂ１〜２３ｂ−Ｂｍを用いるが、任意のＩＯＭを指すときには符号２３を用いる。
【００６１】
図２に示す例においては、ＤＥ２０ａ−１およびＤＥ２０ｂ−ｍに２つのＦＥＭ２２−１，２２−２が備えられ、これら以外のＤＥ２０に、複数の記憶装置２１が備えられている。
【００６２】
記憶装置２１は、データを読み書き可能に格納する既知の装置であり、例えば、ＨＤＤやＳＳＤ（Solid State Drive）である。これらの記憶装置２１は、互いに同様の機能構成を備える。各ＤＥ２０が備える複数の記憶装置２１の一部はホットスペアとして機能する。
【００６３】
なお、以下、ＦＥＭを示す符号としては、複数のＦＥＭのうち１つを特定する必要があるときには符号２２−１，２２−２を用いるが、任意のＦＥＭを指すときには符号２２を用いる。
【００６４】
ＦＥＭ２２は、ＩＯＭ２３で受領したＳＡＳ（Serial Attached Small Computer System Interface）フレームをＣＭ１０から指定された記憶装置２１へ転送する処理を行なう。また、ＦＥＭ２２は、図示しないファンを搭載し、ＤＥ２０内の冷却も行なう。ＦＥＭ２２は、例えば、３．５インチ用高密度（High Density）ドライブエンクロージャ用second tier expander搭載モジュールである。
【００６５】
また、ＦＥＭ２２は、１つ以上（図２に示す例では２つ）のＦＥＭ−ＥＸＰ（FEM-Expander）２２１を備える。ＦＥＭ−ＥＸＰ２２１は、ＳＡＳ／ＳＡＴＡ（Serial Advanced Technology Attachment）接続用のExpanderチップである。
【００６６】
ＤＥ２０ａ−１はＩＯＭ２３ａ−Ａ１，２３ｂ−Ａ１を備えている。同様に、ＤＥ２０ａ−２はＩＯＭ２３ａ−Ａ２，２３ｂ−Ａ２を、ＤＥ２０ａ−ｎはＩＯＭ２３ａ−Ａｎ，２３ｂ−Ａｎを、ＤＥ２０ｂ−１はＩＯＭ２３ａ−Ｂ１，２３ｂ−Ｂ１を、ＤＥ２０ｂ−２はＩＯＭ２３ａ−Ｂ２，２３ｂ−Ｂ２を、ＤＥ２０ｂ−ｍはＩＯＭ２３ａ−Ｂｍ，２３ｂ−Ｂｍを、それぞれ備える。これらにより、各ＤＥ２０において、ＩＯＭ２３が二重化されている。
【００６７】
ＤＥ２０ａ−１において、ＩＯＭ２３ａ−Ａ１はＦＥＭ２２−１の制御を、ＩＯＭ２３ｂ−Ａ１はＦＥＭ２２−２の制御を、それぞれ行なう。同様に、ＤＥ２０ｂ−ｍにおいて、ＩＯＭ２３ａ−ＢｍはＦＥＭ２２−１の制御を、ＩＯＭ２３ｂ−ＢｍはＦＥＭ２２−２
の制御を、それぞれ行なう。
【００６８】
また、ＤＥ２０ａ−２において、ＩＯＭ２３ａ−Ａ２，２３ｂ−Ａ２は、それぞれ記憶装置２１へのデータアクセスを制御する。同様に、ＤＥ２０ａ−ｎにおいて、ＩＯＭ２３ａ−Ａｎ，２３ｂ−Ａｎは、それぞれ記憶装置２１へのデータアクセスを制御する。また、ＤＥ２０ｂ−１において、ＩＯＭ２３ａ−Ｂ１，２３ｂ−Ｂ１は、それぞれ記憶装置２１へのデータアクセスを制御する。さらに、ＤＥ２０ｂ−２において、ＩＯＭ２３ａ−Ｂ２，２３ｂ−Ｂ２は、それぞれ記憶装置２１へのデータアクセスを制御する。
【００６９】
後述するＣＭ１０ａ（ＣＭ＃０）のＣＭ−ＥＸＰ１４ａには、ＩＯＭ２３ａ−Ａ１，ＩＯＭ２３ａ−Ａ２，・・・，ＩＯＭ２３ａ−Ａｎが、この順にカスケード接続されている。また、ＣＭ−ＥＸＰ１４ａには、ＩＯＭ２３ａ−Ｂ１，ＩＯＭ２３ａ−Ｂ２，・・・，ＩＯＭ２３ａ−Ｂｍも、この順にカスケード接続されている。
【００７０】
このように、ＣＭ１０ａのＣＭ−ＥＸＰ１４ａからＩＯＭ２３ａ−Ａ１，ＩＯＭ２３ａ−Ａ２，・・・，ＩＯＭ２３ａ−Ａｍが接続される経路、およびＣＭ−ＥＸＰ１４ａからＩＯＭ２３ａ−Ｂ１，ＩＯＭ２３ａ−Ｂ２，・・・，ＩＯＭ２３ａ−Ｂｍが接続される経路を、０系の経路という場合がある。また、この０系の経路に接続されるＩＯＭ２３を、ＩＯＭ＃０と表す場合がある。
【００７１】
０系の経路に接続された各ＩＯＭ２３は、０系のＣＭ１０ａ（ＣＭ＃０）により管理される。
【００７２】
また、後述するＣＭ１０ｂ（ＣＭ＃１）のＣＭ−ＥＸＰ１４ｂには、ＩＯＭ２３ｂ−Ｂｍ，・・・，ＩＯＭ２３ｂ−Ｂ２，ＩＯＭ２３ｂ−Ｂ１が、この順にカスケード接続されている。また、ＣＭ−ＥＸＰ１４ｂには、ＩＯＭ２３ｂ−Ａｎ，・・・，ＩＯＭ２３ｂ−Ａ２，ＩＯＭ２３ｂ−Ａ１も、この順にカスケード接続されている。
【００７３】
このように、ＣＭ１０ｂのＣＭ−ＥＸＰ１４ｂからＩＯＭ２３ｂ−Ｂｍ，・・・，ＩＯＭ２３ｂ−Ｂ２，ＩＯＭ２３ｂ−Ｂ１が接続される経路、および、ＣＭ−ＥＸＰ１４ｂからＩＯＭ２３ｂ−Ａｎ，・・・，ＩＯＭ２３ｂ−Ａ２，ＩＯＭ２３ｂ−Ａ１が接続される経路を、それぞれ１系の経路という場合がある。また、この１系の経路に接続されるＩＯＭ２３を、ＩＯＭ＃１と表す場合がある。
【００７４】
１系の経路に接続された各ＩＯＭ２３は、１系のＣＭ１０ｂ（ＣＭ＃１）により管理される。また、１系の経路は、０系の経路に対してリバースケーブリングされている。
【００７５】
ＣＭ１０は、種々の制御を行なうストレージ制御装置であり、ホスト装置５０からのストレージアクセス要求（アクセス制御信号：以下、ホストＩ／Ｏという）に従って、各種制御を行なう。
【００７６】
ＣＭ１０は、図１に示すように、ＣＰＵ（Central Processing Unit）１１，メモリ１２，ＩＯＣ１３，ＣＭ−ＥＸＰ１４ａ（１４ｂ），ＢＵＤ（Bootup and Utility Device）１６，ＣＭ−ＢＩＯＳメモリ１７およびＣＡ１５ａ，１５ｂを備える。
【００７７】
ローカルストレージ１−１において、各ＣＭ１０のＣＡ１５ａは、ホスト装置５０から送信されたデータを受信したり、ＣＭ１０から出力するデータをホスト装置５０に送信したりするアダプタである。すなわち、ＣＡ１５ａはホスト装置５０との間でのデータの入出力を制御する。
【００７８】
ＣＡ１５ａは、例えば、ＮＡＳ（Network Attached Storage）を介してホスト装置５０と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮインタフェース等である。各ＣＭ１０は、ＣＡ１５ａにより通信線５１を介してホスト装置５０とＮＡＳにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１０ａ，１０ｂのそれぞれに１つのＣＡ１５ａが備えられている。
【００７９】
ローカルストレージ１−１の各ＣＭ１０のＣＡ１５ａは、それぞれホスト装置５０に対するターゲットポートとして機能する。
【００８０】
また、これらのＣＡ１５ａは、ＳＡＮ（Storage Area Network）を介してホスト装置５０と通信可能に接続するネットワークアダプタであってもよい。すなわち、例えば、ｉＳＣＳＩ（Internet Small Computer System Interface）インタフェースやＦＣ（Fibre Channel）インタフェースであってもよい。各ＣＭ１０は、ＣＡ１５ａにより通信線５１を介してホスト装置５０とＳＡＮにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なってもよい。
【００８１】
一方、外部ストレージ１−２の各ＣＭ１０のＣＡ１５ａは、それぞれ、ローカルストレージ１−１の各ＣＭ１０のＣＡ１５ｂと通信線５２を介して通信可能に接続されている。
【００８２】
外部ストレージ１−２の各ＣＭ１０のＣＡ１５ａは、ローカルストレージ１−１の各ＣＭ１０から送信されるデータを受信したり、外部ストレージ１−２の各ＣＭ１０から出力する命令やデータをローカルストレージ１−１の各ＣＭ１０に送信したりするアダプタである。すなわち、外部ストレージ１−２の各ＣＭ１０のＣＡ１５ａは、ローカルストレージ１−１との間でのデータの入出力を制御するものであり、それぞれローカルストレージ１−１に対するターゲットポートとして機能する。
【００８３】
これに対して、ローカルストレージ１−１の各ＣＭ１０のＣＡ１５ｂは、外部ストレージ１−２との間でのデータの入出力を制御するものであり、それぞれ外部ストレージ１−２に対するイニシエータポートとして機能する。
【００８４】
各ＣＭ１０において、複数のＣＡ１５ａ，１５ｂは、ＣＭ１０から脱着自在に構成されたライザーカード（ドータカード）１５１に備えられている。また、外部ストレージ１−２に接続されるインタフェースであるＣＡ１５ｂは、内部ストレージであるＤＥ２０へのインタフェースであるＣＭ−ＥＸＰ１４ａ，１４ｂとは異なる種類であってもよい。
【００８５】
ＣＭ−ＥＸＰ１４ａ，１４ｂは、ＤＥ２０と通信可能に接続するための拡張インタフェース（Expander）であり、例えば、ＩＣ（Integrated Circuit）チップとして構成されている。これらのＣＭ−ＥＸＰ１４ａ，１４ｂは、ＣＭ１０とＤＥ２０に備えられた記憶装置とを接続するスイッチとして機能する。
【００８６】
なお、以下、ＣＭ−ＥＸＰを示す符号としては、複数のＣＭ−ＥＸＰのうち１つを特定する必要があるときには符号１４ａ，１４ｂを用いるが、任意のＣＭ−ＥＸＰを指すときには符号１４を用いる。
【００８７】
ＣＭ−ＥＸＰ１４にはＤＥ２０の記憶装置２１が接続され、各ＣＭ１０は、ホスト装置５０から受信したＩ／Ｏ要求に基づき、記憶装置２１に対するアクセス制御を行なう。
【００８８】
各ＣＭ１０は、ＣＭ−ＥＸＰ１４を介して、記憶装置２１に対するデータの書き込みや読み出しを行なう。
【００８９】
本実施形態においては、例えば、各ＣＥ２に備えられるＣＭ１０や、各ＤＥ２０に備えられるＩＯＭ２３が、プログラムであるファームウェアの切替え対象のモジュール（電子部品）である。以下、ＩＯＭ２３をモジュールもしくは部品という場合がある。
これらのモジュールは、同系のＣＭ１０によって制御される。また、ＣＭ１０の制御対象は、これらのモジュールの他、ＣＭ１０内の電子部品や配下のＤＥ２０の電子部品をも含む。本ストレージシステム１００においては、これらの全ての電子部品がファームウェア（プログラム）の交換対象となり得るものであり、これらの電子部品のうち一部または全部に対して活性ファームウェア（プログラム）交換が行なわれる。
【００９０】
例えば、各ＩＯＭ２３は交換後の新ファームウェアを格納する記録領域（メモリ，記憶部）を備える。ＩＯＭ２３は、その起動時（リセットによる起動時，リブート時；再起動時）に、この記録領域に格納された新ファームウェアを読み出して自身に適用することで、ファームウェアの交換が行なわれる。以下、ＩＯＭ２３のリセットには、リブート（再起動）が含まれるものとする。
【００９１】
ＣＭ−ＢＩＯＳメモリ１７は、ＣＭ１０の起動時にＣＰＵ１１によって実行されるＢＩＯＳ（Basic Input Output System）を格納する。
【００９２】
メモリ１２は、Read Only Memory（ＲＯＭ）およびRandom Access Memory（ＲＡＭ）を含む記憶装置である。メモリ１２のＲＯＭには、ソフトウェアプログラムが書き込まれている。メモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１２のＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用され、ＣＭ−ＢＩＯＳメモリ１７から読み出されたＢＩＯＳやソフトウェアプログラムが一時的に格納される。本実施形態の一例において、メモリ１２には、後述するボリューム情報１２１およびボリュームステータス情報１２２等が格納される（図３参照）。
【００９３】
また、メモリ１２には、ファームウェア交換処理の進捗状況を示す情報（ファームウェア交換進捗情報）やファームウェアの版数を示すファームウェア版数情報等が格納されてもよい。
【００９４】
ＩＯＣ１３は、ＣＭ１０内におけるデータ転送を制御する制御装置であり、例えば、メモリ１２に格納されたデータをＣＰＵ１１を介することなく転送させるＤＭＡ（Direct Memory Access）転送を実現する。
【００９５】
ＢＵＤ１６は、例えば、ＣＡ１５からコピーされたダンプデータを格納する記憶装置である。
【００９６】
ＣＰＵ１１は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ（マルチコアＣＰＵ）である。ＣＰＵ１１は、メモリ１２等に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。特に、本実施形態において、ローカルストレージ１−１のＣＰＵ１１は、図３に示すように、パワー制御部１１４，ＣＡ制御部１１１，外部ストレージ管理部１１２および保守制御部１１０として機能する。
【００９７】
なお、これらのパワー制御部１１４，ＣＡ制御部１１１，外部ストレージ管理部１１２および保守制御部１１０としての機能を実現するためのプログラム（ストレージ制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００９８】
パワー制御部１１４，ＣＡ制御部１１１，外部ストレージ管理部１１２および保守制御部１１０としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１２のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００９９】
パワー制御部１１４は、ＣＭ１０や各デバイスの電源制御を行なうものであり、例えば、ファームウェアを適用（組み込む）するために、ＣＭ１０や各デバイスの電源のオフ／オンを制御する。
【０１００】
ＣＡ制御部１１１は、自身が機能するＣＭ１０（以下、自ＣＭ１０という）において認識している外部ストレージ１−２のボリュームを他のＣＭ１０に通知する。例えば、ＣＭ１０においては、メモリ１２の所定の記憶領域にボリューム情報１２１を格納する。このボリューム情報１２１には、予め外部ストレージ１−２に形成されたボリュームを特定する情報（例えば、ボリュームＩＤ）が登録される。
【０１０１】
ＣＡ制御部１１１は、ボリューム情報１２１に登録されたボリュームＩＤのボリュームに、通信線５２を介してアクセス可能であるかを確認し、その確認結果（アクセス状態情報）を、同一ＣＥ２内において冗長構成を形成する他のＣＭ１０に通知する。
【０１０２】
例えば、ＣＡ制御部１１１は、確認対象のボリュームに対して、ＳＣＳＩ（Small Computer System Interface）コマンドを発行し、このＳＣＳＩコマンドに対して行なわれる応答に基づいて、対象ボリュームにアクセス可能であるかを判断する。
【０１０３】
ＣＡ制御部１１１は、例えば、ＳＣＳＩコマンドとして、ターゲット・デバイスに関する基本情報の取得を目的とする“INQUIRY COMMAND”を発行する。この“INQUIRY COMMAND”に対して、外部ストレージ１−２から“Data/Status”が応答されると、次に、ＣＡ制御部１１１は、デバイスが作動可能であるかを確認する“TEST UNIT READY”コマンドを発行する。ＣＡ制御部１１１は、この“TEST UNIT READY”に対して、外部ストレージ１−２から応答される“Data/Status”に基づき、対象ボリュームにアクセス可能であるかを判断する。
【０１０４】
ＣＭ１０から外部ストレージ１−２のボリュームにアクセス可能である場合には、ＣＭ１０から外部ストレージ１−２に対するアクセスパスが正常であると判断することができる。
【０１０５】
ＣＡ制御部１１１は、自ＣＭ１０における外部ストレージ１−２のボリュームへのアクセス状態を示すアクセス状態情報を、冗長化された他のＣＭ１０に通知する。
【０１０６】
なお、ＣＡ制御部１１１は、外部ストレージ１−２のボリュームへアクセス状態の確認を定期的に行なってもよい。また、ＣＡ制御部１１１は、外部ストレージ１−２のボリュームへのアクセス状態の確認を、他のＣＭ１０からの確認要求を受信したタイミングや、ホスト装置５０からＩ／Ｏアクセスが発生したタイミング等で行なってもよく、適宜変更して実施することができる。
【０１０７】
外部ストレージ管理部１１２は、自ＣＭ１０と冗長パス構成となっている他ＣＭ１０（以下、冗長化ＣＭ１０という場合がある）における、外部ストレージ１−２とのパス状態（接続状態）を管理する。
【０１０８】
例えば、ＣＭ１０においては、メモリ１２の所定にボリュームステータス情報１２２を格納する。このボリュームステータス情報１２２には、外部ストレージ１−２において備えられる全てのボリューム（仮想ボリューム）を識別するボリュームＩＤが登録される。
【０１０９】
そして、ボリュームステータス情報１２２には、冗長化ＣＭ１０のＣＡ制御部１１１から通知される、冗長化ＣＭ１０がアクセス可能な外部ストレージ１−２のボリュームのボリュームＩＤも登録される。
【０１１０】
これにより、このボリュームステータス情報１２２を参照することで、外部ストレージ１−２に備えられたボリュームのうち、冗長化ＣＭ１０が認識できているものと、認識できていないものとを容易に判定することができる。
【０１１１】
ボリュームステータス情報１２２は、冗長化ＣＭ１０のＣＡ制御部１１１から当該他冗長化ＣＭ１０がアクセス可能な外部ストレージ１−２のボリュームのボリュームＩＤが通知される度に更新されることが望ましい。
【０１１２】
また、外部ストレージ管理部１１２は、冗長化ＣＭ１０に対して、外部ストレージ１−２のボリュームへアクセス状態の確認を要求する確認要求を送信し、この確認要求に対する冗長化ＣＭ１０（ＣＡ制御部１１１）からの応答に基づき、ボリュームステータス情報１２２を更新してもよい。
【０１１３】
外部ストレージ管理部１１２は、後述するファームウェア交換制御部１１３から外部ストレージ１−２について接続状態の確認要求を受信すると、ボリュームステータス情報１２２を参照する。これにより、外部ストレージ管理部１１２は、冗長化ＣＭ１０における、外部ストレージ１−２とのパス接続状態を確認する。
【０１１４】
確認の結果、冗長化ＣＭ１０において、アクセスできない外部ストレージ１−２のボリュームがあった場合には、外部ストレージ管理部１１２は、外部ストレージ１−２とのパス状態（接続状態）に異常が生じていると判断し、その旨をファームウェア交換制御部１１３に通知する。
【０１１５】
保守制御部１１０は、ユーザ等が図示しない管理端末のＧＵＩ（Graphical User Interface）やＣＬＩ（Command Line Interface）を介して入力したコマンドを受け付け、ストレージ装置１におけるファームウェアの更新等の保守に関する全体処理のシーケンスを管理する。
【０１１６】
保守制御部１１０は、図３に示すように、ファームウェア交換制御部１１３としての機能を備える。
【０１１７】
ファームウェア交換制御部１１３は、ストレージ装置１に備えられたデバイス（電子装置）に対して、システムを運用状態に維持したままファームウェアの交換（切替え，改版）を行なう処理である活性ファームウェア交換処理を行なう。活性ファームウェア交換処理は、活性ファームウェア切替え処理や活性ファームウェア適用処理，活性ファームウェア改版処理とも呼ばれる。
【０１１８】
以下、ストレージ装置１に備えられた複数のＣＭ１０のうち、他ＣＭ１０に対して活性ファームウェア交換処理を実行中のＣＭ１０をマスタＣＭ１０という場合がある。また、このマスタＣＭ１０により活性ファームウェア交換処理がされる他ＣＭ１０をスレーブＣＭ１０という場合がある。スレーブＣＭ１０は、ファームウェア交換の対象である切替え対象ＣＭ１０に相当する。マスタＣＭ１０はスレーブＣＭ１０に対して活性ファームウェア交換処理を行なう。
【０１１９】
ファームウェア交換制御部１１３としての機能は、マスタＣＭ１０において実行される。
【０１２０】
ストレージ装置１においては、活性ファームウェア交換処理において、ストレージ装置１−１に備えられた複数のモジュールを前半モジュール群と後半モジュール群との２つの系統のモジュール群に分けて、オンライン状態を維持したまま片系ずつファームウェア交換を行なう。
【０１２１】
活性ファームウェア交換処理は、モジュールに備えられたメモリ等の記憶領域（非稼働面側領域）に予め新ファームウェアを書き込んでおいた状態から開始するものとする。活性ファームウェア交換処理は前半と後半との２つの段階に分けて実施される。
【０１２２】
モジュールに更新用のファームウェア（以下、新ファームウェアという）を適用する際には、先ず、非稼働面側領域に新ファームウェアを書き込む。その後、新ファームウェアが書き込まれた非稼働面側領域を稼働面側領域に切替えてから、モジュールのリセット（リブート，再起動）を行ない、稼働面側領域に書き込まれた新ファームウェアを用いて起動させる。
活性ファームウェア交換処理においては、ファームウェア交換対象のＣＭ１０はシステムから一時的に切り離されることになる。そこで、ファームウェア交換対象のＣＭ１０のことを切り離し対象ＣＭ１０と言ってもよい。
【０１２３】
図２に例示するストレージ装置１においては、例えば、前半に、１系のモジュールの交換を行なった後に、ＣＭ＃１に備えられた各モジュールの交換を行なう。これらの前半のファームウェア書き換えは、ＣＭ＃０のファームウェア交換制御部１１３の制御の下で行なわれる。
【０１２４】
そして、後半において、ＣＭ＃０に備えられた各モジュールの交換を行なった後に、０系のモジュール交換を行なう。これらの後半のファームウェア書き換えは、ＣＭ＃１のファームウェア交換制御部１１３の制御の下で行なわれる。
【０１２５】
例えば、ファームウェア交換制御部１１３は、ファームウェアの切替え対象のＩＯＭ２３に対してファームウェア切替コマンドを発行する。ファームウェア切替コマンドを受信したＩＯＭ２３は、自身が正常に動作した状態であり、自身の記憶領域に新ファームウェアが格納された状態である場合には、ファームウェア交換制御部１１３に対して正常応答を行なう。また、ＩＯＭ２３は、自身の記憶領域に新ファームウェアが格納されていない場合には、その旨のエラー応答（異常応答）をファームウェア交換制御部１１３に対して行なう。
【０１２６】
上述した例においては、前半のファームウェア書き換えは、ＣＭ＃０がマスタＣＭ１０として機能し、後半のファームウェア書き換えは、ＣＭ＃１がマスタＣＭ１０として機能する。
【０１２７】
すなわち、ストレージ装置１に備えられた複数のＣＭ１０は、交互にマスタＣＭ１０となり他ＣＭ１０（スレーブＣＭ１０）の活性ファームウェア交換処理を行なう。
【０１２８】
また、活性ファームウェア交換処理には、自動モードとオペレータ連携モードとの２つのモードがある。
【０１２９】
自動モードにおいては、ハードウェアの電源のオフ（Off）／オン（On）を伴わず、ＣＭ１０内のＯＳ，ファームウェアのみの更新を行なう。この自動モードでＣＭ１０の活性ファームウェア交換処理を行なう場合には、ＣＡ１５ａ，１５ｂやＢＩＯＳのファームウェアは更新されないが、短時間でファームウェア更新が可能であり、ホスト装置５０側のＩ／Ｏに影響なく適用が可能となる。
【０１３０】
オペレータ連携モードにおいては、ハードウェアの電源のオフ／オンを実施して更新を実施する。このオペレータ連携モードでＣＭ１０の活性ファームウェア交換を行なう場合には、ＣＡ１５ａ，１５ｂのリンクが切断され、ＣＭ１０のリブートに時間がかかる。このため、ホスト装置５０でＩ／Ｏパスのオフライン（Offline）／オンライン（Online）操作を実施する。このオペレータ連携モードでは、ハードウェアの電源のオフ／オンが必要なＣＡ１５ａ，１５ｂ，ＢＩＯＳファーム等の更新が可能となる。
【０１３１】
また、ファームウェア交換制御部１１３は、本ストレージ装置１の各モジュール（部品進）のファームウェアに関する各種情報を管理するファームウェア管理機能を備える。また、ファームウェア交換制御部１１３は、ファームウェアの切替え作業の進捗状態を管理する。なお、これらのファームウェア管理機能やファームウェア交換進捗管理機能は、既知の種々の手法を用いて実現することができ、その説明は省略する。
【０１３２】
また、マスタＣＭ１０において、ファームウェア交換制御部１１３は、外部ストレージ管理部１１２に、外部ストレージ１−２とのパス状態（接続状態）を確認させる制御を行なう。
【０１３３】
ファームウェア交換制御部１１３は、本ストレージシステム１００において、ストレージ仮想化機能が有効であるかを確認する。本ストレージシステム１００においては、例えば、各ＣＭ１０のメモリ１２の所定の記憶領域に、ストレージ仮想化機能が有効であるか否かを示す情報（フラグ等）が記録される。
【０１３４】
ファームウェア交換制御部１１３は、このフラグの状態を確認することで、本ストレージシステム１００において、ストレージ仮想化機能が有効であるかを確認する。
【０１３５】
そして、ファームウェア交換制御部１１３は、本ストレージシステム１００において、ストレージ仮想化機能が有効である場合に、上述の如く、外部ストレージ管理部１１２に、外部ストレージ１−２とのパス状態（パス接続状態）を確認させる。
【０１３６】
スレーブＣＭ１０において、アクセスできない外部ストレージ１−２のボリュームがあった場合には、外部ストレージ１−２とのパス接続状態に異常が生じていると判断される。
【０１３７】
ファームウェア交換制御部１１３は、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に、活性ファームウェア交換の進捗に応じて、以下の（１）〜（３）のいずれかの処理を異常処理として行なう。
【０１３８】
（１）前半モジュール群のファームウェア交換前
前半モジュール群のファームウェア交換前において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に、活性ファームウェア交換処理が自動モードである場合には、ファームウェア交換制御部１１３は、ファームウェア交換を中止する。
【０１３９】
一方、活性ファームウェア交換処理がオペレータ連携モードである場合には、ファームウェア交換制御部１１３は、オペレータに対してファームウェア交換を実行するか否かを確認する通知（確認通知）を行なう。この確認通知は、例えば、ファームウェア交換を実行するか否かを確認するメッセージを、スレーブＣＭ１０から外部ストレージ１−２のボリュームが見つからない旨の通知とともに図示しないディスプレイ装置に表示させることで行なってもよい。
【０１４０】
（２）前半モジュール群のファームウェア交換後、且つ、後半モジュール群のファームウェア交換前
前半モジュール群のファームウェア交換後、且つ、後半モジュール群のファームウェア交換前において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合には、ファームウェア交換制御部１１３は、交換した前半モジュール群の各モジュールのファームウェアをそれぞれ元の版に戻す。すなわち、ファームウェア交換制御部１１３はロールバック処理を行なう。また、後半モジュール群のファームウェア交換を中止する。
【０１４１】
（３）後半モジュール群のファームウェア交換後
後半モジュール群のファームウェア交換後において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に、ファームウェア交換制御部１１３は、オペレータに対してスレーブＣＭ１０から外部ストレージ１−２のボリュームが見つからない旨の通知を行なう。この通知は、図示しないディスプレイ装置にスレーブＣＭ１０から外部ストレージ１−２のボリュームが見つからない旨の通知を表示させることで行なってもよい。
【０１４２】
（Ｃ）動作
上述の如く構成された実施形態の一例としてのストレージシステム１００において、ローカルストレージ１−１のファームウェア交換を行なう場合の処理を、図４に示すフローチャート（ステップＡ１〜Ａ１１）に従って説明する。
【０１４３】
以下に示す例においては、先ず、前半モジュール群への活性ファームウェア交換として、１系の各モジュールのファームウェア交換を行なった後にＣＭ＃１に備えられた各モジュールのファームウェア交換を行なう。その後、後半モジュール群への活性ファームウェア交換として、ＣＭ＃０に備えられた各モジュールのファームウェア交換を行なった後に０系の各モジュールのファームウェア交換を行なう。
【０１４４】
ステップＡ１において、先ず、１系のモジュール群のファームウェア交換を制御するＣＭ＃０（マスタＣＭ１０）のファームウェア交換制御部１１３が、本ストレージシステム１００においてストレージ仮想化機能が有効であるかを確認する。
【０１４５】
確認の結果、ストレージ仮想化機能が有効である場合には（ステップＡ１のＹＥＳルート参照）、ステップＡ２に移行する。ステップＡ２において、マスタＣＭ＃０ファームウェア交換制御部１１３は、スレーブＣＭ＃１と外部ストレージ１−２との接続が正常であるかを確認する。
【０１４６】
なお、スレーブＣＭ１０と外部ストレージ１−２との接続が正常であるかの確認手法の詳細は、図５に示すフローチャートを用いて後述する。
【０１４７】
ステップＡ２における確認の結果、スレーブＣＭ＃１と外部ストレージ１−２との接続に異常が検出された場合には（ステップＡ２のＮＯルート参照）、ファームウェア交換制御部１１３は、ステップＡ３において異常処理を行なう。
【０１４８】
このステップＡ３における処理は、前述した、前半モジュール群のファームウェア交換前において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に相当する。
【０１４９】
ファームウェア交換制御部１１３は、活性ファームウェア交換処理が自動モードである場合には、ファームウェア交換制御部１１３は、ファームウェア交換を中止する。一方、活性ファームウェア交換処理がオペレータ連携モードである場合には、ファームウェア交換制御部１１３は、オペレータに対してファームウェア交換を実行するか否かの確認通知を行なう。その後、処理を終了する。
【０１５０】
ステップＡ２における確認の結果、スレーブＣＭ＃１と外部ストレージ１−２との接続が正常である場合には（ステップＡ２のＹＥＳルート参照）、ステップＡ４に移行する。
【０１５１】
また、ステップＡ１における確認の結果、ストレージ仮想化機能が有効でない場合にも（ステップＡ１のＮＯルート参照）、ステップＡ４に移行する。
【０１５２】
ステップＡ４においては、マスタＣＭ＃０のファームウェア交換制御部１１３が、前半モジュール群の各デバイスのファームウェア交換を実行する。１系のモジュールのファームウェア交換が完了すると、今度は１系のＣＭ＃１が、０系のモジュール群のファームウェア交換を制御する新たなマスタＣＭ１０となる。
【０１５３】
ステップＡ５において、ＣＭ＃１（マスタＣＭ１０）のファームウェア交換制御部１１３が、本ストレージシステム１００においてストレージ仮想化機能が有効であるかを確認する。
【０１５４】
確認の結果、ストレージ仮想化機能が有効である場合には（ステップＡ５のＹＥＳルート参照）、ステップＡ６に移行する。ステップＡ６において、マスタＣＭ＃１のファームウェア交換制御部１１３は、スレーブＣＭ＃０と外部ストレージ１−２との接続が正常であるかを確認する。
【０１５５】
ステップＡ６における確認の結果、スレーブＣＭ＃０と外部ストレージ１−２との接続に異常が検出された場合には（ステップＡ６のＮＯルート参照）、ファームウェア交換制御部１１３は、ステップＡ７において異常処理を行なう。
【０１５６】
このステップＡ７の処理は、前述した、前半モジュール群のファームウェア交換後、且つ、後半モジュール群のファームウェア交換前において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に相当する。
【０１５７】
マスタＣＭ＃１のファームウェア交換制御部１１３は、交換した前半モジュール群の各モジュールのファームウェアをそれぞれ元の版に戻す。すなわち、ファームウェア交換制御部１１３はロールバック処理を行なう。また、後半モジュール群のファームウェア交換を中止する。その後、処理を終了する。
【０１５８】
ステップＡ６における確認の結果、スレーブＣＭ＃０と外部ストレージ１−２との接続が正常である場合には（ステップＡ６のＹＥＳルート参照）、ステップＡ８に移行する。
【０１５９】
また、ステップＡ５における確認の結果、ストレージ仮想化機能が有効でない場合にも（ステップＡ５のＮＯルート参照）、ステップＡ８に移行する。
【０１６０】
ステップＡ８においては、マスタＣＭ＃１のファームウェア交換制御部１１３が、後半モジュール群の各デバイスのファームウェア交換を実行する。
【０１６１】
ステップＡ９において、ステップＡ８においてファームウェア交換を行なったＣＭ＃１（マスタＣＭ１０）のファームウェア交換制御部１１３が、本ストレージシステム１００においてストレージ仮想化機能が有効であるかを確認する。
【０１６２】
確認の結果、ストレージ仮想化機能が有効である場合には（ステップＡ９のＹＥＳルート参照）、ステップＡ１０に移行する。ステップＡ１０において、マスタＣＭ＃１のファームウェア交換制御部１１３は、スレーブＣＭ＃０と外部ストレージ１−２との接続が正常であるかを確認する。
【０１６３】
ステップＡ１０における確認の結果、スレーブＣＭ＃０と外部ストレージ１−２との接続に異常が検出された場合には（ステップＡ１０のＮＯルート参照）、ファームウェア交換制御部１１３は、ステップＡ１１において異常処理を行なう。
【０１６４】
このステップＡ１１の処理は、前述した、後半モジュール群のファームウェア交換後において、スレーブＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が生じていると判断された場合に相当する。
【０１６５】
マスタＣＭ＃１のファームウェア交換制御部１１３は、オペレータに対してスレーブＣＭ１０から外部ストレージ１−２のボリュームが見つからない旨の通知を行なう。その後、処理を終了する。
【０１６６】
ステップＡ１０における確認の結果、スレーブＣＭ＃０と外部ストレージ１−２との接続が正常である場合には（ステップＡ１０のＹＥＳルート参照）、処理を終了する。
【０１６７】
また、ステップＡ９における確認の結果、トレージ仮想化機能が有効でない場合にも（ステップＡ９のＮＯルート参照）、処理を終了する。
【０１６８】
次に、実施形態の一例としてのストレージシステム１００のローカルストレージ１−１におけるスレーブＣＭ１０と外部ストレージ１−２との接続状態の確認方法を、図５に示すフローチャート（ステップＢ１〜Ｂ７）に従って説明する。
【０１６９】
ステップＢ１において、マスタＣＭ１０のファームウェア交換制御部１１３は、ファームウェア交換対象のＣＭ１０（切替え対象ＣＭ１０）を抽出する。
【０１７０】
ストレージシステム１００においては、４つ以上（例えば、１２個）のＣＭ１０が備えられる場合がある。これらの複数のＣＭ１０には任意の識別番号が設定される。例えば、１２台のＣＭ＃０〜＃１１において、ＣＭ＃０，＃２，＃４，・・・，＃１０には、識別番号１０，１１，１２，・・・１Ｂをそれぞれ設定してもよい。また、ＣＭ＃１，＃３，＃５，・・・，＃１１には、識別番号２０，２１，２２，・・・２Ｂをそれぞれ設定してもよい。
【０１７１】
これらの複数のＣＭ１０のそれぞれは、他の１つのＣＭ１０と冗長構成（ペア）にすることが望ましい。これらのペアを構成するＣＭ１０どうしを同一のＣＥ２に搭載してもよい。例えば、１２個のＣＭ１０（ＣＭ＃０〜＃１１）が備えられたストレージシステム１００においては、ＣＭ＃０とＣＭ＃１とでペアを構成し、ＣＥ＃０に搭載してもよい。同様に、ＣＭ＃２とＣＭ＃３とをＣＥ＃１に、ＣＭ＃４とＣＭ＃５とをＣＥ＃２に、ＣＭ＃６とＣＭ＃７とをＣＥ＃３に、ＣＭ＃８とＣＭ＃９とをＣＥ＃４に、ＣＭ＃１０とＣＭ＃１１とをＣＥ＃５に、それぞれ搭載してもよい。なお、これらの複数のＣＭ１０の識別番号や、ペア構成等は適宜変更して実施することができる。
【０１７２】
各ＣＭ１０のペアにおいて、一方のＣＭ１０をファームウェア交換の対象である切替え対象ＣＭ１０とした場合に、他方のＣＭ１０はこの切替え対象ＣＭ１０と接続パスが冗長化された冗長化ＣＭ１０となる。切替え対象ＣＭ１０は切り離し対象ＣＭ１０と同意である。
【０１７３】
また、各ＣＭ１０のペアにおいて、偶数で特定されるＣＭ＃０，＃２，＃４，＃６，＃８，＃１０を０系とし、奇数で特定されるＣＭ＃１，＃３，＃５，＃７，＃９，＃１１を１系とする。
【０１７４】
ストレージシステム１００において、ファームウェア交換を行なう対象のＣＭ１０が複数ある場合には、これらの複数の切替え対象ＣＭ１０の中から切替え対象ＣＭ１０が一つずつ抽出（選択）される。切替え対象ＣＭ１０はスレーブＣＭ１０である。
【０１７５】
ステップＢ２において、ファームウェア交換制御部１１３は、外部ストレージ管理部１１２に対して、切替え対象ＣＭ１０を通知して、当該切替え対象ＣＭ１０と冗長構成を有する冗長化ＣＭ１０と外部ストレージ１−２とのパス接続状態の確認を依頼する。
【０１７６】
ステップＢ３において、外部ストレージ管理部１１２は、ボリュームステータス情報１２２を参照して、スレーブＣＭ１０が、外部ストレージ１−２に備えられた個々のボリューム（仮想ボリューム）をそれぞれ認識できているかを確認する。
【０１７７】
この確認は、外部ストレージ１−２に備えられた全てのボリュームの確認が完了するまで行なわれる（ステップＢ５）、未確認のボリュームがある場合には（ステップＢ５のＮＯルート参照）、ステップＢ３の処理が繰り返し行なわれる。
【０１７８】
ステップＢ３における確認の結果、スレーブＣＭ１０において、外部ストレージ１−２に備えられたボリュームのうち認識できていないものがある場合には（ステップＢ３のＮＯルート参照）、ステップＢ４において、ファームウェア交換制御部１１３に対して異常応答が行なわれ、処理を終了する。
【０１７９】
一方、外部ストレージ１−２に備えられた全てのボリュームについて、スレーブＣＭ１０から認識できていることが確認された場合には（ステップＢ５のＹＥＳルート参照）、ステップＢ６に移行する。
【０１８０】
ステップＢ６においては、ステップＢ３〜Ｂ５の処理が全ての切替え対象ＣＭ１０について行なわれたが確認される。全ての切替え対象ＣＭ１０についてボリュームの認識確認が行なわれていない場合には（ステップＢ６のＮＯルート参照）、ステップＢ１に戻る。
【０１８１】
また、全ての切替え対象ＣＭ１０についてボリュームの認識確認が行なわれた場合には（ステップＢ６のＹＥＳルート参照）、ステップＢ７において、ファームウェア交換制御部１１３に対して正常応答が行なわれ、処理を終了する。
【０１８２】
次に、実施形態の一例としてのストレージシステム１００のローカルストレージ１−１における、ファームウェア交換過程におけるＣＭ１０の組み込み時の処理を、図６に示すフローチャート（ステップＣ１〜Ｃ７）に従って説明する。
【０１８３】
ローカルストレージ１−１における活性ファームウェア交換処理においては、パワー制御部１１４が、冗長構成となっているＣＭ１０を片ＣＭ１０ずつリブートさせる。、ステップＣ１において、ＣＭ１０の起動時に、パワー制御部１１４は、外部ストレージ管理部１１２に対してパワーオン通知を発行する。
【０１８４】
ステップＣ２において、外部ストレージ管理部１１２はパワーオン通知を受信する。
【０１８５】
ステップＣ３において、外部ストレージ管理部１１２は、ボリュームステータス情報１２２の更新を行なう。
【０１８６】
ボリュームステータス情報１２２においては、ＣＭ１０のリブート時には外部ストレージ１−２の各ボリュームに対して、異常ステータスを初期値として保持する。
【０１８７】
外部ストレージ管理部１１２は、他ＣＭ１０のＣＡ制御部１１１に対して、外部ストレージ１−２のボリュームへアクセス状態の確認を要求する確認要求を送信する。
【０１８８】
ステップＣ４において、各ＣＭ１０のＣＡ制御部１１１は、それぞれ外部ストレージ１−２の各ボリュームに対してＳＣＳＩコマンドを発行することでパス接続状態の確認を行なう。
【０１８９】
各ＣＡ制御部１１１は、ＳＣＳＩコマンド発行が成功し、認識に成功した外部ストレージ１−２のボリュームに関する情報を、確認要求の送信元の外部ストレージ管理部１１２に通知する。
【０１９０】
ステップＣ５において、外部ストレージ管理部１１２は、ＣＡ制御部１１１から通知されたボリュームに関する情報を、ボリュームステータス情報１２２にＣＭ１０ごとに登録して管理する。
【０１９１】
ステップＣ６において、外部ストレージ管理部１１２は、パワー制御部１１４に対してパワーオン通知に対する応答を行ない、ステップＣ７において、パワー制御部１１４は、ＣＭ１０のパワーオンの完了応答を行ない、処理を終了する。
【０１９２】
（Ｄ）効果
このように、実施形態の一例としてのストレージ装置１によれば、ローカルストレージ１−１のＣＭ１０に活性ファームウェア交換を行なうに際して、ファームウェア交換の対象の切替え対象ＣＭ１０（例えばＣＭ＃０）と冗長化された冗長化ＣＭ１０（例えばＣＭ＃１）の外部ストレージ１−２とのパス接続状態を確認する。
【０１９３】
そして、このパス接続状態の確認の結果、冗長化ＣＭ１０において、外部ストレージ１−２との接続状態に異常が検出された場合には、切替え対象ＣＭ１０に対するファームウェア交換処理の実行を中止する。冗長化ＣＭ１０において、外部ストレージ１−２との接続状態に異常が検出されない場合に、切替え対象ＣＭ１０に対するファームウェア交換処理を実行する。
【０１９４】
これにより、冗長化ＣＭ１０において外部ストレージ１−２との接続が正常である状態で、切替え対象ＣＭ１０に活性ファームウェア交換処理が行なわれる。従って、この活性ファームウェア交換処理の過程で切替え対象ＣＭ１０のリブートが行なわれても、ローカルストレージ１−１と外部ストレージ１−２との間においてパス接続が喪失することがない。これにより、システムの信頼性を向上させることができる。
【０１９５】
また、パス接続状態の確認の結果、冗長化ＣＭ１０において、外部ストレージ１−２との接続状態に異常が検出された場合に、活性ファームウェア交換処理がオペレータ連携モードである場合に、オペレータに対してファームウェア交換を実行するか否かの確認通知を行なう。これにより、オペレータの意向に沿った対応を行なうことができ、利便性が高い。
【０１９６】
また、前半モジュール群のファームウェア交換後、且つ、後半モジュール群のファームウェア交換前において、冗長化ＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が検出された場合に、後半モジュール群のファームウェア交換を中止する。また、交換した前半モジュール群の各モジュールのファームウェアをそれぞれ元の版に戻すロールバック処理を行なう。本ストレージシステム１００をファームウェア交換により異常が生じる前の正常な状態に速やかに戻すことができ、信頼性を向上させることができる。
【０１９７】
後半モジュール群のファームウェア交換後において、冗長化ＣＭ１０において、外部ストレージ１−２とのパス接続状態に異常が検出された場合には、オペレータに対してスレーブＣＭ１０から外部ストレージ１−２のボリュームが見つからない旨の通知を行なう。かかる場合には、本ストレージシステム１００においては新ファームウェアの適用は完了した状態であるが、冗長化ＣＭ１０から外部ストレージ１−２のボリュームにアクセスできない異常状態であるので、オペレータがかかる異常状態を速やかに認識することができ、利便性が高い。
【０１９８】
マスタＣＭ１０の外部ストレージ管理部１１２が、冗長化ＣＭ１０における外部ストレージ１−２とのパス接続状態を、冗長化ＣＭ１０が外部ストレージ１−２に備えられたボリュームにアクセス可能であるか否かに基づき判断する。これにより、冗長化ＣＭ１０における外部ストレージ１−２とのパス接続状態を容易に把握することができ、利便性が高い。
【０１９９】
（Ｅ）その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０２００】
例えば、ストレージ装置１のハードウェア構成は、図１および図２に例示した構成に限定されるものではなく、適宜変更して実施することができる。
【０２０１】
すなわち、図１および図２に例示したローエンドもしくはミドルレンジの装置構成を有するストレージ装置１に限定されるものではなく、例えば、図７に例示するような、所謂ハイエンドのストレージシステム１００に備えられるストレージ装置１に適用してもよい。
【０２０２】
図７に例示するストレージシステム１００に備えられるローカルストレージ１−１は、ＦＥ（Front Enclosure）３０１と、複数（図７に示す例では２つ）のＣＥ２を備えている。なお、図中、既述の符号の同一の符号は同様の部分を示しているのでその説明は省略する。また、この図７においては、便宜上、一部の構成の図示を省略している。
【０２０３】
ＦＥ３０１は、複数のＣＭ１０を接続するための接続装置であり、１つのＳＶＣ（Service Controller）３０２と、２つのＦＲＴ（Front-End Router）３０３とを組み合わせたユニットを２組（＃０，＃１）備える。ＦＥ３０１における、各ＳＶＣ３０２，ＦＲＴ３０３は、ＮＴＢ（Non Transparent Bridge）３０４を介して各ＣＭ１０ａ，１０ｂに接続されている。
【０２０４】
そして、このローカルストレージ１−１の各ＣＥ２において、各ＣＭ１０はＣＡ１５ａを介してホスト装置（図示省略）に接続される。また、各ＣＭ１０はＣＡ１５ｂを介して、同様に構成された外部ストレージ（図示省略）のＣＭ１０に接続される。
【０２０５】
なお、この図７に例示するストレージ装置１−１においては、便宜上、一部の配線等の図示を省略している。例えば、ＣＥ＃０のＣＭ＃１やＣＥ＃１のＣＭ＃０，＃１からＦＥ３０１への配線の図示は省略されている。また、ローカルストレージ１−１の各ＣＥ２においては、ＣＭ＃０のＣＡ１５ａがホスト装置５０に接続され、ＣＡ１５ｂが外部ストレージ１−２に接続されている。
【０２０６】
このような構成により、各ＣＭ１０ａ，１０ｂは、いずれかのＦＲＴ３０３を経由して、他のＣＭ１０ａ，１０ｂとの間で通信を行なうことができる。このように、ストレージシステム１００においてはＣＭ１０ａ，１０ｂ間通信の経路の冗長化が図られている。
【０２０７】
また、この図７に例示するストレージシステム１００において、外部ストレージ１−２に接続されるインタフェースであるＣＡ１５ｂは、内部ストレージであるＤＥ２０へのインタフェースであるＣＭ−ＥＸＰ１４ａ，１４ｂとは異なる種類であってもよい。
【０２０８】
上述した実施形態においては、ＣＭ１０内の電子部品やＣＭ１０の配下のＤＥ２０の電子部品のファームウェアを交換する例について示したが、これに限定されるものではない。例えば、ファームウェア以外のプログラムの交換に適用することができる。また、ＣＭ１０内の電子部品やＤＥ２０の電子部品以外の電子部品のプログラムの交換に用いてもよい。
【０２０９】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
（Ｆ）付記
【０２１０】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
ホスト装置と通信可能に接続される第１ストレージ装置と、
前記第１ストレージ装置と通信可能に接続され、前記ホスト装置からのアクセス要求に対して、前記第１ストレージ装置を介して処理を実行する第２ストレージ装置と、を備え、
前記第１ストレージ装置は、第１ストレージ制御装置と第２ストレージ制御装置を備え、前記第１ストレージ制御装置と前記第２ストレージ制御装置は前記ホスト装置に対して冗長的に接続し、
前記第１ストレージ制御装置と前記第２ストレージ制御装置とは、前記第２ストレージ装置に対して冗長的に接続し、
前記第１ストレージ制御装置は、前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記第２ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記第１ストレージ制御装置の活性プログラム交換の実行を抑止する
ことを特徴とする、ストレージシステム。
【０２１１】
（付記２）
前記第２ストレージ制御装置は、前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう前に、前記第１ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記第１ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記第２ストレージ制御装置の活性プログラム交換の実行を抑止する、
ことを特徴とする、付記１記載のストレージシステム。
【０２１２】
（付記３）
前記第２ストレージ制御装置から前記第２ストレージ装置の配下の論理ボリュームへのデータアクセスの状況に基づいて、前記通信状態を確認する
ことを特徴とする、付記１または２記載のストレージシステム。
【０２１３】
（付記４）
前記第１ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、第２ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記活性プログラム交換により前記電子部品に対して適用されたプログラムを、前記活性プログラム交換前に適用されていたプログラムに戻す
ことを特徴とする、付記１〜３のいずれか１項に記載のストレージシステム。
【０２１４】
（付記５）
前記第１ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、第２ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、通信状態に異常が検出された旨の警告を出力する
ことを特徴とする、付記１〜４のいずれか１項に記載のストレージシステム。
【０２１５】
（付記６）
ホスト装置および第２ストレージ装置と通信可能に接続される第１ストレージ装置に備えられるストレージ制御装置であって、
前記ホスト装置と通信可能に接続される第１通信部と、
前記第２ストレージ装置と通信可能に接続される第２通信部と、
前記第２ストレージ装置との接続を切断して活性プログラム交換を行なう保守制御部とを備え、
前記保守制御部は、
前記活性プログラム交換を行なう前に、前記ストレージ制御装置と冗長構成にある冗長ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記ストレージ制御装置の活性プログラム交換の実行を抑止する
ことを特徴とする、ストレージ制御装置。
【０２１６】
（付記７）
前記保守制御部は、前記冗長ストレージ制御装置から前記第２ストレージ装置の配下の論理ボリュームへのデータアクセスの状況に基づいて、前記通信状態を確認する
ことを特徴とする、付記６記載のストレージ制御装置。
【０２１７】
（付記８）
前記保守制御部は、前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記活性プログラム交換により前記電子部品に対して適用されたプログラムを、前記活性プログラム交換前に適用されていたプログラムに戻す
ことを特徴とする、付記６または７記載のストレージ制御装置。
【０２１８】
（付記９）
前記保守制御部は、前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、通信状態に異常が検出された旨の警告を出力する
ことを特徴とする、付記６〜８のいずれか１項に記載のストレージ制御装置。
【０２１９】
（付記１０）
ホスト装置および第２ストレージ装置と通信可能に接続される第１ストレージ装置に備えられるストレージ制御装置のプロセッサに、
前記第２ストレージ装置との接続を切断して活性ファームウェア交換を行なう前に、前ストレージ制御装置と冗長構成にある冗長ストレージ制御装置と前記第２ストレージ装置との通信状態を確認し、
前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記ストレージ制御装置の活性プログラム交換の実行を抑止する
処理を実行させる、ストレージ制御プログラム。
【０２２０】
（付記１１）
前記冗長ストレージ制御装置から前記第２ストレージ装置の配下の論理ボリュームへのデータアクセスの状況に基づいて、前記通信状態を確認する
処理を、前記プロセッサに実行させる、付記１０記載のストレージ制御プログラム。
【０２２１】
（付記１２）
前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、前記活性プログラム交換により前記電子部品に対して適用されたプログラムを、前記活性プログラム交換前に適用されていたプログラムに戻す
処理を、前記プロセッサに実行させる、付記１０または１１記載のストレージ制御プログラム。
【０２２２】
（付記１３）
前記ストレージ制御装置が制御する複数の電子部品のうち一部または全部の活性プログラム交換の実施後に、前記冗長ストレージ制御装置と前記第２ストレージ装置との通信状態に異常が検出された場合に、通信状態に異常が検出された旨の警告を出力する
処理を、前記プロセッサに実行させる、付記１０〜１２のいずれか１項に記載のストレージ制御プログラム。
【符号の説明】
【０２２３】
１−１，１    ローカルストレージ，ストレージ装置
１−２，１    外部ストレージ，ストレージ装置
２    ＣＥ
１０ａ，１０ｂ，１０    ＣＭ
１１    ＣＰＵ
１２    メモリ
１３    ＩＯＣ
１４    ＣＭ−ＥＸＰ
１５    ＣＡ
１５１    ライザーカード
１６    ＢＵＤ
２０ａ−１〜２０ａ−ｎ，２０ｂ−１〜２０ｂ−ｍ，２０    ＤＥ
２２−１，２２−２，２２    ＦＥＭ
２１    記憶装置
２３ａ−Ａ１〜２３ａ−Ａｎ，２３ｂ−Ａ１〜２３ｂ−Ａｎ，２３ａ−Ｂ１〜２３ｂ−Ｂｍ，２３ｂ−Ｂ１〜２３ｂ−Ｂｎ，２３    ＩＯＭ
５１，５２    通信線
１００    ストレージシステム
１１０    保守制御部
１１１    ＣＡ制御部
１１２    外部ストレージ管理部
１１３    ファームウェア交換制御部
１１４    パワー制御部
１２１    ボリューム情報
１２２    ボリュームステータス情報
【図１】
2019096065.tif 000003
【図２】
2019096065.tif 000004
【図３】
2019096065.tif 000005
【図４】
2019096065.tif 000006
【図５】
2019096065.tif 000007
【図６】
2019096065.tif 000008
【図７】
2019096065.tif 000009
【図８】
2019096065.tif 000010