JP6610094B2 - 仮想計算機システム及び仮想計算機プログラム - Google Patents

仮想計算機システム及び仮想計算機プログラム Download PDF

Info

Publication number
JP6610094B2
JP6610094B2 JP2015168955A JP2015168955A JP6610094B2 JP 6610094 B2 JP6610094 B2 JP 6610094B2 JP 2015168955 A JP2015168955 A JP 2015168955A JP 2015168955 A JP2015168955 A JP 2015168955A JP 6610094 B2 JP6610094 B2 JP 6610094B2
Authority
JP
Japan
Prior art keywords
log
snapshot
module
failure
printing apparatus
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
JP2015168955A
Other languages
English (en)
Other versions
JP2017045371A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2015168955A priority Critical patent/JP6610094B2/ja
Priority to US15/003,215 priority patent/US9870249B2/en
Priority to CN201610124518.5A priority patent/CN106484561B/zh
Priority to EP16159402.3A priority patent/EP3136240B1/en
Publication of JP2017045371A publication Critical patent/JP2017045371A/ja
Application granted granted Critical
Publication of JP6610094B2 publication Critical patent/JP6610094B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/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/0733Error 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 data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

本発明は、仮想計算機システム及び仮想計算機プログラムに関する。
特許文献1には、仮想マシンモニタ(VMM)上で複数の仮想マシン(VM)が連係動作し、VM間が共有メモリで結合するシステムで、人間の操作やVM間の非同期イベント及びOSが原因の障害調査のため、障害発生VMのみ再生し障害再現させ、障害原因調査を可能とすることを課題とし、障害発生VMを再現操作ツールでVM実行管理表に設定し、設定VMを一斉スナップショット通知手段で実行中であれば一時停止してスナップショット記録部に、その時点までの実行内容を記録し、VM入出力記録手段がVMの仮想ハードウェア(HW)の入出力アクセスをイベント記録部に記録し、一斉スナップショット通知手段はスナップショット記録の完了後、再現操作手段の操作で記録VM内容を再現し、入出力再現手段はVMの再現実行中に仮想HWに発生した入出力アクセスをイベント記録部の内容と照合し、合致するものを再現することが開示されている。
特許文献2には、仮想マシンにインストールされた応用プログラムを実行するにあたって、既に作成された基準スナップショットを仮想マシンに適用した後に、その応用プログラムを実行するようにした仮想計算機システムを提供することを課題とし、仮想計算機システムは、仮想マシンにインストールされた応用プログラムを含む前記仮想マシンの状態を記録したスナップショットを基準スナップショットとして保存し、前記応用プログラムの実行要求を受け付けるに際し、前記基準スナップショットを前記仮想マシンに適用し、前記応用プログラムを実行し、障害が発生した場合には改めて前記仮想マシンの状態をスナップショットとして保存することが開示されている。
特開2014−32498号公報 特許5713138号公報
仮想OS上で動作するアプリケーションのスナップショットには、当該仮想OS上で動作していない装置の状態が保存されない。そのため、スナップショットだけでは障害発生状態を再現することができない。また、特許文献2に開示されている技術では、印刷装置が障害発生時にスナップショットを生成しても、印刷装置が障害発生後も印刷処理を継続させると、障害発生時の印刷装置のログ情報は、その障害発生後の印刷処理によって失われてしまい、障害発生時の印刷装置のログ情報を含めた状態を再現することができないこととなる。
本発明は、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができるようにした仮想計算機システム及び仮想計算機プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、応用プログラムがインストールされているゲストOSを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストOSのスナップショットを作成するスナップショット作成部、を備え、前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、前記スナップショット作成部によってゲストOSのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、仮想計算機システムである。
請求項2の発明は、外部イベント保存部を当該仮想計算機の内部に有する、請求項1に記載の仮想計算機システムである。
請求項3の発明は、外部イベント保存部を前記外部装置の内部に有する、請求項1又は2に記載の仮想計算機システムである。
請求項4の発明は、外部イベント保存部が、当該仮想計算機とは異なる第2の仮想計算機のスナップショットとして第2の仮想計算機を搭載するコンピュータ内部の保存手段である、請求項1から3のいずれか一項に記載の仮想計算機システムである。
請求項5の発明は、外部イベント保存部でイベント保存が終わった旨の通知を受け付ける受付手段をさらに備え、スナップショット作成部は、受付手段が通知を受け付けた後に、スナップショットを作成する請求項1から4のいずれか一項に記載の仮想計算機システムである。
請求項6の発明は、コンピュータを、応用プログラムがインストールされているゲストOSを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストOSのスナップショットを作成するスナップショット作成部、として機能させ、前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、前記スナップショット作成部によってゲストOSのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、仮想計算機プログラムである。
請求項1の仮想計算機システムによれば、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができる。
請求項2の仮想計算機システムによれば、外部イベント保存部を仮想計算機の内部として、外部装置に係るイベントをスナップショットに含めることができる。
請求項3の仮想計算機システムによれば、外部イベント保存部を外部装置の内部として、外部装置内に、外部装置のログ情報を記憶させておくことができる。
請求項4の仮想計算機システムによれば、外部装置に係るイベントを第2の仮想計算機のスナップショットに含めることができる。
請求項5の仮想計算機システムによれば、外部イベント保存部でイベント保存が終わったことを契機として、スナップショットを作成することができる。
請求項6の仮想計算機プログラムによれば、障害発生直後の外部装置のログ情報を応用プログラムのスナップショットに関連付けて保存するようにしたので、障害発生直後の状態を、応用プログラムだけでなく外部装置の状態を含めて再現することができる。
第1の実施の形態の構成例についての概念的なモジュール構成図である。 第1の実施の形態による処理例を示す説明図である。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示すフローチャートである。 第1の実施の形態による処理例を示すフローチャートである。 第2の実施の形態の構成例についての概念的なモジュール構成図である。 第2の実施の形態による処理例を示す説明図である。 第2の実施の形態による処理例を示すフローチャートである。 第2の実施の形態による処理例を示すフローチャートである。 第2の実施の形態による処理例を示すフローチャートである。 第2の実施の形態による処理例を示すフローチャートである。 第3の実施の形態の構成例についての概念的なモジュール構成図である。 従来技術の例を示す説明図である。 従来技術による処理例を示す説明図である。 従来技術の例を示す説明図である。 従来技術による処理例を示す説明図である。 第4の実施の形態の構成例についての概念的なモジュール構成図である。 第4の実施の形態による処理例を示す説明図である。 第4の実施の形態による処理例を示すフローチャートである。 第4の実施の形態による処理例を示すフローチャートである。 第5の実施の形態による処理例を示す説明図である。 第5の実施の形態による処理例を示すフローチャートである。 第5の実施の形態による処理例を示すフローチャートである。 従来技術の例を示す説明図である。 従来技術による処理例を示す説明図である。 従来技術の例を示す説明図である。 従来技術による処理例を示す説明図である。 本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
まず、本実施の形態を説明する前に、その前提となる技術について、図14〜図17の例を用いて説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。外部装置として、印刷装置の例を用いて説明する。
図14は、従来技術の例を示す説明図である。情報処理装置1400は、外部装置である印刷装置1480を制御して、印刷処理を行わせる。情報処理装置1400は、仮想計算機システムではない、一般的な計算機(1つの物理マシン1405に1つのOS1410で構成したコンピュータ)である。例えば、情報処理装置1400は、プリンタサーバー又はプリンタコントローラとしての機能を有し、印刷装置1480は、高速プリンタである。
情報処理装置1400は、下層から順に、物理マシン1405、OS1410を有し、OS1410上に応用プログラムであるプリントコントローラモジュール1425、障害情報収集モジュール1435を有している。プリントコントローラモジュール1425は、出力制御モジュール1430を含んでおり、C−Log1427Aを記憶している。出力制御モジュール1430は、印刷装置1480を制御するプログラムである。印刷装置1480は、I−Log1482Aを記憶している。
情報処理装置1400又は印刷装置1480で障害が発生すると、障害情報収集モジュール1435からの指示(Get_Log)で、プリントコントローラモジュール1425は内部及びOS1410のログ情報(C−Log1427A)の収集を行う。また、発生した障害の原因がプリントコントローラモジュール1425の管理外にある印刷装置1480にある可能性もある。したがって、プリントコントローラモジュール1425は内部の出力制御モジュール1430を通して(出力制御モジュール1430からの印刷装置1480へのget_logの指示によって)、印刷装置1480のログ情報(I−Log1482A)の収集も併せて行い、プリントコントローラモジュール1425は障害情報収集モジュール1435にC−Log1427AとI−Log1482Aを返す。そして、障害情報収集モジュール1435は、記憶領域1490に、C−Log1427AとI−Log1482Aを記憶させる。
図15は、従来技術による処理例を示す説明図である。
情報処理装置1400は、印刷装置1480に印刷処理を行わせる運用をしており、その運用中に障害発生1510したとする。
障害発生1510を検知すると、OS1410上の障害情報収集モジュール1435に対して障害情報収集指示1572が行われる。障害情報収集モジュール1435は、プリントコントローラモジュール1425に対して、Get_Log1574の指示を行い、プリントコントローラモジュール1425内部とOS1410のそのときの状態(ログ情報)をC−Log1427Aとして取得する。そして、プリントコントローラモジュール1425は出力制御モジュール1430を制御し、出力制御モジュール1430はその制御にしたがって、印刷装置1480に対して、get_log1576の指示を行い、印刷装置1480から印刷装置1480のそのときの状態(ログ情報)であるI−Log1482Aを取得する。そして、出力制御モジュール1430は、Get_Log1574の返信としてI−Log,C−Log1578(C−Log1427A、I−Log1482A)を障害情報収集モジュール1435に返す。障害情報収集モジュール1435は、それらを記憶領域1490にC−Log1427B、I−Log1482Bとして記憶させる。その後、障害のリカバリ処理1550が行われ、運用再開1560となる。
なお、この後、印刷装置1480の運用が終了した後に、C−Log1427B、I−Log1482Bを解析することによって、障害の原因、対策等を検討することになる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理1550、運用再開1560を行うのは、印刷装置1480での印刷処理を続けるためである。特に、印刷装置1480が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
次に、仮想計算機システムによる例を示す。図16は、従来技術の例を示す説明図である。情報処理装置1600は、仮想計算機システムであって、外部装置である印刷装置1680を制御して、印刷処理を行わせる。例えば、情報処理装置1600は、プリンタサーバーとしての機能を有し、印刷装置1680は、高速プリンタである。
仮想化システムと呼ばれる技術は、一台の物理マシン1605(ハードウェア)上で複数のゲストOS1620を動作させる技術である。図16の例に示すように、物理マシン1605上にホストOS1610と仮想化SW1615による仮想ハードウェアを構築し、その上にゲストOS1620をインストールし、さらにゲストOS1620上に応用プログラム(アプリケーション)であるプリントコントローラモジュール1625をインストールする。
仮想化SW1615は、物理マシン1605上に、複数のゲストOS1620の並列的な同居を可能にするソフトウェアである。つまり、仮想化SW1615は、CPU、メモリ、HDD等のハードウェアをソフトウェア的に構築し、ゲストOS1620が依って立つハードウェアリソースを仮想マシンとして用意するものである。
プリントコントローラモジュール1625として、例えば、プリンタ制御プログラム(具体例として、デジタルフロントエンド(DFE:Digital Front End)等)がある。この場合、仮想マシンはそれぞれが隔離されており、いずれかに障害(例えば、クラッシュ等)が発生しても、他の仮想マシン上でのプリンタ制御プログラムはそのまま稼働しており、印刷することができる。
具体的には、情報処理装置1600は、下層から順に、物理マシン1605、ホストOS1610、仮想化SW1615、ゲストOS1620を有し、ゲストOS1620上に応用プログラムであるプリントコントローラモジュール1625、障害情報収集モジュール1635を有している。仮想化SW1615は、SS管理モジュール1617を含み、プリントコントローラモジュール1625は、出力制御モジュール1630を含んでおり、C−Log1627Aを記憶している。印刷装置1680は、I−Log1682Aを記憶している。記憶領域1690は、スナップショット1692を記憶している。なお、図16の例では、仮想化SW1615の上に1つのゲストOS1620の例を示しているが、仮想計算機システムであるので、仮想化SW1615の上に複数のゲストOS1620が構成されていてもよい。
情報処理装置1600では、応用プログラムであるプリントコントローラモジュール1625を仮想化環境で動作させ、その仮想化環境のスナップショット機能(SS管理モジュール1617の機能)を用いて、障害発生時の障害状態をスナップショット1692として記憶領域1690内に保持させ、発生した障害を復旧し、所定の印刷処理が終了後(印刷業務の空いた時間)に、保存されたスナップショット1692を用いて障害発生時の状態を再現させた上で障害情報を採取する。ここで、プリントコントローラモジュール1625が動作するゲストOS1620のスナップショットの作成と再現をSS管理モジュール1617が行う。
図17の例を用いて説明する。情報処理装置1600は、印刷装置1680に印刷処理を行わせる運用をしており、その運用中に障害発生1710したとする。
障害発生1710を検知すると、ホストOS1610を介してユーザの操作に応じて、SS管理モジュール1617に対してスナップショット採取指示1722が行われる。なお、プリントコントローラモジュール1625内のステータスを監視する事により、自動的にスナップショット採取指示1722を出すことも可能である。SS管理モジュール1617は、そのときのゲストOS1620とプリントコントローラモジュール1625における状態A:1740Aをスナップショット1692として、記憶領域1690に記憶させる。なお、印刷装置1680では、障害発生1710におけるログ情報としてI−Log1682Aが発生している。しかし、SS管理モジュール1617のスナップショットは、情報処理装置1600内部の状態を取得するものであるので、外部装置である印刷装置1680のI−Log1682Aは、スナップショットの対象ではない。
その後、障害のリカバリ処理1750が行われ、運用再開1760となる。
そして、印刷装置1680の運用が終了した後に、ホストOS1610を介してユーザの操作に応じて、SS管理モジュール1617に対してスナップショット再現指示1770を行うと、SS管理モジュール1617は、記憶領域1690内のスナップショット1692を読み出して、ゲストOS1620、プリントコントローラモジュール1625の状態を状態A:1740B(状態A:1740Aと同じ状態)に戻す。そして、ホストOS1610を介してユーザの操作に応じて、障害情報収集モジュール1635に対して障害情報収集指示1772を行うと、図15の例で示したものと同等の処理を行う。つまり、障害情報収集モジュール1635は、プリントコントローラモジュール1625に対して、Get_Log1774の指示を行い、プリントコントローラモジュール1625内部とゲストOS1620のそのときの状態(ログ情報)をC−Log1627Aとして取得する。そして、プリントコントローラモジュール1625は出力制御モジュール1630を制御し、出力制御モジュール1630はその制御にしたがって、印刷装置1680に対して、get_log1776の指示を行い、印刷装置1680から印刷装置1680のそのときの状態(ログ情報)であるI−LogX1682Bを取得する。そして、出力制御モジュール1630は、Get_Log1774の返信としてI−LogX,C−Log1778(C−Log1627A、I−LogX1682B)を障害情報収集モジュール1635に返す。障害情報収集モジュール1635は、それらを記憶領域1690にC−Log1627B、I−LogX1682Cとして記憶させる。
障害情報収集モジュール1635を用いてプリントコントローラモジュール1625の管理の外部にある印刷装置1680のログ情報(I−LogX1682B)の収集を行うと、図17の例に示すように、障害発生1710のときと障害情報収集指示1772の間に印刷処理(運用再開1760)を行っているので、障害情報収集指示1772のときの印刷装置1680のログ情報であるI−LogX1682Bには障害後の印刷処理(運用再開1760後の印刷処理)の情報が書き込まれており、障害が発生したときの印刷装置1680のログ情報であるI−Log1682Aとは異なった内容になっている。そのため印刷装置1680の運用再開1760後の印刷処理によっては、障害発生時のログ情報であるI−Log1682Aは既になくなっている(上書きされている)という状況が発生する。つまり、障害発生1710したときのI−Log1682Aが、障害情報収集指示1772によって記憶領域1690に記憶されるわけではない。
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
<<第1の実施の形態>>
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、すべての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
第1の実施の形態である仮想計算機システムである情報処理装置100は、障害発生直後の状態を、プリントコントローラモジュール125と外部装置である印刷装置180の状態をスナップショットとして記憶し、その状態を再現できるようにしたものであって、図1の例に示すように、下層から順に、物理マシン105、ホストOS110、仮想化SW115、ゲストOS120を有し、ゲストOS120上に応用プログラムであるプリントコントローラモジュール125、障害情報収集モジュール135、SS制御モジュール140を有している。仮想化SW115は、SS管理モジュール117を含んでいる。つまり、SS管理モジュール117は、仮想化SW115に標準的に組み込まれているモジュールである。プリントコントローラモジュール125は、出力制御モジュール130を含んでおり、C−Log127A、I−Log182Bを記憶している。印刷装置180は、I−Log182Aを記憶している。記憶領域190は、スナップショット192を記憶している。
なお、外部装置の例示として印刷装置180を示しているが、他の装置(例えば、スキャナ等)であってもよい。つまり、仮想計算機システムによって制御される外部装置であって、障害が発生した後、その障害を解析することよりも前に、リカバリ処理が行われるものであればよい。そして、応用プログラムとして、例えば、プリンタ制御プログラムがある。以下、プリンタ制御プログラムを例示して説明する。
図1の例に示すように、仮想計算機である情報処理装置100に、印刷装置180のログ情報(I−Log182A)の収集と、SS管理モジュール117を用いて、プリントコントローラモジュール125の動作するゲストOS120のスナップショットを作成させること(スナップショットを再現することを含めてもよい)を指示するSS制御モジュール140を導入する。そして、障害情報収集モジュール135は、プリントコントローラモジュール125内部及びゲストOS120のログ情報(C_Log)の収集と、既に収集済みの印刷装置180のログ情報(I−Log182B)の取得を行う。
つまり、SS制御モジュール140は、応用プログラムであるプリントコントローラモジュール125がインストールされているゲストOS120を搭載する仮想計算機である情報処理装置100の外部に設けられた印刷装置180に係るイベントを取得するための制御を行う。ここで「印刷装置180に係るイベント」としては、具体的には、障害発生時の印刷装置180のログ情報であるI−Log182Aがある。なお、障害が発生するのは、情報処理装置100であってもよいし、印刷装置180であってもよい。
プリントコントローラモジュール125は、SS制御モジュール140により取得した外部イベントを保存する。つまり、プリントコントローラモジュール125内には、I−Log182B(印刷装置180内のI−Log182Aと同じ内容)を記憶している。もちろんのことながら、プリントコントローラモジュール125は、情報処理装置100の内部(SS管理モジュール117によってスナップショットの対象となっている領域内)にあるので、ゲストOS120、プリントコントローラモジュール125のログ情報であるC−Log127Aも記憶している。
SS管理モジュール117は、プリントコントローラモジュール125に外部イベントであるI−Log182Aが保存されてから、プリントコントローラモジュール125を含むゲストOS120のスナップショットを作成する。したがって、そのスナップショットには、C−Log127Aの他に、I−Log182Bが含まれていることになる。具体的には、SS管理モジュール117は、SS制御モジュール140から、イベント保存が終わった旨の通知を受け付け、その通知を受け付けた後に、スナップショットを作成する。
具体的には、障害が発生すると、SS制御モジュール140は、プリントコントローラモジュール125に対して、印刷装置180のI−Log182Aを取得する指示(Get−ILog)を行う(Step12)。出力制御モジュール130は、プリントコントローラモジュール125の制御にしたがって、印刷装置180に対して、I−Log182Aを取得する指示(get−log)を行う(Step14)。印刷装置180は、I−Log182Aを出力制御モジュール130に渡す(Step16)。その結果、プリントコントローラモジュール125内にI−Log182Bが記憶される。そして、プリントコントローラモジュール125(出力制御モジュール130)は、Get−ILogの処理が終了したことを示すRes_ILog処理を行う(Step18)。SS制御モジュール140は、SS管理モジュール117にスナップショット処理を行うように指示する(Step20)。その結果、記憶領域190内にスナップショット192が記憶される。スナップショット192内には、プリントコントローラモジュール125内のC−Log127A、I−Log182Bが含まれている。
そして、障害のリカバリ処理が行われ、運用が再開される。運用が終了した後、障害の収集・解析を行う場合、SS管理モジュール117は、記憶領域190内のスナップショット192を用いて、障害時の状態を復元する。その結果、プリントコントローラモジュール125内には、障害発生時のC−Log127AとともにI−Log182B(障害発生時の印刷装置180内のI−Log182A)が復元されることになる。障害情報収集モジュール135は、プリントコントローラモジュール125に対して、障害情報を取得する指示(Get−Log)を行う(Step32)。プリントコントローラモジュール125は、C−Log127A、I−Log182Bを障害情報収集モジュール135に返す(Step34)。担当者は、障害情報収集モジュール135が取得したC−Log127A、I−Log182Bを解析して、障害の原因、対策等を検討することになる。
情報処理装置100は、概要として、次に示すような処理を行う。
プリントコントローラモジュール125をゲストOS120上で動作させ、その仮想計算機システムのスナップショット機能を用いて障害情報の収集を行う場合、前述したように、障害発生と障害情報の取得のタイミングが大きく異なる。このため、スナップショットの対象外である印刷装置180等の外部機器は、障害情報の取得時に障害発生時のログ情報を保持していない場合があり得る。そこで、従来の障害情報収集の機能を、SS制御モジュール140と障害情報収集モジュール135に分けて、SS制御モジュール140により、障害発生時の印刷装置180のログ情報をスナップショット採取前にプリントコントローラモジュール125に取り込む様にした。
これにより、障害発生の直後に短時間で処理が終了可能なスナップショットを作成すれば、時間の要する障害情報の収集作業を行うことなく、障害のリカバリ処理後に本来の印刷処理を直ちに再開できる。そして、印刷業務が終了した後など好きなタイミングで、スナップショットを再現することで、障害発生直後の障害情報(プリントコントローラモジュール125だけでなく、印刷装置180などの外部機器の障害情報)を取得できる。
つまり、印刷装置180のユーザは、障害発生に伴う障害情報の収集を行わなくてよくなる。その結果、印刷装置180の稼働率を上げることができることとなる。
図2は、第1の実施の形態による処理例を示す説明図である。
情報処理装置100は、印刷装置180に印刷処理を行わせる運用をしており、その運用中に障害発生210したとする。
障害発生210を検知すると、ゲストOS120上のSS制御モジュール140に対して、スナップショット採取指示222が行われる。SS制御モジュール140は、プリントコントローラモジュール125に対して、Get_ILog224の指示を行う。出力制御モジュール130は、プリントコントローラモジュール125の制御にしたがって、印刷装置180に対して、get_log226の指示を行って、I−Log182Aを取得して、プリントコントローラモジュール125内にI−Log182Bとして記憶する。プリントコントローラモジュール125(出力制御モジュール130)は、I−Log182Bが記憶されたことを確認して、SS制御モジュール140に取得終了を示すRes_ILog228を返す。そして、Res_ILog228を受けたSS制御モジュール140は、仮想化SW115内のSS管理モジュール117に対して、スナップショット処理を依頼する。SS管理モジュール117は、ゲストOS120、プリントコントローラモジュール125(プリントコントローラモジュール125内にはI−Log182Bが記憶されている)の状態A:240Aをスナップショット192として、記憶領域190に記憶させる。その後、障害の復旧であるリカバリ処理250が行われ、運用再開260となる。
そして、所定の印刷処理が終了した後(又は、印刷業務の空いた時間)、SS管理モジュール117は、ユーザの操作に応じて、スナップショット再現指示270を受け、記憶領域190内のスナップショット192を用いて障害発生時の状態A:240B(状態A:240A)を再現させる。そして、障害情報収集指示272にしたがい、障害情報収集モジュール135はプリントコントローラモジュール125へのGet_Log274の指示によって、プリントコントローラモジュール125から、プリントコントローラモジュール125内部とゲストOS120のログ情報であるC−Log127Aと、既に収集済みの印刷装置180のログ情報であるI−Log182Bの取得を行う(I−Log,C−Log276)。そして、記憶領域190内に、C−Log127B(C−Log127A)、I−Log182C(I−Log182B、I−Log182A)を記憶させる。C−Log127B、I−Log182Cを解析することによって、障害の原因、対策等を検討することになる。なお、障害が発生した後に、ログの収集・解析を行わずに、リカバリ処理250、運用再開260を行うのは、印刷装置180での印刷処理を続けるためである。特に、印刷装置180が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
図3、図4は、第1の実施の形態による処理例(スナップショット192の生成処理例)を示すフローチャートである。
ステップS302では、障害発生を検知したか否かを判断し、検知した場合はステップS304へ進み、それ以外の場合は検知するまで待機する。
ステップS304では、ユーザの操作に応じて、スナップショット採取指示222を行う。なお、前述したように、プリントコントローラモジュール125内のステータスを監視する事により、自動的に採取指示を出すことも可能である。
ステップS306では、SS制御モジュール140は、スナップショット採取指示222を受信する。
ステップS308では、SS制御モジュール140は、I−Log取得指示(Get_ILog224)を行う。
ステップS310では、出力制御モジュール130は、I−Log取得指示(Get_ILog224)を受信する。
ステップS312では、出力制御モジュール130は、I−Log取得指示(get_log226)を行う。
ステップS314では、印刷装置180は、I−Log取得指示(get_log226)を受信する。
ステップS316では、印刷装置180は、I−Log182Aを送信する。
ステップS318では、出力制御モジュール130は、I−Log182Aを受信する。
ステップS320では、出力制御モジュール130は、プリントコントローラモジュール125内にI−Log182Aを記憶する。
ステップS322では、出力制御モジュール130は、I−Logの取得が終了したことを返信(Res_ILog228)する。
ステップS324では、SS制御モジュール140は、Res_ILog228を受信する。
ステップS326では、SS制御モジュール140は、スナップショット作成指示を行う。
ステップS328では、SS管理モジュール117は、スナップショット作成指示を受信する。
ステップS330では、SS管理モジュール117は、現在の状態A:240A(プリントコントローラモジュール125内にI−Log 182Bが記憶された状態)を記憶領域190にスナップショット192として記憶させる。
図5は、第1の実施の形態による処理例(スナップショット192の再現処理例)を示すフローチャートである。
ステップS502では、ユーザの操作に応じて、スナップショット再現指示270を行う。
ステップS504では、SS管理モジュール117は、スナップショット再現指示270を受信する。
ステップS506では、SS管理モジュール117は、記憶領域190内のスナップショット192を用いて、状態A:240B(プリントコントローラモジュール125内にI−Log182Bが記憶された状態)を再現する。
図6は、第1の実施の形態による処理例(障害情報であるC−Log127A,I−Log182Bの収集処理例)を示すフローチャートである。
ステップS602では、ユーザの操作に応じて、障害情報収集指示272を行う。
ステップS604では、障害情報収集モジュール135は、障害情報収集指示272を受信する。
ステップS606では、障害情報収集モジュール135は、ログ取得指示(Get_Log274)を行う。
ステップS608では、プリントコントローラモジュール125は、ログ取得指示(Get_Log274)を受信する。
ステップS610では、プリントコントローラモジュール125は、C−Log127AとI−Log182Bを送信する。
ステップS612では、障害情報収集モジュール135は、I−Log,C−Log276(C−Log127AとI−Log182B)を受信する 。
ステップS614では、障害情報収集モジュール135は、C−Log127BとI−Log182C(I−Log,C−Log276)を記憶領域190に記憶させる。
<<第2の実施の形態>>
図7は、第2の実施の形態の構成例についての概念的なモジュール構成図である。
情報処理装置700は、下層から順に、物理マシン105、ホストOS110、仮想化SW115、ゲストOS120を有し、ゲストOS120上にプリントコントローラモジュール125、障害情報収集モジュール135、SS制御モジュール140を有している。仮想化SW115は、SS管理モジュール117を含み、プリントコントローラモジュール125は、出力制御モジュール130を含んでおり、C−Log127Aを記憶している。印刷装置180は、I−Log782Aを記憶している。記憶領域190は、スナップショット192を記憶している。なお、前述の実施の形態と同種の部位には同一符号を付し重複した説明を省略する(以下、同様)。
図7の例に示すように、仮想計算機である情報処理装置700に、印刷装置180のログ情報(I−Log782A)の保持指示(save_log)と、SS管理モジュール117用いて、プリントコントローラモジュール125の動作するゲストOS120のスナップショットを作成させること(スナップショットを再現することを含めてもよい)を指示するSS制御モジュール140を導入する。そして、障害情報収集モジュール135は、プリントコントローラモジュール125内部及びゲストOS120のログ情報(C−Log127A)の収集と印刷装置180に保存されているログ情報(I−Log782A)の取得を行う。
つまり、SS制御モジュール140は、応用プログラムであるプリントコントローラモジュール125がインストールされているゲストOS120を搭載する仮想計算機である情報処理装置700の外部に設けられた印刷装置180に係るI−Log782A(印刷装置180のログ情報)を保持させるための制御を行う。
印刷装置180は、SS制御モジュール140の指示により取得した外部イベントを保存する。つまり、印刷装置180内には、I−Log782Aを記憶している。もちろんのことながら、I−Log782Aを記憶する手段は、印刷装置180の内部に有している。また、I−Log782Aを記憶した後は、印刷装置180の再開処理によって、そのI−Log782Aに新たなログ情報が上書きされることはなく、障害発生時の状態を示すI−Log782Aが記憶されることになる。
SS管理モジュール117は、印刷装置180に外部イベントであるI−Log782Aが保存されてから、プリントコントローラモジュール125を含むゲストOS120のスナップショットを作成する。したがって、そのスナップショット作成時には印刷装置180にはI−Log782Aが記憶されていることになる。
具体的には、障害が発生すると、SS制御モジュール140は、プリントコントローラモジュール125に対して、印刷装置180のI−Log782Aを保存する指示(Save−ILog)を行う(Step72)。出力制御モジュール130は、プリントコントローラモジュール125の制御にしたがって、印刷装置180に対して、I−Log782Aを保存する指示(save−log)を行う(Step74)。印刷装置180は、I−Log782Aを保存し、保存終了を出力制御モジュール130に返信する(Step76)。そして、プリントコントローラモジュール125(出力制御モジュール130)は、Save−ILogの処理が終了したことを示すRes−ILog処理を行う(Step78)。SS制御モジュール140は、SS管理モジュール117にスナップショット処理を行うように指示する(Step80)。その結果、記憶領域190内にスナップショット192が記憶される。スナップショット192内には、プリントコントローラモジュール125内のC−Log127Aが含まれている。
そして、障害のリカバリ処理が行われ、運用が再開される。運用が終了した後、障害の収集・解析を行う場合、SS管理モジュール117は、記憶領域190内のスナップショット192を用いて、障害時の状態を復元する。その結果、プリントコントローラモジュール125内には、障害発生時のC−Log127Aが復元されることになる。障害情報収集モジュール135は、プリントコントローラモジュール125に対して、障害時の状態を取得する指示(Get−Log)を行う(Step92)。出力制御モジュール130は、プリントコントローラモジュール125の制御にしたがって、印刷装置180からI−Log782Aを取得する指示(get_log)を行う(Step94)。印刷装置180は、I−Log782Aを出力制御モジュール130に返す処理を行う(Step96)。プリントコントローラモジュール125は、C−Log127Aと出力制御モジュール130が取得したI−Log782Aを、障害情報収集モジュール135に返す(Step98)。担当者は、障害情報収集モジュール135が取得したC−Log127A、I−Log782Aを解析して、障害の原因、対策等を検討することになる。
図8は、第2の実施の形態による処理例を示す説明図である。
情報処理装置700は、印刷装置180に印刷処理を行わせる運用をしており、その運用中に障害発生210したとする。
障害発生210を検知すると、ゲストOS120上のSS制御モジュール140に対して、スナップショット採取指示222が行われる。SS制御モジュール140は、プリントコントローラモジュール125に対して、Save_ILog824の指示を行う。出力制御モジュール130は、プリントコントローラモジュール125の制御にしたがって、印刷装置180に対して、save_log826の指示を行って、印刷装置180はI−Log182Aを複写してI−Log182B(図7の例におけるI−Log782Aに該当)を生成して、記憶する。プリントコントローラモジュール125(出力制御モジュール130)は、印刷装置180からの終了通知を受け取ったならば、SS制御モジュール140に処理終了を示すRes_ILog828を返す。そして、Res_ILog828を受けたSS制御モジュール140は、仮想化SW115内のSS管理モジュール117に対して、スナップショット処理を依頼する。SS管理モジュール117は、ゲストOS120、プリントコントローラモジュール125の状態A:840Aをスナップショット892として、記憶領域190に記憶させる。その後、障害の復旧であるリカバリ処理250が行われ、運用再開260となる。
そして、所定の印刷処理が終了した後(又は、印刷業務の空いた時間)、SS管理モジュール117は、ユーザの操作に応じて、スナップショット再現指示270を受け、記憶領域190内のスナップショット892を用いて障害発生時の状態A:840B(状態A:840A)を再現させる。そして、障害情報収集指示272にしたがい、障害情報収集モジュール135はプリントコントローラモジュール125へのGet_Log274の指示を行う。プリントコントローラモジュール125は、印刷装置180に対して、get_log874Bを行い、I−Log182C(I−Log182B)を取得する。そして、プリントコントローラモジュール125内部とゲストOS120のログ情報であるC−Log127Aと、I−Log182Cを障害情報収集モジュール135に渡す(I−Log,C−Log876)。そして、記憶領域190内に、C−Log127B(C−Log127A)、I−Log182D(I−Log182C、I−Log182B、I−Log182A)を記憶させる。C−Log127B、I−Log182Dを解析することによって、障害の原因、対策等を検討することになる。なお、障害が発生した後に、そのログの収集・解析を行わずに、リカバリ処理250、運用再開260を行うのは、印刷装置180での印刷処理を続けるためである。特に、印刷装置180が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
図9、図10は、第2の実施の形態による処理例(スナップショット892の生成処理例とI−Log782Aの保存処理例)を示すフローチャートである。
ステップS902では、障害発生を検知したか否かを判断し、検知した場合はステップS904へ進み、それ以外の場合は検知するまで待機する。
ステップS904では、ユーザの操作に応じて、スナップショット採取指示222を行う。なお、前述したように、プリントコントローラモジュール125内のステータスを監視する事により、自動的に採取指示を出すことも可能である。
ステップS906では、SS制御モジュール140は、スナップショット採取指示222を受信する。
ステップS908では、SS制御モジュール140は、I−Log保存指示(Save_ILog824)を行う。
ステップS910では、出力制御モジュール130は、I−Log保存指示(Save_ILog824)を受信する。
ステップS912では、出力制御モジュール130は、I−Log保存指示(save_log826)を行う。
ステップS914では、印刷装置180は、I−Log保存指示(save_log826)を受信する。
ステップS916では、印刷装置180は、I−Log182Aを保存する(I−Log782B)。
ステップS918では、印刷装置180は、I−Logの保存が終了したことを返信する。
ステップS920では、出力制御モジュール130は、I−Logの出力制御モジュール130での保存が終了したことを返信(Res_ILog828)する。
ステップS922では、SS制御モジュール140は、Res_ILog828を受信する。
ステップS924では、SS制御モジュール140は、スナップショット作成指示を行う。
ステップS926では、SS管理モジュール117は、スナップショット作成指示を受信する。
ステップS928では、SS管理モジュール117は、現在の状態A:840Aを記憶領域190にスナップショット892として記憶させる。
図11は、第2の実施の形態による処理例(スナップショット892の再現処理例)を示すフローチャートである。
ステップS1102では、ユーザの操作に応じて、スナップショット再現指示270を行う。
ステップS1104では、SS管理モジュール117は、スナップショット再現指示270を受信する。
ステップS1106では、SS管理モジュール117は、記憶領域190内のスナップショット892を用いて、状態A:840Bを再現する。
図12は、第2の実施の形態による処理例(障害情報であるC−Log127A、I−Log782Dの収集処理例)を示すフローチャートである。
ステップS1202では、ユーザの操作に応じて、障害情報収集指示272を行う。
ステップS1204では、障害情報収集モジュール135は、障害情報収集指示272を受信する。
ステップS1206では、障害情報収集モジュール135は、ログ取得指示(Get_Log274)を行う。
ステップS1208では、プリントコントローラモジュール125は、ログ取得指示(Get_Log274)を受信する。
ステップS1210では、プリントコントローラモジュール125は、ログ取得指示(get_log874B)を送信する。
ステップS1211では、印刷装置180は、ログ取得指示(get_log874B)を受信する。
ステップS1212では、プリントコントローラモジュール125は、C−Log127Aを送信する 。
ステップS1214では、印刷装置180は、I−Log782Cを送信する。
ステップS1216では、障害情報収集モジュール135は、I−Log,C−Log876(C−Log127AとI−Log782C)を受信する。
ステップS1218では、障害情報収集モジュール135は、C−Log127BとI−Log782D(I−Log,C−Log876)を記憶領域190に記憶させる。
<<第3の実施の形態>>
図13は、第3の実施の形態の構成例についての概念的なモジュール構成図である。情報処理装置1300Xは、情報処理装置1300Y(クライアントSW1325)からの印刷依頼によって、印刷装置180Xで印刷処理を行う。障害が発生した場合、情報処理装置1300Xのログ情報だけでなく、情報処理装置1300Yにおけるログ情報も取得するようにしている。
仮想計算機システムである情報処理装置1300Xは、下層から順に、物理マシン105X、ホストOS110X、仮想化SW115X、ゲストOS120Xを有し、ゲストOS120X上にプリントコントローラモジュール125X、障害情報収集モジュール135X、SS制御モジュール140Xを有している。仮想化SW115Xは、SS管理モジュール117Xを含み、プリントコントローラモジュール125Xは、出力制御モジュール130Xを含み、C−Log127AXを記憶している。印刷装置180Xは、I−Log182AXを記憶している。記憶領域190Xは、スナップショット192Xを記憶している。
仮想計算機システムである情報処理装置1300Yは、下層から順に、物理マシン2105Y、ホストOS2110Y、仮想化SW2115Y、ゲストOS2120Yを有し、ゲストOS2120Y上にクライアントSW1325、障害情報収集Cモジュール135Y、SS制御Cモジュール140Yを有している。仮想化SW2115Yは、SS管理2モジュール117Yを含み、クライアントSW1325は、Cl−Log1327Aを記憶している。記憶領域2190Yは、スナップショット2:192Yを記憶している。
情報処理装置1300Xと情報処理装置1300Yは、通信回線を介して、接続されている。
情報処理装置1300XのSS制御モジュール140Xは、情報処理装置1300Xとは異なる情報処理装置1300Y(情報処理装置1300Xに対して印刷依頼を行った仮想計算機)のスナップショットを、情報処理装置1300Yに保持させる。
プリントコントローラである情報処理装置1300Xと通信回線を介して接続された外部機器である情報処理装置1300Y(クライアント装置)が、情報処理装置1300Xと同様に仮想化環境で動作している場合、情報処理装置1300X側(印刷装置180Xを含む)で障害が発生すると、スナップショット採取指示にしたがい、情報処理装置1300XのSS制御モジュール140Xは、情報処理装置1300YのSS制御Cモジュール140Yに対して、スナップショットを採取する様に指示(Get_CSS)を送る(Step132、Step134)。
スナップショットの採取指示を受けたSS制御Cモジュール140Yは、クライアントSW1325が動作しているゲストOS2120Yのスナップショットを作成するように、SS管理2モジュール117Yに指示すること(Step136)で、クライアントSW1325のスナップショットがクライアントSW1325の動作する記憶領域2190Y内にスナップショット2:192Yとして作成される。このとき、情報処理装置1300XのSS制御モジュール140Xは、前述の実施の形態によるログ情報の処理とゲストOS120Xのスナップショットの作成を行う(Step140)。
そして、発生した障害を復旧し、所定の印刷処理が終了した後(又は、印刷業務の空いた時間)、前述の実施の形態による処理例のように、情報処理装置1300Xでは、スナップショット192Xの再現後、プリントコントローラモジュール125内部とゲストOS120Xのログ情報(C−Log127AX)、印刷装置180のログ情報(I−Log182AX)の取得を行う。
それとは別に、情報処理装置1300Y(クライアントSW1325)においても、情報処理装置1300XのSS管理モジュール117Xからのスナップショットの再現指示により、情報処理装置1300YのSS管理2モジュール117Yは、先に作成された記憶領域2190Y内のスナップショット2:192Yを用いて障害発生時の状態を再現させる。そして、障害情報収集Cモジュール135Yは、情報処理装置1300Y(クライアントSW1325)のログ情報(Cl−Log1327A)を要求し(Step152)、取得する(Step154)。そして、障害情報収集Cモジュール135Yは、取得したCl−Log1327Aを、情報処理装置1300Xの障害情報収集モジュール135Xに送信する。情報処理装置1300Xの障害情報収集モジュール135Xは、C−Log127AX、I−Log182AXとともに、情報処理装置1300YのCl−Log1327Aを取得することになる。C−Log127AX、I−Log182AX、印刷依頼を行った情報処理装置1300YのCl−Log1327Aを解析することによって、障害の原因、対策等を検討することになる。
<<第4の実施の形態>>
第4以降の実施の形態は、外部機器として記憶領域190を対象とし、印刷装置180による処理データであるプリントデータを障害情報として取得するものである。
第4の実施の形態を説明する前に、その前提となる技術について、図25〜図28の例を用いて説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
図25は、従来技術の例を示す説明図である。情報処理装置2500は、外部装置である印刷装置2580、記憶領域2590を制御して、印刷処理を行わせる。情報処理装置2500は、仮想計算機システムではない、一般的な計算機(1つの物理マシン2505に1つのOS2510で構成したコンピュータ)である。例えば、情報処理装置2500は、プリンタサーバー又はプリンタコントローラとしての機能を有し、印刷装置2580は、高速プリンタである。
情報処理装置2500は、下層から順に、物理マシン2505、OS2510を有し、OS2510上にプリントコントローラモジュール2525、障害情報収集モジュール2535を有している。プリントコントローラモジュール2525は、出力制御モジュール2530、ジョブ制御モジュール2532を含んでおり、C−Log2527Aを記憶している。印刷装置2580は、I−Log2582Aを記憶している。記憶領域2590は、プリントデータ2594を記憶している。
情報処理装置2500又は印刷装置2580で障害が発生すると、障害情報収集モジュール2535からの指示(Get_Log)で、プリントコントローラモジュール2525は内部及びOS2510のログ情報(C−Log2527A)の収集を行う。また、発生した障害の原因がプリントコントローラモジュール2525の管理外にある印刷装置2580にある可能性もある。したがって、プリントコントローラモジュール2525は内部の出力制御モジュール2530を通して(出力制御モジュール2530からの印刷装置2580へのget_logの指示によって)、印刷装置2580のログ情報(I−Log2582A)の収集も併せて行い、プリントコントローラモジュール2525は障害情報収集モジュール2535にC−Log2527AとI−Log2582Aを返す。そして、障害情報収集モジュール2535は、記憶領域2590に、C−Log2527AとI−Log2582Aを記憶させる。なお、障害情報として、ジョブ制御モジュール2532の処理対象であるプリントデータ2594を含めるべきであるが、ジョブ制御モジュール2532を障害情報として含めることは行われていない。
図26は、従来技術による処理例を示す説明図である。
情報処理装置2500は、印刷装置2580に印刷処理を行わせる運用をしており、その運用中に障害発生2610したとする。なお、そのときに、ジョブ制御モジュール2532が対象としているデータは、PrintDataA2594Aであるとする。
障害発生2610を検知すると、OS2510上の障害情報収集モジュール2535に対して障害情報収集指示2674が行われる。障害情報収集モジュール2535は、プリントコントローラモジュール2525に対して、障害情報収集指示2674の指示を行い、プリントコントローラモジュール2525内部とOS2510のそのときの状態(I−Log)、出力制御モジュール2530が取得した印刷装置2580のそのときの状態(C−Log)、を取得する(I−Log,C−Log2678)。そして、障害情報収集モジュール2535は、それらを記憶領域2590にC−Log2527B、I−Log2582Cとして記憶させる。その後、障害のリカバリ処理2650が行われ、運用再開2660となる。この場合、ジョブ制御モジュール2532が対象とするデータは、PrintDataA2594B(障害発生2610時のPrintDataA2594A)である。そして、その運用が終了した場合(PrintDataA2594Bの印刷終了した場合)、ジョブA削除2640されることとなる。そして、次のPrintDataB2698がジョブ制御モジュール2532の処理対象となる。
なお、この後、印刷装置2580の運用が終了した後に、C−Log2527B、I−Log2582Cを解析することによって、障害の原因、対策等を検討することになる。しかし、その時点では、PrintDataA2594A(PrintDataA2594B)は削除されており、障害情報として収集できない(その検討時点では、PrintDataA2594Aとは異なるPrintDataB2698)。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理2650、運用再開2660を行うのは、印刷装置2580での印刷処理を続けるためである。特に、印刷装置2580が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
次に、仮想計算機システムによる例を示す。図27は、従来技術の例を示す説明図である。情報処理装置2700は、仮想計算機システムであって、外部装置である印刷装置2780、記憶領域2790を制御して、印刷処理を行わせる。例えば、情報処理装置2700は、プリンタサーバーとしての機能を有し、印刷装置2780は、高速プリンタである。
図27の例に示すように、物理マシン2705上にホストOS2710と仮想化SW2715による仮想ハードウェアを構築し、その上にゲストOS2720をインストールし、さらにゲストOS2720上に応用プログラム(アプリケーション)であるプリントコントローラモジュール2725をインストールする。
仮想化SW2715は、物理マシン2705上に、複数のゲストOS2720の並列的な同居を可能にするソフトウェアである。つまり、仮想化SW2715は、CPU、メモリ、HDD等のハードウェアをソフトウェア的に構築し、ゲストOS2720が依って立つハードウェアリソースを仮想マシンとして用意するものである。
プリントコントローラモジュール2725として、例えば、プリンタ制御プログラム(具体例として、デジタルフロントエンド等)がある。この場合、仮想マシンはそれぞれが隔離されており、いずれかに障害(例えば、クラッシュ等)が発生しても、他の仮想マシン上でのプリンタ制御プログラムはそのまま稼働しており、印刷することができる。
具体的には、情報処理装置2700は、下層から順に、物理マシン2705、ホストOS2710、仮想化SW2715、ゲストOS2720を有し、ゲストOS2720上に応用プログラムであるプリントコントローラモジュール2725、障害情報収集モジュール2735を有している。仮想化SW2715は、SS管理モジュール2717を含み、プリントコントローラモジュール2725は、出力制御モジュール2730、ジョブ制御モジュール2732を含んでおり、C−Log2727Aを記憶している。印刷装置2780は、I−Log2782Aを記憶している。記憶領域2790は、スナップショット2792、プリントデータ2794を有している共有記憶領域2796を記憶している。なお、図27の例では、仮想化SW2715の上に1つのゲストOS2720の例を示しているが、仮想計算機システムであるので、仮想化SW2715の上に複数のゲストOS2720が構成されていてもよい。
情報処理装置2700では、応用プログラムであるプリントコントローラモジュール2725を仮想化環境で動作させ、その仮想化環境のスナップショット機能(SS管理モジュール2717の機能)を用いて、障害発生時の障害状態をスナップショット2792として記憶領域2790内に保持させ、発生した障害を復旧し、所定の印刷処理が終了後(印刷業務の空いた時間)に、保存されたスナップショット2792を用いて障害発生時の状態を再現させた上で障害情報を採取する。ここで、プリントコントローラモジュール2725が動作するゲストOS2720のスナップショットの作成と再現をSS管理モジュール2717が行う。
図28の例を用いて説明する。情報処理装置2700は、印刷装置2780に印刷処理を行わせる運用をしており、その運用中に障害発生2810したとする。
障害発生2810を検知すると、ユーザの操作に応じて、SS管理モジュール2717に対してスナップショット採取指示2822が行われる。SS管理モジュール2717は、そのときのゲストOS2720とプリントコントローラモジュール2725における状態A:2840Aをスナップショット2792として、記憶領域2790に記憶させる。なお、その時点でジョブ制御モジュール2732では、共有記憶領域2796内のPrintDataA2794Aを対象として印刷処理が行われている。しかし、SS管理モジュール2717のスナップショットは、情報処理装置2700内部の状態を取得するものであるので、外部装置である共有記憶領域2796のPrintDataA2794Aは、スナップショットの対象ではない。
その後、障害のリカバリ処理2850が行われ、運用再開2860となる。この場合、ジョブ制御モジュール2732が対象とするデータは、PrintDataA2794B(障害発生2810時のPrintDataA2794A)である。そして、その運用が終了した場合(PrintDataA2794Bの印刷終了した場合)、ジョブA削除2840されることとなる。そして、次のPrintDataB2898がジョブ制御モジュール2732の処理対象となる。
そして、印刷装置2780の運用が終了した後に、ユーザの操作に応じて、SS管理モジュール2717に対してスナップショット再現指示2870を行うと、SS管理モジュール2717は、記憶領域2790内のスナップショット2792を読み出して、ゲストOS2720、プリントコントローラモジュール2725の状態を状態A:2840B(状態A:2840Aと同じ状態)に戻す。そして、ユーザの操作に応じて、障害情報収集モジュール2735に対して障害情報収集指示2874を行うと、図26の例で示したものと同等の処理を行う。つまり、障害情報収集モジュール2735は、プリントコントローラモジュール2725に対して、Get_Log2876の指示を行い、プリントコントローラモジュール2725内部とゲストOS2720のそのときの状態をC−Log2884、I−Log2882として取得する。障害情報収集モジュール2735は、それらを記憶領域2790にC−Log2727B、I−Log2782Bとして記憶させる。
障害情報収集モジュール2735を用いて情報処理装置2700の管理の外部にある共有記憶領域2796(記憶領域2790)内のプリントデータの収集を行うと、図28の例に示すように、障害発生2810のときと障害情報収集指示2874の間に印刷処理(運用再開2860)を行っているので、障害情報収集指示2874のときの共有記憶領域2796内のPrintDataB2898は、障害後の印刷処理(運用再開2860後の印刷処理)における対象データが書き込まれており、障害が発生したときの印刷装置2780のログ情報であるI−Log2782Aとは異なった内容になっている。そのため印刷装置2780内の運用再開2860後の印刷処理によっては、障害発生時の対象データであるPrintDataA2794Aは既に削除されているという状況が発生する。つまり、障害発生2810したときのPrintDataA2794Aが、障害情報収集指示2874によって記憶領域2790に記憶されるわけではない。
図27の例に示した情報処理装置2700では、すべてのデータをスナップショットに含めるとデータサイズが大きくなり、ある運用で取り込んだリソースや新たに作成した保存ジョブ等は別の運用時に使用するために、情報処理装置2700外の記憶領域2790(共有記憶領域2796)に配置している。そして、一時的に使用する印刷データ(PrintDataA2794A等)も記憶領域2790(共有記憶領域2796)に配置することでスナップショットの容量を削減している。
しかし、スナップショットを用いて障害発生時の状態を再現させようとしたとき、記憶領域2790(共有記憶領域2796)に配置したデータが変化してしまって、再現できない障害のケースが存在する。例えば、印刷データを記憶領域2790(共有記憶領域2796)に記憶させていた場合、前述のように、発生した障害をリカバリして、印刷処理を終了させた後に、障害発生時の状態を再現させるためのスナップショットを用いると、障害発生時の印刷データは含まれておらず、障害発生時の状態の再現が困難となる。
障害発生時の状態の再現のためには、印刷処理時に必要なデータで印刷処理後に削除される又は変化してしまうデータに関して保存しておく必要がある。
図18は、第4の実施の形態の構成例についての概念的なモジュール構成図である。
情報処理装置1800は、下層から順に、物理マシン105、ホストOS110、仮想化SW115、ゲストOS120を有し、ゲストOS120上にプリントコントローラモジュール125、障害情報収集モジュール135、SS制御モジュール140を有している。仮想化SW115は、SS管理モジュール117を含み、プリントコントローラモジュール125は、出力制御モジュール130、ジョブ制御モジュール1832を含み、C−Log127A、I−Log182Bを記憶している。印刷装置180は、I−Log182Aを記憶している。記憶領域190は、共有記憶領域1896、スナップショット192を記憶しており、共有記憶領域1896は、プリントデータ1894を記憶している。
情報処理装置1800は、概要として、次に示すような処理を行う。
プリントコントローラモジュール125をゲストOS120上で動作させ、その仮想計算機システムのスナップショット機能を用いて障害情報の収集を行う場合、前述したように、障害発生と障害情報の取得のタイミングが大きく異なる。このため、スナップショットの対象外である記憶領域190にあるプリントデータ1894やリソースデータ等は、障害情報の取得時には障害発生時のデータを保持していない場合があり得る。そこで、従来の障害情報収集の機能を、SS制御モジュール140と障害情報収集モジュール135に分けて、SS制御モジュール140により、障害発生時に処理を行っているジョブに関するデータ(例えば、プリントデータ1894)をスナップショット採取前に削除されないようにした。
これにより、障害発生の直後にスナップショットを作成すれば、時間の要する障害情報の収集を行うことなく、障害のリカバリ処理後に本来の印刷処理を直ちに再開できる。そして、印刷業務が終了した後など好きなタイミングで、スナップショットを再現することで、障害発生直後の障害情報(プリントコントローラモジュール125、印刷装置180だけでなく、ジョブ関連の情報であるプリントデータ1894)を取得できる。
つまり、印刷装置180のユーザは、障害発生に伴う障害情報の収集を行わなくてよくなる。その結果、印刷装置180の稼働率を上げることができることとなる。
C−Log127A、I−Log182Bの収集処理については、第1の実施の形態である情報処理装置100の処理と同等である。
情報処理装置1800又は印刷装置180で障害が発生すると、スナップショット採取指示にしたがいSS制御モジュール140は、プリントコントローラモジュール125に処理中のジョブ情報の収集を依頼し、それとともにプリントコントローラモジュール125に対してプリントデータの保持を指示する。プリントコントローラモジュール125はジョブ制御モジュール1832を通して現在処理中のプリントデータ1894のファイル名を入手し、そのプリントデータファイル名(例えば、ここではPrintDataAとする)にリンクを張るファイル(ここではPrintDataA.lnkとする)を共有記憶領域1896に作成する。
作成終了後、プリントコントローラモジュール125はSS制御モジュール140に、データ保持が終了した旨を返信する。SS制御モジュール140は、SS管理モジュール117にゲストOS120のスナップショットの作成を指示する。
次に、ユーザの処理を優先させるため発生した障害をリカバリし、所定の印刷処理が終了したとき、前述のプリントデータファイル名のPrintDataAは削除されることになる。しかし、リンクしているファイルがあるため実体は削除されていない。
障害情報収集のためSS管理モジュール117へスナップショット再現指示をすると、スナップショット取得時の内部状態に戻されるとともに、プリントデータの名称(PrintDataA.lnk)を元に戻す処理(プリントデータ名称の復元)を実行することで、削除されたプリントデータを復元する。
障害情報収集の指示がされると障害情報収集モジュール135は、ジョブ制御モジュール1832から処理中のプリントデータ名を得て共有記憶領域1896からプリントデータ1894を収集し、それとともにプリントコントローラモジュール125内のC−Log127Aと印刷装置180のログ情報であるI−Log182Bを収集し、障害情報として取りだす。
これにより障害発生時のプリントデータ1894まで含めて状態が復元され、プリントデータ1894に起因する障害の情報収集が可能になる。
前述のリンクファイルの作成は、リンク情報を含んでいるだけであり、実体のコピーは行われないため処理時間及びディスクスペースともにほとんど必要ない。
図19は、第4の実施の形態による処理例を示す説明図である。
情報処理装置1800は、印刷装置180に印刷処理を行わせる運用をしており、その運用中に障害発生1910したとする。
障害発生1910を検知すると、ユーザの操作に応じて、ゲストOS120上のSS制御モジュール140に対して、スナップショット採取指示1922を行う。なお、プリントコントローラモジュール125内のステータスを監視する事により、自動的に採取指示を出すことも可能である。SS制御モジュール140は、ジョブ制御モジュール1832に対して、Get PrintData File name1924の指示を行う。ジョブ制御モジュール1832は、プリントコントローラモジュール125の制御にしたがって、共有記憶領域1896内のPrintDataA1894Aのファイル名(PrintDataA)を取得する。
ジョブ制御モジュール1832は、SS制御モジュール140にファイル名である”PrintDataA”1930を返す。SS制御モジュール140は、”PrintDataA”1930にリンクを張るファイル(ここではPrintDataA1894Aにlink to PrintDataA1926を張るPrintDataA.lnk1928A)を共有記憶領域1896に作成する。
そして、SS制御モジュール140は、処理が終了したことを示すDone1932をSS管理モジュール117に返す。SS管理モジュール117は、ゲストOS120とプリントコントローラモジュール125の状態A:1940Aをスナップショット192として、記憶領域190に記憶させる。その後、障害の復旧であるリカバリ処理1950が行われ、運用再開1960となる。この運用では、PrintDataA1894Bの印刷処理が終了する。ジョブ制御モジュール1832は、PrintDataA1894B(PrintDataA1894A)に対して、ジョブA削除1940する。したがって、PrintDataA1894Bは削除されるが、PrintDataA.lnk1928Aがあるので、PrintDataA1894Bの実体は削除されていないこととなる。なお、次の印刷処理で、PrintDataB1998(PrintDataA1894Bとは異なる)が対象データになっているとする。
そして、発生した障害を復旧し、所定の印刷処理が終了した後(印刷業務の空いた時間)、SS管理モジュール117は、ユーザの操作に応じて、スナップショット再現指示1970を受け、SS管理モジュール117は、記憶領域190内のスナップショット192を用いて障害発生時の状態A:1940B(状態A:1940A)を再現させる。そして、SS管理モジュール117は、Set Data1972(プリントデータ名称の復元)をPrintDataA.lnk1928Cに対して行う。これによって、PrintDataA1894C(PrintDataA1894B)を復元する。
障害情報収集指示1974にしたがい、障害情報収集モジュール135はプリントコントローラモジュール125へのGetData1976の指示によって、ジョブ制御モジュール1832から、共有記憶領域1896内の”PrintDataA”1978(PrintDataA1894C)を取得する。そして、障害情報収集モジュール135はプリントコントローラモジュール125へのGet_Log1980の指示によって、出力制御モジュール130から、I−Log1982、C−Log1984を取得する。そして、記憶領域190内に、C−Log127B(C−Log1984)、I−Log182C(I−Log1982)、PrintDataA1894D(PrintDataA1894C)を記憶させる。C−Log127B、I−Log182C、PrintDataA1894Dを解析することによって、障害の原因、対策等を検討することになる。特に、障害発生時のプリントデータまで含めて状態が復元され、プリントデータに起因する障害の情報収集が可能になる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理1950、運用再開1960を行うのは、印刷装置180での印刷処理を続けるためである。特に、印刷装置180が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
図20は、第4の実施の形態による処理例を示すフローチャートである。
ステップS2002では、SS制御モジュール140は、スナップショット採取指示1922を受信する。
ステップS2004では、SS制御モジュール140は、処理中の印刷データ名を入手したか否かを判断し、入手した場合はステップS2006へ進み、それ以外の場合はステップS2008へ進む。
ステップS2006では、SS制御モジュール140は、入手印刷データ名に“lnk”というサフィックスを付加したファイルとハードリンクを設定する。
ステップS2008では、SS制御モジュール140は、印刷データ名にNULLを設定する。
ステップS2010では、SS制御モジュール140は、SS管理モジュール117へ印刷データ名を通知する。
図21は、第4の実施の形態による処理例を示すフローチャートである。
ステップS2102では、SS管理モジュール117は、スナップショット再現指示1970を受信する。
ステップS2104では、SS管理モジュール117は、印刷データ名がNULLであるか否かを判断し、印刷データ名がNULLである場合は処理を終了(ステップS2199)し、それ以外の場合はステップS2106へ進む。
ステップS2106では、SS管理モジュール117は、「印刷データ名.lnk」というファイルがあるか否かを判断し、ある場合はステップS2108へ進み、それ以外の場合は処理を終了する(ステップS2199)。
ステップS2108では、SS管理モジュール117は、印刷データ名へファイル名を変更(具体的には、「.lnk」を削除)する。
<<第5の実施の形態>>
図22は、第5の実施の形態による処理例を示す説明図である。なお、モジュール構成例は、第4の実施の形態の構成例(図18に示す例)と同等である。
共有記憶領域1896内のデータ情報の収集と、SS管理モジュール117を用いてプリントコントローラモジュール125の動作するゲストOS120のスナップショットの作成を指示するSS制御モジュール140を導入し、記憶領域190に削除されたプリントデータ情報の復元を行う。
C−Log127A、I−Log182Bの収集処理については、第1の実施の形態である情報処理装置100の処理と同等である。
情報処理装置1800又は印刷装置180で障害が発生すると、スナップショット採取指示にしたがいSS制御モジュール140は、プリントコントローラモジュール125に処理中のジョブ情報の収集を依頼する。プリントコントローラモジュール125はジョブ制御モジュール1832を通して現在処理中のプリントデータ1894のファイル名を入手し、SS制御モジュール140に渡す。SS制御モジュール140は、SS管理モジュール117に、現在処理中のプリントデータ1894のファイル名を渡し、プリントデータ1894を含めたスナップショット処理を行うように指示する。SS管理モジュール117は、現在処理中のプリントデータ1894を含めたスナップショットを作成する。
次に、ユーザの処理を優先させるため発生した障害をリカバリし、所定の印刷処理が終了する。印刷処理が終了することによって、共有記憶領域1896からプリントデータ1894は削除される。
障害情報収集のためSS管理モジュール117へスナップショット再現指示をすると、スナップショット取得時の内部状態に戻されるとともに、プリントデータ1894を元に戻す処理を実行し、削除されたプリントデータ1894を共有記憶領域1896内に復元する。
障害情報収集の指示がされると障害情報収集モジュール135は、ジョブ制御モジュール1832から処理中のプリントデータ名を得て共有記憶領域1896からプリントデータ1894を収集し、それとともにプリントコントローラモジュール125内のC−Log127Aと印刷装置180のログ情報であるI−Log182Bを収集し、障害情報として取りだす。
これにより障害発生時のプリントデータ1894まで含めて状態が復元され、プリントデータ1894に起因する障害の情報収集が可能になる。
図22の例を用いて、詳細に説明する。
情報処理装置1800は、印刷装置180に印刷処理を行わせる運用をしており、その運用中に障害発生2210したとする。
障害発生2210を検知すると、ゲストOS120上のSS制御モジュール140に対して、ユーザの操作に応じて、スナップショット採取指示2222を行う。なお、プリントコントローラモジュール125内のステータスを監視する事により、自動的に採取指示を出すことも可能である。SS制御モジュール140は、ジョブ制御モジュール1832に対して、Get PrintData File name2224の指示を行う。ジョブ制御モジュール1832は、プリントコントローラモジュール125の制御にしたがって、共有記憶領域1896内のPrintDataA2228Aのファイル名(PrintDataA)を取得する。
ジョブ制御モジュール1832は、SS制御モジュール140にファイル名である”PrintDataA”2226を返す。SS制御モジュール140は、SS管理モジュール117に、”PrintDataA”2226をスナップショット対象ファイルとして通知する。SS管理モジュール117は、状態A:2240AとしてゲストOS120、プリントコントローラモジュール125のスナップショット192を、指定されたプリントデータ(”PrintDataA”2226の実体データ)も含んで生成し、記憶領域190に記憶させる。その後、障害の復旧であるリカバリ処理2250が行われ、運用再開2260となる。この運用では、PrintDataA2228Bの印刷処理が終了する。ジョブ制御モジュール1832は、PrintDataA2228B(PrintDataA2228A)に対して、ジョブA削除2242する。したがって、PrintDataA2228Bは共有記憶領域1896から削除される。なお、次の印刷処理で、PrintDataB2298(PrintDataA2228Bとは異なる)が対象データになっているとする。
そして、発生した障害を復旧し、所定の印刷処理が終了した後(印刷業務の空いた時間)、SS管理モジュール117は、ユーザの操作に応じて、スナップショット再現指示2270を受け、SS管理モジュール117は、記憶領域190内のスナップショット192を用いて障害発生時の状態A:2240B(状態A:2240A)を再現させる。そして、SS管理モジュール117は、スナップショット192内のPrintDataA2228A(PrintDataA2228C)を共有記憶領域1896に復元する。
障害情報収集指示2274にしたがい、障害情報収集モジュール135はプリントコントローラモジュール125へのGetData2276の指示によって、ジョブ制御モジュール1832から、共有記憶領域1896内の”PrintDataA”2278(PrintDataA2228C)を取得する。そして、障害情報収集モジュール135はプリントコントローラモジュール125へのGet_Log2280の指示によって、出力制御モジュール130から、I−Log2282、C−Log2284を取得する。そして、記憶領域190内に、C−Log127B、I−Log182C、PrintDataA1894D(PrintDataA2228C)を記憶させる。C−Log127B、I−Log182C、PrintDataA1894Dを解析することによって、障害の原因、対策等を検討することになる。特に、障害発生時のプリントデータまで含めて状態が復元され、プリントデータに起因する障害の情報収集が可能になる。なお、ログを収集した後に、そのログの解析を行わずに、リカバリ処理2250、運用再開2260を行うのは、印刷装置180での印刷処理を続けるためである。特に、印刷装置180が高速プリンタである場合は、ダウン期間(印刷できない期間)を短くする要請がある。
図23は、第5の実施の形態による処理例を示すフローチャートである。
ステップS2302では、SS制御モジュール140は、スナップショット採取指示2222を受信する。
ステップS2304では、SS制御モジュール140は、処理中の印刷データ名を入手したか否かを判断し、入手した場合はステップS2306へ進み、それ以外の場合はステップS2308へ進む。
ステップS2306では、SS制御モジュール140は、SS管理モジュール117へスナップショット対象ファイルとして印刷データ名を通知する。
ステップS2308では、SS制御モジュール140は、印刷データ名にNULLを設定する。
図24は、第5の実施の形態による処理例を示すフローチャートである。
ステップS2402では、SS管理モジュール117は、スナップショット再現指示2270を受信する。
ステップS2404では、SS管理モジュール117は、印刷データ名がNULLであるか否かを判断し、印刷データ名がNULLである場合は処理を終了し(ステップS2499)、それ以外の場合はステップS2406へ進む。
ステップS2406では、SS管理モジュール117は、印刷データを共有記憶領域1896へ格納する。
図29を参照して、本実施の形態の計算機のハードウェア構成例について説明する。図29に示す構成は、例えばパーソナルコンピュータ(PC)等によって構成されるものであり、スキャナ等のデータ読み取り部2917と、プリンタ等のデータ出力部2918を備えたハードウェア構成例を示している。
CPU(Central Processing Unit)2901は、前述の実施の形態において説明した各種のモジュール、すなわち、ホストOS110、仮想化SW115、ゲストOS120、プリントコントローラモジュール125、出力制御モジュール130、SS制御モジュール140、障害情報収集モジュール135等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
ROM(Read Only Memory)2902は、CPU2901が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)2903は、CPU2901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバス等から構成されるホストバス2904により相互に接続されている。
ホストバス2904は、ブリッジ2905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス2906に接続されている。
キーボード2908、マウス等のポインティングデバイス2909は、操作者により操作される入力デバイスである。ディスプレイ2910は、液晶表示装置又はCRT(Cathode Ray Tube)等があり、各種情報をテキストやイメージ情報として表示する。
HDD(Hard Disk Drive)2911は、ハードディスク(フラッシュメモリ等であってもよい)を内蔵し、ハードディスクを駆動し、CPU2901によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、C−Log127、I−Log182、プリントデータ1894等が格納される。さらに、その他の各種データ、各種コンピュータ・プログラム等が格納される。
ドライブ2912は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体2913に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース2907、外部バス2906、ブリッジ2905、及びホストバス2904を介して接続されているRAM2903に供給する。リムーバブル記録媒体2913も、ハードディスクと同様のデータ記録領域として利用可能である。
接続ポート2914は、外部接続機器2915を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート2914は、インタフェース2907、及び外部バス2906、ブリッジ2905、ホストバス2904等を介してCPU2901等に接続されている。通信部2916は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部2917は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部2918は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
なお、図29に示す計算機のハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、図29に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図29に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
100…情報処理装置
105…物理マシン
110…ホストOS
115…仮想化SW
117…SS管理モジュール
120…ゲストOS
125…プリントコントローラモジュール
127…C−Log
130…出力制御モジュール
135…障害情報収集モジュール
140…SS制御モジュール
180…印刷装置
182…I−Log
190…記憶領域
192…スナップショット

Claims (6)

  1. 応用プログラムがインストールされているゲストOSを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、
    外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、
    外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストOSのスナップショットを作成するスナップショット作成部、
    を備え
    前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、
    前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、
    前記スナップショット作成部によってゲストOSのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、
    仮想計算機システム。
  2. 外部イベント保存部を当該仮想計算機の内部に有する、
    請求項1に記載の仮想計算機システム。
  3. 外部イベント保存部を前記外部装置の内部に有する、
    請求項1又は2に記載の仮想計算機システム。
  4. 外部イベント保存部が、当該仮想計算機とは異なる第2の仮想計算機のスナップショットとして第2の仮想計算機を搭載するコンピュータ内部の保存手段である、
    請求項1から3のいずれか一項に記載の仮想計算機システム。
  5. 外部イベント保存部でイベント保存が終わった旨の通知を受け付ける受付手段
    をさらに備え、
    スナップショット作成部は、受付手段が通知を受け付けた後に、スナップショットを作成する
    請求項1から4のいずれか一項に記載の仮想計算機システム。
  6. コンピュータを、
    応用プログラムがインストールされているゲストOSを搭載する仮想計算機の外部に設けられた外部装置に係るイベントを取得するための制御を行う外部イベント取得制御部と、
    外部イベント取得制御部により取得した外部イベントを保存する外部イベント保存部と、
    外部イベント保存部に外部イベントが保存されてから、応用プログラムを含むゲストOSのスナップショットを作成するスナップショット作成部、
    として機能させ
    前記応用プログラムは、前記外部装置である印刷装置の制御用プログラムであり、
    前記外部イベント保存部が保存する外部イベントとして、前記印刷装置におけるプリントデータに起因する障害を含み、
    前記スナップショット作成部によってゲストOSのスナップショットを作成された後に、前記印刷装置による印刷の再開を行い、該印刷が終了した後に、前記外部イベントと前記スナップショットによる復元を行う、
    仮想計算機プログラム。
JP2015168955A 2015-08-28 2015-08-28 仮想計算機システム及び仮想計算機プログラム Active JP6610094B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015168955A JP6610094B2 (ja) 2015-08-28 2015-08-28 仮想計算機システム及び仮想計算機プログラム
US15/003,215 US9870249B2 (en) 2015-08-28 2016-01-21 Virtual computer system, method, and non-transitory computer readable medium
CN201610124518.5A CN106484561B (zh) 2015-08-28 2016-03-04 虚拟计算机系统和外部设备控制方法
EP16159402.3A EP3136240B1 (en) 2015-08-28 2016-03-09 Virtual computer system, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015168955A JP6610094B2 (ja) 2015-08-28 2015-08-28 仮想計算機システム及び仮想計算機プログラム

Publications (2)

Publication Number Publication Date
JP2017045371A JP2017045371A (ja) 2017-03-02
JP6610094B2 true JP6610094B2 (ja) 2019-11-27

Family

ID=55696882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015168955A Active JP6610094B2 (ja) 2015-08-28 2015-08-28 仮想計算機システム及び仮想計算機プログラム

Country Status (4)

Country Link
US (1) US9870249B2 (ja)
EP (1) EP3136240B1 (ja)
JP (1) JP6610094B2 (ja)
CN (1) CN106484561B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7179589B2 (ja) 2018-11-21 2022-11-29 東芝テック株式会社 画像形成装置及びログ情報取得システム
CN112583611A (zh) * 2019-09-27 2021-03-30 北京金山云网络技术有限公司 一种获取故障信息的方法、装置、电子设备及介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP4600447B2 (ja) * 2007-08-30 2010-12-15 ブラザー工業株式会社 ログ収集システム、及びコンピュータ装置
WO2009133669A1 (ja) * 2008-04-28 2009-11-05 パナソニック株式会社 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
JP5176837B2 (ja) * 2008-09-30 2013-04-03 富士通株式会社 情報処理システム及びその管理方法、制御プログラム並びに記録媒体
CN101520743B (zh) * 2009-04-17 2010-12-08 杭州华三通信技术有限公司 基于写时拷贝的数据存储方法及设备
US8671405B2 (en) * 2010-03-31 2014-03-11 Microsoft Corporation Virtual machine crash file generation techniques
JP5772962B2 (ja) * 2011-08-29 2015-09-02 富士通株式会社 情報処理装置、メモリダンプ採取方法、及びプログラム
US8782472B2 (en) * 2011-10-28 2014-07-15 Dell Products L.P. Troubleshooting system using device snapshots
JP2014032498A (ja) 2012-08-02 2014-02-20 Mitsubishi Electric Corp 計算機の障害再現方式
JP2014059733A (ja) * 2012-09-18 2014-04-03 Ricoh Co Ltd 情報処理システム、画像処理装置
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
JP2014106788A (ja) * 2012-11-28 2014-06-09 Konica Minolta Inc 画像形成装置および画像形成装置制御方法
JP5713138B1 (ja) 2014-09-12 2015-05-07 富士ゼロックス株式会社 仮想計算機システム、プリンタ制御システム、仮想計算機プログラム及びプリンタ制御プログラム

Also Published As

Publication number Publication date
JP2017045371A (ja) 2017-03-02
CN106484561B (zh) 2020-07-31
CN106484561A (zh) 2017-03-08
EP3136240B1 (en) 2021-01-20
EP3136240A1 (en) 2017-03-01
US9870249B2 (en) 2018-01-16
US20170060614A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US8797335B2 (en) Platform agnostic screen capture tool
CN105988857B (zh) 打印机控制系统及方法和非瞬时计算机可读介质
CN105045663A (zh) 快速部署虚拟机的方法与系统
US20110067088A1 (en) Image processing device, information processing method, and recording medium
JP6610094B2 (ja) 仮想計算機システム及び仮想計算機プログラム
CN111158957B (zh) 一种虚拟机文件恢复方法、系统、装置及存储介质
JP4259588B2 (ja) 情報処理システム及び情報処理プログラム
JP2012238142A (ja) 画像処理システム、画像処理装置およびプログラム
JP6641831B2 (ja) 画像処理装置、画像処理プログラム及び画像処理システム
JP5381059B2 (ja) 機器、ログ記録制御方法、及びプログラム
CN114328014A (zh) 一种数据备份方法、装置、系统及可读存储介质
JP2021101319A (ja) 情報処理装置及び情報処理プログラム
JP2009223577A (ja) ユーザインタフェースエミュレート装置及びユーザインタフェースエミュレートプログラム
JP2017138863A (ja) 情報処理装置及び情報処理プログラム
US20110010649A1 (en) Information processing apparatus, information processing method, and program
JP2016503916A (ja) 印刷処理時間を取得する方法及び印刷機能を有する電子装置
CN104424006A (zh) 装置及控制方法
JP2019193041A (ja) 情報処理装置、情報処理プログラム及び情報処理システム
EP3136241A1 (en) Virtual computer system, virtual computer program and method for virtual computer system
JP5842437B2 (ja) 情報処理装置及び情報処理プログラム
JP7040246B2 (ja) 情報処理装置及び情報処理プログラム
JP2008225519A (ja) 静的解析システム、サーバ、静的解析方法及びプログラム
JP2012178654A (ja) 画像処理装置、画像処理システム、及び画像処理プログラム
CN115509685A (zh) 一种快速批量创建云主机的方法、装置、服务器及介质
CN114387676A (zh) 基于windows生物识别框架的外部数据采集方法和终端设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191014

R150 Certificate of patent or registration of utility model

Ref document number: 6610094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350