主题
第 1 章 分布式存储与高可用概述
1.1 什么是存储高可用
在企业 IT 系统中,数据是最重要的资产之一。存储高可用(High Availability Storage)指的是:即使部分硬件或软件发生故障,存储服务仍然能够持续对外提供访问能力。
高可用通常用 "几个 9" 来衡量:
| 可用性级别 | 年停机时间 | 说明 |
|---|---|---|
| 99% | 3.65 天 | 基础级别 |
| 99.9% | 8.76 小时 | 三个 9 |
| 99.99% | 52.6 分钟 | 四个 9 |
| 99.999% | 5.26 分钟 | 五个 9 |
要实现高可用,核心思路是:消除单点故障(Single Point of Failure, SPOF)。
1.2 传统 NAS 与分布式存储的区别
传统 NAS
传统 NAS(Network Attached Storage)通常是一台独立的存储设备,通过 NFS 或 SMB 协议对外提供文件服务。
┌─────────────┐
│ Client │
└──────┬──────┘
│ NFS/SMB
┌──────▼──────┐
│ NAS Device │
│ (Single) │
└─────────────┘优点:部署简单、管理方便。
缺点:存在单点故障,容量和性能扩展受限。
分布式存储
分布式存储将数据分散存储在多台普通服务器上,通过网络协同工作,对外提供统一的存储服务。
┌─────────┐
│ Client │
└────┬────┘
│
┌───────┼───────┐
│ │ │
┌───▼───┐┌──▼───┐┌──▼───┐
│ Node1 ││ Node2││ Node3│
└───────┘└──────┘└──────┘优点:
- 无单点故障(通过数据冗余实现)
- 水平扩展能力强
- 可利用普通 x86 服务器,成本低
1.3 数据冗余策略:副本 vs 纠删码
副本(Replication)
将同一份数据同时保存多份,分布在不同节点上。
文件 A ──► Node1 (完整副本)
──► Node2 (完整副本)
──► Node3 (完整副本)优点:
- 读取性能高(可从任意副本读取)
- 恢复速度快
- 实现简单
缺点:
- 存储利用率低(3 副本只有 33% 有效容量)
- 写入时需要同步多份,写性能受影响
纠删码(Erasure Coding)
将数据切分成块,并计算校验块,分散存储。例如 4+2 纠删码:原始数据分成 4 块,生成 2 个校验块,任意 4 块即可恢复数据。
文件 A ──► D1 D2 D3 D4 P1 P2优点:
- 存储利用率高(4+2 约为 66%)
缺点:
- 计算开销大
- 恢复时需要读取多个块,重建速度慢
本书采用 3 副本复制卷,因为它在简单性、可靠性和性能之间取得了最佳平衡,特别适合中小规模场景。
1.4 CAP 定理与存储系统设计
CAP 定理指出,分布式系统无法同时满足以下三个特性:
- C(Consistency,一致性):所有节点看到的数据一致
- A(Availability,可用性):系统始终可响应请求
- P(Partition Tolerance,分区容错性):网络分区时系统仍能运行
在分布式存储中,通常需要在 C 和 A 之间做权衡。
GlusterFS 的复制卷更偏向 AP,即在网络分区时优先保证可用性,但可能牺牲部分一致性(需要通过仲裁机制防止脑裂)。
1.5 常见高可用存储方案对比
| 方案 | 架构复杂度 | 扩展性 | 成本 | 适用场景 |
|---|---|---|---|---|
| 单机 NAS | 低 | 差 | 中 | 小微企业 |
| SAN + 双控 | 中 | 中 | 高 | 传统企业 |
| GlusterFS + NFS-Ganesha | 中 | 好 | 低 | 通用文件存储 |
| CephFS + NFS-Ganesha | 高 | 很好 | 中 | 大规模云存储 |
| MinIO / 对象存储 | 中 | 很好 | 低 | 对象存储场景 |
本书选择的 GlusterFS + NFS-Ganesha + Keepalived 方案,兼顾了以下特点:
- 不依赖昂贵硬件
- 部署简单,学习曲线平缓
- 可同时服务 Linux 客户端和 Kubernetes
- 3 节点即可实现高可用
1.6 本章小结
- 存储高可用的核心是消除单点故障
- 分布式存储通过数据冗余实现高可用
- 副本策略简单可靠,适合本书场景
- CAP 定理帮助我们理解分布式存储的设计取舍
- GlusterFS + NFS-Ganesha + Keepalived 是一套经济实用的方案
练习题
- 什么是单点故障?为什么存储系统需要消除单点故障?
- 3 副本策略的存储利用率是多少?它有什么优缺点?
- CAP 定理中,GlusterFS 复制卷更偏向哪两个特性?
- 对比传统 NAS 和分布式存储,说说它们各自的适用场景。