pcs resource cleanup 不清零失败计数,因其默认仅清理当前节点上该资源的失败操作记录,不自动同步集群CIB中的failcount;需显式指定资源ID和节点(如--node nodename)才能彻底清除。

直接用 pcs resource cleanup,但必须带资源 ID 且不能漏掉节点上下文
为什么 pcs resource cleanup 不清零失败计数?
常见错觉是执行 pcs resource cleanup 就能“一键重置”,实际它默认只清理当前节点上该资源的失败操作记录,并不自动同步到集群状态缓存。如果资源在多个节点间迁移过,或失败发生在其他节点,不指定节点就可能漏清。
- 失败计数(failcount)存在 Pacemaker 的 CIB(Cluster Information Base)中,不是运行时内存变量
-
pcs resource cleanup底层调用crm_resource --cleanup,本质是向 CRMd 发送清理请求,由 pengine 重新计算资源状态 - 若资源是 clone 或 bundle,需清理整个资源名,而非单个实例名(比如
p_mysql-clone,不是p_mysql-clone:0)
pcs resource cleanup 必须带参数才真正生效
裸跑 pcs resource cleanup 等价于 pcs resource cleanup --all,但它的行为取决于当前资源部署状态——可能只作用于本地节点,也可能广播但被忽略。稳妥做法永远显式指定:
- 清理单个资源所有节点:
pcs resource cleanup <resource_id></resource_id> - 清理单个资源指定节点:
pcs resource cleanup <resource_id> --node <nodename></nodename></resource_id> - 确认是否成功:执行后立刻
pcs status,检查 “Failed Actions” 是否消失,且failcount在pcs resource config <resource_id></resource_id>输出中归零(注意:failcount 不显示在 config 中,要查pcs resource show <resource_id></resource_id>或直接看 CIB)
偶发超时后还卡在 failcount > 0?检查 monitor 操作间隔和超时值
很多“偶发超时”其实源于 monitor 操作设置不合理,导致一次抖动就被记为失败并累积 failcount。这不是清理能解决的,得调参:
- 查看当前 monitor 超时:
pcs resource op defaults或pcs resource show <resource_id></resource_id>中找monitor行的timeout和interval - 典型问题:interval=10s + timeout=20s → 网络瞬断 15s 就触发失败;建议至少设为 interval=60s, timeout=30s
- 临时放宽(测试用):
pcs resource update <resource_id> op monitor interval=60s timeout=30s</resource_id> - 注意:修改后需
pcs resource cleanup <resource_id></resource_id>才会重置已累积的 failcount
清理后资源仍不启动?可能是 pending 状态卡住
pcs resource cleanup 只清失败记录,不强制触发启动。如果资源处于 Pending 或 Unmanaged 状态,需额外操作:
- 检查是否被 disable:
pcs resource show <resource_id></resource_id>看状态是否含disabled;若是,运行pcs resource enable <resource_id></resource_id> - 检查是否被 constraint 阻塞:
pcs constraint show --full查 location / ordering 约束是否把资源锁死在不可用节点 - 极端情况:pengine 还没完成重算,等几秒再
pcs status;如仍卡住,可手动触发:pcs cluster reload(非必需,慎用)
真正容易被忽略的是:failcount 归零 ≠ 资源立即恢复健康。Pacemaker 会按策略决定是否迁移、重启或等待下一个 monitor 周期 —— 所以清理之后,盯住 pcs status 输出里那几行 “Initiating monitor operation” 才算真正落地。

















