溫 荷, 萬(wàn) 里
(1. 南京工業(yè)大學(xué), 江蘇 南京 211816; 2. 成都東軟學(xué)院, 四川 成都 611844)
?
基于KVM的云桌面虛擬化實(shí)驗(yàn)設(shè)計(jì)
溫荷1,2, 萬(wàn)里2
(1. 南京工業(yè)大學(xué), 江蘇 南京211816; 2. 成都東軟學(xué)院, 四川 成都611844)
基于KVM的云桌面虛擬化技術(shù)包括KVM的架構(gòu)分析、qemu-kvm和libvirt工具的功能模型。給出了基于KVM技術(shù)的云桌面虛擬化實(shí)驗(yàn)的環(huán)境、實(shí)現(xiàn)過(guò)程和具體方案,從云服務(wù)器部署、虛擬化軟件使用、云桌面融合等方面提出了后續(xù)研究的實(shí)驗(yàn)內(nèi)容及考核點(diǎn),構(gòu)成云桌面虛擬化實(shí)驗(yàn)的完整體系。
虛擬化實(shí)驗(yàn); 云桌面; 實(shí)驗(yàn)教學(xué);KVM
隨著互聯(lián)網(wǎng)+和大數(shù)據(jù)時(shí)代的到來(lái),云計(jì)算[1-2]的概念應(yīng)運(yùn)而生。虛擬化作為云計(jì)算的關(guān)鍵技術(shù),將物理計(jì)算設(shè)備分離成一個(gè)或多個(gè)虛擬設(shè)備[3-4],為應(yīng)用提供了靈活多變、可擴(kuò)展的服務(wù)平臺(tái)。本文通過(guò)介紹KVM(kernel-basedvirtualmachine,基于內(nèi)核的虛擬機(jī))虛擬化技術(shù)實(shí)驗(yàn),不僅為云計(jì)算虛擬化實(shí)驗(yàn)教學(xué)提供了明確的實(shí)驗(yàn)思路及步驟,也有利于解決高校實(shí)驗(yàn)教學(xué)機(jī)房軟件系統(tǒng)龐大、機(jī)器使用頻繁、設(shè)備故障及病毒入侵率高等問(wèn)題,還為實(shí)現(xiàn)多臺(tái)物理上獨(dú)立部署研發(fā)平臺(tái)提供了解決方案。
云桌面是云計(jì)算時(shí)代的典型應(yīng)用,它主要通過(guò)虛擬化應(yīng)用,將云端資源(如數(shù)據(jù)空間、管理服務(wù)等)通過(guò)桌面化的方式發(fā)布給各操作終端,真正實(shí)現(xiàn)了終端設(shè)備與桌面環(huán)境解耦合,用戶的計(jì)算任務(wù)和數(shù)據(jù)存儲(chǔ)全部在服務(wù)器端進(jìn)行,終端只負(fù)責(zé)數(shù)據(jù)傳輸與桌面顯示。
相對(duì)于傳統(tǒng)桌面,云桌面有以下優(yōu)勢(shì):
(1) 訪問(wèn)靈活——用戶幾乎可以在任何時(shí)間、任何地點(diǎn),通過(guò)電腦、Pad、智能手機(jī)等多種終端使用屬于自己的桌面環(huán)境;
(2) 資源集中——所有數(shù)據(jù)都存儲(chǔ)在云平臺(tái),避免因資源分散、硬盤(pán)損壞等造成的數(shù)據(jù)丟失;
(3) 數(shù)據(jù)安全——云端服務(wù)器通過(guò)流轉(zhuǎn)集中控制、權(quán)限集中管理、安全集中保障等方式保證用戶數(shù)據(jù)的安全性與私密性;
(4) 維護(hù)方便——所有的應(yīng)用程序和數(shù)據(jù)都在云平臺(tái),可以由維護(hù)人員統(tǒng)一安裝、管理與維護(hù),每個(gè)桌面只是一個(gè)包含了操作系統(tǒng)和應(yīng)用程序的鏡像文件;
(5) 成本低廉——云終端的配置要求不高,不但節(jié)省了PC終端的建設(shè)成本,而且硬件的使用壽命更長(zhǎng)(可達(dá)8年以上)、功耗更低(僅為普通電腦的1/20)。
目前虛擬化技術(shù)的解決方案主要有Vmware公司的VSphere、VmwareWorkstation[5],Microsoft公司的Hyper-V、VirtualPC以及Linux系統(tǒng)下的Xen和KVM。
2.1KVM架構(gòu)
KVM是一個(gè)開(kāi)源的系統(tǒng)虛擬化模塊,是基于x86架構(gòu)且硬件支持虛擬化技術(shù)的Linux全虛擬化解決方案[6],已成為學(xué)術(shù)界的主流VMM(virtualmachinemonitor)之一。KVM由兩部分組成:一部分是KVMDriver[7],已經(jīng)成為L(zhǎng)inux內(nèi)核的一個(gè)模塊,負(fù)責(zé)虛擬機(jī)的創(chuàng)建、虛擬機(jī)內(nèi)存的分配、虛擬CPU寄存器的讀寫(xiě)以及CPU的運(yùn)行等;另一部分是稍微修改過(guò)的QEMU[8],用于模擬PC硬件的用戶空間組件,模擬I/O設(shè)備模型以及提供訪問(wèn)外設(shè)的途徑。
KVM虛擬環(huán)境如圖1所示。KVM是內(nèi)核模塊,被看作是一個(gè)標(biāo)準(zhǔn)的Linux字符集設(shè)備(/dev/kvm)。用戶模式的Qemu利用LibKvm應(yīng)用程序接口與KVM模塊進(jìn)行通信,并通過(guò)ioctl系統(tǒng)調(diào)用進(jìn)入內(nèi)核模式。運(yùn)行在內(nèi)核模式中的KVMDriver會(huì)為虛擬機(jī)創(chuàng)建虛擬內(nèi)存和虛擬CPU,然后進(jìn)入客戶機(jī)模式,同時(shí)裝載GuestOS執(zhí)行具體客戶機(jī)操作。

圖1 KVM虛擬環(huán)境
Xen因起步早,被眾多高校選為云計(jì)算相關(guān)課程的實(shí)驗(yàn)。但由于Xen逐漸走向商業(yè)化模式,Redhat從RHEL6.0開(kāi)始已經(jīng)從內(nèi)核中將Xen移除,全心投入開(kāi)發(fā)免費(fèi)的KVM。KVM結(jié)構(gòu)精簡(jiǎn),在可用資源、可管理性、可擴(kuò)展性等方面均優(yōu)于Xen[9-10],將會(huì)超越Xen而擁有更大的開(kāi)源虛擬化市場(chǎng)。因此,本實(shí)驗(yàn)選用KVM技術(shù)構(gòu)建云桌面虛擬化實(shí)驗(yàn)。
2.2qemu-kvm和libvirt
KVM僅僅是Linux內(nèi)核的一個(gè)模塊,管理和創(chuàng)建完整的KVM虛擬機(jī)需要一個(gè)用戶空間的工具。KVM使用了QEMU的基于x86的部分,并稍加改造,形成了可控制KVM內(nèi)核模塊的用戶空間工具qemu-kvm[11]。
盡管qemu-kvm工具可以創(chuàng)建和管理KVM虛擬機(jī),但由于qemu工具效率不高,不易于使用,Redhat為KVM開(kāi)發(fā)了更多的輔助工具。本實(shí)驗(yàn)選用的是libvirt。
libvirt[12]是目前使用最為廣泛的對(duì)KVM虛擬機(jī)進(jìn)行管理的工具和應(yīng)用程序接口(API)。它是一個(gè)免費(fèi)的開(kāi)源軟件,不僅提供了對(duì)虛擬化客戶機(jī)的管理,也提供了對(duì)虛擬化網(wǎng)絡(luò)和存儲(chǔ)的管理。通過(guò)libvirt管理KVM虛擬機(jī)的流程如圖2所示。

圖2 libvirt管理KVM虛擬機(jī)示意圖
libvirt的管理功能主要包括域的管理、遠(yuǎn)程節(jié)點(diǎn)的管理、存儲(chǔ)管理以及網(wǎng)絡(luò)管理,它對(duì)qemu-kvm的支持是非常成熟和穩(wěn)定的。可以通過(guò)使用virsh命令來(lái)使用libvirt的全部功能,但如果用戶不擅于用命令行操作,可以安裝virt-manager,它是一套用python編寫(xiě)的虛擬機(jī)管理圖形界面,用戶可以通過(guò)它直觀地操作不同的虛擬機(jī)。
本實(shí)驗(yàn)通過(guò)KVM技術(shù)完成云桌面的虛擬化實(shí)驗(yàn),實(shí)驗(yàn)的主要目的是使學(xué)生對(duì)虛擬化的概念、KVM的技術(shù)架構(gòu)有較深的理解,同時(shí)熟悉虛擬化平臺(tái)的搭建流程,為云計(jì)算方向的課程研究、項(xiàng)目實(shí)踐奠定基礎(chǔ)。
實(shí)驗(yàn)環(huán)境為1臺(tái)虛擬桌面服務(wù)器和1臺(tái)終端顯示PC機(jī)。服務(wù)器配置2顆Intel志強(qiáng)5620四核CPU2.4GHz;內(nèi)存64GB,1333MHz,操作系統(tǒng)選用Ubuntu14.04。要求服務(wù)器上運(yùn)行qemu-kvm軟件以支持服務(wù)器虛擬化功能,并安裝libvirt軟件響應(yīng)遠(yuǎn)程桌面的管理需求。
3.1安裝操作系統(tǒng)及環(huán)境準(zhǔn)備
Linux系統(tǒng)安裝完成后,首先需要通過(guò)命令#modprobekvm啟用KVM模塊,然后通過(guò)kvm:~ #uname-a命令找到已安裝的Linux內(nèi)核,完成kvm和kvm-kmp-default包的安裝。KVM安裝通常包含2個(gè)組件:一個(gè)用于管理虛擬化硬件的設(shè)備驅(qū)動(dòng)程序;一個(gè)用于模擬PC硬件的用戶空間組件以及I/O模型。
接著需要查看系統(tǒng)是否支持硬件虛擬化。對(duì)于IntelCPU,輸入命令:
grep″vmx″ /proc/cpuinfo
對(duì)于AMDCPU,輸入命令:
grep″svm″ /proc/cpuinfo
3.2KVM組件安裝
安裝qemu-kvm的命令為:
apt-getinstallqimu-kvm
安裝libvirt的命令為:
apt-getinstalllibvirt-bin
安裝virt-install的命令是一個(gè)基于libvirt的命令,其設(shè)計(jì)宗旨是幫助從命令行創(chuàng)建虛擬機(jī),命令為:
apt-getinstallvirtinst
3.3創(chuàng)建虛擬服務(wù)器
(1) 創(chuàng)建原始磁盤(pán)映像。通過(guò)qemu-img創(chuàng)建一個(gè)8GB的映像文件:
qemu-imgcreate-fqow2Ubuntu1204.img8G
(2) 在該映像上安裝操作系統(tǒng)。要將操作系統(tǒng)安裝在該映像上,使用以下命令:
qemu-system-x86_64 -enable-kvm-nameubuntutest-m2048 -hdaubuntutest.img-cdromubuntu-14.04-server-amd64.iso-bootd-vnc:19
(3) 啟動(dòng)虛擬服務(wù)器。在成功安裝操作系統(tǒng)之后,可以通過(guò)以下命令啟動(dòng)虛擬服務(wù)器:
/usr/bin/qemu-kvm-hda/mnt/kvmtest.img-m1024
3.4實(shí)現(xiàn)遠(yuǎn)程桌面虛擬化
首先需要安裝VNC,輸入命令:
yuminstalltigervnctigervnc-server
使用以下命令編輯配置文件:
vi/etc/sysconfig/vncservers
添加如下內(nèi)容作登錄桌面配置:
VNCSERVRES=″1:root″
VNCSERVERARGS[1]= ″-geometry800x600-nolistentcp-localhost″
為VNC設(shè)置密碼并啟動(dòng)VNC服務(wù)即可。
最后,需要在終端顯示PC的Linux系統(tǒng)上安裝vncviewer。輸入Linux虛擬機(jī)IP地址,進(jìn)入LinuxVNC遠(yuǎn)程桌面。
完成基于KVM技術(shù)的虛擬化服務(wù)器的搭建后,即可從客戶端通過(guò)云桌面進(jìn)行訪問(wèn),從多個(gè)角度對(duì)云計(jì)算的各項(xiàng)技術(shù)進(jìn)行深入研究與實(shí)踐。云計(jì)算實(shí)驗(yàn)設(shè)計(jì)如表1所示。

表1 云計(jì)算實(shí)驗(yàn)設(shè)計(jì)
近年來(lái),隨著云計(jì)算概念的興起,云桌面這一新型辦公設(shè)備形式也逐漸進(jìn)入人們的視野。作為虛擬化技術(shù)的延伸,云桌面依賴于服務(wù)器端的計(jì)算,安全度高、管理方便。KVM技術(shù)是虛擬化技術(shù)演變過(guò)程中的最新發(fā)展,具有其他虛擬化解決方案所不及的獨(dú)特優(yōu)勢(shì)。筆者結(jié)合云桌面、虛擬化技術(shù),得到以下成果:
(1) 設(shè)計(jì)并實(shí)現(xiàn)了基于KVM的虛擬化平臺(tái)的搭建,并通過(guò)客戶端的云桌面成功訪問(wèn);
(2) 提出了從多個(gè)角度對(duì)云桌面虛擬化實(shí)驗(yàn)進(jìn)一步研究的思路。
References)
[1]HassanQF.DemystifyingCloudComputing[J].TheJournalofDefenseSoftwareEngineering,2011(1):16-21.
[2]ArmbrustM,FoxA,GriffithR,etal.AViewofCloudComputing[EB/OL].http://cacm.acm.org/magazines/2010/4/81493-a-view-of-cloud-computing/fulltext.
[3]KhanA,ZugenmaierA,JurcaD,etal.NetworkVirtualization:AHypervisorfortheInternet?[J].IEEECommunicationsMagazine.2012, 50(1):136-143.
[4]Wikipedia.Softwareasaservice[EB/OL].http://en.wikipedia.org/wiki/Cloud_computing.
[5]VMWare.VMotion[EB/OL].http://www.vmware.com/products/vsphere/features-vmotion.
[6]Wikipedia.Kernel-basedVirtualMachine[EB/OL].http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine.
[7]JinHai,LiaoXiaofei.VirtualizationTechnologyforComputingSystem[J].ChinaBasicScience,2008,10(6):12.
[8]BartholomewD.Qemu:amultihost,multitargetmulator[J].LinuxJournal,2006(145):68-71.
[9]CharlesDavidGraziano.AperformanceanalysisofXenandKVMhypervisorsforhostingtheXenWorldsProject[D].USA:IowaStateUniversity,2011.
[10]DeshaneT,ShepherdZ,MatthewsNJ,etal.QuantitativecomparisonofXenandKVM[C]//XenSummit.Boston,2008.
[11] 王森,朱常鵬,韓博.一種基于qemu的動(dòng)態(tài)遷移模型[J].計(jì)算機(jī)科學(xué),2015,42(增刊1):337-340.
[12]Libvirt.TheVirtualizationAPI[EB/OL].[2015-10-15].http://libvirt.org.
[13] 孟永偉,黃建強(qiáng),曹騰飛,等.Hadoop集群部署實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(1):145-149.
DesignofclouddesktopvirtualizationExperimentbasedonKVM
WenHe1,2,WanLi2
(1.NanjingTechUniversity,Nanjing211816,China;2.ChengduNeusoftUniversity,Chengdu611844,China)
Onthebasisoftheresearchofclouddesktopandvirtualization,KVMvirtualizationtechnologyisintroduced,includingKVM'sframeworkanalysis,qemu-kvmandlibvirttools.AdetailedplanoftheclouddesktopvirtualizationexperimentbasedonKVMtechnologyisgiven,includingthepurpose,environment,andprocessoftheexperiment.Finally,thisarticleputsforwardtheexperimentalcontentandassessmentpointsfromthecloudserverdeployment,theuseofvirtualizationsoftware,clouddesktopintegrationandotheraspects,whichformacompletesystemofclouddesktopvirtualizationexperiments.
virtualizationexperiment;clouddesktop;experimentalteaching;KVM
DOI:10.16791/j.cnki.sjg.2016.05.034
2015- 10- 20
國(guó)家自然科學(xué)基金青年基金項(xiàng)目(51208251);江蘇省高校自然科學(xué)基金重大項(xiàng)目(15KJA560001)
溫荷(1982—),女,四川成都,碩士,副教授,計(jì)算機(jī)科學(xué)與技術(shù)系副主任,主要研究領(lǐng)域?yàn)橛?jì)算機(jī)軟件技術(shù).
TP391.9
A
1002-4956(2016)5- 0132- 03