Включение физических графических процессоров в Hyper-V

Опубликовано: 18 Апреля, 2023

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

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

Конфигурация Hyper-V по умолчанию действительно не очень подходит для выполнения графически интенсивных рабочих нагрузок. Однако можно настроить Hyper-V для использования физических графических процессоров сервера. Таким образом, графический рендеринг можно перенести на специальное видеооборудование.

Прежде чем вы начнете

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

Следующее, о чем вам нужно знать, это тот факт, что не каждая виртуальная машина Hyper-V может использовать ускорение графического процессора. Очевидно, что требуется поддержка гостевой операционной системы, но это еще не все. Когда вы создаете виртуальную машину в Hyper-V, вас спрашивают, хотите ли вы создать виртуальную машину поколения 1 или виртуальную машину поколения 2. Виртуальные машины поколения 2 не включают возможность добавления 3D-видеоадаптера RemoteFX. Этот параметр существует только для виртуальных машин поколения 1.

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

Наконец, в некоторых документах указывается, что после настройки виртуальной машины Hyper-V для использования RemoteFX виртуальная машина становится доступной только через сеанс RDP, а не через консоль диспетчера Hyper-V. Это ограничение могло существовать когда-то, но сегодня не кажется проблемой. На рисунке ниже показана виртуальная машина Windows Server 2016 (предварительная версия 5), работающая на узле Windows Server 2012 R2 Hyper-V. Как видно на рисунке, виртуальная машина настроена на использование графического устройства RemoteFX, и тем не менее я могу просматривать ее через консоль диспетчера Hyper-V.

Настройка Hyper-V

Вы можете получить доступ к настройкам физического графического процессора, открыв диспетчер Hyper-V, щелкнув правой кнопкой мыши хост-сервер Hyper-V и выбрав команду «Настройки Hyper-V» в контекстном меню. После этого вы попадете в диалоговое окно настроек Hyper-V для выбранного хост-сервера. Как видно на рисунке ниже, это диалоговое окно содержит контейнер физического графического процессора, который можно использовать для включения физического графического процессора для использования с Hyper-V. Однако, взглянув на это диалоговое окно, вы заметите, что его параметры конфигурации выделены серым цветом.

Первым шагом в предоставлении Hyper-V поддержки графического процессора является проверка конфигурации вашего видеооборудования. В Windows Server 2012 R2 это можно сделать, щелкнув правой кнопкой мыши кнопку «Пуск» и выбрав параметр «Система» в контекстном меню. Когда появится диалоговое окно «Система», щелкните ссылку «Диспетчер устройств» и разверните узел «Видеоадаптеры». Как видно на рисунке ниже, этот сервер настроен на использование базового видеоадаптера Microsoft. Эта конфигурация довольно распространена для серверного оборудования, но не обеспечивает хорошей поддержки графического процессора.

В такой ситуации необходимо определить фактическое видеооборудование, установленное на хост-сервере Hyper-V, убедиться, что видеоадаптер оснащен подходящим графическим процессором, и при необходимости загрузить новый драйвер. Например, если вы посмотрите на рисунок ниже, вы увидите, что после установки правильного драйвера Windows перешла от идентификации драйвера как универсального базового видеоадаптера Microsoft к правильной идентификации адаптера как NVIDIA GeForce GTX 750.

Если я открою диспетчер Hyper-V, Hyper-V по-прежнему не сделает GPU доступным для использования. Однако, если вы посмотрите на сводную информацию в диалоговом окне ниже, вы заметите, что служба роли узла виртуализации удаленных рабочих столов должна быть установлена.

Вы можете установить эту службу роли с помощью PowerShell, если хотите, но если вы предпочитаете использовать графический интерфейс, достаточно легко установить службу роли с помощью диспетчера серверов. Для этого откройте Диспетчер серверов и выберите параметр «Добавить роли и компоненты» в меню «Управление». Это заставит Windows запустить мастер добавления ролей и компонентов.

Нажмите «Далее», чтобы пропустить экран «Перед началом работы» мастера. Теперь вы попадете на экран Тип установки. Выберите вариант «Установка на основе ролей» или «Установка на основе функций» и нажмите «Далее».

Теперь вам будет предложено выбрать сервер, на котором вы хотите установить роль. Выберите параметр «Выбрать сервер из пула серверов». Убедитесь, что выбран правильный сервер, и нажмите «Далее».

Теперь вы должны увидеть экран выбора ролей сервера. Выберите роль Службы удаленных рабочих столов и нажмите кнопку Далее. Нажмите «Далее» еще раз, чтобы пропустить экран «Функции», и еще раз, чтобы пропустить вводную информацию о службах удаленных рабочих столов.

На следующем экране, который вы увидите, вас попросят выбрать службы ролей, которые вы хотите установить. Установите флажок Узел виртуализации удаленных рабочих столов, как показано ниже. Если будет предложено установить Media Foundation и средства удаленного администрирования сервера, обязательно нажмите кнопку «Добавить компоненты».

Нажмите «Далее», а затем «Установить», и необходимые службы ролей будут установлены на сервер. Когда процесс завершится, нажмите Закрыть. Вам потребуется перезагрузить сервер, чтобы завершить установку.

После перезагрузки компьютера вы можете вернуться в диспетчер Hyper-V, щелкнуть правой кнопкой мыши хост-сервер и выбрать команду «Настройки Hyper-V» в контекстном меню. Когда появится диалоговое окно «Настройки Hyper-V», выберите контейнер «Физические графические процессоры». На этот раз вы должны увидеть GPU в списке, как показано на рисунке ниже.

Теперь нажмите «ОК», а затем щелкните правой кнопкой мыши виртуальную машину, для которой вы хотите включить ускорение графического процессора, и выберите команду «Настройки» в контекстном меню. Когда Windows откроет диалоговое окно «Параметры», выберите контейнер «Добавить оборудование», выберите 3D-видеоадаптер RemoteFX, как показано ниже, и нажмите «Добавить».

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

Как видите, добавить GPU-ускорение в виртуальную машину относительно просто. Однако стоит отметить, что ускорение RemoteFX связано с затратами на лицензирование и работает не на каждой виртуальной машине.