RDS в Windows Server 2016

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

Как вы помните, долгожданный релиз Windows Server 2016 состоялся, и мы продолжаем рассматривать самые главные нововведения этого продукта. Речь сегодня пойдет об одной из наиболее востребованных ролей – службе удаленных рабочих столов, или RDS (Remote Desktop Services).
Прежде чем погружаться в мир нового, рекомендуем ознакомиться со списком тех возможностей, которые появились в прошлой версии RDS – в Windows Server 2012 R2. Следом стоит посмотреть на список нововведений RDS в Windows Server 2016. Давайте рассмотрим, как новые возможности RDS в Windows Server 2016 расширяют возможности по построению терминальных ферм, VDI сред и сервисов доставки приложений на различные типы устройств.

Улучшения RemoteFX


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


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

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

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

       

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

       Поддержка RemoteFX внутри виртуальных машин с Windows Server 2016. Ранее RemoteFX работал только с клиентскими версиями ОС (Windows 7/8). Это небольшое изменение (наряду с Personal session desktops, о которых мы поговорим чуть позже) значительно упрощает жизнь сервис-провайдерам, которые хотят предоставлять решения VDI с графическим ускорением своим заказчиком.

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

Set-VMRemoteFx3dVideoAdapter

Set-VMRemoteFx3dVideoAdapter [-VM] []> [[-MonitorCount] ] [[-MaximumResolution] ]

[[-VRAMSizeBytes] ] [-Passthru] [-WhatIf] [-Confirm]  []

 

Новые клиенты RDS


Еще недавно у Microsoft не было ни одного мобильного клиента для доступа к удаленным рабочим столам, и приходилось использовать платные решения сторонних производителей с поддержкой RD Gateway. Однако по мере продвижения и использования RDS-решений были выпущены и добавлены следующие клиенты:

     RD Client for Android

     RD Client for iOS

     RD Client for Mac


Клиент 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.

Оптимизированный Connection Broker

Посредник подключений был узким местом при одновременных попытках подключений (logon storm) в Windows Server 2012/2012R2. Поэтому в Windows Server 2016 была значительно улучшена производительность Connection Broker для требуемой нагрузки во время logon storms и при добавлении или перезагрузке узлов сессий в рамках большой rds-фермы (кстати, есть отдельный KB и для Windows Server 2012 R2, улучшающий производительность Connection Broker в подобных сценариях). Эти улучшения позволяют поддерживать до 10K+ одновременных запросов на подключение.

Для HA-конфигурации требуется выделенный внешний SQL Server. В Windows Server 2016 включена поддержка использования Azure SQL Database в качестве конечной точки размещения конфигурации Connection Broker в высокодоступном режиме.

Поддержка виртуальных машин второго поколения


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

Поддержка пера и браузера Microsoft Edge


Если ваше устройство, например планшет Microsoft Surface, поддерживает работу с пером, а локальная система не ниже Windows 10, то вы можете использовать перо в рамках RDP-сессии.

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

Personal Session Desktops


Если Вы сервис-провайдер и хотите предоставить полноценный «десктоп» своим клиентам, то при реализации классического сценария VDI в рамках SPLA вы можете столкнуться с проблемой – в рамках SPLA недоступна клиентская версия Windows (7, 8, 10).

Для обхода подобных ограничений, как правило, строится система на базе классических терминальных решений c Windows Server (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 на базе Windows Server 2016 with Desktop Experience, которые позволяют добиться внешнего вида интерфейса Windows Server близкого к обычной клиентской ОС.

       - Если пользователь имеет административные полномочия на своем привычном ПК и вы хотите перевести его на PSD, то это возможно сделать путем добавления пользователя в группу локальных администраторов (определяется на этапе развертывания PSD, «ручной труд» не требуется)

       - Если пользователь не видит свою дальнейшую жизнь без графических приложений, требующих дополнительных аппаратных ресурсов, то можно предоставить PSD с обновленными возможностями RemoteFX (об этом уже упоминалось выше).

На текущий момент единственный способ развернуть PSD – PowerShell. Опцию GUI планируют добавить позже.

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

На всякий случай привожу шаги по конфигурации «фундамента».

 

 



Переходим к созданию коллекции PSD. New-RDSessionCollection был дополнен свитчем -PersonalUnmanaged, который используется для создания коллекции типа Personal Session Desktop.

#Переменная для имени 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://hostfqdn/rdweb) для дополнительной проверки, используя учетные данные нашего пользователя. Должен появиться список коллекций, доступных пользователю.

 

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

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

 

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

 

Но на этом важные нововведения RDS в Windows Server 2016 не заканчиваются. Двигаемся дальше.

Интегрированные Windows MultiPoint Services


MultiPoint-сервер (MPS) является технологией и решением на базе Windows Server и служб RDS для предоставления базовой функциональности удаленных рабочих столов. Позиционируется для использования в учебных классах или учреждениях, где нет больших требований к нагрузке и масштабируемости. Особенность заключается в том, что пользовательские станции могут состоять только из монитора, клавиатуры и мыши («нулевые» клиенты) и подключаться непосредственно к серверу MPS через USB-хабы, видеокабели или LAN (RDP-over-LAN, если клиентом является, к примеру, ноутбук или тонкий клиент). В итоге конечный потребитель получает решение low-cost для предоставления функциональности рабочих столов с абсолютно минимальными затратами на пользовательские конечные станции.

Первая версия MPS, выпущенная в феврале 2010-го, имела возможность подключать станции только через специализированные USB-хабы и видеопорты.

Привычная нам всем возможность подключения через RDP была добавлена только в следующей версии MPS 2011, релиз которой состоялся в марте 2011. Помимо RDP-over-LAN, MPS 2011 обновился следующим образом:

          Поддержка RemoteFX.

          Поддержка виртуализации.

          Проецирование рабочего стола от одной станции другой (к примеру, рабочий стол тренера или преподавателя дублируется на пользовательские станции).

          Возможность ограничения интернет-доступа на базе фильтров.

          Удаленный запуск приложений, блокировка периферии (клавиатуры, мышь) на подключенных станциях.


В следующей и на данный момент последней версии MPS 2012 были добавлены:

          Новая консоль для централизованного управления столами.

          Защита системного раздела от нежелательных изменений.

          Клиент MPS Connector для мониторинга и управления станций, включая планшеты.

Как уже было сказано выше, MPS поддерживает не только классический RDP, но и дает возможность подключать «нулевые» клиенты (примером может служить Wyse 1000) следующими способами.

          Прямое подключение к видеокарте головной станции

          На рисунке к главной станции подключаются напрямую четыре клиентские станции через USB и, к примеру, VGA-порты. Очевидно, что подобный тип подключения подразумевает соответствующие требования к аппаратной конфигурации головной станции и в некоторых сценариях неприменим (масштабы, расстояние, мобильность).

          Подключение через USB

          На рисунке ниже показано взаимодействие первичной станции (станция, которая подключена напрямую к MPS и используется для первичной конфигурации вне зависимости от сценария) и двух «нулевых» клиентов, подключенных через USB-хабы (пример: Wise 1000). В отличии от первого способа, нам не нужно дополнительно рассчитывать конфигурацию видеоподсистемы сервера MPS для формирования требуемого количества видеовыходов. Но из-за ограничения по расстоянию между станциями и MPS (для Dell Wise 1000 ~ 5 метров) рекомендуется использовать в малых комнатах при небольшом количестве конечных пользователей.

          Использование USB-Over-Ethernet

          Более масштабируемый тип подключения. Вместо USB-to-USB используется проброс USB через LAN, тем самым предоставляется возможность построения системы MPS в больших по размеру помещениях (пример клиента: Wise 1003)

Описанная выше функциональность полностью перенесена в Windows Server 2016. MultiPoint Services теперь являются новым типом развертывания служб RDS.
 

 

Опытным инженерам или администраторам, которые уже знакомы с процедурой конфигурации RDS в рамках решений VDI или Session-Based, процесс настройки и использования MPS покажется более простым и быстрым. Это тоже является плюсом, если учитывать целевую аудиторию MPS.

Существует три способа установить MultiPoint Services: через Server Manager (role-based), Powershell и через RDS Installation.

Бегло пройдемся по первым двум и потом перейдем к процессу базовой настройки MPS.

  1. Используя Server Manager и установку ролей, выберите MultiPoint Services, согласитесь с установкой дополнительных компонентов и перейдите к следующему шагу.

     
  2. Можно почитать еще раз, что такое MPS. Стоит отметить, что RD Licensing нужно будет активировать после конфигурации MPS.

     
  3. Вместе с основной службой MPS дополнительно разворачиваются службы Print and Document Services, предназначение которых всем, я надеюсь, известно. Ничего интересного, идем далее.

     
  4. Оставляем все по умолчанию.
    • Print Server – необходим для управления «множеством» принтеров.
    • Distributed Scan Server – управление и предоставление доступа к сканерам, поддерживающим Distributed Scan Management.
    • Internet Printing – веб-доступ к printer jobs с возможностью отправки документов на печать через Internet Printing Protocol.
    • LPD Service — служба Line Printer Daemon предоставляет возможность UNIX-клиентам, используя службу Line Printer Remote, отправлять задачи на печать доступным принтерам.



 

  1. Полноценный RDS нам не нужен, поэтому оставляем предлагаемые по умолчанию значения.

     
  2. После подтверждения сервер отправится на перезагрузку и, используя первичную станцию, необходимо будет произвести требуемую конфигурацию при первом старте MPS. В момент запуска будет предложено произвести идентификацию первичной станции (путем нажатия клавиши “B”), после чего сервер перейдет в режим конфигурации служб RDS/MPS.

     

    MPS добавит учетную запись WmsShell для поддержки работы в режиме multi-station и создаст группу WmsOperators для формирования доступа к консоли управления (Dashboard).



Все шесть пунктов можно “сжать” до одной команды в PowerShell:

 

Перейдем в диспетчер управления MPS (MPS Manager):

 

Со своей удаленной станции я хочу настроить доступ к MPS через RDP-over-LAN. Для этого добавим новую учетную запись пользователя MPS:

 

С точки зрения MPS существует три вида пользователей: стандартный пользователь для доступа к MPS, пользователь для управления пользовательскими сессиями и администратор. По сути, это имитация полноценного RBAC (Role Based Access Control).

 

Итак, пользователь добавлен. Проверим подключение. Используя MSTSC и возможности RDP, я подключаюсь к серверу MPS с помощью вышеобозначенной учетной записи. При первом подключении каждого пользователя к MPS будет выведено сообщение: «To assist you with your usage of this computer, your activities may be monitored by your system administrator/Для помощи в использовании данного компьютера ваши действия будут отслеживаться системным администратором».

 

После подтверждения будет создана новая терминальная сессия для пользователя, при этом администратор сможет управлять пользовательской сессией в интерактивном режиме, используя консоль MultiPoint Dashboard.

Перейдем к MultiPoint Dashboard (отдельная консоль). Основную часть консоли будут занимать динамически меняющиеся мини-экраны пользовательских сессий. Мне это чем-то напоминает экран службы безопасности для мониторинга видеосигналов с камер, но MultiPoint Dashboard позволяет нам не только наблюдать за тем, что происходит в пользовательских сессиях, но и реально управлять и изменять их (забирать управление, блокировать станции или инициировать log off, отправлять IM выбранным пользователям, блокировать USB-устройства или удаленно запускать/закрывать приложения).

 

К примеру, с каждой пользовательской станцией и ее сессией мы можем сделать следующее:

  • разблокировать/заблокировать станцию и вывести на экран конкретной станции сообщение;

     
  • ограничить веб-доступ путем определения списка разрешенных или запрещенных URLs;

     
  • проецировать свой рабочий стол на клиентские станции;

     


Если вернуться обратно в MPS Manager, то можно увидеть, что подключенная станция отображается во вкладе Stations, где можно дополнительно управлять выбранными станциями.

 

Настройки самого MPS располагаются на стартовой вкладке Home. Мы можем, к примеру, отключить оповещения о том, что сессия не является приватной, чтобы у пользователей не возникало дополнительных вопросов :)

 

Режим Multi-Session несет некоторые риски, связанные с безопасностью, поэтому предоставляется возможность защитить системный диск от нежелательных изменений. Для включения функции Disk Protection достаточно одно клика и подтверждения.

 

Если имеется приложение, которое требует клиентскую среду, в некоторых случаях изолированную, то в MPS это достигается за счет включения Virtual Desktops. Принцип работы схож с pooled-коллекцией в полноценном VDI. Каждая «виртуализованная станция» будет создаваться из шаблона и делать откат изменений после каждого выхода пользователя из системы. Как видим, полноценной функциональности VDI не достигается, но все же само наличие подобной возможности расширяет область применения MPS.

 

Выводы


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

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

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

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

P.S. Если вы планируете переход на новый RDS или настраиваете новую ферму, то полезным будет данный постер, показывающий основные зависимости между сервисами.

Наверх