Приложение B. Какие технологии виртуализации графики правильны для вас?

Содержание

Приложение B. Какие технологии виртуализации графики правильны для вас?
Discrete Device Assignment
Планирование оснащения устройств с помощью DDA
Поддерживаемые ВМ и гостевые ОС
Требования к системе
Требования к устройству
Драйвер устройства
Ограничения ВМ
Безопасность
Путь локализации PCIe
Пространство MMIO
Сценарий профиля машины
Часто задаваемые вопросы
Оснащение графическим устройствами с помощью DDA
Настройка ВМ для DDA
Размонтирование устройства из раздела хоста
Назначение устройства гостевой ВМ
Что дальше
Удаление устройства и его возврат в хост
Примеры
Оснащение устройствами хранения NVMe с помощью DDA
Настройка ВМ для DDA
Размонтирование устройства из раздела хоста
Назначение устройства гостевой ВМ
Что дальше
Удаление устройства и его возврат в хост
RemoteFX vGPU
Установка и настройка RemoteFX vGPU для RDP
Требования RemoteFX vGPU
Установка RemoteFX vGPU
Мониторинг производительности
Что следует применять?

Данное приложение состоит из переводов трёх статей ресурса Microsoft Windows IT Por Center:

Когда дело доходит до включения работы с графикой в службах Удалённых рабочих мест (RDP), у вас имеется некий диапазон вариантов. Когда вы планируете свою среду виртуализации, при выборе технологии отрисовки графики вы придерживаетесь следующих соображений:

 

Рисунок 1



В Windows Server 2016 у вас имеются две технологии виртуализации графики, доступные в Hyper-V, которые позволяют вам применять своё оборудование GPU:

  • Discrete Device Assignment (DDA, Выделение дискретного устройства) - Для получения наивысшей производительности применения одного или более GPU выделяемых какой- то ВМ с предоставлением драйвера GPU самого производителя внутри этой ВМ. Плотность достаточно низкая, так как она ограничена общим числом физический GPU, доступных в данном сервере {Прим. пер.: при применении одной из технологий SR-IOV GPU - количеством таких виртуальных GPU, предоставляемых на уровне оборудования самого производителя: GRID vGPU в случае nVidia, MxGPU для AMD и GVT-g у Intel.}

  • Remote FX vGPU - Для работающих с информацией специалистов и сценариев с высокой степенью масштабирования GPU, при которых множество ВМ получают одно или более GPU с применением Паравиртуализации. Данное решение предоставляет боле высокую плотность в одном сервере.

Приводимая ниже иллюстрация отображает варианты графической виртуализации в Windows Server 2016.

 

Рисунок 2



Discrete Device Assignment

Discrete Device Assignment (DDA, Выделение дискретного устройства) является решением аппаратного проброса (pass-through), которое предоставляет наилучшую производительность, давай конкретной ВМ полный доступ к определённому GPU с применением естественного драйвера {драйвера самого производителя оборудования}. Ваш пользователь ВМ может получать доступ ко всем возможностям своего устройства, а также к самому натуральному драйверу данного устройства. Это означает, что все свойства и возможности работы данного устройства в некоторой ВМ зеркально отражают работу того же самого устройства в голом железе.

Далее, для получения дополнительных сведений об DDA, мы приводим перевод Plan for Deploying Devices using Discrete Device Assignment, в редакции от 19 июня 2017.

Планирование оснащения устройств с помощью DDA

Discrete Device Assignment (DDA, Выделение дискретного устройства) делают возможным прямое подключение физического оборудования PCIe из виртуальной машины. Данное руководство обсудит те типы устройств, которые могут применять DDA, требования к системе хоста, накладываемые на применяемые виртуальные машины ограничения, а также последствия безопасности со стороны DDA.

В начальном выпуске DDA мы сосредоточились на двух классах устройств, которые формально поддерживаются Microsoft. Это Графические адаптеры и устройства хранения NVMe. Прочие устройства скорее всего также работают, и производители оборудования могут предлагать установки для поддержки таких устройств. Для таких дополнительных устройств, пожалуйста, обращайтесь за поддержкой к соответствующим производителям {прим. пер.: или системным интеграторам}.

Если вы готовы попробовать DDA, вы можете перескочить к Оснащению графическим устройствами с помощью DDA или Оснащению устройствами хранения с помощью DDA.

 

Поддерживаемые ВМ и гостевые ОС

DDA поддерживаются для ВМ поколения 1 и поколения 2. Кроме того, в гостях, поддерживающих следующие системы: Windows 10, Windows Server 2016, Windows Server 2012r2 с применённым KB 3133690, а также различные дистрибутивы ОС Linux.

 

Требования к системе

В дополнение к Системным требованиям для Windows Server и Системным требованиям для Hyper-V, DDA требует оборудования серверного уровня, которое способно предоставлять своей операционной системе управление по настройке связностью PCIe (Native PCI Express Control). Кроме того, комплекс корня PCIe (PCIe Root Complex) должен поддерживать Службы управления доступом (ACS, Access Control Services), которые делают возможным для Hyper-V переправлять весь обмен PCIe через имеющийся ввод/ вывод MMU.

Данные возможности обычно не выставляются напрямую в имеющейся BIOS сервера и часто скрыты за прочими настройками. Например, те же самые возможности необходимы для поддержки SR-IOV в вашей BIOS, которые вам может понадобиться настроить посредством "Enable SR-IOV". Обратитесь, пожалуйста к своему производителю оборудования {прим. пер.: или системному интегратору} если вы не можете определить верные установки в своей BIOS.

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

 

Требования к устройству

Не все устройства PCIe могут применяться совместно с DDA. Например, не поддерживаются более ранние устройства, которые применяют наследуемые прерывания PCI (INTx). Джейк Остин, однако, опубликовал пост блога с дополнительными подробностями для потребителей, исполнение Сценария профиля машины сообщит вам какие устройства можно применять для DDA.

Производители устройств также могут обогащать своих представителей Microsoft дополнительными сведениями.

 

Драйвер устройства

Так как DDA пробрасывает имеющееся устройства PCIe целиком в имеющуюся Гостевую ВМ, никакой драйвер хоста не требуется для установки чтобы смонтировать это устройство внутри такой ВМ. Единственным требованием в данном хосте является то, что должна быть определена Локализация пути PCIe. Сам драйвер устройство может быть дополнительно установлен если это помогает при идентификации такого устройства. В качестве примера, некое GPU, которое не имеет установленным драйвера своего устройства, отображается как Microsoft Basic Render Device. Если драйвер устройства установлен, также высвечиваются его производитель и модель.

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

 

Ограничения ВМ

Из- за самой природы реализации DDA некоторые свойства виртуальных машин ограничены пока устройство подключено. Не доступны следующие свойства:

  • Сохранение/ восстановление ВМ

  • Миграция ВМ в реальном времени

  • Применение динамической памяти

 

Безопасность

DDA предаёт все устройство целиком в определённую ВМ. Это означает, что все возможности этого устройства доступны из имеющейся гостевой операционной системы. Некоторые возможности, такие как обновление встроенного программного обеспечения, могут неблагополучно воздействовать на стабильность этой системы. Раз так, целый ряд предупреждений представляются её администратору при размонтировании данного устройства из текущего хоста. Мы настоятельно рекомендуем чтобы такое DDA применялось только когда все арендаторы подобной ВМ являются доверенными.

Если текущий администратор желает применять некое устройство для какого- то арендатора с неподтверждёнными полномочиями, мы предоставили производителям возможность создания некоего драйвера Миграции устройства (Device Mitigation), которое может быть установленное в таком хосте. Пожалуйста, обсудите с производителем устройства подробности того, предоставляет ли он драйвер Миграции устройства.

Если вы пожелаете обойти проверку безопасности для устройств, которые не имеют драйвера Миграции устройства, вам придётся передать вызов в --force для Dismount-VMHostAssignableDevice. Имейте в виду, что таким образом вы изменяете профиль безопасности данной системы, а это рекомендуется делать только в прототипах или доверенных системах.

 

Путь локализации PCIe

Местоположение пути PCIe необходимо для размонтирования и монтирования данного устройства в данном Хосте. В качестве примера местоположения пути взгляните, например, на такой "PCIROOT(20)#PCI(0300)#PCI(0000)#PCI(0800)#PCI(0000)". Сценарий профиля машины также возвращает Путь локализации определяемого устройства PCIe.

 

Рисунок 3. Получение пути локализации с применением Диспетчера устройств



  • Отрыть Диспетчер устройств и найти необходимое устройство

  • Кликнуть правой кнопкой и выбрать Свойства (Properties)

  • Переместиться в Подробности (Details) и выбрать в ниспадающем меню Свойств (Location Paths)

  • Кликнуть правой кнопкой по имеющейся записи, которая начинается с "PCIROOT" и выбрать Copy. Теперь у вас имеется путь локализации для данного устройства.

 

Пространство MMIO

Некоторые устройства, в особенности GPU, требуют выделения дополнительного пространства MMIO для обсуждаемой ВМ под ту оперативную память, которая должна быть доступна этому устройству. По умолчанию, каждая ВМ стартует с выделения ей 128 МБ нижнего пространства MMIO и 512 МБ верхнего пространства MMIO, однако некое устройство может требовать больше, либо вы можете пробрасывать множество устройств, общие требования которых превышают данные значения. Изменение Пространства MMIO достаточно прямолинейно, вы делаете это в PowerShell, применяя следующие команды:


Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm
		

Самый простой способ определения того, какой объём пространства MMIO выделить состоит в применении Сценарий профиля машины. В качестве альтернативы вы можете вычислить его на основании применения Диспетчера устройств и поста блога Discrete Device Assignment - GPUs, который имеет дополнительные подробности.

 

Сценарий профиля машины

Для упрощения определения того факта, настроен ли ваш сервер правильно, а также какие устройства доступны для проброса с применением DDA, один из наших инженеров собрал следующий сценарий PowerShell SurveyDDA.ps1.

Прежде чем применить этот сценарий, пожалуйста, убедитесь, что у вас имеется установленной роль Hyper-V и что исполняете этот сценарий из окна командной строки PowerShell, которое имеет полномочия Администратора.

В той системе, которая не корректно настроена для поддержки DDA, этот инструмент отобразит некое сообщение об ошибке, сообщающее что не так. Если же этот инструмент полагает, что данная система настроена правильно, он перенумерует все те устройства, которые можно обнаружить в данной шине PCIe.

Для каждого обнаруженного устройства он отобразит может ли оно применяться с DDA или нет и, если нет, он укажет причину почему. Когда устройство успешно определено, как способное применяться для DDA, будет отображён его путь локализации. Кроме того, если этому устройству необходимо Пространство MMIO, оно также будет присутствовать в перечне.

 

Рисунок 4.



 

Часто задаваемые вопросы

Какое отношение имеет технология RemoteFX vGPU Удалённых рабочих мест к DDA?

Это совершенно различные технологии. RemoteFX vGPU не требует установки рабочего DDA. Кроме того, она не нуждается в установке никаких дополнительных ролей. RemoteFX vGPU требует только установки роли RDVH чтобы был установлен драйвер RemoteFX vGPU в данной ВМ. Для DDA, так как вы установите драйвер Производителя оборудования, никакие дополнительные роли не понадобятся.

Я передал некое GPU в ВМ, однако Удалённое рабочее место или приложение не распознают это GPU.

Имеется целый ряд причин, которые могут это вызывать, вот только некоторые из них:

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

  • Убедитесь, что это устройство имеет достаточно выделенного Пространства MMIO для себя внутри данной ВМ.

  • Убедитесь что вы применяете GPU, которое производитель поддерживает для применения в данной конфигурации, например, некоторые производители не разрешают применять платы потребительского сегмента для проброса в ВМ.

  • Проверьте, что то приложение, которое должно исполняться при поддержке запуска в ВМ или что эти драйверы и GPU поддерживаются данным приложением. Некоторые приложения имеют списки поддерживаемых GPU и окружений.

  • Если вы применяете роль Хоста сеанса удалённого рабочего места (Remote Desktop Session Host) или Службу множества терминалов Windows (Windows Multipoint Service), вам необходимо проверить, что установлены определённые Групповые политики.

    • Внутри данного Гостя

    • Воспользовавшись диалогом run, откройте gpedit.msc

    • Переместитесь по дереву

      • Computer Configuration

      • Administrator Templates

      • Windows Components

      • Remote Desktop Services

      • Remote Desktop Session Host

      • Remote Session Environment

      • Примените установленный по умолчанию графический адаптер для всех сеансов Remote Desktop Services

    • Установите Enabled и перезагрузите эту ВМ.

Можете пояснить в чём преимущества DDA для кодека AVC444 Удалённого рабочего места?

Да, для получения дополнительной информации обратитесь к блог посту Remote Desktop Protocol (RDP) 10 AVC/H.264 improvements in Windows 10 and Windows Server 2016 Technical Preview.

Могу ли я воспользоваться PowerShell для получения пути локализации?

Да, имеются различные способы, приведём один из примеров:


#Enumerate all PNP Devices on the system
$pnpdevs = Get-PnpDevice -presentOnly
#Select only those devices that are Display devices manufactured by NVIDIA
$gpudevs = $pnpdevs |where-object {$_.Class -like "Display" -and $_.Manufacturer -like "NVIDIA"}
#Select the location path of the first device that's available to be dismounted by the host.
$locationPath = ($gpudevs | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths).data[0]
		

Может ли DDA применяться для передачи устройства USB в некую ВМ?

Хотя это официально и не поддерживается, наши пользователи применяли DDA для этого, передавая весь контроллер USB3 в некую ВМ. Когда этот контроллер целиком передан, все подключённые к нему устройства USB также будут доступны и в данной ВМ. Заметим, что могут работать только некоторые контроллеры USB3, в то время как все контроллеры USB2 заведомо не работают.

Оснащение графическим устройствами с помощью DDA

Начиная с Windows Server 2016 вы можете применять Discrete Device Assignment (DDA, Выделение дискретного устройства) для передачи некоторого устройства PCIe целиком в какую- то ВМ. Это делает возможным высокопроизводительный доступ к таким устройствам, как хранилища NVMe или Графические карты {Прим. пер.: а также устройства интерконнекта - OmniPath, InfiniBand, 10GbE, Ангара и т.п.} внутри ВМ и в то же время применять естественные драйверы устройств самого производителя. Посетите, пожалуйста, Планирование оснащения устройств с помощью DDA для получения дополнительных подробностей о том, какие устройства работают, какие последствия могут иметь место для безопасности и тому подобного.

Для применения устройства с DDA имеются три шага последовательности:

  • Настройте необходимую для DDA ВМ

  • Размонтируйте необходимое вам устройство в разделе его хоста

  • Назначьте это устройство данной ВМ

Все команды могут исполняться в данном хосте в консоли окна PowerShell с правами Администратора.

 

Настройка ВМ для DDA

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

  1. Настройте Automatic Stop Action ВМ в TurnOff выполнив:

    
    Set-VM -Name VMName -AutomaticStopAction TurnOff
    		

Для Графических устройств требуются некие дополнительные подготовительные действия с ВМ.

Для некоторого оборудования будет лучше, если данная ВМ настроена определённым образом. Для подробностей о том понадобятся ли вам следующие настройки или нет, пожалуйста, обратитесь к производителю оборудования. Дополнительные детали можно найти в Планировании оснащения устройств с помощью DDA и в этом блог посте.

  1. Включите в данном ЦПУ Write-Combining Set-VM -GuestControlledCacheTypes $true -VMName VMName

  2. Настройте необходимые 32 бита пространства MMIO Set-VM -LowMemoryMappedIoSpace 3Gb -VMName VMName

  3. Настройте больше чем 32 бита пространства MMIO Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName VMName. Отметим, данные приведённые выше значения пространства MMIO имеют разумные значения для установки при экспериментах с отдельным GPU. Если после запуска данной ВМ это устройство сообщает о какой- то ошибке, относящейся к недостаточным ресурсам, вам, скорее всего, потребуется изменить эти значения. Кроме того, если вы назначаете множество GPU, вам также потребуется увеличить эти значения.

 

Размонтирование устройства из раздела хоста

 

Опционально - установите необходимый драйвер раздела

DDA предоставляет производителям оборудования возможность выполнять некий безопасный Драйвер миграции для их устройств. Отметим, что такой драйвер не тот же самый, что и основной драйвер устройства, который будет установлен в имеющейся гостевой ВМ. Однако, по усмотрению производителя оборудования этот драйвер может быть предоставлен, если это так, пожалуйста, установите его перед тем, как размонтировать данное устройство из раздела хоста. Если у вашего производителя имеется Драйвер миграции, обратитесь, пожалуйста, к производителю за дополнительной информацией.

[Замечание]Замечание

В том случае, если не предоставляется никакого драйвера Раздела, в процессе размонтирования вам следует воспользоваться опцией -force для обхода предупреждения безопасности. Пожалуйста, ознакомьтесь с дополнительными подробностями в отношении безопасности относительно данного момента в Планировании оснащения устройств с помощью DDA.

 

Определите путь местоположения устройства

Путь локализации данного PCIe необходим для размонтирования и монтирования этого устройства в данном хосте. Неким примером такого пути может служить . За подробностями обратитесь к статье Планировании оснащения устройств с помощью DDA.

 

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

Примените Диспетчер устройств или PowerShell чтобы обеспечить, что данное устройство "disabled".

 

Размонтирование данного устройства

В зависимости от того, предоставляет ли производитель Драйвер миграции, вам следует или нет применять опцию -force.

  • Если был установлен Драйвер миграции, Dismount-VMHostAssignableDevice -LocationPath $locationPath

  • Если Драйвер миграции не был был установлен , Dismount-VMHostAssignableDevice -force -LocationPath $locationPath

 

Назначение устройства гостевой ВМ

Окончательный шаг состоит в том, чтобы сообщить Hyper-V что некая ВМ должна иметь доступ к данному устройству. Дополнительно к определённому ранее местоположению пути PCIe, вам потребуется имя ВМ.


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
		

Вы можете затем повторно разрешить данное устройство в диспетчере устройств и операционная система хоста сможет взаимодействовать с данным устройством снова.

 

Примеры

Монтирование GPU в ВМ

В данном примере мы применяем PowerShell для настройки ВМ с названием ddatest1 чтобы получить первый доступный GPU от производителя nVidia и назначить его в данную ВМ.


#Configure the VM for a Discrete Device Assignment
$vm= "ddatest1"
#Set automatic stop action to TurnOff
Set-VM -Name $vm-AutomaticStopAction TurnOff
#Enable Write-Combining on the CPU
Set-VM -GuestControlledCacheTypes $true -VMName $vm
#Configure 32 bit MMIO space
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName $vm
#Configure Greater than 32 bit MMIO space
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName $vm

#Find the Location Path and disable the Device
#Enumerate all PNP Devices on the system
$pnpdevs = Get-PnpDevice -presentOnly
#Select only those devices that are Display devices manufactured by NVIDIA
$gpudevs = $pnpdevs |where-object {$_.Class -like "Display" -and $_.Manufacturer -like "NVIDIA"}
#Select the location path of the first device that's available to be dismounted by the host.
$locationPath = ($gpudevs | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths).data[0]
#Disable the PNP Device
Disable-PnpDevice -InstanceId $gpudevs[0].InstanceId

#Dismount the Device fromthe Host
Dismount-VMHostAssignableDevice -force -LocationPath $locationPath

#Assign the device to the guest VM.
Add-VMAssignableDevice -LocationPath $locationPath -VMName $vm
		

Оснащение устройствами хранения NVMe с помощью DDA

Начиная с Windows Server 2016 вы можете применять Discrete Device Assignment, или DDA (Выделение дискретного устройства), для проброса устройства PCIe целиком в ВМ. Это делает возможным разрешить высокопроизводительный доступ к таким устройствам, как NVMe или Графические карты изнутри ВМ и в то же самое время применять естественный драйвер самого устройства. Посетите, пожалуйста, Планирование оснащения устройств с помощью DDA для дополнительных подробностей по вопросам как работают устройства, какие последствия для безопасности это привносит и т.п. Имеются три этапа в применении устройства с DDA:

  • Настроить определённую ВМ для DDA

  • Размонтировать необходимое устройство из раздела его хоста

  • Настроить это устройство в необходимой гостевой ВМ

Все команды могут исполняться в данном хосте из консоли Windows Power Shell от имени Администратора.

 

Настройка ВМ для DDA

DDA накладывает некие ограничения на используемые ВМ и поэтому необхимо выполнить следующий шаг:

  1. Настройте Automatic Stop Action ВМ в TurnOff, выполнив:

    
    Set-VM -Name VMName -AutomaticStopAction TurnOff
    		
 

Размонтирование устройства из раздела хоста

 

Определите путь местоположения устройства

Путь локализации данного PCIe необходим для размонтирования и монтирования этого устройства в данном хосте. Неким примером такого пути может служить . За подробностями обратитесь к статье Планировании оснащения устройств с помощью DDA.

 

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

Примените Диспетчер устройств или PowerShell чтобы обеспечить, что данное устройство "disabled".

 

Размонтирование данного устройства


Dismount-VMHostAssignableDevice -LocationPath $locationPath
		
 

Назначение устройства гостевой ВМ

Окончательный шаг состоит в сообщении Hyper-V что некая ВМ должна иметь доступ к этому устройству. Дополнительно к местоположению пути PCIe, определённому выше, вам необходимо знать само название этой ВМ.


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
		

Вы можете затем повторно разрешить данное устройство в диспетчере устройств и операционная система хоста сможет взаимодействовать с данным устройством снова.

RemoteFX vGPU

RemoteFX vGPU является технологией графической виртуализации, которая позволяет разделять вычислительную мощность GPU по множеству различных гостевых операционных систем, чтобы предоставлять возможность сценариев обработки информации (см. Рисунок 1 выше). Улучшения Windows Server 2016 делают доступными дальнейшие расширения масштабных сценариев GPU, например, для приложений проектирования и визуализации данных. Среди прочих, улучшения функциональности включают в себя:

  • Поддержку для гостевых ВМ 2 поколения, гостевые ВМ Windows Server 2016, а также клиента Hyper-V Windows.

    [Замечание]Замечание

    В гостевой ВМ Windows Server 2016 не поддерживается Хост сеансов Удалённых рабочих мест (RDSH, Remote Desktop Session Host); в гостевой ВМ может размещаться только один сеанс на Windows Server 2016.

  • Улучшены совместимость и стабильность приложений.

  • Режим сеанса расширенного соединения ВМ (VM Connect Enhanced Session Mode), делает возможным применение USB и перенаправления буфера обмена через соединение ВМ в ту ВМ, которая включена для RemoteFX vGPU.

Далее, для получения дополнительной информации, мы приводим перевод Set up and configure RemoteFX vGPU for Remote Desktop Services, в редакции от 23 марта 2017.

Установка и настройка RemoteFX vGPU для RDP

Функциональность vGPU в RemoteFX делает возможным для множества ВМ разделять некий физический графический адаптер. Эти виртуальные машины способны выполнять разгрузку построения изображений графической информации из центрального процессора в определённый выделенный графический адаптер. Это уменьшит нагрузку на ЦПУ и улучшит масштабирование интенсивных в отношении графики рабочих нагрузок, которые исполняются в имеющихся виртуальных машинах VDI.

 

Требования RemoteFX vGPU

Требования для систем хоста:

  • Windows Server 2016 или Windows 10

  • DX 11.0 совместимое GPU с совместимым с WDDM 1.2 драйвером

  • Включённая роль Windows Server RD Virtualization Host (разрешает роль Hyper-V)

  • Сервер с ЦПУ, который поддерживает SLAT (Second Level Address Translation)

Требования к Гостевой ВМ:

  • Гостевая ВМ под управлением Корпоративного клиента Windows (Windows 7 с Service Pack 1, Windows 8.1, Windows 10) или Windows Server (Windows Server 2012 R2 либо Windows Server 2016). Для ознакомления с дополнительно поддерживаемыми ОС обратитесь к Supported configuration for Remote Desktop Services.

Дополнительные подлежащие рассмотрению вопросы в гостевых ВМ:

  • Функциональность OpenGL и OpenCL доступна только в Windows 10 или Windows Server 2016.

  • DirectX 11.0 доступен только начиная с версии Windows 8 в гостевых ВМ.

  • Remote Desktop Session Host поддерживается с RemoteFX vGPU, только если он исполняется как персональный сеанс рабочего места.

Для гостевых ВМ не забудьте ознакомиться с Оснащение VDI - поддерживаемые гостевые ОС.

 

Установка RemoteFX vGPU

Для установки и настройки RemoteFX в своих хостах Windows Server 2016 и Windows 10 выполните следующие этапы:

  1. Установите необходимую операционную систему.

  2. Установите самые последние драйверы GPU Windows 10/Windows Server 2016, доступные на сайте производителя вашей графической карты.

  3. Установите RemoteFX vGPU в своём хосте Windows 10/Windows Server 2016:

    1. В хосте Windows 10 включите свойства Hyper-V в Панели управления (пройдите в Control Panel/Programs и Features/Turn Windows Features on или off):

       

      Рисунок 5.



    2. В хосте Windows Server 2016 установите роль Remote Desktop Virtualization Host (RDVH).

  4. Теперь создайте и настройте гостевую ВМ:

    1. Создайте ВМ с Windows 10 Enterprise или Windows Server 2016.

    2. Добавьте графический адаптер RemoteFX 3D. Для информации о том, как это сделать с Диспетчером Hypere-V или PowerShell cmdlets, ознакомьтесь с Настройкой 3D адаптера RemoteFX vGPU.

RemoteFX vGPU будет применять все GPU, когда в доступности имеется более одной. Однако, в определённых случаях вы можете пожелать ограничить какие GPU применять в RemoteFX. В своей среде Hyper-V вы управляете этим путём особого выбора какие GPU НЕ применять в RemoteFX. Воспользуйтесь следующими шагами:

  1. Перейдите к установкам Hyper-V в Диспетчере Hyper-V.

  2. В установках Hyper-V кликните Physical GPUs.

  3. Выберите то GPU, которое вы не хотите применять и затем очистите Use this GPU with RemoteFX.

 

Настройка 3D адаптера RemoteFX vGPU

Вы можете выполнять настройку графического адаптера 3D RemoteFX vGPU либо через UI Диспетчера Hyper-V, или с помощью cmdlet PowerShell.

С помощью диспетчера Hyper-V:

  1. Проверьте, что ваша система была установлена с Hyper-V и ВМ была настроена.

  2. Остановите эту ВМ, если она исполняется.

  3. В Диспетчере Hyper-V перейдите в Bold и затем кликните Add Hardware.

  4. Выберите RemoteFX 3D Graphics Adapter и кликните Add.

  5. Установите максимальное число мониторов, максимальную разрешающую способность монитора, а также выделенную видео память, либо оставьте установленные по умолчанию значения.

    [Замечание]Замечание
    • Установка более высоких значений для любых из этих опций повлияет на масштабирование, поэтому вы должны делать это только в случае крайней необходимости.

    • Если вам требуется использовать 1 ГБ выделенной VRAM, применяйте 64- битную гостевую ВМ вместо 32- битной (x86) для получения наилучшего результата.

  6. Для завершения кликнте OK.

Посредством PowerShell cmdlet-ов:

Для добавления, просмотра и настройки адаптера применяйте следующий cmdlets:


Add-VMRemoteFx3dVideoAdapter [-CimSession <CimSession[]>] [-ComputerName <String[]>] [-Credential <PSCredential[]>] [-VMName] <String[]> [-Passthru] [-WhatIf] [-Confirm] [<CommonParameters>]
 	   

Подробнее: Add-VMRemoteFx3dVideoAdapter.


Get-VMRemoteFx3dVideoAdapter [-CimSession <CimSession[]>] [-ComputerName <String[]>] [-Credential <PSCredential[]>] [-VMName] <String[]> [<CommonParameters>]

 	   

Подробнее: Get-VMRemoteFx3dVideoAdapter.


Set-VMRemoteFx3dVideoAdapter [-CimSession <CimSession[]>] [-ComputerName <String[]>] [-Credential <PSCredential[]>] [-VMName] <String[]> [[-MonitorCount] <Byte>] [[-MaximumResolution] <String>] [[- VRAMSizeBytes] <UInt64>] [-Passthru] [-WhatIf] [-Confirm] [<CommonParameters>]
 	   

Подробнее: Set-VMRemoteFx3dVideoAdapter.

Для просмотра всех физических GPU выполните следующий cmdlet:


Get-VMRemoteFXPhysicalVideoAdapter [-ComputerName <String[]>] [-Credential <PSCredential[]>] [[-Name] <String[]>] [<CommonParameters>]
 	   

Подробнее: Get-VMRemoteFXPhysicalVideoAdapter.

 

Мониторинг производительности

Производительность и масштабирование VDI системы определяется разнообразными факторами, такими как общая память GPU, объём системной памяти и скорость памяти, числом ядер ЦПУ и таковой частотой ЦПУ, скоростью хранилища, а также реализацией NUMA.

Поддержка Remote vGPU в RDS содержит следующие счётчики производительности, которые можно просматривать в Мониторе производительности (perfmon.exe) для извлечения информации о пропускной способности кадровой частоты.

  • RemoteFX Graphics - счётчики сжатия графики протокола Удалённого терминала (RDP). Например, если вы желаете просмотреть общее число кадров, представленных в RDP для сжатия, ознакомьтесь со счётчиком Input Frames/Second.

  • RemoteFX Network - Счётчики сетевого обмена RDP. Например, Round Trip Time (RTT).

  • RemoteFX Root GPU Management - Измерения доступной и зарезервированной VRAM.

  • RemoteFX Software - Предоставляет счётчики скорости захвата, время отклика GPU и так далее.

Для мониторинга на более низком уровне, в частности, для поиска неисправностей, вы можете воспользоваться дополнительными счётчиками производительности:

  • RemoteFX Synth3D VSC VM Device

  • RemoteFX Synth3D VSC VM Transport Channel

  • RemoteFX Synth3D VSP

  • RemoteFX Synth3D VSP VM Device

  • RemoteFX Synth3D VSP VM Channel

Что следует применять?

Основные соображения по поводу ого какую именно технологию виртуализации применять, могут зависеть от спецификации оборудования или требований приложений. Здесь мы приводим краткую таблицу возможностей DDA и RemoteFX GPU.

Таблице B-1

Таблица В-1.
Функция RemoteFX vGPU Discrete Device Assignment

Выделение устройства GPU

Паравиртуализация (множество ВМ к одному или более GPU)

1 или более GPU для 1 ВМ

Масштабирование

Наилучшее масштабирование/ 1 GPU на множество ВМ

Низкий уровень/ 1 или более GPU для 1 ВМ

Совместимость приложений

DX 11.1, OpenGL 4.4, OpenCL 1.1

Все возможности GPU, предоставляемые производителем (DX 12, OpenGL, CUDA)

AVC444

Включено по умолчанию (Windows 10 и Windows Server 2016)

Доступно через Групповую политику (Windows 10 и Windows Server 2016)

VRAM GPU

До 1 ГБ выделенной VRAM

Вплоть до всей VRAM, поддерживаемой данным GPU

Скорость кадров

До 30 fps

До 60 fps

Драйвер GPU у гостя

Драйвер адаптера дисплея RemoteFX 3D (Microsoft)

Драйвер производителя GPU (Nvidia, AMD, Intel)

Поддерживаемые гостевые ОС

Windows Server 2012 R2, Windows Server 2016, Windows 7 SP1, Windows 8.1, Windows 10

Windows Server 2012 R2, Windows Server 2016, Windows 10, Linux

Гипервизор

Microsoft Hyper-V

Microsoft Hyper-V

Доступные ОС хоста

Windows Server 2012 R2, Windows Server 2016, Windows 10

Windows Server 2016

Оборудование GPU

GPU корпоративного уровня (такие как Nvidia Quadro/GRID или AMD FirePro)

GPU корпоративного уровня (такие как Nvidia Quadro/GRID или AMD FirePro)

Оборудование сервера

Нет специальных требований

Современные серверы, выставляющие IOMMU для ОС (обычно совместимое с SR-IOV оборудование)

Общим краеугольным правилом является применение DDA для совместимости приложений с наилучшей производительностью, так как эти виртуальные машины будут иметь прямой доступ к своему GPUю Если приложения или рабочие нагрузки не должны иметь столь строгих требований GPU и вы желаете обслуживать более широкую базу пользователей, RemoteFX vGPU может быть для вас более приемлем.