(57)【特許請求の範囲】
【請求項１】
記憶装置及び演算処理装置を有するとともに、前記演算処理装置及び前記記憶装置により、オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザの処理と、前記記憶装置及び前記演算処理装置を含むシステムの制御を行なうファームウェアの処理が、それぞれ実行される情報処理装置において、
前記ハイパーバイザは、
実行中のオペレーティングシステムのエラーを検出した場合、前記エラーが検出されたオペレーティングシステムを停止し、
前記ファームウェアは、
前記エラーが検出されたオペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザを停止し、
停止したオペレーティングシステムが使用するメモリ領域を、停止した前記オペレーティングシステムのカーネルが使用していた第１のメモリ領域とは異なる第２のメモリ領域に変更し、
停止した前記ハイパーバイザを起動させ、
起動した前記ハイパーバイザは、
停止した前記オペレーティングシステムを前記第２のメモリ領域を使用領域として起動させ、
起動した前記オペレーティングシステムは、
前記エラーを検出したオペレーティングシステムの停止に応じて停止したプログラムを再開し、
前記仮想マシンを制御するハイパーバイザが稼動した状態で、前記ハイパーバイザが使用するメモリ領域から読み出したデータを、ハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する情報処理装置。
【請求項２】
前記情報処理装置において、
起動した前記オペレーティングシステムはさらに、
前記第１のメモリ領域から読み出したデータを、オペレーティングシステムのダンプファイルとしてファイルに書き出す処理を実行する請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置はさらに、
前記記憶装置及び前記演算処理装置をそれぞれ有する一又は複数のシステムボードをそれぞれ有する複数の物理パーティションに分割され、
前記複数の物理パーティションは、オペレーティングシステムが稼動する仮想マシンに対応する論理ドメインと、前記論理ドメインを制御するハイパーバイザと、前記ファームウェアとをそれぞれ有する請求項１又は２記載の情報処理装置。
【請求項４】
前記ファームウェアはさらに、
前記ハイパーバイザを停止した後、前記第１のメモリ領域の内容を保持したまま、前記ハイパーバイザが使用するメモリ領域を前記第２のメモリ領域に変更し、少なくとも変更後の前記第２のメモリ領域を初期化した後に、前記ハイパーバイザを起動する請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ファームウェアはさらに、
前記ハイパーバイザが使用していた領域のダンプを行うか否かを示すフラグ情報を格納し、
前記フラグ情報が、前記ハイパーバイザが使用していた領域のダンプを行うことを示す場合、前記第１のメモリ領域から呼び出したデータをハイパーバイザのダンプファイルとしてファイルに書き出す請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ハイパーバイザはさらに、
前記フラグ情報に基づいて、前記第１のメモリ領域から読み出したデータをハイパーバイザのダンプファイルとしてファイルに書き出す他の論理ドメインを実行する請求項５記載の情報処理装置。
【請求項７】
前記ファームウェアはさらに、
前記データをハイパーバイザのダンプファイルとしてファイルに書き出した後に、前記フラグ情報を初期化する請求項６記載の情報処理装置。
【請求項８】
前記ファームウェアはさらに、
前記データをハイパーバイザのダンプファイルとしてファイルに書き出した後に、前記第１のメモリ領域を資源として開放する請求項１乃至７のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリダンプ機能を有する情報処理装置に関する。
【背景技術】
【０００２】
近年、UNIX（登録商標）サーバ、IAサーバが基幹システムに導入されるようになり、UNIX（登録商標）サーバ、IAサーバの高可用性が重要視されている。一般的に、システムに致命的なエラーが発生した場合はシステムを緊急停止（パニック）させて、その原因を調査するためにメモリダンプをディスクに保存している。
【０００３】
システムを停止している間は、システムを使用できないので、速やかにシステムを再起動することが重要な要件となる。
【０００４】
しかし、近年では、実装メモリの容量がテラバイト（TB）オーダのサーバが登場し、このようなシステムでは、メモリダンプを採取するのに非常に時間がかかり、速やかにシステムを再起動することができなくなっている。
【０００５】
また、メモリダンプをディスク上に保存せず、緊急停止時のメモリ内容を別のメモリ上に保存する方法や障害発生時のメモリ内容をダンプ格納領域に保存する際、メモリの一部を保存し、再起動後に保存していないメモリ内容をダンプファイルに変換する方法が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−２１２８３６号公報
【特許文献２】特開２００１−２２９０５３号公報
【特許文献３】特開２００６−７２９３１号公報
【特許文献４】特開２００５−１２２３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法では、異常発生時のメモリダンプを別のメモリやディスクに保存しているため、保存するメモリダンプのサイズが大きい場合は、メモリのコピーに時間がかかり、速やかにシステムを再起動することができないという問題があった。
【０００８】
また、オペレーティングシステムが致命的なエラーを検出して、システムを緊急停止する場合、異常を検出したオペレーティングシステムがダンプを採取するため、ダンプ採取処理中に再度異常を検出して、ハングアップが発生するなどの二次被害が発生することがあるという問題があった。
【０００９】
１つの側面では、本発明は、再起動が必要となる異常を検出した場合、速やかに業務を再開させて、原因調査のためのメモリダンプを採取することを課題とする。
【課題を解決するための手段】
【００１０】
１つの側面では、実施の形態の情報処理装置は、記憶装置及び演算処理装置を有するとともに、前記演算処理装置及び前記記憶装置により、オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザの処理と、前記記憶装置及び前記演算処理装置を含むシステムの制御を行なうファームウェアの処理が、それぞれ実行される。
【００１１】
前記ハイパーバイザは、実行中のオペレーティングシステムのエラーを検出した場合、前記エラーが検出されたオペレーティングシステムを停止する。
【００１２】
前記ファームウェアは、前記エラーが検出されたオペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザを停止し、停止したオペレーティングシステムが使用するメモリ領域を、停止した前記オペレーティングシステムのカーネルが使用していた第１のメモリ領域とは異なる第２のメモリ領域に変更し、停止した前記ハイパーバイザを起動させる。
【００１３】
起動した前記ハイパーバイザは、停止した前記オペレーティングシステムを前記第２のメモリ領域を使用領域として起動させる。
【００１４】
起動した前記オペレーティングシステムは、前記エラーを検出したオペレーティングシステムの停止に応じて停止したプログラムを再開し、前記仮想マシンを制御するハイパーバイザが稼動した状態で、前記ハイパーバイザが使用するメモリ領域から読み出したデータを、ハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する。
【発明の効果】
【００１５】
１つの実施の形態の情報処理装置によれば、再起動が必要となる異常を検出した場合、速やかに業務を再開させて、原因調査のためのメモリダンプを採取することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態に係るサーバのハードウェア構成図である。
【図２】実施の形態に係るサーバと機能との対応関係を示す図である。
【図３】実施の形態に係る物理パーティションの機能ブロック図である。
【図４】実施の形態に係るファームウェアの構成図である。
【図５】実施の形態に係るハイパーバイザの構成図である。
【図６】実施の形態に係るOSの構成図である。
【図７Ａ】第１の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図７Ｂ】第１の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図７Ｃ】第１の実施の形態に係るメモリダンプ生成処理の変形例のフローチャートである。
【図８】HVダンプ対象領域情報の例である。
【図９Ａ】第２の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図９Ｂ】第２の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図９Ｃ】第２の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図１０】カーネルダンプ対象領域情報の例である。
【図１１】ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理のフローチャートである。
【図１２】ダンプ採取用ドメインによるメモリダンプの採取を示す図である。
【図１３】ダンプ採取用ドメインによるメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
【図１４】メモリDynamic Reconfiguration機能を用いたカーネルのメモリダンプ生成処理のフローチャートである。
【図１５】メモリDynamic Reconfiguration機能を用いたメモリダンプの採取を示す図である。
【図１６】メモリDynamic Reconfiguration機能を用いたメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
【図１７】第３の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図１８Ａ】第４の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図１８Ｂ】第４の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【図１９】稼動中のハイパーバイザのメモリダンプ生成処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら本発明の実施の形態を説明する。
図１は、実施の形態に係るサーバのハードウェア構成図である。
【００１８】
サーバ（情報処理装置）１０は、システムボード１１−ｉ（ｉ＝１〜３）、サービスプロセッサ（ＳＰ）２１、ディスクユニット３１、および通信インタフェース４１を備える。
【００１９】
システムボード１１−ｉ、サービスプロセッサ２１、ディスクユニット３１、および通信インタフェース４１は、バス５１を介して接続されている。
【００２０】
システムボード１１−ｉは、Central Processing Unit（ＣＰＵ）１２−ｉ−ｋ（ｋ＝１、２）、不揮発性メモリ１４−ｉ、およびメモリ１３−ｉ−ｋを備える。
【００２１】
サービスプロセッサ２１は、サーバ１０の制御、サーバ１０内の物理パーティションの制御等を行う装置である。サービスプロセッサ２１は、ＣＰＵ２２およびメモリ２３を備える。サービスプロセッサ２１は、制御部の一例である。
【００２２】
ＣＰＵ２２は、サーバ１０の制御、サーバ１０内の物理パーティションの制御等の各種処理を行う。
【００２３】
メモリ２３は、サービスプロセッサ２１で用いられるデータを一時的に格納する。メモリ２３は、例えば、RAMである。
【００２４】
ディスクユニット３１は、ハードディスクドライブ（ＨＤＤ）３２−ｉ（ｉ＝１〜３）を備える。
【００２５】
ＨＤＤ３２は、サーバ１０で使用されるデータを格納する装置である。ＨＤＤ３２は、記憶手段の一例である。
【００２６】
通信インタフェース４１は、サーバ１０と接続する装置と通信を行うインタフェースである。
【００２７】
図２は、実施の形態に係るサーバと機能との対応関係の一例を示す図である。
サーバ１０は、２つの物理パーティション６１−ｋ（ｋ＝１、２）に分割して運用されている。尚、明細書内において、物理パーティション６１−１、６１−２をそれぞれ物理パーティション＃０、物理パーティション＃１と表記する場合がある。
【００２８】
物理パーティション＃０、＃１は、サービスプロセッサ２１により制御される。物理パーティション＃０、＃１に含まれるＣＰＵは、処理部の一例である。
【００２９】
システムボード１１−１、１１−２から構成される物理パーティション＃０は、さらに物理パーティション＃０内で４つの論理ドメイン＃０〜＃３に分割して、各論理ドメイン＃０〜＃３で独立したオペレーティングシステム（OS）が稼動している。また、ハイパーバイザ（HV）＃０が、物理パーティション＃０内の物理リソースと各論理ドメイン＃０〜＃３との対応関係を制御する。
【００３０】
システムボード１１−３から構成される物理パーティション＃１内では、論理ドメイン＃４でオペレーティングシステム（OS）が稼動している。またハイパーバイザ＃１が、物理パーティション＃１内の物理リソースと論理ドメイン＃４との対応関係を制御する。
【００３１】
図３は、実施の形態に係る物理パーティションの機能ブロック図である。
物理パーティション６１−１は、論理ドメイン２０１−ｍ（ｍ＝１〜４）、ファームウェア（ＦＷ）３１１、およびハイパーバイザ（HV）３５１を備える。
【００３２】
図３の物理パーティション６１−１は、図２の物理パーティション６１−１に対応する。
【００３３】
尚、論理ドメイン２０１−１〜２０１−４は、それぞれ図２で示した各論理ドメイン＃０〜＃３に対応する。
【００３４】
尚、明細書内において、論理ドメイン２０１−１は、制御ドメイン＃０と表記する場合がある。
【００３５】
また、明細書内において、論理ドメイン２０１−４は、ダンプ専用ドメイン＃３またはダンプ採取用ドメイン２０１−４と表記する場合がある。
【００３６】
以下、特に限定ない限り論理ドメインとは仮想マシンを示す。
論理ドメイン２０１−ｍは、ＣＰＵ２０２−ｍ−ｋ（ｋ＝１、２）、メモリ２０３−ｍ、およびディスク２０４−ｍを備える。以下、特に限定ない限りＣＰＵ２０２、メモリ２０３、およびディスク２０４は、それぞれ仮想ＣＰＵ、仮想メモリ、および仮想ディスクである。
【００３７】
ＣＰＵ２０２−ｍ−ｋは、各種処理を実行する。   
メモリ２０３−ｍは、ディスク２０４−ｍから読み出された、各種プログラムやデータを格納する。
【００３８】
ファームウェア３１１は、サーバ１０全体（複数の物理パーティション６１−１、６１−２）の制御を行い、例えば、ハードウェアの初期化、メモリ診断、温度監視などを行う。ファームウェア３１１には、図１のサービスプロセッサ２１、およびシステムボード１１−１、１１−２の不揮発性メモリ１４−１、１４−２上に展開されるPower On Self Test（ＰＯＳＴ）が含まれる。ここで、Power On Self Test（ＰＯＳＴ）とは、システム起動時にハードウェアリソースの診断と初期化を実行するプログラムである。
【００３９】
ハイパーバイザ３５１は、論理ドメイン２０１−ｍ、および論理ドメイン２０１−ｍ上で稼動するオペレーティングシステム（OS）４０１−ｍを制御する。ハイパーバイザ３５１は、図１のシステムボード１１−１，１１−２のメモリ１３−１−１、１３−１−２、１３−２−１、１３−２−２上に展開されＣＰＵ１２−１−１、１２−１−２、１２−２−１、１２−２−２により実行される。
【００４０】
図３の下部は、物理パーティション６１−１内のソフトウェアを示す。
物理パーティション６１−１内の各論理ドメイン＃０〜＃３で、OS４０１−ｍが稼動している。
【００４１】
OS４０１−１〜４０１−４は、それぞれ論理ドメイン２０１−１〜２０１−４のオペレーティングシステムに対応する。
【００４２】
図４は、実施の形態に係るファームウェアの詳細な構成図である。
ファームウェア３１１は、ダンプ対象領域情報/HVダンプフラグ格納処理部３１２、ダンプ対象領域情報/HVダンプフラグ格納領域３１３、HVダンプフラグ設定部３１４、メモリ初期化処理部３１５、HV使用領域変更部３１６、HV再起動命令部３１７、ダンプ対象領域情報/HVダンプフラグ通知部３１８、PA-RAマッピング通知部３１９、メモリ開放処理部３２０、HVダンプフラグリセット処理部３２１を備える。
【００４３】
ダンプ対象領域情報/HVダンプフラグ格納処理部３１２は、ダンプ対象領域情報およびHVダンプフラグをダンプ対象領域情報/HVダンプフラグ格納領域３１３に格納する。
【００４４】
ダンプ対象領域情報/HVダンプフラグ格納領域３１３は、ダンプ対象領域情報およびHVダンプフラグが格納される領域である。ここでダンプ対象領域情報は、ダンプ対象領域を示す情報であり、ダンプ対象領域の開始アドレス（PA Base）およびサイズの情報を含む。HVダンプフラグは、ハイパーバイザが使用していたメモリ領域のダンプファイルを生成するか否かを示す制御情報である。また、HVダンプフラグは、稼動中のハイパーバイザのメモリダンプを採取するか否かを示す情報（HVライブダンプフラグ）を含むこともできる。
【００４５】
HVダンプフラグ設定部３１４は、HVダンプフラグの値を設定する。例えば、HVダンプフラグ設定部３１４は、HVダンプを行なう場合にHVダンプフラグをTRUEに設定する。
【００４６】
メモリ初期化処理部３１５は、メモリの初期化を行う。
HV使用領域変更部３１６は、ハイパーバイザ３５１が使用するメモリの領域を変更する。
【００４７】
HV再起動命令部３１７は、ハイパーバイザ３５１に再起動を指示する。
ダンプ対象領域情報/HVダンプフラグ通知部３１８は、ダンプ対象領域情報およびHVダンプフラグを通知する。
【００４８】
PA-RAマッピング通知部３１９は、OSの処理に必要なPA-RAマッピングをハイパーバイザ３５１へ通知し、ハイパーバイザ３５１のPA-RAマッピング処理部３６８は、通知されたPA-RAマッピングを用いて物理アドレス(PA)から実アドレス(RA)への、あるいは実アドレス(RA)から物理アドレス(PA)への変換を行う。
【００４９】
メモリ開放処理部３２０は、メモリの開放処理を行う。
HVダンプフラグリセット処理部３２１は、HVダンプフラグをリセットする。詳細には、HVダンプフラグリセット処理部３２１は、HVダンプフラグをFALSEに設定する。
【００５０】
図５は、実施の形態に係るハイパーバイザの詳細な構成図である。
ハイパーバイザ３５１は、ドメイン緊急停止指示部３５２、OSパニック指示部３５３、HVダンプ対象領域通知処理部３５４、HVダンプ対象領域情報/HVダンプフラグ格納処理部３５５、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６、HV再起動処理部３５７、OS再起動命令部３５８、HVメモリダンプフラグ読出・送信部３５９、HVダンプ対象領域読出処理部３６０、メモリ管理部３６１、メモリ開放処理部３６２、HVダンプフラグリセット処理部３６３、HVダンプフラグ通知部３６４、ダンプ専用ドメイン起動処理部３６５、カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部３６６、カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域３６７、PA-RAマッピング処理部３６８、PA-RAマッピング情報格納域３６９、割り込み処理部３７０、メモリダンプ処理起動部３７１、メモリ初期化処理部３７２、およびカーネルダンプフラグリセット処理部３７３を備える。
【００５１】
ドメイン緊急停止指示部３５２は、ドメイン２０１に緊急停止を指示する。
OSパニック指示部３５３は、OS４０１に緊急停止（パニック）を指示する。
【００５２】
HVダンプ対象領域通知処理部３５４は、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６からHVダンプ対象領域情報を読み出して通知する。
【００５３】
HVダンプ対象領域情報/HVダンプフラグ格納処理部３５５は、HVダンプ対象領域情報およびHVダンプフラグをHVダンプ対象領域情報/HVダンプフラグ格納領域３５６に格納する。
【００５４】
HVダンプ対象領域情報/HVダンプフラグ格納領域３５６は、HVダンプ対象領域情報およびHVダンプフラグを格納する。HVダンプ対象領域情報は、ハイパーバイザ３５１が使用しているメモリ領域（HVダンプ対象領域）を示す情報であり、メモリ領域の開始アドレス（PA Base）およびサイズの情報を含む。HVダンプフラグは、ハイパーバイザが使用していたメモリ領域のダンプファイルを生成するか否かを示す制御情報である。
【００５５】
HV再起動処理部３５７は、ハイパーバイザ３５１を停止させ、ハイパーバイザ３５１の再起動を行う。
【００５６】
OS再起動命令部３５８は、OS４０１に再起動を指示する。
HVメモリダンプフラグ読出・送信部３５９は、HVダンプフラグを読み出して送信する。
【００５７】
HVダンプ対象領域読出処理部３６０は、HVダンプ対象領域情報で示されるメモリ領域の内容を読み出し、送信する。または、HVダンプ対象領域読出処理部３６０は、現在のハイパーバイザ３５１が使用しているメモリ領域の内容を読み出し、送信する。
【００５８】
メモリ管理部３６１は、メモリを管理する。
メモリ開放処理部３６２は、メモリの開放処理を行う。
【００５９】
HVダンプフラグリセット処理部３６３は、HVダンプフラグをリセットする。詳細には、HVダンプフラグリセット処理部３６３は、例えば、HVダンプフラグをFALSEに設定する。
【００６０】
HVダンプフラグ通知部３６４は、HVダンプフラグを通知する。
ダンプ専用ドメイン起動処理部３６５は、ダンプ専用ドメインをファームウェアモードで起動する。ファームウェアモードとは、OSを起動しないモード、すなわちOSを起動する前に停止するモードである。
【００６１】
カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部３６６は、カーネルダンプ対象領域情報およびカーネルダンプフラグをカーネルダンプ対象領域情報/カーネルダンプフラグ格納領域３６７に格納する。
【００６２】
カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域３６７は、カーネルダンプ対象領域情報およびカーネルダンプフラグを格納する。カーネルダンプ対象領域情報は、パニック時にOS４０１のカーネルが使用していたメモリ領域（カーネルダンプ対象領域）を示す情報であり、メモリ領域の開始アドレス（RA Base）およびサイズの情報を含む。カーネルダンプフラグは、OS４０１のカーネルのメモリダンプを実行するか否かを示す情報である。さらに、カーネルダンプフラグは、どのような方法でカーネルのメモリダンプを採取するかを示すこともできる。カーネルダンプフラグは、例えば、０：カーネルのメモリダンプを採取しない、１：ダンプ採取用ドメインで採取、または２：メモリDynamic Reconfiguration機能を用いて採取というような情報である。カーネルダンプフラグは、OS４０１から受信しても良いし、ハイパーバイザ３５１が予め設定して保持していても良い。
【００６３】
PA-RAマッピング処理部３６８は、物理アドレス（ＰＡ）とリアルアドレス（ＲＡ）間のマッピングを行う。ＰＡはメモリの物理アドレスであり、ＲＡはドメイン（オペレーティングシステム）上の実アドレスである。
【００６４】
PA-RAマッピング情報格納域３６９は、ＰＡとＲＡ間のマッピングの情報を格納する。
割り込み処理部３７０は、OS４０１のカーネルのメモリダンプをする場合にＳ４０１に対して、割り込み処理させる。割り込み処理が受け付けられるとOS４０１のカーネルのメモリダンプが可能と判断されてOS４０１のカーネルのメモリダンプ処理に進み、受け付けられないと割り込み出来ないと判断してOS４０１のカーネルのメモリダンプ処理はせずに終了する。
【００６５】
メモリダンプ処理起動部３７１は、制御ドメイン２０１−１にハイパーバイザ３５１のメモリダンプ処理を起動させる。
【００６６】
メモリ初期化処理部３７２は、メモリの初期化を行う。
カーネルダンプフラグリセット処理部３７３は、カーネルダンプフラグをリセットする。例えば、カーネルダンプフラグリセット処理部３７３は、カーネルダンプフラグを削除または“０：カーネルのメモリダンプを採取しない”に設定する。
【００６７】
図６は、実施の形態に係るOSの詳細な構成図である。
OS４０１−ｍは、メモリ管理部４０２−ｍ、ファイル管理部４０３−ｍ、プロセス管理部４０４−ｍ、割り込み処理部４０５−ｍ、マッピング情報抽出・格納処理部４０６−ｍ、マッピング情報格納領域４０７−ｍ、HVメモリダンプ判断部４０８−ｍ、OS起動処理部４０９−ｍ、HVダンプ対象領域読出処理部の呼び出し部４１０−ｍ、カーネルダンプ対象メモリ読出処理部４１１−ｍ、HVダンプ採取処理部４１２−ｍ、カーネルダンプ採取処理部４１３−ｍ、パニック処理部４１４−ｍ、カーネルダンプ対象領域通知処理部４１５−ｍ、メモリDR組み込み処理部４１６−ｍ、メモリDR切り離し処理部４１７−ｍ、空きメモリ追加処理部４１８−ｍ、ダンプ専用ドメイン停止処理部４１９−ｍ、カーネルダンプフラグリセット処理部４２０−ｍ、およびカーネルダンプフラグ通知部４２１−ｍを備える。
【００６８】
メモリ管理部４０２−ｍは、OS４０１−ｍが使用するメモリ２０３−ｍを割り当てる。
ファイル管理部４０３−ｍは、ディスク上に格納されたデータであるファイルを管理する。
【００６９】
プロセス管理部４０４−ｍは、OS４０１−ｍが実行するプログラムのプロセスを管理する。
【００７０】
割り込み処理部４０５−ｍは、割り込み処理を行う。
マッピング情報抽出・格納処理部４０６−ｍは、メモリ２０３−ｍのダンプを取得および解析するために必要な情報を、マッピング情報格納領域４０７−ｍに格納する。
【００７１】
マッピング情報格納領域４０７−ｍは、メモリ２０３−ｍのダンプを取得および解析するために必要な情報を格納する。マッピング情報格納領域４０７−ｍが格納する情報は、例えば、カーネルのテキスト域、データ域、ヒープ域、スタック域等、各セグメントのマッピング情報(論理アドレス、物理アドレス、サイズ等)やアドレス変換テーブル、ページテーブル等、各種制御テーブルのマッピング情報である。
【００７２】
HVメモリダンプ判断部４０８−ｍは、HVダンプフラグがTRUEまたはFALSEであるか判定し、ハイパーバイザのメモリダンプを行うか判断する。
【００７３】
OS起動処理部４０９−ｍは、OS４０１−ｍを再起動する。
HVダンプ対象領域読出処理部の呼び出し部４１０−ｍは、HVダンプ対象領域読出処理部３６０を呼び出す。
【００７４】
カーネルダンプ対象メモリ読出処理部４１１−ｍは、カーネルダンプ対象領域（パニック時にOS４０１−ｍのカーネルが使用していたメモリ領域）のメモリ内容を読み出す。
【００７５】
HVダンプ採取処理部４１２−ｍは、HVダンプ対象領域読出処理部３６０からHVダンプ対象領域読出処理部３６０が読み出したメモリ内容を受信し、ダンプファイルを生成する。
【００７６】
カーネルダンプ採取処理部４１３−ｍは、読み出したカーネルダンプ対象領域のメモリ内容をファイルに保存（ダンプファイルを生成）する。
【００７７】
パニック処理部４１４−ｍは、ドメイン２０１−ｍを緊急停止（パニック）させる。
カーネルダンプ対象領域通知処理部４１５−ｍは、パニック時にOS４０１−ｍのカーネルが使用しているメモリ領域をハイパーバイザ３５１に通知する。
【００７８】
メモリDR組み込み処理部４１６−ｍは、ドメイン２０１−ｍにメモリ領域を組み込む。
メモリDR切り離し処理部４１７−ｍは、ドメイン２０１−ｍからメモリ領域を切り離す。
【００７９】
空きメモリ追加処理部４１８−ｍは、メモリ管理部４０２−ｍにダンプ済みのメモリ領域を通知する。
【００８０】
ダンプ専用ドメイン停止処理部４１９−ｍは、ダンプを採取した後にダンプを採取するドメイン（ダンプ専用ドメイン）を停止する。
【００８１】
カーネルダンプフラグリセット処理部４２０−ｍは、ハイパーバイザ３５１にカーネルダンプフラグのリセットを指示する。
【００８２】
カーネルダンプフラグ通知部４２１−ｍは、ハイパーバイザ３５１にカーネルダンプフラグを通知する。カーネルダンプフラグ通知部４２１−ｍは、カーネルのメモリダンプを実行する必要がある場合にカーネルダンプフラグをハイパーバイザ３５１に通知する。例えば、カーネルダンプフラグ通知部４２１−ｍは、カーネルのメモリダンプを採取しない場合はカーネルダンプフラグの値を“０：カーネルのメモリダンプを採取しない”、ダンプ採取用ドメインでカーネルのメモリダンプを採取する場合にカーネルダンプフラグの値を“１：ダンプ採取用ドメインで採取”、メモリDynamic Reconfiguration機能を用いてカーネルのメモリダンプを採取する場合にカーネルダンプフラグの値を“２：メモリDynamic Reconfiguration機能を用いて採取”とする。
【００８３】
（第１の実施の形態）
第１の実施の形態では、制御ドメインを用いてハイパーバイザのメモリダンプを採取する。
【００８４】
図７Ａ、７Ｂは、第１の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【００８５】
初期状態において、ドメイン２０１−１〜２０１−３およびＯＳ４０１−１〜４０１−３は、起動され運用状態となっており、ドメイン２０１−４およびＯＳ４０１−４は起動されていないものとする。
【００８６】
ステップＳ５０１において、ハイパーバイザ３５１は、致命的なエラーを検出する。
ステップＳ５０２において、ドメイン緊急停止指示部３５２は、運用状態の論理ドメイン、すなわち制御ドメイン２０１−１およびドメイン２０１−２、２０１−３に緊急停止を指示する。
【００８７】
ステップＳ５０３において、OS４０１−ｉ（ｉ＝１〜３）は、緊急停止指示を受信し、OS４０１−ｉを緊急停止させる。
【００８８】
ステップＳ５０４において、HVダンプ対象領域通知処理部３５４は、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６からHVダンプ対象領域情報を読み出し、ファームウェア３１１に通知する。HVダンプ対象領域情報は、ハイパーバイザ３５１が使用しているメモリ領域（ダンプ対象領域）を示す情報であり、メモリ領域の開始アドレス（PA Base）およびサイズの情報を含む。HVダンプ対象領域情報は、図８に示すような形式であり、ブロックの番号、ブロックの物理メモリの開始アドレス（PA Base）、およびブロックのサイズが対応付けられている。また、HV再起動処理部３５７は、ハイパーバイザ３５１を停止する（HVアボート）。
【００８９】
ステップＳ５０６において、ダンプ対象領域情報/HVダンプフラグ格納処理部３１２は、HVダンプ対象領域情報を受信する。
【００９０】
ステップＳ５０７において、ダンプ対象領域情報/HVダンプフラグ格納処理部３１２は、受信したHVダンプ対象領域情報をダンプ対象領域情報として、ダンプ対象領域情報/HVダンプフラグ格納領域３１３に格納する。また、HVダンプフラグ設定部３１４は、HVダンプフラグをTUREに設定し、ダンプ対象領域情報/HVダンプフラグ格納領域３１３に格納する。
【００９１】
ステップＳ５０８において、ファームウェア３１１は、メモリの内容を保持したまま、物理パーティションの再起動処理を開始する。
【００９２】
ステップＳ５０９において、メモリ初期化処理部３１５は、メモリの初期化処理を開始する。先ず、例えば、メモリの先頭のアドレスを初期化処理対象の領域として設定する。
【００９３】
ステップＳ５１０において、メモリ初期化処理部３１５は、ダンプ対象領域情報を参照し、初期化処理対象の領域がダンプ対象領域情報で指定される領域、すなわちダンプ対象領域であるか否か判定する。初期化処理対象の領域がダンプ対象領域である場合、初期化処理対象の領域の内容を保持したまま、制御はステップＳ５１２に進み、ダンプ対象領域でない場合、制御はステップＳ５１１に進む。
【００９４】
ステップＳ５１１において、メモリ初期化処理部３１５は、初期化処理対象の領域を初期化する。
【００９５】
ステップＳ５１２において、メモリ初期化処理部３１５は、ダンプ対象領域以外のすべての領域に対する初期化処理を行ったか判定する。ダンプ対象領域以外のすべての領域に対する初期化処理を行った場合、制御はステップＳ５１３に進み、ダンプ対象領域以外のすべての領域に対する初期化処理を行っていない場合、未処理の領域（例えば、ダンプ対象領域であるかチェック済みの領域の次のアドレス）を初期化処理対象の領域とし、制御はステップＳ５１０に戻る。
【００９６】
ステップＳ５１３において、HV使用領域変更部３１６は、ハイパーバイザ３５１が使用する領域をダンプ対象領域情報で示される領域以外の領域に変更する。なお、初期化処理対象の領域として、少なくともハイパーバイザ３５１が使用する変更後の領域を初期化対象としてもよい。
【００９７】
ステップＳ５１４において、HV再起動命令部３１７は、ハイパーバイザ３５１に再起動を指示する。ダンプ対象領域情報/HVダンプフラグ通知部３１８は、ダンプ対象領域情報/HVダンプフラグ格納領域３１３からダンプ対象領域情報およびHVダンプフラグを読み出し、ハイパーバイザ３５１に通知する。
【００９８】
ステップＳ５１５において、HVダンプ対象領域情報/HVダンプフラグ格納処理部３５５は、ダンプ対象領域情報およびHVダンプフラグを受信し、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６に格納する。尚、HVダンプ対象領域情報/HVダンプフラグ格納処理部３５５は、受信したダンプ対象領域情報をHVダンプ対象領域情報として格納する。
【００９９】
ステップＳ５１６において、HV再起動処理部３５７は、ハイパーバイザ３５１を再起動する。ただし、HVダンプ対象領域情報で指定されるメモリ領域は使用しない。
【０１００】
ステップＳ５１７において、OS再起動命令部３５８は、OS４０１−１〜４０１−３に再起動を指示する。
【０１０１】
ステップＳ５１８において、OS再起動処理部４０９−２、４０９−３は、それぞれOS４０１−２、４０１−３を再起動する。
【０１０２】
ステップＳ５１９において、OS４０１−２、４０１−３は、業務を再開する。
ステップＳ５２０において、OS４０１−２、４０１−３は、通常の運用状態となる。
【０１０３】
ステップＳ５２１において、OS再起動処理部４０９−１は、OS４０１−１を再起動する。
【０１０４】
ステップＳ５２２において、OS４０１−１は、業務を再開する。
ステップＳ５２３において、HVメモリダンプ判断部４０８−１は、ハイパーバイザ３５１にHVダンプフラグの送信を要求する。
【０１０５】
ステップＳ５２４において、HVメモリダンプフラグ読出・送信部３５９は、要求を受信すると、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６からHVダンプフラグを読み出し、OS４０１−１に送信する。
【０１０６】
ステップＳ５２５において、HVメモリダンプ判断部４０８−１は、HVダンプフラグを受信し、HVダンプフラグがTRUEであるか否か判定する。HVダンプフラグがTRUEの場合、制御はステップＳ５２７に進み、FALSEの場合、制御はステップＳ５３１に進む。
【０１０７】
ステップＳ５２６において、HVダンプ対象領域読出処理部の呼び出し部４１０−１は、HVダンプ対象領域読出処理部３６０を呼び出す。
【０１０８】
ステップＳ５２７において、HVダンプ対象領域読出処理部３６０は、HVダンプ対象領域情報で示されるメモリ領域の内容を読み出し、制御ドメインに送信する。
【０１０９】
ステップＳ５２８において、HVダンプ採取処理部４１２−１は、HVダンプ対象領域読出処理部３６０からHVダンプ対象領域読出処理部３６０が読み出したメモリ内容を受信し、受信したメモリ内容をファイルに書き出してダンプファイルを生成する。以下、ステップＳ５２９、Ｓ５３０とステップＳ５３１の処理が並列に実行される。
【０１１０】
ステップＳ５２９において、メモリ開放処理部３６２は、HVダンプ対象領域情報で指定されるメモリ領域を開放する。また、HVダンプフラグリセット処理部３６３は、HVダンプフラグをリセット、すなわちFALSEに設定する。HVダンプフラグ通知部３６４は、ファームウェア３１１にHVダンプフラグを通知する。
【０１１１】
ステップＳ５３０において、メモリ開放処理部３２０は、ダンプ対象領域情報をクリアする。また、HVダンプフラグリセット処理部３２１は、HVダンプフラグをリセット、すなわちFALSEに設定する。
【０１１２】
ステップＳ５３１において、OS４０１−１は、通常の運用状態となる。
第１の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してハイパーバイザおよびオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにハイパーバイザおよびオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
【０１１３】
ここで、第１の実施の形態に係るメモリダンプ生成処理の変形例について説明する。
変形例では、稼動中のハイパーバイザのメモリダンプの採取（ハイパーバイザのライブダンプと呼ぶ）が行われる。
【０１１４】
図７Ｃは、第１の実施の形態に係るメモリダンプ生成処理の変形例のフローチャートである。
【０１１５】
変形例のフローチャートは、図７Ａ、７Ｂの第１の実施の形態に係るメモリダンプ生成処理のフローチャートにステップＳ５３２、Ｓ５３３が追加され、ステップＳ５２５においてＮＯと判定された場合に、制御がステップＳ５３２に進むものである。
【０１１６】
図７Ｃでは、図７Ａ、７Ｂに対する変更箇所について記載し、その他の部分については同様であるため記載は省略されている。
【０１１７】
変形例において、例えば、HVダンプフラグのデータ構造を０：採取せず、１：異常時のHVダンプ、２：HVライブダンプのように変更することができる。HVメモリダンプ判断部４０８−１は、HVダンプフラグが１の場合、HVダンプフラグがTRUEと判定し、HVダンプフラグが０または２の場合、HVダンプフラグがFALSEと判定する。また、HVメモリダンプ判断部４０８−１は、HVダンプフラグが２の場合、HVダンプライブフラグがTRUEと判定する。
【０１１８】
ステップＳ５３２において、HVメモリダンプ判断部４０８−１は、HVライブダンプフラグがTRUEであるか否か判定する。HVダンプフラグがTRUEの場合（すなわち、HVダンプフラグが２の場合）、制御はステップＳ５３３に進み、FALSEの場合、制御はステップＳ５３１に進む。
【０１１９】
ステップＳ５３３において、HVライブダンプ処理が行われる。詳細には、HVダンプ対象領域読出処理部の呼び出し部４１０−１は、HVダンプ対象領域読出処理部３６０を呼び出す。HVダンプ対象領域読出処理部３６０は、稼動中のハイパーバイザ３５１が使用しているメモリ領域の内容を読み出し、制御ドメインに送信する。HVダンプ採取処理部４１２−１は、HVダンプ対象領域読出処理部３６０が読み出したメモリ内容を受信し、受信したメモリ内容をファイルに書き出してハイパーバイザのダンプファイルを生成する。
【０１２０】
上記のように、稼動中のハイパーバイザのメモリダンプの採取では、ハイパーバイザを停止・再起動しないまま、ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出している。
【０１２１】
（第２の実施の形態）
第２の実施の形態では、ハイパーバイザのメモリダンプに加えて、OSのカーネルのメモリダンプを行う。
【０１２２】
図９Ａ、９Ｂ、９Ｃは、第２の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【０１２３】
初期状態において、ドメイン２０１−１〜２０１−３およびＯＳ４０１−１〜４０１−３は、起動され運用状態となっており、ドメイン２０１−４およびＯＳ４０１−４は起動されていないものとする。
【０１２４】
ステップＳ６０１において、ハイパーバイザ３５１に致命的なエラーが発生する。
ステップＳ６０２において、ハイパーバイザ３５１は、致命的なエラーを検出する。
【０１２５】
ステップＳ６０３において、割り込み処理部３７０は、運用状態のＯＳ、すなわちOS４０１−ｉ（ｉ＝１〜３）に割り込み処理を通知し、OSパニック指示部３５３は、OS４０１−ｉにパニックを指示する。
【０１２６】
ステップＳ６０４において、パニック処理部４１４−ｉは、パニック指示を受信し、OS４０１−ｉをパニックさせる。
【０１２７】
ステップＳ６０５において、カーネルダンプ対象領域通知処理部４１５−ｉは、ハイパーバイザ３５１にカーネルダンプ対象領域情報を通知する。カーネルダンプ対象領域情報は、OS４０１−ｉのカーネルが使用しているメモリ領域（ダンプ対象領域）を示す情報であり、メモリ領域の開始アドレス（RA Base）およびサイズの情報を含む。カーネルダンプ対象領域情報は、図１０に示すような形式であり、ブロックの番号、ブロックのメモリの開始アドレス（RA Base）、およびブロックのサイズが対応付けられている。
【０１２８】
尚、ステップＳ６０４およびＳ６０５は、パニック指示を受信した論理ドメインごとにそれぞれ実行される。
【０１２９】
ステップＳ６０６において、PA-RAマッピング処理部３６８は、通知された開始アドレス（RA Base）をRA BaseからPA Baseの開始アドレス（PA Base）に変換するRA-PA変換を行う。
【０１３０】
ステップＳ６０７において、HVダンプ対象領域通知処理部３５４は、ハイパーバイザ３５１が使用しているメモリ領域を示すHVダンプ対象領域情報をファームウェア３１１に通知する。さらに、HVダンプ対象領域通知処理部３５４は、OS４０１−ｉから受信したカーネルダンプ対象領域情報をファームウェア３１１に通知する。尚、通知されるカーネルダンプ対象領域情報は、RA BaseからPA Baseに変換された開始アドレス（PA Base）およびサイズを含む。実施の形態では、停止した論理ドメインに対応する３個のカーネルダンプ対象領域情報が通知される。
【０１３１】
ステップＳ６０８において、ダンプ対象領域情報/HVダンプフラグ格納処理部３１２は、受信したHVダンプ対象領域情報および受信したカーネルダンプ対象領域情報をダンプ対象領域情報として、ダンプ対象領域情報/HVダンプフラグ格納領域３１３に格納する。また、HVダンプフラグ設定部３１４は、HVダンプフラグをTUREに設定し、ダンプ対象領域情報/HVダンプフラグ格納領域３１３に格納する。
【０１３２】
ステップＳ６０９において、HV再起動処理部３５７は、ハイパーバイザ３５１を停止する（HVアボート）。
【０１３３】
ステップＳ６１０において、メモリ初期化処理部３１５は、ダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。すなわち、メモリ初期化処理部３１５は、ハイパーバイザ３５１が使用していた領域とパニック時にOS４０１−ｉのカーネルが使用していた領域以外のメモリ領域を初期化する。
【０１３４】
ステップＳ６１１において、HV使用領域変更部３１６は、HV使用領域変更部３１６は、ハイパーバイザ３５１が使用する領域をダンプ対象領域情報で示される領域以外の領域に変更する。HV再起動命令部３１７は、ハイパーバイザ３５１に再起動を指示する。ダンプ対象領域情報/HVダンプフラグ通知部３１８は、ダンプ対象領域情報/HVダンプフラグ格納領域３１３からダンプ対象領域情報およびHVダンプフラグを読み出し、ハイパーバイザ３５１に通知する。ダンプ対象領域情報には、HVダンプ対象領域情報およびカーネルダンプ対象領域情報が含まれている。HVダンプ対象領域情報/HVダンプフラグ格納処理部３５５は、ダンプ対象領域情報の内のHVダンプ対象領域情報およびHVダンプフラグを受信し、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６に格納する。カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部３６６は、ダンプ対象領域情報の内のカーネルダンプ対象領域情報を受信し、カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域３６７に格納する。
【０１３５】
ステップＳ６１２において、HV再起動処理部３５７は、ハイパーバイザ３５１を起動する。
【０１３６】
ステップＳ６１３において、メモリ初期化処理部３７２は、カーネルダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。
【０１３７】
ステップＳ６１４において、PA-RAマッピング処理部３６８、ＯＳ再起動命令部３５８、およびダンプ専用ドメイン起動処理部３６５は、カーネルダンプフラグの値をチェックする。以下、カーネルダンプフラグの値に応じた処理が実行される。例えばPA-RAマッピング処理部３６８は、カーネルダンプフラグが“１：ダンプ採取用ドメインで採取”の場合、パニック発生時にＯＳ４０１−１〜４０１−３のカーネルが使用していたメモリのPAをダンプ採取用ドメイン２０４−４のRAに割り当てる。
【０１３８】
以下、ステップＳ６２１、ステップＳ６２２〜Ｓ６２６、およびステップＳ６３２〜Ｓ６３５の処理が別々に並列して実行される。
【０１３９】
ただし、カーネルダンプフラグが“１：ダンプ採取用ドメインで採取”の場合、ステップＳ６２６、Ｓ６３５は実行されず、“２：メモリDynamic Reconfiguration機能を用いて採取”の場合、ステップＳ６２１は実行されない。
【０１４０】
ここでは、ステップＳ６２１は、ダンプ採取用ドメイン２０４−４に関する処理であり、ステップＳ６２２〜Ｓ６２６は、制御ドメイン２０４−１に関する処理であり、ステップＳ６３２〜Ｓ６３５は、論理ドメイン２０４−２、２０４−３に関する処理である。
【０１４１】
ステップＳ６２１において、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理が行われる。ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理の詳細については後述する。
【０１４２】
ステップＳ６２２において、PA-RAマッピング処理部３６８は、ドメイン２０１−１の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS４０１−１を再起動してもパニック時のカーネルおよびパニック時のハイパーバイザ３５１が使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルおよびハイパーバイザが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
【０１４３】
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
【０１４４】
尚、パニック発生時にどの領域をカーネルおよびハイパーバイザ３５１が利用していたかは、HVダンプ対象領域情報およびカーネルダンプ対象領域情報を参照することにより判断される。
【０１４５】
ステップＳ６２３において、OS再起動命令部３５８は、OS４０１−１に再起動を指示する。また、OS再起動命令部３５８は、カーネルダンプフラグが“２：メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。指示を受信したOS起動処理部４０９−１は、OS４０１−１を起動する。
【０１４６】
ステップＳ６２４において、OS４０１−１は、業務を再開する。
ステップＳ６２５において、メモリDynamic Reconfiguration（DR）機能を用いたカーネルのメモリダンプ生成処理が行われる。メモリDR機能を用いたカーネルのメモリダンプ生成処理の詳細については後述する。  ステップＳ６２６において、ハイパーバイザのメモリダンプ生成処理が行われる。ステップＳ６２６は、図７ＢのステップＳ５２３〜Ｓ５３１の処理と同様であるため説明は省略する。
【０１４７】
ステップＳ６３２において、PA-RAマッピング処理部３６８は、ドメイン２０１−２，２０１−３の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS４０１−１を再起動してもパニック時のカーネルおよびパニック時のハイパーバイザ３５１が使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルおよびハイパーバイザが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
【０１４８】
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
【０１４９】
尚、パニック発生時にどの領域をカーネルおよびハイパーバイザ３５１が利用していたかは、HVダンプ対象領域情報およびカーネルダンプ対象領域情報を参照することにより判断される。
【０１５０】
ステップＳ６３３において、OS再起動命令部３５８は、OS４０１−２、４０１−３に再起動を指示する。また、OS再起動命令部３５８は、カーネルダンプフラグが“２：メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。指示を受信したOS起動処理部４０９−２、４０９−３は、OS４０１−２，４０１−３をそれぞれ起動する。
【０１５１】
ステップＳ６３４において、OS４０１−２，４０１−３は、それぞれ業務を再開する。
ステップＳ６３５において、メモリDR機能を用いたカーネルのメモリダンプ生成処理が行われる。
【０１５２】
以下、カーネルのメモリダンプ生成処理の詳細について説明する。
カーネルのメモリダンプ生成処理は、（１）ダンプ採取用ドメインによるメモリダンプを採取する方法（ステップＳ６２１）、または（２）メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法（ステップＳ６２６、Ｓ６３５）のいずれかが用いられる。
【０１５３】
（１）ダンプ採取用ドメインでメモリダンプを採取する方法
ダンプ採取用ドメイン２０１−４は、複数のドメイン２０１が存在するシステムでも、それぞれの論理ドメイン毎に用意する必要はなく、システムで1つあれば良い。ダンプ採取用ドメイン２０１−４が1つの場合、複数の論理ドメイン２０１で同時にパニックが発生した場合は１ドメインずつメモリダンプを採取することになるが、ダンプ採取が完了しているかどうかにかかわらず、速やかに業務が再開できるため、業務への影響はない。
【０１５４】
ダンプ採取用ドメイン２０１−４では、パニックが発生した論理ドメインの業務を引き継ぐ必要はないため、メモリダンプを採取するために必要となる下記のハードウェア資源があれば良い。
・パニックが発生した論理ドメインのOSのカーネルがパニック時に使用していた物理メモリ領域
・1個以上のCPU
・ダンプファイルを格納するディスクとディスクを使用するために必要なI/O資源
【０１５５】
図１１は、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理のフローチャートである。
【０１５６】
図１１は、図９ＢのステップＳ６２１に対応する。
ここでは、ＯＳ４０１−ｉのカーネルのメモリダンプ生成処理について説明する。
【０１５７】
ステップＳ６５１において、ダンプ専用ドメイン起動処理部３６５は、ダンプ採取用ドメイン２０１−４をファームウェアモードで起動する。ファームウェアモードとは、OSを起動しないモード、すなわちOSを起動する前に停止するモードである。OSを起動しないことにより、ダンプ対象領域が書き換えられてしまうことを防ぐ。
【０１５８】
ステップＳ６５２において、カーネルダンプ対象メモリ読出処理部４１１−４は、パニック発生時にオペレーティングシステム４０１−ｉのカーネルが使用していたメモリ領域（カーネルダンプ対象領域）を読み出す。尚、カーネルダンプ対象領域の情報（開始アドレス（RA Base）やサイズ等）は、ファームウェア３１１またはハイパーバイザ３５１からの通知により得る。
【０１５９】
ステップＳ６５３において、カーネルダンプ採取処理部４１３−４は、読み出したメモリ内容をファイルに書き出してダンプファイルを生成する。
【０１６０】
ステップＳ６５４において、ダンプ専用ドメイン停止処理部４１９−４は、ダンプ採取ドメイン２０１−４を停止する。そして、ダンプ専用ドメイン停止処理部４１９−４は、カーネルダンプ対象領域を使用可能な未使用のメモリ、すなわち空きメモリとするようにハイパーバイザ３５１のメモリ管理部３６１へ通知する。また、カーネルダンプフラグリセット処理部４２０−４は、ハイパーバイザ３５１にカーネルダンプフラグのリセットを指示する。リセット指示を受信したカーネルダンプフラグリセット処理部３７３は、カーネルダンプフラグをリセットする。
【０１６１】
ステップＳ６５５において、メモリ管理部３６１は、カーネルダンプ対象領域を他の論理ドメイン２０１−ｉからも使用可能な空きメモリとする。
【０１６２】
図１２は、ダンプ採取用ドメインによるメモリダンプの採取を示す図である。
図１２の左側は運用状態（およびパニック時）、真ん中は再起動時、右側はダンプ採取用ドメインによるメモリダンプの採取時を示す。
【０１６３】
ここでは、論理ドメイン２０１−１の処理について記載している。尚、ドメイン２０１−２、２０１−３においても同様の処理が実行されるので、詳細は省略する。
【０１６４】
図１２の左側の運用状態において、ＰＡのある領域が論理ドメイン２０１−１のＲＡのある領域にマッピングされている。
【０１６５】
OS４０１−１のパニック時にOS４０１−１のカーネルが使用していた領域はカーネルダンプ対象領域となる。
【０１６６】
OS４０１−１のパニック後、PA-RAマッピングの変更が行われ（ステップＳ６２２）、論理ドメイン２０１−１には、パニック時にOS４０１−１のカーネルが使用していた領域（カーネルダンプ対象領域）とは異なるＰＡの領域が割り当てられ、OS４０１−１は再起動する（図１２の真ん中）。
【０１６７】
図１２の右側のダンプ時において、ダンプ採取専用ドメイン２０１−４のＲＡには、パニック時にOS４０１−１のカーネルが使用していたＰＡの領域（カーネルダンプ対象領域）が割り当てられる。ダンプ採取専用ドメイン２０１−４は、カーネルダンプ対象領域を読み出して、ダンプファイルを生成する。
【０１６８】
図１３は、ダンプ採取用ドメインによるメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
【０１６９】
図１３の左側は運用状態（およびパニック時）、真ん中はダンプ時、右側はダンプ後を示す。
【０１７０】
ここでは、ドメイン２０１−１（制御ドメイン＃０）とダンプ採取専用ドメイン２０１−４（ダンプ採取専用ドメイン＃３）のPA-RAマッピングについて記載している。
【０１７１】
PA-RAマッピング情報は、ドメイン、開始アドレス（PA Base）、サイズ、および開始アドレス（RA Base）が対応付けられて記載されている。
【０１７２】
図１３の左側のパニック時において、開始アドレス（PA Base）がxxxxx、サイズが８ＧＢである領域が制御ドメイン＃０の開始アドレス（RA Base）がaaaaaである領域にマッピングされている（図１２の左側に対応）。この領域がカーネルダンプ対象領域となる。
【０１７３】
OS４０１−１のパニック後、PA-RAマッピングの変更が行われ（ステップＳ６２２）、PA-RAマッピング情報は図１３の真ん中に示すようになる。
【０１７４】
図１３の真ん中のダンプ時において、開始アドレス（PA Base）がxxxxx、サイズが８ＧＢである領域がダンプ採取専用ドメイン＃３の開始アドレス（RA Base）がaaaaaである領域にマッピングされている。すなわち、パニック時の制御ドメイン＃０のＰＡの領域がダンプ採取専用ドメイン＃３のＲＡにマッピングされている。また、開始アドレス（PA Base）がyyyyy、サイズが８ＧＢである領域が制御ドメイン＃０の開始アドレス（PA Base）がaaaaaである領域にマッピングされている。すなわち、新たなＰＡの領域が再起動後の制御ドメイン＃０に割り当てられている（図１２の右側に対応）。  
【０１７５】
ダンプファイルの生成後、カーネルダンプ対象領域は他のドメインからも使用可能な空きメモリとなる（ステップＳ６５５）。
【０１７６】
すなわち、図１３の右側のダンプ後において、ダンプ採取専用ドメイン＃３のマッピング情報は削除される。
【０１７７】
ダンプ採取用ドメインでメモリダンプを採取する方法によれば、異常を検出したドメインではなく、別のドメインでダンプを採取するため、ダンプ採取処理中に再度異常を検出してハングアップする等の二次被害が発生する可能性が低くなる。
【０１７８】
ダンプ採取用ドメインでメモリダンプを採取する方法によれば、Capacity on Demand (CoD)のような、ユーザが使用したハードウェア資源(CPU、メモリ、ディスク等)の量や時間に応じて課金を行うシステムにおいて、ダンプ採取のために使用するハードウェア資源に対する課金を行わないようにすることが容易に実現でき、料金の適正化を図ることができる。
【０１７９】
（２）メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法
ここでは、論理ドメイン２０１−１の処理（ステップＳ６２５）について説明する。尚、論理ドメイン２０１−２、２０１−３の処理（ステップＳ６３５）も同様の処理が実行されるので、詳細は省略する。
【０１８０】
図１４は、メモリDynamic Reconfiguration機能を用いたカーネルのメモリダンプ生成処理のフローチャートである。
【０１８１】
図１４は、図９ＣのステップＳ６２５に対応する。
ステップＳ６４１において、メモリDR組み込み処理部４１６−１は、メモリのDynamic Reconfiguration機能を使用して、パニック発生時にOS４０１−１のカーネルが使用していたメモリ領域（カーネルダンプ対象領域）をドメイン２０１−１に組み込む。なお、カーネルダンプ対象領域の情報（開始アドレス（RA Base）やサイズ等）は、ファームウェア３１１またはハイパーバイザ３５１からの通知により得る。
【０１８２】
ステップＳ６４２において、カーネルダンプ対象メモリ読出処理部４１１−１は、組み込んだメモリ領域を読み出す。
【０１８３】
ステップＳ６４３において、カーネルダンプ採取処理部４１３−１は、読み出したメモリ内容をファイルに書き出してダンプファイルを生成する。
【０１８４】
ステップＳ６４４において、メモリDR切り離し処理部４１７−１は、メモリのDynamic Reconfiguration機能を使用して、パニック発生時にOS４０１−１のカーネルが使用していたメモリ領域をドメイン２０１−１から切り離して、切り離した領域を空きメモリとするようにメモリ管理部３６１に通知する。また、カーネルダンプフラグリセット処理部４２０−１は、ハイパーバイザ３５１にカーネルダンプフラグのリセットを指示する。リセット指示を受信したカーネルダンプフラグリセット処理部３７３は、カーネルダンプフラグをリセットする。
【０１８５】
ステップＳ６４５において、メモリ管理部３６１は、切り離した領域を他のドメイン２０１−２、２０１−３からも使用可能な空きメモリとする。
【０１８６】
また、ステップＳ６４４およびＳ６４５の代わりに、空きメモリ追加処理部４１８−１は、パニック時にOS４０１−１のカーネルが使用していたメモリ領域(すなわち、ダンプ済み領域)を使用可能な未使用のメモリ、すなわち空きメモリとするようにメモリ管理部４０２−１へ通知し、メモリ管理部４０２−１はダンプ済み領域を空きメモリとする処理を行っても良い。
【０１８７】
図１５は、メモリDynamic Reconfiguration機能を用いたメモリダンプの採取を示す図である。
【０１８８】
図１５の左側は運用状態（およびパニック時）、真ん中は再起動時、右側はダンプ採取用ドメインによるメモリダンプの採取時を示す。
【０１８９】
ここでは、ドメイン２０１−１の処理について記載している。尚、ドメイン２０１−２、２０１−３においても同様の処理が実行されるので、詳細は省略する。
【０１９０】
図１５の左側の運用状態において、ＰＡのある領域がドメイン２０１−１のＲＡのある領域にマッピングされている。
【０１９１】
OS４０１−１のパニック時にOS４０１−１のカーネルが使用していた領域はカーネルダンプ対象領域となる。
【０１９２】
OS４０１−１のパニック後、PA-RAマッピングの変更が行われ（ステップＳ６２２）、ドメイン２０１−１のＲＡには、パニック時にOS４０１−１のカーネルが使用していた領域（カーネルダンプ対象領域）とは異なるＰＡの領域が割り当てられ、OS４０１−１は再起動する（図１５の真ん中）。
【０１９３】
図１５の右側の再起動後のダンプ時において、ドメイン２０１−１のＲＡには、パニック時にOS４０１−１のカーネルが使用していた領域（カーネルダンプ対象領域）が組み込まれる。ドメイン２０１−１は、カーネルダンプ対象領域を読み出して、ダンプファイルを生成する。
【０１９４】
図１６は、メモリDynamic Reconfiguration機能を用いたメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
【０１９５】
図１６の左側は運用状態（およびパニック時）、真ん中はダンプ時、右側はダンプ後を示す。
【０１９６】
ここでは、ドメイン２０１−１（制御ドメイン＃０）のPA-RAマッピングについて記載している。
【０１９７】
PA-RAマッピング情報は、ドメイン、開始アドレス（PA Base）、サイズ、および開始アドレス（RA Base）が対応付けられて記載されている。
【０１９８】
図１６の左側のパニック時において、開始アドレス（PA Base）がxxxxx、サイズが８ＧＢである領域が制御ドメイン＃０の開始アドレス（RA Base）がaaaaaである領域にマッピングされている（図１５の左側に対応）。この領域がカーネルダンプ対象領域となる。
【０１９９】
OS４０１−１のパニック後、PA-RAマッピングの変更が行われ、さらにカーネルダンプ対象領域が制御ドメイン＃０に組み込まれ、PA-RAマッピング情報は図１６の真ん中に示すようになる。
【０２００】
図１６の真ん中のダンプ時において、開始アドレス（PA Base）がyyyyy、サイズが８ＧＢである領域が制御ドメイン＃０のＲＡの開始アドレス（RA Base）がaaaaaである領域にマッピングされている。さらに、開始アドレス（PA Base）がxxxxx、サイズが８ＧＢである領域が制御ドメイン＃０の開始アドレス（RA Base）がbbbbbである領域にマッピングされている。
【０２０１】
すなわち、新たなＰＡの領域が再起動後の制御ドメイン＃０に割り当てられ、さらに制御ドメイン＃０の再起動後に、カーネルダンプ対象領域が制御ドメイン＃０に組み込まれる（図１５の右側に対応）。
【０２０２】
ダンプファイルの生成後、カーネルダンプ対象領域は他のドメインからも使用可能な空きメモリとなる（ステップＳ６４５）。
【０２０３】
すなわち、図１６の右側のダンプ後において、カーネルダンプ対象領域のマッピング情報は削除される。
【０２０４】
メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法によれば、異常を検出したオペレーティングシステムではなく、再起動後の新しいオペレーティングシステムがダンプを採取するため、ダンプ採取処理中に再度異常を検出してハングアップする等の二次被害が発生する可能性が低くなる。
【０２０５】
第２の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してハイパーバイザおよびオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにハイパーバイザおよびオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
【０２０６】
第２の実施の形態に係るメモリダンプ生成処理によれば、ハイパーバイザおよびカーネルのメモリダンプを採取することで、ハイパーバイザおよびドメインの両方に起因したエラーであっても、効果的にエラーの解析を行うことができる。
【０２０７】
（第３の実施の形態）
第３の実施の形態では、OSでエラーが検出され、カーネルのメモリダンプが行われる。
【０２０８】
ここでは、OS４０１−１のカーネルのメモリダンプを生成する場合について説明する。
図１７は、第３の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【０２０９】
先ず、メモリ管理部４０２−１は、OS４０１−１の起動時に、メモリ２０３−１の一番小さい(または一番大きい)リアルアドレス(RA)からカーネルが使用するメモリを割り当てる。このように、なるべくカーネルが使用するメモリ領域(ダンプ対象領域)のサイズが小さくなるようにする。また、マッピング情報抽出・格納処理部４０６−１は、カーネルが使用しているメモリのダンプを採取／解析するために必要となる情報（例えば、カーネルのテキスト域、データ域、ヒープ域、スタック域など、各セグメントのマッピング情報(論理アドレス、物理アドレス、サイズ等)、アドレス変換テーブル、ページテーブル、各種制御テーブルのマッピング情報）を、マッピング情報格納領域４０７−１に書き込む。また、ドメイン２０１−１〜２０１−３およびＯＳ４０１−１〜４０１−３は、起動され運用状態となっており、ドメイン２０１−４およびＯＳ４０１−４は起動されていないものとする。
【０２１０】
ステップＳ７０１において、OS４０１−１に致命的なエラーが発生する。
ステップＳ７０２において、OS４０１−１は、致命的なエラーを検出する。
【０２１１】
ステップＳ７０３において、パニック処理部４１４−１は、OS４０１−１をパニック（緊急停止）させる。
【０２１２】
ステップＳ７０４において、カーネルダンプ対象領域通知処理部４１５−１は、緊急停止(パニック)時にOS４０１−１のカーネルが使用していたメモリ領域(カーネルダンプ対象領域)の情報(カーネルダンプ対象領域情報)をハイパーバイザ３５１に通知する。また、カーネルダンプフラグ通知部４２１−１は、カーネルダンプフラグをハイパーバイザ３５１に通知する。
【０２１３】
ステップＳ７０５において、カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部３６６は、受信したカーネルダンプ対象領域情報およびカーネルダンプフラグをカーネルダンプ対象領域情報/カーネルダンプフラグ格納領域３６７に格納する。
【０２１４】
ステップＳ７０６において、メモリ初期化部３７２は、カーネルダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。すなわち、メモリ初期化部３７２は、パニック時にOS４０１−１のカーネルが使用していたメモリ領域の初期化処理を実施しない(すなわち、データを更新しない)ようにする。それにより、パニック時にOS４０１−１のカーネルが使用していたメモリ領域のデータはそのままの状態で残る。
【０２１５】
ステップＳ７０７において、PA-RAマッピング処理部３６８、ＯＳ再起動命令部３５８、およびダンプ専用ドメイン起動処理部３６５は、カーネルダンプフラグの値をチェックする。以下、カーネルダンプフラグの値に応じた処理が実行される。例えばPA-RAマッピング処理部３６８は、カーネルダンプフラグが“１：ダンプ採取用ドメインで採取”の場合、パニック発生時にＯＳ４０１−１〜４０１−３のカーネルが使用していたメモリのPAをダンプ採取用ドメイン２０４−４のRAに割り当てる。
【０２１６】
以下、ステップＳ７０８とステップＳ７０９〜Ｓ７１２の処理が別々に並列して実行される。
【０２１７】
ただし、カーネルダンプフラグが“１：ダンプ採取用ドメインで採取”の場合はステップＳ７１２は実行されず、“２：メモリDynamic Reconfiguration機能を用いて採取”の場合はステップＳ７０８は実行されない。
【０２１８】
ステップＳ７０８において、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理が行われる。ステップＳ７０８は、図９ＢのステップＳ６２１の処理と同様であるため説明は省略する。
【０２１９】
ステップＳ７０９において、PA-RAマッピング処理部３６８は、パニックしたドメイン２０１−１の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS４０１−１を再起動してもパニック時にOS４０１−１のカーネルが使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
【０２２０】
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
【０２２１】
ステップＳ７１０において、OS再起動命令部３５８は、ドメイン２０１−１にOS４０１−１の再起動を指示する。また、OS再起動命令部３５８は、カーネルダンプフラグが“２：メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。OS起動処理部４０９−１は、カーネルが使用していたメモリのダンプをディスク等に書き出すことなく、OS４０１−１を再起動する。
【０２２２】
ステップＳ７１１において、OS４０１−１は、業務を再開する。
ステップＳ７１２において、カーネルのメモリダンプ生成処理が行われる。尚、ステップＳ７１２の処理は、上述のステップＳ６２５の処理と同様であるため説明は省略する。
【０２２３】
第３の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してオペレーティングシステムを緊急停止(パニック)する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
【０２２４】
（第４の実施の形態）
第４の実施の形態では、OSでエラーが検出され、カーネルのメモリダンプが行われ、さらに稼動中のハイパーバイザのメモリダンプの採取（ハイパーバイザのライブダンプと呼ぶ）が行われる。
【０２２５】
ここでは、OS４０１−１のカーネルのメモリダンプを生成する場合について説明する。
図１８Ａ、１８Ｂは、第４の実施の形態に係るメモリダンプ生成処理のフローチャートである。
【０２２６】
ステップＳ８０１〜ステップＳ８１１は、図１７のステップＳ７０１〜Ｓ７１１とそれぞれ同様の処理であるため、説明は省略する。
【０２２７】
以下、ステップＳ８１２とステップＳ８１３は並列に実行される。
ステップＳ８１２において、カーネルのメモリダンプ生成処理が行われる。尚、ステップＳ８１２の処理は、上述のステップＳ６２５の処理と同様であるため説明は省略する。
【０２２８】
ステップＳ８１３において、稼動中のハイパーバイザ３５１のメモリダンプ生成処理が制御ドメイン２０４−１で行われる。
【０２２９】
以下、稼動中のハイパーバイザ３５１のメモリダンプ生成処理の詳細について説明する。
【０２３０】
図１９は、稼動中のハイパーバイザのメモリダンプ生成処理のフローチャートである。
図１９は、図１８ＢのステップＳ８１３に対応する。
【０２３１】
第４の実施の形態において、例えば、HVダンプフラグのデータ構造を０：採取せず、１：異常時のHVダンプ、２：HVライブダンプのように変更することができる。HVメモリダンプ判断部４０８−１は、HVダンプフラグが０または１の場合、ＨＶのライブダンプを採取しないと判定し、HVダンプフラグが２の場合、ＨＶのライブダンプを採取すると判定する。
【０２３２】
ステップＳ８３１において、HVメモリダンプ判断部４０８−１は、ハイパーバイザ３５１にHVダンプフラグの送信を要求する。
【０２３３】
ステップＳ８３２において、HVメモリダンプフラグ読出・送信部３５９は、要求を受信すると、HVダンプ対象領域情報/HVダンプフラグ格納領域３５６からHVダンプフラグを読み出し、OS４０１−１に送信する。
【０２３４】
ステップＳ８３３において、HVメモリダンプ判断部４０８−１は、受信したHVダンプフラグに基づいて、稼動中のハイパーバイザ３５１のライブダンプを採取するか否か判定する。稼動中のハイパーバイザ３５１のライブダンプを採取すると判定された場合、制御はステップＳ８３４に進み、採取しないと判定された場合の場合、処理は終了する。
【０２３５】
ステップＳ８３４において、HVダンプ対象領域読出処理部の呼び出し部４１０−１は、HVダンプ対象領域読出処理部３６０を呼び出す。
【０２３６】
ステップＳ８３５において、HVダンプ対象領域読出処理部３６０は、現在、ハイパーバイザ３５１が使用しているメモリ領域を読み出し、読み出したメモリ内容を制御ドメイン２０４−１に送信する。
【０２３７】
ステップＳ８３６において、HVダンプ採取処理部４１２−１は、メモリ内容を受信し、受信したメモリ内容をファイルに書き出してハイパーバイザのダンプファイルを生成する。
【０２３８】
上記のように、稼動中のハイパーバイザのメモリダンプの生成処理では、ハイパーバイザを停止・再起動しないまま、ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出している。
【０２３９】
第４の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
【０２４０】
第４の実施の形態に係るメモリダンプ生成処理によれば、ハイパーバイザおよびカーネルのメモリダンプを採取することで、ハイパーバイザおよびドメインの両方に起因したエラーであっても、効果的にエラーの解析を行うことができる。
【０２４１】
以上、複数の実施の形態を説明してきたが、実施の形態は装置および方法に限らず、プログラムとして構成することも出来るし、該プログラムを格納したコンピュータが読み取り可能な記録媒体として構成することも出来る。記録媒体としては、例えば、フレキシブルディスク（ＦＤ）、ハードディスクドライブ、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード等が用いられる。
【０２４２】
例えば、実施の形態のプログラムは、該プログラムを格納した記録媒体から読み出され、メモリ１３、２３や不揮発性メモリ１４に格納される。ＣＰＵ１２、２２は、メモリ１３、２３や不揮発性メモリ１４からプログラムを読み出して実行することにより、上述した実施の形態の各種処理を実行する。
【０２４３】
本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成を取ることができる。例えば、論理ドメインの数は４つの限られるものでなく、任意の数にすることができる。
【符号の説明】
【０２４４】
１０    サーバ
１１    システムボード
１２    ＣＰＵ
１３    メモリ
１４    不揮発性メモリ
２１    サービスプロセッサ
２２    ＣＰＵ
２３    メモリ
３１    ディスクユニット
３２    ハードディスクドライブ
４１    通信インタフェース
５１    バス
６１    物理パーティション
２０１    論理ドメイン
２０２    ＣＰＵ
２０３    メモリ
２０４    ディスク
３１１    ファームウェア
３１２    ダンプ対象領域情報/HVダンプフラグ格納処理部
３１３    ダンプ対象領域情報/HVダンプフラグ格納領域
３１４    HVダンプフラグ設定部
３１５    メモリ初期化処理部
３１６    HV使用領域変更部
３１７    HV再起動命令部
３１８    ダンプ対象領域情報/HVダンプフラグ通知部
３１９    PA-RAマッピング通知部
３２０    メモリ開放処理部
３２１    HVダンプフラグリセット処理部
３５１    ハイパーバイザ
３５２    ドメイン緊急停止指示部
３５３    OSパニック指示部
３５４    HVダンプ対象領域通知処理部
３５５    HVダンプ対象領域情報/HVダンプフラグ格納処理部
３５６    HVダンプ対象領域情報/HVダンプフラグ格納領域
３５７    HV再起動処理部
３５８    OS再起動命令部
３５９    HVメモリダンプ読出・送信部
３６０    HVダンプ対象メモリ読出処理部
３６１    メモリ管理部
３６２    メモリ開放処理部
３６３    HVダンプフラグリセット処理部
３６４    HVダンプフラグ通知部
３６５    ダンプ専用ドメイン起動処理部
３６６    カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部
３６７    カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域
３６８    PA-RAマッピング処理部
３６９    PA-RAマッピング情報格納域
３７０    割り込み処理部
３７１    メモリダンプ処理起動部
３７２    メモリ初期化処理部
３７３    カーネルダンプフラグリセット処理部
４０１    オペレーティングシステム
４０２    メモリ管理部
４０３    ファイル管理部
４０４    プロセス管理部
４０５    割り込み処理部
４０６    マッピング情報抽出・格納処理部
４０７    マッピング情報格納領域
４０８    HVメモリダンプ判断部
４０９    OS起動処理部
４１０    HVダンプ対象領域読出処理部の呼び出し部
４１１    カーネルダンプ対象メモリ読出処理部
４１２    HVダンプ採取処理部
４１３    カーネルダンプ採取処理部
４１４    パニック処理部
４１５    カーネルダンプ対象領域通知処理部
４１６    メモリDR組み込み処理部
４１７    メモリDR切り離し処理部
４１８    空きメモリ追加処理部
４１９    ダンプ専用ドメイン停止処理部
４２０    カーネルダンプフラグリセット処理部
４２１    カーネルダンプフラグ通知部
【図１】
0006256582.tif 000002
【図２】
0006256582.tif 000003
【図３】
0006256582.tif 000004
【図４】
0006256582.tif 000005
【図５】
0006256582.tif 000006
【図６】
0006256582.tif 000007
【図７Ａ】
0006256582.tif 000008
【図７Ｂ】
0006256582.tif 000009
【図７Ｃ】
0006256582.tif 000010
【図８】
0006256582.tif 000011
【図９Ａ】
0006256582.tif 000012
【図９Ｂ】
0006256582.tif 000013
【図９Ｃ】
0006256582.tif 000014
【図１０】
0006256582.tif 000015
【図１１】
0006256582.tif 000016
【図１２】
0006256582.tif 000017
【図１３】
0006256582.tif 000018
【図１４】
0006256582.tif 000019
【図１５】
0006256582.tif 000020
【図１６】
0006256582.tif 000021
【図１７】
0006256582.tif 000022
【図１８Ａ】
0006256582.tif 000023
【図１８Ｂ】
0006256582.tif 000024
【図１９】
0006256582.tif 000025