(57)【要約】  物理計算機は、１以上の仮想計算機を提供する仮想化部が、当該仮想化部の障害を検出し、仮想計算機が物理計算機及び当該仮想計算機の障害を検出し、物理計算機、仮想化部または仮想計算機の一方で障害を検出したときには、仮想化部が障害の要因を取得し、障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報を参照して障害の要因に対応するデータ構造を取得し、仮想化部を割り当てた前記メモリの第１の領域でデータ構造の位置を特定し、当該特定した第１の領域を前記外部装置に複製し、前記仮想化部が、前記データ構造を仮想計算機へ通知し、仮想計算機は、当該仮想計算機に割り当てられたメモリの第２の領域でデータ構造の位置を特定し、当該特定した第２の領域を前記外部装置に複製する。
2016056074.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
前記物理計算機は、
１以上の仮想計算機を提供する仮想化部と、
前記物理計算機及び前記仮想化部の障害を検出する第１の障害監視部と、
前記仮想化部を割り当てた前記メモリの第１の領域を前記外部装置に複製する第１のメモリダンプ部と、
前記仮想計算機の障害を検出する第２の障害監視部と、
前記仮想化部が前記仮想計算機に割り当てた前記メモリの第２の領域を前記外部装置に複製する第２のメモリダンプ部と、を備え、
前記仮想化部は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報と、
前記第１の領域内での前記データ構造の位置を特定する第１の状態管理情報と、を有し、
前記仮想計算機は、
前記第２の領域内での前記データ構造の位置を特定する第２の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部の少なくとも一方が障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部または第２の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記第１の状態管理情報を参照して前記データ構造に対応する前記第１の領域を特定し、当該特定した第１の領域を前記外部装置に複製し、前記第２のメモリダンプ部に前記データ構造を通知し、
前記第２のメモリダンプ部は、
前記第２の状態管理情報を参照して前記通知されたデータ構造に対応する前記第２の領域を特定し、当該特定した第２の領域を前記外部装置へ複製することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記取得領域情報は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造のそれぞれについて優先度を設定したことを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記第１のメモリダンプ部は、
前記データ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記データ構造を取得することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記第１のメモリダンプ部は、
前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記取得領域情報は、
前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
前記第１のメモリダンプ部は、
前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とする計算機システム。
【請求項６】
請求項１に記載の計算機システムであって、
前記仮想計算機は、
前記仮想化部と通信を行う第１の通信経路と、
前記外部装置と通信を行う第２の通信経路と、を有し、
前記取得領域情報は、
前記障害の要因毎に前記第１の通信経路と第２の通信経路の何れか一方を選択する経路情報が設定され、
前記第２のメモリダンプ部は、
前記取得領域情報の経路情報に基づいて前記第１の通信経路と第２の通信経路の一方から出力することを特徴とする計算機システム。
【請求項７】
請求項１に記載の計算機システムであって、
前記物理計算機は、
前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
前記ハードウェア管理部は、
前記ハードウェア管理部の障害を検出する第３の障害監視部と、
前記ハードウェア管理部に割り当てた前記メモリの第３の領域を前記外部装置に複製する第３のメモリダンプ部と、
前記第３の領域内での前記データ構造の位置を特定する第３の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部と第３の障害監視部の少なくともひとつが障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部、第２の障害監視部または第３の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記第１の状態管理情報を参照して前記データ構造に対応する前記第１の領域を特定し、当該特定した第１の領域を前記外部装置に複製し、前記第２のメモリダンプ部と前記第３のメモリダンプ部に前記データ構造を通知し、
前記第３のメモリダンプ部は、
前記第３の状態管理情報を参照して前記通知されたデータ構造に対応する前記第３の領域を特定し、当該特定した第３の領域を前記外部装置へ複製することを特徴とする計算機システム。
【請求項８】
プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えて前記メモリのダンプを行うメモリダンプ方法であって、
前記物理計算機は、
１以上の仮想計算機を提供する仮想化部を有し、
前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出する第１のステップと、
前記仮想計算機が、当該仮想計算機の障害を検出する第２のステップと、
前記仮想化部が、前記物理計算機と当該仮想化部及び仮想計算機の少なくともひとつで障害を検出したときには、前記障害の要因を取得する第３のステップと、
前記仮想化部が、前記障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報を参照して、前記取得した障害の要因に対応するデータ構造を取得する第４のステップと、
前記仮想化部が、当該仮想化部を割り当てた前記メモリの第１の領域で前記データ構造の位置を特定する第１の状態管理情報を参照して、前記データ構造に対応する前記第１の領域内の位置を特定し、当該特定した第１の領域を前記外部装置に複製する第５のステップと、
前記仮想化部が、前記データ構造を前記仮想計算機へ通知する第６のステップと、
前記仮想計算機が、前記仮想化部が当該仮想計算機に割り当てた前記メモリの第２の領域で前記データ構造の位置を特定する第２の状態管理情報を参照して、前記通知されたデータ構造に対応する第２の領域内の位置を特定する第７のステップと、
前記仮想計算機が、前記特定した第２の領域を前記外部装置に複製する第８のステップと、
を含むことを特徴とするメモリダンプ方法。
【請求項９】
請求項８に記載のメモリダンプ方法であって、
前記取得領域情報は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造のそれぞれについて優先度を設定したことを特徴とするメモリダンプ方法。
【請求項１０】
請求項９に記載のメモリダンプ方法であって、
前記第４のステップは、
前記データ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記データ構造を取得することを特徴とするメモリダンプ方法。
【請求項１１】
請求項１０に記載のメモリダンプ方法であって、
前記第４のステップは、
前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とするメモリダンプ方法。
【請求項１２】
請求項８に記載のメモリダンプ方法であって、
前記取得領域情報は、
前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
前記第４のステップは、
前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とするメモリダンプ方法。
【請求項１３】
請求項８に記載のメモリダンプ方法であって、
前記仮想計算機は、
前記仮想化部と通信を行う第１の通信経路と、
前記外部装置と通信を行う第２の通信経路と、を有し、
前記取得領域情報は、
前記障害の要因毎に前記第１の通信経路と第２の通信経路の何れか一方を選択する経路情報が設定され、
前記第８のステップは、
前記取得領域情報の経路情報に基づいて前記第１の通信経路と第２の通信経路の一方から出力することを特徴とするメモリダンプ方法。
【請求項１４】
請求項８に記載のメモリダンプ方法であって、
前記物理計算機は、
前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
前記第１のステップは、
前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出するステップと、
前記ハードウェア管理部が、当該ハードウェア管理部の障害を検出するステップと、を含み、
前記第３のステップは、
前記仮想化部が、前記物理計算機、当該仮想化部、前記仮想計算機または前記ハードウェア管理部の少なくともひとつで障害を検出したときには、前記障害の要因を取得し、
前記第６のステップは、
前記仮想化部が、前記データ構造を前記仮想計算機と前記ハードウェア管理部へそれぞれ通知し、
前記ハードウェア管理部が、当該ハードウェア管理部に割り当てた前記メモリの第３の領域で前記データ構造の位置を特定する第３の状態管理情報を参照して、前記通知されたデータ構造に対応する第３の領域内の位置を特定する第９のステップと、
前記ハードウェア管理部が、前記特定した第３の領域を前記外部装置に複製する第１の０のステップと、
をさらに含むことを特徴とするメモリダンプ方法。
【請求項１５】
プロセッサと第１のメモリと専用処理部とを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
前記物理計算機は、
当該物理計算機を制御するシステム制御部と、
前記物理計算機及び前記システム制御部の障害を検出する第１の障害監視部と、
前記システム制御部を割り当てた前記第１のメモリの領域を前記外部装置に複製する第１のメモリダンプ部と、を有し、
前記専用処理部は、
当該専用処理部の障害を検出する第２の障害監視部と、
当該専用処理部が有する第２のメモリの領域を前記外部装置に複製する第２のメモリダンプ部と、を有し、
前記システム制御部は、
前記物理計算機、前記システム制御部及びハードウェア管理部で発生する障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報と、
前記第１のメモリ内で前記データ構造の位置を特定する第１の状態管理情報と、を有し、
前記ハードウェア管理部は、
前記第２のメモリ内で前記データ構造の位置を特定する第２の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部の少なくとも一方が障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部または第２の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記データ構造から前記第１の状態管理情報を参照して、前記データ構造に対応する前記第１のメモリの領域を特定し、当該特定した第１のメモリの領域を前記外部装置に複製し、前記第２のメモリダンプ部に前記データ構造を通知し、
前記第２のメモリダンプ部は、
前記通知されたデータ構造から前記第２の状態管理情報を参照して前記第２のメモリの領域を特定し、当該特定した第２の領域を前記外部装置へ複製することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化環境または資源論理分割環境を備えた計算機におけるメモリダンプ取得技術に関する。
【背景技術】
【０００２】
Ｈｙｐｅｒｖｉｓｏｒを用いた仮想マシン（ＶＭ）技術や資源の論理分割（ＬＰＡＲ）技術の普及により、単一の物理計算機上で複数の仮想計算機が稼働する計算機システムが増えている。【０００３】
また、これらＶＭ（Virtual Machine）またはＬＰＡＲ（Logical PARtitioning）技術の普及を進めるもう一つの要因として、計算機が備えるメモリ容量の増加がある。一台の物理計算機のメモリ搭載量が増加したため、その物理計算機に多数の仮想計算機を集約して稼働させることができるようになった。【０００４】
一方、物理計算機のメモリ搭載量の増加にはデメリットもある。計算機の障害解析の一手法として、障害が発生した時点のメモリ中のデータを、他の計算機や記憶媒体に複製し、それを後に分析する方法がある。この複製したメモリ中のデータをメモリダンプと呼ぶ。メモリ搭載量が増加すると、メモリダンプを格納する記憶媒体により多くの容量が必要となり、複製処理に長時間かかるようになるため、メモリダンプ取得の手間が増加する。【０００５】
そこで、メモリダンプを実施する領域の絞り込みが一般的に行われている。領域の絞り込みとは、メモリの全データを複製せず、障害部位に関連の高いデータの格納領域のみメモリダンプを取得することで、取得するメモリダンプの容量を減らす技術である。【０００６】
ここで、メモリダンプの領域絞り込みをＶＭまたはＬＰＡＲ技術を用いた計算機上で行う場合に既存の手法では問題が生じる。計算機で生じる障害は、ＶＭまたはＬＰＡＲ内の論理矛盾のようにＶＭまたはＬＰＡＲが検知する障害や、ハードウェア不良やＶＭ間通信経路障害のようにＨｙｐｅｒｖｉｓｏｒが検知する障害など、障害の種別によって障害を検知する主体が異なる。【０００７】
また、Ｈｙｐｅｒｖｉｓｏｒと個々のＶＭまたはＬＰＡＲでは一般的にそれぞれ異なるＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）が稼働しており、メモリにおける各種データの配置も異なるため、障害を検知したＨｙｐｅｒｖｉｓｏｒまたはＶＭあるいはＬＰＡＲ以外のＨｙｐｅｒｖｉｓｏｒまたはＶＭあるいはＬＰＡＲに関しては、メモリダンプの対象領域を絞り込もうとしても、データ配置が分からず絞りこみができない。【０００８】
このようなＶＭまたはＬＰＡＲ技術を用いた計算機環境において、メモリダンプの領域を絞り込む方法としては、特許文献１、２が提案されている。特許文献１は、Ｈｙｐｅｒｖｉｓｏｒが障害を検出すると障害に関連するＶまたはＬＰＡＲのみ、そのＶＭまたはＬＰＡＲの占めるメモリ領域全体をメモリダンプ対象とする手法を示している。【０００９】
特許文献２は、ＶＭまたはＬＰＡＲ内で障害が発生した場合、当該ＶＭまたはＬＰＡＲのメモリ領域と、Ｈｙｐｅｒｖｉｓｏｒが管理するメモリ領域のうち障害と関連する領域とをダンプする手法を示している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許出願公開第２０１４／００６８３４１号明細書
【特許文献２】国際公開第２０１２／１３７２３９号
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１の技術では、ＶＭまたはＬＰＡＲが用いるメモリ領域内をさらに細粒度で領域の絞り込みを行うものではないため、削減できるメモリダンプ容量は多くない、という問題があった。【００１２】
特許文献２の技術では、ＶＭまたはＬＰＡＲ内で検知できる障害を対象としており、Ｈｙｐｅｒｖｉｓｏｒにおける障害検知を対象としていない、という問題があった。【００１３】
本発明が解決しようとする課題は、Ｈｙｐｅｒｖｉｓｏｒと共に複数のＶＭまたはＬＰＡＲが稼働する計算機において、ＨｙｐｅｒｖｉｓｏｒまたはＶＭ／ＬＰＡＲのいずれかで障害を検出した場合、障害の発生要因に関連しないデータも含めたメモリの内容を複製してしまうため、複製するデータの容量が膨大となることである。【００１４】
そこで本発明は、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製にかかる時間を削減することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、前記物理計算機は、１以上の仮想計算機を提供する仮想化部と、前記物理計算機及び前記仮想化部の障害を検出する第１の障害監視部と、前記仮想化部を割り当てた前記メモリの第１の領域を前記外部装置に複製する第１のメモリダンプ部と、前記仮想計算機の障害を検出する第２の障害監視部と、前記仮想化部が前記仮想計算機に割り当てた前記メモリの第２の領域を前記外部装置に複製する第２のメモリダンプ部と、を備え、前記仮想化部は、前記物理計算機と前記仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報と、前記第１の領域内での前記データ構造の位置を特定する第１の状態管理情報と、を有し、前記仮想計算機は、前記第２の領域内での前記データ構造の位置を特定する第２の状態管理情報と、を有し、前記第１のメモリダンプ部は、前記第１の障害監視部と第２の障害監視部の少なくとも一方が障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部または第２の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記第１の状態管理情報を参照して前記データ構造に対応する前記第１の領域を特定し、当該特定した第１の領域を前記外部装置に複製し、前記第２のメモリダンプ部に前記データ構造を通知し、前記第２のメモリダンプ部は、前記第２の状態管理情報を参照して前記通知されたデータ構造に対応する前記第２の領域を特定し、当該特定した第２の領域を前記外部装置へ複製する。
【発明の効果】
【００１６】
本発明によれば、障害発生時のメモリダンプの取得対象となるメモリ領域を絞り込むことで、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製にかかる時間を削減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施例を示し、計算機システムの一例を示すブロック図である。
【図２】本発明の第１の実施例を示し、計算機の一例を示すブロック図である。
【図３】本発明の第１の実施例を示し、仮想計算機の一例を示すブロック図である。
【図４】本発明の第１の実施例を示し、マップ管理テーブルの一例を示す図である。
【図５】本発明の第１の実施例を示し、データ配置情報の一例を示す図である。
【図６】本発明の第１の実施例を示し、取得領域テーブルの一例を示す図である。
【図７】本発明の第１の実施例を示し、協調ダンプ取得処理の一例を示すフローチャートである。
【図８】本発明の第１の実施例を示し、仮想計算機で行われる仮想メモリダンプ取得処理の一例を示すフローチャートである。
【図９】本発明の第２の実施例を示し、計算機の一例を示すブロック図である。
【図１０】本発明の第２の実施例を示し、取得領域テーブルの一例を示す図である。
【図１１】本発明の第２の実施例を示し、一括ダンプ取得プログラムで行われる協調ダンプ取得処理の一例を示すフローチャートである。
【図１２】本発明の第２の実施例を示し、ハイパーバイザのダンプ取得プログラムで行われるハイパーバイザ用領域メモリダンプ取得処理の一例を示すフローチャートである。
【図１３】本発明の第３の実施例を示し、計算機の一例を示すブロック図である。
【図１４】本発明の第３の実施例を示し、取得領域テーブルの一例を示す図である。
【図１５】本発明の第３の実施例を示し、一括ダンプ取得プログラムで行われる協調ダンプ取得処理の一例を示すフローチャートである。
【図１６】本発明の第３の実施例を示し、ダンプ取得プログラムで行われる専用メモリダンプ取得処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態について添付図面を用いて説明する。
【実施例１】
【００１９】
図１は、本発明の第１の実施例を示し、計算機システム１００の構成を示すブロック図である。計算機システム１００を構成する計算機１１０は、ＣＰＵ２１０と、物理メモリ１３０と、出力インタフェース１７０及びその他のハードウェアを有する。なお、出力インタフェース１７０は外部装置１８０に接続される。【００２０】
ＣＰＵ２１０は、物理メモリ１３０にハイパーバイザ１２０を読み込んで、実行する。ハイパーバイザ１２０は計算機１１０内で、複数の仮想計算機１５０ａ、１５０ｂを稼働させることができる。なお、以下では、仮想計算機１５０ａ、１５０ｂの総称を符号１５０で表す。なお、他の構成要素についても同様であり、ａ、ｂのない符号で総称を表す。【００２１】
仮想計算機１５０ａ、１５０ｂは、ハイパーバイザ１２０から仮想メモリ１６０ａ、１６０ｂを割り当てられる。仮想メモリ１６０ａ、１６０ｂは、物理メモリ１３０の一部である仮想計算機用マップ領域１３１ａ、１３１ｂを割り当てた領域である。【００２２】
仮想計算機用マップ領域１３１ａ、１３１ｂと仮想メモリ１６０ａ、１６０ｂの位置の対応関係はマップ管理テーブル１３３に格納され、ハイパーバイザ１２０が管理する。【００２３】
計算機１１０の物理メモリ１３０には、計算機１１０の稼働を制御するハイパーバイザプログラム１３７がロードされ、ＣＰＵ２１０によって実行され、ハイパーバイザ１２０として機能する。ハイパーバイザ１２０は、計算機１１０の状態管理データ１３４を参照、更新しながら稼働する。【００２４】
仮想計算機１５０ａ、１５０ｂの仮想メモリ１６０ａ、１６０ｂには、仮想計算機１５０ａ、１５０ｂを制御するシステムプログラム１６１ａ、１６１ｂがロードされ、ＣＰＵ２１０（または仮想ＣＰＵ）によって実行され、システム制御部として機能する。システム制御部は、例えば、オペレーティングシステムである。システム制御部は、仮想計算機１５０ａ、１５０ｂの状態管理データ１６２ａ、１６２ｂを参照、更新しながら稼働する。【００２５】
物理メモリ１３０及び仮想メモリ１６０ａ、１６０ｂには、計算機１１０及び仮想計算機１５０ａ、１５０ｂの状態を監視する障害監視プログラム１３６、１６４ａ、１６４ｂがロードされＣＰＵ２１０（または仮想ＣＰＵ）によって実行される。障害監視プログラム１３６、１６４ａ、１６４ｂは、それぞれ障害監視部として機能する。なお、障害監視プログラム１３６は、計算機１１０及びハイパーバイザ１２０の障害を監視し、障害監視プログラム１６４ａ、１６４ｂは、仮想計算機１５０ａ、１５０ｂの障害をそれぞれ監視する。【００２６】
これら障害監視プログラム１３６、１６４ａ、１６４ｂが計算機１１０及び仮想計算機１５０ａ、１５０ｂのいずれかに障害を検知すると、物理メモリ１３０に格納された一括ダンプ取得プログラム１３５に障害の発生を通知し、物理メモリ１３０及び仮想メモリ１６０ａ、１６０ｂのダンプ処理を実行する。【００２７】
ダンプ処理とは、障害が発生した時点の物理メモリ１３０または仮想メモリ１６０ａ、１６０ｂの内容を後の障害解析のために外部装置１８０に複製する処理である。一括ダンプ取得プログラム１３５が障害監視プログラム１３６、１６４ａ、１６４ｂから障害発生の通知を受け取ると、取得領域テーブル１３２を参照して障害の内容と対応する取得対象データを特定する。【００２８】
次に、一括ダンプ取得プログラム１３５は、仮想メモリ１６０ａ、１６０ｂ中のダンプ取得プログラム１６３ａ、１６３ｂに対し、仮想計算機１５０ａ、１５０ｂの状態管理データ１６２ａ、１６２ｂのうち、取得対象データに該当するデータを一括ダンプ取得プログラム１３５に送信するよう要求する。【００２９】
一括ダンプ取得プログラム１３５は、ダンプ取得プログラム１６３ａ、１６３ｂから状態管理データ１６２ａ、１６２ｂのうち取得対象データに該当するデータを受け取ると、計算機１１０自体の状態管理データ１３４における取得対象データと、マップ管理テーブル１３３を合わせて出力インタフェース１７０を介して外部装置１８０に送信する。【００３０】
前記のダンプ処理により、状態管理データ１３４、１６２ａ、１６２ｂのデータのうち、障害の内容に関連するデータのみが外部装置１８０に複製され、障害と関連しないデータの複製を避けることができる。このため、物理メモリ１３０及び仮想メモリ１６０ａ、１６０ｂの内容を全て複製するのに比べて、外部装置１８０に複製するデータの容量を削減でき、出力インタフェース１７０を介したデータの転送時間も削減できる。【００３１】
ハイパーバイザ１２０と、仮想計算機１５０のシステム制御部はプログラムとして物理メモリ１３０にロードされる。【００３２】
ＣＰＵ２１０は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ２１０は、ハイパーバイザプログラム１３７に従って処理することでハイパーバイザ１２０として機能する。他のプログラムについても同様である。さらに、ＣＰＵ２０１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。【００３３】
ハイパーバイザ１２０や仮想計算機１５０の各機能を実現するプログラム、テーブル等の情報は、外部装置１８０や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。【００３４】
以下、計算機システム１００についてより詳細に説明する。【００３５】
図２は、計算機１１０の構成を示すブロック図である。計算機１１０はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０と、物理メモリ１３０と、出力インタフェース１７０と、各種ハードウェア１４０とを備える。【００３６】
ＣＰＵ２１０は、物理メモリ１３０に格納されたプログラムやテーブルを読み取って、計算機１１０の各構成要素を制御する。物理メモリ１３０は、取得領域テーブル１３２、マップ管理テーブル１３３、状態管理データ１３４、一括ダンプ取得プログラム１３５、障害監視プログラム１３６、ハイパーバイザプログラム１３７を格納する。また、同時に稼働する仮想計算機１５０と同じ数の仮想計算機マップ領域１３１を格納する。【００３７】
取得領域テーブル１３２は、予め想定された障害の種類と、障害に対応して取得する状態管理データ１３４中のデータ構造（またはデータの種別）の対応関係を格納する。マップ管理テーブル１３３は、仮想計算機マップ領域１３１と仮想計算機１５０中の仮想メモリ１６０の対応関係を示すテーブルを格納する。【００３８】
状態管理データ１３４は、計算機１１０の備える装置の状態を格納する。データ配置情報１３８は、状態管理データ１３４中のどのデータ構造がどのメモリ領域に格納されているかの対応を格納する。例えばＣＰＵ２１０や出力インタフェース１７０のような計算機１１０が内包するハードウェアの状態や、ユーザによる計算機の利用状況やネットワーク上の他の計算機との通信状況など、論理的な稼働状態に関する情報も含む。【００３９】
一括ダンプ取得プログラム１３５は、障害発生時の物理メモリ１３０及び仮想メモリ１６０のデータを出力インタフェース１７０を介して外部装置１８０に複製するプログラムである。【００４０】
ハイパーバイザプログラム１３７は、計算機１１０の各構成要素を管理し、さらに仮想計算機１５０を稼働、管理するプログラムである。ハイパーバイザプログラム１３７としては、ＫＶＭ（ｈｔｔｐ：／／ｗｗｗ．ｌｉｎｕｘ−ｋｖｍ．ｏｒｇ／ｐａｇｅ／Ｍａｉｎ＿Ｐａｇｅ）等を採用することができる。【００４１】
物理メモリ１３０内の仮想計算機マップ領域１３１は、それぞれ仮想計算機１５０の仮想メモリ１６０と対応付けられる領域であり、仮想計算機１５０が仮想メモリ１６０の内容を読み書きすると、対応する仮想計算機マップ領域１３１内の内容が読み書きされる。【００４２】
ハイパーバイザプログラム１３７は、ＣＰＵ２１０を介して少量のデータを仮想計算機１５０と送受信できるが、メモリダンプのような大容量データの送受信は時間がかかってしまう。そこでハイパーバイザプログラム１３７に含まれる内部通信プログラム１３９は、ハイパーバイザプログラム１３７と各仮想計算機１５０の間の内部通信経路を実現するプログラムである。内部通信プログラム１３９は共有メモリや通信キュー等の一般的なデータ共有手段を仮想計算機１５０に提供し、メモリダンプの送受信を可能とする。例えば、内部通信プログラム１３９は、共有メモリにキューを設定して仮想計算機１５０とハイパーバイザ１２０間の通信を実行する。【００４３】
外部装置１８０は、障害時に出力インタフェース１７０を介して一括ダンプ取得プログラム１３５により送信されたメモリダンプを格納する装置である。出力インタフェース１７０と外部装置１８０との例として、出力インタフェース１７０にＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）を用いて外部装置１８０としてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を用い、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）によりメモリダンプを送信する場合や、出力インタフェース１７０にＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を用いて外部装置１８０として別の計算機を用い、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）によりメモリダンプを送信する場合がある。以上の他に、外部装置１８０は、計算機１１０に接続されたＵＳＢメモリ等の記憶装置であってもよい。【００４４】
また、出力インタフェース１７０は、ひとつのＩ／Ｏ（デバイス）を複数の計算機で利用可能なＳＲ−ＩＯＶ（Single Root IO Virtualization）で構成され、複数の出力インタフェース３７０を仮想計算機１５０に割り当てることできる。仮想計算機１５０は、ハイパーバイザ１２０から割り当てられた出力インタフェース３７０を物理的なインタフェースとして利用することができる。なお、仮想計算機１５０に物理的なＩ／Ｏデバイスを占有させてもよい。【００４５】
その他、計算機１１０は複数の各種ハードウェア１４０を含み、各種ハードウェア１４０はハイパーバイザプログラム１３７によって管理される。仮想計算機１５０が各種ハードウェア１４０を利用したい場合は、仮想計算機１５０はハイパーバイザプログラム１３７を介して利用することができる。【００４６】
各種ハードウェア１４０の例として、キーボード等の入力装置やディスプレイ出力、音声入出力、シリアルコンソール、ネットワークインタフェース、ディスクインタフェース等が挙げられる。【００４７】
図３は、仮想計算機１５０の構成を示すブロック図である。仮想計算機１５０はそれ自体単独で計算機のハードウェアを備えるわけではなく、ハイパーバイザプログラム１３７の制御により、計算機１１０のハードウェアの一部から構成されるが、仮想計算機１５０内で稼働する各種プログラムにとっては、あたかも計算機のように振る舞う。計算機１１０のハードウェアの一部から仮想計算機１５０を構成するため、仮想計算機１５０を同時に複数稼働させることもできる。【００４８】
仮想計算機１５０は仮想ＣＰＵ３１０、仮想メモリ１６０を備える。仮想ＣＰＵ３１０は、仮想メモリ１６０に格納された各種プログラムを読み取って、仮想計算機１５０の各構成要素を制御する。また、仮想ＣＰＵ３１０は、ハイパーバイザプログラム１３７の制御により、ＣＰＵ２１０の稼働時間の一部を時分割で分け与えるか、もしく複数のＣＰＵ２１０の一部を分け与えて構築される。【００４９】
仮想メモリ１６０は、ハイパーバイザプログラム１３７の制御により物理メモリ１３０中の仮想計算機マップ領域１３１と対応付けられるメモリ領域である。仮想メモリ１６０は、システムプログラム１６１、状態管理データ１６２、ダンプ取得プログラム１６３、障害監視プログラム１６４を格納する。【００５０】
システムプログラム１６１は、仮想計算機１５０の構成要素を管理するプログラムである。状態管理データ１６２は、仮想計算機１５０の備える装置やシステムプログラム１６１の状態を格納する。データ配置情報１６５は、状態管理データ１６２中のどのデータ構造がどのメモリ領域に格納されているかの対応表を格納する。【００５１】
ダンプ取得プログラム１６３は、一括ダンプ取得プログラム１３５から障害発生に伴うダンプ取得の指示を受けた場合、障害発生時の仮想メモリ１６０の内容（メモリダンプ）を内部通信インタフェース３８０または出力インタフェース３７０を介して外部装置１８０に送信するプログラムである。なお、出力インタフェース３７０は、図２で述べたように、出力インタフェース１７０が提供する機能で、物理的なインタフェースとして利用可能である。【００５２】
内部通信インタフェース３８０は、仮想計算機１５０と計算機１１０の間の通信経路であり、内部通信プログラム１３９によって生成される。仮想計算機１５０のダンプ取得プログラム１６３は内部通信インタフェース３８０を介して仮想メモリ１６０のメモリダンプを計算機１１０の一括ダンプ取得プログラム１３５に送信することができる。外部装置１８０へのメモリダンプ送信は一括ダンプ取得プログラム１３５が行う。【００５３】
仮想計算機１５０は、メモリダンプを出力インタフェース３７０を介して直接外部装置１８０に送信することもできる。これら外部装置１８０及び出力インタフェース３７０はメモリダンプの格納先として仮想計算機１５０が備えることができる。また、メモリダンプの送信経路として内部通信インタフェース３８０と出力インタフェース３７０のどちらを用いるかは、取得領域テーブル１３２により指定される。【００５４】
上記の構成により、仮想計算機１５０は、外部装置１８０に仮想メモリ１６０の内容を複製する経路として、内部通信インタフェース３８０を介してハイパーバイザ１２０から転送する経路と、出力インタフェース３７０を介して直訳外部装置１８０に転送する経路の２つの通信経路を有する。【００５５】
内部通信インタフェース３８０または内部通信経路に障害が発生した場合であっても、仮想メモリ１６０の内容を外部装置１８０にコピーすることができる。【００５６】
図４は、マップ管理テーブル１３３の一例を示す図である。マップ管理テーブル１３３は仮想計算機１５０の仮想メモリ１６０と物理メモリ１３０上の対応付けを管理するテーブルである。【００５７】
マップ管理テーブル１３３は、仮想計算機ＩＤ４１０、オフセット４２０、サイズ４３０を項目とし、仮想計算機１５０の数だけエントリ４４１、４４２、４４３を有する。仮想計算機ＩＤ４１０は、エントリの対象とする仮想計算機１５０を一意に特定する文字列や数値等の識別子を格納する。【００５８】
オフセット４２０は、物理メモリ１３０と仮想メモリ１６０の位置の対応関係を示す。この位置は、仮想メモリ１６０の開始位置に対応する物理メモリ１３０の先頭アドレスである。サイズ４３０は仮想メモリ１６０の領域の大きさを示す。例えば、エントリ４４１はオフセット０ｘ４０００００００を保持している場合、仮想メモリ１６０のアドレスＰはオフセット分を加算した物理メモリ１３０上のアドレスＰ＋０ｘ４０００００００と対応付けられる。【００５９】
マップ管理テーブル１３３の構成方法は図４に限らない。例えば物理メモリ１３０の複数の連続領域を連結して仮想メモリ１６０と対応付けたり、物理メモリ１３０及び仮想メモリ１６０を固定長のページの集合として管理し、物理メモリ１３０のページと仮想メモリ１６０のアドレスの対応表として管理しても良い。これらのいずれの方法でも仮想メモリ１６０のアドレスと物理メモリ１３０のアドレスを対応付けることができる。【００６０】
また、物理メモリ１３０の領域は複数の仮想計算機１５０の仮想メモリと対応付けても良い。【００６１】
図５は、データ配置情報１３８の一例を示す。データ配置情報１３８は、状態管理データ１３４の内容が物理メモリ１３０においてどの領域に格納されているかを示しており、データ構造毎に１つのエントリ５４１、５４２、５４３を有する。【００６２】
データ構造名５１０は、エントリの示す対象であるデータ構造を一意に特定する名前を格納する。オフセット５２０は、物理メモリ１３０中でエントリの示す対象であるデータ構造が格納された領域の先頭アドレスを示す。サイズ５３０はエントリの示す対象であるデータ構造が格納される領域の大きさを示す。【００６３】
仮想計算機１５０のデータ配置情報１６５も、データ配置情報１３８と同様の構造を有する。ただしデータ配置情報１６５のオフセット５２０は、物理メモリ１３０の先頭アドレスではなく仮想メモリ１６０の先頭アドレスを示す。【００６４】
データ配置情報１３８、１６５の構成方法は図４に限らない。例えば物理メモリ１３０及び仮想メモリ１６０を固定長のページの集合として管理し、データ構造の各ページと物理メモリ１３０または仮想メモリ１６０のページの対応表として管理しても良い。【００６５】
図６は、取得領域テーブル１３２の一例を示す。取得領域テーブル１３２は、状態管理データ１３４、１６２のうち、障害発生時にダンプ取得を行う領域を障害の要因別に分類したものである。【００６６】
取得領域テーブル１３２の各行エントリ６５０は、計算機１１０または仮想計算機１５０のデータ構造毎に存在する。データ構造６２０は、その行エントリ６５０が対応する計算機１１０または仮想計算機１５０中の状態管理データ１３４、１６２の一部を示す。【００６７】
ＩＤ６１０は、行エントリ６５０の対象となる計算機を一意に特定する識別子を格納する。行エントリ６５０のＩＤ６１０が“Ｈｙｐｅｒｖｉｓｏｒ”である場合、その行エントリ６５０は計算機１１０のデータ構造に対応する。【００６８】
行エントリ６５０のＩＤ６１０が“仮想＃＋数値”である場合、その行エントリ６５０はＩＤ６１０中の数値に対応した仮想計算機１５０のデータ構造に対応する。【００６９】
障害要因６３０は障害監視プログラム１３６、１６４が検出する障害の一覧を示しており、複数の障害要因６３０に対応して同数の列エントリ６４０が格納される。【００７０】
各行エントリ６５０と列エントリ６４０の交わる設定項目６６０は、列エントリ６４０が対応する要因の障害が発生したとき、行エントリ６５０が対応する計算機ＩＤ６１０のデータ構造６２０を複製する優先度を示す。設定項目（またはセル）６６０に“Ａ”、“Ｂ”、“Ｃ”等の所定の文字列が格納されたデータ構造６２０及び障害要因６３０の列エントリ６４０は、設定された文字列により優先度が決まる。【００７１】
例えば、優先度として“Ｂ”が設定された場合、設定項目６６０の値がＢ以上（図示の例では、Ａ，Ｂ）のデータ構造６２０が優先度に応じて選択される。優先度の値の大きさとしては、例えば、Ａ＞Ｂ＞Ｃである。障害要因６３０の列エントリ６４０が時刻エラーで、優先度がＢの場合、ハイパーバイザと仮想計算機のプロセス情報と、ハイパーバイザの稼働ログが選択される。【００７２】
なお、本実施例では、設定項目６６０に“Ｃ”が格納されたデータ構造６２０、障害要因６３０の列エントリ６４０は、該当する障害が発生してもデータ構造６２０を複製しないことを示す。なお、優先度は数値等を用いるようにしてもよい。【００７３】
さらに取得領域テーブル１３２は、障害要因６３０の列エントリ６４０毎に稼働停止設定６７０及び仮想メモリ送信インタフェース６８０を格納する。【００７４】
稼働停止設定６７０は、列エントリ６４０に対応する障害が生じたとき、計算機１１０及び仮想計算機１５０の一部またはすべてにおいて、稼働を停止してメモリダンプ取得を行うか、稼働を継続しながらメモリダンプ取得を行うかを示す。【００７５】
仮想メモリ送信インタフェース６８０は、列エントリ６４０に対応する障害が生じたとき、仮想メモリ１６０の内容を内部通信インタフェース３８０または出力インタフェース３７０のどちらを介して出力するかを示す。【００７６】
取得領域テーブル１３２は、計算機システム１００の利用者が障害分析に必要なデータ構造６２０を選択して設定してもよいし、一括ダンプ取得プログラム１３５が物理メモリ１３０の容量等の計算機１１０の構成から構成を算出して設定しても良い。例えば物理メモリ１３０の容量が非常に大きい場合、一括ダンプ取得プログラム１３５は、ダンプ取得の長時間化を防ぐために取得するデータ構造６２０を絞り込む等の設定を行うことができる。【００７７】
計算機システム１００の利用者による取得領域テーブル１３２の設定例を以下に幾つか上げる。状態管理データ１３４、１６２は物理メモリ１３０及び仮想メモリ１６０の容量増加に比例して増加する。よって物理メモリ１３０及び仮想メモリ１６０を多く備えた計算機１１０に対する取得領域テーブル１３２の設定では、より複製対象としないデータ構造６２０の数を増やすことで、複製すべき総データ容量を抑えることができる。【００７８】
また別の設定例では、内部通信経路が障害要因となる場合、内部通信経路の状態に応じて複数列エントリ６５０を作成し、異なる制御を行うように設定しても良い。【００７９】
例えば、内部通信経路の通信が双方向共に完全に断絶する障害に対応する場合、列エントリ６５０は、仮想メモリ送信インタフェース６８０は出力インタフェース３７０を格納するが、内部通信経路の通信が計算機１１０から仮想計算機１５０への片方向のみ断絶する場合の列エントリは、仮想メモリ送信インタフェース６８０に内部通信インタフェース３８０を格納することができる。【００８０】
また別の設定例では、計算機１１０が出力インタフェース１７０や外部装置１８０を複数有する場合、障害要因に応じて異なる出力インタフェース１７０や外部装置１８０を使用するように設定してもよい。例えばデータの転送速度が速い出力インタフェース１７０が使用可能であれば、当該出力インタフェース１７０を仮想メモリ送信インタフェース６８０として設定し、転送速度が速い出力インタフェース１７０が障害要因である場合には、別の転送速度が遅い出力インタフェース１７０を仮想メモリ送信インタフェース６８０として設定することができる。【００８１】
また別の設定例では、障害要因６３０の列エントリ６４０には計算機１１０の異常を示す状態以外の要因を格納することもできる。例えば、計算機システム１００の利用者によるメモリダンプ取得要求や、計算機システム１００の計算機１１０以外の他の計算機によるメモリダンプ取得要求を要因として含むことができる。【００８２】
これらの要因は計算機１１０自体に障害が生じていなくても、計算機システム１００において計算機１１０と通信して計算処理を行う他の計算機に障害が生じた場合、計算機１１０のメモリダンプと合わせて解析するために有用である。【００８３】
図７は、計算機システム１００で行われる協調ダンプ取得処理７００の一例を示すフローチャートである。なお、協調ダンプ取得処理７００は、ハイパーバイザ１２０の一括ダンプ取得プログラム１３５と、仮想計算機１５０のダンプ取得プログラム１６３が協調してメモリ１６０の内容を絞り込んでダンプする処理である。【００８４】
協調ダンプ取得処理７００は、計算機１１０の障害監視プログラム１３６または仮想計算機１５０の障害監視プログラム１６４の何れか障害を検出した通知を契機に開始する（ステップ７０５）。【００８５】
障害監視プログラム１３６、１６４が検出する障害の例としては、ＣＰＵ２１０やメモリ１３０と言った物理的な構成部品の故障や、各プログラムのバグによる論理的な状態の不正、他の計算機との通信断絶等がある。障害監視プログラム１３６、１６４は障害を検出すると、検出した障害要因を一括ダンプ取得プログラム１３５に送信する（ステップ７１０）。【００８６】
一括ダンプ取得プログラム１３５は、受信した障害要因から取得領域テーブル１３２の列エントリ６４０を特定する。一括ダンプ取得プログラム１３５は列エントリ６４０の稼働停止設定６７０を参照し、稼働停止設定６７０が“全て”の場合、一括ダンプ取得プログラム１３５は全仮想計算機１５０を停止させる。ただし、一括ダンプ取得プログラム１３５及びダンプ取得プログラム１６３、及びダンプ取得に必要な内部通信プログラム１３９を除いたプログラムを停止させ、状態管理データ１３４、１６２が以後プログラムの稼働により変更されることを抑止する（ステップ７２０）。【００８７】
稼働停止設定６７０が“当該ＩＤ”の場合、一括ダンプ取得プログラム１３５は障害要因に関連する仮想計算機１５０において、一括ダンプ取得プログラム１３５及びダンプ取得プログラム１６３、及びダンプ取得に必要な内部通信プログラム１３９を除いたプログラムを停止させる。これにより、一括ダンプ取得プログラム１３５は、状態管理データ１３４、１６２が以後プログラムの稼働により変更されることを抑止する。例えば物理メモリ１３０が複数格納する仮想計算機マップ領域１３１のうち１か所が故障した場合、その仮想計算機マップ領域１３１を用いる仮想計算機１５０のみがプログラムの停止対象となる。【００８８】
稼働停止設定６７０が“なし”の場合、計算機１１０及び仮想計算機１５０は稼働を継続しながらメモリダンプ処理を行う。【００８９】
次に、一括ダンプ取得プログラム１３５は、取得するデータ構造の領域を特定するための優先度の判定を行う（ステップ７２５）。【００９０】
この判定は一括ダンプ取得プログラム１３が、事前に設定しておいた優先度の値を用いても良いし、ステップ７２０で各プログラムが停止されているのであれば、計算機システム１００の利用者による入力から優先度を受け付けても良い。計算機システム１００の利用者は、障害解析のために得られるデータの量と、メモリダンプにかかる時間を鑑みて優先度を決定し、図示しない入力インタフェースから設定することができる。一括ダンプ取得プログラム１３５は、設定または入力された優先度を取得し、取得領域テーブル１３２から選択する優先度の値を判定する。一括ダンプ取得プログラム１３５は、取得した優先度を閾値として、当該閾値以上の優先度が設定されたデータ構造を選択することで、データ構造の絞り込みを実現する。【００９１】
続けて一括ダンプ取得プログラム１３５は、前記ステップ７２５で判定した優先度の値を用いて、取得領域テーブル１３２から列エントリ６４０を参照し、前記優先度以上の設定項目６６０を有する計算機ＩＤ６１０及びデータ構造６２０を取得する（ステップ７３０）。ここで取得した計算機ＩＤ６１０及びデータ構造６２０が以後の処理における取得対象のデータとなる。【００９２】
次に、一括ダンプ取得プログラム１３５は、取得領域テーブル１３２の列エントリ６４０の仮想メモリ送信インタフェース６８０を参照し、その内容が“内部”、“出力”のいずれであるかによって仮想メモリ１６０の内容を内部通信インタフェース３８０または出力インタフェース３７０のどちらを介して出力するかを判定する（ステップ７３５）。【００９３】
前記ステップ７３５において仮想メモリ１６０の内容を内部通信インタフェース３８０を介して出力すると判定した場合、一括ダンプ取得プログラム１３５は、各仮想計算機１５０のダンプ取得プログラム１６３に対し、仮想メモリ１６０上の状態管理データ１６２のうちステップ７３０で取得したデータ構造６２０に該当する領域のデータを内部通信インタフェース３８０を介して一括ダンプ取得プログラム１３５に送信するよう指示する（ステップ７４０）。【００９４】
一括ダンプ取得プログラム１３５は、各仮想計算機１５０のダンプ取得プログラム１６３から内部通信インタフェース３８０を介してステップ７３０で取得したデータ構造６２０に該当する領域のデータを受信する（ステップ７４５）。次に、一括ダンプ取得プログラム１３５は、受信したデータを出力インタフェース１７０を介し外部装置１８０に送信する（ステップ７５０）。【００９５】
前記ステップ７５０において、一括ダンプ取得プログラム１３５は、マップ管理テーブル１３３を同時に外部装置１８０に送信することで、後の障害解析において仮想メモリ１６０上のアドレスと物理メモリ１３０上のアドレスの対応付けを可能にする。【００９６】
前記ステップ７４０からステップ７５０までの処理は、仮想計算機１５０の数だけ繰り返し実行しても良いし、並列に実行してもよい。また、各仮想計算機１５０において全てのデータ構造６２０を前記ステップ７４０からステップ７５０を１度の実行で出力する必要はなく、内部通信経路で一度に送受信可能なサイズにデータ構造６２０を分割し、前記ステップ７４０からステップ７５０を複数回繰り返し行うことで全てのデータ構造６２０を出力してもよい。【００９７】
前記ステップ７３５において仮想メモリ１６０の内容を出力インタフェース３７０を介して出力すると判定した場合、一括ダンプ取得プログラム１３５は、各仮想計算機１５０のダンプ取得プログラム１６３に対し、仮想メモリ１６０上の状態管理データ１６２のうちステップ７３０で取得したデータ構造６２０に該当する領域のデータを出力インタフェース３７０を介して直接外部装置１８０に送信するよう指示する（ステップ７５５）。その後一括ダンプ取得プログラム１３５はダンプ取得プログラム１６３がデータ構造６２０を外部装置１８０に送信し終わるまで待つ（ステップ７６０）。【００９８】
前記ステップ７５０またはステップ７６０を終えると、一括ダンプ取得プログラム１３５は計算機１１０自身の状態管理データ１３４のうち、ステップ７３０で取得したデータ構造６２０に該当する領域をデータ配置情報１３８を参照して特定し、その領域のデータ及びデータ配置情報１３８を出力インタフェース１７０を介して外部装置１８０に送信する（ステップ７６５）。【００９９】
上記処理により、一括ダンプ取得プログラム１３５は、障害が発生した計算機と障害要因から障害に関連する計算機を、必用に応じて停止させる。そして、一括ダンプ取得プログラム１３５は、障害要因と優先度に基づいて取得領域テーブル１３２から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置１８０へ送信する。【０１００】
図８は、仮想計算機１５０で行われる仮想メモリダンプ取得処理８００の一例を示すフローチャートである。仮想メモリダンプ取得処理８００は、前記協調ダンプ取得処理７００において一括ダンプ取得プログラム１３５が図７のステップ７４０またはステップ７５５において実行する。一括ダンプ取得プログラム１３５は、ダンプ取得プログラム１６３に対しデータ構造の出力を指示すると、ダンプ取得プログラム１６３の実行を開始させる。その際、一括ダンプ取得プログラム１３５はダンプ取得プログラム１６３に取得対象のデータ構造６２０及びダンプ送信に用いるインタフェースの情報を通知する（ステップ８０５）。【０１０１】
ダンプ取得プログラム１６３はデータ配置情報１６５を参照し、状態管理データ１６２のうち前記ステップ８０５で通知された取得対象のデータ構造６２０の仮想メモリ１６０中の位置を取得する（ステップ８１０）。【０１０２】
ダンプ取得プログラム１６３は、前記ステップ８０５で通知されたインタフェースの情報から、出力先が内部通信インタフェース３８０か出力インタフェース３７０の何れかを判定する（ステップ８１５）。【０１０３】
ダンプ取得プログラム１６３は、ステップ８１５において出力先が内部通信インタフェース３８０である場合、ステップ８１０で仮想メモリ１６０上の位置を特定したデータ構造６２０を内部通信インタフェース３８０を介して一括ダンプ取得プログラム１３５に送信する（ステップ８２０）。【０１０４】
ダンプ取得プログラム１６３は、ステップ８１５において出力先が出力インタフェース３７０である場合、ステップ８１０で仮想メモリ１６０上の位置を特定したデータ構造６２０を出力インタフェース３７０を介して外部装置１８０に送信する（ステップ８２５）。【０１０５】
一括ダンプ取得プログラム１３５がステップ８０５で通知した取得対象のデータ構造６２０が複数ある場合、ステップ８１０からステップ８２５までの処理は、ダンプ取得プログラム１６３が、複数のデータ構造６２０をまとめて処理しても良いし、ステップ８１０からステップ８２５までの処理をデータ構造６２０毎に繰り返したり並列処理を行ってもよい。【０１０６】
協調ダンプ取得処理７００及び仮想メモリダンプ取得処理８００により、計算機１１０は障害を検知すると計算機１１０の状態管理データ１３４及び仮想計算機１５０の状態管理データ１６２のうち、取得領域テーブル１３２の内容に基づき障害要因に関連するデータ構造６２０のみを外部装置１８０に送信することができる。【０１０７】
上記処理７００により障害解析に用いないデータ構造６２０の外部装置１８０への送信を抑止するため、データ構造６２０の送信にかかる時間や外部装置１８０の記憶領域を削減することができる。【０１０８】
本発明では、ハイパーバイザ１２０の取得領域テーブル１３２に、計算機の種類（ＩＤ６１０）とデータ構造６２０に応じた優先度を障害要因６３０の列エントリ６４０毎に設定しておく。取得領域テーブル１３２では、障害要因に密接に関連するデータ構造の優先度が高く設定され、障害要因に直接関係のないデータ構造の優先度は低く設定される。【０１０９】
そして、障害発生時には一括ダンプ取得プログラム１３５が、優先度を取得して、当該優先度を満たすデータ構造をメモリダンプの対象として選択する。したがって、優先度を所定値（例えば、Ｂ）以上高く設定すれば、障害要因に関連するデータ構造（またはデータ種別）のみがメモリダンプの対象となって、障害に関係のないデータ構造のメモリダンプを回避できる。これにより、障害発生時のメモリダンプ取得対象のデータ領域を絞り込むことで、メモリダンプを格納する記憶媒体の容量や、メモリのデータ複製に要する時間を削減することができる。【０１１０】
また、優先度に応じて、メモリダンプを取得する範囲を調整することも可能となる。例えば、優先度“Ａ”を指定した場合には、障害要因と密接に関連するデータ構造のみがメモリダンプの対象となって、障害に直接関係のないデータ構造のメモリダンプを回避できる。【０１１１】
また、取得領域テーブル１３２には、障害要因に応じて停止すべき計算機（仮想計算機１５０、ハイパーバイザ１２０）の種類を設定することで、障害の影響を受けない仮想計算機１５０の稼働を継続させることができる。【０１１２】
また、仮想計算機１５０が内部通信インタフェース３８０と、外部装置１８０と直接通信可能な出力インタフェース３７０とを有することによって、内部通信インタフェース３８０または内部通信経路（ハイパーバイザ１２０またはメモリ１６０）に障害が発生しても出力インタフェース３７０を介して直接外部装置１８０に仮想メモリ１６０のメモリダンプをコピーすることができる。これにより、メモリダンプ取得の信頼性を向上させることができる。
【実施例２】
【０１１３】
図９は、本発明の第２の実施例を示し、計算機システム１００を構成する計算機９１０の一例を示すブロック図である。本実施例２では、前記実施例１の計算機１１０を計算機９１０に置き換えたものである。また、本実施例２の計算機システム１００では、２つの外部装置１８０ａ、１８０ｂを有する。【０１１４】
計算機９１０は、ＣＰＵ２１０と、物理メモリ９３０と、出力インタフェース１７０ａ、１７０ｂと、外部装置１８０と、各種ハードウェア１４０を有する。【０１１５】
計算機９１０は前記実施例１の計算機１１０と異なり、ハードウェア管理プログラム（ハードウェア管理部）９４１とハイパーバイザプログラム１３７が計算機９１０の計算機資源を分割して同時に稼働する。【０１１６】
ハードウェア管理プログラム９４１は、例えば、受け付けたＩ／Ｏ要求に応じて外部装置１８０ａを制御するシステムである。ハイパーバイザプログラム１３７は、前記実施例１と同様であり、複数の仮想計算機１５０を稼働させるハイパーバイザ１２０として機能する。【０１１７】
ＣＰＵ２１０や各種ハードウェア１４０、出力インタフェース１７０ａ、１７０ｂが計算機９１０中に複数ある場合、ハードウェア管理プログラム９４１とハイパーバイザプログラム１３７の数に応じて計算機９１０の計算機資源を分割しても良いし、時分割でこれらの計算機資源を割り当てるようにしてもよい。【０１１８】
物理メモリ９３０の割り当てについて、より詳細に説明する。物理メモリ９３０は、ハードウェア管理プログラム用領域９４０と、ハイパーバイザ用領域９５０と、共有メモリ領域９６０に分けられる。ハードウェア管理プログラム９４１がハードウェア管理プログラム用領域９４０を管理し、ハイパーバイザプログラム１３７がハイパーバイザ用領域９５０を管理する。共有メモリ領域９６０はハードウェア管理プログラム９４１とハイパーバイザプログラム１３７が共に利用可能であって、データの共有に利用できる。たとえば、共有メモリ領域９６０にはハードウェア管理プログラム９４１やハイパーバイザプログラム１３７、各仮想計算機１５０が時系列で稼働ログを格納するといった用途がある。【０１１９】
ハードウェア管理プログラム用領域９４０は、ハードウェア管理プログラム９４１と、取得領域テーブル９４２と、状態管理データ９４３と、データ配置情報９４４と、一括ダンプ取得プログラム９４５と、障害監視プログラム１３６ａとを格納する。【０１２０】
取得領域テーブル９４２は、予め想定された障害の種類と、障害に対応して取得する状態管理データ９４３、９５１、１６２中のデータ構造の対応関係を格納する。取得領域テーブル９４２は、前記実施例１の取得領域テーブル１３２と同様に予め設定された情報である。【０１２１】
状態管理データ９４３及びデータ配置情報９４４は、計算機９１０が有する装置の状態のうちハードウェア管理プログラム９４１が管理するデータのみ格納する点を除き、前記実施例１における状態管理データ１３４及びデータ配置情報１３８と同様である。【０１２２】
一括ダンプ取得プログラム１３５は、障害発生時の物理メモリ９３０及び仮想メモリ１６０（図１の仮想計算機マップ領域１３１内）のデータを出力インタフェース１７０を介して外部装置１８０に複製するプログラムである。本実施例２の一括ダンプ取得プログラム１３５は、前記実施例１の機能（ハイパーバイザ１２０と仮想計算機１５０のメモリダンプ）に加えて、ハードウェア管理プログラム用領域９４０のメモリダンプ機能を加えたものである。【０１２３】
ハイパーバイザ用領域９５０は、ハイパーバイザプログラム１３７と、内部通信プログラム１３９と、マップ管理テーブル１３３と、状態管理データ９５１と、データ配置情報９５２と、ダンプ取得プログラム９５３と、障害監視プログラム１３６ｂと、同時に稼働する仮想計算機１５０と同じ数の仮想計算機マップ領域１３１を格納する。【０１２４】
ハイパーバイザプログラム１３７は前記実施例１と同様に仮想計算機１５０を稼働させて管理するプログラムである。【０１２５】
状態管理データ９５１と、データ配置情報９５２は、計算機９１０が有する装置の状態のうちハイパーバイザプログラム１３７が管理するデータのみ格納する点を除き実施例１における状態管理データ１３４及びデータ配置情報１３８と同様である。【０１２６】
ダンプ取得プログラム９５３は、障害発生時の物理メモリ９３０のうちハイパーバイザ用領域９５０及び仮想メモリ１６０（仮想計算機マップ領域１３１）のデータを出力インタフェース１７０を介して外部装置１８０に複製するプログラムである。本実施例２のダンプ取得プログラム９５３は、前記実施例１の一括ダンプ取得プログラム１３５と同様である。【０１２７】
図１０は、取得領域テーブル９４２の一例を示す図である。取得領域テーブル９４２は実施例１における取得領域テーブル１３２にハイパーバイザ用領域送信インタフェース１０１０を加えた構成である。ハイパーバイザ用領域送信インタフェース１０１０は、ハイパーバイザ用領域９５０内のデータ構造を複製する際に、何れの通信経路を選択するかを規定する。ハイパーバイザ用領域送信インタフェース１０１０の値が“共有メモリ”は、共有メモリ領域９６０にダンプ取得プログラム９５３がデータを書き込むことを示し、“出力”は出力インタフェース１７０ｂからダンプ取得プログラム９５３がデータを送信することを示す。【０１２８】
また、取得領域テーブル９４２のＩＤ６１０では、値として“ハードウェア管理”、“ハイパーバイザ”、“共有メモリ”、“仮想＃ｎ”を設定することができ、それぞれ物理メモリ９３０中のハードウェア管理プログラム用領域９４０とハイパーバイザ用領域９５０と共有メモリ領域９６０及び仮想計算機マップ領域１３１に対応する。【０１２９】
そして、取得領域テーブル９４２は、前記実施例１の取得領域テーブル１３２に対して、ＩＤ６１０に“ハードウェア管理”を加えて、対応するデータ構造６２０に“ハードウェア情報”と“Ｉ／Ｏ情報”を加えて、各設定項目６６０に優先度“Ａ”〜“Ｃ”を設定したものである。【０１３０】
その他の取得領域テーブル９４２の構成は、前記実施例１の取得領域テーブル１３２と同様であるので、重複した説明は省略する。【０１３１】
図１１は、ハードウェア管理プログラム用領域９４０の一括ダンプ取得プログラム９４５で行われる協調ダンプ取得処理１１００の一例を示すフローチャートである。【０１３２】
協調ダンプ取得処理１１００は、ハードウェア管理プログラム用領域９４０の障害監視プログラム１３６ａ、ハイパーバイザ用領域９５０の障害監視プログラム１３６ｂまたは仮想計算機１５０の障害監視プログラム１６４の何れかが障害を検出した通知を契機に開始する（ステップ７０５）。【０１３３】
その後ステップ７１０、７１５、７２５、７３０に示す処理は実施例１の図７における協調ダンプ取得処理７００と同様であるので重複する説明は省略する。【０１３４】
次に、ハードウェア管理プログラム用領域９４０の一括ダンプ取得プログラム９４５は、取得領域テーブル９４２の列エントリ６４０のハイパーバイザ用領域送信インタフェース１０１０を参照し、その内容が“共有メモリ”と“出力”のいずれであるかを判定する（ステップ１１２０）。一括ダンプ取得プログラム９４５は、ハイパーバイザ用領域送信インタフェース１０１０の値が“共有メモリ”であれば、ハイパーバイザ用領域９５０の内容を共有メモリ領域９６０を介して出力し、“出力”であればハイパーバイザプログラム１３７が管理する出力インタフェース１７０ｂを介して出力する。【０１３５】
前記ステップ１１２０において、一括ダンプ取得プログラム９４５が、ハイパーバイザ用領域９５０の内容を共有メモリ領域９６０を介して出力すると判定した場合、一括ダンプ取得プログラム９４５はハイパーバイザ用領域９５０のダンプ取得プログラム９５３に対して、ハイパーバイザ用領域９５０上の状態管理データ９５１のうちステップ７３０で取得したデータ構造６２０に該当する領域のデータを、共有メモリ領域９６０に書き込むように指示する（ステップ１１２５）。【０１３６】
一括ダンプ取得プログラム９４５は、ダンプ取得プログラム９５３から共有メモリ領域９６０を介して上記ステップ７３０で取得したデータ構造６２０に該当する領域のデータを受信する（ステップ１１３０）。【０１３７】
次に、一括ダンプ取得プログラム９４５は、共有メモリ領域９６０に書き込まれた内容を出力インタフェース１７０ｂを介して外部装置１８０ｂに送信する（ステップ１１３５）。この処理によって、障害要因として特定されたハイパーバイザ用領域９５０内の領域のみが計算機９１０から外部装置１８０ｂへコピーされる。【０１３８】
前記ステップ１１２５からステップ１１３５までの処理は、ハイパーバイザ用領域９５０のうち全ての複製対象のデータ構造６２０を１度の実行で出力する必要はなく、共有メモリで一度に送受信可能なサイズにデータ構造６２０を分割し、前記ステップ１１２５からステップ１１３５を複数回繰り返し行うことで全ての複製対象のデータ構造６２０を出力してもよい。【０１３９】
前記ステップ１１２０においてハイパーバイザ用領域９５０の内容を出力インタフェース１７０ｂを介して出力すると判定した場合、一括ダンプ取得プログラム９４５はハイパーバイザ用領域９５０のダンプ取得プログラム９５３に対して、ハイパーバイザ用領域９５０上の状態管理データ９５１のうちステップ７３０で取得したデータ構造６２０に該当する領域のデータを出力インタフェース１７０ｂを介して直接外部装置１８０に送信するよう指示する（ステップ１１４０）。【０１４０】
その後、一括ダンプ取得プログラム９４５は、ダンプ取得プログラム９５３がデータ構造６２０を外部装置１８０に送信し終わるまで待機する（ステップ１１４５）。一括ダンプ取得プログラム９４５は、ダンプ取得プログラム９５３からデータ構造６２０の送信完了の通知を受信するとステップ１１５０へ進む。【０１４１】
前記ステップ１１３５またはステップ１１４５を終えると、一括ダンプ取得プログラム９４５は、ハードウェア管理プログラム用領域９４０の状態管理データ９４３のうち、上記ステップ７３０で取得したデータ構造６２０に該当する領域をデータ配置情報９４４を参照して複製の対象を特定する。一括ダンプ取得プログラム９４５は、当該複製の対象領域のデータと、データ配置情報９４４を出力インタフェース１７０ｂを介し外部装置１８０ｂに送信する（ステップ１１５０）。【０１４２】
上記処理により、一括ダンプ取得プログラム９４５は、障害が発生した計算機と障害要因から障害に関連する計算機を、必用に応じて停止させる。そして、一括ダンプ取得プログラム９４５は、障害要因と優先度に基づいて取得領域テーブル９４２から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置１８０ｂへ送信する。【０１４３】
図１２は、ハイパーバイザ用領域メモリダンプ取得処理１２００の一例を示すフローチャートである。ハイパーバイザ用領域メモリダンプ取得処理１２００は、前記協調ダンプ取得処理１１００において一括ダンプ取得プログラム９４５が、ステップ１１２５またはステップ１１４０においてダンプ取得プログラム９５３に対してデータ構造６２０の出力を指示すると、ダンプ取得プログラム９５３が実行を開始する。【０１４４】
実行開始の際、一括ダンプ取得プログラム９４５は、ダンプ取得プログラム９５３に取得対象のデータ構造６２０及びダンプ送信に用いるインタフェースの情報を通知する（ステップ１２０５）。【０１４５】
ダンプ取得プログラム９５３は、データ配置情報９５２を参照し、状態管理データ９５１のうち前記ステップ１２０５で通知された取得対象のデータ構造６２０のハイパーバイザ用領域９５０内の位置を特定する（ステップ１２１０）。【０１４６】
次にダンプ取得プログラム９５３は、前記実施例１と同様にして前記ステップ１２０５で通知されたインタフェースの情報から、仮想メモリ１６０（仮想計算機マップ領域１３１）のダンプ出力先が内部通信インタフェース３８０か出力インタフェース３７０の何れであるかを判定する（ステップ７３５）。【０１４７】
前記ステップ７３５において仮想メモリ１６０の内容を内部通信インタフェース３８０を介して出力すると判定した場合、ダンプ取得プログラム９５３は、前記実施例１と同様に、各仮想計算機１５０のダンプ取得プログラム１６３に対し、仮想メモリ１６０上の状態管理データ１６２のうちステップ１２１０で特定したデータ構造６２０に該当する領域のデータを、内部通信インタフェース３８０を介して当該ダンプ取得プログラム９５３に送信するよう指示する（ステップ７４０）。【０１４８】
ダンプ取得プログラム９５３は、仮想計算機１５０のダンプ取得プログラム１６３から内部通信インタフェース３８０を介してステップ１２１０で取得したデータ構造６２０に該当する領域のデータを受信する（ステップ７４５）。【０１４９】
次に、ダンプ取得プログラム９５３は、図１０の取得領域テーブル９４２を参照してハイパーバイザ用領域送信インタフェース１０１０の示す出力先を判定する（ステップ１２２５）。ハイパーバイザ用領域送信インタフェース１０１０の示す出力先が共有メモリ領域９６０である場合、ダンプ取得プログラム９５３は前記ステップ７４５で受信したデータを共有メモリ領域９６０に格納し、一括ダンプ取得プログラム９４５に複製が完了した通知を送信する（ステップ１２３０）。【０１５０】
ハイパーバイザ用領域送信インタフェース１０１０の示す出力先が出力インタフェース１７０である場合、ダンプ取得プログラム９５３は前記ステップ７４５で受信したデータを出力インタフェース１７０ｂを介して外部装置１８０に送信する（ステップ１２３５）。【０１５１】
一方、前記ステップ７３５において仮想メモリ１６０の内容を出力インタフェース１７０ｂを介して出力すると判定した場合、ダンプ取得プログラム９５３は、前記実施例１におけるステップ７５５、７６０と同様の手順により各仮想計算機１５０のダンプ取得プログラム１６３が仮想メモリ１６０の内容を外部装置１８０に送信する。【０１５２】
ステップ１２３０、１２３５、７６０のいずれかを完了すると、ダンプ取得プログラム９５３は、上述のステップ１２２５と同様にハイパーバイザ用領域送信インタフェース１０１０の示す出力先を判定する（ステップ１２４０）。【０１５３】
前記ステップ１２４０においてハイパーバイザ用領域送信インタフェース１０１０の示す出力先が共有メモリ領域９６０である場合、ダンプ取得プログラム９５３は前記ステップ１２１０で取得したデータ構造６２０の領域のデータを共有メモリ領域９６０に格納し、一括ダンプ取得プログラム９４５に複製が完了した通知を送信する（ステップ１２４５）。【０１５４】
ハイパーバイザ用領域送信インタフェース１０１０の示す出力先が出力インタフェース１７０ｂである場合、ダンプ取得プログラム９５３は前記ステップ１２１０で取得したデータ構造６２０の示す領域のデータを出力インタフェース１７０ｂを介して外部装置１８０ｂに送信する（ステップ１２５０）。【０１５５】
上述の協調ダンプ取得処理１１００、ハイパーバイザ用領域メモリダンプ取得処理１２００及び仮想メモリダンプ取得処理８００により、ハードウェア管理プログラム９４１とハイパーバイザプログラム１３７が計算機９１０の計算機資源を分割して管理している構成においても、計算機９１０は障害を検知すると計算機９１０の状態管理データ９４３、９５１及び仮想計算機１５０の状態管理データ１６２のうち、取得領域テーブル９４２の内容に基づいて障害要因に関連するデータ構造６２０のみを外部装置１８０ｂに送信することができる。【０１５６】
上記協調ダンプ取得処理１１００により障害解析に用いないデータ構造６２０の外部装置１８０ｂへの送信を抑止するため、メモリダンプを実施するデータ構造６２０の送信に要する時間や外部装置１８０の記憶領域を削減することができる。【０１５７】
以上のように、本実施例２では、障害発生時にはハードウェア管理プログラム用領域９４０の一括ダンプ取得プログラム９４５が、優先度を取得して、当該優先度を満たすデータ構造６２０をメモリダンプの対象として選択する。そして、一括ダンプ取得プログラム９４５は、ハイパーバイザ１２０及び仮想計算機１５０に加えて、ハードウェア管理プログラム用領域９４０のデータについても、障害に対応する領域のメモリダンプを特定して外部装置１８０ｂに複製することが可能となる。【０１５８】
したがって、優先度を所定値（例えば、Ｂ）以上高く設定すれば、障害要因に密接に関連するデータ構造のみがメモリダンプの対象となって、直接障害の発生に関係のないデータ構造のメモリダンプを回避できる。
【実施例３】
【０１５９】
図１３は、本発明の第３の実施例を示し、計算機システム１００を構成する計算機１３１０の一例を示すブロック図である。本実施例３では、前記実施例２のハードウェア管理プログラム用領域９４０を、ハードウェアの専用処理部１３５０に置き換えたものである。【０１６０】
計算機１３１０は、ＣＰＵ２１０と、物理メモリ１３２０と、出力インタフェース１７０ａ及び１７０ｂと、外部装置１８０ａ及び１８０ｂと、各種ハードウェア１４０と、専用処理部１３５０とを含む。【０１６１】
物理メモリ１３２０は、システムプログラム１３２１と、取得領域テーブル１３２２と、状態管理データ１３４と、データ配置情報１３８と、一括ダンプ取得プログラム１３２３と、障害監視プログラム１３６と、共有メモリ１３２４とを格納する。【０１６２】
システムプログラム１３２１は、計算機１３１０の構成要素を管理するプログラムである。なお、システムプログラム１３２１は、前記実施例１、２で示したようにハイパーバイザプログラム１３７であってもよい。【０１６３】
取得領域テーブル１３２２は、予め想定された障害の種類と、障害に対応して取得する状態管理データ１３４、１３７２中のデータ構造の対応関係を格納する。【０１６４】
一括ダンプ取得プログラム１３２３は、障害発生時の物理メモリ１３２０及び専用メモリ１３７０のデータを出力インタフェース１７０ａを介して外部装置１８０ａに複製するプログラムである。共有メモリ１３２４は、計算機１３１０と専用処理部１３５０の双方がデータを読み書きできるメモリ領域である。【０１６５】
専用処理部１３５０は、計算機１３１０が行う処理のうち一部の処理を行う処理部である。例えば、専用処理部１３５０は、ＣＰＵ２１０で実行すると処理時間が長くなったり消費電力が増大する処理がある場合、その処理専用の構成とすることで処理時間の短縮化や消費電力の削減を行うことができる。【０１６６】
専用処理部１３５０の実装例としては、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、もしくはＣＰＵ２１０と異なる処理性能、電力特性のＣＰＵを用いることができる。【０１６７】
専用処理部１３５０は、専用演算器１３６０と専用メモリ１３７０とを含む。また、専用処理部１３５０は出力インタフェース１７０ｂを介して外部装置１８０ｂと接続される。専用演算器１３６０は専用メモリ１３７０に格納されたプログラムやテーブルを読み込んで、専用処理部１３５０を制御する。【０１６８】
専用メモリ１３７０は、専用処理プログラム１３７１と、状態管理データ１３７２と、データ配置情報１３７３と、ダンプ取得プログラム１３７４と、障害監視プログラム１３７５とを格納する。【０１６９】
専用処理プログラム１３７１は、出力インタフェース１７０ｂを介して外部装置１８０ｂを制御する。【０１７０】
状態管理データ１３７２、データ配置情報１３７３、障害監視プログラム１３７５は、データや監視の対象が専用処理部１３５０であることを除けば、前記実施例１に示した計算機１１０の状態管理データ１３４、データ配置情報１３８、障害監視プログラム１３６と同様である。【０１７１】
ダンプ取得プログラム１３７４は、一括ダンプ取得プログラム１３２３から障害発生に伴うダンプ取得の指示を受けた場合、障害発生時の専用メモリ１３７０の内容を共有メモリ１３２４または出力インタフェース１７０ａを介して外部装置１８０ａに送信するプログラムである。【０１７２】
図１４は、取得領域テーブル１３２２の一例を示す図である。取得領域テーブル１３２２は前記実施例１の図６に示した取得領域テーブル１３２のうち、仮想メモリ送信インタフェース６８０を専用メモリ送信インタフェース１４１０に置き換えたものである。【０１７３】
取得領域テーブル１３２２のＩＤ６１０では、それぞれエントリ６５０の示すメモリ領域の対象に応じて、値として“物理メモリ”、“専用メモリ”を設定することができ、物理メモリ１３２０と専用メモリ１３７０に対応する。【０１７４】
専用メモリ送信インタフェース１４１０は、各列エントリ６４０に対応する障害が発生した場合、専用メモリ１３７０のデータをどのインタフェースを用いて外部装置１８０ａに複製するかを示す。【０１７５】
図１５は、物理メモリ１３２０の一括ダンプ取得プログラム１３２３で行われる協調ダンプ取得処理１５００の一例を示すフローチャートである。【０１７６】
協調ダンプ取得処理１５００は、計算機１３１０の障害監視プログラム１３６または専用処理部１３５０の障害監視プログラム１３７５の何れかが障害を検出した通知を契機に開始する（ステップ７０５）。【０１７７】
その後ステップ７１０、７１５、７２５、７３０に示す処理は実施例１の図７における協調ダンプ取得処理７００と同様であるので重複する説明は省略する。【０１７８】
次に、一括ダンプ取得プログラム１３２３は図１４の取得領域テーブル９４２の列エントリ６４０で専用メモリ送信インタフェース１４１０を参照し、該当する内容が“共有メモリ”と“出力”のいずれであるかを判定する（ステップ１５１０）。【０１７９】
専用メモリ送信インタフェース１４１０が“共有メモリ”であれば、専用処理部１３５０が専用メモリ１３７０の内容を共有メモリ１３２４へ出力し、“出力”であれば専用処理部１３５０が出力インタフェース１７０ａを介して外部装置１８０ａへ出力する。【０１８０】
前記ステップ１５１０において、専用メモリ１３７０の内容を共有メモリ１３２４を介して出力すると判定した場合、一括ダンプ取得プログラム１３２３は専用処理部１３５０のダンプ取得プログラム１３７４に対して、専用メモリ１３７０上の状態管理データ１３７２のうちステップ７３０で取得したデータ構造６２０に該当する領域のデータを共有メモリ１３２４に書き込むよう指示する（ステップ１５２５）。【０１８１】
一括ダンプ取得プログラム１３２３はダンプ取得プログラム１３７４から共有メモリ１３２４を介して上記ステップ７３０で取得したデータ構造６２０に該当する領域のデータを受信する（ステップ１５３０）。【０１８２】
一括ダンプ取得プログラム１３２３は、共有メモリ領域９６０に書き込まれた内容を出力インタフェース１７０ａを介して外部装置１８０ａに送信する（ステップ１５３５）。この処理によって、障害要因として特定された専用処理部１３５０内の領域のみが計算機１３１０から外部装置１８０ｂへコピーされる。【０１８３】
前記ステップ１５２５からステップ１５３５までの処理は、専用メモリ１３７０のうち全ての複製対象のデータ構造６２０を１度の実行で出力する必要はなく、共有メモリ１３２４で一度に送受信可能なサイズにデータ構造６２０を分割し、前記ステップ１５２５からステップ１５３５を複数回繰り返し行うことで全ての複製対象のデータ構造６２０を出力してもよい。【０１８４】
前記ステップ１５１０において専用メモリ１３７０の内容を出力インタフェース１７０ａから直接出力すると判定した場合、一括ダンプ取得プログラム１３２３は専用処理部１３５０のダンプ取得プログラム１３７４に対し、専用メモリ１３７０上の状態管理データ１３７２のうち上記ステップ７３０で取得したデータ構造６２０に該当する領域のデータを出力インタフェース１７０ａを介して直接外部装置１８０ａに送信するよう指示する（ステップ１５４０）。【０１８５】
その後、一括ダンプ取得プログラム１３２３は、ダンプ取得プログラム１３７４がデータ構造６２０を外部装置１８０ａに全て送信するまで待機する（ステップ１５４５）。一括ダンプ取得プログラム１３２３は、ダンプ取得プログラム１３７４からデータ構造６２０の送信完了の通知を受信するとステップ１１５０へ進む。【０１８６】
前記ステップ１５３５またはステップ１５４５を終えると、一括ダンプ取得プログラム１３２３は物理メモリ１３２０の状態管理データ１３４のうち、上記ステップ７３０で取得したデータ構造６２０に該当する領域をデータ配置情報１３８を参照して複製の対象を特定する。一括ダンプ取得プログラム１３２３は、当該複製の対象領域のデータと、データ配置情報１３８を出力インタフェース１７０ａを介して外部装置１８０ａに送信する（ステップ１５５０）。【０１８７】
上記処理により、一括ダンプ取得プログラム１３２３は、障害が発生した計算機と障害要因から障害に関連する装置を必用に応じて停止させる。そして、一括ダンプ取得プログラム１３２３は、障害要因と優先度に基づいて取得領域テーブル１３２２から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置１８０ａへ送信する。【０１８８】
図１６は、専用処理部１３５０のダンプ取得プログラム１３７４で行われる専用メモリダンプ取得処理１６００の一例を示すフローチャートである。専用メモリダンプ取得処理１６００は、前記協調ダンプ取得処理１５００において一括ダンプ取得プログラム１３２３がステップ１５２５またはステップ１５４０で、ダンプ取得プログラム１３７４に対しデータ構造の出力を指示すると、ダンプ取得プログラム１３７４が実行を開始する。【０１８９】
実行開始の際、一括ダンプ取得プログラム１３２３は、ダンプ取得プログラム１３７４に取得対象のデータ構造６２０及びダンプ送信に用いるインタフェースの情報を通知する（ステップ１６０５）。【０１９０】
ダンプ取得プログラム１３７４は、データ配置情報１３７３を参照し、状態管理データ１３７２のうち前記ステップ１６０５で通知された取得対象のデータ構造６２０の専用メモリ１３７０内の位置を特定する（ステップ１６１０）。【０１９１】
ダンプ取得プログラム１３７４は、前記ステップ１６０５で通知されたインタフェースの情報から、出力先が共有メモリ１３２４か出力インタフェース１７０の何れかを判定する（ステップ１６１５）。【０１９２】
ステップ１６１５において出力先が共有メモリ１３２４である場合、ダンプ取得プログラム１３７４は、ステップ１６１０で位置を特定したデータ構造６２０を、共有メモリ１３２４に書き込んでから一括ダンプ取得プログラム１３２３に通知する（ステップ１６２０）。【０１９３】
ステップ１６１５において出力先が出力インタフェース１７０である場合、ダンプ取得プログラム１３７４は、上記ステップ１６１０で位置を特定したデータ構造６２０を、出力インタフェース１７０ａを介して外部装置１８０ａに送信する（ステップ１６２５）。【０１９４】
一括ダンプ取得プログラム１３２３が、上記ステップ１６０５で通知した取得対象のデータ構造６２０が複数ある場合、ステップ１６１０からステップ１６２５までの処理は、複数のデータ構造６２０をまとめて処理しても良いし、ステップ８１０からステップ８２５までの処理をデータ構造６２０毎に繰り返したり並列して実行してもよい。【０１９５】
上述の協調ダンプ取得処理１５００及び専用メモリダンプ取得処理１６００により、計算機１３１０が専用処理部１３５０及び専用メモリ１３７０を有する構成においても、計算機１３１０が障害を検知すると計算機１３１０の状態管理データ１３４及び専用処理部１３５０の状態管理データ１３７２のうち、取得領域テーブル１３２２の内容に基づいて障害要因に関連するデータ構造６２０のみを外部装置１８０ａに送信することができる。【０１９６】
上記協調ダンプ取得処理１５００により障害解析に用いないデータ構造６２０の外部装置１８０ａへの送信を抑止するため、データ構造６２０の送信に要する時間や外部装置１８０の記憶領域を削減することができる。【０１９７】
以上のように、本実施例３では、障害発生時には物理メモリ１３２０の一括ダンプ取得プログラム１３２３が、優先度を取得して、当該優先度を満たすデータ構造６２０をメモリダンプの対象として選択する。そして、一括ダンプ取得プログラム１３２３は、物理メモリ１３２０に加えて、専用処理部１３５０のデータについても、障害に対応する領域のメモリダンプを特定して外部装置１８０ａに複製することが可能となる。【０１９８】
したがって、優先度を所定値（例えば、Ｂ）以上高く設定すれば、障害要因に密接に関連するデータ構造のみがメモリダンプの対象となって、直接障害の発生に関係のないデータ構造のメモリダンプを回避できる。【０１９９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。【０２００】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。【０２０１】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【図１】
2016056074.tif 000003
【図２】
2016056074.tif 000004
【図３】
2016056074.tif 000005
【図４】
2016056074.tif 000006
【図５】
2016056074.tif 000007
【図６】
2016056074.tif 000008
【図７】
2016056074.tif 000009
【図８】
2016056074.tif 000010
【図９】
2016056074.tif 000011
【図１０】
2016056074.tif 000012
【図１１】
2016056074.tif 000013
【図１２】
2016056074.tif 000014
【図１３】
2016056074.tif 000015
【図１４】
2016056074.tif 000016
【図１５】
2016056074.tif 000017
【図１６】
2016056074.tif 000018
【手続補正書】
【提出日】平成29年3月2日(2017.3.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
前記物理計算機は、
１以上の仮想計算機を提供する仮想化部と、
前記物理計算機及び前記仮想化部の障害を検出する第１の障害監視部と、
前記仮想化部を割り当てた前記メモリの第１の領域を前記外部装置に複製する第１のメモリダンプ部と、
前記仮想計算機の障害を検出する第２の障害監視部と、
前記仮想化部が前記仮想計算機に割り当てた前記メモリの第２の領域を前記外部装置に複製する第２のメモリダンプ部と、を備え、
前記仮想化部は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報と、
前記第１の領域内での前記データ構造の位置を特定する第１の状態管理情報と、を有し、
前記仮想計算機は、
前記第２の領域内での前記データ構造の位置を特定する第２の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部の少なくとも一方が障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部または第２の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記第１の状態管理情報を参照して前記データ構造に対応する前記第１の領域を特定し、当該特定した第１の領域を前記外部装置に複製し、前記第２のメモリダンプ部に前記データ構造を通知し、
前記第２のメモリダンプ部は、
前記第２の状態管理情報を参照して前記通知されたデータ構造に対応する前記第２の領域を特定し、当該特定した第２の領域を前記外部装置へ複製することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記取得領域情報は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造のそれぞれについて優先度を設定したことを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記第１のメモリダンプ部は、
前記データ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記データ構造を取得することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記第１のメモリダンプ部は、
前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とする計算機システム。
【請求項５】
請求項１に記載の計算機システムであって、
前記取得領域情報は、
前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
前記第１のメモリダンプ部は、
前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とする計算機システム。
【請求項６】
請求項１に記載の計算機システムであって、
前記仮想計算機は、
前記仮想化部と通信を行う第１の通信経路と、
前記外部装置と通信を行う第２の通信経路と、を有し、
前記取得領域情報は、
前記障害の要因毎に前記第１の通信経路と第２の通信経路の何れか一方を選択する経路情報が設定され、
前記第２のメモリダンプ部は、
前記取得領域情報の経路情報に基づいて前記第１の通信経路と第２の通信経路の一方から出力することを特徴とする計算機システム。
【請求項７】
請求項１に記載の計算機システムであって、
前記物理計算機は、
前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
前記ハードウェア管理部は、
前記ハードウェア管理部の障害を検出する第３の障害監視部と、
前記ハードウェア管理部に割り当てた前記メモリの第３の領域を前記外部装置に複製する第３のメモリダンプ部と、
前記第３の領域内での前記データ構造の位置を特定する第３の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部と第３の障害監視部の少なくともひとつが障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部、第２の障害監視部または第３の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記第１の状態管理情報を参照して前記データ構造に対応する前記第１の領域を特定し、当該特定した第１の領域を前記外部装置に複製し、前記第２のメモリダンプ部と前記第３のメモリダンプ部に前記データ構造を通知し、
前記第３のメモリダンプ部は、
前記第３の状態管理情報を参照して前記通知されたデータ構造に対応する前記第３の領域を特定し、当該特定した第３の領域を前記外部装置へ複製することを特徴とする計算機システム。
【請求項８】
プロセッサとメモリを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えて前記メモリのダンプを行うメモリダンプ方法であって、
前記物理計算機は、
１以上の仮想計算機を提供する仮想化部を有し、
前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出する第１のステップと、
前記仮想計算機が、当該仮想計算機の障害を検出する第２のステップと、
前記仮想化部が、前記物理計算機と当該仮想化部及び仮想計算機の少なくともひとつで障害を検出したときには、前記障害の要因を取得する第３のステップと、
前記仮想化部が、前記障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報を参照して、前記取得した障害の要因に対応するデータ構造を取得する第４のステップと、
前記仮想化部が、当該仮想化部を割り当てた前記メモリの第１の領域で前記データ構造の位置を特定する第１の状態管理情報を参照して、前記データ構造に対応する前記第１の領域内の位置を特定し、当該特定した第１の領域を前記外部装置に複製する第５のステップと、
前記仮想化部が、前記データ構造を前記仮想計算機へ通知する第６のステップと、
前記仮想計算機が、前記仮想化部が当該仮想計算機に割り当てた前記メモリの第２の領域で前記データ構造の位置を特定する第２の状態管理情報を参照して、前記通知されたデータ構造に対応する第２の領域内の位置を特定する第７のステップと、
前記仮想計算機が、前記特定した第２の領域を前記外部装置に複製する第８のステップと、
を含むことを特徴とするメモリダンプ方法。
【請求項９】
請求項８に記載のメモリダンプ方法であって、
前記取得領域情報は、
前記物理計算機と仮想化部及び仮想計算機で発生する障害の要因毎にメモリダンプを行うデータ構造のそれぞれについて優先度を設定したことを特徴とするメモリダンプ方法。
【請求項１０】
請求項９に記載のメモリダンプ方法であって、
前記第４のステップは、
前記データ構造を取得する閾値として優先度を取得して、当該閾値以上の優先度が設定された前記データ構造を取得することを特徴とするメモリダンプ方法。
【請求項１１】
請求項１０に記載のメモリダンプ方法であって、
前記第４のステップは、
前記閾値としての優先度を受け付けて、前記閾値として用いることを特徴とするメモリダンプ方法。
【請求項１２】
請求項８に記載のメモリダンプ方法であって、
前記取得領域情報は、
前記障害の要因毎に物理計算機上で稼働する仮想計算機の全停止、一部停止及び稼働継続のいずれかひとつが稼働停止対象として設定され、
前記第４のステップは、
前記障害の要因に応じて前記取得領域情報から前記稼働停止対象を取得して、前記稼働停止対象に基づいて前記仮想計算機を制御することを特徴とするメモリダンプ方法。
【請求項１３】
請求項８に記載のメモリダンプ方法であって、
前記仮想計算機は、
前記仮想化部と通信を行う第１の通信経路と、
前記外部装置と通信を行う第２の通信経路と、を有し、
前記取得領域情報は、
前記障害の要因毎に前記第１の通信経路と第２の通信経路の何れか一方を選択する経路情報が設定され、
前記第８のステップは、
前記取得領域情報の経路情報に基づいて前記第１の通信経路と第２の通信経路の一方から出力することを特徴とするメモリダンプ方法。
【請求項１４】
請求項８に記載のメモリダンプ方法であって、
前記物理計算機は、
前記物理計算機の資源を分割して稼働するハードウェア管理部をさらに有し、
前記第１のステップは、
前記仮想化部が、前記物理計算機及び当該仮想化部の障害を検出するステップと、
前記ハードウェア管理部が、当該ハードウェア管理部の障害を検出するステップと、を含み、
前記第３のステップは、
前記仮想化部が、前記物理計算機、当該仮想化部、前記仮想計算機または前記ハードウェア管理部の少なくともひとつで障害を検出したときには、前記障害の要因を取得し、
前記第６のステップは、
前記仮想化部が、前記データ構造を前記仮想計算機と前記ハードウェア管理部へそれぞれ通知し、
前記ハードウェア管理部が、当該ハードウェア管理部に割り当てた前記メモリの第３の領域で前記データ構造の位置を特定する第３の状態管理情報を参照して、前記通知されたデータ構造に対応する第３の領域内の位置を特定する第９のステップと、
前記ハードウェア管理部が、前記特定した第３の領域を前記外部装置に複製する第１０のステップと、
をさらに含むことを特徴とするメモリダンプ方法。
【請求項１５】
プロセッサと第１のメモリと専用処理部とを有する物理計算機と、前記物理計算機に接続されて記憶装置を有する外部装置と、を備えた計算機システムであって、
前記物理計算機は、
当該物理計算機を制御するシステム制御部と、
前記物理計算機及び前記システム制御部の障害を検出する第１の障害監視部と、
前記システム制御部を割り当てた前記第１のメモリの領域を前記外部装置に複製する第１のメモリダンプ部と、を有し、
前記専用処理部は、
当該専用処理部の障害を検出する第２の障害監視部と、
当該専用処理部が有する第２のメモリの領域を前記外部装置に複製する第２のメモリダンプ部と、を有し、
前記システム制御部は、
前記物理計算機、前記システム制御部及びハードウェア管理部で発生する障害の要因毎にメモリダンプを行うデータ構造を設定した取得領域情報と、
前記第１のメモリ内で前記データ構造の位置を特定する第１の状態管理情報と、を有し、
前記ハードウェア管理部は、
前記第２のメモリ内で前記データ構造の位置を特定する第２の状態管理情報と、を有し、
前記第１のメモリダンプ部は、
前記第１の障害監視部と第２の障害監視部の少なくとも一方が障害を検出したときには、前記障害の要因を前記障害を検出した第１の障害監視部または第２の障害監視部から取得して、前記取得領域情報を参照して前記取得した障害の要因に対応するデータ構造を取得し、前記データ構造から前記第１の状態管理情報を参照して、前記データ構造に対応する前記第１のメモリの領域を特定し、当該特定した第１のメモリの領域を前記外部装置に複製し、前記第２のメモリダンプ部に前記データ構造を通知し、
前記第２のメモリダンプ部は、
前記通知されたデータ構造から前記第２の状態管理情報を参照して前記第２のメモリの領域を特定し、当該特定した第２の領域を前記外部装置へ複製することを特徴とする計算機システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
また、出力インタフェース１７０は、ひとつのＩ／Ｏ（デバイス）を複数の仮想計算機で利用可能なＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ  Ｒｏｏｔ  ＩＯ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）で構成され、複数の出力インタフェース３７０を仮想計算機１５０に割り当てることできる。仮想計算機１５０は、ハイパーバイザ１２０から割り当てられた出力インタフェース３７０を物理的なインタフェースとして利用することができる。なお、仮想計算機１５０に物理的なＩ／Ｏデバイスを占有させてもよい。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１４２
【補正方法】変更
【補正の内容】
【０１４２】
上記処理により、一括ダンプ取得プログラム９４５は、障害が発生した計算機と障害要因から障害に関連する計算機または仮想計算機を、必用に応じて停止させる。そして、一括ダンプ取得プログラム９４５は、障害要因と優先度に基づいて取得領域テーブル９４２から取得対象のデータ構造を抽出し、所定の経路でデータ構造の複製を外部装置１８０ｂへ送信する。
【国際調査報告】
2016056074.tif 000019
2016056074.tif 000020