使用离散设备分配部署 NVMe 存储设备

从 Windows Server 2016开始,可以使用离散设备分配 (DDA) 将整个 PCIe 设备传递到 VM。 这将允许从 VM 内部以高性能方式访问 NVMe 存储或图形卡等设备,同时能够利用设备本机驱动程序。 请访问规划使用离散设备分配部署设备,详细了解哪些设备可以工作、可能的安全影响等。将设备与 DDA 配合使用有三个步骤:

  • 为 DDA 配置 VM
  • 从主机分区中卸载设备
  • 将设备分配到来宾 VM

所有命令都可以以管理员身份在 Windows PowerShell 控制台的主机上执行。

为 DDA 配置 VM

离散设备分配对 VM 施加了一些限制,需要执行以下步骤。

  1. 通过执行以下内容将 VM 的“自动停止操作”配置为“TurnOff”
Set-VM -Name VMName -AutomaticStopAction TurnOff

从主机分区中卸载设备

查找设备的位置路径

需要 PCI 位置路径才能从主机中卸载和装载设备。 示例位置路径如下所示:"PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000)"。 有关查找位置路径的更多详细信息,请参阅:规划使用离散设备分配部署设备

禁用设备

使用设备管理器或 PowerShell,确保设备“已禁用”。

卸载设备

Dismount-VMHostAssignableDevice -LocationPath $locationPath

将设备分配到来宾 VM

最后一步是告知 Hyper-V VM 应有权访问设备。 除了上面找到的位置路径外,还需要知道 VM 的名称。

Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName

后续步骤

设备成功装载到 VM 中后,现在可以启动该 VM 并与设备进行交互,就像在裸机系统上运行时一样。 可以通过在来宾 VM 中打开设备管理器并看到硬件现在是否显示来验证这一点。

删除设备并将其返回到主机

如果要将设备恢复为其原始状态,则需要停止 VM 并发出以下内容:

#Remove the device from the VM
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName
#Mount the device back in the host
Mount-VMHostAssignableDevice -LocationPath $locationPath

然后,可以在设备管理器中重新启用设备,主机操作系统将能够再次与设备进行交互。