You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CRM集群切换后无法挂载DRBD,FreePBX主备集群节点切换故障求助

兄弟,我之前踩过几乎一模一样的Proxmox+FreePBX主备集群的坑,结合你说的症状,咱们一步步拆解解决:

1. 先搞定DRBD挂载失败的核心问题

这是所有连锁故障的源头,先把它理顺:

  • 先查DRBD的实时状态:执行drbdadm status和cat /proc/drbd,确认备用节点在主节点下线后,有没有被Pacemaker切换为Primary状态。如果还是Secondary,那挂载肯定失败——DRBD只有Primary节点能挂载设备。
  • 检查res_filesystem_1的资源配置:用crm configure show res_filesystem_1看挂载路径、DRBD设备(比如/dev/drbd0)是不是正确,有没有加force_unmount=true参数?有时候主节点异常下线后,挂载点会残留进程占用,用fuser -m /your/mount/path就能查到,杀掉这些进程再试挂载。
  • 排查DRBD元数据损坏:如果上面都没问题,试试先 invalidate 资源再同步(注意先备份数据!):drbdadm invalidate your_drbd_resource,然后drbdadm connect your_drbd_resource,等同步完成后再让Pacemaker启动filesystem资源。
2. 修复Pacemaker资源依赖与约束

重置资源后能正常启动,说明资源本身没问题,问题出在切换时的资源顺序/约束:

  • 检查资源启动顺序:必须保证DRBD先切换为Primary,再启动filesystem,最后启动FreePBX相关服务。用crm configure show看有没有类似这样的order约束:
    order drbd_before_fs inf: drbd_resource res_filesystem_1
    order fs_before_freepbx inf: res_filesystem_1 asterisk_service
    
    如果没有,手动添加:crm configure order drbd_before_fs inf: drbd_resource res_filesystem_1
  • 检查 colocation约束:确保filesystem和DRBD资源绑定在同一个节点,避免Pacemaker把filesystem调度到没有DRBD Primary的节点:
    colocation fs_with_drbd inf: res_filesystem_1 drbd_resource
    
3. 解决主节点关机卡住的问题

提示“waiting for cluster services to unload”,大概率是Pacemaker停止资源超时,或者有残留进程:

  • 先修改资源的停止超时配置:给每个集群资源(比如DRBD、filesystem、asterisk)加上stop-timeout=30s(根据你的服务实际停止时间调整),比如crm configure edit drbd_resource,在里面加这个参数。
  • 手动干预关机流程:下次关机前,先手动停止集群服务:systemctl stop pacemaker corosync,等服务停完再执行shutdown -h now,避免系统等超时。
  • 排查残留进程:如果还是卡住,开机后看/var/log/pacemaker/pacemaker.log,找有没有“resource X failed to stop”的日志,针对性处理那个资源的停止脚本。
4. 根治切换后复现的问题

重置资源能好但切换就坏,说明切换时Pacemaker没有正确清理主节点的资源状态:

  • 查看集群日志:切换失败后立刻看/var/log/pacemaker/pacemaker.log,找类似“resource is still active on node X”的错误——这说明主节点虽然下线,但Pacemaker认为资源还在运行,导致备用节点不敢启动。
  • 调整资源粘性:给资源设置resource-stickiness=100,让集群尽量保持资源在当前节点,但主节点下线时会自动切换。或者设置migration-threshold=1,让节点故障时立刻迁移资源。
  • 检查Corosync心跳:用corosync-cmapctl | grep members确认主备节点的心跳状态,如果心跳超时,切换时会出现状态不同步的问题,检查节点间的网络连通性,调整Corosync的token超时参数。

内容的提问来源于stack exchange,提问作者Павел Ламанов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:34:28