Skalieren von Sitzungshosts mithilfe von Azure Automation und Azure Logic Apps für Azure Virtual Desktop

Sie können die Gesamtkosten für die Bereitstellung von Azure Virtual Desktop verringern, indem Sie Ihre virtuellen Computer (VMs) skalieren. Das bedeutet, dass Sie die Sitzungshost-VMs außerhalb der Spitzenzeiten herunterfahren und ihre Zuordnung aufheben und sie dann während der Spitzenzeiten wieder einschalten und erneut zuordnen.

In diesem Artikel erfahren Sie mehr über das mit dem Azure Automation-Konto und Azure Logic Apps erstellte Skalierungstool, mit dem die Sitzungshost-VMs in Ihrer Azure Virtual Desktop-Umgebung automatisch skaliert werden können. Informationen zum Verwenden des Skalierungstools finden Sie unter Einrichten der Skalierung von Sitzungshosts mithilfe von Azure Automation und Azure Logic Apps.

Hinweis

Die native Autoskalierungslösung von Azure Virtual Desktop ist in der Regel für gepoolte und persönliche Hostpools verfügbar und skaliert Sitzungshost-VMs basierend auf dem Skalierungszeitplan automatisch ab oder auf. Wir empfehlen die Verwendung der Autoskalierung zur einfacheren Konfiguration. Weitere Informationen finden Sie unter Pläne für die Autoskalierung.

Funktionsweise des Skalierungstools

Das Skalierungstool bietet eine kostengünstige Automatisierungsoption für Kunden, die ihre Kosten für die Sitzungshost-VMs optimieren möchten.

Sie können das Skalierungstool für Folgendes verwenden:

  • Planen des Startens und Beendens von VMs basierend auf Spitzenzeiten und ruhigeren Geschäftszeiten
  • Aufskalieren von VMs basierend auf der Anzahl von Sitzungen pro CPU-Kern
  • Abskalieren von VMs außerhalb von Spitzenzeiten unter Beibehaltung einer Mindestanzahl von Sitzungshost-VMs

Das Skalierungstool beruht auf der Kombination aus einem Azure Automation-Konto, einem PowerShell-Runbook, einem Webhook und einer Logik-App. Wenn das Tool ausgeführt wird, ruft die Logik-App einen Webhook auf, um das Runbook zu starten. Das Runbook erstellt dann einen Auftrag.

Spitzenzeiten und Nebenzeiten werden wie folgt definiert:

  • Spitze: Der Zeitpunkt, zu dem eine maximale Parallelität von Benutzersitzungen erwartet wird
  • Nebenzeit: Der Zeitpunkt, zu dem eine minimale Parallelität von Benutzersitzungen erwartet wird

Während der Spitzenauslastung überprüft der Auftrag die aktuelle Anzahl von Sitzungen und die VM-Kapazität der derzeit ausgeführten Sitzungshosts für jeden Hostpool. Es berechnet anhand dieser Informationen, ob die ausgeführten Sitzungshost-VMs die vorhandenen Sitzungen ausreichend unterstützen können. Die Berechnung basiert auf dem Parameter SessionThresholdPerCPU, der in der Datei CreateOrUpdateAzLogicApp.ps1 definiert ist. Wenn die Sitzungshost-VMs die aktiven Sitzungen nicht unterstützen können, startet der Auftrag zusätzliche Sitzungshost-VMs im Hostpool.

Hinweis

SessionThresholdPerCPU schränkt die Anzahl der Sitzungen auf dem virtuellen Computer nicht ein. Dieser Parameter legt nur fest, wann neue VMs gestartet werden müssen, um einen Lastenausgleich für die Verbindungen auszuführen. Wenn Sie die Anzahl der Sitzungen einschränken möchten, befolgen Sie die Anweisungen zu Update-AzWvdHostPool, um den Parameter MaxSessionLimit entsprechend zu konfigurieren.

Außerhalb der Spitzenauslastungszeiten ermittelt der Auftrag anhand des Parameters MinimumNumberOfRDSH, wie viele Sitzungshost-VMs heruntergefahren werden sollten. Wenn Sie den Parameter LimitSecondsToForceLogOffUser auf einen positiven Wert über null festlegen, legt der Auftrag die Sitzungshost-VMs auf den Ausgleichsmodus fest, um zu verhindern, dass neue Sitzungen Verbindungen mit den Hosts herstellen. Der Auftrag fordert alle derzeit angemeldeten Benutzer über eine Benachrichtigung auf, ihre Änderungen zu speichern, wartet den konfigurierten Zeitraum ab und erzwingt dann das Abmelden der Benutzer. Nachdem alle Benutzersitzungen einer Sitzungshost-VM abgemeldet wurden, wird die VM über den Auftrag heruntergefahren. Nachdem die VM heruntergefahren wurde, setzt der Auftrag seinen Ausgleichsmodus für den Sitzungshost zurück.

Hinweis

Wenn Sie die Sitzungshost-VM manuell auf den Ausgleichsmodus festlegen, verwaltet der Auftrag die Sitzungshost-VM nicht. Wenn die Sitzungshost-VM ausgeführt wird und auf den Ausgleichsmodus festgelegt ist, wird sie als nicht verfügbar behandelt. Der Auftrag startet dadurch zusätzliche VMs, um die Last zu bewältigen. Es wird empfohlen, alle Azure-VMs mit Tags zu versehen, bevor Sie sie manuell in den Ausgleichsmodus versetzen. Wenn Sie später den Azure Logic Apps-Scheduler erstellen, können Sie den Namen des Tags mit dem Parameter MaintenanceTagName festlegen. Mithilfe von Tags können Sie diese VMs von den Computern unterscheiden, die vom Skalierungstool verwaltet werden. Durch Festlegen des Wartungstags wird außerdem verhindert, dass das Skalierungstool Änderungen an der VM vornimmt, bis Sie das Tag entfernen.

Wenn Sie den Parameter LimitSecondsToForceLogOffUser auf null festlegen, wird die Abmeldung von Benutzersitzungen durch den Auftrag gemäß der Einstellung für die Sitzungskonfiguration in den angegebenen Gruppenrichtlinien verwaltet. Um diese Gruppenrichtlinien anzuzeigen, wechseln Sie zu Computerkonfiguration>Richtlinien>Administrative Vorlagen>Windows-Komponenten>Remotedesktopdienste>Remotedesktop-Sitzungshost>Sitzungszeitlimits. Wenn aktive Sitzungen auf einer Sitzungshost-VM ausgeführt werden, wird die Sitzungshost-VM vom Auftrag weiterhin ausgeführt. Wenn keine aktiven Sitzungen vorhanden sind, wird die Sitzungshost-VM über den Auftrag heruntergefahren.

Der Auftrag berücksichtigt immer auch die Einstellung MaxSessionLimit des Hostpools bei der Ermittlung, ob die aktuelle Anzahl der Sitzungen 90 % der maximalen Kapazität überschreitet. In diesem Fall startet der Auftrag weitere Sitzungshost-VMs.

Der Auftrag wird in regelmäßigen Abständen basierend auf einem festgelegten Wiederholungsintervall ausgeführt. Sie können dieses Intervall basierend auf der Größe Ihrer Azure Virtual Desktop-Umgebung ändern. Beachten Sie jedoch, dass das Starten und Herunterfahren von VMs einige Zeit in Anspruch nehmen kann, und planen Sie eine entsprechende Verzögerung ein. Es wird empfohlen, das Wiederholungsintervall auf 15 Minuten festzulegen.

Für das Tool gelten allerdings folgende Einschränkungen:

  • Diese Lösung gilt nur für in einem Pool zusammengefasste Multisession-Sitzungshost-VMs.
  • Mit dieser Lösung können VMs in allen Regionen verwaltet werden, sie kann jedoch nur unter demselben Abonnement wie Ihr Azure Automation-Konto und Azure Logic Apps verwendet werden.
  • Die maximale Laufzeit eines Auftrags im Runbook beträgt 3 Stunden. Wenn das Starten oder Beenden der VMs im Hostpool länger dauert, tritt bei dem Auftrag ein Fehler auf. Weitere Informationen finden Sie unter Gemeinsame Ressourcen.
  • Mindestens eine VM oder ein Sitzungshost muss aktiviert sein, damit der Skalierungsalgorithmus ordnungsgemäß funktioniert.
  • Das Skalierungstool unterstützt keine Skalierung, die auf CPU oder Arbeitsspeicher basiert.
  • Die Skalierung funktioniert nur mit vorhandenen Hosts im Hostpool. Das Skalierungstool unterstützt die Skalierung neuer Sitzungshosts nicht.

Hinweis

Das Skalierungstool steuert den Lastenausgleichsmodus des Hostpools, den es zurzeit skaliert. Es nutzt den breitenorientierten Lastenausgleichsmodus sowohl zu Spitzenzeiten als auch außerhalb der Spitzenzeiten.

Nächste Schritte