用于捕捉輕量虛擬機管理器中的錯誤條件的方法、系統(tǒng)和裝置制造方法
【專利摘要】公開了用于捕捉輕量虛擬機管理器中的錯誤條件的方法和裝置。被公開的示例方法包括:在VMM和虛擬機(VM)之間定義共享的存儲器結(jié)構(gòu);當VMM開辟VM時在與向量值相關(guān)聯(lián)的VM上安裝中止處理程序;作為對檢測到錯誤的響應,將VMM狀態(tài)信息轉(zhuǎn)移到共享的存儲器結(jié)構(gòu);以及調(diào)用VM上的中止處理程序以將共享的存儲器結(jié)構(gòu)的內(nèi)容轉(zhuǎn)移到非易失性存儲器。
【專利說明】用于捕捉捏量虛擬機管理器中的錯誤條件的方法、系統(tǒng)和 裝直
【技術(shù)領域】
[0001] 本公開一般涉及虛擬化,更具體地涉及捕捉輕量虛擬機管理器中的錯誤條件的方 法、系統(tǒng)和裝置。
【背景技術(shù)】
[0002] 虛擬機管理器(VMM)促進虛擬機(VM)利用底層平臺的資源。示例VMM可W允許 一個或多個VM W保持跨VM安全和為每一個活躍的VM管理存儲器、進程、中斷和/或保護 錯誤的方式共享該種資源。
【專利附圖】
【附圖說明】
[0003] 圖1是根據(jù)本公開的教導的用于捕捉輕量虛擬機管理器中的錯誤條件的示例系 統(tǒng)的示意圖。
[0004] 圖2是圖1所示的示例系統(tǒng)的示例主機錯誤處理程序的示意圖。
[0005] 圖3是圖1所示的示例系統(tǒng)的示例客戶機中止處理程序的示意圖。
[0006] 圖4-7是表示可被執(zhí)行用于捕捉輕量虛擬機管理器中的錯誤條件的示例機器可 讀指令的流程圖。
[0007] 圖8是可W執(zhí)行圖4-7所示的指令W實現(xiàn)圖1-3所示的示例系統(tǒng)和裝置的示例處 理器平臺的示意圖。
【具體實施方式】
[0008] 操作系統(tǒng)通常采用內(nèi)置機制來檢測無法恢復的錯誤并且提供存儲器轉(zhuǎn)儲W便在 調(diào)試操作期間輔助開發(fā)者。存儲器轉(zhuǎn)儲提供指示計算機程序工作的存儲器和/或寄存器被 記錄的狀態(tài)的信息。此外,存儲器轉(zhuǎn)儲可W包括計算機程序在其上執(zhí)行的底層平臺的通用 寄存器信息。在操作系統(tǒng)崩潰之前,核也轉(zhuǎn)儲收集平臺信息并將其存儲到非易失性存儲器, 使得可W進行崩潰后的(有時也稱作事后分析)回顧,W顯示引起先前的崩潰的條件。
[0009] 在操作系統(tǒng)(0巧W由虛擬機管理器(VMM)管理的虛擬化的方式運行的情況下,存 儲器轉(zhuǎn)儲可W W類似方式發(fā)生,而不影響一個或多個諸如其他OS那樣的替換虛擬機(VM)。 另一方面,在VMM經(jīng)歷內(nèi)部錯誤(如;解除引用空指針、訪問不存在的物理存儲器、內(nèi)部意外 邏輯缺陷等)的情況下,VMM可能不具有足夠的資源來執(zhí)行一個或多個存儲器轉(zhuǎn)儲。例如: 一些VMM被稱為缺少文件系統(tǒng)訪問支持的"輕量VMMs"。為了最小化和/或甚至消除VMM 攻擊點,可W去除對VMM的一個或多個機制,例如文件系統(tǒng)訪問支持。該樣去除VMM的一個 或多個機制也使VMM能消耗系統(tǒng)平臺相對較小的配置文件,進而減少平臺資源消耗。
[0010] 本文中公開的方法、裝置、系統(tǒng)和/或制品能促進輕量VMM執(zhí)行期間的重大錯誤情 況下的VMM故障檢測。如下文進一步的詳細描述所述,在重大VMM錯誤的情況下,一個或多 個事件注入調(diào)用客戶機OS, W將錯誤信息從共享的VMM/客戶機存儲器(如;易失性隨機存 取存儲器(RAM))轉(zhuǎn)移到非易失性存儲(如;硬盤驅(qū)動器)。在一些示例中,VMM調(diào)用和/或 W其它方式請求與由VMM管理的一個或多個活躍的客戶機OS關(guān)聯(lián)的一個或多個內(nèi)置文件 系統(tǒng)訪問服務。在將錯誤信息(如:平臺寄存器狀態(tài)、存儲器鏡像等)轉(zhuǎn)移到非易失性存儲 器后,每一個客戶機OS可W W更優(yōu)美的方式關(guān)閉和/或調(diào)用崩潰通知(如"死機藍屏"等)。
[0011] 圖1示出包括VMM(如;有時稱為根模式的主機)102、VM(如;有時稱為非根模式 的客戶機OS) 104和底層平臺硬件106的示例虛擬化系統(tǒng)100。示例平臺硬件106可W包 括但不限于;處理器、盤驅(qū)動器、網(wǎng)絡元件和/或存儲器(如;RAM、只讀存儲器(ROM)、閃存 等)。如下文進一步的詳細描述所述,示例VMM 102包括異常處理程序108、主機錯誤處理 程序110和包含任何數(shù)目VM進入控制字段(VECF) 114的虛擬機控制數(shù)據(jù)結(jié)構(gòu)(VMC巧112。
[0012] 示例客戶機104 (或其他VM)包括客戶機軟件116、0S中斷描述表(IDT) 118、客戶 機中止處理程序120和崩潰通知122。在操作中,通信接口 124促進VMM 102和每一個客戶 機(如圖1所示的客戶機104)之間的通信。通信接口 124可W包括但不限于諸如在基于 英特爾的虛擬化系統(tǒng)中的超級調(diào)用(HyperCall)或虛擬機調(diào)用(VMCALL)那樣的管理程序 調(diào)用系統(tǒng)。在示例客戶機軟件116產(chǎn)生被示例異常處理程序108檢測到的異常的情況下, 示例主機錯誤處理程序檢測到該異常。在另一些示例中,該異??蒞由VMM 102產(chǎn)生和/ 或W其它方式經(jīng)歷。VMM異常包括但不限于;除W零嘗試和無效存儲器訪問嘗試等。如上 文討論所討論的那樣,一些VMM不具有文件系統(tǒng)訪問支持,該妨礙了對非易失性存儲器的 存儲器轉(zhuǎn)儲。本文公開的方法、系統(tǒng)、裝置和/或制品收集錯誤信息,并且將該錯誤信息存 儲到共享的易失性存儲器中,并且調(diào)用一個或多個客戶機W采用原生和/或定制的文件系 統(tǒng)訪問機制將共享的易失性存儲器的內(nèi)容轉(zhuǎn)移到諸如盤驅(qū)動器那樣的非易失性存儲器中。 平臺狀態(tài)的非易失性存儲部分地允許用于調(diào)試的平臺事后分析。
[0013] 作為對檢測到錯誤(如;重大錯誤)的響應,示例主機錯誤處理程序110將平臺 狀態(tài)信息填入易失性共享存儲器。示例易失性共享存儲器可W是示例平臺硬件106的RAM 126。示例主機錯誤處理程序110也將示例VMCS 112配置成啟動一個或多個注入到諸如圖 1所示的示例客戶機VM 104那樣的一個或多個可用的客戶機的事件注入。一般而言,VMM 通過使用VM進入將控制轉(zhuǎn)移到VM,該有時被稱為VMX事務。VM進入的行為由VMCS控制, 并且可W包括執(zhí)行VM啟動(VMLAUNCH)或VM恢復(VMRESUM巧指令,相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)位 于僅對主機VMM可見的特定主機存儲器區(qū)域中。該種對可W控制VM行為的機制的保護增 強了 VMM的安全性和/或由該VMM管理的一個或多個VM的安全性。上述示例VMM控制機 制包括但不限于本文公開的VMX事務、方法、裝置、系統(tǒng)和/或制品。例如:一些處理器采用 安全虛擬機(SVM)架構(gòu),其具有用于管理操作模式控制、存儲器管理、截取、中斷、異常、狀 態(tài)變化管理、系統(tǒng)管理模式、處理器初始化和/或數(shù)據(jù)結(jié)構(gòu)操作的相關(guān)聯(lián)的SVM指令。
[0014] 作為對調(diào)用一個或多個VM進入的響應,客戶機104的示例OS IDT 118引用提供的 向量值。在客戶機事件注入期間由示例主機錯誤處理程序110提供的至少一個向量值啟動 客戶機中止處理程序120。如下文進一步詳細描述的那樣,當VMM 102啟動每一個新的和/ 或附加的VM時,示例主機錯誤處理程序110用至少一個附加向量值配置相關(guān)聯(lián)的OS IDT。 此外,示例主機錯誤處理程序向與新的向量值關(guān)聯(lián)的客戶機104增加對應的客戶機中止處 理程序120。當示例客戶機中止處理程序120被調(diào)用時,其訪問共享的易失性存儲器(如: RAM 126)并且采用文件訪問服務W將共享的易失性存儲器的內(nèi)容轉(zhuǎn)移到非易失性存儲器 (如;平臺硬件106的硬驅(qū)動器128)。事實上,示例事件注入允許輕量VMM在利用一個或多 個客戶機VM的原生和/或定制的文件訪問服務的同時在平臺上被實現(xiàn)。此外,在任何易失 性存儲器的內(nèi)容轉(zhuǎn)移到非易失性存儲器之后或轉(zhuǎn)移期間,示例客戶機中止處理程序120啟 動崩潰通知122 (如;死機藍屏、定制的錯誤消息等。)。
[0015] 圖2是圖1所示的示例VMM主機錯誤處理程序110的示意圖。在圖2所示的示例 中,主機錯誤處理程序110包括主機存儲器管理器202、客戶機OS監(jiān)測器204、主機異常監(jiān) 測器206、客戶中止處理程序的安裝程序208、客戶機OS向量表管理器210、主機狀態(tài)收集器 212、加密引擎214和異常事件注入程序216。在操作中,示例主機存儲管理管理器202定義 和/或W其它方式分配共享的存儲器,使其被用作用于平臺和/或客戶機VM狀態(tài)信息的儲 存庫。可W將對諸如圖1所示的示例RAM 126那樣的共享的存儲器的訪問特權(quán)設置為對由 示例VMM 102管理的一個或多個VM是只讀的。
[0016] 示例客戶機OS監(jiān)測器204檢測和/或確定虛擬化系統(tǒng)100中新的和/或附加的 VM何時啟動。作為對檢測諸如圖1所示的示例客戶機104那樣的新VM的響應,示例客戶機 中止處理程序的安裝程序208將客戶機中止程序120安裝到客戶機104上。此外,示例客 戶機OS向量表管理器210將客戶機1040S IDT 118配置成包括與被安裝的客戶機中止處 理程序120相關(guān)聯(lián)的新向量。相應地,如下文進一步的詳細描述所述,當合適的向量被主機 錯誤處理程序110呼叫和/或調(diào)用時,被安裝的客戶機中止程序120開始執(zhí)行。
[0017] 但是,在示例客戶機OS監(jiān)測器204沒有檢測到和/或沒有確定新的和/或附加的 VM在虛擬化系統(tǒng)100中被啟動的情況下,示例主機異常監(jiān)測器206確定是否有錯誤發(fā)生。 如果沒有錯誤發(fā)生,則示例客戶機OS監(jiān)測器204繼續(xù)確定新的和/或附加的VM是否在示 例虛擬化系統(tǒng)100中被啟動。另一方面,如果標識到了錯誤,則示例主機異常監(jiān)測器206確 定發(fā)生了哪種類型的錯誤。例如,對于非重大錯誤,示例主機狀態(tài)收集器212可W只掲示關(guān) 于VMM狀態(tài)的最小量信息。一般而言,VMM的安全性對于在虛擬化的環(huán)境中使攻擊者可W利 用的一個或多個弱點最小化是非常重要的。潛在的攻擊者知道越多關(guān)于VMM寄存器狀態(tài)和 /或內(nèi)容的信息,就為對VMM和/或由VMM管理的VM發(fā)起的非法攻擊提供了越多機會。在 另一些示例中,主機狀態(tài)收集器212會存儲詳細的VMM狀態(tài)信息,例如:發(fā)生重大錯誤時的 寄存器值和/或共享的RAM 126的鏡像。該些詳細信息可W進一步由加密引擎214加密, W保護該詳細信息不被攻擊和/或公開。
[001引如果示例虛擬化系統(tǒng)100具有諸如兩個客戶機OS那樣的兩個或多個執(zhí)行VM,則示 例VMM錯誤處理程序110確定是否為全部或部分客戶機OSs啟動事件注入。為了提高安全 性,示例VMM錯誤處理程序110可W只選擇一個客戶機OS為主VM和/或W其它方式受信 任的VM W處理被加密的VMM狀態(tài)信息的文件系統(tǒng)存儲。在另一些示例中,VMM錯誤處理程 序110可W繼續(xù)為系統(tǒng)100的所有正在操作的VM進行事件注入W收集盡可能多的調(diào)試信 息。示例異常事件注入程序216配置VM進入中斷信息字段、配置VM進入異常錯誤碼信息 和/或執(zhí)行VM恢復(VMRESUME) VMX指令W完成將文件系統(tǒng)從易失性存儲器轉(zhuǎn)移到非易失 性存儲器。如上文所述,VECF控制VM進入行為,其中示例VM進入中斷信息字段包含與表1 格式一致的32位。
[0019]
【權(quán)利要求】
1. 一種用于捕捉來自虛擬機管理器(VMM)的錯誤信息的方法,包括: 在所述VMM和虛擬機(VM)之間定義共享的存儲器結(jié)構(gòu); 當所述VMM開辟所述VM時,在與向量值相關(guān)聯(lián)的所述VM上安裝中止處理程序; 作為對檢測到錯誤的響應,將VMM狀態(tài)信息轉(zhuǎn)移到所述共享的存儲器結(jié)構(gòu);以及 調(diào)用所述VM上的中止處理程序以將所述共享的存儲結(jié)構(gòu)的內(nèi)容轉(zhuǎn)移到非易失性存儲 器。
2. 如權(quán)利要求1所述的方法,其特征在于,所述VMM不包括文件系統(tǒng)訪問支持。
3. 如權(quán)利要求1所述的方法,其特征在于,所述共享的存儲器結(jié)構(gòu)包括隨機存取存儲 器_)。
4. 如權(quán)利要求3所述的方法,其特征在于,進一步包括針對所述VM將所述RAM配置為 只讀訪問權(quán)限。
5. 如權(quán)利要求1所述的方法,其特征在于,進一步包括配置中斷描述表以存儲所述向 量值。
6. 如權(quán)利要求1所述的方法,其特征在于,所述VMM狀態(tài)信息包括存儲器轉(zhuǎn)儲。
7. 如權(quán)利要求1所述的方法,其特征在于,所述VMM狀態(tài)信息包括VMM寄存器狀態(tài)信 肩、。
8. 如權(quán)利要求1所述的方法,其特征在于,進一步包括確定所述錯誤的嚴重性。
9. 如權(quán)利要求8所述的方法,其特征在于,進一步包括在當所述嚴重性為第一等級時 收集所述錯誤信息的第一解析度,在當所述嚴重性為第二等級時收集所述錯誤信息的第二 解析度。
10. 如權(quán)利要求1所述的方法,其特征在于,所述VM包括客戶機操作系統(tǒng)。
11. 如權(quán)利要求1所述的方法,其特征在于,進一步包括通過VMX指令調(diào)用所述中止處 理程序。
12. 如權(quán)利要求11所述的方法,其特征在于,所述VMX指令與進入中斷信息字段相關(guān) 聯(lián)。
13. 如權(quán)利要求12所述的方法,其特征在于,定制所述字段以包括所述向量值。
14. 如權(quán)利要求1所述的方法,其特征在于,所述中止處理程序與受信任的VM相關(guān)聯(lián)。
15. -種用于捕捉來自虛擬機管理器(VMM)的錯誤信息的裝置,包括: 主機存儲管理器,用于在VMM和虛擬機(VM)之間定義共享的存儲器結(jié)構(gòu); 客戶機中止處理程序,用于當VMM開辟所述VM時在與向量值相關(guān)聯(lián)的所述VM上安裝 中止處理程序; 主機錯誤處理程序,用于:作為對檢測到錯誤的響應,將VMM狀態(tài)信息轉(zhuǎn)移到所述共享 的存儲器結(jié)構(gòu);以及 異常事件注入程序,用于調(diào)用所述VM上的所述客戶機中止處理程序以將所述共享的 存儲結(jié)構(gòu)的內(nèi)容轉(zhuǎn)移到非易失性存儲器。
16. 如權(quán)利要求15所述的裝置,其特征在于,所述共享的存儲器結(jié)構(gòu)包括隨機存取存 儲器(RAM)。
17. 如權(quán)利要求16所述的裝置,其特征在于,所述主機錯誤處理程序用于針對所述VM 將所述RAM配置為只讀訪問權(quán)限。
18. 如權(quán)利要求15所述的裝置,其特征在于,進一步包括:客戶機操作系統(tǒng)(OS)向量 表管理器,用于配置中斷描述表以存儲所述向量值。
19. 如權(quán)利要求15所述的裝置,其特征在于,進一步包括:主機異常監(jiān)測器,用于確定 所述錯誤的嚴重性。
20. 如權(quán)利要求19所述的裝置,其特征在于,進一步包括:主機狀態(tài)收集器,用于在所 述嚴重性為第一等級時收集所述錯誤信息的第一解析度,并在所述嚴重性為第二等級時收 集所述錯誤信息的第二解析度。
21. -種包括存儲于其上的指令的有形的機器可讀存儲介質(zhì),所述指令在被執(zhí)行時使 機器至少: 在VMM和虛擬機(VM)之間定義共享的存儲器結(jié)構(gòu); 當所述VMM開辟所述VM時,在與向量值關(guān)聯(lián)的所述VM上安裝中止處理程序; 作為對檢測到錯誤的響應,將VMM狀態(tài)信息轉(zhuǎn)移到所述共享的存儲器結(jié)構(gòu);以及 調(diào)用所述VM上的中止處理程序以將所述共享的存儲結(jié)構(gòu)的內(nèi)容轉(zhuǎn)移到非易失性存儲 器。
22. 如權(quán)利要求21所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器將隨機存取存儲器(RAM)用作所述共享的存儲器結(jié)構(gòu)。
23. 如權(quán)利要求22所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器針對所述VM將所述RAM配置為只讀訪問權(quán)限。
24. 如權(quán)利要求21所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器配置中斷描述表以存儲所述向量表。
25. 如權(quán)利要求21所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器確定所述錯誤的嚴重性。
26. 如權(quán)利要求25所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器在所述嚴重性為第一等級時收集所述錯誤信息的第一解析度,在所述嚴重性為第二 等級時收集所述錯誤信息的第二解析度。
27. 如權(quán)利要求21所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器通過VMX指令調(diào)用所述中止處理程序。
28. 如權(quán)利要求27所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器將所述VMX指令與進入中斷信息字段相關(guān)聯(lián)。
29. 如權(quán)利要求28所述的機器可讀存儲介質(zhì),其特征在于,所述指令在被執(zhí)行時使所 述機器定制所述字段以包括所述向量值。
【文檔編號】G06F9/455GK104321748SQ201280073598
【公開日】2015年1月28日 申請日期:2012年6月29日 優(yōu)先權(quán)日:2012年6月29日
【發(fā)明者】B·朱, P·鄒, M·塔拉姆, L·陳, K·王 申請人:英特爾公司