Что нового в Windows Server 2016 RDS. Часть 2

Автор статьи — Роман Левченко (www.rlevchenko.com), MVP — Cloud and Datacenter Management


Продолжаем погружаться в новшества RDS Windows Server 2016.
Первая часть была посвящена новому типу развертывания RDS — MultiPoint Services.
Сегодня будем говорить о не менее прекрасном, а именно Personal Session Desktop и других нововведениях, которые расширяют и дополняют имеющуюся функциональность RDS в средах Windows Server 2012 и Windows Server 2012 R2.

Еще раз отмечу, что на данный момент отталкиваемся от той версии Windows Server 2016, которая официально доступна и открыта для использования — Technical Preview 4. В RTM-версии, возможно, будут изменения, о которых непременно оповестим.

Приступим.


Если Вы сервис-провайдер и хотите предоставить полноценный «десктоп» своим клиентам, то в текущих условиях сценарий VDI и SPLA (Service Provider License Agreement) являются непреодолимой стеной ну пути решения поставленной задачи. Согласно SPLA, нельзя предоставлять инфраструктуру VDI, построенную на базе клиентских ОС, «облачным» пользователям.

Хабр любит доказательства, поэтому привожу цитаты из официальных руководств по лицензированию DaaS (Desktop As A Service).

SPLA (январь, 2016):


Desktops delivered as a service are supported under SPLA using Windows Server and Remote Desktop Services (RDS). The Windows Desktop Operating System cannot be used to provide a hosted client, hosted graphical user interface or desktop as a service.

Руководство по лицензированию «Microsoft Desktop as a Service»:


No option is available in the SPLA to provide a hosted virtual desktop using the Windows Desktop Operating System; however this is possible to do through Dedicated Outsourcing


Под Dedicated Outsourcing понимается ситуация, когда клиент лицензируется через VL, и Вы, как сервис-провайдер, предоставляете выделенные физические ресурсы под VDI на базе клиентских ОС. Важно отметить, что этот сценарий так же не даёт нам право на предоставление ресурсов по схеме one to many (1 апп. сервер много клиентов). Только соотношение 1:1. По сути, мы отдаём пару юнитов в нашем шкафу в аренду одному и только одному клиенту.

32a9a5161a5c47dc8e2f342df958da4b.png

Для обхода подобных ограничений, как правило, строится система на базе классических терминальных решений (session-based архитектура, конечно, с desktop experience на борту) и отдаётся на «растерзание» клиентам или пользователям.

В Windows Server 2016 решили это дело упростить и добавить метод «привязки» пользователей к конкретным терминальным узлам (в рамках RDS это узлы Remote Desktop Session Host, RDSH). В итоге, получаем новый вид RDS-коллекции — Personal Session Desktops (PSD) или частные рабочие столы на базе терминальных сессий. Очевидно, что можно провести аналогию с Personal Virtual Desktops в VDI, предназначенные так же для выделения «изолированной» среды пользователям.

Давайте посмотрим на пару сценариев, которые успешно решаются благодаря PSD:

  • Если пользователю для работы требуется, чтобы ОС имела все возможности и внешний вид «как у клиентской» (к примеру, Windows 10), то полноценной заменой его рабочего стола будет PSD с установленными компонентами Desktop Experience, которые позволяют добиться внешнего вида интерфейса Windows Server близкого к обычной клиентской ОС.
  • Если пользователь имеет административные полномочия на своём привычном ПК, и вы хотите перевести его на PSD, то это возможно сделать путем добавления пользователя в группу локальных администраторов (определяется на этапе развертывания PSD, «ручной труд» не требуется)
  • Если пользователь не видит свою дальнейшую жизнь без графических приложений, требующих дополнительных аппаратных ресурсов, то можно предоставить PSD с обновленными возможностями RemoteFX. Об этом поговорим чуть позже. Забегая вперед, наконец-то мы дождались…

Впервые PSD был анонсирован в Technical Preview 2 и изменен в TP3/TP4 (одним из изменений была замена структуры cmdlet, отвечающего за конфигурацию PSD). На текущий момент единственный способ развернуть PSD — PowerShell. Опцию GUI планируют добавить не ранее RTM-релиза.

Для целей демонстраций и тестирования можно использовать тип развертывания Quick Start на базе сессий. При этом будут установлены RD Connection Broker, RD Web Access и RD Session Host на одном физическом сервере. Для реального использования рекомендуется сформировать распределенную архитектуру. Не забываем, что каждый компонент RDS поддерживает виртуализацию (к примеру, 1 VM RDSH <-> 1 PSD User) и высокую доступность (например, RD Connection Broker иметь высокодоступную конфигурацию).

На всякий случай привожу шаги по конфигурации

«фундамента»

Дополнительно устанавливаем Desktop Experience на узле RDSH

Install-WindowsFeature Desktop-Experience

Переходим к созданию коллекции PSD.

New-RDSessionCollection был дополнен свитчем -PersonalUnmanaged, который используется для создания коллекции типа Personal Session Desktop (в Technical Preview 2 наименование свитча было другим, а именно -PersonalSessionCollection)

#Переменная для имени RDSH
$rdshost="tp4-root.democorp.ru" 

#Создание PSD-коллекции с административными привилегиями для пользователя
New-RDSessionCollection -CollectionName Personal -ConnectionBroker $rdshost -SessionHost $rdshost -GrantAdministrativePrivilege -PersonalUnmanaged
 
#Привязка пользователя rdsuser к коллекции PSD с именем Personal
Set-RDPersonalSessionDesktopAssignment -CollectionName Personal -User democorp\rdsuser -Name $rdshost
 
#Проверяем
Get-RDPersonalSessionDesktopAssignment -CollectionName Personal
 
CollectionName DesktopName User
-------------- ----------- ----
Personal TP4-ROOT.DEMOCORP.RU DEMOCORP\rdsuser


Если RDSH уже находится в одной из PSD-коллекций, то на его основе нельзя создать новую коллекцию. Только после удаления данного RDSH из текущей коллекции появится возможность определить его в новую.

New-RDSessionCollection -CollectionName Personal -ConnectionBroker $rdshost -SessionHost $rdshost -GrantAdministrativePrivilege -PersonalUnmanaged
WARNING: The RD Session Host server tp4-root.democorp.ru already exists in another collection.
New-RDSessionCollection : Unable to create the session collection.
 
#Выводим список коллекций
Get-RDSessionCollection
 
CollectionName Size ResourceType CollectionType CollectionDescription
-------------- ---- ------------ -------------- ---------------------
QuickSessionCollection 1 RemoteApp programs PooledUnmanaged
 
#Удаляем коллекцию 
Get-RDSessionCollection|Remove-RDSessionCollection


После создания коллекции PSD и привязки к ней пользователя, перейдем в RD Web Access узел (https://host fqdn/rdweb) для дополнительной проверки, используя учетные данные нашего пользователя. Должен появиться список коллекций, доступных пользователю

9ebe3b6563234e7c8aa8b2514f8ac54b.jpg

Отмечу, что в привычном для администратора списке коллекций (Server Manager –> RDS –> Collection List) данный вид коллекций не отображается, поскольку он создается и управляется только с помощью PowerShell (по крайней мере, до выхода RTM-версии).

Вот такой вид имеет панель «Пуск» в сессии PSD:

e9af423745204cf9ba7559080a4a95ed.jpg

Наша коллекция была создана с ключом -GrantAdministrativePrivilege, поэтому пользователь автоматически был добавлен в группу Администраторов на выделенном сервере RDSH.

5758cd4a9f0a426ca24a3d96cb03df3b.jpg

Двигаемся дальше.


В Windows Server 2012 R2 RemoteFX-адаптер имеет ряд ограничений: 256 MB максимальный объем выделенной VRAM, поддержка только OpenGL 1.1, отсутствие поддержки OpenCL. Всё это сказывается на поддерживаемом количестве мониторов, разрешении и адекватной работе новых графических приложений (к примеру, Autocad Re-Cap требует OpenGL 3.3 и 1 GB VRAM, Photoshop CC — OpenGL 2.0 и 512 MB VRAM как минимум).

Windows Server 2016 призван решить данные проблемы и вносит ряд изменений:

  • Возможность выделения до 1 GB VRAM. Виртуальные машины Hyper-V могут использовать до 1 GB выделенной VRAM + увеличивать количество VRAM за счет системной памяти ВМ, получая до 2 GB VRAM, в зависимости от величины имеющейся у виртуальной машины памяти.

    Кроме того, динамическое определение объема VRAM на основе количества мониторов и разрешения заменяется возможностью задания конкретного значения VRAM для каждой ВМ вне зависимости от максимального количества мониторов и разрешения.

    aa46e0d72f5d4a1592df9b74dda9ebe2.png

  • Поддержка OpenGL 4.4 и OpenCL 1.1. Как итог, имеем «карт-бланш» на использование современных графических приложений.

Параметры RemoteFX определяются как через GUI, так и через PowerShell.

Set-VMRemoteFx3dVideoAdapter

Set-VMRemoteFx3dVideoAdapter [-VM]  [[-MonitorCount] ] [[-MaximumResolution] ]
[[-VRAMSizeBytes] ] [-Passthru] [-WhatIf] [-Confirm]  []


Ещё буквально недавно у Microsoft не было ни одного мобильного клиента для доступа к удаленным рабочим столам, и приходилось использовать платные решения сторонних производителей с поддержкой RD Gateway. Однако по мере продвижения и использования RDS-решений были выпущены и добавлены следующие клиенты:
Клиент RDP (MSTSC.EXE) был обновлен до 10-ой версии, которая имеет улучшенную поддержку кодека AVC/H.264 и режима AVC 444, призванного улучшить fps, понизить потерю цветности за счет использования функций аппаратного декодера H.264 в высоких разрешениях вплоть до 4K (GPU должен иметь поддержку DirectX 11.0, H.264 декодер Level 4.1/BT.709). Пока только в рамках полноценного клиента, но планируется добавить поддержку и для мобильных клиентов, обозначенных выше.
Режим AVC444 используется по умолчанию в RemoteFX, но есть возможность использования AVC444 и в других сценариях с помощью настройки групповой политики:

Сomputer Configuration/Administrative Templates/Windows Components/Remote Desktop Session Host/Remote Session Environment:
Prioritize H.264/AVC 444 Graphics mode for Remote Desktop connections
и
Configure H.264/AVC hardware encoding for Remote Desktop connections>


ВМ второго поколения (Generation 2) стали доступны ещё в Windows Server 2012 R2, но их использование в рамках RDS/VDI (и не только) откладывалось. Например, возможность создания шаблонов сервисов VMM на базе Gen2 была добавлена только в рамках UR6.
В Windows Server 2016 мы можем задействовать оба поколения для использования в различных типах коллекций (personal/pooled или personal session). Дополнительная конфигурация не требуется.
Если ваше устройство, например Surface, поддерживает работу со стилусом, а локальная система не ниже Windows 10, то вы можете использовать стилус в рамках RDP-сессии.

В Windows Server 2012/2012 R2 подобные устройства также перенаправляются, но используются в качестве замены мыши. В рамках Windows Server 2016 и Windows 10 стилусом можно рисовать или писать, открыв, например, граффити-приложение в Microsoft Edge, который так же обзавелся поддержкой при работе в удаленной сессии.


Обновленные RemoteFX и RDP с поддержкой разрешения 4K увеличивают отдачу от ВМ с «тяжелыми» приложениями в рамках VDI и повышают их быстродействие по сравнению с Windows Server 2012 / 2012 R2 (конечно, необходимо провести тестирование и взглянуть на реальные цифры).

MultiPoint Server, переехавший под «крыло» RDS, расширяет область применения удаленных рабочих столов и делает более привлекательным их использование (интерактивность в dashboard, простота настройки играют в этом не последнюю роль).

Personal Session Desktop (PSD) упрощает предоставление рабочих столов в рамках DaaS-услуги и расширяет возможности RDS в Azure. Ожидать глобального изменения условий SPLA, думаю, не приходится. Скажем «спасибо», что и тут не забыли о нас.

Надеюсь, что было интересно. Всем хорошей виртуализации и RDS-имплементации.

© Habrahabr.ru