Развертывание устройств NVMe служба хранилища с помощью дискретного назначения устройств

Область применения: Windows Server 2022, Windows Server 2019, Microsoft Hyper-V Server 2016, Windows Server 2016

Начиная с Windows Server 2016, вы можете использовать дискретное назначение устройств или DDA для передачи всего устройства PCIe на виртуальную машину. Это позволит обеспечить высокий уровень производительности устройств, таких как хранилище NVMe или графические карточки на виртуальной машине, при этом можно использовать собственные драйверы устройств. Ознакомьтесь с планом развертывания устройств с помощью дискретного назначения устройств, чтобы получить дополнительные сведения о том, какие устройства работают, какие возможны последствия для безопасности и т. д. Существует три шага для использования устройства с DDA:

  • Настройка виртуальной машины для DDA
  • Отключение устройства из раздела узла
  • Назначение устройства гостевой виртуальной машине

Все команды можно выполнить на узле в консоли Windows PowerShell в качестве Администратор istrator.

Настройка виртуальной машины для DDA

Дискретное назначение устройств накладывает некоторые ограничения на виртуальные машины, и необходимо выполнить следующий шаг.

  1. Настройка действия автоматической остановки виртуальной машины для отключения путем выполнения
Set-VM -Name VMName -AutomaticStopAction TurnOff

Отключение устройства из раздела узла

Поиск пути расположения устройства

Путь к расположению PCI необходим для отключения и подключения устройства с узла. Пример пути расположения выглядит следующим образом: "PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000)" Дополнительные сведения о расположении пути расположения см. здесь: планирование развертывания устройств с помощью дискретного назначения устройств.

Отключение устройства

Используя диспетчер устройств или PowerShell, убедитесь, что устройство "отключено".

Отключение устройства

Dismount-VMHostAssignableDevice -LocationPath $locationPath

Назначение устройства гостевой виртуальной машине

Последний шаг — сообщить Hyper-V, что виртуальная машина должна иметь доступ к устройству. Помимо пути расположения, приведенного выше, необходимо знать имя виртуальной машины.

Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName

Что дальше?

После успешного подключения устройства на виртуальной машине вы сможете запустить эту виртуальную машину и взаимодействовать с ним, как обычно, если бы вы работали в системе без операционной системы. Это можно проверить, открыв диспетчер устройств на гостевой виртуальной машине и увидев, что оборудование отображается.

Удаление устройства и его возвращение на узел

Если вы хотите вернуть устройство обратно в исходное состояние, необходимо остановить виртуальную машину и выдать следующее:

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

Затем можно повторно включить устройство в диспетчере устройств, а операционная система узла снова сможет взаимодействовать с устройством.