Как управлять RDS фермой Windows Server 2012-16

Обновлено 24.11.2018

rds logoДоброго времени суток, многоуважаемые инженеры, системные администраторы и просто начинающие пользователи. Рад вас вновь приветствовать на страницах IT блога Pyatilistnik.org. Если вы мой постоянный читатель, то вы заметили, что я очень часто и много пишу про терминальные сервера и RDS фермы. Сегодня я хочу вам показать, как производится управление RDS фермой Windows Server 2012 и Windows Server 16. Я на сто процентов уверен, что данная информация будет вам полезна, так как я часто видел опытных администраторов, кто не знал как это делается, в виду старых знаний и стереотипов, о данной технологии.

Описание ситуации

Пришел один администратор к нам на работу, пришла заявка, что нужно было для обслуживания вывести из RDS фермы один из узлов подключения, посидев некоторое время и потыкав диспетчер серверов, он не смог выполнить данную задачу, потому что у него было понимание работы терминального сервера, но не фермы.

В чем отличие фермы от терминала

Если посмотреть организацию удаленного доступа в Windows Server 2008 R2, то там схема была простой, где-то в сети устанавливался сервер лицензирования удаленных рабочих столов, а уже на нужно из серверов, куда планировалось подключение, ставилась роль "Службы удаленных рабочих столов". Ему назначались лицензии и пользователь подключался.

Если посмотреть концепцию Windows Server 2012 R2 и старше, то выглядит это уже вот так, есть некое виртуальное имя к которому все подключаются, есть серверная роль "Посредник подключения (RD Connection Broker)", он берет на себя роль распределения нагрузки и количество сеансов пользователей, на сервера удаленного подключения "RD Session Host", где уже работаю пользователи. Вся эта конструкция объединяется в некий пул. называемый RDS фермой, где легко создать отказоустойчивость на уровне посредников подключения и легко обслуживать хосты конечного подключения.

rds ферма схема

Схема управления RDS фермой

Тот сотрудник не совсем понимая схему и видя ее впервые, наивно подумал, что все управление Remote Desktop Services фермой осуществляется через посредника подключения (Connection Broker). Он попытался к нему подключиться, но его послали с формулировкой "Удаленный компьютер "имя", попытка подключения к которому выполняется, перенаправляет вас на удаленный компьютер "имя", он то и не знал, что для подключения к нужному хосту фермы нужно использовать специальные ключи.

Далее показав ему, как происходит подключение к посреднику, он попытался отыскать оснастку управления, так как в Windows Server 2008 R2, была именно такая реализация работы, но он там ничего не нашел. Он подглядел у меня, что я управляю RDS, через "Диспетчер серверов". Он его открывает и у него там то же ничего не оказалось, в итоге он побился часок и попросил ему показать. Чтобы знающих людей стало больше и грамотность системных инженеров была больше я вам написал небольшую инструкцию. Не подумайте, что я надменно отнесся к своему коллеге, я просто так же был однажды в на его месте и понимал, что это просто отсутствие опыта, что не смертельно.

Собираем консоль управления RDS фермой

Для управления настройками Remote Desktop Services вам потребуется клиентская операционная система Windows 8.1 или Windows 10, либо это могут быть Windows Server 2012 R2 и выше. Там нам потребуется оснастка "Диспетчер серверов".

В клиентских операционных системах Windows, вам придется установить дополнительный пакет оснасток администрирования RSAT , как это делать читайте по ссылке слева

Если вы знаете всех участников RDS фермы, то это хорошо, вы немного себе выиграете времени, если нет, то придется слегка пописать команды и помучить DNS-сервер.

Откройте командную строку или запустите PowerShell оболочку. Предположим у вас виртуальное имя для подключения к удаленному рабочему столу TERM. Тут у вас два варианта:

  • Воспользоваться утилитой nslookup
  • Воспользоваться утилитой Resolve-DnsName

Конструкция nslookup:
nslookup term

Конструкция Resolve-DnsName:
Resolve-DnsName term -Type A
Где -Type A, это указание запросить только A записи

Поиск участников RDS фермы

И та и другая выдали вам ip-адреса, в которое разрешается ваше виртуальное имя RDS фермы. В моем примере их два. Эти адреса принадлежат посредникам по подключению (Connection Broker), делаем так же запрос:

nslookup ip-адрес брокера, на выходе вы получите DNS имена, учтите, чтобы только у вас была обратная зона, иначе имя не получите

Стрелками я выделил полученные DNS имена, самое главное мы получили.

определение посредников подключения RDS

Теперь открывает оснастку "Диспетчер серверов" от имени той учетной записи у которой есть права на администрирование RDS фермы. В открывшейся оснастке выберите пункт "Добавить другие серверы для управления"

Добавление серверов в RDS ферму

У вас откроется окно "Добавление серверов", перейдите на вкладку DNS и в поисковой строке укажите нужное имя брокера и нажмите кнопку с изображением лупы. У вас будет осуществлен поиск по базе Active Directory, если такой сервер есть, то он будет отображен в списке. Переносим его в поле выбрано.

Управление RDS фермой

Точно так же поступаем и с остальными посредниками подключений к Remote Desktop Services ферме.

Remote Desktop Services

У вас начнется процесс добавление в вашу оснастку дополнительных серверов. Когда закончится добавление, то вы увидите, что у вас появились серверные роли, в нашем случае "Службы удаленных рабочих столов" и обратите внимание на иконку "Все серверы", тут стало их уже два.

Добавление серверов в диспетчер серверов

Переходим в роль "Службы удаленных рабочих столов", в итоге у вас отобразится список всех участников RDS фермы, и для ее управления вам нужно их всех добавить в данных пул серверов.

Участники пула RDS фермы

В итоге у меня добавились все мои хосты подключения и сервера лицензирования. Как видите стало 20 серверов.

Участники RDS фермы Windwos Server 2012 R2

Переходим в "Службы удаленных рабочих столов", в этот раз у вас уже откроется полноценное управление коллекциями RDS. Вы увидите схему работы, вам будет представлен список всех ваших серверов и кто за какую роль отвечает. Переходим в саму коллекцию.

Общие сведения RDS фермы

Попав в коллекцию удаленных рабочих столов, у вас будет несколько областей:

  • Свойства - тут вы зададите права доступа, лимиты и многое другое
  • Подключения - тут будут отображены все ваши сеансы пользователей, в моем примере, это всего 338 человек, так как уже не рабочий день, а вечер пятницы, в пиковое время, эта цифра в районе 950 подключений.
  • Удаленные приложения RemoteApp
  • Серверы узлов - тут вы сможете запрещать или разрешать новые подключения

Управление RDS фермой в Windows Server 2016

Так же для удобства администрирования серверов, я вам советую создавать отдельные группы по нужным вам признакам и управлять ими, но об этом уже в другой раз. Либо же вы можете создать группу серверов в Remote Desktop Connection Manager.

Создание группы серверов

Надеюсь вы поняли, как производится управление RDS фермой после ее установки. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

Автор - Сёмин Иван

24 Responses to Как управлять RDS фермой Windows Server 2012-16

  1. Ильдар:

    Круто мужик)5 лет админю маленькую конторку, и на 2012r2, RDS на одном сервере, оказывается все может быть намного круче. Спасибо!

  2. Андрей:

    RDS Microsoft давно использую, крутая вещь но и немного закрытая.Бывали моменты кода брокер коллекции сходит с ума. Пользователи не могут подключится к своему сеансу. Прибегали к тому что иногда требовалась влезть в базу sql и командами вычищали подключение, бывало что приходилось всю коллекцию посылать в ребут для очистки следов подключения. Иван у меня к вам такой вопрос: Сталкивались вы с доп ПО (Клиент) сторонней программой по обслуживание Коллекции подключений? Требуется функционал с ограничениями. Например дать Админу доступ к коллекции, подключаться к пользователю, но ограничить права на редактирования(настройки) самого RDS. Возможно есть путь решения с ограничениями обслуживания с родной оснасткой RDS.

  3. Иван Семин:

    Добрый день! К сожалению с таким не сталкивался.

  4. Зохиджон:

    Добрый день, а как сделать чтобы во всех серверах БД инфо было одинаковым ?
    ну пустили скажем всех в доступные серверы, скажем 1С8 поднята у всех серверов, а как сделать чтобы БД у 1С8 который на каждом сервере был идентичным ?

  5. Иван Семин:

    Добрый день! Я правильно понимаю ,чт овы хотите чтобы у всех пользователей список баз был одинаковый при открытии 1С?

  6. Александр:

    При перезагрузке одного из брокеров отваливаются все пользователи на ферме. Как с этим бороться? Какие стандарты по минимальному количеству брокеров, серверов лицензирования и т.д. существуют? Windows 2016 std

  7. Иван Семин:

    А они у вас точно в режиме HA?

  8. Мухамед Юсуров:

    здравствуйте Иван,

    Могу ли я у Вас спросить, мы тестируем POC для одного клинета, и пока не знаем нормально ли то, что при падении одного из RDS в ферме, пользователи которые были на этом сервере в течении 2-3 минут не могут открыть новую сессию или открываеться временный профиль. Такое ощщущение что брокер пытаеться их определить на тот же сервер.
    RDS 2019, Broker HA + SQL Express + сервер с VHDX дисками для профилей
    Может есть какой параметр для оптимизации обработки таких случаев.
    спасибо.

  9. Иван Семин:

    У брокера есть некий кэш, в базе данных в виде активных сессий и он какое-то время пытается людей кидать на предыдущую ноду, их можно отключить вручную и подтюнить значение данного кэша

  10. Андрей:

    Иван Семи. Вопрос по поводу падения хоста остался подвешенным в воздухе. Подскажите пожалуйста, что конкретно надо сделать с кэшем ибо проблема насущная.

  11. Иван Семин:

    Вам нужно сбросить активные подключения к данной базе

  12. Андрей:

    Получается в самой базе делать ничего не надо? Просто оборвать сессию между MSSQL и RDS ConnectionBroker? Простите за назойливость, хочется подробно в процессе разобраться.

  13. Иван Семин:

    Да все верно, саму БД не нужно трогать

  14. Diceman:

    А вот добавить новый сервер в уже существующую коллекцию — вот тут и начинаются танцы с бубном. Надо отключать все действующие политики и настройки, включая лицензирование.

  15. Иван Семин:

    Ни каких танцев не должно быть, я много раз добавлял, все работает как часы

  16. Антон:

    Иван, научите как добавить сервер в существующую коллекцию? С новой коллекцией все понятно. А вот когда имеющихся серверов начинает не хватать — чего делать? Необходимые службы ставятся, роли распределяются, а коллекция не разливается автоматически….

  17. Иван Семин:

    Все просто вы открываете свою коллекцию и где у вас идет список серверов, просто нажимаете добавить, переносите его в область действий и нажимаете установить, все роли сами будут установлены и сервер будет перезагружен

  18. Вадим:

    Иван, спасибо за статью, подскажите, есть терминальная ферма, 3 брокера, 4 Session Hosts, как сделать, например, чтобы определенная группа пользователей в домене, например — Руководство, попадали на определенный Session Host, выделенный в отдельную коллекцию. Спасибо.

  19. Elcin:

    «Предположим у вас виртуальное имя для подключения к удаленному рабочему столу TERM»
    А что значит «виртуальное имя»?

  20. Иван Семин:

    Это имя, которое не привязано к какому-то конкретному компьютеру, считайте это алиасом или точкой входа

  21. Elcin:

    Иван, спасибо, что ответили и спасибо за ваши статьи.
    Только я все равно не понял, что я должен пинговать через nslookup, чтобы найти и собрать свою RDS ферму?

  22. Иван Семин:

    В большинстве случаев пингуется DNS имя, которое ссылается на брокеров, простой пример у вас есть RDS ферма rds.pyatilistnik.org это имя в ссылается на два брокера broker1 и broker2. Почитайте статью у меня Remote Desktop Services High Availability

  23. Андрей Сергеевич:

    То есть если у меня имеется RDP сервер 2012. И я засетаплю на другом хосте «чистый» сервак, и добавлю его в ферму, оно доконфигурирует ему настройки?
    Хм.. А получится ли вся эта история если склонировать текущий RDP, с заменой WIN имени, активации лицензии и так далее…

  24. Сергей:

    Подскажите, как удалить профиль пользователя коллекции сеансов?
    У нас файлы с профилями живут на сетевой папке, в свойствах сервера эти профили не отображаются, в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList тоже не отображаются.
    Можно конечно удалить файл, потом при входе пользователя появиться ошибка, и уже думать что с ней делать, но это не то.
    Уже 2ой час шерстю интернет, никто не опубликовал простого ответа на этот вопрос.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *