主题
第 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.log | glusterd 管理日志 |
/var/log/glusterfs/bricks/<brick-path>.log | brick 日志 |
/var/log/glusterfs/<volume-name>.log | 卷客户端日志 |
Ganesha 日志
| 文件 | 内容 |
|---|---|
/var/log/ganesha/ganesha.log | Ganesha 主日志 |
Keepalived 日志
bash
journalctl -u keepalived -f18.3 常见故障案例
案例 1:卷无法启动
现象:
bash
gluster volume start gv0
volume start: gv0: failed排查:
- 检查所有 brick 目录是否存在
- 检查 glusterd 是否运行
- 查看 glusterd.log 错误信息
案例 2:客户端无法挂载
现象:
bash
mount.nfs: Connection timed out排查:
- 检查 VIP 是否可达:
ping 10.0.0.100 - 检查 Ganesha 是否运行:
systemctl status nfs-ganesha - 检查导出列表:
showmount -e 10.0.0.100 - 检查防火墙
案例 3:IO 性能下降
排查:
- 检查网络带宽和延迟
- 检查磁盘 IO:
iostat -x 1 - 检查 CPU 和内存
- 查看是否有大量 heal 任务
18.4 性能问题定位
使用 iostat
bash
iostat -x 1 10关注 %util 和 await 字段。
使用 iftop
bash
iftop -i eth0查看网络流量是否达到带宽上限。
使用 gluster 工具
bash
gluster volume top gv0 open
gluster volume top gv0 read
gluster volume top gv0 write18.5 客户端挂载失败排查
检查清单
- 客户端是否安装
nfs-common/nfs-utils - VIP 是否可达
- Ganesha 服务是否运行
- 导出路径是否正确
- 防火墙是否放行
/etc/fstab参数是否正确
调试挂载
bash
mount -t nfs -o vers=4.1,hard,intr 10.0.0.100:/gv0 /mnt/test -v18.6 VIP 不漂移排查
检查清单
- Keepalived 是否运行
- VRRP 是否被防火墙拦截(协议 112)
- 健康检查脚本是否正确
virtual_router_id是否冲突- 网卡名称是否正确
强制切换测试
bash
# 在 Master 节点停止 Ganesha
systemctl stop nfs-ganesha
# 在 Backup 节点查看日志
journalctl -u keepalived -f18.7 本章小结
- 定期巡检是预防故障的关键
- 日志是排查问题的核心依据
- 常见故障包括卷启动失败、挂载失败、性能下降、VIP 不漂移
- 使用系统工具和网络工具定位性能瓶颈
- 建立标准化的排查流程
练习题
- 日常巡检应包含哪些检查项?
- GlusterFS 的主要日志文件有哪些?
- 客户端挂载超时应从哪些方面排查?
- Keepalived VIP 不漂移可能有哪些原因?