(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6799652
(24)【登録日】2020年11月25日
(45)【発行日】2020年12月16日
(54)【発明の名称】情報を処理するための方法及び装置
(51)【国際特許分類】
G06F 11/14 20060101AFI20201207BHJP
G06F 11/20 20060101ALI20201207BHJP
G06F 11/30 20060101ALI20201207BHJP
G06F 9/455 20060101ALI20201207BHJP
G06F 12/109 20160101ALI20201207BHJP
【FI】
G06F11/14 615
G06F11/14 684
G06F11/20 633
G06F11/30 140C
G06F9/455 150
G06F12/109 110
【請求項の数】12
【外国語出願】
【全頁数】16
(21)【出願番号】特願2019-163707(P2019-163707)
(22)【出願日】2019年9月9日
(65)【公開番号】特開2020-91835(P2020-91835A)
(43)【公開日】2020年6月11日
【審査請求日】2019年9月9日
(31)【優先権主張番号】201811497981.X
(32)【優先日】2018年12月7日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110000729
【氏名又は名称】特許業務法人 ユニアス国際特許事務所
(72)【発明者】
【氏名】シエ、ヨンチー
(72)【発明者】
【氏名】チャイ、ウェン
(72)【発明者】
【氏名】チャン、ユイ
【審査官】
清木 泰
(56)【参考文献】
【文献】
特開2013−196424(JP,A)
【文献】
特開2009−86701(JP,A)
【文献】
国際公開第2012/063306(WO,A1)
【文献】
米国特許出願公開第2018/0276081(US,A1)
【文献】
米国特許出願公開第2017/0364422(US,A1)
【文献】
米国特許出願公開第2017/0364287(US,A1)
【文献】
米国特許出願公開第2016/0364341(US,A1)
【文献】
中国特許出願公開第107704314(CN,A)
【文献】
中国特許出願公開第102929747(CN,A)
【文献】
中井悦司,[改訂新版]プロのためのLinuxシステム構築・運用技術,日本,株式会社技術評論社,2016年10月25日,初版第1刷,pp.234〜238
【文献】
平田豊,Linuxデバイスドライバプログラミング,日本,ソフトバンククリエイティブ株式会社,2008年 6月30日,初版第一刷,pp.191〜198
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/14 −11/20
G06F11/07
G06F11/28 −11/36
G06F 9/455− 9/54
G06F12/08 −12/128
G06F16/00 −16/958
(57)【特許請求の範囲】
【請求項1】
情報を処理するための方法であって、
プロダクションカーネルクラッシュの判定に応答して、ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するステップであって、前記ターゲットメモリは、前記プロダクションカーネルによって、実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納されるステップと、
前記物理アドレス情報に基づいて、データをターゲットデータとして取得するステップと、
前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてファイルを共有記憶領域に格納するステップとを含む方法。
【請求項2】
前記方法は、バックアップ電子機器に仮想マシン復元要求を送信するステップを更に含み、
前記仮想マシン復元要求は前記ファイルのファイル識別子を含み、前記バックアップ電子機器は前記ファイル識別子に従って前記共有記憶領域から前記ファイルを取得し、前記ファイルに基づいて前記仮想マシンを復元する請求項1に記載の方法。
【請求項3】
前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてファイルを共有記憶領域に格納するステップは、
前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成することと、
前記スナップショットファイルを共有記憶領域に格納することとを含む請求項1に記載の方法。
【請求項4】
前記物理アドレス情報は、
前記仮想マシンの動作を停止するように制御するための動作停止命令を前記仮想マシンに送信するステップと、
予め格納されているページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップであって、前記ページテーブルは仮想アドレスと物理アドレスとの対応関係を記述するためのものであるステップと、
によって前記プロダクションカーネルにより生成される請求項1に記載の方法。
【請求項5】
前記ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するステップは、
仮想ファイルシステムによって前記ターゲットメモリから前記仮想マシン・デバイスステータス情報及び前記物理アドレス情報を取得することを含む請求項1に記載の方法。
【請求項6】
情報を処理するための装置であって、
プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するように構成される第1取得手段であって、前記ターゲットメモリは、前記プロダクションカーネルによって、実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納される第1取得手段と、
前記物理アドレス情報に基づいて、データをターゲットデータとして取得するように構成される第2取得手段と、
前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するように構成される記憶手段とを備える装置。
【請求項7】
前記装置は、バックアップ電子機器に仮想マシン復元要求を送信するように構成される送信手段を更に備え、
前記仮想マシン復元要求は前記ファイルのファイル識別子を含み、前記バックアップ電子機器は前記ファイル識別子に従って前記共有記憶領域から前記ファイルを取得し、前記ファイルに基づいて前記仮想マシンを復元する請求項6に記載の装置。
【請求項8】
前記記憶手段は、更に、
前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成し、
前記スナップショットファイルを共有記憶領域に格納するように構成される請求項6に記載の装置。
【請求項9】
前記物理アドレス情報は、
前記仮想マシンの動作を停止するように制御するための動作停止命令を前記仮想マシンに送信するステップと、
予め格納されているページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップであって、前記ページテーブルは仮想アドレスと物理アドレスとの対応関係を記述するためのものであるステップと、
によって前記プロダクションカーネルにより生成される請求項6に記載の装置。
【請求項10】
前記第1取得手段は、更に、
仮想ファイルシステムによって前記ターゲットメモリから前記仮想マシン・デバイスステータス情報及び前記物理アドレス情報を取得するように構成される請求項6に記載の装置。
【請求項11】
1つ又は複数のプロセッサと、1つ又は複数のプログラムが格納されている記憶装置と、を備えるサーバであって、
前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行されると、前記1つ又は複数のプロセッサに請求項1〜5のいずれか一項に記載の方法を実現する、サーバ。
【請求項12】
コンピュータプログラムが格納されているコンピュータ可読媒体であって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項1〜5のいずれか1項に記載の方法を実現する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、コンピュータ技術分野に関し、具体的に情報を処理するための方法及び装置に関する。
【背景技術】
【0002】
コンピュータ技術の発展に伴い、コンピュータ技術及びインターネット技術によって提供されるサービスはますます豊富になりつつある。仮想化技術によって、外部へサービスを提供するために、論理上のコンピュータ(即ち、仮想マシン)を物理マシン(電子機器)上で仮想化することができる。仮想マシンの安定性に影響を与える要因は数多くあり、その中でも、仮想マシンが配置されているホストマシンのクラッシュは、間違いなく最も制御不能で最も有害な要因の1種である。ホストマシンのクラッシュが、その上で実行されている仮想マシンのクラッシュに繋がることがあり、それによって仮想マシンによるサービスの提供に影響を及ぼし、仮想マシンの記憶媒体を損傷することさえあり、データ損失などの重大な事態を引き起こすことがある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の実施例は、情報を処理するための方法及び装置を提供する。
【課題を解決するための手段】
【0004】
第1の態様では、本発明の実施例は情報を処理するための方法であって、プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するステップであって、前記ターゲットメモリは、前記プロダクションカーネルによって、実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納されるステップと、前記物理アドレス情報に基づいて、データをターゲットデータとして取得するステップと、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するステップとを含む方法を提供する。
【0005】
いくつかの実施例では、前記方法は、バックアップ電子機器に仮想マシン復元要求を送信するステップを更に含み、前記仮想マシン復元要求は前記ファイルのファイル識別子を含み、前記バックアップ電子機器は前記ファイル識別子に従って前記共有記憶領域から前記ファイルを取得し、前記ファイルに基づいて前記仮想マシンを復元する。
【0006】
いくつかの実施例では、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するステップは、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成することと、前記スナップショットファイルを共有記憶領域に格納することとを含む。
【0007】
いくつかの実施例では、前記物理アドレス情報は、前記仮想マシンの動作を停止するように制御するための動作停止命令を前記仮想マシンに送信するステップと、予め格納されているページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップであって、前記ページテーブルは仮想アドレスと物理アドレスとの対応関係を記述するためのものであるステップとによって、前記プロダクションカーネルにより生成される。
【0008】
いくつかの実施例では、前記ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するステップは、仮想ファイルシステムによって前記ターゲットメモリから前記仮想マシン・デバイスステータス情報及び前記物理アドレス情報を取得することを含む。
【0009】
第2の態様では、本発明の実施例は、情報を処理するための装置であって、プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するように構成される第1取得手段であって、前記ターゲットメモリは、前記プロダクションカーネルによって、実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納される第1取得手段と、前記物理アドレス情報に基づいて、データをターゲットデータとして取得するように構成される第2取得手段と、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するように構成される記憶手段とを備える装置を提供する。
【0010】
いくつかの実施例では、前記装置は、バックアップ電子機器に仮想マシン復元要求を送信するように構成される送信手段を更に備え、前記仮想マシン復元要求は前記ファイルのファイル識別子を含み、前記バックアップ電子機器は前記ファイル識別子に従って前記共有記憶領域から前記ファイルを取得し、前記ファイルに従って前記仮想マシンを復元する。
【0011】
いくつかの実施例では、前記記憶手段は更に、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成し、前記スナップショットファイルを共有記憶領域に格納するように構成される。
【0012】
いくつかの実施例では、前記物理アドレス情報は、前記仮想マシンの動作を停止するように制御するための動作停止命令を前記仮想マシンに送信するステップと、予め格納されているページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップであって、前記ページテーブルは仮想アドレスと物理アドレスとの対応関係を記述するためのものであるステップと、によって前記プロダクションカーネルにより生成される。
【0013】
いくつかの実施例では、前記第1取得手段は更に、仮想ファイルシステムによって前記ターゲットメモリから前記仮想マシン・デバイスステータス情報及び前記物理アドレス情報を取得するように構成される。
【0014】
第3の態様では、本発明の実施例は、1つ又は複数のプロセッサと、1つ又は複数のプログラムが格納されている記憶装置と、を備えるサーバであって、前記1つ又は複数のプログラムが前記1つ又は複数のプロセッサにより実行されると、前記1つ又は複数のプロセッサに第1態様のいずれか一実施形態に記載の方法を実現する、サーバを提供する。
【0015】
第4の態様では、本発明の実施例は、コンピュータプログラムが格納されているコンピュータ可読媒体であって、該コンピュータプログラムがプロセッサにより実行されると、第1の態様のいずれか一実施形態に記載の方法を実現するコンピュータ可読媒体を提供する。
【0016】
本発明の実施例により提供される情報を処理するための方法及び装置は、プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得し、次いで物理アドレス情報に基づいてデータをターゲットデータとして取得し、最後にターゲットデータ及び仮想マシン・デバイスステータス情報に基づいてファイルを共有記憶領域に格納し、それによって、プロダクションカーネルがクラッシュしたときに、プロダクションカーネルによって実行されている仮想マシンの関連ファイルを共有記憶領域に格納することで、プロダクションカーネルクラッシュによる仮想マシンのデータ損失を防止できる。
【図面の簡単な説明】
【0017】
本発明の他の特徴、目的及び利点は、以下の図面を参照してなされる非限定的な実施例に係る詳細な説明を読むことにより、より明らかになるであろう。
【
図1】本発明の一実施例を適用可能な例示的なシステムアーキテクチャを示す図である。
【
図2】本発明に係る情報を処理するための方法の一実施例を示すフローチャートである。
【
図3】本発明に係る情報を処理するための方法の一応用シナリオを示す概略図である。
【
図4】本発明に係る情報を処理するための方法のもう一つの実施例を示すフローチャートである。
【
図5】本発明に係る情報を処理するための装置の一実施例を示す構造概略図である。
【
図6】本発明の実施例を実現するためのサーバに適用されるコンピュータシステムを示す構造概略図である。
【発明を実施するための形態】
【0018】
以下、図面及び実施例を参照しながら本発明をより詳細に説明する。ここで説明する具体的な実施例は、関連する発明を説明するためのものに過ぎず、当該発明を限定するものではないことを理解されたい。また、説明の便宜上、図面には発明に関連する部分のみが示されていることに留意されたい。
【0019】
なお、本発明の実施例及び実施例における特徴は、矛盾を生じない限り、相互に組み合わせることができる。以下、図面及び実施例を参照しながら本発明を詳細に説明する。
【0020】
図1は、本発明の実施例に係る情報を処理するための方法又は情報を処理するための装置が適用可能な例示的なシステムアーキテクチャ100を示している。
【0021】
図1に示すように、システムアーキテクチャ100は、ホストマシン101、サーバ102及びネットワーク103を含むことができる。ネットワーク103は、ホストマシン101とサーバ102の間で通信リンクの媒体を提供するために使用される。ネットワーク103は、有線、無線通信リンク又は光ファイバケーブルなどの様々なタイプの接続を含んでもよい。
【0022】
ホストマシン101は、クラウドコンピューティングを提供する仮想マシンがその上で稼働する物理マシンであり得る。ホストマシン101には仮想マシン1011、1012、1013が稼働可能である。仮想マシン1011、1012、1013は、ホストマシン101のハードウェアデバイスにアクセスすることができる。例えば、仮想マシン1011、1012、1013は、仮想マシン1011、1012、1013にインストールされているデバイスドライバを介して、ホストマシン101上のハードウェアデバイスにアクセスすることができる。通常に、仮想マシン1011、1012、1013のデバイスドライバによるホストマシン101のハードウェアデバイスへのアクセス挙動は、ホストマシン101上の仮想マシンモニタ(Virtual Machine Monitor,VMM)によって記録されることができる。実際の応用シナリオでは、ホストマシン101は、様々なクラウドサービスを提供するサーバであり得、仮想マシンモニタは、サーバ上で実行されている仮想マシンのステータス及び動作を管理及び記録するためにサーバ上で実行され得る。
【0023】
サーバ102は、データを格納するためのファイル共有記憶サーバであり得る。例えば、サーバ102は、ホストマシン101によって送信されたファイルを格納することができる。
【0024】
図1におけるホストマシン、仮想マシン、ネットワーク及びサーバの数が例示的なものに過ぎないことを理解されたい。必要に応じて、ホストマシン、仮想マシン、ネットワーク及びサーバの数を任意に加減してもよい。
【0025】
なお、本発明の実施例に係る情報を処理するための方法は、通常にホストマシン101によって実行され、これに応じて、情報を処理するための装置は、通常にホストマシン101に設けられている。
【0026】
次に、本発明に係る情報を処理するための方法の一実施例のフロー200を示す
図2を参照する。この情報を処理するための方法は、次のステップ(ステップ201〜203)を含む。
【0027】
ステップ201:プロダクションカーネルクラッシュの判定に応答して、ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得する。
【0028】
本実施例では、情報処理方法の実行主体(例えば、
図1に示すホストマシン101)には、プロダクションカーネル(production kernel又はfirst kernel)が実行可能であり、プロダクションカーネル内で仮想マシン及び仮想マシンモニタが実行可能である。仮想マシンは、ソフトウェアを介して実行され、完全なハードウェアシステム機能を有するとともに完全に分離された環境で実行される完全なコンピュータシステムであり得る。ここで、プロダクションカーネルは、コンピュータハードウェア及びソフトウェアリソースを管理及び制御するコンピュータプログラムであり得、ベアコンピュータ上で直接動作する最も基本的なシステムソフトウェアであり得る。他のソフトウェアは、プロダクションカーネルのサポートがなければ実行できない。ここでは、プロダクションカーネルは、Linux(登録商標)システムなどの任意のタイプのシステムソフトウェアであり得る。
【0029】
実際には、プロダクションカーネルの動作中に、例えば、カーネルのデッドロック、カーネルのヌルポインターアクセス、カーネルモジュールにより検出された不適切な操作などの異常事態が発生することがある。また、ホストマシンの動作中に、過負荷などの重要な指標異常が発生することもある。しかし、いくつかの事前に定義された異常事態に関しては、一度発生すると、プロダクションカーネルそれ自体が不可逆的エラー、即ちプロダクションカーネルクラッシュが発生した可能性があることを意味している。このとき、プロダクションカーネルは、ターゲットカーネルモジュールを呼び出すことによってクラッシュ処理操作を実行することができ、その後、再起動することによって復元することができる。一例として、ターゲットカーネルモジュールは、パニック(Panic)関数が実装されたモジュールであり得る。
【0030】
実際には、カーネルクラッシュに対処する方法は複数ある。例えば、Linux(登録商標)オペレーティングシステムのカーネルには、システムカーネルがクラッシュしたときに事後分析のためにメモリの内容を保存するためのクラッシュダンプメカニズムが複数ある。例えば、kdumpは、物理マシンがクラッシュしたときにランタイムメモリをダンプするための、Linux(登録商標)システムによって提供されるメカニズムである。これはシステムに一部のメモリを予約することで、カーネルがクラッシュしたときにランタイムメモリをダンプするために第2のカーネルを起動することを可能にする。kdumpは、システムクラッシュ、デッドロック、又はダウンが発生した場合にメモリオペレーティングパラメータをダンプするために使用されるツール及びサービスである。例えば、システムがクラッシュすると、正常のカーネルは実行できなくなる。この時点で、kdumpは現在の実行情報をキャプチャ(capture)するためのカーネルを生成し、当該カーネルは、クラッシュの原因を後で分析するために、この時点でのメモリ内のすべての実行状態とデータ情報をダンプコア(dump core)ファイルに収集し、メモリ情報の収集が終了すると、システムは自動的に再起動する。
【0031】
本実施例では、プロダクションカーネルクラッシュの判定に応答して、実行主体はターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得することができる。ここで、ターゲットメモリは、プロダクションカーネルによって実行される仮想マシンに対して予め割り当てられたメモリであってもよい。仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とがプロダクションカーネルによってターゲットメモリに格納される。一例として、実行主体内で実行されている仮想マシンモニタは、各仮想マシンの仮想マシン・デバイスステータス情報及び対応する物理アドレス情報を、当該仮想マシンに対して予め割り当てられたターゲットメモリに格納することができる。ここで、仮想マシン・デバイスステータス情報とは、仮想マシンの仮想デバイスのステータス情報であってもよい。一例として、仮想デバイスは、仮想ネットワークカード、仮想ディスク、仮想CPU(Central Processing Unit,中央処理装置)などを含む。
【0032】
本実施例のいくつかの任意選択の実施態様では、前記物理アドレス情報は、プロダクションカーネルにより次の2つのステップ:仮想マシンを動作停止させるように制御するための動作停止命令を仮想マシンに送信するステップ、予め格納されている、仮想アドレスと物理アドレスとの対応関係を記述するためのページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップによって生成され得る。
【0033】
本実施例では、プロダクションカーネルクラッシュの判定に応答して、プロダクションカーネルは、仮想マシンの動作を停止させるように制御するために、実行される仮想マシンに動作停止命令を送信することができる。その後、予め格納されているページテーブルと仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成することができる。一例として、仮想マシンメモリの仮想アドレスは、連続アドレスであり得、開始アドレス及び長さを含み得る。このようにして、実行主体は、ページテーブルに記録された仮想アドレスと物理アドレスとの対応関係に従って、連続した仮想マシンメモリの仮想アドレスを個別の物理アドレスに変換し、リンクリストの形の物理アドレス情報を得ることができる。
【0034】
ステップ202:物理アドレス情報に基づいてデータをターゲットデータとして取得する。
【0035】
本実施例では、実行主体は、ステップ201で取得された物理アドレス情報に基づいてデータをターゲットデータとして取得することができる。実際には、前記物理アドレス情報はリンクリストであり得る。リンクリストとは、物理記憶手段上の連続していない、非順番の記憶構造であり、データ要素の論理的な順序は、リンクリスト内のポインタのリンク順序によって実現される。リンクリストは一連のノード(リンクリスト内の各要素はノードと呼ばれる)で構成され、各ノードは、データ要素を格納するデータフィールド、次のノードのアドレスを格納するポインタフィールドの2つの部分を含む。このようにして、実行主体は、リンクリスト内の各ノードに順次アクセスすることで、各ノードのデータを取得し、取得したデータをターゲットデータとして用いることができる。
【0036】
本実施例のいくつかの任意選択の実施態様では、前記ステップ202は、具体的には、仮想ファイルシステムを介してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するように実行され得る。
【0037】
本実施態様では、実行主体は、仮想ファイルシステムを介してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得することができる。一例として、前記実行主体のメモリは、カーネル空間(カーネルモード)とユーザ空間(ユーザモード)に分けられる。カーネル空間はオペレーティングシステム命令を実行するために使用することができ、ユーザ空間はユーザプログラム命令を実行するために使用することができる。一例として、前記プロダクションカーネルはカーネル空間で実行することができ、本発明の情報を処理するための方法の各ステップは、ユーザ空間で実行することができる。実際には、カーネル空間に関する一部の情報は、仮想ファイルシステムを介してユーザ空間に提示することができる。例えば、仮想ファイルシステム(例えば、/procファイルシステム)を介してデータインターフェースをユーザ空間に提供することができ、当該データインターフェースを介して、ユーザ空間で実行されるユーザプログラムは、カーネル空間におけるプロダクションカーネル内の仮想マシン・デバイスステータス情報及び物理アドレス情報を取得できる。
【0038】
ステップ203:ターゲットデータと仮想マシン・デバイスステータス情報に基づいて、ファイルを共有記憶領域に格納する。
【0039】
本実施例では、実行主体は、前記ターゲットデータ及び前記仮想マシン・デバイスステータス情報に基づいてファイルを共有記憶領域に格納することができる。ここで、前記共有記憶領域は、データを格納するための、電子機器(例えば、
図1に示すサーバ102)内の事前設定された記憶領域であってもよい。一例として、実行主体は、前記ターゲットデータ及び前記仮想マシン・デバイスステータス情報をファイルとして前記共有記憶領域に格納することができる。
【0040】
本実施例のいくつかの任意選択の実施態様では、ステップ203は、具体的には、ターゲットデータと仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成し、スナップショットファイルを共有記憶領域に格納するように実行され得る。
【0041】
本実施態様では、前記実行主体は、先ずは、ターゲットデータと仮想マシン・デバイスステータス情報とに基づいて、スナップショットファイルを生成することができる。ここで、スナップショットとは、複製時点におけるソースデータの静止画像を含む、指定されたデータセットの完全に利用可能なコピーである。スナップショットは、データ再生のコピー又は複製である。スナップショット技術は現在広く研究され適用されている周知の技術であり、本明細書ではその説明は繰り返さないことに留意されたい。その後、実行主体は、生成されたスナップショットファイルを共有記憶領域に格納することができる。本実施態様では、スナップショット技術によってプロダクションカーネルクラッシュタイム、プロダクションカーネルによって実行されている仮想マシンに対応するターゲットデータ及び仮想マシン・デバイスステータス情報を保存して、共有記憶領域に格納することで、プロダクションカーネルクラッシュによる仮想マシンデータの損失を防止できる。
【0042】
次に、本実施例に係る情報を処理するための方法の応用シナリオを示す概略図である
図3を参照する。
図3の応用シナリオでは、プロダクションカーネルクラッシュの判定に応答して、ホストマシン301は、ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得することができ、ここで、ターゲットメモリは、プロダクションカーネルによって実行される仮想マシンに対して予め割り当てられたメモリであり、仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とがプロダクションカーネルによってターゲットメモリに格納される。その後、ホストマシン301は、物理アドレス情報に基づいてデータをターゲットデータとして取得することができる。最後に、ホストマシン301は、ターゲットデータと仮想マシン・デバイスステータス情報とに基づいて、ファイルをサーバ302の共有記憶領域に格納することができる。
【0043】
本発明の上記実施例によって提供された方法によれば、プロダクションカーネルがクラッシュしたときに、プロダクションカーネルによって実行されている仮想マシンの関連ファイルを共有記憶領域に保存することで、プロダクションカーネルクラッシュによる仮想マシンのデータ損失を防止できる。
【0044】
更に、情報を処理するための方法のもう一つの実施例のフロー400を示す
図4を参照する。この情報を処理するための方法のフロー400は、次のステップ(ステップ401〜404)を含む。
【0045】
ステップ401:プロダクションカーネルクラッシュの判定に応答して、ターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得する。
【0046】
本実施例では、ステップ401は
図2に示す実施例のステップ201と同様であり、ここではその説明は繰り返さない。
【0047】
ステップ402:物理アドレス情報に基づいて、データをターゲットデータとして取得する。
【0048】
本実施例では、ステップ402は
図2に示す実施例のステップ202と同様であり、ここではその説明は繰り返さない。
【0049】
ステップ403:ターゲットデータと仮想マシン・デバイスステータス情報に基づいて、ファイルを共有記憶領域に格納する。
【0050】
本実施例では、ステップ403は
図2に示す実施例のステップ203と同様であり、ここではその説明は繰り返さない。
【0051】
ステップ404:仮想マシン復元要求をバックアップ電子機器に送信する。
【0052】
本実施例では、前記実行主体は仮想マシン復元要求を事前設定されたバックアップ電子機器に送信することができる。ここで、前記仮想マシン復元要求は前記ファイルのファイル識別子を含んでいてもよい。このようにして、前記バックアップ電子機器は、ファイル識別子に従って共有記憶領域からファイルを取得し、プロダクションカーネルがクラッシュした際にカーネルによって実行される仮想マシンを、ファイルに基づいてバックアップ電子機器にローカルに復元することができる。なお、仮想マシンの関連ファイルに基づいて、バックアップ電子機器に仮想マシンを復元することは、現在広く研究され適用されている周知の技術であり、ここではその説明は繰り返さない。
【0053】
図4から分かるように、
図2の対応する実施例と比較して、本実施例における情報を処理するための方法のフロー400では、バックアップ電子機器に仮想マシン復元要求を送信するステップが強調された。したがって、本実施例で説明される解決策は、プロダクションカーネルがクラッシュしたときにバックアップ電子機器を使用してプロダクションカーネルによって実行される仮想マシンを復元することができ、それによって仮想マシンはバックアップ電子機器上で稼働し続けることが実現され、仮想マシンの高可用性が確保された。
【0054】
更に
図5を参照すると、上記の図に示された方法の実施態様として、本発明は、情報を処理するための装置の一実施例を提供し、当該装置の実施例は、
図2に示された方法の実施例に対応しており、当該装置は、具体的に様々な電子機器に適用することができる。
【0055】
図5に示すように、本実施例の情報を処理するための装置500は、第1取得手段501と、第2取得手段502と、記憶手段503とを備える。第1取得手段501は、プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するように構成され、ここで、前記ターゲットメモリは、前記プロダクションカーネルによって実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納される。第2取得手段502は、前記物理アドレス情報に基づいてデータをターゲットデータとして取得するように構成される。記憶手段503は、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するように構成される。
【0056】
本実施例において、情報を処理するための装置500は、第1取得手段501、第2取得手段502、記憶手段503の具体的な処理及びそれらの技術効果は、それぞれ
図2の対応する実施例におけるステップ201、ステップ202、及びステップ203の関連説明を参照することができ、ここではその説明は繰り返さない。
【0057】
本実施例のいくつかの任意選択の実施態様では、前記装置500は更に、バックアップ電子機器に仮想マシン復元要求を送信するように構成される送信手段(図示せず)を更に含むことができ、前記仮想マシン復元要求は前記ファイルのファイル識別子を含み、前記バックアップ電子機器は前記ファイル識別子に従って前記共有記憶領域から前記ファイルを取得し、前記ファイルに基づいて前記仮想マシンを復元する。
【0058】
本実施例のいくつかの任意選択の実施態様では、前記記憶手段503は更に、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいてスナップショットファイルを生成し、前記スナップショットファイルを共有記憶領域に格納するように構成されることができる。
【0059】
本実施例のいくつかの任意選択の実施態様では、前記物理アドレス情報は、前記仮想マシンの動作を停止するように制御するための動作停止命令を前記仮想マシンに送信するステップと、予め格納されている、仮想アドレスと物理アドレスとの対応関係を記述するためのページテーブルと、前記仮想マシンメモリの仮想アドレスとに基づいて、物理アドレス情報を生成するステップとによって、前記プロダクションカーネルにより生成されることができる。
【0060】
本実施例のいくつかの任意選択の実施態様では、前記第1取得手段501は更に、仮想ファイルシステムによって前記ターゲットメモリから前記仮想マシン・デバイスステータス情報及び前記物理アドレス情報を取得するように構成されることができる。
【0061】
以下、本発明の実施例を実現するためのサーバに適用されるコンピュータシステム600を示す構造概略図である
図6を参照する。
図6に示すサーバは、ただ一例に過ぎず、本発明の実施例の機能及び使用範囲を限定するものではない。
【0062】
図6に示すように、コンピュータシステム600は、読み出し専用メモリ(ROM)602に格納されているプログラム又は記憶部608からランダムアクセスメモリ(RAM)603にロードされたプログラムによって様々な適当な動作及び処理を実行することができる中央処理装置(CPU)601を備える。RAM603には、システム600の動作に必要な各種のプログラム及びデータが更に格納されている。CPU601、ROM602及びRAM603は、バス604を介して互いに接続されている。入力/出力(I/O)インターフェース605もバス604に接続されている。
【0063】
キーボード、マウスなどを含む入力部606、陰極線管(CRT)、液晶ディスプレイ(LCD)など、及びスピーカなどを含む出力部607、ハードディスクなどを含む記憶部608、並びにLANカード、モデムなどのネットワークインターフェースカードを含む通信部609は、I/Oインターフェース605に接続されている。通信部609は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ610は、必要に応じてI/Oインターフェース605に接続される。磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブルメディア611は、そこから読み出されるコンピュータプログラムが必要に応じて記憶部708にインストールされるように、必要に応じてドライバ610に設置されている。
【0064】
特に、本発明の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータ可読媒体に具現化されるコンピュータプログラムを含むコンピュータプログラム製品を備え、該コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部609を介してネットワークからダウンロードされてインストールされることが可能であり、及び/又はリムーバブルメディア611からインストールされることも可能である。該コンピュータプログラムが中央処理装置(CPU)601によって実行されると、本発明の方法で限定された上記の機能を実行する。
【0065】
注意すべきなのは、本発明に記載されたコンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体、又はこれらの任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、又は半導体システム、装置もしくはデバイス、又はこれらの任意の組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例としては、1本又は複数の導線による電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMもしくはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読取り専用メモリ(CD−ROM)、光メモリ、磁気メモリ、又はこれらの任意の適切な組み合わせを含むことができるが、これらに限定されない。本発明において、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって使用可能な、又はそれらに組み込まれて使用可能なプログラムを包含又は格納する任意の有形の媒体であってもよい。本発明において、コンピュータ可読信号媒体は、ベースバンド内の、又は搬送波の一部として伝搬されるデータ信号を含むことができ、その中にコンピュータ可読プログラムコードが担持されている。かかる伝搬されたデータ信号は、様々な形態をとることができ、電磁信号、光信号、又はこれらの任意の適切な組み合わせを含むが、これらに限定されない。コンピュータ可読信号媒体は、更にコンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。当該コンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって使用されるか、又はそれらに組み込まれて使用されるプログラムを、送信、伝搬又は伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは任意の適切な媒体で伝送することができ、当該任意の適切な媒体とは、無線、有線、光ケーブル、RFなど、又はこれらの任意の適切な組み合わせを含むが、これらに限定されない。
【0066】
本発明の動作を実行するためのコンピュータプログラムコードは、1種以上のプログラミング言語、又はそれらの組み合わせで作成されることができ、前記プログラミング言語は、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語と、「C」言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語とを含む。プログラムコードは、完全にユーザのコンピュータで実行されることも、部分的にユーザのコンピュータで実行されることも、単独のソフトウェアパッケージとして実行されることも、部分的にユーザのコンピュータで実行されながら部分的にリモートコンピュータで実行されることも、又は完全にリモートコンピュータもしくはサーバで実行されることも可能である。リモートコンピュータの場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、又は(例えば、インターネットサービスプロバイダによるインターネットサービスを介して)外部のコンピュータに接続することができる。
【0067】
図面のうちのフローチャート及びブロック図は、本発明の様々な実施例に係るシステム、方法及びコンピュータプログラム製品によって実現できるアーキテクチャ、機能及び動作の表示例である。これについては、フローチャート又はブロック図における各ブロックは、モジュール、プログラムセグメント、又はコードの一部を表すことができる。当該モジュール、プログラムセグメント、又はコードの一部には、所定のロジック機能を実現するための1つ又は複数の実行可能命令が含まれている。更に注意すべきなのは、一部の代替となる実施態様においては、ブロックに示されている機能は図面に示されているものとは異なる順序で実行することも可能である。例えば、連続して示された2つのブロックは、実際には係る機能に応じて、ほぼ並行して実行されてもよく、時には逆の順序で実行されてもよい。更に注意すべきなのは、ブロック図及び/又はフローチャートにおけるすべてのブロック、ならびにブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアベースのシステムで実現することもできれば、専用のハードウェアとコンピュータ命令との組み合わせで実現することもできる。
【0068】
本発明の実施例に記載された手段は、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。記載された手段は、プロセッサに設置されてもよく、例えば、「第1取得手段と、第2取得手段と、記憶手段とを備えるプロセッサ」と記載されてもよい。ここで、これらの手段の名称は、ある場合において当該手段その自体を限定するものではなく、例えば、第1取得手段は更に、「プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得する手段」と記載されてもよい。
【0069】
一方、本発明は、コンピュータ可読媒体を更に提供し、当該コンピュータ可読媒体は、前記実施例に記載されたデバイスに含まれるものであってもよく、該デバイスに実装されずに別体として存在するものであってもよい。前記コンピュータ可読媒体には、1つ又は複数のプログラムが格納され、前記1つ又は複数のプログラムが当該デバイスによって実行されると、当該デバイスに次の動作を実行させ、前記動作は、プロダクションカーネルクラッシュの判定に応答してターゲットメモリから仮想マシン・デバイスステータス情報及び物理アドレス情報を取得するステップであって、前記ターゲットメモリは、前記プロダクションカーネルによって、実行される仮想マシンに対して予め割り当てられたメモリであり、前記仮想マシンの仮想マシン・デバイスステータス情報と仮想マシンメモリの仮想アドレスに対応する物理アドレス情報とが前記プロダクションカーネルによって前記ターゲットメモリに格納されるステップと、前記物理アドレス情報に基づいてデータをターゲットデータとして取得するステップと、前記ターゲットデータと前記仮想マシン・デバイスステータス情報とに基づいて、ファイルを共有記憶領域に格納するステップとを含む。
【0070】
以上の記載は、本発明の好ましい実施例、及び使用された技術的原理に関する説明に過ぎない。当業者であれば、本発明に係る発明の範囲が、上記の技術的特徴の特定の組み合わせからなる解決策に限定されるものではなく、上記の本発明の趣旨を逸脱しない範囲で、上記の技術的特徴又はそれらの同等の特徴の任意の組み合わせからなる他の解決策も含むべきであることを理解すべきである。例えば、上記の特徴と本発明に開示された類似の機能を有する技術的特徴(それらに限られない)とを相互に置き換えてなる解決策が該当する。