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