pve 提示 cluster not ready - no quorum? (500)

 

在 Proxmox VE(PVE)中遇到“cluster not ready - no quorum? (500)”错误,通常是由于集群仲裁(quorum)丢失导致的,这意味着集群无法确定多数节点在线,从而无法正常运行。以下是详细的解决步骤:

1. 理解问题原因

PVE 集群通过“仲裁机制”确保数据一致性,当集群节点数量为 n 时,需要至少 (n/2 + 1) 个节点在线才能形成仲裁(quorum)。例如:

  • 2节点集群:需要至少2个节点在线(因为1节点无法满足多数)。

  • 3节点集群:需要至少2个节点在线。

  • 单节点集群:默认无仲裁问题(但需特殊配置)。

若节点数量不足或通信故障,会导致仲裁丢失,触发此错误。

2. 排查与解决步骤

步骤1:检查集群状态

登录到其中一个节点(通过 SSH 或物理控制台),执行以下命令查看集群状态:

关键信息解读:

  • quorum: 0 表示无仲裁(问题核心)。

  • nodes:显示集群中的节点列表及状态(在线/离线)。

  • expected_votes:期望的投票数,current_votes:当前在线节点的投票数。

步骤2:恢复节点在线状态

若有节点离线,优先尝试恢复:

  • 检查离线节点是否开机、网络是否通畅(ping 测试)。

  • 若节点故障无法启动,需强制移除故障节点(见步骤4)。

步骤3:单节点集群的特殊处理

如果你的集群只有 1个节点,默认可能因“无多数节点”触发错误,需关闭仲裁检查:

  1. 编辑集群配置文件:

  2. quorum 部分添加 provider: corosync_votequorum 并设置 expected_votes: 1,示例:

  3. 重启 corosync 服务:

步骤4:多节点集群丢失仲裁的临时解决

若部分节点故障导致无法形成仲裁,可临时“忽略仲裁”强制启动集群(仅应急使用):

执行后再次检查状态:pvecm status,此时应显示 quorum: 1

步骤5:永久移除故障节点(若节点无法恢复)

若某个节点彻底故障,需从集群中移除:

  1. 在正常节点上执行(替换 故障节点名 为实际名称):

  2. 若删除失败,手动清理配置:

  3. 重启集群服务:

步骤6:检查网络与通信

集群节点间需通过 私网(默认5404/5405 UDP端口) 通信,若网络不通会导致仲裁丢失:

  • 检查防火墙是否放行 5404/5405 端口(UDP)。

  • 测试节点间连通性:ping 其他节点IP

  • 检查 /etc/hosts 确保节点 hostname 与 IP 正确映射。

3. 预防措施

  • 生产环境建议使用 3个节点 组成集群(容错性更高,允许1个节点故障)。

  • 单节点集群需提前关闭仲裁检查(如步骤3)。

  • 定期备份 /etc/pve/corosync.conf 配置文件。

完成上述步骤后,再次通过 pvecm status 确认 quorum 已恢复(显示非0值),此时集群即可正常使用。


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部