Delen via


Configuratie van de grootte van stateful servicereplica's

De grootte van de replicaset voor stateful services wordt geconfigureerd met behulp van twee parameters.

  • TargetReplicaSetSize : het aantal replica's dat het systeem maakt en onderhoudt voor elke replicaset van een service
  • MinReplicaSetSize : minimaal toegestaan aantal replica's voor elke replicaset van een service

Het basisidee achter deze twee parameters is om een dergelijke configuratie toe te staan, zodat ten minste twee gelijktijdige fouten kunnen optreden zonder dat de partitie in quorumverlies gaat. Deze situatie kan zich voordoen wanneer er één geplande failover is (upgrade voor het omlaag brengen van knooppunt/replica) en één niet-geplande failover (knooppuntcrashes).

Als TargetReplicaSetSize =5, MinReplicaSetSize =3, dan zijn er normaal (zonder fouten) vijf replica's in de Service Fabrics-weergave van de replicaset. Wanneer er fouten optreden, neemt de Service Fabrics-weergave van de replicaset af totdat deze MinReplicaSetSize bereikt.

Service Fabric maakt gebruik van het meerderheidsquorum van het aantal replica's dat in deze weergave wordt onderhouden. Het meerderheidsquorum van minReplicaSetSize is dus het minimale betrouwbaarheidsniveau van een bewerking. Als het totale aantal replica's onder het meerderheidsquorum van de MinReplicaSetSize daalt, worden verdere schrijfbewerkingen niet toegestaan. Het is belangrijk om te weten dat wanneer de service in quorumverlies is, replica's in een specifieke volgorde moeten worden teruggezet om het quorumverlies te voorkomen.

Belangrijk

In het voorbeeld waarin TargetReplicaSetSize = 5, MinReplicaSetSize = 3, het meerderheidsquorum van MinReplicaSetSize is 2. Dit betekent dat, zelfs als er drie gelijktijdige fouten optreden die ertoe leiden dat er slechts twee resterende replica's worden uitgevoerd, Service Fabric nog steeds drie replica's heeft in de weergave van de replicaset (twee omhoog en één omlaag), en twee resterende actieve replica's voldoende zijn om aan het meerderheidsquorum te voldoen.

Voorbeelden van suboptimale configuraties

TargetReplicaSetSize = 3; MinReplicaSetSize = 2

Dit type configuratie gaat vaak over in quorumverlies (wanneer geplande en ongeplande failover tegelijkertijd plaatsvindt). Als u wilt herstellen van quorumverlies, is het niet voldoende om slechts één replica weer op te halen. Dit is vereist voor de exacte replica die deel uitmaakte van de replicaset om terug te komen.

Afbeelding van knooppunten in het cluster tijdens elke failoverfase tijdens de onderstaande reeks wanneer TargetReplicaSetSize = 3 en MinReplicaSetSize = 2

  1. Partitie heeft drie replica's: A, B, C
  2. Replica A gaat omlaag, Service Fabric downshifts replica ingesteld op 2 (B, C)
  3. Niet-geplande failover treedt op, replica B gaat ook omlaag- partitie heeft nu de status quorumverlies
  4. Als replica A terugkomt, blijft de partitie de status quorumverlies behouden, omdat A geen deel uitmaakt van de huidige replicaset (B, C). Quorumverlies wordt alleen opgelost wanneer replica B terugkomt.

TargetReplicaSetSize = 3, MinReplicaSetSize = 3

Dit type configuratie gaat vaak over in quorumverlies (wanneer geplande en ongeplande failover tegelijkertijd plaatsvindt). Zodra een van deze replica's opnieuw wordt weergegeven, herstelt de partitie echter van quorumverlies.

Waarschuwing

Dit type configuratie is nog steeds niet optimaal, het is slechts iets beter dan TagetReplicaSetSize =3, MinReplicaSetSize = 2.

Afbeelding toont knooppunten in het cluster tijdens elke failoverfase tijdens de onderstaande reeks wanneer TargetReplicaSetSize = 3 en MinReplicaSetSize = 3

  1. Partitie heeft drie replica's: A, B, C
  2. Replica A gaat omlaag, replicaset blijft hetzelfde (A, B, C)
  3. Niet-geplande failover treedt op, replica B gaat ook omlaag- partitie heeft nu de status quorumverlies
  4. Zodra een van de replica's A of B weer terugkomt, wordt het quorum hersteld omdat zowel A als B deel uitmaken van de huidige replicaset

Volgende stappen