Zagadnienia dotyczące planowania wydajności klastra usługi Service Fabric

Planowanie pojemności klastra jest ważne dla każdego środowiska produkcyjnego usługi Service Fabric. Najważniejsze zagadnienia obejmują:

  • Początkowa liczba i właściwości typów węzłów klastra

  • Poziom trwałości każdego typu węzła, który określa uprawnienia maszyny wirtualnej usługi Service Fabric w ramach infrastruktury platformy Azure

  • Poziom niezawodności klastra, który określa stabilność usług systemowych usługi Service Fabric i ogólną funkcję klastra

Ten artykuł przeprowadzi Cię przez istotne punkty decyzyjne dla każdego z tych obszarów.

Początkowa liczba i właściwości typów węzłów klastra

Typ węzła definiuje rozmiar, liczbę i właściwości zestawu węzłów (maszyn wirtualnych) w klastrze. Każdy typ węzła zdefiniowany w klastrze usługi Service Fabric jest mapowy na zestaw skalowania maszyn wirtualnych.

Ponieważ każdy typ węzła jest odrębnym zestawem skalowania, można go skalować w górę lub w dół niezależnie, mieć otwarte różne zestawy portów i mieć różne metryki pojemności. Aby uzyskać więcej informacji na temat relacji między typami węzłów i zestawami skalowania maszyn wirtualnych, zobacz Typy węzłów klastra usługi Service Fabric.

Każdy klaster wymaga jednego typu węzła podstawowego, który uruchamia krytyczne usługi systemowe, które zapewniają możliwości platformy Service Fabric. Chociaż można również używać typów węzłów podstawowych do uruchamiania aplikacji, zaleca się ich przeznaczenie wyłącznie do uruchamiania usług systemowych.

Typy węzłów innych niżprimary mogą służyć do definiowania ról aplikacji (takich jak usługi frontonu i zaplecza ) oraz do fizycznego izolowania usług w klastrze. Klastry usługi Service Fabric mogą mieć zero lub więcej typów węzłów innych niż jednostki.

Typ węzła podstawowego jest konfigurowany przy użyciu atrybutu isPrimary w ramach definicji typu węzła w szablonie wdrożenia usługi Azure Resource Manager. Zobacz obiekt NodeTypeDescription , aby uzyskać pełną listę właściwości typu węzła. Na przykład użycie otwórz dowolny plik AzureDeploy.json w przykładach klastra usługi Service Fabric i wyszukaj go nodeTypesna stronie.

Zagadnienia dotyczące planowania typu węzła

Liczba początkowych typów węzłów zależy od celu klastra oraz uruchomionych na nim aplikacji i usług. Zastanów się nad następującymi pytaniami:

  • Czy aplikacja ma wiele usług i czy każda z nich musi być publiczna lub dostępna w Internecie?

    Typowe aplikacje zawierają usługę bramy frontonu, która odbiera dane wejściowe od klienta, oraz co najmniej jedną usługę zaplecza komunikującą się z usługami frontonu z oddzielnymi sieciami między usługami frontonu i zaplecza. Te przypadki zwykle wymagają trzech typów węzłów: jednego typu węzła podstawowego i dwóch typów węzłów nieprzyjemnych (po jednym dla usługi frontonu i zaplecza).

  • Czy usługi tworzące aplikację mają różne potrzeby dotyczące infrastruktury, takie jak większe wykorzystanie pamięci RAM lub wyższe cykle procesora CPU?

    Często usługa frontonu może działać na mniejszych maszynach wirtualnych (takich jak D2), które mają otwarte porty w Internecie. Usługi zaplecza intensywnie korzystające z obliczeń mogą wymagać uruchamiania na większych maszynach wirtualnych (z rozmiarami maszyn wirtualnych, takimi jak D4, D6, D15), które nie są dostępne z Internetu. Definiowanie różnych typów węzłów dla tych usług umożliwia bardziej wydajne i bezpieczne korzystanie z bazowych maszyn wirtualnych usługi Service Fabric oraz umożliwia ich niezależne skalowanie. Aby uzyskać więcej informacji na temat szacowania ilości potrzebnych zasobów, zobacz Planowanie pojemności dla aplikacji usługi Service Fabric

  • Czy którakolwiek z usług aplikacji będzie musiała skalować w poziomie ponad 100 węzłów?

    Pojedynczy typ węzła nie może niezawodnie skalować ponad 100 węzłów na zestaw skalowania maszyn wirtualnych dla aplikacji usługi Service Fabric. Uruchomienie więcej niż 100 węzłów wymaga dodatkowych zestawów skalowania maszyn wirtualnych (a tym samym dodatkowych typów węzłów).

  • Czy klaster będzie obejmował Strefy dostępności?

    Usługa Service Fabric obsługuje klastry obejmujące Strefy dostępności przez wdrożenie typów węzłów przypiętych do określonych stref, zapewniając wysoką dostępność aplikacji. Strefy dostępności wymagają dodatkowego planowania typu węzła i minimalnych wymagań. Aby uzyskać szczegółowe informacje, zobacz Topologia obejmująca podstawowy typ węzła w Strefy dostępności.

Podczas określania liczby i właściwości typów węzłów dla początkowego tworzenia klastra należy pamiętać, że po wdrożeniu klastra zawsze można dodawać, modyfikować lub usuwać (niepodstawne) typy węzłów. Typy węzłów podstawowych można również skalować w górę lub w dół w uruchomionych klastrach, jednak w tym celu należy utworzyć nowy typ węzła, przenieść obciążenie, a następnie usunąć oryginalny typ węzła podstawowego.

Kolejną kwestią dotyczącą właściwości typu węzła jest poziom trwałości, który określa uprawnienia maszyn wirtualnych typu węzła w ramach infrastruktury platformy Azure. Użyj rozmiaru maszyn wirtualnych wybranych dla klastra i liczby wystąpień przypisanych dla poszczególnych typów węzłów, aby ułatwić określenie odpowiedniej warstwy trwałości dla każdego z typów węzłów zgodnie z opisem w dalszej części.

Charakterystyka trwałości klastra

Poziom trwałości określa uprawnienia maszyn wirtualnych usługi Service Fabric z podstawową infrastrukturą platformy Azure. To uprawnienie umożliwia usłudze Service Fabric wstrzymanie dowolnego żądania infrastruktury na poziomie maszyny wirtualnej (na przykład ponowne uruchomienie, odtworzenie obrazu lub migracja), które ma wpływ na wymagania kworum dla usług systemowych usługi Service Fabric i usług stanowych.

Ważne

Poziom trwałości jest ustawiany na typ węzła. Jeśli nie określono żadnej z nich, zostanie użyta warstwa Brązowa . Obciążenia produkcyjne wymagają poziomu trwałości silver lub Gold, aby uniknąć utraty danych z żądań infrastruktury na poziomie maszyny wirtualnej.

W poniższej tabeli wymieniono warstwy trwałości usługi Service Fabric, ich wymagania i elementy działania.

Warstwa trwałości Wymagana minimalna liczba maszyn wirtualnych Obsługiwane rozmiary maszyn wirtualnych Aktualizacje do zestawu skalowania maszyn wirtualnych Aktualizacje i konserwacja zainicjowana przez platformę Azure
Złoty 5 Rozmiary pełnego węzła przeznaczone dla jednego klienta — dostępne rozmiary maszyn wirtualnych Może być opóźniony do momentu zatwierdzenia przez klaster usługi Service Fabric Można wstrzymać przez 2 godziny na domenę uaktualnienia, aby umożliwić dodatkowy czas odzyskiwania replik po wcześniejszych awariach
Srebrny 5 Maszyny wirtualne z pojedynczym rdzeniem lub większą ilością z co najmniej 50 GB lokalnego dysku SSD Może być opóźniony do momentu zatwierdzenia przez klaster usługi Service Fabric Nie można opóźnić przez dłuższy czas
Brązowe 1 Maszyny wirtualne z co najmniej 50 GB lokalnego dysku SSD Klaster usługi Service Fabric nie będzie opóźniony Nie można opóźnić przez dłuższy czas

Uwaga

Wymieniona powyżej minimalna liczba maszyn wirtualnych jest niezbędnym wymaganiem dla każdego poziomu trwałości. Mamy w miejscu weryfikacje, które uniemożliwią utworzenie lub zmodyfikowanie istniejących zestawów skalowania maszyn wirtualnych, które nie spełniają tych wymagań.

Ostrzeżenie

Dzięki trwałości z brązu automatyczne uaktualnianie obrazu systemu operacyjnego nie jest dostępne. Chociaż aplikacja Patch Orchestration Application (przeznaczona tylko dla klastrów hostowanych poza platformą Azure) nie jest zalecana w przypadku poziomów trwałości silver lub większej trwałości, jest to jedyna opcja automatyzowania aktualizacji systemu Windows w odniesieniu do domen uaktualniania usługi Service Fabric.

Ważne

Niezależnie od poziomu trwałości uruchomienie operacji Deallocation w zestawie skalowania maszyn wirtualnych spowoduje zniszczenie klastra.

Brązowe

Typy węzłów uruchomione z trwałością z brązu nie uzyskują żadnych uprawnień. Oznacza to, że zadania infrastruktury wpływające na obciążenia stanowe nie zostaną zatrzymane ani opóźnione. Użyj trwałości z brązu dla typów węzłów, które uruchamiają tylko obciążenia bezstanowe. W przypadku obciążeń produkcyjnych zalecane jest uruchomienie programu Silver lub nowszego.

Srebro i złoto

Używaj trwałości Silver lub Gold dla wszystkich typów węzłów hostujących usługi stanowe, które mają być często skalowane, i gdzie chcesz opóźnić operacje wdrażania i zmniejszyć pojemność na rzecz uproszczenia procesu. Scenariusze skalowania w poziomie nie powinny mieć wpływu na wybór warstwy trwałości.

Zalety

  • Zmniejsza liczbę wymaganych kroków operacji skalowania w poziomie (dezaktywacja węzła i Remove-ServiceFabricNodeState są wywoływane automatycznie).
  • Zmniejsza ryzyko utraty danych z powodu operacji zmiany rozmiaru maszyny wirtualnej w miejscu i operacji infrastruktury platformy Azure.

Wady

  • Wdrożenia w zestawach skalowania maszyn wirtualnych i innych powiązanych zasobach platformy Azure mogą zostać przekroczone, opóźnione lub całkowicie zablokowane przez problemy w klastrze lub na poziomie infrastruktury.
  • Zwiększa liczbę zdarzeń cyklu życia repliki (na przykład zamiany podstawowe) z powodu automatycznych dezaktywacji węzłów podczas operacji infrastruktury platformy Azure.
  • Wyjmuje węzły z usługi przez pewien czas, podczas gdy są wykonywane aktualizacje oprogramowania lub działania konserwacji sprzętu platformy Azure. Podczas tych działań mogą być widoczne węzły ze stanem Wyłączanie/Wyłączone. Zmniejsza to tymczasowo pojemność klastra, ale nie powinno mieć wpływu na dostępność klastra lub aplikacji.

Najlepsze rozwiązania dotyczące typów węzłów trwałości Silver i Gold

Postępuj zgodnie z poniższymi zaleceniami dotyczącymi zarządzania typami węzłów z trwałością Silver lub Gold:

  • Zachowaj kondycję klastra i aplikacji przez cały czas i upewnij się, że aplikacje reagują na wszystkie zdarzenia cyklu życia repliki usługi (takie jak replika w kompilacji są zablokowane) w odpowiednim czasie.
  • Wdrażanie bezpieczniejszych sposobów zmiany rozmiaru maszyny wirtualnej (skalowanie w górę/w dół). Zmiana rozmiaru maszyny wirtualnej zestawu skalowania maszyn wirtualnych wymaga starannego planowania i ostrożności. Aby uzyskać szczegółowe informacje, zobacz Skalowanie w górę typu węzła usługi Service Fabric
  • Zachowaj minimalną liczbę pięciu węzłów dla dowolnego zestawu skalowania maszyn wirtualnych z włączonym poziomem trwałości Gold lub Silver. Klaster wprowadzi stan błędu w przypadku skalowania poniżej tego progu i konieczne będzie ręczne wyczyszczenie stanu (Remove-ServiceFabricNodeState) dla usuniętych węzłów.
  • Każdy zestaw skalowania maszyn wirtualnych z poziomem trwałości Silver lub Gold musi być mapowy na własny typ węzła w klastrze usługi Service Fabric. Mapowanie wielu zestawów skalowania maszyn wirtualnych na jeden typ węzła uniemożliwi koordynację między klastrem usługi Service Fabric i infrastrukturą platformy Azure.
  • Nie usuwaj losowych wystąpień maszyn wirtualnych, zawsze używaj funkcji skalowania zestawu skalowania maszyn wirtualnych. Usunięcie losowych wystąpień maszyn wirtualnych może potencjalnie tworzyć nierównowagi w wystąpieniu maszyny wirtualnej rozłożone między domenami uaktualniania i domenami błędów. Ta nierównowaga może negatywnie wpłynąć na zdolność systemów do prawidłowego równoważenia obciążenia między wystąpieniami usługi/replikami usługi.
  • W przypadku korzystania z autoskalowania należy ustawić reguły tak, aby operacje skalowania (usuwania wystąpień maszyn wirtualnych) odbywały się tylko w jednym węźle jednocześnie. Skalowanie w więcej niż jednym wystąpieniu jednocześnie nie jest bezpieczne.
  • W przypadku usuwania lub cofania przydziału maszyn wirtualnych w typie węzła podstawowego nigdy nie należy zmniejszać liczby przydzielonych maszyn wirtualnych poniżej wymaganej warstwy niezawodności. Te operacje będą blokowane na czas nieokreślony w zestawie skalowania z poziomem trwałości Silver lub Gold.

Zmienianie poziomów trwałości

W ramach pewnych ograniczeń można dostosować poziom trwałości typu węzła:

  • Typy węzłów o poziomach trwałości Silver lub Gold nie mogą zostać obniżone do brązowego.
  • Obniżanie poziomu węzłów z poziomem trwałości Gold do Silver nie jest obsługiwane.
  • Uaktualnienie z Brązu do Srebra lub Złota może potrwać kilka godzin.
  • Podczas zmiany poziomu trwałości pamiętaj, aby zaktualizować go zarówno w konfiguracji rozszerzenia usługi Service Fabric w zasobie zestawu skalowania maszyn wirtualnych, jak i w definicji typu węzła w zasobie klastra usługi Service Fabric. Te wartości muszą być zgodne.

Innym zagadnieniem podczas planowania pojemności jest poziom niezawodności klastra, który określa stabilność usług systemowych i ogólnego klastra, zgodnie z opisem w następnej sekcji.

Charakterystyka niezawodności klastra

Poziom niezawodności klastra określa liczbę replik usług systemowych uruchomionych w podstawowym typie węzła klastra. Tym bardziej niezawodne repliki są usługi systemowe (a zatem klaster jako całość).

Ważne

Poziom niezawodności jest ustawiany na poziomie klastra i określa minimalną liczbę węzłów typu węzła podstawowego. Obciążenia produkcyjne wymagają poziomu niezawodności silver (większego lub równego pięciu węzłom) lub wyższego.

Warstwa niezawodności może przyjmować następujące wartości:

  • Platinum — usługi systemowe są uruchamiane z docelową liczbą zestawów replik
  • Gold — usługi systemowe są uruchamiane z docelową liczbą zestawów replik
  • Silver — usługi systemowe są uruchamiane z docelową liczbą zestawów replik
  • Brąz — usługi systemowe są uruchamiane z docelową liczbą zestawów replik

Poniżej przedstawiono zalecenie dotyczące wybierania warstwy niezawodności. Liczba węzłów inicjowania jest również ustawiona na minimalną liczbę węzłów dla warstwy niezawodności.

Liczba węzłów Warstwa niezawodności
1 Nie określaj parametru reliabilityLevel : system go oblicza.
3 Brązowe
5 lub 6 Srebrny
7 lub 8 Złoty
9 i w górę Platinum

W przypadku zwiększenia lub zmniejszenia rozmiaru klastra (sumy wystąpień maszyn wirtualnych we wszystkich typach węzłów) rozważ zaktualizowanie niezawodności klastra z jednej warstwy do innej. Spowoduje to wyzwolenie uaktualnień klastra wymaganych do zmiany liczby zestawów replik usług systemowych. Poczekaj na zakończenie uaktualniania przed wprowadzeniem innych zmian w klastrze, takich jak dodawanie węzłów. Postęp uaktualniania można monitorować na Service Fabric Explorer lub uruchamiając polecenie Get-ServiceFabricClusterUpgrade

Planowanie wydajności pod kątem niezawodności

Wymagania dotyczące pojemności klastra będą określane przez określone wymagania dotyczące obciążenia i niezawodności. Ta sekcja zawiera ogólne wskazówki ułatwiające rozpoczęcie planowania pojemności.

Ustalanie rozmiaru maszyny wirtualnej

W przypadku obciążeń produkcyjnych zalecany rozmiar maszyny wirtualnej (SKU) to Standardowa D2_V2 (lub odpowiednik) z co najmniej 50 GB lokalnego dysku SSD, 2 rdzeni i 4 GiB pamięci. Zalecane jest co najmniej 50 GB lokalnego dysku SSD, jednak niektóre obciążenia (takie jak te z uruchomionymi kontenerami systemu Windows) będą wymagały większych dysków.

Domyślnie lokalny dysk SSD jest skonfigurowany do 64 GB. Rozmiar można skonfigurować w ustawieniu MaxDiskQuotaInMB sekcji Diagnostyka ustawień klastra.

Aby uzyskać instrukcje dotyczące dostosowywania ustawień klastra klastra hostowanego na platformie Azure, zobacz Uaktualnianie konfiguracji klastra na platformie Azure

Aby uzyskać instrukcje dotyczące dostosowywania ustawień klastra autonomicznego klastra hostowanego w systemie Windows, zobacz Uaktualnianie konfiguracji klastra autonomicznego

Podczas wybierania innych rozmiarów maszyn wirtualnych dla obciążeń produkcyjnych należy pamiętać o następujących ograniczeniach:

  • Częściowe/pojedyncze rozmiary maszyn wirtualnych, takie jak Standardowa A0, nie są obsługiwane.
  • Seria A Rozmiary maszyn wirtualnych nie są obsługiwane ze względu na wydajność.
  • Maszyny wirtualne o niskim priorytcie nie są obsługiwane.
  • Jednostki SKU serii B nie są obsługiwane.

Typ węzła podstawowego

Obciążenia produkcyjne na platformie Azure wymagają co najmniej pięciu węzłów podstawowych (wystąpień maszyn wirtualnych) i warstwy niezawodności platformy Silver. Zaleca się dedykowanie typu węzła podstawowego klastra do usług systemowych i użycie ograniczeń umieszczania w celu wdrożenia aplikacji do typów węzłów pomocniczych.

Obciążenia testowe na platformie Azure mogą uruchamiać co najmniej jeden lub trzy węzły podstawowe. Aby skonfigurować klaster z jednym węzłem, upewnij się, że reliabilityLevel ustawienie zostało pominięte w szablonie Resource Manager (określenie pustej wartości ciągu dla reliabilityLevel elementu nie jest wystarczające). W przypadku skonfigurowania klastra z jednym węzłem przy użyciu Azure Portal ta konfiguracja jest wykonywana automatycznie.

Ostrzeżenie

Klastry z jednym węzłem działają ze specjalną konfiguracją bez niezawodności i tam, gdzie skalowanie w poziomie nie jest obsługiwane.

typy węzłów innych niżprimary

Minimalna liczba węzłów dla typu węzła innego niżprimary zależy od określonego poziomu trwałości typu węzła. Należy zaplanować liczbę węzłów (i poziom trwałości) na podstawie liczby replik aplikacji lub usług, które mają być uruchamiane dla typu węzła, i w zależności od tego, czy obciążenie jest stanowe, czy bezstanowe. Pamiętaj, że możesz zwiększyć lub zmniejszyć liczbę maszyn wirtualnych w typie węzła w dowolnym momencie po wdrożeniu klastra.

Obciążenia stanowe

W przypadku stanowych obciążeń produkcyjnych korzystających z niezawodnych kolekcji usługi Service Fabric lub niezawodnych aktorów zalecana jest minimalna i docelowa liczba replik wynosząca pięć. Dzięki temu, w stanie stałym kończy się repliką (z zestawu replik) w każdej domenie błędów i domenie uaktualniania. Ogólnie rzecz biorąc, należy użyć poziomu niezawodności ustawionego dla usług systemowych jako przewodnika dotyczącego liczby replik używanych dla usług stanowych.

Obciążenia bezstanowe

W przypadku bezstanowych obciążeń produkcyjnych minimalny obsługiwany rozmiar typu węzła nonprimary wynosi trzy, aby zachować kworum, jednak zalecany jest rozmiar węzła o rozmiarze pięciu.

Następne kroki

Przed skonfigurowaniem klastra przejrzyj Not Allowedzasady uaktualniania klastra , aby zapobiec konieczności późniejszego ponownego utworzenia klastra z powodu niezmienialnych ustawień konfiguracji systemu.

Aby uzyskać więcej informacji na temat planowania klastra, zobacz: