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
相关推荐
by2099912 小时前
学会使用std::string类,并理解其内部是如何管理字符串的详细阐述(上)
c++·笔记·字符串·类和对象·string
笑鸿的学习笔记13 小时前
C++笔记之大块顺序写
java·c++·笔记
山岚的运维笔记15 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
知潮网17 小时前
手机号注销两年,免密扣款仍在继续
笔记
Seraphina3618 小时前
DVWA(SQL注入-low,medium,XSS反射-low)
前端·数据库·笔记·sql·网络安全·web·xss
维克兜率天20 小时前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
路弥行至20 小时前
【Head First 设计模式】第 2 章:观察者模式 —— 用现代 C++ 重新解读“交互对象的松耦合
c++·经验分享·笔记·观察者模式·设计模式·入门教程·headfirst
坤坤子吖1 天前
Python基础语法学习:条件、循环与程序控制
开发语言·笔记·python·学习
远离UE41 天前
UE5.8 Substrate Glint 笔记
笔记
用户14036058193831 天前
Phase A · Step 3:模型导出 ONNX
笔记