以下、実施の形態について図面を参照して詳細に説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る制御システムの構成例とその動作例を示す図である。
制御システム1は、制御装置10と、複数の電子機器21〜23とを備える。電子機器21〜23は、それぞれの装置が備えるCPU(Central Processing Unit)がプログラムを実行することによって所定の動作を行うコンピュータ装置である。なお、制御システム1が備える電子機器の数は任意であり、例えば、10個以上といった多数の電子機器を制御システム1が備えることができる。また、電子機器21〜23は互いに接続して協働するようにしてもよい。
制御装置10は、複数の電子機器21〜23に接続され、電子機器21〜23に実行させるプログラムを更新する処理を実行可能である。制御装置10は、プログラム更新のための処理機能として、転送制御部11および更新制御部12を備える。
転送制御部11は、電子機器21〜23のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、電子機器21〜23のうちの1または複数の電子機器に転送する。例えば、転送制御部11は、電子機器から取得したプログラムの版数が、更新プログラムの版数より古い場合に、その電子機器に対して更新プログラムを転送する。
更新制御部12は、更新プログラムの転送先の電子機器から、転送制御部11による更新プログラムの転送が正常に完了したか否かを示す情報を取得する。更新制御部12は、取得した情報に基づき、更新プログラムの転送が正常に完了した電子機器に対して、転送制御部11から転送した更新プログラムへの更新処理を実行させる指示を出力する。
図1の例では、転送制御部11が電子機器21〜23にプログラムを転送した際に、電子機器23に対するプログラムの転送処理に異常が発生し、転送処理が正常に完了しなかったものとする。この場合、更新制御部12は、転送処理が正常に完了した電子機器21,22に対しては、プログラム更新処理の実行を指示する。これにより、電子機器21,22は、転送制御部11から新たに転送された更新プログラムを実行し、電子機器21,22でのプログラム更新が完了する。一方、更新制御部12は、転送処理が正常に完了しなかった電子機器23に対しては、プログラム更新処理の実行を指示しない。
上記処理によれば、更新制御部12は、更新プログラムの転送処理が正常に完了しなかった電子機器23でプログラム更新処理が実行されないように制御する。これにより、プログラム更新処理が実行されたことに起因する、電子機器23での異常の発生可能性を低減できる。
例えば、電子機器23がプログラム更新処理を実行した場合、実行後の電子機器23は、転送制御部11から電子機器23に転送された不完全なプログラムを実行してしまう。この場合、電子機器23の動作が不安定になる、あるいは電子機器23が動作不可能になるといった異常が発生する可能性がある。また、電子機器23に対する更新プログラムの転送処理が完了しなかった原因が、電子機器23自体の異常にある可能性もある。この場合、電子機器23がプログラム更新処理を実行することによって、電子機器23でさらに深刻な異常が発生する可能性もある。更新制御部12によって電子機器23がプログラム更新処理を実行させる機器から除外されることで、電子機器23において上記のような異常が発生しにくくなる。
換言すれば、更新制御部12は、電子機器ごとの更新プログラム転送処理結果に基づいて、更新プログラム転送先の電子機器の中から、プログラム更新処理を実行させても異常が発生しない電子機器を判別し、判別した電子機器にのみプログラム更新処理を実行させることができる。これにより、更新制御部12は、プログラム更新処理が実行された後の制御システムの動作の安定性を維持することができる。
さらに、電子機器への更新プログラムの転送が正常に完了しなかったことを検知し、その結果に応じてプログラム更新処理を実行させる機器を決定する処理を、更新制御部12が実行するようにしたことで、作業者が何ら確認作業を行わずに、制御システム1の動作の安定性が維持される。従って、プログラム更新作業を行う作業者の負担を軽減することもできる。
〔第2の実施の形態〕
次に、制御システムとしてストレージシステムを例示して説明する。
図2は、第2の実施の形態に係るストレージシステムの全体構成例を示す図である。図2に示すストレージシステムは、仮想テープ装置110と、テープライブラリ装置120a,120bとを備える。
テープライブラリ装置120a,120bのそれぞれの内部には、多数の磁気テープが収容されている。テープライブラリ装置120a,120bのそれぞれは、内部に収容された磁気テープを用いた記録・再生を行う1つ以上のテープドライブ、テープドライブに対して磁気テープを搬送する搬送機構などを備える。なお、ストレージシステムに設けられるテープライブラリ装置の数は、1つのみであっても、あるいは3つ以上であってもよい。
仮想テープ装置110には、ホスト装置150が接続されている。また、仮想テープ装置110は、複数のHDDが搭載されたディスクアレイ装置200を備える。仮想テープ装置110は、ディスクアレイ装置200内のHDDを、テープライブラリ装置120a,120bに収容された磁気テープに記録されたデータをキャッシュするキャッシュ装置として使用する。そして、仮想テープ装置110は、テープライブラリ装置120a,120bに収容された多数の磁気テープによって実現される大容量の記憶領域を、ディスクアレイ装置200を通じてホスト装置150に対して仮想的に提供する。
以下、仮想テープ装置110がホスト装置150に対して仮想的に提供する記憶領域を、「仮想テープドライブ」と呼ぶ。また、仮想テープ装置110によってホスト装置150に提供される、ホスト装置150から仮想テープドライブにアクセスすることを可能にするサービスを、「仮想テープドライブへのアクセスサービス」と呼ぶ。
仮想テープ装置110は、ディスクアレイ装置200に加えて、VLP(Virtual Library Processor)300a,300b、ICP(Integrated Channel Processor)400a〜400d、IDP(Integrated Device Processor)420a〜420d、PLP(Physical Library Processor)440a,440b、FC(Fibre Channel)スイッチ500a,500b、LAN(Local Area Network)スイッチ550a〜550dおよびPCU(Power Control Unit)600a,600bを備える。
VLP300a,300b、ICP400a〜400d、IDP420a〜420dおよびPLP440a,440bは、それぞれコンピュータとして実現される。以下、VLP、ICP、IDPおよびPLPを総称して「制御サーバ」と呼ぶ。
ICP400a〜400dは、VLP300a,300bのいずれかの制御の下で、ホスト装置150とディスクアレイ装置200との間のデータ転送を制御する制御サーバである。ICP400a〜400dは、ホスト装置150との間でOCLINK(Optical Channel LINK,登録商標)規格に従って光ケーブルを介した通信を行う。なお、ICPが複数搭載されることで、ホスト装置150とディスクアレイ装置200との間のデータ転送処理の信頼性が向上されている。
IDP420a,420bは、VLP300a,300bのいずれかの制御の下で、ディスクアレイ装置200と、テープライブラリ装置120aに搭載されたテープドライブとの間のデータ転送を制御する制御サーバである。IDP420c,420dは、VLP300a,300bのいずれかの制御の下で、ディスクアレイ装置200と、テープライブラリ装置120bに搭載されたテープドライブとの間のデータ転送を制御する制御サーバである。なお、1つのテープライブラリ装置に対応付けて複数のIDPが搭載されることで、ディスクアレイ装置200とテープライブラリ装置との間のデータ転送処理の信頼性が向上されている。
PLP440aは、VLP300a,300bのいずれかの制御の下で、テープライブラリ装置120aに搭載された磁気テープの搬送機構(ロボット)を制御する制御サーバである。PLP440bは、VLP300a,300bのいずれかの制御の下で、テープライブラリ装置120bに搭載された磁気テープの搬送機構(ロボット)を制御する。
PLP440aの制御によってテープライブラリ装置120a内の所定のテープドライブに磁気テープがマウントされ、マウントされた磁気テープに対するデータアクセス処理がIDP420a,420bのいずれかによって制御される。同様に、PLP440bの制御によってテープライブラリ装置120b内の所定のテープドライブに磁気テープがマウントされ、マウントされた磁気テープに対するデータアクセス処理がIDP420c,420dのいずれかによって制御される。
VLP300a,300bは、仮想テープ装置110全体を統合的に制御する制御サーバである。また、VLP300a,300bは、仮想テープドライブへのI/O(In/Out)要求をはじめとする各種の処理要求をホスト装置150から受信し、受信した処理要求に応じて仮想テープ装置110内の他の種類の制御サーバやディスクアレイ装置200を制御する。
例えば、VLP300aは、ホスト装置150からの要求に応じて、仮想テープドライブに対して論理ボリュームを設定する。VLP300aは、設定された論理ボリュームに対するI/O要求をホスト装置150から受信し、受信したI/O要求に応じて仮想テープ装置110内の他の種類の制御サーバやディスクアレイ装置200を制御することで、論理ボリュームに対するデータのI/O処理を行う。また、VLP300aは、ディスクアレイ装置200をキャッシュ装置(テープボリュームキャッシュ)として動作させるための制御を行う。
ここで、例としてVLP300a、ICP400a、IDP420aおよびPLP440aを用いたI/O処理について説明する。まず、論理ボリュームに対してデータを書き込む際には、ホスト装置150は、書き込み要求をVLP300aに送信するとともに、書き込みデータをICP400aに送信する。ICP400aは、受信した書き込みデータをディスクアレイ装置200に格納するとともに、その格納先アドレスをVLP300aに通知する。
VLP300aは、アドレスの通知を受けた後の所定のタイミングで、ディスクアレイ装置200に格納された書き込みデータをテープライブラリ装置120a内の磁気テープにコピーするための制御処理を実行する。このとき、PLP440aは、VLP300aからの指示に応じて、テープライブラリ装置120aのテープドライブに所定の磁気テープをマウントする。そして、IDP420aは、VLP300aからの指示に応じて、書き込みデータをディスクアレイ装置200から読み出して、磁気テープがマウントされたテープライブラリ装置120a内のテープドライブに転送し、磁気テープへの書き込みを要求する。
また、論理ボリュームに記録されたデータを読み出す際には、ホスト装置150は、データの読み出し要求をVLP300aに送信する。VLP300aは、読み出しが要求された読み出しデータがディスクアレイ装置200に格納されているかを判定する。読み出しデータがディスクアレイ装置200に格納されている場合、VLP300aは、読み出しデータをディスクアレイ装置200から読み出してホスト装置150に送信するように、ICP400aに指示する。
一方、読み出しデータがディスクアレイ装置200に格納されていない場合(すなわち、キャッシュミスの場合)、VLP300aは、読み出しデータを磁気テープから読み出してディスクアレイ装置200にコピーするための制御処理を実行する。このとき、PLP440aは、VLP300aからの指示に応じて、テープライブラリ装置120aのテープドライブに、読み出しデータが記録された磁気テープをマウントする。そして、IDP420aは、VLP300aからの指示に応じて、磁気テープがマウントされたテープライブラリ装置120a内のテープドライブに、読み出しデータを出力させる。IDP420aは、テープドライブから出力された読み出しデータをディスクアレイ装置200に格納するとともに、その格納先アドレスをVLP300aに通知する。通知を受けたVLP300aは、読み出しデータをディスクアレイ装置200から読み出してホスト装置150に送信するように、ICP400aに指示する。
VLP300aは、以上のようなI/O処理の制御を行うことで、ストレージシステムを、ディスクアレイ装置200を一次ストレージ(テープボリュームキャッシュ)、テープライブラリ装置120a内の磁気テープを二次ストレージとして用いた階層型ストレージシステムとして動作させる。
VLP300bも、VLP300aと同様の処理機能を備える。ここで、VLPが複数設けられることで、仮想テープ装置110における処理の信頼性が高められている。また、VLP300a,300bのそれぞれとホスト装置150とは、複数の通信経路によって接続されている。例えば、VLP300aは、LANスイッチ550aを介してホスト装置150と接続されているとともに、LANスイッチ550c〜550dを介してホスト装置150と接続されている。このようにVLPとホスト装置150との通信経路が冗長化されることで、ホスト装置150から仮想テープドライブを利用する際の処理の信頼性が向上されている。
FCスイッチ500a,500bは、FCケーブルを介して制御サーバ間で送受信されるデータを中継する。LANスイッチ550a〜550dは、スイッチングハブと呼ばれる中継装置であり、LANケーブルを介して制御サーバ間で送受信されるデータを中継する。LANスイッチ550a,550bについては、ホスト装置150とVLPとの間で送受信されるデータも中継する。また、LANスイッチ550cについては、制御サーバとPCU600aとの間で送受信されるデータも中継し、LANスイッチ550dについては、制御サーバとPCU600bとの間で送受信されるデータも中継する。
仮想テープ装置110においては、1つのVLPと、1つのICP、1つのIDPおよびディスクアレイ装置200のそれぞれとは、複数の通信経路を通じて接続されている。例えば、VLP300aとICP400aとは、FCスイッチ500aを介して接続されているとともに、FCスイッチ500bを介して接続されている。さらに、VLP300aとICP400aとは、LANスイッチ550cを介して接続されている。また、1つのICPとディスクアレイ装置200も複数の通信経路を通じて接続され、1つのIDPとディスクアレイ装置200も複数の通信経路を通じて接続されている。このように通信経路が冗長化されることで、ホスト装置150から仮想テープボリュームへのアクセス処理の信頼性が向上されている。
PCU600a,600bは、外部から供給されるAC(Alternating Current)電圧をDC(Direct Current)電圧に変換し、仮想テープ装置110内の各装置に対して電源電圧として供給する。PCU600a,600bは、VLP300a,300bからの指示に応じて、仮想テープ装置110内の各装置に対する電源供給を一時的に停止することで、各装置を一斉に再起動させることができる。
図3は、VLPのハードウェア構成例を示す図である。なお、図3は例としてVLP300aを示すが、VLP300bについても同様のハードウェア構成によって実現される。
VLP300aは、CPU301によって装置全体が制御されている。CPU301には、RAM(Random Access Memory)302および複数の周辺機器が、バス309を介して接続されている。RAM302は、VLP300aの主記憶装置として使用され、CPU301に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
CPU301には、周辺機器の例として、HDD303、グラフィック処理装置304、入力インタフェース305、光学ドライブ装置306、FCインタフェース307およびLANインタフェース308が接続されている。
HDD303は、VLP300aの二次記憶装置として使用され、CPU301によって実行されるプログラムやその実行に必要な各種のデータなどを記憶する。なお、二次記憶装置としては、例えば、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置が使用されてもよい。
グラフィック処理装置304には、例えば、ディスプレイ304aが接続可能になっている。このグラフィック処理装置304は、CPU301からの命令に従って、ディスプレイ304aの画面上に画像を表示させる。入力インタフェース305には、例えば、所定の操作キーなどを備える入力装置305aが接続可能になっている。入力インタフェース305は、入力装置305aからの信号を、バス309を介してCPU301に送信する。なお、ディスプレイ304aおよび入力装置305aの少なくとも一方は、VLP300aに搭載されていてもよい。
光学ドライブ装置306は、レーザ光などを利用して、光ディスク306aに記録されたデータの読み取りを行う。光ディスク306aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク306aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。
FCインタフェース307は、FCケーブルおよびFCスイッチを介して他の制御サーバと接続し、他の制御サーバとの間でデータを送受信する。LANインタフェース308は、LANケーブルおよびLANスイッチを介して他の制御サーバやホスト装置150と接続し、接続した他の機器との間でデータを送受信する。
なお、ICP400a〜400c、IDP420a〜420dおよびPLP440a,440bも、図3に示したVLP300aと同様のハードウェア構成を有するコンピュータとして実現される。ただし、グラフィック処理装置304、入力インタフェース305および光学ドライブ装置306については、制御サーバのうちVLPのみが備えていればよい。
図4は、ディスクアレイ装置、テープライブラリ装置、FCスイッチおよびLANスイッチのハードウェア構成例を示す図である。
ディスクアレイ装置200は、複数のHDD201と、アレイコントローラ210とを備える。複数のHDD201による記憶領域は、主に、仮想テープボリューム内のデータをキャッシュするテープボリュームキャッシュとして使用される。また、後述するように、複数のHDD201による記憶領域の一部は、ストレージシステム内の装置で実行されるファームウェアのダウンロード専用領域として使用される。なお、ディスクアレイ装置200は、HDDの代わりにSSDを備えていてもよい。
アレイコントローラ210は、CPU211、RAM212およびフラッシュメモリ213を備える。CPU211は、フラッシュメモリ213に記憶されたファームウェアに従って、ディスクアレイ装置200の処理を統括的に制御する。RAM212は、CPU211に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ213には、CPU211に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、CPU211は、フラッシュメモリ213に格納されたファームウェアを、VLP300aからの指示に応じて書き替えることができる。
なお、図示しないが、アレイコントローラ210は、FC規格およびLANの規格に従って通信する通信インタフェース回路や、HDD201との間でデータを送受信するディスクインタフェース回路なども備える。
テープライブラリ装置120aは、ロボット121、複数のテープドライブ122およびライブラリコントローラ130を備える。また、図示しないが、テープライブラリ装置120aには、複数の磁気テープが収納される収納棚を備える。ロボット121は、収納棚とテープドライブ122との間で磁気テープを搬送する。テープドライブ122は、ロボット121によって装填された磁気テープの記録再生を行う。
ライブラリコントローラ130は、CPU131、RAM132およびフラッシュメモリ133を備える。CPU131は、フラッシュメモリ133に記憶されたファームウェアに従って、テープライブラリ装置120aの処理を統括的に制御する。RAM132は、CPU131に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ133には、CPU131に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、CPU131は、フラッシュメモリ133に格納されたファームウェアを、VLP300aからの指示に応じて書き替えることができる。
なお、図示しないが、ライブラリコントローラ130は、LANの規格に従って通信する通信インタフェース回路や、テープドライブ122との間でデータを送受信するドライブインタフェース回路、ロボット121に対して制御信号を送信するためのインタフェース回路なども備える。
また、テープライブラリ装置120bについても、図4のテープライブラリ装置120aと同様のハードウェア構成によって実現される。
FCスイッチ500aは、中継部501とコントローラ510とを備える。中継部501は、FCケーブルがそれぞれ接続される複数の通信ポート(図示せず)を備え、コントローラ510による制御の下で、通信ポート間でデータを中継する。
コントローラ510は、CPU511、RAM512およびフラッシュメモリ513を備える。CPU511は、フラッシュメモリ513に記憶されたファームウェアに従って、FCスイッチ500aの処理を統括的に制御する。RAM512は、CPU511に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ513には、CPU511に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、CPU511は、フラッシュメモリ513に格納されたファームウェアを、VLP300aからの指示に応じて書き替えることができる。
LANスイッチ550cは、中継部551とコントローラ560とを備える。中継部551は、LANケーブルがそれぞれ接続される複数の通信ポート(図示せず)を備え、コントローラ560による制御の下で、通信ポート間でデータを中継する。
コントローラ560は、CPU561、RAM562およびフラッシュメモリ563を備える。CPU561は、フラッシュメモリ563に記憶されたファームウェアに従って、LANスイッチ550aの処理を統括的に制御する。RAM562は、CPU561に実行させるファームウェアの少なくとも一部や、ファームウェアによる処理に必要なデータが格納される。フラッシュメモリ563には、CPU561に実行させるファームウェアや、ファームウェアによる処理に必要なデータがあらかじめ格納される。なお、CPU561は、フラッシュメモリ563に格納されたファームウェアを、VLP300aからの指示に応じて書き替えることができる。
次に、ストレージシステムにおけるファームウェアの更新処理について説明する。
図2に示したように、ストレージシステムは多数の装置を備えている。このため、ストレージ装置内のすべての装置のファームウェアを更新する作業に長時間を要するという問題がある。例えば、装置のファームウェアを更新する作業は、新規の版数のファームウェアを光ディスクなどから更新対象の装置が読み込む工程と、新規ファームウェアの読み込みが終了した装置を再起動させる工程とを含む。また、複数の版数のファームウェアを記憶する領域を備える装置では、再起動後に実行させるファームウェアを再起動前に指定する「ファームウェアの有効化」という工程も必要になる。
多数の装置を備えるストレージシステムにおいて、これらの工程を含む更新作業を保守管理者が行った場合には、数時間といった長い時間がかかってしまう。また、更新作業中には仮想テープドライブへのアクセスサービスの運用が停止され、ホスト装置150は仮想テープドライブに対してアクセスできなくなる。このため、更新作業の時間が長くなることは、仮想テープドライブへのアクセスサービスの品質を低下させる原因にもなる。
さらに、上記の更新作業はすべての装置について正常に完了するとは限らない。更新対象の装置のうちの一部でのみファームウェアが更新され、異常の発生した装置ではファームウェアが更新されなかった場合には、ファームウェアの不整合によってストレージシステムの誤動作が発生する可能性がある。従って、保守作業者は、更新作業中や作業終了後に、ファームウェアが正しく更新されたかを装置ごとに判断する必要があり、大きな手間がかかる。
また、更新対象の装置のうちの一部でのみファームウェアが更新された場合でも、ストレージシステムの誤動作が発生しない場合もある。例えば、特定の種類の装置のすべてにおいて更新前のファームウェアを実行させる、あるいは、特定の異なる種類の装置において更新前のファームウェアを実行させるといった措置をとることで、誤動作が生じることなくストレージシステムの運用を再開できる場合がある。このような場合には、一部の装置で古いファームウェアが実行された状態のままストレージシステムの運用を再開することで、ストレージシステムの運用停止時間を短縮できる。また、例えば、ファームウェアが更新されなかった装置をシャットダウンさせることで、ストレージシステムの運用を再開できる場合もある。
しかしながら、このように一部の装置で更新作業中に異常が発生した場合でもストレージシステムの運用を再開するためには、保守作業者は、異常の発生した装置を判別するだけでなく、異常の発生状況に応じて、更新前のファームウェアを実行させる装置や、シャットダウンすべき装置を判別する必要が生じる。このような判別作業は、装置の数が多くなるほど煩雑になる。
このような問題に対して、本実施の形態のVLP300aは、ストレージシステム内の各装置に実行させるファームウェアを一元管理し、ファームウェアの更新が必要な装置に対してファームウェアを転送し、実行させるファームウェアを自動的に変更させる機能を備える。VLP300aは、更新対象の各装置に実行させる最新版のファームウェアを、光ディスクから読み込んでディスクアレイ装置200の特定領域に格納する。また、VLP300aは、ファームウェアの更新が必要な装置を特定して、特定した装置に実行させるファームウェアをディスクアレイ装置200から読み込み、更新対象の装置に転送する。そして、VLP300aは、転送が完了した装置に対して必要に応じて有効化処理を実行させた後、更新対象の装置を再起動させる。また、VLP300aは、ファームウェアの転送、有効化、再起動という工程ごとに処理が正常に完了したかを検査し、その検査結果を基に次の工程の対象とする装置を特定していく。VLP300aによるこのような処理により、ストレージシステムの運用を、誤動作が発生しない状態で、短時間で再開できるようになる。
図5は、VLPが備える処理機能の構成例およびVLPが参照する情報の例を示す図である。
VLP300aは、ファームウェア管理部310を備える。ファームウェア管理部310の処理は、例えば、VLP300aのCPU301が所定のプログラム(ファームウェア)を実行することで実現される。ファームウェア管理部310は、ストレージシステム内の各装置に実行させるファームウェアを一元管理し、各装置に実行させるファームウェアを更新する一連の処理を実行する。
また、ファームウェア管理部310は、装置管理データベース(DB)320を参照可能になっている。装置管理データベース320は、例えば、VLP300aのHDD303に格納される。装置管理データベース320には、ファームウェアの更新対象とすることが可能なすべての装置についての基本的な情報が登録されている。
例えば、装置管理データベース320は、ストレージシステムに搭載された装置の種別ごとのエントリを備える。装置の種別とは、VLP、ICP、IDP、PLP、ディスクアレイ装置、FCスイッチ、LANスイッチおよびテープライブラリ装置のいずれかを識別するための情報である。
各エントリには、例えば、対応する種別の装置を識別するための装置IDが登録される。例えば、ストレージシステムに含まれる各装置がラック内のスロットに搭載される場合、装置IDは、対応する装置が搭載されるスロットの位置情報としてもよい。あるいは、装置IDは、ネットワーク上のアドレスであってもよい。ただし、後者の場合、FCスイッチおよびLANスイッチに対応する装置IDは、例えば、各装置に固有に付与された識別情報とされてもよい。ストレージシステムに同じ種別の装置が複数搭載されている場合、その種別に対応するエントリには複数の装置IDが登録される。例えば、図2の例では4つのICP400a〜400dが搭載されていることから、ICPに対応するエントリにはICP400a〜400dのそれぞれの装置IDが登録される。
ファームウェア管理部310は、ディスクアレイ装置200内の1つまたは複数のHDD201によって実現される記憶領域に、2つのダウンロード領域220を生成する。ダウンロード領域220には、ファームウェアの更新対象とすることが可能なすべての種別の装置に対応するファームウェアの実データが格納される。ダウンロード領域220には、生成された順に総合版数が付与される。図5の例では、上側のダウンロード領域220には総合版数「V10L50」が付与され、下側のダウンロード領域220には総合版数「V10L40」が付与されている。この場合、上側のダウンロード領域220の方が後に生成されたことになる。2つのダウンロード領域220のうち新しい総合版数が付与された領域には、最新の版数のファームウェアが格納される。
ファームウェア管理部310は、ダウンロード処理部311、転送処理部312および更新制御部313を備える。ダウンロード処理部311は、ディスクアレイ装置200にダウンロード領域220を確保し、VLP300aの光学ドライブ装置306を通じて光ディスク306aから読み込まれたファームウェアを、新たに確保したダウンロード領域220に格納する。転送処理部312は、最新の総合版数が付与されたダウンロード領域220からファームウェアを読み込み、ファームウェアの更新対象の装置に対して転送する。更新制御部313は、ファームウェアの転送が完了した装置に、実行させるファームウェアを転送したファームウェアに変更させるための処理を実行する。
なお、ファームウェア管理部310と、ストレージシステム内の他の装置との通信は、LANインタフェース308を通じて行われるものとする。
図6は、ファームウェア更新の対象機器が備える処理機能の例を示すブロック図である。この図6では、更新対象機器として、ICP400a、テープライブラリ装置120aおよびLANスイッチ550cを例示する。
ICP400aは、ファームウェア更新処理部410を備える。ファームウェア更新処理部410の処理は、ICP400aが備えるCPUが所定のプログラム(ファームウェア)を実行することで実現される。ファームウェア更新処理部410は、VLP300aのファームウェア管理部310からの指示に従って、ICP400aのCPUが実行するファームウェアを版数の新しいものに変更するために必要な処理を実行する。
ここで、本実施の形態では例として、ICP400aのHDDには、版数の異なるファームウェアがそれぞれ格納される2つのファームウェア領域411が設けられている。また、ICP400aのHDDには、2つのファームウェア領域411のどちらに格納されたファームウェアを実行するかを示す起動フラグ412が記録されている。ICP400aのCPUは、電源投入に応じた起動時および再起動時において、ファームウェアを実行する前に起動フラグ412を読み出す。ICP400aのCPUは、2つのファームウェア領域411のうち、起動フラグ412が示す方の領域からファームウェアを読み出して実行する。
2つのファームウェア領域411のうちの一方に格納されたファームウェアは、現在ICP400aのCPUが実行しているファームウェアである。従って、この状態では、起動フラグ412は、現在実行されているファームウェアが格納されたファームウェア領域411を指し示す値になっている。
ファームウェア更新処理部410は、ファームウェアの更新を行う際に、VLP300aから転送された新たな版数のファームウェアを、他方のファームウェア領域411に格納する。ファームウェア更新処理部410は、他方のファームウェア領域411にファームウェアを格納した後、VLP300aのファームウェア管理部310からの指示に応じて、他方のファームウェア領域411を指すように起動フラグ412を書き替える。この後、ICP400aは、VLP300aのファームウェア管理部310からの指示に応じて再起動する。再起動したICP400aのCPUは、起動フラグ412に従って、新たな版数のファームウェアを実行する。これにより、ICP400aのCPUが実行するファームウェアが変更され、ファームウェアの更新処理が完了する。
上記のように、新たな版数のファームウェアをいずれかのファームウェア領域411に格納した後に、起動フラグ412を更新する処理を、格納したファームウェアの「有効化」と呼ぶ。
本実施の形態では例として、ICP400b〜400dも、ICP400aと同様に、ファームウェア更新処理部410と、2つのファームウェア領域411および起動フラグ412を備える。また、本実施の形態では例として、ストレージシステムに含まれる他の装置も、ファームウェア更新処理部410と同様の機能を備えるとともに、不揮発性記憶装置内に、2つのファームウェア領域411と同様の領域が設けられるとともに、起動フラグ412が記録される。従って、すべての装置は、新たな版数のファームウェアを内部に読み込んでから、自装置を再起動するまでの間に、起動フラグを更新する「有効化」が必要になる。
例えば、テープライブラリ装置120aは、ファームウェア更新処理部140を備える。ファームウェア更新処理部140の処理は、テープライブラリ装置120aが備えるCPU131が所定のプログラム(ファームウェア)を実行することで実現される。また、テープライブラリ装置120aのフラッシュメモリ133には、版数の異なるファームウェアがそれぞれ格納される2つのファームウェア領域141が設けられている。さらに、テープライブラリ装置120aのフラッシュメモリ133には、2つのファームウェア領域141のどちらに格納されたファームウェアを実行するかを示す起動フラグ142が記録されている。
また、例えば、LANスイッチ550cは、ファームウェア更新処理部570を備える。ファームウェア更新処理部570の処理は、LANスイッチ550cが備えるCPU561が所定のプログラム(ファームウェア)を実行することで実現される。また、LANスイッチ550cのフラッシュメモリ563には、版数の異なるファームウェアがそれぞれ格納される2つのファームウェア領域571が設けられている。さらに、LANスイッチ550cのフラッシュメモリ563には、2つのファームウェア領域571のどちらに格納されたファームウェアを実行するかを示す起動フラグ572が記録されている。
なお、ストレージシステムに含まれる装置の少なくとも一部は、例えば、ファームウェアが格納されるファームウェア領域を1つのみ備えていてもよい。このような装置は、起動フラグを備えない。このような装置では、ファームウェア領域のファームウェアが書き替えられた後に再起動すると、装置のCPUは書き替えられたファームウェアを実行する。すなわち、このような装置では、ファームウェアの更新の際に有効化が不要になる。
次に、ファームウェア管理部310内の各部の処理について詳しく説明する。
図7は、ダウンロード処理部の処理を説明するための図である。ダウンロード処理部311は、ストレージシステムに含まれるすべての装置に対応する最新の版数のファームウェアを、ディスクアレイ装置200における一方のダウンロード領域220を用いて一括して管理する。
具体的には、ダウンロード処理部311は、ストレージシステムに含まれる少なくとも1種類の装置のファームウェアを更新する際に、ユーザの入力操作に応じて起動する。ダウンロード処理部311は、ディスクアレイ装置200に、新たな総合版数が付与されたダウンロード領域220を確保する。図7の例では、総合版数「V10L40」が付与されたダウンロード領域220に格納されたファームウェアが、対応する装置で実行されている状態において、ダウンロード処理部311は、新たな総合版数「V10L50」が付与されたダウンロード領域220を確保する。なお、このとき、ダウンロード処理部311は、総合版数「V10L40」より古い総合版数が付与されたダウンロード領域220を消去する。
次に、ダウンロード処理部311は、確保したダウンロード領域220に対して、全種類の装置についての最新の版数のファームウェアを格納する。ダウンロード処理部311は、新たな版数のファームウェアを光ディスクから光学ドライブ装置306を通じて読み込み、読み込んだファームウェアを新たに確保したダウンロード領域220に格納する。
ただし、すべての種別の装置に対応するファームウェアの版数が一斉に更新されるとは限らない。ダウンロード処理部311は、新たな版数のファームウェアが提供されない装置に対応するファームウェアを、総合版数が古い方のダウンロード領域220から読み出し、新たに確保したダウンロード領域220に格納する。
図7の例では、制御サーバのファームウェアのみが更新される場合を想定している。この場合、ダウンロード処理部311は、VLP用、ICP用、IDP用およびPLP用の新規版数のファームウェアを、光ディスクから光学ドライブ装置306を通じて読み込み、新たに確保した総合版数「V10L50」のダウンロード領域220に格納する。一方、新たな版数のファームウェアが提供されないディスクアレイ装置、テープライブラリ装置、FCスイッチおよびLANスイッチにそれぞれ対応するファームウェアを、総合版数「V10L40」のダウンロード領域220から読み出し、総合版数「V10L50」のダウンロード領域220に格納する。
このようなダウンロード処理部311の処理により、新しい総合版数が付与されたダウンロード領域220には最新の版数のファームウェアが格納されるようになり、ファームウェアの管理が効率化される。VLP300aのファームウェア管理部310は、更新対象の装置に対して新たな版数のファームウェアを転送する際に、新しい総合版数が付与されたダウンロード領域220からファームウェアを読み出して転送することができる。このため、ファームウェアを転送する前にその都度新たな版数のファームウェアを光ディスクから読み込む必要がなくなり、光ディスクからの読み込みおよび装置への転送の処理全体に要する時間を短縮することができる。
また、ダウンロード処理部311は、ストレージシステム内に既存であった大容量の記憶装置であるディスクアレイ装置200に、ダウンロード領域220を確保することで、ダウンロード領域220のための専用の記憶装置を追加する必要がなくなる。従って、ダウンロード処理部311は、ストレージシステム内の資源を有効に活用しながら、ファームウェアを一括して管理することができる。
ところで、上記のダウンロード処理部311の処理は、ホスト装置150からの要求に応じた仮想テープドライブへのアクセス処理と並行して実行することができる。これに対して、後述するように、ダウンロード領域220から更新対象の装置へのファームウェアの転送処理の際には、仮想テープドライブへのアクセスサービスの運用が停止される。本実施の形態では、光ディスクからのファームウェアの読み込み処理と、更新対象の装置へのファームウェアの転送処理とが分離され、ファームウェア管理部310は、後者の処理の実行前に、前者の処理を必要なすべての装置についてまとめて実行する。このため、仮想テープドライブへのアクセスサービスの運用が停止する時間を短縮することができる。
図8は、ダウンロード処理部によるダウンロード処理手順の例を示すフローチャートである。この図8の処理は、例えば、保守作業者がVLP300aの入力装置305aを通じて処理開始を指示することに応じて実行される。
[ステップS11]ダウンロード処理部311は、新たに生成するダウンロード領域220の総合版数を指定する。ダウンロード処理部311は、例えば、保守作業者の入力操作によって総合版数の指定を受ける。あるいは、ダウンロード処理部311は、自ら総合版数を指定してもよい。
[ステップS12]ダウンロード処理部311は、ディスクアレイ装置200内のHDDによって実現される記憶領域に、ステップS11で指定した総合版数に対応するダウンロード領域220を新たに確保する。このとき、ダウンロード処理部311は、ステップS12の実行前に存在していた2つのダウンロード領域220のうち、総合版数の古い方のダウンロード領域220を消去する。
[ステップS13]ダウンロード処理部311は、ストレージシステムに含まれる装置の種別ごとに、新規版数のファームウェアを光ディスクから読み込む必要があるかを問い合わせるための表示情報を、ディスプレイ304aに表示させる。保守作業者は、装置種別ごとに、新規版数のファームウェアを光ディスクから読み込む必要があるかを入力する。ダウンロード処理部311は、読み込み要否情報をRAM302に一時的に記録し、入力された情報に基づいて新規ファームウェアの読み込みの要否を読み込み要否情報に登録する。
ここで、図9は、読み込み要否情報に登録される情報の例を示す図である。
読み込み要否情報331には、ストレージシステムに含まれる装置の種別ごとに、新規ファームウェアを光ディスクから読み込む必要があるか否かを示す読み込み要否フラグが登録される。読み込み要否フラグの値は、例えば、読み込みが必要な場合は「1」とされ、読み込みが不要の場合は「0」とされる。
以下、図8に戻って説明する。
[ステップS14]ダウンロード処理部311は、読み込み要否情報331から、読み込み要否フラグが「1」である装置種別(すなわち、新規版数のファームウェアの読み込みが必要である装置種別)を1つ選択する。ダウンロード処理部311は、選択した装置種別に対応する新規版数のファームウェアが格納された光ディスクを光学ドライブ装置306に投入することを要求するための表示情報を、ディスプレイ304aに表示させる。
[ステップS15]ダウンロード処理部311は、光学ドライブ装置306に光ディスクが投入されたことを認識すると、投入された光ディスクからファームウェアを読み込む。ダウンロード処理部311は、読み込んだファームウェアを例えばLANインタフェース308を通じてディスクアレイ装置200に送信し、ステップS12で確保したダウンロード領域220に格納する。
[ステップS16]ダウンロード処理部311は、読み込み要否情報331において読み込み要否フラグが「1」であるすべての装置種別に対応するファームウェアを光ディスクから読み込み済みかを判定する。ファームウェアの読み込みが済んでいない装置種別がある場合(S16:No)、ダウンロード処理部311はステップS14に戻り、読み込みが済んでいない装置種別を1つ選択する。一方、読み込み要否フラグが「1」であるすべての装置種別に対応するファームウェアの読み込みが終了した場合(S16:Yes)、ダウンロード処理部311はステップS17の処理を実行する。
[ステップS17]ダウンロード処理部311は、読み込み要否情報331において読み込み要否フラグが「0」である装置種別があるかを判定する。読み込み要否フラグが「0」である装置種別がある場合(S17:Yes)、ダウンロード処理部311はステップS18の処理を実行する。一方、読み込み要否フラグが「0」である装置種別がない場合(S17:No)、ダウンロード処理部311はステップS19の処理を実行する。後者の場合、ステップS12で生成したダウンロード領域220に、すべての装置種別に対応する最新の版数のファームウェアが格納された状態になっている。
[ステップS18]ダウンロード処理部311は、読み込み要否フラグが「0」である装置種別に対応するファームウェアを、ディスクアレイ装置200内の2つのダウンロード領域220のうち、古い総合版数が付与されているダウンロード領域220から読み出す。ダウンロード処理部311は、読み出したファームウェアを、ステップS12で新規に生成したダウンロード領域220にコピーする。これにより、ステップS12で生成したダウンロード領域220に、すべての装置種別に対応する最新の版数のファームウェアが格納される。
[ステップS19]ダウンロード処理部311は、装置へのファームウェアの転送処理を続けて実行するかを問い合わせるための表示情報を、ディスプレイ304aに表示させる。保守管理者の入力操作により、ファームウェアの転送処理を続けて転送するように指示された場合(S19:Yes)、ダウンロード処理部311はステップS20の処理を実行する。一方、ファームウェアの転送処理を続けて実行しないという指示を受けた場合(S19:No)、ダウンロード処理部311は処理を終了する。
[ステップS20]ダウンロード処理部311は、転送処理部312に対してファームウェアの転送処理を開始するように指示する。
次に、転送処理部312の処理について説明する。転送処理部312は、ディスクアレイ装置200内の新しい総合版数が付与されたダウンロード領域220から、対応する装置のファームウェア領域にファームウェアを転送する。また、転送処理部312は、装置にファームウェアを転送するたびに、転送が正常に完了したか否かを示す転送結果をRAM302に保存する。
図10は、転送処理部によるファームウェア転送処理手順の例を示すフローチャートである。転送処理部312は、図8のステップS20でダウンロード処理部311から処理の開始を指示されたとき、あるいは、保守管理者の入力操作によって処理の開始が指示されたときに、図10の処理を実行する。
[ステップS31]転送処理部312は、仮想テープドライブへのアクセスサービスの運用を停止させる。例えば、転送処理部312は、自装置(VLP300a)にホスト装置150からのI/O要求の受信を停止させることで、仮想テープドライブへのアクセスサービスの運用を停止させる。あるいは、転送処理部312は、ストレージシステム内の各装置に、仮想テープドライブへのアクセスに関係する処理を停止させてもよい。
このように、装置へのファームウェアの転送の前に仮想テープドライブへのアクセスサービスの運用を停止することで、例えば、ファームウェア領域へのファームウェアの書き込み失敗などによって装置に異常が発生し、その異常発生に起因して仮想テープドライブへのアクセス処理の異常が発生する事態を防止できる。
なお、仮想テープドライブへのアクセスサービスの運用が停止されるタイミングは、ステップS34でのファームウェアの転送が実行される前のどのタイミングであってもよい。
[ステップS32]転送処理部312は、更新するファームウェアが記憶されたダウンロード領域220の総合版数を入力するように保守作業者に要求するための表示情報を、ディスプレイ304aに表示させる。転送処理部312は、総合版数の入力を受け付け、その総合版数を処理対象に指定する。なお、転送処理部312は、総合版数の入力を受ける代わりに、2つのダウンロード領域220にそれぞれ付与された総合版数のうち新しい方を、処理対象に指定してもよい。
[ステップS33]転送処理部312は、ファームウェア転送情報をRAM302に生成する。転送処理部312は、ファームウェアの更新対象とする装置を判定し、その判定結果をファームウェア転送情報に登録する。
ここで、図11は、ファームウェア転送情報に登録される情報の例を示す図である。
ファームウェア転送情報332には、装置種別および装置IDに対応付けて転送要否フラグおよび転送結果フラグが登録される。図10のステップS32において、転送処理部312は、装置管理データベース320から装置種別および装置IDを読み込んで、ファームウェア転送情報332に登録する。これにより、ファームウェア転送情報332には、ストレージシステムに含まれる、ファームウェアの更新対象になり得るすべての装置についての装置種別および装置IDが記録される。
転送要否フラグは、対応する装置に対してファームウェアを転送するか否かを示すフラグ情報である。転送処理部312は、例えば、装置にファームウェアを転送する場合、対応する転送要否フラグに「1」を登録し、転送しない場合、対応する転送要否フラグに「0」を登録する。
転送結果フラグは、対応する装置に対するファームウェアの転送処理が正常に完了したか否かを示すフラグ情報である。転送処理部312は、例えば、ファームウェアの転送処理が正常に完了した場合、転送結果フラグに「1」を登録し、正常に完了しなかった場合、転送結果フラグに「0」を登録する。なお、転送処理部312は、転送要否フラグが「0」である装置に対応する転送結果フラグには、「1」、「0」のいずれも登録せずに、例えば「NULL」を登録する。
なお、ファームウェア転送情報332は、図10に示す転送処理部312の処理が終了した後、更新制御部313からも参照される。
以下、図10に戻って説明する。
ステップS33において、転送処理部312は、ストレージ装置に含まれるすべての装置のファームウェア更新処理部に対して、実行中のファームウェアの版数を問い合わせる。ここで言うファームウェア更新処理部は、例えば、図6に示したファームウェア更新処理部140,410,570に対応する。転送処理部312は、問い合わせ先の各装置から返信されたファームウェアの版数と、ステップS32で処理対象に指定された総合版数が付与されたダウンロード領域220に格納された、対応するファームウェアの版数とを比較する。
転送処理部312は、比較した版数同士が一致した場合、ファームウェアの更新が不要であると判定して、ファームウェア転送情報332において対応する装置に対応付けられた転送要否フラグに「0」を登録する。一方、転送処理部312は、比較した版数同士が一致しなかった場合、ファームウェアの更新が必要であると判定して、ファームウェア転送情報332において対応する装置に対応付けられた転送要否フラグに「1」を登録する。
続いて、転送処理部312は、ファームウェア転送情報332の転送要否フラグが「1」である装置に対してファームウェアを転送する処理を、決められた順番に従って装置種別ごとに実行する。
[ステップS34]転送処理部312は、転送要否フラグが「1」であるVLPに対してファームウェアを転送し、転送先のVLPが備えるファームウェア領域の一方に格納する。
[ステップS35]転送処理部312は、転送要否フラグが「1」であるICPに対してファームウェアを転送し、転送先のICPが備えるファームウェア領域411の一方に格納する。
[ステップS36]転送処理部312は、転送要否フラグが「1」であるIDPに対してファームウェアを転送し、転送先のIDPが備えるファームウェア領域の一方に格納する。
[ステップS37]転送処理部312は、転送要否フラグが「1」であるPLPに対してファームウェアを転送し、転送先のPLPが備えるファームウェア領域の一方に格納する。
[ステップS38]転送処理部312は、転送要否フラグが「1」であるディスクアレイ装置に対してファームウェアを転送し、転送先のディスクアレイ装置が備えるファームウェア領域に格納する。
[ステップS39]転送処理部312は、転送要否フラグが「1」であるテープライブラリ装置に対してファームウェアを転送し、転送先のテープライブラリ装置が備えるファームウェア領域141に格納する。
[ステップS40]転送処理部312は、転送要否フラグが「1」であるFCスイッチに対してファームウェアを転送し、転送先のFCスイッチが備えるファームウェア領域に格納する。
[ステップS41]転送処理部312は、転送要否フラグが「1」であるLANスイッチに対してファームウェアを転送し、転送先のLANスイッチが備えるファームウェア領域571に格納する。
ここで、転送処理部312は、上記のステップS34〜S40の各処理ステップにおいて、LANインタフェース308を介してファームウェアを転送する。このため、ファームウェアは、いくつかのLANスイッチを介して転送される。転送処理部312は、LANスイッチへのファームウェアの転送を、他の装置へのファームウェアの転送の後に実行する。これにより、LANスイッチが、内部のファームウェアが書き替えられたことに起因する異常の発生によって正常な動作をしなくなり、他の装置へファームウェアを転送できなくなる事態の発生を防止することができる。
[ステップS42]転送処理部312は、転送したファームウェアを有効化するための有効化制御処理を続けて実行するかを問い合わせるための表示情報を、ディスプレイ304aに表示させる。保守管理者の入力操作により、有効化制御処理を続けて転送するように指示された場合(S42:Yes)、転送処理部312はステップS43の処理を実行する。一方、有効化制御処理を続けて実行しないという指示を受けた場合(S42:No)、転送処理部312は処理を終了する。
[ステップS43]転送処理部312は、更新制御部313に対して有効化制御処理の開始を指示する。
次に、上記のステップS34〜S41の各処理ステップでの処理手順について、図12を用いて説明する。図12は、装置種別ごとのファームウェア転送処理手順の例を示すフローチャートである。この図12の処理は、装置種別ごとに実行される。
[ステップS61]転送処理部312は、ファームウェア転送情報332の転送要否フラグを参照し、処理対象の装置種別の装置の中にファームウェアを転送するべき装置があるかを判定する。転送処理部312は、転送するべき装置がある場合(S61:Yes)、ステップS62の処理を実行し、転送するべき装置がない場合(S61:No)、ステップS64の処理を実行する。
[ステップS62]転送処理部312は、図10のステップS32で指定した総合版数に対応するダウンロード領域220から、処理対象の装置種別に対応するファームウェアを読み出す。そして、転送処理部312は、読み出したファームウェアを、処理対象の装置種別の装置のうち、転送要否フラグが「1」である装置に対して転送する。これとともに、転送処理部312は、転送先の装置のファームウェア更新処理部に対して、ファームウェアの格納を指示する。ファームウェアの転送先の装置では、格納指示を受けたファームウェア更新処理部が、2つのファームウェア領域のうち現在実行中のファームウェアが格納されている領域とは別の領域に、受信したファームウェアを格納する。
[ステップS63]転送処理部312は、ファームウェアの転送先の装置ごとに、転送結果を確認する。転送処理部312は、ファームウェア転送情報332における転送先装置に対応する転送結果フラグの欄に、転送結果に応じた値を登録する。転送処理部312は、転送処理が正常に完了した場合、転送結果フラグに「1」を登録し、転送処理が正常に完了しなかった場合、転送結果フラグに「0」を登録する。
ここで、転送結果の確認方法としては、種々の方法を採ることができる。例えば、転送処理部312は、ファームウェアのデータに誤り検出用の信号を付加して各装置に送信する。ファームウェアを受信した各装置のファームウェア更新処理部は、付加された誤り検出用の信号を基にファームウェアの受信が正常に完了したかを判定し、判定結果を転送処理部312に返信する。転送処理部312は、受信した判定結果から転送結果を確認できる。なお、転送処理部312は、ファームウェアの転送が正常に完了しなかった場合、ファームウェアの転送をリトライし、リトライによってもファームウェアの転送が正常に完了しなかった場合に、転送先装置に対応する転送結果フラグに「0」を登録してもよい。
なお、ステップS63において、転送処理部312は、処理対象の種別の装置のうち、ファームウェアの転送が不要と判定した装置に対応する転送結果フラグに、「Null」を登録する。
[ステップS64]転送処理部312は、処理対象の種別の装置のすべてに対応する転送結果フラグに、「Null」を登録する。
次に、更新制御部313の処理について説明する。更新制御部313は、転送したファームウェアを有効化するための有効化制御処理と、有効化が完了した装置を再起動させる再起動制御処理とを、続けて実行する。また、更新制御部313は、有効化制御処理の際に、ファームウェア転送処理における転送結果に基づく装置種別ごとの条件に従って、有効化処理を実行させる装置を決定する。さらに、更新制御部313は、再起動制御処理の際に、有効化処理の実行結果に基づく装置種別ごとの条件に従って、再起動させる装置を決定する。このような更新制御部313の処理により、ファームウェア更新処理の実行状況に起因する、ストレージシステムにおける処理の異常が発生しないようにする。
図13は、有効化制御処理の手順の例を示すフローチャートである。更新制御部313は、図10のステップS43で転送処理部312から有効化制御処理の開始を指示されたとき、あるいは、保守管理者の入力操作によって有効化制御処理の開始が指示されたときに、図13の処理を実行する。
[ステップS81]更新制御部313は、ファームウェア有効化情報をRAM302に生成する。更新制御部313は、有効化制御処理の対象とする装置を判定し、判定した装置の装置種別および装置IDをファームウェア有効化情報に登録する。具体的には、更新制御部313は、ファームウェア転送情報332における転送要否フラグが「1」である装置、すなわちファームウェアの転送が必要とされていた装置についての装置種別および装置IDを、ファームウェア有効化情報に登録する。
ここで、図14は、ファームウェア有効化情報に登録される情報の例を示す図である。
ファームウェア有効化情報333には、装置種別および装置IDに対応付けて有効化結果フラグが登録される。前述のように、ファームウェア有効化情報333には、ファームウェア転送情報332における転送要否フラグが「1」である装置についての装置種別および装置IDが登録される。
有効化結果フラグは、対応する装置における有効化処理の結果を示すフラグ情報である。有効化処理とは、対応する装置のファームウェア更新処理部が、その装置内の有効化フラグを更新する処理である。有効化結果フラグが「1」である場合、対応する装置での有効化処理が正常に完了したことを示す。有効化結果フラグが「0」である場合、対応する装置での有効化処理が正常に完了していないことを示す。
なお、ファームウェア有効化情報333は、図13に示す有効化制御処理が終了した後、次の再起動制御処理において更新制御部313から参照される。
以下、図13に戻って説明する。更新制御部313は、ファームウェア有効化情報333に登録された装置に対して有効化処理の実行を指示する処理を、決められた順番に従って装置種別ごとに実行する。
[ステップS82]更新制御部313は、ファームウェア転送情報332における制御サーバに対応する転送結果フラグに応じて、有効化処理を実行させる制御サーバを決定し、決定した制御サーバに有効化処理の実行を指示する。
[ステップS83]更新制御部313は、ファームウェア転送情報332におけるディスクアレイ装置200に対応する転送結果フラグに応じて、ディスクアレイ装置200に有効化処理を実行させるか否かを決定する。転送結果フラグが「1」の場合、更新制御部313は、ディスクアレイ装置200に有効化処理の実行を指示する。
[ステップS84]更新制御部313は、ファームウェア転送情報332におけるテープライブラリ装置に対応する転送結果フラグに応じて、有効化処理を実行させるテープライブラリ装置を決定し、決定したテープライブラリ装置に有効化処理の実行を指示する。
[ステップS85]更新制御部313は、ファームウェア転送情報332におけるFCスイッチに対応する転送結果フラグに応じて、有効化処理を実行させるFCスイッチを決定し、決定したFCスイッチに有効化処理の実行を指示する。
[ステップS86]更新制御部313は、ファームウェア転送情報332におけるLANスイッチに対応する転送結果フラグに応じて、有効化処理を実行させるLANスイッチを決定し、決定したLANスイッチに有効化処理の実行を指示する。
以上の図13の処理が終了すると、更新制御部313は、後述する再起動制御処理を実行する。
次に、装置種別ごとの有効化指示処理について説明する。本実施の形態では例として、実行されるファームウェアの版数に関し、装置種別ごとに次のような条件が与えられているものとする。
(条件1)同一種別の装置は、同一版数のファームウェアを実行しなければならない。同一種別の複数の装置が互いに異なる版数のファームウェアを実行した場合、ファームウェアの不整合によって装置が誤動作する可能性がある。
(条件2)冗長化された同一種別の制御サーバのうち少なくとも1つがファームウェアの更新に成功した場合、更新に成功した制御サーバのみ動作することで仮想ディスクドライブへのアクセスサービスの運用を継続できる。
(条件3)異なる種別の制御サーバでは一斉にファームウェアが更新され、異なる種別の制御サーバは、同一版数のファームウェアを実行しなければならない。異なる種別の複数の制御サーバが互いに異なる版数のファームウェアを実行した場合、ファームウェアの不整合によって制御サーバが誤動作する可能性がある。
(条件4)制御サーバ以外の装置と、その装置とは別の種別の装置との間では、ファームウェアの不整合による動作異常は発生しない。
以上の条件から、本実施の形態では、制御サーバとそれ以外の装置とで、転送結果フラグに基づいて有効化処理を実行させる装置を決定する際の条件を異なるものとする。
図15は、制御サーバに対する有効化指示処理手順の例を示すフローチャートである。この図15の処理は、図13のステップS82の処理に対応する。
[ステップS101]更新制御部313は、処理対象の装置種別を選択する。なお、更新制御部313は、VLP、ICP、IDP、PLPの順に装置種別を選択するものとする。
[ステップS102]更新制御部313は、ファームウェア転送情報332から、ファームウェア有効化情報333に登録した処理対象の装置種別に対応する装置IDに対応付けられた転送結果フラグを読み出す。更新制御部313は、読み出した転送結果フラグの少なくとも1つが「1」である場合、すなわち、ファームウェアの転送が必要な装置の中に転送処理に成功した装置が少なくとも1つある場合(S102:Yes)、ステップS103の処理を実行する。一方、更新制御部313は、読み出したすべての転送結果フラグが「0」である場合、すなわち、ファームウェアの転送が必要なすべての装置に対する転送処理に失敗していた場合(S102:No)、ステップS107の処理を実行する。
[ステップS103]更新制御部313は、ステップS102で読み出した転送結果フラグが「0」である装置、すなわち、ファームウェアの転送処理に失敗した装置に対応するファームウェア有効化情報333の有効化結果フラグに、「0」を登録する。
[ステップS104]更新制御部313は、ステップS102で読み出した転送結果フラグが「1」である装置、すなわち、ファームウェアの転送処理に成功した装置が備えるファームウェア更新処理部に対して、有効化処理の実行を指示する。指示を受けた装置のファームウェア更新処理部は、起動フラグを、現在実行中のファームウェアが格納されているファームウェア領域とは別のファームウェア領域を示すように更新する。
[ステップS105]更新制御部313は、有効化処理の実行を指示した装置における有効化処理結果を確認する。更新制御部313は、例えば、有効化処理の実行を指示した装置のファームウェア更新処理部から、有効化処理に成功したか否かを示す情報を受信する。更新制御部313は、有効化処理に成功した装置に対応する有効化結果フラグに「1」を登録し、有効化処理に失敗した装置に対応する有効化結果フラグに「0」を登録する。なお、更新制御部313は、有効化処理の実行指示先装置が有効化処理に失敗したと判定したとき、その装置に対する有効化処理の実行指示をリトライし、リトライの結果に応じて有効化結果フラグを登録してもよい。
[ステップS106]更新制御部313は、制御サーバの装置種別のすべてを処理対象として選択したかを判定する。処理対象として選択していない装置種別がある場合(S106:No)、更新制御部313は、ステップS101に戻り、あらかじめ決められた次の装置種別を処理対象として選択する。一方、すべての装置種別を処理対象として選択済みである場合(S106:Yes)、更新制御部313は、図13のステップS83の処理を実行する。
[ステップS107]処理対象の装置種別のすべての制御サーバに対するファームウェアの転送が失敗した場合(S102:No)、更新制御部313は、処理対象の装置種別の装置を含むすべての制御サーバに対応する有効化結果フラグに「0」を登録する。このとき、更新制御部313は、すでに「1」が登録されている有効化結果フラグも「0」に書き替える。
後述するように、有効化結果フラグが「0」である制御サーバはシャットダウンされ、再起動しない。従って、ステップS107の処理により、同一種別のすべての制御サーバに対するファームウェアの転送が失敗した場合、すべての種別の制御サーバがシャットダウンされる。これにより、上記の条件(2),(3)が満たされることになる。
図16は、制御サーバ以外の装置に対する有効化指示処理手順の例を示すフローチャートである。この図16の処理は、図13のステップS83〜S86の各処理に対応する。すなわち、更新制御部313は、ディスクアレイ装置、テープライブラリ装置、FCスイッチおよびLANスイッチのいずれかの装置種別を処理対象として選択して、図16の処理を実行する。
[ステップS121]更新制御部313は、ファームウェア転送情報332から、ファームウェア有効化情報333に登録した処理対象の装置種別に対応する装置IDに対応付けられた転送結果フラグを読み出す。更新制御部313は、転送結果フラグが「0」である装置、すなわち、ファームウェアの転送処理に失敗した装置に対応するファームウェア有効化情報333の有効化結果フラグに、「0」を登録する。
[ステップS122]更新制御部313は、ステップS121で読み出した転送結果フラグが「1」である装置、すなわち、ファームウェアの転送処理に成功した装置が備えるファームウェア更新処理部に対して、有効化処理の実行を指示する。指示を受けた装置のファームウェア更新処理部は、起動フラグを、現在実行中のファームウェアが格納されているファームウェア領域とは別のファームウェア領域を示すように更新する。
[ステップS123]更新制御部313は、図15のステップS105と同様の手順で、有効化処理の実行を指示した装置における有効化処理結果を確認する。更新制御部313は、有効化処理に成功した装置に対応する有効化結果フラグに「1」を登録し、有効化処理に失敗した装置に対応する有効化結果フラグに「0」を登録する。
以上の図16の処理によれば、制御サーバ以外の装置に関しては、ファームウェアの転送処理が成功した装置の有効化結果フラグが「1」とされ、転送処理が失敗した装置の有効化結果フラグが「0」とされる。
次に、更新制御部313による再起動制御処理について説明する。再起動制御処理では、上記の条件(1)〜(4)を満たすように、制御サーバとそれ以外の装置とで、有効化結果フラグに基づいて再起動させる装置を決定する際の条件を異なるものとする。
図17は、再起動制御処理の手順の例を示すフローチャートである。更新制御部313は、図13の処理が終了した後、図17の処理を続けて実行する。
[ステップS141]更新制御部313は、ファームウェア有効化情報333に登録された有効化フラグがすべて「1」であるか判定する。すべての有効化フラグが「1」である場合(S141:Yes)、更新制御部313はステップS142の処理を実行する。「0」が登録された有効化フラグが1つでも存在した場合(S141:No)、更新制御部313はステップS143の処理を実行する。
[ステップS142]更新制御部313は、ファームウェア有効化情報333に登録されたすべての装置のファームウェア更新処理部に対して、各装置を再起動させるように指示する。指示を受けたファームウェア更新処理部は、自装置をリセットして再起動させる。また、更新制御部313は、自装置(すなわちVLP300a)がファームウェア有効化情報333に登録されていた場合には、自装置をリセットして再起動させる。
なお、このステップS142では、更新制御部313は、ストレージシステム内のすべての装置を再起動させてもよい。この場合、更新制御部313は、PCU600a,600bのいずれか(図2参照)に対して再起動の実行を指示してもよい。指示を受けたPCUは、ストレージシステム内のすべての装置に対する電源供給を停止した後、再度電源供給を開始することで、すべての装置を再起動させる。
一方、ファームウェア有効化情報333において、「0」が登録された有効化フラグが1つ以上存在する場合(S141:No)、ステップS143の処理が実行される。ステップS143以降では、更新制御部313は、ファームウェア有効化情報333に登録された装置を再起動させる処理を、決められた順番に従って装置種別ごとに実行する。
[ステップS143]更新制御部313は、ファームウェア有効化情報333における制御サーバに対応する有効化フラグに応じて、再起動させる制御サーバを決定し、決定した制御サーバを再起動させる。ただし、更新制御部313は、自装置(すなわちVLP300a)を再起動の対象から除外する。
[ステップS144]更新制御部313は、ファームウェア有効化情報333におけるディスクアレイ装置200に対応する有効化フラグに応じて、ディスクアレイ装置200を再起動させるかを決定する。転送結果フラグが「1」の場合、更新制御部313は、ディスクアレイ装置200を再起動させる。
[ステップS145]更新制御部313は、ファームウェア有効化情報333におけるテープライブラリ装置に対応する有効化フラグに応じて、再起動させるテープライブラリ装置を決定し、決定したテープライブラリ装置を再起動させる。
[ステップS146]更新制御部313は、ファームウェア有効化情報333におけるFCスイッチに対応する有効化フラグに応じて、再起動させるFCスイッチを決定し、決定したFCスイッチを再起動させる。
[ステップS147]更新制御部313は、ファームウェア有効化情報333におけるLANスイッチに対応する有効化フラグに応じて、再起動させるLANスイッチを決定し、決定したLANスイッチを再起動させる。
[ステップS148]更新制御部313は、ファームウェア有効化情報333における自装置(すなわちVLP300a)に対応する有効化フラグが「1」の場合、自装置をリセットして再起動させる。なお、更新制御部313は、例えば、リセットの前に、ファームウェアの更新状況を装置ごとに示す情報を、VLP300aのHDD303に記録する。更新状況を示す情報には、例えば、ファームウェアを更新すべき装置のうち、再起動処理を実行した装置および再起動処理を実行しなかった装置をそれぞれ識別する情報が含まれる。更新制御部313は、このような情報をHDD303に記録しておくことで、例えば、再起動後にファームウェアの更新状況をディスプレイ304aに表示させ、保守作業者に通知することができる。
一方、更新制御部313は、自装置に対応する有効化フラグが「0」の場合、自装置をシャットダウンする。この場合、更新制御部313は、上記のファームウェアの更新状況をディスプレイ304aに表示させた後、保守作業者からの指示入力に応じて自装置をシャットダウンしてもよい。
図18は、制御サーバに対する再起動指示処理手順の例を示すフローチャートである。この図18の処理は、図17のステップS143に対応する。
[ステップS161]更新制御部313は、ファームウェア有効化情報333から、制御サーバに対応付けられた有効化結果フラグを、装置種別ごとに読み出す。更新制御部313は、対応する有効化結果フラグがすべて「0」である装置種別があるかを判定する。有効化結果フラグがすべて「0」である装置種別がない場合、すなわち、すべての装置種別について、ファームウェアの更新が必要な制御サーバのうちの少なくとも1つにおいて有効化処理に成功していた場合(S161:No)、更新制御部313はステップS162の処理を実行する。一方、有効化結果フラグがすべて「0」である装置種別がある場合、すなわち、ファームウェアの更新が必要な同一種別の制御サーバのすべてにおいて有効化処理に失敗していた場合(S161:Yes)、更新制御部313はステップS166の処理を実行する。
[ステップS162]更新制御部313は、処理対象の装置種別を選択する。なお、更新制御部313は、VLP、ICP、IDP、PLPの順に装置種別を選択するものとする。
[ステップS163]更新制御部313は、ファームウェア有効化情報333に基づき、処理対象として選択した装置種別の装置IDのうち、有効化結果フラグが「0」である装置IDを判別する。更新制御部313は、判別した装置IDに対応する装置のファームウェア更新処理部に、シャットダウンを指示する。指示を受けた装置のファームウェア更新処理部は、自装置をシャットダウンする。ただし、更新制御部313は、自装置(すなわちVLP300a)についてはシャットダウンしない。
[ステップS164]更新制御部313は、ファームウェア有効化情報333に基づき、処理対象として選択した装置種別の装置IDのうち、有効化結果フラグが「1」である装置IDを判別する。更新制御部313は、判別した装置IDに対応する装置のファームウェア更新処理部に、再起動を指示する。指示を受けた装置のファームウェア更新処理部は、自装置をリセットして再起動させる。ただし、更新制御部313は、自装置(すなわちVLP300a)については再起動させない。
上記のステップS163,S164の処理により、同一種別の制御サーバに関して上記の条件(1),(2)が満たされるようになる。
[ステップS165]更新制御部313は、制御サーバの装置種別のすべてを処理対象として選択したかを判定する。処理対象として選択していない装置種別がある場合(S165:No)、更新制御部313は、ステップS162に戻り、あらかじめ決められた次の装置種別を処理対象として選択する。一方、すべての装置種別を処理対象として選択済みである場合(S165:Yes)、更新制御部313は、図17のステップS144の処理を実行する。
[ステップS166]処理対象の装置種別のすべての制御サーバに対応する有効化結果フラグが「0」である場合(S161:Yes)、更新制御部313は、処理対象の装置種別の装置を含むすべての制御サーバのファームウェア更新処理部に、シャットダウンを指示する。指示を受けた制御サーバのファームウェア更新処理部は、自装置をシャットダウンする。この処理により、制御サーバに関して上記の条件(2),(3)が満たされるようになる。ただし、更新制御部313は、自装置(すなわちVLP300a)についてはシャットダウンせず、図17のステップS148において自装置をシャットダウンする。
図19は、制御サーバ以外の装置に対する再起動指示処理手順の例を示すフローチャートである。この図19の処理は、図17のステップS144〜S147の各処理に対応する。すなわち、更新制御部313は、ディスクアレイ装置、テープライブラリ装置、FCスイッチおよびLANスイッチのいずれかの装置種別を処理対象として選択して、図19の処理を実行する。
[ステップS181]更新制御部313は、ファームウェア有効化情報333から、処理対象の装置種別に対応する装置IDに対応付けられた有効化結果フラグを読み出す。更新制御部313は、読み出した有効化結果フラグが「0」である装置のファームウェア更新処理部に、シャットダウンを指示する。指示を受けた装置のファームウェア更新処理部は、自装置をシャットダウンする。
[ステップS182]更新制御部313は、ステップS181で読み出した有効化結果フラグが「1」である装置のファームウェア更新処理部に、再起動を指示する。指示を受けた装置のファームウェア更新処理部は、自装置をリセットして再起動させる。
上記のステップS181,S182の処理により、制御サーバ以外の同一種別の装置に関して上記の条件(1),(4)が満たされるようになる。
以上説明した転送処理部312および更新制御部313の処理によれば、ファームウェアの転送結果および有効化処理結果に基づいて、装置で実行させるファームウェアを更新するか、あるいは装置をシャットダウンするかが、装置種別ごとに決められた条件に従って判定される。これにより、上記の条件(1)〜(4)を満たす状態で仮想テープドライブへのアクセスサービスの運用を再開することができ、サービス再開後における誤動作の発生確率を抑制することができる。
また、装置で実行させるファームウェアを更新するか、あるいは装置をシャットダウンするかの判定をVLP300aが自動判定するため、ストレージシステムに含まれる装置の数が多い場合の保守作業者の作業の負担を軽減でき、ファームウェアの更新に要する時間を短縮できる。また、仮想テープドライブへのアクセスサービスの運用停止時間を短縮することもできる。
なお、例えば、図18のステップS163や図19のステップS181では、有効化結果フラグが「0」である装置がシャットダウンされた。しかしながら、例えば、同一種別の複数の装置が互いに異なる版数のファームウェアを実行してもファームウェアの不整合による異常が発生しないような場合には、上記各ステップではシャットダウンが行われなくてもよい。この場合、ファームウェアの転送に失敗した装置、あるいは、ファームウェアの転送には成功したもののその有効化に失敗した装置は、実行するファームウェアが変更されないまま動作し続ける。この場合、同一種別の装置の冗長性を維持することができる。
その一方で、ファームウェアの転送や有効化に失敗した装置は、内部で異常が発生している可能性が高いため、再起動して使用し続けた場合だけでなく、再起動せずに使用し続けた場合でも、安定的に動作できない可能性がある。更新制御部313は、このような装置をシャットダウンすることで、システム全体の動作を安定化することができる。
なお、上記の各実施の形態に示した制御サーバなどの各装置の処理機能は、コンピュータによって実現することができる。その場合、各通信装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM、CD−R/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置において、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち1または複数の電子機器に転送する転送制御部と、
前記1または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力する更新制御部と、
を有することを特徴とする制御装置。
(付記2) 前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記1記載の制御装置。
(付記3) 前記更新制御部は、前記複数の電子機器のうち、複数の第1の種別の電子機器のすべてに対する前記転送制御部からの更新プログラムの転送が正常に完了しなかった場合、すべての前記第1の種別の電子機器をシャットダウンさせるとともに、前記複数の電子機器のうち、あらかじめ決められた複数の第2の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記1または2記載の制御装置。
(付記4) 前記更新制御部は、複数の前記第1の種別の電子機器のうちの少なくとも1つに対する前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、複数の前記第2の種別の電子機器のうちの少なくとも1つに対する前記転送制御部からの更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第1の種別の電子機器および前記第2の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第1の種別の電子機器および前記第2の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記3記載の制御装置。
(付記5) 前記更新処理は、更新プログラムの転送先の電子機器が、再起動後に実行するプログラムを示すプログラム指定情報を前記転送制御部から転送された更新プログラムを示すように書き替えるプログラム有効化処理と、前記転送先の電子機器が再起動する再起動処理とを含み、
前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器と、前記プログラム有効化処理が正常に完了しなかった電子機器とを、前記再起動処理を実行させる機器から除外する、
ことを特徴とする付記1〜4のいずれか1つに記載の制御装置。
(付記6) 前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、前記プログラム有効化処理が正常に完了した電子機器に、前記再起動処理を実行させることを特徴とする付記5記載の制御装置。
(付記7) 複数の種別の電子機器のそれぞれのための各プログラムを可搬型記憶媒体から読み込み、所定のファームウェア用記憶領域に格納するファームウェア格納処理部をさらに有し、
前記転送制御部は、前記ファームウェア用記憶領域からファームウェアを読み出し、当該ファームウェアを実行させる電子機器に転送する、
ことを特徴とする付記1〜7のいずれか1つに記載の制御装置。
(付記8) 前記ファームウェア用記憶領域は、前記複数の電子機器のうちの1つが備える記憶装置に設けられることを特徴とする付記7記載の制御装置。
(付記9) 複数の電子機器と、前記複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置とを備え、
前記制御装置は、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、取得した版数に応じた更新プログラムを、前記複数の電子機器のうち1または複数の電子機器に転送する転送制御部と、
前記1または複数の電子機器から前記転送制御部による更新プログラムの転送が正常に完了したか否かに関する情報を取得し、正常に完了した電子機器に対して、前記転送制御部から転送した更新プログラムへの更新処理を実行させる指示を出力する更新制御部と、
を有することを特徴とする制御システム。
(付記10) 前記更新制御部は、前記転送制御部からの更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記9記載の制御システム。
(付記11) 前記更新制御部は、複数の第1の種別の電子機器のすべてに対する前記転送制御部からの更新プログラムの転送が正常に完了しなかった場合、すべての前記第1の種別の電子機器をシャットダウンさせるとともに、あらかじめ決められた複数の第2の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記9または10記載の制御システム。
(付記12) 前記更新制御部は、複数の前記第1の種別の電子機器のうちの少なくとも1つに対する前記転送制御部からの更新プログラムの転送が正常に完了し、かつ、複数の前記第2の種別の電子機器のうちの少なくとも1つに対する前記転送制御部からの更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第1の種別の電子機器および前記第2の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第1の種別の電子機器および前記第2の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記11記載の制御システム。
(付記13) 複数の電子機器のそれぞれに対してプログラムを更新させる制御を行う制御装置における制御方法であって、
前記複数の電子機器のそれぞれからプログラムの版数を取得し、
取得した版数に応じた更新プログラムを、前記複数の電子機器のうち1または複数の電子機器に転送し、
前記1または複数の電子機器から更新プログラムの転送が正常に完了したか否かに関する情報を取得し、
更新プログラムの転送が正常に完了した電子機器に対して、転送した更新プログラムへの更新処理を実行させる指示を出力する、
ことを特徴とする制御方法。
(付記14) 前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了しなかった電子機器をシャットダウンさせる指示を出力することを特徴とする付記13記載の制御方法。
(付記15) 前記更新処理を実行させる指示を出力する処理では、前記複数の電子機器のうち、複数の第1の種別の電子機器のすべてに対する更新プログラムの転送が正常に完了しなかった場合、すべての前記第1の種別の電子機器をシャットダウンさせるとともに、前記複数の電子機器のうち、あらかじめ決められた複数の第2の種別の電子機器のすべてをシャットダウンさせる指示を出力することを特徴とする付記13または14記載の制御方法。
(付記16) 前記更新処理を実行させる指示を出力する処理では、複数の前記第1の種別の電子機器のうちの少なくとも1つに対する更新プログラムの転送が正常に完了し、かつ、複数の前記第2の種別の電子機器のうちの少なくとも1つに対する更新プログラムの転送が正常に完了した場合、更新プログラムの転送がともに正常に完了した前記第1の種別の電子機器および前記第2の種別の電子機器にそれぞれ前記更新処理を実行させるとともに、更新プログラムの転送がともに正常に完了しなかった前記第1の種別の電子機器および前記第2の種別の電子機器をそれぞれシャットダウンさせる指示を出力することを特徴とする付記15記載の制御方法。
(付記17) 前記更新処理は、更新プログラムの転送先の電子機器が、再起動後に実行するプログラムを示すプログラム指定情報を前記制御装置から転送された更新プログラムを示すように書き替えるプログラム有効化処理と、前記転送先の電子機器が再起動する再起動処理とを含み、
前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了しなかった電子機器と、前記プログラム有効化処理が正常に完了しなかった電子機器とを、前記再起動処理を実行させる機器から除外する、
ことを特徴とする付記13〜16のいずれか1つに記載の制御方法。
(付記18) 前記更新処理を実行させる指示を出力する処理では、更新プログラムの転送が正常に完了し、かつ、前記プログラム有効化処理が正常に完了した電子機器に、前記再起動処理を実行させることを特徴とする付記17記載の制御方法。
(付記19) 複数の種別の電子機器のそれぞれのための各プログラムを可搬型記憶媒体から読み込み、所定のファームウェア用記憶領域に格納する処理をさらに含み、
前記更新処理を実行させる指示を出力する処理では、前記ファームウェア用記憶領域からファームウェアを読み出し、当該ファームウェアを実行させる電子機器に転送する、
ことを特徴とする付記13〜18のいずれか1つに記載の制御方法。
(付記20) 前記ファームウェア用記憶領域は、前記複数の電子機器のうちの1つが備える記憶装置に設けられることを特徴とする付記19記載の制御方法。