Schritt-für-Schritt-Anleitung

Windows Server 2012 - Hochverfügbarkeits-Setup für Remote Desktop Connection Broker

13.09.2012 von Claus Emrich
Dieser Beitrag beschäftigt sich mit der Installation des Windows Server 2012 Remote Desktop (RD) Connection Brokers. Im neuen Server kann man den Connection Broker mit einer Hochverfügbarkeitskonfiguration versehen, ohne dass man an die Limitierungen der bisherigen Architektur gebunden ist.

Bereits in früheren Versionen von Windows Server 2003, als der Connection Broker noch Session Directory hieß, bestand die Anforderung darin, sich gegen Ausfälle eines einzelnen Session Directory Servers abzusichern. Dies war auch damals schon mithilfe eines Windows Failover Clusters möglich, es war nur kaum bekannt. Dieser KB-Artikel beschreibt das Vorgehen.

Mit Windows Server 2008 R2 wurde es möglich, den RD Connection Broker noch einfacher in einem Windows Failover-Cluster zu betreiben. Der Failover Cluster Wizard kannte direkt den Cluster Resource Type "Remote Desktop Connection Broker" als Applikation. Eine entsprechende Anleitung dazu befindet sich hier.

Allen Lösungen bisher war jedoch gemein, dass sie auf eine interne Windows-Datenbank zurückgriffen, die in ihren Möglichkeiten beispielsweise für Management, Sicherung, Wiederherstellung, Replikation und Skalierung begrenzt war.

RD-Connection-Broker-Hochverfügbarkeit in Windows Server 2012

Mit Windows Server 2012 kann der RD Connection Broker hochverfügbar konfiguriert werden, ohne an die Limitierungen der bisherigen Architektur gebunden zu sein.

Erstmals ist es möglich, die vom RD Connection Broker verwalteten Collection- und Sitzungsinformationen in einer Microsoft SQL-Server-Datenbank zu speichern. Solange man den RD-Connection Broker nicht als hochverfügbar konfiguriert, kommt weiterhin die Windows-interne Datenbank (Windows Internal Database) zum Einsatz.

Eine ausführliche Beschreibung, wie man mithilfe der grafischen Oberfläche des neuen Windows Server 2012 Server Managers den RD Connection Broker hochverfügbar konfiguriert, befindet sich hier.

Neben der Nutzung des Server Managers ist es auch möglich, die Einrichtung einer Remote-Desktop-Services-Infrastruktur mit PowerShell durchzuführen. Dies bietet sich vor allem für die automatisierte Installation in größeren Umgebungen an. Der hier exemplarische Testaufbau, um die Nutzung von PowerShell zur Konfiguration von hochverfügbaren RD Connection Brokern zu simulieren, ist in der Grafik dargestellt.

Exemplarisch: der Testaufbau in diesem Beispiel.
Foto: Microsoft

Eine generelle Anleitung zum Aufbau einer RD-Session-Virtualization-Testumgebung ist in diesem TechNet-Artikel beschrieben. In der Abbildung ist zu erkennen, dass der Microsoft SQL und RD Web Access Server wie auch der Domain Controller und RD Lizenz Server nur mit einem Server realisiert sind. In einer produktiven Umgebung muss natürlich auch die Active-Directory-Infrastruktur hochverfügbar ausgelegt werden.

Für den Microsoft SQL Server bietet es sich hier an, die Hochverfügbarkeitsoptionen von Microsoft SQL Server zu nutzen. Eine ausführliche Dokumentation zu den möglichen Optionen finden Sie hier:

Der RD Web Access Server stellt für die Nutzer ein Einstiegsportal zum Zugriff auf die bereitgestellten Anwendungen oder virtuellen Desktops bereit. Da es sich hier um einen Webserver mit Internet Information Server (IIS) handelt, bietet sich die Nutzung einer Loadbalancing Technologie wie Windows Network Loadbalancing (NLB) oder eines Hardware Loadbalancers an.

Voraussetzungen und vorbereitende Maßnahmen

Auf allen beteiligten Servern muss das Remote Management aktiviert werden. Dies ist mit diesen beiden Befehlen auf der Kommandozeile des jeweiligen Servers möglich:

Configure-SMRemoting.exe -EnableEnable-PSRemoting -force

Einstellung: So müssen die In-Bound-Regeln der Windows-Firewall konfiguriert sein.
Foto: Microsoft

In der Windows-Firewall müssen die In-Bound-Regeln, wie im Bild dargestellt, konfiguriert sein. Außerdem muss der Benutzer welcher die Konfiguration via Powershell für die Remote Desktop Infrastruktur durchführt auf allen Servern Mitglied der lokalen Administrator Gruppe sein.

Auf den Servern, die die Rolle der RD Connection Brokers ausführen, sind folgende Voraussetzungen zu schaffen:

Installation des .Net Framework 3.5:

Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess

Installation der SQL Server Native Client Tools vom Microsoft SQL Server Installationsmedium (zum Beispiel von Laufwerk D:):

D:\setup.exe /ACTION=Install /QS /IACCEPTSQLSERVERLICENSETERMS /FEATURES=Conn

Der Parameter /QS kann auch durch /Q ersetzt werden; in diesem Fall würde dann keine Ausgabe des Setup-Status auf dem Bildschirm erfolgen. Dies ist beispielsweise dann sinnvoll, wenn die Installation komplett unbeaufsichtigt abläuft.

Auf dem Microsoft SQL Server müssen die RD Connection Broker die erforderlichen Berechtigungen erhalten. Eine entsprechende Beschreibung findet sich hier.

Remote Desktop Session Host Deployments mit PowerShell installieren

Unter Windows Server 2012 wird ein neuer Begriff in die Welt der Remote Desktop Services eingeführt, das sogenannte "Deployment". Ein Deployment ist am besten mit einem Verbund an Remote Desktop Session Host Servern zu umschreiben, die gemeinsame Infrastrukturkomponenten (beispielsweise RD Connection Broker, RD Web Access) nutzen.

Es ist zu empfehlen, alle folgenden Aktionen vom ersten RD Connection Broker Server aus zu starten. Zu Beginn startet man die PowerShell-Konsole mit administrativen Rechten und lädt das Modul für die Remote Desktop Services mit dem Befehl:

Import-Module RemoteDesktop

Um ein Deployment per PowerShell zu erzeugen ist, folgender Befehl zu verwenden:

New-RDSessionDeployment -ConnectionBroker <Connection Broker Name> -SessionHost <Session Host Namen> -WebAccessServer <Web Access Server Name>

Mit diesem Befehl können auch mehr als ein RD Session Host Server installiert und ins Deployment eingefügt werden. Man kann mehrere Server direkt per Komma getrennt in den Befehl einfügen. Durch diesen Befehl werden auf den spezifizierten Servern die nötigen Windows-Features automatisch installiert. Man muss nicht auf jedem RD Session Host das Feature einzeln aktivieren.

Bildergalerie:
Powershell
Zunächst ist ein Deployment zu erzeugen.
Powershell
Das Setzen des Connection Brokers in den Hochverfügbarkeitsmodus.
Powershell
Um den zweiten oder weiter RD Connection Broker in den Hochverfügbarkeits-Verbund aufzunehmen ist dieser Befehl nötig.

Danach kann der erste Connection Broker in den Hochverfügbarkeitsmodus gesetzt werden:

set-RDConnectionBrokerHighAvailability -ConnectionBroker <Connection Broker Name> -DatabaseConnectionString "DRIVER=SQL Server Native Client 10.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=<Datenbank Name>" -DatabaseFilePath <Pfad und Name der Datenbankdatei> -ClientAccessName <Gemeinsamer DNS-Name>

Folgende Punkte sind dabei zu beachten:

Um den zweiten oder weitere RD Connection Broker in den Hochverfügbarkeitsverbund aufzunehmen, ist folgender Befehl nötig:

Add-RDServer -Role RDS-CONNECTION-BROKER -Server <Server Name> -ConnectionBroker rdcb1.contoso.msft

RD Session Collections mit PowerShell erstellen

Um Nutzern den Zugriff zu ermöglich, können jetzt sogenannte "Collections" aus RD Session Hosts definiert werden. Eine Collection bezeichnet eine Sammlung gleichartiger RD Session Hosts. Dies bedeutet: Auf allen Servern in dieser Sammlung stehen die gleichen Anwendungen bereit. Es wäre zwar technisch möglich, auch Server mit einem unterschiedlichen Satz an Anwendungen in eine Collection aufzunehmen, das ist aber nicht sinnvoll.

Ein Broker verteilt die sich anmeldenden Nutzer auf alle Server in einer Collection. Würden dort unterschiedliche Anwendungen bereitstehen, käme es zu einem inkonsistenten Benutzererlebnis kommen. Steht beispielsweise Microsoft Office nur auf einem von zwei Servern in einer Collection bereit, würden manche Benutzer es nutzen können, manche nicht, je nachdem, auf welchen Server sie durch den Connection Broker gerade geleitet werden.

Zur Erstellung einer neuen Collection wird dieser Powershell-Befehl verwendet:

New-RDSessionCollection -CollectionName "<Name der Collection>" -SessionHost <Namen der Session Hosts in der Collection> -CollectionDescription "<Freitext Beschreibung>" -ConnectionBroker <Connection Broker Name>

Im Anschluss folgen dann weitere Schritte, um die Konfiguration der Remote Desktop Session Host Umgebung zu vervollständigen. Dazu gehören unter anderem folgende Punkte:

Wie dieser Beitrag zeigt, gibt es im kommenden Windows Server 2012 eine gute Möglichkeit, die Hochverfügbarkeit einer Remote-Desktop-Infrastruktur sicherzustellen. Mithilfe der PowerShell lässt sich die Konfiguration in großen Umgebungen automatisieren und somit reproduzierbar machen, um Fehlkonfigurationen zu vermeiden. (mje)