(57)【特許請求の範囲】
【請求項１】
演算を行う演算部と、
該演算部を動作させるプログラムがそれぞれに格納された２以上の第一の記憶部をそれぞれ有する１以上の第一のシステムボードと、
１以上の該第一のシステムボードの該第一の記憶部に格納された該プログラムの種類毎に該プログラムが格納される２以上の第二の記憶部を有する第二のシステムボードと、
１以上の該第一の記憶部に格納された該プログラムの種類毎に該プログラムを２以上の該第二の記憶部にそれぞれ格納する制御部と、を有し、
該第一のシステムボードの２以上の該第一の記憶部のうち有効になっている該第一の記憶部が故障した場合、その他の該第一の記憶部が有効になり、
１以上の該第一のシステムボードのいずれかに故障が発生した場合、該制御部は該故障が発生した第一のシステムボードの該第一の記憶部に格納されている該プログラムの種類に対応した該第二の記憶部に格納されているプログラムを有効にし、そして、その他の該第二の記憶部に格納されているプログラムを該有効にされたプログラムに書き換えることで、該第二のシステムボードが該故障の発生した第一のシステムボードとなる
ことを特徴とする情報処理装置。
【請求項２】
該情報処理装置において、
該制御部は、該第二の記憶部の記憶領域の分割数を超えた種類のプログラムが該第一の記憶部に格納された場合に、該第二の記憶部の記憶領域を再分割し、そして該第一の記憶部に格納された該プログラムの種類毎に該プログラムを該再分割された該第二の記憶部に格納することを特徴とする請求項１記載の情報処理装置。
【請求項３】
該情報処理装置において、
該制御部は、該第一の記憶部に格納されたプログラムの種類毎に、該第一のシステムボード毎の駆動時間に応じて優先順位を設定し、そして該第二の記憶部の記憶領域の分割数を超えた種類のプログラムが該第一の記憶部に格納された場合に、該優先順位に応じて該第一の記憶部に格納された該プログラムの種類毎に該プログラムを該第二の記憶部に格納することを特徴とする請求項１記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
クライアント装置に対して様々なサービスを提供するサーバ装置としての情報処理装置は、複数のパーティションに分割されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ等のハードウェア資源を有する。各パーティションは独立したＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）で動作し、１以上のシステムボードを有する。各システムボードにはＣＰＵやメモリが実装されており、情報処理装置に要求される様々な処理を実行する。【０００３】
各パーティションを構成するシステムボードにはファームウェアと呼ばれるプログラムが組み込まれている。ファームウェアはシステムボードの電源投入時に実行され、ＯＳ起動用ソフトウェアをメモリに読み込み、またはシステムの動作環境を設定し、ＯＳ起動用ソフトウェアを実行状態にする。１つのパーティションが複数のシステムボードで構成されている場合、同一のパーティションに属するそれら複数のシステムボードに組み込まれたファームウェアの版数は同一にする。ファームウェアの版数は制御部により管理される。制御部は版数の異なるファームウェアを種類の異なるプログラムとして管理する。【０００４】
パーティションを構成するシステムボードが故障した場合、速やかに復旧できるように予備のシステムボード（以下、「予備ボード」という）が情報処理装置に実装されている。平常時において予備ボードはどのパーティションにも属していない。パーティションに属するいずれかのシステムボードが故障した場合、故障が発生したシステムボードと予備ボードとを入れ替えることにより、故障が発生したシステムボードが属するパーティションを速やかに復旧させることが出来る。【０００５】
より速やかにパーティションを復旧させるため、予備ボードにはあらかじめ故障の可能性のあるシステムボードに組み込まれたファームウェアと同一版数のものが組み込まれているのが望ましい。しかし、情報処理装置が複数のパーティションを有し、ファームウェアの版数がそれぞれ異なる場合、ファームウェアの版数の数に応じて複数の予備ボードを用意する必要がある。【０００６】
情報処理装置の動作環境に応じたシステムボードへの組み込みプログラムの版数管理に関する技術が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０７−２９５７９６号公報
【特許文献２】特開平０７−６１１４号公報
【特許文献３】特開平０４−１７０４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の一実施例では、システムボードの故障発生から効率よく復旧することのできる複数のシステムボードを有する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、情報処理装置は、演算を行う演算部と、該演算部を動作させるプログラムがそれぞれに格納された２以上の第一の記憶部をそれぞれ有する１以上の第一のシステムボードと、１以上の該第一のシステムボードの該第一の記憶部に格納された該プログラムの種類毎に該プログラムが格納される２以上の第二の記憶部を有する第二のシステムボードと、１以上の該第一の記憶部に格納された該プログラムの種類毎に該プログラムを２以上の該第二の記憶部にそれぞれ格納する制御部と、を有し、該第一のシステムボードの２以上の該第一の記憶部のうち有効になっている該第一の記憶部が故障した場合、その他の該第一の記憶部が有効になり、１以上の該第一のシステムボードのいずれかに故障が発生した場合、該制御部は該故障が発生した第一のシステムボードの該第一の記憶部に格納されている該プログラムの種類に対応した該第二の記憶部に格納されているプログラムを有効にし、そして、その他の該第二の記憶部に格納されているプログラムを該有効にされたプログラムに書き換えることで、該第二のシステムボードが該故障が発生した第一のシステムボードとなる。
【発明の効果】
【００１０】
開示の情報処理装置、制御プログラムおよび制御方法によれば、システムボードの故障発生から効率よく復旧することができる複数のシステムボードを有する情報処理装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置のシステム全体のブロック図である。
【図２】システムボードと制御部との関係を示すブロック図である。
【図３】予備ボード挿入時の制御部の動作フローチャート図である。
【図４】故障発生時の制御部の動作フローチャート図である。
【図５】パーティション増設時の制御部の動作フローチャート図である。
【図６】優先順位テーブル図である。
【図７】パーティション増設時の制御部の動作フローチャート図である。
【図８】Ａは記憶領域を増やす前の制御部の揮発メモリのデータ構造と予備ボードの不揮発メモリのデータ構造との関係を表した図である。Ｂは記憶領域を増やした後の制御部の揮発メモリのデータ構造と予備ボードの不揮発メモリのデータ構造との関係を表した図である。
【図９】不揮発メモリのメモリマップ図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１３】
図１は本実施の形態に係る情報処理装置１のシステム全体のブロック図である。情報処理装置１は複数のクライアントからの要求に応じてサービスを提供するサーバ装置として機能することも出来る。情報処理装置１は複数のパーティション２、３と、予備ボード７と、制御部８とを有する。
【００１４】
パーティション２、３は複数のシステムボードを有することが出来る。本実施例において、パーティション２は例えば２つのシステムボード４、５を有し、パーティション３は例えば１つのシステムボード６を有する。
【００１５】
パーティション２，３はそれぞれパーティションごとに独立したＯＳを動作させる。システムボード４、５、６はそれぞれ後述の通りＣＰＵ、メモリ、記憶部１１、１２、１３、１４、１５、１６を有する。例えば、フラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性メモリを記憶部として使用することができる。本実施例において記憶部は各システムボード４、５、６に例えば２つずつ実装されている。記憶部１１、１２、１３、１４、１５、１６はそれぞれ１つのファームウェアを記憶する。それぞれのシステムボードに実装された記憶部のうちの１つは予備である。一方の記憶部が故障した場合に予備の記憶部が有効になり、システムボードの動作停止を予防する。
【００１６】
本実施例において記憶部１１、１２、１３、１４、１５、１６に記憶されるファームウェアの版数はパーティションごとに同一である。パーティション２に属するシステムボード４、５はファームウェアＡを組み込み、パーティション３に属するシステムボード６はファームウェアＢを組み込む。
【００１７】
予備ボード７はいずれかのシステムボードで故障が発生した場合に、故障が発生したシステムボードと入れ替える際に用いられる予備のシステムボードである。予備ボード７は複数の記憶部１７、１８を有する。予備ボードに実装される記憶部の数は、情報処理装置１を構成するパーティションの数と同じかそれ以上である。
【００１８】
なお、本実施例において情報処理装置１には１枚の予備ボード７を実装しているが、複数の予備ボードを実装しても良い。予備ボードを複数実装することにより、システムボードでの故障に対する情報処理装置１の信頼性及び可用性をより高めることが出来る。
【００１９】
制御部８は、例えばシステム制御装置（ＳＶＰ：ＳｅｒＶｉｃｅ  Ｐｒｏｃｅｓｓｏｒ）であり、情報処理装置１の全体のシステム動作を管理する。制御部８は後述の通り専用のＣＰＵやメモリを有し、記憶部から当該専用のメモリに読み出されたファームウェアを当該専用のＣＰＵが実行することにより、システム動作を管理する。また、制御部８は情報処理装置外部からの要求に応じて情報処理装置１の電源管理やパーティションごとの故障管理などを行う。
【００２０】
制御部８はパーティション２からファームウェアＡを記憶し、パーティション３からファームウェアＢを記憶する。情報処理装置１に対して予備ボード７が実装されると、制御部８は記憶したファームウェアＡ、Ｂを予備ボード７に実装された記憶部１７、１８へそれぞれ書き込む。予備ボード７を実装後、いずれかのパーティションに組み込んだ予備ボード７のファームウェアを、当初版数とは異なる版数のものに書き換えた場合、制御部８は書き換え後の版数のファームウェアを読み込み記憶する。制御部８はファームウェアを書き換えた予備ボード７が組み込まれたパーティションに対応して、当該予備ボード７の記憶部１７、１８のいずれかに書き換え後の版数に対応したファームウェアを書き込む。
【００２１】
操作端末１９は制御部８を介して情報処理装置１を操作するコンソール等の端末である。情報処理装置１の管理者は操作端末１９を用いてパーティションの変更、ファームウェアの更新、システムボードの増設などを行う。
【００２２】
いずれかのパーティションに属するシステムボードの故障を制御部８が検出すると、制御部８は故障したシステムボードの属するパーティションに予備ボード７を割り当てると共に、故障したシステムボードを停止させた上でパーティションから外す。制御部８は予備ボード７の記憶部１７、１８のいずれかを、当該予備ボード７を組み込んだパーティションに属する他のシステムボードのファームウェアの版数と一致する版数のファームウェアを有効にする。
【００２３】
以上の動作により、制御部８はシステムボードの故障が発生したパーティションに、対応する版数のファームウェアを含むファームウェアがあらかじめ書き込まれた予備ボードを割り当てることが出来る。これにより、システムボードの故障発生から効率よく復旧することのできる複数のパーティションを有する情報処理装置を提供することができる。
【００２４】
図２はシステムボード４と制御部８との関係を示すブロック図である。他のシステムボード５、６、予備ボード７の構成、および他のシステムボード５、６、予備ボード７と制御部８との接続関係はシステムボード４と制御部８との接続関係と同じである。よって図２ではシステムボード４と制御部８との接続関係のみを示し、他のシステムボード５、６、予備ボード７との関係図を省略する。
【００２５】
システムボード４はＣＰＵ２０、揮発メモリ２１、不揮発メモリ２２を有する。ＣＰＵ２０はＯＳの実行を行う演算部として機能する。揮発メモリ２１はシステムボード４の電源を遮断すると保持した内容が消去される揮発性のメモリであり、具体的にはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などがある。不揮発メモリ２２はシステムボード４の電源を切っても内容が消えない不揮発性のメモリであり、具体的にはフラッシュメモリなどがある。ＣＰＵ２０、揮発メモリ２１、不揮発メモリ２２はそれぞれ共通バスに接続されている。不揮発メモリ２２は記憶部１１、１２を有する。
【００２６】
制御部８はＣＰＵ２３、揮発メモリ２４、不揮発メモリ２５、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２６を有する。ＮＩＣ２６は外部の操作端末１９と制御部８とをネットワークを介して接続し、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを通じて操作端末１９からの制御部８の制御を可能にする。ＣＰＵ２３、揮発メモリ２４、不揮発メモリ２５、ＮＩＣ２６はそれぞれ共通バスに接続されている。
【００２７】
不揮発メモリ２５は制御部８を制御するファームウェアを記憶する。揮発メモリ２４はシステムボード４の不揮発メモリ２２に記憶されているファームウェアを当該システムボード４の電源が投入されている間記憶する。制御部８はＣＰＵ２３により共通バスを介して不揮発メモリ２２に記憶されたファームウェアを揮発メモリ２４に読み込むことができる。また制御部８はＣＰＵ２３により共通バスを介して揮発メモリ２４に記憶したファームウェアを不揮発メモリ２２に書き込むことができる。
【００２８】
システムボード４の共通バスと制御部８の共通バスとは互いに接続されている。よって操作端末１９から送信したコマンドに従って制御部８によりシステムボード４の動作制御を行うことができる。さらに、システムボード４で発生した故障などのイベントを自発的に制御部８へ送信し、制御部８から操作端末１９へシステムボード４で発生したイベントを通知することも出来る。
【００２９】
図３は予備ボード７を挿入した時の制御部８の動作フローチャート図である。制御部８の動作説明は図１のブロック図に基づいて行う。
【００３０】
制御部８はパーティション２に属するシステムボード４、５及びパーティション３に属するシステムボード６に対し、それぞれの記憶部に書き込まれているファームウェアの版数をチェックするコマンドを送信する（Ｓ１）。システムボード４、５、６に搭載された各ＣＰＵは制御部８の要求に対してファームウェアの種類を示す版数情報を抽出し、抽出結果を制御部８へ送信する。制御部８は受信したファームウェアの版数情報を揮発メモリ２４に記憶する（Ｓ２）。
【００３１】
制御部８はパーティションに組み込まれた予備ボード７に対し、記憶部１７、１８に書き込まれているファームウェアの版数をチェックするコマンドを送信する（Ｓ３）。予備ボード７は制御部８の要求に対し、ファームウェアの版数情報を制御部８へ送信する。制御部８は受信したファームウェアの版数情報を揮発メモリ２４に記憶する（Ｓ４）。
【００３２】
制御部８のＣＰＵ２３は揮発メモリ２４に記憶したシステムボード４、５、６の記憶部に書き込まれているファームウェアの版数情報と予備ボード７の記憶部に書き込まれているファームウェアの版数情報とを比較する（Ｓ５）。
【００３３】
ファームウェアの版数情報を比較した結果、揮発メモリ２４に記憶したシステムボード４、５、６の記憶部に書き込まれているファームウェアの版数情報と予備ボード７の記憶部に書き込まれているファームウェアの版数情報が異なっている場合（Ｓ６、ＹＥＳ）、制御部８はシステムボード４、５、６の記憶部からファームウェアを読み込み、揮発メモリ２４に記憶する（Ｓ７）。制御部８は記憶したファームウェアを予備ボード７の記憶部１７、１８のいずれかに書き込む（Ｓ８）。揮発メモリ２４に記憶したシステムボード４、５、６の記憶部に書き込まれているファームウェアの版数情報と予備ボード７の記憶部に書き込まれているファームウェアの版数情報が同一の場合（Ｓ６、ＮＯ）、予備ボード７のファームウェアを書き換える必要がないので処理を終了する（Ｓ９）。
【００３４】
以上の動作により、制御部８は全てのパーティション２、３で動作している版数のファームウェアをすべて予備ボード７の記憶部１７、１８へ書き込むことが出来る。
【００３５】
図４は情報処理装置１に実装されたシステムボード４、５、６のいずれかで故障が発生した場合の制御部８の動作フローチャート図である。制御部８はシステムボード４、５、６に対して定期的に動作チェックコマンドを送信することにより、システムボード４、５、６で発生した故障を検出する（Ｓ１１）。また制御部８はシステムボード４、５、６から一定間隔で動作状態信号を受信することにより、システムボード４、５、６で発生した故障を検出することも出来る。
【００３６】
制御部８はシステムボード４、５、６のいずれかで故障が発生したことを検出すると、予備ボード７を故障が発生したシステムボードの属するパーティションに割り当てる（Ｓ１２）。制御部８は予備ボード７の記憶部１７、１８のうち、故障が発生したパーティションに属するシステムボードのファームウェアの版数に対応する版数のファームウェアを記憶した記憶部を有効にする（Ｓ１３）。
【００３７】
制御部８は予備ボード７の記憶部１７、１８のうち、有効にしなかった記憶部に記憶された版数のファームウェアを、有効にした記憶部に記憶された版数のファームウェアに書き換える（Ｓ１４）。２つの記憶部１７、１８のファームウェアの版数をそろえることによりファームウェアの記憶状態を冗長にし、予備ボード７における有効状態の記憶部で故障が発生した場合に、他方の無効にしている記憶部を有効にすることにより情報処理装置１を継続的に動作させることが出来る。
【００３８】
図５は情報処理装置１に割り当てられたパーティションの数が増加した場合の制御部８の動作フローチャート図である。パーティションの数が増加したことにより、全パーティションの数が予備ボード７に実装された記憶部の数を超えた場合の制御部８の一実施例を以下に説明する。
【００３９】
制御部８は情報処理装置１を構成する各パーティションの構成状態から予備ボード７の記憶部に記憶するファームウェア版数の優先順位を設定する（Ｓ２１）。制御部８は設定された優先順位を揮発メモリ２４に記憶する。優先順位は後述する優先順位テーブルのように、テーブルデータとして揮発メモリ２４に記憶しても良い。
【００４０】
制御部８は故障によりシステムが停止する確率の高いパーティションに組み込まれたファームウェア版数ほど優先順位を高くしてもよい。例えば制御部８は、システムボードの数が多いパーティションに組み込まれたファームウェア版数ほど優先順位を高くする。システムボードの数が多いパーティションはそれだけ処理する業務量も多い。業務量の多いパーティションで一つでもシステムボードが故障すると、システムダウンする可能性が高くなる。
【００４１】
システムボード１つで構成されたパーティションでは、１つのシステムボードが故障するとそのパーティションが停止するため、情報処理装置１の安定動作に与える影響が大きい。制御部８はシステムボード１つで構成されたパーティションに組み込まれたファームウェア版数の優先順位を高く設定しても良い。
【００４２】
仮にシステムボードごとの故障確率が同じだとすると、同一版数のシステムボードが多いほど、その版数のシステムボードが組み込まれたパーティションで故障が発生する確率は高くなる。制御部８は同一版数のファームウェアで動作するシステムボードが多いほど、当該版数のファームウェアの優先順位を高くしてもよい。
【００４３】
パーティションごとの起動時間と終了時間を監視し、それぞれのパーティションに属するシステムボードの駆動時間に応じて優先順位を設定しても良い。起動時間と終了時間は各システムボードから制御部８へ送信するようにしても良い。制御部８は送信された起動時間及び終了時間に基づいて各システムボードの総駆動時間を揮発メモリ２４に記憶する。記憶した総駆動時間が長いほど故障発生率が高いと仮定し、記憶した総駆動時間に基づいてそれぞれのシステムボードに組み込まれた版数のファームウェアに対し優先順位を設定する。制御部８は設定した優先順位に基づいて予備ボード７の記憶部である不揮発メモリ２２にファームウェアを書き込む。
【００４４】
情報処理装置１における過去の故障発生の経緯に基づいて、制御部８にファームウェア版数の優先順位を設定しても良い。演算処理の負荷の度合いなど、構成からでは単純に故障率を決められない場合もあるためである。
【００４５】
図６は不揮発メモリ２５に記憶する優先順位テーブル図である。優先順位テーブル３０において、列３１には優先順位、列３２には各優先順位に対応するファームウェアの版数を設定する。列３１に設定する優先順位において、例えば数字が小さいほど優先度が高いものとする。また、優先順位テーブル３０において、行３３は優先順位が1番のファームウェア版数がＡであることを示している。行３４は優先順位が２番のファームウェア版数はＣであることを示している。行３５は優先順位が３番のファームウェア版数はＢであることを示している。
【００４６】
図５の説明に戻る。新たなパーティションを割り当てたシステムボードが情報処理装置１に追加され、または１つのパーティションを構成する複数のシステムボードのうちの一部が他の新たなパーティションに割り当てられると、新たなパーティションに割り当てられたシステムボードは制御部８にパーティション情報を送信する。制御部８はシステムボードから受信したパーティション情報に基づいてパーティションの数が増加したことを検出する（Ｓ２２）。
【００４７】
制御部８のＣＰＵ２３は新たに追加されたシステムボードのファームウェアの版数を読み込み、予備ボード７の記憶部に記憶されたファームウェアの版数と比較する（Ｓ２２）。ＣＰＵ２３は同一版数のファームウェアが既に予備ボード７の記憶部に記憶されている場合（Ｓ２３、ＮＯ）、処理を終了する。
【００４８】
新たに追加されたシステムボードのファームウェアの版数と予備ボード７の記憶部に記憶されたファームウェアの版数が異なっており（Ｓ２３、ＹＥＳ）、かつ予備ボード７において各パーティションに対応した版数のファームウェアが書き込まれていない空きの記憶部が存在する場合（Ｓ２４，ＹＥＳ）、制御部８のＣＰＵ２３は予備ボード７の空きの記憶部に対し、新たに追加されたパーティションに属するシステムボードのファームウェアの版数に対応した版数のファームウェアを書き込む（Ｓ２５）。一方、空きの記憶部が存在しない場合（Ｓ２４、ＮＯ）、制御部８は不揮発メモリ２５に記憶された優先順位テーブルの優先順位を参照する（Ｓ２６）。ＣＰＵ２３は最も優先順位の低い版数のファームウェアを記憶した予備ボード７の記憶部を参照する。ＣＰＵ２３は参照した記憶部に記憶された版数のファームウェアを新たに追加したパーティションに属するシステムボードのファームウェアの版数に対応した版数のファームウェアに書き換える（Ｓ２７）。
【００４９】
以上の通りファームウェアの優先順位を優先順位テーブルにあらかじめ設定しておくことにより、予備ボードにファームウェアを記憶する空き領域がなくても優先順位に応じたファームウェアを記憶させることが出来、この結果、情報処理装置１の信頼性を向上させることが出来る。
【００５０】
図７は情報処理装置１に割り当てられたパーティションの数が増加した場合の制御部８の動作フローチャート図である。パーティションの数が増加したことにより、全パーティションの数が予備ボード７に実装された記憶部の数を超えた場合の制御部８の他の実施例を以下に説明する。
【００５１】
制御部８のＣＰＵ２３は情報処理装置１を構成する各パーティションの構成状態から予備ボード７の記憶部に記憶するファームウェア版数の優先順位を設定する（Ｓ３１）。優先順位の設定方法は図５の実施例において説明した設定方法と同様である。設定された優先順位は例えば制御部８に実装された不揮発メモリ２５に記憶される。
【００５２】
新たなパーティションを割り当てたシステムボードが情報処理装置１に追加され、または１つのパーティションを構成する複数のシステムボードのうちの一部が他の新たなパーティションに割り当てられると、新たなパーティションに割り当てられたシステムボードは制御部８にパーティション情報を送信する。制御部８はシステムボードから受信したパーティション情報に基づいてパーティションの数が増加したことを検出する（Ｓ３２）。
【００５３】
制御部８のＣＰＵ２３は同一版数のファームウェアが既に予備ボード７の記憶部に記憶されている場合（Ｓ３３、ＮＯ）、処理を終了する。
【００５４】
新たなパーティションを割り当てたシステムボードのファームウェの版数または１つのパーティションを構成する複数のシステムボードのうち他の新たなパーティションに割り当てられたシステムボードの版数と、予備ボード７の記憶部に記憶されたファームウェアの版数が異なり（Ｓ３３、ＹＥＳ）、かつ予備ボード７において各パーティションに属するシステムボードのファームウェアの版数に対応した版数のファームウェアが書き込まれていない空きの記憶部が存在する場合（Ｓ３４、ＹＥＳ）、ＣＰＵ２３は予備ボード７の空きの記憶部に対し、新たに追加されたパーティションに対応した版数のファームウェアを書き込む（Ｓ３５）。
【００５５】
予備ボード７に空きの記憶部が存在しない場合、ＣＰＵ２３は予備ボード７に記憶部の記憶領域の容量を確認するコマンドを送信する（Ｓ３６）。確認の結果ファームウェアを記憶できるだけの空き容量が存在する場合（Ｓ３７、ＹＥＳ）、ＣＰＵ２３は１つの記憶部を複数の記憶領域に分割するコマンドを予備ボード７に送信する（Ｓ３８）。
【００５６】
記憶領域とは１つの記憶部に設けられた複数の領域である。予備ボード７のＣＰＵ２３は制御部８からのコマンドを受けて、１つの記憶部に２つの記憶領域を設ける（Ｓ３８）。制御部８は設定した２つの記憶領域のうちのいずれか一方の記憶領域に対し、増設したシステムボードに対応するファームウェアを書き込む（Ｓ３５）。
【００５７】
記憶部の記憶領域を分割することにより、制御部８は予備ボード７におけるファームウェアの記憶部を見かけ上ふやすことが出来る。記憶部を増やすことにより予備ボード７はいずれかのシステムボードに組み込まれた版数のファームウェアをより多く記憶することが出来る。この結果、システムボードでの故障発生に対して迅速に予備ボード７と差し替えられるため、情報処理装置１の信頼性及び可用性をより高めることが出来る。
【００５８】
一方、記憶部のデータ記憶容量は有限であるため、分割によって記憶領域を増やしても、記憶できるファームウェアの数には限界がある。記憶領域を増やしてもファームウェアを書き込めるだけの記憶容量が存在しない場合（Ｓ３７、ＮＯ）、制御部８は優先順位テーブルに記録した優先順位を参照する（Ｓ３９）。
【００５９】
制御部８のＣＰＵ２３は優先順位テーブルにおいて最も優先順位の低い版数のファームウェアを記憶した予備ボード７の記憶領域を参照する。ＣＰＵ２３は参照した記憶領域に対し、新たに追加したパーティションが属するシステムボードのファームウェアの版数に対応した版数のファームウェアを上書きする（Ｓ４０）。
【００６０】
以上の通りファームウェアの優先順位をあらかじめ優先順位テーブルに設定しておくことにより、予備ボードにファームウェアを記憶する空き領域がなくても優先順位に応じたファームウェアを記憶させることが出来る。より多くの版数のファームウェアを予備ボード７の不揮発メモリ２２に記憶させることにより、情報処理装置１の信頼性及び可用性を向上させることが出来る。
【００６１】
図８はパーティション増設時の制御部８における揮発メモリ２４のデータ構造と予備ボード７における不揮発メモリ２２のデータ構造との関係を表した図である。
【００６２】
図８のＡはパーティションが増設され、新たにファームウェアＣが検出された場合の、記憶領域を増やす前の制御部における揮発メモリのデータ構造と予備ボード７における不揮発メモリ２２のデータ構造との関係を表した図である。揮発メモリ２４はファームウェア検出前に記憶していた優先順位テーブル３０、メモリマップ４０、ファームウェアＡ、ファームウェアＢと新たに検出されたファームウェアＣを揮発メモリ２４に記憶する。メモリマップ４０は予備ボード７の不揮発メモリ２２における、各アドレスから開始する各記憶領域にどのファームウェアの版数が記憶されているかを示す。
【００６３】
不揮発メモリ２２には２つの記憶部１７、１８があり、それぞれ記憶部１７にはファームウェアＡ、記憶部１８にはファームウェアＢを記憶している。制御部８はメモリマップ４０を参照することにより図８のＡの状態では新たに検出されたファームウェアＣを記憶する記憶領域がないことを確認することが出来る。
【００６４】
図８のＢは記憶部１８の記憶領域を分割し、記憶領域を増やした場合の揮発メモリ２４のデータ構造と不揮発メモリ２２のデータ構造との関係を表した図である。制御部８は記憶部１８の記憶領域に空きがある場合に記憶部１８の記憶領域を分割し、新たにファームウェアを記憶する領域を作成する。
【００６５】
作成された記憶領域のメモリマップは揮発メモリ２４に記憶されたメモリマップ４０に書き込まれる。制御部８はメモリマップ４０を参照することにより、不揮発メモリ２２のどの記憶領域にどの版数のファームウェアが記憶されているかを確認することが出来る。また制御部８はメモリマップ４０を確認することにより、不揮発メモリ２２の空き領域の状況を確認することが出来る。
【００６６】
図９はメモリマップ４０のテーブル図である。メモリマップ４０は各記憶部の記憶領域に記憶されたファームウェアの版数を示す。メモリマップ４０において、列４１は記憶部の番号を示す。列４２は各記憶部における先頭アドレスを示す。列４８は各機億部における終了アドレスを示す。列４３は各記憶部の各アドレスに記憶されているファームウェアの版数を示す。列４７は各版数のファームウェアが対応するパーティション番号を示す。
【００６７】
行４４は記憶部１１の先頭アドレス０から終了アドレス９９までの記憶領域に版数Ａのファームウェアが記憶されており、版数Ａのファームウェアはパーティション２に対応することを示す。行４５は記憶部１２の先頭アドレス０から終了アドレス９９までの記憶領域に版数Ｂのファームウェアが記憶されており、版数Ｂのファームウェアはパーティション３に対応することを示す。行４６は記憶部１２の先頭アドレス１００から終了アドレス１９９までの記憶領域に版数Ｃのファームウェアが記憶されており、版数Ｃのファームウェアはパーティション９に対応することを示す。
【００６８】
制御部８は情報処理装置１に実装されたいずれかのパーティションで故障が発生した場合にメモリマップ４０を参照する。制御部８はメモリマップ４０を参照することにより、故障が発生したパーティションに対応する版数のファームウェアが予備ボード７の不揮発メモリ２２におけるどの記憶領域のどのアドレスに記憶されているかを確認することが出来る。制御部８は確認した記憶領域に記憶された版数のファームウェアを前述の通り有効にすることにより、情報処理装置１を速やかに復旧させることが出来る。
【符号の説明】
【００６９】
１  情報処理装置
２、３  パーティション
４、５、６  システムボード
７  予備ボード
８  制御部
１１、１２、１３、１４、１５、１６、１７、１８  記憶部
１９  操作端末
２０、２３  ＣＰＵ
２１、２４  揮発メモリ
２２、２５  不揮発メモリ
２６  ＮＩＣ
【図１】
0005447532.tif 000002
【図２】
0005447532.tif 000003
【図３】
0005447532.tif 000004
【図４】
0005447532.tif 000005
【図５】
0005447532.tif 000006
【図６】
0005447532.tif 000007
【図７】
0005447532.tif 000008
【図８】
0005447532.tif 000009
【図９】
0005447532.tif 000010