Udostępnij za pośrednictwem


Skalowanie hostów sesji przy użyciu usług Azure Automation i Azure Logic Apps for Azure Virtual Desktop

Łączny koszt wdrożenia usługi Azure Virtual Desktop można zmniejszyć, skalując maszyny wirtualne. Oznacza to zamknięcie i cofnięcie przydziału maszyn wirtualnych hosta sesji poza godzinami szczytu, a następnie włączenie ich i ponowne przydziały w godzinach szczytu.

W tym artykule dowiesz się więcej o narzędziu skalowania utworzonym za pomocą konta usługi Azure Automation i usługi Azure Logic Apps, które automatycznie skaluje maszyny wirtualne hosta sesji w środowisku usługi Azure Virtual Desktop. Aby dowiedzieć się, jak używać narzędzia skalowania, zobacz Konfigurowanie skalowania hostów sesji przy użyciu usług Azure Automation i Azure Logic Apps.

Uwaga

Natywne rozwiązanie automatycznego skalowania usługi Azure Virtual Desktop jest ogólnie dostępne dla puli i osobistych puli hostów i automatycznie skaluje maszyny wirtualne hosta sesji lub w poziomie na podstawie harmonogramu skalowania. Zalecamy używanie autoskalu w celu ułatwienia konfiguracji. Aby uzyskać więcej informacji, zobacz Plany skalowania automatycznego.

Jak działa narzędzie skalowania

Narzędzie do skalowania zapewnia klientom, którzy chcą zoptymalizować koszty maszyn wirtualnych hosta sesji, zapewnia tanią opcję automatyzacji.

Za pomocą narzędzia skalowania można wykonywać następujące czynności:

  • Zaplanuj uruchamianie i zatrzymywanie maszyn wirtualnych w oparciu o szczytowe i poza szczytowe godziny pracy.
  • Skalowanie maszyn wirtualnych w poziomie na podstawie liczby sesji na rdzeń procesora CPU.
  • Skalowanie na maszynach wirtualnych poza godzinami szczytu, pozostawiając minimalną liczbę uruchomionych maszyn wirtualnych hosta sesji.

Narzędzie skalowania używa kombinacji konta usługi Azure Automation, elementu Runbook programu PowerShell, elementu webhook i aplikacji logiki do działania. Po uruchomieniu narzędzia aplikacja logiki wywołuje element webhook, aby uruchomić element Runbook. Następnie element Runbook tworzy zadanie.

Godziny szczytowe i poza szczytem są definiowane jako:

  • Szczyt: czas osiągnięcia maksymalnej współbieżności sesji użytkownika.
  • Poza szczytem: czas osiągnięcia minimalnej współbieżności sesji użytkownika.

W czasie szczytowego użycia zadanie sprawdza bieżącą liczbę sesji i pojemność maszyny wirtualnej bieżącego hosta uruchomionej sesji dla każdej puli hostów. Te informacje są używane do obliczania, czy uruchomione maszyny wirtualne hosta sesji mogą obsługiwać istniejące sesje na podstawie parametru SessionThresholdPerCPU zdefiniowanego dla pliku CreateOrUpdateAzLogicApp.ps1 . Jeśli maszyny wirtualne hosta sesji nie mogą obsługiwać istniejących sesji, zadanie uruchamia dodatkowe maszyny wirtualne hosta sesji w puli hostów.

Uwaga

SessionThresholdPerCPU nie ogranicza liczby sesji na maszynie wirtualnej. Ten parametr określa tylko, kiedy należy uruchomić nowe maszyny wirtualne w celu równoważenia obciążenia połączeń. Aby ograniczyć liczbę sesji, należy postępować zgodnie z instrukcjami, aby odpowiednio skonfigurować parametr MaxSessionLimit.

W czasie użycia poza szczytem zadanie określa, ile maszyn wirtualnych hosta sesji należy zamknąć na podstawie parametru MinimumNumberOfRDSH . Jeśli ustawisz parametr LimitSecondsToForceLogOffUser na wartość niezerową, zadanie ustawi maszyny wirtualne hosta sesji na tryb opróżniania, aby zapobiec nawiązywaniu połączenia z hostami przez nowe sesje. Następnie zadanie powiadomi wszystkich zalogowanych użytkowników, aby zapisać swoją pracę, poczekać skonfigurowany czas, a następnie wymusić wylogowanie się użytkowników. Po wylogowaniu wszystkich sesji użytkownika na maszynie wirtualnej hosta sesji zadanie spowoduje wyłączenie maszyny wirtualnej. Po zamknięciu maszyny wirtualnej zadanie zresetuje tryb opróżniania hosta sesji.

Uwaga

Jeśli ręcznie ustawisz tryb opróżniania maszyny wirtualnej hosta sesji, zadanie nie będzie zarządzać maszyną wirtualną hosta sesji. Jeśli maszyna wirtualna hosta sesji jest uruchomiona i ustawiona na tryb opróżniania, będzie traktowana jako niedostępna, co spowoduje, że zadanie uruchomi dodatkowe maszyny wirtualne w celu obsługi obciążenia. Zalecamy tagowanie wszystkich maszyn wirtualnych platformy Azure przed ręcznym ustawieniem trybu opróżniania. Tag można nazwać przy użyciu parametru MaintenanceTagName podczas tworzenia harmonogramu aplikacji logiki platformy Azure później. Tagi ułatwią odróżnienie tych maszyn wirtualnych od tych, którymi zarządza narzędzie skalowania. Ustawienie tagu konserwacji uniemożliwia również narzędziu skalowania wprowadzanie zmian na maszynie wirtualnej do momentu usunięcia tagu.

Jeśli ustawisz parametr LimitSecondsToForceLogOffUser na zero, zadanie zezwala na ustawienie konfiguracji sesji w określonych zasadach grupy do obsługi podpisywania sesji użytkowników. Aby wyświetlić te zasady grupy, przejdź do pozycji Zasady konfiguracji>>komputera Szablony>administracyjne Składniki systemu Windows Usług>pulpitu>zdalnego Sesja sesji hosta>limity czasu. Jeśli na maszynie wirtualnej hosta sesji istnieją aktywne sesje, zadanie pozostawi uruchomioną maszynę wirtualną hosta sesji. Jeśli nie ma żadnych aktywnych sesji, zadanie spowoduje zamknięcie maszyny wirtualnej hosta sesji.

W dowolnym momencie zadanie uwzględnia również wartość MaxSessionLimit puli hostów, aby określić, czy bieżąca liczba sesji przekracza 90% maksymalnej pojemności. Jeśli tak jest, zadanie uruchomi dodatkowe maszyny wirtualne hosta sesji.

Zadanie jest uruchamiane okresowo na podstawie ustawionego interwału cyklu. Ten interwał można zmienić na podstawie rozmiaru środowiska usługi Azure Virtual Desktop, ale pamiętaj, że uruchamianie i zamykanie maszyn wirtualnych może zająć trochę czasu, dlatego pamiętaj, aby uwzględnić opóźnienie. Zalecamy ustawienie interwału cyklu na co 15 minut.

Jednak narzędzie ma również następujące ograniczenia:

  • To rozwiązanie dotyczy tylko maszyn wirtualnych hostów sesji w puli.
  • To rozwiązanie zarządza maszynami wirtualnymi w dowolnym regionie, ale może być używane tylko w tej samej subskrypcji co konto usługi Azure Automation i aplikacja logiki platformy Azure.
  • Maksymalny czas wykonywania zadania w elemecie Runbook wynosi 3 godziny. Jeśli uruchamianie lub zatrzymywanie maszyn wirtualnych w puli hostów trwa dłużej, zadanie zakończy się niepowodzeniem. Aby uzyskać więcej informacji, zobacz Zasoby udostępnione.
  • Aby algorytm skalowania działał prawidłowo, należy włączyć co najmniej jedną maszynę wirtualną lub hosta sesji.
  • Narzędzie skalowania nie obsługuje skalowania na podstawie procesora CPU lub pamięci.
  • Skalowanie działa tylko z istniejącymi hostami w puli hostów. Narzędzie skalowania nie obsługuje skalowania nowych hostów sesji.

Uwaga

Narzędzie skalowania steruje trybem równoważenia obciążenia puli hostów, w ramach których jest obecnie skalowana. Narzędzie używa trybu równoważenia obciążenia pierwszego zakresu dla godzin szczytowych i poza godzinami szczytu.

Następne kroki