FreeBSD 11.1下GlusterFS分布式存储挂载失败求助
我之前在FreeBSD 11.x环境部署GlusterFS的时候踩过不少坑,针对你遇到的这些问题,给你整理一套分步排查方案,按顺序来应该能定位到根源:
故障排查分步方案
1. 先确认节点间基础连通性与端口放行
- 在
gluster1和gluster2上互相ping对方的主机名和IP,验证/etc/hosts的解析是否生效,同时确认网络无丢包 - 检查GlusterFS核心端口的监听与连通性:
- Glusterd服务默认端口是
24007,Brick通信端口范围是49152-49251 - 在节点上用
sockstat -4查看这些端口是否处于LISTEN状态 - 在Webserver上用
nc -zv gluster1 24007测试端口是否能正常打通 - 如果节点启用了pf防火墙,务必确认规则中放行了上述所有端口
- Glusterd服务默认端口是
2. 检查Brick挂载与权限配置
- 先在两台Gluster节点上验证
/dev/da1的挂载状态:执行mount | grep da1,确保挂载点/datastore稳定存在 - 检查Brick目录的权限:执行
ls -ld /datastore,GlusterFS的Brick目录需要glusterfs用户(默认系统用户)拥有读写权限,若权限不符,执行:chown -R glusterfs:glusterfs /datastore - 查看
glusterd的日志文件/var/log/glusterfs/glusterd.log,搜索brick关键词,排查是否存在挂载失败、权限拒绝等错误条目
3. 修复Peer节点状态与卷配置
- 在
gluster1和gluster2上分别执行gluster peer status,确认对方节点处于Connected状态;若显示Disconnected,先解绑再重新探测:# 在gluster1上执行 gluster peer detach gluster2 gluster peer probe gluster2 - 检查卷的Brick路径是否正确:执行
gluster volume info volume1,确认两个Brick的路径为gluster1:/datastore/brick1和gluster2:/datastore/brick2(注意:Brick最好用挂载点下的子目录,而非挂载点本身,避免权限冲突)。若路径错误,需备份数据后重建卷:gluster volume stop volume1 gluster volume delete volume1 gluster volume create volume1 replica 2 gluster1:/datastore/brick1 gluster2:/datastore/brick2 gluster volume start volume1
4. 客户端挂载与FUSE组件排查
- 在Webserver上确认已安装
fusefs-glusterfs包,且FUSE内核模块已加载:执行kldstat | grep fuse,若未加载,手动加载并设置开机自启:kldload fuse echo 'fuse_load="YES"' >> /boot/loader.conf - 尝试用IP替代主机名挂载,排除解析问题:
mount -t glusterfs 10.0.0.31:/volume1 /mnt - 查看客户端挂载日志
/var/log/glusterfs/mnt-glusterfs.log,搜索错误关键词,排查是否存在连接超时、权限不足等问题
5. NFS服务相关排查
- 确认两台Gluster节点已安装
net/nfs-server包,且系统NFS服务已启用:检查/etc/rc.conf中是否有nfs_server_enable="YES",若没有则添加并重启服务:echo 'nfs_server_enable="YES"' >> /etc/rc.conf service nfsd restart - 执行
gluster volume status volume1 nfs查看NFS服务的具体状态,同时在glusterd.log中搜索nfs关键词,排查是否存在端口绑定失败、服务启动异常等错误
内容的提问来源于stack exchange,提问作者stoney
相关产品推荐
相关产品推荐

