3D ускорение VDI на практике. Часть 1

    3D ускорение VDI на практике.


    Часть 1 — vSGA и vDGA

    3D ускорение VDI на практике

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

    Виртуализация рабочих мест (VDI) уже прочно вошла в нашу жизнь, в первую очередь в корпоративном сегменте рынка, и уверенно пробивает путь в остальные сегменты, в том числе и в виде публичных облачных сервисов (Desktop as a Service). Отсутствие же аппаратного ускорения графики сдерживает использование данной технологии в тех отраслях, которые могли бы оценить такие преимущества использования VDI как удаленную доступность, безопасность данных и упрощение аутсорсинга персонала.

    Первые шаги к использованию 3D ускорения в VDI были сделаны достаточно давно и заключались в пробросе PCI устройств в виртуальные машины, что позволяло выдавать для VDI видеокарты, установленные в сервер или подключенные к серверу с помощью внешних PCIe корзин, например, таких как Dell PowerEdge C410x. Недостатки такого решения очевидны — повышенное использование электроэнергии, места в стойках и высокая стоимость.

    Коротко о технологии NVIDIA GRID


    С анонсом технологии NVIDIA GRID (NVIDIA VGX на момент анонса) в прошлом году интерес к использованию 3D ускоренных VDI значительно возрос. Суть технологии GRID, которая исходно предназначена именно для 3D ускорения в виртуальных средах, достаточно проста и включает в себя следующие принципы:

    • Агрегация на базе одной PCIe карты нескольких графических ускорителей;
    • Возможность виртуализации графических ускорителей на уровне гипервизора;
    • Возможность виртуализации графических ускорителей средствами технологии GRID Virtual GPU.

    На данный момент компанией NVIDIA выпущено две видеокарты построенных на базе архитектуры NVIDIA Keppler — NVIDIA GRID K1 и K2. Характеристики данных карт следующие:

                     GRID K1                                                                GRID K2                            
    Число GPU 4 Kepler GPU начального уровня 2 Kepler GPU высокого класса
    Ядра CUDA 768 3072
    Общий размер памяти 16 ГБ DDR3 8 ГБ GDDR5
    Максимальная мощность 130 Вт 225 Вт
    Длина Карты 26,7 см 26,7 см
    Высота Карты 11,2 см 11,2 см
    Ширина Карты Dual Slot Dual Slot
    Отображение

     ввода/вывода данных
    Нет Нет
    Дополнительное питание Разъем 6-pin Разъем 8-pin
    PCIe x16 x16
    Поколение PCIe Gen3 (совместим с Gen2) Gen3 (совместим с Gen2)
    Охлаждение Пассивное Пассивное     
    Технические спецификации Спецификации платы GRID K1 Спецификации платы GRID  K2

    Фактически, GRID K1 представляет собой интегрированные на одной PCIe карте четыре карты уровня QUADRO K600, карты GRID K2 — две карты уровня QUADRO K5000. Это позволяет даже без использования виртуализации существенно увеличить плотность графических адаптеров в серверах.

    Включение в платформу GRID серверов различных вендоров, обеспечивающих установку до 4 карт GRID в один сервер избавляет от необходимости применять внешние PCIe корзины.

    ПО, поддерживающее технологию GRID — это гипервизоры VMware, Citrix и Microsoft, а также системы виртуализации рабочих станций VMware и Citrix (и Microsoft, если рассматривать варианты общего доступа к серверу).

    Описание нашего тестового стенда


    Для нашего тестового стенда мы решили использовать 1U сервер SuperMicro 1027GR-TRFT.
    Его основные особенности:
    • Dual socket R (LGA 2011) supports Intel® Xeon® processor E5-2600 and E5-2600 v2 family
    • Up to 512GB ECC DDR3, up to 1866MHz; 8x DIMM sockets
    • 3x PCI-E 3.0 x16 slots (support GPU/Xeon Phi cards), 1x PCI-E 3.0 x8 (in x16) low-profile slot
    • Intel® X540 10GBase-T Controller
    • 4x Hot-swap 2.5" SATA3 Drive Bays
    • 1800W Redundant Power Supplies Platinum Level (94%+)

    Такой выбор был обусловлен высокой плотностью (до 3 видеокарт GRID в 1U) и наличию встроенных 10GBase-T сетевых интерфейсов.

    SATA корзина позволяет использовать недорогие SSD диски для Host Based кэширования доступа к данных, столь полезного при VDI нагрузках, с характерными пиками дисковой активности в начале и окончании рабочего дня.

    При современных же ценах на модули памяти восьми DIMM-слотов оказывается вполне достаточно в ситуации, когда плотность VM на сервер ограничивается CPU и GPU ресурсами.

    В данный сервер мы установили карту NVIDIA GRID K1. Приводим фото сервера с готовой к установке видеокартой:

    Подключаем NVIDIA GRID K1 к нашему серверу

    В качестве платформы виртуализации была выбрана привычная нам VMware vSphere. Забегая вперед, отмечу, что во второй части данной статьи нам придется использовать Citrix XenServer, поскольку на данный момент только он и только в статусе Tech Preview поддерживает технологию GRID Virtual GPU.

    Гипервизор ESXi определяет видеокарту как 4 устройства NVIDIAGRID K1, подключённые через PCI/PCI bridge, что делает ускорители доступными для раздельного использования как passthrough устройства, подключаемые к ВМ, или как основу для виртуализации на уровне гипервизора.

    Гипервизор ESXi определяет видеокарту

    В гипервизор инсталлируется драйвер от NVIDIA:

    ~ # esxcli software vib list | grep NVIDIA
    NVIDIA-VMware_ESXi_5.1_Host_Driver 304.76-1OEM.510.0.0.802205 NVIDIA VMwareAccepted 2013-03-26

    Все устройства, которые не переведены в режим passthrough, при загрузке инициализируются и используются драйвером от NVIDIA:

    2013-10-28T06:12:42.521Z cpu7:9838)Loading module nvidia ...
    2013-10-28T06:12:42.535Z cpu7:9838)Elf: 1852: module nvidia has license NVIDIA
    2013-10-28T06:12:42.692Z cpu7:9838)module heap: Initial heap size: 8388608, max heap size: 68476928
    2013-10-28T06:12:42.692Z cpu7:9838)vmklnx_module_mempool_init: Mempool max 68476928 being used for module: 77
    2013-10-28T06:12:42.693Z cpu7:9838)vmk_MemPoolCreate passed for 2048 pages
    2013-10-28T06:12:42.693Z cpu7:9838)module heap: using memType 2
    2013-10-28T06:12:42.693Z cpu7:9838)module heap vmklnx_nvidia: creation succeeded. id = 0x410037000000
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia is looking for devices
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed device 0000:86:00.0
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed device 0000:87:00.0
    2013-10-28T06:12:42.943Z cpu7:9838)PCI: driver nvidia claimed 2 devices
    NVRM: loading NVIDIA UNIX x86_64 Kernel Module 304.76 Sun Jan 13 20:13:01 PST 2013
    2013-10-28T06:12:42.944Z cpu7:9838)Mod: 4485: Initialization of nvidia succeeded with module ID 77.
    2013-10-28T06:12:42.944Z cpu7:9838)nvidia loaded successfully.
    После загрузки гипервизора

    В качестве платформы для создания инфраструктуры VDI используется продукт Citrix XenDesktop 7, который в настоящий момент используется и в нашей production инфраструктуре, предоставляющей сервисы VDI для наших заказчиков. На тестовых машинах используется технология HXD 3D Pro, осуществляющая эффективную упаковку и проброс на клиента отрендеренного GPU изображения. Тестовый виртуальный сервер имеет следующую конфигурацию: 4vCPU 2GHz, 8GB RAM, 60GB HDD.

    Тестирование vSGA


    vSGA — это технология VMware, обеспечивающая виртуализацию ресурсов GPU, установленных в сервера под управлением гипервизора VMware ESXi, и последующее использование данных GPU для обеспечения 3D ускорения для виртуальных видеокарты, выданных для виртуального сервера.

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

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

    Функциональность виртуальной видеокарты следующая:
    • поддерживаемые API: DirectX 9, OpenGL 2.1
    • максимальный объем видеопамяти: 512MB
    • производительность графического ядра: динамическая, не управляется.

    В случае использование VMware View такую конфигурацию виртуальных машин можно осуществить непосредственно из интерфейса управления View, в нашем же случае для активации аппаратного ускорения для виртуальной видеокарты необходимо произвести два действия:
    1. включить поддержку 3D,
    2. установить размер видеопамяти в свойствах видеокарты в редактировании машины:

    Включаем поддержку 3D в VMware View

    и добавить параметр mks.use3dRenderer = hardware в ее параметры:

    Редактируем параметры в VMware View

    В гостевой ОС такая виртуальная видеокарта определяется как «VMware SVGA 3D». Она отличается от обычной виртуальной видеокарты только объемом памяти и поддержкой аппаратного ускорения вышеперечисленных API.

    Результаты выполнения теста FurMark на такой VDI машине однозначно говорят, что играть на ней не придется (при этом необходимо отметить, что во время тестирования физической видеокартой пользовалась одна виртуальная машина, то есть все вычислительные ресурсы видеокарты, с учетом накладных расходов виртуализации, были доступны тесту):

    Результаты теста FurMark на DVI машине

    С точки зрения AutoCad 2014 возможности видеокарты выглядят следующим образом:

    Enhanced 3D Performance: Available and on
    Smooth display: Available and off
    Gooch shader: Available and using hardware
    Per-pixel lighting: Available and on
    Full-shadow display: Available and on
    Texture compression: Available and off
    Advanced material effects: Available and on
    Autodesk driver: Not Certified
    Effect support:
    Enhanced 3D Performance: Available
    Smooth display: Available
    Gooch shader: Available
    Per-pixel lighting: Available
    Full-shadow display: Available
    Texture compression: Available
    Advanced material effects: Available

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

    Результаты выполнения теста Cadalyst Benchmark:

    Тест в Cadalyst Benchmark

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

    Тестирование vDGA


    vDGA — это название, используемое VMware для обозначения проброса физической видеокарты в виртуальную машину.

    Фактически, для данной технологии NVIDIA GRID дала одно единственное преимущество — высокую плотность GPU, которая позволяет отказаться от использования внешних PCIe корзин.

    Например, в используемый на тестовом стенде сервер возможно установить три видеокарты NVIDIA GRID K1, что даст нам 12 независимых ускорителей класса QUADRO K600. Это позволяет запустить на сервере 12 виртуальных серверов, что позволяет загрузить мощности сервера, а в зависимости от профиля нагрузки — и дает запас по GPU ресурсам по сравнению с CPU ресурсами.

    Для проброса видеокарты в виртуальный сервер необходимо включить режим passthrough для данного PCIe устройства в конфигурации хоста и добавить PCI устройство в конфигурацию виртуальной машины:

    Добавляем PCI ус-во в VMware View

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

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

    и провести настройку pci hole. На этот счет существуют различные мнения, мы выбрали значения от 1200 до 2200:

    Выбор значений pci hole в VMware View

    В гостевой ОС в таком случае видеокарта видится полноценным устройство от NVIDIA и требует установки драйверов для семейства видеокарт GRID.

    Результаты FurMark близки к результатам, полученным в тесте vSGA, что говорит об относительной эффективности уровня виртуализации для этого теста:

    результат дал относительный уровень эффективности виртуализации

    При использовании AutoCad 2014 картина следующая:

    Current Effect Status:
    Enhanced 3D Performance: Available and on Smooth display: Available and off
    Gooch shader: Available and using hardware
    Per-pixel lighting: Available and on
    Full-shadow display: Available and on
    Texture compression: Available and off
    Advanced material effects: Available and on
    Autodesk driver: Not Certified
    Effect support:
    Enhanced 3D Performance: Available
    Smooth display: Available
    Gooch shader: Available
    Per-pixel lighting: Available
    Full-shadow display: Available
    Texture compression: Available
    Advanced material effects: Available

    Все возможности также ожидаемо поддерживаются, однако карточка не является сертифицированной. Из серии GRID для AutoCad сертифицирована только K2.

    Результаты выполнения бенчмарка Cadalyst 2012:

    Результаты проброшенной видеокарты и виртуализированной

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

    Если же производительности карты K1 не достаточно, можно установить K2 и получить top range видеокарту внутри виртуального сервера.

    Во второй части статьи



    Мы подробно расскажем о возможности виртуализации GPU посредством технологий NVIDIA, которые обещают нам поддержку всех доступных физической карте API и производительность, достаточную для уверенной работы с CAD, покажем тестовый стенд, замеры производительности таких видеокарт и подведем итоги. Продолжение следует.
    ИТ-ГРАД
    186,00
    vmware iaas provider
    Поделиться публикацией

    Комментарии 21

      +1
      А как вы предоставляете VDI в аренду, если Microsoft это напрямую запрещает? В SPLA нет настольных операционных систем Windows 7/8, только серверные.
        –1
        Если я не ошибаюсь, то по SPLA возможна выдача Win7/8 в аренду, но только в составе VDI/ HyperV.
        Нельзя выдавать в виде физической машины.
        Лицензирование будет идти или как Windows Standard или Datacenter.
          0
          Для VDI без 3D ускорения используется серверная OS с Desktop Experience, для 3D требуется Win7/8 — там только собственные лицензии заказчика.
          +2
          Хочется узнать:
          1) Какие требования к каналу связи (предположим, что запущена игра в разрешении 1024x768 и непрерывно обновляет весь экран с периодичностью 30fps)
          2) Применяются ли какие-либо способы компресии видеопотока
          3) Вообще, видеопоток просто «льётся» на клиента и, соответственно, не требует на клиентской машине более или менее серьезной видеокарты?
            0
            Простенькое демо 1024x768, разгоняющееся от 20 до 25 fps потребляет от 1 до 2 МБ/с (то есть условно 8-16Мб/с). Думаю, мы добавим такие метрики к следующей части тестирования.
            Сжатие применяется — есть даже 2 алгоритма, программное или с помощью все той-же видеокарты, называется это у citrix «Adaptive H.264-based deep compression». Требования к клиентским устройствам при использовании deep compression — 2GB RAM и dual-Core CPU от 3ГГц, либо аппаратная поддержка декодирования. В случае с multi-monitor — рекомендуется quad-core CPU.
            0
            Озвучьте пожалуйста рыночную стоимость этих магических девайсов.
              +1
              K1 — 100 т.р., а за К2 — 150 т.р.
                0
                Примерно так, только надо отметить, что официально карты отдельно от серверов не продаются, только в составе решения.
                  0
                  А вот тут продаются: пруфлинк.
                    0
                    Ну официальная позиция NVIDIA — только в составе систем. Реально купить можно.
                    +1
                    Как это не продаются? Даже на Яндекс.Маркете есть конторы которые их продают: К1 и K2
                –1
                Уважаемый uzverkms, что Вам мешает предложить в аренду ноутбуки, десктопы с Windows 7/8 — SPLA это разрешает.
                  +1
                  Ни чего не мешает. Но это не VDI.
                    +1
                    SPLA уже запрещает. Desktop операционки — только в составе VDI или HyperV.
                    0
                    Ещё одна проблема, которая сдерживает применение VDI в нашей компании — проброс web-камер в VDI-машину. Есть ли сподвижки в этом направлении?
                      0
                      Не думал что ESXi увидит K1 как четыре видео карты. Интересная статья, ждём продолжения.
                        0
                        Правильно ли я понял из результата тестирования AutoCAD, что нормально смогут работать только четыре пользователя, которым непосредственно нужно пробросить K1 в их VDI?
                          0
                          Без виртуализации, о которой пойдет речь в следующей части — да. В такой сервер, как описан в статье можно установить до 3 карт, итого до 12 машин на сервер — для «тяжелых» машин, которые и других ресурсов много потребляют, и двухсокетного сервера — нормальный уровень нагрузки.
                            +1
                            Просто пытаюсь определить экономию. Пока вы не опубликовали следующую часть, то исходя из выше написанной статьи, получается, что стоимость одного рабочего места проектировщика (только железо) чуть выше стоимости обычной рабочей станции.

                            Сервер:
                            — Платформа SuperMicro 1027GR-TRFT = 70 т.р.
                            — 2 шт. E5-2620 = 30 т.р.
                            — 8 шт. 16GB DDR3 = 50 т.р.
                            — 4 шт. 300GB 15k HDD = 40 т.р.
                            — LSI RAID контроллер = 10 т.р.
                            — 3 шт. видеокарты K1 = 300 т.р.
                            — 10 шт. Windows 7 Pro OLP = 50 т.р.
                            — vSphere (на 2 процессора) = 85 т.р.
                            — Horizon View (на 10 подключений) = 105 т.р.

                            Итого: 740 т.р. / 12 = ~62 т.р. (и то придется 2 лицензии на Horizon View спиратить)
                              0
                              Чуть позже решил дописать софт и забыл убрать «только железо» (сейчас отредактировать уже не могу)
                                0
                                Забыли посчитать Windows Virtual Desktop Access (VDA).

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

                          Самое читаемое