Skip to content

第 12 章 GlusterFS 卷类型深度解析

12.1 分布式卷(Distribute)

分布式卷将文件分布存储到多个 brick,没有任何冗余。

文件 A ──► Node1
文件 B ──► Node2
文件 C ──► Node3

创建命令

bash
gluster volume create gv-distribute \
    node1:/data/brick1/d1 \
    node2:/data/brick1/d2 \
    node3:/data/brick1/d3

特点

  • 容量利用率高(100%)
  • 无冗余,单点故障会丢失数据
  • 适合临时数据或非关键数据

12.2 复制卷(Replica)

每个文件保存多份副本,本章重点。

文件 A ──► Node1, Node2, Node3

特点

  • 高可靠
  • 读取性能好
  • 写入需同步多份
  • 容量利用率 = 1 / replica 数

12.3 条带卷(Stripe)

大文件被切分成块,分布到多个 brick。

文件 A 块1 ──► Node1
文件 A 块2 ──► Node2
文件 A 块3 ──► Node3

特点

  • 提升单个大文件的读写吞吐
  • 无冗余
  • 在 GlusterFS 新版本中已较少使用

12.4 分布式复制卷(Distributed-Replicate)

结合分布式和复制的优点,适合大规模场景。

文件 A ──► Node1, Node2
文件 B ──► Node3, Node4
文件 C ──► Node5, Node6

创建命令(2x3 示例)

bash
gluster volume create gv-disp-rep replica 2 \
    node1:/data/brick1/a node2:/data/brick1/a \
    node3:/data/brick1/b node4:/data/brick1/b \
    node5:/data/brick1/c node6:/data/brick1/c

特点

  • 容量和性能都可扩展
  • 仍然保持副本冗余
  • 适合大规模生产环境

12.5 纠删码卷(Dispersed)

使用纠删码技术,将数据分块并生成校验块。

文件 A ──► D1 D2 D3 D4 P1 P2

创建命令(4+2)

bash
gluster volume create gv-disp disperse 6 redundancy 2 \
    node1:/data/brick1/d \
    node2:/data/brick1/d \
    node3:/data/brick1/d \
    node4:/data/brick1/d \
    node5:/data/brick1/d \
    node6:/data/brick1/d

特点

  • 存储利用率高
  • 计算开销大
  • 恢复速度慢于副本
  • 适合冷数据或备份场景

12.6 如何选择卷类型

场景推荐卷类型理由
关键业务数据Replica 3高可靠、恢复快
大规模共享Distributed-Replicate容量和性能扩展
归档/备份Dispersed存储利用率高
临时缓存Distribute容量最大化
大文件串流Stripe吞吐最大化

12.7 本章小结

  • GlusterFS 提供多种卷类型满足不同需求
  • 复制卷适合高可靠场景
  • 分布式复制卷适合大规模扩展
  • 纠删码卷适合成本敏感场景
  • 选择卷类型时要权衡容量、性能、可靠性和复杂度

练习题

  1. 分布式卷和复制卷的主要区别是什么?
  2. 分布式复制卷相比纯复制卷有什么优势?
  3. 纠删码卷的冗余度由什么参数决定?
  4. 你的业务数据适合哪种卷类型?为什么?