(57)【特許請求の範囲】
【請求項１】
冗長化された仮想計算機システムにおける運用系のコンピュータシステムと、
前記冗長化された仮想計算機システムにおける待機系のコンピュータシステムと、
前記運用系のコンピュータシステム及び前記待機系のコンピュータシステムのそれぞれからアクセス可能な共有ストレージと
を含み、
前記運用系のコンピュータシステム及び前記待機系のコンピュータシステムの各々は、
中央演算処理装置及び物理メモリを備えた物理ハードウェアと、
前記物理ハードウェア上で稼動するホストオペレーティングシステムと、
前記ホストオペレーティングシステム上で稼動する仮想計算機制御手段と、
前記仮想計算機制御手段の上で稼動するゲストオペレーティングシステムと、
前記物理メモリへの読み書きの制御を行う物理メモリ制御手段と、
専用ハードウェアであり、運用系の場合、前記仮想計算機制御手段及び前記物理メモリ制御手段と連携して前記ゲストオペレーティングシステムのメモリ情報を取得して、待機系と前記ゲストオペレーティングシステムのメモリ情報の同期を行い、致命的ハードウェア障害を検知すると前記中央演算処理装置に割り込みを上げ、待機系へ制御移行通知と前記中央演算処理装置のレジスタ情報及びコンテキスト情報との送信を行い、待機系の場合、運用系から制御移行通知を受信すると前記中央演算処理装置へ割り込みを上げ、運用系から受信したレジスタ情報及びコンテキスト情報に基づく運用を引き継がせる物理ハードウェア管理手段と、
致命的ハードウェア障害が検知された場合、前記ホストオペレーティングシステム上で前記物理メモリのメモリダンプ採取を行うダンプ手段と、
前記メモリダンプを取得し、前記共有ストレージへの読み書き制御及び入出力ハードウェアへの読み書き制御を行う物理Ｉ／Ｏ制御手段と
を具備する
仮想計算機冗長化システム。
【請求項２】
請求項１に記載の仮想計算機冗長化システムであって、
前記物理ハードウェア管理手段は、
致命的ハードウェア障害を検出して、前記中央演算処理装置に割り込みを発生させる割り込み処理手段と、
致命的ハードウェア障害発生時の詳細ログ情報を採取するログ採取手段と、
自系のコンピュータシステムが運用系であるか待機系であるかを示す情報を保持する状態レジスタと、
メモリ情報と制御移行通知とを受信処理するデータ受信手段と、
メモリ情報と制御移行通知とを送信処理するデータ送信手段と、
検出されたハードウェア障害が致命的なものかどうかの障害レベルに関する情報を保持するエラーレジスタと、
受信処理するメモリ情報及び制御移行通知のバッファとして機能する入力バッファと、
送信処理するメモリ情報及び制御移行通知のバッファとして機能する出力バッファと
を具備する
仮想計算機冗長化システム。
【請求項３】
請求項２に記載の仮想計算機冗長化システムであって、
前記物理メモリ制御手段又は前記物理Ｉ／Ｏ制御手段は、ハードウェア障害を検出すると、前記物理ハードウェア管理手段に通知を上げ、障害が致命的かどうかを示す情報を前記エラーレジスタに登録し、
前記割り込み処理手段は、前記エラーレジスタの値をチェックし、通知されたハードウェア障害が致命的なものかどうかを判定し、致命的な場合には、前記中央演算処理装置に割り込みを上げ、
前記ログ採取手段は、致命的ハードウェア障害発生時の詳細ログ情報を採取し、
前記物理メモリ制御手段は、物理アドレスとメモリデータの入力とを前記出力バッファに一時的に格納し、
前記データ送信手段は、前記出力バッファに格納された情報を他系の物理ハードウェア管理手段に送信し、
前記データ受信手段は、他系のデータ送信手段から物理アドレスとメモリデータを受信した場合、前記入力バッファに一時的に格納した後、前記物理メモリ制御手段へ出力し、制御移行通知を受信した場合には、前記状態レジスタの値を待機系を示す値から運用系を示す値に変更する
仮想計算機冗長化システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の仮想計算機冗長化システムであって、
前記仮想計算機制御手段は、
前記ゲストオペレーティングシステムが使用するシステムリソースを仮想的に生成して提供する仮想ハードウェア提供手段と、
セグメント情報及びページ情報を保持し、前記ホストオペレーティングシステム及び前記ゲストオペレーティングシステムのメモリ管理を行うメモリ管理手段と、
自系のコンピュータシステムで書込み可能な領域の論理アドレスと物理アドレスとの対応情報、及び、前記ホストオペレーティングシステム及び前記ゲストオペレーティングシステムの各プロセスのメモリ情報を格納するメモリ管理テーブルと
を具備する
仮想計算機冗長化システム。
【請求項５】
請求項４に記載の仮想計算機冗長化システムであって、
前記仮想計算機制御手段は、書き込みが行われることによってメモリ内容に変更があった場合には、変更があったメモリの物理アドレス及びメモリ内容を保存して、前記メモリ管理テーブルを更新し、前記物理アドレス及び前記メモリ内容を前記物理メモリ制御手段に渡し、
前記物理メモリ制御手段は、前記物理ハードウェア管理手段を経由して、前記物理アドレス及び前記メモリ内容を待機系の仮想計算機制御手段に渡し、待機系のメモリ管理テーブルの更新を行う
仮想計算機冗長化システム。
【請求項６】
請求項５に記載の仮想計算機冗長化システムであって、
前記物理メモリ制御手段は、
前記中央演算処理装置及び前記物理Ｉ／Ｏ制御手段からのメモリ入出力を制御して、前記物理メモリへのアクセス制御全般を行う入出力切り替え回路と、
前記仮想計算機制御手段が管理している前記メモリ管理テーブルのアドレス情報をコピーしたアドレス管理テーブルと
を具備し、
前記入出力切り替え回路は、前記物理メモリにおける所定の物理アドレスに対する書込みが発生した際に、前記アドレス管理テーブルを参照して、当該物理アドレスが書込み許可領域であるかどうかをチェックし、当該物理アドレスが書込み許可領域である場合には、書き込まれるメモリ内容のコピーを、前記物理ハードウェア管理手段に転送する
仮想計算機冗長化システム。
【請求項７】
請求項１乃至６のいずれか一項に記載の仮想計算機冗長化システムで、運用系又は待機系として使用されるコンピュータシステム。
【請求項８】
冗長化された仮想計算機システムにおける運用系のコンピュータシステムと、前記冗長化された仮想計算機システムにおける待機系のコンピュータシステムと、の各々において、
ホストオペレーティングシステムが、中央演算処理装置及び物理メモリを備えた物理ハードウェア上で稼動することと、
仮想計算機制御手段が、前記ホストオペレーティングシステム上で稼動することと、
ゲストオペレーティングシステムが、前記仮想計算機制御手段の上で稼動することと、
物理メモリ制御手段が、前記物理メモリへの読み書きの制御を行うことと、
運用系の場合、専用ハードウェアである物理ハードウェア管理手段が、前記仮想計算機制御手段及び前記物理メモリ制御手段と連携して前記ゲストオペレーティングシステムのメモリ情報を取得して、待機系と前記ゲストオペレーティングシステムのメモリ情報の同期を行い、致命的ハードウェア障害を検知すると前記中央演算処理装置に割り込みを上げ、待機系へ制御移行通知と前記中央演算処理装置のレジスタ情報及びコンテキスト情報との送信を行うことと、
待機系の場合、前記物理ハードウェア管理手段が、運用系から制御移行通知を受信すると前記中央演算処理装置へ割り込みを上げ、運用系から受信したレジスタ情報及びコンテキスト情報に基づく運用を引き継がせることと、
致命的ハードウェア障害が検知された場合、ダンプ手段が、前記ホストオペレーティングシステム上で前記物理メモリのメモリダンプ採取を行うことと、
物理Ｉ／Ｏ制御手段が、前記メモリダンプを取得し、前記運用系のコンピュータシステム及び前記待機系のコンピュータシステムのそれぞれからアクセス可能な共有ストレージへの読み書き制御及び入出力ハードウェアへの読み書き制御を行うことと
を含む
仮想計算機冗長化方法。
【請求項９】
請求項８に記載の仮想計算機冗長化方法であって、
前記物理ハードウェア管理手段として、
割り込み処理手段が、致命的ハードウェア障害を検出して、前記中央演算処理装置に割り込みを発生させることと、
ログ採取手段が、致命的ハードウェア障害発生時の詳細ログ情報を採取することと、
状態レジスタが、自系のコンピュータシステムが運用系であるか待機系であるかを示す情報を保持することと、
データ受信手段が、メモリ情報と制御移行通知とを受信処理することと、
データ送信手段が、メモリ情報と制御移行通知とを送信処理することと、
エラーレジスタが、検出されたハードウェア障害が致命的なものかどうかの障害レベルに関する情報を保持することと、
入力バッファが、受信処理するメモリ情報及び制御移行通知のバッファとして機能することと、
出力バッファが、送信処理するメモリ情報及び制御移行通知のバッファとして機能することと
を更に含む
仮想計算機冗長化方法。
【請求項１０】
請求項９に記載の仮想計算機冗長化方法であって、
前記物理メモリ制御手段又は前記物理Ｉ／Ｏ制御手段が、ハードウェア障害を検出すると、前記物理ハードウェア管理手段に通知を上げ、障害が致命的かどうかを示す情報を前記エラーレジスタに登録することと、
前記割り込み処理手段が、前記エラーレジスタの値をチェックし、通知されたハードウェア障害が致命的なものかどうかを判定し、致命的な場合には、前記中央演算処理装置に割り込みを上げることと、
前記ログ採取手段が、致命的ハードウェア障害発生時の詳細ログ情報を採取することと、
前記物理メモリ制御手段が、物理アドレスとメモリデータの入力とを前記出力バッファに一時的に格納することと、
前記データ送信手段が、前記出力バッファに格納された情報を他系の物理ハードウェア管理手段に送信することと、
前記データ受信手段が、他系のデータ送信手段から物理アドレスとメモリデータを受信した場合、前記入力バッファに一時的に格納した後、前記物理メモリ制御手段へ出力し、制御移行通知を受信した場合には、前記状態レジスタの値を待機系を示す値から運用系を示す値に変更することと
を更に含む
仮想計算機冗長化方法。
【請求項１１】
請求項８乃至１０のいずれか一項に記載の仮想計算機冗長化方法であって、
前記仮想計算機制御手段として、
仮想ハードウェア提供手段が、前記ゲストオペレーティングシステムが使用するシステムリソースを仮想的に生成して提供することと、
メモリ管理手段が、セグメント情報及びページ情報を保持し、前記ホストオペレーティングシステム及び前記ゲストオペレーティングシステムのメモリ管理を行うことと、
メモリ管理テーブルが、自系のコンピュータシステムで書込み可能な領域の論理アドレスと物理アドレスとの対応情報、及び、前記ホストオペレーティングシステム及び前記ゲストオペレーティングシステムの各プロセスのメモリ情報を格納することと
を更に含む
仮想計算機冗長化方法。
【請求項１２】
請求項１１に記載の仮想計算機冗長化方法であって、
前記仮想計算機制御手段が、書き込みが行われることによってメモリ内容に変更があった場合には、変更があったメモリの物理アドレス及びメモリ内容を保存して、前記メモリ管理テーブルを更新し、前記物理アドレス及び前記メモリ内容を前記物理メモリ制御手段に渡すことと、
前記物理メモリ制御手段が、前記物理ハードウェア管理手段を経由して、前記物理アドレス及び前記メモリ内容を待機系の仮想計算機制御手段に渡し、待機系のメモリ管理テーブルの更新を行うことと
を更に含む
仮想計算機冗長化方法。
【請求項１３】
請求項１２に記載の仮想計算機冗長化方法であって、
前記物理メモリ制御手段として、
入出力切り替え回路が、前記中央演算処理装置及び前記物理Ｉ／Ｏ制御手段からのメモリ入出力を制御して、前記物理メモリへのアクセス制御全般を行うことと、
前記仮想計算機制御手段が管理している前記メモリ管理テーブルのアドレス情報をコピーしたアドレス管理テーブルを保持することと、
前記入出力切り替え回路が、前記物理メモリにおける所定の物理アドレスに対する書込みが発生した際に、前記アドレス管理テーブルを参照して、当該物理アドレスが書込み許可領域であるかどうかをチェックし、当該物理アドレスが書込み許可領域である場合には、書き込まれるメモリ内容のコピーを、前記物理ハードウェア管理手段に転送することと
を更に含む
仮想計算機冗長化方法。
【請求項１４】
請求項８乃至１３のいずれか一項に記載の仮想計算機冗長化方法を、運用系又は待機系として使用されるコンピュータシステムに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機冗長化システムに関し、特に運用系で複数のゲストオペレーティングシステムをホストオペレーティングシステム上で稼動させている仮想計算機システムのハードウェアで障害が発生した際に、オペレーティングシステムのメモリダンプを外部記憶に採取し、動作中のゲストオペレーティングシステムの処理を高速に待機系のゲストオペレーティングシステムへ引き継がせる機能を持った仮想計算機冗長化システムに関する。
【背景技術】
【０００２】
クラスタ管理された複数台の仮想計算機を有する仮想計算機冗長化システムが知られる。この仮想計算機冗長化システムでは、それぞれのホストオペレーティングシステム上で稼動する仮想計算機制御部どうしが連携する。何れかの仮想計算機システムで障害が発生した場合には、その仮想計算機システムを管轄する仮想計算機制御部の上で稼動しているゲストオペレーティングシステムの処理を、正常稼動している仮想計算機システムへ移行させてダウンタイムを短縮する。しかし、ソフトウェアでなる仮想計算機制御部だけでは、ハードウェアに依存する障害発生原因の特定が困難であった。
【０００３】
この種の技術としては、特開２００２−３２２４４号公報（特許文献１参照）に記載された発明がある。この発明では、仮想計算機を運用しているときに、仮想計算機制御部に何らかの不具合が発生し、仮想計算機が動作できなくなった場合に、ゲストオペレーティングシステムのメモリイメージを記憶媒体に退避させる。そのメモリイメージをダンプ型式データに変換出力させて、その不具合原因の調査解析を容易にする。
【０００４】
この発明の第１の問題点は、次の通りである。仮想計算機システムの運用中にハードウェア障害が発生した場合に、ホストオペレーティングシステム、及び、その上で稼動している仮想計算機制御部が制御不能になる可能性がある。これらが制御不能になると、仮想計算機制御部の制御下で動作中であった各ゲストオペレーティングシステムが制御不能となるため、それぞれのゲストオペレーティングシステムが備えるダンプ採取手段が使えなくなるという問題点である。
【０００５】
その理由は、仮想計算機制御部は、ホストオペレーティングシステム上で稼動しているため、ハードウェア障害が発生した場合、ホストオペレーティングシステム自体が正常動作できなくなり、仮想計算機制御部も制御不能となる。よって、各ゲストオペレーティングシステムも制御不能となってしまい、ダンプ採取手段を起動することができないからである。
【０００６】
第２の問題点は、ソフトウェアである仮想計算機制御部どうしの連携で運用系から待機系へゲストオペレーティングシステムの処理を移行させる方式では、ハードウェア障害発生時には一定時間のダウンタイムが発生してしまうという問題点である。その理由は、仮想計算機制御部どうしは、ハートビートによる死活監視を行っているため、ハートビートが途切れたことを検出するまでに、ある一定のタイムアウト時間が掛かるからである。
【０００７】
特開平７−２１９８０２号公報（特許文献２参照）には、２重化制御方式の発明が記載されている。この２重化制御方式は、主系にて処理を行っている最中に障害が検出された場合は、予備系に切り替えて処理を続行するために、両系の記憶部内容を同一に保つべく、主系の記憶部への書き込みデータを予備系の記憶部へも書き込みを行う。主系記憶部に発生した書き込み内容を、主系ＣＰＵとは独立に動作する記憶制御部によりその内部のバッファへ逐次記憶させる。主系ＣＰＵからの指示により、主系ＣＰＵの記憶部変更内容を別のバッファ領域へ記憶させ始める。並行して前バッファ領域の内容通りの変更を予備系の記憶部へ対して行う。
【０００８】
特開平８−２８７０２１号公報（特許文献３参照）には、共用メモリに結合される複数の計算機システムの発明が記載されている。これは、少なくとも１つの実計算機（以下、実クラスタと記す）と外部記憶装置である共用メモリとを結合する電子計算機システムにおける発明である。実クラスタ及び仮想計算機運用された実クラスタ内の個々のゲストクラスタを制御するためのオペレーティングシステム（以下、ＯＳと記す）を有する実クラスタまたは、仮想計算機システムを制御するためのＯＳを有する少なくとも１つの仮想計算機システムが、共用メモリに接続される。
【０００９】
特開平９−３０５４２４号公報（特許文献４参照）には、プロセッサの二重化システムの発明が記載されている。この発明は、主メモリバスで接続されたＭＰＵ及び主記憶装置と、相手系と共有情報を送受する送受信回路を持つ共有データ一致化装置（以下、ＣＭＥと略称）を備える。主記憶装置は、共有データを記憶する共有エリアを有する。ＣＭＥは、メモリアクセス情報取得手段、メモリアクセス手段、共有エリア設定手段、共有データ監視手段を有する。メモリアクセス情報取得手段は、ＭＰＵから主記憶装置へ書き込むアドレスとデータを含むアクセス情報を主メモリバスからスヌープする。メモリアクセス手段は、相手系からの受信情報が共有データの場合に共有エリアに書き込む。共有エリア設定手段は、共有エリアの範囲を指定する。共有データ監視手段は、アクセス情報または受信情報中のアドレスが共有エリアの範囲内にあるとき、該情報を共有データと判断する。
【００１０】
【特許文献１】特開２００２−３２２４４号公報
【特許文献２】特開平７−２１９８０２号公報
【特許文献３】特開平８−２８７０２１号公報
【特許文献４】特開平９−３０５４２４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の課題は、運用系の仮想計算機システムでハードウェア障害が発生した場合に、ホストオペレーティングシステムの状態に依存することなく、専用ハードウェアによってハードウェアに依存する障害発生原因の特定を行うことにある。
【００１２】
本発明の他の課題は、運用系でハードウェア障害が発生した場合でもダウンタイムを大幅に短縮して、運用系のゲストオペレーティングシステムの処理を待機系のゲストオペレーティングシステムの処理として、処理を引き継ぐことにある。
【課題を解決するための手段】
【００１３】
本発明の一つのアスペクトによる仮想計算機冗長化システムは、運用系コンピュータシステムと、運用系コンピュータシステムのバックアップとして待機する待機系コンピュータシステムとを具備する。運用系コンピュータシステムは、運用系ホストオペレーティングシステム、及び、運用系ホストオペレーティングシステムによって提供される仮想計算機上で動作する運用系ゲストオペレーティングシステムを備える。待機系コンピュータシステムは、待機系ホストオペレーティングシステムと、待機系ゲストオペレーティングシステムとを備える。
【発明の効果】
【００１４】
本発明によれば、運用系の仮想計算機システムでハードウェア障害が発生した場合に、ホストオペレーティングシステムの状態に依存することなく、専用ハードウェアによってハードウェアに依存する障害発生原因の特定を行うことができる。
【００１５】
また、運用系でハードウェア障害が発生した場合でもダウンタイムを大幅に短縮して、運用系のゲストオペレーティングシステムの処理を待機系のゲストオペレーティングシステムの処理として、処理を引き継ぐことができる。
【発明を実施するための最良の形態】
【００１６】
本発明を実施するための最良の形態の一つについて、図面を参照して詳細に説明する。図１を参照すると、ひとつの実施の形態における仮想計算機冗長化システムは、運用系コンピュータシステムＳＹＳ１と、待機系コンピュータシステムＳＹＳ２と、共有ストレージ１９とを有している。運用系コンピュータシステムＳＹＳ１、及び、待機系コンピュータシステムＳＹＳ２のそれぞれは、物理ハードウェアＨＷ１，ＨＷ２と、基本入出力制御システム７，８とを具備している。運用系コンピュータシステムＳＹＳ１では、ホストＯＳ  ＯＳ１が動作し、このホストＯＳ  ＯＳ１の上で、ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃが動作している。また、待機系コンピュータシステムＳＹＳ２では、ホストＯＳ  ＯＳ２、並びに、ゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃが、運用系のバックアップとして待機している。
【００１７】
ホストＯＳ  ＯＳ１は、仮想計算機制御部１と、障害検知部３と、ダンプ部５とを有している。仮想計算機制御部１は、ホストＯＳ  ＯＳ１の機能の一部を担い、ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃに仮想マシンリソースを提供し、メモリ管理と制御を行う。障害検知部３は、ホストＯＳ  ＯＳ１の機能の一部として、致命的ハードウェア障害発生時に起動されて、ダンプ部５の起動、システムＳＹＳ１の自動的な再起動を行う。ダンプ部５は、ホストＯＳ  ＯＳ１の機能の一部として、障害検知部３から起動され、メモリダンプ採取を行う。ホストＯＳ  ＯＳ２では、仮想計算機制御部２と、障害検知部４と、ダンプ部６とが、仮想計算機制御部１と、障害検知部３と、ダンプ部５とのバックアップとして、それぞれ待機している。
【００１８】
基本入出力制御システム７，８は、それぞれ、ホストＯＳ  ＯＳ１，ＯＳ２と物理ハードウェアＨＷ１，ＨＷ２との入出力制御のサービスをホストＯＳ  ＯＳ１，ＯＳ２に提供し、また、障害発生時の対処プログラムであるシステム管理モードを、中央演算処理装置９，１０に提供するファームウェアである。
【００１９】
物理ハードウェアＨＷ１，ＨＷ２は、それぞれ、中央演算処理装置９，１０と、物理メモリ制御部１１，１２と、物理メモリと１３，１４と、物理ハードウェア管理部１５，１６、物理Ｉ／Ｏ制御部１７，１８とを有している。運用系の物理メモリ制御部１１は、物理メモリ１３への読み書きの制御を行う役割と、書込み許可された物理アドレスへの書込みの際にはメモリ内容を物理ハードウェア管理部１５にも転送する。待機系の物理メモリ制御部１２は、物理メモリ１４への読み書きの制御を行う役割と、物理ハードウェア管理部１６からの物理メモリ１４への書込み要求があった際には物理メモリ１４への書き込みを行う。運用系の物理ハードウェア管理部１５は、物理メモリ制御部１１からのメモリコピーを受け取り、待機系へ転送する。致命的ハードウェア障害を検出して中央演算処理装置９に割り込みを上げ、待機系へ制御移行通知と中央演算処理装置９のレジスタ、コンテキスト情報の送信を行う。
【００２０】
待機系の物理ハードウェア管理部１６は、受信したメモリコピーを物理メモリ制御部１２へ渡す。制御移行通知を受信すると、中央演算処理装置１０へ割り込みを上げ、運用系から受信したレジスタ、コンテキスト情報からの運用継続を引き継がせる処理を行わせる。運用系の物理Ｉ／Ｏ制御部１７は、共有ストレージ１９への読み書き制御及び入出力ハードウェアへの読み書き制御を行う。待機系の物理Ｉ／Ｏ制御部１８は、共有ストレージ１９からの読み込み制御及び入出力ハードウェアへの読み書き制御を行う。
【００２１】
共有ストレージ１９は、運用系と待機系それぞれからアクセス可能であり、詳細には、運用系からは読み書き可能、待機系からは読み込みのみ可能である。共有ストレージ１９は、待機系のゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃが運用系に切り替わった後に、運用系のファイルシステムを参照できるように、運用系ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃの最新のファイルシステム情報を格納する。
【００２２】
１．運用系のゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃと、待機系のゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃのメモリ領域におけるデータ同期のプロセスについて、図１を用いて説明する。
【００２３】
［運用系、待機系］
運用系、待機系それぞれの物理メモリ制御部１１，１２は、アドレス管理テーブル（後述する図５参照）を持っている。仮想計算機制御部１，２は、自身がメモリ管理している物理メモリアドレス情報に変更が生じた場合、物理メモリ制御部１１，１２の当該アドレス管理テーブルに、物理メモリ情報のコピーを行う（図１の〔１〕）。
【００２４】
［運用系］
物理メモリ制御部１１は、中央演算処理装置９から書込み要求があった場合には（図１の〔２〕）、アドレス管理テーブルの物理アドレス情報と、書込み要求のあった物理アドレスとを照合する。該当する物理アドレスが存在した場合には、物理メモリ１３に書き込むのと同時に（図１の〔３〕）、物理ハードウェア管理部１５にも、物理アドレスと、書き込まれるメモリデータを渡す（図１の〔４〕）。物理ハードウェア管理部１５は、受け取った物理アドレスとメモリデータとを、待機系の物理ハードウェア管理部１６に送信する（図１の〔５〕）。
【００２５】
［待機系］
待機系の物理ハードウェア管理部１６は、受け取った物理アドレスとメモリデータとに基づいて、物理メモリ１４へ書き込みを行うため、物理メモリ制御部１２に対して物理メモリ１４への書込みを要求する（図１の〔６〕）。要求を受けた物理メモリ制御部１２は、自身のアドレス管理テーブルの物理アドレス情報と、書込み要求のあった物理アドレスとを照合する。該当する物理アドレスが存在した場合のみ、中央演算処理装置１０に対して物理メモリバスの開放を要求する（図１の〔７〕）。物理メモリバス開放要求を受け取った中央演算処理装置１０は、物理メモリバスの開放を物理メモリ制御部１２に通知する（図１の〔８〕）。物理メモリ制御部１２は、指定された物理アドレスへの書込み許可を、物理ハードウェア管理部１６へ通知して、データ転送の受入れの準備を完了する（図１の〔９〕）。通知を受け取った物理ハードウェア管理部１６は、物理メモリ制御部１２に対して、メモリデータの転送を行う（図１の〔１０〕）。物理ハードウェア管理部１６から転送されてきたメモリデータを受けた物理メモリ制御部１２は、物理メモリ１４の指定アドレスに対して書込みを行う（図１の〔１１〕）。書込みを完了すると、中央演算処理装置１０に対して物理メモリバスの占有使用の完了を通知する（図１の〔１２〕）。
【００２６】
２．ハードウェア障害発生時におけるゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃの移行処理について、図２を用いて、説明する。
【００２７】
［運用系］
運用系の物理ハードウェア管理部１５が致命的なハードウェア障害を検出すると、中央演算処理装置９に対して割り込みを上げる（図２の〔１〕）。物理ハードウェア管理部１５から割り込みを受けた中央演算処理装置９は、物理メモリ１３に展開されている基本入出力制御システム７のシステム管理モードに制御を移す（図２の〔２〕）。システム管理モードへの移行によって、中央演算処理装置９の現行の状態を退避するようにとの命令が出ると（図２の〔３〕）、中央演算処理装置９から現行の状態（レジスタ情報、コンテキスト情報）が物理メモリ制御部１１に渡される（図２の〔４〕）。これらは、物理メモリ１３に展開された基本入出力制御システム７のシステム管理領域にあるレジスタ及びコンテキスト情報保存領域に保存され（図２の〔５〕）、同時に、物理メモリ制御部１１を経由して、物理ハードウェア管理部１５へも渡される（図２の〔６〕）。物理ハードウェア管理部１５は、待機系の物理ハードウェア管理部１６に対して、ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃの制御移行通知と、受け取った中央演算処理装置９のレジスタ、コンテキスト情報とを送信する（図２の〔７〕、〔８〕）。
【００２８】
一方、システム管理モードに入っている中央演算処理装置９は、ホストＯＳ  ＯＳ１の障害検知部３を起動するための割り込みを中央演算処理装置９自身へ上げるよう、物理ハードウェア管理部１５に対して命令を発行し（図２の〔９〕）、その後、リストア命令を実行してシステム管理モードから抜ける。続いて、物理ハードウェア管理部１５から割り込みを受けると（図２の〔１０〕）、中央演算処理装置９は、障害検知部３に制御を移す（図２の〔１１〕）。障害検知部３はダンプ部５を起動し、ダンプ部５は、中央演算処理装置９と、物理メモリ制御部１１と、物理Ｉ／Ｏ制御部１７とを経由して、共有ストレージ１９にメモリダンプを書き込む。メモリダンプが完了してダンプ部５から終了通知を受けると、障害検知部３は、運用系コンピュータシステムＳＹＳ１の再起動を自動的に行う。
【００２９】
［待機系］
待機系の物理ハードウェア管理部１６は、運用系の物理ハードウェア管理部１５から、制御移行通知と、レジスタ及びコンテキスト情報とを受け取ると、物理ハードウェア管理部１６自身の状態レジスタを運用系であることを示す値に変更し、中央演算処理装置１０に対して割り込みを上げる（図２の〔１２〕）。物理ハードウェア管理部１６から割り込みを受けた中央演算処理装置１０は、物理メモリ１４に展開された基本入出力制御システム８の命令コード群における所定のエントリアドレスにジャンプし、システム管理モードで実行されるプログラムに制御を移す（図２の〔１３〕）。システム管理モードへの移行によって、中央演算処理装置１０の現行の状態を退避するようにとの命令が出ると（図２の〔１４〕）、中央演算処理装置１０から現行の状態（レジスタ情報、コンテキスト情報）が物理メモリ制御部１２に渡される（図２の〔１５〕）。この現行の状態は、物理メモリ１４に展開された基本入出力制御システム８のシステム管理領域にあるコンテキスト情報保存領域に保存される（図２の〔１６〕）。
【００３０】
システム管理モードにおいては、次に、物理ハードウェア管理部１６に対して、運用系から運用系ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃの制御移行通知を受け取っているかどうかの確認を行う。ここでは、物理ハードウェア管理部１６の状態レジスタが運用系を示す値となっているかどうかをチェックする（図２の〔１７〕）。運用系を示す値になっている場合は、物理ハードウェア管理部１６が保持している運用系中央演算処理装置９のレジスタ及びコンテキスト情報を引き取って（図２の〔１８〕）、物理メモリ制御部１２経由で、システム管理領域の予備のコンテキスト保存領域に保存する（図２の〔１９〕）。
【００３１】
システム管理モードにおいては、最後に、中央演算処理装置１０に対してリストア命令を発行し、予備のコンテキスト保存領域に格納されているレジスタ、コンテキスト情報を中央演算処理装置１０の各レジスタにリストアさせる。そして、運用系ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃが、障害直前に処理していたフェーズからシステム運用を再開する（図２の〔２０〕、〔２１〕）。システム運用が再開された後、障害検知部４は仮想計算機制御部２と連携し、バックアップしたゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃが正常に稼動しているかどうかを診断するため、ポーリングチェックを行う。正常稼動していない場合は、ゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃの再起動を行うなどする。
【００３２】
３．物理ハードウェア管理部１５の構成例について、図３を用いて説明する。図３を参照すると、物理ハードウェア管理部１５は、割り込み処理部２０と、ログ採取部２１と、状態レジスタ２２と、データ受信部２３と、データ送信部２４と、エラーレジスタ２５と、入力バッファ３５と、出力バッファ３６とを有している。図３において、割り込み処理部２０は、致命的ハードウェア障害を検出して、中央演算処理装置９に割り込みを発生させる。ログ採取部２１は、ハードウェア障害発生時の詳細ログ情報を採取する。状態レジスタ２２は、システムが運用系であるか、または待機系であるかを示す情報を保持する。データ受信部２３は、メモリ情報と制御移行通知とを受信処理する。データ送信部２４は、メモリ情報と制御移行通知とを送信処理する。エラーレジスタ２５は、検出されたハードウェア障害が致命的なものかどうかの情報（障害レベル）を保持する。入力バッファ３５は、受信処理するメモリ情報及び制御移行通知のバッファとして機能する。出力バッファ３６は、送信処理するメモリ情報及び制御移行通知のバッファとして機能する。
【００３３】
物理ハードウェア管理部１５の動作例について説明する。物理メモリ制御部１１又は物理Ｉ／Ｏ制御部１７は、ハードウェア障害を検出すると、物理ハードウェア管理部１５に通知を上げ、障害が致命的かどうかを示す情報をエラーレジスタ２５に登録する。割り込み処理部２０は、エラーレジスタ２５の値をチェックし、通知されたハードウェア障害が致命的なものかどうかを判定する。致命的な場合は、中央演算処理装置９に割り込みを上げてログ採取部２１で障害情報を記録する。割り込み要求に対しては、そのまま中央演算処理装置９に割り込みを上げる。
【００３４】
物理メモリ制御部１１からの物理アドレスとメモリデータの入力については、出力バッファ３６に一時的に格納した後、データ送信部２４から対向の物理ハードウェア管理部１６へ送信を行う。データ受信部２３で受信した物理アドレスとメモリデータについては、入力バッファ３５に一時的に格納した後、物理メモリ制御部１１へ出力する。ここで、制御移行通知を受信した場合には、状態レジスタ２２の値を待機系を示す値から運用系を示す値に変更する。
【００３５】
４．仮想計算機制御部１の構成例について、図４を用いて説明する。図４を参照すると、仮想計算機制御部１は、仮想ハードウェア提供部２６と、メモリ管理部２７と、メモリ管理テーブル２８とを有している。仮想ハードウェア提供部２６は、ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃが使用するシステムリソース（中央演算処理装置、物理メモリ、基本入出力システム、入出力デバイス等）を仮想的に生成して提供する役割を担う。メモリ管理部２７は、セグメントとページ情報を保持し、ホストＯＳ  ＯＳ１とゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃのメモリ管理を行う。メモリ管理テーブル２８は、システムで書込み可能な領域の論理アドレスと物理アドレスとの対応情報を格納する。メモリ管理テーブル２８には、ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃ、ホストＯＳ  ＯＳ１自身の各プロセスのメモリ情報が全て格納されている。
【００３６】
仮想計算機制御部１の動作例について説明する。仮想計算機制御部１は、書き込みが行われることによってメモリ内容に変更があった場合には、変更があったメモリの番地情報及びその内容などを保存して、メモリ管理テーブル２８を更新する。また、そのメモリ情報（物理アドレス及びメモリ内容）を物理メモリ制御部１１に渡す。物理メモリ制御部１１は、アドレス管理テーブル（後述する図５参照）を更新し、メモリ内容に変更があったメモリ番地情報を保存する。メモリ情報は、同時に、物理メモリ制御部１１から物理ハードウェア管理部１５を経由して待機系の仮想計算機制御部２にも渡される。このメモリ情報により、待機系のメモリ管理テーブルの更新も行われる。
【００３７】
５．物理メモリ制御部１１の構成例について、図５を用いて説明する。図５を参照すると、物理メモリ制御部１１は、物理メモリ、Ｉ／Ｏ入出力切り替え回路２９と、アドレス管理テーブル３０と、出力バッファ３７とを有している。物理メモリ、Ｉ／Ｏ入出力切り替え回路２９は、中央演算処理装置９、物理Ｉ／Ｏ制御部１７等からのメモリ入出力を制御して、物理メモリ１３へのアクセス制御全般を行う。アドレス管理テーブル３０には、仮想計算機制御部１が管理しているメモリ管理テーブル２８のアドレス情報がコピーされる。物理メモリ、Ｉ／Ｏ入出力切り替え回路２９は、物理メモリ１３におけるある物理アドレスに対する書込みが発生した際に、アドレス管理テーブル３０を参照して、当該物理アドレスが書込み許可領域であるかどうかをチェックする。該当する物理アドレスが存在した場合には、書き込まれるメモリ内容のコピーを、物理ハードウェア管理部１５に転送する。
【００３８】
６．共有ストレージ１９について詳述する。本実施の形態においては、仮想計算機冗長化システムに、共有ストレージ１９を設置している。仮に、運用系ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃが使用するファイルシステムが、運用系のローカルに存在する物理ディスクに格納されたディスクイメージであった場合を考える。この場合には、待機系が運用系に移行した後は、待機系ゲストＯＳ  ＯＳ２−Ａ〜ＯＳ２−Ｃからはそのディスクイメージにアクセスすることができない。そのため、仮想計算機冗長化システムは、待機系が運用系に移行した後は、動作できなくなる。
【００３９】
そこで、本実施の形態においては、運用系コンピュータシステムＳＹＳ１と、待機系コンピュータシステムＳＹＳ２との両方から平等にアクセス可能な共有ストレージ１９を用意している。ここに、運用系ゲストＯＳ  ＯＳ１−Ａ〜ＯＳ１−Ｃから更新されるファイルシステム情報を保存しておくことにしている。
【００４０】
本実施の形態による効果について説明する。第１の効果は、ホストオペレーティングシステムでは検出できないハードウェア障害の原因を特定できるという点である。その理由は、専用ハードウェアである物理ハードウェア管理部を用意して、この物理ハードウェア管理部が、物理メモリ制御部、物理Ｉ／Ｏ制御部などの各種ハードウェア制御部からの障害通知を検出し、ログ情報を保存する仕組みを提供しているからである。
【００４１】
第２の効果は、ゲストオペレーティングシステムの二重化運用を、ダウンタイムを大幅に短縮して提供することができる点である。その理由は、運用系、待機系それぞれの仮想計算機システムに係る物理ハードウェア管理部が連携することで、ハードウェア障害発生時に障害を検出し、即座にゲストオペレーティングシステムの処理を移行させる仕組みを提供しているからである。
【図面の簡単な説明】
【００４２】
【図１】図１は、仮想計算機冗長化システムの構成、及び、通常運用時における制御の流れ及びデータの流れを示した図である。
【図２】図２は、致命的なハードウェア障害が発生した時の制御及びデータの流れを示した図である。
【図３】図３は、物理ハードウェア管理部の構成例を示した図である。
【図４】図４は、仮想計算機制御部の構成例を示した図である。
【図５】図５は、物理メモリ制御部の構成例を示した図である。
【符号の説明】
【００４３】
１，２  仮想計算機制御部
３，４  障害検知部
５，６  ダンプ部
７，８  基本入出力制御システム
９，１０  中央演算処理装置
１１，１２  物理メモリ制御部
１３，１４  物理メモリ
１５，１６  物理ハードウェア管理部
１７，１８  物理Ｉ／Ｏ制御部
１９  共有ストレージ
２０  割り込み処理部
２１  ログ採取部
２２  状態レジスタ
２３  データ受信部
２４  データ送信部
２５  エラーレジスタ
２６  仮想ハードウェア提供部
２７  メモリ管理部
２８  メモリ管理テーブル
２９  物理メモリ、Ｉ／Ｏ入出力切り替え回路
３０  アドレス管理テーブル
３５  入力バッファ
３６，３７  出力バッファ
【図１】
0005392594.tif 000002
【図２】
0005392594.tif 000003
【図３】
0005392594.tif 000004
【図４】
0005392594.tif 000005
【図５】
0005392594.tif 000006