Приложение A. Развёртывание аппаратных средств - ускорение графики с помощью VMware Horizon7

Содержание

Приложение A. Развёртывание аппаратных средств - ускорение графики с помощью VMware Horizon7
Введение
Что из себя представляет Horizon 7?
Аудитория
Виды графического ускорения
Ускорение виртуальной разделяемой графики
Ускорение виртуальной разделяемой пробрасываемой графики
Ускорение виртуальной выделенной графики
Сравнение видов графического ускорения
Требования к оборудованию для графических возможностей с аппаратным ускорением
Варианты применения графических возможностей с аппаратным ускорением
Информационные работники
Квалифицированные пользователи
Проектировщики
Инсталляция, настройка и установка
Хост ESXi 6.x
Установка и настройка хоста ESXi для vSGA и vGPU
Установка и настройка хоста ESXi для MxGPU
Установка и настройка хоста ESXi для vDGA
Виртуальная машина
Общие установки для виртуальной машины
Установки для виртуальной машины для vSGA
Установки для виртуальной машины для vGPU
Установки для виртуальной машины для MxGPU
Гостевая операционная система
Гостевая операционная система Windows
Гостевая операционная система RHEL (vGPU и vDGA)
Установки пула и фермы Horizon 7 версии 7.x
Сервер лицензий
Мониторинг ресурсов
gpuvm
nvidia-smi
Поиск неисправностей
Общие неисправности для графического ускорения
Убедитесь в том, что загрузились надлежащие драйверы GPU
Проверьте присутствие дисплейных устройств в данном хосте
Проверьте порядковый номер слота шины PCI
Проверьте регистрационные записи Xorg
Поиск особых проблем в графическом ускорении
Выводы
Дополнительные ресурсы
Об авторах

Перевод Deploying Hardware Accelerated Graphics With VMware Horizon 7, декабрь 2017.

Введение

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

Перемещение подобного оборудования графического ускорения с имеющейся рабочей станции на некий сервер предоставляет пользователям преимущества вычислений, памяти, сетевой среды и безопасности. При такой архитектуре центра обработки данных пользователи могут осуществлять доступ к сложным моделям и очень большим наборам данных и манипулировать ими практически повсеместно. При наличии соответствующих сетевой полосы пропускания и удобных устройств удалённых клиентов, информационные технологии могут предложить большинству пользователей погружение в трёхмерную практику при освобождении от ограничений находящихся в определённом месте рабочих станций и процессоров. Требуется меньше физических ресурсов, снижается общее время открытия сложных моделей или выполнения симуляций, кроме того пользователи более не привязаны к отдельному физическому местоположению. Помимо этого, для обработки большей части запрашиваемых графических нагрузок аппаратное ускорение также способно снизить потребление ЦПУ и запроса менее масштабных настольных станций и публикаций приложений а также средств видео- кодирования и декодирования, которые содержат по умолчанию удалённые дисплеи Blust Extreme.

Данная статья рассматривает три основных вида графики с аппаратным ускорением для виртуальных рабочих мест View в VMware Horizon 7 посредством типовых вариантов применения. Она также содержит инструкции по установке и настройке, практические приёмы и советы по поиску и устранению неисправностей.

Что из себя представляет Horizon 7?

VMware Horizon 7 предоставляет решение виртуального рабочего места и публикации приложения корпоративного уровня. Свойства и компоненты Horizon 7, такие как протокол отображения Blust Extreme, моментальное предоставление клонов, доставки приложений VMware App Volumes™ и VMware User Environment Manager™, а также интеграции в сеансы RDSH (Remote Desktop Session Host, Хоста сеансов Удалённых рабочих мест), для бесшовного оснащения пользователей практичным и простым в управлении масштабируемым решением.

Аудитория

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

Виды графического ускорения

Horizon 7 предлагает три вида графического ускорения:

Ускорение виртуальной разделяемой графики

Виртуальное совместно используемое графическое ускорение (vSGA, Virtual Shared Graphics Acceleration) позволяет вам совместно применять некий GPU для множества виртуальных рабочих мест. Это привлекательное решение для тех пользователей, которым требуется полный потенциал подобного GPU на протяжении короткого периода. Однако, vSGA может создавать узкие места в зависимости от того какие приложения используются и тех ресурсов, которые им необходимы. Этот тип графического ускорения обычно применяется для информационных сотрудников и временами для пользователей с мощными запросами.

Для vSGA такой физические GPU хоста делаются виртуальными и совместно применяются множеством гостевых виртуальных машин. Вы должны устанавливать некий драйвер производителя в самом гипервизоре. Каждая гостевая виртуальная машина применяет проприетарный 3D драйвер VMware vSGA, который взаимодействует с имеющимся драйвером производителя в VMware vSphere®. Недостатком такого подхода sVGA является то, что поскольку приложениям необходимо осуществлять перенаправление для своей поддержки, поддержка API имеет ограничения и ограничивается только OpenGL и DirectX.

Поддерживаемые vSGA карты включают в свой состав:

  • Intel Iris Pro Graphics P580

  • nVidia Tesla M10/M60/P40

Для ознакомления с полным списком поддерживаемых карт vSGA отсылаем вас к VMware Virtual Shared Graphics Acceleration Guide

Ускорение виртуальной разделяемой пробрасываемой графики

Виртуальная совместно используемая графика с пробросом позволяет вам разделять GPU для множества виртуальных рабочих мест вместо того, чтобы сосредотачиваться на отдельном пользователе. В отличии от vSGA она не использует проприетарный 3D драйвер VMware и поддерживает большинство свойств графической карты.

Вам следует установить драйвер производителя на свою гостевую виртуальную машину. Все команд графики передаются прямо в имеющийся GPU без необходимости их трансляции самим гипервизором. В таком гипервизоре устанавливается vSphere Installation Bundle (VIB, комплект установки vSphere), который оказывает содействие в реализации расписания. В зависимости от имеющейся карты совместно применять GPU могут до 24 виртуальных машин, причём некоторые карты могут иметь несколько GPU. Вычисление общего числа рабочих мест или пользователей на GPU зависит от типа карты, требований приложения, разрешения экрана, общего числа дисплеев и частоты кадров, измеряемой в кадрах в секунду (fps).

Общий объём буфера кадров (VRAM) на виртуальную машину (ВМ) фиксирован и имеющиеся механизмы GPU совместно используются ВМ. AMD имеет опцию наличия фиксированного объёма вычислений, называемую предсказуемой производительностью (predictable performance).

Технология виртуального совместного использования с пробросом предоставляет лучшую производительность нежели vSGA и более высокое соотношение уплотнения, чем Выделенное виртуальное графическое ускорение (vDGA, Virtual Dedicated Graphics Acceleration). Это хорошая технология для инженеров, проектировщиков и продвинутых пользователей с низким, средним и расширенным уровнем требований 3D приложений. Её недостатками являются отсутствие поддержки VMware vSphere vMotion® и того, что данная технология может требовать для поддержки приложения повторной сертификации.

Поддерживаемые совместно используемые карты с пробросом для Horizon 7.x и Horizon 6.5 включают в свой состав:

  • AMD FirePro S7100X/S7150/S7150X2 (multi-user GPU, или MxGPU)

  • nVidia Tesla M10/M60/P40 (virtual GPU, или vGPU)

Для ознакомления с полным списком поддерживаемых карт vSGA отсылаем вас к VMware Virtual Shared Pass-Through Graphics Guide

Ускорение виртуальной выделенной графики

Технология виртуального ускорения выделенной графики (vDGA) Virtual Dedicated Graphics Acceleration, также именуемой пробросом GPU, ( GPU pass-through) предоставляет каждому пользователю неограниченный, полностью выделенный доступ к одному из GPU хоста. Хотя выделенный доступ имеет некоторые компромиссы уплотнения и управления, vDGA предоставляет самый высокий уровень производительности для пользователей с наиболее интенсивными потребностями графических вычислений.

Гипервизор передаёт такие GPU напрямую индивидуальным гостевым виртуальным машинам. В самом гипервизоре нет необходимости ни в каких специальных драйверах. Однако, чтобы включить графическое ускорение, вам необходимо установить драйвер производителя в каждой гостевой виртуальной машине. Эти процедуры установки те же самые, что и для физических машин. Единственным недостатком является отсутствие поддержки vMotion.

Поддерживаемые карты vDGA для в Horizon 7 версии 7.x и vSphere 6.5 включают в свой состав:

  • AMD FirePro S7100X/S7150/S7150X2

  • Intel Iris Pro Graphics P580/P6300

  • nVidia Quadro M5000/P6000, Tesla M10/M60/P40

Для ознакомления с полным списком поддерживаемых карт vSGA отсылаем вас к VMware Virtual Dedicated Graphics Acceleration (vDGA) Guide.

Сравнение видов графического ускорения

Таблицa A-1 сопоставляет все три вида графического ускорения.

Таблица A-1.
Тип Виртуальное разделяемое графическое ускорение Виртуальное разделяемое графическое ускорение с пробросом Виртуальное выделенное графическое ускорение

Сокращённое название

vSGA

vGPU или MxGPU

vDGA

Уплотнение

Наивысшее (ограничено оперативной памятью видео карты)

До 1:32

Нет (1:1)

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

Легковесный

Легковесный или Рабочей станции

Рабочей станции

Совместимость

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

Полная, однако сертифицированы не все приложения

Максимальная

Уровень DirectX

Только 9.0c SM3

Все поддерживаемые версии

Все поддерживаемые версии

Версия OpenGL

Только 2.1

Все поддерживаемые версии

Все поддерживаемые версии

Кодирование и декодирование видео

Программное

Аппаратное

Аппаратное

Вычисления OpenCL или CUDA

Нет

MxGPU только OpenCL {Прим. пер.: бета- версия эмуляции CUDA}

GRID 1: нет

GRID 2: только 1.1

Да

Поддержка vSphere vMotion

Да

Нет

Нет

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

Таблицa A-2 перечисляет все аппаратные требования для решений графического ускорения.

Таблица A-2.
Компонента Описание

Физическое пространство для графических карт

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

Блок питания хоста (PSU)

Убедитесь, что имеющиеся блоки питания соответствуют требованиям мощности вашего GPU и содержат достаточное число кабелей питания. Например, отдельная карта nVidia K2 может потреблять порядка 225 Ватт и требовать либо 6- пинового, либо 8- пинового кабеля питания PCIe.

BIOS

Для MxGPU должна быть включена виртуализация SR-IOV. Для vGPU должна быть разрешена поддержка технологии виртуализации Intel для прямого ввода/ вывода (Intel VT-d, Intel Direct I/O ) или устройство управления вводом/ выводом памяти AMD (IOMMU, IO memory management unit). Для локализации этих установок в BIOS имеющегося сервера проконсультируйтесь с его производителем.

Адаптеры дисплея

Если данный хост не имеет дополнительного графического адаптера, VMware рекомендует чтобы вы установили некий дополнительный адаптер дисплея нижнего уровня для работы в качестве первичного адаптера дисплея, так как консоль адаптера дисплея VMware ESXi™ не доступна для Xorg. Если данный GPU установлен в качестве основного первичного адаптера, Xorg не может применять этот GPU для построения изображения. Если установлены два GPU, встроенный BIOS сервера должен иметь некую опцию для выбора того, какой из GPU является первичным, а какой вторичным.

Варианты применения графических возможностей с аппаратным ускорением

Ниже приводятся основные варианты применения для различных типов графического ускорения.

Информационные работники

К категории информационных работников относятся офисные работники и исполнители, обычно применяющие такие приложения, как Microsoft Ofce, Adobe Photoshop и прочие не специализированные приложения конечных пользователей.

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

  • Виртуальное графическое ускорение с пробросом (MxGPU или vGPU) - когда наибольшее значение имеют производительность и такие свойства как аппаратное видео кодирование и декодирование, либо уровни DirectX/ OpenGL.

  • vSGA) - когда наибольшее значение имеет уплотнение.

Квалифицированные пользователи

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

Для целей квалифицированных пользователей лучше всего подходит Виртуальное графическое ускорение с пробросом (MxGPU или vGPU).

Проектировщики

Проектировщики, ведущие инженеры и научные сотрудники часто создают большие, сложные наборы данных и работают с ними. Им требуются приложения с интенсивной графикой, такие как 3D проектирование, молекулярное моделирование, а также программное обеспечение медицинской диагностики таких компаний как Dassault Systèmes, Enovia, Siemens NX и Autodesk.

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

  • Виртуальное графическое ускорение с пробросом (MxGPU или vGPU) - когда наибольшее значение имеют доступность и плотность.

  • vDGA) - когда на счету каждый бит производительности.

Рисунок A-1 суммирует профили производительности и плотности трёх имеющихся типов графического ускорения.

 

Рисунок A-1



Инсталляция, настройка и установка

Для графического ускорения вам требуется установить и настроить следующие компоненты:

  • Хост ESXi 6.x

  • Виртуальную машину

  • Гостевую операционную систему

  • Установки пула Horizon 7 версии 7.x

  • Сервер лицензий

Хост ESXi 6.x

Установка самой графической карты и настройка хоста ESXi видоизменяется в зависимости от лежащего в основе типа графического ускорения.

 

Установка и настройка хоста ESXi для vSGA и vGPU

  1. Установите необходимую карту в свой хост ESXi.

  2. Поместите этот хост в режим сопровождения.

  3. Если вы применяете некую карту nVidia Tesla P, отключите ECC.

  4. Если вы применяете некую карту nVidia Tesla M, установите эту карту в режим graphics (значением по умолчанию является compute) при помощи GpuModeSwitch, который поступает в виде некоего загрузочного ISO или VIB.

    1. Установите GpuModeSwitch без установленного драйвера nVidia:

      
      esxcli software vib install --no-sig-check -v /<path_to_vib>/NVIDIA-GpuModeSwitch-1OEM.xxx.0.0.xxxxxxx.x86_64.vib 
      		
    2. Перезагрузите этот хост.

    3. Измените все GPU на режим graphics:

      
      gpumodeswitch --gpumode graphics
      		
    4. Удалите GpuModeSwitch:

      
      esxcli software vib remove -n NVIDIA-VMware_ESXi_xxx_GpuModeSwitch_Driver
      		
  5. Установите GPU VIB:

    
    esxcli software vib install -v /<path_to_vib>\NVIDIAVMware_ESXi_xxx_Host_Driver_xxx.xx-1OEM.xxx.0.0.xxxxxxx.vib
    		

    Если вы применяете ESXi 6.0, vSGA и vGPU имеют различные файлы VIB. Если вы используете ESXi 6.5, и vSGA, и vGPU оба используют один и тот же файл VIB.

  6. Перезагрузитесь и выведите свой хост из режима сопровождения.

  7. Если вы применяете карту nVidia и vSphere 6.5 или выше, в своём веб клиенте vSphere переместитесь в Host > Confgure > Hardware > Graphics > Host Graphics > Edit чтобы открыть окно Edit Host Graphics Settings.

     

    Рисунок A-2



    1. Для vGPU выберите Shared Direct. Для vSGA Shared.

    2. Если вы применяете vGPU с различными профилями для GPU, выберите Group VMs on GPU until full (GPU consolidation). В этом случае для различных GPU помещаются различные профили, причём те же самые профили помещаются в те же самые GPU пока они не заполнятся. Данный метод не допустит того, чтобы вам не хватило GPU для различных профилей.

      Пример:

      Данный хост имеет единственную карту M60, у которой есть два GPU. Каждый GPU имеет 8 ГБ оперативной памяти. Предпринимается попытка исполнения двух ВМ с буфером кадра 4 ГБ и четыре ВМ с 2 ГБ. Если первые две запускаемые машины имеют один и тот же профиль, они помещаются в различные GPU. Как результат, для оставшихся профилей не доступны никакие другие GPU. При использовании Group VMs on GPU until full (GPU consolidation) виртуальные машины с одним и тем же профилем запускаются в одном и том же GPU.

 

Установка и настройка хоста ESXi для MxGPU

  1. Установите необходимую карту в свой хост ESXi.

  2. Поместите этот хост в режим сопровождения.

  3. В BIOS данного хоста ESXi убедитесь, что виртуализация ввода/ вывода с единым корнем (SR-IOV, single-root IO virtualization) включена и что разрешено одно из двух:

    • Поддержка технологии виртуализации Intel для прямого ввода/ вывода (Intel VT-d, Intel Virtualization Technology support for Direct I/O)

    • Устройство управления памятью ввода/ вывода AMD (IOMMU, AMD IO memory management unit)

  4. Переместитесь в местоположение драйвера AMD FirePro VIB и установите утилиту VIB AMD:

    
    cd /<path_to_vib>l
    		
  5. Сделайте эту утилиту VIB исполняемой и выполните её:

    
    chmod +x mxgpu-install.sh && sh mxgpu-install.sh –i
    		
  6. В этом сценарии выберите тот вариант, который соответствует вашему кружению:

    
    Enter the confguration mode([A]uto/[H]ybrid/[M]anual,default:A)A
    		
  7. Для общего числа виртуальных функций введите то число пользователей, которое вы хотите применять для работы на GPU:

    
    Please enter number of VFs: (default:4): 8
    		
  8. Выберите, желаете ли вы оставлять производительность фиксированной и не зависящей от общего числа активных ВМ:

    
    Do you want to enable Predictable Performance? ([Y]es/[N]o,default:N)N
    …
    Done
    The confguration needs a reboot to take effect
    		
  9. Выполните перезагрузку и выведите данный хост из режима сопровождения.

 

Установка и настройка хоста ESXi для vDGA

  1. Установите необходимую карту в свой хост ESXi.

  2. В настройках BIOS хоста ESXi убедитесь что включены Intel VT-d или AMD IOMMU.

  3. Чтобы разрешить проброс GPU в своём веб клиенте vSphere, переместитесь Host > Confgure > Hardware > PCI Devices > Edit.

  4. В своём окне All PCI Devices выберите GPU и выполните перезагрузку.

     

    Рисунок A-3



Виртуальная машина

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

 

Общие установки для виртуальной машины

Hardware level - Рекомендуемым уровнем оборудования является самый наивысший из тех, что поддерживают ваши хосты. Самым минимумом является версия 11 аппаратного уровня.

CPU - Общее число требуемых ЦПУ зависит от варианта применения и определяется реальными рабочими нагрузками. В качестве некоторой отправной точки рассмотрим следующие значения:


Knowledge workers: 2
Power users: 4
Designers: 6
		

Memory - Объём требующейся оперативной памяти зависит от варианта использования и определяется реальной рабочей нагрузкой. В качестве некоторой начальной точки рассмотрим следующие значения:


Knowledge workers: 2 GB
Power users: 4 GB
Designers: 8 GB
		

Virtual network adapter - рекомендуемым виртуальным сетевым адаптером является VMXNET3.

Virtual storage controller - Рекомендуемым виртуальным диском является LSI Logic SAS, однако, запрашиваемые рабочие нагрузки, применяющие локальные хранилища на основе флеш- памяти, могут получить преимущества от применения VMware Paravirtual.

прочие устройства - Мы рекомендуем удалять неиспользуемые устройства, такие как COM порт, порт принтера, DVD или гибкий диск.

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

 

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

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

  • Включите 3D графику выбрав Enable 3D Support.

  • Установите всё построение 3D изображений в Automatic или Hardware.

    Automatic применяет аппаратное ускорение если тот хост, на котором запущена данная виртуальная машина имеет способное к этому и доступное оборудование GPU. Если аппаратура GPU недоступна, данная виртуальная машина применяет программное построение 3D для трёхмерных задач. Данный вариант Automatic позволяет запуск виртуальной машины или осуществить её миграцию (с применением vSphere vMotion) на любой хост (для версиии vSphere 5.0 и последующих) и применять наилучшее из имеющихся в данном хосте решений.

    Hardware использует только аппаратные ускорения GPU. Если оборудование GPU отсутствует в данном хосте, такая виртуальная машина не запускается, либо вы не можете осуществить миграцию vSphere vMotion в реальном времени на такой хост. Миграция возможна до тех пор, пока тот хост, на который была перемещена эта виртуальная машина имеет возможности и доступность оборудования GPU. Данный вариант Hardware гарантирует, что некая виртуальная машина всегда применяет аппаратное построение 3D когда доступен некий GPU, однако он ограничивает такую виртуальную машину применением только хостов, которые имеют аппаратные GPU.

  • Выберите объём видео памяти (3D Memory).

    3D Memory по умолчанию имеет значение 96 МБ, минимум в 64 МБ и максимум 512 МБ.

     

    Рисунок A-4



 

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

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

  • В имеющейся консоли vSphere выберите свою виртуальную машину и переместитесь к Edit Settings.

  • Добавьте совместно используемое устройство PCI в свою виртуальную машину и выберите соответствующее устройство PCI чтобы разрешить проброс GPU в эту виртуальную машину. В данном случае выберите NVIDIA GRID vGPU.

     

    Рисунок A-5



  • Выберите объём видео памяти (3D Memory).

    3D Memory по умолчанию имеет значение 96 МБ, минимум в 64 МБ и максимум 512 МБ.

     

    Рисунок A-6



    Самая последняя строка для профиля GPU (в данном примере 4q) указывает необходимый размер буфера кадра (VRAM) в гигабайтах и соответствующую необходимую лицензию GRID. Для данной VRAN 0 означает 512 МБ, 1 означает 1024 МБ, и так далее. Таким образом, для данного профиля установленным размером является 4 ГБ. Возможными типами лицензий GRID являются:

    b - GRID Виртуального ПК виртуального GPU для вычислений настольного рабочего места для бизнеса.

    a - GRID Виртуального приложения виртуального GPU для Remote Desktop Session Hosts.

    q - GRID Виртуальная рабочая станция центра обработки данных Quadro (vDWS, Quadro Virtual Datacenter Workstation) для особых графических свойств и ускорений рабочих станций, таких как поддержка до четырёх мониторв 4K и сертифицированных драйверов для профессиональных приложений.

  • Кликните Reserve all memory, что выделит всю память при создании данной виртуальной машины.

 

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

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

  • Для устройств с большим размером BAR (например, Tesla P40), вы должны применять vSphere 6.5 и установить следующие расширенные параметры настройки в этой ВМ:

    • frmware="efi"

    • pciPassthru.use64bitMMIO="TRUE"

    • pciPassthru.64bitMMIOSizeGB="64"

  • Добавьте некое устройство PCI (виртуальные функции представлены как устройства PCI) в эту виртуальную машину и выберите соответствующее устройство PCI для включения проброса GPU.

     

    Рисунок A-7



    Для MxGPU вы также можете сделать это выполнив инсталяцию подключаемого модуля Radeon Pro Settings for the VMware vSphere Client.

     

    Рисунок A-8



    Для добавления устройства PCI во множество виртуальных машин за один раз, из ssh:

    1. Проследуйте к драйверу VIB AMD FirePro и утилите установки VIB AMD:

      
      cd /<path_to_vib>l
      		
    2. Измените vms.cfg:

      
      vi vms.cfg
      		

      Нажмите I и измените все вхождения .* чтобы они соответствовали имеющимся названиям ваших ВМ, которым требуются GPU. Например, чтобы поставить соответствие *MxGPU* всем именам ВМ, которые содержат MxGPU, например, WIN10-MxGPU-001 или WIN8.1-MxGPU-002:

      
      .*MxGPU.*
      		

      Для сохранения и выхода нажмите Esc, наберите :wq и нажмите Enter.

    3. Назначьте необходимые виртуальные функции соответствующим ВМ:

      
      sh mxgpu-install.sh –a assign
      Eligible VMs:
      WIN10-MxGPU-001
      WIN10-MxGPU-002
      WIN8.1-MxGPU-001
      WIN8.1-MxGPU-002
      These VMs will be assigned a VF, is it OK?[Y/N]y
      		
    4. Нажмите Enter.

  • Выберите Reserve all guest memory (All locked).

     

    Рисунок A-9



Гостевая операционная система

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

 

Гостевая операционная система Windows

Для гостевой операционной системы Windows установки и настройки таковы:

  1. Установите саму ОС Windows 7, 10 или 2012 R2 {Прим. пер.: или 2016} и все обновления.

  2. Также рекомендуются следующие установки:

    1. Установите все обычные исполняемые модули и свойства Windows.

      Перед обновлением Windows в этой ВМ установите все необходимые версии исполняемых модулей Microsoft, которые исправлены Обновлением Windows и которые могут исполняться совместно с этим образом. Например, установите:

      • .NET Framework (3.5, 4.5 и так далее)

      • Visual C++ без ограничений на свободное распространение x86 / x64 (2005 SP1, 2008, 2012 и тому подобные)

    2. Установите обновления Microsoft

      Установите все обновления Microsoft Windows и прочих продуктов Microsoft при помощи Windows Update или Windows Server Update Service. Вам может вначале потребоваться установить вручную Windows Update Client for Windows 8.1 and Windows Server 2012 R2: March 2016.

    3. Выполните регулировку Windows с помощью VMware OS Optimization Tool, применяя установленные по умолчанию опции.

  3. Если вы не применяете vSGA:

    1. Получите необходимые драйверы от производителя данного GPU (для vGPU это соответствующая пара с необходимым файлом VIB).

      Установите требующийся драйвер устройства GPU в своей гостевой операционной системе рассматриваемой виртуальной машины. Для MxGPU убедитесь, что выбрана соответствующая опция GPU Server.

  4. Установите VMware Tools™ и Horizon Agent (выберите 3D RDSH feature for Windows 2012 R2 Remote Desktop Session Hosts) в своей гостевой операционной системе.

  5. Выполните перезагрузку данной системы.

 

Гостевая операционная система RHEL (vGPU и vDGA)

Для гостевой операционной системы Red Hat Enterprise Linux установки и настройки таковы:

  1. Установите Red Hat Enterprise Linux 6.9 или 7.4 x64, установите все обновления и выполните перезагрузку.

  2. Установите gcc, makefles ядра и заголовки:

    
    sudo yum install gcc-c++ kernel-devel-$(uname -r) kernel-headers-$(uname -r) -y
    		
  3. Отключите libvirt:

    
    sudo systemctl disable libvirtd.service
    		
  4. Запретите новый драйвер с открытым исходным кодом:

    1. С помощью vi откройте следующий файл настроек:

      
      sudo vi /etc/default/grub
      		

      Если вы применяете RHEL 6.x:

      
      sudo vi /boot/grub/grub.conf
      		
    2. Найдите ту строку, которая содержит GRUB_CMDLINE_LINUX и добавьте в эту строку blacklist=nouveau.

    3. Добавьте строку blacklist=nouveau в любое место в следующий файл настроек:

      
      sudo vi /etc/modprobe.d/blacklist.conf
      		
  5. Создайте новые файлы grub.cfg и initramfs:

    
    sudo grub2-mkconfg -o /boot/grub2/grub.cfg
    sudo dracut /boot/initramfs-$(uname -r).img $(uname -r) -f
    		
  6. Выполните перезагрузку.

  7. Установите необходимый драйвер nVidia и ответьте на все вопросы:

    
    init 3
    chmod +x NVIDIA-Linux-x86_64-xxx.xx-grid.run
    sudo ./NVIDIA-Linux-x86_64-xxx.xx-grid.run
    		
  8. (Не обязательно) Установите CUDA Toolkit (рекомендуется исполнить файл метода), но не устанавливайте входящий в состав драйвер.

  9. Добавьте информацию сервера лицензий:

    
    sudo cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
    sudo vi /etc/nvidia/gridd.conf
    		

    Установите ServerAddress и BackupServerAddress в имена DNS или IP адреса ваших серверов лицензий, а FeatureType в 1 для vGPU и в 2 для vDGA.

  10. Установите Horizon Agent:

    
    tar -zxvf VMware-horizonagent-linux-x86_64-7.3.0-6604962.tar.gz
    cd VMware-horizonagent-linux-x86_64-7.3.0-6604962
    sudo ./install_viewagent.sh
    		

Ниже приводится моментальный снимок экрана окна установок nVidia X сервера, отображающего результаты установки и настройки гостевой оперативной системы Red Hat Enterprise Linux.

 

Рисунок A-10



Установки пула и фермы Horizon 7 версии 7.x

В процессе создания новой фермы в Horizon 7, настройка 3D фермы в точности такая же как и в случае обычной фермы. В процессе настройки нового пула View рабочих мест в Horizon 7, настраивайте такой пул как обычно, пока не достигните раздела Desktop Pool Settings.

  1. В появившемся окне Add Desktop Pool переместитесь к разделу Remote Display Protocol.

  2. Для опции 3D Renderer выберите одно из:

    • для vSGA выберите Hardware или Automatic.

    • Для vDGA или MxGPU выберите Hardware.

    • Для vGPU выберите NVIDIA GRID VGPU.

       

      Рисунок A-11



      Automatic применяет аппаратное ускорение если тот хост, на котором запущена данная виртуальная машина имеет способное к этому и доступное оборудование GPU. Если аппаратура GPU недоступна, данная виртуальная машина применяет программное построение 3D для трёхмерных задач. Данный вариант Automatic позволяет запуск виртуальной машины или осуществить её миграцию (с применением vSphere vMotion) на любой хост (для версиии vSphere 5.0 и последующих) и применять наилучшее из имеющихся в данном хосте решений.

      Hardware использует только аппаратные ускорения GPU. Если оборудование GPU отсутствует в данном хосте, такая виртуальная машина не запускается, либо вы не можете осуществить миграцию vSphere vMotion в реальном времени на такой хост. Миграция возможна до тех пор, пока тот хост, на который была перемещена эта виртуальная машина имеет возможности и доступность оборудования GPU. Данный вариант Hardware гарантирует, что некая виртуальная машина всегда применяет аппаратное построение 3D когда доступен некий GPU, однако он ограничивает такую виртуальную машину применением только хостов, которые имеют аппаратные GPU.

Для Horizon 7 версии 7.0 или 7.1 настраивайте тот объём памяти VRAM, который вам нужно иметь в каждой виртуальной машине. Если вы применяете vGPU, также выберите тот профиль, который необходимо применять. В Horizon 7 версии 7.1 вы можете применять vGPU в клонированных экземплярах, однако определённый профиль должен соответствовать тому набору профиля, который имеет родительская ВМ при применении веб клиента vSphere.

3D memory по умолчанию имеет значение 96 МБ, минимальное значение 64 МБ и максимальное значение в 512 МБ.

Для Horizon 7 версии 7.2 и последующих версий размер видео памяти и профиль vGPU наследуются из ВМ или моментального снимка ВМ.

 

Рисунок A-12



Сервер лицензий

Для vGPU с GRID 2.0 вам необходимо установить сервер лицензий. Ознакомьтесь с GRID Virtual GPU User Guide, включённым в вашу загрузку драйвера nVidia.

Мониторинг ресурсов

Для мониторинга ресурсов при применении графического ускорения доступны различные инструменты мониторинга.

gpuvm

Для лучшего управления доступными в некотором хосте ESXi ресурсами GPU, изучите текущее выделение ресурсов GPU. Утилита опроса из командной строки ESXi gpuvm перечисляет все установленные в хосте ESXi GPU и отображает общий объём памяти GPU, который выделен каждой виртуальной машине в этом хосте.


gpuvm

Xserver unix:0, GPU maximum memory 2076672KB

pid 118561, VM "Test-VM-001", reserved 131072KB of GPU memory pid 664081, VM "Test-VM-002", reserved 261120KB of GPU memory GPU memory left 1684480KB
		

nvidia-smi

Чтобы получить суммарные результаты всех работающих в настоящее время vGPU в каждом физическом GPU в данной системе исполните nvidia-smi без аргументов.


Thu Oct 5 09:28:05 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.73                 Driver Version: 384.73                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp Perf   Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P40           On   | 00000000:84:00.0 Off |                  Off |
| N/A   38C    P0    60W / 250W |  12305MiB / 24575MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0    135930  M+C+G   manual                                      4084MiB |
|    0    223606  M+C+G   centos3D004                                 4084MiB |
|    0    223804  M+C+G   centos3D003                                 4084MiB |
+-----------------------------------------------------------------------------+
		

Для мониторинга применения механизма vGPU среди множества vGPU выполните nvidia-smi vgpu с опцией –u или --utilization:


nvidia-smi vgpu -u
		

Ниже приводится статистика применения, которая выдаётся в виде отчётов каждую секунду для всех vGPU.

Таблица A-3.
#GPU VGPU SM MEM ENC DEC
#IDX ID % % % %

0

11924

6

3

0

0

1

11903

8

3

0

0

2

11908

10

4

0

0

Обозначения:

gpu – GPU ID

vgpu – vGPU ID

sm – Вычисления

mem – Полоса пропускания контроллера памяти

enc - Видео кодирование

dec - Видео декодирование

Поиск неисправностей

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

Общие неисправности для графического ускорения

Если возникают некие проблемы с vSGA, vGPU, or vDGA, либо если Xorg отказывается запускаться, попробуйте в любом порядке одно или более из приводимых ниже решений.

 

Убедитесь в том, что загрузились надлежащие драйверы GPU

Чтобы проверить, что необходимый VIB GPU установлен, выполните одну из следующих команд:

  • Для GPU на базе AMD:

    
    #esxcli software vib list | grep fglrx
    		
  • Для GPU на базе nVidia:

    
    #esxcli software vib list | grep NVIDIA
    		

Если VIB установлен верно, получаемый вывод будет примерно таким:


NVIDIA-VMware 304.59-1-OEM.510.0.0.799733 NVIDIA VMwareAccepted 2012-11-14
		

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

  • Для GPU на базе AMD:

    
    #esxcli system module load –m fglrx
    		
  • Для GPU на базе nVidia:

    
    #esxcli system module load –m nvidia
    		

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


Unable to load module /usr/lib/vmware/vmkmod/nvidia: Busy
		

Если драйвер GPU не загружен, проверьте vmkernel.log:


# vi /var/log/vmkernel.log
		

Для оборудования AMD отыщите FGLRX. Для аппаратуры nVidia выполните поиск NVRM. Обычно проблемы с соответствующими GPU указываются в vmkernel.log.

 

Проверьте присутствие дисплейных устройств в данном хосте

Чтобы убедиться, что ваш графический адаптер установлен правильно, выполните в хосте ESXi следующую команду:


# esxcli hardware pci list –c 0x0300 –m 0xff
		

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


# vi /var/log/vmkernel.log
		


000:001:00.0
Address: 000:001:00.0
Segment: 0x0000
Bus: 0x01
Slot: 0x00
Function: 0x00
VMkernel Name:
Vendor Name: NVIDIA Corporation
Device Name: NVIDIA Quadro 6000
Confgured Owner: Unknown
Current Owner: VMkernel
Vendor ID: 0x10de
Device ID: 0x0df8
SubVendor ID: 0x103c
SubDevice ID: 0x0835
Device Class: 0x0300
Device Class Name: VGA compatible controller
Programming Interface: 0x00
Revision ID: 0xa1
Interrupt Line: 0x0b
IRQ: 11
Interrupt Vector: 0x78
PCI Pin: 0x69
		
 

Проверьте порядковый номер слота шины PCI

Если вы устанавливаете в свой сервер второй GPU с меньшими аппаратными возможностями, ваша консоль сеанса ESXi выбирает карту с расширенными возможностями. Если это произошло, поменяйте эти две платы слотами PCIe, либо измените первичные установки GPU в BIOS своего сервера. После этого карта для вашей консоли (с меньшими возможностями) станет первой.

 

Проверьте регистрационные записи Xorg

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


# vi /var/log/Xorg.log
		

Поиск особых проблем в графическом ускорении

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

Проблема:

При запуске виртуальной машины получаем ошибку sched.mem.min

Решение:

Проверьте sched.mem.min.

Если вы получаете некую ошибку vSphere, связанную с sched.mem.min, добавьте в соответствующий файл VMX данной виртуальной машины следующий параметр:


sched.mem.min = "4096"
		

Замечание:

Значение в кавычках из предыдущего примера, 4096, должно соответствовать общему объёму настроенной памяти виртуальной машины. Пример приводится для виртуальной машины с 4 ГБ оперативной памяти.

Проблема:

В Windows 10 доступен для применения только один дисплей для профилей vGPU -0B или -0Q.

Решение:

Примените профиль, который поддерживает более одного заголовка виртуального дисплея и имеет по крайней мере 1 ГБ кадрового буфера.

Для предотвращения возможности исчерпания памяти, профили vGPU с кадровым буфером в 512 МБ или менее поддерживают только один заголовок виртуального дисплея для гостевой ОС Windows.

Проблема:

Невозможно применять NVENC с профилямиvGPU -0B или -0Q.

Решение:

Если вам необходимо включить NVENC, воспользуйтесь профилем, который имеет по крайней мере 1 ГБ кадрового буфера.

Применение соответствующего кадрового буфера для базирующегося на аппаратных средствах nVidia видео кодирования H.264 / HEVC (NVENC) может вызывать исчерпание оперативной памяти в профилях vGPU, которые имеют 512 МБ или менее в своём кадровом буфере. Для уменьшения возможности такого исчерпания памяти NVENC отключается в профилях, которые имеют в своём кадровом буфере 512 МБ или менее.

Проблема:

Невозможно загрузить драйвер vGPU в гостевой операционной системе.

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

  • Несоответствие версий между драйверами гостя и хоста:

    
    vthread-10| E105: vmiop_log: Guest VGX version(2.0) and Host VGX version(2.1) do not match
    		
  • Несоответствие подписи:

    
    vthread-10| E105: vmiop_log: VGPU message signature mismatch
    		

Решение:

Установите самый последний выпуск драйвера nVidia vGPU, соответствующий установленному в ESXi VIB в данной ВМ.

Проблема:

vGPU на основе Tesla отказывается запускаться.

Решение:

Отключите код исправления ошибок (ECC, error-correcting code) для всех GPU.

GPU Tesla поддерживают код коррекции ошибок, а vGPU GRID nVidia его не поддерживают. Если включена память с ECC, vGPU GRID nVidia отказывает в запуске. В файле журнала регистрации ВМ VMware vSphere протоколируются следующая ошибка:


vthread10|E105: Initialization: VGX not supported with ECC Enabled.
		
  1. Воспользуйтесь nvidia-smi для перечисления имеющихся состояний всех GPU

  2. Проверьте включён ли в этих GPU ECC.

  3. Измените состяние ECC в Off во всех GPU, в которых он включён выполнив следующую команду:

    
    nvidia-smi -i id -e 0 (id is the index of the GPU as reported by nvidia-smi)
    		
  4. Перезагрузите данный хост.

Проблема:

Отдельные результаты эталонного тестирования vGPU ниже чем у такого GPU при пробросе.

Решение:

Запретите Ограничитель частоты кадров (FRL, Frame Rate Limiter), добавив параметр настройки pciPassthru0.cfg.frame_rate_limiter со значением 0 в расширенных опциях настройки такой ВМ.

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

Проблема:

Настроенная с большим объёмом оперативной памяти отказывает в инициализации vGPU при загрузке.

При запуске множества ВМ, настроенных с большими объёмами Оперативной памяти (как правило, более 32 ГБ на ВМ), ВМ может отказывать в инициализации имеющегося vGPU. GPU GRID nVidia представлен в Диспетчере устройств Windows, однако дисплеи выставляют предупреждение и следующее состояние устройства:


Windows has stopped this device because it has reported problems. (Code 43)
		

Файл протокола ВМ vSphere содержит эти соображения об ошибке:


nvidia-smi -i id -e 0 (id is the index of the GPU as reported by nvidia-smi)vthread10|E105: NVOS status 0x29
vthread10|E105: Assertion Failed at 0x7620fd4b:179
vthread10|E105: 8 frames returned by backtrace
...
vthread10|E105: VGPU message 12 failed, result code: 0x29
...
vthread10|E105: NVOS status 0x8
vthread10|E105: Assertion Failed at 0x7620c8df:280
vthread10|E105: 8 frames returned by backtrace
...
vthread10|E105: VGPU message 26 failed, result code: 0x8
		

Решение:

vGPU резервирует некую часть общего кадрового буфера ВМ для применения в соответствии GPU системной памяти ВМ. Установленного по умолчанию резервирования достаточно для поддержки до 32 ГБ системной памяти. Вы можете выделять до 64 ГБ добавив такой параметр настройки:


pciPassthru0.cfg.enable_large_sys_mem
		

со значением 1 в опциях расширенных настроек такой ВМ.

Выводы

VMware Horizon 7 предлагает три технологии для аппаратного графического ускорения, каждая из них имеет собственные преимущества.

  • Virtual Shared Pass-Through Graphics Acceleration (MxGPU или vGPU) - Наилучшим образом соответствует почти всем вариантам использования.

  • Virtual Shared Graphics Acceleration (vSGA) - Для лёгких графических рабочих нагрузок которые применяют только DirectX9 или OpenGL 2.1 и требующих максимального уровня уплотнения.

  • Virtual Dedicated Graphics Acceleration (vDGA) - Для интенсивных графических рабочих нагрузок, которым необходим максимальный уровень производительности.

при помощи информации данной статьи вы можете устанавливать, настраивать 3D рабочие нагрузки и управлять ими в Horizon 7 версий 7.x под vSphere 6.x.

Дополнительные ресурсы

Установка графики для рабочих мест Linux Setting Up Horizon 7 for Linux Desktops.

Настройка пулов рабочих мест > Настройка построения 3D изображений рабочих станций Setting Up Virtual Desktops in Horizon 7.

Об авторах

Данная статья была обновлена Хилко Лантинга, который является проектировщиком вычислений конечных пользователей в техническом маркетинге VMware и сосредоточен на 3D, Horizon 7 Windows рабочих мест desktops, а также RDSH, Linux и приложениях. Изначально он был главным консультантом в Профессиональной службе VMware, руководителем крупномасштабных оснащений EUС в EMEA. Хилко имеет 18-ти летний опыт вычислений конечных пользователей.

Самая первая версия данной статьи была написана Стефаном Асселином и Гарри Слоаном.

С комментариями по данной статье обращайтесь к техническому маркетингу вычислений конечных пользователей VMware по euc_tech_content_feedback@vmware.com.