(57)【要約】【課題】本発明は、ＯＳを格納した装置を多重化して備え、主系のブート対象装置で起動できない場合に、強制的に従系のブート対象装置に切り換え、次回のブート処理で従系のブート対象装置で起動する情報処理システムを提供する。【解決手段】制御装置１は、２重化装置Ｄ１，Ｄ２から選択し読み出したＯＳを起動してシステムを立ち上げる。不揮発性メモリＮＭには、ブート対象候補の装置設定情報を含む第１変数情報、該装置設定情報に基づきブート対象装置を指定するインデックス情報を含む第２変数情報、多重化が有効か否かの２値が設定される第３変数情報とを含むブートファームウエア環境変数ＮＭ２１が格納される。ブートファームウエアＭ１は、環境変数の設定に基づきブート対象装置を決定し、ブート対象装置に格納されたＯＳＭ４を起動する。システムソフトウエアＭ５は、前記環境変数の設定に基づきブート対象装置の多重化制御を実施する。【選択図】      図１
2004326409.tif 000002
【特許請求の範囲】
【請求項１】
多重化された複数の装置から選択して読み出されたオペレーションシステムが起動されてシステムが立ち上げられる情報処理システムにおいて、
前記複数の装置からブート対象を設定する環境情報を格納する格納手段と、
前記環境情報の設定に基づいてブート対象装置を決定し、該ブート対象装置に格納された前記オペレーションシステムを起動させるブート制御手段と、
前記複数の装置の多重化制御を実行する制御手段と、を有し、
前記制御手段は、前記ブート対象装置に異常が検出されたとき、前記環境情報の設定を変更して、他の前記装置に切り換え制御することを特徴とする情報処理システム。
【請求項２】
前記環境情報は、
前記複数の装置についてブート対象候補とする装置設定情報を含む第１変数情報と、
前記装置設定情報に基づいてブート対象装置を指定するインデックス情報を含む第２変数情報と、
前記多重化が有効か否かの２値が設定される第３変数情報と、
を含むことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記ブート制御手段は、システムの電源投入時において、前記インデックス情報を初期値にクリアし、前記装置設定情報に最初に設定された前記装置をブート対象として選択することを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記ブート制御手段は、第３変数情報に有効が設定されている場合に、前記インデックス情報により指定されたブート対象装置を選択し、否が設定されている場合には、前記装置設定情報において最初に設定された装置をブート対象として選定することを特徴とする請求項２に記載の情報処理システム。
【請求項５】
前記ブート制御手段は、第３変数情報に有効が設定されている場合に、前記インデックス情報におけるインデックスを更新することを特徴とする請求項４に記載の情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オペレーティングシステムを格納したブート対象装置を多重化して備えた情報処理システムに関し、特に、ブート対象装置の多重化のためのシステムソフトウエアと連携することにより、主系のブート対象装置で起動できなかった場合に、強制的に従系のブート対象装置に切り換えて、次回のブート処理で従系のブート対象装置から起動できる情報処理システムに関する。
【０００２】
【従来の技術】
一般に、コンピュータなどの情報処理システムにおいては、起動信号の発生に応答してハードディスクなどのブート対象装置からオペレーティングシステムを起動するように構成されている。このような構成の場合、ブート対象デバイスが壊れたときには、オペレーティングシステムを起動できなくなる。特に、このような障害が、コンピュータで発生すると、特に、このコンピュータがネットワーク上で他のコンピュータに接続されているような場合には、他のコンピュータに対する全てのサービスが停止されてしまうという問題が発生する。
【０００３】
一方、最近では、情報処理システムの耐障害性を高める一つの技術として、複数のハードディスクを、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構成にして冗長化することが行われている。しかし、このＲＡＩＤ構成は、ミラーリングやストライピングによって、読み出しデータの信頼性を高める技術であり、システム起動に関わる動作の信頼性を高めるものではない。
【０００４】
そこで、ブート対象の装置であるディスク装置を多重化、例えば、２重化した情報処理システムにおいて、いずれかのディスク装置が破壊されたことを検出したとき、スイッチ操作によって、システムに備えられた複数のディスク装置の中から、ブート対象ディスク装置を切り換えるようにして、コンピュータのシステム起動が行われる情報処理システムが開発されている。しかし、この情報処理システムでは、その切り換えのためのスイッチ操作は、管理者などによる手動操作で行われるものであり、しかも、システム起動が、正常に行われたか、失敗したかの判断についても人手によって行われていた。
【０００５】
このような情報処理システムでは、ディスク装置が破壊された場合に、再度システムを立ち上げるのに、時間を費やし、システム運用に支障をきたすことになるので、２重化されてディスクの一方が破壊されても、他方のディスクに自動的に切り換えることが行われている。そこで、システム起動に関わる動作の信頼性を十分に高めた情報処理システムが提案されている。
【０００６】
この情報処理システムにおいては、図６の構成概念図に示されるように、制御装置１に、ＯＳを格納したディスク装置Ｄ１及びＤ２が２重化して備えられ、制御装置１は、ＣＰＵを有する制御部２、不揮発性メモリ３、メインメモリ４を含んでいる。さらに、制御部２には、キーボード、モニタ装置などの周辺装置５が接続される。
【０００７】
このような情報処理システムにおける２重化されたディスク装置に対する切り換えの仕方の一例として、情報処理システムのＯＳを備えた制御部が、ディスク装置のいずれかが破壊されたことを検出したとき、システムに備えられた不揮発性メモリに、イニシャル・マイクロプログラム・ロード（ＩＭＰＬ）ディスク情報と、イニシャル・プログラム・ロード（ＩＰＬ）ディスク装置情報とを自動的に格納するようにしたものがある（例えば、特許文献１を参照）。この例では、不揮発性メモリにＩＭＰＬディスク情報とＩＰＬディスク装置情報が自動的に格納されるので、制御部は、次に格納すべきディスク装置情報を知ることができ、自動的に他の正常なディスク装置に切り換えることができる。
【０００８】
また、他の例として、個々にＯＳを格納し２重化されたディスク装置において、該ディスク装置に障害が発生したときに、ディスク装置の障害発生から復旧までの時間を短くしようとした情報処理システムがある（例えば、特許文献２を参照）。この例による情報処理システムでは、一方のディスク装置が破壊された場合、システムを一旦終了させ、再立ち上げ前に、他方の破壊されていないディスク装置がマスタとなり、破壊された方のディスク装置がスレーブとなるように、切り換え制御がされ、システム登録がなされる。これにより、システムが再立ち上げされたとき、マスタである破壊されていない方のディスク装置のＩＰＬにより、ＯＳが起動され、そして、システムが立ち上がるというものである。
【０００９】
さらに、別の例として、ＯＳを個々に格納し２重化されたディスク装置を有し、ＯＳを起動する手段と、該ＯＳの起動完了を検出する手段とを有し、該ＯＳを起動するための起動信号が発生されてからの経過時間を計時し、該起動信号が発生されてから所定の経過時間内に、該ＯＳの起動完了が検出されたか否かに基づいて、ＯＳの起動対象となるブート対象ディスク装置の切り換えを制御するようにした情報処理システムがある（例えば、特許文献３を参照）
この情報処理システムにおいては、ＯＳの起動完了を自動検出でき、起動信号が発生されてからの所定の経過時間内にＯＳの起動完了が検出されたか否かに基づいて、ＯＳの起動対象となるブート対象ディスク装置の切り換えが自動的に制御されるため、人手を介在せずとも、ＯＳを正常に起動できたか否かの判断、および別のブートディスク装置からのＯＳの再起動を全て自動的に行うことが可能となる。
【００１０】
一方、これらのような情報処理システムにおける２重化されたブート対象のディスク装置の夫々には、ディスク装置を起動するための種々のプログラムが格納されている。個々のディスク装置において、例えば、ディスクの先頭から、ブート・ブロック・プログラム、ＯＳローダ、ＯＳ、システムソフトウエアが、格納され、それ以後に、データが格納されている。
【００１１】
情報処理システムの立ち上げ時においては、システム内の不揮発性メモリに格納されていたブートファームウエアがメインメモリに展開され、このブートファームウエアの動作により、ブート対象のディスク装置が選択され、当該ディスク装置に格納されているブート・ブロック・プログラムを読み出し、メインメモリに展開する。このブート・ブロック・プログラムが、ブート対象ディスク装置に格納されたＯＳローダをメインメモリに展開する。次いで、ＯＳローダがＯＳをメインメモリに読み出すと、ＯＳが、ブート対象ディスク装置に格納されているシステムソフトウエアをメインメモリに展開させる。このシステムソフトウエアが２重化されたディスク装置の主系と従系のどちらで立ち上がっているかをチェックし、２重化の制御を実行する。このシステムソフトウエアの起動により、ＯＳの通常運用時において、２重化されたディスク装置に対する以降の切り換え処理が実施される。
【００１２】
【特許文献１】
特開平３−２２９３３１号公報
【特許文献２】
特開２０００−８１９７８号公報
【特許文献３】
特開２００２−２５９１３０号公報
【００１３】
【発明が解決しようとする課題】
従来の情報処理システムにおいては、システム構成装置を２重化することにより、運用時にシステム構成装置にアクセスするときに発生するハードエラーに対して冗長性をもたせて、信頼性を高めている。システム構成装置であるブート対象ディスク装置に格納されたシステムソフトウエアの処理によって冗長性を実現している。そのため、システムの立ち上げ処理において、一度、システムソフトウエアの起動まで処理が進んだ後は、以降の処理では、２重化しているシステムディスク装置へのアクセスにおいてエラーが発生しても、エラーの発生していない方のデータを用いて継続運用が可能となっている。
【００１４】
また、２重化されたうちの主系のシステムディスク装置でエラーが多発した場合には、主系のディスク装置を切り離し、その後は、従系のシステムディスク装置からシステムをブートすることも可能である。しかし、システムの立ち上げ処理においては、ブート可能なディスク装置を２重化しても、その切り換えは、主系のディスク装置の異常を検出した場合をトリガにしている。そのため、主系のディスク装置に格納されたシステムソフトウエアの起動が進む前に、主系のシステムディスク装置で異常が発生した場合には、２重化の制御を行うシステムソフトウエアを動作させることができない。従って、システムディスク装置が二重化されていても、主系のシステムディスク装置に異常が発生すると、従系のシステムディスク装置に切り換えることができないため、システムを立ち上げることができないという問題が発生していた。
【００１５】
そこで、本発明は、システムソフトウエアが起動後の装置異常の検出によるブート対象装置の切り換え処理という従来の機能に加えて、システムソフトウエアの起動前に装置異常が発生した場合にも、ブート対象装置を切り換えることができる機能を持たせた情報処理システムを提供し、更に、装置の異常検出とは、無関係に、ブート処理ごとに、強制的にブート対象装置を切り換える機能と、システムソフトウエアが起動時に強制的に切り換えられたブート対象装置を元に戻す処理を行う機能を有する情報処理システムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
以上の課題を解決するため、本発明では、多重化された複数の装置から選択して読み出されたオペレーションシステムが起動されてシステムが立ち上げられる情報処理システムにおいて、前記複数の装置からブート対象を設定する環境情報を格納する格納手段と、前記環境情報の設定に基づいてブート対象装置を決定し、該ブート対象装置に格納された前記オペレーションシステムを起動させるブート制御手段と、前記複数の装置の多重化制御を実行する制御手段とを備え、前記ブート対象装置に異常が検出されたとき、前記環境情報の設定を変更して、他の前記装置に切り換え制御することとした。
【００１７】
そして、前記環境情報が、前記複数の装置についてブート対象候補とする装置設定情報を含む第１変数情報と、前記装置設定情報に基づいてブート対象装置を指定するインデックス情報を含む第２変数情報と、前記多重化が有効か否かの２値が設定される第３変数情報とを含むこととした。
【００１８】
さらに、前記ブート制御手段は、システムの電源投入時において、前記インデックス情報を初期値にクリアし、前記装置設定情報に最初に設定された前記装置をブート対象として選択することとし、第３変数情報に有効が設定されている場合に、前記インデックス情報により指定されたブート対象装置を選択し、否が設定されている場合には、前記装置設定情報において最初に設定された装置をブート対象として選定することとした。
【００１９】
さらに、前記ブート制御手段は、第３変数情報に有効が設定されている場合に、前記インデックス情報におけるインデックスを更新することとし、前記環境情報に設定されたブート対象装置を選定し、該ブート対象装置に格納されている前記オペレーションシステムを読み込み、起動させることとした。
【００２０】
また、前記制御手段は、第３変数情報に有効が設定され、前記インデックス情報が初期値ではない場合には、第１変数情報における設定を参照して、従系のブート対象装置で立ち上がっているかどうかを認識し、従系のブート対象装置で立ち上がっていることを認識した場合には、主系の前記装置に異常が発生していることを示す警告メッセージを通知することとした。
【００２１】
さらに、前記制御手段は、主系のブート対象装置で立ち上がっているか従系のブート対象装置で立ち上がっているかに関係なく、第２変数情報を初期値にクリアすることとした。
【００２２】
前記制御手段は、第３変数情報が前記格納手段内に存在するかしないかに関係なく、前記ブート対象装置に異常の発生を検出したとき、当該ブート対象装置を切り離し、第２変数情報の前記ブート対象候補とする装置の設定情報を書き換えることとした。
【００２３】
【発明の実施の形態】
以下において、本発明による情報処理システムの実施形態について、図を参照しながら説明する。しかし、本実施形態の情報処理システムを説明する前に、本実施形態における特徴と効果を明確なものとするために、本実施形態の情報処理システムの基礎となる従来技術による情報処理システムについて説明する。
【００２４】
図７に、ブート・ブロック・プログラムとシステムソフトウエアとが独立にブート対象ディスク装置を切り換える従来技術による情報処理システムを示した。なお、同図は、情報処理システムの立ち上げに関連する部分を中心にして、その概略を示している。同図中において、図６に示した情報処理システムと同じ部分には、同じ符号が付されている。
【００２５】
図７の情報処理システムでは、制御装置１に２重化されたディスク装置Ｄ１とＤ２が接続されている。このディスク装置Ｄ１とＤ２の夫々には、ディスクの先頭から、順に、ブート・ブロック・プログラム、ＯＳローダ、ＯＳ、システムソフトウエアが格納されている。各ディスク装置には、図示していないが、これらに続いて、データが格納されている。
【００２６】
制御装置１には、不揮発性メモリＮＭとメインメモリＭとが備えられているが、図では、システム立ち上げ時に関連する部分が代表的に示されている。不揮発性メモリＮＭには、自己診断ファームウエアＮＭ１、ブートファームウエア環境変数ＮＭ２が格納されている。図示していないが、この他にも、ブートファームウエアのバイナリデータが格納されている。ブートファームウエア環境変数ＮＭ２には、ブートファームウエアの環境情報が格納されており、図では、ディスク装置Ｄ１とＤ２とで２重化されているので、その環境変数として、「ｂｏｏｔ−ｄｅｖｉｃｅ＝ｄｉｓｋ０，  ｄｉｓｋ１」が格納されている。この環境変数において、「ｄｉｓｋ０」は、ディスク装置Ｄ１に、そして、「ｄｉｓｋ１」は、ディスク装置Ｄ２に対応付けられ、ブート対象が、ディスク装置Ｄ１とＤ２であり、立ち上げ時には、ディスク装置Ｄ１から起動処理が行われることを表している。
【００２７】
また、メインメモリＭには、システム立ち上げ前においては、何も格納されていないが、図においては、システム立ち上げ時にブート対象ディスク装置から読み込まれたソフトウエアの展開状況が示されている。ブートファームウエアＭ１は、不揮発性メモリＮＭに格納されていたブートファームウエアのデータを読み込んだものであり、ブート・ブロック・プログラム、ＯＳローダＭ３、ＯＳＭ４、システムソフトウエアＭ５は、ブート対象ディスク装置に格納されていたものが、システム立ち上げ時にメインメモリＭ内に読み込まれたものである。
【００２８】
そこで、図７に示された情報処理システムにおいて、ブートファームウエアＭ１とシステムソフトウエアＭ５とが独立にブート対象ディスク装置を切り換える動作の概要を、次に示す。
【００２９】
先ず、電源投入されて、システムの立ち上げ処理が開始されると、自己診断ファームウエアＮＭ１が起動され、システムチェックが実行される。そして、不揮発性メモリＮＭに格納されているブートファームウエアのデータをメインメモリＭに読み込み、ブートファームウエアＭ１とする。ブートファームウエア環境変数ＮＭ２に用意されているブート制御用の環境変数は、「ｂｏｏｔ−ｄｅｖｉｃｅ＝ｄｉｓｋ０，  ｄｉｓｋ１」であるので、ブートファームウエアＭ１は、この環境変数に設定されたディスク装置を順番にアクセスし、最初に正常にアクセスできた装置をブート対象装置に決定する。ここで、ブート対象装置を決定すると、以降は、ブートファームウエアＭ１は、積極的にブート対象ディスク装置を変更することはしない。
【００３０】
次いで、ブートファームウエアＭ１は、上で選択したブート対象ディスク装置にアクセスし、その先頭のブロックに書き込まれているブート・ブロック・プログラムをメインメモリに読み込み、ブート・ブロック・プログラムＭ２を展開する。ブートファームウエアＭ１は、読み込んだブート・ブロック・プログラムＭ２に制御を移す。
【００３１】
ブート・ブロック・プログラムＭ２が起動すると、ブート・ブロック・プログラムＭ２は、自身が格納されていたディスク装置、図示の例では、ディスク装置Ｄ１内に格納されているＯＳローダをメインメモリに読み込み、ＯＳローダＭ３に制御を移す。
【００３２】
そこで、ＯＳローダＭ３が起動すると、ＯＳローダＭ３は、自身が格納されていたディスク装置Ｄ１に格納されているＯＳをメインメモリに読み込み、ＯＳＭ４に制御を渡す。
【００３３】
さらに、ＯＳＭ４が起動すると、ＯＳＭ４は、自身が格納されていたディスク装置Ｄ１に格納されているシステムソフトウエアをメインメモリＭ内に読み込み、システムソフトウエアＭ５を展開し、システムソフトウエアＭ５を起動する。ここで、システムソフトウエアＭ５が正常に起動した場合には、そのまま運用動作に移る。
【００３４】
以上のように、図７に示された情報処理システムでは、ブートファームウエアＭ１とシステムソフトウエアＭ５とが独立にブート対象ディスク装置を切り換える動作を行っている。
【００３５】
システムソフトウエアＭ５が正常に運用動作に移行できた場合には、システムソフトウエアＭ５が切り換え制御を実行できるため、ブート対象ディスク装置Ｄ１の異常を検出すると、ディスク装置Ｄ１を切り離すことができる。その場合には、次のリブートで、ブート対象ディスク装置Ｄ１を切り換えるため、システムソフトウエアＭ５が不揮発性メモリＮＭにあるブートファームウエア環境変数ＮＭ２の環境情報を書き換える。
【００３６】
しかしながら、この様にブートファームウエアＭ１とシステムソフトウエアＭ５が独立して処理を進めているため、ブートファームウエアＭ１が、ブートファームウエアの環境情報に従って、ブート対象ディスク装置を選択した以後であって、システムソフトウエアＭ５に制御が移行する前の処理中に、何らかの異常が発生して、処理を継続できなかった場合には、システムソフトウエアＭ５が未だ起動していないので、ブートファームウエア環境変数ＮＭ２の環境情報を書き換えることができない。そのため、次のリブートでも、ブート対象ディスク装置を異常のない他のディスク装置に変更できないことになり、その結果、システムを立ち上げることができない。
【００３７】
この様に、従来技術による情報処理システムでは、システムソフトウエアＭ５の起動による制御が行われる以前の処理中に何らかの異常が発生したとき、ブート対象ディスク装置を冗長化しているにも関わらず、システムが立ち上がらないという問題があった。
【００３８】
更に、従来技術の情報処理システムでは、ディスク装置の異常を検出したモジュールが、個々にブートファームウエア環境変数の環境情報「ｂｏｏｔ−ｄｅｖｉｃｅ」を書き換える処理によって、ブート対象のディスク装置を切り換えようとすると、ブート・ブロック・プログラム、ＯＳローダ、ＯＳの初期化処理のすべてにわたって、ブート対象のディスク装置の冗長構成を意識した変更が必要になるが、一般的に、ブート・ブロック・プログラム、ＯＳローダ、ＯＳの初期化部は、特定の冗長構成システムを意識した変更を適用することが困難であるという問題があった。
【００３９】
そこで、本実施形態の情報処理システムでは、従来の情報処理システムに備えられた切り換え機構による以下の２つの要件をそのまま継承できるようにする。つまり、一つの要件は、ブートファームウエアは、環境情報「ｂｏｏｔ−ｄｅｖｉｃｅ」に設定されたディスク装置を順番にアクセスし、最初に正常にアクセスできたディスク装置をブート対象ディスク装置に決定することであり、二つ目の要件は、システムソフトウエアが正常に運用動作に移行できた場合には、該システムソフトウエアが切り換え制御でき、ディスク装置の異常を検出すると、ブート対象ディスク装置を切り離すことができることである。
【００４０】
以上の様な要求を満たす情報処理システムとするため、本実施形態では、不揮発性メモリ内にあるブートファームウエア環境変数に格納される環境情報として、ブート対象となるデバイス情報を設定できる第１変数「「ｂｏｏｔ−ｄｅｖｉｃｅ」、ブート対象の順番情報を示す第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」、そして、ディスク装置を順番にアクセスして、最初に正常にアクセスできたディスク装置をブート対象とする決定機能が有効であるかどうかを示す第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」を用意した。
【００４１】
第１変数「「ｂｏｏｔ−ｄｅｖｉｃｅ」は、冗長化されたディスク装置が、例えば、３つある場合には、「ｂｏｏｔ−ｄｅｖｉｃｅ＝ｄｉｓｋ０，  ｄｉｓｋ１，  ｄｉｓｋ５」のように設定される。また、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」については、例えば、第１変数が上記のようであれば、「ｄｉｓｋ０」のインデックス番号は、初期値０であり、「ｄｉｓｋ１」のインデックス番号は、１であり、「ｄｉｓｋ５」のインデックス番号は、２となり、次回のブートで、ブート対象とするディスク装置を指定する。第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」は、「ｔｒｕｅ」と「ｆａｌｓｅ」の値を有しており、この値が選択されて、上述の２重化による切換機能が有効のときには、「ｔｒｕｅ」が設定され、否のときには、「ｆａｌｓｅ」が設定される。
【００４２】
以上のような３つの環境情報からなるブートファームウエア環境変数が不揮発性メモリに用意された本実施形態の情報処理システムの構成を図１に示した。図１では、図７に示した従来技術による情報処理システムの構成と同様の部分には、同じ符号が付されている。なお、図１においても、図７と同様に、情報処理システムの構成の中で、システム立ち上げに関連する構成を中心に示してある。
【００４３】
図１の情報処理システムが、図７の情報処理システムと大きく異なることは、不揮発性メモリＮＭに格納されているブートファームウエア環境変数に用意されている内容である。図７の従来技術による情報処理システムに用意されているブートファームウエア環境変数ＮＭ２は、環境情報として、「ｂｏｏｔ−ｄｅｖｉｃｅ」だけであったが、図１の本実施形態の情報処理システムでは、ブートファームウエア環境変数ＮＭ２１に、環境情報として、第１変数「「ｂｏｏｔ−ｄｅｖｉｃｅ」、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」、そして、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」が用意されていることである。
【００４４】
そこで、図１に示された本実施形態の情報処理システムは、ブートファームウエアとシステムソフトウエアによりブート対象ディスク装置を切り換える場合の概略構成を示し、２重化されたデバイスであるディスク装置を切り換える場合を例にしている。図２の処理手順のフロー図を参照しながら、その切り換え処理を以下に説明する。
【００４５】
先ず、システムが、電源投入され、或いは、リブートリセットされたとき（ステップＳ１０１）、システムは、不揮発性メモリＮＭ、例えば、フラッシュメモリ内に格納された、自身のハードウエア診断を実行するための自己診断ファームウエア（ＰＯＳＴ）ＮＭ１を起動させ、電源投入直後やリブートリセット直後にシステムが正常に立ち上がることを保証するために、ハードウエアの自己診断を実施する（ステップＳ１０２）。
【００４６】
自己診断ファームウエアＮＭ１は、メインメモリＭを含めたシステムの診断を実行するため、通常は、フラッシュメモリ上のコードでそのまま動作する。ただし、メインメモリＭの診断後は、メインメモリＭにコードを展開して、メインメモリ上で動作する場合もある。また、ＣＰＵのキャッシュメモリの診断後に、キャッシュメモリに実行コードを展開して動作する場合もある。自己診断ファームウエアＮＭ１は、ハードウエアを診断した結果として、ハードウエアの構成情報を作成し、その情報を、後述のブートファームウエアＭ１に引き渡す。
【００４７】
自己診断ファームウエアＮＭ１による診断が終了するとブートファームウエアＭ１に制御を移す（ステップＳ１０３）。ブートファームウエアＭ１のコードは、通常、不揮発性メモリＮＭ、例えば、フラッシュメモリなどに格納され、メインメモリＭに実行コードが展開され、メインメモリＭ上で動作する。また、そのコードが、フラッシュメモリに格納されてなく、自己診断ファームウエアＮＭ１により、外部からメインメモリＭにダウンロードされる場合もある。
【００４８】
ブートファームウエアＭ１は、自己診断ファームウエアＮＭ１により作成されたハードウエア構成情報に基づいて、ブート対象プログラムであるブート・ブロック・プログラム、ＯＳローダ、ＯＳがブート処理を行えるように、ディスクドライバ、コンソールドライバなどブートドライバを初期化する（ステップＳ１０３）。また、ブートファームウエアＭ１は、ブート対象プログラムが動作されるように、メモリ環境などの環境を構築する。
【００４９】
次いで、ブートファームウエアＭ１は、初期化処理の一環で、リセット要因をチェックし、リセット要因が、電源投入であった場合には、不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１に保存されている第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」を０クリアする。リセット要因が、電源投入でないリブートである場合には、第２変数の値は、変更されない。
【００５０】
ブート処理に進めるまで処理が進むと、ブートファームウエアＭ１は、ブートファームウエア環境変数ＮＭ２１に保存されている３つの変数、第１変数「ｂｏｏｔ−ｄｅｖｉｃｅ」、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ  」の値に応じて、ブート対象ディスク装置を選択する（ステップＳ１０４）。
【００５１】
ブートファームウエアＭ１は、選択したブート対象ディスク装置にアクセスして、ディスクの構成情報を読み込み、正常にディスクが動作することを確認する。選択したディスクが正常に動作できない場合には、ブート対象ディスク装置を次の候補のものに変更する。その際、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値を更新する。また、選択したブート対象ディスク装置が、正常に動作できた場合も、システムソフトウエアＭ５が正常に起動できずに、再度のブート処理されるときに備えるものとして、強制的に次の候補に切り換えるために、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値を更新する。
【００５２】
なお、ブートファームウエア環境変数ＮＭ２１に保存されている３つの変数「ｂｏｏｔ−ｄｅｖｉｃｅ」、「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」、「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」の値から対象ディスクを選択する際に、選択できる対象ディスク装置がなかった場合、或いは、対象ディスク装置を次の候補のものに変更しようとしたときに、選択できる対象ディスク装置がなかった場合には、エラーメッセージを通知して、処理を停止する。
【００５３】
ブートファームウエアＭ１は、ブート対象として選択されたのがディスク装置Ｄ１である場合には、該ディスク装置Ｄ１における先頭のブロックに書き込まれているブート・ブロック・プログラムをメインメモリＭに読み込み、読み込んだブート・ブロック・プログラムＭ２に制御を移す（ステップＳ１０５）。
【００５４】
ブート・ブロック・プログラムＭ２が起動すると、ブート・ブロック・プログラムＭ２は、自身が格納されていたディスク装置Ｄ１内に格納されているＯＳローダをメインメモリＭに読み込み、ＯＳローダＭ３に制御を移す（ステップＳ１０６）。
【００５５】
ＯＳローダＭ３が起動すると、ＯＳローダＭ３は、自身が格納されていたディスク装置Ｄ１に格納されているＯＳをメインメモリＭに読み込み、ＯＳＭ４に制御が渡される（ステップＳ１０７）。
【００５６】
そこで、ＯＳＭ４の初期化処理が実施され、ＯＳＭ４が起動すると（ステップＳ１０８）、ＯＳＭ４は、自身が格納されていたディスク装置Ｄ１に格納されているシステムソフトウエアをメインメモリＭに読み込み、システムソフトウエアＭ５を起動する（ステップＳ１０９）。
【００５７】
そして、システムソフトウエアＭ５が正常に起動した場合には、システムソフトウエアＭ５が、ブートファームウエア環境変数ＮＭ２１に記録された第２変数「ｂｏｏｔ−ｄｉｓｋ−ｕｎｉｔ−ｉｎｄｅｘ」を０クリアする。この処理により、次回のリブート処理でも、再度同じディスク装置Ｄ１から上述のブート処理が実行される。主系又は従系のどちらのディスク装置で立ち上がったかをチェックし、従系のディスク装置で立ち上がったと認識した場合には、エラーメッセージを通知するようにする（ステップＳ１１０）。以降のディスク装置の切り換え処理は、システムソフトウエアＭ５によって実施される（ステップＳ１１１）。
【００５８】
ここで、システムソフトウエアＭ５が正常に起動できなかった場合には、ブートファームウエア環境変数ＮＭ２１に記録された第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」は、上述のステップＳ１０４における処理により、更新されたままの状態であるため、次回のリブート時には、強制的に、次の候補のディスク装置がブート対象装置となる。また、ステップＳ１０４における処理で選択されたディスク装置に異常が検出され、その分余分に第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」を更新済みであるため、次回のリブート時には、強制的に、次の候補のディスク装置がブート対象となる。
【００５９】
なお、ステップＳ４において、ブート対象ディスク装置のオープン処理で、該ディスク装置の異常を検出した場合には、上述したように、従来技術の情報処理システムと同様に、異常が検出された当該ディスク装置を切り離し処理が行われる。
【００６０】
そして、システムソフトウエアＭ５の初期化処理に到達する以前のステップＳ１０５乃至Ｓ１０９の処理期間中に、ディスク装置に異常などが発生し、パニック状態にあるとき、従来技術の情報処理システムでは、システムソフトウエアＭ５が起動することがないため、ディスク装置の切り換え処理が実行されなかった。しかし、本実施形態の情報処理システムでは、システムソフトウエアＭ５が正常に起動できていないことを認識でき、強制的にディスク装置を切り換えることができる。２重化されたうちの主系のシステムディスク装置で異常が発生した場合、２重化の制御を行うシステムソフトウエアが動作していないため、従系のシステムディスク装置に切り替えることができずにシステムを立ち上げることができないという問題を回避できる。
【００６１】
このように、図１に示された情報処理システムにおいて、２重化されたディスク装置に対して、ブートファームウエアとシステムソフトウエアによりブート対象ディスク装置を切り換える処理手順が説明された。次いで、図３及び図４を参照して、図１の本実施形態の情報処理システムにおけるブートファームウエアＭ５の詳細構成と、ブートファームウエアＭ５によるブート対象ディスク装置の切り換え処理の手順を、以下に説明する。
【００６２】
図３は、図１に示された本実施形態の情報処理システムの制御装置１内に備えられた不揮発性メモリＮＭの格納状況と、メインメモリＭ内に読み込まれたブートファームウエアＭ１の構成の具体例を示している。図３において、図１と同様の部分には、同じ符号が付されている。
【００６３】
制御装置１内に備えられた不揮発性メモリＮＭには、自己診断ファームウエア（ＰＯＳＴ）ＮＭ１、ブートファーストウエアの圧縮データＮＭ３、ハードウエア構成情報ＮＭ４が格納されているが、これらは、従来技術の情報処理システムの不揮発性メモリＮＭにおいても、用意されているものである。従来のものにおける不揮発性メモリＮＭに格納されていたブートファームウエア環境変数ＮＭ２の変わりに、図３のブートファームウエア環境変数ＮＭ２１には、環境情報として、第１変数「ｂｏｏｔ−ｄｅｖｉｃｅ」、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ  」が用意されている。
【００６４】
一方、ブートファームウエアＭ１は、従来技術によるブートファームウエアＭ１の構成と同様であり、初期化処理部Ｍ１１、トラップ処理部Ｍ１２、メモリ処理部Ｍ１３、モニタ処理部Ｍ１４、各種ライブラリ部Ｍ１５、クライアントサービス処理部Ｍ１６、ブート処理部Ｍ１７、そしてドライバ処理部Ｍ１８のモジュールから構成される。これらのモジュール構成を有するブートファームウエアＭ１は、システムの自己診断完了後において、ブートファームウエアのデータＮＭ３からメインメモリＭ内に読み込まれ、圧縮されて保存されていたものを伸張されて展開される。ブートファームウエアＭ１は、メインメモリＭ上で動作する。これらの各部は、次のようである。
【００６５】
初期化処理部Ｍ１１は、ブートファームウエアＭ１の各モジュールの初期化を行う。不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１に格納された環境情報において、初期化の必要なものは、ここで初期化される。
【００６６】
トラップ処理部Ｍ１２は、ブートファームウエアＭ１の動作環境で発生するトラップの処理を実行する。トラップ処理のなかには、ハードウエアの障害が原因で発生するものもあれば、メモリ管理ユニット（ＭＭＵ）におけるミス処理のように、通常処理の一部として発生するものもある。また、ＯＳのブート処理の過程で、メインメモリＭ上に展開されて動作するブート・ブロック・プログラムＭ２、ＯＳローダＭ３は、トラップベクタがブートファームウエアＭ１の環境で動作するため、それらの動作時に発生するトラップの処理も、トラップ処理部Ｍ１２が行う。また、メインメモリＭに展開されたＯＳＭ４についても、初期のトラップベクタ変更前までのトラップ処理は、トラップ処理部Ｍ１２によって行われる。
【００６７】
メモリ管理部Ｍ１３は、不揮発性メモリＮＭのハードウエア構成情報ＮＭ４で通知された物理メモリの構成から論理アドレスの割り当てを行う。また、ＭＭＵのミス処理に伴う動的なメモリの割り当てを行う。また、物理メモリ、論理メモリの動的な獲得／解放処理を行う。
【００６８】
モニタ処理部Ｍ１４は、ブートファームウエアＭ１のマン・マシン・インタフェースであるコマンド入力画面をサポートし、各種ライブラリ部Ｍ１５は、いろいろなサポートモジュールである。
【００６９】
クライアントサービス処理部Ｍ１６は、メインメモリＭ上に展開されたブート・ブロック・プログラムＭ２や、ＯＳローダＭ３や、ＯＳＭ４などのクライアント・プログラムに対する動的なメモリ空間の割り当てや、ディスク装置へのアクセスなどのサービスを提供するインタフェースの役割を有している。各クライアント・プログラムは、クライアントサービス処理部Ｍ１６を通して、ブートファームウエアＭ１の有する機能を利用することができる。この機能を利用して、ブート対象ディスク装置に格納されているブート・ブロック・プログラム、ＯＳローダ、ＯＳを読み出し、ブート処理が可能になる。
【００７０】
ブート処理部Ｍ１７は、ブート処理をサポートするモジュールである。不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１に格納された環境情報の値に応じて、ブート対象ディスク装置を決定し、ブート対象ディスク装置の先頭ブロックに格納されているブート・ブロック・プログラムをメインメモリＭに展開し、制御を渡す機能を持つ。本実施形態の特徴であるステップＳ１０４の処理を行うモジュールである。
【００７１】
ドライバ処理部Ｍ１８は、ブートファームウエアＭ１がサポートするＩ／Ｏを制御するものである。これには、ディスクドライバやＳＣＳＩドライバ、コンソールドライバなどが含まれる。
【００７２】
以上のような各種モジュールからなるブートファームウエアＭ１がメインメモリＭ上での動作について、図４の処理フローを参照して説明する。
【００７３】
先ず、システムは、電源投入直後又はリブートリセット直後は（ステップＳ２０１）、不揮発性メモリであるフラッシュメモリに書き込まれた自己診断ファームウエア（ＰＯＳＴ）を起動する（ステップＳ２０２）。
【００７４】
自己診断ファームウエアＮＭ１は、システムが正常に立ち上がることを保証するためのハードウエア診断を実行する。そして、診断の結果として、ハードウエアの構成情報を作成し（ステップＳ２０３）、不揮発性メモリＮＭのハードウエア構成情報ＮＭ４に記録する（ステップＳ２０４）。この構成情報は、その後のブートファームウエアＭ１でのハードウエア構成認識に使用される。
【００７５】
ブートファームウエアＭ１は、自己診断ファームウエアＮＭ１によるハードウエア診断の後で、メインメモリＭを診断した後で起動するプログラムであるため、メインメモリＭ上で動作することができる。ブートファームウエアＭ１のバイナリデータは、通常は、システム内のフラッシュメモリに圧縮された形式で格納されており、ＰＯＳＴの診断後に、ＰＯＳＴによりメインメモリＭ上に伸張して展開される（ステップＳ２０５）。或いは、ブートファームウエアＭ１のデータについては、システム内のフラッシュメモリに格納せず、外部からＰＯＳＴにより圧縮されたデータをメインメモリＭ上に伸張してダウンロードするようにしてもよい。
【００７６】
そして、図２に示されたステップＳ１０３の処理と同様に、ブートファームウエアＭ１の各モジュールＭ１１乃至Ｍ１８の初期化を実行し、さらに、初期化処理部Ｍ１１が、ハードウエア構成情報ＮＭ４に従って、ブートファームウエア環境変数ＮＭ２１に従う初期化を実行する（ステップＳ２０６）。
【００７７】
ブート処理部Ｍ１７が、ブートファームウエア環境変数ＮＭ２１の環境情報に従って、ブート対象ディスク装置を決定する（ステップＳ２０７）。そこで、ブート処理部Ｍ１７は、決定したブート対象のディスク装置にアクセスし、当該ディスク装置の先頭ブロックに格納されているブート・ブロック・プログラムを読み出し、メインメモリＭ上に展開する（ステップＳ２０８）。ブート・ブロック・プログラムＭ２は、ＯＳローダをメインメモリに展開して制御を渡す機能を持つ。
【００７８】
次いで、メインメモリＭ上に読み込まれたブート・ブロック・プログラムＭ２は、クライアントサービス処理部Ｍ１６の機能を利用して、ブート対象ディスク装置の先頭にあるブート・ブロック・プログラムの次に格納されているＯＳローダを読み出し、メインメモリＭ上に展開する（ステップＳ２０９）。ＯＳローダＭ３は、ＯＳのファイルシステムを解釈できる機能を持ち、ブート対象ディスク装置に格納されたＯＳプログラムをメインメモリに展開して制御を渡す機能を持つ。
【００７９】
さらに、メインメモリＭ上に読み込まれたＯＳローダＭ３は、クライアントサービス処理部Ｍ１６の機能を利用して、ブート対象ディスク装置に格納されたＯＳローダの次のＯＳ読み出し、メインメモリＭ上に展開する（ステップＳ２１０）。この処理は、図２に示した処理フローのステップＳ１０８と同様であり、ステップＳ２１０以降の処理は、ステップＳ１０９以降の処理に同じである。
【００８０】
以上では、本実施形態の情報処理システムにおけるブートファームウエアＭ５の詳細構成と、ブートファームウエアＭ５によるブート対象ディスク装置の切り換え処理の手順について説明したが、次に、図５のフローチャートを参照して、本実施形態の情報処理システムにおける制御装置１内のメインメモリＭに、ブート対象のディスク装置に格納されているシステムソフトウエアが読み出されて展開された以降におけるディスク装置の切り換え処理について、説明する。
【００８１】
先ず、メインメモリＭ上に読み込まれたシステムソフトウエアＭ５が、ステップＳ１１０で説明されたように、初期化処理されて起動される（ステップＳ３０１）。
【００８２】
次いで、システムソフトウエアＭ５は、不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１を調べ、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」が存在するかチェックする（ステップＳ３０２）。
【００８３】
ここで、本実施形態を実施する以前の、従来技術の情報処理システムの構成によるブートファームウエアＭ５でブート処理を実行した場合には、図７で示したように、ブートファームウエア環境変数ＮＭ２には、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」は、存在していないので（ステップＳ３０２のＮ）、図７で示した従来技術のシステム構成の範囲内で動作するため、直ちに、ＯＳの通常運用処理に移行する（ステップＳ３０５）。
【００８４】
本実施形態を実施している場合には、ステップＳ３０２の処理において、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」が存在し（Ｙ）、現在ブート対象ディスク装置の冗長運用機能が設定されているかどうか確認する（ステップＳ３０３）。システムソフトウエアＭ５は、ブート対象ディスク装置を冗長運用することにより信頼性を高めるソフトウエアであるが、設定によりこの機能を無効にする場合が有り得るので、現在の設定を、ここで確認する。
【００８５】
ステップＳ３０３における冗長運用機能に係る設定の確認により、システムソフトウエアＭ５がブート対象ディスク装置を冗長運用するように設定されていた場合には（Ｙ）、ブートファームウエア環境変数ＮＭ２１の第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」に値「ｔｒｕｅ」を設定する（ステップＳ３０６）。この第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」  は、最初のディフォルトの状態では、値「ｆａｌｓｅ」に設定されている。この場合には、ブートファームウエアＭ１での強制ディスク切り換え機能は働かない。
【００８６】
しかし、一度、値が「ｔｒｕｅ」に設定されると、この第３変数は不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１に記録されているため、誰かが意図的に変更しなければ、その値は変わらない。もし、システムソフトウエアＭ５がインストールされていないときに、第３変数に「ｔｒｕｅ」が設定されてしまうと、ブートファームウエアＭ１によるブート時に、強制的にブート対象ディスク装置を切り換えても、もとに戻すものがなくなってしまう。そのため、リブート処理に失敗することとなる。それを避けるため、第３変数の値を「ｔｒｕｅ」にする設定は、システムソフトウエアＭ５で行うようになっている。
【００８７】
システムソフトウエアＭ５がインストールされ、運用されているときには、一度、第３変数の値が「ｔｒｕｅ」に設定されると、第３変数の値は、不揮発性メモリＮＭのブートファームウエア環境変数ＮＭ２１に保持されるため、冗長運用の機能が有効となる。なお、この処理フローでは、システムソフトウエアＭ５の起動処理で、ブート対象ディスク装置の冗長運用状態をチェックして、必ず、第３変数を変更するとしているが、ここでは、変更を行わずに、システムソフトウエアＭ５のインストール時に設定するようにし、或いは、通常動作状態に入ってから、システムソフトウエアＭ５のメニューから、冗長運用状態をチェックし、設定してもいい。システムソフトウエアＭ５が、唯一、第３変数の値を「ｔｒｕｅ」に設定するということが重要である。
【００８８】
ステップＳ３０３における確認処理により、システムソフトウエアＭ５は、ブート対象ディスク装置が冗長運用するように設定されていなかった場合には（Ｎ）、ブートファームウエア環境変数ＮＭ２１の第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」  に値「ｆａｌｓｅ」  を設定する（ステップＳ３０４）。
【００８９】
次に、ブートファームウエア環境変数ＮＭ２１の第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」が０かどうかを調べる（ステップＳ３０７）。図面２でのフローで示したように、第２変数の値が０というのは、ブートファームウエアＭ１の動作時に、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」の値が「ｆａｌｓｅ」であった場合だけである。ブートファームウエアＭ１の動作時に、第３変数「ｂｏｏｔ−ｄｉｓｋ−ｕｎｉｔ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」の値が「ｔｒｕｅ」であった場合には、ブート処理の実行で、必ず、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値は更新（インクリメント）されている。従って、第２変数の値が０の場合には（ステップＳ３０７のＹ）、本実施形態による切り換え機能は有効となっていないので、直ちに、通常運用に移行する（ステップＳ３０５）。
【００９０】
一方、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値が０でない場合は（ステップＳ３０７のＮ）、ブートファームウエアＭ１の動作時に、第３変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ−ａｖａｉｌａｂｌｅ」の値が「ｔｒｕｅ」であったことを示している。この場合に、第１変数「ｂｏｏｔ−ｄｅｖｉｃｅ」の設定をチェックし（ステップＳ３０８）、実際にブート処理が実施されたディスク装置が、主系のものであるか従系のものであるかをチェックする（ステップＳ３０９）。
【００９１】
一般には、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値が１の場合には、主系で立ち上がっており、２以上の場合には、従系で立ち上がっていることを示している。システムの設定によっては、第１変数「ｂｏｏｔ−ｄｅｖｉｃｅ」への設定で、同一のディスク装置を別名で複数設定する場合もある。その場合は、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値が２でも、主系の装置を示している場合もある。ここでは、そのような状態も考慮して確認する。
【００９２】
ステップＳ３０９の処理における確認の結果、ブートしたディスク装置が主系でないと認識できた場合には（Ｎ）、主系のディスク装置の起動で、何らかの異常が発生しているため、それを通知する警告メッセージを表示する（ステップＳ３１０）。
【００９３】
ブート起動した装置が主系であろうと従系であろうと、システムソフトウエアＭ５が正常に起動したことを示し、次回のリブート処理では、再度、正常にブート処理が実行できるように、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値を０クリアして（ステップＳ３１１）、通常運用に移行する（ステップＳ３０５）。なお、ここでは、０クリアとしているが、デクリメントして、最後にブートが成功した装置を示すようにしてもよい。
【００９４】
ステップＳ３０５において、通常運用に移行するが、通常運用の処理中に、ディスク装置の異常が検出された場合には、システムソフトウエアＭ５により、ブート対象ディスク装置が切り離され、次回のブートでも、ブート対象ディスク装置を切り換えるために、システムソフトウエアＭ５が、環境情報の第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値を、直接書き換える。この処理は、従来技術の場合と同様である。なお、このときに、ステップＳ３１１において、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値を０クリアせずに、デクリメントしていた場合には、第１変数「ｂｏｏｔ−ｄｅｖｉｃｅ」の変更に合わせて、第２変数「ｂｏｏｔ−ｄｅｖｉｃｅ−ｉｎｄｅｘ」の値も書き換えるか、或いは、０クリアすることになる。
【００９５】
以上のように、本実施形態による情報処理システムによれば、オペレーティングシステムを格納したシステムディスク装置であるブート対象とできるデバイス装置を２重化し、運用時のシステムディスク装置のアクセスで発生するハードエラーに対して冗長性を持たせて信頼性を向上できたコンピュータシステムとすることができ、ブートファームウエアと、ディスク装置の２重化処理のためのシステムソフトウエアとを連携させることにより、主系のブート対象デバイス装置に格納されたシステムソフトウエアが起動できなかった場合に、次回のブートファームウエアによるブート処理において、ブート対象デバイス装置を強制的に従系のブートデバイス装置に切り換えることにより、従系のブートデバイス装置からのシステムソフトウエアの起動を可能とすることができた。
【００９６】
以下に、本発明による情報処理システムに関する実施態様を示す。
（付記１）
多重化された複数の装置から選択して読み出されたオペレーションシステムが起動されてシステムが立ち上げられる情報処理システムにおいて、
前記複数の装置からブート対象を設定する環境情報を格納する格納手段と、
前記環境情報の設定に基づいてブート対象装置を決定し、該ブート対象装置に格納された前記オペレーションシステムを起動させるブート制御手段と、
前記複数の装置の多重化制御を実施する制御手段と、を有し、
前記制御手段は、前記ブート対象装置に異常が検出されたとき、前記環境情報の設定を変更して、他の前記装置に切り換え制御することを特徴とする情報処理システム。
（付記２）
前記環境情報は、
前記複数の装置についてブート対象候補とする装置設定情報を含む第１変数情報と、
前記装置設定情報に基づいてブート対象装置を指定するインデックス情報を含む第２変数情報と、
前記多重化が有効か否かの２値が設定される第３変数情報と、
を含むことを特徴とする付記１に記載の情報処理システム。
（付記３）
前記ブート制御手段は、システムの電源投入時において、前記インデックス情報を初期値にクリアし、前記装置設定情報に最初に設定された前記装置をブート対象として選択することを特徴とする付記２に記載の情報処理システム。
（付記４）
前記ブート制御手段は、第３変数情報に有効が設定されている場合に、前記インデックス情報により指定されたブート対象装置を選択し、否が設定されている場合には、前記装置設定情報において最初に設定された装置をブート対象として選定することを特徴とする付記２に記載の情報処理システム。
（付記５）
前記ブート制御手段は、第３変数情報に有効が設定されている場合に、前記インデックス情報におけるインデックスを更新することを特徴とする付記４に記載の情報処理システム。
（付記６）
前記ブート制御手段は、前記環境情報に設定されたブート対象装置を選定し、該ブート対象装置に格納されている前記オペレーションシステムを読み込み、起動させることを特徴とする付記２乃至５のいずれか一項に記載の情報処理システム。
（付記７）
前記制御手段は、第３変数情報に有効が設定され、前記インデックス情報が初期値ではない場合には、第１変数情報における設定を参照して、従系のブート対象装置で立ち上がっていることを認識することを特徴とする付記２に記載の情報処理システム。
（付記８）
前記制御手段は、従系のブート対象装置で立ち上がっていることを認識した場合には、主系の前記装置に異常が発生していることを示す警告メッセージを通知することを特徴とする付記７に記載の情報処理システム。
（付記９）
前記制御手段は、第３変数情報が存在し、第２変数情報が０でない場合には、第２変数情報を初期値にクリアすることを特徴とする付記７又は８に記載の情報処理システム。
（付記１０）
前記制御手段は、第３変数情報が前記格納手段内に存在する場合であって、前記複数の装置に関して冗長運用の設定がないときには、第３変数情報を否に設定することを特徴とする付記２に記載の情報処理システム。
（付記１１）
前記制御手段は、第３変数情報が前記格納手段内に存在するかどうかに関係なく、前記ブート対象装置に異常の発生を検出したとき、当該ブート対象装置を切り離し、第１変数情報の前記ブート対象候補とする装置の設定情報を書き換えることを特徴とする付記２に記載の情報処理システム。
（付記１２）
前記格納手段は、不揮発性メモリであり、前記ブート制御手段及び前記制御手段によって、該格納手段に格納された第２変数情報及び第３変数情報における設定が書き換えられることを特徴とする付記２に記載の情報処理システム。
（付記１３）
前記ブート制御手段は、前記格納手段に格納されたブートファームウエアによってブート処理を実行することを特徴とする付記１又は２に記載の情報処理システム。
（付記１４）
前記制御手段は、前記ブート対象装置に格納されたシステムソフトウエアが読み込まれ、多重化制御を実行することを特徴とする付記１又は２に記載の情報処理システム。
【００９７】
【発明の効果】
以上のように、本発明の情報処理システムでは、ブート対象装置であるシステムディスク装置を多重にして備え冗長化を向上させるシステムにおいて、多重化を制御するシステムソフトウエアが起動する前に、ブートファームウエアによって選択された主系のシステムディスク装置で異常が発生した場合でも、ブート対象装置を従系のシステムディスク装置に切り換えて運用することが可能となる。
【００９８】
また、ブート対象装置の多重化制御をするシステムソフトウエアは、ブート対象装置内に格納されたＯＳが起動した後に、ＯＳ配下で動作するソフトウエアであり、ＯＳ自体は、ブートローダにより起動される。本発明の情報処理システムでは、システムの不揮発性メモリに格納されるブートファームウエア環境情報の設定の仕方を工夫することによって、多重化を制御するシステムソフトウエアが起動する前に、主系のシステムディスク装置で異常が発生した場合でも、ブート対象装置を従系のシステムディスク装置に切り換えられるようにした。そのため、特に、ＯＳやブートローダの変更が許されない場合でも、このＯＳとブートローダには、一切変更を加えないで、ブート対象装置の切り換えが実現できた。
【図面の簡単な説明】
【図１】２重化されたブート対象デバイスを有する本実施形態による情報処理システムに係る主要部の概略ブロック構成を説明する図である。
【図２】本実施形態の情報処理システムのシステム起動時における処理手順を説明するフロー図である。
【図３】本実施形態による情報処理システムのシステム起動時におけるメインメモリへのブートファームウエアの展開を説明する図である。
【図４】本実施形態の情報処理システムのシステム起動時におけるブートファームウエアによる処理手順を説明するフロー図である。
【図５】本実施形態の情報処理システムのシステム起動時におけるシステムソフトウエアによる処理手順を説明するフローチャートである。
【図６】従来技術による情報処理システムの概略ブロック構成を説明する図である。
【図７】２重化されたブート対象デバイスを有する従来技術による情報処理システムに係る主要部の概略ブロック構成を説明する図である。
【符号の説明】
１…制御装置
２…制御部
３…不揮発性メモリ
４…メインメモリ
５…周辺装置
Ｄ１、Ｄ２…ディスク装置
【図１】
2004326409.tif 000003
【図２】
2004326409.tif 000004
【図３】
2004326409.tif 000005
【図４】
2004326409.tif 000006
【図５】
2004326409.tif 000007
【図６】
2004326409.tif 000008
【図７】
2004326409.tif 000009