(57)【特許請求の範囲】
【請求項１】
複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置において、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送する転送制御部と、
前記１または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、当該転送が正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力し、当該転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力する更新制御部と、
を有することを特徴とする制御装置。
【請求項２】
前記更新制御部は、前記複数の電子機器のうち、複数の第１の種別の電子機器のすべてに対する前記転送制御部からの更新プログラムの転送が正常に完了しなかった場合、すべての前記第１の種別の電子機器をシャットダウンさせるとともに、前記複数の電子機器のうち、あらかじめ決められた複数の第２の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする請求項１記載の制御装置。
【請求項３】
前記更新制御部は、複数の前記第１の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、複数の前記第２の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第１の種別の電子機器および前記第２の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第１の種別の電子機器および前記第２の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする請求項２記載の制御装置。
【請求項４】
前記更新処理は、更新プログラムの転送先の電子機器が、再起動後に実行するプログラムを示すプログラム指定情報を前記転送制御部から転送された更新プログラムを示すように書き替えるプログラム有効化処理と、前記転送先の電子機器が再起動する再起動処理とを含み、
前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器と、前記プログラム有効化処理が正常に完了しなかった電子機器とを、前記再起動処理を実行させる機器から除外する、
ことを特徴とする請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、前記プログラム有効化処理が正常に完了した電子機器に、前記再起動処理を実行させることを特徴とする請求項４記載の制御装置。
【請求項６】
複数の種別の電子機器のそれぞれのための各プログラムを可搬型記憶媒体から読み込み、所定のファームウェア用記憶領域に格納するファームウェア格納処理部をさらに有し、
前記転送制御部は、前記ファームウェア用記憶領域からファームウェアを読み出し、当該ファームウェアを実行させる電子機器に転送する、
ことを特徴とする請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
前記ファームウェア用記憶領域は、前記複数の電子機器のうちの１つが備える記憶装置に設けられることを特徴とする請求項６記載の制御装置。
【請求項８】
複数の電子機器と、前記複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置とを備え、
前記制御装置は、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送する転送制御部と、
前記１または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、当該転送が正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力し、当該転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力する更新制御部と、
を有することを特徴とする制御システム。
【請求項９】
複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置における制御方法であって、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、
取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送し、
前記１または複数の電子機器から更新プログラムの転送が正常に完了したか否かに関する情報を取得し、
当該転送が正常に完了した電子機器に対して、転送した更新プログラムへの更新処理を実行させる指示を出力し、
当該転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力する、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システムおよび制御方法に関する。
【背景技術】
【０００２】
電子機器に組み込まれたファームウェアは、制御機能の追加やバグの修正などを目的として更新されることがある。多数の電子機器を備えるシステムでは、各電子機器のファームウェアを更新するための作業に長時間が必要になり、作業者の負担が極めて大きい。
【０００３】
このような問題に対して、ファームウェアを更新する電子機器をサーバ装置が管理し、サーバ装置が各電子機器に対して新しい版数のファームウェアを自動的に転送するようにしたシステムがある。また、複数のブリッジのそれぞれに複数の記憶装置が接続されたストレージシステムとして、１つのブリッジがその配下の記憶装置に新しい版数のファームウェアを転送するとともに、そのファームウェアを他のブリッジにも転送するようにしたシステムもある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００５−５０２９７１号公報
【特許文献２】特開２００４−２５２８０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電子機器におけるファームウェアの更新処理は、例えば、電子機器にファームウェアを転送する処理と、電子機器が実行するファームウェアを転送されたファームウェアに変更する処理とを含む。後者の処理は、一般的に、電子機器を再起動させる処理を含む。
【０００６】
サーバ装置から多数の電子機器に対してファームウェアを転送するようにしたシステムでは、一部の電子機器に対するファームウェアの転送処理が正常に完了しないことがある。このような状態で、すべての電子機器において、実行させるファームウェアを転送したファームウェアに一律に変更してしまうと、ファームウェアの転送処理が正常に完了していなかった電子機器の動作が不安定になる、あるいは動作不可能になるといった動作異常が発生する可能性がある。その結果、システムを安定的に運用できなくなる。
【０００７】
１つの側面では、本発明は、プログラム更新による電子機器での異常発生の可能性を低減した制御装置、制御システムおよび制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置が提供される。この制御装置は、転送制御部と更新制御部とを有する。転送制御部は、複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、複数の電子機器のうち１または複数の電子機器に転送する。更新制御部は、上記の１または複数の電子機器から転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、正常に完了した電子機器に対して、転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力する。
【０００９】
また、１つの案では、上記の複数の電子機器と制御装置とを備える制御システム、および上記の制御装置と同様の処理が実行される制御方法が提供される。
【発明の効果】
【００１０】
１態様によれば、制御装置、制御システムおよび制御方法において、プログラム更新による電子機器での異常発生の可能性を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係る制御システムの構成例とその動作例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【図３】ＶＬＰのハードウェア構成例を示す図である。
【図４】ディスクアレイ装置、テープライブラリ装置、ＦＣスイッチおよびＬＡＮスイッチのハードウェア構成例を示す図である。
【図５】ＶＬＰが備える処理機能の構成例およびＶＬＰが参照する情報の例を示す図である。
【図６】ファームウェア更新の対象機器が備える処理機能の例を示すブロック図である。
【図７】ダウンロード処理部の処理を説明するための図である。
【図８】ダウンロード処理部によるダウンロード処理手順の例を示すフローチャートである。
【図９】読み込み要否情報に登録される情報の例を示す図である。
【図１０】転送処理部によるファームウェア転送処理手順の例を示すフローチャートである。
【図１１】ファームウェア転送情報に登録される情報の例を示す図である。
【図１２】装置種別ごとのファームウェア転送処理手順の例を示すフローチャートである。
【図１３】有効化制御処理の手順の例を示すフローチャートである。
【図１４】ファームウェア有効化情報に登録される情報の例を示す図である。
【図１５】制御サーバに対する有効化指示処理手順の例を示すフローチャートである。
【図１６】制御サーバ以外の装置に対する有効化指示処理手順の例を示すフローチャートである。
【図１７】再起動制御処理の手順の例を示すフローチャートである。
【図１８】制御サーバに対する再起動指示処理手順の例を示すフローチャートである。
【図１９】制御サーバ以外の装置に対する再起動指示処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る制御システムの構成例とその動作例を示す図である。
【００１３】
制御システム１は、制御装置１０と、複数の電子機器２１〜２３とを備える。電子機器２１〜２３は、それぞれの装置が備えるＣＰＵ（Central Processing Unit）がプログラムを実行することによって所定の動作を行うコンピュータ装置である。なお、制御システム１が備える電子機器の数は任意であり、例えば、１０個以上といった多数の電子機器を制御システム１が備えることができる。また、電子機器２１〜２３は互いに接続して協働するようにしてもよい。
【００１４】
制御装置１０は、複数の電子機器２１〜２３に接続され、電子機器２１〜２３に実行させるプログラムを更新する処理を実行可能である。制御装置１０は、プログラム更新のための処理機能として、転送制御部１１および更新制御部１２を備える。
【００１５】
転送制御部１１は、電子機器２１〜２３のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、電子機器２１〜２３のうちの１または複数の電子機器に転送する。例えば、転送制御部１１は、電子機器から取得したプログラムの版数が、更新プログラムの版数より古い場合に、その電子機器に対して更新プログラムを転送する。
【００１６】
更新制御部１２は、更新プログラムの転送先の電子機器から、転送制御部１１による更新プログラムの転送が正常に完了したか否かを示す情報を取得する。更新制御部１２は、取得した情報に基づき、更新プログラムの転送が正常に完了した電子機器に対して、転送制御部１１から転送した更新プログラムへの更新処理を実行させる指示を出力する。
【００１７】
図１の例では、転送制御部１１が電子機器２１〜２３にプログラムを転送した際に、電子機器２３に対するプログラムの転送処理に異常が発生し、転送処理が正常に完了しなかったものとする。この場合、更新制御部１２は、転送処理が正常に完了した電子機器２１，２２に対しては、プログラム更新処理の実行を指示する。これにより、電子機器２１，２２は、転送制御部１１から新たに転送された更新プログラムを実行し、電子機器２１，２２でのプログラム更新が完了する。一方、更新制御部１２は、転送処理が正常に完了しなかった電子機器２３に対しては、プログラム更新処理の実行を指示しない。
【００１８】
上記処理によれば、更新制御部１２は、更新プログラムの転送処理が正常に完了しなかった電子機器２３でプログラム更新処理が実行されないように制御する。これにより、プログラム更新処理が実行されたことに起因する、電子機器２３での異常の発生可能性を低減できる。
【００１９】
例えば、電子機器２３がプログラム更新処理を実行した場合、実行後の電子機器２３は、転送制御部１１から電子機器２３に転送された不完全なプログラムを実行してしまう。この場合、電子機器２３の動作が不安定になる、あるいは電子機器２３が動作不可能になるといった異常が発生する可能性がある。また、電子機器２３に対する更新プログラムの転送処理が完了しなかった原因が、電子機器２３自体の異常にある可能性もある。この場合、電子機器２３がプログラム更新処理を実行することによって、電子機器２３でさらに深刻な異常が発生する可能性もある。更新制御部１２によって電子機器２３がプログラム更新処理を実行させる機器から除外されることで、電子機器２３において上記のような異常が発生しにくくなる。
【００２０】
換言すれば、更新制御部１２は、電子機器ごとの更新プログラム転送処理結果に基づいて、更新プログラム転送先の電子機器の中から、プログラム更新処理を実行させても異常が発生しない電子機器を判別し、判別した電子機器にのみプログラム更新処理を実行させることができる。これにより、更新制御部１２は、プログラム更新処理が実行された後の制御システムの動作の安定性を維持することができる。
【００２１】
さらに、電子機器への更新プログラムの転送が正常に完了しなかったことを検知し、その結果に応じてプログラム更新処理を実行させる機器を決定する処理を、更新制御部１２が実行するようにしたことで、作業者が何ら確認作業を行わずに、制御システム１の動作の安定性が維持される。従って、プログラム更新作業を行う作業者の負担を軽減することもできる。
【００２２】
〔第２の実施の形態〕
次に、制御システムとしてストレージシステムを例示して説明する。
図２は、第２の実施の形態に係るストレージシステムの全体構成例を示す図である。図２に示すストレージシステムは、仮想テープ装置１１０と、テープライブラリ装置１２０ａ，１２０ｂとを備える。
【００２３】
テープライブラリ装置１２０ａ，１２０ｂのそれぞれの内部には、多数の磁気テープが収容されている。テープライブラリ装置１２０ａ，１２０ｂのそれぞれは、内部に収容された磁気テープを用いた記録・再生を行う１つ以上のテープドライブ、テープドライブに対して磁気テープを搬送する搬送機構などを備える。なお、ストレージシステムに設けられるテープライブラリ装置の数は、１つのみであっても、あるいは３つ以上であってもよい。
【００２４】
仮想テープ装置１１０には、ホスト装置１５０が接続されている。また、仮想テープ装置１１０は、複数のＨＤＤが搭載されたディスクアレイ装置２００を備える。仮想テープ装置１１０は、ディスクアレイ装置２００内のＨＤＤを、テープライブラリ装置１２０ａ，１２０ｂに収容された磁気テープに記録されたデータをキャッシュするキャッシュ装置として使用する。そして、仮想テープ装置１１０は、テープライブラリ装置１２０ａ，１２０ｂに収容された多数の磁気テープによって実現される大容量の記憶領域を、ディスクアレイ装置２００を通じてホスト装置１５０に対して仮想的に提供する。
【００２５】
以下、仮想テープ装置１１０がホスト装置１５０に対して仮想的に提供する記憶領域を、「仮想テープドライブ」と呼ぶ。また、仮想テープ装置１１０によってホスト装置１５０に提供される、ホスト装置１５０から仮想テープドライブにアクセスすることを可能にするサービスを、「仮想テープドライブへのアクセスサービス」と呼ぶ。
【００２６】
仮想テープ装置１１０は、ディスクアレイ装置２００に加えて、ＶＬＰ（Virtual Library Processor）３００ａ，３００ｂ、ＩＣＰ（Integrated Channel Processor）４００ａ〜４００ｄ、ＩＤＰ（Integrated Device Processor）４２０ａ〜４２０ｄ、ＰＬＰ（Physical Library Processor）４４０ａ，４４０ｂ、ＦＣ（Fibre Channel）スイッチ５００ａ，５００ｂ、ＬＡＮ（Local Area Network）スイッチ５５０ａ〜５５０ｄおよびＰＣＵ（Power Control Unit）６００ａ，６００ｂを備える。
【００２７】
ＶＬＰ３００ａ，３００ｂ、ＩＣＰ４００ａ〜４００ｄ、ＩＤＰ４２０ａ〜４２０ｄおよびＰＬＰ４４０ａ，４４０ｂは、それぞれコンピュータとして実現される。以下、ＶＬＰ、ＩＣＰ、ＩＤＰおよびＰＬＰを総称して「制御サーバ」と呼ぶ。
【００２８】
ＩＣＰ４００ａ〜４００ｄは、ＶＬＰ３００ａ，３００ｂのいずれかの制御の下で、ホスト装置１５０とディスクアレイ装置２００との間のデータ転送を制御する制御サーバである。ＩＣＰ４００ａ〜４００ｄは、ホスト装置１５０との間でＯＣＬＩＮＫ（Optical Channel LINK，登録商標）規格に従って光ケーブルを介した通信を行う。なお、ＩＣＰが複数搭載されることで、ホスト装置１５０とディスクアレイ装置２００との間のデータ転送処理の信頼性が向上されている。
【００２９】
ＩＤＰ４２０ａ，４２０ｂは、ＶＬＰ３００ａ，３００ｂのいずれかの制御の下で、ディスクアレイ装置２００と、テープライブラリ装置１２０ａに搭載されたテープドライブとの間のデータ転送を制御する制御サーバである。ＩＤＰ４２０ｃ，４２０ｄは、ＶＬＰ３００ａ，３００ｂのいずれかの制御の下で、ディスクアレイ装置２００と、テープライブラリ装置１２０ｂに搭載されたテープドライブとの間のデータ転送を制御する制御サーバである。なお、１つのテープライブラリ装置に対応付けて複数のＩＤＰが搭載されることで、ディスクアレイ装置２００とテープライブラリ装置との間のデータ転送処理の信頼性が向上されている。
【００３０】
ＰＬＰ４４０ａは、ＶＬＰ３００ａ，３００ｂのいずれかの制御の下で、テープライブラリ装置１２０ａに搭載された磁気テープの搬送機構（ロボット）を制御する制御サーバである。ＰＬＰ４４０ｂは、ＶＬＰ３００ａ，３００ｂのいずれかの制御の下で、テープライブラリ装置１２０ｂに搭載された磁気テープの搬送機構（ロボット）を制御する。
【００３１】
ＰＬＰ４４０ａの制御によってテープライブラリ装置１２０ａ内の所定のテープドライブに磁気テープがマウントされ、マウントされた磁気テープに対するデータアクセス処理がＩＤＰ４２０ａ，４２０ｂのいずれかによって制御される。同様に、ＰＬＰ４４０ｂの制御によってテープライブラリ装置１２０ｂ内の所定のテープドライブに磁気テープがマウントされ、マウントされた磁気テープに対するデータアクセス処理がＩＤＰ４２０ｃ，４２０ｄのいずれかによって制御される。
【００３２】
ＶＬＰ３００ａ，３００ｂは、仮想テープ装置１１０全体を統合的に制御する制御サーバである。また、ＶＬＰ３００ａ，３００ｂは、仮想テープドライブへのＩ／Ｏ（In/Out）要求をはじめとする各種の処理要求をホスト装置１５０から受信し、受信した処理要求に応じて仮想テープ装置１１０内の他の種類の制御サーバやディスクアレイ装置２００を制御する。
【００３３】
例えば、ＶＬＰ３００ａは、ホスト装置１５０からの要求に応じて、仮想テープドライブに対して論理ボリュームを設定する。ＶＬＰ３００ａは、設定された論理ボリュームに対するＩ／Ｏ要求をホスト装置１５０から受信し、受信したＩ／Ｏ要求に応じて仮想テープ装置１１０内の他の種類の制御サーバやディスクアレイ装置２００を制御することで、論理ボリュームに対するデータのＩ／Ｏ処理を行う。また、ＶＬＰ３００ａは、ディスクアレイ装置２００をキャッシュ装置（テープボリュームキャッシュ）として動作させるための制御を行う。
【００３４】
ここで、例としてＶＬＰ３００ａ、ＩＣＰ４００ａ、ＩＤＰ４２０ａおよびＰＬＰ４４０ａを用いたＩ／Ｏ処理について説明する。まず、論理ボリュームに対してデータを書き込む際には、ホスト装置１５０は、書き込み要求をＶＬＰ３００ａに送信するとともに、書き込みデータをＩＣＰ４００ａに送信する。ＩＣＰ４００ａは、受信した書き込みデータをディスクアレイ装置２００に格納するとともに、その格納先アドレスをＶＬＰ３００ａに通知する。
【００３５】
ＶＬＰ３００ａは、アドレスの通知を受けた後の所定のタイミングで、ディスクアレイ装置２００に格納された書き込みデータをテープライブラリ装置１２０ａ内の磁気テープにコピーするための制御処理を実行する。このとき、ＰＬＰ４４０ａは、ＶＬＰ３００ａからの指示に応じて、テープライブラリ装置１２０ａのテープドライブに所定の磁気テープをマウントする。そして、ＩＤＰ４２０ａは、ＶＬＰ３００ａからの指示に応じて、書き込みデータをディスクアレイ装置２００から読み出して、磁気テープがマウントされたテープライブラリ装置１２０ａ内のテープドライブに転送し、磁気テープへの書き込みを要求する。
【００３６】
また、論理ボリュームに記録されたデータを読み出す際には、ホスト装置１５０は、データの読み出し要求をＶＬＰ３００ａに送信する。ＶＬＰ３００ａは、読み出しが要求された読み出しデータがディスクアレイ装置２００に格納されているかを判定する。読み出しデータがディスクアレイ装置２００に格納されている場合、ＶＬＰ３００ａは、読み出しデータをディスクアレイ装置２００から読み出してホスト装置１５０に送信するように、ＩＣＰ４００ａに指示する。
【００３７】
一方、読み出しデータがディスクアレイ装置２００に格納されていない場合（すなわち、キャッシュミスの場合）、ＶＬＰ３００ａは、読み出しデータを磁気テープから読み出してディスクアレイ装置２００にコピーするための制御処理を実行する。このとき、ＰＬＰ４４０ａは、ＶＬＰ３００ａからの指示に応じて、テープライブラリ装置１２０ａのテープドライブに、読み出しデータが記録された磁気テープをマウントする。そして、ＩＤＰ４２０ａは、ＶＬＰ３００ａからの指示に応じて、磁気テープがマウントされたテープライブラリ装置１２０ａ内のテープドライブに、読み出しデータを出力させる。ＩＤＰ４２０ａは、テープドライブから出力された読み出しデータをディスクアレイ装置２００に格納するとともに、その格納先アドレスをＶＬＰ３００ａに通知する。通知を受けたＶＬＰ３００ａは、読み出しデータをディスクアレイ装置２００から読み出してホスト装置１５０に送信するように、ＩＣＰ４００ａに指示する。
【００３８】
ＶＬＰ３００ａは、以上のようなＩ／Ｏ処理の制御を行うことで、ストレージシステムを、ディスクアレイ装置２００を一次ストレージ（テープボリュームキャッシュ）、テープライブラリ装置１２０ａ内の磁気テープを二次ストレージとして用いた階層型ストレージシステムとして動作させる。
【００３９】
ＶＬＰ３００ｂも、ＶＬＰ３００ａと同様の処理機能を備える。ここで、ＶＬＰが複数設けられることで、仮想テープ装置１１０における処理の信頼性が高められている。また、ＶＬＰ３００ａ，３００ｂのそれぞれとホスト装置１５０とは、複数の通信経路によって接続されている。例えば、ＶＬＰ３００ａは、ＬＡＮスイッチ５５０ａを介してホスト装置１５０と接続されているとともに、ＬＡＮスイッチ５５０ｃ〜５５０ｄを介してホスト装置１５０と接続されている。このようにＶＬＰとホスト装置１５０との通信経路が冗長化されることで、ホスト装置１５０から仮想テープドライブを利用する際の処理の信頼性が向上されている。
【００４０】
ＦＣスイッチ５００ａ，５００ｂは、ＦＣケーブルを介して制御サーバ間で送受信されるデータを中継する。ＬＡＮスイッチ５５０ａ〜５５０ｄは、スイッチングハブと呼ばれる中継装置であり、ＬＡＮケーブルを介して制御サーバ間で送受信されるデータを中継する。ＬＡＮスイッチ５５０ａ，５５０ｂについては、ホスト装置１５０とＶＬＰとの間で送受信されるデータも中継する。また、ＬＡＮスイッチ５５０ｃについては、制御サーバとＰＣＵ６００ａとの間で送受信されるデータも中継し、ＬＡＮスイッチ５５０ｄについては、制御サーバとＰＣＵ６００ｂとの間で送受信されるデータも中継する。
【００４１】
仮想テープ装置１１０においては、１つのＶＬＰと、１つのＩＣＰ、１つのＩＤＰおよびディスクアレイ装置２００のそれぞれとは、複数の通信経路を通じて接続されている。例えば、ＶＬＰ３００ａとＩＣＰ４００ａとは、ＦＣスイッチ５００ａを介して接続されているとともに、ＦＣスイッチ５００ｂを介して接続されている。さらに、ＶＬＰ３００ａとＩＣＰ４００ａとは、ＬＡＮスイッチ５５０ｃを介して接続されている。また、１つのＩＣＰとディスクアレイ装置２００も複数の通信経路を通じて接続され、１つのＩＤＰとディスクアレイ装置２００も複数の通信経路を通じて接続されている。このように通信経路が冗長化されることで、ホスト装置１５０から仮想テープボリュームへのアクセス処理の信頼性が向上されている。
【００４２】
ＰＣＵ６００ａ，６００ｂは、外部から供給されるＡＣ（Alternating Current）電圧をＤＣ（Direct Current）電圧に変換し、仮想テープ装置１１０内の各装置に対して電源電圧として供給する。ＰＣＵ６００ａ，６００ｂは、ＶＬＰ３００ａ，３００ｂからの指示に応じて、仮想テープ装置１１０内の各装置に対する電源供給を一時的に停止することで、各装置を一斉に再起動させることができる。
【００４３】
図３は、ＶＬＰのハードウェア構成例を示す図である。なお、図３は例としてＶＬＰ３００ａを示すが、ＶＬＰ３００ｂについても同様のハードウェア構成によって実現される。
【００４４】
ＶＬＰ３００ａは、ＣＰＵ３０１によって装置全体が制御されている。ＣＰＵ３０１には、ＲＡＭ（Random Access Memory）３０２および複数の周辺機器が、バス３０９を介して接続されている。ＲＡＭ３０２は、ＶＬＰ３００ａの主記憶装置として使用され、ＣＰＵ３０１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
【００４５】
ＣＰＵ３０１には、周辺機器の例として、ＨＤＤ３０３、グラフィック処理装置３０４、入力インタフェース３０５、光学ドライブ装置３０６、ＦＣインタフェース３０７およびＬＡＮインタフェース３０８が接続されている。
【００４６】
ＨＤＤ３０３は、ＶＬＰ３００ａの二次記憶装置として使用され、ＣＰＵ３０１によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置が使用されてもよい。
【００４７】
グラフィック処理装置３０４には、例えば、ディスプレイ３０４ａが接続可能になっている。このグラフィック処理装置３０４は、ＣＰＵ３０１からの命令に従って、ディスプレイ３０４ａの画面上に画像を表示させる。入力インタフェース３０５には、例えば、所定の操作キーなどを備える入力装置３０５ａが接続可能になっている。入力インタフェース３０５は、入力装置３０５ａからの信号を、バス３０９を介してＣＰＵ３０１に送信する。なお、ディスプレイ３０４ａおよび入力装置３０５ａの少なくとも一方は、ＶＬＰ３００ａに搭載されていてもよい。
【００４８】
光学ドライブ装置３０６は、レーザ光などを利用して、光ディスク３０６ａに記録されたデータの読み取りを行う。光ディスク３０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク３０６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【００４９】
ＦＣインタフェース３０７は、ＦＣケーブルおよびＦＣスイッチを介して他の制御サーバと接続し、他の制御サーバとの間でデータを送受信する。ＬＡＮインタフェース３０８は、ＬＡＮケーブルおよびＬＡＮスイッチを介して他の制御サーバやホスト装置１５０と接続し、接続した他の機器との間でデータを送受信する。
【００５０】
なお、ＩＣＰ４００ａ〜４００ｃ、ＩＤＰ４２０ａ〜４２０ｄおよびＰＬＰ４４０ａ，４４０ｂも、図３に示したＶＬＰ３００ａと同様のハードウェア構成を有するコンピュータとして実現される。ただし、グラフィック処理装置３０４、入力インタフェース３０５および光学ドライブ装置３０６については、制御サーバのうちＶＬＰのみが備えていればよい。
【００５１】
図４は、ディスクアレイ装置、テープライブラリ装置、ＦＣスイッチおよびＬＡＮスイッチのハードウェア構成例を示す図である。
ディスクアレイ装置２００は、複数のＨＤＤ２０１と、アレイコントローラ２１０とを備える。複数のＨＤＤ２０１による記憶領域は、主に、仮想テープボリューム内のデータをキャッシュするテープボリュームキャッシュとして使用される。また、後述するように、複数のＨＤＤ２０１による記憶領域の一部は、ストレージシステム内の装置で実行されるファームウェアのダウンロード専用領域として使用される。なお、ディスクアレイ装置２００は、ＨＤＤの代わりにＳＳＤを備えていてもよい。
【００５２】
アレイコントローラ２１０は、ＣＰＵ２１１、ＲＡＭ２１２およびフラッシュメモリ２１３を備える。ＣＰＵ２１１は、フラッシュメモリ２１３に記憶されたファームウェアに従って、ディスクアレイ装置２００の処理を統括的に制御する。ＲＡＭ２１２は、ＣＰＵ２１１に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ２１３には、ＣＰＵ２１１に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、ＣＰＵ２１１は、フラッシュメモリ２１３に格納されたファームウェアを、ＶＬＰ３００ａからの指示に応じて書き替えることができる。
【００５３】
なお、図示しないが、アレイコントローラ２１０は、ＦＣ規格およびＬＡＮの規格に従って通信する通信インタフェース回路や、ＨＤＤ２０１との間でデータを送受信するディスクインタフェース回路なども備える。
【００５４】
テープライブラリ装置１２０ａは、ロボット１２１、複数のテープドライブ１２２およびライブラリコントローラ１３０を備える。また、図示しないが、テープライブラリ装置１２０ａには、複数の磁気テープが収納される収納棚を備える。ロボット１２１は、収納棚とテープドライブ１２２との間で磁気テープを搬送する。テープドライブ１２２は、ロボット１２１によって装填された磁気テープの記録再生を行う。
【００５５】
ライブラリコントローラ１３０は、ＣＰＵ１３１、ＲＡＭ１３２およびフラッシュメモリ１３３を備える。ＣＰＵ１３１は、フラッシュメモリ１３３に記憶されたファームウェアに従って、テープライブラリ装置１２０ａの処理を統括的に制御する。ＲＡＭ１３２は、ＣＰＵ１３１に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ１３３には、ＣＰＵ１３１に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、ＣＰＵ１３１は、フラッシュメモリ１３３に格納されたファームウェアを、ＶＬＰ３００ａからの指示に応じて書き替えることができる。
【００５６】
なお、図示しないが、ライブラリコントローラ１３０は、ＬＡＮの規格に従って通信する通信インタフェース回路や、テープドライブ１２２との間でデータを送受信するドライブインタフェース回路、ロボット１２１に対して制御信号を送信するためのインタフェース回路なども備える。
【００５７】
また、テープライブラリ装置１２０ｂについても、図４のテープライブラリ装置１２０ａと同様のハードウェア構成によって実現される。
ＦＣスイッチ５００ａは、中継部５０１とコントローラ５１０とを備える。中継部５０１は、ＦＣケーブルがそれぞれ接続される複数の通信ポート（図示せず）を備え、コントローラ５１０による制御の下で、通信ポート間でデータを中継する。
【００５８】
コントローラ５１０は、ＣＰＵ５１１、ＲＡＭ５１２およびフラッシュメモリ５１３を備える。ＣＰＵ５１１は、フラッシュメモリ５１３に記憶されたファームウェアに従って、ＦＣスイッチ５００ａの処理を統括的に制御する。ＲＡＭ５１２は、ＣＰＵ５１１に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ５１３には、ＣＰＵ５１１に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、ＣＰＵ５１１は、フラッシュメモリ５１３に格納されたファームウェアを、ＶＬＰ３００ａからの指示に応じて書き替えることができる。
【００５９】
ＬＡＮスイッチ５５０ｃは、中継部５５１とコントローラ５６０とを備える。中継部５５１は、ＬＡＮケーブルがそれぞれ接続される複数の通信ポート（図示せず）を備え、コントローラ５６０による制御の下で、通信ポート間でデータを中継する。
【００６０】
コントローラ５６０は、ＣＰＵ５６１、ＲＡＭ５６２およびフラッシュメモリ５６３を備える。ＣＰＵ５６１は、フラッシュメモリ５６３に記憶されたファームウェアに従って、ＬＡＮスイッチ５５０ａの処理を統括的に制御する。ＲＡＭ５６２は、ＣＰＵ５６１に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ５６３には、ＣＰＵ５６１に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、ＣＰＵ５６１は、フラッシュメモリ５６３に格納されたファームウェアを、ＶＬＰ３００ａからの指示に応じて書き替えることができる。
【００６１】
次に、ストレージシステムにおけるファームウェアの更新処理について説明する。
図２に示したように、ストレージシステムは多数の装置を備えている。このため、ストレージ装置内のすべての装置のファームウェアを更新する作業に長時間を要するという問題がある。例えば、装置のファームウェアを更新する作業は、新規の版数のファームウェアを光ディスクなどから更新対象の装置が読み込む工程と、新規ファームウェアの読み込みが終了した装置を再起動させる工程とを含む。また、複数の版数のファームウェアを記憶する領域を備える装置では、再起動後に実行させるファームウェアを再起動前に指定する「ファームウェアの有効化」という工程も必要になる。
【００６２】
多数の装置を備えるストレージシステムにおいて、これらの工程を含む更新作業を保守管理者が行った場合には、数時間といった長い時間がかかってしまう。また、更新作業中には仮想テープドライブへのアクセスサービスの運用が停止され、ホスト装置１５０は仮想テープドライブに対してアクセスできなくなる。このため、更新作業の時間が長くなることは、仮想テープドライブへのアクセスサービスの品質を低下させる原因にもなる。
【００６３】
さらに、上記の更新作業はすべての装置について正常に完了するとは限らない。更新対象の装置のうちの一部でのみファームウェアが更新され、異常の発生した装置ではファームウェアが更新されなかった場合には、ファームウェアの不整合によってストレージシステムの誤動作が発生する可能性がある。従って、保守作業者は、更新作業中や作業終了後に、ファームウェアが正しく更新されたかを装置ごとに判断する必要があり、大きな手間がかかる。
【００６４】
また、更新対象の装置のうちの一部でのみファームウェアが更新された場合でも、ストレージシステムの誤動作が発生しない場合もある。例えば、特定の種類の装置のすべてにおいて更新前のファームウェアを実行させる、あるいは、特定の異なる種類の装置において更新前のファームウェアを実行させるといった措置をとることで、誤動作が生じることなくストレージシステムの運用を再開できる場合がある。このような場合には、一部の装置で古いファームウェアが実行された状態のままストレージシステムの運用を再開することで、ストレージシステムの運用停止時間を短縮できる。また、例えば、ファームウェアが更新されなかった装置をシャットダウンさせることで、ストレージシステムの運用を再開できる場合もある。
【００６５】
しかしながら、このように一部の装置で更新作業中に異常が発生した場合でもストレージシステムの運用を再開するためには、保守作業者は、異常の発生した装置を判別するだけでなく、異常の発生状況に応じて、更新前のファームウェアを実行させる装置や、シャットダウンすべき装置を判別する必要が生じる。このような判別作業は、装置の数が多くなるほど煩雑になる。
【００６６】
このような問題に対して、本実施の形態のＶＬＰ３００ａは、ストレージシステム内の各装置に実行させるファームウェアを一元管理し、ファームウェアの更新が必要な装置に対してファームウェアを転送し、実行させるファームウェアを自動的に変更させる機能を備える。ＶＬＰ３００ａは、更新対象の各装置に実行させる最新版のファームウェアを、光ディスクから読み込んでディスクアレイ装置２００の特定領域に格納する。また、ＶＬＰ３００ａは、ファームウェアの更新が必要な装置を特定して、特定した装置に実行させるファームウェアをディスクアレイ装置２００から読み込み、更新対象の装置に転送する。そして、ＶＬＰ３００ａは、転送が完了した装置に対して必要に応じて有効化処理を実行させた後、更新対象の装置を再起動させる。また、ＶＬＰ３００ａは、ファームウェアの転送、有効化、再起動という工程ごとに処理が正常に完了したかを検査し、その検査結果を基に次の工程の対象とする装置を特定していく。ＶＬＰ３００ａによるこのような処理により、ストレージシステムの運用を、誤動作が発生しない状態で、短時間で再開できるようになる。
【００６７】
図５は、ＶＬＰが備える処理機能の構成例およびＶＬＰが参照する情報の例を示す図である。
ＶＬＰ３００ａは、ファームウェア管理部３１０を備える。ファームウェア管理部３１０の処理は、例えば、ＶＬＰ３００ａのＣＰＵ３０１が所定のプログラム（ファームウェア）を実行することで実現される。ファームウェア管理部３１０は、ストレージシステム内の各装置に実行させるファームウェアを一元管理し、各装置に実行させるファームウェアを更新する一連の処理を実行する。
【００６８】
また、ファームウェア管理部３１０は、装置管理データベース（ＤＢ）３２０を参照可能になっている。装置管理データベース３２０は、例えば、ＶＬＰ３００ａのＨＤＤ３０３に格納される。装置管理データベース３２０には、ファームウェアの更新対象とすることが可能なすべての装置についての基本的な情報が登録されている。
【００６９】
例えば、装置管理データベース３２０は、ストレージシステムに搭載された装置の種別ごとのエントリを備える。装置の種別とは、ＶＬＰ、ＩＣＰ、ＩＤＰ、ＰＬＰ、ディスクアレイ装置、ＦＣスイッチ、ＬＡＮスイッチおよびテープライブラリ装置のいずれかを識別するための情報である。
【００７０】
各エントリには、例えば、対応する種別の装置を識別するための装置ＩＤが登録される。例えば、ストレージシステムに含まれる各装置がラック内のスロットに搭載される場合、装置ＩＤは、対応する装置が搭載されるスロットの位置情報としてもよい。あるいは、装置ＩＤは、ネットワーク上のアドレスであってもよい。ただし、後者の場合、ＦＣスイッチおよびＬＡＮスイッチに対応する装置ＩＤは、例えば、各装置に固有に付与された識別情報とされてもよい。ストレージシステムに同じ種別の装置が複数搭載されている場合、その種別に対応するエントリには複数の装置ＩＤが登録される。例えば、図２の例では４つのＩＣＰ４００ａ〜４００ｄが搭載されていることから、ＩＣＰに対応するエントリにはＩＣＰ４００ａ〜４００ｄのそれぞれの装置ＩＤが登録される。
【００７１】
ファームウェア管理部３１０は、ディスクアレイ装置２００内の１つまたは複数のＨＤＤ２０１によって実現される記憶領域に、２つのダウンロード領域２２０を生成する。ダウンロード領域２２０には、ファームウェアの更新対象とすることが可能なすべての種別の装置に対応するファームウェアの実データが格納される。ダウンロード領域２２０には、生成された順に総合版数が付与される。図５の例では、上側のダウンロード領域２２０には総合版数「Ｖ１０Ｌ５０」が付与され、下側のダウンロード領域２２０には総合版数「Ｖ１０Ｌ４０」が付与されている。この場合、上側のダウンロード領域２２０の方が後に生成されたことになる。２つのダウンロード領域２２０のうち新しい総合版数が付与された領域には、最新の版数のファームウェアが格納される。
【００７２】
ファームウェア管理部３１０は、ダウンロード処理部３１１、転送処理部３１２および更新制御部３１３を備える。ダウンロード処理部３１１は、ディスクアレイ装置２００にダウンロード領域２２０を確保し、ＶＬＰ３００ａの光学ドライブ装置３０６を通じて光ディスク３０６ａから読み込まれたファームウェアを、新たに確保したダウンロード領域２２０に格納する。転送処理部３１２は、最新の総合版数が付与されたダウンロード領域２２０からファームウェアを読み込み、ファームウェアの更新対象の装置に対して転送する。更新制御部３１３は、ファームウェアの転送が完了した装置に、実行させるファームウェアを転送したファームウェアに変更させるための処理を実行する。
【００７３】
なお、ファームウェア管理部３１０と、ストレージシステム内の他の装置との通信は、ＬＡＮインタフェース３０８を通じて行われるものとする。
図６は、ファームウェア更新の対象機器が備える処理機能の例を示すブロック図である。この図６では、更新対象機器として、ＩＣＰ４００ａ、テープライブラリ装置１２０ａおよびＬＡＮスイッチ５５０ｃを例示する。
【００７４】
ＩＣＰ４００ａは、ファームウェア更新処理部４１０を備える。ファームウェア更新処理部４１０の処理は、ＩＣＰ４００ａが備えるＣＰＵが所定のプログラム（ファームウェア）を実行することで実現される。ファームウェア更新処理部４１０は、ＶＬＰ３００ａのファームウェア管理部３１０からの指示に従って、ＩＣＰ４００ａのＣＰＵが実行するファームウェアを版数の新しいものに変更するために必要な処理を実行する。
【００７５】
ここで、本実施の形態では例として、ＩＣＰ４００ａのＨＤＤには、版数の異なるファームウェアがそれぞれ格納される２つのファームウェア領域４１１が設けられている。また、ＩＣＰ４００ａのＨＤＤには、２つのファームウェア領域４１１のどちらに格納されたファームウェアを実行するかを示す起動フラグ４１２が記録されている。ＩＣＰ４００ａのＣＰＵは、電源投入に応じた起動時および再起動時において、ファームウェアを実行する前に起動フラグ４１２を読み出す。ＩＣＰ４００ａのＣＰＵは、２つのファームウェア領域４１１のうち、起動フラグ４１２が示す方の領域からファームウェアを読み出して実行する。
【００７６】
２つのファームウェア領域４１１のうちの一方に格納されたファームウェアは、現在ＩＣＰ４００ａのＣＰＵが実行しているファームウェアである。従って、この状態では、起動フラグ４１２は、現在実行されているファームウェアが格納されたファームウェア領域４１１を指し示す値になっている。
【００７７】
ファームウェア更新処理部４１０は、ファームウェアの更新を行う際に、ＶＬＰ３００ａから転送された新たな版数のファームウェアを、他方のファームウェア領域４１１に格納する。ファームウェア更新処理部４１０は、他方のファームウェア領域４１１にファームウェアを格納した後、ＶＬＰ３００ａのファームウェア管理部３１０からの指示に応じて、他方のファームウェア領域４１１を指すように起動フラグ４１２を書き替える。この後、ＩＣＰ４００ａは、ＶＬＰ３００ａのファームウェア管理部３１０からの指示に応じて再起動する。再起動したＩＣＰ４００ａのＣＰＵは、起動フラグ４１２に従って、新たな版数のファームウェアを実行する。これにより、ＩＣＰ４００ａのＣＰＵが実行するファームウェアが変更され、ファームウェアの更新処理が完了する。
【００７８】
上記のように、新たな版数のファームウェアをいずれかのファームウェア領域４１１に格納した後に、起動フラグ４１２を更新する処理を、格納したファームウェアの「有効化」と呼ぶ。
【００７９】
本実施の形態では例として、ＩＣＰ４００ｂ〜４００ｄも、ＩＣＰ４００ａと同様に、ファームウェア更新処理部４１０と、２つのファームウェア領域４１１および起動フラグ４１２を備える。また、本実施の形態では例として、ストレージシステムに含まれる他の装置も、ファームウェア更新処理部４１０と同様の機能を備えるとともに、不揮発性記憶装置内に、２つのファームウェア領域４１１と同様の領域が設けられるとともに、起動フラグ４１２が記録される。従って、すべての装置は、新たな版数のファームウェアを内部に読み込んでから、自装置を再起動するまでの間に、起動フラグを更新する「有効化」が必要になる。
【００８０】
例えば、テープライブラリ装置１２０ａは、ファームウェア更新処理部１４０を備える。ファームウェア更新処理部１４０の処理は、テープライブラリ装置１２０ａが備えるＣＰＵ１３１が所定のプログラム（ファームウェア）を実行することで実現される。また、テープライブラリ装置１２０ａのフラッシュメモリ１３３には、版数の異なるファームウェアがそれぞれ格納される２つのファームウェア領域１４１が設けられている。さらに、テープライブラリ装置１２０ａのフラッシュメモリ１３３には、２つのファームウェア領域１４１のどちらに格納されたファームウェアを実行するかを示す起動フラグ１４２が記録されている。
【００８１】
また、例えば、ＬＡＮスイッチ５５０ｃは、ファームウェア更新処理部５７０を備える。ファームウェア更新処理部５７０の処理は、ＬＡＮスイッチ５５０ｃが備えるＣＰＵ５６１が所定のプログラム（ファームウェア）を実行することで実現される。また、ＬＡＮスイッチ５５０ｃのフラッシュメモリ５６３には、版数の異なるファームウェアがそれぞれ格納される２つのファームウェア領域５７１が設けられている。さらに、ＬＡＮスイッチ５５０ｃのフラッシュメモリ５６３には、２つのファームウェア領域５７１のどちらに格納されたファームウェアを実行するかを示す起動フラグ５７２が記録されている。
【００８２】
なお、ストレージシステムに含まれる装置の少なくとも一部は、例えば、ファームウェアが格納されるファームウェア領域を１つのみ備えていてもよい。このような装置は、起動フラグを備えない。このような装置では、ファームウェア領域のファームウェアが書き替えられた後に再起動すると、装置のＣＰＵは書き替えられたファームウェアを実行する。すなわち、このような装置では、ファームウェアの更新の際に有効化が不要になる。
【００８３】
次に、ファームウェア管理部３１０内の各部の処理について詳しく説明する。
図７は、ダウンロード処理部の処理を説明するための図である。ダウンロード処理部３１１は、ストレージシステムに含まれるすべての装置に対応する最新の版数のファームウェアを、ディスクアレイ装置２００における一方のダウンロード領域２２０を用いて一括して管理する。
【００８４】
具体的には、ダウンロード処理部３１１は、ストレージシステムに含まれる少なくとも１種類の装置のファームウェアを更新する際に、ユーザの入力操作に応じて起動する。ダウンロード処理部３１１は、ディスクアレイ装置２００に、新たな総合版数が付与されたダウンロード領域２２０を確保する。図７の例では、総合版数「Ｖ１０Ｌ４０」が付与されたダウンロード領域２２０に格納されたファームウェアが、対応する装置で実行されている状態において、ダウンロード処理部３１１は、新たな総合版数「Ｖ１０Ｌ５０」が付与されたダウンロード領域２２０を確保する。なお、このとき、ダウンロード処理部３１１は、総合版数「Ｖ１０Ｌ４０」より古い総合版数が付与されたダウンロード領域２２０を消去する。
【００８５】
次に、ダウンロード処理部３１１は、確保したダウンロード領域２２０に対して、全種類の装置についての最新の版数のファームウェアを格納する。ダウンロード処理部３１１は、新たな版数のファームウェアを光ディスクから光学ドライブ装置３０６を通じて読み込み、読み込んだファームウェアを新たに確保したダウンロード領域２２０に格納する。
【００８６】
ただし、すべての種別の装置に対応するファームウェアの版数が一斉に更新されるとは限らない。ダウンロード処理部３１１は、新たな版数のファームウェアが提供されない装置に対応するファームウェアを、総合版数が古い方のダウンロード領域２２０から読み出し、新たに確保したダウンロード領域２２０に格納する。
【００８７】
図７の例では、制御サーバのファームウェアのみが更新される場合を想定している。この場合、ダウンロード処理部３１１は、ＶＬＰ用、ＩＣＰ用、ＩＤＰ用およびＰＬＰ用の新規版数のファームウェアを、光ディスクから光学ドライブ装置３０６を通じて読み込み、新たに確保した総合版数「Ｖ１０Ｌ５０」のダウンロード領域２２０に格納する。一方、新たな版数のファームウェアが提供されないディスクアレイ装置、テープライブラリ装置、ＦＣスイッチおよびＬＡＮスイッチにそれぞれ対応するファームウェアを、総合版数「Ｖ１０Ｌ４０」のダウンロード領域２２０から読み出し、総合版数「Ｖ１０Ｌ５０」のダウンロード領域２２０に格納する。
【００８８】
このようなダウンロード処理部３１１の処理により、新しい総合版数が付与されたダウンロード領域２２０には最新の版数のファームウェアが格納されるようになり、ファームウェアの管理が効率化される。ＶＬＰ３００ａのファームウェア管理部３１０は、更新対象の装置に対して新たな版数のファームウェアを転送する際に、新しい総合版数が付与されたダウンロード領域２２０からファームウェアを読み出して転送することができる。このため、ファームウェアを転送する前にその都度新たな版数のファームウェアを光ディスクから読み込む必要がなくなり、光ディスクからの読み込みおよび装置への転送の処理全体に要する時間を短縮することができる。
【００８９】
また、ダウンロード処理部３１１は、ストレージシステム内に既存であった大容量の記憶装置であるディスクアレイ装置２００に、ダウンロード領域２２０を確保することで、ダウンロード領域２２０のための専用の記憶装置を追加する必要がなくなる。従って、ダウンロード処理部３１１は、ストレージシステム内の資源を有効に活用しながら、ファームウェアを一括して管理することができる。
【００９０】
ところで、上記のダウンロード処理部３１１の処理は、ホスト装置１５０からの要求に応じた仮想テープドライブへのアクセス処理と並行して実行することができる。これに対して、後述するように、ダウンロード領域２２０から更新対象の装置へのファームウェアの転送処理の際には、仮想テープドライブへのアクセスサービスの運用が停止される。本実施の形態では、光ディスクからのファームウェアの読み込み処理と、更新対象の装置へのファームウェアの転送処理とが分離され、ファームウェア管理部３１０は、後者の処理の実行前に、前者の処理を必要なすべての装置についてまとめて実行する。このため、仮想テープドライブへのアクセスサービスの運用が停止する時間を短縮することができる。
【００９１】
図８は、ダウンロード処理部によるダウンロード処理手順の例を示すフローチャートである。この図８の処理は、例えば、保守作業者がＶＬＰ３００ａの入力装置３０５ａを通じて処理開始を指示することに応じて実行される。
【００９２】
［ステップＳ１１］ダウンロード処理部３１１は、新たに生成するダウンロード領域２２０の総合版数を指定する。ダウンロード処理部３１１は、例えば、保守作業者の入力操作によって総合版数の指定を受ける。あるいは、ダウンロード処理部３１１は、自ら総合版数を指定してもよい。
【００９３】
［ステップＳ１２］ダウンロード処理部３１１は、ディスクアレイ装置２００内のＨＤＤによって実現される記憶領域に、ステップＳ１１で指定した総合版数に対応するダウンロード領域２２０を新たに確保する。このとき、ダウンロード処理部３１１は、ステップＳ１２の実行前に存在していた２つのダウンロード領域２２０のうち、総合版数の古い方のダウンロード領域２２０を消去する。
【００９４】
［ステップＳ１３］ダウンロード処理部３１１は、ストレージシステムに含まれる装置の種別ごとに、新規版数のファームウェアを光ディスクから読み込む必要があるかを問い合わせるための表示情報を、ディスプレイ３０４ａに表示させる。保守作業者は、装置種別ごとに、新規版数のファームウェアを光ディスクから読み込む必要があるかを入力する。ダウンロード処理部３１１は、読み込み要否情報をＲＡＭ３０２に一時的に記録し、入力された情報に基づいて新規ファームウェアの読み込みの要否を読み込み要否情報に登録する。
【００９５】
ここで、図９は、読み込み要否情報に登録される情報の例を示す図である。
読み込み要否情報３３１には、ストレージシステムに含まれる装置の種別ごとに、新規ファームウェアを光ディスクから読み込む必要があるか否かを示す読み込み要否フラグが登録される。読み込み要否フラグの値は、例えば、読み込みが必要な場合は「１」とされ、読み込みが不要の場合は「０」とされる。
【００９６】
以下、図８に戻って説明する。
［ステップＳ１４］ダウンロード処理部３１１は、読み込み要否情報３３１から、読み込み要否フラグが「１」である装置種別（すなわち、新規版数のファームウェアの読み込みが必要である装置種別）を１つ選択する。ダウンロード処理部３１１は、選択した装置種別に対応する新規版数のファームウェアが格納された光ディスクを光学ドライブ装置３０６に投入することを要求するための表示情報を、ディスプレイ３０４ａに表示させる。
【００９７】
［ステップＳ１５］ダウンロード処理部３１１は、光学ドライブ装置３０６に光ディスクが投入されたことを認識すると、投入された光ディスクからファームウェアを読み込む。ダウンロード処理部３１１は、読み込んだファームウェアを例えばＬＡＮインタフェース３０８を通じてディスクアレイ装置２００に送信し、ステップＳ１２で確保したダウンロード領域２２０に格納する。
【００９８】
［ステップＳ１６］ダウンロード処理部３１１は、読み込み要否情報３３１において読み込み要否フラグが「１」であるすべての装置種別に対応するファームウェアを光ディスクから読み込み済みかを判定する。ファームウェアの読み込みが済んでいない装置種別がある場合（Ｓ１６：Ｎｏ）、ダウンロード処理部３１１はステップＳ１４に戻り、読み込みが済んでいない装置種別を１つ選択する。一方、読み込み要否フラグが「１」であるすべての装置種別に対応するファームウェアの読み込みが終了した場合（Ｓ１６：Ｙｅｓ）、ダウンロード処理部３１１はステップＳ１７の処理を実行する。
【００９９】
［ステップＳ１７］ダウンロード処理部３１１は、読み込み要否情報３３１において読み込み要否フラグが「０」である装置種別があるかを判定する。読み込み要否フラグが「０」である装置種別がある場合（Ｓ１７：Ｙｅｓ）、ダウンロード処理部３１１はステップＳ１８の処理を実行する。一方、読み込み要否フラグが「０」である装置種別がない場合（Ｓ１７：Ｎｏ）、ダウンロード処理部３１１はステップＳ１９の処理を実行する。後者の場合、ステップＳ１２で生成したダウンロード領域２２０に、すべての装置種別に対応する最新の版数のファームウェアが格納された状態になっている。
【０１００】
［ステップＳ１８］ダウンロード処理部３１１は、読み込み要否フラグが「０」である装置種別に対応するファームウェアを、ディスクアレイ装置２００内の２つのダウンロード領域２２０のうち、古い総合版数が付与されているダウンロード領域２２０から読み出す。ダウンロード処理部３１１は、読み出したファームウェアを、ステップＳ１２で新規に生成したダウンロード領域２２０にコピーする。これにより、ステップＳ１２で生成したダウンロード領域２２０に、すべての装置種別に対応する最新の版数のファームウェアが格納される。
【０１０１】
［ステップＳ１９］ダウンロード処理部３１１は、装置へのファームウェアの転送処理を続けて実行するかを問い合わせるための表示情報を、ディスプレイ３０４ａに表示させる。保守管理者の入力操作により、ファームウェアの転送処理を続けて転送するように指示された場合（Ｓ１９：Ｙｅｓ）、ダウンロード処理部３１１はステップＳ２０の処理を実行する。一方、ファームウェアの転送処理を続けて実行しないという指示を受けた場合（Ｓ１９：Ｎｏ）、ダウンロード処理部３１１は処理を終了する。
【０１０２】
［ステップＳ２０］ダウンロード処理部３１１は、転送処理部３１２に対してファームウェアの転送処理を開始するように指示する。
次に、転送処理部３１２の処理について説明する。転送処理部３１２は、ディスクアレイ装置２００内の新しい総合版数が付与されたダウンロード領域２２０から、対応する装置のファームウェア領域にファームウェアを転送する。また、転送処理部３１２は、装置にファームウェアを転送するたびに、転送が正常に完了したか否かを示す転送結果をＲＡＭ３０２に保存する。
【０１０３】
図１０は、転送処理部によるファームウェア転送処理手順の例を示すフローチャートである。転送処理部３１２は、図８のステップＳ２０でダウンロード処理部３１１から処理の開始を指示されたとき、あるいは、保守管理者の入力操作によって処理の開始が指示されたときに、図１０の処理を実行する。
【０１０４】
［ステップＳ３１］転送処理部３１２は、仮想テープドライブへのアクセスサービスの運用を停止させる。例えば、転送処理部３１２は、自装置（ＶＬＰ３００ａ）にホスト装置１５０からのＩ／Ｏ要求の受信を停止させることで、仮想テープドライブへのアクセスサービスの運用を停止させる。あるいは、転送処理部３１２は、ストレージシステム内の各装置に、仮想テープドライブへのアクセスに関係する処理を停止させてもよい。
【０１０５】
このように、装置へのファームウェアの転送の前に仮想テープドライブへのアクセスサービスの運用を停止することで、例えば、ファームウェア領域へのファームウェアの書き込み失敗などによって装置に異常が発生し、その異常発生に起因して仮想テープドライブへのアクセス処理の異常が発生する事態を防止できる。
【０１０６】
なお、仮想テープドライブへのアクセスサービスの運用が停止されるタイミングは、ステップＳ３４でのファームウェアの転送が実行される前のどのタイミングであってもよい。
【０１０７】
［ステップＳ３２］転送処理部３１２は、更新するファームウェアが記憶されたダウンロード領域２２０の総合版数を入力するように保守作業者に要求するための表示情報を、ディスプレイ３０４ａに表示させる。転送処理部３１２は、総合版数の入力を受け付け、その総合版数を処理対象に指定する。なお、転送処理部３１２は、総合版数の入力を受ける代わりに、２つのダウンロード領域２２０にそれぞれ付与された総合版数のうち新しい方を、処理対象に指定してもよい。
【０１０８】
［ステップＳ３３］転送処理部３１２は、ファームウェア転送情報をＲＡＭ３０２に生成する。転送処理部３１２は、ファームウェアの更新対象とする装置を判定し、その判定結果をファームウェア転送情報に登録する。
【０１０９】
ここで、図１１は、ファームウェア転送情報に登録される情報の例を示す図である。
ファームウェア転送情報３３２には、装置種別および装置ＩＤに対応付けて転送要否フラグおよび転送結果フラグが登録される。図１０のステップＳ３２において、転送処理部３１２は、装置管理データベース３２０から装置種別および装置ＩＤを読み込んで、ファームウェア転送情報３３２に登録する。これにより、ファームウェア転送情報３３２には、ストレージシステムに含まれる、ファームウェアの更新対象になり得るすべての装置についての装置種別および装置ＩＤが記録される。
【０１１０】
転送要否フラグは、対応する装置に対してファームウェアを転送するか否かを示すフラグ情報である。転送処理部３１２は、例えば、装置にファームウェアを転送する場合、対応する転送要否フラグに「１」を登録し、転送しない場合、対応する転送要否フラグに「０」を登録する。
【０１１１】
転送結果フラグは、対応する装置に対するファームウェアの転送処理が正常に完了したか否かを示すフラグ情報である。転送処理部３１２は、例えば、ファームウェアの転送処理が正常に完了した場合、転送結果フラグに「１」を登録し、正常に完了しなかった場合、転送結果フラグに「０」を登録する。なお、転送処理部３１２は、転送要否フラグが「０」である装置に対応する転送結果フラグには、「１」、「０」のいずれも登録せずに、例えば「ＮＵＬＬ」を登録する。
【０１１２】
なお、ファームウェア転送情報３３２は、図１０に示す転送処理部３１２の処理が終了した後、更新制御部３１３からも参照される。
以下、図１０に戻って説明する。
【０１１３】
ステップＳ３３において、転送処理部３１２は、ストレージ装置に含まれるすべての装置のファームウェア更新処理部に対して、実行中のファームウェアの版数を問い合わせる。ここで言うファームウェア更新処理部は、例えば、図６に示したファームウェア更新処理部１４０，４１０，５７０に対応する。転送処理部３１２は、問い合わせ先の各装置から返信されたファームウェアの版数と、ステップＳ３２で処理対象に指定された総合版数が付与されたダウンロード領域２２０に格納された、対応するファームウェアの版数とを比較する。
【０１１４】
転送処理部３１２は、比較した版数同士が一致した場合、ファームウェアの更新が不要であると判定して、ファームウェア転送情報３３２において対応する装置に対応付けられた転送要否フラグに「０」を登録する。一方、転送処理部３１２は、比較した版数同士が一致しなかった場合、ファームウェアの更新が必要であると判定して、ファームウェア転送情報３３２において対応する装置に対応付けられた転送要否フラグに「１」を登録する。
【０１１５】
続いて、転送処理部３１２は、ファームウェア転送情報３３２の転送要否フラグが「１」である装置に対してファームウェアを転送する処理を、決められた順番に従って装置種別ごとに実行する。
【０１１６】
［ステップＳ３４］転送処理部３１２は、転送要否フラグが「１」であるＶＬＰに対してファームウェアを転送し、転送先のＶＬＰが備えるファームウェア領域の一方に格納する。
【０１１７】
［ステップＳ３５］転送処理部３１２は、転送要否フラグが「１」であるＩＣＰに対してファームウェアを転送し、転送先のＩＣＰが備えるファームウェア領域４１１の一方に格納する。
【０１１８】
［ステップＳ３６］転送処理部３１２は、転送要否フラグが「１」であるＩＤＰに対してファームウェアを転送し、転送先のＩＤＰが備えるファームウェア領域の一方に格納する。
【０１１９】
［ステップＳ３７］転送処理部３１２は、転送要否フラグが「１」であるＰＬＰに対してファームウェアを転送し、転送先のＰＬＰが備えるファームウェア領域の一方に格納する。
【０１２０】
［ステップＳ３８］転送処理部３１２は、転送要否フラグが「１」であるディスクアレイ装置に対してファームウェアを転送し、転送先のディスクアレイ装置が備えるファームウェア領域に格納する。
【０１２１】
［ステップＳ３９］転送処理部３１２は、転送要否フラグが「１」であるテープライブラリ装置に対してファームウェアを転送し、転送先のテープライブラリ装置が備えるファームウェア領域１４１に格納する。
【０１２２】
［ステップＳ４０］転送処理部３１２は、転送要否フラグが「１」であるＦＣスイッチに対してファームウェアを転送し、転送先のＦＣスイッチが備えるファームウェア領域に格納する。
【０１２３】
［ステップＳ４１］転送処理部３１２は、転送要否フラグが「１」であるＬＡＮスイッチに対してファームウェアを転送し、転送先のＬＡＮスイッチが備えるファームウェア領域５７１に格納する。
【０１２４】
ここで、転送処理部３１２は、上記のステップＳ３４〜Ｓ４０の各処理ステップにおいて、ＬＡＮインタフェース３０８を介してファームウェアを転送する。このため、ファームウェアは、いくつかのＬＡＮスイッチを介して転送される。転送処理部３１２は、ＬＡＮスイッチへのファームウェアの転送を、他の装置へのファームウェアの転送の後に実行する。これにより、ＬＡＮスイッチが、内部のファームウェアが書き替えられたことに起因する異常の発生によって正常な動作をしなくなり、他の装置へファームウェアを転送できなくなる事態の発生を防止することができる。
【０１２５】
［ステップＳ４２］転送処理部３１２は、転送したファームウェアを有効化するための有効化制御処理を続けて実行するかを問い合わせるための表示情報を、ディスプレイ３０４ａに表示させる。保守管理者の入力操作により、有効化制御処理を続けて転送するように指示された場合（Ｓ４２：Ｙｅｓ）、転送処理部３１２はステップＳ４３の処理を実行する。一方、有効化制御処理を続けて実行しないという指示を受けた場合（Ｓ４２：Ｎｏ）、転送処理部３１２は処理を終了する。
【０１２６】
［ステップＳ４３］転送処理部３１２は、更新制御部３１３に対して有効化制御処理の開始を指示する。
次に、上記のステップＳ３４〜Ｓ４１の各処理ステップでの処理手順について、図１２を用いて説明する。図１２は、装置種別ごとのファームウェア転送処理手順の例を示すフローチャートである。この図１２の処理は、装置種別ごとに実行される。
【０１２７】
［ステップＳ６１］転送処理部３１２は、ファームウェア転送情報３３２の転送要否フラグを参照し、処理対象の装置種別の装置の中にファームウェアを転送するべき装置があるかを判定する。転送処理部３１２は、転送するべき装置がある場合（Ｓ６１：Ｙｅｓ）、ステップＳ６２の処理を実行し、転送するべき装置がない場合（Ｓ６１：Ｎｏ）、ステップＳ６４の処理を実行する。
【０１２８】
［ステップＳ６２］転送処理部３１２は、図１０のステップＳ３２で指定した総合版数に対応するダウンロード領域２２０から、処理対象の装置種別に対応するファームウェアを読み出す。そして、転送処理部３１２は、読み出したファームウェアを、処理対象の装置種別の装置のうち、転送要否フラグが「１」である装置に対して転送する。これとともに、転送処理部３１２は、転送先の装置のファームウェア更新処理部に対して、ファームウェアの格納を指示する。ファームウェアの転送先の装置では、格納指示を受けたファームウェア更新処理部が、２つのファームウェア領域のうち現在実行中のファームウェアが格納されている領域とは別の領域に、受信したファームウェアを格納する。
【０１２９】
［ステップＳ６３］転送処理部３１２は、ファームウェアの転送先の装置ごとに、転送結果を確認する。転送処理部３１２は、ファームウェア転送情報３３２における転送先装置に対応する転送結果フラグの欄に、転送結果に応じた値を登録する。転送処理部３１２は、転送処理が正常に完了した場合、転送結果フラグに「１」を登録し、転送処理が正常に完了しなかった場合、転送結果フラグに「０」を登録する。
【０１３０】
ここで、転送結果の確認方法としては、種々の方法を採ることができる。例えば、転送処理部３１２は、ファームウェアのデータに誤り検出用の信号を付加して各装置に送信する。ファームウェアを受信した各装置のファームウェア更新処理部は、付加された誤り検出用の信号を基にファームウェアの受信が正常に完了したかを判定し、判定結果を転送処理部３１２に返信する。転送処理部３１２は、受信した判定結果から転送結果を確認できる。なお、転送処理部３１２は、ファームウェアの転送が正常に完了しなかった場合、ファームウェアの転送をリトライし、リトライによってもファームウェアの転送が正常に完了しなかった場合に、転送先装置に対応する転送結果フラグに「０」を登録してもよい。
【０１３１】
なお、ステップＳ６３において、転送処理部３１２は、処理対象の種別の装置のうち、ファームウェアの転送が不要と判定した装置に対応する転送結果フラグに、「Ｎｕｌｌ」を登録する。
【０１３２】
［ステップＳ６４］転送処理部３１２は、処理対象の種別の装置のすべてに対応する転送結果フラグに、「Ｎｕｌｌ」を登録する。
次に、更新制御部３１３の処理について説明する。更新制御部３１３は、転送したファームウェアを有効化するための有効化制御処理と、有効化が完了した装置を再起動させる再起動制御処理とを、続けて実行する。また、更新制御部３１３は、有効化制御処理の際に、ファームウェア転送処理における転送結果に基づく装置種別ごとの条件に従って、有効化処理を実行させる装置を決定する。さらに、更新制御部３１３は、再起動制御処理の際に、有効化処理の実行結果に基づく装置種別ごとの条件に従って、再起動させる装置を決定する。このような更新制御部３１３の処理により、ファームウェア更新処理の実行状況に起因する、ストレージシステムにおける処理の異常が発生しないようにする。
【０１３３】
図１３は、有効化制御処理の手順の例を示すフローチャートである。更新制御部３１３は、図１０のステップＳ４３で転送処理部３１２から有効化制御処理の開始を指示されたとき、あるいは、保守管理者の入力操作によって有効化制御処理の開始が指示されたときに、図１３の処理を実行する。
【０１３４】
［ステップＳ８１］更新制御部３１３は、ファームウェア有効化情報をＲＡＭ３０２に生成する。更新制御部３１３は、有効化制御処理の対象とする装置を判定し、判定した装置の装置種別および装置ＩＤをファームウェア有効化情報に登録する。具体的には、更新制御部３１３は、ファームウェア転送情報３３２における転送要否フラグが「１」である装置、すなわちファームウェアの転送が必要とされていた装置についての装置種別および装置ＩＤを、ファームウェア有効化情報に登録する。
【０１３５】
ここで、図１４は、ファームウェア有効化情報に登録される情報の例を示す図である。
ファームウェア有効化情報３３３には、装置種別および装置ＩＤに対応付けて有効化結果フラグが登録される。前述のように、ファームウェア有効化情報３３３には、ファームウェア転送情報３３２における転送要否フラグが「１」である装置についての装置種別および装置ＩＤが登録される。
【０１３６】
有効化結果フラグは、対応する装置における有効化処理の結果を示すフラグ情報である。有効化処理とは、対応する装置のファームウェア更新処理部が、その装置内の有効化フラグを更新する処理である。有効化結果フラグが「１」である場合、対応する装置での有効化処理が正常に完了したことを示す。有効化結果フラグが「０」である場合、対応する装置での有効化処理が正常に完了していないことを示す。
【０１３７】
なお、ファームウェア有効化情報３３３は、図１３に示す有効化制御処理が終了した後、次の再起動制御処理において更新制御部３１３から参照される。
以下、図１３に戻って説明する。更新制御部３１３は、ファームウェア有効化情報３３３に登録された装置に対して有効化処理の実行を指示する処理を、決められた順番に従って装置種別ごとに実行する。
【０１３８】
［ステップＳ８２］更新制御部３１３は、ファームウェア転送情報３３２における制御サーバに対応する転送結果フラグに応じて、有効化処理を実行させる制御サーバを決定し、決定した制御サーバに有効化処理の実行を指示する。
【０１３９】
［ステップＳ８３］更新制御部３１３は、ファームウェア転送情報３３２におけるディスクアレイ装置２００に対応する転送結果フラグに応じて、ディスクアレイ装置２００に有効化処理を実行させるか否かを決定する。転送結果フラグが「１」の場合、更新制御部３１３は、ディスクアレイ装置２００に有効化処理の実行を指示する。
【０１４０】
［ステップＳ８４］更新制御部３１３は、ファームウェア転送情報３３２におけるテープライブラリ装置に対応する転送結果フラグに応じて、有効化処理を実行させるテープライブラリ装置を決定し、決定したテープライブラリ装置に有効化処理の実行を指示する。
【０１４１】
［ステップＳ８５］更新制御部３１３は、ファームウェア転送情報３３２におけるＦＣスイッチに対応する転送結果フラグに応じて、有効化処理を実行させるＦＣスイッチを決定し、決定したＦＣスイッチに有効化処理の実行を指示する。
【０１４２】
［ステップＳ８６］更新制御部３１３は、ファームウェア転送情報３３２におけるＬＡＮスイッチに対応する転送結果フラグに応じて、有効化処理を実行させるＬＡＮスイッチを決定し、決定したＬＡＮスイッチに有効化処理の実行を指示する。
【０１４３】
以上の図１３の処理が終了すると、更新制御部３１３は、後述する再起動制御処理を実行する。
次に、装置種別ごとの有効化指示処理について説明する。本実施の形態では例として、実行されるファームウェアの版数に関し、装置種別ごとに次のような条件が与えられているものとする。
【０１４４】
（条件１）同一種別の装置は、同一版数のファームウェアを実行しなければならない。同一種別の複数の装置が互いに異なる版数のファームウェアを実行した場合、ファームウェアの不整合によって装置が誤動作する可能性がある。
【０１４５】
（条件２）冗長化された同一種別の制御サーバのうち少なくとも１つがファームウェアの更新に成功した場合、更新に成功した制御サーバのみ動作することで仮想ディスクドライブへのアクセスサービスの運用を継続できる。
【０１４６】
（条件３）異なる種別の制御サーバでは一斉にファームウェアが更新され、異なる種別の制御サーバは、同一版数のファームウェアを実行しなければならない。異なる種別の複数の制御サーバが互いに異なる版数のファームウェアを実行した場合、ファームウェアの不整合によって制御サーバが誤動作する可能性がある。
【０１４７】
（条件４）制御サーバ以外の装置と、その装置とは別の種別の装置との間では、ファームウェアの不整合による動作異常は発生しない。
以上の条件から、本実施の形態では、制御サーバとそれ以外の装置とで、転送結果フラグに基づいて有効化処理を実行させる装置を決定する際の条件を異なるものとする。
【０１４８】
図１５は、制御サーバに対する有効化指示処理手順の例を示すフローチャートである。この図１５の処理は、図１３のステップＳ８２の処理に対応する。
［ステップＳ１０１］更新制御部３１３は、処理対象の装置種別を選択する。なお、更新制御部３１３は、ＶＬＰ、ＩＣＰ、ＩＤＰ、ＰＬＰの順に装置種別を選択するものとする。
【０１４９】
［ステップＳ１０２］更新制御部３１３は、ファームウェア転送情報３３２から、ファームウェア有効化情報３３３に登録した処理対象の装置種別に対応する装置ＩＤに対応付けられた転送結果フラグを読み出す。更新制御部３１３は、読み出した転送結果フラグの少なくとも１つが「１」である場合、すなわち、ファームウェアの転送が必要な装置の中に転送処理に成功した装置が少なくとも１つある場合（Ｓ１０２：Ｙｅｓ）、ステップＳ１０３の処理を実行する。一方、更新制御部３１３は、読み出したすべての転送結果フラグが「０」である場合、すなわち、ファームウェアの転送が必要なすべての装置に対する転送処理に失敗していた場合（Ｓ１０２：Ｎｏ）、ステップＳ１０７の処理を実行する。
【０１５０】
［ステップＳ１０３］更新制御部３１３は、ステップＳ１０２で読み出した転送結果フラグが「０」である装置、すなわち、ファームウェアの転送処理に失敗した装置に対応するファームウェア有効化情報３３３の有効化結果フラグに、「０」を登録する。
【０１５１】
［ステップＳ１０４］更新制御部３１３は、ステップＳ１０２で読み出した転送結果フラグが「１」である装置、すなわち、ファームウェアの転送処理に成功した装置が備えるファームウェア更新処理部に対して、有効化処理の実行を指示する。指示を受けた装置のファームウェア更新処理部は、起動フラグを、現在実行中のファームウェアが格納されているファームウェア領域とは別のファームウェア領域を示すように更新する。
【０１５２】
［ステップＳ１０５］更新制御部３１３は、有効化処理の実行を指示した装置における有効化処理結果を確認する。更新制御部３１３は、例えば、有効化処理の実行を指示した装置のファームウェア更新処理部から、有効化処理に成功したか否かを示す情報を受信する。更新制御部３１３は、有効化処理に成功した装置に対応する有効化結果フラグに「１」を登録し、有効化処理に失敗した装置に対応する有効化結果フラグに「０」を登録する。なお、更新制御部３１３は、有効化処理の実行指示先装置が有効化処理に失敗したと判定したとき、その装置に対する有効化処理の実行指示をリトライし、リトライの結果に応じて有効化結果フラグを登録してもよい。
【０１５３】
［ステップＳ１０６］更新制御部３１３は、制御サーバの装置種別のすべてを処理対象として選択したかを判定する。処理対象として選択していない装置種別がある場合（Ｓ１０６：Ｎｏ）、更新制御部３１３は、ステップＳ１０１に戻り、あらかじめ決められた次の装置種別を処理対象として選択する。一方、すべての装置種別を処理対象として選択済みである場合（Ｓ１０６：Ｙｅｓ）、更新制御部３１３は、図１３のステップＳ８３の処理を実行する。
【０１５４】
［ステップＳ１０７］処理対象の装置種別のすべての制御サーバに対するファームウェアの転送が失敗した場合（Ｓ１０２：Ｎｏ）、更新制御部３１３は、処理対象の装置種別の装置を含むすべての制御サーバに対応する有効化結果フラグに「０」を登録する。このとき、更新制御部３１３は、すでに「１」が登録されている有効化結果フラグも「０」に書き替える。
【０１５５】
後述するように、有効化結果フラグが「０」である制御サーバはシャットダウンされ、再起動しない。従って、ステップＳ１０７の処理により、同一種別のすべての制御サーバに対するファームウェアの転送が失敗した場合、すべての種別の制御サーバがシャットダウンされる。これにより、上記の条件（２），（３）が満たされることになる。
【０１５６】
図１６は、制御サーバ以外の装置に対する有効化指示処理手順の例を示すフローチャートである。この図１６の処理は、図１３のステップＳ８３〜Ｓ８６の各処理に対応する。すなわち、更新制御部３１３は、ディスクアレイ装置、テープライブラリ装置、ＦＣスイッチおよびＬＡＮスイッチのいずれかの装置種別を処理対象として選択して、図１６の処理を実行する。
【０１５７】
［ステップＳ１２１］更新制御部３１３は、ファームウェア転送情報３３２から、ファームウェア有効化情報３３３に登録した処理対象の装置種別に対応する装置ＩＤに対応付けられた転送結果フラグを読み出す。更新制御部３１３は、転送結果フラグが「０」である装置、すなわち、ファームウェアの転送処理に失敗した装置に対応するファームウェア有効化情報３３３の有効化結果フラグに、「０」を登録する。
【０１５８】
［ステップＳ１２２］更新制御部３１３は、ステップＳ１２１で読み出した転送結果フラグが「１」である装置、すなわち、ファームウェアの転送処理に成功した装置が備えるファームウェア更新処理部に対して、有効化処理の実行を指示する。指示を受けた装置のファームウェア更新処理部は、起動フラグを、現在実行中のファームウェアが格納されているファームウェア領域とは別のファームウェア領域を示すように更新する。
【０１５９】
［ステップＳ１２３］更新制御部３１３は、図１５のステップＳ１０５と同様の手順で、有効化処理の実行を指示した装置における有効化処理結果を確認する。更新制御部３１３は、有効化処理に成功した装置に対応する有効化結果フラグに「１」を登録し、有効化処理に失敗した装置に対応する有効化結果フラグに「０」を登録する。
【０１６０】
以上の図１６の処理によれば、制御サーバ以外の装置に関しては、ファームウェアの転送処理が成功した装置の有効化結果フラグが「１」とされ、転送処理が失敗した装置の有効化結果フラグが「０」とされる。
【０１６１】
次に、更新制御部３１３による再起動制御処理について説明する。再起動制御処理では、上記の条件（１）〜（４）を満たすように、制御サーバとそれ以外の装置とで、有効化結果フラグに基づいて再起動させる装置を決定する際の条件を異なるものとする。
【０１６２】
図１７は、再起動制御処理の手順の例を示すフローチャートである。更新制御部３１３は、図１３の処理が終了した後、図１７の処理を続けて実行する。
［ステップＳ１４１］更新制御部３１３は、ファームウェア有効化情報３３３に登録された有効化フラグがすべて「１」であるか判定する。すべての有効化フラグが「１」である場合（Ｓ１４１：Ｙｅｓ）、更新制御部３１３はステップＳ１４２の処理を実行する。「０」が登録された有効化フラグが１つでも存在した場合（Ｓ１４１：Ｎｏ）、更新制御部３１３はステップＳ１４３の処理を実行する。
【０１６３】
［ステップＳ１４２］更新制御部３１３は、ファームウェア有効化情報３３３に登録されたすべての装置のファームウェア更新処理部に対して、各装置を再起動させるように指示する。指示を受けたファームウェア更新処理部は、自装置をリセットして再起動させる。また、更新制御部３１３は、自装置（すなわちＶＬＰ３００ａ）がファームウェア有効化情報３３３に登録されていた場合には、自装置をリセットして再起動させる。
【０１６４】
なお、このステップＳ１４２では、更新制御部３１３は、ストレージシステム内のすべての装置を再起動させてもよい。この場合、更新制御部３１３は、ＰＣＵ６００ａ，６００ｂのいずれか（図２参照）に対して再起動の実行を指示してもよい。指示を受けたＰＣＵは、ストレージシステム内のすべての装置に対する電源供給を停止した後、再度電源供給を開始することで、すべての装置を再起動させる。
【０１６５】
一方、ファームウェア有効化情報３３３において、「０」が登録された有効化フラグが１つ以上存在する場合（Ｓ１４１：Ｎｏ）、ステップＳ１４３の処理が実行される。ステップＳ１４３以降では、更新制御部３１３は、ファームウェア有効化情報３３３に登録された装置を再起動させる処理を、決められた順番に従って装置種別ごとに実行する。
【０１６６】
［ステップＳ１４３］更新制御部３１３は、ファームウェア有効化情報３３３における制御サーバに対応する有効化フラグに応じて、再起動させる制御サーバを決定し、決定した制御サーバを再起動させる。ただし、更新制御部３１３は、自装置（すなわちＶＬＰ３００ａ）を再起動の対象から除外する。
【０１６７】
［ステップＳ１４４］更新制御部３１３は、ファームウェア有効化情報３３３におけるディスクアレイ装置２００に対応する有効化フラグに応じて、ディスクアレイ装置２００を再起動させるかを決定する。転送結果フラグが「１」の場合、更新制御部３１３は、ディスクアレイ装置２００を再起動させる。
【０１６８】
［ステップＳ１４５］更新制御部３１３は、ファームウェア有効化情報３３３におけるテープライブラリ装置に対応する有効化フラグに応じて、再起動させるテープライブラリ装置を決定し、決定したテープライブラリ装置を再起動させる。
【０１６９】
［ステップＳ１４６］更新制御部３１３は、ファームウェア有効化情報３３３におけるＦＣスイッチに対応する有効化フラグに応じて、再起動させるＦＣスイッチを決定し、決定したＦＣスイッチを再起動させる。
【０１７０】
［ステップＳ１４７］更新制御部３１３は、ファームウェア有効化情報３３３におけるＬＡＮスイッチに対応する有効化フラグに応じて、再起動させるＬＡＮスイッチを決定し、決定したＬＡＮスイッチを再起動させる。
【０１７１】
［ステップＳ１４８］更新制御部３１３は、ファームウェア有効化情報３３３における自装置（すなわちＶＬＰ３００ａ）に対応する有効化フラグが「１」の場合、自装置をリセットして再起動させる。なお、更新制御部３１３は、例えば、リセットの前に、ファームウェアの更新状況を装置ごとに示す情報を、ＶＬＰ３００ａのＨＤＤ３０３に記録する。更新状況を示す情報には、例えば、ファームウェアを更新すべき装置のうち、再起動処理を実行した装置および再起動処理を実行しなかった装置をそれぞれ識別する情報が含まれる。更新制御部３１３は、このような情報をＨＤＤ３０３に記録しておくことで、例えば、再起動後にファームウェアの更新状況をディスプレイ３０４ａに表示させ、保守作業者に通知することができる。
【０１７２】
一方、更新制御部３１３は、自装置に対応する有効化フラグが「０」の場合、自装置をシャットダウンする。この場合、更新制御部３１３は、上記のファームウェアの更新状況をディスプレイ３０４ａに表示させた後、保守作業者からの指示入力に応じて自装置をシャットダウンしてもよい。
【０１７３】
図１８は、制御サーバに対する再起動指示処理手順の例を示すフローチャートである。この図１８の処理は、図１７のステップＳ１４３に対応する。
［ステップＳ１６１］更新制御部３１３は、ファームウェア有効化情報３３３から、制御サーバに対応付けられた有効化結果フラグを、装置種別ごとに読み出す。更新制御部３１３は、対応する有効化結果フラグがすべて「０」である装置種別があるかを判定する。有効化結果フラグがすべて「０」である装置種別がない場合、すなわち、すべての装置種別について、ファームウェアの更新が必要な制御サーバのうちの少なくとも１つにおいて有効化処理に成功していた場合（Ｓ１６１：Ｎｏ）、更新制御部３１３はステップＳ１６２の処理を実行する。一方、有効化結果フラグがすべて「０」である装置種別がある場合、すなわち、ファームウェアの更新が必要な同一種別の制御サーバのすべてにおいて有効化処理に失敗していた場合（Ｓ１６１：Ｙｅｓ）、更新制御部３１３はステップＳ１６６の処理を実行する。
【０１７４】
［ステップＳ１６２］更新制御部３１３は、処理対象の装置種別を選択する。なお、更新制御部３１３は、ＶＬＰ、ＩＣＰ、ＩＤＰ、ＰＬＰの順に装置種別を選択するものとする。
【０１７５】
［ステップＳ１６３］更新制御部３１３は、ファームウェア有効化情報３３３に基づき、処理対象として選択した装置種別の装置ＩＤのうち、有効化結果フラグが「０」である装置ＩＤを判別する。更新制御部３１３は、判別した装置ＩＤに対応する装置のファームウェア更新処理部に、シャットダウンを指示する。指示を受けた装置のファームウェア更新処理部は、自装置をシャットダウンする。ただし、更新制御部３１３は、自装置（すなわちＶＬＰ３００ａ）についてはシャットダウンしない。
【０１７６】
［ステップＳ１６４］更新制御部３１３は、ファームウェア有効化情報３３３に基づき、処理対象として選択した装置種別の装置ＩＤのうち、有効化結果フラグが「１」である装置ＩＤを判別する。更新制御部３１３は、判別した装置ＩＤに対応する装置のファームウェア更新処理部に、再起動を指示する。指示を受けた装置のファームウェア更新処理部は、自装置をリセットして再起動させる。ただし、更新制御部３１３は、自装置（すなわちＶＬＰ３００ａ）については再起動させない。
【０１７７】
上記のステップＳ１６３，Ｓ１６４の処理により、同一種別の制御サーバに関して上記の条件（１），（２）が満たされるようになる。
［ステップＳ１６５］更新制御部３１３は、制御サーバの装置種別のすべてを処理対象として選択したかを判定する。処理対象として選択していない装置種別がある場合（Ｓ１６５：Ｎｏ）、更新制御部３１３は、ステップＳ１６２に戻り、あらかじめ決められた次の装置種別を処理対象として選択する。一方、すべての装置種別を処理対象として選択済みである場合（Ｓ１６５：Ｙｅｓ）、更新制御部３１３は、図１７のステップＳ１４４の処理を実行する。
【０１７８】
［ステップＳ１６６］処理対象の装置種別のすべての制御サーバに対応する有効化結果フラグが「０」である場合（Ｓ１６１：Ｙｅｓ）、更新制御部３１３は、処理対象の装置種別の装置を含むすべての制御サーバのファームウェア更新処理部に、シャットダウンを指示する。指示を受けた制御サーバのファームウェア更新処理部は、自装置をシャットダウンする。この処理により、制御サーバに関して上記の条件（２），（３）が満たされるようになる。ただし、更新制御部３１３は、自装置（すなわちＶＬＰ３００ａ）についてはシャットダウンせず、図１７のステップＳ１４８において自装置をシャットダウンする。
【０１７９】
図１９は、制御サーバ以外の装置に対する再起動指示処理手順の例を示すフローチャートである。この図１９の処理は、図１７のステップＳ１４４〜Ｓ１４７の各処理に対応する。すなわち、更新制御部３１３は、ディスクアレイ装置、テープライブラリ装置、ＦＣスイッチおよびＬＡＮスイッチのいずれかの装置種別を処理対象として選択して、図１９の処理を実行する。
【０１８０】
［ステップＳ１８１］更新制御部３１３は、ファームウェア有効化情報３３３から、処理対象の装置種別に対応する装置ＩＤに対応付けられた有効化結果フラグを読み出す。更新制御部３１３は、読み出した有効化結果フラグが「０」である装置のファームウェア更新処理部に、シャットダウンを指示する。指示を受けた装置のファームウェア更新処理部は、自装置をシャットダウンする。
【０１８１】
［ステップＳ１８２］更新制御部３１３は、ステップＳ１８１で読み出した有効化結果フラグが「１」である装置のファームウェア更新処理部に、再起動を指示する。指示を受けた装置のファームウェア更新処理部は、自装置をリセットして再起動させる。
【０１８２】
上記のステップＳ１８１，Ｓ１８２の処理により、制御サーバ以外の同一種別の装置に関して上記の条件（１），（４）が満たされるようになる。
以上説明した転送処理部３１２および更新制御部３１３の処理によれば、ファームウェアの転送結果および有効化処理結果に基づいて、装置で実行させるファームウェアを更新するか、あるいは装置をシャットダウンするかが、装置種別ごとに決められた条件に従って判定される。これにより、上記の条件（１）〜（４）を満たす状態で仮想テープドライブへのアクセスサービスの運用を再開することができ、サービス再開後における誤動作の発生確率を抑制することができる。
【０１８３】
また、装置で実行させるファームウェアを更新するか、あるいは装置をシャットダウンするかの判定をＶＬＰ３００ａが自動判定するため、ストレージシステムに含まれる装置の数が多い場合の保守作業者の作業の負担を軽減でき、ファームウェアの更新に要する時間を短縮できる。また、仮想テープドライブへのアクセスサービスの運用停止時間を短縮することもできる。
【０１８４】
なお、例えば、図１８のステップＳ１６３や図１９のステップＳ１８１では、有効化結果フラグが「０」である装置がシャットダウンされた。しかしながら、例えば、同一種別の複数の装置が互いに異なる版数のファームウェアを実行してもファームウェアの不整合による異常が発生しないような場合には、上記各ステップではシャットダウンが行われなくてもよい。この場合、ファームウェアの転送に失敗した装置、あるいは、ファームウェアの転送には成功したもののその有効化に失敗した装置は、実行するファームウェアが変更されないまま動作し続ける。この場合、同一種別の装置の冗長性を維持することができる。
【０１８５】
その一方で、ファームウェアの転送や有効化に失敗した装置は、内部で異常が発生している可能性が高いため、再起動して使用し続けた場合だけでなく、再起動せずに使用し続けた場合でも、安定的に動作できない可能性がある。更新制御部３１３は、このような装置をシャットダウンすることで、システム全体の動作を安定化することができる。
【０１８６】
なお、上記の各実施の形態に示した制御サーバなどの各装置の処理機能は、コンピュータによって実現することができる。その場合、各通信装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８９】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置において、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送する転送制御部と、
前記１または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力する更新制御部と、
を有することを特徴とする制御装置。
【０１９０】
（付記２）  前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記１記載の制御装置。
【０１９１】
（付記３）  前記更新制御部は、前記複数の電子機器のうち、複数の第１の種別の電子機器のすべてに対する前記転送制御部からの更新プログラムの転送が正常に完了しなかった場合、すべての前記第１の種別の電子機器をシャットダウンさせるとともに、前記複数の電子機器のうち、あらかじめ決められた複数の第２の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記１または２記載の制御装置。
【０１９２】
（付記４）  前記更新制御部は、複数の前記第１の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、複数の前記第２の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第１の種別の電子機器および前記第２の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第１の種別の電子機器および前記第２の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記３記載の制御装置。
【０１９３】
（付記５）  前記更新処理は、更新プログラムの転送先の電子機器が、再起動後に実行するプログラムを示すプログラム指定情報を前記転送制御部から転送された更新プログラムを示すように書き替えるプログラム有効化処理と、前記転送先の電子機器が再起動する再起動処理とを含み、
前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器と、前記プログラム有効化処理が正常に完了しなかった電子機器とを、前記再起動処理を実行させる機器から除外する、
ことを特徴とする付記１〜４のいずれか１つに記載の制御装置。
【０１９４】
（付記６）  前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、前記プログラム有効化処理が正常に完了した電子機器に、前記再起動処理を実行させることを特徴とする付記５記載の制御装置。
【０１９５】
（付記７）  複数の種別の電子機器のそれぞれのための各プログラムを可搬型記憶媒体から読み込み、所定のファームウェア用記憶領域に格納するファームウェア格納処理部をさらに有し、
前記転送制御部は、前記ファームウェア用記憶領域からファームウェアを読み出し、当該ファームウェアを実行させる電子機器に転送する、
ことを特徴とする付記１〜７のいずれか１つに記載の制御装置。
【０１９６】
（付記８）  前記ファームウェア用記憶領域は、前記複数の電子機器のうちの１つが備える記憶装置に設けられることを特徴とする付記７記載の制御装置。
（付記９）  複数の電子機器と、前記複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置とを備え、
前記制御装置は、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送する転送制御部と、
前記１または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力する更新制御部と、
を有することを特徴とする制御システム。
【０１９７】
（付記１０）  前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記９記載の制御システム。
【０１９８】
（付記１１）  前記更新制御部は、複数の第１の種別の電子機器のすべてに対する前記転送制御部からの更新プログラムの転送が正常に完了しなかった場合、すべての前記第１の種別の電子機器をシャットダウンさせるとともに、あらかじめ決められた複数の第２の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記９または１０記載の制御システム。
【０１９９】
（付記１２）  前記更新制御部は、複数の前記第１の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、複数の前記第２の種別の電子機器のうちの少なくとも１つに対する前記転送制御部からの更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第１の種別の電子機器および前記第２の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第１の種別の電子機器および前記第２の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記１１記載の制御システム。
【０２００】
（付記１３）  複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置における制御方法であって、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、
取得した版数に応じた更新プログラムを、前記複数の電子機器のうち１または複数の電子機器に転送し、
前記１または複数の電子機器から更新プログラムの転送が正常に完了したか否かに関する情報を取得し、
更新プログラムの転送が正常に完了した電子機器に対して、転送した更新プログラムへの更新処理を実行させる指示を出力する、
ことを特徴とする制御方法。
【０２０１】
（付記１４）  前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記１３記載の制御方法。
【０２０２】
（付記１５）  前記更新処理を実行させる指示を出力する処理では、前記複数の電子機器のうち、複数の第１の種別の電子機器のすべてに対する更新プログラムの転送が正常に完了しなかった場合、すべての前記第１の種別の電子機器をシャットダウンさせるとともに、前記複数の電子機器のうち、あらかじめ決められた複数の第２の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記１３または１４記載の制御方法。
【０２０３】
（付記１６）  前記更新処理を実行させる指示を出力する処理では、複数の前記第１の種別の電子機器のうちの少なくとも１つに対する更新プログラムの転送が正常に完了し、かつ、複数の前記第２の種別の電子機器のうちの少なくとも１つに対する更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第１の種別の電子機器および前記第２の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第１の種別の電子機器および前記第２の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記１５記載の制御方法。
【０２０４】
（付記１７）  前記更新処理は、更新プログラムの転送先の電子機器が、再起動後に実行するプログラムを示すプログラム指定情報を前記制御装置から転送された更新プログラムを示すように書き替えるプログラム有効化処理と、前記転送先の電子機器が再起動する再起動処理とを含み、
前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了しなかった電子機器と、前記プログラム有効化処理が正常に完了しなかった電子機器とを、前記再起動処理を実行させる機器から除外する、
ことを特徴とする付記１３〜１６のいずれか１つに記載の制御方法。
【０２０５】
（付記１８）  前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了し、かつ、前記プログラム有効化処理が正常に完了した電子機器に、前記再起動処理を実行させることを特徴とする付記１７記載の制御方法。
【０２０６】
（付記１９）  複数の種別の電子機器のそれぞれのための各プログラムを可搬型記憶媒体から読み込み、所定のファームウェア用記憶領域に格納する処理をさらに含み、
前記更新処理を実行させる指示を出力する処理では、前記ファームウェア用記憶領域からファームウェアを読み出し、当該ファームウェアを実行させる電子機器に転送する、
ことを特徴とする付記１３〜１８のいずれか１つに記載の制御方法。
【０２０７】
（付記２０）  前記ファームウェア用記憶領域は、前記複数の電子機器のうちの１つが備える記憶装置に設けられることを特徴とする付記１９記載の制御方法。
【符号の説明】
【０２０８】
１  制御システム
１０  制御装置
１１  転送制御部
１２  更新制御部
２１〜２３  電子機器
【図１】
0005825123.tif 000002
【図２】
0005825123.tif 000003
【図３】
0005825123.tif 000004
【図４】
0005825123.tif 000005
【図５】
0005825123.tif 000006
【図６】
0005825123.tif 000007
【図７】
0005825123.tif 000008
【図８】
0005825123.tif 000009
【図９】
0005825123.tif 000010
【図１０】
0005825123.tif 000011
【図１１】
0005825123.tif 000012
【図１２】
0005825123.tif 000013
【図１３】
0005825123.tif 000014
【図１４】
0005825123.tif 000015
【図１５】
0005825123.tif 000016
【図１６】
0005825123.tif 000017
【図１７】
0005825123.tif 000018
【図１８】
0005825123.tif 000019
【図１９】
0005825123.tif 000020