主题
第 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 提供多种卷类型满足不同需求
- 复制卷适合高可靠场景
- 分布式复制卷适合大规模扩展
- 纠删码卷适合成本敏感场景
- 选择卷类型时要权衡容量、性能、可靠性和复杂度
练习题
- 分布式卷和复制卷的主要区别是什么?
- 分布式复制卷相比纯复制卷有什么优势?
- 纠删码卷的冗余度由什么参数决定?
- 你的业务数据适合哪种卷类型?为什么?