Udostępnij za pośrednictwem


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 mapowane 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ć różne zestawy otwartych 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 Usługi Service Fabric. Chociaż można również używać typów węzłów podstawowych do uruchamiania aplikacji, zaleca się ich dedykować 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żprimary.

Typ węzła podstawowego jest konfigurowany przy użyciu atrybutu isPrimary w definicji typu węzła w szablonie wdrażania 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 nodeTypes na stronie.

Zagadnienia dotyczące planowania typu węzła

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

  • Czy aplikacja ma wiele usług i czy każda z nich musi być publiczna lub internetowa?

    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 innych niżprimary (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 cykle pamięci RAM lub wyższego 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 i 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 typ węzła podstawowego w Strefy dostępności.

Podczas określania liczby i właściwości typów węzłów na potrzeby początkowego tworzenia klastra należy pamiętać, że po wdrożeniu klastra zawsze można dodawać, modyfikować lub usuwać typy węzłów (inne niżprimary). 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.

Kolejnym zagadnieniem dla 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 wybieranych 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 ponownego uruchomienia, obrazu lub migracji), 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 zestawu skalowania maszyn wirtualnych Aktualizacje i konserwacja zainicjowane przez platformę Azure
Złoty 5 Rozmiary pełnych węzłów 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ą tworzenie lub modyfikowanie 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 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ą 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 brązowej 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żyj trwałości silver lub Gold dla wszystkich typów węzłów hostujących usługi stanowe, które mają być skalowane często, 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 dla 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ą być opóźnione lub blokowane całkowicie przez problemy w klastrze lub na poziomie infrastruktury.
  • Zwiększa liczbę zdarzeń cyklu życia repliki (na przykład zamiany podstawowe) ze względu na automatyczne dezaktywacje węzłów podczas operacji infrastruktury platformy Azure.
  • Wyjmuje węzły z usługi przez okres czasu, gdy występują 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 (na przykład 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 należy ręcznie wyczyścić stan (Remove-ServiceFabricNodeState) 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 skalowania zestawu skalowania maszyn wirtualnych w funkcji. Usunięcie losowych wystąpień maszyn wirtualnych może potencjalnie przyczynić się do powstania dysproporcji w wystąpieniu maszyny wirtualnej rozmieszczonej w domenach uaktualniania i domenach błędów. Nierównowaga ta może niekorzystnie 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 ustaw reguły, takie jak skalowanie w operacjach (usuwanie wystąpień maszyn wirtualnych) odbywa się tylko w jednym węźle naraz. Skalowanie w więcej niż jednym wystąpieniu w danym momencie 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 srebra lub złota nie mogą być obniżane do brązu.
  • Typy węzłów obniżające poziom trwałości Gold do Silver nie są 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 są usługi systemowe (a tym samym 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ązowy — 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ę Platyna

Po zwiększeniu lub zmniejszeniu rozmiaru klastra (suma 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 ukończenie uaktualnienia przed wprowadzeniem innych zmian w klastrze, takich jak dodawanie węzłów. Postęp uaktualniania można monitorować w programie 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 rdzeni, takie jak Standardowa A0, nie są obsługiwane.
  • Rozmiary maszyn wirtualnych serii A nie są obsługiwane ze względu na wydajność.
  • Maszyny wirtualne o niskim priorytcie nie są obsługiwane.
  • Jednostki SKU z możliwością 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.

Testowanie obciążeń na platformie Azure może 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 usługi Resource Manager (określenie pustej wartości ciągu nie reliabilityLevel jest wystarczające). Jeśli skonfigurujesz klaster z jednym węzłem skonfigurowany za pomocą witryny Azure Portal, ta konfiguracja zostanie wykonana 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 obciążeń produkcyjnych stanowych przy użyciu niezawodnych kolekcji usługi Service Fabric lub niezawodnych aktorów zalecana jest minimalna liczba replik docelowych i pięciu. Dzięki temu w stanie stałym należy utworzyć replikę (z zestawu replik) w każdej domenie błędów i domenie uaktualniania. Ogólnie rzecz biorąc, użyj 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 innego niżprimary wynosi trzy, aby zachować kworum, jednak zalecany jest rozmiar węzła o rozmiarze pięciu.

Następne kroki

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

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