Gastbeitrag von Freek Berson, Microsoft MVP im Bereich RDS
Kemp Technologies hat vor Kurzem KEMP LoadMaster für Azure herausgebracht, das kostenlos angeboten wird! Es wurde bereits ein kurzer Blogbeitrag geschrieben, in dem erklärt wurde, welchen Nutzen dies mit sich trägt. In diesem Blogbeitrag möchte wird ein bestimmtes Szenario beschreiben, das auf einer Test-Umgebung basiert, das in Azure mit KEMP LoadMaster für Azure erstellt wurde, und diese Lösung wird mit den Load Balancing-Optionen verglichen, die Windows Azure standardmäßig bietet.
Das Szenario sieht die Einrichtung von Remote Desktop Services (oder Session-Based VDI) in Azure vor, die Microsoft seit der Änderung des PUR im Juli 2013 unterstützt.
Meine Test-Umgebung enthält die folgenden Server
Name | Rollen |
SG01 | Active Directory-Domänendienste |
SQL01 | SQL Server 2012 |
RDS01 | RD-Verbindungsbroker Web Access RD-Sitzungshost RD-Gateway |
RDS02 | RD-Verbindungsbroker Web Access RD-Sitzungshost RD-Gateway |
Auf allen Servern wird Windows Server 2012 R2 (Vorschau) ausgeführt.
In der Umgebung habe ich ein Standard Session-Based Deployment durchgeführt und nach Abschluss dieser Bereitstellung das RD Connection Broker High Availability hinzugefügt, was zu einer zentral gespeicherten Datenbank führt, die auf dem SQL01 ausgeführt wird und von der RD Connection Broker-Rolle verwendet wird, die sowohl auf dem RDS01 als auch auf dem RDS02 in einem Aktive/Active-Konfigurationsszenario ausgeführt werden.
Die Rolle des RD-Verbindungsbrokers selbst verfügt über einen internen Load Balancing-Mechanismus, um die Worklaods auf den RD-Sitzungshostservern auszugleichen und die Wiederverbindung zu getrennten Sitzungen zu ermöglichen. Dadurch wird eine hohe Verfügbarkeit für die Rolle des RD-Sitzungshosts geschaffen. Wie Sie sehen, habe wird jedoch auch RD Web Access und RD Gateway auf den verschiedenen Servern bereitgestellt. Wie stellen wir also sicher, dass wir auch dafür einen einen Lastenausgleich haben?
Diese beiden Rollen müssen tatsächlich nach außen veröffentlicht werden, damit Personen auf die RDS-Umgebung zugreifen können. Sie navigieren zur RD Web Access-Seite, melden sich an, wählen eine Remote-App von Full Desktop aus und stellen dann eine Verbindung zu einem RD Connection Broker her und werden zu einem RD Session Host weitergeleitet, und zwar alles über eine Verbindung über das RD Gateway.
Diese beiden Rollen, oder eher gesagt Funktionen, müssen tatsächlich nach außen offengelegt werden, damit Benutzer auf die RDS-Umgebung zugreifen können. Sie navigieren zur RD Web Access-Seite, melden sich an, wählen eine Remote-App von Full Desktop aus und stellen dann eine Verbindung zu einem RD Connection Broker her und werden zu einem RD Session Host weitergeleitet, und zwar alles über eine Verbindung über das RD Gateway.
Heute unterstützt Azure die Möglichkeit das Load Balancing von Diensten auf mehreren Computern, die in Azure ausgeführt werden, auszuführen. Sie können dies tun, indem Sie ein durch Load Balancing verarbeitetes Set konfigurieren. Dies funktioniert hervorragend für die meisten gängigen Websites, aber die Load Balancing-Optionen in Azure sind eine Blackbox, und Sie können außer einem Protokoll und einem Port nichts steuern oder einrichten. Zunächst einmal können Sie die Sitzungsaffinität (Sticky Sessions) nicht konfigurieren. Diese Dienste ermöglichen es Benutzern, während einer einzigen Sitzung nicht auf verschiedene Server umgeleitet zu werden. Klar können Sie dann gegenargumentieren, dass die Tatsache, dass einige Dienste Sitzungsaffinität benötigen, ein Problem ist, aber die Realität ist, dass Sie in einigen Szenarien damit nicht durchkommen. Außerdem können Einstellungen wie Timeout und Gewichtung pro Zielserver nicht konfiguriert werden.
Es gibt jedoch ein neues Feature, das Azure erst vor kurzem hinzugefügt wurde, nämlich Windows Azure Traffic Manager. Diese Funktion ist derzeit in der Vorschau in Windows Azure und ermöglicht es, mehr Kontrolle über das Load Balancing zu übernehmen. Mit Windows Azure Traffic Manager können Sie zwischen verschiedenen Load Balancing-Mechanismen wie Round Robin, Performance und Failover wählen. Es gibt also keine Service-Traffic Routen über Windows Azure Traffic Manager. Im Falle von Round Robin ruft der Computer des Benutzers den Clouddienst direkt auf, und Windows Azure Traffic Manager löst den DNS-Eintrag für die Unternehmensdomäne in die IP-Adresse des Clouddiensts auf. Die Performance-Methode lokalisiert den Ursprung des Datenverkehrs und leitet ihn an den nächstgelegenen Clouddienst weiter. "Nähe" wird durch eine Netzwerkleistung bestimmt. Beide Szenarien basieren auf einer DNS-Time-to-Live (TTL), die von Clients weiterhin verwendet wird einen bestimmten Cloud-Dienst, bis sein lokaler DNS-Cache abläuft. Daher gibt es keine wirkliche Sticky Sessions, außer sich auf die DNS TTL zu verlassen (die man natürlich z.B. auf 24 Stunden einstellen könnte).
Mit beiden Methoden, die derzeit in Azure verfügbar sind (Load Balanced Set & Windows Azure Traffic Manager), sind wir in der Lage, ein grundlegendes Load Balancing zu konfigurieren, aber erweiterte Funktionen wie Gewichtung, Sticky Sessions und Load Balancing-Statistiken sind immer noch nicht verfügbar. An dieser Stelle greift KEMP ein und liefert einen deutlichen Mehrwert.
Für die Funktionen, die wir in dieser Test-Umgebung extern veröffentlichen, ist Web Access für Remotedesktop ohne Sticky Sessions völlig in Ordnung, und Sie können daher dies auch mit der vorkonfigurierten Azure-Lösung für Load Balabcing einrichten. In diesem Fall werden wir aber auch das Load Balancing von RD Web Access mit dem KEMP Load Master für Azure in Betreib setzen, um die zusätzlichen Features zu nutzen, die wir gerade beschrieben haben.
Anders sieht es jedoch bei der anderen Funktion, dem RD-Gateway, aus. Woran liegt das?
Vor Windows Server 2012 verwendete das RD-Gateway nur einen einzigen Kanal. Mit Windows Server 2012, und in Zukunft, verwendet RD Gateway eine neue Methode, die auf zwei HTTP-Kanälen (einen für die Eingabe und einen für die Ausgabe) basiert. Diese beiden Kanäle müssen über dasselbe RD-Gateway weitergeleitet werden. Daher benötigen wir einen Load Balancing-Mechanismus, der entweder IP-Affinität, Cookie-basierte Affinität oder SSL-ID-basierte Affinität ausführen kann. Aus diesem Grund ist die Die Azure Load Balancing-Gruppe oder die Windows Azure Traffic Manager-Lösung nicht vollständig mit dem Load Balancing für RD Gateway 2012 R2 kompatibel. Daher stammt die Notwendigkeit nach dem von KEMP ausgeführten Load Master für Azure in diesem Szenario.
Wie bereits erwähnt, stellt KEMP Technologies den Load Master für Azure kostenlos zur Verfügung, indem Sie eine Anfrage für eine VHD-Datei senden.
Ich werde schnell den Prozess zum Abrufen des Load Masters in Azure durchlaufen. Weitere Anweisungen finden Sie auch im Bereitstellungsvideo.
Nun wird kurz der Prozess wiedergegeben, wie man den Load Master in Azure erhält. Weitere Anweisungen finden Sie auch in diesem Bereitstellungsvideo.
Nach dem Herunterladen der .VHD-Datei muss zunächst Windows Azure PowerShell installiert werden. Dies können Sie hier tun. Als Nächstes rufen Sie diesen Link auf, um Ihre Einstellungen für die Profilveröffentlichung zu erhalten, die speziell für Ihr Azure-Abonnement gelten.
Wenn alles vorhanden ist, müssen wir die folgenden drei PowerShell-Befehle ausführen, um die VHD in Azure hochzuladen und ein Abbild zu erstellen.
1. Führen Sie den folgenden Befehl aus, und zeigen Sie auf die Datei mit den Veröffentlichungseinstellungen, die Sie zuvor heruntergeladen haben:
Import-AzurePublishSettingsFile C:\Download\MySettings.publishsettings
Beachten Sie, dass in einigen Fällen der folgende Fehler auftreten kann
"VERBOSE: Einstellung: Windows Azure MSDN – Visual Studio Professional als standardmäßiges und aktuelles Abonnement. Um andere Abonnements anzuzeigen, verwenden Sie Get-AzureSubscription, Sie müssen möglicherweise das aktuelle Azure-Abonnement explizit festlegen."
Verwenden Sie in diesem Fall den Befehl Select-AzureSubscription, um das richtige Abonnement festzulegen.
2. Führen Sie den folgenden Befehl aus, und verweisen Sie auf die VHD-Datei, die Sie zuvor heruntergeladen haben, und auf Ihren umgebungsspezifischen Blobspeicherort:
Add-AzureVhd -LocalFilePath C:\Download\LoadMaster-VLM-7.0-3-Azure\LMAzure.vhd -Destination http://example.blob.core.windows.net/vhds/lmazure.vhd
3. Führen Sie den folgenden Befehl aus, um ein neues Image in Azure basierend auf der hochgeladenen VHD-Datei hinzuzufügen:
Add-AzureVMImage -ImageName lmazure –MediaLocation
http://example.blob.core.windows.net/vhds/lmazure.vhd
Das war's! Nun ist ein neues Schnittbild in Azure verfügbar, das wir verwenden können, um einen neuen virtuellen Rechner in Azure zu erstellen.
Der Prozess des Erstellens der Virtual Machine (deutsch: Virtuelle Maschine; kurz: VM) aus diesem Schnittbild ist ebenfalls sehr einfach und wird auch in der KEMP-Videoanleitung behandelt, sodass dieser Vorgang hier nicht nochmals widergegeben wird.
Nun wird davon ausgegangen, dass der virtuelle Rechner ausgeführt wird und darauf zugegriffen werden kann, also können wir jetzt einen genaueren Blick auf die Veröffentlichung von RD Gateway und RD Web Access werfen.
Der erste Schritt besteht darin, einen Virtual Service zu erstellen, bei dem wir die virtuelle Adresse angeben, dies ist die interne Adresse des KEMP Load Masters. Da sowohl Web Access für Remotedesktop als auch RD-Gateway TCP-Port 443 verwenden, ist dies der einzige Port, den wir angeben
erst einmal.
Im Abschnitt Standardoptionen konfigurieren wir die Persistenzoptionen, die wir für das RD-Gateway benötigen, indem wir Quell-IP-Adresse auswählen.
Nachdem Sie die Konfiguration des virtuellen Dienstes gespeichert haben, ist es an der Zeit, die Server hinzuzufügen, für die das Load Balancing erforderlich ist (die sogenannten "Realen Server"). Wir spezifizieren dies wie folgt:
Wenn der KEMP Load Master erfolgreich auf den Realen Server zugreifen kann, sollte für jeden Realen Server der folgende Status angezeigt werden.
Um den KEMP Load Master von außen zugänglich zu machen, wird auf der Load Master VM in Azure ein Endpunkt für Port 443 erstellt mit den folgenden Eigenschaften:
Die RDS-Umgebung sollte jetzt zugänglich sein, wenn wir zum DNS-Namen der Load Master-VM navigieren und /rdweb hinzufügen. Die Seite Web Access für Remotedesktop wird angezeigt, und bei der Anmeldung wird der vollständige Desktop veröffentlicht.
Beim Starten greift der Full Desktop-Client auf den KEMP Load Master über Port 443 zu, was zu einer Verbindung mit einem der RD-Gateway-Server führt, die auf dem Load Balancing-Mechanismus in KEMP basiert.
Wir können sehen, wie Verbindungen eingehen, indem wir uns die Statistiken in Load Master ansehen.
Und wir haben einen Einblick in alle Arten von Metriken und Statistiken
Da die Umgebung jetzt eingerichtet und ausgeführt wird, verfügen wir nun über eine RDS-Umgebung, in der das RD-Gateway und der RD-Webzugriff durch KEMP Load Master das Load Balancing ermöglichen. Es gibt jedoch noch eine letzte wichtige Sache zu erwähnen. Wie Sie bereits wissen, unterstützt auch das Remotedesktopprotokoll 8.0 das User Data Protocol (UDP), wo früher nur TCP verwendet wurde. Dies ist ein Teil der Verbesserungen, die Microsoft an der Gesamterfahrung des RDP-Protokolls vorgenommen hat. Um UDP nutzen zu können, müssen wir natürlich den UDP-Port (Port 3391) in Azure und in unserer Load Balancing-Konfiguration freigeben. Der KEMP Load Master unterstützt jedoch kein Load Balancing von UDP ohne Transparenz. Laut Kemp Technologies ist dies in Azure aufgrund von Plattformbeschränkungen noch nicht möglich. Jedoch arbeiten diese aktiv mit den Azure-Teams bei Microsoft zusammen. Es könnte also sein, dass dies in Zukunft ermöglicht wird. Theoretisch wäre es möglich, UDP direkt am Endpunkt (RD-Gateway-Server) zu veröffentlichen, allerdings gibt es keine Möglichkeit, den RDP-Client so zu konfigurieren, dass er TCP-Datenverkehr und UDP-Datenverkehr direkt an RD Gateway sendet. Für dieses spezielle Szenario ist vorerst wichtig, dass die Protokollverbesserungen, die mit der Verwendung von RDP über UDP einhergehen, noch nicht mit LoadMaster genutzt werden können.
Und als letzte Bemerkung: Mit der in diesem Blogbeitrag beschriebenen Konfiguration haben wir natürlich noch einen Single Point of Failure übrig, den LoadMaster selbst, da er aus einer einzigen Instanz besteht. Da es sich um ein kostenloses Produkt handelt, sind einige Funktionen, die in anderen von KEMP angebotenen Free Virtual Load Balancer enthalten sind, nicht enthalten, z. B. Hochverfügbarkeit. Wenn Sie die Load Balancing-Architektur für Ihre Produktionsumgebungen entwerfen, sehen Sie sich die Übersicht der verschiedenen virtuellen Load Balanceran, die KEMP online anbietet. Ich, der Autor dieses Blogeintrags, arbeite mit KEMP Technologies zusammen, um zu sehen, ob wir einige weitere Tests speziell zur Hochverfügbarkeit durchführen können, und um dies in einem kommenden Artikel zu behandeln.
Freek Berson arbeitet als Windows Platform Specialist bei Wortell und ist Microsoft MVP im Bereich RDS.
Klicken Sie hier, um Freek zu kontaktieren oder besuchen Sie seinen Blog unter TheMicrosoftPlatform.net. Sie können ihm auch auf Twitter folgen unter @fberson