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