Remote Desktop Services 2012 Connection Broker с высокой доступностью

Remote Desktop Connection Broker (RD Connection Broker) – это функционал роли терминального сервера Windows Server. RD Connection Broker позволяет равномерно распределить нагрузку между серверам в ферме Remote Desktop (при подключении к RDS пользователя перенаправляет на наименее загруженный сервер), обеспечить доступ пользователей к VDI и RemoteApp, а также реализует возможность переподключения пользователей к своим сессиям (при подключении к новому серверу RDS, RDCB проверяет наличие незавершенной сессии на других серверах фермы, и в случае ее обнаружения новая сессия не создается, а пользователь перенаправляется в старую сессию).

В этой статье мы рассмотрим процесс настройки отказоустойчивого высоко-доступного экземпляра RD Connection Broker, обеспечивающего свой функционал при выходе из строя одного из серверов с ролью RDCB.

Схема Remote Desktop Connection Broker на Windows 2012В отличии от реализации RDCB в предыдущих версиях Windows Server, Connection Broker в Windows Server 2012 обеспечивает высокую доступность в режиме Active/Active, когда каждый из серверов RDCB является активным и обрабатывает входящие запросы. Это позволяет обеспечить высокую доступность и масштабируемость RDCB в больших фермах Remote Desktop. Для хранения данных RDCB используется БД на MS SQL Server.

Примечание. В Windows Server 2008 R2 поддерживалась кластеризация службы RDCB только в режиме Active/Passive. Т.е. для фермы RD серверов поддерживался только один активный сервер Connection Broker.

Требования для внедрения отказоустойчивого RDCB

  • Как минимум 2 сервера с ролью RDCB (под ОС Windows Server 2012 / 2012 R2)
  • SQL Server ( редакция SQL server 2008 R2 Standard или выше) c минимум 4 Гб RAM
  • Наличие установленного SQL Server Native Client
  • Полные права серверов RD Connection Broker на БД SQL и каталог установки SQL
  • Минимум один сервер с ролью Remote Desktop Session Host в ферме
  • Разрешенные исключения для портов SQL server в фаерволе Windows
Важно. Перед началом создания отказоустойчивой конфигурации RDCB, убедитесь, что эта роль установлена только на одном из серверов.

Всем серверам, на которых будут установлены роли RD Connection Broker необходимо назначить статические ip-адреса и включить в домен Active Drectory.

  • RDCB1.domain.ru — 172.25.104.71
  • RDCB2.domain.ru — 172.25.104.171

В Active Directory создадим отдельную группу безопасности RDS Connection Brokers, в которую нужно включить все сервера RDCB.

группа Active Directory: RDS Connection BrokersДалее на отдельном сервере (или SQL-кластере) устанавливается SQL Server версии 2008 R2 или 2012 Standard.

На SQL сервере с помощью SQL Server Management Studio в разделе Security нужно создать новый login и предоставить доменной группе RDCB права с возможностью создания и редактирования баз данных. Также этой группе нужно предоставить полные права на каталог установки SQL.

SQL Server разрешения для группы rdcbНа SQL сервере нужно создать каталог, в котором будут храниться файлы БД, например, C:\SQLDB, и предоставить этой же группе полные права на каталог.

На всех серверах с ролью RDCB необходимо установить SQL Server Native Client. Его нужно скачать отдельно с сайта MS, либо запустить прямо с установочного диска (на установочном диске SQL Server 2012 он хранится в каталоге \1033_ENU_LP\x64\Setup\x64\sqlncli.msi).

SQL Server Native ClientДля SQL server 2008 R2 нужен SQL native client 10, для SQL Server 2012 — SQL Native client 11.

В брандмауэра SQL-сервера создадим новое правило, открывающее порт TCP 1433 для доменных машин. Сделать это можно так:

netsh advfirewall firewall add rule name = SQLSRVPort dir = in protocol = tcp action = allow localport = 1433 remoteip = localsubnet profile = DOMAIN

Следующий шаг – создание в DNS зоне A записей для реализации балансировки нагрузки (Round Robin) между серверами RD Connection Broker. Например, DNS имя нашей фермы RDCB будет RDCB_lb. Создадим две следующие A записи вида:

  • A         RDCB_lb.domain.ru             172.25.104.71 (ip адрес RDCB1)
  • A         RDCB_lb.domain.ru             172.25.104.171 (ip адрес RDCB2)

DNS Round RobinС помощью консоли Server Manager на первом из серверов RDCB устанавливаем роль RD Connection Broker (если еще не установлена).

После установки роли RDCB используется маленькая локальная база SQL, хранящаяся на локальном диске сервера RD Connection Broker в каталоге c:\windows\rdcbDb\.

База данных RDCB rdcms.mdfВ этой базе хранится информация о ферме и терминальный сессиях пользователей. Так как она расположена на локальной машине, другие сервера RDCB не смогут ее использовать. Для создания HA для RDCB нужно перенести ее на выделенный SQL сервер, на котором она будет доступна другим серверам.

Для переноса БД на выделенный SQL Server нужно перейти на вкладку управления Remote Desktop Services -> Overview. Для запуска мастера создания отказоустойчивой конфигурации RD Connection Broker, щёлкнем ПКМ по изображению роли RD Connection Broker и выбираем пункт Configure High Availability. Запустившийся мастер должен создать БД на MS SQL Server и перенести в нее локальную конфигурацию.

Connection Broker: Configure High AvailabilityЗаполним три поля:

  • Database Connection String – строка подключения с базе на SQL сервере.Для SQL 2008 R2: DRIVER=SQL Server Native Client 10.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>

    Для SQL 2012:DRIVER=SQL Server Native Client 11.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>

  • Folder to store database files – каталог, в котором будут храниться файла БД: C:\SQLDB. Папка находится на SQL сервере, мы ранее ее создали и предоставили доступ группе серверов RDCB.
  • DNS Round Robin name: FQDN имя фермы RDCB, для которой мы создавали записи в DNS для Round Robin (в нашем примере это RDCB_lb). Именно по этому адресу будут обращаться RDP клиенты при подключении к серверам RD Connection Broker.

Configure RD Connection Broker for High AvailabilityЗатем откроем SQL Server Manager на сервере СУБД и убедимся, что была создана новая база. Переходим на вкладку Security, выберем ранее добавленную группу — > свойства, и в качестве БД по-умолчанию выбираем базу RDS. Потом отмечаем роли db_owner и public.

БД rdcbdataДля обеспечения высокой доступности на случай выхода из строя первого сервера, необходимо в текущую конфигурацию добавить второй узел Connection Broker.

Для этого щелкаем ПКМ по иконке RD Connection Broker, и выбираем пункт Add RD Connection Broker Server.

Добавить в ферму второй сервер с ролью RD Connection BrokerУказываем имя второго сервера, на котором нужно установить роль Connection Broker и жмем Далее.

rdcb-second-serverНа этом настройка High Availability конфигурации Connection Broker завершена.

Итак, мы создали высоко доступный сервис RD Connection Broker на Windows Server 2012. Вы можете протестируйте доступность RDCB, отключив один из серверов фермы RDCB. В этом сценарии точкой отказа остается SQL server. Отказоустойчивость SQL сервера можно реализовать с помощью HA SQL кластера или зеркалирования базы SQL.


Предыдущая статья Следующая статья


Комментариев: 15 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)