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
相关推荐
wwddgod2 小时前
STM32L071 串口唤醒stop低功耗模式笔记
笔记·stm32·单片机·低功耗·串口唤醒
Wyawsl2 小时前
GFS分布式文件系统笔记
笔记
23471021272 小时前
4.21 学习笔记
软件测试·笔记·python·学习
Keep Running *2 小时前
Python基础_学习笔记
笔记·python·学习
AOwhisky2 小时前
Kubernetes 学习笔记:Volume 存储卷与 ConfigMap 配置管理
linux·运维·笔记·学习·云原生·kubernetes
Tutankaaa11 小时前
从被动接受到主动挑战:知识竞赛如何重塑学习价值
人工智能·经验分享·笔记·学习
三棱球13 小时前
App逆向学习笔记(三)——Android开发入门课
android·笔记
handler0113 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习
阿Y加油吧14 小时前
算法实战笔记:LeetCode 169 多数元素 & 75 颜色分类
笔记·算法·leetcode