JP2012018453A - 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法 - Google Patents

計算機装置,障害復旧制御プログラムおよび障害復旧制御方法 Download PDF

Info

Publication number
JP2012018453A
JP2012018453A JP2010153812A JP2010153812A JP2012018453A JP 2012018453 A JP2012018453 A JP 2012018453A JP 2010153812 A JP2010153812 A JP 2010153812A JP 2010153812 A JP2010153812 A JP 2010153812A JP 2012018453 A JP2012018453 A JP 2012018453A
Authority
JP
Japan
Prior art keywords
failure
type
virtual machine
recovery
driver
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.)
Granted
Application number
JP2010153812A
Other languages
English (en)
Other versions
JP5494298B2 (ja
Inventor
Takeo Murakami
岳生 村上
Masahide Noda
政秀 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010153812A priority Critical patent/JP5494298B2/ja
Priority to US13/064,920 priority patent/US8707109B2/en
Publication of JP2012018453A publication Critical patent/JP2012018453A/ja
Application granted granted Critical
Publication of JP5494298B2 publication Critical patent/JP5494298B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】仮想化技術が導入された計算機において,仮想化システムを継続動作させたまま,発生したデバイスドライバの障害を速やかに復旧する技術を提供する。
【解決手段】管理VM10において,障害復旧制御情報記憶部103は,障害種別とデバイス種別とに対応する障害復旧範囲と障害復旧方法とが定義された障害復旧制御情報を記憶する。障害検出情報受信部101は,デバイスドライバの障害を検出したVMから,障害検出情報を受信する。復旧方法決定部102は,障害復旧制御情報を参照し,障害検出情報に含まれる障害種別とデバイス種別とに対応する障害復旧範囲と障害復旧方法とを取得する。復旧指示送信部104は,障害復旧範囲から特定された障害復旧対象のVMに対して,障害復旧方法に示された復旧処理の実行を指示する障害復旧指示情報を送信する。障害復旧対象のVMは,管理VM10から指示された復旧処理を実行する。
【選択図】図1

Description

本発明は,仮想化技術が導入された計算機装置に関するものであり,発生したデバイスドライバ障害の復旧を行う計算機装置,障害復旧制御プログラムおよび障害復旧制御方法に関するものである。
物理的な1台の計算機で,仮想的な複数の計算機を動作させる仮想化技術がある。仮想化技術によって仮想化された計算機は,仮想計算機や仮想マシンなどと呼ばれる。
仮想化技術が導入された計算機では,計算機に搭載または接続されたデバイスを,計算機上で動作する複数の仮想マシンが共有する。このとき,各仮想マシンに,各デバイスを利用するためのデバイスドライバが必要となる。
近年,複数の仮想マシンでデバイスやそのデバイスドライバの共通利用が可能となるように,デバイスドライバをフロントエンドとバックエンドとに分離して仮想マシンに配置するスプリットドライバと呼ばれる技術が提案されている。この技術では,実際にデバイスを制御するバックエンドのデバイスドライバを専用の仮想マシンに配置し,デバイスを使用したい各仮想マシンは,そのデバイスドライバが配置された専用の仮想マシンを介して,デバイスを使用する。この技術を導入することにより,各仮想マシン向けのドライバ開発の負担を軽減することが可能となる。
このような仮想化技術が導入された計算機において,デバイスドライバの障害が発生した場合に,例えば,仮想マシンモニタを含む仮想化システム全体を再起動することにより,障害の復旧を図ることが可能である。
なお,ユーザが利用するユーザ用論理区画と,I/Oデバイスを有するI/O用論理区画とを独立して構成することにより,I/Oデバイスの障害の影響がユーザ用論理区画に波及することを防止する技術が知られている。また,障害管理VMとしてのホストOSにゲストOSからの障害発生の情報を集約する技術が知られている。また,システム内の構成要素で障害が発生したときに,代替構成要素を探索し,障害が発生した構成要素の代替処理を実行させる技術が知られている。また,ハイパーバイザが物理I/Oデバイスの障害監視を行い,障害発生時には障害を管理用仮想計算機に通知し,通知を受けた管理用仮想計算機が物理I/Oデバイスの障害リカバリ処理を行う技術が知られている。
特開2006−85543号公報 特開2009−151509号公報 特開平06―230992号公報 特開2008−186209号公報
上述の仮想化システム全体を再起動する方法では,障害が発生したデバイスドライバに関係しないアプリケーションプログラムや仮想マシンまでをも停止して,再起動を行わなければならないという問題がある。また,仮想化システム全体の再起動には,非常に時間がかかるという問題がある。
また,上述したような仮想化システムにおけるデバイスドライバの構成では,デバイスドライバ障害の復旧処理を行う適切な仮想マシンの範囲や,障害の復旧方法などは,仮想マシンの構成や,デバイスの種類,発生した障害の種類などにより異なる。そのため,デバイスドライバ障害の検出や,障害と関係がない処理に影響を及ぼさない範囲に限定した障害の復旧は,容易ではない。
本発明は,上記の問題点の解決を図り,仮想化技術が導入された計算機において,仮想化システムを継続動作させたまま,発生したデバイスドライバ障害を速やかに復旧することが可能となる技術を提供することを目的とする。
仮想計算機を実現する仮想計算機管理機構を搭載し,仮想計算機管理機構の制御によりデバイスドライバ用仮想計算機を介してデバイスとの通信を行うユーザ仮想計算機を動作させる計算機装置は,デバイスとの通信に用いられるデバイスドライバの障害が仮想計算機において検出された際に,当該障害が検出されたデバイスドライバの種別と当該検出された障害の種別とを含む障害検出情報を,当該障害を検出した仮想計算機から受信する障害検出情報受信部と,デバイスドライバの種別と当該デバイスドライバで生じ得る障害の種別とに対応付けて,当該障害が生じた場合に復旧処理の実行対象となる仮想計算機の種別と当該種別の仮想計算機において実行する復旧処理の内容とが定義された障害復旧制御情報を記憶する障害復旧制御情報記憶部と,障害復旧制御情報から,受信した障害検出情報に示されるデバイスドライバの種別と障害の種別とに対応する,仮想計算機の種別と復旧処理の内容とを取得する復旧方法決定部と,取得した仮想計算機の種別に基づいて特定される仮想計算機に対して,取得した復旧処理の内容を実行させる復旧指示を送信する復旧指示送信部とを備える。
上記の技術によって,デバイスドライバの種別や,発生したデバイスドライバ障害の種別に応じて,復旧処理を行う適切な仮想マシンの範囲や,障害の復旧方法を決定し,適切な障害復旧の制御を行うことができる。これにより,障害に関係がないアプリケーションや仮想マシンを継続動作させたまま,速やかにデバイスドライバ障害の復旧を行うことが可能となる。
本実施の形態による計算機装置の構成例を示す図である。 本実施の形態の管理VM障害管理部による障害復旧制御処理フローチャートである。 本実施例による計算機装置の構成例を示す図である。 本実施例による障害復旧制御情報の例を示す図である。 本実施例による障害復旧制御情報の具体的なデータ構造・定数の定義の例を示す図である。 本実施例によるデバイス使用情報の例を示す図である。 本実施例による障害復旧制御の通信で用いられる情報のデータ構造の例を示す図である。 本実施例によるデバイスドライバ障害発生時における障害復旧制御の処理シーケンスの例を示す図である。
以下,本実施の形態について,図を用いて説明する。
図1は,本実施の形態による計算機装置の構成例を示す図である。
計算機装置1は,仮想化技術が導入されたコンピュータであり,計算機装置1上では,複数の仮想化された計算機が動作する。仮想化された計算機は,仮想マシンや仮想計算機などと呼ばれる。以下では,仮想マシンをVM(Virtual Machine )とも呼ぶ。図1に示す計算機装置1において,管理VM10,ドライバVM20,ゲストVM30は,仮想マシンである。
仮想マシンモニタ40は,ハイパーバイザや仮想化OSなどとも呼ばれ,1つの計算機装置1を複数の仮想マシンとして使用するための制御を行う仮想マシン管理機構である。仮想マシンモニタ40は,仮想マシン間通信の制御など,計算機装置1上で動作する仮想マシンの制御を行う。
計算機装置1は,ハードウェア50として,CPU(Central Processing Unit )51,RAM(Random Access Memory)等のメモリ52,HDD(Hard Disk Drive )等の記憶装置53,その他様々なデバイス55などを備える。
管理VM10,ドライバVM20,ゲストVM30,仮想マシンモニタ40は,計算機装置1のコンピュータが備えるCPU51,メモリ52等のハードウェア50と,ソフトウェアプログラムとによって実現することが可能である。計算機装置1のコンピュータが実行可能なプログラムは,記憶装置53に記憶され,その実行時にメモリ52に読み出され,CPU51により実行される。
なお,計算機装置1のコンピュータは,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,計算機装置1のコンピュータは,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,計算機装置1のコンピュータで読み取り可能な記録媒体に記録しておくことができる。
管理VM10は,仮想化システム全体の管理を行う管理OSが動作する仮想マシンである。例えば,管理VM10は,計算機装置1の電源ON時に他のVMより先に起動され,他のVMの起動・停止の制御や,VM間のアクセス関係の管理などを行う。
管理VM10は,管理VM障害管理部100,デバイス使用情報記憶部110,通信処理部120を備える。
管理VM障害管理部100は,デバイスドライバの動作を監視し,デバイスドライバに障害が発生しているか否かの判断を行う。
また,管理VM障害管理部100は,デバイスドライバの障害を検出した場合に,または他のVMからデバイスドライバの障害検出の通知を受けた場合に,障害が発生したデバイスドライバの復旧方法の決定や指示などの障害復旧制御を行う。管理VM障害管理部100は,デバイスドライバ障害の復旧制御を行う機能部として,障害検出情報受信部101,復旧方法決定部102,障害復旧制御情報記憶部103,復旧指示送信部104を備える。
障害検出情報受信部101は,デバイスドライバの障害を検出したVMから,障害検出情報を受信する。管理VM10自身がデバイスドライバ障害を検出したときには,障害検出情報受信部101は,障害を検出した自身の管理VM障害管理部100から障害検出情報を得る。他のVMがデバイスドライバ障害を検出したときには,障害検出情報受信部101は,仮想マシンモニタ40を介したVM間通信によって,障害を検出したVMから障害検出情報を得る。
障害検出情報には,障害種別の情報とデバイス種別の情報とが含まれる。障害種別は,デバイスドライバで生じ得る障害の種別を示す。障害検出情報に含まれる障害種別の情報は,検出された障害の種別を示す情報である。また,デバイス種別は,計算機装置1に搭載または接続されるデバイス55の種別を示す。デバイス55の利用には,そのデバイス55に対応するデバイスドライバが必要となる。障害検出情報に含まれるデバイス種別の情報は,障害が検出されたデバイスドライバの種別を示す情報である。
復旧方法決定部102は,障害復旧制御情報記憶部103に記憶された障害復旧制御情報から,受信した障害検出情報に含まれている障害種別とデバイス種別とに対応する,障害復旧範囲と障害復旧方法とを取得する。障害復旧範囲は,障害の復旧処理の実行対象となるVMの種別を含む,障害の復旧処理を行うコンポーネントの範囲を示す。VMの種別は,ドライバVM20,ゲストVM30など,VMの用途や特徴等に応じて分類されたVMの種別を示す。障害復旧方法は,障害復旧範囲のVMに実行させる復旧処理の内容を示す。
障害復旧制御情報記憶部103は,障害復旧制御情報が記憶された,コンピュータがアクセス可能な記憶装置である。障害復旧制御情報は,障害種別とデバイス種別とに対応する,障害復旧範囲と障害復旧方法とが定義された情報である。例えば,本実施の形態による障害復旧制御情報は,デバイスドライバの種別とそのデバイスドライバで生じ得る障害の種別との組合せに対応する,障害の復旧処理の実行対象となるVMの種別とその種別のVMに実行させる復旧処理の内容との組合せが定義された情報である。
復旧指示送信部104は,取得された障害復旧範囲から障害復旧対象のVMを特定し,特定した障害復旧対象のVMに対して,取得された障害復旧方法の実行を指示する障害復旧指示情報を送信する。障害復旧指示情報は,取得された障害復旧方法に示された復旧処理の内容を障害復旧対象のVMに実行させる復旧指示の情報である。
デバイス使用情報記憶部110は,デバイス使用情報を記憶する,コンピュータがアクセス可能な記憶装置である。デバイス使用情報は,計算機装置1で使用される各デバイス55について,デバイス55に対応するデバイスドライバを有するドライバVM20と,該ドライバVM20を介して該デバイス55を使用するゲストVM30との対応関係を示す情報である。
デバイス使用情報記憶部110に記憶されたデバイス使用情報は,本実施の形態による障害復旧の制御にのみに利用される情報ではなく,初期化処理時,終了処理時,通常動作時などに各デバイスドライバの状態を参照,更新する際に利用される一般的な情報である。
復旧指示送信部104は,取得された障害復旧範囲にゲストVM30が含まれる場合に,デバイス使用情報から,障害検出情報に示されるデバイス種別に基づいて特定されるドライバVM20に対応するゲストVM30を,障害復旧対象のVMとして特定する。復旧指示送信部104は,障害復旧対象のVMとして特定したゲストVM30に対して,障害復旧指示情報を送信する。デバイス使用情報を用いることにより,障害復旧対象のVMを容易に特定することができる。
通信処理部120は,ドライバVM20やゲストVM30との間の,障害検出の報告や障害復旧の指示などに関するメッセージ通信の処理を行う。
ドライバVM20は,デバイス55を制御するデバイスドライバを動作させるデバイスドライバ用仮想マシンである。デバイス55の種別ごとに,ドライバVM20を複数起動することも可能である。ドライバVM20は,バックエンドドライバ21,ドライバVM障害管理部22,通信処理部23を備える。
バックエンドドライバ21は,ゲストVM30のフロントエンドドライバ31からのデバイス制御要求を受けて,実際にデバイス55の制御を行うバックエンドのデバイスドライバである。
ドライバVM障害管理部22は,デバイスドライバの動作を監視し,デバイスドライバに障害が発生しているか否かの判断を行う。デバイスドライバの障害を検出した場合には,ドライバVM障害管理部22は,管理VM10の管理VM障害管理部100に対して障害検出情報を送信する。また,ドライバVM障害管理部22は,管理VM10から受信した障害復旧指示情報の指示に従って,障害の復旧処理を実行する。
通信処理部23は,管理VM10との間の,障害検出の報告や障害復旧の指示などに関するメッセージ通信の処理を行う。
ゲストVM30は,ユーザが使用するアプリケーションの動作が可能なゲストOSが動作するユーザ仮想マシンである。計算機装置1の使用形態に応じて,ゲストVM30を複数起動することも可能である。ゲストVM30は,フロントエンドドライバ31,ゲストVM障害管理部32,通信処理部33を備える。
フロントエンドドライバ31は,ゲストVM30においてデバイス55への制御が発生した場合に,デバイス制御要求によってデバイス55への制御をドライバVM20のバックエンドドライバ21に依頼する,フロントエンドのデバイスドライバである。
ゲストVM障害管理部32は,デバイスドライバの動作を監視し,デバイスドライバに障害が発生しているか否かの判断を行う。デバイスドライバの障害を検出した場合には,ゲストVM障害管理部32は,管理VM10の管理VM障害管理部100に対して障害検出情報を送信する。また,ゲストVM障害管理部32は,管理VM10から受信した障害復旧指示情報の指示に従って,障害の復旧処理を実行する。
通信処理部33は,管理VM10との間の,障害検出の報告や障害復旧の指示などに関するメッセージ通信の処理を行う。
ここで,図1に示す計算機装置1におけるゲストVM30からデバイス55への制御について,説明する。
図1に示す計算機装置1では,計算機装置1に搭載または接続された各種デバイス55を,計算機装置1上で動作する複数のゲストVM30が共有する。各種デバイス55を利用するためには,各種デバイス55に応じたデバイスドライバが必要となる。このとき,ゲストVM30ごとに各種デバイス55のデバイスドライバを用意すると,各ゲストVM30に割り当てられたリソースが,それぞれ多数のデバイスドライバで使用されることになる。
図1に示す計算機装置1では,複数のゲストVM30でデバイス55やそのデバイスドライバの共通利用が可能となるように,デバイスドライバをフロントエンドドライバ31とバックエンドドライバ21とに分離するスプリットドライバと呼ばれる技術が導入されている。
この技術では,実際にデバイス55を制御する処理を行う,プログラム規模が大きいバックエンドドライバ21が,ドライバVM20に配置される。各ゲストVM30には,バックエンドドライバ21にデバイス55への制御を依頼する処理を行う,プログラム規模が小さいフロントエンドドライバ31が配置される。各ゲストVM30は,各自のフロントエンドドライバ31を介して,ドライバVM20のバックエンドドライバ21を共用する。
この技術により,図1に示す計算機装置1では,デバイスドライバの実装によるゲストVM30のリソース負荷を軽減している。
図1において,破線の矢印は,デバイス制御に関する通信を示す。ゲストVM30は,デバイス55の使用時に,直接にデバイス55を制御せずに,フロントエンドドライバ31から,ドライバVM20のバックエンドドライバ21に対して,デバイス制御の要求を送る。ドライバVM20において,バックエンドドライバ21は,ゲストVM30のフロントエンドドライバ31からのデバイス制御の要求に応じて,実際にデバイス55を制御する処理を行う。
次に,図1に示す計算機装置1において,デバイスドライバの障害発生時の障害復旧制御について,説明する。
図1に示す計算機装置1において,デバイスドライバの障害が発生した場合に,仮想マシンモニタ40を含む仮想化システム全体を再起動することにより,障害の復旧を図ることが可能である。しかし,仮想化システム全体の再起動をすると,障害が発生したデバイスドライバに関係しないアプリケーションプログラムやゲストVM30までをも停止して,再起動を行わなければならないという問題がある。また,仮想化システム全体の再起動には,非常に時間がかかるという問題がある。
図1に示す計算機装置1において,障害が発生したデバイスドライバに関係しないアプリケーションプログラムやゲストVM30については,障害復旧の制御による影響を受けないように,継続して動作させたい。また,デバイスドライバ障害の検出から復旧までの制御を,時間をかけずに,速やかに実行したい。しかし,上述したような仮想化システムにおけるデバイスドライバの構成では,1つのデバイスドライバが複数のVMに関係するので,デバイスドライバ障害の検出や,障害と関係がない処理に影響を及ぼさない範囲に限定した障害復旧の制御は,容易ではない。
以下,このような問題を解決した本実施の形態による障害復旧の制御について説明する。図1において,太線の矢印は,障害の検出・復旧の制御に関する通信を示す。
図1に示す計算機装置1では,各VMが,それぞれデバイスドライバの動作を監視し,障害発生の判断を行う障害検出機能部を備える。管理VM障害管理部100,ドライバVM障害管理部22,ゲストVM障害管理部32は,それぞれ管理VM10,ドライバVM20,ゲストVM30における障害検出機能部である。
各VMの障害検出機能部は,デバイスドライバ障害を検出すると,そのデバイスドライバ障害に関する障害検出情報を管理VM10の障害復旧制御部に報告する。管理VM10の管理VM障害管理部100は,障害検出機能部と障害復旧制御部とを兼ねている。
図2は,本実施の形態の管理VM障害管理部による障害復旧制御処理フローチャートである。
管理VM10の管理VM障害管理部100において,障害検出情報受信部101は,デバイスドライバの障害を検出したVMから,通信処理部120を介して,障害検出情報を受信する(ステップS10)。
復旧方法決定部102は,障害検出情報に含まれる情報から,発生した障害の種別と,障害が発生したデバイスドライバの種別とを特定する(ステップS11)。障害検出情報には,発生した障害の種別を示す情報や,障害が発生したデバイスドライバの種別を示す情報,障害を検出して通知したVMの情報,デバイスドライバ障害が発生したドライバVM20の情報などが含まれている。
復旧方法決定部102は,障害復旧制御情報記憶部103に記憶された障害復旧制御情報から,特定された障害種別とデバイス種別との組合せに対応する,障害復旧範囲と障害復旧方法との組合せを取得する(ステップS12)。デバイスドライバの種別や,発生した障害の種別によって,復旧処理を行うVMの範囲や,行われる復旧処理の内容が異なる。障害復旧制御情報には,デバイスドライバの種別や発生した障害の種別と,復旧処理を行うVMの範囲や行われる復旧処理の内容との対応が,あらかじめ定義されている。
復旧指示送信部104は,取得された障害復旧範囲の情報から,障害復旧対象のVMを特定する(ステップS13)。例えば,復旧指示送信部104は,障害復旧範囲がデバイスドライバ障害が発生したドライバVM20のバックエンドドライバ21である場合に,デバイスドライバ障害が発生したドライバVM20を障害復旧対象のVMとする。また,例えば,障害復旧範囲が,障害が発生したデバイスドライバを共用するゲストVM30である場合に,デバイス使用情報記憶部110に記憶されたデバイス使用情報から,障害が発生したデバイスドライバを共用するゲストVM30をすべて抽出し,障害復旧対象のVMとする。
復旧指示送信部104は,通信処理部120を介して,特定された障害復旧対象のVMに,取得された障害復旧方法の情報に示された復旧処理の実行を指示する障害復旧指示情報を送信する(ステップS14)。
障害復旧指示情報を受けた障害復旧対象のVMでは,障害復旧指示情報の指示に従って,障害の復旧処理が行われる。
このような本実施の形態による障害復旧制御によって,仮想化システムにおいてデバイスドライバ障害が発生した場合に,検出された障害に応じた適切な範囲のVMに限定して,検出された障害に応じた適切な障害の復旧処理を行わせることができる。
これにより,障害が発生したデバイスドライバに関係しないアプリケーションプログラムやゲストVM30を停止させずに,システムを継続動作させることが可能となり,システムの信頼性が向上する。
また,デバイスドライバ障害の種別,デバイスドライバの種別に応じて詳細な障害復旧方法を変化させることが可能となるため,障害からの復旧時間を短縮することが可能となる。
〔実施例〕
以下では,本実施の形態によるデバイスドライバの障害復旧制御の具体的な実施例を説明する。
図3は,本実施例による計算機装置の構成例を示す図である。
図3に示す計算機装置1aは,図1に示す計算機装置1の一例である。ここでは,計算機装置1aは,例えば携帯電話機などの携帯端末であるものとする。
近年,CPU性能の向上やメモリの大容量化など,組込み機器や携帯端末のハードウェア資源が向上している。そのため,組込み機器や携帯端末に,1台の装置で複数のOSを動作させる仮想化技術を導入することも可能となっている。
このような組込み機器や携帯端末では,様々な種類のデバイスを扱う必要があり,導入されるデバイスドライバも多種類に渡る。組込み機器や携帯端末の開発サイクルは短期化が著しく,新規のデバイスに対応するデバイスドライバを短期間で開発して動作検証し,システムに組み込んで出荷することが求められる。
デバイスドライバのプログラム規模は大きく,デバイスドライバがシステムプログラム全体に占める割合も大きくなる傾向にある。新しいデバイスに対応して新規に開発され,短期間の検証しか行われていないデバイスドライバは,他のモジュールに比べると信頼性が低い傾向にある。このため,デバイスドライバに障害が発生した場合を想定して,そのようなケースでもシステム全体が安定して動作する仕組みを考える必要がある。
このような状況を踏まえて,図3に示す計算機装置1aでは,デバイスドライバの障害が発生した際に,システムを継続動作させた状態での,速やかな障害の復旧制御が行われる。
仮想化技術が導入された携帯端末である計算機装置1aは,管理VM10,2つのドライバVM20,2つのゲストVM30,仮想マシンモニタ40を備える。図3に示す計算機装置1aにおいて,各VMおよび仮想マシンモニタ40の構成は,図1に示す計算機装置1と同様である。なお,図示省略されているが,図3に示す計算機装置1aにおける管理VM10の管理VM障害管理部100は,障害復旧制御情報記憶部103以外にも,障害検出情報受信部101,復旧方法決定部102,復旧指示送信部104を備える。
計算機装置1aは,ハードウェア50として,無線LANデバイス55a,SDメモリデバイス55bの,2つのデバイス55を備える。なお,図示省略されているが,図3に示す計算機装置1aは,図1に示すハードウェア50におけるCPU51,メモリ52,記憶装置53等も備えている。
計算機装置1aでは,2つのデバイス55に応じて,それらのデバイス55を制御するための2つのドライバVM20が用意されている。ドライバVM20aは,無線LANデバイス55aを制御するドライバVM20である。ドライバVM20aが備えるバックエンドドライバ21は,無線LANデバイス55aに対応するデバイスドライバのバックエンドドライバ(無線LAN)21aである。ドライバVM20bは,SDメモリデバイス55bを制御するドライバVM20である。ドライバVM20bが備えるバックエンドドライバ21は,SDメモリデバイス55bに対応するデバイスドライバのバックエンドドライバ(SDメモリ)21bである。
計算機装置1aでは,2つのゲストVM30が動作している。ゲストVM30aは,SDメモリデバイス55bを利用する。ゲストVM30aが備えるフロントエンドドライバ31は,SDメモリデバイス55bに対応するデバイスドライバのフロントエンドドライバ(SDメモリ)31aである。なお,ゲストVM30aは,無線LANデバイス55aを利用しない。ゲストVM30bは,無線LANデバイス55aとSDメモリデバイス55bとを利用する。ゲストVM30bが備えるフロントエンドドライバ31は,無線LANデバイス55aに対応するデバイスドライバのフロントエンドドライバ(無線LAN)31b1 と,SDメモリデバイス55bに対応するデバイスドライバのフロントエンドドライバ(SDメモリ)31b2 である。このように,SDメモリデバイス55bは,ゲストVM30aとゲストVM30bとで共用されている。
なお,図3において,各VMのドメインIDは,各VMをそれぞれ一意に識別する識別情報である。管理VM10のドメインIDは,“0”である。ドライバVM20aのドメインIDは,“1”である。ドライバVM20bのドメインIDは,“2”である。ゲストVM30aのドメインIDは,“3”である。ゲストVM30bのドメインIDは,“4”である。
図4は,本実施例による障害復旧制御情報の例を示す図である。
図3に示す計算機装置1aにおいて,障害復旧制御情報記憶部103には,図4に示す障害復旧制御情報150が記憶されているものとする。
図4に示す障害復旧制御情報150には,障害種別,デバイス種別,障害復旧範囲,障害復旧方法のエントリが存在する。
障害種別は,デバイスドライバの障害を分類した情報である。図4に示す障害復旧制御情報150では,“バックエンドドライバ無応答”と“メモリ保護違反”の2種類の障害種別が示されている。“バックエンドドライバ無応答”は,ゲストVM30が,自身のフロントエンドドライバ31からドライバVM20上のバックエンドドライバ21にデバイス操作の要求を送信したときに,そのバックエンドドライバ21から応答が返ってこないという障害である。ゲストVM30のゲストVM障害管理部32は,デバイス操作の要求に対するバックエンドドライバ21からの応答が,一定時間を超えても返って来ない場合に,“バックエンドドライバ無応答”の障害が発生したと判断する。“メモリ保護違反”は,デバイスドライバが不正なメモリアクセスを行った結果として発生する障害である。“メモリ保護違反”の障害発生時には,仮想マシンモニタ40から該当VMに対して例外が通知される。この通知により,該当VMの障害管理部は,障害発生を検出する。
デバイス種別のエントリには,計算機装置1aで使用されているデバイス55の種別が示される。図4に示す障害復旧制御情報150では,無線LANデバイス55a,SDメモリデバイス55bの2種類のデバイス55が示されている。なお,デバイスドライバの障害という観点において,デバイス55の種別は,間接的にそのデバイス55に対応するデバイスドライバの種別を示している。
障害復旧範囲のエントリには,障害発生時に復旧処理を行うコンポーネントの範囲が示されている。図4に示す障害復旧制御情報150の障害復旧範囲のエントリでは,復旧処理を行うVMの種別と,括弧書きでそのVMにおいて復旧の対象となる範囲が示されている。VMの種別は,ドライバVM20,ゲストVM30などの種別である。
例えば,計算機装置1aにおいて,無線LANデバイス55aに対応するデバイスドライバで,“バックエンドドライバ無応答”の障害が発生したものとする。図4に示す障害復旧制御情報150では,“無線LAN”と“バックエンドドライバ無応答”との組合せに対応する障害復旧範囲として,無線LANデバイス55aに対応するドライバVM20aのバックエンドドライバ(無線LAN)21aの復旧処理を行う必要があることが示されている。また,同様に,無線LANデバイス55aを使用するゲストVM30bのフロントエンドドライバ(無線LAN)31b1 の復旧処理を行う必要があることが示されている。
障害復旧方法のエントリには,それぞれの障害復旧範囲に対する障害からの復旧方法が示されている。図4に示す障害復旧制御情報150の障害復旧方法のエントリでは,障害復旧範囲のVMで実行する復旧処理と,括弧書きでデバイス55の初期化が必要であるかのオプションの指定が示されている。復旧方法決定部102は,デバイスドライバ障害の発生時に,障害復旧制御情報150の障害復旧方法のエントリを参照して,復旧方法を決定する。
例えば,計算機装置1aにおいて,ゲストVM30aがSDメモリデバイス55bを操作しているときに,ドライバVM20b上のバックエンドドライバ(SDメモリ)21bからの応答が一定時間返ってこなかったものとする。このとき,図4に示す障害復旧制御情報150から決定された障害復旧方法により,ドライバVM20bのバックエンドドライバ(SDメモリ)21bの再起動が行われる。この場合には,障害復旧方法のオプションにより,SDメモリデバイス55bの初期化は行われない。また,これに対応して,ゲストVM30a上のフロントエンドドライバ(SDメモリ)31aと,ゲストVM30b上のフロントエンドドライバ(SDメモリ)31b2 のデタッチ処理,アタッチ処理が行われる。
障害種別,デバイス種別によっては,デバイスドライバの再起動時に,デバイス55の初期化が不要なケースもある。このようなケースでは,障害復旧制御情報150の障害復旧方法のオプションで指定しておくことにより必要のない処理を省くことができ,より高速なデバイスドライバの復旧処理が可能となる。
図5は,本実施例による障害復旧制御情報の具体的なデータ構造・定数の定義の例を示す図である。
図5では,障害復旧制御情報150をCコードで実装する場合のデータ構造や,各エントリに記録される定数の定義が示されている。
障害種別の定義部分では,“バックエンドドライバ無応答”に対して“1”の値が定義されている。また,“メモリ保護違反”に対して“2”の値が定義されている。
デバイス種別の定義部分では,“無線LAN”に対して“1”が定義されている。また,“SDメモリ”に対して“2”が定義されている。また,“LCD(Liquid Crystal Display)”に対して“3”が定義されている。また,“キーパッド”に対して“4”が定義されている。
障害復旧範囲の定義部分では,“ドライバVMのバックエンドドライバ”に対して“1”が定義されている。また,“ドライバVMの全体”に対して“2”が定義されている。また,“ゲストVMの全体”に対して“3”が定義されている。また,“ゲストVMのフロントエンドドライバ”に対して“4”が定義されている。
障害復旧方法の定義部分では,“ドライバの再アタッチ”に対して“1”が定義されている。また,“ドライバ再起動”に対して“2”が定義されている。また,“VM再起動”に対して“3”が定義されている。また,“システム再起動”に対して“4”が定義されている。
障害復旧方法オプションの定義部分では,“デバイス初期化不要”に“1”が定義されている。
なお,以下の説明では,図5で定義された数値を用いて,障害復旧制御に関する通信が行われるものとする。
図6は,本実施例によるデバイス使用情報の例を示す図である。
図3に示す計算機装置1aにおいて,デバイス使用情報記憶部110には,図6に示すデバイス使用情報151が記憶されているものとする。図6に示すデバイス使用情報151には,計算機装置1aの仮想化システム内で使用している各デバイス55に応じたデバイスドライバの,バックエンドドライバ21が動作するドライバVM20と,フロントエンドドライバ31が動作するゲストVM30との対応関係が記録されている。
デバイス使用情報151は,障害復旧制御の処理時以外にも,初期化処理時,終了処理時,通常動作時などに各デバイスドライバの状態を参照,更新する際に用いられる一般的な制御情報である。障害復旧制御の処理時には,管理VM10がどのゲストVMに対して障害復旧の指示を出すべきかを決定するために用いられる。
図6に示すデバイス使用情報151には,デバイス種別,フロントエンドVM,バックエンドVM,ステータスのエントリが存在する。
デバイス種別のエントリには,計算機装置1aで使用されているデバイス55の種別が示される。図6に示すデバイス使用情報151では,無線LANデバイス55a(Device ID =1),SDメモリデバイス55b(Device ID =2)の2種類のデバイス55が示されている。なお,デバイスドライバの障害という観点において,デバイス55の種別は,間接的にそのデバイス55に対応するデバイスドライバの種別を示している。
フロントエンドVMのエントリには,そのデバイス55に対応するデバイスドライバのフロントエンドドライバ31を備えるゲストVM30が示されている。
バックエンドVMのエントリには,そのデバイス55に対応するデバイスドライバのバックエンドドライバ21を備えるドライバVM20が示されている。
ステータスのエントリには,そのデバイス55に対応するデバイスドライバの,ゲストVM30のフロントエンドドライバ31と,ドライバVM20のバックエンドドライバ21との接続関係の状態が示されている。ステータスが“connected ”であれば,ゲストVM30のフロントエンドドライバ31と,ドライバVM20のバックエンドドライバ21の初期化が完了し,デバイス操作の要求に関する処理が実行できる状態であることを示している。
例えば,図6に示すデバイス使用情報151において,Device ID =1の無線LANデバイス55aに関して,ドメインID=1のドライバVM20a上でバックエンドドライバ(無線LAN)21aが動作することが示されている。また,ドメインID=4のゲストVM30b上でフロントエンドドライバ(無線LAN)31b1 が動作することが示されている。さらに,バックエンドドライバ(無線LAN)21aとフロントエンドドライバ(無線LAN)31b1 の両者が,接続したステータスであることが示されている。
また,例えば,図6に示すデバイス使用情報151において,Device ID =2のSDメモリデバイス55bに関して,ドメインID=2のドライバVM20b上でバックエンドドライバ(SDメモリ)21bが動作することが示されている。また,ドメインID=3のゲストVM30a上でフロントエンドドライバ(SDメモリ)31aが,ドメインID=4のゲストVM30b上でフロントエンドドライバ(SDメモリ)31b2 が動作することが示されている。さらに,バックエンドドライバ(SDメモリ)21bと,各フロントエンドドライバ31とが,接続したステータスであることが示されている。
例えば,無線LANデバイス55aに対応するデバイスドライバで,障害が発生したものとする。このとき,図6に示すデバイス使用情報151から,無線LANデバイス55aを使用しているゲストVM30が,ドメインID=4のゲストVM30bの1つだけであることがわかる。このことから,ゲストVM30への障害復旧指示情報は,ドメインID=4のゲストVM30bに対してのみ,送ればよいことがわかる。
また,例えば,SDメモリデバイス55bに対応するデバイスドライバで障害が発生したものとする。このとき,図6に示すデバイス使用情報151から,SDメモリデバイス55bを使用しているゲストVM30が,ドメインID=3のゲストVM30aとドメインID=4のゲストVM30bとの2つであることがわかる。このことから,ゲストVM30への障害復旧指示情報は,ドメインID=3のゲストVM30aとドメインID=4のゲストVM30bとに,送ればよいことがわかる。
図7は,本実施例による障害復旧制御の通信で用いられる情報のデータ構造の例を示す図である。
図7(A)は,障害検出情報のデータ構造の例を示す。障害検出情報は,デバイスドライバの障害が検出されたときに,障害を検出したVMから管理VM10に対して,仮想マシンモニタ40を介したVM間通信により送られる情報である。
障害検出情報は,通知元ドメインID,障害発生元ドメインID,障害種別,デバイス種別の情報を持つ。通知元ドメインIDは,デバイスドライバ障害を検出した,障害検出情報の送信元VMのドメインIDである。障害発生元ドメインIDは,デバイスドライバ障害が発生したVMのドメインIDである。障害種別は,検出された障害の種別である。デバイス種別は,障害が発生したデバイスドライバに対応するデバイス55の種別である。
図7(B)は,障害復旧指示情報のデータ構造の例を示す。障害復旧指示情報は,管理VM10において障害復旧方法が決定された際に,管理VM10から障害復旧対象のVMに対して,仮想マシンモニタ40を介したVM間通信により送られる情報である。
障害復旧指示情報は,障害復旧範囲,障害復旧方法,障害復旧方法オプション,デバイス種別の情報を持つ。障害復旧範囲は,障害の復旧処理を行うコンポーネントの範囲である。障害復旧方法は,障害復旧対象のVMに実行させる復旧処理の内容を示す。障害復旧方法オプションは,障害復旧方法に関するオプションの指定情報である。ここでは,障害復旧方法オプションとして,デバイス55の初期化の要・不要が指定される。デバイス種別は,障害が発生したデバイスドライバに対応するデバイス55の種別である。
図7(C)は,障害復旧結果情報のデータ構造の例を示す。障害復旧結果情報は,障害復旧対象のVMが,指示された障害の復旧処理の実行後に,管理VM10に対して,仮想マシンモニタ40を介したVM間通信により送られる情報である。
障害復旧結果情報は,通知元ドメインID,デバイス種別,障害復旧結果の情報を持つ。通知元ドメインIDは,障害の復旧処理を実行した,障害復旧結果情報の障害検出情報の送信元VMのドメインIDである。デバイス種別は,障害が発生したデバイスドライバに対応するデバイス55の種別である。障害復旧結果は,障害の復旧が成功したか失敗したかを示す。
図8は,本実施例によるデバイスドライバ障害発生時における障害復旧制御の処理シーケンスの例を示す図である。
ここでは,図3に示す計算機装置1aにおいて,ゲストVM30bが,無線LANデバイス55aを使用するときに,“バックエンドドライバ無応答”の障害を検知した場合の障害復旧制御の例を説明する。
ゲストVM30b上のフロントエンドドライバ(無線LAN)31b1 は,ドライバVM20aのバックエンドドライバ(無線LAN)21aに対して,例えばデータの読み出し要求などのデバイス操作要求を発行する(ステップS100)。このとき,フロントエンドドライバ(無線LAN)31b1 は,ゲストVM障害管理部32bにタイマ設定要求を送り(ステップS101),ゲストVM障害管理部32bにデバイス操作要求の発行時刻を登録する。
ゲストVM30bのゲストVM障害管理部32bは,デバイス操作要求の発行時刻から一定時間,バックエンドドライバ(無線LAN)21aからの応答の受信がない場合に,“バックエンドドライバ無応答”の障害が発生したと判断する(ステップS102)。
ゲストVM30bのゲストVM障害管理部32bは,仮想マシンモニタ40を介して,管理VM10の管理VM障害管理部100に,障害検出情報を送信する(ステップS103)。ここで送信される障害検出情報は,通知元ドメインID=4(=ゲストVM30b),障害発生元ドメインID=1(=ドライバVM20a),障害種別=1(=“バックエンドドライバ無応答”),デバイス種別=1(=“無線LAN”)の情報である。
障害検出情報を受け取った管理VM10の管理VM障害管理部100は,障害復旧制御処理を実行する(ステップS104)。例えば,管理VM障害管理部100は,障害検出情報に含まれる情報で障害復旧制御情報記憶部103に記憶された障害復旧制御情報150を参照し,障害復旧範囲と障害復旧方法とを決定する。
また例えば,図5に示す数値の定義に基づいて,図4に示す障害復旧制御情報150のエントリを検索して,障害種別=1,デバイス種別=1と一致するエントリを見つける。ここでは,障害復旧制御情報150から,(障害種別,デバイス種別,障害復旧範囲,障害復旧方法,障害復旧方法オプション)=(1,1,1,2,0),(1,1,4,1,0)の2つのエントリが見つかる。これにより,無線LANデバイス55aに対応するドライバVM20aと,該当ドライバVM20aのバックエンドドライバ(無線LAN)21aを使用しているゲストVM30bに対して障害復旧を行う必要があることがわかる。
また,管理VM障害管理部100は,図6に示すデバイス使用情報151を参照し,障害復旧対象のVMを特定する。デバイス種別=1(=“無線LAN”)に対応するドライバVM20がドメインID=1のドライバVM20aであることがわかる。また,デバイス種別=1(=“無線LAN”)に対応するゲストVM30がドメインID=4のゲストVM30bであることがわかる。
管理VM障害管理部100は,障害復旧対象のドライバVM20aに対して,障害復旧指示情報を送信する(ステップS105)。ここで送信される障害復旧指示情報は,障害復旧範囲=1(=“バックエンドドライバ”),障害復旧方法=2(=“ドライバ再起動”),障害復旧方法オプション=0(=“デバイス初期化要”),デバイス種別=1(=“無線LAN”)の情報である。すなわち,ドライバVM20aに対して出された指示は,無線LANデバイス55aの初期化を含む,バックエンドドライバ(無線LAN)21aの再起動である。
また,管理VM障害管理部100は,障害復旧対象のゲストVM30bに対して,障害復旧指示情報を送信する(ステップS106)。ここで送信される障害復旧指示情報は,障害復旧範囲=4(=“フロントエンドドライバ”),障害復旧方法=1(=“ドライバ再アタッチ”),障害復旧方法オプション=0(=“デバイス初期化要”),デバイス種別=1(=“無線LAN”)の情報である。すなわち,ドライバVM20aに対して出された指示は,フロントエンドドライバ(無線LAN)31b1 の再アタッチである。
障害復旧指示情報を受けたドライバVM20aのドライバVM障害管理部22aは,バックエンドドライバ(無線LAN)21aの再起動を実行する(ステップS107)。
障害復旧指示情報を受けたゲストVM30bのゲストVM障害管理部32bは,障害が発生したデバイスドライバをデタッチする(ステップS108)。
バックエンドドライバ(無線LAN)21aの再起動が終わると,ドライバVM20aのドライバVM障害管理部22aは,障害復旧結果情報を管理VM障害管理部100に通知する(ステップS109)。ここで送信される障害復旧指示情報は,通知元ドメインID=1(=ドライバVM20a),デバイス種別=1(=“無線LAN”),障害復旧結果=1(=成功)の情報である。
障害復旧結果情報を受けた管理VM障害管理部100は,さらにゲストVM30bに対して,障害復旧結果情報を通知する(ステップS110)。ここで送信される障害復旧結果情報は,通知元ドメインID=0(=管理VM10),デバイス種別=1(=“無線LAN”),障害復旧結果=1(=成功)の情報である。
障害復旧結果情報を受けたゲストVM30bのゲストVM障害管理部32bは,障害から復旧したデバイスドライバをアタッチする(ステップS111)。以後,無線LANデバイス55aのデバイスドライバが利用可能となる。
以上説明した本実施の形態による障害復旧制御によって,仮想化システムにおいてデバイスドライバ障害が発生した場合に,その障害を検出し,適切な復旧手段を選択してシステムを継続動作させ,システムの信頼性を向上させることができる。また,デバイスドライバ障害の種別,デバイス種別に応じて詳細な障害復旧方法を変化させることができるため,障害からの復旧時間を短縮することができる。
本実施の形態による障害復旧制御は,特に携帯電話機の仮想化においてより効果的である。携帯電話機に実装されるデバイスの種類は近年増加しており,それら多種のデバイスを制御するデバイスドライバの機能もより高度化,複雑化している。また,携帯電話機の開発サイクルが短いため,デバイスドライバの障害は発生しやすい状況にある。そのため,携帯電話機では,新規に開発されるデバイスドライバを含めたシステムを安定して動作させる必要がある。
本実施の形態による障害復旧制御によれば,仮想化された携帯システム上のデバイスドライバに障害が発生した場合でも,その障害を速やかに検出し,必要最小限の範囲を再起動させる等により障害を効率良く復旧させ,仮想化システム全体を継続動作させることが可能である。
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,本実施の形態では,障害復旧制御の各機能部が管理VM10に備えられているが,必ずしもこれに限るものではない。例えば,障害復旧制御の各機能部を,管理VM10から独立した専用のVMが備えるようにしてもよい。
1 計算機装置
10 管理VM
100 管理VM障害管理部
101 障害検出情報受信部
102 復旧方法決定部
103 障害復旧制御情報記憶部
104 復旧指示送信部
110 デバイス使用情報記憶部
120 通信処理部
20 ドライバVM
21 バックエンドドライバ
22 ドライバVM障害管理部
23 通信処理部
30 ゲストVM
31 フロントエンドドライバ
32 ゲストVM障害管理部
33 通信処理部
40 仮想マシンモニタ
50 ハードウェア
51 CPU
52 メモリ
53 記憶装置
55 デバイス

Claims (4)

  1. 仮想計算機を実現する仮想計算機管理機構を搭載し,前記仮想計算機管理機構の制御によりデバイスドライバ用仮想計算機を介してデバイスとの通信を行うユーザ仮想計算機を動作させる計算機装置であって,
    デバイスとの通信に用いられるデバイスドライバの障害が仮想計算機において検出された際に,当該障害が検出されたデバイスドライバの種別と当該検出された障害の種別とを含む障害検出情報を,当該障害を検出した仮想計算機から受信する障害検出情報受信部と,
    デバイスドライバの種別と当該デバイスドライバで生じ得る障害の種別とに対応付けて,当該障害が生じた場合に復旧処理の実行対象となる仮想計算機の種別と当該種別の仮想計算機において実行する復旧処理の内容とが定義された障害復旧制御情報を記憶する障害復旧制御情報記憶部と,
    前記障害復旧制御情報から,前記受信した障害検出情報に示されるデバイスドライバの種別と障害の種別とに対応する,仮想計算機の種別と復旧処理の内容とを取得する復旧方法決定部と,
    前記取得した仮想計算機の種別に基づいて特定される仮想計算機に対して,前記取得した復旧処理の内容を実行させる復旧指示を送信する復旧指示送信部とを備える
    ことを特徴とする計算機装置。
  2. デバイスとの通信経路となるデバイスドライバ用仮想計算機と,当該デバイスドライバ用仮想計算機を介して当該デバイスを使用するユーザ仮想計算機との対応を示すデバイス使用情報を記憶するデバイス使用情報記憶部をさらに備え,
    前記復旧指示送信部は,前記取得した仮想計算機の種別がユーザ仮想計算機を示す場合に,前記デバイス使用情報から,前記受信した障害検出情報に示される前記デバイスドライバの識別情報に基づいて特定されるデバイスドライバ用仮想計算機に対応するユーザ仮想計算機を特定し,当該特定したユーザ仮想計算機に対して前記復旧指示を送信する
    ことを特徴とする請求項1に記載の計算機装置。
  3. 仮想計算機を実現する仮想計算機管理機構を搭載し,前記仮想計算機管理機構の制御によりデバイスドライバ用仮想計算機を介してデバイスとの通信を行うユーザ仮想計算機を動作させる計算機装置のコンピュータに実行させるためのプログラムであって,
    前記コンピュータに,
    デバイスとの通信に用いられるデバイスドライバの障害が仮想計算機において検出された際に,当該障害が検出されたデバイスドライバの種別と当該検出された障害の種別とを含む障害検出情報を,当該障害を検出した仮想計算機から受信する手順と,
    デバイスドライバの種別と当該デバイスドライバで生じ得る障害の種別とに対応付けて,当該障害が生じた場合に復旧処理の実行対象となる仮想計算機の種別と当該種別の仮想計算機において実行する復旧処理の内容とが定義された障害復旧制御情報から,前記受信した障害検出情報に示されるデバイスドライバの種別と障害の種別とに対応する,仮想計算機の種別と復旧処理の内容とを取得する手順と,
    前記取得した仮想計算機の種別に基づいて特定される仮想計算機に対して,前記取得した復旧処理の内容を実行させる復旧指示を送信する手順とを
    実行させるための障害復旧制御プログラム。
  4. 仮想計算機を実現する仮想計算機管理機構を搭載し,前記仮想計算機管理機構の制御によりデバイスドライバ用仮想計算機を介してデバイスとの通信を行うユーザ仮想計算機を動作させる計算機装置のコンピュータが実行する障害復旧制御方法であって,
    前記コンピュータが,
    デバイスとの通信に用いられるデバイスドライバの障害が仮想計算機において検出された際に,当該障害が検出されたデバイスドライバの種別と当該検出された障害の種別とを含む障害検出情報を,当該障害を検出した仮想計算機から受信する過程と,
    デバイスドライバの種別と当該デバイスドライバで生じ得る障害の種別とに対応付けて,当該障害が生じた場合に復旧処理の実行対象となる仮想計算機の種別と当該種別の仮想計算機において実行する復旧処理の内容とが定義された障害復旧制御情報から,前記受信した障害検出情報に示されるデバイスドライバの種別と障害の種別とに対応する,仮想計算機の種別と復旧処理の内容とを取得する過程と,
    前記取得した仮想計算機の種別に基づいて特定される仮想計算機に対して,前記取得した復旧処理の内容を実行させる復旧指示を送信する過程とを実行する
    ことを特徴とする障害復旧制御方法。
JP2010153812A 2010-07-06 2010-07-06 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法 Active JP5494298B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010153812A JP5494298B2 (ja) 2010-07-06 2010-07-06 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法
US13/064,920 US8707109B2 (en) 2010-07-06 2011-04-26 Computer apparatus, non-transitory computer-readable medium storing an error recovery control program, and error recovery control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010153812A JP5494298B2 (ja) 2010-07-06 2010-07-06 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法

Publications (2)

Publication Number Publication Date
JP2012018453A true JP2012018453A (ja) 2012-01-26
JP5494298B2 JP5494298B2 (ja) 2014-05-14

Family

ID=45439438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010153812A Active JP5494298B2 (ja) 2010-07-06 2010-07-06 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法

Country Status (2)

Country Link
US (1) US8707109B2 (ja)
JP (1) JP5494298B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257695A (ja) * 2012-06-12 2013-12-26 Renesas Electronics Corp コンピュータシステム
JP2016506546A (ja) * 2012-08-28 2016-03-03 ネットコム、ワイヤレス、リミテッドNetcomm Wirelesslimited モバイル通信コンピューティングのための装置および方法
JP2016533655A (ja) * 2013-09-30 2016-10-27 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 障害管理方法、エンティティ、及びシステム
JP2017515225A (ja) * 2014-05-05 2017-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想化のためのコヒーレント・アクセラレータ機能分離方法、システムおよびコンピュータ・プログラム
JP2018029344A (ja) * 2017-09-14 2018-02-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 障害管理方法、仮想化ネットワーク機能マネージャ(vnfm)、及びプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103620612B (zh) * 2011-07-12 2016-04-13 惠普发展公司,有限责任合伙企业 包括端口和来宾域的计算设备
US9904564B2 (en) * 2011-11-15 2018-02-27 Red Hat Israel, Ltd. Policy enforcement by hypervisor paravirtualized ring copying
US9122549B2 (en) * 2012-07-19 2015-09-01 Wind River Systems, Inc. Method and system for emulation of instructions and hardware using background guest mode processing
US9936059B2 (en) * 2014-05-29 2018-04-03 Fortinet, Inc. Management of wireless access points via virtualization
KR101649909B1 (ko) * 2014-09-25 2016-08-22 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치
US20180225455A1 (en) * 2016-01-31 2018-08-09 Hewlett-Packard Development Company, L.P. Scanning of wireless network traffic in virtualized domains
US11226875B2 (en) * 2017-07-20 2022-01-18 International Business Machines Corporation System halt event recovery
CN108196501A (zh) * 2017-12-22 2018-06-22 北京东土科技股份有限公司 一种基于plc的分布式控制系统的容灾方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085543A (ja) * 2004-09-17 2006-03-30 Hitachi Ltd 仮想計算機システム
JP2008052382A (ja) * 2006-08-23 2008-03-06 Meidensha Corp 2次記憶装置の故障検出方法
JP2008186209A (ja) * 2007-01-30 2008-08-14 Hitachi Ltd 仮想計算機システムのi/oデバイス障害処理方法
JP2008269194A (ja) * 2007-04-19 2008-11-06 Hitachi Ltd 仮想計算機システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06230992A (ja) 1993-02-06 1994-08-19 Hitachi Ltd 計算機システムおよび計算機システムの障害回復方法
KR100663465B1 (ko) * 2004-10-08 2007-01-02 삼성전자주식회사 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치
JP4999670B2 (ja) 2007-12-20 2012-08-15 三菱電機株式会社 計算機装置
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
JP5161696B2 (ja) * 2008-08-07 2013-03-13 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006085543A (ja) * 2004-09-17 2006-03-30 Hitachi Ltd 仮想計算機システム
JP2008052382A (ja) * 2006-08-23 2008-03-06 Meidensha Corp 2次記憶装置の故障検出方法
JP2008186209A (ja) * 2007-01-30 2008-08-14 Hitachi Ltd 仮想計算機システムのi/oデバイス障害処理方法
JP2008269194A (ja) * 2007-04-19 2008-11-06 Hitachi Ltd 仮想計算機システム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257695A (ja) * 2012-06-12 2013-12-26 Renesas Electronics Corp コンピュータシステム
US9612909B2 (en) 2012-06-12 2017-04-04 Renesas Electronics Corporation Computer system
US10379931B2 (en) 2012-06-12 2019-08-13 Renesas Electronics Corporation Computer system
JP2016506546A (ja) * 2012-08-28 2016-03-03 ネットコム、ワイヤレス、リミテッドNetcomm Wirelesslimited モバイル通信コンピューティングのための装置および方法
JP2016533655A (ja) * 2013-09-30 2016-10-27 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 障害管理方法、エンティティ、及びシステム
US10073729B2 (en) 2013-09-30 2018-09-11 Huawei Technologies Co., Ltd. Fault management method, entity, and system
JP2017515225A (ja) * 2014-05-05 2017-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想化のためのコヒーレント・アクセラレータ機能分離方法、システムおよびコンピュータ・プログラム
JP2018029344A (ja) * 2017-09-14 2018-02-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 障害管理方法、仮想化ネットワーク機能マネージャ(vnfm)、及びプログラム

Also Published As

Publication number Publication date
JP5494298B2 (ja) 2014-05-14
US20120011397A1 (en) 2012-01-12
US8707109B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
JP5494298B2 (ja) 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法
JP6530774B2 (ja) ハードウェア障害回復システム
US9448899B2 (en) Method, apparatus and system for switching over virtual application two-node cluster in cloud environment
US9594582B2 (en) Detection and management of dynamic migration of virtual environments
JP4487920B2 (ja) ブート制御方法および計算機システム並びにその処理プログラム
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
US7953831B2 (en) Method for setting up failure recovery environment
US8880936B2 (en) Method for switching application server, management computer, and storage medium storing program
US20130055261A1 (en) Controlling virtual machine in cloud computing system
US10430261B2 (en) Detecting a guest operating system crash on a virtual computing instance
US9229820B2 (en) Information processing device with memory dump function, memory dump method, and recording medium
US20110209148A1 (en) Information processing device, virtual machine connection method, program, and recording medium
WO2022135429A1 (zh) 快速启动方法
WO2020063432A1 (zh) 一种升级虚拟化模拟器的方法和装置
JP2016024811A (ja) ネットワークインターフェースコントローラ情報の帯域外取得
US9529656B2 (en) Computer recovery method, computer system, and storage medium
US20150277886A1 (en) Configuring dependent services associated with a software package on a host system
CN114064132A (zh) 一种系统宕机恢复方法、装置、设备和系统
US20160170816A1 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple hierarchical privilege levels
US20230214245A1 (en) Online Migration Method and System for Bare Metal Server
EP3252599B1 (en) Method and apparatus for starting application program
JP2012150797A (ja) データカード、データカードがポートを報告するための方法、およびデータカードを起動するための方法
US11080083B1 (en) Providing physical host hardware state information to virtual machines deployed on the physical host
Sun et al. Supporting Multiple OSes with OS Switching.
KR20120043375A (ko) 가상화 시스템에서 디바이스 드라이버의 오류를 탐지하고 복구하는 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R150 Certificate of patent or registration of utility model

Ref document number: 5494298

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150