陳俊鵬
摘要:Xen虛擬化技術作為當前作為火熱的虛擬化技術之一,在日漸龐大的大型計算機系統設計使用過程中扮演著愈發重要的角色。當前,這類系統的后期維護及整體系統升級時間通常十分冗長。本文在對當前大型計算機系統的設計進行分析基礎上,就Xen虛擬化技術的原理與系統的升級機制進行探討,并對其升級機制提出了針對性改進。
關鍵詞:Xen 補丁 更新機制 超時機制
中圖分類號:TP393.08 文獻標識碼:A 文章編號:1007-9416(2016)12-0112-01
1 當前大型計算機系統的設計
隨著計算機硬件技術及網絡技術的飛速發展,人們對于復雜計算、智能計算、分布式計算以及云計算的需求越來越大。一方面,復雜的計算機系統就需要復雜的前期系統設計,對于整體架構的要求極高,稍不注意就會導致整體系統冗余,占用大量硬件資源的同時卻無法真正發揮整體性能;另一方面,對于運行中的系統而言,安全補丁及不定期的系統升級非常重要,如果系統過于復雜,后期的維護成本急劇增加。
這就使得當前越來越多企業級系統軟件開始朝著分布式設計管理、多操作系統運行的方向進行設計。通過將某一龐大的計算系統分解為多個單獨的子系統,使這些子系統分布式運行,達到硬件使用及運行效率的提升。這其中,有很大一部分的大型系統開始采用虛擬化技術,特別是Xen虛擬化技術來作為此類系統的分布式設計及運行支撐。通過在Xen虛擬化環境中分布式運行的幾個OS(操作系統),在這些OS中運行基于該OS設計的子系統,使在極小的硬件性能損耗的前提下,充分發揮這些OS及在為OS特別設計的子系統的獨特性和優越性,做到整體系統運行及計算的最優。
2 Xen虛擬化技術的原理
Xen虛擬化技術是當前唯一的type 1開源虛擬化技術解決方案。其內核小,可以在極小硬件損耗的情況下同時支持多達100個以上的OS以接近于直接在裸機上運行的性能運行,并同時保持這些OS運行的安全隔離。當前,Xen可以支持全虛擬化技術(hardware-assisted virtualization)、半虛擬化技術 (para-virtualization) 以及混合虛擬化技術(PV on HVM)。使用最多,性能最強的則是其半虛擬化技術。
在一個Xen的虛擬化環境中,主要包括Xen Hypervieosr、Domain0、DomainU、GuestOS及Application等幾個組成部分。Xen Hypervisor是Xen下的虛擬機監測器,即VMM。它負責完成CPU的調度、內存資源分布以及中斷請求。由于hypervisor對于所有的Domain0及DomainU都是透明的,所以可以把hypervisor可以認定為是Domain0及DomainU的硬件層。
DomainU是Xen下的客戶域,客戶域中單獨運行有各自的OS以及相應的子系統及應用軟件。
Domain0是Xen在初始化運行之后在整個環境中運行的第一個虛擬機。作為Xen下所有DomainU的控制域,它處理所有訪問各個域的I/O請求及其他相關的交互。特別的,所有進出Xen虛擬化環境的網絡傳輸以及DomainU之間的網絡傳輸,都需要經過Domain0。
3 當前這類系統的升級機制
在一個大型計算機系統中,升級系統模塊不可避免的會需要暫停系統的使用,這通常都是需要極力避開的。所以,為減少更新次數,每次進行升級更新時很有可能會同時涉及到當前運行的各個子系統以及其底層的OS,甚至還會包括Xen的更新。因此,當前的升級補丁通常以一個含有各DomainU內所有更新文件的多個升級包(package)組成。在這些升級包中,含有該DomainU中子系統及其中OS的所有升級文件。具體的升級過程如下所示:(1)當前運行的系統檢測到有升級補丁時,由Domain0發起一個更新進程,從而從遠端服務器下載相應的補丁文件到特定的文件夾中;(2)補丁文件下載完成后,系統需要先檢查該文件是否合法完整,之后提取其中的升級包,并根據補丁中的控制腳本預設好的安裝順序進行排序;(3)將第一個升級包同步到相應的DomainU中,控制腳本會根據該DomainU中的安裝成功消息來決定是否進行下一個DomainU的升級。如果補丁包的安裝過程中某一DomainU出錯,需回滾整個安裝流程。
在這個過程中,我們能看到很多值得注意的問題:(1)這個升級機制要求在某一DomainU的升級包安裝過程中,其他的DomainU均掛起。只有當前一個域安裝成功后才進行下一個域的升級。這一設置會大大增加升級時間;(2)當某個域的安裝出現問題時,需要回滾整個安裝過程。當排除掉這些問題之后進行重新升級時,卻有要重新安裝一遍上一次已經安裝成功的組件。這會大大降低升級效率;(3)每個域內都運行有自己特定的OS,如果升級包中涉及到OS的升級,就會使得每個升級包變得非常龐大,從而使升級補丁變得十分巨大。這就造成了網絡傳輸上的困難。
4 對該升級機制做的幾類改進
從縮短升級時間以及提高升級效率的方面,我們對升級機制進行了重新設計:
將當前的升級機制從同步升級改為異步升級,也就是說,將多個升級包文件進行同時傳輸至各個DomainU,使多個域同時進行包的安裝。
當某個DomainU中的安裝出錯導致升級失敗時,只回滾該域中的安裝過程。下次再執行補丁升級時,只對之前升級出錯的域進行重新安裝。
每個升級包中都會涉及到大量的系統組件。有些組件的升級事關系統的安全及正常運行,而有些則可以推遲甚至不升級。由此我們可以在升級過程中設置一個動態的超時機制。
當某些不重要的組件安裝失敗時,迫使其推出當前升級過程并恢復已備份的版本,進行下一組件的安裝。
參考文獻
[1]Barham P, Dragovic B, Fraser K, et al. Xen and the art of virtualization[J]. Acm Sigops Operating Systems Review, 2003, 37(5):164-177.
[2]孟江濤,盧顯良,董貴山.Xen的虛擬機網絡優化研究[J].電子科技大學學報,2010, 39(1):106-109.