(57)【特許請求の範囲】
【請求項１】
応用プログラムがインストールされているゲストＯＳを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、
外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、
外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストＯＳのスナップショットを作成するスナップショット作成部、
を備え、
前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、
前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、
前記スナップショット作成部によってゲストＯＳのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、
仮想計算機システム。
【請求項２】
外部イベント保存部を当該仮想計算機の内部に有する、
請求項１に記載の仮想計算機システム。
【請求項３】
外部イベント保存部を前記外部装置の内部に有する、
請求項１又は２に記載の仮想計算機システム。
【請求項４】
外部イベント保存部が、当該仮想計算機とは異なる第２の仮想計算機のスナップショットとして第２の仮想計算機を搭載するコンピュータ内部の保存手段である、
請求項１から３のいずれか一項に記載の仮想計算機システム。
【請求項５】
外部イベント保存部でイベント保存が終わった旨の通知を受け付ける受付手段
をさらに備え、
スナップショット作成部は、受付手段が通知を受け付けた後に、スナップショットを作成する
請求項１から４のいずれか一項に記載の仮想計算機システム。
【請求項６】
コンピュータを、
応用プログラムがインストールされているゲストＯＳを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、
外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、
外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストＯＳのスナップショットを作成するスナップショット作成部、
として機能させ、
前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、
前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、
前記スナップショット作成部によってゲストＯＳのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、
仮想計算機プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システム及び仮想計算機プログラムに関する。
【背景技術】
【０００２】
特許文献１には、仮想マシンモニタ（ＶＭＭ）上で複数の仮想マシン（ＶＭ）が連係動作し、ＶＭ間が共有メモリで結合するシステムで、人間の操作やＶＭ間の非同期イベント及びＯＳが原因の障害調査のため、障害発生ＶＭのみ再生し障害再現させ、障害原因調査を可能とすることを課題とし、障害発生ＶＭを再現操作ツールでＶＭ実行管理表に設定し、設定ＶＭを一斉スナップショット通知手段で実行中であれば一時停止してスナップショット記録部に、その時点までの実行内容を記録し、ＶＭ入出力記録手段がＶＭの仮想ハードウェア（ＨＷ）の入出力アクセスをイベント記録部に記録し、一斉スナップショット通知手段はスナップショット記録の完了後、再現操作手段の操作で記録ＶＭ内容を再現し、入出力再現手段はＶＭの再現実行中に仮想ＨＷに発生した入出力アクセスをイベント記録部の内容と照合し、合致するものを再現することが開示されている。
【０００３】
特許文献２には、仮想マシンにインストールされた応用プログラムを実行するにあたって、既に作成された基準スナップショットを仮想マシンに適用した後に、その応用プログラムを実行するようにした仮想計算機システムを提供することを課題とし、仮想計算機システムは、仮想マシンにインストールされた応用プログラムを含む前記仮想マシンの状態を記録したスナップショットを基準スナップショットとして保存し、前記応用プログラムの実行要求を受け付けるに際し、前記基準スナップショットを前記仮想マシンに適用し、前記応用プログラムを実行し、障害が発生した場合には改めて前記仮想マシンの状態をスナップショットとして保存することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−３２４９８号公報
【特許文献２】特許５７１３１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
仮想ＯＳ上で動作するアプリケーションのスナップショットには、当該仮想ＯＳ上で動作していない装置の状態が保存されない。そのため、スナップショットだけでは障害発生状態を再現することができない。また、特許文献２に開示されている技術では、印刷装置が障害発生時にスナップショットを生成しても、印刷装置が障害発生後も印刷処理を継続させると、障害発生時の印刷装置のログ情報は、その障害発生後の印刷処理によって失われてしまい、障害発生時の印刷装置のログ情報を含めた状態を再現することができないこととなる。
本発明は、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができるようにした仮想計算機システム及び仮想計算機プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、応用プログラムがインストールされているゲストＯＳを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストＯＳのスナップショットを作成するスナップショット作成部、を備え、前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、前記スナップショット作成部によってゲストＯＳのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、仮想計算機システムである。
【０００７】
請求項２の発明は、外部イベント保存部を当該仮想計算機の内部に有する、請求項１に記載の仮想計算機システムである。
【０００８】
請求項３の発明は、外部イベント保存部を前記外部装置の内部に有する、請求項１又は２に記載の仮想計算機システムである。
【０００９】
請求項４の発明は、外部イベント保存部が、当該仮想計算機とは異なる第２の仮想計算機のスナップショットとして第２の仮想計算機を搭載するコンピュータ内部の保存手段である、請求項１から３のいずれか一項に記載の仮想計算機システムである。
【００１０】
請求項５の発明は、外部イベント保存部でイベント保存が終わった旨の通知を受け付ける受付手段をさらに備え、スナップショット作成部は、受付手段が通知を受け付けた後に、スナップショットを作成する請求項１から４のいずれか一項に記載の仮想計算機システムである。
【００１１】
請求項６の発明は、コンピュータを、応用プログラムがインストールされているゲストＯＳを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストＯＳのスナップショットを作成するスナップショット作成部、として機能させ、前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、前記スナップショット作成部によってゲストＯＳのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、仮想計算機プログラムである。
【発明の効果】
【００１２】
請求項１の仮想計算機システムによれば、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができる。
【００１３】
請求項２の仮想計算機システムによれば、外部イベント保存部を仮想計算機の内部として、外部装置に係るイベントをスナップショットに含めることができる。
【００１４】
請求項３の仮想計算機システムによれば、外部イベント保存部を外部装置の内部として、外部装置内に、外部装置のログ情報を記憶させておくことができる。
【００１５】
請求項４の仮想計算機システムによれば、外部装置に係るイベントを第２の仮想計算機のスナップショットに含めることができる。
【００１６】
請求項５の仮想計算機システムによれば、外部イベント保存部でイベント保存が終わったことを契機として、スナップショットを作成することができる。
【００１７】
請求項６の仮想計算機プログラムによれば、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の実施の形態による処理例を示す説明図である。
【図３】第１の実施の形態による処理例を示すフローチャートである。
【図４】第１の実施の形態による処理例を示すフローチャートである。
【図５】第１の実施の形態による処理例を示すフローチャートである。
【図６】第１の実施の形態による処理例を示すフローチャートである。
【図７】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図８】第２の実施の形態による処理例を示す説明図である。
【図９】第２の実施の形態による処理例を示すフローチャートである。
【図１０】第２の実施の形態による処理例を示すフローチャートである。
【図１１】第２の実施の形態による処理例を示すフローチャートである。
【図１２】第２の実施の形態による処理例を示すフローチャートである。
【図１３】第３の実施の形態の構成例についての概念的なモジュール構成図である。
【図１４】従来技術の例を示す説明図である。
【図１５】従来技術による処理例を示す説明図である。
【図１６】従来技術の例を示す説明図である。
【図１７】従来技術による処理例を示す説明図である。
【図１８】第４の実施の形態の構成例についての概念的なモジュール構成図である。
【図１９】第４の実施の形態による処理例を示す説明図である。
【図２０】第４の実施の形態による処理例を示すフローチャートである。
【図２１】第４の実施の形態による処理例を示すフローチャートである。
【図２２】第５の実施の形態による処理例を示す説明図である。
【図２３】第５の実施の形態による処理例を示すフローチャートである。
【図２４】第５の実施の形態による処理例を示すフローチャートである。
【図２５】従来技術の例を示す説明図である。
【図２６】従来技術による処理例を示す説明図である。
【図２７】従来技術の例を示す説明図である。
【図２８】従来技術による処理例を示す説明図である。
【図２９】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
まず、本実施の形態を説明する前に、その前提となる技術について、図１４〜図１７の例を用いて説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。外部装置として、印刷装置の例を用いて説明する。
図１４は、従来技術の例を示す説明図である。情報処理装置１４００は、外部装置である印刷装置１４８０を制御して、印刷処理を行わせる。情報処理装置１４００は、仮想計算機システムではない、一般的な計算機（１つの物理マシン１４０５に１つのＯＳ１４１０で構成したコンピュータ）である。例えば、情報処理装置１４００は、プリンタサーバー又はプリンタコントローラとしての機能を有し、印刷装置１４８０は、高速プリンタである。
【００２０】
情報処理装置１４００は、下層から順に、物理マシン１４０５、ＯＳ１４１０を有し、ＯＳ１４１０上に応用プログラムであるプリントコントローラモジュール１４２５、障害情報収集モジュール１４３５を有している。プリントコントローラモジュール１４２５は、出力制御モジュール１４３０を含んでおり、Ｃ−Ｌｏｇ１４２７Ａを記憶している。出力制御モジュール１４３０は、印刷装置１４８０を制御するプログラムである。印刷装置１４８０は、Ｉ−Ｌｏｇ１４８２Ａを記憶している。
【００２１】
情報処理装置１４００又は印刷装置１４８０で障害が発生すると、障害情報収集モジュール１４３５からの指示（Ｇｅｔ＿Ｌｏｇ）で、プリントコントローラモジュール１４２５は内部及びＯＳ１４１０のログ情報（Ｃ−Ｌｏｇ１４２７Ａ）の収集を行う。また、発生した障害の原因がプリントコントローラモジュール１４２５の管理外にある印刷装置１４８０にある可能性もある。したがって、プリントコントローラモジュール１４２５は内部の出力制御モジュール１４３０を通して（出力制御モジュール１４３０からの印刷装置１４８０へのｇｅｔ＿ｌｏｇの指示によって）、印刷装置１４８０のログ情報（Ｉ−Ｌｏｇ１４８２Ａ）の収集も併せて行い、プリントコントローラモジュール１４２５は障害情報収集モジュール１４３５にＣ−Ｌｏｇ１４２７ＡとＩ−Ｌｏｇ１４８２Ａを返す。そして、障害情報収集モジュール１４３５は、記憶領域１４９０に、Ｃ−Ｌｏｇ１４２７ＡとＩ−Ｌｏｇ１４８２Ａを記憶させる。
【００２２】
図１５は、従来技術による処理例を示す説明図である。
情報処理装置１４００は、印刷装置１４８０に印刷処理を行わせる運用をしており、その運用中に障害発生１５１０したとする。
障害発生１５１０を検知すると、ＯＳ１４１０上の障害情報収集モジュール１４３５に対して障害情報収集指示１５７２が行われる。障害情報収集モジュール１４３５は、プリントコントローラモジュール１４２５に対して、Ｇｅｔ＿Ｌｏｇ１５７４の指示を行い、プリントコントローラモジュール１４２５内部とＯＳ１４１０のそのときの状態（ログ情報）をＣ−Ｌｏｇ１４２７Ａとして取得する。そして、プリントコントローラモジュール１４２５は出力制御モジュール１４３０を制御し、出力制御モジュール１４３０はその制御にしたがって、印刷装置１４８０に対して、ｇｅｔ＿ｌｏｇ１５７６の指示を行い、印刷装置１４８０から印刷装置１４８０のそのときの状態（ログ情報）であるＩ−Ｌｏｇ１４８２Ａを取得する。そして、出力制御モジュール１４３０は、Ｇｅｔ＿Ｌｏｇ１５７４の返信としてＩ−Ｌｏｇ，Ｃ−Ｌｏｇ１５７８（Ｃ−Ｌｏｇ１４２７Ａ、Ｉ−Ｌｏｇ１４８２Ａ）を障害情報収集モジュール１４３５に返す。障害情報収集モジュール１４３５は、それらを記憶領域１４９０にＣ−Ｌｏｇ１４２７Ｂ、Ｉ−Ｌｏｇ１４８２Ｂとして記憶させる。その後、障害のリカバリ処理１５５０が行われ、運用再開１５６０となる。
なお、この後、印刷装置１４８０の運用が終了した後に、Ｃ−Ｌｏｇ１４２７Ｂ、Ｉ−Ｌｏｇ１４８２Ｂを解析することによって、障害の原因、対策等を検討することになる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理１５５０、運用再開１５６０を行うのは、印刷装置１４８０での印刷処理を続けるためである。特に、印刷装置１４８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００２３】
次に、仮想計算機システムによる例を示す。図１６は、従来技術の例を示す説明図である。情報処理装置１６００は、仮想計算機システムであって、外部装置である印刷装置１６８０を制御して、印刷処理を行わせる。例えば、情報処理装置１６００は、プリンタサーバーとしての機能を有し、印刷装置１６８０は、高速プリンタである。
仮想化システムと呼ばれる技術は、一台の物理マシン１６０５（ハードウェア）上で複数のゲストＯＳ１６２０を動作させる技術である。図１６の例に示すように、物理マシン１６０５上にホストＯＳ１６１０と仮想化ＳＷ１６１５による仮想ハードウェアを構築し、その上にゲストＯＳ１６２０をインストールし、さらにゲストＯＳ１６２０上に応用プログラム（アプリケーション）であるプリントコントローラモジュール１６２５をインストールする。
仮想化ＳＷ１６１５は、物理マシン１６０５上に、複数のゲストＯＳ１６２０の並列的な同居を可能にするソフトウェアである。つまり、仮想化ＳＷ１６１５は、ＣＰＵ、メモリ、ＨＤＤ等のハードウェアをソフトウェア的に構築し、ゲストＯＳ１６２０が依って立つハードウェアリソースを仮想マシンとして用意するものである。
プリントコントローラモジュール１６２５として、例えば、プリンタ制御プログラム（具体例として、デジタルフロントエンド（ＤＦＥ：Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ）等）がある。この場合、仮想マシンはそれぞれが隔離されており、いずれかに障害（例えば、クラッシュ等）が発生しても、他の仮想マシン上でのプリンタ制御プログラムはそのまま稼働しており、印刷することができる。
【００２４】
具体的には、情報処理装置１６００は、下層から順に、物理マシン１６０５、ホストＯＳ１６１０、仮想化ＳＷ１６１５、ゲストＯＳ１６２０を有し、ゲストＯＳ１６２０上に応用プログラムであるプリントコントローラモジュール１６２５、障害情報収集モジュール１６３５を有している。仮想化ＳＷ１６１５は、ＳＳ管理モジュール１６１７を含み、プリントコントローラモジュール１６２５は、出力制御モジュール１６３０を含んでおり、Ｃ−Ｌｏｇ１６２７Ａを記憶している。印刷装置１６８０は、Ｉ−Ｌｏｇ１６８２Ａを記憶している。記憶領域１６９０は、スナップショット１６９２を記憶している。なお、図１６の例では、仮想化ＳＷ１６１５の上に１つのゲストＯＳ１６２０の例を示しているが、仮想計算機システムであるので、仮想化ＳＷ１６１５の上に複数のゲストＯＳ１６２０が構成されていてもよい。
【００２５】
情報処理装置１６００では、応用プログラムであるプリントコントローラモジュール１６２５を仮想化環境で動作させ、その仮想化環境のスナップショット機能（ＳＳ管理モジュール１６１７の機能）を用いて、障害発生時の障害状態をスナップショット１６９２として記憶領域１６９０内に保持させ、発生した障害を復旧し、所定の印刷処理が終了後（印刷業務の空いた時間）に、保存されたスナップショット１６９２を用いて障害発生時の状態を再現させた上で障害情報を採取する。ここで、プリントコントローラモジュール１６２５が動作するゲストＯＳ１６２０のスナップショットの作成と再現をＳＳ管理モジュール１６１７が行う。
【００２６】
図１７の例を用いて説明する。情報処理装置１６００は、印刷装置１６８０に印刷処理を行わせる運用をしており、その運用中に障害発生１７１０したとする。
障害発生１７１０を検知すると、ホストＯＳ１６１０を介してユーザの操作に応じて、ＳＳ管理モジュール１６１７に対してスナップショット採取指示１７２２が行われる。なお、プリントコントローラモジュール１６２５内のステータスを監視する事により、自動的にスナップショット採取指示１７２２を出すことも可能である。ＳＳ管理モジュール１６１７は、そのときのゲストＯＳ１６２０とプリントコントローラモジュール１６２５における状態Ａ：１７４０Ａをスナップショット１６９２として、記憶領域１６９０に記憶させる。なお、印刷装置１６８０では、障害発生１７１０におけるログ情報としてＩ−Ｌｏｇ１６８２Ａが発生している。しかし、ＳＳ管理モジュール１６１７のスナップショットは、情報処理装置１６００内部の状態を取得するものであるので、外部装置である印刷装置１６８０のＩ−Ｌｏｇ１６８２Ａは、スナップショットの対象ではない。
その後、障害のリカバリ処理１７５０が行われ、運用再開１７６０となる。
【００２７】
そして、印刷装置１６８０の運用が終了した後に、ホストＯＳ１６１０を介してユーザの操作に応じて、ＳＳ管理モジュール１６１７に対してスナップショット再現指示１７７０を行うと、ＳＳ管理モジュール１６１７は、記憶領域１６９０内のスナップショット１６９２を読み出して、ゲストＯＳ１６２０、プリントコントローラモジュール１６２５の状態を状態Ａ：１７４０Ｂ（状態Ａ：１７４０Ａと同じ状態）に戻す。そして、ホストＯＳ１６１０を介してユーザの操作に応じて、障害情報収集モジュール１６３５に対して障害情報収集指示１７７２を行うと、図１５の例で示したものと同等の処理を行う。つまり、障害情報収集モジュール１６３５は、プリントコントローラモジュール１６２５に対して、Ｇｅｔ＿Ｌｏｇ１７７４の指示を行い、プリントコントローラモジュール１６２５内部とゲストＯＳ１６２０のそのときの状態（ログ情報）をＣ−Ｌｏｇ１６２７Ａとして取得する。そして、プリントコントローラモジュール１６２５は出力制御モジュール１６３０を制御し、出力制御モジュール１６３０はその制御にしたがって、印刷装置１６８０に対して、ｇｅｔ＿ｌｏｇ１７７６の指示を行い、印刷装置１６８０から印刷装置１６８０のそのときの状態（ログ情報）であるＩ−ＬｏｇＸ１６８２Ｂを取得する。そして、出力制御モジュール１６３０は、Ｇｅｔ＿Ｌｏｇ１７７４の返信としてＩ−ＬｏｇＸ，Ｃ−Ｌｏｇ１７７８（Ｃ−Ｌｏｇ１６２７Ａ、Ｉ−ＬｏｇＸ１６８２Ｂ）を障害情報収集モジュール１６３５に返す。障害情報収集モジュール１６３５は、それらを記憶領域１６９０にＣ−Ｌｏｇ１６２７Ｂ、Ｉ−ＬｏｇＸ１６８２Ｃとして記憶させる。
【００２８】
障害情報収集モジュール１６３５を用いてプリントコントローラモジュール１６２５の管理の外部にある印刷装置１６８０のログ情報（Ｉ−ＬｏｇＸ１６８２Ｂ）の収集を行うと、図１７の例に示すように、障害発生１７１０のときと障害情報収集指示１７７２の間に印刷処理（運用再開１７６０）を行っているので、障害情報収集指示１７７２のときの印刷装置１６８０のログ情報であるＩ−ＬｏｇＸ１６８２Ｂには障害後の印刷処理（運用再開１７６０後の印刷処理）の情報が書き込まれており、障害が発生したときの印刷装置１６８０のログ情報であるＩ−Ｌｏｇ１６８２Ａとは異なった内容になっている。そのため印刷装置１６８０の運用再開１７６０後の印刷処理によっては、障害発生時のログ情報であるＩ−Ｌｏｇ１６８２Ａは既になくなっている（上書きされている）という状況が発生する。つまり、障害発生１７１０したときのＩ−Ｌｏｇ１６８２Ａが、障害情報収集指示１７７２によって記憶領域１６９０に記憶されるわけではない。
【００２９】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜＜第１の実施の形態＞＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、すべての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００３０】
第１の実施の形態である仮想計算機システムである情報処理装置１００は、障害発生直後の状態を、プリントコントローラモジュール１２５と外部装置である印刷装置１８０の状態をスナップショットとして記憶し、その状態を再現できるようにしたものであって、図１の例に示すように、下層から順に、物理マシン１０５、ホストＯＳ１１０、仮想化ＳＷ１１５、ゲストＯＳ１２０を有し、ゲストＯＳ１２０上に応用プログラムであるプリントコントローラモジュール１２５、障害情報収集モジュール１３５、ＳＳ制御モジュール１４０を有している。仮想化ＳＷ１１５は、ＳＳ管理モジュール１１７を含んでいる。つまり、ＳＳ管理モジュール１１７は、仮想化ＳＷ１１５に標準的に組み込まれているモジュールである。プリントコントローラモジュール１２５は、出力制御モジュール１３０を含んでおり、Ｃ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂを記憶している。印刷装置１８０は、Ｉ−Ｌｏｇ１８２Ａを記憶している。記憶領域１９０は、スナップショット１９２を記憶している。
なお、外部装置の例示として印刷装置１８０を示しているが、他の装置（例えば、スキャナ等）であってもよい。つまり、仮想計算機システムによって制御される外部装置であって、障害が発生した後、その障害を解析することよりも前に、リカバリ処理が行われるものであればよい。そして、応用プログラムとして、例えば、プリンタ制御プログラムがある。以下、プリンタ制御プログラムを例示して説明する。
【００３１】
図１の例に示すように、仮想計算機である情報処理装置１００に、印刷装置１８０のログ情報（Ｉ−Ｌｏｇ１８２Ａ）の収集と、ＳＳ管理モジュール１１７を用いて、プリントコントローラモジュール１２５の動作するゲストＯＳ１２０のスナップショットを作成させること（スナップショットを再現することを含めてもよい）を指示するＳＳ制御モジュール１４０を導入する。そして、障害情報収集モジュール１３５は、プリントコントローラモジュール１２５内部及びゲストＯＳ１２０のログ情報（Ｃ＿Ｌｏｇ）の収集と、既に収集済みの印刷装置１８０のログ情報（Ｉ−Ｌｏｇ１８２Ｂ）の取得を行う。
【００３２】
つまり、ＳＳ制御モジュール１４０は、応用プログラムであるプリントコントローラモジュール１２５がインストールされているゲストＯＳ１２０を搭載する仮想計算機である情報処理装置１００の外部に設けられた印刷装置１８０に係るイベントを取得するための制御を行う。ここで「印刷装置１８０に係るイベント」としては、具体的には、障害発生時の印刷装置１８０のログ情報であるＩ−Ｌｏｇ１８２Ａがある。なお、障害が発生するのは、情報処理装置１００であってもよいし、印刷装置１８０であってもよい。
プリントコントローラモジュール１２５は、ＳＳ制御モジュール１４０により取得した外部イベントを保存する。つまり、プリントコントローラモジュール１２５内には、Ｉ−Ｌｏｇ１８２Ｂ（印刷装置１８０内のＩ−Ｌｏｇ１８２Ａと同じ内容）を記憶している。もちろんのことながら、プリントコントローラモジュール１２５は、情報処理装置１００の内部（ＳＳ管理モジュール１１７によってスナップショットの対象となっている領域内）にあるので、ゲストＯＳ１２０、プリントコントローラモジュール１２５のログ情報であるＣ−Ｌｏｇ１２７Ａも記憶している。
ＳＳ管理モジュール１１７は、プリントコントローラモジュール１２５に外部イベントであるＩ−Ｌｏｇ１８２Ａが保存されてから、プリントコントローラモジュール１２５を含むゲストＯＳ１２０のスナップショットを作成する。したがって、そのスナップショットには、Ｃ−Ｌｏｇ１２７Ａの他に、Ｉ−Ｌｏｇ１８２Ｂが含まれていることになる。具体的には、ＳＳ管理モジュール１１７は、ＳＳ制御モジュール１４０から、イベント保存が終わった旨の通知を受け付け、その通知を受け付けた後に、スナップショットを作成する。
【００３３】
具体的には、障害が発生すると、ＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に対して、印刷装置１８０のＩ−Ｌｏｇ１８２Ａを取得する指示（Ｇｅｔ−ＩＬｏｇ）を行う（Ｓｔｅｐ１２）。出力制御モジュール１３０は、プリントコントローラモジュール１２５の制御にしたがって、印刷装置１８０に対して、Ｉ−Ｌｏｇ１８２Ａを取得する指示（ｇｅｔ−ｌｏｇ）を行う（Ｓｔｅｐ１４）。印刷装置１８０は、Ｉ−Ｌｏｇ１８２Ａを出力制御モジュール１３０に渡す（Ｓｔｅｐ１６）。その結果、プリントコントローラモジュール１２５内にＩ−Ｌｏｇ１８２Ｂが記憶される。そして、プリントコントローラモジュール１２５（出力制御モジュール１３０）は、Ｇｅｔ−ＩＬｏｇの処理が終了したことを示すＲｅｓ＿ＩＬｏｇ処理を行う（Ｓｔｅｐ１８）。ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７にスナップショット処理を行うように指示する（Ｓｔｅｐ２０）。その結果、記憶領域１９０内にスナップショット１９２が記憶される。スナップショット１９２内には、プリントコントローラモジュール１２５内のＣ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂが含まれている。
【００３４】
そして、障害のリカバリ処理が行われ、運用が再開される。運用が終了した後、障害の収集・解析を行う場合、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット１９２を用いて、障害時の状態を復元する。その結果、プリントコントローラモジュール１２５内には、障害発生時のＣ−Ｌｏｇ１２７ＡとともにＩ−Ｌｏｇ１８２Ｂ（障害発生時の印刷装置１８０内のＩ−Ｌｏｇ１８２Ａ）が復元されることになる。障害情報収集モジュール１３５は、プリントコントローラモジュール１２５に対して、障害情報を取得する指示（Ｇｅｔ−Ｌｏｇ）を行う（Ｓｔｅｐ３２）。プリントコントローラモジュール１２５は、Ｃ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂを障害情報収集モジュール１３５に返す（Ｓｔｅｐ３４）。担当者は、障害情報収集モジュール１３５が取得したＣ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂを解析して、障害の原因、対策等を検討することになる。
【００３５】
情報処理装置１００は、概要として、次に示すような処理を行う。
プリントコントローラモジュール１２５をゲストＯＳ１２０上で動作させ、その仮想計算機システムのスナップショット機能を用いて障害情報の収集を行う場合、前述したように、障害発生と障害情報の取得のタイミングが大きく異なる。このため、スナップショットの対象外である印刷装置１８０等の外部機器は、障害情報の取得時に障害発生時のログ情報を保持していない場合があり得る。そこで、従来の障害情報収集の機能を、ＳＳ制御モジュール１４０と障害情報収集モジュール１３５に分けて、ＳＳ制御モジュール１４０により、障害発生時の印刷装置１８０のログ情報をスナップショット採取前にプリントコントローラモジュール１２５に取り込む様にした。
これにより、障害発生の直後に短時間で処理が終了可能なスナップショットを作成すれば、時間の要する障害情報の収集作業を行うことなく、障害のリカバリ処理後に本来の印刷処理を直ちに再開できる。そして、印刷業務が終了した後など好きなタイミングで、スナップショットを再現することで、障害発生直後の障害情報（プリントコントローラモジュール１２５だけでなく、印刷装置１８０などの外部機器の障害情報）を取得できる。
つまり、印刷装置１８０のユーザは、障害発生に伴う障害情報の収集を行わなくてよくなる。その結果、印刷装置１８０の稼働率を上げることができることとなる。
【００３６】
図２は、第１の実施の形態による処理例を示す説明図である。
情報処理装置１００は、印刷装置１８０に印刷処理を行わせる運用をしており、その運用中に障害発生２１０したとする。
障害発生２１０を検知すると、ゲストＯＳ１２０上のＳＳ制御モジュール１４０に対して、スナップショット採取指示２２２が行われる。ＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に対して、Ｇｅｔ＿ＩＬｏｇ２２４の指示を行う。出力制御モジュール１３０は、プリントコントローラモジュール１２５の制御にしたがって、印刷装置１８０に対して、ｇｅｔ＿ｌｏｇ２２６の指示を行って、Ｉ−Ｌｏｇ１８２Ａを取得して、プリントコントローラモジュール１２５内にＩ−Ｌｏｇ１８２Ｂとして記憶する。プリントコントローラモジュール１２５（出力制御モジュール１３０）は、Ｉ−Ｌｏｇ１８２Ｂが記憶されたことを確認して、ＳＳ制御モジュール１４０に取得終了を示すＲｅｓ＿ＩＬｏｇ２２８を返す。そして、Ｒｅｓ＿ＩＬｏｇ２２８を受けたＳＳ制御モジュール１４０は、仮想化ＳＷ１１５内のＳＳ管理モジュール１１７に対して、スナップショット処理を依頼する。ＳＳ管理モジュール１１７は、ゲストＯＳ１２０、プリントコントローラモジュール１２５（プリントコントローラモジュール１２５内にはＩ−Ｌｏｇ１８２Ｂが記憶されている）の状態Ａ：２４０Ａをスナップショット１９２として、記憶領域１９０に記憶させる。その後、障害の復旧であるリカバリ処理２５０が行われ、運用再開２６０となる。
【００３７】
そして、所定の印刷処理が終了した後（又は、印刷業務の空いた時間）、ＳＳ管理モジュール１１７は、ユーザの操作に応じて、スナップショット再現指示２７０を受け、記憶領域１９０内のスナップショット１９２を用いて障害発生時の状態Ａ：２４０Ｂ（状態Ａ：２４０Ａ）を再現させる。そして、障害情報収集指示２７２にしたがい、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔ＿Ｌｏｇ２７４の指示によって、プリントコントローラモジュール１２５から、プリントコントローラモジュール１２５内部とゲストＯＳ１２０のログ情報であるＣ−Ｌｏｇ１２７Ａと、既に収集済みの印刷装置１８０のログ情報であるＩ−Ｌｏｇ１８２Ｂの取得を行う（Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ２７６）。そして、記憶領域１９０内に、Ｃ−Ｌｏｇ１２７Ｂ（Ｃ−Ｌｏｇ１２７Ａ）、Ｉ−Ｌｏｇ１８２Ｃ（Ｉ−Ｌｏｇ１８２Ｂ、Ｉ−Ｌｏｇ１８２Ａ）を記憶させる。Ｃ−Ｌｏｇ１２７Ｂ、Ｉ−Ｌｏｇ１８２Ｃを解析することによって、障害の原因、対策等を検討することになる。なお、障害が発生した後に、ログの収集・解析を行わずに、リカバリ処理２５０、運用再開２６０を行うのは、印刷装置１８０での印刷処理を続けるためである。特に、印刷装置１８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００３８】
図３、図４は、第１の実施の形態による処理例（スナップショット１９２の生成処理例）を示すフローチャートである。
ステップＳ３０２では、障害発生を検知したか否かを判断し、検知した場合はステップＳ３０４へ進み、それ以外の場合は検知するまで待機する。
ステップＳ３０４では、ユーザの操作に応じて、スナップショット採取指示２２２を行う。なお、前述したように、プリントコントローラモジュール１２５内のステータスを監視する事により、自動的に採取指示を出すことも可能である。
ステップＳ３０６では、ＳＳ制御モジュール１４０は、スナップショット採取指示２２２を受信する。
ステップＳ３０８では、ＳＳ制御モジュール１４０は、Ｉ−Ｌｏｇ取得指示（Ｇｅｔ＿ＩＬｏｇ２２４）を行う。
ステップＳ３１０では、出力制御モジュール１３０は、Ｉ−Ｌｏｇ取得指示（Ｇｅｔ＿ＩＬｏｇ２２４）を受信する。
【００３９】
ステップＳ３１２では、出力制御モジュール１３０は、Ｉ−Ｌｏｇ取得指示（ｇｅｔ＿ｌｏｇ２２６）を行う。
ステップＳ３１４では、印刷装置１８０は、Ｉ−Ｌｏｇ取得指示（ｇｅｔ＿ｌｏｇ２２６）を受信する。
ステップＳ３１６では、印刷装置１８０は、Ｉ−Ｌｏｇ１８２Ａを送信する。
ステップＳ３１８では、出力制御モジュール１３０は、Ｉ−Ｌｏｇ１８２Ａを受信する。
ステップＳ３２０では、出力制御モジュール１３０は、プリントコントローラモジュール１２５内にＩ−Ｌｏｇ１８２Ａを記憶する。
【００４０】
ステップＳ３２２では、出力制御モジュール１３０は、Ｉ−Ｌｏｇの取得が終了したことを返信（Ｒｅｓ＿ＩＬｏｇ２２８）する。
ステップＳ３２４では、ＳＳ制御モジュール１４０は、Ｒｅｓ＿ＩＬｏｇ２２８を受信する。
ステップＳ３２６では、ＳＳ制御モジュール１４０は、スナップショット作成指示を行う。
ステップＳ３２８では、ＳＳ管理モジュール１１７は、スナップショット作成指示を受信する。
ステップＳ３３０では、ＳＳ管理モジュール１１７は、現在の状態Ａ：２４０Ａ（プリントコントローラモジュール１２５内にＩ−Ｌｏｇ  １８２Ｂが記憶された状態）を記憶領域１９０にスナップショット１９２として記憶させる。
【００４１】
図５は、第１の実施の形態による処理例（スナップショット１９２の再現処理例）を示すフローチャートである。
ステップＳ５０２では、ユーザの操作に応じて、スナップショット再現指示２７０を行う。
ステップＳ５０４では、ＳＳ管理モジュール１１７は、スナップショット再現指示２７０を受信する。
ステップＳ５０６では、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット１９２を用いて、状態Ａ：２４０Ｂ（プリントコントローラモジュール１２５内にＩ−Ｌｏｇ１８２Ｂが記憶された状態）を再現する。
【００４２】
図６は、第１の実施の形態による処理例（障害情報であるＣ−Ｌｏｇ１２７Ａ，Ｉ−Ｌｏｇ１８２Ｂの収集処理例）を示すフローチャートである。
ステップＳ６０２では、ユーザの操作に応じて、障害情報収集指示２７２を行う。
ステップＳ６０４では、障害情報収集モジュール１３５は、障害情報収集指示２７２を受信する。
ステップＳ６０６では、障害情報収集モジュール１３５は、ログ取得指示（Ｇｅｔ＿Ｌｏｇ２７４）を行う。
ステップＳ６０８では、プリントコントローラモジュール１２５は、ログ取得指示（Ｇｅｔ＿Ｌｏｇ２７４）を受信する。
【００４３】
ステップＳ６１０では、プリントコントローラモジュール１２５は、Ｃ−Ｌｏｇ１２７ＡとＩ−Ｌｏｇ１８２Ｂを送信する。
ステップＳ６１２では、障害情報収集モジュール１３５は、Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ２７６（Ｃ−Ｌｏｇ１２７ＡとＩ−Ｌｏｇ１８２Ｂ）を受信する 。
ステップＳ６１４では、障害情報収集モジュール１３５は、Ｃ−Ｌｏｇ１２７ＢとＩ−Ｌｏｇ１８２Ｃ（Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ２７６）を記憶領域１９０に記憶させる。
【００４４】
＜＜第２の実施の形態＞＞
図７は、第２の実施の形態の構成例についての概念的なモジュール構成図である。
情報処理装置７００は、下層から順に、物理マシン１０５、ホストＯＳ１１０、仮想化ＳＷ１１５、ゲストＯＳ１２０を有し、ゲストＯＳ１２０上にプリントコントローラモジュール１２５、障害情報収集モジュール１３５、ＳＳ制御モジュール１４０を有している。仮想化ＳＷ１１５は、ＳＳ管理モジュール１１７を含み、プリントコントローラモジュール１２５は、出力制御モジュール１３０を含んでおり、Ｃ−Ｌｏｇ１２７Ａを記憶している。印刷装置１８０は、Ｉ−Ｌｏｇ７８２Ａを記憶している。記憶領域１９０は、スナップショット１９２を記憶している。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する（以下、同様）。
【００４５】
図７の例に示すように、仮想計算機である情報処理装置７００に、印刷装置１８０のログ情報（Ｉ−Ｌｏｇ７８２Ａ）の保持指示（ｓａｖｅ＿ｌｏｇ）と、ＳＳ管理モジュール１１７用いて、プリントコントローラモジュール１２５の動作するゲストＯＳ１２０のスナップショットを作成させること（スナップショットを再現することを含めてもよい）を指示するＳＳ制御モジュール１４０を導入する。そして、障害情報収集モジュール１３５は、プリントコントローラモジュール１２５内部及びゲストＯＳ１２０のログ情報（Ｃ−Ｌｏｇ１２７Ａ）の収集と印刷装置１８０に保存されているログ情報（Ｉ−Ｌｏｇ７８２Ａ）の取得を行う。
【００４６】
つまり、ＳＳ制御モジュール１４０は、応用プログラムであるプリントコントローラモジュール１２５がインストールされているゲストＯＳ１２０を搭載する仮想計算機である情報処理装置７００の外部に設けられた印刷装置１８０に係るＩ−Ｌｏｇ７８２Ａ（印刷装置１８０のログ情報）を保持させるための制御を行う。
印刷装置１８０は、ＳＳ制御モジュール１４０の指示により取得した外部イベントを保存する。つまり、印刷装置１８０内には、Ｉ−Ｌｏｇ７８２Ａを記憶している。もちろんのことながら、Ｉ−Ｌｏｇ７８２Ａを記憶する手段は、印刷装置１８０の内部に有している。また、Ｉ−Ｌｏｇ７８２Ａを記憶した後は、印刷装置１８０の再開処理によって、そのＩ−Ｌｏｇ７８２Ａに新たなログ情報が上書きされることはなく、障害発生時の状態を示すＩ−Ｌｏｇ７８２Ａが記憶されることになる。
ＳＳ管理モジュール１１７は、印刷装置１８０に外部イベントであるＩ−Ｌｏｇ７８２Ａが保存されてから、プリントコントローラモジュール１２５を含むゲストＯＳ１２０のスナップショットを作成する。したがって、そのスナップショット作成時には印刷装置１８０にはＩ−Ｌｏｇ７８２Ａが記憶されていることになる。
【００４７】
具体的には、障害が発生すると、ＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に対して、印刷装置１８０のＩ−Ｌｏｇ７８２Ａを保存する指示（Ｓａｖｅ−ＩＬｏｇ）を行う（Ｓｔｅｐ７２）。出力制御モジュール１３０は、プリントコントローラモジュール１２５の制御にしたがって、印刷装置１８０に対して、Ｉ−Ｌｏｇ７８２Ａを保存する指示（ｓａｖｅ−ｌｏｇ）を行う（Ｓｔｅｐ７４）。印刷装置１８０は、Ｉ−Ｌｏｇ７８２Ａを保存し、保存終了を出力制御モジュール１３０に返信する（Ｓｔｅｐ７６）。そして、プリントコントローラモジュール１２５（出力制御モジュール１３０）は、Ｓａｖｅ−ＩＬｏｇの処理が終了したことを示すＲｅｓ−ＩＬｏｇ処理を行う（Ｓｔｅｐ７８）。ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７にスナップショット処理を行うように指示する（Ｓｔｅｐ８０）。その結果、記憶領域１９０内にスナップショット１９２が記憶される。スナップショット１９２内には、プリントコントローラモジュール１２５内のＣ−Ｌｏｇ１２７Ａが含まれている。
【００４８】
そして、障害のリカバリ処理が行われ、運用が再開される。運用が終了した後、障害の収集・解析を行う場合、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット１９２を用いて、障害時の状態を復元する。その結果、プリントコントローラモジュール１２５内には、障害発生時のＣ−Ｌｏｇ１２７Ａが復元されることになる。障害情報収集モジュール１３５は、プリントコントローラモジュール１２５に対して、障害時の状態を取得する指示（Ｇｅｔ−Ｌｏｇ）を行う（Ｓｔｅｐ９２）。出力制御モジュール１３０は、プリントコントローラモジュール１２５の制御にしたがって、印刷装置１８０からＩ−Ｌｏｇ７８２Ａを取得する指示（ｇｅｔ＿ｌｏｇ）を行う（Ｓｔｅｐ９４）。印刷装置１８０は、Ｉ−Ｌｏｇ７８２Ａを出力制御モジュール１３０に返す処理を行う（Ｓｔｅｐ９６）。プリントコントローラモジュール１２５は、Ｃ−Ｌｏｇ１２７Ａと出力制御モジュール１３０が取得したＩ−Ｌｏｇ７８２Ａを、障害情報収集モジュール１３５に返す（Ｓｔｅｐ９８）。担当者は、障害情報収集モジュール１３５が取得したＣ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ７８２Ａを解析して、障害の原因、対策等を検討することになる。
【００４９】
図８は、第２の実施の形態による処理例を示す説明図である。
情報処理装置７００は、印刷装置１８０に印刷処理を行わせる運用をしており、その運用中に障害発生２１０したとする。
障害発生２１０を検知すると、ゲストＯＳ１２０上のＳＳ制御モジュール１４０に対して、スナップショット採取指示２２２が行われる。ＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に対して、Ｓａｖｅ＿ＩＬｏｇ８２４の指示を行う。出力制御モジュール１３０は、プリントコントローラモジュール１２５の制御にしたがって、印刷装置１８０に対して、ｓａｖｅ＿ｌｏｇ８２６の指示を行って、印刷装置１８０はＩ−Ｌｏｇ１８２Ａを複写してＩ−Ｌｏｇ１８２Ｂ（図７の例におけるＩ−Ｌｏｇ７８２Ａに該当）を生成して、記憶する。プリントコントローラモジュール１２５（出力制御モジュール１３０）は、印刷装置１８０からの終了通知を受け取ったならば、ＳＳ制御モジュール１４０に処理終了を示すＲｅｓ＿ＩＬｏｇ８２８を返す。そして、Ｒｅｓ＿ＩＬｏｇ８２８を受けたＳＳ制御モジュール１４０は、仮想化ＳＷ１１５内のＳＳ管理モジュール１１７に対して、スナップショット処理を依頼する。ＳＳ管理モジュール１１７は、ゲストＯＳ１２０、プリントコントローラモジュール１２５の状態Ａ：８４０Ａをスナップショット８９２として、記憶領域１９０に記憶させる。その後、障害の復旧であるリカバリ処理２５０が行われ、運用再開２６０となる。
【００５０】
そして、所定の印刷処理が終了した後（又は、印刷業務の空いた時間）、ＳＳ管理モジュール１１７は、ユーザの操作に応じて、スナップショット再現指示２７０を受け、記憶領域１９０内のスナップショット８９２を用いて障害発生時の状態Ａ：８４０Ｂ（状態Ａ：８４０Ａ）を再現させる。そして、障害情報収集指示２７２にしたがい、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔ＿Ｌｏｇ２７４の指示を行う。プリントコントローラモジュール１２５は、印刷装置１８０に対して、ｇｅｔ＿ｌｏｇ８７４Ｂを行い、Ｉ−Ｌｏｇ１８２Ｃ（Ｉ−Ｌｏｇ１８２Ｂ）を取得する。そして、プリントコントローラモジュール１２５内部とゲストＯＳ１２０のログ情報であるＣ−Ｌｏｇ１２７Ａと、Ｉ−Ｌｏｇ１８２Ｃを障害情報収集モジュール１３５に渡す（Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ８７６）。そして、記憶領域１９０内に、Ｃ−Ｌｏｇ１２７Ｂ（Ｃ−Ｌｏｇ１２７Ａ）、Ｉ−Ｌｏｇ１８２Ｄ（Ｉ−Ｌｏｇ１８２Ｃ、Ｉ−Ｌｏｇ１８２Ｂ、Ｉ−Ｌｏｇ１８２Ａ）を記憶させる。Ｃ−Ｌｏｇ１２７Ｂ、Ｉ−Ｌｏｇ１８２Ｄを解析することによって、障害の原因、対策等を検討することになる。なお、障害が発生した後に、そのログの収集・解析を行わずに、リカバリ処理２５０、運用再開２６０を行うのは、印刷装置１８０での印刷処理を続けるためである。特に、印刷装置１８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００５１】
図９、図１０は、第２の実施の形態による処理例（スナップショット８９２の生成処理例とＩ−Ｌｏｇ７８２Ａの保存処理例）を示すフローチャートである。
ステップＳ９０２では、障害発生を検知したか否かを判断し、検知した場合はステップＳ９０４へ進み、それ以外の場合は検知するまで待機する。
ステップＳ９０４では、ユーザの操作に応じて、スナップショット採取指示２２２を行う。なお、前述したように、プリントコントローラモジュール１２５内のステータスを監視する事により、自動的に採取指示を出すことも可能である。
ステップＳ９０６では、ＳＳ制御モジュール１４０は、スナップショット採取指示２２２を受信する。
ステップＳ９０８では、ＳＳ制御モジュール１４０は、Ｉ−Ｌｏｇ保存指示（Ｓａｖｅ＿ＩＬｏｇ８２４）を行う。
ステップＳ９１０では、出力制御モジュール１３０は、Ｉ−Ｌｏｇ保存指示（Ｓａｖｅ＿ＩＬｏｇ８２４）を受信する。
【００５２】
ステップＳ９１２では、出力制御モジュール１３０は、Ｉ−Ｌｏｇ保存指示（ｓａｖｅ＿ｌｏｇ８２６）を行う。
ステップＳ９１４では、印刷装置１８０は、Ｉ−Ｌｏｇ保存指示（ｓａｖｅ＿ｌｏｇ８２６）を受信する。
ステップＳ９１６では、印刷装置１８０は、Ｉ−Ｌｏｇ１８２Ａを保存する（Ｉ−Ｌｏｇ７８２Ｂ）。
ステップＳ９１８では、印刷装置１８０は、Ｉ−Ｌｏｇの保存が終了したことを返信する。
ステップＳ９２０では、出力制御モジュール１３０は、Ｉ−Ｌｏｇの出力制御モジュール１３０での保存が終了したことを返信（Ｒｅｓ＿ＩＬｏｇ８２８）する。
【００５３】
ステップＳ９２２では、ＳＳ制御モジュール１４０は、Ｒｅｓ＿ＩＬｏｇ８２８を受信する。
ステップＳ９２４では、ＳＳ制御モジュール１４０は、スナップショット作成指示を行う。
ステップＳ９２６では、ＳＳ管理モジュール１１７は、スナップショット作成指示を受信する。
ステップＳ９２８では、ＳＳ管理モジュール１１７は、現在の状態Ａ：８４０Ａを記憶領域１９０にスナップショット８９２として記憶させる。
【００５４】
図１１は、第２の実施の形態による処理例（スナップショット８９２の再現処理例）を示すフローチャートである。
ステップＳ１１０２では、ユーザの操作に応じて、スナップショット再現指示２７０を行う。
ステップＳ１１０４では、ＳＳ管理モジュール１１７は、スナップショット再現指示２７０を受信する。
ステップＳ１１０６では、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット８９２を用いて、状態Ａ：８４０Ｂを再現する。
【００５５】
図１２は、第２の実施の形態による処理例（障害情報であるＣ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ７８２Ｄの収集処理例）を示すフローチャートである。
ステップＳ１２０２では、ユーザの操作に応じて、障害情報収集指示２７２を行う。
ステップＳ１２０４では、障害情報収集モジュール１３５は、障害情報収集指示２７２を受信する。
ステップＳ１２０６では、障害情報収集モジュール１３５は、ログ取得指示（Ｇｅｔ＿Ｌｏｇ２７４）を行う。
ステップＳ１２０８では、プリントコントローラモジュール１２５は、ログ取得指示（Ｇｅｔ＿Ｌｏｇ２７４）を受信する。
ステップＳ１２１０では、プリントコントローラモジュール１２５は、ログ取得指示（ｇｅｔ＿ｌｏｇ８７４Ｂ）を送信する。
ステップＳ１２１１では、印刷装置１８０は、ログ取得指示（ｇｅｔ＿ｌｏｇ８７４Ｂ）を受信する。
【００５６】
ステップＳ１２１２では、プリントコントローラモジュール１２５は、Ｃ−Ｌｏｇ１２７Ａを送信する 。
ステップＳ１２１４では、印刷装置１８０は、Ｉ−Ｌｏｇ７８２Ｃを送信する。
ステップＳ１２１６では、障害情報収集モジュール１３５は、Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ８７６（Ｃ−Ｌｏｇ１２７ＡとＩ−Ｌｏｇ７８２Ｃ）を受信する。
ステップＳ１２１８では、障害情報収集モジュール１３５は、Ｃ−Ｌｏｇ１２７ＢとＩ−Ｌｏｇ７８２Ｄ（Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ８７６）を記憶領域１９０に記憶させる。
【００５７】
＜＜第３の実施の形態＞＞
図１３は、第３の実施の形態の構成例についての概念的なモジュール構成図である。情報処理装置１３００Ｘは、情報処理装置１３００Ｙ（クライアントＳＷ１３２５）からの印刷依頼によって、印刷装置１８０Ｘで印刷処理を行う。障害が発生した場合、情報処理装置１３００Ｘのログ情報だけでなく、情報処理装置１３００Ｙにおけるログ情報も取得するようにしている。
仮想計算機システムである情報処理装置１３００Ｘは、下層から順に、物理マシン１０５Ｘ、ホストＯＳ１１０Ｘ、仮想化ＳＷ１１５Ｘ、ゲストＯＳ１２０Ｘを有し、ゲストＯＳ１２０Ｘ上にプリントコントローラモジュール１２５Ｘ、障害情報収集モジュール１３５Ｘ、ＳＳ制御モジュール１４０Ｘを有している。仮想化ＳＷ１１５Ｘは、ＳＳ管理モジュール１１７Ｘを含み、プリントコントローラモジュール１２５Ｘは、出力制御モジュール１３０Ｘを含み、Ｃ−Ｌｏｇ１２７ＡＸを記憶している。印刷装置１８０Ｘは、Ｉ−Ｌｏｇ１８２ＡＸを記憶している。記憶領域１９０Ｘは、スナップショット１９２Ｘを記憶している。
仮想計算機システムである情報処理装置１３００Ｙは、下層から順に、物理マシン２１０５Ｙ、ホストＯＳ２１１０Ｙ、仮想化ＳＷ２１１５Ｙ、ゲストＯＳ２１２０Ｙを有し、ゲストＯＳ２１２０Ｙ上にクライアントＳＷ１３２５、障害情報収集Ｃモジュール１３５Ｙ、ＳＳ制御Ｃモジュール１４０Ｙを有している。仮想化ＳＷ２１１５Ｙは、ＳＳ管理２モジュール１１７Ｙを含み、クライアントＳＷ１３２５は、Ｃｌ−Ｌｏｇ１３２７Ａを記憶している。記憶領域２１９０Ｙは、スナップショット２：１９２Ｙを記憶している。
情報処理装置１３００Ｘと情報処理装置１３００Ｙは、通信回線を介して、接続されている。
情報処理装置１３００ＸのＳＳ制御モジュール１４０Ｘは、情報処理装置１３００Ｘとは異なる情報処理装置１３００Ｙ（情報処理装置１３００Ｘに対して印刷依頼を行った仮想計算機）のスナップショットを、情報処理装置１３００Ｙに保持させる。
【００５８】
プリントコントローラである情報処理装置１３００Ｘと通信回線を介して接続された外部機器である情報処理装置１３００Ｙ（クライアント装置）が、情報処理装置１３００Ｘと同様に仮想化環境で動作している場合、情報処理装置１３００Ｘ側（印刷装置１８０Ｘを含む）で障害が発生すると、スナップショット採取指示にしたがい、情報処理装置１３００ＸのＳＳ制御モジュール１４０Ｘは、情報処理装置１３００ＹのＳＳ制御Ｃモジュール１４０Ｙに対して、スナップショットを採取する様に指示（Ｇｅｔ＿ＣＳＳ）を送る（Ｓｔｅｐ１３２、Ｓｔｅｐ１３４）。
スナップショットの採取指示を受けたＳＳ制御Ｃモジュール１４０Ｙは、クライアントＳＷ１３２５が動作しているゲストＯＳ２１２０Ｙのスナップショットを作成するように、ＳＳ管理２モジュール１１７Ｙに指示すること（Ｓｔｅｐ１３６）で、クライアントＳＷ１３２５のスナップショットがクライアントＳＷ１３２５の動作する記憶領域２１９０Ｙ内にスナップショット２：１９２Ｙとして作成される。このとき、情報処理装置１３００ＸのＳＳ制御モジュール１４０Ｘは、前述の実施の形態によるログ情報の処理とゲストＯＳ１２０Ｘのスナップショットの作成を行う（Ｓｔｅｐ１４０）。
【００５９】
そして、発生した障害を復旧し、所定の印刷処理が終了した後（又は、印刷業務の空いた時間）、前述の実施の形態による処理例のように、情報処理装置１３００Ｘでは、スナップショット１９２Ｘの再現後、プリントコントローラモジュール１２５内部とゲストＯＳ１２０Ｘのログ情報（Ｃ−Ｌｏｇ１２７ＡＸ）、印刷装置１８０のログ情報（Ｉ−Ｌｏｇ１８２ＡＸ）の取得を行う。
それとは別に、情報処理装置１３００Ｙ（クライアントＳＷ１３２５）においても、情報処理装置１３００ＸのＳＳ管理モジュール１１７Ｘからのスナップショットの再現指示により、情報処理装置１３００ＹのＳＳ管理２モジュール１１７Ｙは、先に作成された記憶領域２１９０Ｙ内のスナップショット２：１９２Ｙを用いて障害発生時の状態を再現させる。そして、障害情報収集Ｃモジュール１３５Ｙは、情報処理装置１３００Ｙ（クライアントＳＷ１３２５）のログ情報（Ｃｌ−Ｌｏｇ１３２７Ａ）を要求し（Ｓｔｅｐ１５２）、取得する（Ｓｔｅｐ１５４）。そして、障害情報収集Ｃモジュール１３５Ｙは、取得したＣｌ−Ｌｏｇ１３２７Ａを、情報処理装置１３００Ｘの障害情報収集モジュール１３５Ｘに送信する。情報処理装置１３００Ｘの障害情報収集モジュール１３５Ｘは、Ｃ−Ｌｏｇ１２７ＡＸ、Ｉ−Ｌｏｇ１８２ＡＸとともに、情報処理装置１３００ＹのＣｌ−Ｌｏｇ１３２７Ａを取得することになる。Ｃ−Ｌｏｇ１２７ＡＸ、Ｉ−Ｌｏｇ１８２ＡＸ、印刷依頼を行った情報処理装置１３００ＹのＣｌ−Ｌｏｇ１３２７Ａを解析することによって、障害の原因、対策等を検討することになる。
【００６０】
＜＜第４の実施の形態＞＞
第４以降の実施の形態は、外部機器として記憶領域１９０を対象とし、印刷装置１８０による処理データであるプリントデータを障害情報として取得するものである。
第４の実施の形態を説明する前に、その前提となる技術について、図２５〜図２８の例を用いて説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
【００６１】
図２５は、従来技術の例を示す説明図である。情報処理装置２５００は、外部装置である印刷装置２５８０、記憶領域２５９０を制御して、印刷処理を行わせる。情報処理装置２５００は、仮想計算機システムではない、一般的な計算機（１つの物理マシン２５０５に１つのＯＳ２５１０で構成したコンピュータ）である。例えば、情報処理装置２５００は、プリンタサーバー又はプリンタコントローラとしての機能を有し、印刷装置２５８０は、高速プリンタである。
情報処理装置２５００は、下層から順に、物理マシン２５０５、ＯＳ２５１０を有し、ＯＳ２５１０上にプリントコントローラモジュール２５２５、障害情報収集モジュール２５３５を有している。プリントコントローラモジュール２５２５は、出力制御モジュール２５３０、ジョブ制御モジュール２５３２を含んでおり、Ｃ−Ｌｏｇ２５２７Ａを記憶している。印刷装置２５８０は、Ｉ−Ｌｏｇ２５８２Ａを記憶している。記憶領域２５９０は、プリントデータ２５９４を記憶している。
【００６２】
情報処理装置２５００又は印刷装置２５８０で障害が発生すると、障害情報収集モジュール２５３５からの指示（Ｇｅｔ＿Ｌｏｇ）で、プリントコントローラモジュール２５２５は内部及びＯＳ２５１０のログ情報（Ｃ−Ｌｏｇ２５２７Ａ）の収集を行う。また、発生した障害の原因がプリントコントローラモジュール２５２５の管理外にある印刷装置２５８０にある可能性もある。したがって、プリントコントローラモジュール２５２５は内部の出力制御モジュール２５３０を通して（出力制御モジュール２５３０からの印刷装置２５８０へのｇｅｔ＿ｌｏｇの指示によって）、印刷装置２５８０のログ情報（Ｉ−Ｌｏｇ２５８２Ａ）の収集も併せて行い、プリントコントローラモジュール２５２５は障害情報収集モジュール２５３５にＣ−Ｌｏｇ２５２７ＡとＩ−Ｌｏｇ２５８２Ａを返す。そして、障害情報収集モジュール２５３５は、記憶領域２５９０に、Ｃ−Ｌｏｇ２５２７ＡとＩ−Ｌｏｇ２５８２Ａを記憶させる。なお、障害情報として、ジョブ制御モジュール２５３２の処理対象であるプリントデータ２５９４を含めるべきであるが、ジョブ制御モジュール２５３２を障害情報として含めることは行われていない。
【００６３】
図２６は、従来技術による処理例を示す説明図である。
情報処理装置２５００は、印刷装置２５８０に印刷処理を行わせる運用をしており、その運用中に障害発生２６１０したとする。なお、そのときに、ジョブ制御モジュール２５３２が対象としているデータは、ＰｒｉｎｔＤａｔａＡ２５９４Ａであるとする。
障害発生２６１０を検知すると、ＯＳ２５１０上の障害情報収集モジュール２５３５に対して障害情報収集指示２６７４が行われる。障害情報収集モジュール２５３５は、プリントコントローラモジュール２５２５に対して、障害情報収集指示２６７４の指示を行い、プリントコントローラモジュール２５２５内部とＯＳ２５１０のそのときの状態（Ｉ−Ｌｏｇ）、出力制御モジュール２５３０が取得した印刷装置２５８０のそのときの状態（Ｃ−Ｌｏｇ）、を取得する（Ｉ−Ｌｏｇ，Ｃ−Ｌｏｇ２６７８）。そして、障害情報収集モジュール２５３５は、それらを記憶領域２５９０にＣ−Ｌｏｇ２５２７Ｂ、Ｉ−Ｌｏｇ２５８２Ｃとして記憶させる。その後、障害のリカバリ処理２６５０が行われ、運用再開２６６０となる。この場合、ジョブ制御モジュール２５３２が対象とするデータは、ＰｒｉｎｔＤａｔａＡ２５９４Ｂ（障害発生２６１０時のＰｒｉｎｔＤａｔａＡ２５９４Ａ）である。そして、その運用が終了した場合（ＰｒｉｎｔＤａｔａＡ２５９４Ｂの印刷終了した場合）、ジョブＡ削除２６４０されることとなる。そして、次のＰｒｉｎｔＤａｔａＢ２６９８がジョブ制御モジュール２５３２の処理対象となる。
なお、この後、印刷装置２５８０の運用が終了した後に、Ｃ−Ｌｏｇ２５２７Ｂ、Ｉ−Ｌｏｇ２５８２Ｃを解析することによって、障害の原因、対策等を検討することになる。しかし、その時点では、ＰｒｉｎｔＤａｔａＡ２５９４Ａ（ＰｒｉｎｔＤａｔａＡ２５９４Ｂ）は削除されており、障害情報として収集できない（その検討時点では、ＰｒｉｎｔＤａｔａＡ２５９４Ａとは異なるＰｒｉｎｔＤａｔａＢ２６９８）。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理２６５０、運用再開２６６０を行うのは、印刷装置２５８０での印刷処理を続けるためである。特に、印刷装置２５８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００６４】
次に、仮想計算機システムによる例を示す。図２７は、従来技術の例を示す説明図である。情報処理装置２７００は、仮想計算機システムであって、外部装置である印刷装置２７８０、記憶領域２７９０を制御して、印刷処理を行わせる。例えば、情報処理装置２７００は、プリンタサーバーとしての機能を有し、印刷装置２７８０は、高速プリンタである。
図２７の例に示すように、物理マシン２７０５上にホストＯＳ２７１０と仮想化ＳＷ２７１５による仮想ハードウェアを構築し、その上にゲストＯＳ２７２０をインストールし、さらにゲストＯＳ２７２０上に応用プログラム（アプリケーション）であるプリントコントローラモジュール２７２５をインストールする。
仮想化ＳＷ２７１５は、物理マシン２７０５上に、複数のゲストＯＳ２７２０の並列的な同居を可能にするソフトウェアである。つまり、仮想化ＳＷ２７１５は、ＣＰＵ、メモリ、ＨＤＤ等のハードウェアをソフトウェア的に構築し、ゲストＯＳ２７２０が依って立つハードウェアリソースを仮想マシンとして用意するものである。
プリントコントローラモジュール２７２５として、例えば、プリンタ制御プログラム（具体例として、デジタルフロントエンド等）がある。この場合、仮想マシンはそれぞれが隔離されており、いずれかに障害（例えば、クラッシュ等）が発生しても、他の仮想マシン上でのプリンタ制御プログラムはそのまま稼働しており、印刷することができる。
【００６５】
具体的には、情報処理装置２７００は、下層から順に、物理マシン２７０５、ホストＯＳ２７１０、仮想化ＳＷ２７１５、ゲストＯＳ２７２０を有し、ゲストＯＳ２７２０上に応用プログラムであるプリントコントローラモジュール２７２５、障害情報収集モジュール２７３５を有している。仮想化ＳＷ２７１５は、ＳＳ管理モジュール２７１７を含み、プリントコントローラモジュール２７２５は、出力制御モジュール２７３０、ジョブ制御モジュール２７３２を含んでおり、Ｃ−Ｌｏｇ２７２７Ａを記憶している。印刷装置２７８０は、Ｉ−Ｌｏｇ２７８２Ａを記憶している。記憶領域２７９０は、スナップショット２７９２、プリントデータ２７９４を有している共有記憶領域２７９６を記憶している。なお、図２７の例では、仮想化ＳＷ２７１５の上に１つのゲストＯＳ２７２０の例を示しているが、仮想計算機システムであるので、仮想化ＳＷ２７１５の上に複数のゲストＯＳ２７２０が構成されていてもよい。
【００６６】
情報処理装置２７００では、応用プログラムであるプリントコントローラモジュール２７２５を仮想化環境で動作させ、その仮想化環境のスナップショット機能（ＳＳ管理モジュール２７１７の機能）を用いて、障害発生時の障害状態をスナップショット２７９２として記憶領域２７９０内に保持させ、発生した障害を復旧し、所定の印刷処理が終了後（印刷業務の空いた時間）に、保存されたスナップショット２７９２を用いて障害発生時の状態を再現させた上で障害情報を採取する。ここで、プリントコントローラモジュール２７２５が動作するゲストＯＳ２７２０のスナップショットの作成と再現をＳＳ管理モジュール２７１７が行う。
【００６７】
図２８の例を用いて説明する。情報処理装置２７００は、印刷装置２７８０に印刷処理を行わせる運用をしており、その運用中に障害発生２８１０したとする。
障害発生２８１０を検知すると、ユーザの操作に応じて、ＳＳ管理モジュール２７１７に対してスナップショット採取指示２８２２が行われる。ＳＳ管理モジュール２７１７は、そのときのゲストＯＳ２７２０とプリントコントローラモジュール２７２５における状態Ａ：２８４０Ａをスナップショット２７９２として、記憶領域２７９０に記憶させる。なお、その時点でジョブ制御モジュール２７３２では、共有記憶領域２７９６内のＰｒｉｎｔＤａｔａＡ２７９４Ａを対象として印刷処理が行われている。しかし、ＳＳ管理モジュール２７１７のスナップショットは、情報処理装置２７００内部の状態を取得するものであるので、外部装置である共有記憶領域２７９６のＰｒｉｎｔＤａｔａＡ２７９４Ａは、スナップショットの対象ではない。
その後、障害のリカバリ処理２８５０が行われ、運用再開２８６０となる。この場合、ジョブ制御モジュール２７３２が対象とするデータは、ＰｒｉｎｔＤａｔａＡ２７９４Ｂ（障害発生２８１０時のＰｒｉｎｔＤａｔａＡ２７９４Ａ）である。そして、その運用が終了した場合（ＰｒｉｎｔＤａｔａＡ２７９４Ｂの印刷終了した場合）、ジョブＡ削除２８４０されることとなる。そして、次のＰｒｉｎｔＤａｔａＢ２８９８がジョブ制御モジュール２７３２の処理対象となる。
【００６８】
そして、印刷装置２７８０の運用が終了した後に、ユーザの操作に応じて、ＳＳ管理モジュール２７１７に対してスナップショット再現指示２８７０を行うと、ＳＳ管理モジュール２７１７は、記憶領域２７９０内のスナップショット２７９２を読み出して、ゲストＯＳ２７２０、プリントコントローラモジュール２７２５の状態を状態Ａ：２８４０Ｂ（状態Ａ：２８４０Ａと同じ状態）に戻す。そして、ユーザの操作に応じて、障害情報収集モジュール２７３５に対して障害情報収集指示２８７４を行うと、図２６の例で示したものと同等の処理を行う。つまり、障害情報収集モジュール２７３５は、プリントコントローラモジュール２７２５に対して、Ｇｅｔ＿Ｌｏｇ２８７６の指示を行い、プリントコントローラモジュール２７２５内部とゲストＯＳ２７２０のそのときの状態をＣ−Ｌｏｇ２８８４、Ｉ−Ｌｏｇ２８８２として取得する。障害情報収集モジュール２７３５は、それらを記憶領域２７９０にＣ−Ｌｏｇ２７２７Ｂ、Ｉ−Ｌｏｇ２７８２Ｂとして記憶させる。
【００６９】
障害情報収集モジュール２７３５を用いて情報処理装置２７００の管理の外部にある共有記憶領域２７９６（記憶領域２７９０）内のプリントデータの収集を行うと、図２８の例に示すように、障害発生２８１０のときと障害情報収集指示２８７４の間に印刷処理（運用再開２８６０）を行っているので、障害情報収集指示２８７４のときの共有記憶領域２７９６内のＰｒｉｎｔＤａｔａＢ２８９８は、障害後の印刷処理（運用再開２８６０後の印刷処理）における対象データが書き込まれており、障害が発生したときの印刷装置２７８０のログ情報であるＩ−Ｌｏｇ２７８２Ａとは異なった内容になっている。そのため印刷装置２７８０内の運用再開２８６０後の印刷処理によっては、障害発生時の対象データであるＰｒｉｎｔＤａｔａＡ２７９４Ａは既に削除されているという状況が発生する。つまり、障害発生２８１０したときのＰｒｉｎｔＤａｔａＡ２７９４Ａが、障害情報収集指示２８７４によって記憶領域２７９０に記憶されるわけではない。
【００７０】
図２７の例に示した情報処理装置２７００では、すべてのデータをスナップショットに含めるとデータサイズが大きくなり、ある運用で取り込んだリソースや新たに作成した保存ジョブ等は別の運用時に使用するために、情報処理装置２７００外の記憶領域２７９０（共有記憶領域２７９６）に配置している。そして、一時的に使用する印刷データ（ＰｒｉｎｔＤａｔａＡ２７９４Ａ等）も記憶領域２７９０（共有記憶領域２７９６）に配置することでスナップショットの容量を削減している。
しかし、スナップショットを用いて障害発生時の状態を再現させようとしたとき、記憶領域２７９０（共有記憶領域２７９６）に配置したデータが変化してしまって、再現できない障害のケースが存在する。例えば、印刷データを記憶領域２７９０（共有記憶領域２７９６）に記憶させていた場合、前述のように、発生した障害をリカバリして、印刷処理を終了させた後に、障害発生時の状態を再現させるためのスナップショットを用いると、障害発生時の印刷データは含まれておらず、障害発生時の状態の再現が困難となる。
障害発生時の状態の再現のためには、印刷処理時に必要なデータで印刷処理後に削除される又は変化してしまうデータに関して保存しておく必要がある。
【００７１】
図１８は、第４の実施の形態の構成例についての概念的なモジュール構成図である。
情報処理装置１８００は、下層から順に、物理マシン１０５、ホストＯＳ１１０、仮想化ＳＷ１１５、ゲストＯＳ１２０を有し、ゲストＯＳ１２０上にプリントコントローラモジュール１２５、障害情報収集モジュール１３５、ＳＳ制御モジュール１４０を有している。仮想化ＳＷ１１５は、ＳＳ管理モジュール１１７を含み、プリントコントローラモジュール１２５は、出力制御モジュール１３０、ジョブ制御モジュール１８３２を含み、Ｃ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂを記憶している。印刷装置１８０は、Ｉ−Ｌｏｇ１８２Ａを記憶している。記憶領域１９０は、共有記憶領域１８９６、スナップショット１９２を記憶しており、共有記憶領域１８９６は、プリントデータ１８９４を記憶している。
【００７２】
情報処理装置１８００は、概要として、次に示すような処理を行う。
プリントコントローラモジュール１２５をゲストＯＳ１２０上で動作させ、その仮想計算機システムのスナップショット機能を用いて障害情報の収集を行う場合、前述したように、障害発生と障害情報の取得のタイミングが大きく異なる。このため、スナップショットの対象外である記憶領域１９０にあるプリントデータ１８９４やリソースデータ等は、障害情報の取得時には障害発生時のデータを保持していない場合があり得る。そこで、従来の障害情報収集の機能を、ＳＳ制御モジュール１４０と障害情報収集モジュール１３５に分けて、ＳＳ制御モジュール１４０により、障害発生時に処理を行っているジョブに関するデータ（例えば、プリントデータ１８９４）をスナップショット採取前に削除されないようにした。
これにより、障害発生の直後にスナップショットを作成すれば、時間の要する障害情報の収集を行うことなく、障害のリカバリ処理後に本来の印刷処理を直ちに再開できる。そして、印刷業務が終了した後など好きなタイミングで、スナップショットを再現することで、障害発生直後の障害情報（プリントコントローラモジュール１２５、印刷装置１８０だけでなく、ジョブ関連の情報であるプリントデータ１８９４）を取得できる。
つまり、印刷装置１８０のユーザは、障害発生に伴う障害情報の収集を行わなくてよくなる。その結果、印刷装置１８０の稼働率を上げることができることとなる。
【００７３】
Ｃ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂの収集処理については、第１の実施の形態である情報処理装置１００の処理と同等である。
情報処理装置１８００又は印刷装置１８０で障害が発生すると、スナップショット採取指示にしたがいＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に処理中のジョブ情報の収集を依頼し、それとともにプリントコントローラモジュール１２５に対してプリントデータの保持を指示する。プリントコントローラモジュール１２５はジョブ制御モジュール１８３２を通して現在処理中のプリントデータ１８９４のファイル名を入手し、そのプリントデータファイル名（例えば、ここではＰｒｉｎｔＤａｔａＡとする）にリンクを張るファイル（ここではＰｒｉｎｔＤａｔａＡ．ｌｎｋとする）を共有記憶領域１８９６に作成する。
作成終了後、プリントコントローラモジュール１２５はＳＳ制御モジュール１４０に、データ保持が終了した旨を返信する。ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７にゲストＯＳ１２０のスナップショットの作成を指示する。
次に、ユーザの処理を優先させるため発生した障害をリカバリし、所定の印刷処理が終了したとき、前述のプリントデータファイル名のＰｒｉｎｔＤａｔａＡは削除されることになる。しかし、リンクしているファイルがあるため実体は削除されていない。
障害情報収集のためＳＳ管理モジュール１１７へスナップショット再現指示をすると、スナップショット取得時の内部状態に戻されるとともに、プリントデータの名称（ＰｒｉｎｔＤａｔａＡ．ｌｎｋ）を元に戻す処理（プリントデータ名称の復元）を実行することで、削除されたプリントデータを復元する。
障害情報収集の指示がされると障害情報収集モジュール１３５は、ジョブ制御モジュール１８３２から処理中のプリントデータ名を得て共有記憶領域１８９６からプリントデータ１８９４を収集し、それとともにプリントコントローラモジュール１２５内のＣ−Ｌｏｇ１２７Ａと印刷装置１８０のログ情報であるＩ−Ｌｏｇ１８２Ｂを収集し、障害情報として取りだす。
これにより障害発生時のプリントデータ１８９４まで含めて状態が復元され、プリントデータ１８９４に起因する障害の情報収集が可能になる。
前述のリンクファイルの作成は、リンク情報を含んでいるだけであり、実体のコピーは行われないため処理時間及びディスクスペースともにほとんど必要ない。
【００７４】
図１９は、第４の実施の形態による処理例を示す説明図である。
情報処理装置１８００は、印刷装置１８０に印刷処理を行わせる運用をしており、その運用中に障害発生１９１０したとする。
障害発生１９１０を検知すると、ユーザの操作に応じて、ゲストＯＳ１２０上のＳＳ制御モジュール１４０に対して、スナップショット採取指示１９２２を行う。なお、プリントコントローラモジュール１２５内のステータスを監視する事により、自動的に採取指示を出すことも可能である。ＳＳ制御モジュール１４０は、ジョブ制御モジュール１８３２に対して、Ｇｅｔ  ＰｒｉｎｔＤａｔａ  Ｆｉｌｅ  ｎａｍｅ１９２４の指示を行う。ジョブ制御モジュール１８３２は、プリントコントローラモジュール１２５の制御にしたがって、共有記憶領域１８９６内のＰｒｉｎｔＤａｔａＡ１８９４Ａのファイル名（ＰｒｉｎｔＤａｔａＡ）を取得する。
ジョブ制御モジュール１８３２は、ＳＳ制御モジュール１４０にファイル名である”ＰｒｉｎｔＤａｔａＡ”１９３０を返す。ＳＳ制御モジュール１４０は、”ＰｒｉｎｔＤａｔａＡ”１９３０にリンクを張るファイル（ここではＰｒｉｎｔＤａｔａＡ１８９４Ａにｌｉｎｋ  ｔｏ  ＰｒｉｎｔＤａｔａＡ１９２６を張るＰｒｉｎｔＤａｔａＡ．ｌｎｋ１９２８Ａ）を共有記憶領域１８９６に作成する。
そして、ＳＳ制御モジュール１４０は、処理が終了したことを示すＤｏｎｅ１９３２をＳＳ管理モジュール１１７に返す。ＳＳ管理モジュール１１７は、ゲストＯＳ１２０とプリントコントローラモジュール１２５の状態Ａ：１９４０Ａをスナップショット１９２として、記憶領域１９０に記憶させる。その後、障害の復旧であるリカバリ処理１９５０が行われ、運用再開１９６０となる。この運用では、ＰｒｉｎｔＤａｔａＡ１８９４Ｂの印刷処理が終了する。ジョブ制御モジュール１８３２は、ＰｒｉｎｔＤａｔａＡ１８９４Ｂ（ＰｒｉｎｔＤａｔａＡ１８９４Ａ）に対して、ジョブＡ削除１９４０する。したがって、ＰｒｉｎｔＤａｔａＡ１８９４Ｂは削除されるが、ＰｒｉｎｔＤａｔａＡ．ｌｎｋ１９２８Ａがあるので、ＰｒｉｎｔＤａｔａＡ１８９４Ｂの実体は削除されていないこととなる。なお、次の印刷処理で、ＰｒｉｎｔＤａｔａＢ１９９８（ＰｒｉｎｔＤａｔａＡ１８９４Ｂとは異なる）が対象データになっているとする。
【００７５】
そして、発生した障害を復旧し、所定の印刷処理が終了した後（印刷業務の空いた時間）、ＳＳ管理モジュール１１７は、ユーザの操作に応じて、スナップショット再現指示１９７０を受け、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット１９２を用いて障害発生時の状態Ａ：１９４０Ｂ（状態Ａ：１９４０Ａ）を再現させる。そして、ＳＳ管理モジュール１１７は、Ｓｅｔ  Ｄａｔａ１９７２（プリントデータ名称の復元）をＰｒｉｎｔＤａｔａＡ．ｌｎｋ１９２８Ｃに対して行う。これによって、ＰｒｉｎｔＤａｔａＡ１８９４Ｃ（ＰｒｉｎｔＤａｔａＡ１８９４Ｂ）を復元する。
障害情報収集指示１９７４にしたがい、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔＤａｔａ１９７６の指示によって、ジョブ制御モジュール１８３２から、共有記憶領域１８９６内の”ＰｒｉｎｔＤａｔａＡ”１９７８（ＰｒｉｎｔＤａｔａＡ１８９４Ｃ）を取得する。そして、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔ＿Ｌｏｇ１９８０の指示によって、出力制御モジュール１３０から、Ｉ−Ｌｏｇ１９８２、Ｃ−Ｌｏｇ１９８４を取得する。そして、記憶領域１９０内に、Ｃ−Ｌｏｇ１２７Ｂ（Ｃ−Ｌｏｇ１９８４）、Ｉ−Ｌｏｇ１８２Ｃ（Ｉ−Ｌｏｇ１９８２）、ＰｒｉｎｔＤａｔａＡ１８９４Ｄ（ＰｒｉｎｔＤａｔａＡ１８９４Ｃ）を記憶させる。Ｃ−Ｌｏｇ１２７Ｂ、Ｉ−Ｌｏｇ１８２Ｃ、ＰｒｉｎｔＤａｔａＡ１８９４Ｄを解析することによって、障害の原因、対策等を検討することになる。特に、障害発生時のプリントデータまで含めて状態が復元され、プリントデータに起因する障害の情報収集が可能になる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理１９５０、運用再開１９６０を行うのは、印刷装置１８０での印刷処理を続けるためである。特に、印刷装置１８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００７６】
図２０は、第４の実施の形態による処理例を示すフローチャートである。
ステップＳ２００２では、ＳＳ制御モジュール１４０は、スナップショット採取指示１９２２を受信する。
ステップＳ２００４では、ＳＳ制御モジュール１４０は、処理中の印刷データ名を入手したか否かを判断し、入手した場合はステップＳ２００６へ進み、それ以外の場合はステップＳ２００８へ進む。
ステップＳ２００６では、ＳＳ制御モジュール１４０は、入手印刷データ名に“ｌｎｋ”というサフィックスを付加したファイルとハードリンクを設定する。
ステップＳ２００８では、ＳＳ制御モジュール１４０は、印刷データ名にＮＵＬＬを設定する。
ステップＳ２０１０では、ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７へ印刷データ名を通知する。
【００７７】
図２１は、第４の実施の形態による処理例を示すフローチャートである。
ステップＳ２１０２では、ＳＳ管理モジュール１１７は、スナップショット再現指示１９７０を受信する。
ステップＳ２１０４では、ＳＳ管理モジュール１１７は、印刷データ名がＮＵＬＬであるか否かを判断し、印刷データ名がＮＵＬＬである場合は処理を終了（ステップＳ２１９９）し、それ以外の場合はステップＳ２１０６へ進む。
ステップＳ２１０６では、ＳＳ管理モジュール１１７は、「印刷データ名．ｌｎｋ」というファイルがあるか否かを判断し、ある場合はステップＳ２１０８へ進み、それ以外の場合は処理を終了する（ステップＳ２１９９）。
ステップＳ２１０８では、ＳＳ管理モジュール１１７は、印刷データ名へファイル名を変更（具体的には、「．ｌｎｋ」を削除）する。
【００７８】
＜＜第５の実施の形態＞＞
図２２は、第５の実施の形態による処理例を示す説明図である。なお、モジュール構成例は、第４の実施の形態の構成例（図１８に示す例）と同等である。
【００７９】
共有記憶領域１８９６内のデータ情報の収集と、ＳＳ管理モジュール１１７を用いてプリントコントローラモジュール１２５の動作するゲストＯＳ１２０のスナップショットの作成を指示するＳＳ制御モジュール１４０を導入し、記憶領域１９０に削除されたプリントデータ情報の復元を行う。
Ｃ−Ｌｏｇ１２７Ａ、Ｉ−Ｌｏｇ１８２Ｂの収集処理については、第１の実施の形態である情報処理装置１００の処理と同等である。
情報処理装置１８００又は印刷装置１８０で障害が発生すると、スナップショット採取指示にしたがいＳＳ制御モジュール１４０は、プリントコントローラモジュール１２５に処理中のジョブ情報の収集を依頼する。プリントコントローラモジュール１２５はジョブ制御モジュール１８３２を通して現在処理中のプリントデータ１８９４のファイル名を入手し、ＳＳ制御モジュール１４０に渡す。ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７に、現在処理中のプリントデータ１８９４のファイル名を渡し、プリントデータ１８９４を含めたスナップショット処理を行うように指示する。ＳＳ管理モジュール１１７は、現在処理中のプリントデータ１８９４を含めたスナップショットを作成する。
次に、ユーザの処理を優先させるため発生した障害をリカバリし、所定の印刷処理が終了する。印刷処理が終了することによって、共有記憶領域１８９６からプリントデータ１８９４は削除される。
障害情報収集のためＳＳ管理モジュール１１７へスナップショット再現指示をすると、スナップショット取得時の内部状態に戻されるとともに、プリントデータ１８９４を元に戻す処理を実行し、削除されたプリントデータ１８９４を共有記憶領域１８９６内に復元する。
障害情報収集の指示がされると障害情報収集モジュール１３５は、ジョブ制御モジュール１８３２から処理中のプリントデータ名を得て共有記憶領域１８９６からプリントデータ１８９４を収集し、それとともにプリントコントローラモジュール１２５内のＣ−Ｌｏｇ１２７Ａと印刷装置１８０のログ情報であるＩ−Ｌｏｇ１８２Ｂを収集し、障害情報として取りだす。
これにより障害発生時のプリントデータ１８９４まで含めて状態が復元され、プリントデータ１８９４に起因する障害の情報収集が可能になる。
【００８０】
図２２の例を用いて、詳細に説明する。
情報処理装置１８００は、印刷装置１８０に印刷処理を行わせる運用をしており、その運用中に障害発生２２１０したとする。
障害発生２２１０を検知すると、ゲストＯＳ１２０上のＳＳ制御モジュール１４０に対して、ユーザの操作に応じて、スナップショット採取指示２２２２を行う。なお、プリントコントローラモジュール１２５内のステータスを監視する事により、自動的に採取指示を出すことも可能である。ＳＳ制御モジュール１４０は、ジョブ制御モジュール１８３２に対して、Ｇｅｔ  ＰｒｉｎｔＤａｔａ  Ｆｉｌｅ  ｎａｍｅ２２２４の指示を行う。ジョブ制御モジュール１８３２は、プリントコントローラモジュール１２５の制御にしたがって、共有記憶領域１８９６内のＰｒｉｎｔＤａｔａＡ２２２８Ａのファイル名（ＰｒｉｎｔＤａｔａＡ）を取得する。
ジョブ制御モジュール１８３２は、ＳＳ制御モジュール１４０にファイル名である”ＰｒｉｎｔＤａｔａＡ”２２２６を返す。ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７に、”ＰｒｉｎｔＤａｔａＡ”２２２６をスナップショット対象ファイルとして通知する。ＳＳ管理モジュール１１７は、状態Ａ：２２４０ＡとしてゲストＯＳ１２０、プリントコントローラモジュール１２５のスナップショット１９２を、指定されたプリントデータ（”ＰｒｉｎｔＤａｔａＡ”２２２６の実体データ）も含んで生成し、記憶領域１９０に記憶させる。その後、障害の復旧であるリカバリ処理２２５０が行われ、運用再開２２６０となる。この運用では、ＰｒｉｎｔＤａｔａＡ２２２８Ｂの印刷処理が終了する。ジョブ制御モジュール１８３２は、ＰｒｉｎｔＤａｔａＡ２２２８Ｂ（ＰｒｉｎｔＤａｔａＡ２２２８Ａ）に対して、ジョブＡ削除２２４２する。したがって、ＰｒｉｎｔＤａｔａＡ２２２８Ｂは共有記憶領域１８９６から削除される。なお、次の印刷処理で、ＰｒｉｎｔＤａｔａＢ２２９８（ＰｒｉｎｔＤａｔａＡ２２２８Ｂとは異なる）が対象データになっているとする。
【００８１】
そして、発生した障害を復旧し、所定の印刷処理が終了した後（印刷業務の空いた時間）、ＳＳ管理モジュール１１７は、ユーザの操作に応じて、スナップショット再現指示２２７０を受け、ＳＳ管理モジュール１１７は、記憶領域１９０内のスナップショット１９２を用いて障害発生時の状態Ａ：２２４０Ｂ（状態Ａ：２２４０Ａ）を再現させる。そして、ＳＳ管理モジュール１１７は、スナップショット１９２内のＰｒｉｎｔＤａｔａＡ２２２８Ａ（ＰｒｉｎｔＤａｔａＡ２２２８Ｃ）を共有記憶領域１８９６に復元する。
障害情報収集指示２２７４にしたがい、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔＤａｔａ２２７６の指示によって、ジョブ制御モジュール１８３２から、共有記憶領域１８９６内の”ＰｒｉｎｔＤａｔａＡ”２２７８（ＰｒｉｎｔＤａｔａＡ２２２８Ｃ）を取得する。そして、障害情報収集モジュール１３５はプリントコントローラモジュール１２５へのＧｅｔ＿Ｌｏｇ２２８０の指示によって、出力制御モジュール１３０から、Ｉ−Ｌｏｇ２２８２、Ｃ−Ｌｏｇ２２８４を取得する。そして、記憶領域１９０内に、Ｃ−Ｌｏｇ１２７Ｂ、Ｉ−Ｌｏｇ１８２Ｃ、ＰｒｉｎｔＤａｔａＡ１８９４Ｄ（ＰｒｉｎｔＤａｔａＡ２２２８Ｃ）を記憶させる。Ｃ−Ｌｏｇ１２７Ｂ、Ｉ−Ｌｏｇ１８２Ｃ、ＰｒｉｎｔＤａｔａＡ１８９４Ｄを解析することによって、障害の原因、対策等を検討することになる。特に、障害発生時のプリントデータまで含めて状態が復元され、プリントデータに起因する障害の情報収集が可能になる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理２２５０、運用再開２２６０を行うのは、印刷装置１８０での印刷処理を続けるためである。特に、印刷装置１８０が高速プリンタである場合は、ダウン期間（印刷できない期間）を短くする要請がある。
【００８２】
図２３は、第５の実施の形態による処理例を示すフローチャートである。
ステップＳ２３０２では、ＳＳ制御モジュール１４０は、スナップショット採取指示２２２２を受信する。
ステップＳ２３０４では、ＳＳ制御モジュール１４０は、処理中の印刷データ名を入手したか否かを判断し、入手した場合はステップＳ２３０６へ進み、それ以外の場合はステップＳ２３０８へ進む。
ステップＳ２３０６では、ＳＳ制御モジュール１４０は、ＳＳ管理モジュール１１７へスナップショット対象ファイルとして印刷データ名を通知する。
ステップＳ２３０８では、ＳＳ制御モジュール１４０は、印刷データ名にＮＵＬＬを設定する。
【００８３】
図２４は、第５の実施の形態による処理例を示すフローチャートである。
ステップＳ２４０２では、ＳＳ管理モジュール１１７は、スナップショット再現指示２２７０を受信する。
ステップＳ２４０４では、ＳＳ管理モジュール１１７は、印刷データ名がＮＵＬＬであるか否かを判断し、印刷データ名がＮＵＬＬである場合は処理を終了し（ステップＳ２４９９）、それ以外の場合はステップＳ２４０６へ進む。
ステップＳ２４０６では、ＳＳ管理モジュール１１７は、印刷データを共有記憶領域１８９６へ格納する。
【００８４】
図２９を参照して、本実施の形態の計算機のハードウェア構成例について説明する。図２９に示す構成は、例えばパーソナルコンピュータ（ＰＣ）等によって構成されるものであり、スキャナ等のデータ読み取り部２９１７と、プリンタ等のデータ出力部２９１８を備えたハードウェア構成例を示している。
【００８５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２９０１は、前述の実施の形態において説明した各種のモジュール、すなわち、ホストＯＳ１１０、仮想化ＳＷ１１５、ゲストＯＳ１２０、プリントコントローラモジュール１２５、出力制御モジュール１３０、ＳＳ制御モジュール１４０、障害情報収集モジュール１３５等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００８６】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２９０２は、ＣＰＵ２９０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２９０３は、ＣＰＵ２９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバス等から構成されるホストバス２９０４により相互に接続されている。
【００８７】
ホストバス２９０４は、ブリッジ２９０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス２９０６に接続されている。
【００８８】
キーボード２９０８、マウス等のポインティングデバイス２９０９は、操作者により操作される入力デバイスである。ディスプレイ２９１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等があり、各種情報をテキストやイメージ情報として表示する。
【００８９】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２９１１は、ハードディスク（フラッシュメモリ等であってもよい）を内蔵し、ハードディスクを駆動し、ＣＰＵ２９０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、Ｃ−Ｌｏｇ１２７、Ｉ−Ｌｏｇ１８２、プリントデータ１８９４等が格納される。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
【００９０】
ドライブ２９１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体２９１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース２９０７、外部バス２９０６、ブリッジ２９０５、及びホストバス２９０４を介して接続されているＲＡＭ２９０３に供給する。リムーバブル記録媒体２９１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００９１】
接続ポート２９１４は、外部接続機器２９１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート２９１４は、インタフェース２９０７、及び外部バス２９０６、ブリッジ２９０５、ホストバス２９０４等を介してＣＰＵ２９０１等に接続されている。通信部２９１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部２９１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部２９１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００９２】
なお、図２９に示す計算機のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２９に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図２９に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００９３】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００９４】
１００…情報処理装置
１０５…物理マシン
１１０…ホストＯＳ
１１５…仮想化ＳＷ
１１７…ＳＳ管理モジュール
１２０…ゲストＯＳ
１２５…プリントコントローラモジュール
１２７…Ｃ−Ｌｏｇ
１３０…出力制御モジュール
１３５…障害情報収集モジュール
１４０…ＳＳ制御モジュール
１８０…印刷装置
１８２…Ｉ−Ｌｏｇ
１９０…記憶領域
１９２…スナップショット
【図１】
0006610094.tif 000002
【図２】
0006610094.tif 000003
【図３】
0006610094.tif 000004
【図４】
0006610094.tif 000005
【図５】
0006610094.tif 000006
【図６】
0006610094.tif 000007
【図７】
0006610094.tif 000008
【図８】
0006610094.tif 000009
【図９】
0006610094.tif 000010
【図１０】
0006610094.tif 000011
【図１１】
0006610094.tif 000012
【図１２】
0006610094.tif 000013
【図１３】
0006610094.tif 000014
【図１４】
0006610094.tif 000015
【図１５】
0006610094.tif 000016
【図１６】
0006610094.tif 000017
【図１７】
0006610094.tif 000018
【図１８】
0006610094.tif 000019
【図１９】
0006610094.tif 000020
【図２０】
0006610094.tif 000021
【図２１】
0006610094.tif 000022
【図２２】
0006610094.tif 000023
【図２３】
0006610094.tif 000024
【図２４】
0006610094.tif 000025
【図２５】
0006610094.tif 000026
【図２６】
0006610094.tif 000027
【図２７】
0006610094.tif 000028
【図２８】
0006610094.tif 000029
【図２９】
0006610094.tif 000030