glusterfs安装配置失败主因是源未配置、24007端口被防火墙/selinux阻断、brick文件系统不支持xattr;需依次验证源可用性、端口连通性(nc -zv ip 24007)及扩展属性支持(getfattr -d brick路径)。

GlusterFS 在 Linux 上装不上、配不起来,八成不是版本或命令写错,而是卡在三个地方:源没对上、端口被挡死、brick 文件系统不认账。先解决这三个,再谈配置。
glusterfs-server 安装失败:源配置比命令更重要
直接 yum install glusterfs-server 或 apt install glusterfs-server 报 “No package found”,说明系统默认源里压根没有 GlusterFS 包——尤其 CentOS 7/8、Ubuntu 18.04 默认就不带,得手动加源。
- CentOS 7 必须先跑:
yum install centos-release-gluster -y,再yum install glusterfs-server -y - CentOS 8+ 推荐用 Gluster 10 专用源:
yum install centos-release-gluster10 -y,避免用dnf module enable glusterfs:latest这种不稳定路径 - Ubuntu 20.04 要加 PPA:
sudo add-apt-repository ppa:gluster/glusterfs-10,再apt update && apt install glusterfs-server - 别信 “离线 rpm 包一键安装” ——
yumdownloader --resolve glusterfs-server下来的包链里常缺libgfchangelog或python3-gluster,漏一个就起不来glusterd
gluster peer probe 失败:errno 107 不是 Gluster 的锅
gluster peer probe 192.168.10.212 返回 Probe returned with unknown errno 107,这其实是 Linux 网络层拒绝连接,和 Gluster 配置无关。
- 先确认
glusterd在目标节点已运行:systemctl status glusterd,没 active 就别 probe - 用
nc -zv 192.168.10.212 24007测试连通性;不通就查防火墙:firewall-cmd --list-ports看 24007 是否在白名单里 - SELinux 必须设为 permissive:
setenforce 0,临时验证;若生效,后续要用semanage port -a -t gluster_port_t -p tcp 24007固化策略,不能长期关 SELinux -
peer probe只接受 IP,不解析主机名 —— 即使/etc/hosts写对了,也必须用 IP,否则超时后报的还是 errno 107
mount -t glusterfs 卡住或 Connection refused
客户端执行 mount -t glusterfs server1:/myvol /mnt/gfs 后卡住几秒再报错,问题不在 mount 命令本身,而在 volume 状态或 brick 底层支撑。
- 先确认 volume 已创建且启动:
gluster volume list输出应含myvol,且状态为Started;没启动就gluster volume start myvol - 检查每个 brick 路径是否真实可写:
ls -ld /bricks/brick1,父目录要有x权限(否则 FUSE 挂载失败) - brick 所在文件系统必须支持扩展属性:
getfattr -d /bricks/brick1,若报Operation not supported,说明用了 btrfs、overlayfs 或未开启 xattr 的 ext4,换用 xfs 或重挂 ext4 加user_xattr选项 - 挂载时加
-o log-level=INFO,日志会输出到/var/log/glusterfs/下对应 client 日志,比卡住干等更早定位问题点
fstab 自动挂载失败:FUSE 和 systemd 启动顺序冲突
把 server1:/myvol /mnt/gfs glusterfs defaults,_netdev 0 0 写进 /etc/fstab,重启后挂载点空着,mount -a 却能成功 —— 这是典型的 FUSE 模块加载时机晚于 fstab 解析。
- 必须加
_netdev,否则 systemd 会在网络就绪前就尝试挂载,必然失败 - CentOS 7/8 需确保
fuse模块已加载:modprobe fuse,并写入/etc/modules-load.d/fuse.conf(内容仅一行fuse) - Ubuntu 系统要确认
glusterfs-client包已安装(不是glusterfs-fuse),后者只是兼容旧版,新版依赖前者提供glusterfs类型支持 - 更稳妥的做法是弃用 fstab,改用 systemd mount unit:
/etc/systemd/system/mnt-gfs.mount,里面明确声明After=network-online.target和Wants=network-online.target
真正麻烦的从来不是命令敲不对,而是 brick 目录看着存在、权限看着够、磁盘看着挂好了,结果 getfattr 一测才发现底层文件系统根本不支持 xattr —— 这类问题不会报具体错误,只会让整个流程静默失败。动手前,先跑一遍 getfattr -d 和 nc -zv :24007,省掉后面八成排查时间。











