Tworzenie zestawu skalowania maszyn wirtualnych używającego Strefy dostępności

Strefy dostępności platformy Azure to odizolowane od błędów lokalizacje w regionie świadczenia usługi Azure, które zapewniają nadmiarowe zasilanie, chłodzenie i sieć. Umożliwiają one uruchamianie aplikacji z wysoką dostępnością i odpornością na uszkodzenia w przypadku awarii centrum danych. Regiony platformy Azure, które obsługują Strefy dostępności mają co najmniej trzy oddzielne strefy. Każda strefa dostępności składa się z co najmniej jednego centrum danych wyposażonego w niezależne zasilanie infrastruktury, sieć i chłodzenie. Strefy dostępności są połączone przez sieć o wysokiej wydajności z opóźnieniem okrężnym mniejszym niż 2 milisekundy. Aby uzyskać więcej informacji, zobacz Omówienie Strefy dostępności.

Aby chronić zestawy skalowania maszyn wirtualnych przed awariami na poziomie centrum danych, możesz utworzyć zestaw skalowania w Strefy dostępności. Aby można było korzystać z Strefy dostępności, zestaw skalowania musi zostać utworzony w obsługiwanym regionie świadczenia usługi Azure.

Zagadnienia dotyczące projektowania stref dostępności

Zestawy skalowania maszyn wirtualnych obsługują trzy modele wdrażania strefowego:

  • Strefowo nadmiarowe lub strefowe (zalecane)
  • Strefy lub strefy wyrównane (pojedyncza strefa)
  • Regionalne

Strefowo nadmiarowe lub strefy obejmujące wiele stref

Strefowo nadmiarowy lub strefowy obejmujący zestaw skalowania rozprzestrzenia wystąpienia we wszystkich wybranych strefach. "zones": ["1","2","3"] Domyślnie zestaw skalowania wykonuje najlepsze podejście do równomiernego rozłożenia wystąpień w wybranych strefach. Można jednak określić, że chcesz zachować ścisłe równoważenie strefy, ustawiając "zoneBalance": "true" je we wdrożeniu. Każda maszyna wirtualna i jego dyski są strefowe, więc są przypięte do określonej strefy. Wystąpienia między strefami są połączone przez sieć o wysokiej wydajności z małym opóźnieniem. W przypadku awarii strefowej lub problemu z łącznością łączność z wystąpieniami w strefie, której dotyczy problem, może zostać naruszona, podczas gdy wystąpienia w innych strefach dostępności nie powinny mieć wpływu. Możesz dodać pojemność do zestawu skalowania podczas przestoju strefowego, a zestaw skalowania dodaje więcej wystąpień do stref bez wpływu. Po przywróceniu strefy może być konieczne skalowanie w dół zestawu skalowania do oryginalnej pojemności. Najlepszym rozwiązaniem jest skonfigurowanie reguł skalowania automatycznego na podstawie użycia procesora CPU lub pamięci. Reguły skalowania automatycznego umożliwiają zestawowi skalowania reagowanie na utratę wystąpień maszyn wirtualnych w tej jednej strefie przez skalowanie nowych wystąpień w pozostałych strefach operacyjnych.

Rozłożenie wystąpień w różnych strefach dostępności spełnia umowę SLA na 99,99% dla wystąpień rozmieszczonych w różnych strefach dostępności i jest zalecana w przypadku większości obciążeń na platformie Azure.

Strefy lub strefy wyrównane (pojedyncza strefa)

Strefowy lub strefowy zestaw skalowania umieszcza wystąpienia w pojedynczej strefie "zones": ['1']dostępności. Każda maszyna wirtualna i jego dyski są strefowe, więc są przypięte do określonej strefy. Ta konfiguracja jest używana głównie wtedy, gdy potrzebujesz mniejszego opóźnienia między wystąpieniami.

Regionalne

Regionalny zestaw skalowania maszyn wirtualnych jest wtedy, gdy przypisanie strefy nie jest jawnie ustawione ("zones"=[] lub "zones"=null). W tej konfiguracji zestaw skalowania tworzy wystąpienia regionalne (nieprzypinane do strefy) i niejawnie umieszcza wystąpienia w całym regionie. Nie ma żadnej gwarancji dla równowagi ani rozrzuceń w różnych strefach albo że wystąpienia lądują w tej samej strefie dostępności. Kolokacja dysku jest gwarantowana w przypadku dysków w warstwie Ultra i Premium w wersji 2, najlepszych wysiłków w przypadku dysków w warstwie Premium V1 i nie jest gwarantowana w przypadku dysków SKU w warstwie Standardowa (SSD lub HDD).

W rzadkich przypadkach pełnej awarii strefowej może mieć wpływ na dowolne lub wszystkie wystąpienia w zestawie skalowania.

Domeny błędów i strefy dostępności

Domena błędów to grupa izolacji błędów w strefie dostępności lub centrum danych węzłów sprzętu, które współdzielą tę samą moc, sieć, chłodzenie i harmonogram konserwacji platformy. Wystąpienia maszyn wirtualnych, które znajdują się w różnych domenach błędów, prawdopodobnie nie będą mieć wpływu na tę samą planowaną lub nieplanowaną awarię. Możesz określić, jak wystąpienia są rozłożone między domenami błędów w regionie lub strefie.

  • Maksymalny rozkład (platformFaultDomainCount = 1)
  • Rozkład stały statyczny (platformFaultDomainCount = 5)
  • Rozłożenie dostosowane do domen błędów dysku magazynu (platformFaultDomainCount = 2 lub 3 w przypadku tylko wdrożeń regionalnych)

Dzięki maksymalnemu rozłożeniu zestaw skalowania rozkłada maszyny wirtualne w jak największej liczbą domen błędów, jak to możliwe w każdej strefie. Ten rozkład może znajdować się w większej lub mniejszej niż pięć domen błędów na strefę. Dzięki statycznym rozrzuceniu stałemu zestaw skalowania rozkłada maszyny wirtualne w dokładnie pięciu domenach błędów na strefę. Jeśli zestaw skalowania nie może znaleźć pięciu odrębnych domen błędów na strefę, aby spełnić żądanie alokacji, żądanie zakończy się niepowodzeniem.

Zalecamy wdrożenie z maksymalnym rozłożeniem dla większości obciążeń, ponieważ takie podejście zapewnia najlepsze rozłożenie w większości przypadków. Jeśli potrzebujesz replik do rozłożenia na różne jednostki izolacji sprzętowej, zalecamy rozłożenie między Strefy dostępności i wykorzystanie maksymalnego rozłożenia w każdej strefie.

Uwaga

W przypadku maksymalnego rozłożenia w widoku wystąpienia maszyny wirtualnej zestawu skalowania jest widoczna tylko jedna domena błędów i metadanych wystąpienia niezależnie od liczby domen błędów, w których są rozłożone maszyny wirtualne. Rozkład w każdej strefie jest niejawny.

Grupy umieszczania

Ważne

Grupy umieszczania dotyczą tylko zestawów skalowania maszyn wirtualnych działających w trybie jednolitej aranżacji.

Podczas wdrażania zestawu skalowania można wdrożyć z pojedynczą grupą umieszczania na strefę dostępności lub z wieloma strefami. W przypadku regionalnych (nienależących do strefowych) zestawów skalowania należy mieć pojedynczą grupę umieszczania w regionie lub mieć wiele w regionie. Jeśli właściwość zestawu skalowania o nazwie singlePlacementGroup ma wartość false, zestaw skalowania może składać się z wielu grup umieszczania i ma zakres od 0 do 1000 maszyn wirtualnych. Po ustawieniu wartości domyślnej true zestaw skalowania składa się z jednej grupy umieszczania i ma zakres od 0 do 100 maszyn wirtualnych. W przypadku większości obciążeń zalecamy użycie wielu grup umieszczania, co pozwala na większą skalę. W interfejsie API w wersji 2017-12-01 zestawy skalowania są domyślnie ustawione na wiele grup umieszczania dla zestawów skalowania jednostrefowego i między strefami, ale domyślnie są to pojedyncze grupy umieszczania dla regionalnych zestawów skalowania (bez stref).

Uwaga

Jeśli używasz maksymalnego rozłożenia, musisz użyć wielu grup umieszczania.

Równoważenie strefy

Na koniec w przypadku zestawów skalowania wdrożonych w wielu strefach można również wybrać opcję "równowagi strefy najlepszego nakładu pracy" lub "ścisłego salda strefy". Zestaw skalowania jest uznawany za "zrównoważony", jeśli każda strefa ma taką samą liczbę maszyn wirtualnych +\- 1, co wszystkie inne strefy dla zestawu skalowania. Na przykład:

  • Zestaw skalowania z 2 maszynami wirtualnymi w strefie 1, 3 maszyn wirtualnych w strefie 2 i 3 maszyn wirtualnych w strefie 3 jest uznawany za zrównoważony. Istnieje tylko jedna strefa z inną liczbą maszyn wirtualnych i jest tylko 1 mniejsza niż inne strefy.
  • Zestaw skalowania z 1 maszyną wirtualną w strefie 1, 3 maszyny wirtualne w strefie 2 i 3 maszyny wirtualne w strefie 3 są uznawane za niezrównoważone. Strefa 1 ma 2 maszyny wirtualne mniejsze niż strefy 2 i 3.

Istnieje możliwość, że maszyny wirtualne w zestawie skalowania zostały pomyślnie utworzone, ale nie można wdrożyć rozszerzeń na tych maszynach wirtualnych. Te maszyny wirtualne z błędami rozszerzeń są nadal liczone podczas określania, czy zestaw skalowania jest zrównoważony. Na przykład zestaw skalowania z 3 maszynami wirtualnymi w strefie 1, 3 maszyn wirtualnych w strefie 2 i 3 maszyn wirtualnych w strefie 3 jest uznawany za zrównoważony, nawet jeśli wszystkie rozszerzenia nie powiodły się w strefie 1, a wszystkie rozszerzenia zakończyły się powodzeniem w strefach 2 i 3.

W przypadku równoważenia strefy najlepszego nakładu pracy zestaw skalowania próbuje skalować w poziomie i w poziomie przy zachowaniu równowagi. Jeśli jednak z jakiegoś powodu równoważenie strefy nie jest możliwe (na przykład jeśli jedna strefa ulegnie awarii, zestaw skalowania nie może utworzyć nowej maszyny wirtualnej w tej strefie), zestaw skalowania umożliwia tymczasowe nierównowagi pomyślne skalowanie w poziomie lub w poziomie. W kolejnych próbach skalowania w poziomie zestaw skalowania dodaje maszyny wirtualne do stref, które wymagają większej liczby maszyn wirtualnych, aby zestaw skalowania był zrównoważony. Podobnie w kolejnych próbach skalowania zestaw skalowania usuwa maszyny wirtualne ze stref, które wymagają mniejszej liczby maszyn wirtualnych, aby zestaw skalowania był zrównoważony. W przypadku "ścisłego równoważenia strefy" zestaw skalowania kończy się niepowodzeniem wszelkich prób skalowania w poziomie lub w poziomie, jeśli spowoduje to niezrównoważenie.

Aby użyć równoważenia strefy najlepszego nakładu pracy, ustaw wartość zoneBalance na false. To ustawienie jest ustawieniem domyślnym w interfejsie API w wersji 2017-12-01. Aby użyć ścisłego równoważenia strefy, ustaw wartość zoneBalance na true.

Uwaga

Właściwość zoneBalance można ustawić tylko wtedy, gdy właściwość zones zestawu skalowania zawiera więcej niż jedną strefę. Jeśli nie określono stref ani tylko jednej strefy, nie należy ustawiać właściwości zoneBalance.

Tworzenie strefowych zestawów skalowania lub strefowych

Podczas wdrażania zestawu skalowania maszyn wirtualnych można użyć pojedynczej strefy dostępności w regionie lub wielu strefach.

Możesz utworzyć zestaw skalowania, który używa Strefy dostępności przy użyciu jednej z następujących metod:

Korzystanie z witryny Azure Portal

Proces tworzenia zestawu skalowania, który używa strefy dostępności, jest taki sam jak w artykule wprowadzenie. Po wybraniu obsługiwanego regionu platformy Azure można utworzyć zestaw skalowania w co najmniej jednej dostępnej strefie, jak pokazano w poniższym przykładzie:

Tworzenie zestawu skalowania w jednej strefie dostępności

Zestaw skalowania i zasoby pomocnicze, takie jak moduł równoważenia obciążenia platformy Azure i publiczny adres IP, są tworzone w określonej strefie pojedynczej.

Korzystanie z interfejsu wiersza polecenia platformy Azure

Proces tworzenia zestawu skalowania, który używa strefy dostępności, jest taki sam jak w artykule wprowadzenie. Aby użyć Strefy dostępności, musisz utworzyć zestaw skalowania w obsługiwanym regionie świadczenia usługi Azure.

--zones Dodaj parametr do polecenia az vmss create i określ strefę do użycia (np. strefę 1, 2 lub 3).

az vmss create \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --image <SKU Image> \
    --upgrade-policy-mode automatic \
    --admin-username azureuser \
    --generate-ssh-keys \
    --zones 1 2 3

Utworzenie i skonfigurowanie wszystkich zasobów zestawu skalowania i maszyn wirtualnych w określonych strefach może potrwać kilka minut. Aby uzyskać pełny przykład zestawu skalowania strefowo nadmiarowego i zasobów sieciowych, zobacz ten przykładowy skrypt interfejsu wiersza polecenia

Korzystanie z programu Azure PowerShell

Aby użyć Strefy dostępności, musisz utworzyć zestaw skalowania w obsługiwanym regionie świadczenia usługi Azure. -Zone Dodaj parametr do polecenia New-AzVmssConfig i określ strefę lub strefy do użycia (np. strefę 1, 2 lub 3).

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS2" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicy "Automatic" `
  -Zone "1", "2", "3"

Korzystanie z szablonów usługi Azure Resource Manager

Proces tworzenia zestawu skalowania korzystającego ze strefy dostępności jest taki sam jak w artykule wprowadzenie dla systemu Linux lub Windows.

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "name": "myScaleSet",
  "location": "East US 2",
  "apiVersion": "2017-12-01",
  "zones": [
        "1",
        "2",
        "3"
      ]
}

Jeśli tworzysz publiczny adres IP lub moduł równoważenia obciążenia, określ "sku": {"name":"Standard"} właściwość, aby utworzyć zasoby sieciowe strefowo nadmiarowe. Należy również utworzyć sieciową grupę zabezpieczeń i reguły, aby zezwolić na ruch. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Load Balancer w warstwie Standardowa oraz usługa Load Balancer w warstwie Standardowa i Strefy dostępności.

Pełny przykład zestawu skalowania strefowo nadmiarowego i zasobów sieciowych można znaleźć w naszym przykładowym szablonie usługi Resource Manager.

Aktualizacja zestawu skalowania, aby dodać strefy dostępności

Możesz zmodyfikować skalę, aby rozszerzyć zestaw stref, w których można rozmieścić instancje maszyn wirtualnych. Rozszerzenie umożliwia korzystanie z wyższej umowy SLA dotyczącej dostępności strefowej (99,99%) w porównaniu z umową SLA dostępności regionalnej (99,95%). Możesz też rozszerzyć zestaw skalowania, aby skorzystać z nowych stref dostępności, które nie były dostępne podczas tworzenia zestawu skalowania.

Ważne

Aktualizowanie zestawów skalowania maszyn wirtualnych w celu dodania stref dostępności jest obecnie dostępne w wersji zapoznawczej. Wersje zapoznawcze są udostępniane Użytkownikowi pod warunkiem, że zgadzasz się na dodatkowe warunki użytkowania. Niektóre cechy funkcji mogą ulec zmianie, zanim stanie się ona ogólnie dostępna.

Ważne

Ta funkcja jest przeznaczona dla obciążeń bezstanowych w zestawach skalowania maszyn wirtualnych. Zestawy skalowania z obciążeniami stanowymi lub używane z usługą Service Fabric lub Azure Kubernetes Services nie są obsługiwane w przypadku rozszerzania strefowego.

Tej funkcji można używać z interfejsem API w wersji 2023-03-01 lub nowszej.

Włączanie subskrypcji w celu korzystania z funkcji rozszerzania strefowego

Musisz zarejestrować się w celu uzyskania czterech flag funkcji w ramach subskrypcji:

az feature register --namespace Microsoft.Compute --name VmssAllowRegionalToZonalMigration
az feature register --namespace Microsoft.Compute --name VmssAllowExpansionOfAvailabilityZones
az feature register --namespace Microsoft.Compute --name VmssFlexAllowExpansionOfAvailabilityZones
az feature register --namespace Microsoft.Compute --name VmssFlexAllowRegionalToZonalMigration

Stan rejestracji każdej funkcji można sprawdzić przy użyciu:

az feature show --namespace Microsoft.Compute --name \<feature-name\>

Rozszerzanie zestawu skalowania w celu korzystania ze stref dostępności

Zestaw skalowania można zaktualizować w celu skalowania wystąpień w poziomie do co najmniej jednej dodatkowej strefy dostępności w górę do liczby stref dostępności obsługiwanych przez region. W przypadku regionów obsługujących strefy minimalna liczba stref wynosi 3.

Ważne

Po rozszerzeniu zestawu skalowania na dodatkowe strefy oryginalne wystąpienia nie zostaną przeniesione ani zmienione. W przypadku skalowania w poziomie nowe wystąpienia zostaną utworzone i równomiernie rozmieszczone w wybranych strefach dostępności. Podczas skalowania w zestawie skalowania wszystkie wystąpienia regionalne będą najpierw priorytetowe dla usunięcia. Następnie instancje zostaną usunięte w oparciu o skalę w zasadach.

Rozszerzanie do zestawu skalowania strefowego odbywa się w 3 krokach:

  1. Przygotowanie do rozszerzania strefowego
  2. Aktualizowanie parametru stref w zestawie skalowania
  3. Dodawanie nowych wystąpień strefowych i usuwanie oryginalnych wystąpień

Przygotowanie do rozszerzania strefowego

Ostrzeżenie

Ta funkcja umożliwia dodawanie stref do zestawu skalowania. Nie można wrócić do regionalnego zestawu skalowania ani usunąć stref po ich dodaniu.

Aby przygotować się do ekspansji strefowej:

  • Sprawdź, czy masz wystarczający limit przydziału dla rozmiaru maszyny wirtualnej w wybranym regionie, aby obsłużyć więcej wystąpień.
  • Sprawdź, czy rozmiar maszyny wirtualnej i używane typy dysków są dostępne we wszystkich żądanych strefach. Za pomocą interfejsu API jednostek SKU zasobów obliczeniowych można określić, które rozmiary są dostępne w jakich strefach
  • Sprawdź, czy konfiguracja zestawu skalowania jest prawidłowa dla zestawów skalowania strefowego:
    • platformFaultDomainCount musi być ustawiona na 1 lub 5. Naprawiono rozłożenie z 2 lub 3 domenami błędów nie jest obsługiwane w przypadku wdrożeń strefowych.
    • Rezerwacje pojemności nie są obsługiwane podczas rozszerzania strefy. Gdy zestaw skalowania jest w pełni strefowy (nie więcej wystąpień regionalnych), możesz dodać grupę rezerwacji pojemności do zestawu skalowania.
    • Wdrożenia usługi Azure Dedicated Host nie są obsługiwane.

Aktualizowanie parametru stref w zestawie skalowania

Zaktualizuj zestaw skalowania, aby zmienić parametr stref.

  1. Przejdź do zestawu skalowania, który chcesz zaktualizować
  2. Na karcie Właściwości strony docelowej zestawu skalowania znajdź właściwość Strefa dostępności i naciśnij przycisk Edytuj
  3. W oknie dialogowym Edytowanie lokalizacji wybierz żądane strefy
  4. Wybierz Zastosuj

Dodawanie nowych wystąpień strefowych i usuwanie oryginalnych wystąpień

Ręczne skalowanie w poziomie i w

Zaktualizuj pojemność zestawu skalowania, aby dodać więcej wystąpień. Nowa pojemność powinna być ustawiona na pierwotną pojemność powiększoną o liczbę nowych instancji. Jeśli na przykład zestaw skalowania miał 5 wystąpień regionalnych i chcesz skalować w poziomie, aby mieć 3 wystąpienia w każdej z 3 stref, należy ustawić pojemność na 14.

Parametr stref i pojemność zestawu skalowania można zaktualizować w tym samym szablonie usługi ARM lub wywołaniu interfejsu API REST.

Gdy masz pewność, że nowe wystąpienia są gotowe, przeprowadź skalowanie w zestawie skalowania w celu usunięcia oryginalnych wystąpień regionalnych. Możesz ręcznie usunąć określone wystąpienia regionalne lub skalować w poziomie, zmniejszając pojemność zestawu skalowania. Podczas skalowania w trybie za pomocą zmniejszenia pojemności zestawu skalowania platforma zawsze preferuje usuwanie wystąpień regionalnych, a następnie postępuje zgodnie z zasadami skalowania.

Automatyzowanie za pomocą uaktualnień stopniowego i maxSurge

Dzięki uaktualnieniom kroczącym + MaxSurge tworzone są nowe wystąpienia strefowe i są na bieżąco z najnowszym modelem skalowania w partiach. Po dodaniu partii nowych wystąpień do zestawu skalowania i raportowania jako dobrej kondycji partia starych wystąpień zostanie automatycznie usunięta z zestawu skalowania. Uaktualnienia będą kontynuowane do momentu, aż wszystkie wystąpienia zostaną uaktualnione.

Ważne

Uaktualnienia stopniowe z programem MaxSurge są obecnie dostępne w publicznej wersji zapoznawczej. Jest on dostępny tylko dla trybu jednolitej aranżacji zestawu skalowania maszyn wirtualnych.

Znane problemy i ograniczenia

  • Ta funkcja jest przeznaczona dla obciążeń bezstanowych w zestawach skalowania maszyn wirtualnych.

  • Zestawy skalowania z uruchomioną usługą Service Fabric lub usługą Azure Kubernetes Service nie są obsługiwane.

  • Nie można usuwać ani zastępować stref, dodawać tylko strefy

  • Nie można zaktualizować z zestawu skalowania strefowego lub strefowego do regionalnego zestawu skalowania.

  • platformFaultDomainCount musi być ustawiona na 1 lub 5. Naprawiono rozłożenie z 2 lub 3 domenami błędów nie jest obsługiwane w przypadku wdrożeń strefowych.

  • Rezerwacje pojemności nie są obsługiwane podczas rozszerzania strefy. Gdy zestaw skalowania jest w pełni strefowy (nie więcej wystąpień regionalnych), możesz dodać grupę rezerwacji pojemności do zestawu skalowania.

  • Wdrożenia usługi Azure Dedicated Host nie są obsługiwane

Następne kroki

Po utworzeniu zestawu skalowania w strefie dostępności możesz dowiedzieć się, jak wdrażać aplikacje w zestawach skalowania maszyn wirtualnych lub używać automatycznego skalowania za pomocą zestawów skalowania maszyn wirtualnych.