понедельник, 15 апреля 2019 г.

Проброс графического адаптера и режим ускорения графики vDGA

Сегодня я хочу рассказать о некоторых нюансах проброса графических адаптеров внутрь ВМ в режиме VMDirectPath I/O и ускорении графики в режиме vDGA в Horizon.

VMware Horizon поддерживает различные режимы ускорения графики для виртуальных десктопов. Из них три режима так или иначе могут задействовать ресурсы графических адаптеров: vSGA, Shared Pass-Through Graphics (он же NVIDIA vGPU или AMD MxGPU), а также vDGA.

Пример использования ускорителя NVIDIA Quadro P2000 в режиме vDGA можно увидеть по ссылке: http://blog.vmpress.org/2019/02/horizon-blast-h265.html.

vDGA задействует технологию проброса PCI устройства внутрь ВМ (VMDirectPath I/O) и позволяет предоставить одной из ВМ графический адаптер в монопольное использование. После проброса внутри гостевой ОС устанавливаются соответствующие драйверы устройства, и с ним можно работать также, как если бы оно было подключение к обычному настольному компьютеру. Это и является основным преимуществом, равно как и недостатком, данного режима, поскольку позволяет обеспечить максимальный уровень производительности работы графического адаптера, но в то же время накладывает на ВМ ряд ограничений, например, невозможность использования VMware HA, vMotion, снапшотов, необходимость резервирования оперативной памяти ВМ и т.д.

При использовании vDGA в связке с графическими адаптерами производства NVIDIA есть несколько нюансов.

Десктопные графические адаптеры серии GeForce (например, GeForce GTX 1060) не поддерживаются в данном режиме. При пробросе такого адаптера внутрь ВМ после установки соответствующих драйверов в диспетчере устройств будет отображаться сообщение об ошибке:
Windows has stopped this device because it has reported problems. (Code 43)

NVIDIA сознательно ограничивает возможность использования десктопных графических адаптеров GeForce; если драйвер определяет, что операционная система работает внутри ВМ, то адаптер перестает работать.

Драйвер можно обмануть, добавив расширенную настройку в конфигурацию ВМ.
hypervisor.cpuid.v0 = "FALSE"

В этом случае графический адаптер сможет работать внутри ВМ. Однако, в связке с VMware Horizon вы все равно не сможете обеспечить корректную работу протоколов PCoIP или BLAST с десктопными адаптерами - при удаленном подключении к такой ВМ вы просто увидите черный экран. Это вызвано ограничениями десктопной версии драйвера NVIDIA GeForce.

Возможности по работе с Horizon доступны только в линейке графических адаптеров серии Quadro и Tesla, причем младшие модели Quadro (400, 600) также не будут работать (error 43). Минимальные поддерживаемые модели, начинаются с 2000, например, M2000, P2000, M4000 и т.д. Если вы планируете использовать vDGA в Production среде, то обязательно проверьте совместимости с HCL на сайте VMware. Если вы хотите, чтобы ваше решение поддерживалось, то вы должны использовать поддерживаемый графический адаптер И поддерживаемую модель сервера И поддерживаемое поколение процессоров И поддерживаемую версию гипервизора ESXi И поддерживаемую версию Horizon. Даже если вы знаете, что какой-нибудь NVIDIA Quadro K5000 будет прекрасно пробрасываться внутрь ВМ с ESXi 6.7, отсутствие поддержки данной версии гипервизора означает, что решение в целом будет неподдерживаемым со стороны вендора.

Существует заблуждение, что при использовании ускорителей NVIDIA Tesla в связке с vDGA не требуется приобретать лицензии NVIDIA GRID (в отличие от vGPU). Это не так, в чем легко можно убедиться, заглянув в документацию по лицензированию NVIDIA.

Требование по лицензированию не распространяется на ускорители серии NVIDIA Quadro, что делает их более привлекательным решением для задач vDGA в сравнении с Tesla.

6 комментариев:

  1. Подскажите, есть ли какие-то бюджетные варианты пробрасывать видеокарту, может быть карты AMD или xenserver использовать, более старшие поколения Geforce

    ОтветитьУдалить
    Ответы
    1. В общем-то, в статье приведен один из вариантов "обмана" драйвера NVIDIA, путем настройки параметра hypervisor.cpuid.v0 = "FALSE". Но надо понимать, что это неподдерживаемое решение и за стабильность его работы никто не поручится. Опыта с графическими адаптерами AMD у меня не было.

      Удалить
  2. Это драйвер, который нужен для работы адаптеров серии NVIDIA Tesla в режиме vGPU. NVIDIA Quadro P2000 не поддерживает данный режим и не будет работать с vGPU ни при каких условиях. Сам драйвер доступен после покупки лицензий NVIDIA GRID.

    ОтветитьУдалить
  3. Добрый день. А проясните такую ситуацию: на форуме nvidia существует ответ, что для ситуации с Tesla P4 не требуется лицензия для Passthrough. (https://gridforums.nvidia.com/default/topic/9799/general-discussion/tesla-p4-esxi-pci-passthrough-no-vcenter-or-license-server/)
    Я ведь корректно понимаю, что esxi vdga и microsoft dda - это связанные с passthrough технологии?
    Но в тоже время, в документации действительно указано лицензирование для любого типа использования GPU в виртуальных машинах?

    ОтветитьУдалить
    Ответы
    1. Мое мнение не является официальной позицией, поэтому имеет смысл обратиться к представителю NVIDIA для уточнения данного вопроса. На форуме говорится о том, что если вы пробрасываете адаптер Tesla и используете обычные Tesla Drivers (доступны для бесплатной загрузки с сайта NVIDIA), а не драйверы в составе Virtual GPU Software (доступны только при наличии соответствующих лицензий), то лицензии GRID, vCompute или vDWS не нужны. С Tesla Drivers вам будут доступны функции, связанные с обработкой вычислений (CUDA, OpenCL), однако для использования графических API (OpenGL, DirectX) и интеграции с Horizon потребуются драйверы от vGPU Software. Требования по лицензированию vDGA при использовании драйверов vGPU Software указаны в документе https://docs.nvidia.com/grid/latest/grid-licensing-user-guide/index.html#licensing-grid-virtual-workstation-passthrough

      Удалить
    2. Получается как-то жадно со стороны NVidia продавать дорогие вычислители и ещё вдовесок требовать покупки лицензии на них, для использования в не менее дорогом ПО (речь о CAD), для развертывания которого, требуется такое же дорогое ПО. В этой цепочке ПО от Nvidia явно лишнее.

      Выходит, что при покупке такой дорогой системы, обязательно покупать к ней лицензию, а то ведь даже на bare metal ОС не будет поддерживаться графическое API.
      А тем более значит, чтобы назначить в экосистеме VMWare (ESXI+vSphere) нормальный Passthrough (аля vDGA), требуется установка Horizon, для установки которого требуется лицензия.

      Спасибо Вам за ответы.

      Удалить