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

Чипы, прошедшие проверку и получившие логотип

  • FirePro: 5800, 7800, 8800;
  • FireStream: 9270.
  • Quadro: 880M, 2800M, 3800, 4800, 5800;
  • Fermi (ускоритель следующего поколения, выход в августе и сетябре этого года).

Внешние устройства формата 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 (10)

  1. Evg1 says:

    Спасибо, а можете пояснить, почему так обижена Windows Embedded Compact 7 ?

  2. Alex A says:

    Также уже пояснялось 🙂

    Windows CE (Embedded Compact) не продается и не распространяется Microsoft. Этим занимаются вендоры, они и будут делать имплементацию при необходимости.

    Дело в том, что ASIC в каждом устройстве свой, так что участие производителя оборудования требуется по любому.

  3. Алексей,

    а есть планы сделать RemoteFX для гостя с Windows XP?

  4. Evg1 says:

    А поддержка RemoteFX в клиентах для ОС тонких клиентов будет? Относительно Linux понятно – когда реализуют производители, а что с Windows Compact (WinCE6) и Windows Standard (WinXPe)?

  5. Alex A says:

    Я уже отвечал недавно на этот вопрос в другой теме.

    Будет поддержка в Windows Embedded 7 (Standard и Enterprise) и Windows Phone 7.

    Очевидно, что для XP Embedded ничего не будет, равно как и для обычной XP.

    Для сторонних ОС Microsoft ничего писать не будет, но протокол RDP лицензируется, любой купивший лицензию может написать под любую ОС (Речи о GPL в этом случае не идет, у Microsoft своё видение лицензирования исходных кодов).

  6. Pronichkin says:

    На сегодня таких планов нет. Поддержка Windows XP не планируется ни в качестве гостевой системы для VDI, ни в качестве клиента RemoteFX. И если второе ещё может измениться — то первое вряд ли. Хотя, конечно, окончательно всё сможет решить только реальный спрос на рынке.

    1. Добрый день!
      А доманшние редакции Windows тоже не могут выступать в роли клиента RemoteFX?

      1. Нет, не могут.

  7. Pronichkin says:

    Evg, по повододу Quadroplex-а — да, согласно информации NVidia сценарий подключения одного устройства сразу к нескольким серверам возможен.

    По поводу ASIC — он работает с одним устройством. Во всяком случае, таково виденье Microsoft. Но не забывайте, что настоящие устройства разрабатываются партнёрами, и у них может быть своё представление. Конкретные модели и их характеристики станут известны ближе к дате окончательного выпуска Service Pack 1.

  8. Evg1 says:

    Подскажите,

    1) можно как-нибудь ресурсы Quadroplex-а раздать на несколько серверов? Т.е. не покупать несколько серверов с видеокартами, а купить один Quadroplex?

    2) аналогичный вопрос по RemoteFX ASIC – это чип, работающий только с конкретным сервером, или бывает некое устройство на его базе, которое может работать для всей серверной инфраструктуры (типа Citrix NetScaler, если не путаю)?

Skip to main content