Желание сделать домашний компьютер бесшумным рано или поздно посещает почти любого владельца настольного компьютера. Если компьютер используется, как печатная машинка, эта задача более менее реализуема. Но если вы пользователь 3D-игр либо других ресурсоемких приложений, то радостного мало. Либо вы приобретаете систему жидкостного охлаждения, либо серьезно вкладываетесь в бесшумные компоненты ПК.
С выходом технологии RemoteFX у вас появилась неплохая альтернатива: где-то далеко стоит мощный сервер, а на вашем рабочем месте тихий бездисковый клиент.
Microsoft анонсировал эту технологию относительно недавно – вместе с первым сервис-паком для Windows 2008 Server R2. Самое вкусное в этой технологии не проброс USB и не VOIP, а возможность виртуализовать графический адаптер.
Причем, если не ошибаюсь, Microsoft чуть ли не единственный вендор, позволяющий “расшарить” графический адаптер, а не отдать его монопольно ресурсоемкой ВМ. Кстати, пару лет назад Миша Михеев писал про RemoteFX.
Есть свежие презентации с Платформы, где демонстрируются возможности RemoteFX по рендерингу 3D-объектов для института МАИ. Впечатляет 🙂
В качестве тестирования я использовал следующий стенд:
– сервер: ПК 1*Core i3-2100/8GBRAM, Windows 2008 R2 SP1 Trial/ NVIDIA SVGA 1GB;
– виртуальная машина: 1vCPU/2GB, Windows 7 SP1 Enterprise Trial;
– клиент: ноутбук Core2Duo ~ 2GHz/2GB RAM, Windows 7 SP1 Home Premium.
Сервер и клиент связаны Wi-Fi роутером D-Link 🙂
Требования к RemoteFX:
- SLAT-совместимый процессор;
- GPU – видеокарта с поддержкой DirectX 9.0 и DirectX 10.0 (RemoteFX использует WDDM);
- Соответствование требованиям Hyper-V R2 SP1;
- Удаленные клиенты с поддержкой RDP 7.1 (встроена в Windows 7 SP1).
Так как сервер по совместительству является домашним ПК, операционная система сервера находится в VHD-файле, любезно предоставленном компанией Microsoft для ознакомления с продуктом 🙂
Лицензирование
Все достаточно радужно: вы можете использовать RemoteFX на бесплатном сервере Hyper-V R2, необходимо будет заплатить только за ОС, установленные в виртуальных машинах. В качестве такой ОС поддерживаются только Windows 7 SP1 Enterprise/Ultimate.
Настройка стенда:
1) Установка сервера Hyper-V R2 SP1/Windows 2008 R2 SP1
Вся установка заключается в том, чтобы подмонтировать VHD-файл с системой в диспетчере дисков и через утилиту BCDEDIT разрешить загрузку с VHD.
2) Поднимаем роль Hyper-V, а также компонент “RDS-RemoteFX”, входящий в состав роли Remote Desktop.
3) Создаем ВМ на основе VHD с оценочной Windows 7 SP1 Ultimate в менеджер Hyper-V. Добавляем ей 2 гигабайта ОЗУ. Настраиваем в ВМ компоненты интеграции, брандмауэр, включаем RDP, после чего выключаем ВМ.
4) Добавляем в ВМ адаптер “RemoteFX 3D” и включаем ВМ. В свойствах адаптера можно указать количество мониторов и разрешение – эти настройки влияют на объем видеопамяти RemoteFX. Если у видеоадаптера не будет требуемого количества свободной памяти, ВМ не запустится.
Внимание: после добавления этого видеоадаптера подключиться к ВМ через консоль Hyper-V будет невозможно!
5) Настраиваем профиль подключения к ВМ следующим образом:
6) Подключаемся с ноутбука через RDP и проверяем какой видеоадаптер установлен в системе. Если “Microsoft Remote FX Graphics Device –WDDM”, то все получилось.
Тестирование
Для тестирования я воспользовался относительно свежим 3D-шутером Deus Ex 3: Human Revolution.
Первый же блин был комом – на максимальных настройках игра быстро вылетела с ошибкой нехватки памяти. Это и не мудрено: ВМ использовала 220 Мб видеопамяти, а минимальные требования – 512мб. Пришлось достаточно прилично снизить используемые настройки, оставив разрешение 1024х768 (самое адекватное для моего ноутбука).
Ура, игра запустилась и я смотрю без тормозов стартовый трейлер. Потрясающие ощущения.
Как видите, загрузка процессора на уровне 40%, сети – в пике до 20Мбит/с. RemoteFX явно не оптимизирован для WAN.
Затем начинается игра. Что за ужас – при любом движении мышью экран будто сходит с ума. Подвигался с помощью клавиатуры – подтормаживает 🙁
Возможно, это отголоски Wi-Fi и в локальной сети все будет быстрее.
Дальше решил поразбираться, что за ерунда с мышью…
Выяснил, что есть два режима позиционирования мыши: абсолютный и относительный. При абсолютном передаются текущие координаты указателя, при относительном – смещение относительно предыдущей позиции. В RDP передается только абсолютный режим, а в 3D-шутерах используется относительный. Решение есть – геймпад 😉
Постойте, а как же Crisis? Его же “запихивали” в RemoteFX? Все просто – к разработке Crisis приложила руку MS и оставила там возможность абсолютного режима позиционирования мыши.
Выводы
1) Технология уже сейчас вполне применима для того, чтобы виртуализировать 3D приложения (CAD) рендеринга объектов. Правда, налагаемые требования к клиенту (RDP 7.1) несколько осложняют широкое распространение. Разделение видеоадаптера между несколькими ВМ – значительное преимущество, особенно, Nvidia Quadro Plex 7000.
2) Крайне не хватает оптимизации под узкие каналы связи. Впрочем, задержка при маршрутизации будет критична для работы 3D-игр.
3) Невозможно указать большее количество видеопамяти, чем запрограммировано на текущие настройки монитора ВМ. К примеру, нельзя дать ВМ 512МБ видеопамяти.
4) Крайне огорчает отсутствие поддержки относительного режима позиционирование мыши, без которого не поиграть в большинство 3D-шутеров.
P.S. Говорят, что в Windows 8 появится оптимизация RemoteFX под WAN-каналы и возможность эмуляции 3D-адаптера (без наличия его в сервере) 😉
Домашний ПК не получился 🙁
Из плюсов только просмотр видео без тормозов
Я думаю что сей продукт позиционировался как решения тонких клиентов для работ в автокад, 3д макс, архикад и подобных приложениях требующих масштабного рендеринга с 3д ускорением ))
Насчет игр у мелких были очень мягкие и не смахивающие на реальность представления
В принципе, с играми все грустно 🙂
Для мало-мальски приятного геймплея в 3D надо 25fps, для приятного в районе 50. Подозреваю, остальным типам игр время отклика также желательно на уровне 25fps.
Соответственно, время отклика сервера надо держать на уровне 20-40мс, что тяжко для маршрутизируемой сети.