(57)【要約】複数のコンピュータ１、２を含む仮想計算機システムであって、上記コンピュータ１、２は、仮想計算機システム構成時に実行される第１オペレーティングシステムと、各コンピュータが個別に機能するときの第２オペレーティングシステムとを各々有している。そして、上記コンピュータ１、２は、第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部３５Ａと、第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートする書き替え手段と、上記ブート部を第１オペレーティングシステム起動用に設定する手段と、上記コンピュータを再起動する手段と、第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成する手段とを備えている。さらに、上記仮想計算機が形成された状態で、上記ブート部を第２オペレーティングシステム起動用に設定する手段と、仮想計算機システムを停止する手段とが提供されるものである。
2004081791.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータを含む仮想計算機システムであって、前記コンピュータは、仮想計算機システム構成時に実行される第１オペレーティングシステムと、各コンピュータが個別に機能するときの第２オペレーティングシステムとを各々有しており、
前記コンピュータは、第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部と、
第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートする書き替え手段と、
前記ブート部を第１オペレーティングシステム起動用に設定する手段と、
前記コンピュータを再起動する手段と、
第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成する手段とを備え、
前記仮想計算機システムが形成された状態で、
前記ブート部を第２オペレーティングシステム起動用に設定する手段と、
仮想計算機システムを停止する手段とが提供される、仮想計算機システム。
【請求項２】
前記コンピュータは、各々、入出力部を有する第１コンピュータと、第１コンピュータの入出力部を利用する第２コンピュータとを含み、
少なくとも、前記第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部と、前記第２オペレーティングシステム起動時に前記第２コンピュータのファームウェアをアップデートする書き替え手段とが、前記第２コンピュータに備えられる請求項１に記載の仮想計算機システム。
【請求項３】
前記ブート部は、前記仮想計算機が形成された状態では、アクセスされない保護状態に設定され、
前記ブート部を第２オペレーティングシステム起動用に設定する手段は、前記保護状態にあるブート部にアクセスする手段を有する請求項２に記載の仮想計算機システム。
【請求項４】
複数のコンピュータを含む仮想計算機におけるファームウェアのアップデート方法であって、前記コンピュータは、仮想計算機システム構成時に実行される第１オペレーティングシステムと、各コンピュータが個別に機能するときの第２オペレーティングシステムとを各々有し、前記コンピュータは、第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部を有しており、
第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートするステップと、
前記ブート部を第１オペレーティングシステム起動用に設定するステップと、
前記コンピュータを再起動するステップと、
第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成するステップとを備え、
前記仮想計算機が形成された状態で、
前記ブート部を第２オペレーティングシステム起動用に設定するステップと、
仮想計算機システムを停止するステップとを実行する、仮想計算機システムにおけるファームウェアアップデート方法。
【請求項５】
前記仮想計算機を形成するステップは、前記ブート部をアクセスされない保護状態に設定するステップを有し、
前記ブート部を第２オペレーティングシステム起動用に設定するステップは、前記保護状態にあるブート部の保護状態を解除するステップと、その保護状態を復帰させるステップとを有する請求項４に記載の仮想計算機システムにおけるファームウェアアップデート方法。
【請求項６】
仮想計算機システムを構成するコンピュータであって、前記コンピュータは、他のコンピュータとともに仮想計算機システム構成する時には第１オペレーティングシステムを実行し、個別に機能するときには第２オペレーティングシステムを実行し、
第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部と、
第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートする書き替え手段と、
前記ブート部を第１オペレーティングシステム起動用に設定する手段と、
前記コンピュータを再起動する手段と、
第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成する手段とを備え、
前記仮想計算機システムが形成された状態で、前記ブート部を第２オペレーティングシステム起動用に設定する手段と、前記仮想計算機システムを停止する手段とを提供する、コンピュータ。
【請求項７】
コンピュータを仮想計算機システムとして機能させるプログラムであり、前記コンピュータは、他のコンピュータとともに仮想計算機システム構成する時には第１オペレーティングシステムを実行し、個別に機能するときには第２オペレーティングシステムを実行し、第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部を有しており、
前記プログラムは、
第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートするステップと、
前記ブート部を第１オペレーティングシステム起動用に設定するステップと、
前記コンピュータを再起動するステップと、
第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成するステップとを備え、
前記仮想計算機が形成された状態で、
前記ブート部を第２オペレーティングシステム起動用に設定するステップと、
仮想計算機システムを停止するステップとを備えるプログラム。
【発明の詳細な説明】
【技術分野】  本発明は、フォールトトレラントシステムでのファームウェアのアップデートに関するものである。
【背景技術】  フォールトトレラントシステムの１種として、汎用のコンピュータサーバ（以下、汎用サーバという）、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）サーバを複数台組み合わせて冗長性を確保した上で、１台の仮想計算機として機能させるシステムが知られている（例えば、下記非特許文献１参照）。
このようなフォールトトレラントシステムは、汎用サーバを組み合わせた構成であるため、各コンピュータサーバに含まれるファームウェアをアップデートしたい場合がある。それは、例えば、ＰＣサーバの場合であれば、ＢＩＯＳを最新のものにしたい場合、ＢＩＯＳを新たなハードウェアに対応したものにしたい場合、各種制御部、例えば、ＰＣＩバスのコントローラのファームウェアを最新化したい場合等である。
しかし、従来の汎用サーバから構成されるフォールトトレラントシステムでは、システム全体として、まとめてそのようなアップデートを実行する機能が設けられていなかった。したがって、ユーザは、そのような汎用サーバに対して、１台、１台個別にファームウェアをアップデートしなければならなかった。
なお、ホストコンピュータから他のコンピュータ等のファームウェアをアップデートする一般的な技術としては、下記特許文献１、２が知られている。
【非特許文献１】  Ｍａｒａｔｈｏｎ  Ｅｎｄｕｒａｎｃｅ  ６２００  ２００３年２月７日検索、インターフェース＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｅｎｓ．ｃｏ．ｊｐ／ｐｕｂｌｉｃ／ｔｃ３＿００００．ｎｓｆ／ｐｒｏｄｕｃｔｓ／ＭａｒａｔｈｏｎＥｎｄｕｒａｎｃｅ６２００？ＯｐｅｎＤｏｃｕｍｅｎｔ＞
【特許文献１】  日本特開２００１−２２５７２号公報
【特許文献２】  日本特開２００２−３７３１４３号公報
【発明の開示】
本発明はこのような従来の技術の問題点に鑑みてなされたものである。すなわち、本発明の課題は、複数の汎用サーバ等のコンピュータを組み合わせたフォールトトレラントシステムにおいて、システムで一括して、各汎用サーバが有するファームウェアをアップデートする機能を提供することにある。
本発明は上記課題を解決するために、以下の手段を採用した。すなわち、本発明は、複数のコンピュータを含む仮想計算機システムであって、上記コンピュータは、仮想計算機システム構成時に実行される第１オペレーティングシステムと、各コンピュータが個別に機能するときの第２オペレーティングシステムとを各々有している。
そして、上記コンピュータは、第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部と、第２オペレーティングシステム起動時に当該コンピュータのファームウェアをアップデートする書き替え手段と、上記ブート部を第１オペレーティングシステム起動用に設定する手段と、上記コンピュータを再起動する手段と、第１オペレーティングシステムが起動されたときに少なくとも１台の他のコンピュータとの同期により仮想計算機システムを形成する手段とを備えている。
さらに、上記仮想計算機が形成された状態で、上記ブート部を第２オペレーティングシステム起動用に設定する手段と、仮想計算機システムを停止する手段とが提供されるものである。
このように、仮想計算機が形成された状態で、上記ブート部を第２オペレーティングシステム起動用に設定し、仮想計算機システムを停止することで、仮想計算機が個々の計算機に分離される。そして、個々の計算機が再起動されると、第２オペレーティングシステムが起動され、各計算機のファームウェアがアップデートされる。
好ましくは、上記コンピュータは、各々、入出力部を有する第１コンピュータと、第１コンピュータの入出力部を利用する第２コンピュータとを含み、
少なくとも、上記第１オペレーティングシステムまたは第２オペレーティングシステムを起動するためのブート部と、上記第２オペレーティングシステム起動時に上記第２コンピュータのファームウェアをアップデートする書き替え手段とが、上記第２コンピュータに備えられるものでもよい。
この第１コンピュータは、例えば、入出力プロセッサと呼ばれるものである。また、第２コンピュータは、例えば、主プロセッサと呼ばれるものである。
好ましくは、上記ブート部は、上記仮想計算機が形成された状態では、アクセスされない保護状態に設定され、上記ブート部を第２オペレーティングシステム起動用に設定する手段は、上記保護状態にあるブート部にアクセスする手段を有するものでもよい。この保護状態にあるブート部にアクセスする手段とは、例えば、上記保護状態を解除する手段である。
また、本発明は、コンピュータその他の装置、機械等が上記いずれかの処理を実行する方法であってもよい。また、本発明は、コンピュータその他の装置、機械等に、以上のいずれかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータ等が読み取り可能な記録媒体に記録したものでもよい。
【図面の簡単な説明】  ＦＩＧ．１は、本発明の一実施の形態に係る計算機システムのシステム構成図であり、
ＦＩＧ．２は、ＦＩＧ．１に示した計算機１、２におけるファームウェア構成例であり、
ＦＩＧ．３は、ＦＩＧ．２に示したＡｕｔｏｅｘｅｃ．ｂａｔ記述例であり、
ＦＩＧ．４は、自動アップデートの動作例を示すフローチャートである。
【発明を実施するための最良の形態】  以下、本発明の第１実施形態に係る計算機システムをＦＩＧ．１からＦＩＧ．４の図面に基づいて説明する。
＜システム構成＞
ＦＩＧ．１は、本発明の一実施の形態に係る計算機システムのシステム構成図である。ＦＩＧ．１のように、この計算機システムは、計算機１〜４と、操作端末５とを有している。
これらのうち、計算機１および２は、通常の稼働状態では、互いに同一の処理を同期して実行する。これにより、計算機１および２は、冗長構成の主プロセッサを構成する。ＦＩＧ．１に示すように、計算機１は、ＣＰＵ１１、メモリ１２、およびハードウェア１３を有している。なお、計算機２は、計算機１と同様の構成であるので、その説明は省略する。
ＣＰＵ１１は、メモリ１２に展開されたプログラムを実行し、主プロセッサとしての機能を提供する。メモリ１２は、ＣＰＵ１１で実行されるプログラム、あるいは、ＣＰＵ１１で処理されるデータを記憶する。
ハードウェア１３は、各種処理回路、例えば、計算機１が計算機３または４と通信するためのインターフェース基板、グラフィックス基板等である。ハードウェア１３には、各種ファームウェアを格納する格納部が設けられている。
ファームウェアとは、ハードウェアの基本制御を行うために機器に組み込まれているソフトウェアである。本実施の形態では、書き替え可能な不揮発性メモリ、例えば、フラッシュメモリ上に展開されている書き換え可能なソフトウェアをファームウェアと呼ぶ。計算機１のファームウェアには、例えば、ＢＩＯＳがある。
計算機３は、計算機１の入出力プロセッサ（Ｉ／Ｐプロセッサ）として機能する。同様に、計算機４は、計算機１の入出力プロセッサとして機能する。入出力プロセッサは、主プロセッサの制御の下で、入出力インターフェースに接続される各種デバイスにアクセスし、情報を入出力する。
すなわち、計算機３は、計算機１の指示を受けて不図示の入出力インターフェース上のデバイスとデータを授受する。また、計算機３は、入出力インターフェース上のデバイスへのアクセス結果を計算機１に報告する。
ただし、計算機１が計算機３のハードディスク３３Ａ、３３Ｂ等にアクセスする場合には、そのアクセスは、計算機４に組み込まれたハードディスクにも反映される。本実施形態においては、計算機３のハードディスクと計算機４のハードディスクはミラーを構成する。
なお、計算機４の計算機２に対する機能は、計算機３の計算機１に対する機能と同様である。
ＦＩＧ．１に示すように、計算機３は、ＣＰＵ３１、メモリ３２、ハードディスク３３Ａ、３３Ｂおよびハードウェア３８を有している。
また、ハードディスク３３Ａは、各々、マスタブートレコード部（ＭＢＲ）３５Ａ、第１ＯＳ部３６Ａ、第２ＯＳ部３７Ａを有している。同様に、ハードディスク３３Ｂは、各々、マスタブートレコード部（ＭＢＲ）３５Ｂ、第１ＯＳ部３６Ｂ、第２ＯＳ部３７Ｂを有している。
ここで、ハードディスク３３Ａは、計算機１をブートするための記録領域である。すなわち、マスタブートレコード部３５Ａは、計算機１のブート時に実行され、第１ＯＳ部３６ＡのＯＳまたは第２ＯＳ部３７ＡのＯＳのいずれかを計算機１にロードする。
第１ＯＳ部３６Ａには、通常の運用状態で使用されるＯＳが格納される。通常の運用状態で使用される第１ＯＳとは、本計算機システムがユーザに情報処理等のサービスを提供する場合に実行されるＯＳである。本実施形態では、第１ＯＳとして、米国マイクロソフト社のウィンドウズ（商標）を使用する。
また、第２ＯＳ部３７Ａには、ファームウェアアップデート時に使用する第２ＯＳが格納される。ここでは、第２ＯＳとして、ＤＯＳを使用する。
マスタブートレコード３５Ａには、第１ＯＳ部３６Ａまたは第２ＯＳ部３７Ａのいずれをブートすべきかの指定がされている。計算機１のブート時、その指定にしたがい、第１ＯＳ部３６Ａまたは第２ＯＳ部３７Ａが選択され、ブートされる。
また、ハードディスク３３Ｂは、計算機３をブートするための記録領域である。すなわち、マスタブートレコード部３５Ｂは、計算機３のブート時に実行され、第１ＯＳ部３６Ｂに格納された第１ＯＳまたは第２ＯＳ部３７Ｂに格納された第２ＯＳのいずれかを計算機３にロードする。
なお、ハードディスク３３Ａ、３３Ｂとは、物理的に複数のハードディスクでもよい。また、ハードディスク３３Ａ、３３Ｂとは、単一のハードディスクにおける異なる領域（例えば、異なるパーティション）でもよい。
ハードウェア３８は、例えば、ＰＣＩ、ＵＳＢ等のインターフェース、ＬＡＮ基板等である。計算機３は、ハードウェア３８を介して、ハードディスク等の入出力デバイス、あるいは、ネットワークへアクセスし、入出力プロセッサとしての機能を提供する。
ハードウェア３８には、計算機１のハードウェア１３と同様、各種ファームウェアが格納される。したがって、ハードウェア３８も、書き替え可能な不揮発性メモリ、例えば、フラッシュメモリ等を有している。また、計算機３のファームウェアには、例えば、ＢＩＯＳ、ＰＣＩバスコントローラ用ファームウェア、ＲＡＩＤコントローラ等に格納するファームウェア等がある。
以上の構成により、計算機１〜４は、外部（例えば、ネットワーク上の操作端末５）に対して１台のコンピュータ（以下、仮想計算機と呼ぶ）として機能する。すなわち、操作端末５は、この仮想計算機をネットワーク上の１台の計算機として認識する。
操作端末５は、例えば、パーソナルコンピュータである。操作端末５は、計算機３（または４）の入出力インターフェースに接続されるＬＡＮ基板を通じて計算機１および計算機２にアクセスする。
上述のように、計算機３および４の各々にＬＡＮ基板がインストールされている。この場合、操作端末５は、計算機３または４のうち、いずれかのＬＡＮ基板（これを例えば、現用系基板と呼ぶ）を通じて仮想計算機にアクセスする。このとき、現用系でないＬＡＮ基板は、予備系として、いつでも使用可能な状態にある。
また、仮想計算機内では、計算機１および２は、同期して同一の処理を実行する。しかし、操作端末５は、単一のＩＰアドレスにより、単一のノードして計算機１、２にアクセスする。
上述のように、計算機３および４のハードディスクは、互いにミラーの関係にある。したがって、仮想計算機への入出力は、入出力プロセッサである計算機３および４を通じてミラー構成のハードディスクへの入出力となる。
本実施の形態では、計算機１（および２）の第１ＯＳ制御下のプログラムにより、計算機３および４を通じたミラー構成が実現される（これをソフトウェアミラーと呼ぶ）。ただし、本発明の実施は、このようなミラーの方式に限定されるものではない。例えば、計算機３および４による制御下、あるいは、ハードディスク内のハードウェアによる制御下で、ハードディスクのミラーを実現してよい。
＜ファームウェアのアップデート動作の概要＞
以下、各計算機１〜４のファームウェアをアップデートする手順を説明する。
（１）単独の計算機におけるアップデート動作
以下、計算機１または２のファームウェアを単独でアップデートする手順を説明する。初期状態では、計算機１、２では、第１ＯＳが起動される。その場合、第２ＯＳ部３７Ａは、第１ＯＳ上から見えないように隠蔽されている。これは、第２ＯＳ部３７Ａへの破壊行為を回避するためである。これは、例えば、第１ＯＳがウィンドウズ、第２ＯＳがＤＯＳの場合に、ＤＯＳを格納するＤＯＳ区画を異なるパーティションとし、そのＤＯＳ区画のパーティションに、ウィンドウズが認識できないパーティションＩＤを設定すればよい。
以下、個々の計算機１または２のファームウェアをアップデートする手順の概要を説明する。ここでは、入出力プロセッサである計算機３、４起動が起動された状態で、計算機１、２のファームウェアを個別にアップデートする場合を想定する。
（１−１）第１ＯＳ上にて、ファームウェア展開プログラムが、ネットワークを介して入手したファームウェア一式を第２ＯＳ部の空領域に展開する。すなわち、
（ａ）第１ＯＳが一時的に第１ＯＳ上から第２ＯＳ部に対して読み書きが行えるように、隠蔽状態を解除する。
（ｂ）ネットワークより入手したファームウェア一式を上記第２ＯＳ部内に展開する（書き込む）。
ファームウェア一式には第２ＯＳ起動時に自動実行されるスクリプト（例えば、ＤＯＳにおけるＡｕｔｏｅｘｅｃ．ｂａｔ）が含まれている。そのため、第２ＯＳが起動されると、自動で一連のアップデートコマンド（仮にＵｐｄａｔｅ．ｅｘｅとする）が実行される。
さらに、上記スクリプト（Ａｕｔｏｅｘｅｃ．ｂａｔ等）の最後には次回システムブート時に第１ＯＳが起動できるようにマスタブートレコード３５Ａおよび第２ＯＳ部３７Ａを設定するコマンド（仮にＣｈｇｐｉｄ．ｅｘｅとする）、システムをリブートするコマンド（仮にＲｅｂｏｏｔ．ｅｘｅとする）が呼び出されるようになっている。
（ｃ）第１ＯＳは、隠蔽状態を元に戻す。
（１−２）第１ＯＳ上にて、区画操作プログラムが、次回システムブート時に第２ＯＳ部３７Ａから起動できるように、マスタブートレコード３５Ａおよび第２ＯＳ部３７Ａを設定する。
（１−３）システムをリブートする。これにより、第２ＯＳ部から、第２ＯＳ（例えば、ＤＯＳ）が起動する。
（１−４）スクリプト（例えば、Ａｕｔｏｅｘｅｃ．ｂａｔ）が実行される。
（１−５）スクリプト（例えば、Ａｕｔｏｅｘｅｃ．ｂａｔ）からＣｈｇｐｉｄ．ｅｘｅが呼ばれて、次回システムブート時に第１ＯＳが起動できるようにマスタブートレコード３５Ａおよび第２ＯＳ部３７Ａが設定される。
（１−６）スクリプト（例えば、Ａｕｔｏｅｘｅｃ．ｂａｔ）からＵｐｄａｔｅ．ｅｘｅが呼ばれて、ファームウェアがアップデートされる。
（１−７）スクリプト（例えば、Ａｕｔｏｅｘｅｃ．ｂａｔ）からＲｅｂｏｏｔ．ｅｘｅが呼ばれて、システムがリブートされる。これにより、第１ＯＳ（例えば、ウィンドウズ）が起動する。
（１−８）ファームウェアが正常にアップデートできたか、結果をチェックする。
（２）仮想計算機上でのファームウェアのアップデート動作
上記の自動アップデート動作例をそのまま仮想計算機に適用する。
（２−１）第１ＯＳ上にて、上記（１）単独の計算機におけるアップデート動作例の（１−１）〜（１−２）を実行する。
（２−２）システムをリブートする。第１ＯＳが停止した時点で仮想計算機の冗長性（計算機１と２の同期、計算機３と４の同期）が解除される。計算機１（および２）において、計算機３または４の第２ＯＳ部３７Ａ（例えば、ＤＯＳ区画）より第２ＯＳが起動する。
（２−３）（１−４）〜（１−８）を実行する。計算機１、および２上にあるハードウェアのファームウェアがアップデートされる。第１ＯＳが起動した時点で仮想計算機の冗長性が復旧する。
（３）計算機３、４（入出力プロセッサ）上での動作
計算機３、４でのファームウェアアップデート動作は、単独の計算機としての動作（１）と同一である。すなわち、計算機３、および４は、各々不図示のシステムコンソールを有しており、このシステムコンソールを通じて、（１）と同一の手順により、計算機３、４は、各々個別にファームウェアのアップデートを実行する。
＜計算機のファームウェア構成＞
ＦＩＧ．２は、ＦＩＧ．１に示した計算機１から４におけるファームウェアの構成例（Ｆｉｒｍｗａｒｅ．ｆａｒ）である。計算機１、２のファームウェアは、計算機３の第２ＯＳ部３７Ａに格納される。また、計算機３、４ファームウェアは、第２ＯＳ部３７Ｂに格納される（ＦＩＧ．１参照）。
ＦＩＧ．２に示すように、計算機１から４のファームウェアは、Ａｕｔｏｅｘｅｃ．ｂａｔ、Ｃｏｎｆｉｇ．ｓｙｓ、Ｕｐｄａｔｅ．ｅｘｅ、Ｆｉｒｍｗａｒｅ．ｄａｔ、Ｃｈｉｐｉｄ．ｅｘｅおよびＲｅｂｏｏｔ．ｅｘｅという各プログラム（またはスクリプト）を有している。
Ａｕｔｏｅｘｅｃ．ｂａｔは、第２ＯＳ（例えば、ＤＯＳ）のシステムファイルであり、ＤＯＳ起動時に実行するプログラムを記述する。
Ｃｏｎｆｉｇ．ｓｙｓは、第２ＯＳ（例えば、ＤＯＳ）のシステムファイルであり、例えば、周辺装置の接続等を実行する。
Ｕｐｄａｔｅ．ｅｘｅは、ファームウェアアップデートプログラムである。また、Ｆｉｒｍｗａｒｅ．ｄａｔは、Ｕｐｄａｔｅ．ｅｘｅにより、今回アップデートされるファームウェアである。Ｕｐｄａｔｅ．ｅｘｅは、自身の直後に配置されたデータを新規のファームウェアとして、所定のハードウェア内のファームウェア格納先（例えば、計算機３とのインターフェース基板、グラフィックス基板等の不揮発性メモリ）に格納する。
Ｃｈｇｐｉｄ．ｅｘｅは、第１ＯＳと第２ＯＳとの間で、起動されるＯＳを切り替えてマスタブートレコード３５Ａに設定するプログラムである。Ｃｈｇｐｉｄ．ｅｘｅは、例えば、ＦＩＧ．１に示したマスタブートレコード３５Ａにおいて第１ＯＳ部３６Ａと第２ＯＳ部３７Ａのいずれからブートするかを設定する。
Ｒｅｂｏｏｔ．ｅｘｅは、システムをリブートするプログラムである。
ＦＩＧ．３は、Ａｕｔｏｅｘｅｃ．ｂａｔの記述例である。上述のように、Ａｕｔｏｅｘｅｃ．ｂａｔには、ＤＯＳ起動時に実行されるコマンドが記述される。
ＦＩＧ．３のように、本実施形態において、Ａｕｔｏｅｘｅｃ．ｂａｔは、まず、”Ｕｐｄａｔｅ．ｅｘｅ  Ｆｉｒｍｗａｒｅ．ｄａｔ”というコマンド行により、ファームウェアのアップデートを実行する。このコマンド行により、Ｕｐｄａｔｅ．ｅｘｅの直後に配置されたＦｉｒｍｗａｒｅ．ｄａｔが新たなファームウェアとして所定のハードウェア内の不揮発性メモリに書き込まれる。
次に、Ａｕｔｏｅｘｅｃ．ｂａｔは、”Ｃｈｇｐｉｄ．ｅｘｅ／Ｂ：ＯＦＦ”により、次に起動するＯＳを第１ＯＳ（例えば、ウィンドウズ）に設定する。
次に、Ａｕｔｏｅｘｅｃ．ｂａｔは、Ｒｅｂｏｏｔ．ｅｘｅにより、システムのリブートを実行する。
＜処理フローチャート＞
ＦＩＧ．４は、自動アップデートの動作例を示すフローチャートである。初期状態では、仮想計算機を構成する計算機１（および２）では第１ＯＳが起動されている。この状態で、仮想計算機を構成するコンピュータ１および２は、操作端末５からのアップデート指示を受信する（Ｓ１）。このとき、アップデート指示とともに、ファームウェアが操作端末５からダウンロードされる（Ｓ２）。
次に、計算機１および２は、第２ＯＳ部３７Ａ（例えばＤＯＳ区画）の隠蔽解除を実行する（Ｓ３）。隠蔽解除とは、第２ＯＳ部３７Ａを第１ＯＳからアクセス可能にすることをいう。これは、例えば、第２ＯＳ部３７が含まれるパーティションのＩＤを第１ＯＳの管理対象に設定する操作である。
次に、計算機１および２は、ダウンロードされたファームウェア（ＦＩＧ．２）に示したものを第２ＯＳ格納部３７Ａに展開する（Ｓ４）。
次に、計算機１および２は、第２ＯＳ部３７Ａ（例えばＤＯＳ区画）の再隠蔽を実行する（Ｓ５）。これは、例えば、第２ＯＳ部３７が含まれるパーティションのＩＤを第１ＯＳの管理対象外のＩＤに設定する操作である。
計算機１および２は、マスタブートレコード３５Ａおよび第２ＯＳ部３７Ａにおいて、次回起動時のＯＳを第２ＯＳ（例えば、ＤＯＳ）に設定する（Ｓ６）。
そして、計算機１および２は、システムをリブートする（Ｓ７）。このとき、計算機１および２は、ます、シャットダウンされ、互いの同期処理が停止される。その後、ブート処理が実行される。このブート処理以降は、計算機１および２は、単独で処理を実行する。このとき、計算機１と２は同期が取られておらず、冗長構成にない。したがって、計算機１および２は、各々、並行して以下のアップデートを実行する。
まず、計算機１（ＦＩＧ．４ではＣＥ１と記載）および計算機２（ＦＩＧ．４ではＣＥ２と記載）は、マスタブートレコード３５Ａの設定により、第２ＯＳを起動する。第２ＯＳ起動後、計算機１および２は、各々、Ａｕｔｏｅｘｅｃ．ｂａｔを起動する（Ｓ８）。
次に、計算機１および２は、各々、マスタブートレコード３５Ａおよび第２ＯＳ部３７Ａにおいて、次回起動ＯＳを第１ＯＳ（例えば、ウィンドウズ）に設定する（Ｓ９）。
さらに、計算機１および２は、各々、ファームウェアのアップデートを実行する（Ｓ１０）。そして、計算機１および２は、各々自身をリブートする（Ｓ１１）。
この後、マスタブートレコード３５Ａの設定により、第１ＯＳが起動される。なお、第１ＯＳ起動時には、まず、計算機１が起動される。そして、計算機１のメモリの内容が計算機２のメモリにコピーされ、計算機１と計算機２の同期処理が開始する。その後、アップデート結果にしたがい、各ハードウェアが実行され、アップデート結果が検証される（Ｓ１２）。
なお、以上の計算機１および２のブート処理の間、計算機３および４は入出力プロセッサとして稼働している。
以上述べたように、本情報システムによれば、複数の計算機が冗長構成を採る仮想計算機システムにおいて、複数の計算機に含まれるファームウェアをアップデートできる。
また、本情報システムによれば、アップデートされるファームウェアを格納する第２ＯＳ部３７Ａは、通常の運用状態では隠蔽されている。したがって、第２ＯＳ部３７Ａの破壊行為、または、ファームウェアの破壊行為を防止できる。
＜変形例＞
上記実施の形態では、仮想計算機を計算機１、２とこれらに入出力プロセッサの機能を提供する計算機３、４により構成した。しかし、本発明の実施はこのような構成に限定されるものではない。例えば、入出力プロセッサの機能を提供する計算機３、４は、必ずしも必要ではない。すなわち、計算機１、２の入出力インターフェースに、ＬＡＮ基板、ハードディスク等を接続する構成であっても、本発明は実施できる。
【産業上の利用可能性】  本発明は、複数計算機で構成される仮想計算機システム内のファームウェアのアップデートに利用できる。
【図１】
2004081791.tif 000003
【図２】
2004081791.tif 000004
【図３】
2004081791.tif 000005
【図４】
2004081791.tif 000006
【国際調査報告】
2004081791.tif 000007
2004081791.tif 000008