Skip to content

第 18 章 日常运维与故障排查

18.1 巡检清单

每日/每周应检查:

检查项命令/方法频率
集群节点状态gluster peer status每日
卷状态gluster volume info每日
Brick 状态gluster volume status每日
自愈状态gluster volume heal gv0 info每日
磁盘空间df -h每日
VIP 状态ip addr每周
Ganesha 服务systemctl status nfs-ganesha每日
Keepalived 日志journalctl -u keepalived每周

18.2 日志分析指南

GlusterFS 日志

文件内容
/var/log/glusterfs/glusterd.logglusterd 管理日志
/var/log/glusterfs/bricks/<brick-path>.logbrick 日志
/var/log/glusterfs/<volume-name>.log卷客户端日志

Ganesha 日志

文件内容
/var/log/ganesha/ganesha.logGanesha 主日志

Keepalived 日志

bash
journalctl -u keepalived -f

18.3 常见故障案例

案例 1:卷无法启动

现象

bash
gluster volume start gv0
volume start: gv0: failed

排查

  1. 检查所有 brick 目录是否存在
  2. 检查 glusterd 是否运行
  3. 查看 glusterd.log 错误信息

案例 2:客户端无法挂载

现象

bash
mount.nfs: Connection timed out

排查

  1. 检查 VIP 是否可达:ping 10.0.0.100
  2. 检查 Ganesha 是否运行:systemctl status nfs-ganesha
  3. 检查导出列表:showmount -e 10.0.0.100
  4. 检查防火墙

案例 3:IO 性能下降

排查

  1. 检查网络带宽和延迟
  2. 检查磁盘 IO:iostat -x 1
  3. 检查 CPU 和内存
  4. 查看是否有大量 heal 任务

18.4 性能问题定位

使用 iostat

bash
iostat -x 1 10

关注 %utilawait 字段。

使用 iftop

bash
iftop -i eth0

查看网络流量是否达到带宽上限。

使用 gluster 工具

bash
gluster volume top gv0 open
gluster volume top gv0 read
gluster volume top gv0 write

18.5 客户端挂载失败排查

检查清单

  1. 客户端是否安装 nfs-common/nfs-utils
  2. VIP 是否可达
  3. Ganesha 服务是否运行
  4. 导出路径是否正确
  5. 防火墙是否放行
  6. /etc/fstab 参数是否正确

调试挂载

bash
mount -t nfs -o vers=4.1,hard,intr 10.0.0.100:/gv0 /mnt/test -v

18.6 VIP 不漂移排查

检查清单

  1. Keepalived 是否运行
  2. VRRP 是否被防火墙拦截(协议 112)
  3. 健康检查脚本是否正确
  4. virtual_router_id 是否冲突
  5. 网卡名称是否正确

强制切换测试

bash
# 在 Master 节点停止 Ganesha
systemctl stop nfs-ganesha

# 在 Backup 节点查看日志
journalctl -u keepalived -f

18.7 本章小结

  • 定期巡检是预防故障的关键
  • 日志是排查问题的核心依据
  • 常见故障包括卷启动失败、挂载失败、性能下降、VIP 不漂移
  • 使用系统工具和网络工具定位性能瓶颈
  • 建立标准化的排查流程

练习题

  1. 日常巡检应包含哪些检查项?
  2. GlusterFS 的主要日志文件有哪些?
  3. 客户端挂载超时应从哪些方面排查?
  4. Keepalived VIP 不漂移可能有哪些原因?