JP6356822B2 - 計算機システム及びメモリダンプ方法 - Google Patents

計算機システム及びメモリダンプ方法 Download PDF

Info

Publication number
JP6356822B2
JP6356822B2 JP2016552742A JP2016552742A JP6356822B2 JP 6356822 B2 JP6356822 B2 JP 6356822B2 JP 2016552742 A JP2016552742 A JP 2016552742A JP 2016552742 A JP2016552742 A JP 2016552742A JP 6356822 B2 JP6356822 B2 JP 6356822B2
Authority
JP
Japan
Prior art keywords
data structure
memory
failure
unit
area
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
JP2016552742A
Other languages
English (en)
Other versions
JPWO2016056074A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016056074A1 publication Critical patent/JPWO2016056074A1/ja
Application granted granted Critical
Publication of JP6356822B2 publication Critical patent/JP6356822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements

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)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、仮想化環境または資源論理分割環境を備えた計算機におけるメモリダンプ取得技術に関する。
Hypervisorを用いた仮想マシン(VM)技術や資源の論理分割(LPAR)技術の普及により、単一の物理計算機上で複数の仮想計算機が稼働する計算機システムが増えている。
また、これらVM(Virtual Machine)またはLPAR(Logical PARtitioning)技術の普及を進めるもう一つの要因として、計算機が備えるメモリ容量の増加がある。一台の物理計算機のメモリ搭載量が増加したため、その物理計算機に多数の仮想計算機を集約して稼働させることができるようになった。
一方、物理計算機のメモリ搭載量の増加にはデメリットもある。計算機の障害解析の一手法として、障害が発生した時点のメモリ中のデータを、他の計算機や記憶媒体に複製し、それを後に分析する方法がある。この複製したメモリ中のデータをメモリダンプと呼ぶ。メモリ搭載量が増加すると、メモリダンプを格納する記憶媒体により多くの容量が必要となり、複製処理に長時間かかるようになるため、メモリダンプ取得の手間が増加する。
そこで、メモリダンプを実施する領域の絞り込みが一般的に行われている。領域の絞り込みとは、メモリの全データを複製せず、障害部位に関連の高いデータの格納領域のみメモリダンプを取得することで、取得するメモリダンプの容量を減らす技術である。
ここで、メモリダンプの領域絞り込みをVMまたはLPAR技術を用いた計算機上で行う場合に既存の手法では問題が生じる。計算機で生じる障害は、VMまたはLPAR内の論理矛盾のようにVMまたはLPARが検知する障害や、ハードウェア不良やVM間通信経路障害のようにHypervisorが検知する障害など、障害の種別によって障害を検知する主体が異なる。
また、Hypervisorと個々のVMまたはLPARでは一般的にそれぞれ異なるOperating System(OS)が稼働しており、メモリにおける各種データの配置も異なるため、障害を検知したHypervisorまたはVMあるいはLPAR以外のHypervisorまたはVMあるいはLPARに関しては、メモリダンプの対象領域を絞り込もうとしても、データ配置が分からず絞りこみができない。
このようなVMまたはLPAR技術を用いた計算機環境において、メモリダンプの領域を絞り込む方法としては、特許文献1、2が提案されている。特許文献1は、Hypervisorが障害を検出すると障害に関連するVまたはLPARのみ、そのVMまたはLPARの占めるメモリ領域全体をメモリダンプ対象とする手法を示している。
特許文献2は、VMまたはLPAR内で障害が発生した場合、当該VMまたはLPARのメモリ領域と、Hypervisorが管理するメモリ領域のうち障害と関連する領域とをダンプする手法を示している。
米国特許出願公開第2014/0068341号明細書 国際公開第2012/137239号
しかしながら、特許文献1の技術では、VMまたはLPARが用いるメモリ領域内をさらに細粒度で領域の絞り込みを行うものではないため、削減できるメモリダンプ容量は多くない、という問題があった。
特許文献2の技術では、VMまたはLPAR内で検知できる障害を対象としており、Hypervisorにおける障害検知を対象としていない、という問題があった。
本発明が解決しようとする課題は、Hypervisorと共に複数のVMまたはLPARが稼働する計算機において、HypervisorまたはVM/LPARのいずれかで障害を検出した場合、障害の発生要因に関連しないデータも含めたメモリの内容を複製してしまうため、複製するデータの容量が膨大となることである。
そこで本発明は、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製にかかる時間を削減することを目的とする。
本発明は、プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、前記物理計算機は、1以上の仮想計算機を提供する仮想化部と、前記物理計算機及び前記仮想化部の障害を検出する第1の障害監視部と、前記仮想化部を割り当てた前記メモリの第1の領域を前記外部装置に複製する第1のメモリダンプ部と、前記仮想計算機の障害を検出する第2の障害監視部と、前記仮想化部が前記仮想計算機に割り当てた前記メモリの第2の領域を前記外部装置に複製する第2のメモリダンプ部と、を備え、前記仮想化部は、前記物理計算機と仮想化部で発生する障害の要因毎に第1の領域内でメモリダンプの対象とする第1のデータ構造と、仮想計算機で発生する障害の要因毎に前記第2の領域内でメモリダンプの対象とする第2のデータ構造がそれぞれ設定された取得領域情報と、前記第1の領域内での前記第1のデータ構造の位置と範囲を特定する第1の状態管理情報と、を有し、前記仮想計算機は、前記第2の領域内での前記第2のデータ構造の位置と範囲を特定する第2の状態管理情報と、を有し、前記第1のメモリダンプ部は、前記第1の障害監視部と第2の障害監視部の少なくとも一方が障害を検出したときには、記障害を検出した第1の障害監視部または第2の障害監視部から前記障害の要因を取得して、前記取得領域情報を参照して前記取得した障害の要因に設定された第1のデータ構造と第2のデータ構造それぞれ取得し、前記第1の状態管理情報を参照して前記第1の領域内で前記第1のデータ構造を含む第1のアドレス範囲を特定し、当該特定した第1のアドレス範囲を前記外部装置に複製し、前記第2のメモリダンプ部に前記第2のデータ構造を通知し、前記第2のメモリダンプ部は、前記第2の状態管理情報を参照して前記第2の領域内で前記通知された第2のデータ構造を含む第2のアドレス範囲を特定し、当該特定した第2のアドレス範囲を前記外部装置へ複製する。
本発明によれば、障害発生時のメモリダンプの取得対象となるメモリ領域を絞り込むことで、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製にかかる時間を削減することができる。
本発明の第1の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の第1の実施例を示し、計算機の一例を示すブロック図である。 本発明の第1の実施例を示し、仮想計算機の一例を示すブロック図である。 本発明の第1の実施例を示し、マップ管理テーブルの一例を示す図である。 本発明の第1の実施例を示し、データ配置情報の一例を示す図である。 本発明の第1の実施例を示し、取得領域テーブルの一例を示す図である。 本発明の第1の実施例を示し、協調ダンプ取得処理の一例を示すフローチャートである。 本発明の第1の実施例を示し、仮想計算機で行われる仮想メモリダンプ取得処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、計算機の一例を示すブロック図である。 本発明の第2の実施例を示し、取得領域テーブルの一例を示す図である。 本発明の第2の実施例を示し、一括ダンプ取得プログラムで行われる協調ダンプ取得処理の一例を示すフローチャートである。 本発明の第2の実施例を示し、ハイパーバイザのダンプ取得プログラムで行われるハイパーバイザ用領域メモリダンプ取得処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、計算機の一例を示すブロック図である。 本発明の第3の実施例を示し、取得領域テーブルの一例を示す図である。 本発明の第3の実施例を示し、一括ダンプ取得プログラムで行われる協調ダンプ取得処理の一例を示すフローチャートである。 本発明の第3の実施例を示し、ダンプ取得プログラムで行われる専用メモリダンプ取得処理の一例を示すフローチャートである。
以下、本発明の一実施形態について添付図面を用いて説明する。
図1は、本発明の第1の実施例を示し、計算機システム100の構成を示すブロック図である。計算機システム100を構成する計算機110は、CPU210と、物理メモリ130と、出力インタフェース170及びその他のハードウェアを有する。なお、出力インタフェース170は外部装置180に接続される。
CPU210は、物理メモリ130にハイパーバイザ120を読み込んで、実行する。ハイパーバイザ120は計算機110内で、複数の仮想計算機150a、150bを稼働させることができる。なお、以下では、仮想計算機150a、150bの総称を符号150で表す。なお、他の構成要素についても同様であり、a、bのない符号で総称を表す。
仮想計算機150a、150bは、ハイパーバイザ120から仮想メモリ160a、160bを割り当てられる。仮想メモリ160a、160bは、物理メモリ130の一部である仮想計算機用マップ領域131a、131bを割り当てた領域である。
仮想計算機用マップ領域131a、131bと仮想メモリ160a、160bの位置の対応関係はマップ管理テーブル133に格納され、ハイパーバイザ120が管理する。
計算機110の物理メモリ130には、計算機110の稼働を制御するハイパーバイザプログラム137がロードされ、CPU210によって実行され、ハイパーバイザ120として機能する。ハイパーバイザ120は、計算機110の状態管理データ134を参照、更新しながら稼働する。
仮想計算機150a、150bの仮想メモリ160a、160bには、仮想計算機150a、150bを制御するシステムプログラム161a、161bがロードされ、CPU210(または仮想CPU)によって実行され、システム制御部として機能する。システム制御部は、例えば、オペレーティングシステムである。システム制御部は、仮想計算機150a、150bの状態管理データ162a、162bを参照、更新しながら稼働する。
物理メモリ130及び仮想メモリ160a、160bには、計算機110及び仮想計算機150a、150bの状態を監視する障害監視プログラム136、164a、164bがロードされCPU210(または仮想CPU)によって実行される。障害監視プログラム136、164a、164bは、それぞれ障害監視部として機能する。なお、障害監視プログラム136は、計算機110及びハイパーバイザ120の障害を監視し、障害監視プログラム164a、164bは、仮想計算機150a、150bの障害をそれぞれ監視する。
これら障害監視プログラム136、164a、164bが計算機110及び仮想計算機150a、150bのいずれかに障害を検知すると、物理メモリ130に格納された一括ダンプ取得プログラム135に障害の発生を通知し、物理メモリ130及び仮想メモリ160a、160bのダンプ処理を実行する。
ダンプ処理とは、障害が発生した時点の物理メモリ130または仮想メモリ160a、160bの内容を後の障害解析のために外部装置180に複製する処理である。一括ダンプ取得プログラム135が障害監視プログラム136、164a、164bから障害発生の通知を受け取ると、取得領域テーブル132を参照して障害の内容と対応する取得対象データを特定する。
次に、一括ダンプ取得プログラム135は、仮想メモリ160a、160b中のダンプ取得プログラム163a、163bに対し、仮想計算機150a、150bの状態管理データ162a、162bのうち、取得対象データに該当するデータを一括ダンプ取得プログラム135に送信するよう要求する。
一括ダンプ取得プログラム135は、ダンプ取得プログラム163a、163bから状態管理データ162a、162bのうち取得対象データに該当するデータを受け取ると、計算機110自体の状態管理データ134における取得対象データと、マップ管理テーブル133を合わせて出力インタフェース170を介して外部装置180に送信する。
前記のダンプ処理により、状態管理データ134、162a、162bのデータのうち、障害の内容に関連するデータのみが外部装置180に複製され、障害と関連しないデータの複製を避けることができる。このため、物理メモリ130及び仮想メモリ160a、160bの内容を全て複製するのに比べて、外部装置180に複製するデータの容量を削減でき、出力インタフェース170を介したデータの転送時間も削減できる。
ハイパーバイザ120と、仮想計算機150のシステム制御部はプログラムとして物理メモリ130にロードされる。
CPU210は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、CPU210は、ハイパーバイザプログラム137に従って処理することでハイパーバイザ120として機能する。他のプログラムについても同様である。さらに、CPU201は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
ハイパーバイザ120や仮想計算機150の各機能を実現するプログラム、テーブル等の情報は、外部装置180や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
以下、計算機システム100についてより詳細に説明する。
図2は、計算機110の構成を示すブロック図である。計算機110はCPU(Central Processing Unit)210と、物理メモリ130と、出力インタフェース170と、各種ハードウェア140とを備える。
CPU210は、物理メモリ130に格納されたプログラムやテーブルを読み取って、計算機110の各構成要素を制御する。物理メモリ130は、取得領域テーブル132、マップ管理テーブル133、状態管理データ134、一括ダンプ取得プログラム135、障害監視プログラム136、ハイパーバイザプログラム137を格納する。また、同時に稼働する仮想計算機150と同じ数の仮想計算機マップ領域131を格納する。
取得領域テーブル132は、予め想定された障害の種類と、障害に対応して取得する状態管理データ134中のデータ構造(またはデータの種別)の対応関係を格納する。マップ管理テーブル133は、仮想計算機マップ領域131と仮想計算機150中の仮想メモリ160の対応関係を示すテーブルを格納する。
状態管理データ134は、計算機110の備える装置の状態を格納する。データ配置情報138は、状態管理データ134中のどのデータ構造がどのメモリ領域に格納されているかの対応を格納する。例えばCPU210や出力インタフェース170のような計算機110が内包するハードウェアの状態や、ユーザによる計算機の利用状況やネットワーク上の他の計算機との通信状況など、論理的な稼働状態に関する情報も含む。
一括ダンプ取得プログラム135は、障害発生時の物理メモリ130及び仮想メモリ160のデータを出力インタフェース170を介して外部装置180に複製するプログラムである。
ハイパーバイザプログラム137は、計算機110の各構成要素を管理し、さらに仮想計算機150を稼働、管理するプログラムである。ハイパーバイザプログラム137としては、KVM(http://www.linux−kvm.org/page/Main_Page)等を採用することができる。
物理メモリ130内の仮想計算機マップ領域131は、それぞれ仮想計算機150の仮想メモリ160と対応付けられる領域であり、仮想計算機150が仮想メモリ160の内容を読み書きすると、対応する仮想計算機マップ領域131内の内容が読み書きされる。
ハイパーバイザプログラム137は、CPU210を介して少量のデータを仮想計算機150と送受信できるが、メモリダンプのような大容量データの送受信は時間がかかってしまう。そこでハイパーバイザプログラム137に含まれる内部通信プログラム139は、ハイパーバイザプログラム137と各仮想計算機150の間の内部通信経路を実現するプログラムである。内部通信プログラム139は共有メモリや通信キュー等の一般的なデータ共有手段を仮想計算機150に提供し、メモリダンプの送受信を可能とする。例えば、内部通信プログラム139は、共有メモリにキューを設定して仮想計算機150とハイパーバイザ120間の通信を実行する。
外部装置180は、障害時に出力インタフェース170を介して一括ダンプ取得プログラム135により送信されたメモリダンプを格納する装置である。出力インタフェース170と外部装置180との例として、出力インタフェース170にHBA(Host Bus Adaptor)を用いて外部装置180としてHDD(Hard Disk Drive)を用い、SCSI(Small Computer System Interface)によりメモリダンプを送信する場合や、出力インタフェース170にNIC(Network Interface Card)を用いて外部装置180として別の計算機を用い、TCP/IP(Transmission Control Protocol/Internet Protocol)によりメモリダンプを送信する場合がある。以上の他に、外部装置180は、計算機110に接続されたUSBメモリ等の記憶装置であってもよい。
また、出力インタフェース170は、ひとつのI/O(デバイス)を複数の仮想計算機で利用可能なSR−IOV(Single Root IO Virtualization)で構成され、複数の出力インタフェース370を仮想計算機150に割り当てることできる。仮想計算機150は、ハイパーバイザ120から割り当てられた出力インタフェース370を物理的なインタフェースとして利用することができる。なお、仮想計算機150に物理的なI/Oデバイスを占有させてもよい。
その他、計算機110は複数の各種ハードウェア140を含み、各種ハードウェア140はハイパーバイザプログラム137によって管理される。仮想計算機150が各種ハードウェア140を利用したい場合は、仮想計算機150はハイパーバイザプログラム137を介して利用することができる。
各種ハードウェア140の例として、キーボード等の入力装置やディスプレイ出力、音声入出力、シリアルコンソール、ネットワークインタフェース、ディスクインタフェース等が挙げられる。
図3は、仮想計算機150の構成を示すブロック図である。仮想計算機150はそれ自体単独で計算機のハードウェアを備えるわけではなく、ハイパーバイザプログラム137の制御により、計算機110のハードウェアの一部から構成されるが、仮想計算機150内で稼働する各種プログラムにとっては、あたかも計算機のように振る舞う。計算機110のハードウェアの一部から仮想計算機150を構成するため、仮想計算機150を同時に複数稼働させることもできる。
仮想計算機150は仮想CPU310、仮想メモリ160を備える。仮想CPU310は、仮想メモリ160に格納された各種プログラムを読み取って、仮想計算機150の各構成要素を制御する。また、仮想CPU310は、ハイパーバイザプログラム137の制御により、CPU210の稼働時間の一部を時分割で分け与えるか、もしく複数のCPU210の一部を分け与えて構築される。
仮想メモリ160は、ハイパーバイザプログラム137の制御により物理メモリ130中の仮想計算機マップ領域131と対応付けられるメモリ領域である。仮想メモリ160は、システムプログラム161、状態管理データ162、ダンプ取得プログラム163、障害監視プログラム164を格納する。
システムプログラム161は、仮想計算機150の構成要素を管理するプログラムである。状態管理データ162は、仮想計算機150の備える装置やシステムプログラム161の状態を格納する。データ配置情報165は、状態管理データ162中のどのデータ構造がどのメモリ領域に格納されているかの対応表を格納する。
ダンプ取得プログラム163は、一括ダンプ取得プログラム135から障害発生に伴うダンプ取得の指示を受けた場合、障害発生時の仮想メモリ160の内容(メモリダンプ)を内部通信インタフェース380または出力インタフェース370を介して外部装置180に送信するプログラムである。なお、出力インタフェース370は、図2で述べたように、出力インタフェース170が提供する機能で、物理的なインタフェースとして利用可能である。
内部通信インタフェース380は、仮想計算機150と計算機110の間の通信経路であり、内部通信プログラム139によって生成される。仮想計算機150のダンプ取得プログラム163は内部通信インタフェース380を介して仮想メモリ160のメモリダンプを計算機110の一括ダンプ取得プログラム135に送信することができる。外部装置180へのメモリダンプ送信は一括ダンプ取得プログラム135が行う。
仮想計算機150は、メモリダンプを出力インタフェース370を介して直接外部装置180に送信することもできる。これら外部装置180及び出力インタフェース370はメモリダンプの格納先として仮想計算機150が備えることができる。また、メモリダンプの送信経路として内部通信インタフェース380と出力インタフェース370のどちらを用いるかは、取得領域テーブル132により指定される。
上記の構成により、仮想計算機150は、外部装置180に仮想メモリ160の内容を複製する経路として、内部通信インタフェース380を介してハイパーバイザ120から転送する経路と、出力インタフェース370を介して直訳外部装置180に転送する経路の2つの通信経路を有する。
内部通信インタフェース380または内部通信経路に障害が発生した場合であっても、仮想メモリ160の内容を外部装置180にコピーすることができる。
図4は、マップ管理テーブル133の一例を示す図である。マップ管理テーブル133は仮想計算機150の仮想メモリ160と物理メモリ130上の対応付けを管理するテーブルである。
マップ管理テーブル133は、仮想計算機ID410、オフセット420、サイズ430を項目とし、仮想計算機150の数だけエントリ441、442、443を有する。仮想計算機ID410は、エントリの対象とする仮想計算機150を一意に特定する文字列や数値等の識別子を格納する。
オフセット420は、物理メモリ130と仮想メモリ160の位置の対応関係を示す。この位置は、仮想メモリ160の開始位置に対応する物理メモリ130の先頭アドレスである。サイズ430は仮想メモリ160の領域の大きさを示す。例えば、エントリ441はオフセット0x40000000を保持している場合、仮想メモリ160のアドレスPはオフセット分を加算した物理メモリ130上のアドレスP+0x40000000と対応付けられる。
マップ管理テーブル133の構成方法は図4に限らない。例えば物理メモリ130の複数の連続領域を連結して仮想メモリ160と対応付けたり、物理メモリ130及び仮想メモリ160を固定長のページの集合として管理し、物理メモリ130のページと仮想メモリ160のアドレスの対応表として管理しても良い。これらのいずれの方法でも仮想メモリ160のアドレスと物理メモリ130のアドレスを対応付けることができる。
また、物理メモリ130の領域は複数の仮想計算機150の仮想メモリと対応付けても良い。
図5は、データ配置情報138の一例を示す。データ配置情報138は、状態管理データ134の内容が物理メモリ130においてどの領域に格納されているかを示しており、データ構造毎に1つのエントリ541、542、543を有する。
データ構造名510は、エントリの示す対象であるデータ構造を一意に特定する名前を格納する。オフセット520は、物理メモリ130中でエントリの示す対象であるデータ構造が格納された領域の先頭アドレスを示す。サイズ530はエントリの示す対象であるデータ構造が格納される領域の大きさを示す。
仮想計算機150のデータ配置情報165も、データ配置情報138と同様の構造を有する。ただしデータ配置情報165のオフセット520は、物理メモリ130の先頭アドレスではなく仮想メモリ160の先頭アドレスを示す。
データ配置情報138、165の構成方法は図4に限らない。例えば物理メモリ130及び仮想メモリ160を固定長のページの集合として管理し、データ構造の各ページと物理メモリ130または仮想メモリ160のページの対応表として管理しても良い。
図6は、取得領域テーブル132の一例を示す。取得領域テーブル132は、状態管理データ134、162のうち、障害発生時にダンプ取得を行う領域を障害の要因別に分類したものである。
取得領域テーブル132の各行エントリ650は、計算機110または仮想計算機150のデータ構造毎に存在する。データ構造620は、その行エントリ650が対応する計算機110または仮想計算機150中の状態管理データ134、162の一部を示す。
ID610は、行エントリ650の対象となる計算機を一意に特定する識別子を格納する。行エントリ650のID610が“Hypervisor”である場合、その行エントリ650は計算機110のデータ構造に対応する。
行エントリ650のID610が“仮想#+数値”である場合、その行エントリ650はID610中の数値に対応した仮想計算機150のデータ構造に対応する。
障害要因630は障害監視プログラム136、164が検出する障害の一覧を示しており、複数の障害要因630に対応して同数の列エントリ640が格納される。
各行エントリ650と列エントリ640の交わる設定項目660は、列エントリ640が対応する要因の障害が発生したとき、行エントリ650が対応する計算機ID610のデータ構造620を複製する優先度を示す。設定項目(またはセル)660に“A”、“B”、“C”等の所定の文字列が格納されたデータ構造620及び障害要因630の列エントリ640は、設定された文字列により優先度が決まる。
例えば、優先度として“B”が設定された場合、設定項目660の値がB以上(図示の例では、A,B)のデータ構造620が優先度に応じて選択される。優先度の値の大きさとしては、例えば、A>B>Cである。障害要因630の列エントリ640が時刻エラーで、優先度がBの場合、ハイパーバイザと仮想計算機のプロセス情報と、ハイパーバイザの稼働ログが選択される。
なお、本実施例では、設定項目660に“C”が格納されたデータ構造620、障害要因630の列エントリ640は、該当する障害が発生してもデータ構造620を複製しないことを示す。なお、優先度は数値等を用いるようにしてもよい。
さらに取得領域テーブル132は、障害要因630の列エントリ640毎に稼働停止設定670及び仮想メモリ送信インタフェース680を格納する。
稼働停止設定670は、列エントリ640に対応する障害が生じたとき、計算機110及び仮想計算機150の一部またはすべてにおいて、稼働を停止してメモリダンプ取得を行うか、稼働を継続しながらメモリダンプ取得を行うかを示す。
仮想メモリ送信インタフェース680は、列エントリ640に対応する障害が生じたとき、仮想メモリ160の内容を内部通信インタフェース380または出力インタフェース370のどちらを介して出力するかを示す。
取得領域テーブル132は、計算機システム100の利用者が障害分析に必要なデータ構造620を選択して設定してもよいし、一括ダンプ取得プログラム135が物理メモリ130の容量等の計算機110の構成から構成を算出して設定しても良い。例えば物理メモリ130の容量が非常に大きい場合、一括ダンプ取得プログラム135は、ダンプ取得の長時間化を防ぐために取得するデータ構造620を絞り込む等の設定を行うことができる。
計算機システム100の利用者による取得領域テーブル132の設定例を以下に幾つか上げる。状態管理データ134、162は物理メモリ130及び仮想メモリ160の容量増加に比例して増加する。よって物理メモリ130及び仮想メモリ160を多く備えた計算機110に対する取得領域テーブル132の設定では、より複製対象としないデータ構造620の数を増やすことで、複製すべき総データ容量を抑えることができる。
また別の設定例では、内部通信経路が障害要因となる場合、内部通信経路の状態に応じて複数列エントリ650を作成し、異なる制御を行うように設定しても良い。
例えば、内部通信経路の通信が双方向共に完全に断絶する障害に対応する場合、列エントリ650は、仮想メモリ送信インタフェース680は出力インタフェース370を格納するが、内部通信経路の通信が計算機110から仮想計算機150への片方向のみ断絶する場合の列エントリは、仮想メモリ送信インタフェース680に内部通信インタフェース380を格納することができる。
また別の設定例では、計算機110が出力インタフェース170や外部装置180を複数有する場合、障害要因に応じて異なる出力インタフェース170や外部装置180を使用するように設定してもよい。例えばデータの転送速度が速い出力インタフェース170が使用可能であれば、当該出力インタフェース170を仮想メモリ送信インタフェース680として設定し、転送速度が速い出力インタフェース170が障害要因である場合には、別の転送速度が遅い出力インタフェース170を仮想メモリ送信インタフェース680として設定することができる。
また別の設定例では、障害要因630の列エントリ640には計算機110の異常を示す状態以外の要因を格納することもできる。例えば、計算機システム100の利用者によるメモリダンプ取得要求や、計算機システム100の計算機110以外の他の計算機によるメモリダンプ取得要求を要因として含むことができる。
これらの要因は計算機110自体に障害が生じていなくても、計算機システム100において計算機110と通信して計算処理を行う他の計算機に障害が生じた場合、計算機110のメモリダンプと合わせて解析するために有用である。
図7は、計算機システム100で行われる協調ダンプ取得処理700の一例を示すフローチャートである。なお、協調ダンプ取得処理700は、ハイパーバイザ120の一括ダンプ取得プログラム135と、仮想計算機150のダンプ取得プログラム163が協調してメモリ160の内容を絞り込んでダンプする処理である。
協調ダンプ取得処理700は、計算機110の障害監視プログラム136または仮想計算機150の障害監視プログラム164の何れか障害を検出した通知を契機に開始する(ステップ705)。
障害監視プログラム136、164が検出する障害の例としては、CPU210やメモリ130と言った物理的な構成部品の故障や、各プログラムのバグによる論理的な状態の不正、他の計算機との通信断絶等がある。障害監視プログラム136、164は障害を検出すると、検出した障害要因を一括ダンプ取得プログラム135に送信する(ステップ710)。
一括ダンプ取得プログラム135は、受信した障害要因から取得領域テーブル132の列エントリ640を特定する。一括ダンプ取得プログラム135は列エントリ640の稼働停止設定670を参照し、稼働停止設定670が“全て”の場合、一括ダンプ取得プログラム135は全仮想計算機150を停止させる。ただし、一括ダンプ取得プログラム135及びダンプ取得プログラム163、及びダンプ取得に必要な内部通信プログラム139を除いたプログラムを停止させ、状態管理データ134、162が以後プログラムの稼働により変更されることを抑止する(ステップ720)。
稼働停止設定670が“当該ID”の場合、一括ダンプ取得プログラム135は障害要因に関連する仮想計算機150において、一括ダンプ取得プログラム135及びダンプ取得プログラム163、及びダンプ取得に必要な内部通信プログラム139を除いたプログラムを停止させる。これにより、一括ダンプ取得プログラム135は、状態管理データ134、162が以後プログラムの稼働により変更されることを抑止する。例えば物理メモリ130が複数格納する仮想計算機マップ領域131のうち1か所が故障した場合、その仮想計算機マップ領域131を用いる仮想計算機150のみがプログラムの停止対象となる。
稼働停止設定670が“なし”の場合、計算機110及び仮想計算機150は稼働を継続しながらメモリダンプ処理を行う。
次に、一括ダンプ取得プログラム135は、取得するデータ構造の領域を特定するための優先度の判定を行う(ステップ725)。
この判定は一括ダンプ取得プログラム13が、事前に設定しておいた優先度の値を用いても良いし、ステップ720で各プログラムが停止されているのであれば、計算機システム100の利用者による入力から優先度を受け付けても良い。計算機システム100の利用者は、障害解析のために得られるデータの量と、メモリダンプにかかる時間を鑑みて優先度を決定し、図示しない入力インタフェースから設定することができる。一括ダンプ取得プログラム135は、設定または入力された優先度を取得し、取得領域テーブル132から選択する優先度の値を判定する。一括ダンプ取得プログラム135は、取得した優先度を閾値として、当該閾値以上の優先度が設定されたデータ構造を選択することで、データ構造の絞り込みを実現する。
続けて一括ダンプ取得プログラム135は、前記ステップ725で判定した優先度の値を用いて、取得領域テーブル132から列エントリ640を参照し、前記優先度以上の設定項目660を有する計算機ID610及びデータ構造620を取得する(ステップ730)。ここで取得した計算機ID610及びデータ構造620が以後の処理における取得対象のデータとなる。
次に、一括ダンプ取得プログラム135は、取得領域テーブル132の列エントリ640の仮想メモリ送信インタフェース680を参照し、その内容が“内部”、“出力”のいずれであるかによって仮想メモリ160の内容を内部通信インタフェース380または出力インタフェース370のどちらを介して出力するかを判定する(ステップ735)。
前記ステップ735において仮想メモリ160の内容を内部通信インタフェース380を介して出力すると判定した場合、一括ダンプ取得プログラム135は、各仮想計算機150のダンプ取得プログラム163に対し、仮想メモリ160上の状態管理データ162のうちステップ730で取得したデータ構造620に該当する領域のデータを内部通信インタフェース380を介して一括ダンプ取得プログラム135に送信するよう指示する(ステップ740)。
一括ダンプ取得プログラム135は、各仮想計算機150のダンプ取得プログラム163から内部通信インタフェース380を介してステップ730で取得したデータ構造620に該当する領域のデータを受信する(ステップ745)。次に、一括ダンプ取得プログラム135は、受信したデータを出力インタフェース170を介し外部装置180に送信する(ステップ750)。
前記ステップ750において、一括ダンプ取得プログラム135は、マップ管理テーブル133を同時に外部装置180に送信することで、後の障害解析において仮想メモリ160上のアドレスと物理メモリ130上のアドレスの対応付けを可能にする。
前記ステップ740からステップ750までの処理は、仮想計算機150の数だけ繰り返し実行しても良いし、並列に実行してもよい。また、各仮想計算機150において全てのデータ構造620を前記ステップ740からステップ750を1度の実行で出力する必要はなく、内部通信経路で一度に送受信可能なサイズにデータ構造620を分割し、前記ステップ740からステップ750を複数回繰り返し行うことで全てのデータ構造620を出力してもよい。
前記ステップ735において仮想メモリ160の内容を出力インタフェース370を介して出力すると判定した場合、一括ダンプ取得プログラム135は、各仮想計算機150のダンプ取得プログラム163に対し、仮想メモリ160上の状態管理データ162のうちステップ730で取得したデータ構造620に該当する領域のデータを出力インタフェース370を介して直接外部装置180に送信するよう指示する(ステップ755)。その後一括ダンプ取得プログラム135はダンプ取得プログラム163がデータ構造620を外部装置180に送信し終わるまで待つ(ステップ760)。
前記ステップ750またはステップ760を終えると、一括ダンプ取得プログラム135は計算機110自身の状態管理データ134のうち、ステップ730で取得したデータ構造620に該当する領域をデータ配置情報138を参照して特定し、その領域のデータ及びデータ配置情報138を出力インタフェース170を介して外部装置180に送信する(ステップ765)。
上記処理により、一括ダンプ取得プログラム135は、障害が発生した計算機と障害要因から障害に関連する計算機を、必用に応じて停止させる。そして、一括ダンプ取得プログラム135は、障害要因と優先度に基づいて取得領域テーブル132から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置180へ送信する。
図8は、仮想計算機150で行われる仮想メモリダンプ取得処理800の一例を示すフローチャートである。仮想メモリダンプ取得処理800は、前記協調ダンプ取得処理700において一括ダンプ取得プログラム135が図7のステップ740またはステップ755において実行する。一括ダンプ取得プログラム135は、ダンプ取得プログラム163に対しデータ構造の出力を指示すると、ダンプ取得プログラム163の実行を開始させる。その際、一括ダンプ取得プログラム135はダンプ取得プログラム163に取得対象のデータ構造620及びダンプ送信に用いるインタフェースの情報を通知する(ステップ805)。
ダンプ取得プログラム163はデータ配置情報165を参照し、状態管理データ162のうち前記ステップ805で通知された取得対象のデータ構造620の仮想メモリ160中の位置を取得する(ステップ810)。
ダンプ取得プログラム163は、前記ステップ805で通知されたインタフェースの情報から、出力先が内部通信インタフェース380か出力インタフェース370の何れかを判定する(ステップ815)。
ダンプ取得プログラム163は、ステップ815において出力先が内部通信インタフェース380である場合、ステップ810で仮想メモリ160上の位置を特定したデータ構造620を内部通信インタフェース380を介して一括ダンプ取得プログラム135に送信する(ステップ820)。
ダンプ取得プログラム163は、ステップ815において出力先が出力インタフェース370である場合、ステップ810で仮想メモリ160上の位置を特定したデータ構造620を出力インタフェース370を介して外部装置180に送信する(ステップ825)。
一括ダンプ取得プログラム135がステップ805で通知した取得対象のデータ構造620が複数ある場合、ステップ810からステップ825までの処理は、ダンプ取得プログラム163が、複数のデータ構造620をまとめて処理しても良いし、ステップ810からステップ825までの処理をデータ構造620毎に繰り返したり並列処理を行ってもよい。
協調ダンプ取得処理700及び仮想メモリダンプ取得処理800により、計算機110は障害を検知すると計算機110の状態管理データ134及び仮想計算機150の状態管理データ162のうち、取得領域テーブル132の内容に基づき障害要因に関連するデータ構造620のみを外部装置180に送信することができる。
上記処理700により障害解析に用いないデータ構造620の外部装置180への送信を抑止するため、データ構造620の送信にかかる時間や外部装置180の記憶領域を削減することができる。
本発明では、ハイパーバイザ120の取得領域テーブル132に、計算機の種類(ID610)とデータ構造620に応じた優先度を障害要因630の列エントリ640毎に設定しておく。取得領域テーブル132では、障害要因に密接に関連するデータ構造の優先度が高く設定され、障害要因に直接関係のないデータ構造の優先度は低く設定される。
そして、障害発生時には一括ダンプ取得プログラム135が、優先度を取得して、当該優先度を満たすデータ構造をメモリダンプの対象として選択する。したがって、優先度を所定値(例えば、B)以上高く設定すれば、障害要因に関連するデータ構造(またはデータ種別)のみがメモリダンプの対象となって、障害に関係のないデータ構造のメモリダンプを回避できる。これにより、障害発生時のメモリダンプ取得対象のデータ領域を絞り込むことで、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製に要する時間を削減することができる。
また、優先度に応じて、メモリダンプを取得する範囲を調整することも可能となる。例えば、優先度“A”を指定した場合には、障害要因と密接に関連するデータ構造のみがメモリダンプの対象となって、障害に直接関係のないデータ構造のメモリダンプを回避できる。
また、取得領域テーブル132には、障害要因に応じて停止すべき計算機(仮想計算機150、ハイパーバイザ120)の種類を設定することで、障害の影響を受けない仮想計算機150の稼働を継続させることができる。
また、仮想計算機150が内部通信インタフェース380と、外部装置180と直接通信可能な出力インタフェース370とを有することによって、内部通信インタフェース380または内部通信経路(ハイパーバイザ120またはメモリ160)に障害が発生しても出力インタフェース370を介して直接外部装置180に仮想メモリ160のメモリダンプをコピーすることができる。これにより、メモリダンプ取得の信頼性を向上させることができる。
図9は、本発明の第2の実施例を示し、計算機システム100を構成する計算機910の一例を示すブロック図である。本実施例2では、前記実施例1の計算機110を計算機910に置き換えたものである。また、本実施例2の計算機システム100では、2つの外部装置180a、180bを有する。
計算機910は、CPU210と、物理メモリ930と、出力インタフェース170a、170bと、外部装置180と、各種ハードウェア140を有する。
計算機910は前記実施例1の計算機110と異なり、ハードウェア管理プログラム(ハードウェア管理部)941とハイパーバイザプログラム137が計算機910の計算機資源を分割して同時に稼働する。
ハードウェア管理プログラム941は、例えば、受け付けたI/O要求に応じて外部装置180aを制御するシステムである。ハイパーバイザプログラム137は、前記実施例1と同様であり、複数の仮想計算機150を稼働させるハイパーバイザ120として機能する。
CPU210や各種ハードウェア140、出力インタフェース170a、170bが計算機910中に複数ある場合、ハードウェア管理プログラム941とハイパーバイザプログラム137の数に応じて計算機910の計算機資源を分割しても良いし、時分割でこれらの計算機資源を割り当てるようにしてもよい。
物理メモリ930の割り当てについて、より詳細に説明する。物理メモリ930は、ハードウェア管理プログラム用領域940と、ハイパーバイザ用領域950と、共有メモリ領域960に分けられる。ハードウェア管理プログラム941がハードウェア管理プログラム用領域940を管理し、ハイパーバイザプログラム137がハイパーバイザ用領域950を管理する。共有メモリ領域960はハードウェア管理プログラム941とハイパーバイザプログラム137が共に利用可能であって、データの共有に利用できる。たとえば、共有メモリ領域960にはハードウェア管理プログラム941やハイパーバイザプログラム137、各仮想計算機150が時系列で稼働ログを格納するといった用途がある。
ハードウェア管理プログラム用領域940は、ハードウェア管理プログラム941と、取得領域テーブル942と、状態管理データ943と、データ配置情報944と、一括ダンプ取得プログラム945と、障害監視プログラム136aとを格納する。
取得領域テーブル942は、予め想定された障害の種類と、障害に対応して取得する状態管理データ943、951、162中のデータ構造の対応関係を格納する。取得領域テーブル942は、前記実施例1の取得領域テーブル132と同様に予め設定された情報である。
状態管理データ943及びデータ配置情報944は、計算機910が有する装置の状態のうちハードウェア管理プログラム941が管理するデータのみ格納する点を除き、前記実施例1における状態管理データ134及びデータ配置情報138と同様である。
一括ダンプ取得プログラム135は、障害発生時の物理メモリ930及び仮想メモリ160(図1の仮想計算機マップ領域131内)のデータを出力インタフェース170を介して外部装置180に複製するプログラムである。本実施例2の一括ダンプ取得プログラム135は、前記実施例1の機能(ハイパーバイザ120と仮想計算機150のメモリダンプ)に加えて、ハードウェア管理プログラム用領域940のメモリダンプ機能を加えたものである。
ハイパーバイザ用領域950は、ハイパーバイザプログラム137と、内部通信プログラム139と、マップ管理テーブル133と、状態管理データ951と、データ配置情報952と、ダンプ取得プログラム953と、障害監視プログラム136bと、同時に稼働する仮想計算機150と同じ数の仮想計算機マップ領域131を格納する。
ハイパーバイザプログラム137は前記実施例1と同様に仮想計算機150を稼働させて管理するプログラムである。
状態管理データ951と、データ配置情報952は、計算機910が有する装置の状態のうちハイパーバイザプログラム137が管理するデータのみ格納する点を除き実施例1における状態管理データ134及びデータ配置情報138と同様である。
ダンプ取得プログラム953は、障害発生時の物理メモリ930のうちハイパーバイザ用領域950及び仮想メモリ160(仮想計算機マップ領域131)のデータを出力インタフェース170を介して外部装置180に複製するプログラムである。本実施例2のダンプ取得プログラム953は、前記実施例1の一括ダンプ取得プログラム135と同様である。
図10は、取得領域テーブル942の一例を示す図である。取得領域テーブル942は実施例1における取得領域テーブル132にハイパーバイザ用領域送信インタフェース1010を加えた構成である。ハイパーバイザ用領域送信インタフェース1010は、ハイパーバイザ用領域950内のデータ構造を複製する際に、何れの通信経路を選択するかを規定する。ハイパーバイザ用領域送信インタフェース1010の値が“共有メモリ”は、共有メモリ領域960にダンプ取得プログラム953がデータを書き込むことを示し、“出力”は出力インタフェース170bからダンプ取得プログラム953がデータを送信することを示す。
また、取得領域テーブル942のID610では、値として“ハードウェア管理”、“ハイパーバイザ”、“共有メモリ”、“仮想#n”を設定することができ、それぞれ物理メモリ930中のハードウェア管理プログラム用領域940とハイパーバイザ用領域950と共有メモリ領域960及び仮想計算機マップ領域131に対応する。
そして、取得領域テーブル942は、前記実施例1の取得領域テーブル132に対して、ID610に“ハードウェア管理”を加えて、対応するデータ構造620に“ハードウェア情報”と“I/O情報”を加えて、各設定項目660に優先度“A”〜“C”を設定したものである。
その他の取得領域テーブル942の構成は、前記実施例1の取得領域テーブル132と同様であるので、重複した説明は省略する。
図11は、ハードウェア管理プログラム用領域940の一括ダンプ取得プログラム945で行われる協調ダンプ取得処理1100の一例を示すフローチャートである。
協調ダンプ取得処理1100は、ハードウェア管理プログラム用領域940の障害監視プログラム136a、ハイパーバイザ用領域950の障害監視プログラム136bまたは仮想計算機150の障害監視プログラム164の何れかが障害を検出した通知を契機に開始する(ステップ705)。
その後ステップ710、715、725、730に示す処理は実施例1の図7における協調ダンプ取得処理700と同様であるので重複する説明は省略する。
次に、ハードウェア管理プログラム用領域940の一括ダンプ取得プログラム945は、取得領域テーブル942の列エントリ640のハイパーバイザ用領域送信インタフェース1010を参照し、その内容が“共有メモリ”と“出力”のいずれであるかを判定する(ステップ1120)。一括ダンプ取得プログラム945は、ハイパーバイザ用領域送信インタフェース1010の値が“共有メモリ”であれば、ハイパーバイザ用領域950の内容を共有メモリ領域960を介して出力し、“出力”であればハイパーバイザプログラム137が管理する出力インタフェース170bを介して出力する。
前記ステップ1120において、一括ダンプ取得プログラム945が、ハイパーバイザ用領域950の内容を共有メモリ領域960を介して出力すると判定した場合、一括ダンプ取得プログラム945はハイパーバイザ用領域950のダンプ取得プログラム953に対して、ハイパーバイザ用領域950上の状態管理データ951のうちステップ730で取得したデータ構造620に該当する領域のデータを、共有メモリ領域960に書き込むように指示する(ステップ1125)。
一括ダンプ取得プログラム945は、ダンプ取得プログラム953から共有メモリ領域960を介して上記ステップ730で取得したデータ構造620に該当する領域のデータを受信する(ステップ1130)。
次に、一括ダンプ取得プログラム945は、共有メモリ領域960に書き込まれた内容を出力インタフェース170bを介して外部装置180bに送信する(ステップ1135)。この処理によって、障害要因として特定されたハイパーバイザ用領域950内の領域のみが計算機910から外部装置180bへコピーされる。
前記ステップ1125からステップ1135までの処理は、ハイパーバイザ用領域950のうち全ての複製対象のデータ構造620を1度の実行で出力する必要はなく、共有メモリで一度に送受信可能なサイズにデータ構造620を分割し、前記ステップ1125からステップ1135を複数回繰り返し行うことで全ての複製対象のデータ構造620を出力してもよい。
前記ステップ1120においてハイパーバイザ用領域950の内容を出力インタフェース170bを介して出力すると判定した場合、一括ダンプ取得プログラム945はハイパーバイザ用領域950のダンプ取得プログラム953に対して、ハイパーバイザ用領域950上の状態管理データ951のうちステップ730で取得したデータ構造620に該当する領域のデータを出力インタフェース170bを介して直接外部装置180に送信するよう指示する(ステップ1140)。
その後、一括ダンプ取得プログラム945は、ダンプ取得プログラム953がデータ構造620を外部装置180に送信し終わるまで待機する(ステップ1145)。一括ダンプ取得プログラム945は、ダンプ取得プログラム953からデータ構造620の送信完了の通知を受信するとステップ1150へ進む。
前記ステップ1135またはステップ1145を終えると、一括ダンプ取得プログラム945は、ハードウェア管理プログラム用領域940の状態管理データ943のうち、上記ステップ730で取得したデータ構造620に該当する領域をデータ配置情報944を参照して複製の対象を特定する。一括ダンプ取得プログラム945は、当該複製の対象領域のデータと、データ配置情報944を出力インタフェース170bを介し外部装置180bに送信する(ステップ1150)。
上記処理により、一括ダンプ取得プログラム945は、障害が発生した計算機と障害要因から障害に関連する計算機または仮想計算機を、必用に応じて停止させる。そして、一括ダンプ取得プログラム945は、障害要因と優先度に基づいて取得領域テーブル942から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置180bへ送信する。
図12は、ハイパーバイザ用領域メモリダンプ取得処理1200の一例を示すフローチャートである。ハイパーバイザ用領域メモリダンプ取得処理1200は、前記協調ダンプ取得処理1100において一括ダンプ取得プログラム945が、ステップ1125またはステップ1140においてダンプ取得プログラム953に対してデータ構造620の出力を指示すると、ダンプ取得プログラム953が実行を開始する。
実行開始の際、一括ダンプ取得プログラム945は、ダンプ取得プログラム953に取得対象のデータ構造620及びダンプ送信に用いるインタフェースの情報を通知する(ステップ1205)。
ダンプ取得プログラム953は、データ配置情報952を参照し、状態管理データ951のうち前記ステップ1205で通知された取得対象のデータ構造620のハイパーバイザ用領域950内の位置を特定する(ステップ1210)。
次にダンプ取得プログラム953は、前記実施例1と同様にして前記ステップ1205で通知されたインタフェースの情報から、仮想メモリ160(仮想計算機マップ領域131)のダンプ出力先が内部通信インタフェース380か出力インタフェース370の何れであるかを判定する(ステップ735)。
前記ステップ735において仮想メモリ160の内容を内部通信インタフェース380を介して出力すると判定した場合、ダンプ取得プログラム953は、前記実施例1と同様に、各仮想計算機150のダンプ取得プログラム163に対し、仮想メモリ160上の状態管理データ162のうちステップ1210で特定したデータ構造620に該当する領域のデータを、内部通信インタフェース380を介して当該ダンプ取得プログラム953に送信するよう指示する(ステップ740)。
ダンプ取得プログラム953は、仮想計算機150のダンプ取得プログラム163から内部通信インタフェース380を介してステップ1210で取得したデータ構造620に該当する領域のデータを受信する(ステップ745)。
次に、ダンプ取得プログラム953は、図10の取得領域テーブル942を参照してハイパーバイザ用領域送信インタフェース1010の示す出力先を判定する(ステップ1225)。ハイパーバイザ用領域送信インタフェース1010の示す出力先が共有メモリ領域960である場合、ダンプ取得プログラム953は前記ステップ745で受信したデータを共有メモリ領域960に格納し、一括ダンプ取得プログラム945に複製が完了した通知を送信する(ステップ1230)。
ハイパーバイザ用領域送信インタフェース1010の示す出力先が出力インタフェース170である場合、ダンプ取得プログラム953は前記ステップ745で受信したデータを出力インタフェース170bを介して外部装置180に送信する(ステップ1235)。
一方、前記ステップ735において仮想メモリ160の内容を出力インタフェース170bを介して出力すると判定した場合、ダンプ取得プログラム953は、前記実施例1におけるステップ755、760と同様の手順により各仮想計算機150のダンプ取得プログラム163が仮想メモリ160の内容を外部装置180に送信する。
ステップ1230、1235、760のいずれかを完了すると、ダンプ取得プログラム953は、上述のステップ1225と同様にハイパーバイザ用領域送信インタフェース1010の示す出力先を判定する(ステップ1240)。
前記ステップ1240においてハイパーバイザ用領域送信インタフェース1010の示す出力先が共有メモリ領域960である場合、ダンプ取得プログラム953は前記ステップ1210で取得したデータ構造620の領域のデータを共有メモリ領域960に格納し、一括ダンプ取得プログラム945に複製が完了した通知を送信する(ステップ1245)。
ハイパーバイザ用領域送信インタフェース1010の示す出力先が出力インタフェース170bである場合、ダンプ取得プログラム953は前記ステップ1210で取得したデータ構造620の示す領域のデータを出力インタフェース170bを介して外部装置180bに送信する(ステップ1250)。
上述の協調ダンプ取得処理1100、ハイパーバイザ用領域メモリダンプ取得処理1200及び仮想メモリダンプ取得処理800により、ハードウェア管理プログラム941とハイパーバイザプログラム137が計算機910の計算機資源を分割して管理している構成においても、計算機910は障害を検知すると計算機910の状態管理データ943、951及び仮想計算機150の状態管理データ162のうち、取得領域テーブル942の内容に基づいて障害要因に関連するデータ構造620のみを外部装置180bに送信することができる。
上記協調ダンプ取得処理1100により障害解析に用いないデータ構造620の外部装置180bへの送信を抑止するため、メモリダンプを実施するデータ構造620の送信に要する時間や外部装置180の記憶領域を削減することができる。
以上のように、本実施例2では、障害発生時にはハードウェア管理プログラム用領域940の一括ダンプ取得プログラム945が、優先度を取得して、当該優先度を満たすデータ構造620をメモリダンプの対象として選択する。そして、一括ダンプ取得プログラム945は、ハイパーバイザ120及び仮想計算機150に加えて、ハードウェア管理プログラム用領域940のデータについても、障害に対応する領域のメモリダンプを特定して外部装置180bに複製することが可能となる。
したがって、優先度を所定値(例えば、B)以上高く設定すれば、障害要因に密接に関連するデータ構造のみがメモリダンプの対象となって、直接障害の発生に関係のないデータ構造のメモリダンプを回避できる。
図13は、本発明の第3の実施例を示し、計算機システム100を構成する計算機1310の一例を示すブロック図である。本実施例3では、前記実施例2のハードウェア管理プログラム用領域940を、ハードウェアの専用処理部1350に置き換えたものである。
計算機1310は、CPU210と、物理メモリ1320と、出力インタフェース170a及び170bと、外部装置180a及び180bと、各種ハードウェア140と、専用処理部1350とを含む。
物理メモリ1320は、システムプログラム1321と、取得領域テーブル1322と、状態管理データ134と、データ配置情報138と、一括ダンプ取得プログラム1323と、障害監視プログラム136と、共有メモリ1324とを格納する。
システムプログラム1321は、計算機1310の構成要素を管理するプログラムである。なお、システムプログラム1321は、前記実施例1、2で示したようにハイパーバイザプログラム137であってもよい。
取得領域テーブル1322は、予め想定された障害の種類と、障害に対応して取得する状態管理データ134、1372中のデータ構造の対応関係を格納する。
一括ダンプ取得プログラム1323は、障害発生時の物理メモリ1320及び専用メモリ1370のデータを出力インタフェース170aを介して外部装置180aに複製するプログラムである。共有メモリ1324は、計算機1310と専用処理部1350の双方がデータを読み書きできるメモリ領域である。
専用処理部1350は、計算機1310が行う処理のうち一部の処理を行う処理部である。例えば、専用処理部1350は、CPU210で実行すると処理時間が長くなったり消費電力が増大する処理がある場合、その処理専用の構成とすることで処理時間の短縮化や消費電力の削減を行うことができる。
専用処理部1350の実装例としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)、もしくはCPU210と異なる処理性能、電力特性のCPUを用いることができる。
専用処理部1350は、専用演算器1360と専用メモリ1370とを含む。また、専用処理部1350は出力インタフェース170bを介して外部装置180bと接続される。専用演算器1360は専用メモリ1370に格納されたプログラムやテーブルを読み込んで、専用処理部1350を制御する。
専用メモリ1370は、専用処理プログラム1371と、状態管理データ1372と、データ配置情報1373と、ダンプ取得プログラム1374と、障害監視プログラム1375とを格納する。
専用処理プログラム1371は、出力インタフェース170bを介して外部装置180bを制御する。
状態管理データ1372、データ配置情報1373、障害監視プログラム1375は、データや監視の対象が専用処理部1350であることを除けば、前記実施例1に示した計算機110の状態管理データ134、データ配置情報138、障害監視プログラム136と同様である。
ダンプ取得プログラム1374は、一括ダンプ取得プログラム1323から障害発生に伴うダンプ取得の指示を受けた場合、障害発生時の専用メモリ1370の内容を共有メモリ1324または出力インタフェース170aを介して外部装置180aに送信するプログラムである。
図14は、取得領域テーブル1322の一例を示す図である。取得領域テーブル1322は前記実施例1の図6に示した取得領域テーブル132のうち、仮想メモリ送信インタフェース680を専用メモリ送信インタフェース1410に置き換えたものである。
取得領域テーブル1322のID610では、それぞれエントリ650の示すメモリ領域の対象に応じて、値として“物理メモリ”、“専用メモリ”を設定することができ、物理メモリ1320と専用メモリ1370に対応する。
専用メモリ送信インタフェース1410は、各列エントリ640に対応する障害が発生した場合、専用メモリ1370のデータをどのインタフェースを用いて外部装置180aに複製するかを示す。
図15は、物理メモリ1320の一括ダンプ取得プログラム1323で行われる協調ダンプ取得処理1500の一例を示すフローチャートである。
協調ダンプ取得処理1500は、計算機1310の障害監視プログラム136または専用処理部1350の障害監視プログラム1375の何れかが障害を検出した通知を契機に開始する(ステップ705)。
その後ステップ710、715、725、730に示す処理は実施例1の図7における協調ダンプ取得処理700と同様であるので重複する説明は省略する。
次に、一括ダンプ取得プログラム1323は図14の取得領域テーブル942の列エントリ640で専用メモリ送信インタフェース1410を参照し、該当する内容が“共有メモリ”と“出力”のいずれであるかを判定する(ステップ1510)。
専用メモリ送信インタフェース1410が“共有メモリ”であれば、専用処理部1350が専用メモリ1370の内容を共有メモリ1324へ出力し、“出力”であれば専用処理部1350が出力インタフェース170aを介して外部装置180aへ出力する。
前記ステップ1510において、専用メモリ1370の内容を共有メモリ1324を介して出力すると判定した場合、一括ダンプ取得プログラム1323は専用処理部1350のダンプ取得プログラム1374に対して、専用メモリ1370上の状態管理データ1372のうちステップ730で取得したデータ構造620に該当する領域のデータを共有メモリ1324に書き込むよう指示する(ステップ1525)。
一括ダンプ取得プログラム1323はダンプ取得プログラム1374から共有メモリ1324を介して上記ステップ730で取得したデータ構造620に該当する領域のデータを受信する(ステップ1530)。
一括ダンプ取得プログラム1323は、共有メモリ領域960に書き込まれた内容を出力インタフェース170aを介して外部装置180aに送信する(ステップ1535)。この処理によって、障害要因として特定された専用処理部1350内の領域のみが計算機1310から外部装置180bへコピーされる。
前記ステップ1525からステップ1535までの処理は、専用メモリ1370のうち全ての複製対象のデータ構造620を1度の実行で出力する必要はなく、共有メモリ1324で一度に送受信可能なサイズにデータ構造620を分割し、前記ステップ1525からステップ1535を複数回繰り返し行うことで全ての複製対象のデータ構造620を出力してもよい。
前記ステップ1510において専用メモリ1370の内容を出力インタフェース170aから直接出力すると判定した場合、一括ダンプ取得プログラム1323は専用処理部1350のダンプ取得プログラム1374に対し、専用メモリ1370上の状態管理データ1372のうち上記ステップ730で取得したデータ構造620に該当する領域のデータを出力インタフェース170aを介して直接外部装置180aに送信するよう指示する(ステップ1540)。
その後、一括ダンプ取得プログラム1323は、ダンプ取得プログラム1374がデータ構造620を外部装置180aに全て送信するまで待機する(ステップ1545)。一括ダンプ取得プログラム1323は、ダンプ取得プログラム1374からデータ構造620の送信完了の通知を受信するとステップ1150へ進む。
前記ステップ1535またはステップ1545を終えると、一括ダンプ取得プログラム1323は物理メモリ1320の状態管理データ134のうち、上記ステップ730で取得したデータ構造620に該当する領域をデータ配置情報138を参照して複製の対象を特定する。一括ダンプ取得プログラム1323は、当該複製の対象領域のデータと、データ配置情報138を出力インタフェース170aを介して外部装置180aに送信する(ステップ1550)。
上記処理により、一括ダンプ取得プログラム1323は、障害が発生した計算機と障害要因から障害に関連する装置を必用に応じて停止させる。そして、一括ダンプ取得プログラム1323は、障害要因と優先度に基づいて取得領域テーブル1322から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置180aへ送信する。
図16は、専用処理部1350のダンプ取得プログラム1374で行われる専用メモリダンプ取得処理1600の一例を示すフローチャートである。専用メモリダンプ取得処理1600は、前記協調ダンプ取得処理1500において一括ダンプ取得プログラム1323がステップ1525またはステップ1540で、ダンプ取得プログラム1374に対しデータ構造の出力を指示すると、ダンプ取得プログラム1374が実行を開始する。
実行開始の際、一括ダンプ取得プログラム1323は、ダンプ取得プログラム1374に取得対象のデータ構造620及びダンプ送信に用いるインタフェースの情報を通知する(ステップ1605)。
ダンプ取得プログラム1374は、データ配置情報1373を参照し、状態管理データ1372のうち前記ステップ1605で通知された取得対象のデータ構造620の専用メモリ1370内の位置を特定する(ステップ1610)。
ダンプ取得プログラム1374は、前記ステップ1605で通知されたインタフェースの情報から、出力先が共有メモリ1324か出力インタフェース170の何れかを判定する(ステップ1615)。
ステップ1615において出力先が共有メモリ1324である場合、ダンプ取得プログラム1374は、ステップ1610で位置を特定したデータ構造620を、共有メモリ1324に書き込んでから一括ダンプ取得プログラム1323に通知する(ステップ1620)。
ステップ1615において出力先が出力インタフェース170である場合、ダンプ取得プログラム1374は、上記ステップ1610で位置を特定したデータ構造620を、出力インタフェース170aを介して外部装置180aに送信する(ステップ1625)。
一括ダンプ取得プログラム1323が、上記ステップ1605で通知した取得対象のデータ構造620が複数ある場合、ステップ1610からステップ1625までの処理は、複数のデータ構造620をまとめて処理しても良いし、ステップ810からステップ825までの処理をデータ構造620毎に繰り返したり並列して実行してもよい。
上述の協調ダンプ取得処理1500及び専用メモリダンプ取得処理1600により、計算機1310が専用処理部1350及び専用メモリ1370を有する構成においても、計算機1310が障害を検知すると計算機1310の状態管理データ134及び専用処理部1350の状態管理データ1372のうち、取得領域テーブル1322の内容に基づいて障害要因に関連するデータ構造620のみを外部装置180aに送信することができる。
上記協調ダンプ取得処理1500により障害解析に用いないデータ構造620の外部装置180aへの送信を抑止するため、データ構造620の送信に要する時間や外部装置180の記憶領域を削減することができる。
以上のように、本実施例3では、障害発生時には物理メモリ1320の一括ダンプ取得プログラム1323が、優先度を取得して、当該優先度を満たすデータ構造620をメモリダンプの対象として選択する。そして、一括ダンプ取得プログラム1323は、物理メモリ1320に加えて、専用処理部1350のデータについても、障害に対応する領域のメモリダンプを特定して外部装置180aに複製することが可能となる。
したがって、優先度を所定値(例えば、B)以上高く設定すれば、障害要因に密接に関連するデータ構造のみがメモリダンプの対象となって、直接障害の発生に関係のないデータ構造のメモリダンプを回避できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。

Claims (15)

  1. プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
    前記物理計算機は、
    1以上の仮想計算機を提供する仮想化部と、
    前記物理計算機及び前記仮想化部の障害を検出する第1の障害監視部と、
    前記仮想化部を割り当てた前記メモリの第1の領域を前記外部装置に複製する第1のメモリダンプ部と、
    前記仮想計算機の障害を検出する第2の障害監視部と、
    前記仮想化部が前記仮想計算機に割り当てた前記メモリの第2の領域を前記外部装置に複製する第2のメモリダンプ部と、を備え、
    前記仮想化部は、
    前記物理計算機と仮想化部で発生する障害の要因毎に第1の領域内でメモリダンプの対象とする第1のデータ構造と、仮想計算機で発生する障害の要因毎に前記第2の領域内でメモリダンプの対象とする第2のデータ構造がそれぞれ設定された取得領域情報と、
    前記第1の領域内での前記第1のデータ構造の位置と範囲を特定する第1の状態管理情報と、を有し、
    前記仮想計算機は、
    前記第2の領域内での前記第2のデータ構造の位置と範囲を特定する第2の状態管理情報と、を有し、
    前記第1のメモリダンプ部は、
    前記第1の障害監視部と第2の障害監視部の少なくとも一方が障害を検出したときには、記障害を検出した第1の障害監視部または第2の障害監視部から前記障害の要因を取得して、前記取得領域情報を参照して前記取得した障害の要因に設定された第1のデータ構造と第2のデータ構造それぞれ取得し、前記第1の状態管理情報を参照して前記第1の領域内で前記第1のデータ構造を含む第1のアドレス範囲を特定し、当該特定した第1のアドレス範囲を前記外部装置に複製し、前記第2のメモリダンプ部に前記第2のデータ構造を通知し、
    前記第2のメモリダンプ部は、
    前記第2の状態管理情報を参照して前記第2の領域内で前記通知された第2のデータ構造を含む第2のアドレス範囲を特定し、当該特定した第2のアドレス範囲を前記外部装置へ複製することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記取得領域情報は、
    前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行う第1のデータ構造及び第2のデータ構造のそれぞれについて優先度を設定したことを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記第1のメモリダンプ部は、
    前記第1のデータ構造及び第2のデータ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記第1のデータ構造及び第2のデータ構造を取得することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記第1のメモリダンプ部は、
    前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とする計算機システム。
  5. 請求項1に記載の計算機システムであって、
    前記取得領域情報は、
    前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
    前記第1のメモリダンプ部は、
    前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とする計算機システム。
  6. 請求項1に記載の計算機システムであって、
    前記仮想計算機は、
    前記仮想化部と通信を行う第1の通信経路と、
    前記外部装置と通信を行う第2の通信経路と、を有し、
    前記取得領域情報は、
    前記障害の要因毎に前記第1の通信経路と第2の通信経路の何れか一方を選択する経路情報が設定され、
    前記第2のメモリダンプ部は、
    前記取得領域情報の経路情報に基づいて前記第1の通信経路と第2の通信経路の一方から出力することを特徴とする計算機システム。
  7. 請求項1に記載の計算機システムであって、
    前記物理計算機は、
    前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
    前記取得領域情報は、
    前記物理計算機と仮想化部で発生する障害の要因毎に第1の領域内でメモリダンプの対象とする第1のデータ構造と、仮想計算機で発生する障害の要因毎に前記第2の領域内でメモリダンプの対象とする第2のデータ構造と、前記ハードウェア管理部で発生する障害の要因毎に前記メモリの第3の領域内でメモリダンプの対象とする第3のデータ構造がそれぞれ設定され、
    前記ハードウェア管理部は、
    前記ハードウェア管理部の障害を検出する第3の障害監視部と、
    前記ハードウェア管理部に割り当てた前記メモリの第3の領域を前記外部装置に複製する第3のメモリダンプ部と、
    前記第3の領域内での前記第3のデータ構造の位置と範囲を特定する第3の状態管理情報と、を有し、
    前記第1のメモリダンプ部は、
    前記第1の障害監視部と第2の障害監視部と第3の障害監視部の少なくともひとつが障害を検出したときには、記障害を検出した第1の障害監視部、第2の障害監視部または第3の障害監視部から前記障害の要因を取得して、前記取得領域情報を参照して前記取得した障害の要因に設定された第1のデータ構造と第2のデータ構造及び第3のデータ構造を取得し、前記第1の状態管理情報を参照して前記第1のデータ構造を含む第1のアドレス範囲を特定し、当該特定した第1のアドレス範囲を前記外部装置に複製し、前記第2のメモリダンプ部と前記第3のメモリダンプ部に前記第2のデータ構造と前記第3のデータ構造を通知し、
    前記第3のメモリダンプ部は、
    前記第3の状態管理情報を参照して、前記第3の領域内で前記通知された第3のデータ構造を含む第3のアドレス範囲を特定し、当該特定した第3のアドレス範囲を前記外部装置へ複製することを特徴とする計算機システム。
  8. プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えて前記メモリのダンプを行うメモリダンプ方法であって、
    前記物理計算機は、
    1以上の仮想計算機を提供する仮想化部を有し、
    前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出する第1のステップと、
    前記仮想計算機が、当該仮想計算機の障害を検出する第2のステップと、
    前記仮想化部が、前記物理計算機と当該仮想化部及び仮想計算機の少なくともひとつで障害を検出したときには、前記障害の要因を取得する第3のステップと、
    前記仮想化部が、前記物理計算機と仮想化部で発生する障害の要因毎に前記メモリの第1の領域内でメモリダンプの対象とする第1のデータ構造と、前記仮想計算機で発生する障害の要因毎に前記メモリの第2の領域内でメモリダンプの対象とする第2のデータ構造がそれぞれ設定された取得領域情報を参照して、前記取得した障害の要因に対応する前記第1のデータ構造と前記第2のデータ構造をそれぞれ取得する第4のステップと、
    前記仮想化部が、当該仮想化部を割り当てた前記メモリの第1の領域で前記第1のデータ構造の位置と範囲を特定する第1の状態管理情報を参照して、前記第1の領域内で前記第1のデータ構造を含む第1のアドレス範囲を特定し、当該特定した第1のアドレス範囲を前記外部装置に複製する第5のステップと、
    前記仮想化部が、前記第2のデータ構造を前記仮想計算機へ通知する第6のステップと、
    前記仮想計算機が、前記仮想化部が当該仮想計算機に割り当てた前記メモリの第2の領域で前記第2のデータ構造の位置と範囲を特定する第2の状態管理情報を参照して、前記第2の領域内で前記通知された前記第2のデータ構造を含む第2のアドレス範囲を特定する第7のステップと、
    前記仮想計算機が、前記特定した第2のアドレス範囲を前記外部装置に複製する第8のステップと、
    を含むことを特徴とするメモリダンプ方法。
  9. 請求項8に記載のメモリダンプ方法であって、
    前記取得領域情報は、
    前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行う第1のデータ構造及び第2のデータ構造のそれぞれについて優先度を設定したことを特徴とするメモリダンプ方法。
  10. 請求項9に記載のメモリダンプ方法であって、
    前記第4のステップは、
    前記第1のデータ構造及び第2のデータ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記第1のデータ構造及び第2のデータ構造を取得することを特徴とするメモリダンプ方法。
  11. 請求項10に記載のメモリダンプ方法であって、
    前記第4のステップは、
    前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とするメモリダンプ方法。
  12. 請求項8に記載のメモリダンプ方法であって、
    前記取得領域情報は、
    前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
    前記第4のステップは、
    前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とするメモリダンプ方法。
  13. 請求項8に記載のメモリダンプ方法であって、
    前記仮想計算機は、
    前記仮想化部と通信を行う第1の通信経路と、
    前記外部装置と通信を行う第2の通信経路と、を有し、
    前記取得領域情報は、
    前記障害の要因毎に前記第1の通信経路と第2の通信経路の何れか一方を選択する経路情報が設定され、
    前記第8のステップは、
    前記取得領域情報の経路情報に基づいて前記第1の通信経路と第2の通信経路の一方から出力することを特徴とするメモリダンプ方法。
  14. 請求項8に記載のメモリダンプ方法であって、
    前記物理計算機は、
    前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
    前記取得領域情報は、
    前記物理計算機と仮想化部で発生する障害の要因毎に第1の領域内でメモリダンプの対象とする第1のデータ構造と、仮想計算機で発生する障害の要因毎に前記第2の領域内でメモリダンプの対象とする第2のデータ構造と、前記ハードウェア管理部で発生する障害の要因毎に前記メモリの第3の領域内でメモリダンプの対象とする第3のデータ構造がそれぞれ設定され、
    前記第1のステップは、
    前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出するステップと、
    前記ハードウェア管理部が、当該ハードウェア管理部の障害を検出するステップと、を含み、
    前記第3のステップは、
    前記仮想化部が、前記物理計算機、当該仮想化部、前記仮想計算機または前記ハードウェア管理部の少なくともひとつで障害を検出したときには、前記障害の要因を取得し、
    前記第6のステップは、
    前記仮想化部が、前記第2のデータ構造と前記第3のデータ構造を前記仮想計算機と前記ハードウェア管理部へそれぞれ通知し、
    前記ハードウェア管理部が、当該ハードウェア管理部に割り当てた前記メモリの第3の領域で前記第3のデータ構造の位置と範囲を特定する第3の状態管理情報を参照して、前記第3の領域内で前記通知された第3のデータ構造を含む第3のアドレス範囲を特定する第9のステップと、
    前記ハードウェア管理部が、前記特定した第3のアドレス範囲を前記外部装置に複製する第10のステップと、
    をさらに含むことを特徴とするメモリダンプ方法。
  15. プロセッサと第1のメモリと専用処理部とを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
    前記物理計算機は、
    当該物理計算機を制御するシステム制御部と、
    前記物理計算機及び前記システム制御部の障害を検出する第1の障害監視部と、
    前記システム制御部を割り当てた前記第1のメモリの領域を前記外部装置に複製する第1のメモリダンプ部と、を有し、
    前記専用処理部は、
    当該専用処理部の障害を検出する第2の障害監視部と、
    当該専用処理部が有する第2のメモリの領域を前記外部装置に複製する第2のメモリダンプ部と、を有し、
    前記システム制御部は、
    前記物理計算機前記システム制御部で発生する障害の要因毎に第1のメモリの領域内でメモリダンプの対象とする第1のデータ構造と、前記専用処理部で発生する障害の要因毎に前記第2のメモリの領域内でメモリダンプの対象とする第2のデータ構造がそれぞれ設定された取得領域情報と、
    前記第1のメモリ内で前記第1のデータ構造の位置と範囲を特定する第1の状態管理情報と、を有し、
    前記専用処理部は、
    前記第2のメモリ内で前記第2のデータ構造の位置と範囲を特定する第2の状態管理情報と、を有し、
    前記第1のメモリダンプ部は、
    前記第1の障害監視部と第2の障害監視部の少なくとも一方が障害を検出したときには、記障害を検出した第1の障害監視部または第2の障害監視部から前記障害の要因を取得して、前記取得領域情報を参照して前記取得した障害の要因に設定された第1のデータ構造を取得し、記第1の状態管理情報を参照して、前記第1のメモリの領域内で前記第1のデータ構造を含む第1のアドレス範囲を特定し、当該特定した第1のアドレス範囲を前記外部装置に複製し、前記第2のメモリダンプ部に前記第2のデータ構造を通知し、
    前記第2のメモリダンプ部は、
    前記通知された第2のデータ構造から前記第2の状態管理情報を参照して前記第2のメモリの領域内で前記第2のデータ構造を含む第2のアドレス範囲を特定し、当該特定した第2のアドレス範囲を前記外部装置へ複製することを特徴とする計算機システム。
JP2016552742A 2014-10-08 2014-10-08 計算機システム及びメモリダンプ方法 Active JP6356822B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/076909 WO2016056074A1 (ja) 2014-10-08 2014-10-08 計算機システム及びメモリダンプ方法

Publications (2)

Publication Number Publication Date
JPWO2016056074A1 JPWO2016056074A1 (ja) 2017-06-22
JP6356822B2 true JP6356822B2 (ja) 2018-07-11

Family

ID=55652734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016552742A Active JP6356822B2 (ja) 2014-10-08 2014-10-08 計算機システム及びメモリダンプ方法

Country Status (3)

Country Link
US (1) US10210035B2 (ja)
JP (1) JP6356822B2 (ja)
WO (1) WO2016056074A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016056074A1 (ja) * 2014-10-08 2016-04-14 株式会社日立製作所 計算機システム及びメモリダンプ方法
JP6604241B2 (ja) * 2016-03-09 2019-11-13 富士通株式会社 情報処理システム、情報処理装置、情報処理方法およびプログラム
CN113536320A (zh) * 2021-07-08 2021-10-22 联想(北京)有限公司 一种错误信息处理方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04335449A (ja) * 1991-05-13 1992-11-24 Nec Corp 端末障害情報採取方式
US6681348B1 (en) * 2000-12-15 2004-01-20 Microsoft Corporation Creation of mini dump files from full dump files
JP2007226413A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd メモリダンプ方法、メモリダンププログラム、及び、計算機システム
US8122517B2 (en) * 2008-04-02 2012-02-21 International Business Machines Corporation Mediated access of software dumped data through specialized analysis modules
WO2012137239A1 (ja) 2011-04-04 2012-10-11 株式会社日立製作所 計算機システム
US9026860B2 (en) * 2012-07-31 2015-05-05 International Business Machines Corpoation Securing crash dump files
US9043653B2 (en) 2012-08-31 2015-05-26 International Business Machines Corporation Introspection of software program components and conditional generation of memory dump
WO2016056074A1 (ja) * 2014-10-08 2016-04-14 株式会社日立製作所 計算機システム及びメモリダンプ方法

Also Published As

Publication number Publication date
US20170277587A1 (en) 2017-09-28
US10210035B2 (en) 2019-02-19
JPWO2016056074A1 (ja) 2017-06-22
WO2016056074A1 (ja) 2016-04-14

Similar Documents

Publication Publication Date Title
US11436091B2 (en) Method and apparatus for generating virtual machine snapshot
US10169065B1 (en) Live migration of hardware accelerated applications
US10261853B1 (en) Dynamic replication error retry and recovery
US8464259B2 (en) Migrating virtual machines configured with direct access device drivers
US8271743B2 (en) Automated paging device management in a shared memory partition data processing system
US8713362B2 (en) Obviation of recovery of data store consistency for application I/O errors
JP6003350B2 (ja) 監視装置、情報処理装置、及び監視方法
TWI554875B (zh) 基於資源存取模式預測、診斷應用程式故障並從應用程式故障恢復
US9575785B2 (en) Cluster system and method for providing service availability in cluster system
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US8667337B2 (en) Storage apparatus and method of controlling the same
US20160132380A1 (en) Building an intelligent, scalable system dump facility
US9229843B2 (en) Predictively managing failover in high availability systems
US20150363254A1 (en) Storage system and storage system failure management method
WO2012004902A1 (ja) 計算機システム及び計算機システムの系切替制御方法
US9575855B2 (en) Storage apparatus and failure location identifying method
JP2017091456A (ja) 制御装置、制御プログラムおよび制御方法
JP5561334B2 (ja) データ転送装置
JP6356822B2 (ja) 計算機システム及びメモリダンプ方法
US11630731B2 (en) System and device for data recovery for ephemeral storage
US10983818B2 (en) Method and system for preventing execution of a dirty virtual machine on an undesirable host server in a virtualization cluster environment
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
WO2012137239A1 (ja) 計算機システム
US10514846B2 (en) Computer system and management method for computer
JP2010231295A (ja) 解析システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170302

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180220

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: 20180529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180614

R150 Certificate of patent or registration of utility model

Ref document number: 6356822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150