GluserFS笔记

一、GlusterFS 是什么

GlusterFS 是开源、无中心元数据、可横向扩展的分布式文件系统,由 Red Hat 主导维护。

  • 把多台服务器的本地硬盘 / 目录聚合成一个全局统一命名空间
  • 支持 PB 级存储、数千客户端并发
  • 适合:云存储、大数据、媒体、虚拟化、容器持久化等

二、核心架构与术语

1. 架构特点

  • 无元数据服务器(Metadata‑Free):无单点瓶颈,元数据分散在各节点
  • 弹性哈希(Elastic Hashing):客户端通过哈希直接定位文件所在 Brick
  • 用户态 + FUSE:客户端通过 FUSE 挂载,也可直接用 libglusterfs 访问
  • 模块化 Translator:副本、条带、纠删、缓存等功能可组合

2. 关键术语

  • Brick(砖块) :最小存储单元,格式 hostname:/path(节点 + 目录)
  • Volume(卷):多个 Brick 组成的逻辑卷,对外提供存储服务
  • Peer(对等节点):集群中互相信任的 GlusterFS 节点
  • Replica(副本):多副本高可用
  • Stripe(条带):大文件分片并行读写
  • EC(Erasure Coding,纠删码):比副本更节省空间的容错方式

三、卷类型(常用)

1. 分布式卷(Distributed)

  • 文件随机分布在不同 Brick,无冗余
  • 优点:容量大、性能好;缺点:节点丢数据即丢失
  • 适用:临时数据、缓存、非重要数据
  • 示例:4 个 Brick → 文件分散在 4 台机器

2. 复制卷(Replicated)

  • 文件在多个 Brick 完整副本(如 replica 2/3)
  • 优点:高可用、强一致;缺点:空间利用率低(副本数 N → 可用 1/N)
  • 适用:关键数据、数据库、配置文件
  • 示例:replica 2 → 每个文件存 2 份

3. 分布式复制卷(Distributed Replicated,最常用)

  • 先分组,组内复制、组间分布式
  • 如 8 Brick、replica 2 → 4 组,每组 2 副本
  • 兼顾容量、性能、高可用
  • 生产环境首选

4. 条带卷(Striped)

  • 大文件分块轮询分布在多个 Brick
  • 优点:大文件吞吐高;缺点:无冗余、小文件性能差
  • 适用:超大文件(如视频、备份)

5. 纠删码卷(EC)

  • 类似 RAID5/6,用数学编码实现容错
  • 如 4+2 → 6 个 Brick,允许坏 2 个
  • 空间利用率高(4/6),适合大容量归档

四、核心优势

  1. 无单点故障:无中心元数据节点
  2. 线性扩展:加节点即扩容,性能随节点增长
  3. 高可用自愈:副本 / EC 自动修复,节点故障不丢数据
  4. 协议兼容:支持 POSIX、NFS、SMB/CIFS、Gluster 原生协议
  5. 低成本:跑在普通 x86 服务器,无需专用硬件

五、常用命令(快速参考)

1. 集群管理

bash

运行

复制代码
# 安装(CentOS/RHEL)
yum install -y glusterfs-server
systemctl start glusterd
systemctl enable glusterd

# 加入集群(节点间互信)
gluster peer probe <节点IP/主机名>

# 查看集群状态
gluster peer status
gluster cluster status

2. 卷管理

bash

运行

复制代码
# 创建分布式卷(4 Brick)
gluster volume create vol1 node1:/brick1 node2:/brick2 node3:/brick3 node4:/brick4

# 创建分布式复制卷(8 Brick,replica 2)
gluster volume create vol2 replica 2 node1:/brick1 node2:/brick2 node3:/brick3 node4:/brick4 node5:/brick5 node6:/brick6 node7:/brick7 node8:/brick8

# 启动卷
gluster volume start vol1

# 查看卷信息
gluster volume info
gluster volume status

# 扩容(加 Brick)
gluster volume add-brick vol1 node5:/brick5

# 缩容(删 Brick)
gluster volume remove-brick vol1 node5:/brick5

# 删除卷
gluster volume stop vol1
gluster volume delete vol1

3. 客户端挂载

bash

运行

复制代码
# 临时挂载
mkdir -p /mnt/gluster
mount -t glusterfs node1:/vol1 /mnt/gluster

# 开机自动挂载(/etc/fstab)
node1:/vol1 /mnt/gluster glusterfs defaults,_netdev 0 0

六、极简部署示例(3 节点,分布式复制卷)

环境

  • node1(192.168.1.1)、node2(192.168.1.2)、node3(192.168.1.3)
  • 每节点准备目录 /data/brick1

步骤

  1. 所有节点安装 glusterfs-server,启动 glusterd
  2. 节点间互信

bash

运行

复制代码
# node1 执行
gluster peer probe 192.168.1.2
gluster peer probe 192.168.1.3
  1. 创建卷(replica 3)

bash

运行

复制代码
gluster volume create gvol replica 3 \
node1:/data/brick1 \
node2:/data/brick1 \
node3:/data/brick1
  1. 启动卷

bash

运行

复制代码
gluster volume start gvol
  1. 客户端挂载

bash

运行

复制代码
mount -t glusterfs node1:/gvol /mnt/gvol
相关推荐
六点_dn10 小时前
RabbitMQ学习笔记-部署和使用
笔记·学习·rabbitmq
2501_9269783312 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
天天爱吃肉821812 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车
IT199512 小时前
Dify 实战笔记:工作流核心玩法 + 开源 AI 应用全解析
笔记
dong13269713 小时前
Agent Skills学习笔记
笔记·学习
摇滚侠14 小时前
《SpringBoot 3:入门与应用实战》第 15 章 生产级特性 管理 Spring Boot 应用 阅读笔记
java·spring boot·笔记
liferecords15 小时前
阅读笔记:ExtractBench: A Benchmark for Schema-Guided Enterprise Document Extraction
笔记
尤乐娃子16 小时前
进入大厂(厂子大)实习Day8
前端·笔记·实习
一只小菜鸡..16 小时前
南京大学 操作系统 (JYY) 学习笔记:持久化的黑魔法——从磁铁、刻坑到闪存电荷
服务器·笔记·学习
aFakeProgramer16 小时前
Linux版本兼容问题及RTA-VRTE环境配置笔记
linux·笔记