
Брокер подключений к удаленным рабочим столам (RDCB) это компонент роли Remote Desktop Services (RDS) в Windows Server. RD Connection Broker позволяет балансировать нагрузку на серверы фермы RDS (при подключении к ферме RDS пользователь перенаправляется на наименее загруженный хост RDS), обеспечивает доступ пользователей к VDI и RemoteApps, управляет конфигурацией хостов RDS в ферме. Также RDCB позволяет пользователям повторно подключаться к своим сессиям: при подключении к RDS RDCB проверяет, нет ли незавершенных сессий на других серверах фермы, и перенаправляет их на предыдущие сессии.
В этой статье мы покажем, как настроить отказоустойчивый экземпляр RD Connection Broker с высокой доступностью , сохраняя свои функции в случае выхода из строя одного из серверов с ролью RDCB. Для хранения данных Remote Desktop Connection Broker будет использоваться сервер базы данных под управлением MS SQL Server 2019. Чтобы избежать единой точки отказа, база данных RDCB SQL также должна быть развернута в отказоустойчивой конфигурации. В этом примере мы будем использовать два узла SQL Server с настроенной группой доступности SQL Always On Availability Group.
Требования к RD Connection Broker High Availability и поддерживаемые конфигурации:
- Не менее 2 серверов с ролью RD Connection Broker под управлением Windows Server 2022/2019;
- Если вы хотите использовать высокую доступность для базы данных RDCB SQL, вам потребуется как минимум 2 узла с SQL Server 2014 или новее (редакция Standard или Enterprise). В этом примере мы установили отдельный экземпляр MS SQL Server 2019 Enterprise на каждый из серверов. Если вы не собираетесь использовать базу данных HA SQL, достаточно одного сервера с SQL Express;
- Установите SQL Server Native Client на серверы с ролью RD Connection Broker;
- Предоставьте полный контроль над базой данных SQL и папкой установки SQL серверам RD Connection Broker;
- Как минимум один сервер с ролью Remote Desktop Session Host в ферме.
Мы создадим высокодоступную конфигурацию RDCB из двух серверов. На обоих из них будет установлена роль RD Connection и SQL Server. Высокая доступность и аварийное восстановление базы данных SQL Server будут обеспечиваться группой SQL Server Always On Availability.
Подготовка инфраструктуры для Remote Desktop Connection Broker
Назначьте статические IP-адреса всем серверам с ролью RD Connection Broker и подключите их к домену Active Directory.
srv-rds1.woshub.com
—192.168.13.20
srv-rds2.woshub.com
—192.168.13.21
Создание новой группы безопасности в Active Directory (MUN_RD_Connection_Brokers
) и добавьте в нее все серверы RDCB. Группу можно создать с помощью оснастки ADUC (dsa.msc
) или с помощью PowerShell:
New-ADGroup "MUN_RD_Connection_Brokers" -path 'OU=Groups,OU=Berlin,DC=woshub,DC=com' -GroupScope Global -PassThru –Verbose
Добавьте в группу два хоста RDS:
Add-AdGroupMember -Identity "MUN_RD_Connection_Brokers" -Members srv-rds1$,srv-rds2$
Создайте в DNS записи A для имени кластера вашей фермы RDS (в нашем примере это MUNRDCB). DNS-записи должны содержать IP-адреса всех серверов RDCB. Это позволит балансировать нагрузку (Round Robin) между серверами RD Connection Broker. Я создал следующие записи:
- A —
MUNRDCB.woshub.com 192.168.13.20
(IP-адрес первого сервера RDCB — srv-rds1.woshub.com) - A —
MUNRDCB.woshub.com 192.168.13.21
( IP-адрес второго сервера RDCB — srv-rds2.woshub.com)
Вы можете создавать записи A в DNS с помощью PowerShell:
Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.20 -ZoneName woshub.com
Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.21 -ZoneName woshub.com
Установите SQL Server Native Client на всех серверах с ролью RDCB. Вы можете загрузить SQL Server Native Client для вашей версии SQL Server с сайта Microsoft или скопировать его из установочного образа SQL Server (D:\1033_ENU_LP\x64\Setup\x64\sqlncli.msi
).
Затем выполните SQL Server Management Studio и подключитесь к своему первому SQL-серверу, на котором будет создана общая база данных Connection Broker (позже мы перенесем ее в группу высокой доступности Always On).
Откройте Безопасность -> Логины чтобы добавить новый логин. Нажмите кнопку Поиск, выберите свой домен в Локации, набор Типы объектов = Группы и найдите доменную группу MUN_RD_Connection_Brokers.
Назначить dbcreator
и sysadmin
роли в группе.
Откройте порты SQL Server в брандмауэре Windows Defender (по умолчанию для подключения к Microsoft SQL Server используется порт TCP 1433).
Установка ролей служб удаленных рабочих столов на Windows Server
Затем необходимо установить роли RDS на ваши серверы. Откройте консоль Server Manager, выберите Manage -> Add roles and Features -> Установка служб удаленных рабочих столов.
Выберите Стандартное развертывание -> Развертывание настольных компьютеров на основе сеансов.
Выберите один сервер, на который вы хотите установить роль RD Connection Broker. Устанавливать роль RDCB на второй сервер сейчас не нужно.
Установите роль RD Web Access на том же сервере. Установите роль RD Session Host на оба сервера.
Дождитесь завершения установки ролей RDS.
После завершения установки ролей добавьте хосты RDCB и учетные записи ‘NT AUTHORITY\NETWORK SERVICE’ в локальную сеть Серверы управления RDS группу на обоих серверах.
Во время установки роли RD Connection Broker на первом сервере фермы будет создана локальная база данных SQL в C:\Windows\rdcbDb\rdcms.mdf
на локальном диске сервера RD Connection Broker.
В этой базе данных хранится информация о ферме и сеансах терминальных пользователей. Поскольку она расположена на локальном компьютере, другие серверы RDCB не смогут ее использовать. Чтобы обеспечить RDCB HA, необходимо перенести ее на выделенный SQL-сервер, где другие серверы смогут получить к ней доступ.
Развертывание RD Connection Broker High Availability
Перед добавлением второго узла с ролью RD Connection Broker в ферму необходимо перенести локальную базу данных RDCB на внешний SQL Server.
Чтобы перенести базу данных Connection Broker с локальной базы данных на выделенный SQL Server, откройте Server Manager -> Службы удаленных рабочих столов -> Обзор. Чтобы запустить мастер настройки отказоустойчивости брокера подключений к удаленному рабочему столу, щелкните изображение роли RD Connection Broker и выберите Настроить высокую доступность.
Затем выберите Выделенный сервер баз данных. Укажите параметры подключения к SQL Server, куда будет перенесена локальная база данных RDCB.
Заполните два поля:
- DNS имя кластера брокера подключений RD: FQDN-имя вашей фермы RDCB, для которой мы создали записи Round Robin DNS (в нашем примере это
MUNRDCB.woshub.com
). Это адрес, который клиенты RDP будут использовать при подключении к серверам RD Connection Broker; - Строка подключения к базе данных — укажите строку подключения к базе данных SQL Server. Вот формат строки:
DRIVER=SQL Server Native Client 11.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>
В этом примере SQL Server Name — это имя SQL-сервера, на котором вы хотите создать базу данных, а DB Name — это имя вашей новой базы данных:DRIVER=SQL Server Native Client 11.0;SERVER=srv-rds2.woshub.com;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCB_DB
Щелкните . Настроить в следующем шаге.
Затем подключитесь к экземпляру SQL Server с помощью SQL Management Studio и убедитесь, что новая база данных RDCB_DB была создана.
Предоставьте обоим серверам RD Connection Broker права на запись в базу данных. Открыть базу данных -> RDCB_DB -> Безопасность -> Пользователи -> Новый пользователь.
Создайте двух новых пользователей: BUILTIN\RDS Management Servers
и woshub\MUN_RD_Connection_Brokers
. Грант и db_owner
и public
привилегии.
Чтобы обеспечить высокую доступность в случае отказа первого сервера, добавьте к текущей конфигурации второй сервер RD Connection Broker.
Щелкните значок RD Connection Broker и выберите Добавить сервер RD Connection Broker.
Введите имя второго сервера, на который вы хотите установить роль Connection Broker, и нажмите кнопку Next. После этого в списке хостов фермы RDS появятся два сервера с ролью RDCB. Вы также увидите RD Connection Broker (режим высокой доступности) сообщение.
На этом настройка высокой доступности брокера подключений к удаленному рабочему столу завершена.
Настройка конфигурации обхода отказа SQL Server для RD Connection Broker HA
Затем настройте конфигурацию обхода отказа для базы данных SQL. Пока она работает только на одном сервере. Поместите базу данных RD Connection Broker в кластер SQL. Это может быть либо классический кластер Microsoft Failover Cluster, либо группа высокой доступности SQL Server Always On.
Базовая настройка Always On в SQL Server 2019 описана в этой статье. Здесь мы покажем только основные шаги:
- Установите Failover Clustering роль и постройте кластер SQL-RDS из двух хостов RDCB со свидетелем и кворумом на любом файловом сервере (это описано в статье о Always On, упомянутой выше);
- Включите опцию Включить группы доступности Always On в SQL Server Configuration Manager настройки на обоих серверах;
- Запустите мастер создания новой группы доступности;
- Введите имя группы доступности (SQL-RDS);
- Выберите базу данных, которую вы хотите поместить в группу высокой доступности (RDCB_DB);
- Добавьте второй SQL-сервер в группу высокой доступности и установите флажок Автоматическое обход отказа вариант;
- На Слушатель На вкладке введите имя и IP-адрес, которые клиенты будут использовать для подключения к базе данных в вашей группе Always On (SQL-RDSDB-liste);
- Откройте Failover Cluster Manager оснастка (
FailoverClusters.SnapInHelper.msc
) и убедитесь, что новый ресурс появился в списке ролей.
Затем измените строку подключения для SQL-сервера с базой данных RDCB в настройках Connection Broker. Строку подключения RDCB можно изменить только через PowerShell:
Set-RDDatabaseConnectionString [-DatabaseConnectionString] <String> [[-ConnectionBroker] <String>] [ <CommonParameters>]
В моем примере команда для переключения фермы RDCB в группу высокой доступности базы данных SQL выглядит следующим образом:
Set-RDDatabaseConnectionString -ConnectionBroker srv-rds1.woshub.com -DatabaseConnectionString "DRIVER=SQL Server Native Client 11.0;SERVER=SQL-RDSDB-liste;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCB_DB"
Если команда не выдает ошибки, значит, все в порядке. Теперь ваш кластер RDS Connection Broker настроен на использование группы доступности SQL Always On.
Откройте настройки фермы RDS и убедитесь, что для HA используется новая строка подключения (Tasks -> Edit Deployment Properties).
Итак, мы создали службу RDS Connection Broker высокой доступности на Windows Server 2022/2019. Вы можете проверить высокую доступность RDCB, отключив один из хостов в ферме RDS.
Затем можно продолжить настройку фермы RDS, развернуть сервер лицензирования RDS, добавить серверы RDSH, настроить коллекции RDS, опубликовать RemoteApps, включить веб-клиент HTML5 для RDS и т. д.