RemoteFX. Часть 1 — теория
Пару недель назад Microsoft представила общедоступную предварительную версию первого Пакета обновления (Service Pack 1) для Windows 7 и Windows Server 2008 R2, о чём мы тогда писали. Ключевыми нововведениями в представленном пакете обновлений стали поддержка динамической памяти (Hyper-V Dynamic Memory) и технология RemoteFX. Статью о первой мы скоро представим, пока же поговорим о RemoteFX.
Итак, что же скрывается за названием RemoteFX? Два года назад Microsoft купила компанию Calista Technologies, разрабатывающую решения для передачи по сети видео и прочих данных. Доработанная версия RemoteFX позволяет пользователю комфортно работать по протоколу Удалённого рабочего стола (Remote Desktop Protocol, RDP) с видео высокой чёткости и прочей сложной графикой в любых форматах — включая Silverlight, Direct3D 9.0c, трёхмерные модели и, конечно, Windows Aero. Кроме того, он обеспечивает полную поддержку двухсторонней синхронной аудиопередачи и низкоуровневое подключение любых устройств USB к удалённой рабочей станции, но это мы обсудим в одной из следующих статей.
RemoteFX накладывает существенные аппаратные требования на серверы виртуализации. Именно поэтому предполагается, что в основной массе RemoteFX найдёт применение в новых проектах VDI, а не при усовершенствовании уже существующих инфраструктур.
- Процессоры на сервере должны поддерживать Second Level Address Translation (SLAT) — т.е. Intel Extended page tables (EPT) или AMD Rapid Virtualization Indexing (RVI).
- Видеокарта на сервере должна поддерживать DirectX 9.0c и DirectX 10.0 и иметь достаточный объем видеопамяти, которого хватит на выполнение задач во всех виртуальных машинах в зависимости от разрешения экрана. Поддерживаются как встроенные видеокарты, так и внешние устройства формата appliance.
- Если в сервере установлено несколько видеокарт или подключено несколько устройств формата appliance, то такие устройства должны быть на одинаковых графических чипах. (Всего сейчас поддерживается до четырёх видеокарт в одном сервере).
- Живая миграция виртуальных машин, в которых используется RemoteFX, требует наличия на серверах одинаковых видеокарт.
Какие видеокарты поддерживают RemoteFX? Технически, работать она должна на любом устройстве, совместимом с DirectX 10. Однако, мы вкладываем в слово «поддержка» особое значение, так что для получения официальной технической поддержки требуем подтверждения работоспособности в лабораторных условиях. На данный момент протестированы следующие решения. К моменту окончательного выхода Windows Server 2008 R2 Service Pack 1 их число должно расшириться.
Производитель | ATI |
NVidia |
Чипы, прошедшие проверку и получившие логотип |
|
|
Внешние устройства формата appliance |
– |
Quadroplex 2200 S4 (960 ядер CUDA и 16ГБ видеопамяти в форм-факторе 1U. Одного такого модуля хватит на полсотни пользователей с активной 3D графикой). |
Технически RemoteFX состоит из следующих элементов.
- с точки зрения Hyper-V — очередная пара компонентов, обменивающихся данными через VMBus:
- VSC (Virtualization Services Consumer) в виртуальной машине — новое синтетическое виртуальное устройство, видеокарта. Приложения, запущенные в виртуальной машине, работают с ней как с обычной видеокартой, поддерживающей DirectX 9;
- в роли VSP (Virtualization Service Provider) выступает компонент под названием RCC (Render, Capture, Compress), который выполняется в родительском разделе (по одному экземпляру для каждой ВМ, использующей RemoteFX);
- с точки зрения RDP — новый тип данных в «Виртуальном канале» (Virtual Channel, VC) передачи видео.
Как же выглядит архитектура взаимодействия служб интеграции Hyper-V с физическим оборудованием и компонентами ОС на сервере виртуализации?
Этап отрисовки графики (Render) происходит по следующей схеме.
Здесь компонент RCC играет роль посредника по передаче инструкций DirectX 9 от виртуальной машины физической видеокарте, установленной в сервере.
Захват и кодирования видеопотока (Capture and Compress) выглядит примерно так.
Обратите внимание на то, что первый этап сжатия выполняется на видеокарте, и здесь уже используются алгоритмы DirectX 10. Второй этап сжатия выполянется на процессоре (CPU).
Для того, чтобы увеличить производительность и масштабирование, вы можете воспользоваться устройством нового типа, который называется RemoteFX ASIC (Application-Specific Integrated Circuit). Это устройство фактически реализует кодек RemoteFX на аппаратном уровне, что снимает нагрузку по сжатию с видеокарты и процессора. (Надо понимать, что задачи отрисовки, показанные на предыщуей схеме, по-прежнему остаются на видеокарте. Так что ASIC не заменяет, а дополняет её). Очевидно, что использование такого устройства не является необходимым условием для работы RemoteFX. Однако мы ожидаем, что в скором будущем большинство серверов, предназначенных для выполнения роли VDI, будут оснащены микросхемами RemoteFX ASIC — это значит, что вам не придётся отдельно задумываться об этом и покупать дополнительные устройства.
Кроме того, из последней схемы становится понятно, почему для задач виртуализации RemoteFX работает только с Hyper-V, но не с другими платформами виртуализации. Посудите сами — ведь в виртуальной машине вы устанавливается компонент VSC, для работы которого необходим RCC на стороне гипервизора.
В заключение предлагаю всем посмотреть на пример RemoteFX в действии.
[Video]
Comments
Anonymous
January 01, 2003
Спасибо, а можете пояснить, почему так обижена Windows Embedded Compact 7 ?Anonymous
January 01, 2003
Также уже пояснялось :) Windows CE (Embedded Compact) не продается и не распространяется Microsoft. Этим занимаются вендоры, они и будут делать имплементацию при необходимости. Дело в том, что ASIC в каждом устройстве свой, так что участие производителя оборудования требуется по любому.Anonymous
January 01, 2003
Алексей, а есть планы сделать RemoteFX для гостя с Windows XP?Anonymous
January 01, 2003
А поддержка RemoteFX в клиентах для ОС тонких клиентов будет? Относительно Linux понятно - когда реализуют производители, а что с Windows Compact (WinCE6) и Windows Standard (WinXPe)?Anonymous
January 01, 2003
Я уже отвечал недавно на этот вопрос в другой теме. Будет поддержка в Windows Embedded 7 (Standard и Enterprise) и Windows Phone 7. Очевидно, что для XP Embedded ничего не будет, равно как и для обычной XP. Для сторонних ОС Microsoft ничего писать не будет, но протокол RDP лицензируется, любой купивший лицензию может написать под любую ОС (Речи о GPL в этом случае не идет, у Microsoft своё видение лицензирования исходных кодов).Anonymous
January 01, 2003
На сегодня таких планов нет. Поддержка Windows XP не планируется ни в качестве гостевой системы для VDI, ни в качестве клиента RemoteFX. И если второе ещё может измениться — то первое вряд ли. Хотя, конечно, окончательно всё сможет решить только реальный спрос на рынке.- Anonymous
November 10, 2016
Добрый день!А доманшние редакции Windows тоже не могут выступать в роли клиента RemoteFX?- Anonymous
December 15, 2016
Нет, не могут.
- Anonymous
- Anonymous
Anonymous
January 01, 2003
Evg, по повододу Quadroplex-а — да, согласно информации NVidia сценарий подключения одного устройства сразу к нескольким серверам возможен. По поводу ASIC — он работает с одним устройством. Во всяком случае, таково виденье Microsoft. Но не забывайте, что настоящие устройства разрабатываются партнёрами, и у них может быть своё представление. Конкретные модели и их характеристики станут известны ближе к дате окончательного выпуска Service Pack 1.Anonymous
August 31, 2010
Подскажите,
- можно как-нибудь ресурсы Quadroplex-а раздать на несколько серверов? Т.е. не покупать несколько серверов с видеокартами, а купить один Quadroplex?
- аналогичный вопрос по RemoteFX ASIC - это чип, работающий только с конкретным сервером, или бывает некое устройство на его базе, которое может работать для всей серверной инфраструктуры (типа Citrix NetScaler, если не путаю)?