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.

На відміну від реалізації 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.

Далі на окремому сервері (або SQL-кластері) встановлюється SQL Server версії 2008 R2 або 2012 Standard.

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

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

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

Для 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)

За допомогою консолі Server Manager на першому з серверів RDCB встановлюємо роль RD Connection Broker (якщо ще не встановлена).

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

У цій базі зберігається інформація про ферму і термінальний сесіях користувачів. Так як вона розташована на локальній машині, інші сервера RDCB не зможуть її використовувати. Для створення HA для RDCB потрібно перенести її на виділений SQL сервер, на якому вона буде доступна іншим серверам.

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

Заповнимо три поля:

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

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

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

Потім відкриємо SQL Server Manager на сервері СУБД і переконаємося, що була створена нова база. Переходимо на вкладку Security, виберемо раніше додану групу -> властивості, і в якості БД за замовчуванням вибираємо базу RDS. Потім відзначаємо ролі db_owner і public.

Для забезпечення високої доступності на випадок виходу з ладу першого сервера, необхідно в поточну конфігурацію додати другий вузол Connection Broker.

Для цього клацаємо ПКМ по іконці RD Connection Broker, і вибираємо пункт Add RD Connection Broker Server.

Вказуємо ім'я другого сервера, на якому потрібно встановити роль Connection Broker і тиснемо Далі.

На цьому настройка High Availability конфігурації Connection Broker завершена.

Отже, ми створили високо доступний сервіс RD Connection Broker на Windows Server 2012. Ви можете протестуйте доступність RDCB, відключивши один з серверів ферми RDCB. У цьому сценарії точкою відмови залишається SQL server. Відмовостійкість SQL сервера можна реалізувати за допомогою HA SQL кластера або віддзеркалення бази SQL.