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