DDA離散設備分配通常被玩家稱“硬件直通”,它是Windows Server 2016之后版本中Hyper-V所具備的特性,微軟為它賦予了直通獨立顯卡和NVMe固態(tài)硬盤的能力。還有一些玩家利用該功能成功直通了第三方SATA控制器等硬件。

圖片2.jpg

筆者使用了東芝RD500 1TB NVMe固態(tài)硬盤作為試驗對象。RD500是鎧俠(原東芝存儲)在2019年末發(fā)布的新一代旗艦級NVMe固態(tài)硬盤,使用PCIe 3.0 x4接口、NVMe 1.3協(xié)議,由8通道東芝主控搭配96層堆疊的BiCS4閃存。

圖片3.jpg

Hyper-V虛擬機中硬盤有三種使用方式:虛擬硬盤、直接使用物理硬盤、DDA硬件直通。

虛擬硬盤方式:默認的選項,可以自由指定容量大小,可以在多個虛擬機之間共享硬盤。虛擬機設備管理器中磁盤驅動器名稱為“Microsoft虛擬磁盤”。

圖片4.jpg

使用物理硬盤:在磁盤管理中讓東芝RD500處于“脫機”狀態(tài)后,可以將其整體用于單個虛擬機獨享,虛擬機設備管理器中直接顯示RD500的名稱,但存儲控制器中沒有NVMe控制器。但這種模式下虛擬機并不是直接訪問硬件設備,效率沒有下面要說的DDA硬件直通高。

圖片5.jpg

DDA硬件直通:由單個虛擬機直接訪問并控制硬件。硬件直通常見于直通顯卡,可在虛擬機內高效玩游戲。這里筆者將東芝RD500 1TB固態(tài)硬盤直通給指定的虛擬機,使其獲得強悍的硬盤性能,可用于數(shù)據(jù)庫等重負載讀寫硬盤的應用。

圖片6.jpg

三種模式下CrystalDiskMark測速對照:DDA硬件直通模式在隨機讀寫性能上更強。

圖片7.jpg

DDA硬件直通模式下,在虛擬機內可以直接使用CrystalDiskInfo或SSD Utility工具箱軟件識別和管理東芝RD500,而在其他兩種模式下無法識別到NVMe固態(tài)硬盤。

圖片8.jpg

DDA硬件直通實現(xiàn)步驟:

DDA硬件直通需要CPU支持并開啟虛擬化功能,在英特爾平臺上需開啟VT-d,AMD平臺需開啟SVM Mode。除此之外,為了滿足SR-IOV的要求,主板還需要開啟IOMMU特性(并非所有主板都具備該功能)。

圖片9.jpg

在將東芝RD500直通給虛擬機之前,首先需要在宿主機設備管理器中禁用RD500對應的“標準NVM Express控制器”,并在屬性中找到“位置路徑”,記錄下它的值。然后以管理員身份打開Windows Powershell,執(zhí)行Dismount-VMHostAssignableDevice –Force –LocationPath 位置路徑,將RD500從宿主機中脫離。然后再執(zhí)行Add-VMAssignableDevice –VMName 虛擬機名稱 –LocationPath 位置路徑,將RD500掛載至指定的虛擬機上。

圖片10.jpg

需要將直通給虛擬機的RD500收回給宿主機管理和使用時,首先關閉虛擬機,在宿主機PowerShell中執(zhí)行Remove-VMAssignableDevice –LocationPath 位置路徑 –VMName 虛擬機名稱,接觸RD500與虛擬機的關聯(lián)。然后執(zhí)行Mount-VMHostAssignableDevice –LocationPath 位置路徑,將RD500重新掛載至宿主機系統(tǒng)。

總結:

DDA是Hyper-V中為虛擬機提供硬件直接訪問的高級功能,允許虛擬機單獨使用顯卡或高性能NVMe固態(tài)硬盤,在VMWare ESXi中也有類似的功能。

隨著個人電腦CPU核心數(shù)量的增長,越來越多的DIY硬件發(fā)燒友希望打造多合一的家庭服務器。利用東芝RD500的強勁效能可以同時滿足多個虛擬機應用的訪問需求,也可以利用DDA特性將其直通給指定的某個虛擬機,使其獲得接近于物理機的磁盤IO效能。

分享到

songjy

相關推薦