基于KVM的虚拟化研究及应用
引言
??? 虛擬化技術是IBM在20世紀70年代首先應用在IBM/370大型機上,這項技術極大地提高了大型機資源利用率。隨著軟硬件技術的迅速發展,這項屬于大型機及專利的技術開始在普通X86計算機上應用并成為當前計算機發展和研究的一個熱點方向。目前,虛擬化技術在高校數據中心虛擬化、計算機教學、數字圖書館等各方面都有所應用并取得了較好的效果。文中提出基于KVM的教學平臺虛擬化方案設計,較好地解決了使用加密狗作為加密手段的應用虛擬化問題。
1 KVM虛擬化技術概述
??? 虛擬化技術能夠在一臺計算機上運行多個操作系統,每個系統上運行自己獨立的應用軟件。虛擬化技術可以對這些系統進行有效隔離,對資源進行按需分配,從而保證每個系統的安全性和性能。目前虛擬化技術已經形成從硬件到軟件一整套的解決方案。基于X86架構的硬件技術主要是由Intel和AMD提供的VirtualizationTechnology(VT)和Pacifica(AMD—V)虛擬化技術,該技術對處理器進行了擴展,從而實現了處理器的虛擬化。軟件方面主要有Vmware公司的VSpare和VmwareWorkstation、Microsofl公司的Hy—per—V和VirtualPC以及Linux系統下的Xen和KVM等。前兩個軟件是已經商業化的系統,Xen也開始了商業化運作,KVM是免費的開源系統并在迅速發展當中,是目前唯一進入Linux核心的虛擬化解決方案。
??? KVM是由以色列的一個名為Qumrant的開源組織于2006年10月提出的基于硬件虛擬化的虛擬機(VirtualMachine,VM)實現方案,2007年2月發布的Linux2.6.20內核第一次包含了KVM。實際上KVM只是虛擬化解決方案的一部分,其底層需要處理器支持,為多個操作系統提供虛擬化處理器,I/O通過QE—MU進行,其架構如圖1所示。
?
圖1 KVM系統架構
??? KVM包含內核模塊和處理器模塊兩部分,內核模塊kvm.ko提供核心的虛擬化支持,處理器模塊kvm—inte1.ko和kvm—amd.ko分別提供了對Intel和AMD處理器虛擬化技術的支持。KVM通過加載kvm.ko內核模塊將Linux內核轉換為一個VirtualMachineMonitor(VMM,Hypervisor),因此KVM可以隨著Linux標準內核的升級而獲得性能提升(如調度程序、內存支持等)。虛擬機對應成為標準的Linux進程,因而可以用標準的Linux進程管理機制進行管理。
??? 在普通的Linux進程有內核模式和用戶模式兩種運行模式,內核模式表示代碼執行的特權模式,用戶模式表示代碼執行的非特權模式。在KVM系統中為Linux引入了一種新的進程模式,新的模式稱為客戶模式,客戶模式用來執行虛擬機操作系統非I/O代碼。在客戶模式中包含內核模式和用戶模式兩種標準模式,VM操作系統可在內核模式下運行標準的內核,在用戶模式下支持自己的內核和用戶空間應用程序。
??? 虛擬機操作系統的I/O操作是由修改過的QEMU支持的。QEMU是一種用動態翻譯技術實現的快速指令集層虛擬機,它支持整個計算機系統的模擬,包括多種處理器(X86、ARM、PowerPC等)、磁盤、圖形適配器和網絡設備等。KVM是用硬件虛擬化技術代替了QEMU的動態翻譯技術,實現虛擬機操作系統代碼直接由硬件處理從而提高系統性能。VM操作系統生成的I/O請求會被截獲并轉發到用戶空間,由QEMU的設備模型來模擬I/O操作,在需要的情況下觸發真實的I/O操作。
2 KVM教學平臺虛擬化應用系統設計
??? 隨著經濟模式的轉變和信息技術的發展,社會對復合型人才的數量和質量要求越來越高。為了適應這種變化,高等教育不斷重視和加強實踐教學,利用現代計算技術貼近現實成為其中最重要的手段之一。國內大部分院校均已建立起一定規模的實踐教學環境,初步建立了教學、科研等各種網絡應用系統。這些系統在實踐教學秩序的穩定性和教學質量的提升等方面發揮了重要作用。
??? 一般實踐教學數據中服務器拓撲結構如圖2所示,其中包括目錄服務器、數據庫服務器、文件服務器、WEB服務器及專業教學軟件應用服務器,部分院校還部署了防火墻、負載均衡等擴展設備,以保證服務器的安全性、高性能和高可靠性。
?
圖2 實踐教學數據中心服務器拓撲結構
在實踐教學快速發展過程中,各院校的數據中心在建設和管理上也面臨著許多困難和問題。
??? ①服務器數量越來越龐大,經常是一個建設項目建立一套服務器系統,在此情況下服務器利用率相當低;
??? ②服務器資源爭奪,有時為了提高服務器利用率,將不同系統部署在同一臺服務器上,造成不同應用系統之間的沖突,比如加密狗之間的沖突、端口之間的爭奪、環境資源沖突等。虛擬化技術的應用為解決這些問題提供了一條很好的思路。
????2.1KVM技術在虛擬化中的優勢
??? KVM虛擬化技術具有較強的靈活性,能較好地將不同操作系統和特殊硬件設備加以利用,降低不同系統間維護的復雜度。
??? KVM支持VM操作系統種類多,常見的基于X86架構的Windows、Linux、Unix操作系統絕大部分可以穩定運行。
??? KVM本身運行在Linux系統內核當中,屬于瘦虛擬化方案,KVM本身體積很小,其支持硬件取決于Linux系統本身對硬件的支持。目前主流硬件設備均有對應的Linux驅動,這也就決定了KVM可以在最廣泛的硬件系統之上運行。
??? KVM可以直接使用指定的硬件設備,如USB端口等。利用此項功能,可以直接將特定應用USB加密狗與運行該應用的VM綁定,從而解決加密狗沖突的問題。
??? 同時KVM具有優良的系統性能和穩定性,系統更新便捷。
????2.2虛擬化設計的原則
??? 現有系統的分類整合,對目前應用系統按照技術架構進行分類,分析其應用特性,將類似的系統進行合并服務器處理,以利于將應用遷移到虛擬主機上。對將來要增加的應用系統進行預測,以保證系統的擴展性滿足未來的需求。
??? 數據集中存儲,將虛擬機文件及數據庫集中存放到存儲設備中,實現數據的集中統一管理。
????2.3服務器虛擬化方案設計
??? 根據現有應用系統的性質將其分為兩大類,一類為教學服務器,專門運行教學相關的專業軟件。另一類為環境支持系統,包括域服務器、網站服務器、文件服務器。教學服務器平時壓力并不大,但是當展開教學活動時,服務器負載會迅速提高鑒于教學系統的特點,將教學系統服務器作為首先進行虛擬化的部分,系統結構如圖3所示。
?
圖3 應用服務器虛擬化架構
??? 將教學系統服務器按資源利用率分為兩部分,利用率超過20%的系統將單獨設置虛擬機,利用率在20%以下的按照提供服務種類組合在不同虛擬機中。按服務性質將服務分為純加密保護驗證類、B/S應用服務類、C/S應用服務類、自有專用服務類等四類。在教學系統中大量應用使用USB加密狗進行版權保護,為避免加密狗之間相互沖突,將加密狗對應USB端口直接指向對應的虛擬機,使之成為私有端口,不被主機系統和其它虛擬機系統所識別和使用,從而達到消除沖突的目的。
??? 依據數據集中存儲的原則,采用SAN(存儲區域網絡)集中存儲方式,將虛擬機鏡像文件部署在SAN共享存儲陣列中。當物理主機發生故障時,可通過集群轉移或者指定其他物理主機重新運行虛擬機,縮短應用中斷時間。
??? 通過分析應用系統的運行原理,建立分布式數據庫,使其與應用分離,數據庫集中存儲在數據庫服務器上。應用采用虛擬機多機備份機制,保證在應用的安全性。對于部分數據庫和應用不能分離的業務,采用多級備份的方式,以降低風險發生時造成的損失。
3 KVM虛擬化應用系統部署
??? 采用Ubuntu910系統,基于KVM84對服務器進行虛擬化,設置CPU、內存、硬盤、網絡等硬件環境,安裝操作系統及應用,加載相應USB加密狗,實現從虛擬化平臺到軟件應用的完整虛擬化解決方案。
????3.1 環境檢查及軟件配置
??? KVM是基于CPU硬件虛擬化基礎之上的,在安裝KVM之前必須確認CPU支持虛擬化技術。使用cat/proc/cpuinfolgrep-E(vmxIsvn1)命令進行檢測,有輸出結果說明CPU支持虛擬化。部分服務器默認是關閉虛擬化技術的,需要進入BIOS打開CPU的虛擬化支持。
??? Linux內核是從2.6.20版本開始集成KVM,因此Linux內核版本必須在此之上。使用uname—a命令查看Linux內核版本。
??? 在Ubuntu下安裝KVM模塊和安裝其他軟件類似,使用apt—getinstallkvm安裝KVM模塊并添加到Linux核心。lsmod命令可查看KVM模塊是否加載成功,如果未加載成功可以使用命令modprobekvm載入。
?
轉載于:https://www.cnblogs.com/heidsoft/p/3525655.html
總結
以上是生活随笔為你收集整理的基于KVM的虚拟化研究及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Linux的 Open×××网络之网
- 下一篇: 谨慎设计一个单例类