Linux怎么将Pacemaker中处于被阻断状态的节点手动解除恢复

阿强同学_7387

阿强同学_7387

2026-10-20

108人浏览

原创

节点被标记为 blocked 是 pacemaker 主动拒绝其参与投票或调度的信任标记,需先修复 corosync 通信、fencing 状态或清除 inhibit 标记(如 pcs node unclean nodex),再同步集群配置,而非简单重启服务。

linux怎么将pacemaker中处于被阻断状态的节点手动解除恢复

直接解除 Pacemaker 中被阻断(blocked)状态的节点,不能靠 pcs cluster start 或重启服务——它本质是集群对节点“不信任”的标记,必须先清除阻断原因、再显式解除状态。

为什么节点会进入 blocked 状态

节点被标记为 blocked 通常不是因为宕机,而是 Pacemaker 主动拒绝其参与投票或资源调度,常见触发点包括:

  • Corosync 成员关系异常:比如 corosync 进程未运行、心跳网段不通、bindnetaddr 配错导致无法加入 quorum
  • 节点曾因隔离(fencing)失败而被挂起,但 fencing 设备未真正执行或未反馈成功
  • 手动执行过 pcs node ban 或 pcs resource unmanage 后未清理,残留了 inhibit 标记
  • pcs status 显示 Online: [ node1 node2 ] 但某节点实际在 crm_mon -1 中显示 blocked,说明 CIB 记录与本地状态不一致

检查 blocked 节点的真实状态和原因

先确认是不是真被 block,以及 block 的来源:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 运行 pcs status --full,查找含 blocked 字样的行,注意看是节点名后标 blocked,还是某个资源实例显示 Blocked
  • 查 Corosync 实时成员视图:corosync-cfgtool -s,输出中 Membership information 下该节点状态是否为 Member;若为 Lost 或空白,说明底层通信已断
  • 查日志定位源头:journalctl -u corosync -n 100 --no-pager | grep -i "block\|fence\|quorum",重点关注 fence_node: nodeX failed 或 Quorum lost 类错误
  • 确认 fencing 是否卡住:pcs stonith show 查设备配置,再用 pcs stonith cleanup nodeX 尝试清除 fencing 挂起状态(仅当 fencing 已实际完成但未上报时有效)

解除 blocked 状态的实操步骤

解除动作分两层:先修复底层通信或 fencing 状态,再刷新集群认知。顺序错了会反复 block:

  • 如果 corosync-cfgtool -s 显示节点不在成员列表中:先确保 corosync 进程运行(systemctl start corosync),再检查 /etc/corosync/corosync.conf 中 bindnetaddr 是否为心跳网段网络地址(如网卡是 192.168.31.186/24,则必须填 192.168.31.0,不是 0.0.0.0 或本机 IP)
  • 如果 fencing 失败残留:pcs stonith cleanup nodeX,然后立刻验证 fencing 可达性:pcs stonith fence nodeX(测试用,需确保 fencing 设备真实可用)
  • 如果节点在线但 CIB 误标 blocked:pcs node unclean nodeX —— 这是关键命令,它清除节点的 inhibit 标记并重置其状态为未知,后续 Pacemaker 会在下一轮选举中重新接纳
  • 最后强制同步状态:pcs cluster sync(确保所有节点 CIB 一致),再等 30 秒观察 pcs status 是否变为 Online

容易被忽略的细节

blocked 状态常被当成“服务没起来”去 restart pacemaker,但真正卡点往往在更底层:

  • pcs node unclean 不等于 pcs cluster start:前者改 CIB 标记,后者只拉起本地进程;若 Corosync 本身不通,unclean 后仍会立刻 re-block
  • 双节点集群无仲裁设备时,quorum 默认策略可能拒绝单节点运行,导致节点即使在线也被 block;此时需临时调 no-quorum-policy=ignore(仅调试用,生产慎开)
  • 某些云环境(如 Azure)中,blocked 实际是平台维护导致的网络抖动引发,corosync 日志会出现 Token has not been received in 30000 ms,这种情况下等网络恢复比硬操作更稳妥

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4110

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3493

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2693

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6570

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6222

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3613

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3105

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3339

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习