searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

PXC集群的一个网络故障影响可用性

2023-10-27 06:24:56
5
0

为了验证PXC集群的故障和容灾恢复能力,在三个网络和电力相互隔离的可用区(A,B,C)中各部署了一个PXC节点(node1,node2,node3)共同组成PXC集群。且为每个可用区中的PXC节点设置了自动重启执行脚本,即当每分钟如果监听到端口未被占用时,重新拉起PXC节点。

容灾测试时,对可用区A进行全部宕机操作,然后再进行重启。发现故障:

1. 可用区A中的自动重启脚本定时执行,但node1节点并未成功加入集群,而是不断尝试加入。

2. 集群中剩余的两个可用区的PXC节点本应使得集群提供持续的正常服务,但实际上集群状态在可用和不可用之间反复横跳,影响集群可用性。

解决:

起初怀疑node2和node3节点之间的网络波动问题,但PXC集群允许的最大时延为PT3S,不应该出现。

停止node1的重启,集群状态可提供持续的正常服务。

 

溯源:可用区A中的机器在重启后丢失了到可用区C的网络路由,因此node1只能与node2节点通信。

当node1节点尝试重启时,向node2发起数据同步,node2状态更新为donor,此时集群中只有一个节点node3的状态是synced可用,可用节点个数不足总数的一半,因此集群不可用。

由于node1无法与node3进行通信,因此只有一个节点node2同意其加入集群,不足总数的一半,无法加入集群。node2放弃向node1数据同步,状态更新为synced可用,集群状态恢复为可用。

最终加入路由后,node1节点成功加入集群,解决问题。

0条评论
0 / 1000
l****n
14文章数
0粉丝数
l****n
14 文章 | 0 粉丝
原创

PXC集群的一个网络故障影响可用性

2023-10-27 06:24:56
5
0

为了验证PXC集群的故障和容灾恢复能力,在三个网络和电力相互隔离的可用区(A,B,C)中各部署了一个PXC节点(node1,node2,node3)共同组成PXC集群。且为每个可用区中的PXC节点设置了自动重启执行脚本,即当每分钟如果监听到端口未被占用时,重新拉起PXC节点。

容灾测试时,对可用区A进行全部宕机操作,然后再进行重启。发现故障:

1. 可用区A中的自动重启脚本定时执行,但node1节点并未成功加入集群,而是不断尝试加入。

2. 集群中剩余的两个可用区的PXC节点本应使得集群提供持续的正常服务,但实际上集群状态在可用和不可用之间反复横跳,影响集群可用性。

解决:

起初怀疑node2和node3节点之间的网络波动问题,但PXC集群允许的最大时延为PT3S,不应该出现。

停止node1的重启,集群状态可提供持续的正常服务。

 

溯源:可用区A中的机器在重启后丢失了到可用区C的网络路由,因此node1只能与node2节点通信。

当node1节点尝试重启时,向node2发起数据同步,node2状态更新为donor,此时集群中只有一个节点node3的状态是synced可用,可用节点个数不足总数的一半,因此集群不可用。

由于node1无法与node3进行通信,因此只有一个节点node2同意其加入集群,不足总数的一半,无法加入集群。node2放弃向node1数据同步,状态更新为synced可用,集群状态恢复为可用。

最终加入路由后,node1节点成功加入集群,解决问题。

文章来自个人专栏
高可用集群部署
11 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0