Pacemaker怎么清除由于偶发超时产生的资源失败计数重置状态

云静吖_7713

云静吖_7713

2026-10-27

503人浏览

原创

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

pacemaker怎么清除由于偶发超时产生的资源失败计数重置状态

直接用 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。这不是清理能解决的,得调参:

AI简历姬
AI简历姬

一款AI翻译工具,主要用于AI简历姬提供简历生成、优化、翻译、求职信与面试辅导,结合JD匹配与投递追踪,帮助你更快获得面试与offer,适合需要提升相关任务效率的用户。

下载
  • 查看当前 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” 才算真正落地。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

80

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

40

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

40

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

20

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

40

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

20

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

40

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

240

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

20

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习