- 相關推薦
關于容器虛擬化技術研究
引言
操作系統(tǒng)領域一直以來面臨的一個主要挑戰(zhàn)來自于應用程間存在的相互獨立性和資源互操作性之間的矛盾,即每個應用程序都希望能運行在一個相對獨立系統(tǒng)環(huán)境下,不受其他程序的干擾,同時又能以方便快捷的方式與其他程序交換和共享系統(tǒng)資源[4]。當前面向個人計算機的通用操作系統(tǒng)更強調程序間的互操作性,而缺乏對程序間相對獨立性的有效支持。
虛擬化技術因其具有同時運行多個相對獨立操作系統(tǒng)的能力而被用來克服上述挑戰(zhàn)。VMware 和Xen 等虛擬化主流產(chǎn)品均采用Hypervisor 模型。該模型通過將應用程序運行在多個不同虛擬機內,實現(xiàn)對上層應用程序的隔離[2]。但由于Hypervisor 模型更傾向于每個虛擬化都擁有一份相對獨立的系統(tǒng)資源,提供相對完全的獨立性支持,這種策略造成處于不同虛擬機內的應用程序間實現(xiàn)互操作非常困難。例如,即使是運行在同一臺物理機器上,如果處于不同虛擬機內,那么應用程序間仍然只能通過網(wǎng)絡進行數(shù)據(jù)交換,而非共享內存或者文件。
Hypervisor 模型這種強獨立性保障策略在一定程度上犧牲系統(tǒng)的執(zhí)行效率。對于高性能計算、web 服務、數(shù)據(jù)庫、游戲平臺和分布式系統(tǒng)等許多應用領域,提供高效的資源互操作性同保持程序間的相對獨立性具有同等重要的意義[4]。因此就提出了一種基于資源與安全器概念的虛擬化技術,能夠在滿足基本的獨立性需求的同時提供高效的系統(tǒng)資源共享支持。
1 資源容器
當前比較流行的高性能服務器程序通常是一個資源主體對應多個資源消費者的模式,如事件觸發(fā)模式(Event-Driver),或者是多個資源主題對應多個資源消費者的模式,如CGI程序。這樣造成準確估算出單個資源消費者所使用的資源量變得非常困難,從而無法很好的進行資源管理和控制。例如,在多線程服務器上,一個應用實例對應于一個可以執(zhí)行多種獨立行為的進程,這個進程擁有所有屬于它的資源。但在使用線程完成單個任務時,其所使用到的資源往往只是這個進程所屬資源的一個子集。由于對資源的控制粒度只能細化到進程級別,因此不可能對單個線程進行獨立的資源控制。而對需要多線程協(xié)作完成的任務進行資源的統(tǒng)計和控制就更加的難以實現(xiàn)[3]。其他主要的限制來自于資源控制范圍、線程調度策略和任務涉及線程差異等在內的多個方面。例如,系統(tǒng)很少對網(wǎng)絡資源的使用進行控制,必然造成對涉及網(wǎng)絡使用的進程的資源統(tǒng)計數(shù)據(jù)的變差,進面造成資源調度的不準確。
為此提出了延時處理機制,將進程視為完成某個任務的核心,將網(wǎng)絡等資源的使用和進程相聯(lián)系起來,從而提高了資源統(tǒng)計的精確度。但該機制仍然無法徹底解決線程不是資源控制和統(tǒng)計單元的問題。
資源容器的概念最早出現(xiàn)在1999 年G.Banga 等發(fā)表的論文中[7],主要是為了提高應用程序對系統(tǒng)資源的控制和管理能力;谫Y源容器的系統(tǒng)可以把系統(tǒng)中的資源主體從運行主體即進程中剝離出來,從而達到對系統(tǒng)資源進行更精確和高效控制的目的,作為抽象的操作系統(tǒng)載體,資源容器可以擁有一個或多個進程在完成某個任務過程中所使用的所有資源。因此,資源主體不再靜態(tài)地綁定到進程。進程及其產(chǎn)生的線程與資源主體的關系是動態(tài)的、可調整的。甚至來自多個不同進程的線程也可以同時屬于一個資源容器。資源容器與任務相對應,記錄下任務在執(zhí)行過程中所消耗的所有的資源,包括CPU、內存和網(wǎng)絡等。這樣就可以根據(jù)這些信息實現(xiàn)對資源的全理調度和控制[1]。資源容器通過引入子資源容器概念可以將任務分解并歸類以容器組進行管理,子資源依照一定的規(guī)則實現(xiàn)資源的共享,提高靈活性。
2 安全容器
克服資源共享帶來的安全隱患的有效方法,是采用一套可靠的訪問控制機制來防止非法的資源共享。強制訪問控制(MAC)是早期較有影響的訪問控制機制,它通過在所有的系統(tǒng)對象上添加有管理員制定的安全策略來限制正在執(zhí)行的程序的訪問權限,從而阻止惡意程序破壞的傳播。該方法存在許多限制,首先由于采用了基于安全分級的安全機制,因此只能實現(xiàn)一些普遍的安全策略,無法針對單個程序提出不同的安全策略。其次,它對數(shù)據(jù)和程序的完整性,以及程序的職能范圍無法進行有效的控制。在此基礎上提出一種名為Flask 的MAC[6]
架構,實現(xiàn)了將安全策略邏輯與安全機制的分離,從而能夠提供更加便捷的安全策略設置和調整,以滿足不同程序對安全策略的要求。通過引入域、角色和類型等概念實現(xiàn)對安全策略的細化和精確定制。虛擬化技術因其卓越的進程和系統(tǒng)資源隔離能力在發(fā)展的初期就被用來實現(xiàn)對應用程序的訪問控制,將應用程序置于相對獨立的運行環(huán)境中,由虛擬機監(jiān)控依照管理員制定的策略實現(xiàn)程序間的訪問控制。
上述這些訪問控制機制的實現(xiàn),往往都依賴于操作系統(tǒng)本身提供的基于保障機密性和完整性的信息隔離機制。但是,這種信息隔離機制卻可能被不法程序通過特殊手段繞過,使得訪問機制形同虛設,而直接對上層應用程序實施篡改和攻擊。造成這些潛在威脅的根源在于訪問控制機制未能從操作系統(tǒng)中剝離出來。
通過對資源容器的借鑒,提出了安全容器的概念。其核心思想在于將訪問控制機制從操作系統(tǒng)中剝離出來獨立于運行環(huán)境,依據(jù)不同的安全策略形成虛擬的安全容器。在資源容器的基礎上,對包括系統(tǒng)進程、文件系統(tǒng)、網(wǎng)絡和進程間通信等在仙的系統(tǒng)資源進行訪問控制。
每個應用程序被置于一個獨立的運行環(huán)境中,各自擁有自己獨立的文件系統(tǒng)(整個文件系統(tǒng)的一個子集),網(wǎng)絡和設備則根據(jù)需要虛擬出來,進程間的通信也被嚴格地控制。各個程序就像運行在一個安全的容器里面,具有較強的訪問控制能力。
3 基于容器的虛擬化技術
基于容器的系統(tǒng)需要一個共享的虛擬操作系統(tǒng)鏡像。鏡像中包括一個唯一的根文件系統(tǒng),一系列可執(zhí)行系統(tǒng)文件和庫文件,以及其他建立虛擬機所需的資源。任意一個虛擬機都可以像單機的操作系統(tǒng)一樣進行重啟、關機等操作。
如所示,基于容器的系統(tǒng)架構由兩個平臺組成:宿主平臺和虛擬平臺。宿主平臺主要由一個共享的操作系統(tǒng)鏡像和一個特權級虛擬機組成。管理員通過特權級虛擬機對客戶虛擬機進行管理。虛擬平臺由若干個客戶虛擬機組成,在客戶虛擬機平臺上運行的程序與直接運行在物理機上的程序在行為上沒有本質差別。上面所述的一些基于容器的系統(tǒng)特性和Hypervisor 模型下的虛擬機的系統(tǒng)特性類似,而它們的主要區(qū)別在于實現(xiàn)程序獨立性的方法。基于容器的系統(tǒng)在實現(xiàn)安全獨立性時直接使用了操作系統(tǒng)的內部對象(如PID、UID 等)。
如何安全地使用這些對象需要遵循以下兩個要點:命名空間的分開;控制訪問(如使用過濾器)。在實現(xiàn)“命名空間分開”上,全局的標識符保存在完全不同的空間內,并且各自虛擬機空間獨立的標識符。對于“控制訪問”的實現(xiàn),主要依靠對虛擬機訪問內核對象權限進行動態(tài)檢查。在Hypervisor 系統(tǒng)中安全獨立性的實現(xiàn)也是通過命名空間和訪問控制來實現(xiàn)的,但更多的是基于包括虛擬內存空間、PCI 總線地址和特權指令等在內的硬件層;谌萜鞯南到y(tǒng)和基于Hypervisor 模型的系統(tǒng)在資源獨立性的實現(xiàn)上大致一致,都需要將諸如CPU 周期、I/O 帶寬等物理資源進行虛擬產(chǎn)生多份虛擬資源[5]。Hypervisor 系統(tǒng)比較有代表性的Xen虛擬機監(jiān)控系統(tǒng)和基于容器系統(tǒng)的Linux-VServer 系統(tǒng)都是通過宿主虛擬機來管理網(wǎng)絡和硬盤I/O 的,兩個系統(tǒng)的差別僅僅在于它們如何映射資源。
4 結論
基于容器的虛擬化技術借鑒了安全容器的思想,在使用資源容器實現(xiàn)資源共享的基礎上通過安全容器技術實現(xiàn)對共享資源的有效訪問控制。按照不同的安全對象,諸如域、應用程序和虛擬機等分配不同的可訪問資源形成虛擬的安全容器,防止其他對象對其資源進行惡意的、未授權的訪問。同時它也借鑒資源容器的核心思想,將系統(tǒng)中的資源主體(即虛擬機)中剝離出來,從而達到在虛擬化技術上對系統(tǒng)資源進行精確和高效控制的目的。虛擬機監(jiān)控器負責對系統(tǒng)中所有的資源容器進行管理和控制,根據(jù)用戶配置以及系統(tǒng)資源使用的實際情況進行合理分配和回收,實現(xiàn)跨虛擬機的進程間資源共享。但這樣的資源控制機制仍然存在安全隱患。
中國碩士論文網(wǎng)提供大量免費碩士畢業(yè)論文,如有業(yè)務需求請咨詢網(wǎng)站客服人員!
[參考文獻] (References)
[1] 孫世昶,李忠明. XEN 虛擬機系統(tǒng)直接IPO 訪問機制的研究與實現(xiàn)[J]. 大連民族學院學報, 2007, 38(3):30~33.
[2] 董向軍,張恩剛,張沛,等. 桌面虛擬化技術研究[J]. 中國信息界, 2012, 140(4): 50~52.
[3] 胡冷非,李小勇. 基于Xen 的I/O 準虛擬化驅動研究[J]. 計算機工程, 2012, 35(23): 258~262.
[4] 黃景昌. Xen 虛擬化技術簡述[J]. 軟件園科技浪潮, 2007, 57(6): 43~45.
[5] 李勇,胡偉. 虛擬機xen 體系結構分析[J]. 科技風, 2012, 43(6): 73.
[6] 魯松. 計算機虛擬化技術及應用[M]. 北京:機械工業(yè)出版社,2012.
[7] 金海. 計算機虛擬化-原理及應用[M]. 北京:清華大學出版社,2012.
【容器虛擬化技術研究】相關文章:
環(huán)境藝術設計虛擬現(xiàn)實技術研究論文11-14
試論計算機虛擬化技術及其應用11-30
簡論虛擬股票期權激勵及其本土化策略02-26
企業(yè)信息化安全技術研究01-08
虛擬化圖書館在高校數(shù)字化圖書館建設中的作用03-20
基于X3D的虛擬植物建模與可視化研究03-02
虛擬運作對高校圖書館自動化建設的啟示03-21
機電一體化專業(yè)課教學的虛擬仿真03-14