JP6083136B2 - メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム - Google Patents

メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム Download PDF

Info

Publication number
JP6083136B2
JP6083136B2 JP2012141495A JP2012141495A JP6083136B2 JP 6083136 B2 JP6083136 B2 JP 6083136B2 JP 2012141495 A JP2012141495 A JP 2012141495A JP 2012141495 A JP2012141495 A JP 2012141495A JP 6083136 B2 JP6083136 B2 JP 6083136B2
Authority
JP
Japan
Prior art keywords
memory
dump
hypervisor
memory area
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012141495A
Other languages
English (en)
Other versions
JP2014006676A (ja
Inventor
近藤 浩
浩 近藤
憲司 岡野
憲司 岡野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012141495A priority Critical patent/JP6083136B2/ja
Priority to US13/902,849 priority patent/US9229820B2/en
Priority to TW102118623A priority patent/TW201407465A/zh
Priority to EP13169691.6A priority patent/EP2687986B1/en
Priority to CN201310239430.4A priority patent/CN103514085A/zh
Priority to KR1020130069068A priority patent/KR20140000155A/ko
Publication of JP2014006676A publication Critical patent/JP2014006676A/ja
Application granted granted Critical
Publication of JP6083136B2 publication Critical patent/JP6083136B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラムに関する。
近年、UNIX(登録商標)サーバ、IAサーバが基幹システムに導入されるようになり、UNIX(登録商標)サーバ、IAサーバの高可用性が重要視されている。一般的に、システムに致命的なエラーが発生した場合はシステムを緊急停止(パニック)させて、その原因を調査するためにメモリダンプをディスクに保存している。
システムを停止している間は、システムを使用できないので、速やかにシステムを再起動することが重要な要件となる。
しかし、近年では、実装メモリの容量がテラバイト(TB)オーダのサーバが登場し、このようなシステムでは、メモリダンプを採取するのに非常に時間がかかり、速やかにシステムを再起動することができなくなっている。
また、メモリダンプをディスク上に保存せず、緊急停止時のメモリ内容を別のメモリ上に保存する方法や障害発生時のメモリ内容をダンプ格納領域に保存する際、メモリの一部を保存し、再起動後に保存していないメモリ内容をダンプファイルに変換する方法が知られている。
特開平11−212836号公報 特開2001−229053号公報 特開2006−72931号公報 特開2005−122334号公報
しかしながら、従来の方法では、異常発生時のメモリダンプを別のメモリやディスクに保存しているため、保存するメモリダンプのサイズが大きい場合は、メモリのコピーに時間がかかり、速やかにシステムを再起動することができないという問題があった。
また、オペレーティングシステムが致命的なエラーを検出して、システムを緊急停止する場合、異常を検出したオペレーティングシステムがダンプを採取するため、ダンプ採取処理中に再度異常を検出して、ハングアップが発生するなどの二次被害が発生することがあるという問題があった。
1つの側面では、本発明は、再起動が必要となる異常を検出した場合、速やかに業務を再開させて、原因調査のためのメモリダンプを採取することを課題とする。
1つの側面では、実施の形態の情報処理装置は、メモリと、前記メモリに格納されたプログラムを実行することにより、仮想マシン、該仮想マシン上で稼動するオペレーティングシステム、および前記仮想マシンを制御するハイパーバイザを実行する処理部と、前記メモリ及び前記処理部を含むシステムの制御を行なう制御部と、を有する。
前記処理部は、前記ハイパーバイザのエラーを検出したときに、前記オペレーティングシステムを停止し、前記ハイパーバイザが使用している第1のメモリ領域を前記制御部に通知する。
そして、前記処理部は、前記ハイパーバイザを停止し、前記ハイパーバイザが使用するメモリ領域を、前記制御部に通知された前記第1のメモリ領域とは異なる第2のメモリ領域に変更し、前記第2のメモリ領域を使用領域として、前記ハイパーバイザを起動する。
さらに、前記処理部は、前記オペレーティングシステムを起動して該オペレーティングシステム上で稼動する業務プログラムを再開し、前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す。
他の1つの側面では、実施の形態の情報処理装置は、メモリと、オペレーティングシステムを実行、または、仮想マシン及び該仮想マシン上で稼動するオペレーティングシステムを実行する処理部と、を有する。
前記処理部は、実行中のオペレーティングシステムのエラーを検出したときに、前記エラーを検出したオペレーティングシステムを停止し、停止したオペレーティングシステムが使用するメモリ領域を、前記停止したオペレーティングシステムのカーネルが使用していた第1のメモリ領域とは異なる第2のメモリ領域に変更する。
そして、前記処理部は、前記第2のメモリ領域を使用領域として、前記停止したオペレーティングシステムを起動して該オペレーティングシステム上で稼動する業務プログラムを再開し、前記第1のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す。
1つの実施の形態の情報処理装置によれば、再起動が必要となる異常を検出した場合、速やかに業務を再開させて、原因調査のためのメモリダンプを採取することができる。
実施の形態に係るサーバのハードウェア構成図である。 実施の形態に係るサーバと機能との対応関係を示す図である。 実施の形態に係る物理パーティションの機能ブロック図である。 実施の形態に係るファームウェアの構成図である。 実施の形態に係るハイパーバイザの構成図である。 実施の形態に係るOSの構成図である。 第1の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第1の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第1の実施の形態に係るメモリダンプ生成処理の変形例のフローチャートである。 HVダンプ対象領域情報の例である。 第2の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第2の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第2の実施の形態に係るメモリダンプ生成処理のフローチャートである。 カーネルダンプ対象領域情報の例である。 ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理のフローチャートである。 ダンプ採取用ドメインによるメモリダンプの採取を示す図である。 ダンプ採取用ドメインによるメモリダンプの採取におけるPA-RAマッピング情報を示す図である。 メモリDynamic Reconfiguration機能を用いたカーネルのメモリダンプ生成処理のフローチャートである。 メモリDynamic Reconfiguration機能を用いたメモリダンプの採取を示す図である。 メモリDynamic Reconfiguration機能を用いたメモリダンプの採取におけるPA-RAマッピング情報を示す図である。 第3の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第4の実施の形態に係るメモリダンプ生成処理のフローチャートである。 第4の実施の形態に係るメモリダンプ生成処理のフローチャートである。 稼動中のハイパーバイザのメモリダンプ生成処理のフローチャートである。
以下、図面を参照しながら本発明の実施の形態を説明する。
図1は、実施の形態に係るサーバのハードウェア構成図である。
サーバ(情報処理装置)10は、システムボード11−i(i=1〜3)、サービスプロセッサ(SP)21、ディスクユニット31、および通信インタフェース41を備える。
システムボード11−i、サービスプロセッサ21、ディスクユニット31、および通信インタフェース41は、バス51を介して接続されている。
システムボード11−iは、Central Processing Unit(CPU)12−i−k(k=1、2)、不揮発性メモリ14−i、およびメモリ13−i−kを備える。
サービスプロセッサ21は、サーバ10の制御、サーバ10内の物理パーティションの制御等を行う装置である。サービスプロセッサ21は、CPU22およびメモリ23を備える。サービスプロセッサ21は、制御部の一例である。
CPU22は、サーバ10の制御、サーバ10内の物理パーティションの制御等の各種処理を行う。
メモリ23は、サービスプロセッサ21で用いられるデータを一時的に格納する。メモリ23は、例えば、RAMである。
ディスクユニット31は、ハードディスクドライブ(HDD)32−i(i=1〜3)を備える。
HDD32は、サーバ10で使用されるデータを格納する装置である。HDD32は、記憶手段の一例である。
通信インタフェース41は、サーバ10と接続する装置と通信を行うインタフェースである。
図2は、実施の形態に係るサーバと機能との対応関係の一例を示す図である。
サーバ10は、2つの物理パーティション61−k(k=1、2)に分割して運用されている。尚、明細書内において、物理パーティション61−1、61−2をそれぞれ物理パーティション#0、物理パーティション#1と表記する場合がある。
物理パーティション#0、#1は、サービスプロセッサ21により制御される。物理パーティション#0、#1に含まれるCPUは、処理部の一例である。
システムボード11−1、11−2から構成される物理パーティション#0は、さらに物理パーティション#0内で4つの論理ドメイン#0〜#3に分割して、各論理ドメイン#0〜#3で独立したオペレーティングシステム(OS)が稼動している。また、ハイパーバイザ(HV)#0が、物理パーティション#0内の物理リソースと各論理ドメイン#0〜#3との対応関係を制御する。
システムボード11−3から構成される物理パーティション#1内では、論理ドメイン#4でオペレーティングシステム(OS)が稼動している。またハイパーバイザ#1が、物理パーティション#1内の物理リソースと論理ドメイン#4との対応関係を制御する。
図3は、実施の形態に係る物理パーティションの機能ブロック図である。
物理パーティション61−1は、論理ドメイン201−m(m=1〜4)、ファームウェア(FW)311、およびハイパーバイザ(HV)351を備える。
図3の物理パーティション61−1は、図2の物理パーティション61−1に対応する。
尚、論理ドメイン201−1〜201−4は、それぞれ図2で示した各論理ドメイン#0〜#3に対応する。
尚、明細書内において、論理ドメイン201−1は、制御ドメイン#0と表記する場合がある。
また、明細書内において、論理ドメイン201−4は、ダンプ専用ドメイン#3またはダンプ採取用ドメイン201−4と表記する場合がある。
以下、特に限定ない限り論理ドメインとは仮想マシンを示す。
論理ドメイン201−mは、CPU202−m−k(k=1、2)、メモリ203−m、およびディスク204−mを備える。以下、特に限定ない限りCPU202、メモリ203、およびディスク204は、それぞれ仮想CPU、仮想メモリ、および仮想ディスクである。
CPU202−m−kは、各種処理を実行する。
メモリ203−mは、ディスク204−mから読み出された、各種プログラムやデータを格納する。
ファームウェア311は、サーバ10全体(複数の物理パーティション61−1、61−2)の制御を行い、例えば、ハードウェアの初期化、メモリ診断、温度監視などを行う。ファームウェア311には、図1のサービスプロセッサ21、およびシステムボード11−1、11−2の不揮発性メモリ14−1、14−2上に展開されるPower On Self Test(POST)が含まれる。ここで、Power On Self Test(POST)とは、システム起動時にハードウェアリソースの診断と初期化を実行するプログラムである。
ハイパーバイザ351は、論理ドメイン201−m、および論理ドメイン201−m上で稼動するオペレーティングシステム(OS)401−mを制御する。ハイパーバイザ351は、図1のシステムボード11−1,11−2のメモリ13−1−1、13−1−2、13−2−1、13−2−2上に展開されCPU12−1−1、12−1−2、12−2−1、12−2−2により実行される。
図3の下部は、物理パーティション61−1内のソフトウェアを示す。
物理パーティション61−1内の各論理ドメイン#0〜#3で、OS401−mが稼動している。
OS401−1〜401−4は、それぞれ論理ドメイン201−1〜201−4のオペレーティングシステムに対応する。
図4は、実施の形態に係るファームウェアの詳細な構成図である。
ファームウェア311は、ダンプ対象領域情報/HVダンプフラグ格納処理部312、ダンプ対象領域情報/HVダンプフラグ格納領域313、HVダンプフラグ設定部314、メモリ初期化処理部315、HV使用領域変更部316、HV再起動命令部317、ダンプ対象領域情報/HVダンプフラグ通知部318、PA-RAマッピング通知部319、メモリ開放処理部320、HVダンプフラグリセット処理部321を備える。
ダンプ対象領域情報/HVダンプフラグ格納処理部312は、ダンプ対象領域情報およびHVダンプフラグをダンプ対象領域情報/HVダンプフラグ格納領域313に格納する。
ダンプ対象領域情報/HVダンプフラグ格納領域313は、ダンプ対象領域情報およびHVダンプフラグが格納される領域である。ここでダンプ対象領域情報は、ダンプ対象領域を示す情報であり、ダンプ対象領域の開始アドレス(PA Base)およびサイズの情報を含む。HVダンプフラグは、ハイパーバイザが使用していたメモリ領域のダンプファイルを生成するか否かを示す制御情報である。また、HVダンプフラグは、稼動中のハイパーバイザのメモリダンプを採取するか否かを示す情報(HVライブダンプフラグ)を含むこともできる。
HVダンプフラグ設定部314は、HVダンプフラグの値を設定する。例えば、HVダンプフラグ設定部314は、HVダンプを行なう場合にHVダンプフラグをTRUEに設定する。
メモリ初期化処理部315は、メモリの初期化を行う。
HV使用領域変更部316は、ハイパーバイザ351が使用するメモリの領域を変更する。
HV再起動命令部317は、ハイパーバイザ351に再起動を指示する。
ダンプ対象領域情報/HVダンプフラグ通知部318は、ダンプ対象領域情報およびHVダンプフラグを通知する。
PA-RAマッピング通知部319は、OSの処理に必要なPA-RAマッピングをハイパーバイザ351へ通知し、ハイパーバイザ351のPA-RAマッピング処理部368は、通知されたPA-RAマッピングを用いて物理アドレス(PA)から実アドレス(RA)への、あるいは実アドレス(RA)から物理アドレス(PA)への変換を行う。
メモリ開放処理部320は、メモリの開放処理を行う。
HVダンプフラグリセット処理部321は、HVダンプフラグをリセットする。詳細には、HVダンプフラグリセット処理部321は、HVダンプフラグをFALSEに設定する。
図5は、実施の形態に係るハイパーバイザの詳細な構成図である。
ハイパーバイザ351は、ドメイン緊急停止指示部352、OSパニック指示部353、HVダンプ対象領域通知処理部354、HVダンプ対象領域情報/HVダンプフラグ格納処理部355、HVダンプ対象領域情報/HVダンプフラグ格納領域356、HV再起動処理部357、OS再起動命令部358、HVメモリダンプフラグ読出・送信部359、HVダンプ対象領域読出処理部360、メモリ管理部361、メモリ開放処理部362、HVダンプフラグリセット処理部363、HVダンプフラグ通知部364、ダンプ専用ドメイン起動処理部365、カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部366、カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域367、PA-RAマッピング処理部368、PA-RAマッピング情報格納域369、割り込み処理部370、メモリダンプ処理起動部371、メモリ初期化処理部372、およびカーネルダンプフラグリセット処理部373を備える。
ドメイン緊急停止指示部352は、ドメイン201に緊急停止を指示する。
OSパニック指示部353は、OS401に緊急停止(パニック)指示する。
HVダンプ対象領域通知処理部354は、HVダンプ対象領域情報/HVダンプフラグ格納領域356からHVダンプ対象領域情報を読み出して通知する。
HVダンプ対象領域情報/HVダンプフラグ格納処理部355は、HVダンプ対象領域情報およびHVダンプフラグをHVダンプ対象領域情報/HVダンプフラグ格納領域356に格納する。
HVダンプ対象領域情報/HVダンプフラグ格納領域356は、HVダンプ対象領域情報およびHVダンプフラグを格納する。HVダンプ対象領域情報は、ハイパーバイザ351が使用しているメモリ領域(HVダンプ対象領域)を示す情報であり、メモリ領域の開始アドレス(PA Base)およびサイズの情報を含む。HVダンプフラグは、ハイパーバイザが使用していたメモリ領域のダンプファイルを生成するか否かを示す制御情報である。
HV再起動処理部357は、ハイパーバイザ351を停止させ、ハイパーバイザ351の再起動を行う。
OS再起動命令部358は、OS401に再起動を指示する。
HVメモリダンプフラグ読出・送信部359は、HVダンプフラグを読み出して送信する。
HVダンプ対象領域読出処理部360は、HVダンプ対象領域情報で示されるメモリ領域の内容を読み出し、送信する。または、HVダンプ対象領域読出処理部360は、現在のハイパーバイザ351が使用しているメモリ領域の内容を読み出し、送信する。
メモリ管理部361は、メモリを管理する。
メモリ開放処理部362は、メモリの開放処理を行う。
HVダンプフラグリセット処理部363は、HVダンプフラグをリセットする。詳細には、HVダンプフラグリセット処理部363は、例えば、HVダンプフラグをFALSEに設定する。
HVダンプフラグ通知部364は、HVダンプフラグを通知する。
ダンプ専用ドメイン起動処理部365は、ダンプ専用ドメインをファームウェアモードで起動する。ファームウェアモードとは、OSを起動しないモード、すなわちOSを起動する前に停止するモードである。
カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部366は、カーネルダンプ対象領域情報およびカーネルダンプフラグをカーネルダンプ対象領域情報/カーネルダンプフラグ格納領域367に格納する。
カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域367は、カーネルダンプ対象領域情報およびカーネルダンプフラグを格納する。カーネルダンプ対象領域情報は、パニック時にOS401のカーネルが使用していたメモリ領域(カーネルダンプ対象領域)を示す情報であり、メモリ領域の開始アドレス(RA Base)およびサイズの情報を含む。カーネルダンプフラグは、OS401のカーネルのメモリダンプを実行するか否かを示す情報である。さらに、カーネルダンプフラグは、どのような方法でカーネルのメモリダンプを採取するかを示すこともできる。カーネルダンプフラグは、例えば、0:カーネルのメモリダンプを採取しない、1:ダンプ採取用ドメインで採取、または2:メモリDynamic Reconfiguration機能を用いて採取というような情報である。カーネルダンプフラグは、OS401から受信しても良いし、ハイパーバイザ351が予め設定して保持していても良い。
PA-RAマッピング処理部368は、物理アドレス(PA)とリアルアドレス(RA)間のマッピングを行う。PAはメモリの物理アドレスであり、RAはドメイン(オペレーティングシステム)上の実アドレスである。
PA-RAマッピング情報格納域369は、PAとRA間のマッピングの情報を格納する。
割り込み処理部370は、OS401のカーネルのメモリダンプをする場合にS401に対して、割り込み処理させる。割り込み処理が受け付けられるとOS401のカーネルのメモリダンプが可能と判断されてOS401のカーネルのメモリダンプ処理に進み、受け付けられないと割り込み出来ないと判断してOS401のカーネルのメモリダンプ処理はせずに終了する。
メモリダンプ処理起動部371は、制御ドメイン201−1にハイパーバイザ351のメモリダンプ処理を起動させる。
メモリ初期化処理部372は、メモリの初期化を行う。
カーネルダンプフラグリセット処理部373は、カーネルダンプフラグをリセットする。例えば、カーネルダンプフラグリセット処理部373は、カーネルダンプフラグを削除または“0:カーネルのメモリダンプを採取しない”に設定する。
図6は、実施の形態に係るOSの詳細な構成図である。
OS401−mは、メモリ管理部402−m、ファイル管理部403−m、プロセス管理部404−m、割り込み処理部405−m、マッピング情報抽出・格納処理部406−m、マッピング情報格納領域407−m、HVメモリダンプ判断部408−m、OS起動処理部409−m、HVダンプ対象領域読出処理部の呼び出し部410−m、カーネルダンプ対象メモリ読出処理部411−m、HVダンプ採取処理部412−m、カーネルダンプ採取処理部413−m、パニック処理部414−m、カーネルダンプ対象領域通知処理部415−m、メモリDR組み込み処理部416−m、メモリDR切り離し処理部417−m、空きメモリ追加処理部418−m、ダンプ専用ドメイン停止処理部419−m、カーネルダンプフラグリセット処理部420−m、およびカーネルダンプフラグ通知部421−mを備える。
メモリ管理部402−mは、OS401−mが使用するメモリ203−mを割り当てる。
ファイル管理部403−mは、ディスク上に格納されたデータであるファイルを管理する。
プロセス管理部404−mは、OS401−mが実行するプログラムのプロセスを管理する。
割り込み処理部405−mは、割り込み処理を行う。
マッピング情報抽出・格納処理部406−mは、メモリ203−mのダンプを取得および解析するために必要な情報を、マッピング情報格納領域407−mに格納する。
マッピング情報格納領域407−mは、メモリ203−mのダンプを取得および解析するために必要な情報を格納する。マッピング情報格納領域407−mが格納する情報は、例えば、カーネルのテキスト域、データ域、ヒープ域、スタック域等、各セグメントのマッピング情報(論理アドレス、物理アドレス、サイズ等)やアドレス変換テーブル、ページテーブル等、各種制御テーブルのマッピング情報である。
HVメモリダンプ判断部408−mは、HVダンプフラグがTRUEまたはFALSEであるか判定し、ハイパーバイザのメモリダンプを行うか判断する。
OS起動処理部409−mは、OS401−mを再起動する。
HVダンプ対象領域読出処理部の呼び出し部410−mは、HVダンプ対象領域読出処理部360を呼び出す。
カーネルダンプ対象メモリ読出処理部411−mは、カーネルダンプ対象領域(パニック時にOS401−mのカーネルが使用していたメモリ領域)のメモリ内容を読み出す。
HVダンプ採取処理部412−mは、HVダンプ対象領域読出処理部360からHVダンプ対象領域読出処理部360が読み出したメモリ内容を受信し、ダンプファイルを生成する。
カーネルダンプ採取処理部413−mは、読み出したカーネルダンプ対象領域のメモリ内容をファイルに保存(ダンプファイルを生成)する。
パニック処理部414−mは、ドメイン201−mを緊急停止(パニック)させる。
カーネルダンプ対象領域通知処理部415−mは、パニック時にOS401−mのカーネルが使用しているメモリ領域をハイパーバイザ351に通知する。
メモリDR組み込み処理部416−mは、ドメイン201−mにメモリ領域を組み込む。
メモリDR切り離し処理部417−mは、ドメイン201−mからメモリ領域を切り離す。
空きメモリ追加処理部418−mは、メモリ管理部402−mにダンプ済みのメモリ領域を通知する。
ダンプ専用ドメイン停止処理部419−mは、ダンプを採取した後にダンプを採取するドメイン(ダンプ専用ドメイン)を停止する。
カーネルダンプフラグリセット処理部420−mは、ハイパーバイザ351にカーネルダンプフラグのリセットを指示する。
カーネルダンプフラグ通知部421−mは、ハイパーバイザ351にカーネルダンプフラグを通知する。カーネルダンプフラグ通知部421−mは、カーネルのメモリダンプを実行する必要がある場合にカーネルダンプフラグをハイパーバイザ351に通知する。例えば、カーネルダンプフラグ通知部421−mは、カーネルのメモリダンプを採取しない場合はカーネルダンプフラグの値を“0:カーネルのメモリダンプを採取しない”、ダンプ採取用ドメインでカーネルのメモリダンプを採取する場合にカーネルダンプフラグの値を“1:ダンプ採取用ドメインで採取”、メモリDynamic Reconfiguration機能を用いてカーネルのメモリダンプを採取する場合にカーネルダンプフラグの値を“2:メモリDynamic Reconfiguration機能を用いて採取”とする。
(第1の実施の形態)
第1の実施の形態では、制御ドメインを用いてハイパーバイザのメモリダンプを採取する。
図7A、7Bは、第1の実施の形態に係るメモリダンプ生成処理のフローチャートである。
初期状態において、ドメイン201−1〜201−3およびOS401−1〜401−3は、起動され運用状態となっており、ドメイン201−4およびOS401−4は起動されていないものとする。
ステップS501において、ハイパーバイザ351は、致命的なエラーを検出する。
ステップS502において、ドメイン緊急停止指示部352は、運用状態の論理ドメイン、すなわち制御ドメイン201−1およびドメイン201−2、201−3に緊急停止を指示する。
ステップS503において、OS401−i(i=1〜3)は、緊急停止指示を受信し、OS401−iを緊急停止させる。
ステップS504において、HVダンプ対象領域通知処理部354は、HVダンプ対象領域情報/HVダンプフラグ格納領域356からHVダンプ対象領域情報を読み出し、ファームウェア311に通知する。HVダンプ対象領域情報は、ハイパーバイザ351が使用しているメモリ領域(ダンプ対象領域)を示す情報であり、メモリ領域の開始アドレス(PA Base)およびサイズの情報を含む。HVダンプ対象領域情報は、図8に示すような形式であり、ブロックの番号、ブロックの物理メモリの開始アドレス(PA Base)、およびブロックのサイズが対応付けられている。また、HV再起動処理部357は、ハイパーバイザ351を停止する(HVアボート)。
ステップS506において、ダンプ対象領域情報/HVダンプフラグ格納処理部312は、HVダンプ対象領域情報を受信する。
ステップS507において、ダンプ対象領域情報/HVダンプフラグ格納処理部312は、受信したHVダンプ対象領域情報をダンプ対象領域情報として、ダンプ対象領域情報/HVダンプフラグ格納領域313に格納する。また、HVダンプフラグ設定部314は、HVダンプフラグをTUREに設定し、ダンプ対象領域情報/HVダンプフラグ格納領域313に格納する。
ステップS508において、ファームウェア311は、メモリの内容を保持したまま、物理パーティションの再起動処理を開始する。
ステップS509において、メモリ初期化処理部315は、メモリの初期化処理を開始する。先ず、例えば、メモリの先頭のアドレスを初期化処理対象の領域として設定する。
ステップS510において、メモリ初期化処理部315は、ダンプ対象領域情報を参照し、初期化処理対象の領域がダンプ対象領域情報で指定される領域、すなわちダンプ対象領域であるか否か判定する。初期化処理対象の領域がダンプ対象領域である場合、初期化処理対象の領域の内容を保持したまま、制御はステップS512に進み、ダンプ対象領域でない場合、制御はステップS511に進む。
ステップS511において、メモリ初期化処理部315は、初期化処理対象の領域を初期化する。
ステップS512において、メモリ初期化処理部315は、ダンプ対象領域以外のすべての領域に対する初期化処理を行ったか判定する。ダンプ対象領域以外のすべての領域に対する初期化処理を行った場合、制御はステップS513に進み、ダンプ対象領域以外のすべての領域に対する初期化処理を行っていない場合、未処理の領域(例えば、ダンプ対象領域であるかチェック済みの領域の次のアドレス)を初期化処理対象の領域とし、制御はステップS510に戻る。
ステップS513において、HV使用領域変更部316は、ハイパーバイザ351が使用する領域をダンプ対象領域情報で示される領域以外の領域に変更する。なお、初期化処理対象の領域として、少なくともハイパーバイザ351が使用する変更後の領域を初期化対象としてもよい。
ステップS514において、HV再起動命令部317は、ハイパーバイザ351に再起動を指示する。ダンプ対象領域情報/HVダンプフラグ通知部318は、ダンプ対象領域情報/HVダンプフラグ格納領域313からダンプ対象領域情報およびHVダンプフラグを読み出し、ハイパーバイザ351に通知する。
ステップS515において、HVダンプ対象領域情報/HVダンプフラグ格納処理部355は、ダンプ対象領域情報およびHVダンプフラグを受信し、HVダンプ対象領域情報/HVダンプフラグ格納領域356に格納する。尚、HVダンプ対象領域情報/HVダンプフラグ格納処理部355は、受信したダンプ対象領域情報をHVダンプ対象領域情報として格納する。
ステップS516において、HV再起動処理部357は、ハイパーバイザ351を再起動する。ただし、HVダンプ対象領域情報で指定されるメモリ領域は使用しない。
ステップS517において、OS再起動命令部358は、OS401−1〜401−3に再起動を指示する。
ステップS518において、OS再起動処理部409−2、409−3は、それぞれOS401−2、401−3を再起動する。
ステップS519において、OS401−2、401−3は、業務を再開する。
ステップS520において、OS401−2、401−3は、通常の運用状態となる。
ステップS521において、OS再起動処理部409−1は、OS401−1を再起動する。
ステップS522において、OS401−1は、業務を再開する。
ステップS523において、HVメモリダンプ判断部408−1は、ハイパーバイザ351にHVダンプフラグの送信を要求する。
ステップS524において、HVメモリダンプフラグ読出・送信部359は、要求を受信すると、HVダンプ対象領域情報/HVダンプフラグ格納領域356からHVダンプフラグを読み出し、OS401−1に送信する。
ステップS525において、HVメモリダンプ判断部408−1は、HVダンプフラグを受信し、HVダンプフラグがTRUEであるか否か判定する。HVダンプフラグがTRUEの場合、制御はステップS527に進み、FALSEの場合、制御はステップS531に進む。
ステップS526において、HVダンプ対象領域読出処理部の呼び出し部410−1は、HVダンプ対象領域読出処理部360を呼び出す。
ステップS527において、HVダンプ対象領域読出処理部360は、HVダンプ対象領域情報で示されるメモリ領域の内容を読み出し、制御ドメインに送信する。
ステップS528において、HVダンプ採取処理部412−1は、HVダンプ対象領域読出処理部360からHVダンプ対象領域読出処理部360が読み出したメモリ内容を受信し、受信したメモリ内容をファイルに書き出してダンプファイルを生成する。以下、ステップS529、S530とステップS531の処理が並列に実行される。
ステップS529において、メモリ開放処理部362は、HVダンプ対象領域情報で指定されるメモリ領域を開放する。また、HVダンプフラグリセット処理部363は、HVダンプフラグをリセット、すなわちFALSEに設定する。HVダンプフラグ通知部364は、ファームウェア311にHVダンプフラグを通知する。
ステップS530において、メモリ開放処理部320は、ダンプ対象領域情報をクリアする。また、HVダンプフラグリセット処理部321は、HVダンプフラグをリセット、すなわちFALSEに設定する。
ステップS531において、OS401−1は、通常の運用状態となる。
第1の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してハイパーバイザおよびオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにハイパーバイザおよびオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
ここで、第1の実施の形態に係るメモリダンプ生成処理の変形例について説明する。
変形例では、稼動中のハイパーバイザのメモリダンプの採取(ハイパーバイザのライブダンプと呼ぶ)が行われる。
図7Cは、第1の実施の形態に係るメモリダンプ生成処理の変形例のフローチャートである。
変形例のフローチャートは、図7A、7Bの第1の実施の形態に係るメモリダンプ生成処理のフローチャートにステップS532、S533が追加され、ステップS525においてNOと判定された場合に、制御がステップS532に進むものである。
図7Cでは、図7A、7Bに対する変更箇所について記載し、その他の部分については同様であるため記載は省略されている。
変形例において、例えば、HVダンプフラグのデータ構造を0:採取せず、1:異常時のHVダンプ、2:HVライブダンプのように変更することができる。HVメモリダンプ判断部408−1は、HVダンプフラグが1の場合、HVダンプフラグがTRUEと判定し、HVダンプフラグが0または2の場合、HVダンプフラグがFALSEと判定する。また、HVメモリダンプ判断部408−1は、HVダンプフラグが2の場合、HVダンプライブフラグがTRUEと判定する。
ステップS532において、HVメモリダンプ判断部408−1は、HVライブダンプフラグがTRUEであるか否か判定する。HVダンプフラグがTRUEの場合(すなわち、HVダンプフラグが2の場合)、制御はステップS533に進み、FALSEの場合、制御はステップS531に進む。
ステップS533において、HVライブダンプ処理が行われる。詳細には、HVダンプ対象領域読出処理部の呼び出し部410−1は、HVダンプ対象領域読出処理部360を呼び出す。HVダンプ対象領域読出処理部360は、稼動中のハイパーバイザ351が使用しているメモリ領域の内容を読み出し、制御ドメインに送信する。HVダンプ採取処理部412−1は、HVダンプ対象領域読出処理部360が読み出したメモリ内容を受信し、受信したメモリ内容をファイルに書き出してハイパーバイザのダンプファイルを生成する。
上記のように、稼動中のハイパーバイザのメモリダンプの採取では、ハイパーバイザを停止・再起動しないまま、ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出している。
(第2の実施の形態)
第2の実施の形態では、ハイパーバイザのメモリダンプに加えて、OSのカーネルのメモリダンプを行う。
図9A、9B、9Cは、第2の実施の形態に係るメモリダンプ生成処理のフローチャートである。
初期状態において、ドメイン201−1〜201−3およびOS401−1〜401−3は、起動され運用状態となっており、ドメイン201−4およびOS401−4は起動されていないものとする。
ステップS601において、ハイパーバイザ351に致命的なエラーが発生する。
ステップS602において、ハイパーバイザ351は、致命的なエラーを検出する。
ステップS603において、割り込み処理部370は、運用状態のOS、すなわちOS401−i(i=1〜3)に割り込み処理を通知し、OSパニック指示部353は、OS401−iにパニックを指示する。
ステップS604において、パニック処理部414−iは、パニック指示を受信し、OS401−iをパニックさせる。
ステップS605において、カーネルダンプ対象領域通知処理部415−iは、ハイパーバイザ351にカーネルダンプ対象領域情報を通知する。カーネルダンプ対象領域情報は、OS401−iのカーネルが使用しているメモリ領域(ダンプ対象領域)を示す情報であり、メモリ領域の開始アドレス(RA Base)およびサイズの情報を含む。カーネルダンプ対象領域情報は、図10に示すような形式であり、ブロックの番号、ブロックのメモリの開始アドレス(RA Base)、およびブロックのサイズが対応付けられている。
尚、ステップS604およびS605は、パニック指示を受信した論理ドメインごとにそれぞれ実行される。
ステップS606において、PA-RAマッピング処理部368は、通知された開始アドレス(RA Base)をRA BaseからPA Baseの開始アドレス(PA Base)に変換するRA-PA変換を行う。
ステップS607において、HVダンプ対象領域通知処理部354は、ハイパーバイザ351が使用しているメモリ領域を示すHVダンプ対象領域情報をファームウェア311に通知する。さらに、HVダンプ対象領域通知処理部354は、OS401−iから受信したカーネルダンプ対象領域情報をファームウェア311に通知する。尚、通知されるカーネルダンプ対象領域情報は、RA BaseからPA Baseに変換された開始アドレス(PA Base)およびサイズを含む。実施の形態では、停止した論理ドメインに対応する3個のカーネルダンプ対象領域情報が通知される。
ステップS608において、ダンプ対象領域情報/HVダンプフラグ格納処理部312は、受信したHVダンプ対象領域情報および受信したカーネルダンプ対象領域情報をダンプ対象領域情報として、ダンプ対象領域情報/HVダンプフラグ格納領域313に格納する。また、HVダンプフラグ設定部314は、HVダンプフラグをTUREに設定し、ダンプ対象領域情報/HVダンプフラグ格納領域313に格納する。
ステップS609において、HV再起動処理部357は、ハイパーバイザ351を停止する(HVアボート)。
ステップS610において、メモリ初期化処理部315は、ダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。すなわち、メモリ初期化処理部315は、ハイパーバイザ351が使用していた領域とパニック時にOS401−iのカーネルが使用していた領域以外のメモリ領域を初期化する。
ステップS611において、HV使用領域変更部316は、HV使用領域変更部316は、ハイパーバイザ351が使用する領域をダンプ対象領域情報で示される領域以外の領域に変更する。HV再起動命令部317は、ハイパーバイザ351に再起動を指示する。ダンプ対象領域情報/HVダンプフラグ通知部318は、ダンプ対象領域情報/HVダンプフラグ格納領域313からダンプ対象領域情報およびHVダンプフラグを読み出し、ハイパーバイザ351に通知する。ダンプ対象領域情報には、HVダンプ対象領域情報およびカーネルダンプ対象領域情報が含まれている。HVダンプ対象領域情報/HVダンプフラグ格納処理部355は、ダンプ対象領域情報の内のHVダンプ対象領域情報およびHVダンプフラグを受信し、HVダンプ対象領域情報/HVダンプフラグ格納領域356に格納する。カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部366は、ダンプ対象領域情報の内のカーネルダンプ対象領域情報を受信し、カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域367に格納する。
ステップS612において、HV再起動処理部357は、ハイパーバイザ351を起動する。
ステップS613において、メモリ初期化処理部372は、カーネルダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。
ステップS614において、PA-RAマッピング処理部368、OS再起動命令部358、およびダンプ専用ドメイン起動処理部365は、カーネルダンプフラグの値をチェックする。以下、カーネルダンプフラグの値に応じた処理が実行される。例えばPA-RAマッピング処理部368は、カーネルダンプフラグが“1:ダンプ採取用ドメインで採取”の場合、パニック発生時にOS401−1〜401−3のカーネルが使用していたメモリのPAをダンプ採取用ドメイン204−4のRAに割り当てる。
以下、ステップS621、ステップS622〜S626、およびステップS632〜S635の処理が別々に並列して実行される。
ただし、カーネルダンプフラグが“1:ダンプ採取用ドメインで採取”の場合、ステップS626、S635は実行されず、“2:メモリDynamic Reconfiguration機能を用いて採取”の場合、ステップS621は実行されない。
ここでは、ステップS621は、ダンプ採取用ドメイン204−4に関する処理であり、ステップS622〜S626は、制御ドメイン204−1に関する処理であり、ステップS632〜S635は、論理ドメイン204−2、204−3に関する処理である。
ステップS621において、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理が行われる。ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理の詳細については後述する。
ステップS622において、PA-RAマッピング処理部368は、ドメイン201−1の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS401−1を再起動してもパニック時のカーネルおよびパニック時のハイパーバイザ351が使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルおよびハイパーバイザが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
尚、パニック発生時にどの領域をカーネルおよびハイパーバイザ351が利用していたかは、HVダンプ対象領域情報およびカーネルダンプ対象領域情報を参照することにより判断される。
ステップS623において、OS再起動命令部358は、OS401−1に再起動を指示する。また、OS再起動命令部358は、カーネルダンプフラグが“2:メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。指示を受信したOS起動処理部409−1は、OS401−1を起動する。
ステップS624において、OS401−1は、業務を再開する。
ステップS625において、メモリDynamic Reconfiguration(DR)機能を用いたカーネルのメモリダンプ生成処理が行われる。メモリDR機能を用いたカーネルのメモリダンプ生成処理の詳細については後述する。 ステップS626において、ハイパーバイザのメモリダンプ生成処理が行われる。ステップS626は、図7BのステップS523〜S531の処理と同様であるため説明は省略する。
ステップS632において、PA-RAマッピング処理部368は、ドメイン201−2,201−3の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS401−1を再起動してもパニック時のカーネルおよびパニック時のハイパーバイザ351が使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルおよびハイパーバイザが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
尚、パニック発生時にどの領域をカーネルおよびハイパーバイザ351が利用していたかは、HVダンプ対象領域情報およびカーネルダンプ対象領域情報を参照することにより判断される。
ステップS633において、OS再起動命令部358は、OS401−2、401−3に再起動を指示する。また、OS再起動命令部358は、カーネルダンプフラグが“2:メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。指示を受信したOS起動処理部409−2、409−3は、OS401−2,401−3をそれぞれ起動する。
ステップS634において、OS401−2,401−3は、それぞれ業務を再開する。
ステップS635において、メモリDR機能を用いたカーネルのメモリダンプ生成処理が行われる。
以下、カーネルのメモリダンプ生成処理の詳細について説明する。
カーネルのメモリダンプ生成処理は、(1)ダンプ採取用ドメインによるメモリダンプを採取する方法(ステップS621)、または(2)メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法(ステップS626、S635)のいずれかが用いられる。
(1)ダンプ採取用ドメインでメモリダンプを採取する方法
ダンプ採取用ドメイン201−4は、複数のドメイン201が存在するシステムでも、それぞれの論理ドメイン毎に用意する必要はなく、システムで1つあれば良い。ダンプ採取用ドメイン201−4が1つの場合、複数の論理ドメイン201で同時にパニックが発生した場合は1ドメインずつメモリダンプを採取することになるが、ダンプ採取が完了しているかどうかにかかわらず、速やかに業務が再開できるため、業務への影響はない。
ダンプ採取用ドメイン201−4では、パニックが発生した論理ドメインの業務を引き継ぐ必要はないため、メモリダンプを採取するために必要となる下記のハードウェア資源があれば良い。
・パニックが発生した論理ドメインのOSのカーネルがパニック時に使用していた物理メモリ領域
・1個以上のCPU
・ダンプファイルを格納するディスクとディスクを使用するために必要なI/O資源
図11は、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理のフローチャートである。
図11は、図9BのステップS621に対応する。
ここでは、OS401−iのカーネルのメモリダンプ生成処理について説明する。
ステップS651において、ダンプ専用ドメイン起動処理部365は、ダンプ採取用ドメイン201−4をファームウェアモードで起動する。ファームウェアモードとは、OSを起動しないモード、すなわちOSを起動する前に停止するモードである。OSを起動しないことにより、ダンプ対象領域が書き換えられてしまうことを防ぐ。
ステップS652において、カーネルダンプ対象メモリ読出処理部411−4は、パニック発生時にオペレーティングシステム401−iのカーネルが使用していたメモリ領域(カーネルダンプ対象領域)を読み出す。尚、カーネルダンプ対象領域の情報(開始アドレス(RA Base)やサイズ等)は、ファームウェア311またはハイパーバイザ351からの通知により得る。
ステップS653において、カーネルダンプ採取処理部413−4は、読み出したメモリ内容をファイルに書き出してダンプファイルを生成する。
ステップS654において、ダンプ専用ドメイン停止処理部419−4は、ダンプ採取ドメイン201−4を停止する。そして、ダンプ専用ドメイン停止処理部419−4は、カーネルダンプ対象領域を使用可能な未使用のメモリ、すなわち空きメモリとするようにハイパーバイザ351のメモリ管理部361へ通知する。また、カーネルダンプフラグリセット処理部420−4は、ハイパーバイザ351にカーネルダンプフラグのリセットを指示する。リセット指示を受信したカーネルダンプフラグリセット処理部373は、カーネルダンプフラグをリセットする。
ステップS655において、メモリ管理部361は、カーネルダンプ対象領域を他の論理ドメイン201−iからも使用可能な空きメモリとする。
図12は、ダンプ採取用ドメインによるメモリダンプの採取を示す図である。
図12の左側は運用状態(およびパニック時)、真ん中は再起動時、右側はダンプ採取用ドメインによるメモリダンプの採取時を示す。
ここでは、論理ドメイン201−1の処理について記載している。尚、ドメイン201−2、201−3においても同様の処理が実行されるので、詳細は省略する。
図12の左側の運用状態において、PAのある領域が論理ドメイン201−1のRAのある領域にマッピングされている。
OS401−1のパニック時にOS401−1のカーネルが使用していた領域はカーネルダンプ対象領域となる。
OS401−1のパニック後、PA-RAマッピングの変更が行われ(ステップS622)、論理ドメイン201−1には、パニック時にOS401−1のカーネルが使用していた領域(カーネルダンプ対象領域)とは異なるPAの領域が割り当てられ、OS401−1は再起動する(図12の真ん中)。
図12の右側のダンプ時において、ダンプ採取専用ドメイン201−4のRAには、パニック時にOS401−1のカーネルが使用していたPAの領域(カーネルダンプ対象領域)が割り当てられる。ダンプ採取専用ドメイン201−4は、カーネルダンプ対象領域を読み出して、ダンプファイルを生成する。
図13は、ダンプ採取用ドメインによるメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
図13の左側は運用状態(およびパニック時)、真ん中はダンプ時、右側はダンプ後を示す。
ここでは、ドメイン201−1(制御ドメイン#0)とダンプ採取専用ドメイン201−4(ダンプ採取専用ドメイン#3)のPA-RAマッピングについて記載している。
PA-RAマッピング情報は、ドメイン、開始アドレス(PA Base)、サイズ、および開始アドレス(RA Base)が対応付けられて記載されている。
図13の左側のパニック時において、開始アドレス(PA Base)がxxxxx、サイズが8GBである領域が制御ドメイン#0の開始アドレス(RA Base)がaaaaaである領域にマッピングされている(図12の左側に対応)。この領域がカーネルダンプ対象領域となる。
OS401−1のパニック後、PA-RAマッピングの変更が行われ(ステップS622)、PA-RAマッピング情報は図13の真ん中に示すようになる。
図13の真ん中のダンプ時において、開始アドレス(PA Base)がxxxxx、サイズが8GBである領域がダンプ採取専用ドメイン#3の開始アドレス(RA Base)がaaaaaである領域にマッピングされている。すなわち、パニック時の制御ドメイン#0のPAの領域がダンプ採取専用ドメイン#3のRAにマッピングされている。また、開始アドレス(PA Base)がyyyyy、サイズが8GBである領域が制御ドメイン#0の開始アドレス(PA Base)がaaaaaである領域にマッピングされている。すなわち、新たなPAの領域が再起動後の制御ドメイン#0に割り当てられている(図12の右側に対応)。
ダンプファイルの生成後、カーネルダンプ対象領域は他のドメインからも使用可能な空きメモリとなる(ステップS655)。
すなわち、図13の右側のダンプ後において、ダンプ採取専用ドメイン#3のマッピング情報は削除される。
ダンプ採取用ドメインでメモリダンプを採取する方法によれば、異常を検出したドメインではなく、別のドメインでダンプを採取するため、ダンプ採取処理中に再度異常を検出してハングアップする等の二次被害が発生する可能性が低くなる。
ダンプ採取用ドメインでメモリダンプを採取する方法によれば、Capacity on Demand (CoD)のような、ユーザが使用したハードウェア資源(CPU、メモリ、ディスク等)の量や時間に応じて課金を行うシステムにおいて、ダンプ採取のために使用するハードウェア資源に対する課金を行わないようにすることが容易に実現でき、料金の適正化を図ることができる。
(2)メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法
ここでは、論理ドメイン201−1の処理(ステップS625)について説明する。尚、論理ドメイン201−2、201−3の処理(ステップS635)も同様の処理が実行されるので、詳細は省略する。
図14は、メモリDynamic Reconfiguration機能を用いたカーネルのメモリダンプ生成処理のフローチャートである。
図14は、図9CのステップS625に対応する。
ステップS641において、メモリDR組み込み処理部416−1は、メモリのDynamic Reconfiguration機能を使用して、パニック発生時にOS401−1のカーネルが使用していたメモリ領域(カーネルダンプ対象領域)をドメイン201−1に組み込む。なお、カーネルダンプ対象領域の情報(開始アドレス(RA Base)やサイズ等)は、ファームウェア311またはハイパーバイザ351からの通知により得る。
ステップS642において、カーネルダンプ対象メモリ読出処理部411−1は、組み込んだメモリ領域を読み出す。
ステップS643において、カーネルダンプ採取処理部413−1は、読み出したメモリ内容をファイルに書き出してダンプファイルを生成する。
ステップS644において、メモリDR切り離し処理部417−1は、メモリのDynamic Reconfiguration機能を使用して、パニック発生時にOS401−1のカーネルが使用していたメモリ領域をドメイン201−1から切り離して、切り離した領域を空きメモリとするようにメモリ管理部361に通知する。また、カーネルダンプフラグリセット処理部420−1は、ハイパーバイザ351にカーネルダンプフラグのリセットを指示する。リセット指示を受信したカーネルダンプフラグリセット処理部373は、カーネルダンプフラグをリセットする。
ステップS645において、メモリ管理部361は、切り離した領域を他のドメイン201−2、201−3からも使用可能な空きメモリとする。
また、ステップS644およびS645の代わりに、空きメモリ追加処理部418−1は、パニック時にOS401−1のカーネルが使用していたメモリ領域(すなわち、ダンプ済み領域)を使用可能な未使用のメモリ、すなわち空きメモリとするようにメモリ管理部402−1へ通知し、メモリ管理部402−1はダンプ済み領域を空きメモリとする処理を行っても良い。
図15は、メモリDynamic Reconfiguration機能を用いたメモリダンプの採取を示す図である。
図15の左側は運用状態(およびパニック時)、真ん中は再起動時、右側はダンプ採取用ドメインによるメモリダンプの採取時を示す。
ここでは、ドメイン201−1の処理について記載している。尚、ドメイン201−2、201−3においても同様の処理が実行されるので、詳細は省略する。
図15の左側の運用状態において、PAのある領域がドメイン201−1のRAのある領域にマッピングされている。
OS401−1のパニック時にOS401−1のカーネルが使用していた領域はカーネルダンプ対象領域となる。
OS401−1のパニック後、PA-RAマッピングの変更が行われ(ステップS622)、ドメイン201−1のRAには、パニック時にOS401−1のカーネルが使用していた領域(カーネルダンプ対象領域)とは異なるPAの領域が割り当てられ、OS401−1は再起動する(図15の真ん中)。
図15の右側の再起動後のダンプ時において、ドメイン201−1のRAには、パニック時にOS401−1のカーネルが使用していた領域(カーネルダンプ対象領域)が組み込まれる。ドメイン201−1は、カーネルダンプ対象領域を読み出して、ダンプファイルを生成する。
図16は、メモリDynamic Reconfiguration機能を用いたメモリダンプの採取におけるPA-RAマッピング情報を示す図である。
図16の左側は運用状態(およびパニック時)、真ん中はダンプ時、右側はダンプ後を示す。
ここでは、ドメイン201−1(制御ドメイン#0)のPA-RAマッピングについて記載している。
PA-RAマッピング情報は、ドメイン、開始アドレス(PA Base)、サイズ、および開始アドレス(RA Base)が対応付けられて記載されている。
図16の左側のパニック時において、開始アドレス(PA Base)がxxxxx、サイズが8GBである領域が制御ドメイン#0の開始アドレス(RA Base)がaaaaaである領域にマッピングされている(図15の左側に対応)。この領域がカーネルダンプ対象領域となる。
OS401−1のパニック後、PA-RAマッピングの変更が行われ、さらにカーネルダンプ対象領域が制御ドメイン#0に組み込まれ、PA-RAマッピング情報は図16の真ん中に示すようになる。
図16の真ん中のダンプ時において、開始アドレス(PA Base)がyyyyy、サイズが8GBである領域が制御ドメイン#0のRAの開始アドレス(RA Base)がaaaaaである領域にマッピングされている。さらに、開始アドレス(PA Base)がxxxxx、サイズが8GBである領域が制御ドメイン#0の開始アドレス(RA Base)がbbbbbである領域にマッピングされている。
すなわち、新たなPAの領域が再起動後の制御ドメイン#0に割り当てられ、さらに制御ドメイン#0の再起動後に、カーネルダンプ対象領域が制御ドメイン#0に組み込まれる(図15の右側に対応)。
ダンプファイルの生成後、カーネルダンプ対象領域は他のドメインからも使用可能な空きメモリとなる(ステップS645)。
すなわち、図16の右側のダンプ後において、カーネルダンプ対象領域のマッピング情報は削除される。
メモリDynamic Reconfiguration機能を用いてメモリダンプを採取する方法によれば、異常を検出したオペレーティングシステムではなく、再起動後の新しいオペレーティングシステムがダンプを採取するため、ダンプ採取処理中に再度異常を検出してハングアップする等の二次被害が発生する可能性が低くなる。
第2の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してハイパーバイザおよびオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにハイパーバイザおよびオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
第2の実施の形態に係るメモリダンプ生成処理によれば、ハイパーバイザおよびカーネルのメモリダンプを採取することで、ハイパーバイザおよびドメインの両方に起因したエラーであっても、効果的にエラーの解析を行うことができる。
(第3の実施の形態)
第3の実施の形態では、OSでエラーが検出され、カーネルのメモリダンプが行われる。
ここでは、OS401−1のカーネルのメモリダンプを生成する場合について説明する。
図17は、第3の実施の形態に係るメモリダンプ生成処理のフローチャートである。
先ず、メモリ管理部402−1は、OS401−1の起動時に、メモリ203−1の一番小さい(または一番大きい)リアルアドレス(RA)からカーネルが使用するメモリを割り当てる。このように、なるべくカーネルが使用するメモリ領域(ダンプ対象領域)のサイズが小さくなるようにする。また、マッピング情報抽出・格納処理部406−1は、カーネルが使用しているメモリのダンプを採取/解析するために必要となる情報(例えば、カーネルのテキスト域、データ域、ヒープ域、スタック域など、各セグメントのマッピング情報(論理アドレス、物理アドレス、サイズ等)、アドレス変換テーブル、ページテーブル、各種制御テーブルのマッピング情報)を、マッピング情報格納領域407−1に書き込む。また、ドメイン201−1〜201−3およびOS401−1〜401−3は、起動され運用状態となっており、ドメイン201−4およびOS401−4は起動されていないものとする。
ステップS701において、OS401−1に致命的なエラーが発生する。
ステップS702において、OS401−1は、致命的なエラーを検出する。
ステップS703において、パニック処理部414−1は、OS401−1をパニック(緊急停止)させる。
ステップS704において、カーネルダンプ対象領域通知処理部415−1は、緊急停止(パニック)時にOS401−1のカーネルが使用していたメモリ領域(カーネルダンプ対象領域)の情報(カーネルダンプ対象領域情報)をハイパーバイザ351に通知する。また、カーネルダンプフラグ通知部421−1は、カーネルダンプフラグをハイパーバイザ351に通知する。
ステップS705において、カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部366は、受信したカーネルダンプ対象領域情報およびカーネルダンプフラグをカーネルダンプ対象領域情報/カーネルダンプフラグ格納領域367に格納する。
ステップS706において、メモリ初期化部372は、カーネルダンプ対象領域情報で示される領域以外のメモリ領域を初期化する。すなわち、メモリ初期化部372は、パニック時にOS401−1のカーネルが使用していたメモリ領域の初期化処理を実施しない(すなわち、データを更新しない)ようにする。それにより、パニック時にOS401−1のカーネルが使用していたメモリ領域のデータはそのままの状態で残る。
ステップS707において、PA-RAマッピング処理部368、OS再起動命令部358、およびダンプ専用ドメイン起動処理部365は、カーネルダンプフラグの値をチェックする。以下、カーネルダンプフラグの値に応じた処理が実行される。例えばPA-RAマッピング処理部368は、カーネルダンプフラグが“1:ダンプ採取用ドメインで採取”の場合、パニック発生時にOS401−1〜401−3のカーネルが使用していたメモリのPAをダンプ採取用ドメイン204−4のRAに割り当てる。
以下、ステップS708とステップS709〜S712の処理が別々に並列して実行される。
ただし、カーネルダンプフラグが“1:ダンプ採取用ドメインで採取”の場合はステップS712は実行されず、“2:メモリDynamic Reconfiguration機能を用いて採取”の場合はステップS708は実行されない。
ステップS708において、ダンプ採取用ドメインによるカーネルのメモリダンプ生成処理が行われる。ステップS708は、図9BのステップS621の処理と同様であるため説明は省略する。
ステップS709において、PA-RAマッピング処理部368は、パニックしたドメイン201−1の物理アドレス(PA)とリアルアドレス(RA)間のマッピングを以下の1)、2)のように変更する。それにより、OS401−1を再起動してもパニック時にOS401−1のカーネルが使用していたメモリ領域のデータは上書きされなくなる。
1)パニック発生時にカーネルが使用していたメモリの物理アドレスは、再起動するドメインのリアルアドレスに割り当てないようにする。かつ、
2)再起動前後で、該当ドメインが使用できるメモリサイズがなるべく変化しないようにする。
ただし、再起動するドメインに割り当て可能な物理メモリが所定値より不足する場合は、1)を優先する。
ステップS710において、OS再起動命令部358は、ドメイン201−1にOS401−1の再起動を指示する。また、OS再起動命令部358は、カーネルダンプフラグが“2:メモリDynamic Reconfiguration機能を用いて採取”の場合、メモリDR機能を用いたケーネルのメモリダンプ生成処理を行う旨を再起動指示に含める。OS起動処理部409−1は、カーネルが使用していたメモリのダンプをディスク等に書き出すことなく、OS401−1を再起動する。
ステップS711において、OS401−1は、業務を再開する。
ステップS712において、カーネルのメモリダンプ生成処理が行われる。尚、ステップS712の処理は、上述のステップS625の処理と同様であるため説明は省略する。
第3の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してオペレーティングシステムを緊急停止(パニック)する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
(第4の実施の形態)
第4の実施の形態では、OSでエラーが検出され、カーネルのメモリダンプが行われ、さらに稼動中のハイパーバイザのメモリダンプの採取(ハイパーバイザのライブダンプと呼ぶ)が行われる。
ここでは、OS401−1のカーネルのメモリダンプを生成する場合について説明する。
図18A、18Bは、第4の実施の形態に係るメモリダンプ生成処理のフローチャートである。
ステップS801〜ステップS811は、図17のステップS701〜S711とそれぞれ同様の処理であるため、説明は省略する。
以下、ステップS812とステップS813は並列に実行される。
ステップS812において、カーネルのメモリダンプ生成処理が行われる。尚、ステップS812の処理は、上述のステップS625の処理と同様であるため説明は省略する。
ステップS813において、稼動中のハイパーバイザ351のメモリダンプ生成処理が制御ドメイン204−1で行われる。
以下、稼動中のハイパーバイザ351のメモリダンプ生成処理の詳細について説明する。
図19は、稼動中のハイパーバイザのメモリダンプ生成処理のフローチャートである。
図19は、図18BのステップS813に対応する。
第4の実施の形態において、例えば、HVダンプフラグのデータ構造を0:採取せず、1:異常時のHVダンプ、2:HVライブダンプのように変更することができる。HVメモリダンプ判断部408−1は、HVダンプフラグが0または1の場合、HVのライブダンプを採取しないと判定し、HVダンプフラグが2の場合、HVのライブダンプを採取すると判定する。
ステップS831において、HVメモリダンプ判断部408−1は、ハイパーバイザ351にHVダンプフラグの送信を要求する。
ステップS832において、HVメモリダンプフラグ読出・送信部359は、要求を受信すると、HVダンプ対象領域情報/HVダンプフラグ格納領域356からHVダンプフラグを読み出し、OS401−1に送信する。
ステップS833において、HVメモリダンプ判断部408−1は、受信したHVダンプフラグに基づいて、稼動中のハイパーバイザ351のライブダンプを採取するか否か判定する。稼動中のハイパーバイザ351のライブダンプを採取すると判定された場合、制御はステップS834に進み、採取しないと判定された場合の場合、処理は終了する。
ステップS834において、HVダンプ対象領域読出処理部の呼び出し部410−1は、HVダンプ対象領域読出処理部360を呼び出す。
ステップS835において、HVダンプ対象領域読出処理部360は、現在、ハイパーバイザ351が使用しているメモリ領域を読み出し、読み出したメモリ内容を制御ドメイン204−1に送信する。
ステップS836において、HVダンプ採取処理部412−1は、メモリ内容を受信し、受信したメモリ内容をファイルに書き出してハイパーバイザのダンプファイルを生成する。
上記のように、稼動中のハイパーバイザのメモリダンプの生成処理では、ハイパーバイザを停止・再起動しないまま、ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出している。
第4の実施の形態に係るメモリダンプ生成処理によれば、エラーを検出してオペレーティングシステムを再起動する場合、メモリダンプのサイズが大きい場合でも別のメモリ等にコピーを行っていないので、速やかにオペレーティングシステムを再起動できる。これにより、業務停止時間を短縮することができる。
第4の実施の形態に係るメモリダンプ生成処理によれば、ハイパーバイザおよびカーネルのメモリダンプを採取することで、ハイパーバイザおよびドメインの両方に起因したエラーであっても、効果的にエラーの解析を行うことができる。
以上、複数の実施の形態を説明してきたが、実施の形態は装置および方法に限らず、プログラムとして構成することも出来るし、該プログラムを格納したコンピュータが読み取り可能な記録媒体として構成することも出来る。記録媒体としては、例えば、フレキシブルディスク(FD)、ハードディスクドライブ、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、DVD−RAM、磁気テープ、不揮発性のメモリーカード等が用いられる。
例えば、実施の形態のプログラムは、該プログラムを格納した記録媒体から読み出され、メモリ13、23や不揮発性メモリ14に格納される。CPU12、22は、メモリ13、23や不揮発性メモリ14からプログラムを読み出して実行することにより、上述した実施の形態の各種処理を実行する。
本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成を取ることができる。例えば、論理ドメインの数は4つの限られるものでなく、任意の数にすることができる。
10 サーバ
11 システムボード
12 CPU
13 メモリ
14 不揮発性メモリ
21 サービスプロセッサ
22 CPU
23 メモリ
31 ディスクユニット
32 ハードディスクドライブ
41 通信インタフェース
51 バス
61 物理パーティション
201 論理ドメイン
202 CPU
203 メモリ
204 ディスク
311 ファームウェア
312 ダンプ対象領域情報/HVダンプフラグ格納処理部
313 ダンプ対象領域情報/HVダンプフラグ格納領域
314 HVダンプフラグ設定部
315 メモリ初期化処理部
316 HV使用領域変更部
317 HV再起動命令部
318 ダンプ対象領域情報/HVダンプフラグ通知部
319 PA-RAマッピング通知部
320 メモリ開放処理部
321 HVダンプフラグリセット処理部
351 ハイパーバイザ
352 ドメイン緊急停止指示部
353 OSパニック指示部
354 HVダンプ対象領域通知処理部
355 HVダンプ対象領域情報/HVダンプフラグ格納処理部
356 HVダンプ対象領域情報/HVダンプフラグ格納領域
357 HV再起動処理部
358 OS再起動命令部
359 HVメモリダンプ読出・送信部
360 HVダンプ対象メモリ読出処理部
361 メモリ管理部
362 メモリ開放処理部
363 HVダンプフラグリセット処理部
364 HVダンプフラグ通知部
365 ダンプ専用ドメイン起動処理部
366 カーネルダンプ対象領域情報/カーネルダンプフラグ格納処理部
367 カーネルダンプ対象領域情報/カーネルダンプフラグ格納領域
368 PA-RAマッピング処理部
369 PA-RAマッピング情報格納域
370 割り込み処理部
371 メモリダンプ処理起動部
372 メモリ初期化処理部
373 カーネルダンプフラグリセット処理部
401 オペレーティングシステム
402 メモリ管理部
403 ファイル管理部
404 プロセス管理部
405 割り込み処理部
406 マッピング情報抽出・格納処理部
407 マッピング情報格納領域
408 HVメモリダンプ判断部
409 OS起動処理部
410 HVダンプ対象領域読出処理部の呼び出し部
411 カーネルダンプ対象メモリ読出処理部
412 HVダンプ採取処理部
413 カーネルダンプ採取処理部
414 パニック処理部
415 カーネルダンプ対象領域通知処理部
416 メモリDR組み込み処理部
417 メモリDR切り離し処理部
418 空きメモリ追加処理部
419 ダンプ専用ドメイン停止処理部
420 カーネルダンプフラグリセット処理部
421 カーネルダンプフラグ通知部

Claims (11)

  1. メモリと、
    前記メモリに格納されたプログラムを実行することにより、仮想マシン、該仮想マシン上で稼動するオペレーティングシステム、および前記仮想マシンを制御するハイパーバイザを実行する処理部と、
    前記メモリ及び前記処理部を含むシステムの制御を行なう制御部と、
    を有し、
    前記処理部は、
    前記ハイパーバイザのエラーを検出したときに、前記オペレーティングシステムを停止し、
    前記ハイパーバイザが使用している第1のメモリ領域を前記制御部に通知し、
    前記ハイパーバイザを停止し、
    前記ハイパーバイザが使用するメモリ領域を、前記制御部に通知された前記第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記ハイパーバイザを起動し、
    前記第2のメモリ領域を使用領域として前記ハイパーバイザを起動した後、停止した前記オペレーティングシステムが使用するメモリ領域を、前記オペレーティングシステムのカーネルが使用していた第3のメモリ領域とは異なる第4のメモリ領域に変更し、
    前記第4のメモリ領域を使用領域として、停止した前記オペレーティングシステムを起動し、該オペレーティングシステム上で稼動する業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理と、
    前記第3のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  2. メモリと、
    仮想マシン及び該仮想マシン上で稼動するオペレーティングシステムを実行する処理部
    と、
    を有し、
    前記処理部は、
    実行中のオペレーティングシステムのエラーを検出したときに、前記エラーを検出したオペレーティングシステムを停止し、
    停止したオペレーティングシステムが使用するメモリ領域を、前記停止したオペレーティングシステムのカーネルが使用していた第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記停止したオペレーティングシステムを起動して該オペレーティングシステム上で稼動する業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す処理と、
    前記仮想マシンを制御するハイパーバイザを稼動させたまま、前記ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  3. メモリと、前記メモリに格納されたプログラムを実行することにより、仮想マシン、該仮想マシン上で稼動するオペレーティングシステムを実行する処理部とを各々有する複数の物理パーティションと、
    前記複数の物理パーティションの制御を行なう制御部と、
    を有し、
    前記物理パーティションの各々に含まれる前記処理部は、
    実行中のオペレーティングシステムのエラーを検出したときに、前記エラーを検出したオペレーティングシステムを停止し、
    停止したオペレーティングシステムが使用するメモリ領域を、前記停止したオペレーティングシステムのカーネルが使用していた第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記停止したオペレーティングシステムを起動して該オペレーティングシステム上で稼動する業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す処理と、
    前記仮想マシンを制御するハイパーバイザを稼動させたまま、前記ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  4. メモリと、前記メモリに格納されたプログラムを実行することにより、仮想マシン、該仮想マシン上で稼動するオペレーティングシステム、および前記仮想マシンを制御するハイパーバイザを実行する処理部とを各々有する複数の物理パーティションと、
    前記複数の物理パーティションの制御を行なう制御部と、
    を有し、
    前記物理パーティションの各々では、複数の仮想マシンを実行し、
    前記物理パーティションの各々に含まれる前記処理部は、
    前記ハイパーバイザのエラーを検出したときに、複数の仮想マシンの各々で稼動するオペレーティングシステムを停止し、
    前記ハイパーバイザが使用している第1のメモリ領域を前記制御部に通知し、
    前記ハイパーバイザを停止し、
    前記ハイパーバイザが使用するメモリ領域を、前記制御部に通知された前記第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記ハイパーバイザを起動し、
    前記第2のメモリ領域を使用領域として前記ハイパーバイザを起動した後、停止した複数のオペレーティングシステムの各々が使用するメモリ領域を、前記停止した複数のオペレーティングシステムの各々のカーネルが使用していた複数の第3のメモリ領域とは異なり、各々重複しない複数の第4のメモリ領域に変更し、
    前記複数の第4のメモリ領域の各々を使用領域として、各使用領域に対応する前記停止したオペレーティングシステムの各々を起動して、起動した各オペレーティングシステム上で稼動する業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理と、
    前記複数の第3のメモリ領域の各々データを読み出して、該データを前記複数のオペレーティングシステムのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  5. 少なくとも1つのメモリと、
    プログラムを実行する少なくとも1つの処理部と、を有し、
    前記メモリおよび前記処理部を用いて、オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザ、および前記メモリ及び前記処理部を含むシステムの制御を行なうファームウェアの処理が実行され、
    前記ハイパーバイザは、
    前記ハイパーバイザのエラーを検出したときに、前記オペレーティングシステムを停止し、
    前記ハイパーバイザが使用している第1のメモリ領域を前記ファームウェアに通知し、
    前記ハイパーバイザを停止し、
    前記ファームウェアは、
    前記ハイパーバイザが使用するメモリ領域を、前記第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記ハイパーバイザを起動させ、
    起動した前記ハイパーバイザは、
    停止した前記オペレーティングシステムが使用するメモリ領域を、前記オペレーティングシステムのカーネルが使用していた第3のメモリ領域とは異なる第4のメモリ領域に変更し、
    前記第4のメモリ領域を使用領域として、停止した前記オペレーティングシステムを起動させ、
    起動した前記オペレーティングシステムは、
    業務プログラムを再開して、前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出し、
    前記第3のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す
    処理を実行することを特徴とする情報処理装置。
  6. 前記処理部は、前記ハイパーバイザのエラーを検出したときに、前記第1のメモリ領域を、ダンプ対象領域として前記ファームウェアに通知することを特徴とする、請求項5記載の情報処理装置。
  7. 前記ファームウェアは、
    前記ハイパーバイザを停止した後、前記第1のメモリ領域の内容を保持したまま、前記ハイパーバイザが使用するメモリ領域を前記第2のメモリ領域に変更し、少なくとも変更後の前記第2のメモリ領域を初期化した後に、前記ハイパーバイザを起動させる、ことを特徴とする請求項5または6に記載の情報処理装置。
  8. さらに、前記ファームウェアは、前記ハイパーバイザが使用していた領域のダンプを行うか否かを示すフラグ情報を設定し、
    前記フラグ情報が前記ハイパーバイザが使用していた領域のダンプを行うことを示す場合、前記オペレーティングシステムは、前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す
    ことを特徴とする請求項5乃至のいずれか1項に記載の情報処理装置。
  9. 少なくとも1つのメモリと、
    プログラムを実行する少なくとも1つのプロセッサと、を有し、
    前記メモリおよび前記プロセッサを用いて、オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザ、および前記メモリ及び前記プロセッサを含むシステムの制御を行なうファームウェアの処理が実行され、
    前記ハイパーバイザは、
    実行中のオペレーティングシステムのエラーを検出したときに、前記エラーを検出したオペレーティングシステムを停止し、
    前記ファームウェアは、
    停止したオペレーティングシステムが使用するメモリ領域を、前記停止したオペレーティングシステムのカーネルが使用していた第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記ハイパーバイザは、
    前記第2のメモリ領域を使用領域として、前記停止したオペレーティングシステムを起動させ、
    起動したオペレーティングシステムは、
    業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す処理と、
    前記仮想マシンを制御するハイパーバイザが稼動した状態で、前記ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  10. 少なくとも1つのメモリと少なくとも1つのプロセッサを含む物理パーティションを有し、
    前記物理パーティションは、
    オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザ、および前記物理パーティションの制御を行なうファームウェアの処理を実行し、
    前記ハイパーバイザは、
    実行中のオペレーティングシステムのエラーを検出したときに、前記エラーを検出したオペレーティングシステムを停止し、
    停止したオペレーティングシステムが使用するメモリ領域を、前記停止したオペレーティングシステムのカーネルが使用していた第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として、前記停止したオペレーティングシステムを起動させ、
    起動したオペレーティングシステムは、
    業務プログラムを再開し、
    前記第1のメモリ領域のデータを読み出して、該データをオペレーティングシステムのダンプファイルとしてファイルに書き出す処理と、
    前記仮想マシンを制御するハイパーバイザが稼動した状態で、前記ハイパーバイザが使用するメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す処理を実行する
    ことを特徴とする情報処理装置。
  11. 少なくとも1つのメモリと少なくとも1つのプロセッサを含む物理パーティションを有し、
    前記物理パーティションは、
    オペレーティングシステムが稼動する仮想マシンを制御するハイパーバイザ、および前記物理パーティションの制御を行なうファームウェアの処理を実行し、
    前記ハイパーバイザは、
    複数の仮想マシンを制御し、
    前記ハイパーバイザのエラーを検出したときに、複数の仮想マシンの各々で稼動するオペレーティングシステムを停止し、
    前記ハイパーバイザが使用している第1のメモリ領域を前記ファームウェアに通知し、
    前記ハイパーバイザを停止し、
    前記ファームウェアは、
    前記ハイパーバイザが使用するメモリ領域を、通知された前記第1のメモリ領域とは異なる第2のメモリ領域に変更し、
    前記第2のメモリ領域を使用領域として前記ハイパーバイザを起動し、
    起動した前記ハイパーバイザは、
    停止した複数のオペレーティングシステムの各々が使用するメモリ領域を、前記停止した複数のオペレーティングシステムの各々のカーネルが使用していた複数の第3のメモリ領域とは異なり、各々重複しない複数の第4のメモリ領域に変更し、
    前記複数の第4のメモリ領域の各々を使用領域として、各使用領域に対応する前記停止したオペレーティングシステムの各々を起動し、
    起動した各オペレーティングシステムは、
    業務プログラムを再開し、
    前記複数の第3のメモリ領域の各々データを読み出して、該データを前記複数のオペレーティングシステムのダンプファイルとしてファイルに書き出し、
    前記起動した各オペレーティングシステムのうちの1つは、
    前記第1のメモリ領域のデータを読み出して、該データをハイパーバイザのダンプファイルとしてファイルに書き出す
    処理を実行することを特徴とする情報処理装置。
JP2012141495A 2012-06-22 2012-06-22 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム Active JP6083136B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2012141495A JP6083136B2 (ja) 2012-06-22 2012-06-22 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US13/902,849 US9229820B2 (en) 2012-06-22 2013-05-26 Information processing device with memory dump function, memory dump method, and recording medium
TW102118623A TW201407465A (zh) 2012-06-22 2013-05-27 具記憶體傾印功能之資訊處理裝置、記憶體傾印方法及記錄媒體
EP13169691.6A EP2687986B1 (en) 2012-06-22 2013-05-29 Information processing device with memory dump function, memory dump method, and recording medium
CN201310239430.4A CN103514085A (zh) 2012-06-22 2013-06-17 具有存储器转储功能的信息处理装置和存储器转储方法
KR1020130069068A KR20140000155A (ko) 2012-06-22 2013-06-17 메모리 덤프 기능을 갖는 정보 처리 장치, 메모리 덤프 방법, 및 메모리 덤프 프로그램을 기록한 컴퓨터 판독가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012141495A JP6083136B2 (ja) 2012-06-22 2012-06-22 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016232727A Division JP6256582B2 (ja) 2016-11-30 2016-11-30 メモリダンプ機能を有する情報処理装置

Publications (2)

Publication Number Publication Date
JP2014006676A JP2014006676A (ja) 2014-01-16
JP6083136B2 true JP6083136B2 (ja) 2017-02-22

Family

ID=48578801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012141495A Active JP6083136B2 (ja) 2012-06-22 2012-06-22 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム

Country Status (6)

Country Link
US (1) US9229820B2 (ja)
EP (1) EP2687986B1 (ja)
JP (1) JP6083136B2 (ja)
KR (1) KR20140000155A (ja)
CN (1) CN103514085A (ja)
TW (1) TW201407465A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104254840B (zh) * 2012-04-27 2017-05-31 马维尔国际贸易有限公司 在计算机系统中的存储器转储和分析
WO2015116057A1 (en) * 2014-01-29 2015-08-06 Hewlett-Packard Development Company, L.P. Dumping resources
US20150269092A1 (en) * 2014-03-19 2015-09-24 Fujitsu Limited Information processing device and shared memory management method
US9652328B2 (en) * 2014-05-12 2017-05-16 International Business Machines Corporation Restoring an application from a system dump file
US9710321B2 (en) * 2015-06-23 2017-07-18 Microsoft Technology Licensing, Llc Atypical reboot data collection and analysis
JP6604241B2 (ja) * 2016-03-09 2019-11-13 富士通株式会社 情報処理システム、情報処理装置、情報処理方法およびプログラム
KR20190004094A (ko) * 2017-07-03 2019-01-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10585736B2 (en) 2017-08-01 2020-03-10 International Business Machines Corporation Incremental dump with fast reboot
US20190138337A1 (en) * 2017-10-16 2019-05-09 Srinivas Vegesna Saas based solution- orchestration platform for orchestrating virtual network solutions on public/private cloud infrastructure for learning/development/evaluation/demos/validation/deployment
JP7067270B2 (ja) * 2018-05-25 2022-05-16 富士通株式会社 情報処理装置,ロードプログラムおよびロード方法
CN114625575B (zh) * 2022-05-16 2022-08-02 深圳市科力锐科技有限公司 业务系统同步方法、装置、设备及存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
JPH07234808A (ja) 1994-02-24 1995-09-05 Toshiba Corp システムダンプ採取方式
JPH10133918A (ja) 1996-11-01 1998-05-22 Toshiba Corp コンピュータシステム
US6189111B1 (en) 1997-03-28 2001-02-13 Tandem Computers Incorporated Resource harvesting in scalable, fault tolerant, single system image clusters
JPH11212836A (ja) 1997-11-18 1999-08-06 Hitachi Ltd 障害処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP3903678B2 (ja) 2000-02-15 2007-04-11 株式会社日立製作所 計算機システムのダンプ処理方法
JP2001290678A (ja) 2000-04-07 2001-10-19 Hitachi Ltd 非同期メモリダンプ実行方式
JP4547771B2 (ja) * 2000-04-28 2010-09-22 ソニー株式会社 情報処理システム、情報処理方法、情報処理装置
JP3891004B2 (ja) 2002-02-26 2007-03-07 日本電気株式会社 情報処理システム及び該システムの制御方法並びにプログラム
US7085959B2 (en) 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US7409722B2 (en) 2003-05-01 2008-08-05 Sun Microsystems, Inc. Control status register access to enable domain reconfiguration
US8069218B1 (en) 2003-05-05 2011-11-29 Parallels Holdings, Ltd. System, method and computer program product for process migration with planned minimized down-time
JP2005122334A (ja) * 2003-10-15 2005-05-12 Hitachi Ltd メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
US7464378B1 (en) 2003-12-04 2008-12-09 Symantec Operating Corporation System and method for allowing multiple sub-clusters to survive a cluster partition
JP4677214B2 (ja) 2004-09-06 2011-04-27 富士通株式会社 パニックダンプ採取のためのプログラム、方法、及び機構
JP2006172100A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd オペレーティングシステムの高速切替え方式及びその方法
US7698390B1 (en) 2005-03-29 2010-04-13 Oracle America, Inc. Pluggable device specific components and interfaces supported by cluster devices and systems and methods for implementing the same
WO2006103687A1 (en) 2005-03-31 2006-10-05 Hewlett-Packard Development Company L.P. Partitioned resource reallocation system and method
US8375386B2 (en) 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US20070094659A1 (en) 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
JP4645837B2 (ja) * 2005-10-31 2011-03-09 日本電気株式会社 メモリダンプ方法、コンピュータシステム、およびプログラム
JP2007133544A (ja) 2005-11-09 2007-05-31 Hitachi Ltd 障害情報解析方法及びその実施装置
US7831857B2 (en) 2006-10-31 2010-11-09 Hewlett-Packard Development Company, L.P. Method and system for recovering from operating system crash or failure
US7877358B2 (en) 2006-11-21 2011-01-25 Microsoft Corporation Replacing system hardware
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US8086906B2 (en) 2007-02-15 2011-12-27 Microsoft Corporation Correlating hardware devices between local operating system and global management entity
JP5212360B2 (ja) 2007-03-19 2013-06-19 富士通株式会社 制御プログラム、制御システムおよび制御方法
US8055735B2 (en) 2007-10-30 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for forming a cluster of networked nodes
US8145938B2 (en) 2009-06-01 2012-03-27 Novell, Inc. Fencing management in clusters
EP2453359B1 (en) 2009-07-10 2016-04-20 Fujitsu Limited Server having memory dump function and method for acquiring memory dump
US20110225458A1 (en) * 2010-03-09 2011-09-15 Microsoft Corporation Generating a debuggable dump file for an operating system kernel and hypervisor
US8627112B2 (en) * 2010-03-30 2014-01-07 Novell, Inc. Secure virtual machine memory
JP5444104B2 (ja) * 2010-04-21 2014-03-19 株式会社日立製作所 記憶手段の管理方法、仮想計算機システムおよびプログラム
JP2011243012A (ja) * 2010-05-19 2011-12-01 Hitachi Ltd 仮想計算機システムのメモリダンプ取得方法
EP2667309A1 (en) * 2011-01-17 2013-11-27 Fujitsu Limited Memory management method, memory management device and memory management circuit
US8782351B2 (en) * 2011-10-13 2014-07-15 International Business Machines Corporation Protecting memory of a virtual guest
US9280428B2 (en) * 2013-04-23 2016-03-08 Neftali Ripoll Method for designing a hyper-visor cluster that does not require a shared storage device

Also Published As

Publication number Publication date
US20130346369A1 (en) 2013-12-26
CN103514085A (zh) 2014-01-15
TW201407465A (zh) 2014-02-16
JP2014006676A (ja) 2014-01-16
US9229820B2 (en) 2016-01-05
EP2687986A3 (en) 2014-07-09
KR20140000155A (ko) 2014-01-02
EP2687986A2 (en) 2014-01-22
EP2687986B1 (en) 2019-08-14

Similar Documents

Publication Publication Date Title
JP6083136B2 (ja) メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US10877859B2 (en) Protecting virtual machines against storage connectivity failures
US9846611B2 (en) Proactive resource reservation for protecting virtual machines
JP4903244B2 (ja) 計算機システム及び障害復旧方法
US8489932B2 (en) Server system and crash dump collection method
US8135985B2 (en) High availability support for virtual machines
US9977740B2 (en) Nonvolatile storage of host and guest cache data in response to power interruption
US9990258B2 (en) Management computer and management program
JP2010086419A (ja) 情報処理装置
KR101517372B1 (ko) 화상처리장치, 및 화상처리장치의 제어 방법
US11720457B2 (en) Remote direct memory access (RDMA)-based recovery of dirty data in remote memory
CN105607962B (zh) 一种虚拟机备份的方法和装置
JP5403054B2 (ja) メモリダンプ機能を有するサーバおよびメモリダンプ取得方法
US9015535B2 (en) Information processing apparatus having memory dump function, memory dump method, and recording medium
JP6256582B2 (ja) メモリダンプ機能を有する情報処理装置
US20140189422A1 (en) Information processing apparatus and stored information analyzing method
KR20110076116A (ko) Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
JP2018013859A (ja) 情報処理装置、情報処理方法、およびプログラム
CN104571935A (zh) 全局调度系统及方法
JP2024090917A (ja) データ処理装置及びそのプログラム
US10387232B2 (en) Image forming apparatus, and recording medium therefor that ensure apparatus operation without separation of HDD when partially inoperable
JP2018113001A (ja) 情報機器及び情報機器のソフトウェアアップデート処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161130

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170109

R150 Certificate of patent or registration of utility model

Ref document number: 6083136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150