JP4783392B2 - 情報処理装置および障害回復方法 - Google Patents
情報処理装置および障害回復方法 Download PDFInfo
- Publication number
- JP4783392B2 JP4783392B2 JP2008091727A JP2008091727A JP4783392B2 JP 4783392 B2 JP4783392 B2 JP 4783392B2 JP 2008091727 A JP2008091727 A JP 2008091727A JP 2008091727 A JP2008091727 A JP 2008091727A JP 4783392 B2 JP4783392 B2 JP 4783392B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- virtual
- write
- operating system
- virtual machine
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
定期的にチェックポイント取得処理を実行して、前記情報処理装置のプロセッサの状態を含むコンテキストを、前記オペレーティングシステムの所定の仮想ページアドレスに対応したメモリ領域に保存するチェックポイント取得手段と、前記ページ書き込み違反による例外が発生した場合、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであるか否かを判別する処理と、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された場合、前記書き込み禁止を解除したページを再度書き込み禁止状態に設定して前記オペレーティングシステムに割り当てるページテーブルの全ページを書き込み禁止状態に再設定する処理とを、前記仮想マシンモニタによって実行する手段とを具備することを特徴とする。
SPTのSPTEは無効にしている。ゲストOSのPTEの操作のページフォルトの例外が発生すると、そのページをout of sync list と呼ばれるリストにキューイングし、ゲストOSのPTEにマップされる仮想マシンモニタのSPTEを有効にし(例外を回復)、ゲストOSのPTEへの書き込みを許可し、PTEへ書き込み、PTE更新時のinvlpg命令を実行する。
(チェックポイント間でのはじめての書き込み)、ゲストOSの更新したいページの内容(更新前データ)を図2に示す当該ゲストOSに対応する更新履歴用メモリ領域に格納すると共に、ゲストOSの更新したいページの仮想空間アドレス(ゲストOSの仮想アドレス)と更新履歴用メモリ領域のアドレス(仮想マシンモニタの物理アドレス)とをshadow page table entry listへ設定し、そして、書き込み違反が発生したページに対応するSPTEの書き込み禁止を解除する(図6)。
Claims (10)
- 仮想化機能と仮想記憶機能とを有し、仮想環境上で動作するオペレーティングシステムの仮想記憶をページ単位で処理する情報処理装置において、
前記仮想環境を制御する仮想マシンモニタによって、前記オペレーティングシステムに割り当てるメモリ領域に対応するページテーブルの全ページを書き込み禁止状態に設定する手段と、
前記オペレーティングシステムが書き込み禁止のページへアクセスするために前記ページテーブルを参照した際に発生するページ書き込み違反の例外に応答して、前記ページ書き込み違反が発生したページの更新前データを前記オペレーティングシステムのメモリ領域から取得して前記仮想マシンモニタが管理するメモリ領域に保存する処理を、前記仮想マシンモニタによって実行する更新前データ保存手段と、
前記更新前データを保存した後に前記ページ書き込み違反が発生したページの書き込み禁止を解除することによって前記オペレーティングシステムによる前記ページ書き込み違反が発生したページへの書き込みを継続させる処理を、前記仮想マシンモニタによって実行する手段と、
定期的にチェックポイント取得処理を実行して、前記情報処理装置のプロセッサの状態を含むコンテキストを、前記オペレーティングシステムの所定の仮想ページアドレスに対応したメモリ領域に保存するチェックポイント取得手段と、
前記ページ書き込み違反による例外が発生した場合、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであるか否かを判別する処理と、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された場合、前記書き込み禁止を解除したページを再度書き込み禁止状態に設定して前記オペレーティングシステムに割り当てるページテーブルの全ページを書き込み禁止状態に再設定する処理とを、前記仮想マシンモニタによって実行する手段とを具備することを特徴とする情報処理装置。 - 前記オペレーティングシステムから発行されるI/O要求の実行を次のチェックポイント取得処理が実行されるまで遅延させるために、前記オペレーティングシステムから発行されるI/O要求を蓄積する処理と、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された時に前記蓄積されているI/O要求を実行する処理とを、前記仮想マシンモニタによって実行する手段とをさらに具備することを特徴とする請求項1記載の情報処理装置。
- 前記オペレーティングシステムによるメモリアクセスによってECCエラーが発生した際に、前記ECCエラーが誤り訂正可能なエラーであるか否かを判別する処理を、前記仮想マシンモニタによって実行する手段と、
前記ECCエラーが誤り訂正可能なエラーでない場合、前記保存されているコンテキストを用いてプロセッサの状態を直前のチェックポイントに対応する状態に復元すると共に、前記保存されている更新前データを用いて前記オペレーティングシステムのメモリの状態を直前のチェックポイントに対応する時点に復元する処理と、前記誤り訂正可能ではないエラーが発生した仮想ページアドレス用に所定の物理ページを割り当て、前記誤り訂正可能ではないエラーが発生した仮想ページアドレスに対応する前記ページテーブルのエントリに前記所定の物理ページの物理ページアドレスを設定する処理とを、前記仮想マシンモニタによって実行する手段とをさらに具備することを特徴とする請求項1記載の情報処理装置。 - 前記ページテーブルを、前記オペレーティングシステムのパニック関数を呼び出す仮想ページアドレスに対応したページが存在しない状態に設定する処理を前記仮想マシンモニタによって実行する手段と、
ページフォルトによる例外が発生した場合、前記ページフォルトによる例外が発生したページが前記パニック関数のコードを呼び出す仮想ページアドレスに対応するページであるか否かを判別する処理と、前記パニック関数のコードを呼び出す仮想ページアドレスに対応するページである場合、前記保存されているコンテキストを用いてプロセッサの状態を直前のチェックポイントに対応する状態に復元すると共に、前記保存されている更新前データを用いて前記オペレーティングシステムのメモリの状態を直前のチェックポイントに対応する時点に復元する処理とを、前記仮想マシンモニタによって実行する手段とをさらに具備することを特徴とする請求項2記載の情報処理装置。 - 仮想化機能と仮想記憶機能とを有する情報処理装置を障害から回復するための障害回復処理方法であって、
仮想マシンモニタによって制御される仮想環境上で動作するオペレーティングシステムに割り当てるメモリ領域に対応するページテーブルの全ページを書き込み禁止状態に設定処理を、前記仮想環境を制御する仮想マシンモニタによって実行するステップと、
前記オペレーティングシステムが書き込み禁止のページへアクセスするために前記ページテーブルを参照した際に発生するページ書き込み違反の例外に応答して、前記ページ書き込み違反が発生したページの更新前データを前記オペレーティングシステムのメモリ領域から取得して前記仮想マシンモニタが管理するメモリ領域に保存する処理を、前記仮想マシンモニタによって実行するステップと、
前記更新前データを保存した後に前記ページ書き込み違反が発生したページの書き込み禁止を解除することによって前記オペレーティングシステムによる前記ページ書き込み違反が発生したページへの書き込みを継続させる処理を、前記仮想マシンモニタによって実行するステップと、
定期的にチェックポイント取得処理を実行して、前記情報処理装置のプロセッサの状態を含むコンテキストを、前記オペレーティングシステムの所定の仮想ページアドレスに対応したメモリ領域に保存するチェックポイント取得ステップと、
前記ページ書き込み違反による例外が発生した場合、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであるか否かを判別する処理と、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された場合、前記書き込み禁止を解除したページを再度書き込み禁止状態に設定して前記オペレーティングシステムに割り当てるページテーブルの全ページを書き込み禁止状態に再設定する処理とを、前記仮想マシンモニタによって実行するステップとを具備することを特徴とする障害回復処理方法。 - 前記オペレーティングシステムから発行されるI/O要求の実行を次のチェックポイント取得処理が実行されるまで遅延させるために、前記オペレーティングシステムから発行されるI/O要求を蓄積する処理と、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された時に前記蓄積されているI/O要求を実行する処理とを、前記仮想マシンモニタによって実行するステップをさらに具備することを特徴とする請求項5記載の障害回復処理方法。
- 仮想記憶機能を有するコンピュータのハードウェア資源を仮想化する仮想マシンモニタとして機能するプログラムであって、
前記仮想マシンモニタによって制御される仮想環境上で動作するオペレーティングシステムに割り当てるメモリ領域に対応するページテーブルの全ページを書き込み禁止状態に設定する手順と、
前記オペレーティングシステムが書き込み禁止のページへアクセスするために前記ページテーブルを参照した際に発生するページ書き込み違反の例外に応答して、前記ページ書き込み違反が発生したページの更新前データを前記オペレーティングシステムのメモリ領域から取得して前記仮想マシンモニタが管理するメモリ領域に保存する処理を実行する更新前データ保存手順と、
前記更新前データを保存した後に前記ページ書き込み違反が発生したページの書き込み禁止を解除することによって前記オペレーティングシステムによる前記ページ書き込み違反が発生したページへの書き込みを継続させる処理を実行する手順と、
前記ページ書き込み違反による例外が発生した場合、前記ページ書き込み違反が発生したページが前記オペレーティングシステムの所定の仮想ページアドレスに対応するページであるか否かを判別する判別手順であって、前記オペレーティングシステムは、定期的にチェックポイント取得処理を実行して、前記情報処理装置のプロセッサの状態を含むコンテキストを、前記所定の仮想ページアドレスに対応したメモリ領域に保存するタスクを含んでいる、判別手順と、
前記ページ書き込み違反による例外が発生した場合、前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであるか否かを判別する手順と、
前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された場合、前記書き込み禁止を解除したページを再度書き込み禁止状態に設定して前記オペレーティングシステムに割り当てるページテーブルの全ページを書き込み禁止状態に再設定する手順とを、前記コンピュータに実行させることを特徴とするプログラム。 - 前記オペレーティングシステムから発行されるI/O要求の実行を次のチェックポイント取得処理が実行されるまで遅延させるために、前記オペレーティングシステムから発行されるI/O要求を蓄積する手順と、
前記ページ書き込み違反が発生したページが前記所定の仮想ページアドレスに対応するページであることが判別された時に前記蓄積されているI/O要求を実行する手順とを、前記コンピュータにさらに実行させることを特徴とする請求項7記載のプログラム。 - 前記オペレーティングシステムによるメモリアクセスによってECCエラーが発生した際に、前記ECCエラーが誤り訂正可能なエラーであるか否かを判別する手順と、
前記ECCエラーが誤り訂正可能なエラーでない場合、前記保存されているコンテキストを用いてプロセッサの状態を直前のチェックポイントに対応する状態に復元すると共に、前記保存されている更新前データを用いて前記オペレーティングシステムのメモリの状態を直前のチェックポイントに対応する時点に復元する手順と、
前記誤り訂正可能ではないエラーが発生した仮想ページアドレス用に所定の物理ページを割り当て、前記誤り訂正可能ではないエラーが発生した仮想ページアドレスに対応する前記ページテーブルのエントリに前記所定の物理ページの物理ページアドレスを設定する手順とを、前記コンピュータにさらに実行させることを特徴とする請求項7記載のプログラム。 - 前記ページテーブルを、前記オペレーティングシステムのパニック関数を呼び出す仮想ページアドレスに対応したページが存在しない状態に設定する処理を前記仮想マシンモニタによって実行する手順と、
ページフォルトによる例外が発生した場合、前記ページフォルトによる例外が発生したページが前記パニック関数のコードを呼び出す仮想ページアドレスに対応するページであるか否かを判別する手順と、
前記パニック関数のコードを呼び出す仮想ページアドレスに対応するページである場合、前記保存されているコンテキストを用いてプロセッサの状態を直前のチェックポイントに対応する状態に復元すると共に、前記保存されている更新前データを用いて前記オペレーティングシステムのメモリの状態を直前のチェックポイントに対応する時点に復元する手順とを、前記コンピュータにさらに実行させることを特徴とする請求項7記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008091727A JP4783392B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置および障害回復方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008091727A JP4783392B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置および障害回復方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009245216A JP2009245216A (ja) | 2009-10-22 |
JP4783392B2 true JP4783392B2 (ja) | 2011-09-28 |
Family
ID=41307019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008091727A Expired - Fee Related JP4783392B2 (ja) | 2008-03-31 | 2008-03-31 | 情報処理装置および障害回復方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4783392B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667191B2 (en) * | 2010-01-15 | 2014-03-04 | Kingston Technology Corporation | Managing and indentifying multiple memory storage devices |
JP5484117B2 (ja) * | 2010-02-17 | 2014-05-07 | 株式会社日立製作所 | ハイパーバイザ及びサーバ装置 |
WO2011148447A1 (ja) | 2010-05-24 | 2011-12-01 | パナソニック株式会社 | 仮想計算機システム、領域管理方法、及びプログラム |
JP5635815B2 (ja) * | 2010-06-14 | 2014-12-03 | 株式会社日立製作所 | コンピュータシステム及びその制御方法 |
WO2012070102A1 (ja) * | 2010-11-22 | 2012-05-31 | 三菱電機株式会社 | 計算機装置及びプログラム |
FR2972548B1 (fr) * | 2011-03-08 | 2013-07-12 | Thales Sa | Dispositif pour l'amelioration de la tolerance aux fautes d'un processeur |
JP5545250B2 (ja) * | 2011-03-22 | 2014-07-09 | 株式会社デンソー | 制御装置 |
WO2013080288A1 (ja) * | 2011-11-28 | 2013-06-06 | 富士通株式会社 | メモリ縮退方法及び情報処理装置 |
EP2787441A4 (en) * | 2011-11-30 | 2015-08-26 | Hitachi Ltd | MEMORY EMPTY COLLECTION TECHNIQUE |
US8875295B2 (en) * | 2013-02-22 | 2014-10-28 | Bitdefender IPR Management Ltd. | Memory introspection engine for integrity protection of virtual machines |
JP6237230B2 (ja) | 2013-12-27 | 2017-11-29 | 富士通株式会社 | メモリ管理プログラム、メモリ管理方法、及びメモリ管理装置 |
CN112099905B (zh) * | 2020-08-26 | 2024-01-26 | 海光信息技术股份有限公司 | 虚拟机脏页获取方法、装置、电子设备及可读存储介质 |
-
2008
- 2008-03-31 JP JP2008091727A patent/JP4783392B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009245216A (ja) | 2009-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4783392B2 (ja) | 情報処理装置および障害回復方法 | |
US9928180B2 (en) | Synchronizing a translation lookaside buffer with page tables | |
US10859289B2 (en) | Generating and using checkpoints in a virtual computer system | |
US10191761B2 (en) | Adaptive dynamic selection and application of multiple virtualization techniques | |
Park et al. | Fast and space-efficient virtual machine checkpointing | |
US8479195B2 (en) | Dynamic selection and application of multiple virtualization techniques | |
JP5484117B2 (ja) | ハイパーバイザ及びサーバ装置 | |
US7631147B2 (en) | Efficient flushing of translation lookaside buffers in a multiprocessor environment | |
JP5772962B2 (ja) | 情報処理装置、メモリダンプ採取方法、及びプログラム | |
US8468310B2 (en) | Method and system for tracking data correspondences | |
WO2022193768A1 (zh) | 内存读写指令的执行方法及计算设备 | |
Russinovich et al. | Virtual machine preserving host updates for zero day patching in public cloud | |
JP2005122334A (ja) | メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム | |
Kourai | Fast and correct performance recovery of operating systems using a virtual machine monitor | |
US20220318053A1 (en) | Method of supporting persistence and computing device | |
WO2012137239A1 (ja) | 計算機システム | |
Huang et al. | Optimizing crash dump in virtualized environments | |
JP2022542212A (ja) | カーネルサポートを用いたデュラブルサービスに基づく耐障害オペレーティングシステムを構築すること |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110609 |
|
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: 20110614 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140715 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140715 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |