GlusterFS 分布式文件系统

一、GlusterFS 概述

1.1 基本定义

GlusterFS 是一款开源、无元数据服务器的 Scale-Out 横向扩展分布式文件系统,可通过 TCP/IP 或 InfiniBand RDMA 网络聚合多节点存储资源,提供统一命名空间,支持 PB 级海量存储。

1.2 核心特点

  1. 无元数据服务器:无单点故障、无性能瓶颈
  1. 弹性哈希算法:自动定位数据,均匀分布
  1. 高扩展性:在线增删节点,不中断业务
  1. 高可用性:支持副本、自动后台增量修复
  1. 全局统一命名空间:对应用屏蔽物理存储
  1. 标准协议兼容:NFS/CIFS/SMB/FUSE/POSIX
  1. 模块化堆叠架构:灵活组合功能模块

1.3 核心组件

  • Brick :基本存储单元,格式为 主机名:存储目录
  • Volume:由多个 Brick 组成的逻辑卷
  • FUSE:用户态文件系统模块,无需修改内核
  • VFS:内核文件系统访问接口
  • Glusterd:集群管理守护进程(每节点必须运行)

二、工作原理

2.1 数据访问流程

  1. 客户端通过挂载点访问数据
  1. 内核 VFS 接收请求
  1. 交给 FUSE 模块转发
  1. GlusterFS Client 处理数据
  1. 通过网络发送到对应 GlusterFS Server
  1. 写入 Brick 存储

2.2 弹性 HASH 算法

  • 基于 Davies-Meyer 实现,计算得到 32 位 HASH 值
  • 将 HASH 空间划分为 N 段,对应 N 个 Brick
  • 直接定位文件,无需查询元数据服务器
  • 优点:负载均衡、无单点、并行访问

三、GlusterFS 卷类型(共 7 种,常用 5 种)

3.1 基础卷

  1. 分布式卷(Distribute)
  • 类似 RAID0,文件按 HASH 散列到不同 Brick
  • 无冗余、扩容简单、单点故障丢数据
  1. 条带卷(Stripe)
  • 类似 RAID0,文件分块轮询存储
  • 大文件性能高、无冗余
  1. 复制卷(Replica)
  • 类似 RAID1,文件多副本同步
  • 高可用、读性能高、写性能低、磁盘利用率低

3.2 复合卷

  1. 分布式条带卷
  • 先分布、再分块,适合海量大文件
  • 无冗余,Brick 数为条带数倍数
  1. 分布式复制卷
  • 先分布、再副本,生产环境首选
  • 兼顾容量与高可用,Brick 数为副本数倍数
  1. 条带复制卷 ≈ RAID10
  1. 分布式条带复制卷:三者复合,用于 MapReduce 场景

四、GlusterFS 集群部署(CentOS 7)

4.1 环境准备

  • 4 台存储节点 + 1 台客户端
  • 磁盘分区、格式化、永久挂载
  • 关闭防火墙、SELinux
  • 配置所有节点 /etc/hosts 主机名解析

4.2 安装与启动

|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash yum -y install centos-release-gluster yum -y install glusterfs glusterfs-server glusterfs-fuse systemctl start glusterd systemctl enable glusterd |

4.3 组建集群

|--------------------------------------------------------------------------------------------------------------|
| bash gluster peer probe node2 gluster peer probe node3 gluster peer probe node4 gluster peer status # 查看集群状态 |

4.4 创建并启动卷

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash # 分布式卷 gluster volume create dis-volume node1:/e6 node2:/e6 force gluster volume start dis-volume # 条带卷 gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force # 复制卷 gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force # 分布式条带卷 gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force # 分布式复制卷 gluster volume create dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force |

4.5 客户端挂载

|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash yum -y install glusterfs glusterfs-fuse mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep} mount -t glusterfs node1:dis-volume /test/dis |

4.6 永久挂载(/etc/fstab)

|----------------------------------------------------------------------|
| Plain Text node1:dis-volume /test/dis glusterfs defaults,_netdev 0 0 |

五、功能测试

5.1 文件分布验证

  • 分布式卷:文件完整存于某一 Brick
  • 条带卷:文件分块存于多个 Brick
  • 复制卷:所有 Brick 存完整副本
  • 分布式复制卷:分组存副本

5.2 破坏性测试结论

  • 分布式 / 条带卷:节点宕机 → 数据丢失
  • 复制 / 分布式复制卷:单节点宕机 → 数据正常可用
  • 分布式复制卷可容忍副本组内单点故障

六、常用维护命令

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| bash gluster volume list # 列出所有卷 gluster volume info # 查看卷详情 gluster volume status # 查看卷运行状态 gluster volume stop volname # 停止卷 gluster volume delete volname # 删除卷 gluster volume set volname auth.allow 192.168.8.* # 访问控制 |

相关推荐
标书畅畅行1 小时前
钛投标标书查重系统技术架构与功能实现解析
大数据·人工智能
2401_872418782 小时前
什么是多范式编程语言?——以 C++ 为例深入理解编程范式
java·大数据·c++
Volunteer Technology3 小时前
Flink的 Side Output侧输出和 ProcessFunction
大数据·flink
roman_日积跬步-终至千里3 小时前
【SDD】高风险场景下的 SDD 最佳实践:分层风控+分级落地,约束AI编程边界
大数据·人工智能·ai编程
计算机安禾3 小时前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
人员安全定位3 小时前
喜报!品铂科技获2025年度电力建设科学技术进步奖
大数据·人工智能·科技
AI智图坊3 小时前
拒绝模板同质化:拆解自由生图功能,如何通过GPT-Image-2与Nano Banana Pro双模型驱动电商AIGC?
大数据·人工智能·gpt·ai作画·aigc
AI_yangxi4 小时前
短视频矩阵系统服务商
大数据·人工智能·矩阵
硅谷秋水5 小时前
SkillOpt:自演化智体技能的执行策略
大数据·人工智能·深度学习·机器学习·语言模型
智慧景区与市集主理人5 小时前
传统农场的数字化蝶变:马山百里度假区全域智慧化升级,重构乡村文旅运营逻辑
大数据·人工智能