以下、図面を参照して、一実施形態に係る情報システムについて説明する。以下の実施形態の構成は例示であり、本情報システムは実施形態の構成には限定されない。
[比較例]
図1に、比較例に係る情報システムの構成を例示する。図1の情報システムは、マスタ装置310、スタンバイマスタ装置320、およびスレーブ装置330を有する。マスタ装置310、スタンバイマスタ装置320、およびスレーブ装置330は、相互にネットワーク、例えば、LAN(Local Area Network)、InfiniBandで例示されるインターコネクト等で接続される。
マスタ装置310は、処理停止あるいはリブート等の通常処理を実行できない期間以外は、情報システム全体を制御する。マスタ装置310は、マスタ装置310の起動および制御のためのファーム318を不揮発性のメモリに格納している。マスタ装置310は、ファームウェア318を実行することで、起動され、アプリケーションプログラムを実行し、様々な情報処理を利用者に提供する。マスタ装置310は、揮発性のRAM(Radom Access Memory)312を有し、様々なアプリケーションプログラムをロードする。また
、マスタ装置310は、RAM312にファームウェア318の更新を実行するプログラム(以下ファームアップ部317)を有する。以下、ファームウェアの更新処理をファームアップと呼ぶ。マスタ装置310は、ファームアップ部317によって、自身のファームウェア318を更新する他、スタンバイマスタ装置320、スレーブ装置330の更新を制御する。
スタンバイマスタ装置320は、マスタ装置310がリブート等で処理を実行できない期間、マスタ装置310に代わって情報システムを制御する。スタンバイマスタ装置320は、マスタ装置310の指示にしたがって、自身のRAM上のファームアップ部によりファームウェアを更新する。スレーブ装置330は、マスタ装置310またはマスタ装置
310の停止期間等においてはスタンバイマスタ装置320からの指示にしたがって、自身のRAM上のファームアップ部によりファームウェアを更新する。ただし、スタンバイマスタ装置320およびスレーブ装置310の構成は、マスタ装置310と同様であるので、その説明を省略する。なお、マスタ装置310、スタンバイマスタ装置320およびスレーブ装置330をそれぞれ筐体とも呼ぶ。以下、コンピュータ、情報処理装置等を筐体、あるいは装置と呼ぶ。
筺体内にはファームウェアを格納する領域が2面存在する。2面とは、ファームウェアの複製を2個格納できる領域という意味である。ファームウェアを格納する領域は、例えば、書き込み可能なROM(Read Only Memory)である。
上述のように、マスタ装置310は他筐体に対し各部品のファームウェアの更新の開始を指示し、各筐体での更新完了の待ち合わせを行う。また、マスタ装置310は更新されたファームウェアを実行するため、各筐体の再起動を指示し、再起動完了の待ち合わせを実行する。マスタ装置310が更新されたファームウェアを実行する場合は、マスタ装置310が「処理制御移行処理」を行い、スタンバイマスタ装置320にファームアップの処理情報を通知する。この通知以降、スタンバイマスタ装置320がファームアップ処理を引き継ぎ、情報システムとしてのファームアップを主導する。
図1に例示したようなマスタ装置310が処理シーケンスを制御して、情報システムのファームアップを行う方式において、マスタ装置310からスタンバイマスタ装置320への処理制御移行処理を行わずにマスタ装置310に異常と異常からの回復処理が発生することがあり得る。ここで、マスタ装置310で発生する異常と回復処理としては、ソフト的な要因による筐体再起動があり、例えばメモリコレクタブルエラー多発による異常からのリカバリの為のリブートが例示される。このような異常が発生すると、マスタ装置310は、スタンバイマスタ装置320に対しファームアップの処理情報を通知できず、ファームアップ時の処理シーケンスをスタンバイマスタ装置320に引き継ぎことができない場合が生じ得る。したがって、情報システムは、ファームアップを制御することができず、情報システムのファームアップが中断してしまうという問題が生じ得る。
図2に、比較例に係る情報システムのファームアップ処理を例示する。図2では、マスタと記載されたマスタ装置310の処理と、スレーブと記載されたスタンバイマスタ装置320の処理が例示され、スレーブ装置330の処理は省略されている。まず、図2を参照して、マスタ装置310に異常が発生しない場合のファームアップ処理を説明する。ファームアップ処理では、マスタ装置310は、自身が有するファームウェアを格納する領域2面のうち、片面をファームアップする(C1)。次に、マスタ装置310は、スタンバイマスタ装置320(以下、図2でスレーブという)に片面のファームアップを指示する。すると、スレーブは片面をファームアップする(C3)。ここで、片面とは、現在マスタを制御するファームウェアが格納されている領域あるいはスレーブを制御するファームウェアが格納されている領域以外の他方の格納領域をいい、裏面とも呼ばれる。スレーブは片面のファームアップを完了し、さらに、自身をリブートする。すると、スレーブは更新されたファームウェアにより起動され、処理を実行する。そして、スレーブはレスポンスをマスタ装置310に返す。
マスタ装置310はスレーブからのレスポンスを待っている(C4)。マスタ装置310は、スレーブからレスポンスが返ると、マスタ装置310は、マスタ切り替えをスレーブに指示するとともに、自身をリブートする(C5)。マスタ装置310からの指示により、スタンバイマスタ装置320であるスレーブはマスタ装置に切り替る。以降、スレーブは、マスタ装置としての制御を実行する。すなわち、マスタ装置として処理を実行するスレーブは、スレーブ側で、マスタ装置310で実行されたC1−C5と同様の処理を実
行する(C7−C11)。すなわち、スレーブは、マスタ装置として、自身のファームウェア格納領域のうち、ファームアップを完了していない片面のファームアップを実行する(C7)。さらに、スレーブは、マスタ装置として、現在、スレーブとなっているマスタ装置310に対して、片面のファームアップを指示する(C8)。
すると、現在、スレーブとなっているマスタ装置310は、ファームアップを完了していない片面のファームアップを実行し(C9)、レスポンスをマスタ装置となっているスレーブに返す。スレーブは、マスタ装置として、レスポンスを待ち(C10)、レスポンスと受けると、ファームアップ完了をマスタ装置310に返す(C11)。マスタ装置310は、スレーブからのファームアップ完了通知を待っており(C12)、ファームアップ完了通知を受けると、スレーブからマスタ装置310への処理移行制御処理が実行される(C13)。すなわち、マスタ装置310が再度マスタとして情報システムを制御する。
図2の処理の途中で、マスタ装置310に異常が発生すると、図2の処理が継続されず、途中で中断することがある。例えば、C5、C6によるマスタ切り替え前にマスタ装置310に異常が発生すると、マスタ装置310は、スレーブにマスタ装置の処理を引き継がせることができない。
また、異常となったマスタ装置310がリブートにより復旧する場合もあり得る。ただし、一度中断したファームアップを再開するためには、単純な処理を採用する場合には、異常となったマスタ装置310が起動完了してから、再度ファームアップ処理開始を指示し、初めからファームアップ処理を実施する。
そこで、以下の実施形態の情報システムは、比較例と同様に、複数筐体を有する情報システムにおいて、ファームアップ処理中に、マスタ装置310からスタンバイマスタ装置320への処理移行制御処理を経ずにマスタ装置310が異常状態となっても、情報システムのファームアップ処理を可能な範囲まで継続する。
また、複数の筐体を有する情報システムにおいて、ファームアップを制御する筐体がファームアップ中に異常状態となっても、マスタ切り替え済みかどうか、あるいはリブート前後のどちらか等の更新の実行状態に基づいて、スタンバイマスタ装置320等の他の筐体がマスタ装置310の処理を可能な限り引き継げるようにする。その結果、情報システムとしてのファームアップの無駄を低減して、可能な限りファームアップを続行できるようにする。
[実施形態1]
以下、実施形態1の情報システムにおけるファームアップ処理を例示する。
<情報システムのファームアップ処理例>
本情報システムは、ファームアップ処理において、ファームアッププランと呼ばれる、ファームアップの実施手順を示す情報を利用する。情報システム内の各筐体は、デフォルトのファームアッププランを保持する。例えば、マスタとなる筐体がデフォルトのファームアッププランを保持しており、他の筐体に配信する。各筐体は、配信されたデフォルトのファームアッププランにしたがって、自筐体および他の筐体のファームアップの進捗状況を把握する。
そして、例えば、マスタとなる筐体に異常が発生してもファームアップ処理が継続できるよう、マスタに代わるスタンバイマスタの筐体が情報システム内の各筐体のファームアッププランを再設定する。ファームアッププランの再設定は、再プランニングと呼ばれる
。再プランニングにおいて、スタンバイマスタは、マスタ切り替え済みかどうか(あるい
はリブート前後のどちらか)に基づいて、スタンバイマスタがスタンバイマスタのみファ
ームアッププランの再プランニングをすればいいか、スタンバイマスタ以外のスレーブのファームアッププランの再プランニングをすればいいかを決定する。より具体的には、スタンバイマスタとなる筐体は、以下に示す処理を実行する。
(1)スタンバイマスタとなる筐体およびスレーブ筐体は、ファームアップ処理において、新規にファームアッププラン格納領域を新設する。
(2)スタンバイマスタとなる筐体は、新設した格納領域にファームアッププランを設定する。処理開始時は予め決定済であるマスタ筐体にはデフォルトとなるファームアッププランが保存されている。また、マスタ筐体は、予め決定済であるスタンバイマスタ筐体、スレーブ筐体に、デフォルトのファームアッププランを配信する。デフォルトのファームアッププランは、初期値とも呼ばれ、典型的なファームアップ処理を記述した情報である。デフォルトのファームアッププランは、例えば、システム管理者が設定すればよい。また、デフォルトのファームアッププランは、例えば、情報システムの設置時に設置者(システムベンダ等)が設定すればよい。例えば、ファームアップ開始前、あるいは開始時、マスタ筐体は保存しているデフォルトのファームアッププランをスタンバイマスタ筐体、およびスレーブ筐体にも送付する。
(3)ファームアッププランを受領したスタンバイマスタ筐体、およびスレーブ筐体は、受領したファームアッププランをファームアッププラン格納領域に保存する。その後マスタ筐体からのファームアップ開始指示を受け、スタンバイマスタ筐体、およびスレーブ筐体は受領したファームアッププランに従ってファームアップを実施する。
ファームアッププランは、ファームアップアップで実行される複数のアクションを定義している。アクションは、例えば、ファームアップアップで実行される処理である。ファームアッププランには、アクションの具体的処理が設定された命令列を格納するRAM上の命令列の先頭アドレスの形式で列記される。各筐体は、ファームアッププランで定義されたアクションを順次実行することで、ファームアップを実行する。
ファームアップ実行中、各筐体はどのアクションを実行しているかを自身のファームアッププラン格納領域に記憶する。各筐体はアクションの実行進捗についてはマスタ筐体に通知する。マスタ筐体は、通知にしたがって、各筐体の実行進捗をファームアッププラン格納領域に保存する。一方、マスタ筐体は、マスタ筐体自身で実行したアクション実行進捗をスタンバイマスタ筐体に通知する。スタンバイマスタ筐体は、通知を受けたマスタ筐体での実行進捗をスタンバイマスタ筐体内のマスタ筐体用のファームアッププラン格納領域に保存する。
(4)スタンバイマスタ筐体はマスタ筐体の異常によるマスタ切り替えが発生した時点で、自身のファームアッププラン格納領域に記録してある実行進捗を参照する。そして、スタンバイマスタ筐体は参照した実行進捗にしたがい、例えば、自筺体に対するファームアッププランを再プランニングする。再プランニングにおいて、スタンバイマスタ筐体は、参照した実行進捗を基に、自筺体において、リブートが実行済みか否かを確認する。
(例1)スタンバイマスタ筐体はリブートが未実行の場合で、マスタ筐体が故障停止していれば、マスタ筐体に依存しないファームアッププランを再設定する。例えば、マスタ筐体停止中は、スタンバイマスタ以外にはマスタになることができる筐体が情報システムに存在しない。したがって、スタンバイマスタ筐体は自身がリブートしない範囲でファームアッププランを再設定する。
(例2)自筐体でリブートが実行済みの場合は、自筐体の再プランニングはせず、マスタ筐体から配布されたデフォルトのファームアッププランをそのまま継続する。ただし、スタンバイマスタ筐体はスレーブ筺体が更新完了を報告する通知先を自筐体とするように、スレーブ筐体に通知する。
(例3)マスタ筐体が異常後に自動復旧した場合も、スタンバイマスタ筐体は再プランニングを実施する。再プランニングでは、スタンバイマスタ筐体は、ファームアッププラン格納領域に保存された、マスタ筐体のファームアッププランのアクション実行進捗を参照する。そして、スタンバイマスタ筐体は、実行進捗を基に所定の再プランニング条件表(図10参照)にしたがって、実行可能なアクションを選択し、マスタ筐体の更新されたファームアッププランを設定する。この場合、典型的には、スタンバイマスタ筐体はマスタ筐体の再起動を待って、処理を継続するように再プランニングする。
スタンバイマスタ筐体は、作成したファームアッププランにしたがってアクションを実行する。マスタ筐体に対しては、マスタ筐体の再起動を待ち、マスタの再起動完了を確認してからマスタ筐体のファームアッププランを配信する。マスタ筐体は、スタンバイマスタ筐体によって更新されたファームアッププランにしたがって、マスタ筐体自身のファームアップを実行する。
以上の仕組みを新たに設けることで、ファームアップ中にマスタ筐体が異常となっても情報システムのファームアップ処理が可能な範囲で実施できるようになる。その結果、比較例のように、ファームアップが中断してしまう事態の発生を低減できる。
<システム構成>
図3は、本実施形態の情報システムの構成を例示する図である。本情報システムは、マスタ装置110と、スタンバイマスタ装置120と、スレーブ装置130とを有する。マスタ装置110と、スタンバイマスタ装置120と、スレーブ装置130とは、比較例の情報システムと同様のネットワークで相互に接続される。図3では、スタンバイマスタ装置120と、スレーブ装置130とは、それぞれ1台ずつ例示されている。ただし、スタンバイマスタ装置120が複数設けられてもよいし、スレーブ装置130が複数設けられてもよい。マスタ装置110は第1のコンピュータの一例である。スタンバイマスタ装置120は第2のコンピュータの一例である。マスタ装置110、スタンバイマスタ装置120、スレーブ装置130は、各コンピュータの一例である。
マスタ装置110は、RAM112を有する。また、RAM112には、コンピュータプログラムであるファームアップ部112Aが格納される。また、RAM112には、定義テーブル領域112Bおよびファームアッププラン格納領域112Cが設けられる。定義テーブル領域112Bには、アクション定義テーブル(図9参照)、再プランニング条件表(図10参照)が格納される。また、ファームアッププラン格納領域112Cには、ファームアッププラン(図11参照)等が格納される。RAM112、RAM122、RAM132は、記憶部の一例である。
さらに、マスタ装置110は、ファームウェア118を格納する格納部118Aを有する。格納部118Aは、例えば、ROMである。ROMは、例えば、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read-Only Memory)等である。格
納部118Aは、ファームウェア118を少なくとも2回格納する容量、すなわち、ファームウェア118の2面分以上の容量を有する。なお、スタンバイマスタ装置120も、マスタ装置110と同様、ファームアップ部122A、定義テーブル領域122B、ファームアッププラン格納領域122Cを含むRAM122、およびファームウェア128を
格納する格納部128Aを有する。また、格納部128Aは、ファームウェア128を少なくとも2回格納する容量、すなわち、ファームウェア128の2面分以上の容量を有する。
さらに、スレーブ装置130は、マスタ装置110、スタンバイマスタ装置120と同様、ファームアップ部132A、定義テーブル領域132B、ファームアッププラン格納領域132Cを含むRAM132、およびファームウェア138を格納する格納部138Aを有する。ファームウェア118、128、138は制御プログラムの一例である。格納部118A、128A、138Aは、それぞれ格納部の一例である。
図4は、本実施形態におけるマスタ装置110のハードウェア構成を例示する図である。なお、本情報システムに含まれる各筐体、すなわち、スタンバイマスタ装置120およびスレーブ装置130は、いずれも、図4と同様の構成を有する。マスタ装置110はCPU11と、主記憶部12と、インターフェース(I/F)を通じて接続される外部機器を有し、プログラムにより情報処理を実行する。CPU11はプロセッサの一例である。主記憶部12はRAM112、RAM122、RAM132の一例である。外部機器としては、外部記憶部13、表示部14、操作部15、および通信部16を例示できる。
CPU11は、主記憶部12において実行可能に展開されたコンピュータプログラムを実行し、コンピュータの様々な機能を提供する。主記憶部12は、CPU11が実行するコンピュータプログラム、CPU11が処理するデータ等を記憶する。主記憶部12は、Dynamic Random Access Memory(DRAM)、Static Random Access Memory(SRAM
)、Read Only Memory(ROM)等である。なお、図3のマスタ装置110のRAM112およびファームウェア118を格納する格納部118Aは、主記憶装置12に含まれる。スタンバイマスタ装置120のRAM122、格納部128A、スレーブ装置130のRAM132、格納部138Aについても、図4の構成と対応関係は、マスタ装置110と同様である。
さらに、外部記憶部13は、例えば、主記憶部12を補助する記憶領域として使用され、CPU11が実行するコンピュータプログラム、CPU11が処理するデータ等を記憶する。外部記憶部13は、ハードディスクドライブ、Solid State Disk(SSD)等である。さらに、情報処理装置10には、着脱可能記憶媒体の駆動装置を設けてもよい。着脱可能記憶媒体は、例えば、ブルーレイディスク、Digital Versatile Disk(DVD)、Compact Disc(CD)、フラッシュメモリカード等である。
また、情報処理装置は、表示部14、操作部15、通信部16を有する。表示部14は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。操作部15は、例えば、キーボード、ポインティングデバイス等である。本実施形態では、ポインティングデバイスとしてマウスが例示される。通信部16は、ネットワーク上の他の装置とデータを授受する。例えば、CPU11は、通信部16を通じて、監視対象システムからメッセージログを取得する。通信部16は、NIC(Network Interface Card)、InfiniBandのチャンネルアダプタ等である。
<全体処理フロー>
図5は、本情報処理システムのファームアップ処理を例示するフローチャートである。図5では、マスタ装置110、スタンバイマスタ装置120、およびスレーブ装置130の処理が例示される。スタンバイマスタ装置120はスレーブ装置1と呼ぶことができ、スレーブ装置130はスレーブ装置2と呼ぶことができる。ただし、スレーブ装置130は複数台設けられてもよいので、図5では、スレーブ2−Nとして示されている。
本情報システムのファームアップ処理では、マスタ装置110がデフォルトのファームアッププランを作成し、スタンバイマスタ装置120およびスレーブ装置130に配布する(G1)。G1の配布処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。例えば、マスタ装置110は、情報システムの管理者の操作部15からの入力にしたがって、デフォルトのファームアッププランを作成してもよい。また、デフォルトのファームアッププランは、情報処理システムのベンダから提供されてもよい。
次に、マスタ装置110は、自身のファームアップを実行後、スタンバイマスタ装置120、スレーブ装置130等にファームアップ開始を指示する(G2)。G2のファームアップ開始の指示は、制御プログラムの更新を指示することの一例である。また、マスタ装置110に異常が発生した場合には、例外処理等を介して、マスタ装置110が異常を検知する(G3)。また、スタンバイマスタ装置120、スレーブ装置130等の各情報処理装置は、情報システム内の他の情報処理装置の異常を監視ている。したがって、マスタ装置110に異常が発生した場合には、スタンバイマスタ装置120、スレーブ装置130は、それぞれマスタ装置110の異常を検知する(G7、G15)。G7でマスタ装置110の異常を検知することは、第1のコンピュータが異常であることを検知することの一例である。G7の処理は、第2のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動後に第1のコンピュータが異常であることを検知することの一例でもある。G7の処理は、第1のコンピュータの制御プログラムの更新に伴う再起動後に第1のコンピュータが異常であることを検知することの一例でもある。G7の処理は、第1のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第2のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前に第1のコンピュータが異常であることを検知することの一例でもある。
マスタ装置110に異常が発生しなかった場合には、マスタ装置110は、通常の処理を実行する(G4)。G4の処理では、図2で異常が発生しなかった場合と同様に、情報システムのファームアップが実行される。また、マスタ装置110に異常が発生した場合、マスタ装置110は、そのまま故障停止する場合(G5)と、故障発生後再起動する場合(G6)とがある。マスタ装置110が故障停止する場合については、処理例2において、詳細が説明される(図15、図16参照)。また、マスタ装置110が故障発生後再起動する場合は、処理例3において、詳細が説明される(図17から図19参照)。G6の処理は、第1のコンピュータが異常であることを検知した後、第1のコンピュータが再起動したときの処理の一例である。
スタンバイマスタ装置120は、マスタ装置110の異常を検知すると、マスタ切り替え済みか否かを判定する(G8)。マスタ切り替え済みとは、マスタとしての制御が、スタンバイマスタ装置120に引き渡されていることをいう。マスタ切り替え済みの場合、スタンバイマスタ装置120は、スタンバイマスタ装置120自身のファームアッププランを再プランニングし、スレーブ装置130のファームアッププランを再プランニングしない。すなわち、マスタ切り替え済みの場合、スレーブ装置130には影響がないので、スタンバイマスタ装置120およびスレーブ装置130は、マスタ装置110から配布されたスレーブ装置130のファームアッププランを引き続き保持する。ただし、この場合、スタンバイマスタ装置120は、スレーブ装置130からのアクションの実行完了を待つように自身のファームアッププランを再プランニングするとともに、スレーブ装置130に、実行完了をスタンバイマスタ装置120に通知するように指示する。
一方、G8の判定で、マスタ切り替え前にマスタ装置110に異常が発生した場合、スタンバイマスタ装置120は、マスタとスタンバイマスタの切り替えを実行し、マスタ装
置110の代わりに、情報システムのファームアップを主導する制御を開始する(G10)。また、マスタ切り替え前にマスタ装置110に異常が発生した場合には、マスタ装置110の主導によるファームアップ実行中に、マスタ装置110に異常が発生している。そこで、スタンバイマスタ装置120は、マスタ装置110の主導によるファームアップのためのファームアッププランを再プランニングすることになる。すなわち、スタンバイマスタ装置120は、情報システムのすべてのスレーブ装置130に対するファームアッププランを再プランニングする(G11)。そして、スタンバイマスタ装置120は、再プランニングしたファームアッププランをスレーブ装置130に再配布する(G12)。
さらに、スタンバイマスタ装置120は、スタンバイマスタ装置120自身、すなわちスレーブ1のファームアッププランをファームアッププラン格納領域122Cに再設定する(G13)。そして、スタンバイマスタ装置120は、スレーブ装置130にファームアップ再開を指示する(G14)。そして、スタンバイマスタ装置120は、自身のファームアップを再開する(G18)。なお、G6のように、マスタ装置が故障後再起動される場合、スタンバイマスタ装置120は、マスタ装置の再起動を待ってファームアップを主導する処理をマスタ装置110に戻し、G11において、他のスレーブへの再プランニングは実施せず、G12において、再プランニングされたファームアッププランの他のスレーブへの再配布は実施しない。この場合の詳細は、処理例3で説明される。
スレーブ装置130は、マスタ装置110の異常を検知すると(G15)、ファームアップを保留する(G16)。そして、スレーブ装置130は、スタンバイマスタ装置120から再プランニングされたファームアッププランを受領すると(G17)、ファームアップを再開する(G18)。なお、スタンバイマスタ装置120が再プランニングを実施しない場合には、スレーブ装置130は、マスタ装置110から配布されたファームアッププランにしたがって、スタンバイマスタ装置120の指示にしたがってファームアップを実行する。そして、情報システムにおいて、実行可能な範囲でファームアッププランが完了すると、それぞれの筐体、すなわち、スタンバイマスタ装置120、スレーブ装置130は、ファームアップ処理を完了する。なお、マスタ装置110は、故障後再起動した場合(G6)には、ファームアップ処理を完了する(G19)。G8からG19の処理は、第2のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を制御することの一例である。
図6に、ファームアップ処理の間、マスタ装置110において異常が発生しない場合の詳細処理を例示する。上述のように、マスタ装置110は、ファームアッププランを作成し、スタンバイマスタ装置120およびスレーブ装置130に配布する(M1)。M1の配布処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。スタンバイマスタ装置120およびスレーブ装置130は、ファームアッププランをマスタ装置110から受領する(S11、S21)。
次に、マスタ装置110は、スタンバイマスタ装置120およびスレーブ装置130に、ファームアップ開始を指示する(M2)。M2のファームアップ開始の指示は、制御プログラムの更新を指示することの一例である。また、マスタ装置110は、片面ファームアップを実行する(M3)。ここで、片面ファームアップとは、ファームウェア118等を格納する格納部118Aの一方の領域にファームウェアを書き込むことをいう。M3の片面ファームアップは、格納部の第1の領域に格納された制御プログラムの実行中に格納部の第2の領域に格納された制御プログラムを更新することの一例である。そして、マスタ装置110は、処理待ちの状態となる(M4)。なお、M2とM3の順序が逆でもよい。
すると、スタンバイマスタ装置120およびスレーブ装置130は、マスタ装置110
から指示を受け、ファームアッププランに沿ってファームアップを開始し(S11、S12、S21、S22)、片面ファームアップを実行する(S13、S23)。ファームアップ実行中、スタンバイマスタ装置120およびスレーブ装置130は、マスタ装置110にファームアッププランの進捗を通知する(S14、S24)。さらに、スタンバイマスタ装置120およびスレーブ装置130は、ファームアップのうち、残りの処理を実行するとともに(S15、S25)、ファームアッププランの進捗をマスタ装置110に通知する(S16、S26)。S13の片面ファームアップは、格納部の第1の領域に格納された制御プログラムの実行中に格納部の第2の領域に格納された制御プログラムを更新して更新管理情報中の第2のコンピュータの処理の進捗を記録することの一例である。
マスタ装置110は、リブート前のファームアッププランがスタンバイマスタ装置120およびスレーブ装置130で完了済みか否かを判定する(M5)。そして、リブート前のファームアッププランがスタンバイマスタ装置120およびスレーブ装置130で完了済みの場合、マスタ切り替えをスタンバイマスタ装置120およびスレーブ装置130に通知し(M6)、自身をリブートする(M7)。M7のリブートすることは、再起動することによって更新された格納部の第2の領域に格納された制御プログラムを実行することの一例である。すなわち、本情報システムでは、マスタ装置110またはマスタとなっているスタンバイマスタ装置120が正常にリブートする場合には、リブート前に、次にマスタとなる装置、およびスレーブ装置にマスタ交代を通知する。この通知によって、マスタ交代が実行される。リブート完了後、マスタ装置110は、M3でファームアップしたファームウェアで起動するとともに、スタンバイマスタとなる。そして、マスタ装置110は、スタンバイマスタとしてファームアッププランの進捗をマスタとなったスタンバイマスタ装置120に通知する(M8)。なお、スタンバイマスタとして動作するマスタ装置110は、M8の処理とともに、ファームウェア118を格納する残りの片面をファームアップすればよい。M1からM6の処理は、第1のコンピュータによって、各コンピュータの制御プログラムの更新を制御すること一例である。
一方、マスタ装置110からマスタ切り替えの通知を受領したスタンバイマスタ装置120は、マスタとしての動作を開始する(S17)。また、スレーブ装置130は、マスタ装置110からマスタ切り替えの通知を受信し(S27)、通知先をスタンバイマスタ装置120に変更する。スレーブ装置130は、マスタとしての動作するスタンバイマスタ装置120に、ファームアッププランの進捗を通知する(S28)。
マスタとして動作するスタンバイマスタ装置120は、マスタ装置110およびスレーブ装置130でファームアッププランが完了済みであるか否かを判定する(S18)。そして、マスタ装置110およびスレーブ装置130でファームアッププランが完了済みになると、マスタとして動作するスタンバイマスタ装置120は、マスタの切り替えをマスタ装置110およびスレーブ装置130に通知する(S19)。このとき、スタンバイマスタ装置120は、マスタの動作を停止し、本来のスタンバイマスタの処理に戻る。S18、S19の処理は、第1のコンピュータが実行を停止するときに第1のコンピュータに代わって各コンピュータの制御プログラムの更新を制御することの一例ある。M6の通知により実行されるS17からS19の処理は、第1のコンピュータが再起動するときに、各コンピュータの制御プログラムの更新を制御することの一例でもある。
マスタ装置110は、マスタとしての動作するスタンバイマスタ装置120からマスタの切り替えを受領すると、マスタとしての動作に復帰する(M9)。また、スレーブ装置130は、マスタとしての動作するスタンバイマスタ装置120からマスタの切り替えを受信し(S29)、マスタ変更を認識する(S2A)。以降、スレーブ装置130の通知先は、マスタ装置110となる。
さらに、スタンバイマスタ装置120およびスレーブ装置130は、ファームアッププランのすべての工程の実行を認識し、マスタ装置110に完了を通知し(S1A、
S2A)、処理を終了する。最後に、マスタ装置110は、スタンバイマスタ装置120およびスレーブ装置130からの全ファームアッププラン完了済みの報告を待ち(M10)、処理を終了する。なお、スタンバイマスタ装置120は、S13からS16のいずれかでリブートすることで、S13でファームアップされたファームウェアで起動すればよい。また、スレーブ装置130は、S23からS2Aのいずれかでリブートすることで、S13でファームアップされたファームウェアで起動し、さらに、残りの片面をファームアップすればよい。
図7は、マスタ切り替え前にマスタ装置110で異常が発生した場合の詳細処理を例示する。この処理では、マスタ装置110が、リブート前のファームアッププランの完了を待っているときに、すなわちM5の処理中に異常が発生したとする。また、マスタ装置110は故障によって停止し、再起動できなかったとする。図7において、マスタ装置110のM1からM4の処理、スタンバイマスタ装置120のS11からS14の処理、およびスレーブ装置130のS21からS25の処理は図6と同様である。
マスタ装置110に異常が発生すると、スタンバイマスタ装置120は、マスタ装置110の監視によって異常を検知し、自身をマスタに切り替える(T11)。すなわち、スタンバイマスタ装置120は、マスタとして動作を開始する。T11の処理は、第1のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第2のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前に第1のコンピュータが異常であることを検知することの一例である。また、スレーブ装置は、マスタ装置110の監視によって異常を検知し、ファームアップを保留する(T21)。
そして、マスタとして動作するスタンバイマスタ装置120は、ファームアッププランを再プランニングする(T12)。再プランニングの手順は、図12に例示されているので、別途図12にしたがって後述する。T12(および図12のP10からP12)の処理は、第2のコンピュータの記憶部に保存されている更新管理情報中の第2のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。
そして、スタンバイマスタ装置120は、再プランニングしたファームアッププランを自身に設定するとともに、スレーブ装置130(スレーブ装置2−N)に配布する(T13)。そして、マスタとして動作するスタンバイマスタ装置120は、再プランニングされたファームアッププランにしたがって続きの処理を実施する(T14)。
スレーブ装置130は、マスタとして動作するスタンバイマスタ装置120からファームアッププランを受領し、保留していたファームアップを再開する(T22)。そして、スレーブ装置130は、スタンバイマスタ装置120に進捗を通知する(T23)。そして、スレーブ装置130は、ファームアッププランの全工程の実行を認識し、マスタとして動作するスタンバイマスタ装置120に完了を通知する(T24)。そして、スレーブ装置130はファームアップ処理を終了する。
マスタとして動作するスタンバイマスタ装置120は、スレーブ装置130からの完了の通知を待っている。スタンバイマスタ装置120は、すべてのスレーブ装置130から、完了を受領すると(T15でYES)、処理を終了する。T13からT15は、再設定された更新計画にしたがって各コンピュータの制御プログラムの更新を継続することの一例ある。
図8は、マスタ切り替え後に、マスタ装置110で異常が発生した場合の処理を例示する。この処理では、マスタ装置110が、リブート(M7)後に異常が発生したとする。また、マスタ装置110は故障によって停止し、再起動できなかったとする。図8において、マスタ装置110のM1からM7の処理、スタンバイマスタ装置120のS11からS17の処理、およびスレーブ装置130のS21からS27の処理は図6と同様である。
図7の場合と同様、マスタ装置110に異常が発生すると、スタンバイマスタ装置120は、マスタ装置110の監視によって異常を検知する(U11)。ただし、すでに、マスタ装置110がマスタ切り替えを通知し(M6)、スタンバイマスタ装置120は、マスタとして動作している。また、すでに、マスタ装置110はリブートを完了している(M7)。すなわち、マスタ装置110によって制御されるファームアップの工程は正常に終了している。したがって、スレーブ装置130は、マスタの異常検知によってファームアップを保留するが(U21)、スレーブ装置130のファームアッププランはそのまま継続でき、再プランニングされなくてもよい。そこで、スタンバイマスタ装置120は、自身の再プランニングを実施するが、スレーブ装置130(スレーブ2−N)の再プランニングを実施しない。再プランニング処理例は、図12にしたがって後述する。U11の処理は、第2のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動後に第1のコンピュータが異常であることを検知することの一例である。U11の処理は、第1のコンピュータの制御プログラムの更新に伴う再起動後に第1のコンピュータが異常であることを検知することの一例でもある。
さらに、スタンバイマスタ装置120は、再プランニングしたファームアッププランを自身のファームアッププラン格納領域122Cに再設定する(U12)。なお、図12にしたがって別途詳述するように、マスタ装置110のリブート後、または、スタンバイマスタ装置120のリブート後は、スタンバイマスタ装置120は、デフォルトのファームアッププランの最後にスレーブ装置130からの完了待ちを追加する。したがって、デフォルトのファームアッププランに基づく更新は継続される。
また、スタンバイマスタ装置120は、スレーブ装置130にファームアップの再開を指示する(U13)。そして、スタンバイマスタ装置120は、再プランニングしたファームアッププランにしたがって続きの処理を実施する(U14)。スタンバイマスタ装置120から再開の指示を受けたスレーブ装置130は、ファームアップを再開する(U22)。そして、スレーブ装置130は、ファームアッププランの全工程の実行を認識し、マスタとして動作するスタンバイマスタ装置120に完了を通知する(U23)。そして、スレーブ装置130はファームアップ処理を終了する。
マスタとして動作するスタンバイマスタ装置120は、スレーブ装置130からの完了の通知を待っている(U15)。スタンバイマスタ装置120は、すべてのスレーブ装置130から、完了を受領すると(U15でYES)、処理を終了する。U12からU15の処理は、第2のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。なお、スタンバイマスタ装置120は、U12で、デフォルトのファームアッププランの最後にスレーブ装置130からの完了待ちのアクションを追加する。しかし、追加されるアクション以外は、デフォルトのファームアッププランのアクションが残されるため、スタンバイマスタ装置120は、デフォルトのファームアッププランに基づいて更新を継続するということができる。
<定義テーブルおよびファームアッププランの構造>
図9は、アクション定義テーブルを例示する表である。アクション定義テーブルは、フ
ァームアッププランに設定されるアクションと、各アクションの実行条件を関係づける。ファームアップを実行する各装置は、ファームアッププランに規定された各アクションについて、図9のアクション定義テーブルで規定された実行条件が充足されたか否かを判定する。実行条件が充足された場合には、各装置は、ファームアップに規定されたアクションを実行する。すなわち、本情報システム内の各装置は、ファームアッププランとアクション定義テーブルとを参照し、ファームアッププランの先頭のアクションから順次、実行条件を判定し、実行条件が充足されたときにアクションを実行していく。
図9の例では、No.1のアクションとして、SCM Firm Write(1面)が定義され、実行条件はなしに設定されている。したがって、SCM Firm Write(1面)は、無条件に実行できるアクションである。ここで、SCMは、装置内の基板名の一例で有り、”SCM Firm Write”は特定の基板にファームウェアを書き込む処理の一例である。ただし、本実施形態
の処理が特定の基板のファームに対する処理に限定される訳ではない。
No.2のアクションとして、Bank切り替えが定義され、実行条件は「自身がマスタの場合、他に正常なマスタ候補の筐体が必要」とされている。すなわち、Bank切り替えは、情報システムがマスタ切り替え可能な状態にあるという条件で、実行できるアクションである。例えば、マスタ装置110が1台、スタンバイマスタ装置120が1台存在し、他にマスタ候補が存在しない情報システムで、マスタ装置110が故障した場合には、Bank切り替えは、実行できない。アクション定義テーブルのNo.3のアクションとして、リブートが定義され、No.2と同様に、「実行条件は自身がマスタの場合、他に正常なマスタ候補の筐体が必要」とされている。したがって、リブートはBank切り替えと同様、マスタ装置110が1台、スタンバイマスタ装置120が1台存在し、他にマスタ候補が存在しない情報システムで、マスタ装置110が故障した場合には、実行できない。
No.4のアクションとして、SCM Firm Write(2面)が定義され、実行条件は、No.2、No.3実行後でないと不可とされている。したがって、例えば、マスタとして動作するスタンバイマスタ装置120は、リブートしていないときには、SCM Firm Write(2面)を実行できない。
No.5のアクションとして、準備完了待ちが定義され、実行条件は、相手筐体の起動完了を待つ、とされる。相手筐体の起動完了を待つため、実行条件には、相手筐体の起動完了の通知の宛て先、例えば、メッセージキュー等が指定される。したがって、ファームアッププランには、準備完了待ちのアクションとともに、相手筐体の起動完了が通知されるメッセージキュー等の通知先、通知先となるレジスタ、共有メモリ等が指定設定される。
No6.のアクションとして、処理待ちが定義され、実行条件は、相手筐体のアクション実行完了を待つ、とされる。相手筐体の相手筐体のアクション実行完了を待つため、実行条件には、相手筐体の相手筐体のアクション実行完了の通知の宛て先、例えば、メッセージキュー等が指定される。したがって、ファームアッププランには、処理待ちのアクションとともに、相手筐体のアクション実行完了が通知されるメッセージキュー等の通知先が指定設定される。
No.7のアクションとして、完了待ちが定義され、実行条件は、マスタ筐体での完了待ち、とされる。この場合の実行条件は、マスタ筐体で実行であり、スレーブとして動作する筐体からの完了を待つという意味である。したがって、実行条件には、スレーブとして動作する筐体からの完了通知の宛先、例えば、メッセージキュー等が指定される。
なお、図9の実行条件は、自然言語で記述されているが、実行条件の判定は、図9の自
然言語をコンピュータが解釈しなくてもよい。例えば、図9の実行条件を判定する論理がコンピュータプログラムとして記述されていればよい。各装置は、コンピュータプログラムが判定する論理値にしたがって、実行条件が充足されたか否かを判定すればよい。
図10は、再プランニング条件表を例示する。再プランニング条件表は、実行順序と、アクションと、マスタに異常が発生した場合の次のアクションとの関係が定義される。スタンバイマスタ装置120は、図10のアクション実行中に、マスタ装置110の異常を検知すると、図9の「マスタに異常が発生した場合の次のアクション」で定義された処理実施するように、再プランニングを実行する。
例えば、マスタに異常が発生した場合、実行順序1のSCM Firm Write(1面)のアクションの次のアクションには、実行順序2(Bank切り替え)、実行順序3(リブート)、実行順序4(SCM Firm Write(2面))が、旧マスタの再起動完了した後に、再プランニングに組み込まれる。
また、例えば、実行順序2のBank切り替えの次のアクションには、実行順序3(リブート)、実行順序4(SCM Firm Write(2面))が、旧マスタの再起動完了した後に、再プランニングに組み込まれる。一方、実行順序3(リブート)、実行順序4(SCM Firm Write(2面))は、マスタに異常が発生した場合でもファームアッププランが変更されない。
なお、図10の再プランニング条件表は、図9の実行条件と同様に、自然言語で記述されているが、再プランニング条件の解釈では、図10の自然言語をコンピュータが解釈しなくてもよい。例えば、図10の再プランニング条件を判定し、可能なアクションを設定する論理がコンピュータプログラムとして記述されていればよい。スタンバイマスタ装置120は、コンピュータプログラムが判定する論理と、設定にしたがって、再プランニングを実行すればよい。
図11は、デフォルトのファームアッププランを例示する。デフォルトのファームアッププランは、初期値ということができ、ファームアップ時のアクションが典型的な順に列記された表である。マスタ装置110に異常が発生しなければ、情報システムは、図11のファームアッププランにしたがって、図9のアクション定義テーブルの実行条件を判定しつつ、ファームアップを実行する。図11のファームアッププランは、例えば、情報システムのベンダから提供される。一方、ファームアップ途中でマスタ装置110が異常になると、図12の再プランニングの処理例にしたがって、スタンバイマスタ装置120がファームアッププランを再プラニングする。
図11のデフォルトのファームアッププランの例では、マスタ装置110は、実行順序1:SCM Firm Write(1面)、実行順序2:処理待ち、実行順序3:準備完了待ち、実行順序4:Bank切り替え、実行順序5:リブート、実行順序6:SCM Firm Write(2面)、実行順序7:完了待ちの順にファームアップを実行する。なお、図面では、リブートは”Reboot”のように記述する。
また、スタンバイマスタ装置120およびスレーブ装置130は、実行順序1:SCM Firm Write(1面)、実行順序2:Bank切り替え、実行順序3:リブート、実行順序4:SCM Firm Write(2面)の順にファームアップを実行する。
<再プランニングの処理例>
図12は、スタンバイマスタ装置120が、マスタ装置110の異常を検知したときに実行する再プランニング処理の手順を例示するフローチャートである。再プランニング処
理において、まず、スタンバイマスタ装置120は、マスタ装置110がリブートを実行前か否かを判定する(P1)。ここで、マスタ装置110は、以降旧マスタ装置と呼ばれる。スタンバイマスタ装置120が旧マスタ装置110の処理を実行するからである。旧マスタ装置がリブートを実行前のとき、スタンバイマスタ装置120は、スタンバイマスタ装置120自身がリブートを実行前か否かを判定する(P2)。スタンバイマスタ装置120自身がリブートを実行前である場合、スタンバイマスタ装置120は、旧マスタ装置110が起動中か否かを判定する(P3)。旧マスタ装置110が起動中になるのは、例えば、旧マスタ装置110がコンピュータプログラムのエラー、主記憶装置のエラー等で例外処理あるいはリセットにより再起動される場合である。スタンバイマスタ装置120は、所定のタイミングで旧マスタ装置110を監視しているので、旧マスタ装置110が起動中か否かを判定できる。具体的には、スタンバイマスタ装置120は、P3の判定のため、所定時間旧マスタ装置を監視すればよい。
P3の判定で、旧マスタ装置が起動中の場合、スタンバイマスタ装置120は、新ファームアッププランAを設定する(P4)。以下、新ファームアッププランを単に新プランともいう。
新プランAは、図11に例示したスレーブ1のデフォルトのファームアッププランに対して、実行順序No.3のリブートの前に、図9(アクション定義テーブル)に例示したアクションNo.5(準備完了待ち)を設定するものである。図9の実行条件から明らかなように、アクションNo.5(準備完了待ち)は、相手筐体の起動完了を待つというアクションである。
なお、本実施形態の処理では、新ファームアッププランAは、新規なファームアッププランとして実行順序1から3の処理を設定するものとして説明する。ただし、例えば、新ファームアッププランAとしては、図11に例示したスレーブ1のデフォルトのファームアッププランに対して、アクションNo.5(準備完了待ち)を挿入するものであってもよい。この場合には、P4の処理において、実行順序4、5が、図11に例示したスレーブ1のデフォルトのプランの実行順序No.3、No.4から繰り下げられて設定される。したがって、旧マスタ装置110が起動中の場合には、スタンバイマスタ装置120は、旧マスタ装置110の起動完了を待って、デフォルトのプランを継続することになる。なお、P3の判定で、旧マスタ装置110が起動中でない場合、スタンバイマスタ装置120は、P4の処理を実行しないで、P5に制御を移す。
次に、スタンバイマスタ装置120は、スタンバイマスタ装置120以外にスレーブが存在するか否かを判定する(P5)。本実施形態では、マスタ装置110、スタンバイマスタ装置120、スレーブマスタ装置130は、情報システムに含まれる装置の構成情報を相互に授受しているものと想定する。スタンバイマスタ装置120以外にスレーブが存在する場合、スタンバイマスタ装置120は、旧マスタ装置110の起動が完了したか否かを判定する(P6)。スタンバイマスタ装置120は、所定のタイミングで旧マスタ装
置110を監視しているので、旧マスタ装置が起動を完了したか否かを判定できる。ただし、旧マスタ装置110が起動を完了すると、旧マスタ装置110がスタンバイマスタ装置120、スレーブ装置130に割り込み、ネットワークを介した通信等で通知するようにしてもよい。いずれにしても、スタンバイマスタ装置120は、所定時間待ってP6の判定を実行すればよい。
P6の判定で、旧マスタ装置が起動を完了すると、スタンバイマスタ装置120は、新プランBを設定する(P7)。P6、P7の処理は、第1のコンピュータが異常であることを検知した後、前記第1のコンピュータが再起動したときに、第1のコンピュータの再起動後の処理として第2のコンピュータによる再起動を伴う処理を更新計画に設定することの一例である。
新プランBは、アクションNo.3(リブート)、No.4(SCM Firm Write(2面))を新プランAの実行順序No.3(準備完了待ち)の後に設定するものである。ただし、上述したように、P4の処理で、新プランAとして、図11に例示したスレーブ1のデフォルトのプランに対して、アクションNo.5(準備完了待ち)を挿入した場合には、実行順序4、5は設定済みであるので、P7の処理は不要となる。
次に、スタンバイマスタ装置120は、旧マスタ装置110のプランを生成する(P8)。この場合、旧マスタ装置110は、再起動により復旧しているため、旧マスタ装置110のプランは、図11のマスタ装置110のプランから変更はない。
P6の判定で、旧マスタ装置が起動を完了しなかった場合、スタンバイマスタ装置120は、スタンバイマスタ装置120以外にスレーブが存在するか否かを判定する(P9)。スタンバイマスタ装置120以外にスレーブが存在する場合、スタンバイマスタ装置120は、自身の新プランCを設定する(P10)。
新プランCは、アクションNo.5(準備完了待ち)、No.6(処理待ち)を図11に例示したスレーブ1のデフォルトのプランの実行順序No.1(SCM Firm Write(1面))の後に設定し、最後に、アクションNo.7(完了待ち)を設定したものである。つま
り、新プランCは、図9(アクション定義テーブル)で、他に正常なマスタ候補の存在が実行条件とされるアクションNo.2(Bank切り替え)、No.3(リブート)をスレーブ1のデフォルトのプランから除外し、旧マスタの処理を継続するものである。すなわち、新プランCによって、スタンバイマスタ装置120は、可能な範囲で極力ファームアップを継続できる。なお、図9(アクション定義テーブル)において、スレーブ1のデフォルトのプランNo.4(SCM Firm Write(2面))の実行条件は、アクションNo.2(Bank切り替え)、No.3(リブート)の実行である。このため、スレーブ1のデフォルトのプランNo.4(SCM Firm Write(2面))は、新プランCから除外される。
次に、スタンバイマスタ装置は、他装置の新プランを生成する(P11)。ただし、他装置のプランは、図11のスレーブ2のプランから変更はない。なお、他の装置(スレーブ)の通知先は旧マスタからスタンバイマスタ装置120に変更される。つまり、P11では、ファームアッププラン字体の変更はなく、通知先が変更される。
また、P5の判定で、スタンバイマスタ装置自身以外にスレーブ装置が存在しない場合、スタンバイマスタ装置は、新プランDを設定する(P12)。P10からP12の処理は、第2のコンピュータの記憶部に保存されている更新管理情報中の第2のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。P10、P11の処理は、所定期間内に前記第1のコンピュータの再起動を検知できないときに、第1のコンピュータ以外の各コンピュータからの制御プログラムの更新完了を待つ処理を第2のコンピュータの更新計画の末尾に設定する処理の一例でもある。
新プランDは、図11に例示したスレーブ1のデフォルトのプランから実行順序No.2(Bank切り替え)、No.3(リブート)、No.4(SCM Firm Write(2面))を削除したものである。すなわち、旧マスタが再起動せず、他にスレーブ装置が存在しないので、スタンバイマスタ装置は、片面のファームアップを実行して処理を終了することになる。
さらに、P2の判定で、スタンバイマスタ装置120自身がリブート実行済みである場合、スタンバイマスタ装置は、スタンバイマスタ装置120以外にスレーブ装置が存在するか否かを判定する(P13)。スタンバイマスタ装置120以外にスレーブ装置が存在する場合、スタンバイマスタ装置は、新プランEを設定する(P14)。
新プランEは、図9(アクション定義テーブル)に例示したアクションNo.7(完了待ち)を図11に例示したスレーブ1のデフォルトのプランの最後に設定するものである。つまり、スタンバイマスタ装置120自身がリブート後である場合、すでに、スタンバイマスタ装置120は、旧マスタ装置に代わって、マスタ装置の処理を実行中である。このため、デフォルトのプランに対して、他のスレーブからの完了を待てばよいからである。
また、他のスレーブ装置については、プランの変更はない(P15)。本情報システムでは、スタンバイマスタがリブート済みであり、スレーブ装置130の宛先においてもすでに通知先が変更されている可能性がある。しかし、本情報システムでは、念のため、スタンバイマスタ装置120は、通知先がスタンバイマスタ装置120となるようにスレーブ装置130に通知する(P15)。また、P13の判定で、スタンバイマスタ装置120以外にスレーブ装置が存在しない場合、スタンバイマスタ装置120は、プラン変更せず(P16)そのまま処理を終了する。P14からP16の処理は、第2のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。なお、スタンバイマスタ装置120は、P14で、アクションNo.7(完了待ち)をデフォルトのファームアッププランの最後に設定する。しかし、アクションNo.1からNo.4に変更がないため、スタンバイマスタ装置120は、デフォルトのファームアッププランに基づいて更新を継続するということができる。すなわち、P14で、アクションNo.7(完了待ち)をデフォルトのファームアッププランの最後に設定することは、第2のコンピュータの記憶部に保存されている更新管理情報に基づいて各コンピュータの制御プログラムの更新を継続することの一例である。
さらにまた、P1の判定で、マスタ装置110がリブート実行済みのとき、スタンバイマスタ装置120は、P13以下の処理を実行する。マスタ装置110がすでにリブート実行済みの場合には、すでに、スタンバイマスタ装置120は、マスタ装置110に代わって、マスタ装置110の処理を実行中である。したがって、スタンバイマスタ装置120は、P2の判定で自身がリブートを実行後のときと同様の処理を実行すればよい。
<処理例1>
処理例1において、デフォルトのファームアッププランは、図11と同様である。ただし、処理例1では、筐体1がマスタであり、筐体2がスタンバイマスタであり、筐体3がスレーブであるとする。また、本情報システムでは、ファームアッププランには、筐体間で授受する完了通知を記録する完了記録領域を設ける。
図13に、完了記録領域を設けたファームアッププランを例示する。なお、この完了記録領域の初期値は“未完了”である。図13の例では、図11のファームアッププランに対して、筐体1から筐体3の実行順序1(SCM Firm Write(1面))が完了し、実行順序2以下が未完了となっている。完了記録領域を設けたファームアッププランが更新管理情報の一例である。また、完了記録領域を除くファームアッププランが更新処理の計画の一例である。さらに、完了記録領域に記録される情報(未完了、完了等)が更新処理の進捗の一例である。
図14A、図14B、図14Cに、図11(あるいは図13)のデフォルトのファームアッププランにしたがって、正常にファームアップが完了する処理を例示する。
(1)筐体1は、マスタとして、管理者等のオペレーションにしたがって、情報システムのファームアッププランを作成する(M101)。ただし、筐体1は、ファームアッププランとしては、情報システムのベンダから提供されるデフォルトのファームアッププランをそのまま流用してもよい。
(2)筐体1はファームアッププランをスレーブである筐体2、3に送信する(M102)。M102のファームアッププランをスレーブに送信する処理は、記憶部に保存されている更新管理情報を各コンピュータに配信することの一例である。M102では、筐体1は、それぞれの宛先となる筐体自体のファームアッププランだけではなく、情報システム内のすべての筐体のファームアッププランを各筐体に送信する。一方、筐体2、3は、筐体1からファームアッププランを受領する(S101、S201)。
(3)ファームアッププランの送信が完了すると、筐体1は、ファームアップを自筺体(筐体1)と、筐体2、3に対して指示する(M103)。M103のファームアップの指
示は、制御プログラムの更新を指示することの一例である。そして、筐体1は、ファームアップを開始する(M104)。一方、筐体2、3は、筐体1からファームアッププランの指示を受領すると、ファームアッププランに沿って、ファームアップを開始する(S102、S202)。
(4)各筐体では配信されたファームアッププランのアクションを実行順序に沿って実行し、完了する。各筐体で最初に実行するアクションはSCF Firm Write(1面)である(M104、M105、S103、S104、S105、S203、S204、S205)。ただし、図14Aから14Cでは、” SCF Firm Write”を”SCFファームアップ”と称する。M104のファームアップ開始、M105のファームアップの完了は、格納部の第1の領域に格納された制御プログラムの実行中に格納部の第2の領域に格納された制御プログラムを更新することの一例である。
(5)各筐体は、各アクションを終了すると、ネットワークで接続されているマスタである筐体1およびスタンバイマスタである筐体2に、実行順序の番号とそのアクション”
”SCFファームアップ”の完了を通知する(S105、S205、M107)。また、筐
体1、2は、それぞれの筺体から完了通知を受信すると、アクション”SCFファームアッ
プ”の完了をファームアッププランの完了記録領域に記録する(M106、S106)。M106のアクション”SCFファームアップ”の完了をファームアッププランの完了記録
領域に記録することは、更新管理情報中の更新処理の進捗を記録することの一例である。また、M107のスタンバイマスタである筐体2に、実行順序の番号とそのアクション”SCFファームアップ”の完了を通知することは、更新処理の進捗を前記第2のコンピュー
タに通知することの一例である。S103のファームアップ開始、S104のファームアップの完了、およびS106の完了記録領域への記録は第1の領域に格納された制御プログラムの実行中に前記格納部の第2の領域に格納された制御プログラムを更新して前記更新管理情報中の第2のコンピュータの処理の進捗を記録することの一例である。S106の完了記録領域への記録は、第1のコンピュータから受信した更新処理の進捗によって更新管理情報中の第1のコンピュータの更新処理の進捗を記録することの一例でもある。
ただし、本情報システムの処理は、S105、S205、M107、M106、S106の処理に限定される訳ではない。例えば、各筐体は、各アクションが終了したら、ネットワークで接続されているすべての筐体に、実行順序の番号とそのアクションの完了を通知してもよい。そして、通知を受けた各筐体はすべての筐体の通知にしたがって、すべての筐体での完了を各筐体のファームアッププランに記録してもよい。
(6)各筐体はファームアッププランに記載されている実行アクションを実行する際は、図9のアクション定義テーブルに記載してある実行条件に従って実行する。図13の例では、筺体1が実行すべき実行順序2のアクションは“処理待ち”であり、図9のアクショ
ン定義テーブルで、“処理待ち”の実行条件は“相手筺体のアクション実行完了を待つ”である。このため、筐体1は、筺体2の実行順序2のアクションである”Bank切り替え”の完了通知を待つ(M108)。
一方、筐体2、3は、ファームアッププランとアックション定義テーブルの実行条件にしたがい、アクション”Bank切り替え“を実行し(S107、S207)、筐体1にアクション完了を通知する(S108、S208)。筐体1は、”Bank切り替え“アクション実行完了を受け、アックション定義テーブルの実行条件にしたがい、処理待ちを終了する。そして、筐体1はファームアッププランの”処理待ち“完了記録領域に“完了”を設定する(M109)。
(7)筐体2の実行順序の番号とそのアクション完了通知を受領後、筺体1は次のアクシ
ョンを実行する。
(8)筺体1の次の処理は、“準備完了待ち”である。また、図9のアクション定義テーブルにおいて、“準備完了待ち”アクションの実行条件は、”相手筐体の起動完了を待つ”である。ファームアッププランの次の実行順序3で筐体2、3がリブートすることになる。そこで、筺体2がリブートを完了し、筐体1に対して、実行順序の番号とそのアクション完了通知を通知してくるまで、筐体1は待ち合わせを行う(M110)。なお、この待ち合わせにタイムアウト値を設定し、規定値までにスレーブ筐体が通知をしてこなかった場合は、タイムアウト発生としてファームアップを異常終了する。
筐体2、3はファームアッププランおよびアクション定義テーブルにしたがい、リブートを実行する(S109、S209)。筐体2は、筐体1にアクション完了を通知する(S110)。また、図14Bの処理では、筐体3は、筐体1、2にアクション完了を通知する(S210)。S110およびS210の処理は、”リブート”アクションが開始したことの通知である。筐体1は、ファームアッププランの筐体2、3の完了記録領域に“完了”を設定する(M111)。さらに、再起動後に筐体2、3は起動完了を筐体1に通知する(S111、S211)。筐体1は、筐体2、3からの起動完了を受信し、ファームアッププランの“準備完了待ち”アクションの完了記録領域に“完了”を設定する(M112)。なお、変形例として、S211、S111で再起動後に筐体3が起動完了を筐体1、2に通知するようにし、筐体2が筐体3からの起動完了を待つようにしてもよい。筐体2、3のファームアッププランがこの変形例にしたがって設定されていればよい。
(9)筺体1は筐体2、3の起動を確認後、自身が持つシステムのファームアッププランを配信する(M113)。筐体2がS109で再起動された結果、再起動前のファームアッププランがRAM122から消失している。そこで、M113の処理によって、筐体2、3は再度デフォルトのファームアッププランを復旧する。
(10)筺体2、3は配信されたファームアッププランを検索し、未完了のアクションから実行する(S112、S212)。図13のファームアッププランの例では、SCF Firm
Write(2面)である。ただし、図14Bでは、“SCFファームアップ”として示されている(S113、S213)。
(11)筺体1に筐体2からリブートの完了通知(実行順序の番号とそのアクション完了通知)が行われると、筺体1は次のアクションである“Bank切り替え”を実行する(M1
14)。 “Bank切り替え”の実行条件に、”自身がマスタの場合、他に正常なマスタ候
補の筐体が必要”とあり、筐体2がリブート完了によって、正常なマスタ候補となったからである。
次に、筐体1は筐体2に、“Bank切り替え”アクションの完了を通知し(M115)、筐体2は、アクションの完了記録領域に“完了”を設定する(S114)。なお、筐体3は、”SCMファームアップ”アクション完了後に、完了を筐体1、2に通知し(S214
)、処理を終了する。
(12)筺体1は“Bank切り替え”完了後、“リブート”アクションを実行する(M11
6)。図14Bでは省略されているが、正常処理では、筺体1のリブート前に、筐体1か
ら筐体2にマスタ切り替えが通知される。M116の“リブート”アクションを実行することは、再起動することによって更新された格納部の第2の領域に格納された制御プログラムを実行することの一例である。
(13)筺体1が“リブート”アクションを実行することで、筺体1がリブートする(M116)。次に、筐体1はリブート時に、筐体2に“リブート”アクション完了を通知し(M117)、筐体2は、アクションの完了記録領域に“完了”を設定する(S115)。
また、筐体1のリブートにより筐体2は、”SCMファームアップ”アクション完了を筐
体1に通知せず、筐体2のファームアッププランの完了記録領域に、自身の”SCM Firm Write(2面)”アクション完了を記録する(S116)。なお、筐体1から筐体2へのマスタ切り替えの通知により筺体2がマスタ筐体となる(M118、S117)。M101からM118の処理は、第1のコンピュータによって、各コンピュータの制御プログラムの更新を制御することの一例である。
(14)筐体1はリブート完了後、筺体2に対し、起動完了通知を行う(M119)。S117からS119の処理は、第1のコンピュータが再起動するときに、各コンピュータの制御プログラムの更新を制御することの一例である。
(15)正常なマスタ切り替え後、筺体2では筐体1の起動を待つ“準備完了アクション
”がないため、通知を受領するがファームアッププランへの反映はしない(S118)。
(16)筺体2は筐体1の起動を確認すると、筺体2が持つ完了記録領域が更新されたデフォルトのファームアッププランを筐体1に配信する(S119)。筐体1は配信されたファームアッププランにおいて、未完了のアクションから実行する(M120)。ここでは、筐体1はリブートまで完了しているため、未完了アクションはSCF Firm Write(2面)である。ただし、図14Cでは、“SCFファームアップ”として例示されている。S119
の配信は、第1のコンピュータが再起動したときに、第2のコンピュータのプロセッサが第1のコンピュータの更新工程の進捗が更新された更新管理情報を第1のコンピュータに引き渡す処理の一例である。
(17)筺体1はファームアップを実行する(M121)。すなわち、M116のリブー
トによって、筺体1は第2面のファームアップが可能となったのである。
(18)筺体1はファームアップ完了後、筺体2に対し、実行順序の番号とそのアクショ
ン完了通知を通知する(M122)。筐体2は、アクション完了を受領すると”処理完了待ち”アクションを完了に設定する(S120)。
(19)筺体2は自筺体内に保持するファームアッププランがすべて完了したと認識し、マスタ筐体の切り替えを筐体1に通知し、筐体1と筐体2はマスタ切り替えを実施する(S121、M123)。S117からS121の処理は、第1のコンピュータが実行を停止するときに第1のコンピュータに代わって各コンピュータの制御プログラムの更新を制御することの一例である。
(20)ファームアップ処理が完了となる(M124)。
<処理例2>
処理例2では、処理例1に対して、筐体1が筐体2、3からの“バンク切り替え”アクション実行完了を待つ“処理待ち”(図14BのM108)において、筐体1の異常が発生した場合の情報システムの処理を説明する。したがって、筐体1のM101からM108の処理、筐体2のS101からS108の処理、および筐体3のS201からS208の処理は、処理例1の図14A、図14Bと同様である。したがって、処理例1の(1)から(6)は、処理例2においても、同様に実施されたものとし、その説明を省略する。
図15は、筐体1に故障が発生した場合の完了記録領域を含むファームアッププランを例示する。筐体1、2については、実行順序2以降が、故障停止によりアクションが破棄される。一方、筐体3については、実行順序2においてファームアップが保留され、未完了となっている。
図16は、筐体1での“処理待ち”(M108)以降の処理、筐体2、3での“バンク切り替え”(S107、S207)以降の処理を例示する処理例2のフローチャートである。
(7)筐体1が“処理待ち”(M108)の状態で筐体1に異常が発生し、再起動を実施
する(MT109)。しかし、筐体1は復旧せず、そのまま故障停止する(MT111)
。システム内にマスタ筐体が不在となったため、筺体2がマスタとなる(MT110、ST109、ST209)。ST109の処理は、第1のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前、かつ、第2のコンピュータの格納部の第2の領域に格納された制御プログラムの更新に伴う再起動前に第1のコンピュータが異常であることを検知することの一例でもある。
(8)筺体2はマスタの異常を検知したので、再プランニングの要否を図12に従ってチェックする(ST110)。この例では、筺体2に配信されたファームアッププランの実行順序3”リブート”アクションが実行前であり(図11参照)、かつ筐体1が故障停止し、再起動しないケースとなる。よって、筺体2は、自筐体の残りアクションを破棄し、筺体3の再プランニングを実施する(ST111)。ST11およびP10からST111の処理は、第2のコンピュータの記憶部に保存されている更新管理情報中の第2のコンピュータによる再起動を伴う処理を削除して更新計画を再設定することの一例である。
(9)筺体3はマスタ異常を検出したため、新マスタから指示を受けるまで処理を停止する(ST209)。
(10)筺体2は再プランニングしたプランを筐体3に通知する(ST112)。
(11)筐体3は受領したプランに従い、ファームアップを続行する(ST210)。
(12)筺体3はリブートアクションを実施する(ST211)。
(13)筺体3はリブートアクション完了を筐体2に通知する(ST212)。
(14)筺体2は筐体3からのアクション完了通知を受け、自身が持つファームアッププ
ランの完了記録を更新する(ST113)。
(15)筺体3はSCF Firm Write(2面)アクションに従い、SCFファームアップを実施
する(ST214)。
(16)筺体3は筐体2にアクション完了を通知する(ST215)。
(17)筺体3はすべてのプランの実行が完了したことを検知し、筺体2に完了通知を行
う(ST216)。
(18)筺体2は筐体3の完了通知を受け、システム内のファームアッププランがすべて完了したと認識し、ファームアップを終了させる(ST115)。ST113からST115の処理は、再設定された更新計画にしたがって各コンピュータの制御プログラムの更新を継続することの一例である。
<処理例3>
処理例3は、処理2と同様に、筐体1が筐体2、3からの“バンク切り替え”アクション実行完了を待つ“処理待ち”(図14BのM108)において、筐体1の異常が発生した場合の例である。ただし、処理例3では、処理例2と異なり、筐体1が再起動される場合の処理を説明する。したがって、筐体1のM101からM108の処理、筐体2のS101からS108の処理、および筐体3のS201からS208の処理は、処理例1の図14A、図14Bと同様である。したがって、処理例1の(1)から(6)は、処理例3
においても、同様に実施されたものとし、その説明を省略する。また、処理例3では、筐体3の処理は省略する。
図17は、ファームアッププランの実行順序1のアクションの完了が記録された後、筐体1、2のファームアッププランが再プランニングされた例である。再プランニング後、筐体2は、筐体1の起動完了を待つための“準備完了待ち”アクションが設定され、その後、デフォルトのファームアッププランに戻っている。一方、筐体1は、実行順序2以降のアクションが実行順序4以降にずれて設定されている。ただし、実行順序2の“処理待ち”アクションは、再プランニング前は筐体2の“バンク切り替え”アクションを待つものであっったが、再プランニングの結果、実行順序2の“処理待ち”アクションは、筐体2の”リブート”の開始を待つアクションとなっている。
図18、図19は、処理例3のフローチャートである。処理例3では、筐体1が“処理待ち”(M108)、筐体2、3が“バンク切り替え”(S107、S207)以降の処理が例示される。
(7)筐体1が“処理待ち”(M108)の状態で筐体1に異常が発生し、再起動を実施
する(MR109)。処理例3では、筐体1はリブートを実行する(MR111)。シス
テム内にマスタ筐体が不在となったため、筺体2がマスタとなる(MR110、MC109)。
(8)筺体2はマスタ切り替えの条件である筐体1の異常を検出したので、再プランニングを実行するか否かを図12に従ってチェックを行う(MC110)。この例では、筺体2に配信されたファームアッププランの実行順序3が実行前であったため、自筺体の再プランニングを行う。スタンバイマスタの筐体2は、マスタ筐体が起動中かをチェックし、起動中であれば“準備完了待ち”アクションを設置する(MC111)。そして、筐体2は、再プランニングしたファームアッププランにしたがってアクションを実行する(MC112)。
(9)筐体2はファームアッププランを再プランニング後、未完了のアクションから実行する。この例ででは、筐体2は”準備完了待ち”アクションを実行する(MC113)。この処理において、筺体1が故障等により起動してこなかった場合、筺体2が準備完了待ちのままにならないようにタイムアウト値を設ける。タイムアウトが発生したことで、筺
体1が異常となったことを検出し、ファームアップ処理を異常終了させる。
(10)筺体1は起動を完了すると、起動完了を筐体2に通知する(MR112、MR113)。筐体2は準備完了待ちアクションを完了に設定する(MC114)。
(11)筺体2は筐体1に再プランニングしたファームアッププランを配信する(MC1
15)。筐体1は筐体2から再プランニングしたファームアッププランを受信し、未完了
のアクションを実行する(MR114)。MC115の配信は、第1のコンピュータが再起動したときに、第2のコンピュータのプロセッサが第1のコンピュータの更新工程の進捗が更新された更新管理情報を第1のコンピュータに引き渡す処理の一例である。
(12)筺体2が”リブート”アクションを実行し(MC116)、アクション完了("
リブート開始”)を筺体1に通知する。さらに、起動完了後、筐体2は筐体1に起動完了
を通知する(MC117)。筐体1は、アクション完了を受信すると、ファームアッププランの完了記録領域に完了を設定する(MR115)。
さらに、筐体1は、ファームアッププランの“準備完了待ち”アクションにより、筺体2の起動を待ち合わせる(MR116)。
(13)筺体2は筐体1にマスタ切り替えを通知し、筐体1、2はマスタ切り替えを実行する(MR117、MC118)。正常なマスタ切り替えの通知によるマスタ切り替えであるため、筐体1は再プランニングを実施しない。筐体1は“正常な処理として、準備完
了待ち”アクション実行する。なお、MC118の通知によるマスタ切り替えは、MC116のリブートと並行に実行すればよい。
(14)筺体2のリブートが完了すると、筺体2から筐体1に対し、起動完了通知を送信する(MC119)。筐体1は筐体2からの起動完了通知を受けて、準備完了待ちアクシ
ョンを完了に設定し(MR118)、次のBank切り替えアクションを実行する(MR119)。
(15)筺体2は起動完了したため、次の実行アクションである”SCF Firm Write(2面)”、すなわち、SCFファーム書き込みを実行する(MC120)。
(16)筺体2は”SCF Firm Write(2面)”を完了したら筐体1にアクション完了をフ
ァームアッププランの完了記録領域に設定するとともに(MC121)、筐体1に通知する(MC122)。これにより、筺体2のファームアッププランはすべて完了となる(M
C123)。
(17)その後筐体1は”リブート”アクションを実行する(MR122)。筐体1は筐体2に”リブート”アクションの完了を通知し(MR123)、筐体2は、完了記録領域に完了を設定する(MC123)。
(18)筺体1は筐体2にマスタ切り替えを通知し、筐体1、2はマスタ切り替えを実行する(MR124、MC124)。筐体2はマスタ切り替えの通知を受信する。筐体2は、既にファームアッププランが完了し、正常なマスタ切り替えの通知を受信したため、何もしない。ただし、MR124の通知によるマスタ切り替えは、MR122のリブートと並行に実行すればよい。
(19)リブートにより筐体1が起動完了すると、筺体2に対し起動完了を通知する(M
R125)。
(20)筺体2は筐体1の起動完了を受領後、保持しているファームアッププランを配信する(MC126)。ファームアッププランを受領した筐体1は、未完了のアクションを
実行する(MR126)。MC126の配信は、第1のコンピュータが再起動したときに、第2のコンピュータのプロセッサが第1のコンピュータの更新工程の進捗が更新された更新管理情報を第1のコンピュータに引き渡す処理の一例である。
(21)筐体1は、SCF Firm Write(2面)を実行する(MR127)。
(22)筐体1は、SCF Firm Write(2面)完了後、筺体2に対し、完了を通知する(MR
128)。
(23)筺体2はシステムですべてのプランが完了したことを検出し、マスタ筐体の切り替えを実施する(MC128、MR129)。
(24)筺体1は情報システムでのファームアップ完了を認識し、ファームアップ完了と
する(MR130)。
<実施形態1の効果>
実施形態1の情報システムによれば、マスタ装置110が異常であることを検知したときでも(G7)、スタンバイマスタ装置120は、ファームアッププラン格納領域122Bに格納されたファームアッププランにしたがってファームアップを可能な範囲で継続できる。また、スレーブ装置130は、スタンバイマスタ装置120の指示でファームアップを可能な範囲で継続できる(G8からG19,U12からU15)。
また、スタンバイマスタ装置120のファームアップアップに伴うリブート後にマスタ装置110が異常であることを検知したときも(G7、U11)も同様である。すなわち、スタンバイマスタ装置120はファームアッププラン格納領域122Bに格納されたファームアッププランにしたがって(P14からP16)、自身およびスレーブ装置130に対してファームアップを可能な範囲で継続させることがきる(G8からG19,U12からU15)。
また、マスタ装置110のファームアップアップに伴うリブート後にマスタ装置110が異常であることを検知したとき(G7、U11)も同様である。すなわち、スタンバイマスタ装置120は、ファームアッププラン格納領域122Bに格納されたファームアッププランにしたがって(P14からP16)、自身およびスレーブ装置130にファームアップを可能な範囲で継続させることができる(G8からG19,U12からU15)。
また、マスタ装置110のファームアップアップに伴うリブート前、かつ、スタンバイマスタ装置120のファームアップに伴うリブート前にマスタ装置110の異常を検知したとき(G7、T11、ST109)も同様である。すなわち、スタンバイマスタ装置120は、ファームアッププラン格納領域122Bに格納されたファームアッププランのうち、リブートを伴う処理を削除して、ファームアッププランを再プランニングする(P10、T12、ST110、ST111、P10〜P12)。その結果、スタンバイマスタ装置120は自身およびスレーブ装置130に制御プログラムの更新を継続させることができる(T13〜T15、ST113からST115)。
また、スタンバイマスタ装置120は、マスタ装置110が異常であることを検知した後マスタ装置110が再起動したときにも(G6、P6でYES、MR111)、ファームアップを継続できる。すなわち、マスタ装置110の再起動後の処理として、スタンバ
イマスタ装置120自身のリブートを伴う処理(MC113〜MC118)をファームアッププランに設定するからである(P7)。
一方、スタンバイマスタ装置120は、所定期間内にマスタ装置110の再起動を検知できないときに(P9でNO)、マスタ装置110以外のスレーブ装置130等のファームアップの完了を待つ処理をスタンバイマスタ装置120のファームアッププランの末尾に設定する(P10)。したがって、この場合も、スタンバイマスタ装置120は、ファームアップを継続できる。
また、マスタ装置110がリブートしたときには、スタンバイマスタ装置120は、マスタ装置110の完了記録領域が記録されたファームアッププランをマスタ装置110に引き渡す。したがって、マスタ装置110はリブート後に完了記録領域が記録されたファームアッププランを復元できる。
[実施形態2]
図20は、実施形態2に係る情報システムを例示する図である。図20の情報システムは、マスタ装置110と、スレーブ装置220、230を有している。ただし、実施形態2おいて、スレーブ装置の数が2台に限定される訳ではない。したがって、情報システムはスレーブ装置を3台以上有してもよい。
上記実施形態1では、マスタ装置110とスタンバイマスタ装置120を含む情報処理装置の処理を例示した。すなわち、実施形態1では、スタンバイマスタ装置120は1台設けられた。一方、実施形態2では、スレーブ装置220、230は、いずれもスタンバイマスタとなることができる。
例えば、情報システム内の各筐体、各装置は相互に識別可能な識別番号を付与されるものとする。スレーブ装置220、230は、識別番号順の優先順位で、スタンバイマスタになるとものすることができる。すなわち、スレーブ装置220、230の若番装置がスタンバイマスタの役割を肩代わりすることで機能実現が可能である。
また、例えば、情報システム内の各装置は、スタンバイマスタの候補となるスレーブ装置を定義したリストを相互に交換することもできる。リストの先頭から順にスタンバイマスタとなる優先順位が高いものとして、スレーブ装置からスタンバイマスタを選定する優先順位を規定すればよい。このような識別番号による優先順位、スタンバイマスタの候補のリスト等は、マスタ装置110、スレーブ装置220、230それぞれの定義テーブル等に格納しておけばよい。図20に例示したスレーブ装置120、130の処理は、複数の第2のコンピュータのプロセッサは、所定の優先順で各コンピュータの制御プログラムの更新を継続することの一例である。
マスタ装置110が故障した場合、スレーブ装置220がスタンバイマスタとなり、スレーブ装置230に対して再プランニングを行う役割を担う。また、マスタ装置110およびスレーブ装置220が故障した場合には、スレーブ装置230が他のスレーブ装置に対して再プランニングを行う役割を担う。この構成により、スレーブ装置を複数有する情報システムは、マスタ・スタンバイマスタの両方が故障した場合でも、再プランニングによりファームアップを継続させることができる。
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させること
により、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ
等に固定された記録媒体としても利用可能である。