Skip to content

第 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 是一套经济实用的方案

练习题

  1. 什么是单点故障?为什么存储系统需要消除单点故障?
  2. 3 副本策略的存储利用率是多少?它有什么优缺点?
  3. CAP 定理中,GlusterFS 复制卷更偏向哪两个特性?
  4. 对比传统 NAS 和分布式存储,说说它们各自的适用场景。