(57)【要約】【課題】系切替機能を持つ計算機システムは、現用系計算機と待機系計算機に接続されているI/Oの位置情報が異なる場合、現用系から待機系に切り替えたとき、動作不能になるという問題を解決する。【解決手段】各計算機に、OSレベルで認識できるI/Oの仮想的な位置情報を物理的な位置情報に変換するための手段を設ける。管理計算機は、現用系計算機のもつI/Oの仮想位置情報又は変換テーブルを待機系計算機に引き継ぐ。【選択図】図１
2010146087.tif 000002
【特許請求の範囲】
【請求項１】
現用系計算機と、待機系計算機と、前記現用系計算機の監視を行い、現用系計算機の障害を検出した場合には計算機稼働を前記待機系計算機に切り替える管理計算機とを備える系切替計算機システムの管理方法において、
前記現用系計算機は、I/Oの仮想位置情報を含むOSが認識するためのI/Oの構成情報を記憶手段に格納する仮想I/O構成情報を有し、前記仮想I/O構成情報に含まれる前記仮想位置情報に対応する物理位置情報を取得し、前記仮想位置情報をI/Oの物理位置情報に変換するためのI/O構成情報変換テーブルを作成し、I/Oにアクセスする際に、前記I/O構成情報変換テーブルを参照して前記仮想位置情報を対応する前記物理位置情報に変換し、
前記管理計算機は、前記現用系計算機から前記仮想I/O構成情報を受け取り前記待機系計算機へ送るとともに、前記現用系計算機の障害を検出したとき、前記待機系計算機の電源を投入し、
前記待機系計算機は、前記管理計算機からの起動要求を受けて当該計算機を起動し、受け取った仮想I/O構成情報から前記の手順により前記I/O構成情報変換テーブルを作成し、作成されたI/O構成情報変換テーブルの参照を含む前記の変換処理を引き継ぐことを特徴とする系切替計算機システムの管理方法。
【請求項２】
現用系計算機と、待機系計算機と、前記現用系計算機の監視を行い、現用系計算機の障害を検出した場合には計算機稼働を前記待機系計算機に切り替える管理計算機とを備える系切替計算機システムの管理方法において、
前記現用系計算機は、I/Oの仮想位置情報を含むOSが認識するためのI/Oの構成情報を記憶手段に格納する仮想I/O構成情報を有し、前記仮想I/O構成情報に含まれる前記仮想位置情報に対応する物理位置情報を取得し、前記仮想位置情報をI/Oの物理位置情報に変換するためのI/O構成情報変換テーブルを作成し、I/Oにアクセスする際に、前記I/O構成情報変換テーブルを参照して前記仮想位置情報を対応する前記物理位置情報に変換し、
前記管理計算機は、前記現用系計算機から前記I/O構成情報変換テーブルを受け取り前記待機系計算機へ送るとともに、前記現用系計算機の障害を検出したとき、前記待機系計算機を起動し、
前記待機系計算機は、前記管理計算機からの起動要求を受けて当該計算機を起動し、前記管理計算機から受け取った前記I/O構成情報変換テーブルの参照を含む前記の変換処理を引き継ぐことを特徴とする系切替計算機システムの管理方法。
【請求項３】
前記仮想位置情報及び前記物理位置情報は、各々各I/Oのバス番号、デバイス番号およびファンクション番号を含むことを特徴とする請求項１または請求項２記載の系切替計算機システムの管理方法。
【請求項４】
前記現用系計算機と前記待機系計算機の各々は、通常の計算機起動か系切替時の計算機起動かを区別するためのフラグを記憶手段上に有し、
前記現用系計算機と前記待機系計算機の各々は、前記フラグが通常の計算機起動を示しているときには、I/Oの物理的な構成情報を記憶手段に格納する物理I/O構成情報から同一内容の前記仮想I/O構成情報を作成し、作成された仮想I/O構成情報から対応する前記I/O構成情報変換テーブルを作成し、
前記待機系計算機は、前記フラグが系切替時の計算機起動を示しているときには、前記管理計算機から受け取った仮想I/O構成情報から対応する前記I/O構成情報変換テーブルを作成することを特徴とする請求項１記載の系切替計算機システムの管理方法。
【請求項５】
前記現用系計算機と前記待機系計算機の各々は、通常の計算機起動か系切替時の計算機起動かを区別するためのフラグを記憶手段上に有し、
前記現用系計算機と前記待機系計算機の各々は、前記フラグが通常の計算機起動を示しているときには、I/Oの物理的な構成情報を記憶手段に格納する物理I/O構成情報から同一内容の前記仮想I/O構成情報を作成し、作成された仮想I/O構成情報から対応する前記I/O構成情報変換テーブルを作成し、
前記待機系計算機は、前記フラグが系切替時の計算機起動を示しているときには、前記管理計算機から受け取った前記I/O構成情報変換テーブルの参照を含む前記の変換処理を引き継ぐことを特徴とする請求項２記載の系切替計算機システムの管理方法。
【請求項６】
前記管理計算機は、前記現用系計算機と前記待機系計算機の各々について、障害の有無を記憶する系管理テーブルを有し、前記現用系計算機と前記待機系計算機の各々が障害なし、障害あり、復旧により障害なしに応じて前記系管理テーブルの前記障害の有無の状態を更新することを特徴とする請求項１または請求項２記載の系切替計算機システムの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、系切替機能を有する計算機システムに関する。
【背景技術】
【０００２】
現代社会において、計算機システムは欠かせないものとなっている。銀行のATMシステムなどの２４時間連続稼動を想定している計算機システムでは、障害が発生した場合には、速やかに業務を再開する必要がある。
【０００３】
従来技術として、業務を処理する現用系計算機に障害が発生したら、待機系計算機に業務を引き継がせることにより、業務を再開するまでの時間を短くする系切替技術がある。系切替技術は特許文献１に開示されている。
【０００４】
また、非特許文献１によると、パーソナルコンピュータやサーバ分野の計算機のI/Oを接続するインターフェースとしては、PCIバスが一般に普及している。I/Oは計算機の持つPCIスロットに接続して使用される。計算機で動作するソフトウェアは、各I/Oに対して、I/Oが接続されたPCIスロットと１対１に対応する位置情報を割り当て、I/Oを管理している。
【０００５】
【特許文献１】特開２００７−９４６１１号公報
【非特許文献１】「改訂新版PCIバス＆PCI-Xバスの徹底研究」、CQ出版株式会社、２００４年発行
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のOSが格納されたストレージ装置を共有する系切替システムは、現用系計算機と待機系計算機に接続されているI/Oの位置情報を同じにする必要がある。
【０００７】
I/Oの位置情報が異なる場合、待機系計算機でOSが起動する際に、OSが格納されたストレージ装置に接続されているI/Oの位置情報が現用系計算機と待機系計算機とで一致しないため、OSが起動しない等の問題が発生するからである。
【０００８】
そのため、異なるI/Oの位置情報を持つ現用計算機が複数存在する場合には、異なるI/Oの位置情報を持つ現用系計算機ごとに待機系計算機を用意することになり、待機系計算機の導入コストが高くなるという問題がある。
【０００９】
本発明の目的は、上記課題を解決し、I/Oの位置情報やI/Oの数が異なる現用系計算機が複数存在する場合でも、異なるI/Oの位置情報や数を持つ現用系計算機ごとに待機系計算機を用意せずに済む系切替制御方式を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は、現用系計算機と、待機系計算機と、現用系計算機の監視を行い、現用系計算機の障害を検出した場合には計算機稼働を待機系計算機に切り替える管理計算機とを備える系切替計算機システムの管理技術において、現用系計算機は、I/Oの仮想位置情報を含むOSが認識するためのI/Oの構成情報を記憶手段に格納する仮想I/O構成情報を有し、仮想I/O構成情報に含まれる仮想位置情報に対応する物理位置情報を取得し、仮想位置情報をI/Oの物理位置情報に変換するためのI/O構成情報変換テーブルを作成し、I/Oにアクセスする際に、I/O構成情報変換テーブルを参照して仮想位置情報を対応する物理位置情報に変換し、管理計算機は、現用系計算機から仮想I/O構成情報を受け取り待機系計算機へ送るとともに、現用系計算機の障害を検出したとき、待機系計算機の電源を投入し、待機系計算機は、管理計算機からの起動要求を受けて当該計算機を起動し、受け取った仮想I/O構成情報から前記の手順によりI/O構成情報変換テーブルを作成し、作成されたI/O構成情報変換テーブルの参照を含む前記の変換処理を引き継ぐ系切替計算機システムの管理技術を特徴とする。
【００１１】
なお管理計算機が現用系計算機からI/O構成情報変換テーブルを受け取り、I/O構成情報変換テーブルの段階で待機系計算機に引き継いでもよい。
【発明の効果】
【００１２】
本発明は、異なるI/Oの位置情報、種類情報、数を持つ現用系計算機ごとに待機系計算機を用意することなく系切替システムを成立させることで、待機系計算機の導入コストを減らすことができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための実施例について図面に基づいて詳細に説明する。
【００１４】
図１は、本実施例の計算機システムのブロック図である。図１において、管理計算機３００は、メモリ３１０とCPU３２０とディスク制御部３３０と記憶装置３４０を備え、他の計算機と通信を行う通信制御部３５０を備える。メモリ３１０は、系管理命令列３１１、系管理テーブル操作命令列３１２、系管理テーブル３１３、I/O構成情報変換テーブル操作命令列３１４、I/O構成情報管理テーブル３１５、および仮想I/O構成情報１１７を格納している。I/O構成情報管理テーブル３１５は、I/O構成情報変換テーブル１２１を含んでいる。なお管理計算機３００は、図示しない表示装置を備えている。
【００１５】
１つまたは複数で構成される現用系計算機１００及び待機系計算機２００は、不揮発性メモリ１１０、メモリ１２０、CPU１３０、ストレージ装置４００にアクセスするためのディスク制御部１４０、および他の計算機と通信を行う通信制御部１５０を備える。
【００１６】
不揮発性メモリ１１０は、PCI BIOS１１２とI/O構成情報変換テーブル生成命令列１１３を備えたBIOS１１１、ブートパス情報１１４、電源投入状態フラグ１１５、物理I/O構成情報１１６、および仮想I/O構成情報１１７を格納している。PCI BIOS１１２は、I/O情報変換命令列１１８を含む。
【００１７】
メモリ１２０は、I/O構成情報変換テーブル１２１とハートビート応答命令列１２２を格納している。
【００１８】
通信制御部１５０は、電源制御部１５１を備えている。
【００１９】
電源投入状態フラグ１１５は、どのような状態で電源を投入したかを示す。通常の電源投入ならば「０」を格納し、系切替による電源投入ならば、「０」以外のコードを格納する。
【００２０】
ストレージ装置４００は、１つまたは複数のディスクドライブを備え、現用系計算機１００と待機系計算機２００からアクセス可能な記憶領域としてボリューム４１０が設定される。
【００２１】
ボリューム４１０は、ブートローダ４１１、OS（オペレーティングシステム）４１２、およびアプリケーション４１３を格納している。
【００２２】
図２は、系管理テーブル３１３の一実施例を示している。系管理テーブル３１３は、テーブル番号５００、コンピュータ識別子５０１、系の種類５０２、障害状態５０３、および稼動状態５０４の列で構成されている。コンピュータ識別子５０１は、現用系計算機１００、待機系計算機２００と管理計算機３００とを接続する通信回線上でその計算機を識別するIPアドレスによって指定される。
【００２３】
図３と図４は、物理I/O構成情報１１６の一実施例を示している。物理I/O構成情報１１６は、計算機に物理的に接続されたI/Oの構成情報であり、テーブル番号６００、１６００と、バス番号６０１、１６０１と、デバイス番号６０２、１６０２と、ファンクション番号６０３、１６０３と、ベンダID６０４、１６０４と、デバイスID６０５、１６０５と、クラスコード６０６、１６０６の列で構成されている。ここで各テーブルとは、物理I/O構成情報１１６の１行を指し、各I/Oデバイスに関する構成情報を格納する。本実施例では、第１行目のI/Oデバイスはディスク制御部１４０を指し、第２行目のI/Oデバイスは通信制御部１５０を指し、第３行目のI/Oデバイスは２番目のディスク制御部１４０を指す。ファンクション番号６０３は、１つのデバイスが複数のポートをもつ場合にそれらを識別するための番号である。待機系計算機２００は、現用系計算機１００のもつI/Oをすべて包含するものとする。
【００２４】
図５は、仮想I/O構成情報１１７の一実施例を示している。仮想I/O構成情報１１７は、各OSによって認識されるI/Oの構成情報であり、テーブル番号７００、バス番号７０１、デバイス番号７０２、ファンクション番号７０３、ベンダID７０４、デバイスID７０５、およびクラスコード７０６の列で構成されている。
【００２５】
図６と図７は、現用系計算機１００と待機系計算機２００の持つ物理I/O構成情報１１６と仮想I/O構成情報１１７を元に作成されるI/O構成情報変換テーブル１２１の一実施例である。I/O構成情報変換テーブル１２１は、仮想I/O構成情報１１７の内容を包含している。I/O構成情報変換テーブル１２１は、PCI BIOS１１２によって参照されるテーブルであり、テーブル番号８００、１７００と、バス番号８０１、１７０１と、デバイス番号８０２、１７０２と、ファンクション番号８０３、１７０３と、ベンダID８０４、１７０４と、デバイスID８０５、１７０５と、クラスコード８０６、１７０６と、変換先番号８０７、１７０７の列で構成されている。
【００２６】
以上の情報の中で、バス番号６０１、７０１、８０１、１６０１、１７０１とデバイス番号６０２、７０２、８０２、１６０２、１７０２とファンクション番号６０３、７０３、８０３、１６０３、１７０３の列は、I/Oの位置情報を示している。
【００２７】
ベンダID６０４、７０４、８０４、１６０４、１７０４の列は、I/Oの製造会社情報を格納する。デバイスID６０５、７０５、８０５、１６０５、１７０５の列は、I/Oの識別情報を格納する。クラスコード６０６、７０６、８０６、１６０６、１７０６の列は、I/Oの種類を格納する。変換先番号８０７、１７０７は、各行のI/Oの位置情報に対応する物理I/O構成情報１１６のテーブル番号を格納する。
【００２８】
なお通常の電源投入によって作成されるI/O構成情報変換テーブル１２１−２は、物理I/O構成情報１１６−２の通り３行で構成されるが、系切替後のI/O構成情報変換テーブル１２１−２は、I/O構成情報変換テーブル１２１−１を引き継ぐため、図７に示すようにI/O構成情報変換テーブル１２１−１と同じテーブルに変更される。
【００２９】
図８は、管理計算機３００の持つI/O構成情報管理テーブル３１５の一実施例である。I/O構成情報管理テーブル３１５は、引継元と引継先の計算機の組合せによって使用するI/O構成情報変換テーブル１２１を参照するためのテーブルであり、テーブル番号１８００、引継元のコンピュータ識別子１８０１、引継先のコンピュータ識別子１８０２、I/O構成情報変換テーブル１８０３の列で構成されている。引継元のコンピュータ識別子１８０１は現用系計算機のいずれか、引継先のコンピュータ識別子１８０２は待機系計算機を示す。I/O構成情報変換テーブル１８０３は、引継元計算機のI/O構成情報変換テーブル１２１を格納する。
【００３０】
図９は、I/O構成情報管理テーブル３１５を作成する管理計算機３００の処理手順を示すフローチャートである。
【００３１】
ステップ１５０１では、管理者により、現用系計算機１００と待機系計算機２００の電源が投入された後、管理計算機３００は、各計算機から物理I/O構成情報１１６を読み出し、表示装置上に表示する。
【００３２】
ステップ１５０２では、I/O構成情報変換テーブル操作命令列３１４は、I/O構成情報管理テーブル３１５を作成する。I/O構成情報変換テーブル操作命令列３１４は、管理者の指示により、引継元計算機と引継先計算機との組合せを各々IPアドレスにより作成し、I/O構成情報管理テーブル３１５の引継元のコンピュータ識別子１８０１と引継先のコンピュータ識別子１８０２に書き込む。次にI/O構成情報変換テーブル操作命令列３１４は、各引継元計算機からI/O構成情報変換テーブル１２１を読み出し、I/O構成情報管理テーブル３１５のI/O構成情報変換テーブル１８０３の対応する欄に書き込む。
【００３３】
管理者は、各計算機のI/O構成情報変換テーブル１２１とその物理I/O構成情報１１６とを比較し、必要に応じて引継元のI/O構成情報変換テーブル１２１に修正を加えるようにI/O構成情報変換テーブル操作命令列３１４に指示する。I/O構成情報変換テーブル操作命令列３１４は、修正後のI/O構成情報変換テーブル１２１をI/O構成情報変換テーブル１８０３に格納する。
【００３４】
例えば待機系計算機２００が現用系計算機１００の稼動を引き継いだとすると、引継後は待機系計算機２００は、引継元となり、別の引継先に引き継ぐことが起こり得る。元のI/O構成情報変換テーブル１２１−２は、３行で構成されているが、引継後のI/O構成情報変換テーブル１２１−２は、I/O構成情報変換テーブル１２１−１の通り２行で構成されているため、I/O構成情報変換テーブル１２１−２をI/O構成情報変換テーブル１２１−１に合わせて２行で構成する必要がある。このように、待機系計算機が「現用系」かつ「引継元」となった後も、この計算機に障害が発生した場合の引継先計算機についての対策をとる必要がある。
【００３５】
図１０は、現用系計算機１００および待機系計算機２００で実行されるハートビート応答命令列１２２の処理手順を示すフローチャートである。
【００３６】
ステップ９００では、ハートビート応答命令列１２２は、管理計算機３００からのハートビート信号を受信したかを判定する。受信していないならステップ９００へ戻り、受信したならステップ９０１へ進む。
【００３７】
ステップ９０１では、ハートビート応答命令列１２２は、管理計算機３００の通信制御部３５０にハートビート応答信号を送信し、ステップ９００へ戻る。
【００３８】
図１１〜図１３は、系管理命令列３１１の処理手順を示すフローチャートである。
ステップ１０００では、系管理命令列３１１は、系管理テーブル３１３を参照し、系の種類５０２が「現用系」となっている行のコンピュータ識別子５０１が示すIPアドレス、すなわち現用系計算機１００、にハートビートを送信する。
【００３９】
ステップ１００１では、タイマーをスタートする。
【００４０】
ステップ１００２では、系管理命令列３１１は、現用系計算機１００からのハートビート応答を受信できたかを判定する。受信できたなら、ステップ１０００へ戻り、受信できなかったなら、ステップ１００３へ進む。
【００４１】
ステップ１００３では、系管理命令列３１１は、タイマーが制限時間を超えたかどうかを判定する。制限時間を超えていないなら、ステップ１００２へ戻り、制限時間を超えたなら、ステップ１００４へ進む。
【００４２】
ステップ１００４では、系管理命令列３１１は、系管理テーブル３１３を参照し、系の種類５０２が「現用系」となっている行のコンピュータ識別子５０１が示すIPアドレスに現用系計算機の仮想I/O構成情報１１７を要求するためのパケットを送信する。
【００４３】
ステップ１００５では、系管理命令列３１１は、現用系計算機１００の仮想I/O構成情報１１７を受信できたかどうかを判定する。受信できていないなら、ステップ１００５へ戻る。受信できたなら、ステップ１００６へ進む。
【００４４】
なお現用系計算機の電源オン後のシーケンスで仮想I/O構成情報１１７が作成されるから、系管理命令列３１１がこの時点を検知し、現用系計算機が障害となる前にステップ１００４，１００５を実行して仮想I/O構成情報１１７を取得しておいてもよい。
【００４５】
図１２に移り、ステップ１００６では、系管理命令列３１１は、受信した仮想I/O構成情報１１７を管理計算機３００のメモリ３１０に格納する。
【００４６】
ステップ１００７では、系管理命令列３１１は、系管理テーブル３１３を参照し、系の種類５０２が「現用系」となっている行のコンピュータ識別子５０１が示すIPアドレスに電源切断を要求するためのパケットを送信する。電源切断要求の代わりに、現用系計算機の停止要求でもよい。
【００４７】
ステップ１００８では、系管理命令列３１１は、系管理テーブル３１３を参照し、電源切断の要求パケットの送信先IPアドレスがある行の障害状態５０３を「障害あり」、稼動状態５０４を「停止」という情報に変更する。
【００４８】
ステップ１００９では、系管理命令列３１１は、系管理テーブル３１３を参照し、障害状態５０３が「障害なし」で、系の種類５０２が「待機系」となっている行のコンピュータ識別子が示すIPアドレスを取得する。
【００４９】
ステップ１０１０では、系管理命令列３１１は、I/O構成情報管理テーブル３１５を参照して、引継元のコンピュータ識別子が、ステップ１００８で参照したIPアドレスであり、引継先のコンピュータ識別子がステップ１００９で参照したIPアドレスである行で指定されているI/O構成情報変換テーブル１８０３に設定されるI/O構成情報変換テーブル１２１を取得する。
【００５０】
ステップ１０１１では、系管理命令列３１１は、待機系へ送信する現用系のI/O構成情報変換テーブル１２１が格納されていたかどうかを判定し、格納されていなければ、ステップ１０１２へ進み、格納されていれば、ステップ１０１３へ進む。ステップ１５０２で、現用系のI/O構成情報変換テーブル１２１をI/O構成情報管理テーブル３１５に格納する処理が行なわれるが、I/O構成情報変換テーブル１２１の格納処理を実行できず、ステップ１０１１でI/O構成情報変換テーブル１２１が格納されていないことが生じ得る。
【００５１】
ステップ１０１２では、系管理命令列３１１は、ステップ１００９で取得した待機系のIPアドレスに管理計算機３００が保持する仮想I/O構成情報１１７を送信し、ステップ１０１４へ進む。待機系計算機２００は、この仮想I/O構成情報１１７を不揮発性メモリ１１０に格納する。
【００５２】
ステップ１０１３では、系管理命令列３１１は、ステップ１００９で取得した待機系のIPアドレスにステップ１０１０で取得したI/O構成情報変換テーブル１２１を送信し、ステップ１０１４へ進む。
【００５３】
図１３に移り、ステップ１０１４では、系管理命令列３１１は、系管理テーブル３１３を参照し、系の種類５０２が「待機系」となっている行のコンピュータ識別子５０１の示すIPアドレスに系切替による電源投入を要求するためのパケットを送信する。
【００５４】
待機系計算機は、図１４の初期手順を実行し、待機系計算機を起動する。このとき、系管理命令列３１１は、待機系計算機の電源投入状態フラグを０でない値に設定するよう要求する。
【００５５】
ステップ１０１５では、系管理命令列３１１は、系管理テーブル３１３の系の種類５０２が「待機系」となっている行の稼動状態５０４を「稼動」に変更する。
【００５６】
ステップ１０１６では、系管理命令列３１１は、ステップ１００８とステップ１００９で対象とした計算機それぞれについて、系管理テーブル３１３の系の種類５０２の「現用系」を「待機系」という情報に変更し、「待機系」を「現用系」という情報に変更し、ステップ１０００へ戻る。
【００５７】
系管理命令列３１１は、待機系計算機２００に対しても上記ステップ１０００〜１００３を実行する。待機系計算機２００の障害を検出したとき、系管理命令列３１１は、待機系計算機２００に対して上記ステップ１００７，１００８を実行する。
【００５８】
図１４は、現用系計算機と待機系計算機の電源投入又は計算機起動からサービス提供までの処理手順を示すフローチャートである。
【００５９】
ステップ１１０１では、計算機は、BIOS１１１のハードウェア初期化とハードウェア診断テスト処理を行う。
【００６０】
ステップ１１０２では、計算機は、I/O構成情報変換テーブル生成命令列１１３を呼び出して実行する。このステップは、本発明の特徴とするものである。
【００６１】
ステップ１１０３では、計算機は、ブートローダ４１１のカーネルロード処理を行う。ステップ１１０４では、計算機は、OS４１２の起動処理を行う。
【００６２】
ステップ１１０５では、計算機は、アプリケーション４１３の起動処理を行う。
【００６３】
図１５〜図１７は、現用系計算機１００および待機系計算機２００で実行されるI/O構成情報変換テーブル生成命令列１１３の処理手順を示すフローチャートである。
【００６４】
ステップ１２００では、I/O構成情報変換テーブル生成命令列１１３は、PCIバス空間のバス番号０〜２５５、デバイス番号０〜３１、ファンクション番号０〜７から1つずつ順に番号を選択する。
【００６５】
ステップ１２０１では、I/O構成情報変換テーブル生成命令列１１３は、全てのI/Oデバイス、すなわちバス番号、デバイス番号、ファンクション番号が選択されたかどうかを判定する。最後のI/Oデバイスの番号の組（２５５，３１，７）が選択されたとき、ステップ１２０１の選択完了となる。選択されていないなら、ステップ１２０２へ進み、選択されたなら、図１６のステップ１２０５へ進む。
【００６６】
ステップ１２０２では、I/O構成情報変換テーブル生成命令列１１３は、選択されたバス番号、デバイス番号、ファンクション番号、ベンダIDのオフセット番号を使って、選択されたI/Oデバイスのコンフィグレーションレジスタの内容を読み込む。
【００６７】
ステップ１２０３では、I/O構成情報変換テーブル生成命令列１１３は、ステップ１２０２でアクセスしたコンフィグレーションレジスタ値のベンダIDが「0xFFFF」かどうかを判定する。値「0xFFFF」は、I/Oデバイスが存在しないことを示す。「0xFFFF」であるなら、ステップ１２００へ戻り、「0xFFFF」でないなら、ステップ１２０４へ進む。
【００６８】
ステップ１２０４では、I/O構成情報変換テーブル生成命令列１１３は、選択されたI/Oデバイスの位置情報、すなわちバス番号、デバイス番号、ファンクション番号とコンフィグレーションレジスタ値のベンダID、デバイスID、クラスコードを物理I/O構成情報１１６に格納し、ステップ１２００へ戻る。
【００６９】
図１６に移り、ステップ１２０５では、I/O構成情報変換テーブル生成命令列１１３は、電源投入状態フラグ１１５が0かどうかを判定する。0であるなら、ステップ１２０６へ進み、0でないなら、ステップ１２１７へ進む。
【００７０】
ステップ１２１７では、I/O構成情報変換テーブル生成命令列１１３は、管理計算機３００からI/O構成情報変換テーブル１２１が送信されており、存在するかどうかを判定し、送信されていなければ、ステップ１２０７へ進み、送信されていれば、１２１３へ進む。
【００７１】
ステップ１２０６では、I/O構成情報変換テーブル生成命令列１１３は、物理I/O構成情報１１６と同じ内容の仮想I/O構成情報１１７を作成する。
【００７２】
ステップ１２０７では、I/O構成情報変換テーブル生成命令列１１３は、仮想I/O構成情報１１７から1行を選択する。
【００７３】
ステップ１２０８では、I/O構成情報変換テーブル生成命令列１１３は、仮想I/O構成情報１１７の行が全て選択されたかどうかを判定する。全ての行が選択されていないなら図１７のステップ１２０９へ進み、全ての行が選択されたのならステップ１２１３へ進む。
【００７４】
ステップ１２１３では、I/O構成情報変換テーブル生成命令列１１３は、ブートパス情報１１４からディスク制御部１４０のバス番号、デバイス番号、ファンクション番号を取得する。
【００７５】
ステップ１２１４では、I/O構成情報変換テーブル生成命令列１１３は、取得した仮想的な位置情報を物理的な位置情報に変換する。すなわち、取得したバス番号、デバイス番号、ファンクション番号を、I/O構成情報変換テーブル１２１のバス番号、デバイス番号、ファンクション番号と比較して一致した行の変換先番号が指す物理I/O構成情報１１６のバス番号、デバイス番号、ファンクション番号に変換する。
【００７６】
ステップ１２１５では、I/O構成情報変換テーブル生成命令列１１３は、変換後のバス番号、デバイス番号、ファンクション番号で特定されるディスク制御部１４０を介してストレージ装置内のブートローダ４１１をメモリ上に読み込む。
【００７７】
図１７に移り、ステップ１２０９では、I/O構成情報変換テーブル生成命令列１１３は、選択した行のベンダID、デバイスID、クラスコードと物理I/O構成情報１１６の全ての行のベンダID、デバイスID、クラスコードを比較する。
【００７８】
ステップ１２１０では、I/O構成情報変換テーブル生成命令列１１３は、ステップ１２０９で一致する行があったかどうかを判定する。一致する行がないなら、ステップ１２１１へ進み、一致する行があればステップ１２１２へ進む。
【００７９】
ステップ１２１１では、I/O構成情報変換テーブル生成命令列１１３は、エラーメッセージを発行して処理を終了する。物理的なI/Oデバイスが仮想的なI/Oデバイスを包含しているとすれば、ステップ１２１１は生じない。
【００８０】
ステップ１２１２では、I/O構成情報変換テーブル生成命令列１１３は、ステップ１２０７で選択した仮想I/O構成情報１１７の行をI/O構成情報テーブル１２１に格納し、ステップ１２１０で一致した物理I/O構成情報１１６のテーブル番号をI/O構成情報変換テーブル１２１の変換先番号８０７，１７０７に格納し、ステップ１２０７へ戻る。
【００８１】
図１８は、PCI BIOS１１２が行うコンフィグレーションレジスタの読み込み処理の処理手順を示すフローチャートである。
【００８２】
ステップ１３０１では、PCI BIOS１１２中のI/O情報変換命令列１１８は、呼び出し元から渡されたI/Oの仮想的な位置情報（バス番号、デバイス番号、ファンクション番号）をI/O構成情報変換テーブル１２１と比較して、一致した行の変換先番号が指している物理I/O構成情報１１６のバス番号、デバイス番号、ファンクション番号に変換する。ここで呼び出し元とは、I/O構成情報変換テーブル生成命令列１１３のステップ１２０２、または通常のI/OアクセスをするときのBIOS１１１である。
【００８３】
ステップ１３０２では、PCI BIOS１１２は、変換されたI/Oのバス番号、デバイス番号、ファンクション番号と呼び出し元から渡されたオフセット番号を使って作成したコンフィグレーションアドレスをI/Oポートのアドレス「0xCF8」に書き込む。
【００８４】
ステップ１３０３では、PCI BIOS１１２は、I/Oポートのアドレス「0xCFC」に格納されているコンフィグレーションレジスタの値を読み出す。
【００８５】
ステップ１３０４では、PCI BIOS１１２は、読み出したコンフィグレーションレジスタの値を呼び出し元へ返す。
【００８６】
図１９は、系切替後の復旧作業およびこれに伴う系管理テーブル操作命令列３１２の処理手順を示すフローチャートである。
【００８７】
ステップ１４０１では、保守員が障害の発生した計算機の部品交換等の復旧作業を行う。
【００８８】
ステップ１４０２では、保守員からの指示により、系管理テーブル操作命令列３１２は、系管理テーブル３１３を参照し、復旧した計算機について、障害状態５０３の「障害あり」を「障害なし」に変更する。
【００８９】
このように、障害が起きた現用系計算機１００を系切替対象の待機系計算機２００へと切り替える場合に、現用系計算機１００と待機系計算機２００のI/Oの位置情報や数が異なっていても、問題なく、現用系計算機１００の業務を待機系計算機２００に引き継ぐことが可能になる。
【００９０】
なお現用系計算機が複数台ある場合についても、各々の現用系計算機について上記の処理手順が適用される。
【産業上の利用可能性】
【００９１】
以上のように、本発明によれば現用系計算機と待機系計算機を備え、現用系計算機の障害時に待機系計算機へ切り替える系切替計算機システムに適用することができる。
【図面の簡単な説明】
【００９２】
【図１】実施例の系切替システムのブロック図である。
【図２】系管理テーブルの一実施例である。
【図３】物理I/O構成情報の一実施例である。
【図４】物理I/O構成情報の一実施例である。
【図５】仮想I/O構成情報の一実施例である。
【図６】I/O構成情報変換テーブルの一実施例である。
【図７】I/O構成情報変換テーブルの一実施例である。
【図８】I/O構成情報管理テーブルの一実施例である。
【図９】I/O構成情報管理テーブル作成の一実施例を示すフローチャートである。
【図１０】ハートビート応答命令列の一実施例を示すフローチャートである。
【図１１】系管理命令列の一実施例を示すフローチャートである。
【図１２】系管理命令列の一実施例を示すフローチャート（続き）である。
【図１３】系管理命令列の一実施例を示すフローチャート（続き）である。
【図１４】現用系計算機と待機系計算機の起動からサービス提供までの一実施例を示すフローチャートである。
【図１５】I/O構成情報変換テーブル生成命令列の一実施例を示すフローチャートである。
【図１６】I/O構成情報テーブル変換命令列の一実施例を示すフローチャート（続き）である。
【図１７】I/O構成情報テーブル変換命令列の一実施例を示すフローチャート（続き）である。
【図１８】コンフィグレーションレジスタの読み込み処理の一実施例を示すフローチャートである。
【図１９】系切替後の復旧処理の一実施例を示すフローチャートである。
【符号の説明】
【００９３】
１００：現用系計算機、１１１：BIOS、１１３：I/O構成情報変換テーブル生成命令列、１１５：電源投入状態フラグ、１１６：物理I/O構成情報、１１７：仮想I/O構成情報、１１８：I/O情報変換命令列、１２１：I/O構成情報変換テーブル、２００：待機系計算機、３００：管理計算機、３１１：系管理命令列、３１２：系管理テーブル操作命令列、３１３：系管理テーブル、３１４：I/O構成情報変換テーブル操作命令列、３１５：I/O構成情報管理テーブル。
【図１】
2010146087.tif 000003
【図２】
2010146087.tif 000004
【図３】
2010146087.tif 000005
【図４】
2010146087.tif 000006
【図５】
2010146087.tif 000007
【図６】
2010146087.tif 000008
【図７】
2010146087.tif 000009
【図８】
2010146087.tif 000010
【図９】
2010146087.tif 000011
【図１０】
2010146087.tif 000012
【図１１】
2010146087.tif 000013
【図１２】
2010146087.tif 000014
【図１３】
2010146087.tif 000015
【図１４】
2010146087.tif 000016
【図１５】
2010146087.tif 000017
【図１６】
2010146087.tif 000018
【図１７】
2010146087.tif 000019
【図１８】
2010146087.tif 000020
【図１９】
2010146087.tif 000021