Как построить VDI для сложной графики

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



    VDI «отвязывает» рабочий стол пользователя от аппаратного обеспечения. Развертывать можно как постоянный виртуальный рабочий стол, так и (наиболее частый вариант) гибкую виртуальную машину. Виртуальные машины включают индивидуальный набор приложений и настроек, который разворачивается в базовой ОС при авторизации пользователя. После выхода из системы, ОС возвращается в «чистое» состояние, убирая любые изменения и вредоносные программы.

    Для системного администратора это очень удобно — управляемость, безопасность, надежность на высоте, обновлять приложения можно в едином центре, а не на каждом ПК. Офисные пакеты, интерфейсы к базам данных, интернет-браузеры и прочие нетребовательные к графике приложения могут работать на любом сервере (всем известные терминальные клиенты 1С).

    Но что делать, если хочется виртуализовать более серьезную графическую станцию?

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

    Есть три варианта работы:
    • GPU pass-through: 1:1 выделенный GPU на ВМ
    • Shared GPU: Программная виртуализация GPU
    • Virtual GPU: Аппаратная витруализация (HW&SW)


    Рассмотрим подробнее


    Выделенный GPU

    Наиболее производительный режим работы, поддерживается в продуктах Citrix XenDesktop 7 VDI delivery и VMware Horizon View (5.3 or higher) with vDGA. Полностью работают NVIDIA CUDA, DirectX 9,10,11, OpenGL 4.4. Все остальные компоненты (процессоры, память, накопители, сетевые адаптеры) виртуализованы и разделены между инстансами гипервизора, однако один GPU остается одним GPU. Каждая виртуальная машина получает свой GPU практически без пенальти по производительности.
    Очевидное ограничение — количество таких виртуальных машин ограничено количеством доступных графических адаптеров в системе.


    Shared GPU

    Работает в Microsoft RemoteFX, VMware vSGA. Этот вариант полагается на возможности ПО для VDI, виртуальная машина работает как будто с выделенным адаптером и и серверный GPU также полагает, что работает с одним хостом, хотя на самом деле это уровень абстракции. Гипервизор перехватывает вызовы API и транслирует все команды, запросы отрисовки и прочее до передачи графическому драйверу, а хост машина работает с драйвером виртуальной карты.

    Shared GPU вполне разумное решение для многих случаев. Если приложения не слишком сложные, то одновременно может работать значительное число пользователей. С другой стороны, на трансляцию API тратится достаточно много ресурсов и при этом невозможно гарантировать совместимость с приложениями. Особенно с теми приложениями, которые используют более новые версии API, чем существовавшие на момент разработки VDI продукта.


    Virtual GPU

    Наиболее продвинутый вариант разделения GPU между пользователями, поддерживается на данный момент только в продуктах Citrix.

    Как это работает? В VDI среде с vGPU каждая виртуальная машина работает через гипервизор с выделенным драйвером vGPU, который есть в каждой виртуальной машине. Каждый драйвер vGPU посылает команды и управляет одним физическим GPU, используя выделенный канал.
    Обработанные кадры возвращаются драйвером в виртуальную машину для отправки пользователю.

    Такой режим работы стал возможен в последнем поколении GPU производства NVIDIA — Kepler. В Kepler есть Memory Management Unit (MMU) который транслирует виртуальные адреса хоста в физические адреса системы. Каждый процесс работает в собственном виртуальном адресном пространстве, а MMU разделяет их физические адреса, чтобы не было пересечения и борьбы за ресурсы.

    Воплощение в карточках


    Модельный ряд

    GRID K1 GRID K2
    Number of GPUs 4 x entry Kepler GPUs 2 x high-end Kepler GPUs
    Total NVIDIA CUDA cores 768 3072
    Total memory size 16 GB DDR3 8 GB GDDR5

    Разновидности для VDI

    Но простого деления по характеристикам мало, для GRID доступно деление на виртуальные профили vGPU.


    Видение типов пользователей

    Карта Количество GPU Виртуальный GPU Тип пользователя Объем памяти (МБ) Количество виртуальных экранов Максимальное разрешение Max количество vGPU на GPU/карту
    GRID K2 2 GRID K260Q Дизайнер/проектировщик 2048 4 2560x1600 2/4
    GRID K2 2 GRID K240Q Дизайнер/проектировщик среднего уровня 1024 2 2560x1600 4/8
    GRID K2 2 GRID K200 Офисный сотрудник 256 2 1920x1200 8/16
    GRID K1 4 GRID K140Q Дизайнер/проектировщик начального уровня 1024 2 2560x1600 4/16
    GRID K1 4 GRID K100 Офисный сотрудник 256 2 1920x1200 8/32

    Профили и применения

    Профили с индексом Q сертифицированы под ряд профессиональных приложений (например, Autodesk Inventor 2014 и PTC Creo) так же, как и карты серии Quadro.


    Полное виртуальное счастье!

    NVIDIA не была бы верна себе, если бы не подумала о дополнительных разновидностях. Определенную популярность набирают сервисы игр по запросу (Gaming-as-a-Service, GaaS), где тоже можно получить неплохой бонус от виртуализации и возможности разделить GPU между пользователями.

    Product Name GRID K340 GRID K520
    Target Market High-Density Gaming High-Performance Gaming
    Concurrent # Users1 4–24 2–16
    Driver Support GRID Gaming GRID Gaming
    Total GPUs 4 GK107 GPUs 2 GK104 GPUs
    Total NVIDIA CUDA Cores 1536 (384/GPU) 3072 (1536/GPU)
    GPU Core Clocks 950 MHz 800 MHz
    Memory Size 4 GB GDDR5 (1 GB/GPU) 8 GB GDDR5 (4 GB/GPU)
    Max Power 225 W 225 W

    Разновидности для игр в облаках

    Влияние виртуализации на производительность

    Конфигурация сервера:
    Intel Xeon CPU E5-2670 2.6GHz, Dual Socket (16 Physical CPU, 32 vCPU with HT)
    Memory 384GB
    XenServer 6.2 Tech Preview Build 74074c

    Конфигурация виртуальных машин:
    VM Vcpu: 4 Virtual CPU
    Memory: 11GB
    XenDesktop 7.1 RTM HDX 3D Pro
    AutoCAD 2014
    Бенчмарк CADALYST C2012
    NVIDIA Driver: vGPU Manager: 331.24
    Guest driver: 331.82

    Методика измерений простая — в виртуальных машинах запускался тест CADALYST и сравнивалась производительность при добавлении новых виртуалок.









    Как видно из результатов, для старшей модели K2 и сертифицированного профиля падение составляет порядка 10% при запуске 8 виртуальных машин, для модели K1 падение сильнее, но и виртуальных машин в два раза больше.

    Абсолютный результат карт при максимальном числе виртуальных машин:



    Куда ставить карты?

    У нас представлена модель Hyperion RS225 G4, предназначенная для установки 4 Intel Xeon Phi или GPGPU карт.



    Два процессора Xeon E5-2600 v2, до 1 терабайта оперативной памяти, 4 посадочных места под жесткие диски, InfiniBand FDR или 40G Ethernet для подключения к высокоскоростной сети и пара стандартных гигабитных сетевых разъемов.

    Установка карты в сервер:





    Карта в сервере:





    Также есть несколько типовых решений для различных случаев.
    ETegro Technologies
    Компания
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

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

      0
      а почему исключительно nvidia?
        0
        Потому как только они заморочились созданием специальных плат под многопользовательские решения.
        AMD продуктов с 4 чипами на одной карте просто не имеет.
          0
          Ну не то, чтобы исключительно NVIDIA.

          В Microsoft Hyper-V RemoteFX работает с видеокартами обоих производителей.

          В VMware vSphere в режиме vDGA могут пробрасываться и видеокарты NVIDIA, и AMD. Для режима vSGA поддерживается крайне небольшой список видеокарт: NVIDIA GRID K1 и K2, а также AMD FirePro S7000, S9000 или W7000.

          Что касается Citrix, то для GPU Passthrough, опять же, нет особой разницы, что прокидывать, но в официальном HCL Citrix присутствуют только карты NVIDIA. Для Virtual GPU, действительно, поддерживаются только GRID K1 и K2.

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

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