摘要:隨著服務(wù)器虛擬化及桌面虛擬化技術(shù)的普及,越來越多的高校選擇將傳統(tǒng)PC操作系統(tǒng)遷移到虛擬化環(huán)境,從而有效提高了硬件和軟件利用率。而虛擬機(jī)的網(wǎng)絡(luò)性能直接影響著用戶體驗(yàn),從網(wǎng)絡(luò)性能評測指標(biāo)出發(fā),介紹了基于KVM + QEMU的虛擬機(jī)網(wǎng)絡(luò)優(yōu)化的一般方法,進(jìn)一步分析探究了一種以SRIOV模式為基礎(chǔ)的虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化方案。實(shí)驗(yàn)結(jié)果表明,該方案提高了虛擬機(jī)系統(tǒng)的網(wǎng)絡(luò)帶寬,減少了網(wǎng)絡(luò)延遲,整體性能提高了25%以上,有效提升了用戶體驗(yàn)。
關(guān)鍵詞:虛擬機(jī)網(wǎng)絡(luò);KVM QEMU;SRIOV
DOIDOI:10.11907/rjdk.172402
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)010018002
英文標(biāo)題Research on Performance Optimization of Virtual Machine Network Based on KVM
——副標(biāo)題
英文作者LV Meigui
英文作者單位(Information Center, Qianjiang College ,Hangzhou 310018,China)
英文摘要Abstract:With the popularity of server and desktop virtualization technology, more and more colleges choose to migrate traditional PC OS to virtualization environment, which effectivelyimproves the utilization of hardware and software. The network performance of virtualmachine directly affects user experience, this article starts from network performanceevaluation index, introduces the general way of virtual machine network optimization basedon KVM + QEMU, then analyzes one performance optimization scheme of virtual machine networkbased on SRIOV.The results of experiments shows that the scheme improves the systems network bandwidth and reduces the network latencyof the virtual machine, and overall performance is improved by more than 25%, which effectively improves the user experience.
英文關(guān)鍵詞Key Words:virtual machine network; KVM QEMU; SRIOV
收稿日期收稿日期:2017-07-25
基金項(xiàng)目基金項(xiàng)目:2016年度錢江學(xué)院科學(xué)研究項(xiàng)目管理類重點(diǎn)項(xiàng)目(2016QJJG01)
作者簡介作者簡介:呂梅桂(1986-),女,福建泉州人,碩士,錢江學(xué)院教務(wù)部信息中心實(shí)驗(yàn)師, 研究方向?yàn)橛?jì)算機(jī)實(shí)驗(yàn)室管理和維護(hù)。
0引言
隨著虛擬化技術(shù)的高速發(fā)展,桌面虛擬化已廣泛應(yīng)用于各個(gè)行業(yè),并且逐漸成為當(dāng)前云計(jì)算發(fā)展和研究的一個(gè)熱點(diǎn)[1]。目前,桌面虛擬化技術(shù)在網(wǎng)絡(luò)性能方面還面臨很大的挑戰(zhàn),集中體現(xiàn)在用戶網(wǎng)絡(luò)不流暢,特別是在上百臺(tái)虛擬機(jī)同時(shí)運(yùn)行時(shí),會(huì)出現(xiàn)嚴(yán)重的卡頓現(xiàn)象,亟需深入探究虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化方法[2]。本文針對虛擬化環(huán)境中的網(wǎng)絡(luò)問題,從虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化方面入手,提出一種基于SRIOV網(wǎng)卡模式的虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化方案。
1QEMU/KVM虛擬化技術(shù)概述
QEMU(Quick Emulator)是一個(gè)面向完整PC硬件系統(tǒng)的開源仿真器。除仿真處理器外,還能仿真所有必要的子系統(tǒng),如連網(wǎng)硬件和視頻硬件。還可實(shí)現(xiàn)高級概念上的仿真,包括對稱多處理系統(tǒng)(多達(dá)255個(gè)CPU)及其它處理器架構(gòu)(如ARM和PowerPC)[3]。本文的QEMU軟件運(yùn)行于惠普服務(wù)器虛擬化環(huán)境,仿真X8664處理器。
KVM(Kernelbased Virtual Machine)是基于主流Linux內(nèi)核的虛擬化解決方案。KVM由以色列公司Qumranet開發(fā),并首次以內(nèi)核模塊的形式集成到2007年發(fā)布的Linux 2.6.20版本中。在硬件方面的支持(尤其是Intel和AMD公司的虛擬化技術(shù))和軟件方面(特別是以Red Hat工程師為核心開發(fā)成員)的功能開發(fā)、性能優(yōu)化的共同作用下,目前KVM虛擬化技術(shù)已經(jīng)擁有非常豐富的功能和優(yōu)秀的性能[4]。KVM作為一個(gè)內(nèi)核模塊無法單獨(dú)運(yùn)行虛擬機(jī),而QEMU作為一個(gè)應(yīng)用層的純虛擬化軟件,虛擬機(jī)系統(tǒng)性能將達(dá)不到實(shí)際應(yīng)用要求。本文使用的QEMUKVM軟件包含了應(yīng)用層的QEMU程序以及內(nèi)核模塊KVM,其中QEMU用于運(yùn)行虛擬機(jī),KVM模塊則用于提供虛擬機(jī)加速支持。
2虛擬機(jī)網(wǎng)絡(luò)性能評測指標(biāo)
網(wǎng)絡(luò)性能分析是網(wǎng)絡(luò)優(yōu)化的基礎(chǔ),是合理選擇網(wǎng)絡(luò)優(yōu)化措施的條件,也是判斷網(wǎng)絡(luò)優(yōu)化效果的依據(jù)[5]。通常,虛擬機(jī)系統(tǒng)的網(wǎng)絡(luò)性能以吞吐量(Throughput)和延遲(Latency)來衡量[6]。吞吐量是指在沒有丟包的情況下,設(shè)備能夠接收或發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的最大速率;延遲是指發(fā)送一個(gè)網(wǎng)絡(luò)包所需的時(shí)間。一般情況下,網(wǎng)絡(luò)吞吐量越大、延遲越少,表示系統(tǒng)的網(wǎng)絡(luò)性能越好,反之則越差[7]。endprint
在虛擬化環(huán)境中,一個(gè)數(shù)據(jù)包從虛擬機(jī)到物理網(wǎng)卡的完整路徑是:虛擬機(jī)→虛擬網(wǎng)卡→虛擬化層→內(nèi)核網(wǎng)橋→物理網(wǎng)卡,基于QEMU的全虛擬化網(wǎng)卡收發(fā)網(wǎng)絡(luò)包即通過這個(gè)流程完成。全虛擬化帶來的好處就是虛擬機(jī)操作系統(tǒng)不需要修改,默認(rèn)情況下虛擬機(jī)也不需要再安裝驅(qū)動(dòng)。虛擬機(jī)遷移難度小,可實(shí)現(xiàn)跨平臺(tái)遷移,如從KVM環(huán)境遷移到VMware環(huán)境,虛擬機(jī)鏡像文件也不需要進(jìn)行修改。但全虛擬化網(wǎng)卡也有自身的缺陷:CPU資源消耗大,尤其當(dāng)虛擬機(jī)數(shù)量較多時(shí),容易達(dá)到服務(wù)器的性能瓶頸,且全虛擬化網(wǎng)卡的性能一般,因而用戶體驗(yàn)較差。虛擬機(jī)網(wǎng)絡(luò)優(yōu)化的總體方案是縮短虛擬機(jī)訪問物理網(wǎng)卡的路徑,甚至直接訪問物理網(wǎng)卡,以達(dá)到與物理機(jī)相同的網(wǎng)絡(luò)性能。如圖1所示,基于Intel VTd技術(shù)(AMD也有類似技術(shù))實(shí)現(xiàn)物理網(wǎng)卡的直接分配,虛擬機(jī)單獨(dú)使用網(wǎng)卡,可達(dá)到幾乎和物理網(wǎng)卡一樣的性能。
圖1虛擬機(jī)通過PCI Passthrough方式直接訪問物理網(wǎng)卡
3SRIOV模式介紹
上文介紹的網(wǎng)卡直接分配方式盡管性能很好,但一個(gè)虛擬機(jī)獨(dú)占了一個(gè)網(wǎng)卡,服務(wù)器上最多只能配置和網(wǎng)卡相同數(shù)量的虛擬機(jī),顯然不適用于桌面虛擬化的部署環(huán)境。SRIOV(單根I/O虛擬化)技術(shù)正好同時(shí)滿足了這兩個(gè)要求:多個(gè)虛擬機(jī)共享同一個(gè)物理網(wǎng)卡,并且具備網(wǎng)卡直接分配的性能。為此,SRIOV引入了兩種新的function類型:①Physical Function(PF):擁有所用PCIe功能的function,用于配置管理SRIOV;②Virtual Function(VF):輕量級的PCIe function,包含數(shù)據(jù)收發(fā)所需資源[8]。
在KVM虛擬化環(huán)境中,可以將一個(gè)或多個(gè)VF分配給一個(gè)客戶機(jī),客戶機(jī)通過自身的VF驅(qū)動(dòng)程序直接操作設(shè)備的VF,而不需要KVM的參與,其總體架構(gòu)如圖2所示。以Intel 82599網(wǎng)卡為例,每個(gè)網(wǎng)卡最多支持63個(gè)VF,理論上可以分別配置給63個(gè)虛擬機(jī)使用。
圖2基于SRIOV技術(shù)的虛擬機(jī)配置方案
4基于SRIOV模式的虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化
除了使用SRIOV模式縮短數(shù)據(jù)包收發(fā)路徑來提高虛擬機(jī)網(wǎng)絡(luò)性能外,減少網(wǎng)卡中斷造成的虛擬機(jī)退出頻率,從而使虛擬機(jī)有更多的CPU時(shí)間片處理網(wǎng)絡(luò)數(shù)據(jù),可使虛擬機(jī)的網(wǎng)絡(luò)性能進(jìn)一步提高。
在KVM虛擬化環(huán)境中,發(fā)往宿主機(jī)和虛擬機(jī)的網(wǎng)卡中斷,都會(huì)重定向到虛擬機(jī)。所有虛擬機(jī)都會(huì)處理該中斷,在配置多臺(tái)虛擬機(jī)的環(huán)境下,對服務(wù)器整體性能的影響尤為突出。中斷直接傳遞機(jī)制能有效地解決該問題。Direct IRQ原理如圖3所示。
圖3Direct IRQ原理
在宿主機(jī)上注冊分配給客戶機(jī)VF1的網(wǎng)卡中斷向量為96,映射到客戶機(jī)獨(dú)占的CPU2,客戶機(jī)中對應(yīng)的網(wǎng)卡中斷向量為42。當(dāng)宿主機(jī)接收到發(fā)往客戶機(jī)的96號(hào)中斷,直接將此中斷注入客戶機(jī),發(fā)往其它宿主機(jī)、客戶機(jī)的中斷則不會(huì)被注入到該客戶機(jī)[9]。
5優(yōu)化前后虛擬機(jī)網(wǎng)絡(luò)性能對比
5.1實(shí)驗(yàn)環(huán)境搭建
實(shí)驗(yàn)環(huán)境包括:服務(wù)器Intel(R) Xeon(R) CPU E52650 (Sand Bridge),關(guān)閉超線程,128GB內(nèi)存;宿主機(jī):Linux3.10.0 使用Direct IRQ;客戶機(jī):Linux3.10.0 + 1 dedicated CPU;網(wǎng)卡:Intel 82599開啟SRIOV功能。
5.2測試過程
(1)宿主機(jī)操作。加載ixgbe網(wǎng)卡驅(qū)動(dòng),開啟SRIOV
并配置eth0上的IP“192.168.0.110”;分配物理CPU、VF給客戶機(jī)獨(dú)占,啟動(dòng)虛擬機(jī),使用宿主機(jī)的CPU2作為客戶機(jī)的CPU[10]。
(2)客戶機(jī)操作。加載ixgbevf網(wǎng)卡驅(qū)動(dòng),并配置eth0上的IP “192.168.0.100”。
(3)吞吐量測試。在客戶機(jī)執(zhí)行“iperfs”,宿主機(jī)上執(zhí)行“iperfc 192.168.0.100”。
(4)延遲測試。在宿主機(jī)上執(zhí)行“ping 192.168.0.100”。
5.3測試結(jié)果
使用iperf測試虛擬機(jī)網(wǎng)卡吞吐率,優(yōu)化前SRIOV的網(wǎng)卡吞吐率為8.36Gbps,優(yōu)化后吞吐率為10.36Gbps,提高了24%;使用ping測試虛擬機(jī)延遲,優(yōu)化后的網(wǎng)絡(luò)延遲減少了30%。實(shí)驗(yàn)結(jié)果表明,基于direct IRQ技術(shù)的虛擬機(jī)網(wǎng)絡(luò)方案能有效地提高虛擬機(jī)網(wǎng)絡(luò)性能。
6結(jié)語
本文介紹了在KVM虛擬化環(huán)境下,虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化的一般方法,并提出了一種基于Direcet IRQ技術(shù)的虛擬機(jī)網(wǎng)絡(luò)優(yōu)化方案。實(shí)驗(yàn)結(jié)果證明,該方案有效提高了虛擬機(jī)網(wǎng)絡(luò)性能,對于實(shí)時(shí)性要求較高的桌面虛擬化而言,無疑是一個(gè)很好的方向。
參考文獻(xiàn)參考文獻(xiàn):
[1]楊培.性能桌面管理的研究及應(yīng)用[D].南京:南京理工大學(xué),2011.
[2]曹文治.虛擬機(jī)網(wǎng)絡(luò)性能優(yōu)化研究[D].武漢:華中科技大學(xué),2013.
[3]QEMU wiki[EB/OL].http://wiki.qemu.org/Main_Page.
[4]張政.基于KVM虛擬化的顯卡直傳技術(shù)研究[J].軟件導(dǎo)刊,2016,15(10):142.
[5]百度百科. 網(wǎng)絡(luò)性能分析[EB/OL]. https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90/16382775.
[6]彼得森.計(jì)算機(jī)網(wǎng)絡(luò):系統(tǒng)方法[M].王勇,張龍飛,等,譯.北京:機(jī)械工業(yè)出版社,2015:24.
[7]英特爾開源軟件技術(shù)中心.系統(tǒng)虛擬化——原理與實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2008:178179.
[8]肖力,汪愛偉,等.深度實(shí)踐KVM:核心技術(shù)、管理運(yùn)維、性能優(yōu)化與項(xiàng)目實(shí)施[M].北京:機(jī)械工業(yè)出版社,2015.
[9]SEKIYAMA. Improvement of realtime performance of KVM [EB/OL].[201758].https://events.linuxfoundation.org/images/stories/pdf/lcna_co2012_sekiyama.pdf.
[10]GUOZHAOLIANG,HAOQINFEN.Optimization of KVM network based on CPU affinity on multicores[C].2011 International Conference on Information Technology, ComputerEngineering and Management Sciences,2011.
責(zé)任編輯(責(zé)任編輯:黃健)endprint