楊宣林(天津市大港油田信息中心,天津300280)
基于KVM虛擬化的顯卡直通技術(shù)研究
楊宣林(天津市大港油田信息中心,天津300280)
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,虛擬化技術(shù)也取得了顯著的成績。目前虛擬化計(jì)算在云計(jì)算方面的應(yīng)用日益廣泛,且發(fā)揮越來越大的作用。當(dāng)然在實(shí)際操作和運(yùn)行過程中也遇到了一些困境,比如顯卡虛擬化效率的問題,基于上述情形,目前開發(fā)了一種基于KVM虛擬化的顯卡直通技術(shù)系統(tǒng)。本文通過對(duì)基于KVM虛擬化的顯卡直通技術(shù)進(jìn)行全面論述,從概念、特征、產(chǎn)生等方面進(jìn)行解析,希望能夠?yàn)橄嚓P(guān)技術(shù)領(lǐng)域的發(fā)展和推廣提供理論參考和借鑒。
KVM虛擬化;顯卡直通技術(shù);應(yīng)用;研究
隨著計(jì)算機(jī)技術(shù)的全面發(fā)展,云計(jì)算領(lǐng)域也不斷引入新技術(shù)、新方法,并取得了突破性進(jìn)展,虛擬化技術(shù)的應(yīng)用為云計(jì)算提供了更加廣闊的發(fā)展領(lǐng)域,進(jìn)一步強(qiáng)化了資源整合能力和資源優(yōu)化配置功能。目前基于KVM虛擬化的顯卡直通技術(shù)備受關(guān)注,通過該技術(shù)的運(yùn)用,能夠大大提高虛擬機(jī)顯卡的數(shù)據(jù)傳輸效率,增強(qiáng)用戶體驗(yàn)本地化的實(shí)際能力。
1.1 KVM虛擬機(jī)技術(shù)的定義
Kernel Virtual Machine是KVM的英文全稱,從字面理解就可以知曉其含義,KVM虛擬機(jī)是基于內(nèi)核的虛擬機(jī),是一個(gè)開源的虛擬化系統(tǒng)。
1.2 KVM虛擬機(jī)技術(shù)的起源
Kernel Virtual Machine技術(shù)是從以色列一家叫做Qumranet公司起初研制出來的,隨著應(yīng)用逐漸擴(kuò)大和技術(shù)交流,2008年該技術(shù)由Linux的發(fā)行版提供商Redhat進(jìn)行購買并獲得版權(quán),由此開始了KVM虛擬機(jī)技術(shù)的創(chuàng)新,替代了問題日益眾多的Xen,并得到了進(jìn)一步應(yīng)用和推廣。隨著技術(shù)創(chuàng)新和科技進(jìn)步,2010年退出了基于硬件虛擬化的KVM虛擬機(jī)新系統(tǒng),該系統(tǒng)由兩大部分組成,一部分是Kernel內(nèi)核模塊,另一部分是處理器User系統(tǒng),通過互相協(xié)調(diào)從而全面實(shí)現(xiàn)內(nèi)核虛擬化應(yīng)用。
2.1 KVM虛擬化技術(shù)的優(yōu)勢(shì)特征
KVM虛擬化技術(shù)是基于Linux內(nèi)核的原始化全虛擬化解決系統(tǒng),它和準(zhǔn)虛擬化或者叫半虛擬化技術(shù)有很大的區(qū)別,KVM虛擬化技術(shù)搭建了以X86為核心的完整系統(tǒng)化運(yùn)行平臺(tái),具體包括處理器、網(wǎng)絡(luò)適配器、磁盤空間、硬盤、設(shè)備等等,通過互相協(xié)同運(yùn)行從而實(shí)現(xiàn)相應(yīng)功能,該技術(shù)克服了傳統(tǒng)的修改操作來實(shí)現(xiàn)平臺(tái)穩(wěn)定運(yùn)行的弊端,能夠不用經(jīng)過任何處理就可以直接在X86平臺(tái)上進(jìn)行運(yùn)轉(zhuǎn)。
和傳統(tǒng)的Xen技術(shù)相比,KVM虛擬化技術(shù)具有很大的優(yōu)勢(shì),具體體現(xiàn)在:
一是KVM虛擬化技術(shù)平臺(tái)是開源性平臺(tái),能夠大大降低運(yùn)行成本。二是KVM虛擬化技術(shù)升級(jí)之后能夠與Linux內(nèi)核系統(tǒng)進(jìn)行自動(dòng)整合,不占用硬件內(nèi)存,克服不能兼容性;三是KVM虛擬化技術(shù)穩(wěn)定性比較高,性能強(qiáng)大,更容易被接受。
2.2 KVM虛擬化技術(shù)的適用范圍
KVM虛擬化技術(shù)作為開源虛擬化平臺(tái),能夠在規(guī)模較大的空間內(nèi)進(jìn)行運(yùn)作,這樣既可以有效降低平臺(tái)各種成本,還能在穩(wěn)定性方面得到最大限度的體現(xiàn),性價(jià)比高。比如在虛擬主機(jī)數(shù)量超過2500臺(tái)以上時(shí),KVM虛擬化技術(shù)的優(yōu)勢(shì)更加明顯,也是目前其他技術(shù)不可以替代的。
在KVM虛擬化技術(shù)構(gòu)建的系統(tǒng)中,虛擬機(jī)通過對(duì)QEMU外圍設(shè)備領(lǐng)域進(jìn)行訪問和處理,運(yùn)用虛擬化相關(guān)技術(shù)進(jìn)行有效傳遞信息,性能非常強(qiáng)大。目前用顯卡直通渠道讓把物理顯卡的具體地址有效地進(jìn)行分配,并獨(dú)立運(yùn)行。可以看出顯卡直通技術(shù)在虛擬機(jī)調(diào)用物理顯卡驅(qū)動(dòng)方面發(fā)揮較大功能,為圖像及時(shí)顯示提供技術(shù)支撐,從而有利于顯卡性能的最大化發(fā)揮。
顯卡直通技術(shù)的基本運(yùn)行結(jié)構(gòu):為保證外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備的直通功能的發(fā)揮,必須在KVM虛擬機(jī)具體操作中考慮各種因素,包括設(shè)備的內(nèi)存和資源、設(shè)備的分置空間、設(shè)備中斷時(shí)等的映射問題以及如何保證設(shè)備內(nèi)存訪問的暢通等方面。
上述各種因素的影響將會(huì)制約KVM虛擬化系統(tǒng)的有效運(yùn)作,前三項(xiàng)映射狀況可以自動(dòng)進(jìn)行解決,最后一項(xiàng)就可以借助下面的顯卡直通技術(shù)有效實(shí)現(xiàn)。
在KVM虛擬機(jī)對(duì)物理顯卡進(jìn)行直接訪問和登陸時(shí),必須要在QEMU平臺(tái)上注冊(cè)一個(gè)虛擬設(shè)備,這是進(jìn)行PCI設(shè)備訪問的最直接通道,通過注冊(cè),然后進(jìn)行訪問映射,從而將相關(guān)信息映射到實(shí)際設(shè)備上,進(jìn)而實(shí)現(xiàn)參數(shù)的有效傳遞。顯卡直通技術(shù)就是通過解決上述問題而出現(xiàn)的一種技術(shù),為了保證物理顯卡的有效直通,就必須把顯卡單獨(dú)連接到PCI總線上,這時(shí)就可以注冊(cè)兩個(gè)虛擬PCI橋設(shè)備,從而實(shí)現(xiàn)直接訪問物理顯卡的目標(biāo)。
顯卡直通技術(shù)的主要環(huán)節(jié)就是將宿主機(jī)的輸入輸出地址空間和預(yù)留內(nèi)存映射到相應(yīng)的地址空間上,通過運(yùn)用相關(guān)設(shè)備文件參數(shù),進(jìn)行內(nèi)存分配處理之后,直接進(jìn)行映射從而進(jìn)行信息讀取、指令接收等。
總之KVM虛擬化中的顯卡直通技術(shù)應(yīng)用和開發(fā)是一項(xiàng)系統(tǒng)工程,這是一種二次開發(fā)和優(yōu)化技術(shù),在運(yùn)行過程中也會(huì)遇到各種各樣的問題,必須結(jié)合具體運(yùn)行參數(shù)合理確定相應(yīng)的匹配指標(biāo)才能保證穩(wěn)定運(yùn)行,可以借鑒國外先進(jìn)的經(jīng)驗(yàn),結(jié)合國內(nèi)實(shí)際情況進(jìn)一步提高KVM虛擬化中的顯卡直通技術(shù)水平,從而提高使用性能。
[1]張政.基于KVM虛擬化的顯卡直通技術(shù)研究[J].軟件導(dǎo)刊,2016,(10):142-144.
[2]姜邦杰,吳俊敏,朱小東,李科君,羅琳,張朋飛,胡蝶.基于KVM的遠(yuǎn)程聲卡顯卡虛擬化技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013, (09):75-80.