Как известно, инфраструктура виртуальных ПК всегда обладала такой особенностью, что приложения, требовательные к производительности 3D-графики, как правило не переносили в VDI-среду. Сначала эту парадигму начала изменять компания Citrix, которая продвигала концепцию виртуализации требовательных к графике нагрузок, опираясь на разработки компании NVIDIA VGX, о которых мы уже писали вот тут, тут и тут. Естественно, NVIDIA стала сотрудничать и с компанией VMware - лидера на рынке если и не VDI-решений, то уж точно платформ виртуализации.
Выпустив VMware Horizon View 5.2, компания VMware сделала серьезный шаг в направлении улучшения производительности 3D-графики в виртуальных десктопах. Теперь о возможностях отображения графики в виртуальных ПК можно говорить в разрезе трех техник:
Soft 3D - рендеринг 3D-картинки вообще без использования адаптера на основе программных техник с использованием памяти сервера.
vDGA - выделение графического адаптера (GPU) отдельной виртуальной машине.
vSGA - использование общего графического адаптера несколькими виртуальными машинами.
Понятно, что режимы vDGA и vSGA должны поддерживаться со стороны производителя аппаратного обеспечения, что и предоставляет NVIDIA в своих графических адаптерах (информация актуальна для релиза VMware View 5.2):
Краткое сравнение обеих техник:
Рассмотрим эти режимы немного подробнее.
Soft 3D - графическая карта не нужна
В этом режиме сервер может работать без графического адаптера, при этом рендеринг картинки происходит программными средствами с использованием выделенной области оперативной памяти. Так сейчас работает большинство серверов и десктопов, которым не требуется особая производительность графики. При этом поддерживается программная обработка для приложений, работающих с DirectX 9 и OpenGL 2.1.
В этом случае один GPU видеокарты выделяется только одной виртуальной машине, а его использование происходит посредством установленного в ней драйвера NVIDIA:
Надо отметить, что поскольку в этом режиме ВМ завязана на физическое устройство, то для нее не поддерживаются функции динамических сервисов, такие как HA, vMotion и DRS. Однако это лучший способ гарантировать виртуальной машине производительность.
vSGA (Virtual Shared Graphics Adapter) - общий GPU для нескольких виртуальных машин
В этом режиме один GPU через драйвер NVIDIA рендерит картинку сразу для нескольких виртуальных машин. Для этого режима используется специальный драйвер на уровне ядра VMware ESXi, который обрабатывает запросы нескольких виртуальных машин к одному адаптеру. Понятное, дело этот способ не гарантирует производительности, однако подходит для большинства инсталляций, в случаях, когда ВМ не требуется высокой и гарантированной производительности в области 3D-графики.
В консоли VMware View настройки графических режимов производятся на уровне пула виртуальных ПК. Видеопамять, выделяемая под ВМ, использует либо ресурсы памяти хост-сервера (это важно учитывать при сайзинге памяти для виртуальных машин на хосте), либо также его аппаратные графические ресурсы.