Рис. 1. Элементы поперечного набора крыла (нервюры) в интерфейсе CAD – Computer-Aided Design
Графика на удаленных АРМ? Перенос 3D в VDI? А имеет ли это смысл? Такие вопросы чаще всего задают, когда слышат обсуждения идей создания автоматизированных рабочих мест для конструкторов, дизайнеров и всех других специалистов, имеющих дело с трехмерными изображениями. В этой статье мы говорим о проблемах построения именно удаленных графических АРМ, о возможностях и перспективах. Для начала перечислим причины, по которым руководители и ИТ-специалисты уже давно начали задумываться об их создании.
Отвязка от физического рабочего места, доступность из любой точки. Промышленные предприятия – это распределенные производственные площади, как правило, десятки корпусов, расположенных на значительной территории. В их различных «точках» необходимо с определенной периодичностью редактировать те или иные изделия в виде 3D-моделей, сборок, или хотя бы иметь возможность просматривать их. При этом иметь локальные графические АРМ во всех таких местах затруднительно, а подчас даже невозможно. Это относится, например, к цехам, где обстановка меняется довольно быстро, а окружающая среда для работы стационарных АРМ может оказаться слишком агрессивной.
Кроме того, такие предприятия зачастую работают совместно, образуя альянсы, или имеют в своем составе несколько филиалов. Таким образом, временное создание АРМ для совместной работы внутри корпоративной сети оказывается очень актуальным как во время демонстраций, всевозможного рода обучений, так и при оперативном внесении изменений в проекты.
Централизованное управление и стандартизация. При наличии большого числа типовых удаленных рабочих мест их можно легко конфигурировать, изменяя лишь один типовой образ, с которого создаются все виртуальные АРМ такого типа. Не нужно отслеживать необходимое и наличествующее количество локальных вычислительных ресурсов на АРМ по всему предприятию – они сосредоточены в центре обработки данных (ЦОД).
Темой создания удаленных графических рабочих мест занимаются достаточно давно, и есть немало решений по их реализации. Встает законный вопрос: почему при таком обилии существующих технологий нет их широкого и повсеместного использования?
Оперативное и гибкое перераспределение ресурсов, например, при их нехватке на одних виртуальных АРМ и фактическом избытке на других.
Универсальность в доступе и клиентах. Как известно, среды VDI позволяют использовать для доступа к ним широкий диапазон клиентских устройств, начиная со стационарных стандартных ПК и заканчивая мобильными устройствами – ноутбуками, планшетами и смартфонами.
Более полное использование аппаратных ресурсов. За счет возможностей перераспределения использование мощностей становится более оптимальным и полным. Если ресурсы локального АРМ при отсутствии оператора будут простаивать, то ресурсы на сервере для виртуальных рабочих мест смогут быть задействованы под другие цели.
Использование облаков. Это наиболее актуально для ИТ-компаний, предоставляющих сервисы в аренду. При наличии соответствующих возможностей предоставление графических рабочих станций в виде сетевых облачных сервисов становится реальностью.
А это возможно?
Если набрать в поисковой системе словосочетания VirtualGL, RemoteFX, Remote Graphics Services, HDX 3D Pro, PCoIP Remote Workstation, да даже что-то более общее, можно увидеть, что темой создания удаленных графических рабочих мест занимаются уже достаточно давно и есть немало решений по их реализации. Встает законный вопрос: почему при таком обилии существующих технологий нет их широкого и повсеместного использования? Попробуем дать на него обстоятельный ответ.
Либо кино, либо мороженое
Каковы необходимые компоненты и свойства системы для эффективной поддержки удаленных АРМ с 3D-графикой? Во-первых, разделяемый видеоадаптер. Если видеоадаптер на стороне сервера может разделяться между рабочими местами, это прежде всего дает существенные возможности по повышению плотности АРМ на сервер, а также, по аналогии с разделением его ресурсов, позволяет более полно задействовать ресурсы GPU.
Во-вторых, должна быть поддержка полнофункциональных родных видеодрайверов со стороны гостевых ОС. Как известно, приложения 3D вообще и САПР (системы автоматизированного проектирования) в частности рассчитаны на работу с графическими подсистемами с использованием специализированных API (Application Programming Interface) стандартов OpenGL, DirectX, а также расширенных функций тех или иных серий видеоадаптеров. Поэтому для эффективной работы САПР крайне желательно иметь хорошую поддержку этих стандартов в драйверах, а в идеале добиться возможности использования родных видеодрайверов производителя GPU, таких же, что используются при локальной установке видеоадаптера, и прозрачности доступа к аппаратным ресурсам адаптера со стороны гостевой ОС.
Но эти два требования по сути своей противоречивы, и их невозможно выполнить одновременно. Поэтому существовавшие технологии удовлетворяли либо одному из них, либо другому. Ниже подробнее рассмотрим некоторые из них.
Citrix Multi GPU Passthrough и HDX 3D Pro
Если мы пытаемся обеспечить предоставление видеоадаптера на уровне железа – так называемый «проброс» PCI-устройства в виртуальную машину (ВМ), у нас автоматически отпадает возможность параллельно отдавать его в распоряжение другим ВМ. И в этом случае мы не можем иметь больше виртуальных машин 3D, чем установлено видеоадаптеров в сервере.
С другой стороны, в этом случае минимизируются проблемы с производительностью видеоподсистемы и совместимостью решений с приложениями 3D. Такой способ организации работы с графической подсистемой успешно используется, примерами могут выступать такие технологии, как Citrix HDX 3D Pro или VMware vDGA.
создание АРМ для совместной работы актуально как во время всевозможного рода обучений, так и при оперативном внесении изменений в проекты
Решения на базе Citrix в настоящий момент являются самыми обкатанными и реально применяющимися в промышленных компаниях, правда, за рубежом. Видеоадаптеры пробрасываются в виртуальные машины при помощи технологии Citrix Multi-GPU Passthrough, поддерживаемой гипервизором Citrix XenServer (рис. 2). Multi-GPU Passthrough, в свою очередь, эксплуатирует возможности аппаратной виртуализации от Intel – VT-d (Virtualization Technology for Directed I/O). Таким образом, средствами VDI от Citrix виртуальным машинам назначаются физические адаптеры GPU, находящиеся на сервере, и для гостевых ОС работа с GPU осуществляется напрямую, через родные драйверы производителей видеоадаптеров.
Рис. 2. Среда VDI Citrix XenDesktop с технологией HDX 3D Pro
Разделение видеоадаптера
Если же мы пытаемся разделить ресурсы обычного GPU, установленного на сервере, для этого надо наделять такими функциями гипервизор, например, при помощи специальных драйверов. Однако, как уже говорилось выше, в этом случае автоматически исчезает возможность пользоваться теми же видеодрайверами от производителя GPU со стороны гостевых ОС, что и при локальном доступе, т.к. мы не работаем напрямую с устройством. Таким образом, приходится полагаться на поддержку графических возможностей спецдрайверами для виртуальных сред.
Этот способ тоже используется в ряде решений на базе таких технологий, как Microsoft RemoteFX или недавно появившейся VMware vSGA. Уже достаточно взрослая Microsoft RemoteFX обладает недостатками, присущими системам с неродными видеодрайверами: удовлетворительно поддерживается только стандарт DirectX, в то время как поддержка OpenGL весьма ограничена. Это, соответственно, ограничивает и число приложений, работающих с технологией. Кроме того, известны и проблемы с производительностью при совместном доступе с виртуальных машин. В результате основная область применения технологии – рабочие места с так называемым lightweight 3D, типичным примером которого может быть интерфейс Windows Aero.
NVIDIA VGX
Организацией виртуальных машин для 3D не так давно заинтересовалась NVIDIA. Как производитель видеоадаптеров, компания могла бы написать специализированные драйверы под гипервизоры и гостевые ОС с поддержкой всех надлежащих для работы САПР функций, что было бы немало. Однако она пошла дальше и чуть более года назад начала развивать технологию NVIDIA VGX (сейчас – NVIDIA GRID), включающую 3 основных компонента – 1 аппаратный и 2 программных (см. рис. 3):
Рис. 3. Архитектура NVIDIA VGX (GRID)
- специализированный многокристальный адаптер для серверов (на данный момент уже вышел);
- уровень виртуализации со стороны гипервизора (NVIDIA Hypervisor);
- спецификация драйвера гостевой ОС (User Selectable Machine, USM).
«Железная» часть представляет собой специализированные GPU – адаптеры двух типов: K1 и K2. Модификация K1 имеет 4 кристалла GPU на один адаптер, заявлена поддержка до 100 виртуальных пользователей на одну плату. K2 имеет всего 2 кристалла на один адаптер и меньше видеопамяти. Однако кристаллы существенно мощнее и имеют больше графических ядер CUDA. Этот адаптер предназначен для самых ресурсоемких задач 3D. K1 и K2 уже используются другими вендорами – партнерами NVIDIA – в их решениях.
Технология NVIDIA GRID сулит хорошие перспективы и совмещает несовместимые условия. Во-первых, их видеоадаптер – разделяемый, он конструировался специально для использования в виртуальных средах. Во-вторых, можно использовать родные драйверы для гостевых ОС.
Кроме всего прочего, существенно оптимизировано взаимодействие через сетевую подсистему. Суть заключается в наличии аппаратного кодека буферов кадров для удаленных экранов и возможности передачи их напрямую в сеть, минуя манипуляции по кодированию этих данных в основном ОЗУ, с использованием процессорных ресурсов сервера, как было бы в случае обычного видеоадаптера. Это позволяет снизить накладные расходы на копирование и кодирование данных, высвобождает системные ресурсы и позволяет, в итоге, работать в более медленных сетевых средах.
Далее кратко рассмотрим положение вещей у 2 партнеров NVIDIA – Citrix и VMware.
Наряду с существующей технологией проброса физических адаптеров в виртуальные среды – HDX 3D Pro, Citrix совсем недавно, в начале октября 2013 года, объявила о полной поддержке технологии NVIDIA GRID – NVIDIA vGPU Support (см. рис. 6). Компания представила ее в виде Early Access Program Software, т.е. пока не для производственных систем.
Такие туманные формулировки, как «NVIDIA Hypervisor», «User Selectable Machines», стали приобретать конкретные очертания. Если вкратце, система теперь содержит на стороне гипервизора XenServer компонент NVIDIA vGPU Manager. Он может разбивать адаптеры K1, K2 на множество подадаптеров (vGPU), предоставляемых впоследствии виртуальным машинам. Адаптеры vGPU могут быть нескольких типов, в зависимости от потребностей. Каждый такой тип поддерживается обычным драйвером NVIDIA со стороны гостевой ОС. Компонент NVIDIA vGPU Manager управляется из среды VDI, и таким образом видеоадаптеры назначаются виртуальным рабочим столам.
Рис. 4. Характеристики NVIDIA K1
Рис. 5. Характеристики NVIDIA K2
Рис. 6. Архитектура Citrix – NVIDIA vGPU Support
Основное отличие от программного разделения обычного GPU состоит в том, что в данном случае виртуальная машина имеет прямой доступ к части ресурсов, отведенных ей на адаптере NVIDIA, при этом используется стандартный видеодрайвер, поддерживающий в числе остальных адаптеров vGPU разных типов. Отличие же от прямого проброса GPU, очевидно, состоит в том, что в данном случае пробрасывается определенная его часть, отведенная для работы vGPU Manager. Возможности решения дают реальный шанс строить на имеющемся серверном оборудовании среды VDI с числом пользователей 3D, исчисляющихся сотнями.
А что же VMware? Наиболее проработанной на данный момент технологией виртуализации 3D у компании является vSGA (Virtual Shared Graphics Adapter). В конце 2012 года VMware представила решение vDGA (Virtual Dedicated Graphics Adapter). Хотя эти технологии и не являются полным отражением идеи NVIDIA VGX, они обе поддерживают работу с адаптерами NVIDIA K1 и K2. vSGA (см. рис. 7) является технологией программно-разделяемого адаптера с соответствующими спецдрайверами под VMware, vDGA представляет собой проброс устройства виртуальной машине на уровне кристаллов GPU, рассмотренный выше.
Рис. 7. Архитектура vSGA
Мы, предполагая будущее нарастание интереса к средам VDI для 3D, двигаемся навстречу подобным технологиям. За минувший год наша компания провела тестирование таких решений, как Citrix HDX 3D Pro, VMware vSGA, VMware vDGA с видеоадаптерами NVIDIA Quadro 2000 и NVIDIA VGX K2, на серверах HP, Dell и Supermicro.
Рис. 8. Тестирование САПР Siemens NX на нашем демо-стенде – моделирование панели фюзеляжа
Полученный опыт позволяет нам реализовывать проекты с использованием широкого спектра технологий для построения удаленных рабочих мест 3D. Такие проекты могут подразумевать создание на стороне компании наряду со средой VDI, находящейся в промышленной эксплуатации, небольшой пилотной зоны для обкатки новых технологий VDI с 3D-графикой с перспективой их последующего перевода в промышленную эксплуатацию.
В данный момент мы реализуем проект по построению среды виртуальных АРМ в крупной российской авиастроительной компании. В качестве основы для VDI планируется VMware View, возможно, будет также реализована подсистема виртуальных рабочих столов с 3D-графикой, базирующейся на технологии VMware vSGA.