(57)【要約】【課題】仮想計算機システムの保守性を向上させるため、仮想計算機システムの制御用仮想計算機で動作するＯＳと仮想計算機システムを制御するためのアプリケーションの障害情報を適切に採取し、また、障害発生時に制御用仮想計算機を回復させる仕組みを提供する。【解決手段】仮想計算機制御コードに制御用仮想計算機の障害を監視する方法と、仮想外部記憶装置内の情報の整合性を保証する方法と、仮想外部記憶装置内の情報を実外部記憶装置に出力する方法とを設け、制御用仮想計算機において障害が発生した場合、仮想外部記憶装置内の情報の整合性を保証して実外部記憶装置に出力する。【選択図】図１
2008217728.tif 000002
【特許請求の範囲】
【請求項１】
実計算機に複数の仮想計算機が走行する仮想計算機システムにおいて、仮想計算機システムを制御するために使用する制御用仮想計算機と、仮想計算機制御コードが制御用仮想計算機に対してメモリ領域を仮想的に外部記憶装置として見せる仮想外部記憶装置とを有し、前記制御用仮想計算機にはオペレーティングシステム（ＯＳ）と、仮想計算機システムを制御するためのアプリケーションが走行し、ＯＳとアプリケーションは障害情報を仮想外部記憶装置に書き込み、仮想計算機制御コードには制御用仮想計算機の障害を監視する方法と、仮想外部記憶装置内の障害情報の整合性を保証する方法と、仮想外部記憶装置内の障害情報を実外部記憶装置に出力する方法とを設け、仮想計算機制御コードが制御用仮想計算機の障害を検出した時に、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力することを特徴とする、制御用仮想計算機の障害情報採取方法。
【請求項２】
請求項１記載の制御用仮想計算機の障害情報採取方法において、さらに仮想計算機制御コードに制御用仮想計算機を回復させる方法も設け、仮想計算機制御コードは制御用仮想計算機の障害を検出した場合に、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力した後、制御用仮想計算機を回復させることを特徴とする、制御用仮想計算機の障害情報採取方法。
【請求項３】
請求項１記載の制御用仮想計算機の障害情報採取方法において、さらに仮想計算機制御コードに仮想計算機システム外部からコマンドにより操作出来る方法も設け、仮想計算機システム外部からのコマンド操作を契機として、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力することを特徴とする、制御用仮想計算機の障害情報採取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムの障害情報採取方法に係り、特に制御用仮想計算機で動作するＯＳと、仮想計算機システムを制御するためのアプリケーションの障害情報を、適切に採取する技術に関するものである。
【背景技術】
【０００２】
仮想計算機システムの保守性を向上させるためには、障害要因を解析するための情報を適切に採取出来ることが重要である。
【０００３】
仮想計算機システムの制御方法として、仮想計算機システムを制御するために使用する制御用仮想計算機を設け、制御用仮想計算機でＯＳと、仮想計算機システムを制御するためのアプリケーションを走行させて、仮想計算機システムを制御する方法が、例えば非特許文献１に記載されている。
【０００４】
また、仮想計算機制御コードの異常を検出した時に、仮想計算機が使用しているメモリ領域の情報を外部記憶装置に転送するダンプ採取方法が、特許文献１に記載されている。
【０００５】
【特許文献１】特開2002-32244号公報
【非特許文献１】「Xen and the Art of Virtualization」 Paul Barham他著http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のダンプ採取方法では、仮想計算機制御コードが制御用仮想計算機に対してメモリ領域を仮想的に外部記憶装置として見せる仮想外部記憶装置に対して、制御用仮想計算機で走行するＯＳと仮想計算機システムを制御するためのアプリケーションが書き込む障害情報の採取には、適用できないという問題がある。
【０００７】
本発明の課題は、制御用仮想計算機の障害発生時、および外部からのコマンド操作を契機として、制御用仮想計算機の障害情報を適切に採取する方法を提供することにある。
【課題を解決するための手段】
【０００８】
実計算機に複数の仮想計算機が走行する仮想計算機システムにおいて、仮想計算機システムを制御するために使用する制御用仮想計算機と、仮想計算機制御コードが制御用仮想計算機に対してメモリ領域を仮想的に外部記憶装置として見せる仮想外部記憶装置とを有し、前記制御用仮想計算機にはオペレーティングシステム（ＯＳ）と、仮想計算機システムを制御するためのアプリケーションが走行し、ＯＳとアプリケーションは障害情報を仮想外部記憶装置に書き込み、仮想計算機制御コードには制御用仮想計算機の障害を監視する手段と、仮想外部記憶装置内の障害情報の整合性を保証する手段と、仮想外部記憶装置内の障害情報を実外部記憶装置に出力する手段とを設け、仮想計算機制御コードが制御用仮想計算機の障害を検出した時に、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力する。
【０００９】
さらに、仮想計算機制御コードに制御用仮想計算機を回復させる手段も設け、仮想計算機制御コードは制御用仮想計算機の障害を検出した場合に、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力した後、制御用仮想計算機を回復させる。
【００１０】
さらに、仮想計算機制御コードに仮想計算機システム外部からコマンドにより操作出来る手段も設け、仮想計算機システム外部からのコマンド操作を契機として、仮想外部記憶装置内の障害情報の整合性を保証して実外部記憶装置に出力する。
【発明の効果】
【００１１】
本発明の障害情報採取方法により、制御用仮想計算機で走行するＯＳと仮想計算機システムを制御するためのアプリケーションの障害情報を適切に採取することが可能となり、仮想計算機システムの保守性を向上させる効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、図面を使用して本発明を実施する場合の一形態を具体的に説明をする。
【００１３】
図１は、本発明実施の一形態を示すシステム構成図である。実計算機（１００）において、仮想計算機制御コード（１８０）が走行し、仮想計算機制御コード（１８０）は論理的な区画で構成される仮想計算機（１１０）（１１１）（１１２）を作り出す。このうち、仮想計算機（１１１）（１１２）はユーザ仮想計算機であり、ＯＳ（１３１）（１３２）とユーザアプリケーション（１２１）（１２２）が走行する。また仮想計算機（１１０）は仮想計算機システムを制御するために使用する制御用仮想計算機であり、ＯＳ（１３０）と制御アプリケーション（１２０）が走行し、仮想計算機制御コード（１８０）が制御用仮想計算機（１１０）に対してメモリ領域（１４０）を仮想的に外部記憶装置として見せる仮想外部記憶装置（１５０）を有しており、ここに制御用仮想計算機（１１０）で走行するＯＳ（１３０）と制御アプリケーション（１２０）は障害情報を書き込む。また、仮想計算機制御コード（１８０）は状態監視部（１６０）を有し、常に制御用仮想計算機（１１０）の障害を監視している。状態監視部（１６０）は制御用仮想計算機（１１０）の障害を検知すると、障害処理部（１７０）に障害の発生を通知する、障害発生の通知を受けた障害処理部（１７０）は、仮想外部記憶装置（１５０）に書き込まれている障害情報の整合性を保証した後、仮想外部記憶装置（１５０）の障害情報を実外部記憶装置（１９０）に転送し、制御用仮想計算機（１１０）をディアクティベイト（論理的な電源断)させた後、アクティベイト(論理的な電源投入)させることにより障害となった制御用仮想計算機（１１０）を回復させる。
【００１４】
なお同図では、簡略化のため制御用仮想計算機は１つ、ユーザ仮想計算機は２つとして記述しているが、本発明において制御用仮想計算機、ユーザ仮想計算機はそれぞれ複数個とされ、この数に限定されるものではないことは勿論である。
【００１５】
状態監視部（１６０）は、次に示す２つの方法で制御用仮想計算機の障害を監視する。
【００１６】
まず第１に、制御用仮想計算機のＯＳが自発的に発行する障害通知を監視する方法である。図２はこの障害通知を監視する処理を示した図である。予め制御用仮想計算機（１１０）で走行するＯＳ（１３０）内の致命的障害通知部（２００）に対して、命令が実行された際に仮想計算機制御コードに割込みが発生する通知命令（２１０）を設定しておく。制御用仮想計算機（１１０）で走行するＯＳ（１３０）は致命的障害を検知すると、致命的障害通知部（２００）を呼び出し、その結果、通知命令（２１０）が実行されて割込み（２２０）が発生し、仮想計算機制御コードの状態監視部（１６０）は、この割込み（２２０）を検知して、制御用仮想計算機（１１０）に障害が発生したことを検知する。
【００１７】
第２に、制御用仮想計算機の正常動作を定期的に監視する方法である。図３はこの正常動作を定期的に監視する処理を示した図である。状態情報通知アプリケーション（３００）は上述の制御アプリケーション（１２０）のうちの１つであり、一定時間毎に仮想計算機制御コード（１８０）に対して状態情報（３２０）を送信する。これを受信した仮想計算機制御コード（１８０）は、状態情報（３２０）の受信時刻を状態情報記憶部（３１０）に記録する。一方、状態監視部（１６０）は、一定時間毎に状態情報記憶部（３１０）に記録されている状態情報（３２０）の受信時刻を読み出す(３３０)。状態監視部（１６０）は、状態情報の受信時刻と現在の時刻の差分値を計算し、差分値が規定値よりも大きい場合、制御用仮想計算機（１１０）に障害が発生したことを検知する。
【００１８】
状態監視部（１６０）は、制御用仮想計算機（１１０）の障害を検知すると、障害処理部（１７０）に障害の発生を通知する（３４０）。
【００１９】
図４は、上述図３で示した制御用仮想計算機の正常動作を定期的に監視する方法で制御用仮想計算機の障害を検知した場合に、障害処理部が行う処理を示した図である。制御用仮想計算機（１１０）の障害発生通知を受けた障害処理部(１７０)は、ファイルシステム（４００）を書き込み不可で再マウントさせる仮想割込みキー入力（４１０）を、制御用仮想計算機（１１０）のＯＳ（１３０）に対して行う。この仮想割込みキー入力（４１０）を受け付けたＯＳ（１３０）は、ファイルシステム（４００）を書き込み不可で再マウントする。その後、障害処理部（１７０）は、マウントされているファイルシステムの同期を行わせる仮想割込みキー入力（４２０）を制御用仮想計算機（１１０）のＯＳ（１３０）に対して行う。この仮想割込みキー入力（４２０）を受け付けたＯＳ（１３０）は、メモリにキャッシュされているファイルシステム（４００）の障害情報を仮想外部記憶装置（１５０）に対して全て書き込む（４３０）。以上により、制御アプリケーション（１２０）から仮想外部記憶装置（１５０）に対する障害情報の書き込みが無いことを保証できると共に、メモリにキャッシュされているファイルシステム（４００）の障害情報が仮想外部記憶装置（１５０）に全て書き込まれていることを保証することができ、仮想外部記憶装置（１５０）内の障害情報の整合性を保証することができる。さらにこの後、障害処理部（１７０）は、仮想外部記憶装置（１５０）の障害情報を実外部記憶装置に転送し（４４０）、制御用仮想計算機（１１０）をディアクティベイト（論理的な電源断）させた後、アクティベイト(論理的な電源投入)させることにより障害となった制御用仮想計算機（１１０）を回復させる。
【００２０】
以上の通り、上述図３で示した制御用仮想計算機（１１０）の正常動作を定期的に監視する方法で制御用仮想計算機（１１０）の障害を検出した場合には、制御用仮想計算機（１１０）で動作するＯＳ（１３０）、および制御アプリケーション（１２０）が完全に止まっていることが保証できないので、仮想外部記憶装置（１５０）内の障害情報の整合性の保証が必要となるが、一方、上述図２で示した制御用仮想計算機のＯＳ（１３０）が自発的に発行する障害通知を監視する方法では、制御用仮想計算機（１１０）で動作するＯＳ（１３０）、および制御アプリケーション（１２０）が完全に止まっていることが保証されるので、仮想外部記憶装置内の障害情報の整合性を保証する処理は必要なく、障害処理部(１７０)は、仮想外部記憶装置（１５０）の障害情報を実外部記憶装置に転送（４４０）する処理のみを行ない、その後、仮想外部記憶装置（１５０）の障害情報を実外部記憶装置に転送し（４４０）、制御用仮想計算機（１１０）をディアクティベイト（論理的な電源断)させた後、アクティベイト(論理的な電源投入)させることにより障害となった制御用仮想計算機（１１０）を回復させる。
【００２１】
また、図５は、仮想計算機システム外部からのコマンド操作により、仮想外部記憶装置内の障害情報の整合性を保証して、実外部記憶装置に転送する処理を示した図である。外部コンソール（５００）より、仮想外部記憶装置（１５０）内の障害情報を実外部記憶装置（１９０）に転送するコマンド要求（５１０）を受けた障害処理部（１７０）は、仮想外部記憶装置（１５０）内の障害情報の整合性を保証して、実外部記憶装置（１９０）に転送する。仮想計算機システム外部からのコマンド操作による仮想外部記憶装置（１５０）の障害情報整合性保証、および実外部記憶装置（１９０）への転送は、上述図４の障害発生を契機とする仮想外部記憶装置（１５０）の障害情報整合性保証、および実外部記憶装置（１９０）への転送と、開始する契機が異なるのみであり、処理内容は障害発生を契機とする場合と同様である。これにより、仮想計算機システム稼動中の任意の時点で、仮想外部記憶装置（１５０）内の障害情報を実外部記憶装置（１９０）に転送することも可能である。
【００２２】
以上述べたように、本実施例によれば、実計算機で複数の仮想計算機が走行する仮想計算機システムにおいて、制御用仮想計算機における障害発生、および仮想計算機システム稼動中のコマンド操作を契機として、制御用仮想計算機で走行するＯＳと仮想計算機システムを制御するアプリケーションの障害情報を採取することができ、また、障害発生時には、制御用仮想計算機を回復させる方法を提供する事が出来る。
【産業上の利用可能性】
【００２３】
制御用仮想計算機で走行するＯＳと仮想計算機システムを制御するアプリケーションの障害情報を適切に採取することが可能となり、高い保守性が要求される仮想計算機システムに適用する事が出来る。
【図面の簡単な説明】
【００２４】
【図１】本発明の仮想計算機システムで制御用仮想計算機の障害情報採取方法を実現する構成の一例を示す図である。
【図２】制御用仮想計算機のＯＳが発行する障害通知を監視する動作の一例を示す図である。
【図３】制御用仮想計算機の正常動作を監視する動作の一例を示す図である。
【図４】制御用仮想計算機の障害発生通知を受けた障害処理部が行う動作の一例を示す図である。
【図５】外部コンソールよりコマンド要求を受けた障害処理部が行う動作の一例を示す図である。
【符号の説明】
【００２５】
１００…実計算機、１１０…制御用仮想計算機、１１１、１１２… ユーザ仮想計算機、１２０…制御アプリケーション、１２１、１２２…ユーザアプリケーション、１３０、１３１、１３２…ＯＳ、１４０…メモリ領域、１５０…仮想外部記憶装置、１６０…状態監視部、１７０…障害処理部、１８０…仮想計算機制御コード、１９０…実外部記憶装置、２００…致命的障害通知部、２１０…通知命令、２２０…割込み、３００…状態情報通知アプリケーション、３１０…状態情報記憶部、３２０…状態情報の送信、３３０…状態情報の読み出し、４００…ファイルシステム、４１０…仮想割込みキー入力、４２０…仮想割込みキー入力、４３０…障害情報転送、４４０…障害情報転送、５００…外部コンソール、５１０…コマンド要求。
【図１】
2008217728.tif 000003
【図２】
2008217728.tif 000004
【図３】
2008217728.tif 000005
【図４】
2008217728.tif 000006
【図５】
2008217728.tif 000007