多核環境下虛擬機線上確定性重演技術研究

《多核環境下虛擬機線上確定性重演技術研究》是依託北京大學,由肖臻擔任負責人的面上項目。

基本介紹

  • 中文名:多核環境下虛擬機線上確定性重演技術研究
  • 項目負責人:肖臻
  • 項目類別:面上項目
  • 依託單位:北京大學
項目摘要,結題摘要,

項目摘要

虛擬機線上確定性重演是指虛擬機管理器記錄一台虛擬機發生的非確定性事件,在另一台虛擬機上並行地重演這些事件,使兩台虛擬機執行相同的指令序列。虛擬機線上確定性重演可以使兩台虛擬機的狀態完全同步,是實現虛擬機容錯系統的關鍵技術。然而,在多核環境下,由於多執行緒共享記憶體的訪問屬於非確定性事件,記錄並重演記憶體訪問之間的依賴關係具有較大的挑戰;目前,多核虛擬機線上確定性重演仍然存在許多迫切需要解決的理論問題。在本課題的研究中,我們擬在虛擬機管理器中採用動態二進制掃描技術發現多執行緒的記憶體訪問行為,以獨立執行的二進制指令塊為基本單位,使用Lamport 標量邏輯時鐘記錄動態二進制指令塊的執行順序,並在另一台虛擬機上確定性重演二進制指令塊。最終,本課題將研究出一種高效的多核虛擬機線上確定性重演技術,為虛擬機容錯系統的實現提供重要的理論基礎和關鍵技術支持。

結題摘要

確定性重演指在一段CPU指令執行過程中,記錄開始時的狀態和執行時的必要信息,使得將CPU恢復到開始位置重新根據記錄的信息執行這一段指令後,能夠獲得與前一次執行完全相同的結果。多核虛擬機線上確定性重演則是指在對稱多處理虛擬化環境下對多核虛擬機進行確定性重演的工作,並且重演可以線上進行,即在記錄的同時進行重演。由於目前商用處理器不同核對記憶體訪問順序的不確定性,多核虛擬機確定性重演中存在著不同核對同一記憶體地址訪問順序不同導致執行結果不一致的問題,稱為“記憶體訪問交織問題”。記憶體訪問交織在多核虛擬機環境中大量的存在,現有的系統中對該問題追蹤與記錄都有很大的代價,因此解決記憶體訪問交織問題是實現多核確定性重演關鍵。此外現有的系統在記錄階段會產生很大的日誌,因此產生的巨大傳輸代價使得重演階段難以與記錄階段同時進行,無法實現線上重演。 本項目團隊在項目執行過程中提出了一個基於硬體輔助虛擬化技術從軟體上實現多核虛擬機線上確定性重演的系統,該系統採用了基於執行塊的方法, 將虛擬機 CPU 執行的若干連續指令劃分為執行塊,並設計了一種執行塊記憶體訪問寫時複製機制和執行塊的提交/回滾機制,並在此基礎上提出了三段提交協定處理執行塊提交和回滾的策略,使得對記憶體交織問題的記錄能夠以執行塊為粒度進行處理,從而大大加速對記憶體訪問交織問題的記錄和減少記錄日誌的大小。此外,本系統還使用了多種硬體輔助虛擬化特性來最佳化對記憶體訪問的追蹤及對重演過程的加速。 研究表明這套系統能夠以2~8倍的執行代價實現對多核虛擬機執行情況的記錄,比現有系統在絕對執行效率上提高了50%以上;本系統在記錄階段產生的日誌平均大小僅為 0.13MB/s,比現有系統減少了90%以上。此外本系統有著良好的記憶體可擴展性,其效率隨著虛擬機記憶體的增長沒有明顯的變化。

相關詞條

熱門詞條

聯絡我們