Для пользователей графических приложений (САПР, трехмерное моделирование, графические редакторы и т. п.) до недавнего времени работа в облаках была фантазией, и основная причина этого — необходимость конкретной дискретной графической карты на компьютере, где выполняется приложение. Между тем перенос графических приложений в облачную инфраструктуру может обеспечить экономию вычислительных ресурсов, защиту интеллектуальной собственности, упростить создание территориально распределенных проектных команд и создать предпосылки для аутсорсинга вычислительных мощностей.
Экономия вычислительных ресурсов достигается за счет совместного использования графических ресурсов несколькими пользователями. Очевидно, что нагрузка, создаваемая на графическую подсистему разными пользователями, неодинакова и неравномерна во времени, поэтому более эффективно вместо покупки каждому пользователю рабочей станции приобрести мощный графический сервер и обеспечить его совместное использование. При этом крайне желательно было бы обеспечить квотирование ресурсов для разных групп пользователей (эта задача уже давно решена для центрального процессора, оперативной памяти, дисковой подсистемы и сетевых карт). Кроме того, аутсорсинг вычислительных мощностей для графических приложений позволяет еще снизить вложения в дорогостоящие графические рабочие станции. Появление таких средств разделения графических ресурсов, как виртуализация, протоколы удаленного доступа к графическим приложениям и т. п., позволяет сервис-провайдерам предоставлять сегодня «тяжелые» графические приложения в аренду.
Перенос графических приложений в облако дает возможность упростить и ужесточить технический контроль за передачей информации, являющейся интеллектуальной собственностью, — вся обработка осуществляется в рамках защищенного контура без привлечения компьютеров пользователей. Способность защищать и контролировать передачу интеллектуальной собственности, создаваемой как штатными, так и временными сотрудниками, дает предприятиям возможности создания территориально распределенных проектных команд.
Перенос графических приложений в облака требует решения следующих задач:
- разделение графического процессора несколькими пользователями;
- доставка 2D/3D-рабочего стола пользователям;
- обеспечение комфортной работы в режиме удаленного доступа;
- перенос графических рабочих станций в центры обработки данных.
Для ряда наших клиентов, использующих САПР и PLM-системы, сегодня стала актуальной задача организации удаленной работы для членов проектных контрактных команд, с обеспечением защиты интеллектуальной собственности и без снижения производительности. Решение такой задачи потребовало выполнения тестирования различных технологий, используемых для переноса графических приложений в облака.
Разделяемый графический процессор
Для разделения графического процессора (GPU) несколькими пользователями применяются средства виртуализации: Microsoft Remote FX + Microsoft Hyper-V, Citrix XenServer 6, VMware ESXi и Parallels Workstation Extreme.
Технология Microsoft Remote FX предназначена для расширения возможностей виртуальных рабочих столов, создаваемых средствами Microsoft Hyper-V и Microsoft Remote Desktop Services. Она предоставляет возможность использования в виртуальной рабочей станции приложений на базе Microsoft Silverlight и Adobe Flash, графических 3D-приложений (прежде всего на базе Microsoft DirectX), USB-устройств и приложений для воспроизведения аудио и видео. Доступ виртуальной машины к вычислительным ресурсам графического процессора осуществляется через драйвер виртуального 3D-адаптера, поддерживающего интерфейсы Microsoft DirectX 9 и OpenGL 1.1, а также некоторые функции OpenGL 1.2. Объем видеопамяти виртуального адаптера равен 320 Мбайт.
Ямы на пути к облакам
Полного перехода всех корпоративных систем в облака в обозримом будущем не произойдет, однако актуальна миграция приложений из существующей инфраструктуры к гибридным облакам. Как может происходить такой переход? Сергей Халяпин |
Для функционирования RemoteFX хост должен иметь процессор и набор системной логики, поддерживающие технологию виртуализации Intel VT-d или AMD IOMMU. Необходим также графический адаптер с поддержкой DirectX 9.0c и DirectX 10.0, причем если на хосте устанавливается несколько GPU, то они должны быть идентичными. Суммарный объем видеопамяти, выделенной виртуальным машинам, не должен превышать суммарного объема видеопамяти GPU, установленной на хосте. На хосте должна быть операционная система Windows Server 2008 R2 Service Pack 1, а доступ к виртуальному рабочему столу может осуществляться только по протоколу RDP 7.1. В качестве ОС виртуальной машины поддерживается только Windows 7 Service Pack 1. На экспериментальном стенде, построенном на базе двух карт Tesla M2070, нам удалось запустить тест производительности DirectX 3DMark 2006, и не возникло проблем с запуском САПР Siemens NX и Dassault Systems CATIA. Тест профессиональной графики Specviewperf 11, использующий OpenGL, не выполнился.
Citrix XenServer 6 позволяет добавлять в виртуальную машину физический графический адаптер с использованием технологий Intel VT-d и AMD IOMMU. При этом гипервизор привносит дополнительный слой абстракции в управление виртуальными машинами, объединяя идентичные GPU в группу и беря на себя управление выделением конкретного физического GPU конкретной виртуальной машине. Операционная система виртуальной машины распознает оригинальный физический GPU и использует драйверы производителя. Поддержка графических API Microsoft DirectХ и OpenGL определяется поддержкой соответствующих API в драйверах. Следует также сказать, что в данном случае поддерживаются и API, предназначенные для реализации графических вычислений общего назначения, причем поддерживаются как универсальные интерфейсы (OpenCL, Microsoft DirectCompute), так и фирменные (ATI Stream, nVidia CUDA).
VMware ESXi 5.0 предоставляет возможность использования GPU в виртуальной среде путем организации прямого доступа к физическому GPU с использованием технологий Intel VT-d или AMD IOMMU. При этом поддерживаются все графические и вычислительные API, которые реализованы в оригинальных драйверах экспортируемой в виртуальную машину видеокарты. Наши тесты показали, что производительность GPU в виртуальной машине практически не меняется по сравнению с производительностью на физическом компьютере. Кроме того, VMware ESXi дает возможность добавить виртуальный 3D-адаптер в конфигурацию виртуальной машины. Такой адаптер поддерживает OpenGL 2.1. Максимальный объем видеопамяти виртуального адаптера равен 128 Мбайт, а доступ к виртуальному рабочему столу 3D осуществляется по протоколу PC-over-IP. В качестве операционной системы виртуальной машины используются Windows XP, Windows 7 и Linux. Мы протестировали такую конфигурацию с целью понять, задействует ли виртуальный адаптер ресурсы физического GPU, установленного на хосте. Однако на экспериментальном стенде нам не удалось запустить тест DirectX 3DMark 2006, а тест профессиональной графики Specviewperf 11 прошел не полностью и продемонстрировал низкие показатели. Вместе с тем в ходе теста была зафиксирована высокая загрузка центрального процессора, что говорит о том, что виртуальный 3D-адаптер VMware не использует ресурсов графических процессоров, установленных на хосте.
Parallels Workstation Extreme — единственный из рассматриваемых продуктов, который не является гипервизором, устанавливаемым на «чистое железо». Продукт работает под управлением Linux и Microsoft Windows XP/Vista/7 и позиционируется производителем как платформа виртуализации, созданная для предоставления выделенных графических и сетевых ресурсов нескольким пользователям в рамках одной платформы, в том числе и в режиме удаленного доступа. Parallels Workstation Extreme использует технологии VT-d для передачи виртуальной машине управления графическим процессором, который доступен гостевой операционной системе «как есть», поэтому будут доступны все графические и вычислительные API.
Кроме перечисленных имеется еще продукт NICE Desktop Cloud Visualization, реализующий виртуализацию в стиле Microsoft RemoteFX, но поддерживающий OpenGL.
Доставка графического рабочего стола и удаленный доступ
Для удаленного доступа к графическим приложениям используются протоколы Microsoft RDP (Microsoft Remote FX), Citrix ICA (Citrix XenServer 6), PCoIP (Parallels Worstation Extreme и VMware ESXi).
Обычно публичные облака предполагают доступ к приложению через Интернет, что может сильно влиять на комфортность работы с графическими приложениями, то же самое относится и к сценарию удаленного доступа к частному облаку, поэтому необходимы средства снижения требований к каналу связи, такие как Citrix HDX 3D Pro или WAN-акселераторы.
Microsoft Remote FX использует протокол RDP 7.1, который весьма требователен к пропускной способности канала связи, поэтому может применяться только в локальной сети предприятия. Улучшить ситуацию позволяет продукт XenDesktop, включающий технологию Citrix HDX 3D Pro, которая обеспечивает сжатие передаваемого тонкому клиенту изображения. При этом если виртуальной машине выделен графический процессор Nvidia, поддерживающий API CUDA, то для сжатия будут задействованы вычислительные мощности самого графического процессора. Особенностью решения на базе XenDesktop является возможность регулирования степени сжатия передаваемого потока самим пользователем индивидуально, что особенно важно при удаленном доступе. Citrix XenDesktop и Citrix HDX 3D Pro также поддерживают виртуальные рабочие станции, созданные средствами Microsoft Hyper-V и RemoteFX. В качестве гостевых ОС поддерживаются Windows XP и Windows 7.
VMware ESXi и Parallels Workstation Extreme обеспечивают доступ к виртуальным рабочим станциям по протоколу PC-over-IP. Первый использует VMware View, а второй требует наличия аппаратного контроллера PC-over-IP.
В качестве примера WAN-акселератора можно привести решения на базе продуктов компании Riverbed, в арсенале которой кроме аппаратных акселераторов есть программный клиент для мобильных пользователей, поддерживающий оптимизацию протокола Citrix ICA.
Перенос графических рабочих станций в ЦОД
Клиенты для облачных вычислений
Спор между сторонниками толстых и тонких клиентов завершился компромиссом — на облаках каждому из них нашлась своя ниша. Леонид Черняк |
Перенос графических приложений в центры обработки данных предъявляет дополнительные требования к аппаратной платформе, так как современные графические процессоры имеют весьма высокие показатели энергопотребления и тепловыделения, например, энергопотребление Nvidia Quadro 6000 равно 204 Вт. Кроме того, все современные GPU требуют для установки слот PCI-Express 16x, на который должно выделяться не менее 8 линий шины PCI-Express. Оптимальным же является 16 линий на каждый процессор.
Конструкция материнских плат подавляющего большинства существующих моделей серверов предназначена для запуска задач, не использующих GPU, но чувствительных к производительности процессоров, дисковой подсистемы и пропускной способности сети. Большинство адаптеров Ethernet, SCSI, RAID и Fibre Channel рассчитаны на установку в слоты расширения PCI, PCI-X и PCI-Express x1, x4, x8, которые не подходят для установки GPU.
Большинству GPU, как правило, требуется дополнительное электропитание, что предполагает наличие специальных разъемов на блоках питания серверов. Конструкция систем охлаждения также должна быть рассчитана на охлаждение не только процессоров и жестких дисков, но и GPU.
Немаловажным также является вопрос минимизации числа занимаемых «графическими» серверами отсеков в серверных стойках. Сейчас на рынке представлены решения по размещению графических систем в центрах обработки данных — например, рабочие станции в форм-факторе «лезвие» HP WS460c; серверы HP серии SL; внешние графические процессоры, предназначенные для размещения в серверных стойках производства NextIO; решения AMD FirePro for VDI and Remote, а также ряд решений Dell.
Монтируемые в стойки рабочие станции Dell Precision R5500 Rack Workstation имеют размер 2U и допускают установку двух CPU и двух GPU nVidia Quadro 6000. Для удаленного доступа к станции в нее устанавливается аппаратный контроллер PC-over-IP, а в качестве клиента используется аппаратный клиент Dell FX100, поддерживающий несколько мониторов, или программный клиент VMware View. С нашей точки зрения, на данной платформе также должно функционировать решение Citrix HDX 3D Pro, использование которого не потребует установки аппаратного контроллера PC-over-IP. Данная рабочая станция может быть разделена между двумя пользователями с помощью Parallels Workstation Extreme, XenServer и VMware ESXi. Сервер-лезвие Dell PowerEdge M610x поддерживает установку двух GPU. Сервер совместим с графическими процессорами Tesla M2050/M2070/M2070Q/M2075/M2090 и ATI FirePro v7800P. Этот сервер прежде всего предназначен для создания высокопроизводительных вычислительных решений, и при установке nVidia Tesla M2070Q или ATI FirePro v7800P может быть использован для построения графических VDI на базе Microsoft RemoteFX.
В рабочих станциях HP WS460c устанавливаются два GPU, имеется совместимость с GPU nVidia Quadro 6000 и поддерживается RemoteFX. Возможны варианты плотности установки в стойке — 8 станций в 6U или 16 станций в 10U. Серверы HP серии SL имеют до трех слотов для графических процессоров от nVidia и могут использоваться с Microsoft RemoteFX, XenServer и VMware ESXi. Серверы имеют половинную от стандартной ширину и занимают до 4U.
Внешние графические процессоры, предназначенные для размещения в серверных стойках NextIO vCore 2070Q, представляют собой корпус для установки в серверную стойку, в котором размещается четыре процессора Tesla M2070Q. Основным преимуществом данного решения является возможность подключения GPU к любому серверу, имеющему слоты расширения PCI-Express 16x. Энергообеспечение и охлаждение GPU не зависят от конструкции сервера.
Продукты из линейки решений AMD FirePro for VDI and Remote интересны тем, что представляют собой комбинацию графического процессора и аппаратного контроллера PC-over-IP. Эти решения хорошо подходят для совместного использования с Parallels Workstation Extreme.
Рекомендации
Существующие средства виртуализации позволяют разделить GPU между пользователями в двух вариантах: один GPU на одного пользователя и несколько GPU на нескольких пользователей. Первый вариант годится в случае, когда требуется максимальная графическая производительность, а второй подходит для пользователей с невысокими требованиями к графической подсистеме. Однако у второго варианта имеются существенные недостатки:
- отсутствует возможность управления объемами и/или степенью загрузки выделяемых графических ресурсов;
- нет доступа из виртуальной машины к фирменным технологиям производителя GPU, таким, например, как CUDA или ATI Stream.
Эти недостатки серьезно ограничивают применение таких решений, так как, например, отсутствие управления графическими ресурсами не дает возможности обеспечить должный уровень сервиса наиболее критичным пользователям, а программная прослойка виртуализации сильно ограничивает производительность виртуального GPU и ликвидирует доступ к фирменным API, что не позволяет применять такие решения в ситуациях, требующих максимальной производительности.
Наиболее интересным продуктом для виртуализации в стиле «один GPU на одного пользователя» является Citrix XenServer, имеющий продвинутые средства управления выделением GPU виртуальным машинам, кроме того, создаваемые виртуальные рабочие станции интегрируются со средствами Citrix XenDesktop, включая HDX 3D Pro. Также Citrix XenServer поддерживает выделение нескольких GPU одной виртуальной машине (одному пользователю).
Технология Citrix HDX 3D Pro отличается от других продуктов, обеспечивающих удаленный доступ к графическим рабочим столам, гибкими возможностями настройки самим конечным пользователем качества передаваемой картинки, а также возможностью использования аппаратного ускорения сжатия средствами API CUDA.
Наиболее интересным продуктом для виртуализации в стиле «несколько GPU на несколько пользователей» является Microsoft RemoteFX. Также заслуживает внимания новое решение NICE Desktop Cloud Visualization, производитель которого заявляет о поддержке OpenGL, однако ничего не говорит о DirectX.
С точки зрения аппаратных решений следует отметить, что количество GPU, которое может быть подключено к одному серверу, ограничено числом поддерживаемых линий шины PCI-Express, которых обычно не более 40.
***
В целом существующие сегодня программные и аппаратные технологии позволяют перенести графические приложения в облака, однако каждое конкретное решение будет сильно зависеть от требований, предъявляемых приложениями к графической подсистеме, а также от характера деятельности пользователей приложений. Например, очевидно, что в проектных организациях имеются сотрудники, использующие графическую САПР для проектирования простых элементов, но есть и сотрудники, собирающие из этих элементов сложные конструкции. Первым достаточно решения на базе Microsoft Remote FX или Nice Desktop Cloud Visualization, а вторым потребуется выделенный графический процессор, и здесь лучше подойдет решение на базе продуктов Citrix или Parallels. Кроме того, с графикой работают не только пользователи тяжелых и относительно редко используемых графических приложений, но и пользователи, например, весьма популярного сервиса аудио- и видеосвязи Skype, для которого также актуальна именно облачная инфраструктура.
Сергей Точилкин (stochilkin@ot.ru) — начальник отдела инфраструктурного ПО компании «Открытые Технологии» (Москва).