Horizontales Herunter- oder Hochskalieren eines ClustersScale a cluster in or out

Warnung

Lesen Sie vor dem Skalieren diesen Abschnitt.Read this section before you scale

Die Skalierung von Computeressourcen zum Ermitteln der Arbeitsauslastung Ihrer Anwendung erfordert eine absichtliche Planung, dauert fast immer länger als eine Stunde für eine Produktionsumgebung und setzt voraus, dass Sie Ihre Arbeitsauslastung und Ihren Geschäftskontext verstehen. Wenn Sie diese Aktivität noch nie zuvor ausgeführt haben, wird empfohlen, dass Sie zunächst die Überlegungen zur Kapazitätsplanung von Service Fabric-Clustern lesen und verstehen, bevor Sie sich mit dem Rest dieses Dokuments beschäftigen.Scaling compute resources to source your application work load requires intentional planning, will nearly always take longer than an hour to complete for a production environment, and does require you to understand your workload and business context; in fact if you have never done this activity before, it's recommended you start by reading and understanding Service Fabric cluster capacity planning considerations, before continuing the remainder of this document. Diese Empfehlung dient dazu, unbeabsichtigte LiveSite-Probleme zu vermeiden. Es wird außerdem empfohlen, die Vorgänge, die Sie für eine Nichtproduktionsumgebung ausführen möchten, erfolgreich zu testen.This recommendation is to avoid unintended LiveSite issues, and it's also recommended you successfully test the operations you decide to perform against a non-production environment. Sie können jederzeit Produktionsprobleme melden oder bezahlte Unterstützung für Azure anfordern.At any time you can report production issues or request paid support for Azure. Für Engineers, die für die Ausführung dieser Vorgänge vorgesehen sind und den entsprechendem Kontext kennen, werden in diesem Artikel Skalierungsvorgänge beschrieben. Sie müssen aber entscheiden und verstehen, welche Vorgänge für Ihren Anwendungsfall geeignet sind, z.B. welche Ressourcen skaliert werden sollen (CPU, Speicher, Arbeitsspeicher), in welche Richtung skaliert werden soll (vertikal oder horizontal) und welche Vorgänge ausgeführt werden sollen (Bereitstellung von Ressourcenvorlagen, Portal, PowerShell/CLI).For engineers allocated to perform these operations that possess appropriate context, this article will describe scaling operations, but you must decide and understand which operations are appropriate for your use case; such as what resources to scale (CPU, Storage, Memory), what direction to scale (Vertically or Horizontally), and what operations to perform (Resource Template deployment, Portal, PowerShell/CLI).

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Zentrales Hoch- oder Herunterskalieren eines Service Fabric-Clusters mithilfe von Regeln für die automatische Skalierung oder eines manuellen VerfahrensScale a Service Fabric cluster in or out using auto-scale rules or manually

VM-Skalierungsgruppen sind eine Azure-Computeressource, mit der Sie eine Sammlung von virtuellen Computern bereitstellen und verwalten können.Virtual machine scale sets are an Azure compute resource that you can use to deploy and manage a collection of virtual machines as a set. Jeder Knotentyp, der in einem Service Fabric-Cluster definiert ist, wird als separate Skalierungsgruppe eines virtuellen Computers eingerichtet.Every node type that is defined in a Service Fabric cluster is set up as a separate virtual machine scale set. Jeden Knotentyp kann dann unabhängig zentral hoch- oder herunterskaliert werden, bei jedem Typ können unterschiedliche Portgruppen geöffnet sein, und die Typen können verschiedene Kapazitätsmetriken aufweisen.Each node type can then be scaled in or out independently, have different sets of ports open, and can have different capacity metrics. Weitere Informationen finden Sie im Dokument über die Service Fabric-Knotentypen.Read more about it in the Service Fabric node types document. Da die Service Fabric-Knotentypen in Ihrem Cluster am Back-End aus VM-Skalierungsgruppen bestehen, müssen Sie für jeden Knotentyp bzw. jede VM-Skalierungsgruppe Regeln für die automatische Skalierung einrichten.Since the Service Fabric node types in your cluster are made of virtual machine scale sets at the backend, you need to set up auto-scale rules for each node type/virtual machine scale set.

Hinweis

Ihr Abonnement muss ausreichend Kerne zum Hinzufügen der neuen virtuellen Computer umfassen, aus denen dieser Cluster besteht.Your subscription must have enough cores to add the new VMs that make up this cluster. Gegenwärtig erfolgt keine Modellvalidierung. Daher wird für die Bereitstellungszeit ein Fehler ausgegeben, wenn eine der Kontingentgrenzen erreicht wird.There is no model validation currently, so you get a deployment time failure, if any of the quota limits are hit. Ein einzelner Knotentyp kann außerdem nicht einfach 100 Knoten pro VM-Skalierungsgruppe überschreiten.Also a single node type can not simply exceed 100 nodes per VMSS. Möglicherweise müssen Sie VM-Skalierungsgruppen hinzufügen, um die gewünschte Skalierung zu erreichen. Die automatische Skalierung kann nicht automatisch VM-Skalierungsgruppen hinzufügen.You may need to add VMSS's to achieve the targeted scale, and auto-scaling can not automagically add VMSS's. Das Hinzufügen von VM-Skalierungsgruppen zu einem aktiven Cluster ist eine anspruchsvolle Aufgabe, die in der Regel dazu führt, dass Benutzer neue Cluster mit den entsprechenden Knotentypen bereitstellen, die zum Zeitpunkt der Erstellung bereitgestellt werden. Planen Sie die Clusterkapazität entsprechend.Adding VMSS's in-place to a live cluster is a challenging task, and commonly this results in users provisioning new clusters with the appropriate node types provisioned at creation time; plan cluster capacity accordingly.

Auswählen des zu skalierenden Knotentyps bzw. der VM-SkalierungsgruppeChoose the node type/Virtual Machine scale set to scale

Zurzeit können Sie über das Portal keine Regeln für die automatische Skalierung für VM-Skalierungsgruppen angeben, um einen Service Fabric-Cluster zu erstellen. Daher wird Azure PowerShell (1.0 und höher) verwendet, um die Knotentypen aufzulisten und anschließend automatische Skalierungsregeln hinzuzufügen.Currently, you are not able to specify the auto-scale rules for virtual machine scale sets using the portal to create a Service Fabric Cluster, so let us use Azure PowerShell (1.0+) to list the node types and then add auto-scale rules to them.

Führen Sie die folgenden Cmdlets aus, um eine Liste mit den VM-Skalierungsgruppen abzurufen, aus denen Ihr Cluster besteht:To get the list of virtual machine scale set that make up your cluster, run the following cmdlets:

Get-AzResource -ResourceGroupName <RGname> -ResourceType Microsoft.Compute/VirtualMachineScaleSets

Get-AzVmss -ResourceGroupName <RGname> -VMScaleSetName <virtual machine scale set name>

Festlegen von Regeln für die automatische Skalierung für Knotentypen bzw. VM-SkalierungsgruppenSet auto-scale rules for the node type/virtual machine scale set

Wenn Ihr Cluster mehrere Knotentypen enthält, müssen Sie diesen Vorgang für jeden der Knotentypen bzw. jede der VM-Skalierungsgruppen durchführen, die Sie horizontal hoch- oder herunterskalieren möchten.If your cluster has multiple node types, then repeat this for each node types/virtual machine scale sets that you want to scale (in or out). Sie sollten dabei die Anzahl der Knoten berücksichtigen, die Sie benötigen, bevor Sie die automatische Skalierung einrichten.Take into account the number of nodes that you must have before you set up auto-scaling. Die minimale Anzahl von Knoten, die für den primären Knotentyp benötigt wird, wird von der Zuverlässigkeitsstufe gesteuert, die Sie ausgewählt haben.The minimum number of nodes that you must have for the primary node type is driven by the reliability level you have chosen. Erfahren Sie mehr über Zuverlässigkeitsstufen.Read more about reliability levels.

Hinweis

Wenn Sie den primären Knotentyp auf eine geringere Anzahl als das Minimum zentral herunterskalieren, wird der Cluster instabil, oder er schaltet sich ab.Scaling down the primary node type to less than the minimum number make the cluster unstable or bring it down. Dies könnte für Ihre Anwendung und die Systemdienste zu Datenverlust führen.This could result in data loss for your applications and for the system services.

Die automatische Skalierungsfunktion wird derzeit nicht durch die Lasten gesteuert, die Ihre Anwendung an Service Fabric meldet.Currently the auto-scale feature is not driven by the loads that your applications may be reporting to Service Fabric. Die bereitgestellte automatische Skalierung wird derzeit ausschließlich durch Leistungsindikatoren gesteuert, die von jeder Instanz der VM-Skalierungsgruppen ausgegeben werden.So at this time the auto-scale you get is purely driven by the performance counters that are emitted by each of the virtual machine scale set instances.

Befolgen Sie diese Anweisungen, um eine automatische Skalierung für jede VM-Skalierungsgruppe einzurichten.Follow these instructions to set up auto-scale for each virtual machine scale set.

Hinweis

In einem Szenario, in dem herunterskaliert wird, müssen Sie das Cmdlet Remove-ServiceFabricNodeState mit dem Namen des entsprechenden Knotens aufrufen, es sei denn, Ihr Knotentyp besitzt die Dauerhaftigkeitsstufe „Gold“ oder „Silber“.In a scale down scenario, unless your node type has a durability level of Gold or Silver you need to call the Remove-ServiceFabricNodeState cmdlet with the appropriate node name. Für die Dauerhaftigkeitsstufe „Bronze“wird nicht empfohlen, mehrere Knoten gleichzeitig herunterzuskalieren.For the Bronze durability, it’s not recommended to scale down more than one node at a time.

Manuelles Hinzufügen von virtuellen Computern zu einem Knotentyp oder einer VM-SkalierungsgruppeManually add VMs to a node type/virtual machine scale set

Beim Aufskalieren werden der Skalierungsgruppe mehr VM-Instanzen hinzugefügt.When you scale out, you add more virtual machine instances to the scale set. Diese Instanzen werden zu den Knoten, die Service Fabric verwendet.These instances become the nodes that Service Fabric uses. Service Fabric erkennt, wenn der Skalierungsgruppe durch horizontales Hochskalieren weitere Instanzen hinzugefügt werden, und reagiert automatisch.Service Fabric knows when the scale set has more instances added (by scaling out) and reacts automatically.

Hinweis

Das Hinzufügen virtueller Computer ist zeitaufwendig. Rechnen Sie also nicht damit, dass das Hinzufügen unmittelbar erfolgt.Adding VMs takes time, so do not expect the additions to be instantaneous. Planen Sie deshalb das Hinzufügen von Kapazität vorausschauend, um mehr als 10 Minuten einzuräumen, bis die VM-Kapazität für die Platzierung der Replikate und Dienstinstanzen verfügbar ist.So plan to add capacity well in advance, to allow for over 10 minutes before the VM capacity is available for the replicas/service instances to get placed.

Hinzufügen von VMs mithilfe einer VorlageAdd VMs using a template

Befolgen Sie das Beispiel bzw. die Anweisungen im Vorlagenkatalog für den Schnellstart, um die Anzahl der VMs in jedem Knotentyp zu ändern.Follow the sample/instructions in the quickstart template gallery to change the number of VMs in each node type.

Hinzufügen von virtuellen Computern mithilfe von PowerShell- oder CLI-BefehlenAdd VMs using PowerShell or CLI commands

Der folgende Code ruft eine Skalierungsgruppe anhand ihres Namens ab und erhöht die Kapazität der Skalierungsgruppe um 1:The following code gets a scale set by name and increases the capacity of the scale set by 1.

$scaleset = Get-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm
$scaleset.Sku.Capacity += 1

Update-AzVmss -ResourceGroupName $scaleset.ResourceGroupName -VMScaleSetName $scaleset.Name -VirtualMachineScaleSet $scaleset

Der folgende Code legt die Kapazität auf 6 fest:This code sets the capacity to 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

Manuelles Entfernen von virtuellen Computern aus einem Knotentyp oder einer VM-SkalierungsgruppeManually remove VMs from a node type/virtual machine scale set

Wenn Sie in einem Knotentyp abskalieren, entfernen Sie damit VM-Instanzen aus der Skalierungsgruppe.When you scale in a node type, you remove VM instances from the scale set. Wenn der Knotentyp die Dauerhaftigkeitsstufe „Bronze“ aufweist, weiß Service Fabric nicht, was passiert ist, und meldet, dass ein Knoten verloren gegangen ist.If the node type is Bronze durability level, Service Fabric is unaware what has happened and reports that a node has gone missing. Daraufhin meldet Service Fabric einen fehlerhaften Zustand für den Cluster.Service Fabric then reports an unhealthy state for the cluster. Um diesen Zustand zu verhindern, müssen Sie den Knoten explizit aus dem Cluster entfernen und den Knotenstatus korrigieren.To prevent that bad state, you must explicitly remove the node from the cluster and remove the node state.

Die Service Fabric-Systemdienste werden auf dem primären Knotentyp in Ihrem Cluster ausgeführt.The service fabric system services run in the primary node type in your cluster. Skalieren Sie beim zentralen Herunterskalieren des primären Knotentyps auf keinen Fall die Anzahl der Instanzen auf einen Wert herunter, der unter dem von der Zuverlässigkeitsstufe vorgegebenen liegt.When scaling down the primary node type, never scale down the number of instances to less than what the reliability tier warrants.

Für einen zustandsbehafteten Dienst muss eine bestimmte Anzahl von Knoten stets aktiv sein, um Verfügbarkeit sicherzustellen und den Status Ihres Diensts beizubehalten.For a stateful service, you need a certain number of nodes to be always up to maintain availability and preserve state of your service. Sie benötigen als äußerstes Minimum eine Anzahl von Knoten, die der Anzahl der Zielreplikatgruppen der Partition oder des Diensts entspricht.At the very minimum, you need the number of nodes equal to the target replica set count of the partition/service.

Entfernen des Service Fabric-KnotensRemove the Service Fabric node

Die Schritte für das manuelle Korrigieren des Knotenstatus gelten nur für Knotentypen mit der Dauerhaftigkeitsstufe Bronze.The steps for manually removing node state apply only to node types with a Bronze durability tier. Für die Dauerhaftigkeitsstufen Silber und Gold werden diese Schritte automatisch von der Plattform ausgeführt.For Silver and Gold durability tier, these steps are done automatically by the platform. Weitere Informationen zur Dauerhaftigkeit finden Sie unter Überlegungen zur Kapazitätsplanung für Service Fabric-Cluster.For more information about durability, see Service Fabric cluster capacity planning.

Der zuletzt erstellte Knoten sollte zuerst entfernt werden, damit die Knoten des Clusters über die Upgrade- und Fehlerdomänen gleichmäßig verteilt bleiben und die gleichmäßige Nutzung sichergestellt ist.To keep the nodes of the cluster evenly distributed across upgrade and fault domains, and hence enable their even utilization, the most recently created node should be removed first. Anders ausgedrückt: Die Knoten sollten in der umgekehrten Reihenfolge ihrer Erstellung entfernt werden.In other words, the nodes should be removed in the reverse order of their creation. Der zuletzt erstellte Knoten verfügt über den höchsten virtual machine scale set InstanceId-Eigenschaftswert.The most recently created node is the one with the greatest virtual machine scale set InstanceId property value. In den unten angegebenen Codebeispielen wird der zuletzt erstellte Knoten zurückgegeben.The code examples below return the most recently created node.

Get-ServiceFabricNode | Sort-Object NodeInstanceId -Descending | Select-Object -First 1
sfctl node list --query "sort_by(items[*], &name)[-1]"

Der Service Fabric-Cluster muss wissen, dass dieser Knoten entfernt wird.The Service Fabric cluster needs to know that this node is going to be removed. Hierzu sind drei Schritte erforderlich:There are three steps you need to take:

  1. Deaktivieren Sie den Knoten, sodass es sich dabei nicht mehr um ein Replikat für Daten handelt.Disable the node so that it no longer is a replicate for data.
    PowerShell: Disable-ServiceFabricNodePowerShell: Disable-ServiceFabricNode
    sfctl: sfctl node disablesfctl: sfctl node disable

  2. Beenden Sie den Knoten, damit die Service Fabric-Laufzeit richtig heruntergefahren wird und Ihre App eine Beendigungsanforderung erhält.Stop the node so that the Service Fabric runtime shuts down cleanly, and your app gets a terminate request.
    PowerShell: Start-ServiceFabricNodeTransition -StopPowerShell: Start-ServiceFabricNodeTransition -Stop
    sfctl: sfctl node transition --node-transition-type Stopsfctl: sfctl node transition --node-transition-type Stop

  3. Entfernen Sie den Knoten aus dem Cluster.Remove the node from the cluster.
    PowerShell: Remove-ServiceFabricNodeStatePowerShell: Remove-ServiceFabricNodeState
    sfctl: sfctl node remove-statesfctl: sfctl node remove-state

Nachdem diese drei Schritte für den Knoten ausgeführt wurden, kann er aus der Skalierungsgruppe entfernt werden.Once these three steps have been applied to the node, it can be removed from the scale set. Bei Verwendung einer anderen Dauerhaftigkeitsstufe als Bronze werden diese Schritte automatisch ausgeführt, wenn die Skalierungsgruppeninstanz entfernt wird.If you're using any durability tier besides bronze, these steps are done for you when the scale set instance is removed.

Der folgende Codeblock ruft den zuletzt erstellten Knoten ab und deaktiviert, beendet und entfernt ihn aus dem Cluster.The following code block gets the last created node, disables, stops, and removes the node from the 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
    }
}

Unten im sfctl-Code wird der folgende Befehl verwendet, um den Wert node-name des zuletzt erstellten Knotens abzurufen: sfctl node list --query "sort_by(items[*], &name)[-1].name"In the sfctl code below, the following command is used to get the node-name value of the last-created node: 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

Tipp

Verwenden Sie die folgenden sfctl-Abfragen, um den Status der einzelnen Schritte zu überprüfen:Use the following sfctl queries to check the status of each step

Überprüfen des Deaktivierungsstatus sfctl node list --query "sort_by(items[*], &name)[-1].nodeDeactivationInfo"Check deactivation status sfctl node list --query "sort_by(items[*], &name)[-1].nodeDeactivationInfo"

Überprüfen des Beendigungsstatus sfctl node list --query "sort_by(items[*], &name)[-1].isStopped"Check stop status sfctl node list --query "sort_by(items[*], &name)[-1].isStopped"

Abskalieren der SkalierungsgruppeScale in the scale set

Nachdem der Service Fabric-Knoten aus dem Cluster entfernt wurde, kann die VM-Skalierungsgruppe horizontal herunterskaliert werden.Now that the Service Fabric node has been removed from the cluster, the virtual machine scale set can be scaled in. Im folgenden Beispiel wird die Kapazität der Skalierungsgruppe um 1 verringert:In the example below, the scale set capacity is reduced by 1.

$scaleset = Get-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm
$scaleset.Sku.Capacity -= 1

Update-AzVmss -ResourceGroupName SFCLUSTERTUTORIALGROUP -VMScaleSetName nt1vm -VirtualMachineScaleSet $scaleset

Der folgende Code legt die Kapazität auf 5 fest:This code sets the capacity to 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

Verhaltensweisen von Service Fabric Explorer, die Sie möglicherweise beobachtenBehaviors you may observe in Service Fabric Explorer

Wenn Sie einen Cluster hochskalieren, zeigt Service Fabric Explorer die Anzahl von Knoten (Instanzen der VM-Skalierungsgruppen) an, die zum Cluster gehören.When you scale up a cluster the Service Fabric Explorer will reflect the number of nodes (virtual machine scale set instances) that are part of the cluster. Wenn Sie einen Cluster jedoch zentral herunterskalieren, wird der entfernte Knoten bzw. die entfernte VM-Instanz in einem fehlerhaften Zustand angezeigt, es sei denn, Sie rufen das Cmdlet Remove-ServiceFabricNodeState mit dem entsprechenden Knotennamen auf.However, when you scale a cluster down you will see the removed node/VM instance displayed in an unhealthy state unless you call Remove-ServiceFabricNodeState cmd with the appropriate node name.

Dieses Verhalten erklärt sich wie folgt:Here is the explanation for this behavior.

Die in Service Fabric Explorer aufgeführten Knoten sind ein Abbild der Informationen, die die Service Fabric-Systemdienste (besonders FM) über die derzeitige und frühere Anzahl der Knoten des Clusters besitzen.The nodes listed in Service Fabric Explorer are a reflection of what the Service Fabric system services (FM specifically) knows about the number of nodes the cluster had/has. Wenn Sie eine VM-Skalierungsgruppe zentral herunterskalieren, wird der virtuelle Computer gelöscht. Der FM-Systemdienst geht aber weiterhin davon aus, dass der Knoten, der dem gelöschten virtuellen Computer zugeordnet war, dem Cluster wieder zur Verfügung stehen wird.When you scale the virtual machine scale set down, the VM was deleted but FM system service still thinks that the node (that was mapped to the VM that was deleted) will come back. Service Fabric Explorer zeigt diesen Knoten daher weiterhin an (der Integritätszustand kann „fehlerhaft“ oder „unbekannt“ lauten).So Service Fabric Explorer continues to display that node (though the health state may be error or unknown).

Sie verfügen über zwei Optionen, um sicherzustellen, dass ein Knoten beim Entfernen eines virtuellen Computers entfernt wird:In order to make sure that a node is removed when a VM is removed, you have two options:

  1. Wählen Sie die Dauerhaftigkeitsstufe „Gold“ oder „Silber“ für die Knotentypen in Ihrem Cluster aus, die die Infrastrukturintegration für Sie bereitstellt.Choose a durability level of Gold or Silver for the node types in your cluster, which gives you the infrastructure integration. Wenn Sie zentral herunterskalieren, werden so automatisch die Knoten aus den Systemdiensten (FM) entfernt.Which will then automatically remove the nodes from our system services (FM) state when you scale down. hier mit den Details der DauerhaftigkeitsstufenRefer to the details on durability levels here

  2. Sobald die VM-Instanz zentral herunterskaliert wurde, müssen Sie das Cmdlet Remove-ServiceFabricNodeState aufrufen.Once the VM instance has been scaled down, you need to call the Remove-ServiceFabricNodeState cmdlet.

Hinweis

Um Verfügbarkeit sicherzustellen und den Zustand beizubehalten, muss eine bestimmte Anzahl von Knoten in einem Service Fabric-Cluster stets in Betrieb sein. Dies wird auch als „Aufrechterhalten eines Quorums“ bezeichnet.Service Fabric clusters require a certain number of nodes to be up at all the time in order to maintain availability and preserve state - referred to as "maintaining quorum." Daher ist es für gewöhnlich nicht sicher, alle Computer innerhalb des Clusters herunterzufahren, sofern Sie nicht zuvor eine vollständige Sicherung des Zustands durchgeführt haben.So, it is typically unsafe to shut down all the machines in the cluster unless you have first performed a full backup of your state.

Nächste SchritteNext steps

Lesen Sie die folgenden Artikel, um mehr über die Kapazitätsplanung von Clustern, das Upgraden von Clusters und das Partitionieren von Diensten zu erfahren:Read the following to also learn about planning cluster capacity, upgrading a cluster, and partitioning services: