glusterfs高可用共享存储需至少2台同构服务器(推荐3台),统一os、独立ssd格式化为xfs、配置hosts与时间同步、开放端口,部署后创建replica 2复制卷实现故障自动恢复,并通过backup-volfile-servers或keepalived vip实现客户端自动故障转移。

搭建 GlusterFS 实现高可用共享存储,核心在于多节点复制 + 故障自动恢复 + 稳定挂载访问。它不是单机 NFS 那种简单共享,而是靠多个物理节点协同工作,哪怕坏掉一台,数据和服务还能继续运行。
准备至少两台同构服务器
高可用最低要求是 2 台存储节点(推荐 3 台防脑裂),系统建议统一用 Ubuntu 22.04 LTS 或 CentOS 7/8。关键点:
- 每台机器挂载独立 SSD 存储盘(如
/dev/nvme0n1),格式化为 XFS,不共用同一块磁盘 - 所有节点配置一致的 hostname,并写入
/etc/hosts,例如:192.168.5.10 gfs-node1192.168.5.11 gfs-node2 - 关闭防火墙或放行 GlusterFS 必需端口:
24007-24011(管理端口)、38465-38485(卷通信端口) - 确保时间同步(
systemd-timesyncd或chrony),否则节点间状态判断可能出错
部署 GlusterFS 并创建复制卷
在所有节点上安装服务端:
sudo apt update && sudo apt install -y glusterfs-server
启动服务并设为开机自启:
sudo systemctl enable --now glusterd
在任一节点执行信任组网(以 gfs-node1 为主):
gluster peer probe gfs-node2
确认状态正常后,创建复制卷(replica 2)——这是高可用的基础:
mkdir -p /data/brick1<br>gluster volume create vol1 replica 2 gfs-node1:/data/brick1 gfs-node2:/data/brick1
启动卷并验证:
gluster volume start vol1<br>gluster volume info vol1<br>gluster volume status vol1
此时两个节点上的 /data/brick1 内容会实时双向同步,任一节点宕机,卷仍可读写。
客户端挂载与高可用增强
在应用服务器上安装客户端:
sudo apt install -y glusterfs-client
推荐使用 自动故障转移挂载方式,避免单点依赖:
mount -t glusterfs gfs-node1:/vol1 /mnt/gfs -o backup-volfile-servers=gfs-node2
这样当 gfs-node1 不可用时,客户端会自动切到 gfs-node2 获取卷信息。更稳妥的做法是配合 Keepalived 配置浮动 VIP(如 192.168.5.100),让客户端始终挂载 VIP,由 Keepalived 控制主从切换。
SSD 优化与稳定性加固
针对 SSD 特性,建议在卷上启用以下调优参数:
- 禁用写缓存(防止断电丢数据):
gluster volume set vol1 cluster.eager-lock off - 提升小文件性能:
gluster volume set vol1 performance.cache-size 256MB - 减少元数据开销:
gluster volume set vol1 features.inode-quota off - 启用异步日志(降低延迟):
gluster volume set vol1 network.remote-read-ahead off
同时确保底层文件系统挂载选项含 noatime,inode64,XFS 格式化时加 -f -i size=512 适配小文件场景。











