Настройка высокой доступности RDS Connection Broker на Windows Server

Брокер подключений к удаленным рабочим столам (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.

Брокер подключений к удаленному рабочему столу высокой доступности на Windows Server 2019

В Windows Server 2012 и более новых версиях RDS Connection Broker обеспечивает высокую доступность в режиме Active/Active. В этом режиме все серверы RDCB активны и могут обрабатывать входящие соединения. Это позволяет обеспечить высокую доступность и масштабируемость RDCB в больших средах удаленных рабочих столов.

Подготовка инфраструктуры для Remote Desktop Connection Broker

Назначьте статические IP-адреса всем серверам с ролью RD Connection Broker и подключите их к домену Active Directory.

  • srv-rds1.woshub.com192.168.13.20
  • srv-rds2.woshub.com192.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$

группа безопасности rd_conneciton_broker в active directory

Создайте в 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

Брокер соединений RDS по кругу DNS A records

Установите SQL Server Native Client на всех серверах с ролью RDCB. Вы можете загрузить SQL Server Native Client для вашей версии SQL Server с сайта Microsoft или скопировать его из установочного образа SQL Server (D:\1033_ENU_LP\x64\Setup\x64\sqlncli.msi).

Microsoft SQL Server Native Client for RD Connection Broker Connectivity

Затем выполните SQL Server Management Studio и подключитесь к своему первому SQL-серверу, на котором будет создана общая база данных Connection Broker (позже мы перенесем ее в группу высокой доступности Always On).

Откройте Безопасность -> Логины чтобы добавить новый логин. Нажмите кнопку Поиск, выберите свой домен в Локации, набор Типы объектов = Группы и найдите доменную группу MUN_RD_Connection_Brokers.

Разрешения SQL Server RDS

Назначить dbcreator и sysadmin роли в группе.

Разрешения базы данных RDCB SQL

Откройте порты SQL Server в брандмауэре Windows Defender (по умолчанию для подключения к Microsoft SQL Server используется порт TCP 1433).

Установка ролей служб удаленных рабочих столов на Windows Server

Затем необходимо установить роли RDS на ваши серверы. Откройте консоль Server Manager, выберите Manage -> Add roles and Features -> Установка служб удаленных рабочих столов.

установка фермы служб удаленных рабочих столов

Установка роли RDS на автономный хост описана в этой статье.

Выберите Стандартное развертывание -> Развертывание настольных компьютеров на основе сеансов.

Развертывание RDS на основе сеансов

Выберите один сервер, на который вы хотите установить роль RD Connection Broker. Устанавливать роль RDCB на второй сервер сейчас не нужно.

добавление узла брокера подключений rd в развертывание rds

Установите роль RD Web Access на том же сервере. Установите роль RD Session Host на оба сервера.

установка хостов сеансов RDS

Дождитесь завершения установки ролей RDS. установка компонентов фермы RDS

После завершения установки ролей добавьте хосты RDCB и учетные записи ‘NT AUTHORITY\NETWORK SERVICE’ в локальную сеть Серверы управления RDS группу на обоих серверах.

Серверы управления RDS (локальная группа безопасности)

Во время установки роли RD Connection Broker на первом сервере фермы будет создана локальная база данных SQL в C:\Windows\rdcbDb\rdcms.mdf на локальном диске сервера RD Connection Broker.

rdcms.mdf - Брокер подключений на внутренней базе данных Windows (WID)

В этой базе данных хранится информация о ферме и сеансах терминальных пользователей. Поскольку она расположена на локальном компьютере, другие серверы RDCB не смогут ее использовать. Чтобы обеспечить RDCB HA, необходимо перенести ее на выделенный SQL-сервер, где другие серверы смогут получить к ней доступ.

Развертывание RD Connection Broker High Availability

Перед добавлением второго узла с ролью RD Connection Broker в ферму необходимо перенести локальную базу данных RDCB на внешний SQL Server.

Чтобы перенести базу данных Connection Broker с локальной базы данных на выделенный SQL Server, откройте Server Manager -> Службы удаленных рабочих столов -> Обзор. Чтобы запустить мастер настройки отказоустойчивости брокера подключений к удаленному рабочему столу, щелкните изображение роли RD Connection Broker и выберите Настроить высокую доступность.

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

Строка подключения и DNS-имя для кластера RD Connection Broker Cluster

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

Щелкните . Настроить в следующем шаге.

Затем подключитесь к экземпляру SQL Server с помощью SQL Management Studio и убедитесь, что новая база данных RDCB_DB была создана.

запуск базы данных RDCB на SQL Server

Предоставьте обоим серверам RD Connection Broker права на запись в базу данных. Открыть базу данных -> RDCB_DB -> Безопасность -> Пользователи -> Новый пользователь.

Создайте двух новых пользователей: BUILTIN\RDS Management Servers и woshub\MUN_RD_Connection_Brokers. Грант и db_owner и public привилегии.

предоставление SQL-разрешений RD Connection Broker

Чтобы обеспечить высокую доступность в случае отказа первого сервера, добавьте к текущей конфигурации второй сервер RD Connection Broker.

Щелкните значок RD Connection Broker и выберите Добавить сервер RD Connection Broker.

Добавление второго сервера RD Connection Broker

Введите имя второго сервера, на который вы хотите установить роль Connection Broker, и нажмите кнопку Next. После этого в списке хостов фермы RDS появятся два сервера с ролью RDCB. Вы также увидите RD Connection Broker (режим высокой доступности) сообщение.

На этом настройка высокой доступности брокера подключений к удаленному рабочему столу завершена.

несколько узлов RD Connection Broker в ферме RDS

Настройка конфигурации обхода отказа SQL Server для RD Connection Broker HA

Затем настройте конфигурацию обхода отказа для базы данных SQL. Пока она работает только на одном сервере. Поместите базу данных RD Connection Broker в кластер SQL. Это может быть либо классический кластер Microsoft Failover Cluster, либо группа высокой доступности SQL Server Always On.

Базовая настройка Always On в SQL Server 2019 описана в этой статье. Здесь мы покажем только основные шаги:

  1. Установите Failover Clustering роль и постройте кластер SQL-RDS из двух хостов RDCB со свидетелем и кворумом на любом файловом сервере (это описано в статье о Always On, упомянутой выше);
  2. Включите опцию Включить группы доступности Always On в SQL Server Configuration Manager настройки на обоих серверах;Включение групп доступности Always On на SQL Server
  3. Запустите мастер создания новой группы доступности;
  4. Введите имя группы доступности (SQL-RDS);
  5. Выберите базу данных, которую вы хотите поместить в группу высокой доступности (RDCB_DB); Выбор базы данных RDCB для группы доступности SQL Always On
  6. Добавьте второй SQL-сервер в группу высокой доступности и установите флажок Автоматическое обход отказа вариант; включение автоматического обхода отказа для базы данных RDCB
  7. На Слушатель На вкладке введите имя и IP-адрес, которые клиенты будут использовать для подключения к базе данных в вашей группе Always On (SQL-RDSDB-liste); Установите DNS-имя и IP-адрес слушателя AlwaysOn
  8. Откройте Failover Cluster Manager оснастка (FailoverClusters.SnapInHelper.msc) и убедитесь, что новый ресурс появился в списке ролей. Запуск базы данных RD Connection на отказоустойчивом кластере WIndows

Затем измените строку подключения для 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"

Set-RDDatabaseConnectionString - powershell

Если команда не выдает ошибки, значит, все в порядке. Теперь ваш кластер RDS Connection Broker настроен на использование группы доступности SQL Always On.

Откройте настройки фермы RDS и убедитесь, что для HA используется новая строка подключения (Tasks -> Edit Deployment Properties).

Строка подключения RDCB указывает на кластер SQL Server Cluster

Итак, мы создали службу RDS Connection Broker высокой доступности на Windows Server 2022/2019. Вы можете проверить высокую доступность RDCB, отключив один из хостов в ферме RDS.

Затем можно продолжить настройку фермы RDS, развернуть сервер лицензирования RDS, добавить серверы RDSH, настроить коллекции RDS, опубликовать RemoteApps, включить веб-клиент HTML5 для RDS и т. д.

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

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