Remove-ServiceFabricReplica
Removes a replica from a cluster to simulate a replica failure.
Syntax
Remove-ServiceFabricReplica
[-ForceRemove]
[-NodeName] <String>
[-PartitionId] <Guid>
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
[-PartitionId] <Guid>
-ServiceName <Uri>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
[-PartitionId] <Guid>
-ServiceName <Uri>
[-ReplicaKindPrimary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
[-PartitionId] <Guid>
-ServiceName <Uri>
[-ReplicaKindRandomSecondary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
[-PartitionId] <Guid>
-ServiceName <Uri>
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindSingleton]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindNamed]
-PartitionKey <String>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindUniformInt64]
-PartitionKey <String>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindSingleton]
[-ReplicaKindRandomSecondary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindNamed]
-PartitionKey <String>
[-ReplicaKindRandomSecondary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindUniformInt64]
-PartitionKey <String>
[-ReplicaKindRandomSecondary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindSingleton]
[-ReplicaKindPrimary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindNamed]
-PartitionKey <String>
[-ReplicaKindPrimary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindUniformInt64]
-PartitionKey <String>
[-ReplicaKindPrimary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindSingleton]
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindNamed]
-PartitionKey <String>
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-PartitionKindUniformInt64]
-PartitionKey <String>
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-ReplicaKindPrimary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-ReplicaKindRandomSecondary]
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Remove-ServiceFabricReplica
[-ForceRemove]
-ServiceName <Uri>
[-ReplicaOrInstanceId] <Int64>
[-CommandCompletionMode <CompletionMode>]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Description
The Remove-ServiceFabricReplica cmdlet simulates a Service Fabric replica failure by removing a replica from a Service Fabric cluster. The removal closes the replica, transitions the replica to the role None, and then removes all of the state information of the replica from the cluster. This cmdlet tests the replica state removal path, and simulates the report fault permanent path through client APIs.
In order to specify the replica to be removed we can start either with the node name or the service name.
Then we need to specify the partition to which the replica belongs. We can specify the partition either by specifying the pair (naming scheme, partition key) or by specifying the partition ID. For more details on Microsoft Azure Service Fabric partitioning, please refer to the Partition Service Fabric reliable services (/azure/service-fabric/service-fabric-concepts-partitioning) article.
Lastly, we may need to specify which replica of the partition we are referring to and that can be done either by specifying the replica role (primary or secondary replica) or by specifying the replica ID.
In some cases, the user may want to remove a random partition/replica combination for a service instead of a specific one. This is useful for testability of your services when you want to run through a random set of transitions for your services to simulate real world failures. For example, if you provide only the service name to this cmdlet and leave out the partition and/or the replica information the cmdlet will make a choice at random to select a partition and a replica to fault. Please note the selected partition or replica will only belong to the specified service.
Examples
Example 1: Remove a replica
PS C:\> Remove-ServiceFabricReplica -NodeName "Node07" -PartitionId 869dd2e9-fdda-42a5-ad96-4b71c795dfd3 -ReplicaOrInstanceId 12345098480948
Before you perform any operation on a Service Fabric cluster, establish a connection to the cluster by using the Connect-ServiceFabricCluster cmdlet. This command removes a replica that belongs to the specified partition that is deployed on the specified node.
Example 2: Remove a primary replica
PS C:\> Remove-ServiceFabricReplica -ReplicaKindPrimary -PartitionKindNamed -PartitionKey "Partition1" -ServiceName fabric:/App/Service
This command removes the primary replica that belongs to a specified named partition.
Parameters
-CommandCompletionMode
Specifies whether the action waits for the remove operation to complete.
Type: | CompletionMode |
Accepted values: | Invalid, DoNotVerify, Verify |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceRemove
Indicates that this cmdlet forces removal of the replica. By using ForceRemove, we skip the replica shutdown sequence and the replica is removed ungracefully. For stateful service replica, its persistent state would not be cleaned. To check if replicas are present, use Get-ServiceFabricReplica.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NodeName
Specifies the name of a Service Fabric node. The cmdlet removes a replica deployed on the node that you specify.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PartitionId
Specifies the ID of the partition from which to remove the replica.
Type: | Guid |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PartitionKey
Specifies the partition key.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PartitionKindNamed
Indicates that this cmdlet removes a replica on a named partition.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PartitionKindSingleton
Indicates that this cmdlet removes a replica on a singleton partition.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PartitionKindUniformInt64
Indicates that this cmdlet removes a replica on a UniformInt64 partition.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ReplicaKindPrimary
Indicates that this cmdlet removes the replica for the primary replica.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ReplicaKindRandomSecondary
Indicates that this cmdlet removes a replica for a random secondary replica.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ReplicaOrInstanceId
Specifies a Service Fabric service replica or instance ID.
Type: | Int64 |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ServiceName
Specifies the name of the service to remove.
Type: | Uri |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TimeoutSec
Specifies the time-out period, in seconds, for the operation.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
System.String
System.Guid
System.Uri
System.Management.Automation.SwitchParameter
System.Nullable`1[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Outputs
System.Object