So richten Sie Hochverfügbarkeit für den RDS-Verbindungsbroker unter Windows Server ein

Die Einrichtung eines ausfallsicheren Remotedesktopverbindungsbrokers (RDCB) mag aufwendig erscheinen, ist aber unerlässlich, wenn Ihnen die Verfügbarkeit Ihrer Systeme wichtig ist. Insbesondere, wenn Sie verhindern möchten, dass der Ausfall eines einzelnen Servers Ihre gesamte RDS-Farm lahmlegt. Diese Anleitung beschreibt, wie Sie den RD-Verbindungsbroker hochverfügbar machen, die Backend-Datenbank auf SQL Server Always On umstellen und generell diesen Single Point of Failure beseitigen. Da Windows es einem natürlich unnötig schwer macht, sollten Sie sich auf einige SQL-Konfigurationen und DNS-Anpassungen einstellen. Die Grundidee: Installieren Sie Ihren RDCB auf zwei Servern, verbinden Sie diese mit einem gemeinsamen SQL-Server und stellen Sie sicher, dass beide Server unter allen Umständen verfügbar sind. Rechnen Sie mit etwas Geduld und einigen Befehlszeilen-Eingaben, aber letztendlich lohnt es sich, keine Benutzer zu verlieren, wenn ein Server ausfällt.

Wie man einen Single Point of Failure bei RDCB in einer Hochverfügbarkeitskonfiguration behebt

Infrastruktur für den Remote Desktop Connection Broker vorbereiten

  • Stellen Sie sicher, dass jeder Server mit der RDCB-Rolle eine statische IP-Adresse besitzt und Ihrer AD-Domäne beigetreten ist. Zum Beispiel:
    • srv-rds1.woshub.com192.168.13.20
    • srv-rds2.woshub.com192.168.13.21
  • Es empfiehlt sich, eine dedizierte AD-Sicherheitsgruppe namens MUN_RD_Connection_Brokers zu erstellen. Dies kann über PowerShell erfolgen:
    New-ADGroup "MUN_RD_Connection_Brokers" -path 'OU=Groups, OU=Berlin, DC=woshub, DC=com' -GroupScope Global -PassThru -Verbose
  • Fügen Sie Ihre RDCB-Server dieser Gruppe hinzu:
    Add-AdGroupMember -Identity "MUN_RD_Connection_Brokers" -Members srv-rds1$, srv-rds2$

Erstellen Sie DNS-A-Einträge für den Namen Ihrer Load-Balanced-Farm, z. B.MUNRDCB.woshub.com, die auf beide Server verweisen. Dadurch wird sichergestellt, dass das DNS-Round-Robin-Verfahren funktioniert. Sie können dies über PowerShell durchführen:

Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.20 -ZoneName woshub.com Add-DnsServerResourceRecordA -Name MUNRDCB -IPv4Address 192.168.13.21 -ZoneName woshub.com

Vergessen Sie nicht, statische IPs zuzuweisen und die entsprechenden DNS-Einträge festzulegen – andernfalls wird der Lastausgleich schnell instabil.

Installieren Sie auf der SQL-Seite den SQL Server Native Client auf allen Servern, die die RDCB-Rolle hosten, da dieser für die Konnektivität erforderlich ist. Sie können ihn von der Microsoft-Website herunterladen oder die MSI-Datei kopieren, falls Sie sich den Aufwand sparen möchten (Pfad prüfen: D:\1033_ENU_LP\x64\Setup\sqlncli.msi).

Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zu Ihrem SQL Server her. Sie müssen eine dedizierte Datenbank für RDCB erstellen – nennen Sie sie beispielsweise RDCB_DB. Weisen Sie ihr anschließend die entsprechenden Berechtigungen zu:

  • Gehen Sie in SSMS zu Sicherheit > Anmeldungen. Fügen Sie die Domänengruppe MUN_RD_Connection_Brokers hinzu.
  • Weisen Sie dieser Gruppe die Rollen dbcreator und sysadmin zu – temporären Zugriff für die Ersteinrichtung, aber schränken Sie diesen später wirklich streng ein.

Stellen Sie vorsichtshalber sicher, dass Sie den TCP-Port 1433 (Standard-SQL-Port) in der Windows Defender Firewall auf diesen Servern öffnen.

Installieren von RDS-Rollen auf Windows Server

  • Starten Sie den Server-Manager und gehen Sie zu Verwalten > Rollen und Features hinzufügen. Wählen Sie Remotedesktopdienste-Installation.
  • Wählen Sie die Standardbereitstellung mit sitzungsbasierter Desktopbereitstellung. Wählen Sie anschließend einen Server aus, der die RDCB-Rolle hosten soll. Installieren Sie den zweiten Server noch nicht.
  • Installieren Sie weitere notwendige Rollen wie RD-Webzugriff auf demselben Server und RD-Sitzungshost auf *beiden* beteiligten Servern.
  • Fügen Sie nach Abschluss der Arbeiten die RDCB-Hosts lokal auf jedem Server der Gruppe „RDS-Verwaltungsserver“ hinzu. Dies befindet sich üblicherweise unter „Remotedesktopdienste“ > „Server“.
  • Wichtiger Hinweis: Bei der Installation der RDCB-Rolle auf dem ersten Server wird eine lokale rdcbDbDatenbank (z. B.C:\Windows\rdcbDb\rdcms.mdf) erstellt. Diese ist im HA-Betrieb nutzlos, da andere Server nicht darauf zugreifen können. Planen Sie daher, diese Datenbank später in eine SQL-Datenbank zu migrieren.

Herstellung des RDCB-Clusters mit hoher Verfügbarkeit

  • Bevor Sie den zweiten RDCB-Host hinzufügen, migrieren Sie die lokale Datenbank auf Ihren gemeinsam genutzten SQL-Server. Gehen Sie im Server-Manager zu „ Remotedesktopdienste“ > „Übersicht“. Starten Sie den Assistenten „Hochverfügbarkeit konfigurieren“ über das Symbol auf Ihrem ersten RDCB-Server.
  • Wählen Sie „Dedizierter Datenbankserver“. Geben Sie den DNS-Namen für die Farm ein, z. B.MUNRDCB.woshub.com. Geben Sie anschließend die Verbindungszeichenfolge an, die wie folgt aussieht:
    DRIVER=SQL Server Native Client 11.0;SERVER=srv-rds2.woshub.com;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCB_DB
  • Nach der Konfiguration überprüfen Sie im SQL Management Studio, ob die Datenbank RDCB_DB existiert und ob der SQL-Login über die entsprechenden Rechte verfügt (in der Regel db_ownerund public).
  • Fügen Sie beide RDCB-Server mithilfe des Assistenten zur Farm hinzu (Sie finden dort die Option „RD-Verbindungsbroker-Server hinzufügen “).Ziel ist es, beide Server in derselben Hochverfügbarkeitskonfiguration zu betreiben, wobei einer als sekundärer Server fungiert, falls der erste ausfällt. Das war’s. Sobald die Hochverfügbarkeit aktiviert ist, kann sie nicht mehr rückgängig gemacht werden.Überprüfen Sie daher alle Einstellungen sorgfältig.

SQL Server-Failover-Einrichtung – Das Herzstück der Hochverfügbarkeit

  • Richten Sie Ihren SQL Server nun in einem Failovercluster oder, moderner, in einer Always On-Verfügbarkeitsgruppe ein. Installieren Sie die Failoverclustering- Rolle, erstellen Sie den Cluster und aktivieren Sie Always On-Verfügbarkeitsgruppen im SQL Server-Konfigurations-Manager.
  • Führen Sie den Assistenten aus, um eine neue Verfügbarkeitsgruppe zu erstellen, die Datenbank RDCB_DB einzuschließen und automatisches Failover zu aktivieren. Stellen Sie sicher, dass Ihr Listener einen DNS-Namen hat (z. B.SQL-RDSDB-liste ), damit sich Ihre RDCB im Failover-Fall mit einer virtuellen IP-Adresse verbinden kann.
  • Aktualisieren Sie Ihre Verbindungszeichenfolge mit PowerShell, um die RDCB-Farm auf diesen Listener zu verweisen:
    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"

Hinweis: Dies ist keine triviale Einrichtung, und die Fehlersuche bei SQL-Failover erfordert etwas Geduld. Stellen Sie sicher, dass Ihre Listener und Ihr Cluster funktionieren, bevor Sie fortfahren.

Sobald alles konfiguriert ist, testen Sie Ihre Einrichtung, indem Sie einen RDCB-Server herunterfahren oder ein SQL-Failover erzwingen – prüfen Sie, ob die Serverfarm weiterhin reibungslos läuft. Das ist der Clou von Hochverfügbarkeit.

Nach all dem können Sie nun mit der Bereitstellung des restlichen RDS-Systems fortfahren: Lizenzserver, RDSH, Veröffentlichung von RemoteApps und alles, was dazugehört. Wichtig ist nur, dass Ihr RDCB die Verbindungen weiterhin bedient, selbst wenn ein Knoten ausfällt.

Zusammenfassung

  • Verwenden Sie statische IPs und DNS-Round-Robin zur Lastverteilung.
  • Erstellen Sie eine dedizierte SQL-Datenbank mit den entsprechenden Berechtigungen für RDCB.
  • Installieren Sie die RDS-Rollen und migrieren Sie anschließend die RDCB-Datenbank zu SQL.
  • Konfigurieren Sie Hochverfügbarkeit für SQL mit Always On oder Clustering.
  • Fügen Sie der RDS-Farm Server mit aktivierter Hochverfügbarkeit hinzu.

Zusammenfassung

Die Gewährleistung hoher Verfügbarkeit von RDCB ist zwar nicht einfach, aber absolut lohnenswert, wenn es auf maximale Verfügbarkeit ankommt. Sobald alles eingerichtet und getestet ist, lässt sich der Dienst nach einem Ausfall deutlich einfacher wiederherstellen – manuelle Eingriffe sind nicht mehr nötig. Diese schrittweise Vorgehensweise macht die gesamte Farm ausfallsicher, was besonders wichtig ist, wenn Benutzer täglich auf Remote-Desktops angewiesen sind. Hoffentlich hilft dies jemandem, Ausfallzeiten zu vermeiden – bei einigen Setups hat es sich jedenfalls bewährt.