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.* # 访问控制 |

相关推荐
一个程序猿老马2 小时前
003、Git核心概念:仓库、工作区、暂存区、版本库
大数据·git·elasticsearch
智星云算力2 小时前
算力民主化的 “临界点”:RTX 5090 专属算力平台专项测评与租用实战分析
大数据·人工智能·gpu算力·智星云·gpu租用
我是发哥哈2 小时前
主流AI培训机构能力横向评测:核心维度与选型要点解析
大数据·人工智能·学习·机器学习·ai·chatgpt·aigc
QYR-分析2 小时前
电气化浪潮下,电池液体冷却器行业发展全景解析
大数据·人工智能
一个程序猿老马2 小时前
005、Git三板斧(1):git add - 将文件纳入版本管理
大数据·git·elasticsearch
Guheyunyi2 小时前
智能巡检管理系统实现安全与效率双飞跃
大数据·人工智能·安全·架构·能源
cy_cy0022 小时前
从旁观到参与,体感游戏赋能教育展厅
大数据·科技·人机交互·交互·软件构建
IT观测2 小时前
物联网时代的“连接者”:解码西安摩高互动的软硬一体化开发实践
大数据·人工智能
ApacheSeaTunnel2 小时前
SeaTunnel + AI:一句“我要做什么”,能不能直接变成一份能跑的配置?
大数据·ai·开源·数据集成·seatunnel·数据同步