Компания Broadcom выпустила интересное видео, где Mark Achtemichuk и Uday Kulkurne обсуждают оптимизацию AI/ML нагрузок с использованием аппаратной платформы NVIDIA GPU и решения VMware Cloud Foundation:
Производительность и эффективность виртуализации графических процессоров (GPU) является одним из ключевых направлений для разработки решений в области искусственного интеллекта (AI) и машинного обучения (ML).
Виртуализация AI/ML задач, работающих на GPU, представляет собой вызов, так как традиционно считается, что виртуализация может значительно снижать производительность по сравнению с «чистой» конфигурацией на физическом оборудовании (bare metal). Однако VMware Cloud Foundation демонстрирует почти аналогичную производительность с минимальными потерями за счет умной виртуализации и использования технологий NVIDIA.
Рассматриваемые в данном видо графические процессоры от NVIDIA включают модели H100, A100 и L4, каждая из которых имеет уникальные характеристики для обработки AI/ML задач. Например, H100 оснащен 80 миллиардами транзисторов и способен ускорять работу трансформеров (на основе архитектуры GPT) в шесть раз. Особенностью H100 является возможность разделения GPU на несколько независимых сегментов, что позволяет обрабатывать задачи параллельно без взаимного влияния. A100 и L4 также обладают мощными возможностями для AI/ML, с небольшими различиями в спецификациях и применимости для графических задач и машинного обучения.
VMware Cloud Foundation (VCF) позволяет использовать все преимущества виртуализации, обеспечивая при этом производительность, близкую к физическому оборудованию. Одна из ключевых возможностей — это поддержка дробных виртуальных GPU (vGPU) с изоляцией, что позволяет безопасно распределять ресурсы GPU между несколькими виртуальными машинами.
Используя виртуализированные конфигурации на базе VCF и NVIDIA GPU, компании могут значительно снизить общие затраты на владение инфраструктурой (TCO). VMware Cloud Foundation позволяет консолидировать несколько виртуальных машин и задач на одном физическом хосте без существенной потери производительности. Это особенно важно в условиях современных датацентров, где необходимо максимизировать эффективность использования ресурсов.
В серии тестов было проверено, как виртуализированные GPU справляются с различными AI/ML задачами по сравнению с физическим оборудованием. Используя стандартные бенчмарки, такие как ML Commons, было показано, что виртуализированные GPU демонстрируют производительность от 95% до 104% по сравнению с bare metal конфигурациями в режиме инференса (вычисления запросов) и около 92-98% в режиме обучения. Это означает, что даже в виртуализированной среде можно добиться почти той же скорости, что и при использовании физического оборудования, а в некоторых случаях — даже превзойти её.
Основное преимущество использования VMware Cloud Foundation с NVIDIA GPU заключается в гибкости и экономии ресурсов. Виртуализированные среды позволяют разделять ресурсы GPU между множеством задач, что позволяет более эффективно использовать доступные мощности. Это особенно важно для компаний, стремящихся к оптимизации капитальных затрат на инфраструктуру и повышению эффективности использования серверных мощностей.
Недавно мы писали о новых возможностях пакета обновлений платформы виртуализации VMware vSphere 8 Update 3. Сегодня мы более детально рассмотрим, что нового там появилось в плане поддержки карт GPU.
Новые функции охватывают несколько областей, начиная с использования vGPU-профилей разных типов и размеров вместе и заканчивая внесением изменений в расширенные параметры DRS, которые определяют, как ВМ с поддержкой vGPU будет обрабатываться со стороны vMotion, например. Все эти улучшения направлены на упрощение жизни системных администраторов, дата-сайентистов и других пользователей, чтобы они могли использовать свои рабочие нагрузки на платформах vSphere и VCF.
Гетерогенные типы vGPU-профилей с разными размерами
В VMware vSphere мы можем назначить машине vGPU-профиль из набора заранее определенных профилей, чтобы предоставить ей определенную функциональность. Набор доступных vGPU-профилей появляется после установки NVIDIA vGPU менеджера/драйвера на уровне хоста в ESXi посредством vSphere Installation Bundle (VIB).
Эти vGPU-профили называются профилями типа C в случае, если профиль предназначен для интенсивной вычислительной работы, такой как обучение моделей машинного обучения. Существуют и несколько других типов vGPU-профилей, среди которых Q (Quadro) для графических рабочих нагрузок являются одними из самых популярных. Буквы «c» и «q» стоят в конце названия vGPU-профиля, отсюда и название этого типа.
В предыдущем обновлении vSphere 8 Update 2 мы могли назначать машине vGPU-профили, которые предоставляли поддержку различных видов функциональности, используя при этом одно и то же устройство GPU. Ограничением в этой версии vSphere было то, что они должны были быть vGPU-профилями одного и того же размера, например, те, которые заканчиваются на 8q и 8c. Здесь «8» представляет количество гигабайт памяти на самом GPU (иногда называемой framebuffer-памятью), которая назначена ВМ, использующей этот vGPU-профиль. Это значение может изменяться в зависимости от модели основного GPU.
При использовании GPU A40 или L40s мы можем иметь vGPU-профиль типа C, предназначенный для вычислительно интенсивной работы, такой как машинное обучение, и vGPU-профиль типа Q (предназначенный для графической работы), назначенные разным ВМ, которые делят один и тот же физический GPU на хосте.
Теперь в vSphere 8 Update 3 можно продолжать смешивать эти разные типы vGPU-профилей на одном физическом GPU, а также иметь vGPU-профили разного размера памяти, которые делят один и тот же GPU.
В качестве примера новой функциональности vSphere 8 Update 3: ВМ1 с vGPU-профилем l40-16c (для вычислительных нагрузок) и ВМ2 с vGPU-профилем l40-12q (для графических нагрузок) делят одно и то же устройство L40 GPU внутри хоста. Фактически, все вышеупомянутые виртуальные машины делят одно и то же физическое устройство L40 GPU.
Это позволяет лучше консолидировать рабочие нагрузки на меньшее количество GPU, когда рабочие нагрузки не потребляют весь GPU целиком. Возможность размещения гетерогенных типов и размеров vGPU-профилей на одном устройстве GPU применяется к GPU L40, L40s и A40 в частности, так как эти GPU имеют двойное назначение. То есть они могут обрабатывать как графические, так и вычислительно интенсивные задачи, в то время как GPU H100 предназначен исключительно для вычислительно интенсивных задач.
Включение настроек кластера для DRS и мобильности ВМ с vGPU
В vSphere Client версии 8.0 U3 появились новые настройки кластера, которые предоставляют более удобный метод настройки расширенных параметров для кластера DRS. Вы можете установить ограничение по времени приостановки ВМ, которое будет допускаться для машин с vGPU-профилями, которым может потребоваться больше времени, чем по умолчанию, для выполнения vMotion. Время приостановки по умолчанию для vMotion составляет 100 секунд, но этого может быть недостаточно для некоторых ВМ с большими vGPU-профилями. Дополнительное время требуется для копирования памяти GPU на целевой хост. Вы также можете узнать оценочное время приостановки для вашей конкретной ВМ с поддержкой vGPU в vSphere Client. Для получения дополнительной информации о времени приостановки, пожалуйста, ознакомьтесь с этой статьей.
В vSphere 8 Update 3 появился более удобный пользовательский интерфейс для настройки расширенных параметров для кластера DRS, связанных с vMotion виртуальных машин.
Прежде чем мы рассмотрим второй выделенный элемент на экране редактирования настроек кластера ниже, важно понять, что vGPU как механизм доступа к GPU является одной из множества техник, которые находятся в "спектре проброса устройств" (Passthrough spectrum). То есть, vGPU на самом деле является одной из форм прямого доступа. Возможно, вы считали, что подходы прямого проброса и vGPU сильно отличаются друг от друга до настоящего времени, так как они действительно разделены в vSphere Client при выборе добавления нового PCIe-устройства к ВМ. Однако, они тесно связаны друг с другом. Фактически, vGPU ранее назывался "опосредованным пробросом" (mediated passthrough). Этот спектр использования прямого доступа различными способами показан здесь.
Именно поэтому в vSphere Client на выделенном участке экрана ниже используются термины «Passthrough VM» и «Passthrough Devices». Эти термины на самом деле относятся к виртуальным машинам с поддержкой vGPU – и таким образом, обсуждение касается включения DRS и vMotion для виртуальных машин с поддержкой vGPU на этом экране. vMotion не разрешен для виртуальных машин, использующих фиксированный прямой доступ, как показано на левой стороне диаграммы выше.
Новая функция интерфейса позволяет пользователю включить расширенную настройку vSphere под названием «PassthroughDrsAutomation». С включенной этой настройкой, при соблюдении правил по времени приостановки, виртуальные машины в этом кластере могут быть перемещены vMotion на другой хост по решению DRS. Для получения дополнительной информации об этих расширенных настройках DRS, пожалуйста, ознакомьтесь с этой статьей.
Доступ к медиа-движку GPU
Единый медиа-движок на GPU может использоваться виртуальной машиной, которая хостит приложение, которому требуется выполнять транскодирование (кодирование/декодирование) на GPU, а не на более медленном CPU, например, для видео-приложений.
В vSphere 8 Update 3 поддерживается новый vGPU-профиль для виртуальных машин, которым требуется доступ к медиа-движку внутри GPU. Только одна виртуальная машина может использовать этот медиа-движок. Примеры таких vGPU-профилей («me» означает media engine):
a100-1-5cme (один срез)
h100-1-10cme (два среза)
Более высокая скорость vMotion виртуальных машин с большими vGPU-профилями
Новые улучшения в vMotion позволяют нам увеличивать пропускную способность для сети vMotion со скоростью 100 Гбит/с до 60 Гбит/с для vMotion виртуальной машины, к которой подключен современный GPU (H100, L40S), что сокращает время vMotion. Это не относится к GPU A100 и A30, которые относятся к более старой архитектуре (GA100).
Новые технические документы и рекомендации по проектированию GPU с VMware Private AI Foundation with NVIDIA
Недавно были выпущены два важных публикации авторами VMware. Агустин Маланко Лейва и команда опубликовали решение VMware Validation Solution для инфраструктуры Private AI Ready Infrastructure, доступное здесь.
Этот документ предоставляет подробное руководство по настройке GPU/vGPU на VMware Cloud Foundation и многим другим факторам для организации вашей инфраструктуры для развертывания VMware Private AI.
Одним из ключевых приложений, которое будут развертывать в первую очередь в инфраструктуре VMware Private AI Foundation с NVIDIA, является генерация с дополненным извлечением или RAG. Фрэнк Деннеман и Крис МакКейн подробно рассматривают требования к безопасности и конфиденциальности и детали реализации этого в новом техническом документе под названием VMware Private AI – Privacy and Security Best Practices.
Как вы знаете, в последних версиях VMware vSphere компания VMware все больше развивает поддержку модулей Virtual Graphics Processing Units (vGPU) в виртуальных машинах, которые существенно ускоряют многие виды вычислений и обработку графики.
Средства поддержки vGPU предоставляют преимущества не только для виртуальных машин, но и для контейнерных приложений. Давайте посмотрим, где именно они применяются.
Для виртуальных машин:
Графически интенсивные рабочие нагрузки: vGPU позволяет ВМ эффективно исполнять графически интенсивные рабочие нагрузки. Это особенно выгодно для отраслей, таких как архитектура, инжиниринг и гейминг, где важен высококачественный графический рендеринг.
Многопользовательская архитектура: Многопользовательские возможности vSphere и Cloud Director для ВМ с vGPU позволяют поставщикам услуг распределять ресурсы vGPU между различными клиентами или организациями, обеспечивая изоляцию и распределение ресурсов в соответствии с потребностями клиентов.
Улучшение производительности: ВМ с vGPU демонстрируют значительное улучшение производительности для приложений с интенсивной графикой по сравнению с использованием только ресурсов CPU. Это приводит к более отзывчивой и эффективной виртуализированной среде.
Гибкость: платформы Cloud Director и vSphere предлагают гибкость в распределении ресурсов vGPU для ВМ, что позволяет точно распределять ресурсы в соответствии с требованиями конкретных приложений или клиентов. Это гарантирует, что ВМ получают необходимое количество мощности модулей GPU.
Экономия: Технология vGPU может сократить затраты на оборудование и улучшить использование ресурсов за счет совместного использования физических ресурсов GPU между несколькими ВМ. Это приводит к экономии как для поставщиков услуг, так и для конечных клиентов.
Живая миграция: Технология vMotion от VMware позволяет проводить живую миграцию VM с поддержкой vGPU, обеспечивая непрерывность рабочих нагрузок даже при переносе ВМ между хостами.
Для контейнерных приложений:
Контейнеры с ускорением GPU: GPU-Accelerated Containers позволяют контейнеризованным приложениям использовать ускорение GPU. Это особенно актуально для рабочих нагрузок AI/ML и аналитики данных, где GPU существенно уменьшают время обработки данных.
Изоляция ресурсов: Контейнерные приложения могут получать преимущества от изоляции ресурсов при использовании vGPU. Каждому контейнеру можно назначить определенное количество ресурсов GPU, что предотвращает монополизацию GPU одним контейнером и не влияет на производительность других.
Совместимость: Поддержка vGPU включает совместимость с популярными графическими API, что обеспечивает бесшовную работу контейнеризованных приложений, зависящих от DirectX, OpenGL или других графических библиотек.
Масштабируемость: Контейнеры известны своей масштабируемостью, и с поддержкой vGPU вы можете масштабировать контейнерные приложения, обеспечивая каждому контейнеру необходимую долю мощности GPU по мере роста нагрузки.
Поддержка vGPU предоставляет преимущества как для виртуальных машин, так и для контейнерных приложений, улучшая графическую производительность, многопользовательскую архитектуру, гибкость и экономичность для ВМ, а также обеспечивая ускорение GPU, изоляцию ресурсов и совместимость для контейнерных приложений. Это делает его универсальным решением для широкого спектра рабочих нагрузок в виртуализированных средах.
Так выглядит потенциал использования технологий vGPU в зависимости от отрасли (размер круга от 1 до 3, источник McKinsey & Company):
Согласно исследовательскому документу по рынку «Graphics Processing Unit (GPU) Market Size : Analyzing Trends and Projected Outlook for 2023-2030» от Kingpin, предполагается, что глобальный рынок графических процессоров (GPU) будет расти с существенной скоростью в прогнозируемый период между 2023 и 2030 годами. В 2022 году рынок растет устойчиво, и с увеличением использования стратегий ключевыми игроками на рынке ожидается его рост в прогнозируемом периоде. Размер рынка графических процессоров (GPU) оценивался в 33,47 миллиарда долларов США в 2021 году и, как прогнозируется, достигнет 477,37 миллиарда долларов США к 2030 году, продолжая расти со среднегодовым темпом (САGR) 33,3% с 2022 по 2030 годы.
Таги: VMware, vSphere, vGPU, Hardware, Cloud, Director
Многие администраторы виртуальных инфраструктур используют технологию NVIDIA vGPU, чтобы разделить физический GPU-модуль между виртуальными машинами (например, для задач машинного обучения), при этом используется профиль time-sliced vGPU (он же просто vGPU - разделение по времени использования) или MIG-vGPU (он же Multi-Instance vGPU, мы писали об этом тут). Эти два режима позволяют выбрать наиболее оптимальный профиль, исходя из особенностей инфраструктуры и получить наибольшие выгоды от технологии vGPU.
Итак, давайте рассмотрим первый вариант - сравнение vGPU и MIG vGPU при увеличении числа виртуальных машин на GPU, нагруженных задачами машинного обучения.
В этом эксперименте была запущена нагрузка Mask R-CNN с параметром batch size = 2 (training and inference), в рамках которой увеличивали число ВМ от 1 до 7, и которые разделяли A100 GPU в рамках профилей vGPU и MIG vGPU. Эта ML-нагрузка была легковесной, при этом использовались различные настройки профилей в рамках каждого тестового сценария, чтобы максимально использовать время и память модуля GPU. Результаты оказались следующими:
Как мы видим, MIG vGPU показывает лучшую производительность при росте числа ВМ, разделяющих один GPU. Из-за использования параметра batch size = 2 для Mask R-CNN, задача тренировки в каждой ВМ использует меньше вычислительных ресурсов (используется меньше ядер CUDA) и меньше памяти GPU (менее 5 ГБ, в сравнении с 40 ГБ, который имеет каждый GPU). Несмотря на то, что vGPU показывает результаты похуже, чем MIG vGPU, первый позволяет масштабировать нагрузки до 10 виртуальных машин на GPU, а MIG vGPU поддерживает на данный момент только 7.
Второй вариант теста - vGPU и MIG vGPU при масштабировании нагрузок Machine Learning.
В этом варианте исследовалась производительность ML-нагрузок при увеличении их интенсивности. Был проведен эксперимент, где также запускалась задача Mask R-CNN, которую модифицировали таким образом, чтобы она имела 3 разных степени нагрузки: lightweight, moderate и heavy. Время исполнения задачи тренировки приведено на рисунке ниже:
Когда рабочая нагрузка в каждой ВМ использует меньше процессора и памяти, время тренировки и пропускная способность MIG vGPU лучше, чем vGPU. Разница в производительности между vGPU и MIG vGPU максимальна именно для легковесной нагрузки. Для moderate-нагрузки MIG vGPU также показывает себя лучше (но немного), а вот для тяжелой - vGPU уже работает производительнее. То есть, в данном случае выбор между профилями может быть обусловлен степенью нагрузки в ваших ВМ.
Третий тест - vGPU и MIG vGPU для рабочих нагрузок с высокой интенсивность ввода-вывода (например, Network Function with Encryption).
В этом эксперименте использовалось шифрование Internet Protocol Security (IPSec), которое дает как нагрузку на процессор, так и на подсистему ввода-вывода. Тут также используется CUDA для копирования данных между CPU и GPU для освобождения ресурсов процессора. В данном тесте IPSec использовал алгоритмы HMAC-SHA1 и AES-128 в режиме CBC. Алгоритм OpenSSL AES-128 CBC был переписан в рамках тестирования в части работы CUDA. В этом сценарии vGPU отработал лучше, чем MIG vGPU:
Надо сказать, что нагрузка эта тяжелая и использует много пропускной способности памяти GPU. Для MIG vGPU эта полоса разделяется между ВМ, а вот для vGPU весь ресурс распределяется между ВМ. Это и объясняет различия в производительности для данного сценария.
Основные выводы, которые можно сделать по результатам тестирования:
Для легковесных задач машинного обучения режим MIG vGPU даст бОльшую производительность, чем vGPU, что сэкономит вам деньги на инфраструктуру AI/ML.
Для тяжелых задач, где используются большие модели и объем входных данных (а значит и меньше ВМ работают с одним GPU), разница между профилями почти незаметна.
Для тяжелых задач, вовлекающих не только вычислительные ресурсы и память, но и подсистему ввода-вывода, режим vGPU имеет преимущество перед MIG vGPU, что особенно заметно для небольшого числа ВМ.
После выхода VMware vSphere 7 Update 2 появилось много интересных статей о разного рода улучшениях, на фоне которых как-то потерялись нововведения, касающиеся работы с большими нагрузками машинного обучения на базе карт NVIDIA, которые были сделаны в обновлении платформы.
А сделано тут было 3 важных вещи:
Пакет NVIDIA AI Enterprise Suite был сертифицирован для vSphere
Появилась поддержка последних поколений GPU от NVIDIA на базе архитектуры Ampere
Добавились оптимизации в vSphere в плане коммуникации device-to-device на шине PCI, что дает преимущества в производительности для технологии NVIDIA GPUDirect RDMA
Давайте посмотрим на все это несколько подробнее:
1. NVIDIA AI Enterprise Suite сертифицирован для vSphere
Основная новость об этом находится в блоге NVIDIA. Сотрудничество двух компаний привело к тому, что комплект программного обеспечения для AI-аналитики и Data Science теперь сертифицирован для vSphere и оптимизирован для работы на этой платформе.
Оптимизации включают в себя не только средства разработки, но и развертывания и масштабирования, которые теперь удобно делать на виртуальной платформе. Все это привело к тому, что накладные расходы на виртуализацию у задач машинного обучения для карточек NVIDIA практически отсутствуют:
2. Поддержка последнего поколения NVIDIA GPU
Последнее поколение графических карт для ML-задач, Ampere Series A100 GPU от NVIDIA, имеет поддержку Multi-Instance GPU (MIG) и работает на платформе vSphere 7 Update 2.
Графический процессор NVIDIA A100 GPU, предназначенный для задач машинного обучения и самый мощный от NVIDIA на сегодняшний день в этой нише, теперь полностью поддерживается вместе с технологией MIG. Более детально об этом можно почитать вот тут. Также для этих карт поддерживается vMotion и DRS виртуальных машин.
Классический time-sliced vGPU подход подразумевает выполнение задач на всех ядрах GPU (они же streaming multiprocessors, SM), где происходит разделение задач по времени исполнения на базе алгоритмов fair-share, equal share или best effort (подробнее тут). Это не дает полной аппаратной изоляции и работает в рамках выделенной framebuffer memory конкретной виртуальной машины в соответствии с политикой.
При выборе профиля vGPU на хосте с карточкой A100 можно выбрать объем framebuffer memory (то есть памяти GPU) для виртуальной машины (это число в гигабайтах перед буквой c, в данном случае 5 ГБ):
Для режима MIG виртуальной машине выделяются определенные SM-процессоры, заданный объем framebuffer memory на самом GPU и выделяются отдельные пути коммуникации между ними (cross-bars, кэши и т.п.).
В таком режиме виртуальные машины оказываются полностью изолированы на уровне аппаратного обеспечения. Выбор профилей для MIG-режима выглядит так:
Первая цифра сразу после a100 - это число слайсов (slices), которые выделяются данной ВМ. Один слайс содержит 14 процессоров SM, которые будут использоваться только под эту нагрузку. Число доступных слайсов зависит от модели графической карты и числа ядер GPU на ней. По-сути, MIG - это настоящий параллелизм, а обычный режим работы - это все же последовательное выполнение задач из общей очереди.
Например, доступные 8 memory (framebuffers) слотов и 7 compute (slices) слотов с помощью профилей можно разбить в какой угодно комбинации по виртуальным машинам на хосте (необязательно разбивать на равные части):
3. Улучшения GPUDirect RDMA
Есть классы ML-задач, которые выходят за рамки одной графической карты, какой бы мощной она ни была - например, задачи распределенной тренировки (distributed training). В этом случае критически важной становится коммуникация между адаптерами на нескольких хостах по высокопроизводительному каналу RDMA.
Механизм прямой коммуникации через шину PCIe реализуется через Address Translation Service (ATS), который является частью стандарта PCIe и позволяет графической карточке напрямую отдавать данные в сеть, минуя CPU и память хоста, которые далее идут по высокоскоростному каналу GPUDirect RDMA. На стороне приемника все происходит полностью аналогичным образом. Это гораздо более производительно, чем стандартная схема сетевого обмена, об этом можно почитать вот тут.
Режим ATS включен по умолчанию. Для его работы карточки GPU и сетевой адаптер должны быть назначены одной ВМ. GPU должен быть в режиме Passthrough или vGPU (эта поддержка появилась только в vSphere 7 U2). Для сетевой карты должен быть настроен проброс функций SR-IOV к данной ВМ.
Более подробно обо всем этом вы можете прочитать на ресурсах VMware и NVIDIA.
Многие администраторы VMware vSphere знают, что у этой платформы есть режим совместимости Enhanced vMotion Compatibility (EVC), который позволяет привести хосты с процессорами (CPU) разных моделей к единому базовому уровню по набору возможностей CPU Feature Set, чтобы обеспечить свободную миграцию vMotion между хостами ESXi. Делается это за счет маскирования некоторых наборов инструкций процессора через CPUID.
Сейчас многие приложения (например, реализующие техники Machine Learning / Deep Learning) используют ресурсы графического адаптера (GPU), поскольку их многоядерная архитектура отлично подходит для такого рода задач.
В VMware vSphere 7, вместе с соответствующей версией VM Hardware, были существенно улучшены функции работы для режима vSGA, который предназначен для совместного использования графического адаптера несколькими виртуальными машинами хоста.
Поэтому в VMware vSphere 7 Update 1 сделали еще одно полезное улучшение по этой теме - режим Enhanced vMotion Capabilities для графических процессоров GPU, который является частью EVC, настраиваемого в vSphere Client:
Графический режим VMFeatures включает в себя поддерживаемые возможности для 3D-приложений, включая библиотеки D3D 10.0/ Open Gl 3.3, D3D 10.1 / Open GL 3.3 и D3D 11.0 / Open GL 4.1. Пока приведение к базовому уровню доступно только до D3D 10.1 / OpenGL 3.3 (версии 11.0 и 4.1, соответственно, будут поддерживаться в следующих релизах).
Когда хост ESXi включается в кластер, где включена EVC for Graphics, сервер vCenter проверяет, что он поддерживает соответствующие версии библиотек. При этом можно добавлять хосты разных версий - ESXi 6.5,6.7 и 7.0, благодаря поддержке D3D 10.0 и OpenGL 3.3.
Как и для обычного EVC, пользователи могут включить EVC for Graphics на уровне отдельных ВМ. В этом случае перед тем, как включить виртуальную машину на хосте ESXi, сервер vCenter убеждается, что он поддерживает соответствующие библиотеки. Такая настройка полезна при возможной миграции виртуальной машины между датацентрами или в публичное облако.
Если у вас включена EVC for Graphics, то перед миграциями vMotion также будут проводиться нужные предпроверки по поддержке графических функций GPU со стороны видеоадаптера целевого хоста.
Компания VMware анонсировала скорый релиз новой версии платформы для виртуализации и доставки настольных ПК и приложений VMware Horizon 8. Это будет очень большое обновление, включающее в себя новые возможности в самых разных аспектах. Напомним, что о прошлой версии этого продукта Horizon 7.12 мы писали вот тут.
Давайте посмотрим, что там появится нового:
1. Улучшения гибридной инфраструктуры.
Помимо поддержки публичных облачных инфраструктур, уже имеющейся на платформе, будет также добавлена поддержка облаков Google Cloud и VMware Cloud on Dell EMC. Поддержка облака Azure VMware Cloud из статуса Tech Preview перейдет с состояние полноценной производственной поддержки.
Все это позволит пользователям расширить выбор доступных облачных партнеров и строить гибридную виртуальную среду рабочих сред на базе облаков самых разных провайдеров. Управлять всем можно будет через единый интерфейс Horizon Control Plane, а с помощью компонента Universal Broker - назначать унифицированные права доступа в рамках нескольких доступных облаков. Управлять образами и подключенными площадками на базе разных облаков также можно будет из одного места.
2. Улучшения гибкости размещения и доставки виртуальных рабочих столов.
Новая возможность Instant Clones Smart Provisioning расширяет функции мгновенных клонов Instant Clones при их развертывании, а средства Elastic DRS (Distributed Resource Scheduler) дают администраторам возможности динамического расширения пулов виртуальных ПК.
Также теперь решение App Volumes поддерживается для использования в облачной инфраструктуре Horizon Cloud on Azure. Ну а все возможности по интеграции с другими продуктами можно полноценно реализовать через RESTful API. Это все позволяет партнерским решениям просто взаимодействовать с инфраструктурой виртуальных ПК, поддерживая полный цикл работы с ними в рамках предприятия.
3. Улучшения User Experience.
Протокол Blast Extreme был существенно доработан и теперь предоставляет еще больше возможностей по доставке качественного видеопотока, а также при работе с 3D-графикой с использованием кодеков HEVC H.265 и модулей GPU. Поддерживаются также 4K и 8K мониторы.
Пакеты оптимизаций будут доступны для продуктов Zoom и Webex, а также для платформы Microsoft Teams.
4. Безопасность End-to-End Security
на базе собственных и партнерских решений.
Как известно, поскольку виртуальные десктопы централизованно хранятся в датацентре компании, их проще защищать централизованно. Интеграция с продуктами Workspace ONE Access, VMware SD-WAN (от VeloCloud), NSX Advanced Load Balancer (решения Avi Networks) и Unified Access Gateway позволяет интегрировать защиту устройств и пользователей в инфраструктуру Horizon.
Кроме того, теперь будет поддерживаться и решение VMware Carbon Black для более специализированного мониторинга инфраструктуры при защите от атак.
Релиз платформы VMware Horizon 8 ожидается до конца октября этого года. Страничка обновления пока доступна тут.
При описании новых возможностей VMware vSphere 7 мы рассказывали о функциях платформы, появившихся в результате приобретения VMware компании Bitfusion. Эти возможности позволяют оптимизировать использование графических процессоров GPU в пуле по сети, когда vGPU может быть частично расшарен между несколькими ВМ. Это может применяться для рабочих нагрузок задач AI/ML (например, для приложений, использующих PyTorch и/или TensorFlow).
Все это позволяет организовать вычисления таким образом, что хосты ESXi с аппаратными модулями GPU выполняют виртуальные машины, а их ВМ-компаньоны на обычных серверах ESXi исполняют непосредственно приложения. При этом CUDA-инструкции от клиентских ВМ передаются серверным по сети.
Технология эта называлась FlexDirect, теперь это продукт vSphere Bitfusion:
На днях это продукт стал доступен для загрузки и использования в онпремизных инфраструктурах.
Возможность динамической привязки GPU к любой машине в датацентре, по аналогии с тем, как вы привязываете к ней хранилище.
Возможность использования ресурсов GPU как одной машине, так и разделения его между несколькими. При этом администратор может выбрать, какой объем Shares выделить каждой из машин, то есть можно приоритизировать использование ресурсов GPU между потребителями.
Возможность предоставления доступа как по TCP/IP, так и через интерфейс RDMA, который может быть организован как подключение Infiniband или RoCE (RDMA over Converged Ethernet). О результатах тестирования такого сетевого взаимодействия вы можете почитать тут.
Передача инструкций к серверным машинам и обратно на уровне CUDA-вызовов. То есть это решение не про передачу содержимого экрана как VDI, а про высокопроизводительные вычисления.
Прозрачная интеграция - с точки зрения приложений менять в инфраструктуре ничего не нужно.
Для управления инфраструктурой доставки ресурсов GPU используется продукт vSphere Bitfusion Manager, который и позволяет гибко распределять ресурсы между потребителями. Раньше он выглядел так:
Теперь же он интегрирован в vSphere Client как плагин:
Архитектура Bitfusion позволяет разделить виртуальную инфраструктуру VMware vSphere на ярусы: кластер GPU, обсчитывающий данные, и кластер исполнения приложений пользователей, которые вводят данные в них и запускают расчеты. Это дает гибкость в обслуживании, управлении и масштабировании.
С точки зрения лицензирования, решение vSphere Bitfusion доступно как аддон для издания vSphere Enterprise Plus и лицензируется точно так же - по CPU. Для других изданий vSphere, увы, этот продукт недоступен.
Недавно мы писали о новых возможностях платформы виртуализации VMware vSphere 7, а также функциональности нового механизма динамического распределения нагрузки VMware DRS 2.0. Среди новых возможностей DRS мы упоминали про функции Assignable Hardware, которые позволяют назначить профили устройств PCIe с поддержкой Dynamic DirectPath I/O или NVIDIA vGPU для первоначального размещения виртуальных машин в кластере.
Сегодня мы поговорим об этой технологии в целом. Ранее виртуальные машины, использовавшие технологии DirectPath I/O или vGPU, привязывались к физическому адресу устройства, который включал в себя адрес расположения устройства на конкретной шине PCIe конкретного хоста ESXi. Это делало невозможным использование такой ВМ на других серверах кластера, что, конечно же, делало невозможным и работу технологий HA и DRS, которые являются критически важными в современных датацентрах.
Теперь же технология Assignable Hardware вводит новый уровень абстракции, который включает в себя профиль с возможностями устройств, требующихся для виртуальной машины. Таких профилей два - для технологии Dynamic DirectPath I/O и для NVIDIA vGPU:
Таким образом, технология Assignable Hardware позволяет отделить виртуальную машину от конкретного устройства и дать ей возможность быть запущенной на другом хосте ESXi с таким же устройством (или даже другим, но поддерживающим определенный набор функций).
Теперь при настройке виртуальной машины у вас есть выбор одного из следующих вариантов для устройства PCIe:
DirectPath I/O (legacy-режим, без интеграции с HA и DRS)
Dynamic DirectPath I/O
NVIDIA vGPU
После того, как вы выберете нужный профиль оборудования, механизм DRS сможет разместить машину на хосте ESXi с поддержкой нужных функций для ВМ.
На скриншоте выше, во второй опции Select Hardware, также есть лейбл "GPGPU example" - это возможность задать определенным устройствам метки таким образом, чтобы при выборе размещения ВМ использовались только устройства хостов с данными метками (при этом модели устройств могут отличаться, например, NVIDIA T4 GPU и RTX6000 GPU). Либо можно выбрать вариант использования только идентичных устройств.
Назначить метку можно во время конфигурации PCIe-устройств. В гифке ниже показано, как это делается:
При использовании NVIDIA vGPU для виртуальной машины выделяется только часть устройства. Поддержка горячей миграции vMotion для машин, использующих vGPU, уже была анонсирована в VMware vSphere 6.7 Update 1. Теперь эта поддержка была расширена, в том числе для DRS, который теперь учитывает профили vGPU.
Ну и в видео ниже вы можете увидеть обзор технологии Assignable Hardware:
Таги: VMware, vSphere, Hardware, NVIDIA, vGPU, VMachines, DRS, vMotion, HA
Как знают многие администраторы решения для виртуализации и доставки настольных ПК предприятия VMware Horizon 7, при использовании графических карт NVIDIA есть возможность применять режим vSGA, обеспечивающий использование общего графического адаптера несколькими виртуальными машинами. Режим vSGA - это самый простой и эффективный способ использовать аппаратное ускорение для графики в виртуальных машинах.
Недавно в компании VMware провели тестирование производительности режима vSGA на платформе VMware Horizon 7, сравнив его с программным CPU-only, с одной стороны, и режимом GRID vGPU, с другой. Забегая вперед скажем, что конечно же vSGA показал лучшие результаты, чем CPU-only, при этом общий уровень оказался не сильно хуже, чем оптимизированный режим GRID vGPU.
Итак, давайте посмотрим на тестовую конфигурацию (тесты проводились как внутри десктопной ВМ на хосте, так и из клиента Horizon Client, расположенного на этом же хосте, чтобы убрать воздействие сетевого взаимодействия на тест):
Параметр
Значение или конфигурация
VCPUS
2
Memory
8 GB
Disk
64 GB
OS
Windows 10 Enterprise
Applications Installed
Office 2013, Chrome Browser, Adobe Reader
VDI Protocol
Blast
VRAM
96 MB
vSGA (3D Memory)
512 MB
vGPU Profile
M60-1b
VMware Horizon
Version 7.6
VDI desktop resolution
1600x1200
С точки зрения программного обеспечения, использовались следующие рабочие нагрузки:
Приложения Microsoft Office
Adobe Acrobat для открытия документов
Воспроизведение видео с YouTube
Просмотрщики CAD-файлов
Движок WebGL
Эксперимент 1
В первом эксперименте записывалось содержимое экрана пользователей (напрямую в VDI-десктопе, без использования удаленного протокола доступа) в трех конфигурациях и сравнивалось в разрезе двух основных показателей:
Отображаемое число кадров в секунду (frames per second, FPS)
Плавность картинки в десктопе vSGA в сравнении с CPU-only десктопом
Результатом первого теста для vSGA (анимация в PowerPoint) является более плавная картинка с большим числом FPS (поэтому запись с vSGA длится дольше):
Эти параметры численно нормализовали к уровню для vGPU и представили на графике (чем выше столбики, тем лучше):
Также в рамках этого эксперимента в PowerPoint запустили еще небольшое видео, чтобы наглядно продемонстрировать преимущество vSGA:
Эксперимент 2
Во время второго эксперимента в VMware запускали воспроизведение видео в PowerPoint из клиента Horizon Client. Там были проанализированы скриншоты видео, чтобы подсчитать FPS во всех трех режимах (CPU-only, vSGA и vGPU). Результаты также нормализовали к уровню vGPU:
На правом графике также показано нормализованное число артефактов, возникающих при отображении видео - в режиме CPU-only их достаточно много, и это видно невооруженным глазом.
Также в рамках эксперимента сравнили скриншоты, сделанные из видео на YouTube, напрямую в десктопе без удаленного доступа по протоколу PCoIP:
Очевидно, что в vSGA картинка более четкая. А вот при сравнении vGPU и vSGA уже нет столь явного различия:
Эксперимент 3
В этом эксперименте в десктопе просто запустили бенчмарк WebGL для трех режимов - CPU-only, vSGA и vGPU.
Тест / Режим
vSGA
CPU-only
vGPU (M60-1b)
WebGL Aquarium
40 fps
4 fps
60 fps
WebGL Unity3D
42 371
23 020
56 307
WebGL Bmark
1174
720
2079
Обратите внимание, как плохо справляется режим CPU-only с тестом Aquarium. Ну и в целом видно, что vSGA работает вполне сносно, хотя и не дотягивает до vGPU.
Выводы тестирования очевидны - используйте vSGA и vGPU, если в ваших десктопах пользователи работают с графикой. Это существенно увеличивает производительность и плавность картинки. Кстати, если вы используете vSGA, то сможете делать vMotion виртуальных машин между хостами, даже если на них стоят разные графические адаптеры, а вот для vMotion с vGPU нужно унифицировать хост-серверы в этом плане (включая одинаковые версии драйверов).
Недавно мы писали про интересную штуку - утилиту Machine Learning on VMware Cloud Foundation, которая предоставляет инженерам по работе с данными инструменты в области Data Science в рамках виртуальной инфраструктуры. К сожалению, она пока не поддерживает использование GPU хостов, а работает только с CPU. Но заслуживает внимание сам факт такого решения - VMware начинает плотно прорабатывать тему машинного обучения.
Еще один элемент этой концепции - выпущенный на днях документ "Learning Guide – GPUs for Machine Learning on vSphere". В нем VMware рассказывает о том, как правильно строить системы, заточенные под алгоритмы машинного обучения, на платформе VMware vSphere.
Документ позволит архитекторам ИТ-инфраструктур и командам DevOps ответить на следующие вопросы:
Зачем нужны серверы с GPU для задач machine learning (ML) на платформах high performance computing (HPC).
Как именно используется модуль GPU.
Как на платформе vSphere строить ML-системы.
Как транслировать модуль GPU в рабочую нагрузку ML в виртуальной машине.
Как наладить взаимодействие между командой data scientists и администраторов виртуальной инфраструктуры.
Задачи машинного обучения с использованием GPU можно решать тремя способами:
Эти способы реализуют соответствующие технологии:
Об остальном читайте в интереснейшем документе на 43 страницах. В конце вайтпэйпера приведена огромная коллекция полезных ссылок на документы и статьи по практическому применению задач машинного обучения в виртуальных средах.
Это гостевой пост компании ИТ-ГРАД, предоставляющей виртуальные машины из облака в аренду. VMware обновили свой гипервизор ESXi. Теперь скорость работы виртуальных графических процессоров под его управлением сопоставима с возможностями их bare metal реализаций — разница составляет всего 3%. Рассказываем, как компании удалось этого добиться...
Вы все, конечно же, в курсе, что графические карты уже давно используются не только для просчета графики в играх и требовательных к графике приложениях, но и для вычислительных задач. Сегодня процессоры GPGPU (General Purpose GPU) используются в ИТ-инфраструктурах High Performance Computing (HPC) для решения сложных задач, в том числе машинного обучения (Machine Learning, ML), глубокого обучения (Deep Learning, DL) и искусственного интеллекта (Artificial Intelligence, AI).
Эти задачи, зачастую, хорошо параллелятся, а архитектура GPU (по сравнению с CPU) лучше приспособлена именно для такого рода задач, так как в графических платах сейчас значительно больше вычислительных ядер:
Кроме того, архитектура CPU больше заточена на решение последовательных задач, где параметры рассчитываются друг за другом, а архитектура GPU позволяет независимо просчитывать компоненты задачи на разных процессорных кластерах, после чего сводить итоговый результат.
Вот так, если обобщить, выглядит архитектура CPU - два уровня кэша на базе каждого из ядер и общий L3-кэш для шаринга данных между ядрами:
Число ядер на CPU может достигать 32, каждое из которых работает на частоте до 3.8 ГГц в турбо-режиме.
Графическая карта имеет, как правило, только один уровень кэша на уровне вычислительных модулей, объединенных в мультипроцессоры (Streaming Multiprocessors, SM), которые, в свою очередь, объединяются в процессорные кластеры:
Также в видеокарте есть L2-кэш, который является общим для всех процессорных кластеров. Набор процессорных кластеров, имеющих собственный контроллер памяти и общую память GDDR-5 называется устройство GPU (GPU Device). Как видно, архитектура GPU имеет меньше уровней кэша (вместо транзисторов кэша на плату помещаются вычислительные блоки) и более толерантна к задержкам получения данных из памяти, что делает ее более пригодной к параллельным вычислениям, где задача локализуется на уровне отдельного вычислительного модуля.
Например, если говорить об устройствах NVIDIA, то модель Tesla V100 содержит 80 мультипроцессоров (SM), каждый из которых содержит 64 ядра, что дает в сумме 5120 ядер! Очевидно, что именно такие штуки надо использовать для задач ML/DL/AI.
Платформа VMware vSphere поддерживает технологию vGPU для реализации такого рода задач и возможности использования виртуальными машинами выделенных ВМ модулей GPU. В первую очередь, это все работает для карточек NVIDIA GRID, но и для AMD VMware также сделала поддержку, начиная с Horizon 7 (хотя и далеко не в полном объеме).
Еще одна интересная архитектура для решения подобных задач - это технология FlexDirect от компании BitFusion. Она позволяет организовать вычисления таким образом, что хосты ESXi с модулями GPU выполняют виртуальные машины, а их ВМ-компаньоны на обычных серверах ESXi исполняют непосредственно приложения. При CUDA-инструкции от клиентских ВМ передаются серверным по сети:
Обмен данными может быть организован как по TCP/IP, так и через интерфейс RDMA, который может быть организован как подключение Infiniband или RoCE (RDMA over Converged Ethernet). О результатах тестирования такого сетевого взаимодействия вы можете почитать тут.
При этом FlexDirect позволяет использовать ресурсы GPU как только одной машине, так и разделять его между несколькими. При этом администратор может выбрать, какой объем Shares выделить каждой из машин, то есть можно приоритизировать использование ресурсов GPU.
Такая архитектура позволяет разделить виртуальную инфраструктуру VMware vSphere на ярусы: кластер GPU, обсчитывающий данные, и кластер исполнения приложений пользователей, которые вводят данные в них и запускают расчеты. Это дает гибкость в обслуживании, управлении и масштабировании.
Как многие из вас знают, в последней версии платформы виртуализации VMware vSphere 6.7 Update 1 компания VMware сделала поддержку горячей миграции vMotion для виртуальных машин, которые имеют на борту технологию vGPU в целях прямого использования ресурсов видеокарт NVIDIA.
Напомним, что ранее была введена поддержка операций Suspend/Resume для GRID, а теперь появилась и поддержка горячей миграции vMotion для машин с привязкой к карточкам NVIDIA Quadro vDWS.
Между тем, по умолчанию эта поддержка для виртуальных машин отключена, и чтобы начать пользоваться этой функцией нужно внести изменения в настройки vCenter. Если вы попробуете сделать vMotion машины с vGPU, то получите вот такую ошибку:
Migration was temporarily disabled due to another migration activity. vGPU hot migration is not enabled.
Вильям Лам написал о том, как включить поддержку vMotion в этой ситуации. Вам надо пойти в Advanced Settings на сервере vCenter и поставить там значение true на настройки vgpu.hotmigrate.enabled:
Эта настройка также рассматривается в документации вот тут. Надо отметить, что вступает в действие она сразу же, и вы можете делать не только vMotion, но и Storage vMotion любой машины (одновременно с vMotion, кстати). Помните, что для успешной работы vMotion на всех хостах ESXi должны быть карточки NVIDIA GRID и установлен соответствующий VIB-пакет.
Также установить эту настройку можно и с помощью командлета PowerCLI:
Мы много писали о рещениях NVIDIA GRID / Quadro vDWS (они используют технологии virtual GPU или vGPU), например здесь, здесь и здесь. Ранее эта технология предполагала только применение vGPU для нагрузок в виртуальных машинах, которые требовательны к графике, поэтому используют ресурсы графического адаптера в разделенном режиме.
Между тем, начиная с недавнего времени (а именно с выпуска архитектуры Pascal GPU), VMware и NVIDIA предлагают использование vGPU для задач машинного обучения (CUDA / Machine Learning / Deep Learning), которые в последнее время становятся все более актуальными, особенно для крупных компаний. С помощью этой технологии виртуальная машина с vGPU на борту может эффективно использовать библиотеки TensorFlow, Keras, Caffe, Theano, Torch и прочие.
Например, можно создать использовать профиль P40-1q vGPU для архитектуры Pascal P40 GPU, что позволит иметь до 24 виртуальных машин на одном физическом адаптере (поскольку на устройстве 24 ГБ видеопамяти).
Зачем же использовать vGPU для ML/DL-задач, ведь при исполнении тяжелой нагрузки (например, тренировка сложной нейронной сети) загружается все устройство? Дело в том, что пользователи не используют на своих машинах 100% времени на исполнение ML/DL-задач. Большинство времени они собирают данные и подготавливают их, а после исполнения задачи интерпретируют результаты и составляют отчеты. Соответственно, лишь часть времени идет большая нагрузка на GPU от одного или нескольких пользователей. В этом случае использование vGPU дает максимальный эффект.
Например, у нас есть 3 виртуальных машины, при этом тяжелая нагрузка у VM1 и VM2 пересекается только 25% времени. Нагрузка VM3 не пересекается с VM1 и VM2 во времени:
Компания VMware проводила тест для такого случая, используя виртуальные машины CentOS с профилями P40-1q vGPU, которые имели 12 vCPU, 60 ГБ памяти и 96 ГБ диска. Там запускались задачи обучения TensorFlow, включая комплексное моделирование для рекуррентной нейронной сети (recurrent neural network, RNN), а также задача распознавания рукописного текста с помощью сверточной нейронной сети (convolution neural network, CNN). Эксперимент проводился на серверах Dell PowerEdge R740 с 18-ядерным процессором Intel Xeon Gold 6140 и карточками NVIDIA Pascal P40 GPU.
Результаты для первого теста оказались таковы:
Время обучения из-за наложения окон нагрузки в среднем увеличилось на 16-23%, что в целом приемлемо для пользователей, разделяющих ресурсы на одном сервере. Для второго теста было получено что-то подобное:
Интересен тест, когда все нагрузки исполнялись в одном временном окне по следующей схеме:
Несмотря на то, что число загруженных ML/DL-нагрузкой виртуальных машин увеличилось до 24, время тренировки нейронной сети увеличилось лишь в 17 раз, то есть даже в случае полного наложения временных окон рабочих нагрузок есть некоторый позитивный эффект:
Интересны также результаты с изменением политики использования vGPU. Некоторые знают, что у планировщика vGPU есть три режима работы:
Best Effort (это исполнение задач на вычислительных ядрах по алгоритму round-robin).
Equal Share (всем дается одинаковое количество времени GPU - это позволяет избежать влияния тяжелых нагрузок на легкие машины, например).
Fixed Share (планировщик дает фиксированное время GPU на основе профиля нагрузки vGPU).
VMware поэкспериментировала с настройками Best Effort и Equal Share для тех же тестов, и вот что получилось:
С точки зрения времени исполнения задач, настройка Best Effort оказалась лучшим выбором, а вот с точки зрения использования GPU - Equal Sharing меньше грузила графический процессор:
Некоторые из вас (особенно администраторы VMware Horizon 7.5) знают, что в последней версии VMware vSphere 6.7 появилась возможность приостанавливать виртуальные машины, использующие vGPU, с высвобождением ресурсов графического адаптера под другие задачи. Ранее ресурсы графической карты возвращались платформе только при выключении виртуальной машины.
На эту тему VMware записала небольшое видео с демонстрацией данной возможности:
Для демо используются два 2 пула ресурсов: первый - под два виртуальных десктопа VMware Horizon, а второй - под две машины, использующие ресурсы vGPU для расчета моделей с помощью библиотеки машинного обучения TensorFlow.
Все 4 машины настраивают на использование политики, которая привязана к адаптеру NVIDIA Tesla P40 и позволяет использовать до половины ресурсов видеокарты. Сначала включают 2 виртуальных ПК Horizon, которые съедают всю карту, поэтому остальные две машины включить не удается. Но затем десктопы приостанавливают (Suspend), после чего машины с TensorFlow становится возможно запустить. Ну и в заключение тушат одну из машин TensorFlow, после чего успешно запускают один из виртуальных ПК Horizon (Resume).
Производитель графических адаптеров NVIDIA также записала небольшое демо своей технологии GRID для vSphere 6.7:
Здесь рассматривается несколько другой кейс. Десктоп с AutoCAD внутри ставят на паузу, после чего его обслуживают администраторы датацентра, не боясь того, что пользователь не сохранил свои данные в САПР. Затем после обслуживания десктоп запускают - и пользователь спокойно продолжает работу.
В общем, это нововведение весьма удобная и полезная штука.
Эта статья предназначена в помощь администраторам VDI, которые обновили свои хосты ESXi, оснащенные картами GRID vGPU, до vSphere версии 6.5. Как сказано Джереми Майном в этом форуме NVIDIA, vSphere 6.5 и драйвер GRID от ноября 2016 требует изменения режима GPU с «Shared» (vSGA) на «Shared Direct» (vGPU) через веб-клиент для включения поддержки режима vGPU виртуальными машинами...
Как вы знаете, в новой версии решения VMware Horizon 6.2 для виртуализации настольных ПК компания VMware сделала специальное издание VMware Horizon for Linux, позволяющее создавать инфраструктуру виртуальных десктопов на базе компьютеров с хостовой ОС Linux. Это востребовано в организациях, где такие рабочие станции используются для графического моделирования, сложных расчетов и прочих требовательных к производительности графической подсистемы нагрузок.
Напомним, что еще с версии Horizon 6.2 полностью поддерживались режимы Virtual Shared Graphics Acceleration (vSGA), Virtual Dedicated Graphics Acceleration (vDGA) и NVIDIA GRID vGPU на базе GRID 2.0 для Linux-десктопов:
Дистрибутив Linux
Режимы работы 3D-графики
vSGA
vDGA
vGPU
Red Hat Enterprise Linux 6.6 Workstation x86_64
Нет
Horizon 6.1.1 или более поздний
Требует адаптера NVIDIA M60, GRID 2.0, а также Horizon 6.2 или более поздний
Red Hat Enterprise Linux 7.1 Workstation x86_64
Horizon 6.2 или более поздний
Нет
Требует адаптера NVIDIA M60, GRID 2.0, а также Horizon 6.2 или более поздний
Совсем недавно компания VMware выпустила VMware Horizon 6.2.1, где в плане поддержки Linux-десктопов появилось еще несколько нужных новых возможностей:
1. Clipboard Redirection (Copy / Paste).
Теперь в Linux-десктопах появилось перенаправление клавиатуры, которое позволяет копировать и вставлять из хостового ПК в виртуальный и обратно текст с форматированием, а также картинки. Естественно, в целях безопасности можно эту функцию отключить в файле конфигурации /etc/vmware/config (см. документ "Setting Up Horizon 6 for Linux Desktops").
2. Single Sign-On.
Теперь в Linux-ПК появилась поддержка SSO, позволяющая пользователю хостового устройства не вводить учетные данные при логине в свой виртуальный ПК Linux, который интегрирован со службами Active Directory через Open LDAP. Эти возможности поддерживаются для Horizon Client под Mac, Windows и Linux. На данный момент функция доступна только для ПК Red Hat Enterprise Linux 6.6 Workstation x86_64 и CentOS 6.6 x86_64.
3. Smart Card Authentication.
Аутентификация через смарт-карты в виртуальном ПК требуется во многих государственных и частных организациях с соответствующими регулирующими процедурами. Для аутентификации поддерживаются карты типа Personal Identity Verification (PIV) и Common Access Cards (CAC) с дистрибутивом Red Hat Enterprise Linux 6.6 Workstation x86_64.
4. Kerberos Authentication
После установки View Agent в виртуальный ПК Linux вы можете выбрать тип аутентификации Kerberos в дополнение к уже имеющейся MD5 digest authentication.
5. Consolidated Client Environment Information
До VMware Horizon 6.2.1 вся информация о пользовательском окружении (имя хоста, IP-адрес и прочее) записывалась в стандартный лог-файл, содержащий отладочную информацию. Это было неудобно, так как файл большой, и выуживать из него нужные данные было тяжело. Теперь для этого есть отдельный файл /var/log/vmware/Environment.txt, который поможет решать проблемы при настройке инфраструктуры виртуальных ПК.
Получить VMware Horizon 6.2.1 for Linux можно двумя способами:
1. Купить лицензию VMware Horizon 6 Enterprise Edition, которая содержит все необходимое для построения VDI-инфраструктуры, в том числе на Linux-платформе.
2. Использовать специализированное издание Horizon 6 for Linux standalone, которое можно скачать по этой ссылке.
Мы уже писали о том, что последней версии решения для виртуализации настольных ПК VMware Horizon View 6.2 есть поддержка режима vGPU. Напомним, что это самая прогрессивная технология NVIDIA для поддержки требовательных к производительности графической подсистемы виртуальных десктопов.
Ранее мы уже писали про режимы Soft 3D, vSGA и vDGA, которые можно применять для виртуальных машин, использующих ресурсы графического адаптера на стороне сервера.
Напомним их:
Soft 3D - рендеринг 3D-картинки без использования адаптера на основе программных техник с использованием памяти сервера.
vDGA - выделение отдельного графического адаптера (GPU) одной виртуальной машине.
vSGA - использование общего графического адаптера несколькими виртуальными машинами.
Режим vSGA выглядит вот так:
Здесь графическая карта представляется виртуальной машине как программный видеодрайвер, а графический ввод-вывод обрабатывается через специальный драйвер в гипервизоре - ESXi driver (VIB-пакет). Команды обрабатываются по принципу "first come - first serve".
Режим vDGA выглядит вот так:
Здесь уже физический GPU назначается виртуальной машине через механизм проброса устройств DirectPath I/O. То есть целый графический адаптер потребляется виртуальной машиной, что совсем неэкономно, но очень производительно.
В этом случае специальный драйвер NVIDIA GPU Driver Package устанавливается внутри виртуальной машины, а сам режим полностью поддерживается в релизах Horizon View 5.3.х и 6.х (то есть это давно уже не превью и не экспериментальная технология). Этот режим работает в графических картах K1 и K2, а также и более свежих адаптерах, о которых речь пойдет ниже.
Режим vGPU выглядит вот так:
То есть встроенный в гипервизор NVIDIA vGPU Manager (это тоже драйвер в виде пакета ESXi VIB) осуществляет управление виртуальными графическими адаптерами vGPU, которые прикрепляются к виртуальным машинам в режиме 1:1. В операционной системе виртуальных ПК также устанавливается GRID Software Driver.
Здесь уже вводится понятие профиля vGPU (Certified NVIDIA vGPU Profiles), который определяет типовую рабочую нагрузку и технические параметры десктопа (максимальное разрешение, объем видеопамяти, число пользователей на физический GPU и т.п.).
vGPU можно применять с первой версией технологии GRID 1.0, которая поддерживается для графических карт K1 и K2:
Но если мы говорим о последней версии технологии GRID 2.0, работающей с адаптерами Tesla M60/M6, то там все устроено несколько иначе. Напомним, что адаптеры Tesla M60 предназначены для Rack/Tower серверов с шиной PCIe, а M6 - для блейд-систем различных вендоров.
Технология NVIDIA GRID 2.0 доступна в трех версиях, которые позволяют распределять ресурсы между пользователями:
Характеристики данных лицензируемых для адаптеров Tesla изданий представлены ниже:
Тут мы видим, что дело уже не только в аппаратных свойствах графической карточки, но и в лицензируемых фичах для соответствующего варианта использования рабочей нагрузки.
Каждый "experience" лицензируется на определенное число пользователей (одновременные подключения) для определенного уровня виртуальных профилей. Поэтому в инфраструктуре GRID 2.0 добавляется еще два вспомогательных компонента: Licensing Manager и GPU Mode Change Utility (она нужна, чтобы перевести адаптер Tesla M60/M6 из режима compute mode в режим graphics mode для работы с соответствующим типом лицензии виртуальных профилей).
Обратите внимание, что поддержка гостевых ОС Linux заявлена только в последних двух типах лицензий.
На данный момент сертификацию драйверов GRID прошло следующее программное обеспечение сторонних вендоров (подробнее об этом тут):
Спецификации карточек Tesla выглядят на сегодняшний день вот так:
Поддержка также разделена на 2 уровня (также прикрепляется к лицензии):
Руководство по развертыванию NVIDIA GRID можно скачать по этой ссылке, ну а в целом про технологию написано тут.
На прошедшей совсем недавно конференции Citrix Synergy 2015 компания Citrix сделала массу интересных анонсов. Среди них - объявление о выходе серверной платформы виртуализации Citrix XenServer v6.5 SP1, которая уже сейчас доступна для загрузки.
Напомним, что прошлая версия XenServer 6.5 вышла в начале этого года. Ну а в пакете обновления SP1 мы получили следующие новые возможности:
Увеличено число виртуальных машин на хост - до 1000.
Полностью доделана поддержка технологий Intel GVT-d (проброс GPU в ВМ) для Windows-машин.
Поддержка проброса GPU nVIDIA в виртуальные машины с гостевой ОС Linux. Здесь была проделана действительно большая работа совместно с nVIDIA, теперь в виртуальной машине можно комфортно работать с приложениями, задействующими GPU напрямую. Кроме того, драйверы vGPU теперь ставятся через GUI, безо всяких команд CLI.
Добавлена поддержка контейнеров Docker - теперь можно запускать контейнеры в ВМ и управлять их жизненным циклом через XenCenter.
Поддержка новых гостевых ОС и их обновлений: Windows 10 (пока неофициальная) и CoreOS.
Улучшения XenCenter: возможность просмотра использования кэша на чтение на уровне отдельной ВМ.
Продолжаем рассказывать о новых возможностях платформы виртуализации VMware vSphere 6, выход которой ожидается в самое ближайшее время. Сегодня мы расскажем о поддержке режима vGPU, который позволяет предоставить ресурсы видеокарты (GPU) напрямую сразу нескольким виртуальным машинам (режим vGPU). Напомним, что эта технология уже довольно давно поддерживается в продуктах Citrix (а также в решении RemoteFX от Microsoft), а ее поддержка в платформах VMware была анонсирована в прошлом году на VMworld 2014.
Технология vGPU от NVIDIA при использовании с продуктами VMware подразумевает использование в качестве платформы VMware vSphere 6, а в качестве средства управления виртуальными ПК - VMware Horizon 6 (для этого выйдет специальное обновление с версией 6.1).
vGPU поддерживается для графических адаптеров NVIDIA GRID K1 и K2, для каждой из которых определены 4 профиля для виртуальных ПК, которые используют ресурсы видеокарты. Вот таблица этих профилей:
Всего есть три типа пользователей:
Designer - человек, который использует очень требовательные к графическим ресурсам приложения (не только дизайнеры, но и пользователи CAD-приложений).
Power User - человек, использующий подобные приложения время от времени.
Knowledge Worker - пользователь со сравнительно небольшой нагрузкой на ресурсы видеокарты.
Важно, что в рамках одного физического GPU видеокарты можно использовать только профили одного типа. Взгляните на картинку - как можно, а как нельзя:
Опишем здесь вкратце процедуру настройки использования vGPU с VMware vSphere 6, которая приведена в vGPU Deployment Guide (документ еще не вышел).
Для настройки vGPU необходимы следующие компоненты:
VMware vCenter 6.0
VMware ESXi 6.0
VMware Horizon View 6.1
NVIDIA GRID vGPU Manager
Потребуются также настройки BIOS на серверах (для каждого вендора свои). Вот, например, конфигурация Cisco:
CPU Performance: выставить в Enterprise или High Throughput.
Energy Performance: выставить в Performance.
PCI Configuration: выставить MMCFG BASE в 2 GB и Memory Mapped I/O above 4GB: Disabled.
VGA Priority: выставить в Onboard VGA Primary.
Далее нужно развернуть на хостах компонент NVIDIA vGPU Manager, который создает связь между GPU видеокарты и виртуальной машиной. Устанавливается он как обычный VIB-пакет:
После того, как NVIDIA vGPU Manager настроен на хост-серверах ESXi, нужно подготовить виртуальные машины. Делается это через vSphere Web Client. Выберем аппаратные характеристики ВМ в зависимости от типа рабочей нагрузки:
Затем в настройках ВМ нужно добавить Shared PCI Device:
Выбираем тип NVIDIA GRID vGPU и профиль в соответствии с таблицей, приведенной в начале статьи:
Обратите внимание, что нужно зарезервировать память для виртуальных машин, иначе их просто нельзя будет запустить. То есть, кнопку "Reserve all memory" нужно нажать обязательно. Кроме того, для машин, использующих vGPU, не поддерживаются такие технологии как vMotion, HA, снапшоты - то есть, машина полностью привязана к хосту ESXi.
После этого в виртуальном ПК можно устанавливать гостевую ОС (поддерживается Windows 7 и более поздние версии). Затем нужно установить NVIDIA GRID driver (после этого неплохо бы сделать из такой машины шаблон для дальнейшего ускоренного развертывания новых десктопов):
Кстати, в диспетчере устройств в гостевой ОС виртуального ПК можно посмотреть на драйвер графического адаптера:
Затем нужно соответствующим образом настроить пул виртуальных ПК в VMware Horizon View. Просто указываем протокол PCoIP и тип 3D-рендера NVIDIA GRID VGPU:
Вот, в принципе, и все. После этого виртуальные машины готовы к работе с vGPU в рамках пула виртуальных ПК.
Вчера компания Citrix объявила о выпуске обновленной версии своей серверной платформы виртуализации Citrix XenServer 6.5 (кодовое название Creedence). Напомним, что о новых возможностях этой версии мы писали еще в июле прошлого года (тогда еще предполагалось, что выйдет сразу версия 7.0).
Итак, новые возможности XenServer 6.5 (полный список тут, а Release Notes - вот тут):
64-битный домен dom0 (то есть, теперь все 64-битное)
Новая версия ядра Linux 3.10
Гипервизор Xen версии 4.4
Функции Workload balancing (WLB), предоставляемые отдельным виртуальным модулем WLB appliance
Обновленный виртуальный коммутатор Open virtual switch 2.1.x
Как мы уже писали вот тут, компания NVIDIA на прошедшем VMworld US 2014 рассказала о скорой полноценной поддержке технологии vGPU на платформе VMware Horizon View для виртуальных ПК с интенсивными графическими нагрузками.
Для хромбуков появится технология VMware BLAST Performance, которая обеспечит максимальную производительность 3D-графики. Хромбуки на базе NVIDIA Tegra K1, такие, как Acer Chromebook 13, первыми получат поддержку это передовой технологии.
Теперь вот появился небольшой обзор о том, как это будет работать на хромбуках, и премуществах технологии (выглядит впечатляюще):
Также есть небольшое видео с VMworld о сотрудничестве VMware и NVIDIA:
Ну и, наконец, демонстрация графических возможностей железа NVIDIA при работе на платформе VMware:
Ну и для тех, кому не терпится опробовать адаптеры NVIDIA и режим vGPU совместно с платформой VMware в действии, есть вот такой ресурс - Early Access Program.
На прошлой неделе закончилась конференция VMworld 2014 - событие номер один в сфере виртуализации, а мы так и не рассказали о сделанных компанией VMware анонсах в сфере инфраструктурных технологий для конечных пользователей (End User Computing, EUC). Исправляем это упущение.
Итак, во-первых, на конференции был выпущен VMware Workspace Suite - единая платформа для управления пользовательскими данными, приложениями, окружениями и устройствами.
По-сути, это комплект из трех сущностей:
VMware Horizon 6 - законченное решение для виртуализации приложений (VMware ThinApp), настольных ПК (VMware View) и абстракции уровней физических ПК (VMware Mirage), а также средства для федерации приложений (VMware Workspace). То есть, это набор программных продуктов, устанавливаемых на площадке клиента.
VMware AirWatch EMM (Mobility Management Suite) - это решение, обеспечивающее доставку пользовательских окружений (приложения и данные) из корпоративной инфраструктуры на мобильные устройства. Напомним, что компанию AirWatch VMware купила в самом начале этого года. У Citrix уже есть аналогичное решение, включающее в себя подобные возможности - Citrix Workspace Services (CWS).
Secure Content Locker - средство от компании AirWatch для обеспечения безопасности передачи данных в корпоративной инфраструктуре, а также их шифрования.
Комплект VMware Workspace Suite доступен на сайте VMware уже сегодня.
Во-вторых, было анонсировано решение VMware Horizon DaaS - возможность получения виртуального ПК в аренду (Desktop-as-a-Service) на платформе VMware vCloud Air.
Здесь будет несколько основных моментов:
Экспансия в Европу. Сервис будет доступен в UK через датацентр в Слау (Slough).
Сервис Horizon DaaS Enterprise будет предоставлять виртуальные ПК с 4 vCPU, 8 ГБ памяти и 120 ГБ дисками.
В Horizon DaaS можно будет получать и виртуальные приложения через инфраструктуру RDS.
Сервисы DaaS будут поддерживать помесячные контракты.
В-третьих, появится технология оригинальной доставки виртуализованных приложений CloudVolumes. О ней мы уже писали вот тут, поэтому подробнее останавливаться не будем.
В-четвертых, уже скоро мы увидим полноценную поддержку vGPU от NVIDIA на платформе VMware Horizon View для виртуальных ПК с интенсивными графическими нагрузками. NVIDIA GRID vGPU – это самая передовая на сегодняшний день технология для распределения ресурсов GPU между несколькими виртуальными рабочими столами. Напомним, что ранее эта технология была доступна только с решением Citrix XenDesktop.
Для хромбуков появится технология VMware BLAST Performance, которая обеспечит максимальную производительность 3D-графики. Хромбуки на базе NVIDIA Tegra K1, такие, как Acer Chromebook 13, первыми получат поддержку это передовой технологии.
Все это появится в 4 квартале этого года, а пока вот тут можно записаться на ранний доступ к программе тестирования.
Ну и, в-пятых, платформа AirWatch Enterprise Mobility Management Platform будет интегрирована с решением Mobile App Management от SAP Mobile Secure. Об этом подробнее написано тут.
На днях компания Citrix выпустила техническое превью решения для виртуализации настольных ПК предприятия Citrix XenDesktop 7.1.
Основная цель релиза XenDesktop 7.1, уже доступного для загрузки - поддержать новые версии операционных систем Microsoft Windows 8.1 и Windows Server 2012 R2, которые уже скоро станут доступными (по традиции - в октябре), а корпоративные заказчики уже сейчас хотят попробовать их в VDI-среде.
Если говорить конкретнее, то XenDesktop 7.1 позволит попробовать следующие новые возможности этих ОС:
Использовать гипервизор Hyper-V 3 с поддержкой локальных хранилищ для служб Machine Creation Services (MCS).
Перенаправление Flash-графики для ОС Windows 8.1, Windows 8, Windows Server 2012 R2 и 2012 (непонятно, правда, зачем оно нужно серверным системам).
Данный релиз XenDesktop 7.1 может использовать Windows 8.1 в качестве гостевой ОС для виртуальных ПК и ОС Windows Server 2012 R2 для развертывания управляющих компонентов решения. Доступен он только для пользователей XenDesktop с активной подпиской (Subscription Advantage).
Кроме того, была анонсирована поддержка платформой Citrix XenServer технологии NVIDIA GRID, о которой мы уже не раз писали (например, тут и тут). Официальный релиз поддержки технологии как раз совпал с выпуском превью XenDesktop 7.1, являющегося основой VDI-решений с поддержкой технологии NVIDIA (vGPU). Для XenDesktop 7.0 такой поддержки нет и, по всей видимости, не будет.
С использованием технологии XenServer hardware GPU sharing (поддерживается в XenServer 6.2) становится доступным применение виртуальных графических адаптеров (vGPU) в виртуальных машинах, напрямую использующих ресурсы специального аппаратного обеспечения от NVIDIA и осуществляющих интенсивную обработку 3D-графики. На абы-каком оборудовании использовать эту технологию не получится, поэтому предварительно советуем прочитать вот эту статью от Citrix.
Технология NVIDIA GRID доступна как для Citrix XenServer, так и для VMware vSphere / ESXi (основа VDI-решения VMware View), однако Citrix заявляет, что использует нативные драйверы NVIDIA, в то время как VMware - свои собственные (режимы vSGA и vDGA - подробнее об этом тут):
Ограниченная функциональность режимов vSGA и vDGA у VMware vSphere заключается в следующем:
В общем-то логично, что NVIDIA тут делает ставку на лидера рынка виртуальных ПК - Citrix, однако мы ожидаем и полноценной поддержки VMware vSphere / View уже в ближайшем будущем.
Надо отметить, что технология vGPU от Citrix пока работает для гостевых ОС Windows 7 и Windows Server 2008 R2, поэтому с новой Windows 8.1 попробовать ее пока не получится. Ну и добавим также, что для Hyper-V на данный момент нет аналогов механизмам виртуализации и проброса GPU в виртуальные машины.