(57)【要約】【課題】サーバとのインタフェース制御を担う装置のファームウェアに変更が生じてもサーバの動作に影響を与えずにファームウェアの交換を行う。【解決手段】制御装置３は、データの転送先をチャネルアダプタ部２０−１〜２に切り替え可能な経路を用いてチャネルアダプタ部２０−１にデータを転送するパス切替部１２と、チャネルアダプタ部２０−１に転送されたデータに対してチャネルアダプタ部２０−１を制御するファームウェアによる処理が終了したか否かを判定する仕掛入出力完了判定部３１４と、データの処理が終了したとき、パス切替部１２におけるデータの転送先をチャネルアダプタ部２０−２に切り替えさせるパス切替要求部３１５と、パス切替要求部３１５がパス切替部１２におけるデータの転送先をチャネルアダプタ部２０−２に切り替えさせた後、チャネルアダプタ部２０−１を制御するファームウェアを更新するＦＷ交換制御部３１７と、を備える。【選択図】        図３
2010152508.tif 000002
【特許請求の範囲】
【請求項１】
データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送手段と、
前記転送手段によって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定手段と、
前記判定手段によってデータの処理が終了したと判定されたとき、前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせる切替制御手段と、
前記切替制御手段が前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新手段と、
を備えることを特徴とする制御装置。
【請求項２】
前記第１の装置のファームウェアを更新する旨の要求を、前記第１の装置または前記第２の装置にデータを転送する上位装置以外から取得する取得手段をさらに備えることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記取得手段によって前記要求が取得されたとき、前記上位装置から転送されるデータの受け取りを拒否する拒否手段をさらに備えることを特徴とする請求項２に記載の制御装置。
【請求項４】
前記切替制御手段がデータの転送先を前記第２の装置に切り替えさせたとき、前記拒否手段によるデータの受け取り拒否を解除する拒否解除手段をさらに備えることを特徴とする請求項３に記載の制御装置。
【請求項５】
前記切替制御手段は、
前記更新手段によって前記第１の装置のファームウェアが更新された後、前記転送手段におけるデータの転送先を前記第１の装置に切り替えさせることを特徴とする請求項１から請求項４のいずれか１つに記載の制御装置。
【請求項６】
データを記憶する記憶装置と、
上位装置から転送されるデータであって前記記憶装置に対する入出力のデータを処理する第１の装置および第２の装置と、
データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送手段と、
前記転送手段によって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定手段と、
前記判定手段によってデータの処理が終了したと判定されたとき、前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせる切替制御手段と、
前記切替制御手段が前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項７】
データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送ステップと、
前記転送ステップによって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定ステップと、
前記判定ステップによってデータの処理が終了したと判定されたとき、前記転送ステップにおけるデータの転送先を前記第２の装置に切り替えさせる切替制御ステップと、
前記切替制御ステップが前記転送ステップにおけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新ステップと、
を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ディスクアレイ装置および制御方法に関する。
【背景技術】
【０００２】
ディスクアレイ装置には、信頼性を向上させるために、内部構成が冗長化されているものがある。このようなディスクアレイ装置とサーバとを備えるディスクアレイシステムは、今日の可用性の要求にしたがって、停止することなく運用されることが強く求められている。そして、ディスクアレイ装置の内部構成の一部を動作させるファームウェアの更新（バージョンアップ等）が行われる場合であっても、ディスクアレイシステムは、継続して運用されることが望ましい。ここで、ディスクアレイシステムを停止することなくファームウェアを更新することは、「ファームウェアの活性交換」といわれる。
【０００３】
ディスクアレイシステムにおいてファームウェアの活性交換を実現するために、サーバの例として、複数のブレードサーバから構成されるディスクアレイシステムは、１つのブレードサーバのＢＩＯＳ（Basic Input/Output System）を更新するとき、そのブレードサーバで提供されているサービスを他のブレードサーバに移行して、移行後サービスが提供されていない状態でＢＩＯＳを更新することがある。
【０００４】
また、ディスクアレイ装置の例として、ディスクアレイ装置に含まれる複数のハードディスク装置から構成されるディスクアレイシステムは、１つのハードディスク装置のファームウェアを更新するとき、ハードディスク装置に記憶されているデータを他のハードディスク装置に複写した後、複写先の他のハードディスク装置に入出力処理を代行させて、代行させている間にハードディスク装置のファームウェアを更新することがある。
【０００５】
ここで、ディスクアレイ装置では、ハードディスク装置のファームウェアではなくサーバとのインタフェース制御を担うチャネルアダプタ（ＣＡ：Channel Adaptor）のファームウェアが更新される場合がある。
【０００６】
この場合、ディスクアレイシステムは、接続パスの使用を無効にする等してサーバからディスクアレイ装置へのアクセスを全て停止させた後、チャネルアダプタのファームウェアをインストールし、インストール後リブート（再起動）する。その後、ディスクアレイシステムは、接続パスの使用を有効にする等してサーバからディスクアレイ装置へのアクセスを許可して、チャネルアダプタのファームウェアの活性交換を完了する。
【０００７】
特に、サーバとディスクアレイ装置とが冗長な２つの接続パスで接続されているディスクアレイシステムでは、２つの接続パスがすべて正常の場合に、保守者が、サーバからの一方の接続パスへのアクセスを停止し、停止されている間にこの接続パスに接続されたチャネルアダプタのファームウェアを交換する。その後、保守者は、アクセスが停止されていた接続パスへのアクセスを許可して、チャネルアダプタのファームウェアの活性交換を完了させる。
【０００８】
【特許文献１】特開２００６−３１３１２号公報
【特許文献２】特開２００２−３１８６６６号公報
【特許文献３】特開２００８−１８６２９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、サーバとのインタフェース制御を担うチャネルアダプタのファームウェアの活性交換を行う従来の技術では、ファームウェアの更新中にサーバの動作に影響を与えてしまうという問題がある。
【００１０】
例えば、サーバからディスクアレイ装置への全てのアクセスを停止させてからファームウェアが更新される従来技術では、ファームウェアの更新中に、サーバからディスクアレイ装置へのアクセスが全て停止されるため、サーバは、入出力処理を行おうとしても入出力処理を正常に終了することができず、サーバによって行われる処理が滞ってしまう。
【００１１】
また、保守者の操作によってファームウェアが更新される従来技術では、例えば保守者の操作ミスにより、ファームウェアを更新しない側のアクセスを無効にしてファームウェアを更新する側のアクセスを有効にしてファームウェアを更新すると、ディスクアレイ装置は、ファームウェアの更新中にサーバからの入出力処理をすることができず、結果的にサーバの処理が滞ってしまう。
【００１２】
本発明は、上記に鑑みてなされたものであって、サーバとのインタフェース制御を担う装置のファームウェアに変更が生じてもサーバの動作に影響を与えずにファームウェアの交換を行う制御装置、ディスクアレイ装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した問題を解決し、目的を達成するために、制御装置は、データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送手段と、前記転送手段によって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定手段と、前記判定手段によってデータの処理が終了したと判定されたとき、前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせる切替制御手段と、前記切替制御手段が前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新手段と、を備えた構成を採る。
【００１４】
かかる構成によれば、制御装置は、転送先を第１の装置から第２の装置に切り替えた後には、第２の装置が第１の装置の代わりにデータを処理するため、データを第１の装置または第２の装置に転送する上位装置の動作に影響を与えない。
【発明の効果】
【００１５】
以上により、制御装置、ディスクアレイ装置および制御方法は、上位装置とのインタフェース制御を担う下位装置のファームウェアに変更が生じても上位装置の動作に影響を与えずにファームウェアの交換を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明に係る制御装置、ディスクアレイ装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
【実施例】
【００１７】
図１は、実施例に係るディスクアレイ装置の全体構成の一例を示す図である。図１に示すように、ディスクアレイ装置２は、スイッチ部１０−１〜２とコントローラモジュール部３０とを有する制御装置３と、チャネルアダプタ部２０−１〜２と、ディスク制御部４０と、ディスク装置５０と、を備える。実施例に係るディスクアレイ装置２では、スイッチ部１０−１およびチャネルアダプタ部２０−１とスイッチ部１０−２およびチャネルアダプタ部２０−２とが冗長構成となっている。なお、本実施例では、スイッチ部１０−１〜２がサーバ１と接続されているものとしたが、各スイッチ部１０−１〜２がそれぞれ異なるサーバと接続されているものとしても良い。また、本実施例では、ディスクアレイ装置２とサーバ１との間の経路が複数あるマルチパスの構成の場合を説明する。
【００１８】
スイッチ部１０−１〜２は、サーバ１とチャネルアダプタ部２０−１〜２との間に配置され、２つのチャネルアダプタ部２０−１〜２に接続されている。例えばスイッチ部１０−１は、チャネルアダプタ部２０−１〜２に接続された２本の経路のうち、あらかじめ定められた一方の経路（主経路）を用いてサーバ１とチャネルアダプタ部２０−１との間のデータのやりとりを仲介し、他方の経路を一方の経路の交替経路としている。図１の例では、スイッチ部１０−１の主経路はチャネルアダプタ部２０−１と接続され、交替経路はチャネルアダプタ部２０−２と接続されている。
【００１９】
スイッチ部１０−１は、サーバ１からの入出力要求を、主経路を介してチャネルアダプタ部２０−１に出力する。そして、スイッチ部１０−１は、チャネルアダプタ部２０−１のファームウェア交換が行われる際、主経路から交替経路に経路を切り替える旨の要求をコントローラモジュール部３０から取得すると、スイッチの切り替えによって経路を主経路から交替経路に切り替える。また、スイッチ部１０−１は、チャネルアダプタ部２０−１のファームウェア交換が行われた後、経路を主経路に戻すために、交替経路から主経路に経路を切り替える旨の要求をコントローラモジュール部３０から取得すると、スイッチの切り替えによって経路を主経路から交替経路に切り替える。ここで、入出力要求とは、サーバ１からディスク装置５０に対する書き込み依頼または読み込み依頼の要求である。なお、スイッチ部１０−１の動作の詳細については、後述する。また、スイッチ部１０−２は、スイッチ部１０−１と同様であるため、説明を省略する。
【００２０】
チャネルアダプタ部２０−１〜２は、ディスクアレイ装置２がサーバ１と接続するための内部装置であり、搭載されたポートによってスイッチ部１０−１〜２と接続している。チャネルアダプタ部２０−１〜２は、サーバ１から出力された入出力要求をスイッチ部１０−１〜２からポートを介して取得して、取得された入出力要求をコントローラモジュール部３０に出力する。チャネルアダプタ部２０−１〜２は、チャネルアダプタ部２０−１〜２内部に保持されたファームウェアによって制御されている。このファームウェアは、例えばバージョンアップの時またはファームウェアに異常がみつかった時等にコントローラモジュール部３０によって更新される。なお、チャネルアダプタ部２０−１およびチャネルアダプタ部２０−２は、ディスク装置５０に割り当てられたＬＵＮ（Logical Unit Number）のマッピングを同一にしている。このため、チャネルアダプタ部２０−１の動作をチャネルアダプタ部２０−２が行なっても良いことになる。
【００２１】
コントローラモジュール部３０は、スイッチ部１０−１〜２の経路の切り替えを制御して、チャネルアダプタ部２０−１〜２のファームウェアを交換する。例えば、コントローラモジュール部３０は、保守用端末４からチャネルアダプタ部２０−１のファームウェアの交換要求を取得すると、当該交換要求が取得される以前にチャネルアダプタ部２０−１によって受け取られている全ての入出力要求の処理が完了したか否かを判定する。チャネルアダプタ部２０−１によって既に受け取られている全ての入出力要求の処理が完了しないままチャネルアダプタ部２０−１と接続される主経路と異なる交替経路に経路を切り替えると、当該処理が滞ってしまうからである。そして、コントローラモジュール部３０は、チャネルアダプタ部２０−１によって受け取られている全ての入出力要求の処理が完了したとき、チャネルアダプタ部２０−１のファームウェアを新しいファームウェアに交換する。そして、コントローラモジュール部３０は、ファームウェアの交換を終了した後、交替経路から主経路に経路を切り替えるために、主経路から交替経路に経路を切り替えたときと同様の処理をスイッチ部１０−１との間で行う。コントローラモジュール部３０が行うこれらの処理を、以降「ファームウェア交換処理」という。なお、コントローラモジュール部３０の動作については、後に詳述する。また、コントローラモジュール部３０は、チャネルアダプタ部２０−２のファームウェアの交換要求を保守用端末４から受け取った後チャネルアダプタ部２０−２のファームウェアの交換を行っても良いし、チャネルアダプタ部２０−１のファームウェアの交換後引き続き自動的にチャネルアダプタ部２０−２のファームウェアの交換を行っても良い。また、チャネルアダプタ部２０−２のファームウェアを交換する場合の動作もチャネルアダプタ部２０−１のファームウェアを交換する場合の動作と同様であるため、説明を省略する。
【００２２】
また、コントローラモジュール部３０は、チャネルアダプタ部２０−１〜２から入出力要求を取得すると、取得された入出力要求を解析し、解析した結果、ディスク装置５０への書き込み依頼の場合には書き込まれるデータを、書き込まれる位置を示すアドレスとともにディスク制御部４０に出力し、ディスク装置５０からの読み出し依頼の場合には読み出されるデータのアドレスをディスク制御部４０に出力する。
【００２３】
ディスク制御部４０は、コントローラモジュール部３０とディスク装置５０とのインタフェースとしての機能を有する。例えば、ディスク制御部４０は、書き込まれるデータと書き込まれるアドレスをともにコントローラモジュール部３０から取得すると、当該データをディスク装置５０上の当該アドレスに書き込む。また、ディスク制御部４０は、読み出されるデータのアドレスをコントローラモジュール部３０から取得すると、当該アドレスに保持されたデータをディスク装置５０から読み出し、コントローラモジュール部３０に出力する。
【００２４】
ディスク装置５０は、複数のハードディスクから構成され、各ハードディスクにデータを記憶している。
【００２５】
次に、実施例に係る「ファームウェア交換処理」の概要について、図２を参照して説明する。図２に示すように、「ファームウェア交換処理」は、（１）〜（４）の順序で行われ、チャネルアダプタ部２０−１のファームウェアを交換した後、チャネルアダプタ部２０−２のファームウェアを交換する。
【００２６】
（１）チャネルアダプタ部２０−１によって受け取られていた入出力要求の処理が完了した後、主経路から交替経路に経路を切り替える旨の要求をコントローラモジュール部３０から取得したスイッチ部１０−１は、チャネルアダプタ部２０−１と接続されている主経路からチャネルアダプタ部２０−２と接続されている交替経路に経路を切り替える。そして、チャネルアダプタ部２０−１に入出力要求が出力されなくなったため、コントローラモジュール部３０は、チャネルアダプタ部２０−１のファームウェアを交換する。
【００２７】
（２）チャネルアダプタ部２０−１のファームウェアが交換され、チャネルアダプタ部２０−２によって受け付けられていた入出力要求の処理が完了した後、コントローラモジュール部３０から出力された交替経路から主経路に経路を切り替える旨の要求を取得したスイッチ部１０−１は、経路を交替経路から主経路に切り替える。これにより、コントローラモジュール部３０は、チャネルアダプタ部２０−１のファームウェアの交換を終了することができる。
【００２８】
（３）次に、コントローラモジュール部３０は、チャネルアダプタ部２０−１のファームウェア交換処理と同様に、チャネルアダプタ部２０−２のファームウェアを交換する。すなわち、チャネルアダプタ部２０−２と主経路で接続されるスイッチ部１０−２は、主経路から交替経路に経路を切り替える旨の要求をコントローラモジュール部３０から取得すると、経路を主経路から交替経路に切り替える。そして、コントローラモジュール部３０は、チャネルアダプタ部２０−２のファームウェアを交換する。
【００２９】
（４）コントローラモジュール部３０から出力された交替経路から主経路に経路を切り替える旨の要求を取得したスイッチ部１０−２は、経路を交替経路から主経路に切り替える。これにより、コントローラモジュール部３０は、チャネルアダプタ部２０−２のファームウェアの交換を終了することができる。
【００３０】
次に、図３は、実施例に係る制御装置の構成を示す機能ブロック図である。図３に示すように、制御装置３は、スイッチ部１０−１とコントローラモジュール部３０とを備える。まず、スイッチ部１０−１について説明し、次に、コントローラモジュール部３０について説明する。なお、図３では、チャネルアダプタ部２０−１のファームウェアを交換する場合について説明する。また、スイッチ部１０−２は、スイッチ部１０−１と同様の構成であるため、説明を省略する。
【００３１】
スイッチ部１０−１は、インタフェース部１１と、パス切替部１２と、制御部１３と、記憶部１４と、インタフェース部１５−１〜２と、を備える。
【００３２】
インタフェース部１１は、サスペンド実行部１３１からサスペンド要求を取得し、サスペンド要求の取得後にサーバ１から入出力要求を取得したとき、例えば入出力要求が過多であることを示すビジー応答をサーバ１に出力する。これは、インタフェース部１１が新たにサーバ１から入出力要求を受け付けると、チャネルアダプタ部２０−１に当該入出力要求が出力されてしまい、このままチャネルアダプタ部２０−１のファームウェアが交換されると当該入出力要求の処理が滞ってしまうためである。また、インタフェース部１１は、サスペンド解除部１３２からサスペンド解除要求を取得すると、サスペンドを解除し、サスペンド解除後にサーバ１から入出力要求を取得したとき、取得された入出力要求をパス切替部１２に出力する。なお、サスペンドとは、処理を中断することをいう。
【００３３】
パス切替部１２は、パス切替制御部１３３の指示に応じて交替経路（交替パス）と主経路（主パス）のどちらか一方に経路を切り替えるスイッチである。具体的に、パス切替部１２は、パス切替制御部１３３によって主経路から交替経路（または交替経路から主経路）に経路を切り替える旨の指示を取得すると、経路を主経路から交替経路（交替経路から主経路）に切り替える。また、パス切替部１２は、インタフェース部１１から入出力要求を取得すると、パス切替部１２によって経路が切り替えられた結果開通している経路に対応するインタフェース部１５−１（またはインタフェース部１５−２）に対して入出力要求を出力する。
【００３４】
制御部１３は、サスペンド実行部１３１と、サスペンド解除部１３２と、パス切替制御部１３３と、を備える。サスペンド実行部１３１は、サスペンド実行要求部３１３からサスペンド要求を取得すると、取得されたサスペンド要求をインタフェース部１１に出力する。
【００３５】
サスペンド解除部１３２は、サスペンド解除要求部３１６からサスペンド解除要求を取得すると、取得されたサスペンド解除要求をインタフェース部１１に出力する。
【００３６】
パス切替制御部１３３は、主経路から交替経路（または交替経路から主経路）に経路を切り替える旨の要求をパス切替要求部３１５から取得すると、ログインテーブル１４１を用いて、交替経路（または主経路）と接続されるチャネルアダプタ部２０−１（またはチャネルアダプタ部２０−２）に対してログアウトする。そして、パス切替制御部１３３は、交替経路（または主経路）と接続されるチャネルアダプタ部２０−２（またはチャネルアダプタ部２０−１）に対してログインする。さらに、パス切替制御部１３３は、チャネルアダプタ部２０−２（またはチャネルアダプタ部２０−１）に正常にログインできたとき、主経路から交替経路（または交替経路から主経路）に経路を切り替える旨の指示をパス切替部１２に出力する。このように、パス切替制御部１３３が切り替え元の経路に接続されるチャネルアダプタ部２０−１に対してログアウトして、切り替え先の経路に接続されるチャネルアダプタ部２０−２に対してログインするのは、例えば、ログインするチャネルアダプタ部２０−２に対する認証を行ってセキュリティを保障するためである。
【００３７】
記憶部１４は、ログインテーブル１４１を備える。ログインテーブル１４１には、例えば、サーバ１とチャネルアダプタ部２０−１〜２との間でデータが転送される際のパラメータが保持されている。図３の例では、１つのレコードには、主経路に接続されたチャネルアダプタ部２０−１の識別子と転送されるデータの最大フレーム長と監視時間とが保持される。また、他のレコードには、交替経路に接続されたチャネルアダプタ部２０−２の識別子と転送されるデータの最大フレーム長と監視時間とが保持される。
【００３８】
インタフェース部１５−１は、主経路が開通しているとき、パス切替部１２から入出力要求を取得すると、取得された入出力要求をチャネルアダプタ部２０−１に出力する。
【００３９】
インタフェース部１５−２は、交替経路が開通しているとき、パス切替部１２から入出力要求を取得すると、取得された入出力要求をチャネルアダプタ部２０−２に出力する。
【００４０】
コントローラモジュール部３０は、制御部３１と、記憶部３２と、を備える。制御部３１は、ファームウェア（以降、「ＦＷ」と略する）交換要求取得部３１１と、スイッチ判定部３１２と、サスペンド実行要求部３１３と、仕掛入出力完了判定部３１４と、パス切替要求部３１５と、サスペンド解除要求部３１６と、ＦＷ交換制御部３１７と、を備える。
【００４１】
ＦＷ交換要求取得部３１１は、保守用端末４からチャネルアダプタ部２０−１のファームウェアを交換する旨の要求を取得すると、取得されたチャネルアダプタ部２０−１の識別子をスイッチ判定部３１２に出力する。
【００４２】
スイッチ判定部３１２は、ＦＷ交換要求取得部３１１からチャネルアダプタ部２０−１の識別子を取得すると、チャネルアダプタ部２０−１、２０−２がそれぞれ主経路として接続されているスイッチ部１０−１〜２の識別子を保持するスイッチ構成テーブル３２１からチャネルアダプタ部２０−１の識別子に対応するスイッチの識別子を取得する。そして、スイッチ判定部３１２は、取得されたスイッチの識別子をサスペンド実行要求部３１３および仕掛入出力完了判定部３１４に出力する。
【００４３】
サスペンド実行要求部３１３は、スイッチ判定部３１２からスイッチの識別子を取得すると、取得されたスイッチの識別子に対応するスイッチ部１０−１のサスペンド実行部１３１に対してサスペンド要求を出力する。また、サスペンド実行要求部３１３は、ＦＷ交換制御部３１７からファームウェアの交換が終了した旨を取得すると、スイッチ部１０−１のサスペンド実行部１３１に対してサスペンド要求を出力する。そして、サスペンド実行要求部３１３は、サスペンド要求を出力した後、サスペンド実行中である旨を仕掛入出力完了判定部３１４に出力する。
【００４４】
仕掛入出力完了判定部３１４は、スイッチ判定部３１２から取得されたスイッチの識別子を取得する。また、仕掛入出力完了判定部３１４は、サスペンド実行要求部３１３からサスペンド実行中である旨を取得すると、サスペンドされる以前にチャネルアダプタ部２０−１によって受け付けられた入出力要求の処理が完了したか否かを判定する。例えば、仕掛入出力完了判定部３１４は、スイッチ部１０−１と接続された各チャネルアダプタ部２０−１〜２のポートに既に入力されている入出力要求の処理状況を後述する入出力制御テーブル３２２から読み出す。そして、仕掛入出力完了判定部３１４は、入出力要求の処理が全て終了しているか否かを判定する。ここで、入出力制御テーブル３２２とは、チャネルアダプタ部２０−１〜２にそれぞれ搭載されたポートであってスイッチ部１０−１と接続されたポートにそれぞれ入力された入出力要求の処理状況を保持している。なお、スイッチ部１０−１の２つの経路（主経路、交替経路）とそれぞれ接続されるチャネルアダプタ部２０−１〜２に搭載されるポートの番号は、同一の番号であるものとする。
【００４５】
そして、仕掛入出力完了判定部３１４は、入出力要求の処理が全て終了していないとき、入出力要求の処理が全て終了するまで、同様の判定処理を繰り返す。一方、仕掛入出力完了判定部３１４は、入出力要求の処理が全て終了したとき、入出力要求が全て完了した旨をパス切替要求部３１５に出力する。
【００４６】
パス切替要求部３１５は、仕掛入出力完了判定部３１４から入出力要求が全て完了した旨を取得すると、主経路から交替経路（または交替経路から主経路）に経路を切り替える旨の要求をパス切替制御部１３３に出力する。その後、パス切替要求部３１５は、主経路から交替経路（または交替経路から主経路）に経路が切り替えられた旨をサスペンド解除要求部３１６に出力する。
【００４７】
サスペンド解除要求部３１６は、主経路から交替経路（または交替経路から主経路）に経路が切り替えられた旨を取得すると、サスペンド解除要求をサスペンド解除部１３２に出力する。その後、サスペンド解除要求部３１６は、主経路から交替経路に経路が切り替えられた場合には、サスペンドが解除された旨をＦＷ交換制御部３１７に出力する。なお、サスペンド解除要求部３１６は、交替経路から主経路に経路が切り替えられた場合には、チャネルアダプタ部２０−１のファームウェアの交換を既に終了しているため、チャネルアダプタ部２０−１の「ファームウェア交換処理」を終了する。
【００４８】
ＦＷ交換制御部３１７は、サスペンドが解除された旨をサスペンド解除要求部３１６から取得すると、主経路に接続されたチャネルアダプタ部２０−１のファームウェアを交換する。例えば、ＦＷ交換制御部３１７は、新ファームウェア記憶部３２３に含まれたチャネルアダプタ部２０−１用の新ファームウェアを記憶部３２から読み出し、チャネルアダプタ部２０−１に対してアップロードする。そして、ＦＷ交換制御部３１７は、アップロードされた新ファームウェアをチャネルアダプタ部２０−１にインストールする。さらに、ＦＷ交換制御部３１７は、インストール後にチャネルアダプタ部２０−１を再起動（リブート）する。そして、ＦＷ交換制御部３１７は、ファームウェアの交換が終了した旨をサスペンド実行要求部３１３に出力する。
【００４９】
記憶部３２は、スイッチ構成テーブル３２１と、入出力制御テーブル３２２と、新ファームウェア記憶部３２３と、を備える。スイッチ構成テーブル３２１は、スイッチ部１０−１〜２とチャネルアダプタ部２０−１〜２との接続構成を保持する。例えば、スイッチ構成テーブル３２１は、チャネルアダプタ部２０−１〜２の識別子と、チャネルアダプタ部２０−１〜２が主経路として接続されているスイッチ部１０−１〜２の識別子と、を対にして保持する。
【００５０】
入出力制御テーブル３２２は、チャネルアダプタ部２０−１〜２に搭載されたポートによって入力された入出力要求の処理状況をポートごとに保持する。例えば、入出力制御テーブル３２２は、チャネルアダプタ部２０−１〜２の識別子と、ポート番号と、入出力要求に一意に表される入出力要求番号と、入出力要求番号に対応する処理状態と、を入出力要求番号ごとに保持する。処理状態には、例えば、入出力要求の処理が実行されていることを示す「実行中」、入出力要求の処理が待機されていることを示す「待機中」および入出力要求の処理が終了されたことを示す「終了」がある。なお、入出力制御テーブル３２２には、図示しない処理状況書込部がチャネルアダプタ部２０−１〜２のポートごとに入力された入出力要求の処理状況を書き込む。
【００５１】
新ファームウェア記憶部３２３は、チャネルアダプタ部２０−１用およびチャネルアダプタ部２０−２用の新しいファームウェアを保持する。
【００５２】
次に、実施例に係るファームウェア交換処理を、図４を参照して説明する。図４は、実施例に係るファームウェア交換処理の動作を示すフローチャートを示す図である。なお、図４の例では、チャネルアダプタ部２０−１のファームウェアを交換する場合のファームウェア交換処理について説明し、スイッチ部１０−１がチャネルアダプタ部２０−１と主経路で接続され、チャネルアダプタ部２０−２と交替経路で接続されているものとする。
【００５３】
まず、ＦＷ交換要求取得部３１１は、保守用端末４からチャネルアダプタ部２０−１のファームウェアを交換する旨の指示を取得する（Ｓ１１０）。
【００５４】
すると、サスペンド実行要求部３１３は、主経路から交替経路に切り替わるまでサーバ１から入出力要求を受け付けないようにするために、チャネルアダプタ部２０−１と主経路で接続されているスイッチ部１０−１に対してサスペンド要求を出力して、サスペンド実行中である旨を仕掛入出力完了判定部３１４に出力する。すると、サスペンド要求を取得したスイッチ部１０−１のサスペンド実行部１３１は、サーバ１から取得された入出力要求に対してサスペンドの実行を行う（Ｓ１２０）。例えば、サスペンド実行部１３１は、サーバ１から取得された入出力要求に対してビジー応答を、インタフェース部１１を介してサーバ１に出力する。
【００５５】
次に、サスペンド実行要求部３１３からサスペンド実行中である旨を取得した仕掛入出力完了判定部３１４は、サスペンドされる以前にチャネルアダプタ部２０−１によって受け付けられた入出力要求の処理が全て完了したか否かを判定する（Ｓ１３０）。
【００５６】
入出力要求の処理が全て完了していないと判定されたとき（Ｓ１３０Ｎｏ）、引き続き、入出力要求の処理が全て完了するまで、同様の判定処理を繰り返す。
【００５７】
一方、入出力要求の処理が全て完了したと判定されたとき（Ｓ１３０Ｙｅｓ）、パス切替要求部３１５は、スイッチ部１０−１のパス切替制御部１３３によって主経路を交替経路に切り替えさせる。そして、パス切替制御部１３３が、主経路と接続されるチャネルアダプタ部２０−１に対してログアウトして、交替経路と接続されるチャネルアダプタ部２０−２に対してログインして、パス切替部１２の主経路を交替経路に切り替える（Ｓ１４０）。
【００５８】
そして、サスペンド解除要求部３１６は、主経路から交替経路に切り替わったため、スイッチ部１０−１に対してサスペンド解除要求を出力して、サスペンドが解除された旨をＦＷ交換制御部３１７に出力する。そして、サスペンド解除要求を取得したスイッチ部１０−１のサスペンド解除部１３２は、サスペンドの解除を行う（Ｓ１５０）。例えば、サスペンド解除部１３２は、サーバ１から取得された入出力要求に対するビジー応答を解除する。これにより、チャネルアダプタ部２０−１のファームウェアがその後に交換されている間、チャネルアダプタ部２０−１の代わりにチャネルアダプタ部２０−２がサーバ１から受け付けられた入出力要求を処理することになる。
【００５９】
引き続き、サスペンドが解除された旨を取得したＦＷ交換制御部３１７は、チャネルアダプタ部２０−１には入出力要求の処理がないため、チャネルアダプタ部２０−１のファームウェアを交換する（Ｓ１６０）。そして、ＦＷ交換制御部３１７は、ファームウェアを交換した後、チャネルアダプタ部２０−１を再起動（リブート）して（Ｓ１７０）、再起動が終了するまで待ち（Ｓ１８０）、再起動が終了した後（Ｓ１８０Ｙｅｓ）、サスペンド実行要求部にファームウェアの交換が終了した旨を出力する。
【００６０】
サスペンド実行要求部３１３は、交替経路から主経路に経路が切り替わるまでサーバ１から入出力要求を受け付けないようにするために、スイッチ部１０−１に対してサスペンド要求を出力して、サスペンド実行中である旨を仕掛入出力完了判定部３１４に出力する。すると、サスペンド要求を取得したサスペンド実行部１３１は、サーバ１から取得された入出力要求に対してサスペンドの実行を行う（Ｓ１９０）。例えば、サスペンド実行部１３１は、サーバ１から取得された入出力要求に対してビジー応答を、インタフェース部１１を介してサーバ１に出力する。
【００６１】
次に、サスペンド実行要求部３１３からサスペンド実行中である旨を取得した仕掛入出力完了判定部３１４は、サスペンドされる以前にチャネルアダプタ部２０−２によって受け付けられた入出力要求の処理が全て完了したか否かを判定する（Ｓ２００）。
【００６２】
入出力要求の処理が全て完了していないと判定されたとき（Ｓ２００Ｎｏ）、引き続き、入出力要求の処理が全て完了するまで、同様の判定処理を繰り返す。
【００６３】
一方、入出力要求の処理が全て完了したと判定されたとき（Ｓ２００Ｙｅｓ）、パス切替要求部３１５は、パス切替制御部１３３によって交替経路を主経路に切り替えさせる。そして、パス切替制御部１３３が、交替経路と接続されるチャネルアダプタ部２０−２に対してログアウトして、主経路と接続されるチャネルアダプタ部２０−１に対してログインして、パス切替部１２の交替経路を主経路に切り替える（Ｓ２１０）。
【００６４】
そして、サスペンド解除要求部３１６は、交替経路から主経路に切り替わったため、スイッチ部１０−１に対してサスペンド解除要求を出力する。そして、サスペンド解除要求を取得したスイッチ部１０−１のサスペンド解除部１３２は、サスペンドの解除を行う（Ｓ２２０）。例えば、サスペンド解除部１３２は、サーバ１から取得された入出力要求に対するビジー応答を解除する。これにより、スイッチ部１０−１と主経路で接続されるチャネルアダプタ部２０−１がサーバ１から受け付けられる入出力要求を処理することになる。
【００６５】
ところで、上記の実施例では、ディスクアレイ装置２とサーバ１との間の経路が複数あるマルチパスの構成の場合を説明した。本発明はこれに限定されるものではなく、ディスクアレイ装置５とサーバ１との間の経路が１本であるシングルパスの構成であっても良い。
【００６６】
そこで、実施例の変形例として、ディスクアレイ装置５とサーバ１との間の経路が１本であるシングルパスの構成の場合について説明する。まず、図５を用いて、実施例に係るディスクアレイ装置の全体構成について説明する。図５に示すように、ディスクアレイ装置５は、実施例に係るディスクアレイ装置２（図１）からスイッチ部１０−２が削除されている。なお、図５において、図１と同じ部分には同じ符号を付し、詳しい説明を省略する。
【００６７】
また、実施例の変形例としてのディスクアレイ装置５の動作については、ディスクアレイ装置２と同様であるため、説明を省略する。
【００６８】
以上のように本実施例によれば、制御装置３に含まれるスイッチ部１０−１は、チャネルアダプタ部２０−１およびチャネルアダプタ部２０−２にそれぞれ接続された経路（主経路、交替経路）のいずれか一方に切り替え可能であって、切り替えられた経路がチャネルアダプタ部２０−１に接続された主経路のとき、チャネルアダプタ部２０−１に接続された主経路を用いてチャネルアダプタ部２０−１にデータを転送する。また、制御装置３に含まれるコントローラモジュール部３０は、チャネルアダプタ部２０−１において転送されたデータの処理が終了したか否かを判定する。そして、コントローラモジュール部３０は、データの処理が終了したと判定されたとき、スイッチ部１０−１によってチャネルアダプタ部２０−１に接続された主経路をチャネルアダプタ部２０−２に接続された交替経路に切り替えさせる。そして、コントローラモジュール部３０は、スイッチ部１０−１によってチャネルアダプタ部２０−１に接続された主経路をチャネルアダプタ部２０−２に接続された交替経路に切り替えさせたとき、チャネルアダプタ部２０−１を制御するファームウェアを更新する。
【００６９】
このようにして、制御装置３は、転送先をチャネルアダプタ部２０−１からチャネルアダプタ部２０−２に切り替えた後には、チャネルアダプタ部２０−２がチャネルアダプタ部２０−１の代わりにデータを処理するため、データをチャネルアダプタ部２０−１またはチャネルアダプタ部２０−２に転送するサーバ１の動作に影響を与えずにチャネルアダプタ部２０−１のファームウェアを交換することができる。また、制御装置３が、チャネルアダプタ部２０−１〜２のファームウェアを自動的に交換するため、保守者の操作によって発生する場合がある作業ミスを防止することができる。
【００７０】
なお、制御装置３、ディスクアレイ装置２およびディスクアレイ装置５にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central Processing Unit）（またはＭＰＵ（Micro Processing Unit）、ＭＣＵ（Micro Controller Unit）などのマイクロ・コンピュータ）および当該ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
【００７１】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【００７２】
（付記１）データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送手段と、
前記転送手段によって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定手段と、
前記判定手段によってデータの処理が終了したと判定されたとき、前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせる切替制御手段と、
前記切替制御手段が前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新手段と、
を備えることを特徴とする制御装置。
【００７３】
（付記２）前記第１の装置のファームウェアを更新する旨の要求を、前記第１の装置または前記第２の装置にデータを転送する上位装置以外から取得する取得手段をさらに備えることを特徴とする付記１に記載の制御装置。
【００７４】
（付記３）前記取得手段によって前記要求が取得されたとき、前記上位装置から転送されるデータの受け取りを拒否する拒否手段をさらに備えることを特徴とする付記２に記載の制御装置。
【００７５】
（付記４）前記拒否手段は、
データが過多であることを示すビジー応答を前記上位装置に対して出力することによって、前記上位装置から転送されるデータの受け取りを拒否することを特徴とする付記３に記載の制御装置。
【００７６】
（付記５）前記切替制御手段がデータの転送先を前記第２の装置に切り替えさせたとき、前記拒否手段によるデータの受け取り拒否を解除する拒否解除手段をさらに備えることを特徴とする付記３または付記４に記載の制御装置。
【００７７】
（付記６）前記切替制御手段は、
前記更新手段によって前記第１の装置のファームウェアが更新された後、前記転送手段におけるデータの転送先を前記第１の装置に切り替えさせることを特徴とする付記１から付記５のいずれか１つに記載の制御装置。
【００７８】
（付記７）データを記憶する記憶装置と、
上位装置から転送されるデータであって前記記憶装置に対する入出力のデータを処理する第１の装置および第２の装置と、
データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送手段と、
前記転送手段によって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定手段と、
前記判定手段によってデータの処理が終了したと判定されたとき、前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせる切替制御手段と、
前記切替制御手段が前記転送手段におけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新手段と、
を備えることを特徴とするディスクアレイ装置。
【００７９】
（付記８）データの転送先を第１の装置または第２の装置に切り替え可能な経路を用いて前記第１の装置にデータを転送する転送ステップと、
前記転送ステップによって前記第１の装置に転送されたデータに対して前記第１の装置を制御するファームウェアによる処理が終了したか否かを判定する判定ステップと、
前記判定ステップによってデータの処理が終了したと判定されたとき、前記転送ステップにおけるデータの転送先を前記第２の装置に切り替えさせる切替制御ステップと、
前記切替制御ステップが前記転送ステップにおけるデータの転送先を前記第２の装置に切り替えさせた後、前記第１の装置を制御するファームウェアを更新する更新ステップと、
を含むことを特徴とする制御方法。
【図面の簡単な説明】
【００８０】
【図１】実施例に係るディスクアレイ装置の全体構成の一例を示す図である。
【図２】実施例に係るファームウェア変換処理の概要を示す図である。
【図３】実施例に係る制御装置の構成を示す機能ブロック図である。
【図４】実施例に係るファームウェア変換処理の動作を示すフローチャートである。
【図５】実施例に係るディスクアレイ装置の全体構成の変形例を示す図である。
【符号の説明】
【００８１】
１  サーバ
３  制御装置
１０−１  スイッチ部
１１  インタフェース部
１２  パス切替部
１３  制御部
１４  記憶部
１５−１  インタフェース部
１５−２  インタフェース部
１３１  サスペンド実行部
１３２  サスペンド解除部
１３３  パス切替制御部
３０  コントローラモジュール部
３１  制御部
３２  記憶部
３１１  ＦＷ交換要求取得部
３１２  スイッチ判定部
３１３  サスペンド実行要求部
３１４  仕掛入出力完了判定部
３１５  パス切替要求部
３１６  サスペンド解除要求部
３１７  ＦＷ交換制御部
３２１  スイッチ構成テーブル
３２２  入出力制御テーブル
３２３  新ファームウェア記憶部
【図１】
2010152508.tif 000003
【図２】
2010152508.tif 000004
【図３】
2010152508.tif 000005
【図４】
2010152508.tif 000006
【図５】
2010152508.tif 000007