張權(quán) 南京云璣信息科技有限公司
基于KVM 虛擬化顯卡直通技術(shù)的形成背景是虛擬化在云計(jì)算應(yīng)用的過程中出現(xiàn)運(yùn)算工作效率低下的問題,就該缺陷進(jìn)行針對(duì)性研究與試驗(yàn)后,推出KVM 虛擬機(jī)技術(shù)。筆者將從KVM 虛擬機(jī)技術(shù)的定義、優(yōu)勢特點(diǎn)以及其工作模式著手,對(duì)該技術(shù)支持下得到改良形成的顯卡直通技術(shù)進(jìn)行探析,以供后續(xù)發(fā)展參考。
KVM 的詳細(xì)名稱表示為“KernelVirtualMachine”,三個(gè)關(guān)鍵詞直譯為“內(nèi)核”、“虛擬”、“機(jī)器”,很容易便能夠理解該技術(shù)的定義內(nèi)容,即KVM 虛擬機(jī)屬于以內(nèi)核為基礎(chǔ)展開工作的虛擬化系統(tǒng)。
KVM 虛擬化技術(shù)的優(yōu)勢十分明顯,可以大致概括三部分:第一,該技術(shù)的運(yùn)行平臺(tái)的性質(zhì)特點(diǎn)是開源性,即可以在很大程度上節(jié)省運(yùn)行成本,較原始的虛擬技術(shù)減少不必要的開支;第二,就技術(shù)升級(jí)后的兼容問題,KVM 虛擬化技術(shù)可以做到在升級(jí)工作完成后和Linux 內(nèi)核系統(tǒng)快速進(jìn)行融合,充分節(jié)省其硬件的儲(chǔ)存空間;第三,該項(xiàng)技術(shù)的具備優(yōu)良的性能以及高穩(wěn)性,更始于應(yīng)用到現(xiàn)階段的云計(jì)算工作中。
KVM 虛擬化技術(shù)實(shí)際上是對(duì)虛擬機(jī)監(jiān)視器的簡化設(shè)計(jì),其模式可分為兩種,即內(nèi)核模式和用戶模式,兩者對(duì)照的特權(quán)級(jí)別分別0和3。核心模式中工作的是KVM 的內(nèi)核部分,用戶模式下工作的則為QEMU 模塊,即KVM 虛擬機(jī)運(yùn)行在虛擬機(jī)監(jiān)視器的NonrootMode 模式。KVM 的工作模式為:首先工作體系以模式為依據(jù)劃分為三部分,即客戶軟件為來賓模式、KVM 為核心模式、QEMU模塊為用戶模式,要求KVM 的核心模式、用戶模式和來賓模式三者進(jìn)行過密切的合作協(xié)同進(jìn)而完成工作指令,核心模式和用戶模式兩者以專用于設(shè)備輸入輸出操作的方式完成數(shù)據(jù)互通,來賓模式和KVM 進(jìn)程之間通過“虛擬機(jī)進(jìn)入”和“虛擬機(jī)退出”的指令進(jìn)行切換。
對(duì)KVM 虛擬化技術(shù)的實(shí)現(xiàn)架構(gòu)的進(jìn)行分析,可以發(fā)現(xiàn)其是借助QEMU 模擬外圍設(shè)備,必須經(jīng)過中層虛擬來完成傳遞與處理,以便把精確數(shù)據(jù)信息傳至物理硬件中進(jìn)行分析。針對(duì)一些運(yùn)行速度不高的設(shè)備,上述流程可以解決其數(shù)據(jù)傳遞與處理問題。
對(duì)顯卡直傳的是實(shí)現(xiàn)構(gòu)架分析,可以發(fā)現(xiàn)顯卡直通技術(shù)進(jìn)行虛擬化時(shí)對(duì)性能的標(biāo)準(zhǔn)是很高的,其將物理顯卡地址進(jìn)行單獨(dú)分配到各個(gè)虛擬機(jī),其具有獨(dú)家訪問權(quán)限。虛擬機(jī)通過內(nèi)部操作系統(tǒng)能夠控制物理顯卡與虛擬外設(shè)驅(qū)動(dòng),以便直接通過內(nèi)存或者訪問時(shí)進(jìn)行輸入/輸出操作。
KVM 虛擬機(jī)在完成外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備直傳時(shí),必須對(duì)四個(gè)關(guān)鍵點(diǎn)進(jìn)行思考:第一,怎么對(duì)外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備的配置空間完成映射;第二,怎么對(duì)外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備發(fā)內(nèi)存輸入/輸出資源進(jìn)行映射;第三,怎么完成外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備停止指示的映射;第四,怎么進(jìn)行直接內(nèi)存訪問操作。這四個(gè)關(guān)鍵點(diǎn)即其實(shí)現(xiàn)該技術(shù)的原理內(nèi)容。
成組數(shù)據(jù)傳送方式能夠完成外設(shè)和系統(tǒng)兩者的高速數(shù)據(jù)傳遞,外設(shè)能夠不通過中央,然后可以直接進(jìn)行內(nèi)存訪問,數(shù)據(jù)傳遞之前需要申請(qǐng)可以被成組數(shù)據(jù)傳送方式訪問的權(quán)限地址,接著發(fā)送傳送指令進(jìn)行成組數(shù)據(jù)傳送。
當(dāng)KVM 虛擬機(jī)準(zhǔn)備直接訪問物理顯卡并進(jìn)入時(shí),需要于之前就在QEMU 平臺(tái)上注冊一個(gè)外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備透傳虛擬設(shè)備,即登錄外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備最為直接的方式。準(zhǔn)備完成之后,需要把訪問權(quán)限和現(xiàn)實(shí)設(shè)備上的對(duì)應(yīng)數(shù)據(jù)做出詳細(xì)對(duì)比,進(jìn)行數(shù)據(jù)映射,使參數(shù)的傳輸是有價(jià)值的。
實(shí)際上,顯卡直通技術(shù)誕生的主要目的為對(duì)物理顯卡的直通作保障,也正是因?yàn)檫@樣,則一定要將顯卡與外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備總線上。在這樣的前提下,就能夠注冊兩個(gè)虛擬外設(shè)部件互連標(biāo)準(zhǔn)設(shè)備,目的是更好的完成直接訪問物理顯卡的任務(wù)。顯卡直通技術(shù)實(shí)現(xiàn)的最關(guān)鍵部分即為把宿主機(jī)的輸入輸出地址空間和預(yù)留內(nèi)存映射到對(duì)應(yīng)的地址空間中,準(zhǔn)備完成之后,需要把訪問權(quán)限和現(xiàn)實(shí)設(shè)備上的對(duì)應(yīng)數(shù)據(jù)做出詳細(xì)對(duì)比,進(jìn)行數(shù)據(jù)映射,使參數(shù)的傳輸是有價(jià)值的。
總之,KVM 虛擬化技術(shù)支持下的顯卡直通技術(shù)是目前云計(jì)算領(lǐng)域的一大熱點(diǎn),要堅(jiān)持對(duì)其進(jìn)行優(yōu)化運(yùn)用,掌握兩者間的原理與實(shí)現(xiàn)途徑,對(duì)其在應(yīng)用中出現(xiàn)的問題,要詳細(xì)的根據(jù)相關(guān)數(shù)據(jù),制定更加科學(xué)合理的運(yùn)行模式與流程,增強(qiáng)其性能。