Remote Desktop Connection Broker (RD Connection Broker), ранее известный под именем Terminal Services Session Broker (TS Session Broker), — это роль сервера Windows 2008 R2, предоставляющая следующий функционал:
- Позволяет пользователям переподключаться к своим текущим сессиям в ферме серверов RD Session Host (терминальные сервера Windows). Тем самым предотвращается создание новых пользовательских подключений на других серверах фермы при наличии подключения в состоянии «disconnected».
- Позволяет равномерно распределить нагрузку между серверами терминальной фермы RD.
RD Connection Broker отслеживает все сессии пользователей в ферме терминальных серверов Windows Server 2008 R2. База данных RD Connection Broker хранит сессионную информацию, включая имена серверов RD Session Host, на которых находятся сессии пользователя, идентификатор сессии (session ID) и имя пользователя, ассоциированное с сессией. Служба RD Connection Broker использует эту информацию для перенаправления пользователя, уже имеющего активную терминальную сессию на тот сервер, на котором она запущена.
В том случае, если пользователь отключился (disconnect) от своей сессии (из-за сетевого сбоя или осознанно), все приложения, которые он запустил на сервере продолжают работать. И когда пользователь пытается вновь подключиться к ферме терминалов, Connection Broker определяет сервер, на котором уже имеется сессия пользователя и перенаправляет подключение пользователя именно туда.
Балансировка нагрузки RD Connection Broker Load Balancing, позволяет при подключении пользователя (предполагается, что у него не осталось подключений в состоянии disconnect) к ферме, перенаправить его на наименее загруженный сервер фермы (с наименьшим количеством пользовательских сессий). Чтобы более гибко управлять балансировкой нагрузки в ферме терминальных серверов, администратор может в зависимости от вычислительных мощностей серверов фермы назначить каждому из них относительный вес.
Компоненты RD Connection Broker
Для построения фермы терминальных серверов с балансировкой нагрузки нужны два компонента:
Сервер RD Connection Broker . Это сервер с запущенной службой Remote Desktop Connection Broker, который отслеживает сессии пользователей и осуществляет балансировку нагрузки между членами фермы RD. Существует имя сервера RD Connection Broker, с помощью которого можно отнести конкретный терминальный сервер к той или иной ферме.
Сервера RD Session Host , настроенные на использование Connection Broker. Это рядовые члены терминальной фермы. Для того, чтобы являться членом фермы под управление RD Connection Broker, терминальный сервер должен соответствовать следующим критериям:
- На сервере должна быть установлена роль RD Session Host.
- Сервер должен быть членом домена Active Directory.
- Сервер должен входить в локальную группу «Session Broker Computers» на сервере с ролью RD Connection Broker.
Последовательность настройки терминальной фермы RD Connection Broker с балансировкой нагрузки:
- Установите роль RD Connection Broker на сервере (это может быть выделенный сервер, или один из членов будущей фермы).
- Добавьте все терминальные сервера в локальную группу безопасности «Session Broker Computers» на сервере с ролью RD Connection Broker.
- Настройте всех членов фермы на использование сервера RD Connection Broker
- Настройте записи DNS для реализация механизма «DNS round robin»
Шаг 1 : Установка роли Connection Broker
Если роль Remote Desktop Services уже установлена:
- Разверните роль Remote Desktop Services.
- Нажмите кнопку Add Role Services.
- На странице служб роли выберите Remote Desktop Connection Broker и нажмите Next
В моем стенде 2 сервера, настроенных следующим образом:
RDS02
Шаг 2 : Добавляем сервера RD Session Host в локальную группу Session Broker Computers.
Для этого на сервер с установленной ролью RD Connection Broker :
- Нажмите Start -> Administrative Tools -> Computer Management.
- В левой панели разверните узел Local Users and Groups, и выберите Groups.
- Найдите локальную группу Session Broker Computers , и выберите пункт Properties.
- На вкладке General, нажмите Add.
- В окне выбора нажмите кнопку Object Types.
- Отметьте пункт Computers, и нажмите OK.
- Последовательно укажите и добавьте имена всех серверов, которые будут участвовать в терминальной ферме
- Нажмите OK.
На RDS01
Шаг 3 : Включаем сервера RD Session Host в ферму RD Connection Broker , настраиваем балансировку нагрузки
На каждом из терминальных серверов RD Session Host выполните следующее:
- На сервер RD Session Host откройте консоль Remote Desktop Session Host Configuration (Start ->Administrative Tools->Remote Desktop Services -> Remote Desktop Session Host Configuration).
- В разделе Edit settings, щелкните по полю Member of farm in RD Connection Broker.
- На вкладке RD Connection Broker нажмите кнопку Change Settings.
- В окне RD Connection Broker Settings выберите Farm member.
- Введите имя сервера с ролью RD Connection Broker.
- В окне Farm name, укажите имя создаваемой фермы.
- Чтобы активировать балансировку нагрузки в ферме RD Connection Broker отметьте опцию Participate in Connection Broker Load-Balancing.
- В случае необходимости можно настроить относительный вес каждого из серверов в ферме (Server weight). Значение по умолчанию — 100. В том случае, если вы зададите вес одного сервера 100, а другого 50, это будет означать, что сервер с меньшим весом будет получать в 2 раза меньше подключений.
- По умолчанию используется перенаправление по IP адресу (IP address redirection), также можно использовать перенаправление по токену (Use token redirection).
Я выполнил соответствующую настройку на обоих серверах RDS01 и RDS02
Task 4 : Настройка DNS round robin
Для балансировки нагрузки в терминальных фермах RD Session Host, можно использовать балансировку нагрузки RD Connection Broker Load Balancing совместно с функцией DNS round robin. Во втором случае, вы должны для каждого из серверов членов фермы создать DNS запись (тип A), создающую соответствие между IP адресом каждого сервера RD Session Host и DNS именем фермы.
Я опишу процедуру настройки DNS записей на контроллере домена Windows Server 2008 R2. Сразу стоит отметить, что для выполнения данной процедуры у вас должны быть права Domain Admins/ Enterprise Admins / DNS Admins.
- Откройте оснастку DNS (Start->Administrative Tools-> DNS).
- Разверните сервер, и в зонах прямого просмотра (Forward Lookup Zones), разверните ветку с именем вашего домена.
- Щелкните по зоне и выберите New Host (A or AAAA).
- В поле Name укажите имя фермы (именно фермы, а не конкретного сервера в ней), а в поле IP address укажите ip адрес первого сервера в ферме.
Эти действия необходимо повторить для каждого из серверов-членов фермы RDS (в каждом случае меняться будет только ip адрес)
Проверим, что наша ферма создалась, для чего откройте Remote Desktop Services Manager. Щелкните правой кнопкой по Remote Desktop Services Manager и выберите Import from RD Connection Broker и укажите FQDN имя сервера с ролью Connection broker(в моем случае RDS01.remontka.com)
Теперь в дереве RD Connection Broker появится новая терминальная ферма!