韓文智
(四川職業技術學院計算機科學系,四川遂寧629000)
淺析KVM虛擬化平臺的構建
韓文智
(四川職業技術學院計算機科學系,四川遂寧629000)
隨著云計算技術的快速發展和應用,有效的降低了企業的IT成本,使得企業可以快速的構建各類高效的信息化系統,虛擬化技術作為云計算技術的核心,其在云計算技術中被廣泛使用,KVM(基于內核的虛擬機系統)是一種高效的虛擬機系統技術,是一個運行在操作系統上的虛擬化管理程序,是目前應用最為廣泛的和公認的最為高效的虛擬機系統,被廣泛的應用于各種大型云計算平臺中,如亞馬遜的Amazon云服務,阿里巴巴的阿里云服務都應用了先進的KVM虛擬化技術,本文將從KVM虛擬化平臺的構建出發,對目前KVM虛擬化技術研究現狀進行分析,淺析目前KVM虛擬化平臺構建存在的問題,并提出了提高虛擬化安全性的方法,對提高KVM虛擬化平臺安全性、促進KVM虛擬化技術發展具有非常重要意義.
KVM;虛擬化平臺;云計算;安全
平臺虛擬化主要是將計算機系統的主要的資源,如C P U、內存、網絡和硬盤等進行抽象化處理[1],并且通過相關的管理程序進行整合和統一管理,操作系統則通過虛擬機的抽象層獲取需要的計算機資源,實現操作系統與計算機硬件資源的隔離,和統一管理,有效的提高了計算平臺的效率[2].
從目前已有的虛擬化技術研究來看,根據虛擬機工作時與軟硬件之間的相互關系可以將虛擬化技術分為全虛擬化技術、半虛擬化技術和硬件輔助虛擬化技術三類,其中全虛擬化技術采用的是二進制轉譯技術來解決虛擬機客戶與操作系統的特權指令問題[3],如常見的Q E M U和V M w are虛擬機軟件都是采用這種技術來實現的;半虛擬化主要是通過修改操作系統的核心[4],利用構建虛擬管理程序來實現對硬件運算資源的訪問和管理,如U M L和X en虛擬機軟件系統都是采用這種方式進行實現的;硬件輔助虛擬化技術主要是指能夠支持英特爾公司推出的I ntel-V T硬件虛擬化技術或者是A M D推出的A M D-V硬件虛擬化技術,通過這兩種技術來實現一些處理指令提高虛擬化性能[5],基于這兩個平臺實現的都是直接通過硬件C P U輔助指令來執行相關虛擬化命令,這種虛擬化技術的效率非常高,處理速度是其他虛擬化技術無法相比的,也是目前應用最為廣泛的一種虛擬化技術,如K V M、V M w are E S X i虛擬化軟件等[6],采用硬件輔助虛擬化技術構建的虛擬化平臺,不需要對操作系統進行修改也不需要執行任何的代碼轉譯程序,有效的彌補了前全虛擬化技術和半虛擬化技術的不足.
基于上述背景,本文在研究過程中,選擇了目前應用最為廣泛的K V M虛擬化技術,探討利用K V M虛擬化技術構建虛擬化平臺的現狀和存在的問題,并提出了相關的解決對策,以提高基于K V M虛擬化技術構建的虛擬化平臺的安全性和穩定性.
1.1 系統虛擬化
系統虛擬化技術主要是使用虛擬化軟件技術在一個計算機硬件平臺上構建多臺的虛擬計算機系統,其構建的虛擬機系統和普通的計算機系統一樣具備傳統計算機系統的所有的功能,可以運行各種計算機軟件和操作系統,是虛擬化技術領域的一個重要方向[7].
早在上世紀中期,美國軍方的計算機研究機構就開始對計算機系統層面的虛擬化技術進行了研究和探討,并且提出了虛擬化技術的概念,當時的虛擬化技術主要是指計算機系統基本的虛擬化技術[8],通過軟件構建一個模擬傳統計算機環境的虛擬化計算機系統,但是早期的虛擬化計算機系統智能應用在一些大型的主機上,隨著后續的計算機虛擬化技術的發展,特別是一些I T硬件的豐富和多元化,一些軟件公司推出了不同的虛擬化軟件之后,虛擬化技術開始在各個領域得到了廣泛的應用和發展[9],近年來,隨著計算機硬件系統的日益復雜,計算機系統的資源管理難度極大的提高,特別是云計算概念的提出,基于云計算實現對整個網絡的計算硬件資源的有效整合,有效的促進了虛擬化技術的發展和應用,這也使得虛擬化技術成為了目前最為熱門的計算機技術,得到了學術科研界的廣泛關注和研究,從目前計算機系統虛擬化技術發展來看[10],可以根據其技術層次的不同將其分為指令架構級、硬件級和操作系統級和編程語言基本的虛擬化技術,下文將以K V M虛擬化技術為例從這四個技術層面對計算機系統虛擬化的研究和發展現狀進行分析[11].
1)計算機C P U指令架構級的虛擬化
K V M是基于內核的一種虛擬化技術,其在實現計算機C P U指令架構級別的虛擬化中,主要是高度依賴l inu x操作系統內核提供的相關功能,來模擬出與實際運行的應用程序相同的指令集去執行,在K V M中采用這種方式構建了一個計算機指令模擬器,該指令模擬器在K V M中主要是負責通過將客戶虛擬機發出的所有的指令翻譯成本地指令,然后在真實的計算機硬件環境上執行,在K V M中利用這種方式實現對計算機的C P U的指令架構級別的虛擬化,其不僅可以實現典型的計算處理指令集,同時還可以實現一些特殊的I/O處理指令的虛擬化,進而可以方便的實現應用和操作系統的跨平臺執行,通過K V M可以容易的實現對各種能計算機平臺的兼容性,如K V M提供的指令架構級別的模擬器可以方便讓原來運行在X86結構的計算機平臺上的操作系統和應用程序遷移到A R M、P o w er P C等處理器架構平臺上[12].
2)硬件級別的虛擬化
硬件抽象層面的虛擬化其實質與指令集的虛擬化非常類似,其主要是利用客戶執行環境與主機相同的指令集合的特點,讓絕大多數客戶指令能夠在主機上直接執行,進而有效的提高指令執行的速度,目前這種技術在各類虛擬化軟件平臺中都得到了應用,如K V M虛擬機、L M虛擬機等,在K V M虛擬機中主要是通過V MM管理器將K V M系統中的虛擬資源和真實的計算機平臺上的物理資源進行映射,在虛擬機需要訪問關鍵的物理資源的時候,K V M中提供的硬件資源模擬器將接管整個計算機平臺的物理資源并采用多路復用技術實現對各種硬件資源的多路復用,在K V M中利用這種技術可以使得整個虛擬機和底層物理及其實現高度的隔離,使得利用K V M構建虛擬化平臺的時候可以非常容易的支持各種不同的操作系統和應用程序,并且風險低易于維護.
3)操作系統級的虛擬化
操作系統虛擬化主要是在操作系統之上的虛擬層按照每個虛擬機的要求為其生產一個運行在物理及其上的操作系統的克隆版本,實現虛擬機與物理計算機的隔離,在K V M虛擬機中也提供了對操作系統的虛擬化的支持,其主要是在操作系統之上提供一個虛擬層,是一種類似于V MM的程式,通過該程式來實現提供多個獨立的隔離的計算機,實現操作系統的用戶函數庫、文件系統和環境的相關設置,保持這些環境的穩定性,進而使得為應用程序提供一個完全的虛擬的操作系統環境.
4)編程語言級的虛擬化
編程語言級的虛擬化是計算機系統虛擬化的一個重要內容,其主要是構建I S A抽象層來支持各種編程語言的執行,如通過對J V M的支持來實現對j ava語言的支持,在利用K V M技術來構建虛擬化平臺的時候可以利用J V M和N E T C L等方式來實現對j ava和net編程技術的支持,進而使得基于這些語言開發的程序可以方便的在K V M虛擬化平臺上運行.
1.2 虛擬機監控器
虛擬機監控器是虛擬機的一個重要組成部分,也是整個虛擬機的核心,其在虛擬機中主要是負責管理真實的物理硬件,同時向運行在虛擬機上的客戶操作系統提供虛擬的計算機資源.隨著虛擬化技術的快速發展和應用,虛擬監控器技術也得到了快速的發展,目前根據虛擬監控器的實現方式主要可以分為以下三類:
1)Hy p ervisor模型
該類虛擬機監控器主要是在傳統的操作系統的基礎上,通過添加相關的虛擬化技術支持,在操作系統中集成虛擬監控器來實現對各種硬件資源和虛擬資源的管理和監控,在該類模型中虛擬機監控器擁有對計算機平臺的物理資源的訪問的所有權限,基于這種模式實現的虛擬機監控器具有較高的虛擬化效率,同時由于基于Hy p ervisor模型的虛擬機監控器需要對計算機平臺的各種I/O設備資源進行監控和管理,在這種模式下進行虛擬機構建需要進行大量的設備驅動程序的開發和設計,進而使得整個虛擬監控系統變得非常臃腫,在K V M虛擬機技術中也可以有效的支持Hy p ervisor模型,基于該模型的虛擬機架構如圖1所示.

圖1 Hypervisor模型的虛擬化控制器架構
2)宿主模型
宿主模型也是一種非常重要的虛擬控制器技術,其在構建和管理虛擬機的時候主要是以傳統的操作系統作為素質的操作系統,宿主機在工作過程中,其本身并不提供任何的虛擬化支持,只是虛擬控制器以系統模塊的形式與整個宿主機的操作系統進行相關的協作,為虛擬化平臺提供一些虛擬化功能,在宿主機虛擬化控制器模型下,其主要是通過調用操作系統的相關的服務和接口來實現對整個計算機平臺的真實的物理資源的訪問和控制,與Hy p ervisor模型相比,在宿主模型下,虛擬控制器是在虛擬機創建之后才創建的,其作為宿主操作系統的一個工作進程被操作系統創建和管理。如V M w are S erver、vir tual P C等虛擬機軟件都是基于宿主模型進行開發和設計的,但是這種模式下由于宿主機才是真正的控制和管理者,因此會導致整個虛擬化效率降低,并且其安全性還需要依賴整個虛擬控制器的安全祥和宿主機操作系統的安全,安全風險也有所增加,典型的宿主模型的虛擬機控制器的結構如圖所示.

圖2 基于宿主模型的虛擬機控制器架構
3)混合虛擬控制器模型
該模型中將整個虛擬機控制器放在最底層,其擁有對計算機平臺的絕大部分的物理資源的訪問和控制權限,該種模式下的虛擬機控制器將大部分的I/O設備的控制和管理權限都是通過一個在擁有特權的虛擬機的特權操作系統進行管理和控制,該模型下的虛擬機的控制器的主要的設備模型和相關的設備驅動都被集成在該特權操作系統中,運行在這個特權操作系統中的虛擬控制器和該特權操作系統協同完成對計算機平臺資源的虛擬化工作,如定性的Windo w s S erver2008的虛擬機控制器就是基于該模型進行開發和設計的,在Windo w s S erver2008的架構中Hy p er-V作為虛擬機控制器運行在最底層,特權操作系統是運行在Hy p er-V之上的。這種模式下,由于設置了特權操作系統,其可以兼容前面兩種模式的優點,但是如果該模型中的特權操作系統和虛擬機控制器之間的交互和切換過于頻繁整個虛擬機的虛擬化性能將降低,其中典型的混合虛擬控制器的架構如圖3所示.

圖3 混合模型下的虛擬控制器架構
K V M虛擬化技術是l inu x中內核的一部分,是基于inel V T技術和A M D S V M技術的一種硬件輔助虛擬化技術方案,同時結合了Q E M U模擬器來實現對設備的虛擬化,其控制模型主要是采用了Hy p ervisor模型,同時兼容宿主機模型,采取的是一種傾向于Hy p ervisor模型的混合式虛擬控制器模型,本文在后續的對虛擬化安全問題的探討主要是探討基于K V M虛擬化技術構建的虛擬化平臺存在的安全問題.
2.1 虛擬化存儲安全問題研究
在基于K V M虛擬機技術構建和實現虛擬化平臺中,可以通過使用L V M(L ogical Home M anager)和創建存儲池的方式來實現對K V M虛擬機系統的存儲管理,其中在創建K V M虛擬機的時候默認使用虛擬磁盤文件作為整個虛擬化平臺的后端存儲,在完成虛擬機的安裝后,整個虛擬機使用磁盤的時候認為是在使用真實的磁盤,但是,實際上其訪問的是一種模擬硬盤的虛擬文件,這種存儲方式會降低系統的速度和安全性,目前在K V M中的存儲虛擬化中主要有以下三種技術,下文將對這三種技術及存在的安全問題進行分析.
1)基于文件系統的K V M存儲
在構建K V M虛擬化平臺的時候,如果采用基于文件系統的K V M存儲,其可以使用本地文件系統或者位于虛擬化平臺上的某個物理宿主機上的網絡文件系統,這種方式下由于文件系統的固有特點,無論是網絡文件系統還是本文文件系統,在存儲資源訪問的時候需要通過寫入到宿主機的操作系統之上的文件系統,需要額外的通過一層操作系統來進行訪問,而由于操作系統的安全性問題,特別是在網絡環境下,其容易受到攻擊,惡意程序通過操作系統對文件系統產生破壞,導致其安全性能降低.
2)基于設備的K V M存儲
該種K V M存儲主要是基于設備方式進行,通過支持不同存儲設備如磁盤、i S C S I、S C S I和邏輯盤等,這種方式下訪問磁盤是通過直接讀寫硬盤設備來實現來得,其不需要通過操作系統來搜索磁盤和訪問磁盤,但是這種方式實現的虛擬機系統存儲,其不帶備份,不支持鏡像,如果虛擬機的存儲出了故障很容易導致數據丟失并且無法恢復,特別是系統級別的數據,非常容易導致整個系統奔潰.
3)K V M存儲池方式
K V M存儲池是K V M虛擬化技術中的一種重要的存儲方式,其主要是為了簡化存儲管理,通過在宿主機上創建相關的K V M存儲池,實現預留空間的分配,這種方式經常應用在大型的虛擬機平臺系統中,通過遠端磁盤陣列來分配磁盤或者目錄,在這種基于分布式方式的存儲構建中,也面臨著網絡安全問題,其需要繞過操作系統層和文件管理層來實現訪問和控制,這就非常容易受到網絡安全攻擊.
2.2 虛擬化環境中的安全問題分析
K V M虛擬化環境中的安全問題主要是指K V M虛擬化管理程序的安全性、K V M虛擬化機制的安全性和K V M遠程管理的安全性三個方面,下文將對這三個方面的虛擬化安全問題進行詳細分析。
1)虛擬化管理程序的安全問題
這方面主要是在虛擬化環境下的一些管理程序對主機的訪問的限制,與一般的計算機環境相似,如果一些管理程序的操作不正確將直接破壞整個虛擬化網絡環境,對其造成致命的破壞,尤其是引入到虛擬層的時候,虛擬化管理程序的安全問題更加凸顯。
2)虛擬機的安全問題
虛擬機的安全問題主要是指運行在虛擬機上的操作系統的安全以及虛擬化管理程序的內部的虛擬化處理的安全,因為在虛擬化環境下通過本地存儲和遠程存儲上的相關的虛擬化管理程序都可以實現對整個虛擬機的相關資源的訪問和控制,這樣虛擬機的安全性直接關系到整個虛擬平臺的安全,提高虛擬機的安全性是提升虛擬化平臺安全的前提。
3)遠程管理的安全問題
在虛擬化環境下主要是通過網絡遠程管理方式對虛擬化環境下的各類計算機資源和虛擬資源進行管理,在管理過程中通常需要涉及到對K V M虛擬主機上的資源的遠程訪問,需要將虛擬環境管理的相關工作分配給虛擬環境中的其他用戶,而這一系列的遠程管理都將面臨著網絡安全問題。如何在遠程管理中采用安全的通信手段是K V M虛擬化環境面臨的一個重要安全問題.
2.3 提高虛擬化安全性的方法
通過前文分析,K V M面臨的安全問題主要包括存儲安全和環境安全,因此,提高虛擬化安全性的方法主要從存儲安全和環境安全兩個方面進行.
其中在存儲安全問題上,通過前文分析,目前K V M采用的存儲方式主要有基于文件系統、基于設備和基于存儲池三種方式,這三種方式各有優點和缺點,同時也都面臨著一系列的安全問題,如基于文件存儲需要面臨操作系統層帶來的一些安全風險,在這方面我們可以通過增加負責運行文件系統的操作系統的安全性,通過配置i p tabes防火墻,根據需求設置其級別和安全訪問控制方式,增強該操作系統的安全性,在基于設備存儲方式上,可以通過為L V M構建存儲副本來提高其存儲安全性,在L V M被破壞后還可以通過從額外的副本中進行恢復,總的來講,在解決K V M存儲方式的安全問題上,我們可以先在宿主機上創建一個K V M存儲池,然后利用創建的存儲池提供L V M邏輯卷,實現L V M的備份和快照,同時通過設置O S的安全級別和加裝相關的安全訪問控制程序,以提高整個K V M存儲的安全性.
在K V M環境安全方面通過前文分析,其主要存在虛擬化管理程序安全、虛擬機安全和遠程管理安全三個方面的安全問題,其中針對虛擬化管理程序的安全,我們可以通過使用常用的安全控制工具來保護K V M的相關的宿主機的安全,與解決基于文件系統的K V M的安全存儲問題一樣通過i p tables和S E l inu x等來增強其安全性;在虛擬機安全問題上,我們可以通過構建虛擬存儲鏡像,保護一些敏感數據的安全性,避免一些管理程序破壞;在遠程管理上我們可以通過virsh和vir t-manager等工具來實現遠程管理的互動,同時借助于SS H安全通信通道和相關的鑒權機制以及設置安全層的方式來提升其安全性.
總之在構建K V M虛擬化平臺的時候,需要充分考慮到各種K V M技術的優勢和劣勢以及面臨的主要問題,同時綜合運用多種K V M技術的優點進行整合提高整個K V M虛擬化平臺的安全性.
K V M作為一種重要的虛擬化技術,是未來云計算技術進一步發展的基礎,基于K V M虛擬化技術構建高效安全的虛擬化平臺是未來構建大型的云計算和網絡系統的關鍵,本文從K V M虛擬化平臺的構建出發,首先對目前K V M虛擬化技術研究現狀進行分析,詳細分析了目前K V M虛擬化平臺構建存在的一些安全問題,從K V M存儲安全和K V M虛擬環境安全兩個方面探討了目前K V M虛擬化平臺構建過程中面臨的主要安全問題,并針對這些安全問題提出了相應的解決措施和方法,對于提高K V M虛擬化平臺安全性、促進K V M虛擬化技術發展具有非常重要意義.
[1]鄭楠,陳立南,鄭禮雄,等.基于C loud S tack和O p en S tack的K V M虛擬機跨平臺遷移方法[J].通信學報, 2014(z1).
[2]Guo C,L i T,Gong Z,et al.A vir tual vulnerabi lity val idation p lat formbasedon K V M[C]//E lect ronics I nformation and E mergency C ommunication(ICEIEC), 2015 5th I nternational C onference on.IEEE,2015: 228-231
[3]N agao N.I nformation p rocessing a pp aratus,K V M s w itch,server,and com p uter readable medium:U.S. P atent 8,706,922[P].2014-4-22.
[4]秦學東,陳大慶,崔曉松.基于開源虛擬化的高可用服務器架構[J].現代圖書情報技術,2011,(06):46-50.
[5]陳陽,懷進鵬,胡春明.基于內存混合復制方式的虛擬機在線遷移機制[J].計算機學報,2011,(12):2278-2291.
[6]丁圣閣,馬汝輝,梁阿磊,管海兵.半虛擬化I/O模型的K V M虛擬機域間通信優化方法[J].計算機科學與探索, 2011,(12):1114-1120.
[7]侯建寧,董貴山,王銀,申婭.基于虛擬化的系統安全增強及顯卡透傳研究[J].計算機工程,2012,(08):224-227+231.
[8]葉可江,吳朝暉,姜曉紅,何欽銘.虛擬化云計算平臺的能耗管理[J].計算機學報,2012,(06):1262-1285.
[9]汪大洋,賈平,江凇.基于I P-K V M的網管集中管理軟平臺的搭建與應用[J].電力信息與通信技術,2014,12 (4):61-65.
[10]李博,沃天宇,胡春明,李建欣,王穎,懷進鵬.基于V MM的操作系統隱藏對象關聯檢測技術[J].軟件學報, 2013,(02):405-420.
[11]李陽陽.基于開源K V M的服務器虛擬機遷移方案研究[J].計算機安全,2013,(08):28-31.
[12]劉佳銘,吳定剛,謝紅勝.基于K V M的作戰系統仿真研究[J].艦船電子工程,2013,(11):71-73+85.
[13]L i J,Z hao J,L i Y,et al.i M I G:To w ard an A da p tive L ive M igration M ethod for K V M V irtual M achines[J]. The C om p uter J ournal,2014:b x u065.
[14]W A N G Z,S U N C,YU L.The A pp l iment of K V M V ir tual Technology on The S henWei P lat form[J].I nformation Technology and I nformati z ation,2014,(6):103.
[15]A l f ia Y,Wechsler M,B ergman S.F ast vir tual media kvm system:U.S.P atent A pp l ication 14/164,860 [P].2014-1-27.
[16]X UT,L I U S,H A N L.K V M-B ased Trusted V ir tuali z ation A rchitecture M odel[J].J ournal of J i lin University (S cience E dition),2014,(3):025.
責任編輯:張隆輝
TP391
A
1672-2094(2016)03-0155-05
2016-04-20
韓文智(1966-),男,云南施甸人,四川職業技術學院副教授,碩士.研究方向:計算機軟件及網絡.