【Azure 微服务】面对Service Fabric中节点状态不正常(Disabling/Warning/RemoveNode)的几种尝试解决方案

简介: 【Azure 微服务】面对Service Fabric中节点状态不正常(Disabling/Warning/RemoveNode)的几种尝试解决方案

问题描述

发现 Service Fabric 的节点状态异常,如出现 DisablingWarning,或者 RemoveNode的情况,并且持续很长时间都没有变化(2小时以上)。如何来缓解这种问题呢?

 

问题解答

面对这样的情况,首先需要进入每一个节点中,查看对应的 Warning 信息。如果Warning 中包含具体的信息,就根据内容尝试缓解问题。如果消息不能明确指出问题所在,则可以尝试通过 节点右边的 Restart 按钮来重启节点。

比如截图中的消息 'System.FM' reported Warning for property 'State'. Fabric node is taking longer than expected to deactivate.,关闭 Fabric 节点所耗的时间比预期的要长,并且节点状态一直显示 Disabling。表示节点已经Block了。Service Fabric 自身已经无法完成修复工作,需要手动接入。

 

修复Service Fabric中Application错误

当通过Service Fabric Explorer中的Restart也无法对此情况有任何帮助时,就需要查看集群的状态,应用是否存在错误。

比如截图中,Service Fabric中的应用出现Error, 消息显示  Partition is quorum loss. As the replicas come up, partition should recover from the quorum loss. 应用Partition丢失,当Replicas被选中成为Primary后,Partition将从Quorum Loss的情况中恢复。但是由于SF的应用设置的QuorumLossWaitDuration 的时间戳为infinite(无限)。所以错误就无法完成自动修复。

需要通过如下命令来修改QuorumLossWaitDuration的值

Update-ServiceFabricService -Stateful -ServiceName "fabric:/<Application Name, need replace>" -TargetReplicaSetSize 5 -MinReplicaSetSize 5 -ReplicaRestartWaitDuration 10 -QuorumLossWaitDuration 60 -Force

 

修复Service Fabric节点错误

只有当SF中的应用信息已经被修复后,就可以通过以下几种常规的手段来Restart,Replace 节点:

1)通过 Service Fabric Explorer工具,在节点右侧点击“Restart”按钮重启节点

2)进入Service Fabric的VMSS门户页面,选中问题节点后,可以执行删除,重启,重置等按钮。

也可以使用PowerShell指令,如 Remove-ServiceFabricNode,Restart-ServiceFabricNode,Disable-ServiceFabricNode 等指令完成相同的操作。

PS: 特别注意,当操作的节点为种子节点(Seed Node), 不能直接删除,需要先Disable后,然Seed Node转移到其他节点,然后删除。操作方式可见:(如何转移Service Fabric集群中的种子节点(Seed Node):https://www.cnblogs.com/lulight/p/13691999.html 

 

 

参考资料

ServiceFabrichttps://docs.microsoft.com/en-us/powershell/module/servicefabric/?view=azureservicefabricps

 

相关文章
|
24天前
|
数据安全/隐私保护
【Azure Service Fabric】关于Service Fabric的相关问题
【Azure Service Fabric】关于Service Fabric的相关问题
|
24天前
【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched
【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched
|
24天前
|
安全 数据可视化 数据安全/隐私保护
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
|
23天前
【Azure Fabric Service】Service Fabric部署失败问题 Provisioning of VM extension ConfigureVM has timed out.
【Azure Fabric Service】Service Fabric部署失败问题 Provisioning of VM extension ConfigureVM has timed out.
|
23天前
|
安全 网络安全
【Service Fabric】Service Fabric删不掉的问题
【Service Fabric】Service Fabric删不掉的问题
|
11月前
|
开发框架 .NET 区块链
Hyperledger fabric部署链码(五)初始化与链码升级
fabric部署chaincode-go(智能合约)系列之五
159 0
|
11月前
|
测试技术 Go 区块链
Hyperledger fabric 测试环境部署
Hyperledger fabric 测试环境部署及相关问题解答
207 3
Hyperledger fabric 测试环境部署
|
11月前
|
JavaScript 测试技术 Go
Hyperledger fabric部署链码(一)打包链码
fabric部署chaincode-go(智能合约)系列之一
187 0
|
11月前
|
存储 JSON 安全
Hyperledger fabric智能合约编写(一)
本篇文章主要对链码编写的主要思路和部分API进行梳理。
146 1
|
11月前
|
区块链
Hyperledger fabric部署链码(二)安装链码到fabric
fabric部署chaincode-go(智能合约)系列之二
107 1