Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Waarschuwing
Lees dit gedeelte voordat u opschaalt
Het schalen van rekenresources om de werkbelasting van uw toepassing te bronnen vereist opzettelijke planning, duurt bijna altijd langer dan een uur in een productieomgeving en vereist dat u inzicht krijgt in uw workload en bedrijfscontext; als u deze activiteit nog nooit eerder hebt uitgevoerd, is het aanbevolen om eerst de overwegingen voor capaciteitsplanning van Service Fabric-clusters te lezen en te begrijpen voordat u verdergaat met de rest van dit document. Deze aanbeveling is om onbedoelde LiveSite-problemen te voorkomen en het wordt ook aanbevolen om de bewerkingen die u wilt uitvoeren te testen op een niet-productieomgeving. U kunt op elk gewenst moment productieproblemen melden of betaalde ondersteuning voor Azure aanvragen. Voor technici die zijn toegewezen om deze bewerkingen uit te voeren die over de juiste context beschikken, worden in dit artikel schaalbewerkingen beschreven, maar u moet beslissen welke bewerkingen geschikt zijn voor uw use-case; zoals welke resources moeten worden geschaald (CPU, opslag, geheugen), welke richting moet worden geschaald (verticaal of horizontaal) en welke bewerkingen moeten worden uitgevoerd (resourcesjabloonimplementatie, portal, PowerShell/CLI).
Opmerking
U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Een Service Fabric-cluster in- of uitschalen met behulp van regels voor automatisch schalen of handmatig
Virtuele-machineschaalsets zijn een Azure-rekenresource die u kunt gebruiken voor het implementeren en beheren van een verzameling virtuele machines als een set. Elk knooppunttype dat is gedefinieerd in een Service Fabric-cluster, wordt ingesteld als een afzonderlijke virtuele-machineschaalset. Elk knooppunttype kan vervolgens onafhankelijk van elkaar worden ingeschaald of uitgeschaald, verschillende sets poorten zijn geopend en kunnen verschillende metrische capaciteitsgegevens hebben. Meer informatie hierover vindt u in het document met Service Fabric-knooppunttypen . Omdat de Service Fabric-knooppunttypen in uw cluster bestaan uit virtuele-machineschaalsets op de back-end, moet u regels voor automatisch schalen instellen voor elk knooppunttype/virtuele-machineschaalset.
Opmerking
Uw abonnement moet voldoende kerngeheugens hebben om de nieuwe VM's toe te voegen waaruit dit cluster bestaat. Er is momenteel geen modelvalidatie, dus u krijgt een implementatietijdfout als een van de quotumlimieten wordt bereikt.
Opmerking
Als u een installatiekopie van het Windows-besturingssysteem gebruikt waarvoor de Hyper-V-rol is ingeschakeld, wordt de virtuele machine geconfigureerd voor geneste virtualisatie. De beschikbare geheugencapaciteit is niet beschikbaar, omdat het dynamische geheugenstuurprogramma binnen de virtuele machine is gestopt.
Kies het knooppunttype/virtuele-machineschaalset om te schalen
Op dit moment kunt u de regels voor automatisch schalen voor virtuele-machineschaalsets niet opgeven met behulp van de portal om een Service Fabric-cluster te maken, dus we gebruiken Azure PowerShell (1.0+) om de knooppunttypen weer te geven en vervolgens regels voor automatisch schalen toe te voegen.
Voer de volgende cmdlets uit om de lijst met virtuele-machineschaalsets op te halen waaruit uw cluster bestaat:
Get-AzResource -ResourceGroupName <RGname> -ResourceType Microsoft.Compute/VirtualMachineScaleSets
Get-AzVmss -ResourceGroupName <RGname> -VMScaleSetName <virtual machine scale set name>
Regels voor automatisch schalen instellen voor het knooppunttype/schaalreeks van virtuele machines
Als uw cluster meerdere knooppunttypen heeft, herhaalt u dit voor elke knooppunttypen/virtuele-machineschaalsets die u wilt schalen (in of uit). Houd rekening met het aantal knooppunten dat u moet hebben voordat u automatisch schalen instelt. Het minimale aantal knooppunten dat u moet hebben voor het primaire knooppunttype, wordt bepaald door het betrouwbaarheidsniveau dat u hebt gekozen. Lees meer over betrouwbaarheidsniveaus.
Opmerking
Als u het primaire knooppunttype inschaalt naar minder dan het minimumaantal, wordt het cluster instabiel of zelfs omlaaggebracht. Dit kan leiden tot gegevensverlies voor uw toepassingen en voor de systeemservices.
Momenteel wordt de functie voor automatisch schalen niet aangestuurd door de belastingen die uw toepassingen mogelijk rapporteren aan Service Fabric. Op dit moment wordt de automatische schaalinstelling die u ontvangt, alleen aangestuurd door de prestatiecounters die worden uitgezonden door elk van de instanties binnen de virtuele-machineschaalset.
Volg deze instructies om autoschalen in te stellen voor elke set van virtuele machineschalen.
Opmerking
In een scenario waarin wordt geschaald, tenzij uw knooppunttype een duurzaamheidsniveau van Gold of Silver heeft, moet u de Remove-ServiceFabricNodeState cmdlet aanroepen met de juiste knooppuntnaam. Voor de duurzaamheid van brons is het niet raadzaam om meerdere knooppunten tegelijk in te schalen.
Handmatig virtuele machines toevoegen aan een knooppunttype of schaalset voor virtuele machines.
Wanneer u uitschaalt, voegt u meer exemplaren van virtuele machines toe aan de schaalset. Deze exemplaren worden de knooppunten die Service Fabric gebruikt. Service Fabric weet wanneer de schaalset meer exemplaren heeft toegevoegd (door uit te schalen) en reageert automatisch.
Opmerking
Het toevoegen van VM's kost tijd, dus verwacht niet dat de toevoegingen onmiddellijk worden toegevoegd. Plan de toevoeging van capaciteit ruim van tevoren, zodat er meer dan 10 minuten zijn voordat de VM-capaciteit beschikbaar is voor het plaatsen van de replica's/service-exemplaren.
VM's toevoegen met behulp van een sjabloon
Volg het voorbeeld/de instructies in de galerie met snelstartsjablonen om het aantal VM's in elk knooppunttype te wijzigen.
VM's toevoegen met behulp van PowerShell- of CLI-opdrachten
De volgende code haalt een schaalset op naam op en verhoogt de capaciteit van de schaalset met 1.
$scaleset = Get-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm
$scaleset.Sku.Capacity += 1
Update-AzVmss -ResourceGroupName $scaleset.ResourceGroupName -VMScaleSetName $scaleset.Name -VirtualMachineScaleSet $scaleset
Met deze code wordt de capaciteit ingesteld op 6.
# Get the name of the node with
az vmss list-instances -n nt1vm -g sfclustertutorialgroup --query [*].name
# Use the name to scale
az vmss scale -g sfclustertutorialgroup -n nt1vm --new-capacity 6
VM's handmatig verwijderen uit een knooppunttype/virtuele-machineschaalset
Wanneer u inschaalt in een knooppunttype, verwijdert u VM-exemplaren uit de schaalset. Als het knooppunttype Brons duurzaamheidsniveau is, weet Service Fabric niet wat er is gebeurd en meldt dat er een knooppunt ontbreekt. Service Fabric rapporteert vervolgens een beschadigde status voor het cluster. Als u deze slechte status wilt voorkomen, moet u het knooppunt expliciet uit het cluster verwijderen en de status van het knooppunt verwijderen.
De service fabric-systeemservices worden uitgevoerd in het primaire knooppunttype in uw cluster. Wanneer u in het primaire knooppunttype schaalt, schaalt u nooit het aantal exemplaren in op minder dan wat de betrouwbaarheidslaag rechtvaardigt.
Voor een stateful service hebt u een bepaald aantal knooppunten nodig om te allen tijde beschikbaar te blijven en de status van uw service te waarborgen. U hebt minimaal het aantal knooppunten nodig dat gelijk is aan het aantal doelreplica's van de partitie/service.
Het Service Fabric-knooppunt verwijderen
De stappen voor het handmatig verwijderen van de knooppuntstatus zijn alleen van toepassing op knooppunttypen met een bronzen duurzaamheidslaag. Voor de duurzaamheidslaag Silver en Gold worden deze stappen automatisch uitgevoerd door het platform. Zie Capaciteitsplanning voor Service Fabric-clusters voor meer informatie over duurzaamheid.
Opmerking
Houd minimaal vijf knooppunten bij voor elke virtuele-machineschaalset waarvoor het duurzaamheidsniveau Gold of Silver is ingeschakeld. Uw cluster voert de foutstatus in als u onder deze drempelwaarde inschaalt en u de verwijderde knooppunten handmatig moet opschonen.
Als u de knooppunten van het cluster gelijkmatig wilt verdelen over upgrade- en foutdomeinen en het gelijkmatig gebruik wilt inschakelen, moet het laatst gemaakte knooppunt eerst worden verwijderd. Met andere woorden, de knooppunten moeten worden verwijderd in de omgekeerde volgorde van hun creatie. Het meest recent gemaakte knooppunt is het knooppunt met de grootste virtual machine scale set InstanceId eigenschapswaarde. De onderstaande codevoorbeelden retourneren het laatst gemaakte knooppunt.
Get-ServiceFabricNode | Sort-Object NodeInstanceId -Descending | Select-Object -First 1
sfctl node list --query "sort_by(items[*], &name)[-1]"
Het Service Fabric-cluster moet weten dat dit knooppunt wordt verwijderd. Er zijn drie stappen die u moet uitvoeren:
Schakel het knooppunt uit zodat het geen replicatie meer is voor gegevens.
PowerShell:Disable-ServiceFabricNode
sfctl:sfctl node disableStop het knooppunt zodat de Service Fabric-runtime op schone wijze wordt afgesloten en uw app een beëindigingsaanvraag ontvangt.
PowerShell:Start-ServiceFabricNodeTransition -Stop
sfctl:sfctl node transition --node-transition-type StopVerwijder het knooppunt uit het cluster.
PowerShell:Remove-ServiceFabricNodeState
sfctl:sfctl node remove-state
Zodra deze drie stappen zijn toegepast op het knooppunt, kan deze worden verwijderd uit de schaalset. Als u een andere duurzaamheidslaag dan brons gebruikt, worden deze stappen voor u uitgevoerd wanneer het schaalset-exemplaar wordt verwijderd.
Het volgende codeblok haalt het laatst gemaakte knooppunt op, schakelt het uit, stopt en verwijdert het knooppunt uit het cluster.
#### After you've connected.....
# Get the node that was created last
$node = Get-ServiceFabricNode | Sort-Object { $_.NodeName.Substring($_.NodeName.LastIndexOf('_') + 1) } -Descending | Select-Object -First 1
# Node details for the disable/stop process
$nodename = $node.NodeName
$nodeid = $node.NodeInstanceId
$loopTimeout = 10
# Run disable logic
Disable-ServiceFabricNode -NodeName $nodename -Intent RemoveNode -TimeoutSec 300 -Force
$state = Get-ServiceFabricNode | Where-Object NodeName -eq $nodename | Select-Object -ExpandProperty NodeStatus
while (($state -ne [System.Fabric.Query.NodeStatus]::Disabled) -and ($loopTimeout -ne 0))
{
Start-Sleep 5
$loopTimeout -= 1
$state = Get-ServiceFabricNode | Where-Object NodeName -eq $nodename | Select-Object -ExpandProperty NodeStatus
Write-Host "Checking state... $state found"
}
# Exit if the node was unable to be disabled
if ($state -ne [System.Fabric.Query.NodeStatus]::Disabled)
{
Write-Error "Disable failed with state $state"
}
else
{
# Stop node
$stopid = New-Guid
Start-ServiceFabricNodeTransition -Stop -OperationId $stopid -NodeName $nodename -NodeInstanceId $nodeid -StopDurationInSeconds 300
$state = (Get-ServiceFabricNodeTransitionProgress -OperationId $stopid).State
$loopTimeout = 10
# Watch the transaction
while (($state -eq [System.Fabric.TestCommandProgressState]::Running) -and ($loopTimeout -ne 0))
{
Start-Sleep 5
$state = (Get-ServiceFabricNodeTransitionProgress -OperationId $stopid).State
Write-Host "Checking state... $state found"
}
if ($state -ne [System.Fabric.TestCommandProgressState]::Completed)
{
Write-Error "Stop transaction failed with $state"
}
else
{
# Remove the node from the cluster
Remove-ServiceFabricNodeState -NodeName $nodename -TimeoutSec 300 -Force
}
}
In de onderstaande sfctl-code wordt de volgende opdracht gebruikt om de waarde van de knooppuntnaam van het laatst gemaakte knooppunt op te halen: sfctl node list --query "sort_by(items[*], &name)[-1].name"
# Inform the node that it is going to be removed
sfctl node disable --node-name _nt1vm_5 --deactivation-intent 4 -t 300
# Stop the node using a random guid as our operation id
sfctl node transition --node-instance-id 131541348482680775 --node-name _nt1vm_5 --node-transition-type Stop --operation-id c17bb4c5-9f6c-4eef-950f-3d03e1fef6fc --stop-duration-in-seconds 14400 -t 300
# Remove the node from the cluster
sfctl node remove-state --node-name _nt1vm_5
Hint
Gebruik de volgende sfctl-query's om de status van elke stap te controleren
Deactiveringsstatus controlerensfctl node list --query "sort_by(items[*], &name)[-1].nodeDeactivationInfo"
Status van stop controlerensfctl node list --query "sort_by(items[*], &name)[-1].isStopped"
Schalen in de schaalset
Nu het Service Fabric-knooppunt uit het cluster is verwijderd, kan de virtuele machineschaalset worden verkleind. In het onderstaande voorbeeld wordt de capaciteit van de schalingsset met 1 verminderd.
$scaleset = Get-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm
$scaleset.Sku.Capacity -= 1
Update-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm -VirtualMachineScaleSet $scaleset
Met deze code wordt de capaciteit ingesteld op 5.
# Get the name of the node with
az vmss list-instances -n nt1vm -g sfclustertutorialgroup --query [*].name
# Use the name to scale
az vmss scale -g sfclustertutorialgroup -n nt1vm --new-capacity 5
Gedrag dat u kunt observeren in Service Fabric Explorer
Wanneer u een cluster uitschaalt, geeft Service Fabric Explorer het aantal knooppunten (instanties van virtuele-machineschaalsets) weer die deel uitmaken van het cluster. Wanneer u echter een cluster inschaalt, ziet u dat het verwijderde knooppunt-/VM-exemplaar in een beschadigde status wordt weergegeven, tenzij u Remove-ServiceFabricNodeState cmd aanroept met de juiste knooppuntnaam.
Hier volgt de verklaring voor dit gedrag.
De knooppunten die in Service Fabric Explorer worden vermeld, zijn een weerspiegeling van wat de Service Fabric-systeemservices (FM specifiek) weten over het aantal knooppunten dat het cluster had/heeft. Wanneer u de schaalset voor virtuele machines verkleint, is de virtuele machine verwijderd, maar de FM-systeemservice denkt nog steeds dat het knooppunt (dat was toegewezen aan de verwijderde virtuele machine) weer actief zal worden. Service Fabric Explorer blijft dus dat knooppunt weergeven (hoewel de status mogelijk fout of onbekend is).
Om ervoor te zorgen dat een knooppunt wordt verwijderd wanneer een VIRTUELE machine wordt verwijderd, hebt u twee opties:
- Kies een duurzaamheidsniveau van Gold of Silver voor de knooppunttypen in uw cluster, waarmee u de integratie van de infrastructuur krijgt. Wanneer u naar binnen schaalt, worden knooppunten automatisch verwijderd uit de status van onze systeemservices (FM). Raadpleeg hier de details over duurzaamheidsniveaus
Opmerking
Houd een minimumaantal van vijf knooppunten bij voor elke schaalset voor virtuele machines waarvoor het duurzaamheidsniveau Gold of Silver geactiveerd is. Uw cluster voert de foutstatus in als u onder deze drempelwaarde inschaalt en u de verwijderde knooppunten handmatig moet opschonen.
- Zodra het VM-exemplaar is verkleind, moet u de Remove-ServiceFabricNodeState PowerShell-opdracht aanroepen.
Opmerking
Voor Service Fabric-clusters moet een bepaald aantal knooppunten altijd actief zijn om de beschikbaarheid te behouden en de status te behouden, aangeduid als 'quorum onderhouden'. Het is dus meestal onveilig om alle machines in het cluster af te sluiten, tenzij u eerst een volledige back-up van uw status hebt uitgevoerd.
Volgende stappen
Lees het volgende voor meer informatie over het plannen van clustercapaciteit, het upgraden van een cluster en partitioneringsservices: