第 10 章 对处于扩展模式的集群进行故障排除
您可以替换并删除失败的 tiebreaker 监视器。如果需要,您还可以将集群强制到恢复或健康模式。
其它资源
如需有关 以扩展模式的集群的更多信息,请参阅 Ceph 存储的 Stretch 集群。
10.1. 将 tiebreaker 替换为仲裁中的 monitor
如果您的 tiebreaker 监控器失败,您可以将其替换为仲裁中的现有监控器,并将其从集群中移除。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群
- 在集群中启用了扩展模式
流程
禁用自动监控器部署:
示例
[ceph: root@host01 /]# ceph orch apply mon --unmanaged Scheduled mon update…
查看仲裁中的监控器:
示例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05 (age 30s), out of quorum: host07
将仲裁中的监控器设置为一个新的 tiebreaker:
语法
ceph mon set_new_tiebreaker NEW_HOST
示例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02
重要如果监控器与现有非tiebreaker 监控器位于同一个位置,您会收到错误消息:
示例
[ceph: root@host01 /]# ceph mon set_new_tiebreaker host02 Error EINVAL: mon.host02 has location DC1, which matches mons host02 on the datacenter dividing bucket for stretch mode.
如果发生这种情况,请更改监控器的位置:
语法
ceph mon set_location HOST datacenter=DATACENTER
示例
[ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC3
删除失败的 tiebreaker 监控器:
语法
ceph orch daemon rm FAILED_TIEBREAKER_MONITOR --force
示例
[ceph: root@host01 /]# ceph orch daemon rm mon.host07 --force Removed mon.host07 from host 'host07'
从主机移除 monitor 后,重新部署监控器:
语法
ceph mon add HOST IP_ADDRESS datacenter=DATACENTER ceph orch daemon add mon HOST
示例
[ceph: root@host01 /]# ceph mon add host07 213.222.226.50 datacenter=DC1 [ceph: root@host01 /]# ceph orch daemon add mon host07
确保仲裁中存在五个监控器:
示例
[ceph: root@host01 /]# ceph -s mon: 5 daemons, quorum host01, host02, host04, host05, host07 (age 15s)
验证一切是否已正确配置:
示例
[ceph: root@host01 /]# ceph mon dump epoch 19 fsid 1234ab78-1234-11ed-b1b1-de456ef0a89d last_changed 2023-01-17T04:12:05.709475+0000 created 2023-01-16T05:47:25.631684+0000 min_mon_release 16 (pacific) election_strategy: 3 stretch_mode_enabled 1 tiebreaker_mon host02 disallowed_leaders host02 0: [v2:132.224.169.63:3300/0,v1:132.224.169.63:6789/0] mon.host02; crush_location {datacenter=DC3} 1: [v2:220.141.179.34:3300/0,v1:220.141.179.34:6789/0] mon.host04; crush_location {datacenter=DC2} 2: [v2:40.90.220.224:3300/0,v1:40.90.220.224:6789/0] mon.host01; crush_location {datacenter=DC1} 3: [v2:60.140.141.144:3300/0,v1:60.140.141.144:6789/0] mon.host07; crush_location {datacenter=DC1} 4: [v2:186.184.61.92:3300/0,v1:186.184.61.92:6789/0] mon.host03; crush_location {datacenter=DC2} dumped monmap epoch 19
重新部署 monitor:
语法
ceph orch apply mon --placement="HOST_1, HOST_2, HOST_3, HOST_4, HOST_5”
示例
[ceph: root@host01 /]# ceph orch apply mon --placement="host01, host02, host04, host05, host07" Scheduled mon update...