RAID 与企业级存储 —— 从单盘到存储阵列
单盘出错率即便是企业级也不为零。把多盘组成阵列,是数据中心存储的基础动作。本文讲 RAID 各级别、硬 RAID 和软 RAID 的取舍、SAN/NAS 的位置——以及 RAID 在 SSD 和分布式存储时代的角色变化。
RAID 是什么
RAID = Redundant Array of Independent Disks——把多块盘组合起来,用冗余换可靠性,用并行换性能。
四个核心思路:
graph TB S[条带化
Striping
多盘并行 → 提速] M[镜像
Mirroring
同样数据存两份 → 容错] P[奇偶校验
Parity
多盘共享一块校验 → 容错节省空间] C[组合
RAID 10/50/60]
任何 RAID 都是这几种基础操作的组合。
主流 RAID 级别
RAID 0(条带化)
1 | |
没有冗余,纯并行。
| 容量利用 | 性能 | 容错 |
|---|---|---|
| 100% | 读写 N 倍 | 0(任何一盘坏全部丢) |
应用:scratch、缓存、能容忍数据丢失的场景。
RAID 1(镜像)
1 | |
| 容量利用 | 性能 | 容错 |
|---|---|---|
| 50% | 读 2 倍,写 1 倍 | N-1 盘失效 |
应用:操作系统盘、关键日志、双盘冗余。
RAID 5(分布式奇偶)
1 | |
| 容量利用 | 性能 | 容错 |
|---|---|---|
| (N-1)/N | 读 ~N 倍,写 ~N/4 倍 | 任意 1 盘 |
最经典的 RAID 级别。1990s-2010s 被大量使用。关键问题:写惩罚——每次小写要做 4 次 IO(读旧数据 + 读旧 P + 写新数据 + 写新 P)。
RAID 6(双奇偶校验)
1 | |
| 容量利用 | 性能 | 容错 |
|---|---|---|
| (N-2)/N | 读 ~N 倍,写更慢 | 任意 2 盘 |
应用:大容量 HDD 阵列——SATA HDD 重建几小时,期间二次故障率不可忽略。
RAID 10(条带 + 镜像)
1 | |
| 容量利用 | 性能 | 容错 |
|---|---|---|
| 50% | 高(读写都快) | 每个 mirror 各 1 盘 |
性能最好的 RAID,但最贵——数据库主存最常用 RAID 10。
一表总结
| RAID | 最少盘 | 容量利用 | 容错 | 写性能 | 应用 |
|---|---|---|---|---|---|
| 0 | 2 | 100% | 0 | 极快 | scratch / 缓存 |
| 1 | 2 | 50% | N-1 | 中 | 系统 / 日志 |
| 5 | 3 | (N-1)/N | 1 | 慢(写惩罚) | 通用、容量盘 |
| 6 | 4 | (N-2)/N | 2 | 更慢 | 大容量阵列 |
| 10 | 4 | 50% | 每组 1 | 快 | 数据库 |
| 50 | 6 | (N-2)/N | 每组 1 | 中 | 大容量 + 性能 |
| 60 | 8 | (N-4)/N | 每组 2 | 中 | 超大容量 |
RAID 的工作模式:硬 RAID vs 软 RAID
硬 RAID(HBA / RAID Controller)
主板上 / PCIe 上一颗 RAID 卡,对 OS 透明:
graph TB CPU --- RAID[RAID 卡
SoC + DRAM + 电池/电容] RAID --- D1[Disk 1] RAID --- D2[Disk 2] RAID --- D3[Disk 3] RAID --- D4[Disk 4]
特点:
- OS 看到一个虚拟磁盘,不知道下面有多少盘
- 卡内自带计算、缓存、电池/电容
- BIOS / 厂商工具配置
- 启动盘可以做 RAID(OS 起来之前 RAID 已经工作)
主流厂家:
- Broadcom / LSI / Avago:MegaRAID 系列,市场占有率最高
- Microchip / Adaptec:SmartRAID 系列
- Areca:高端
- 服务器 OEM 自己包装:HPE Smart Array、Dell PERC、浪潮 Inspur
代表卡:MegaRAID 9670W-16i(PCIe 5.0、24 端口、SAS 4.0/SATA/NVMe 三协议)。
软 RAID
OS 内核做 RAID,不需要 RAID 卡:
- Linux mdadm(最经典)
- Linux LVM RAID(LVM 自带)
- ZFS RAID-Z(Solaris/FreeBSD/Linux)
- btrfs RAID(Linux 内核)
特点:
- 灵活(可跨控制器、跨设备类型组)
- 性能取决于 CPU
- 没有”看似透明”——OS 启动后才能用,启动盘需要 EFI 配合
- 没有 BBU 电池——关闭 write-back 才安全
1 | |
HBA 直通模式(IT mode)
很多 RAID 卡可以”刷成 IT mode”——关掉 RAID 功能,直接把盘暴露给 OS:
1 | |
ZFS、Ceph、HDFS 这种”分布式存储”或”软件 RAID”必须 IT 模式——它们要看到原始盘。
RAID 的写惩罚
1 | |
写放大 = 4。这就是 RAID 5 写性能差的根本原因。
优化:
- 写缓存(Write Cache):RAID 卡 DRAM 暂存写,攒成大块再下盘
- BBU/Flash 备份:write-back 模式必须有,否则掉电丢数据
- 整条带写(full stripe write):满条带不需要”读 + 改 + 写”
- TRIM passthrough:SSD RAID 必须,让 SSD 知道哪些数据没用
RAID 的几个隐藏问题
URE(Unrecoverable Read Error)
1 | |
大容量 HDD RAID 5 重建期间几乎必然遇到 URE——这就是为什么大盘必须 RAID 6。
企业 SSD UBER 1e-17,RAID 5 还可以接受,但 SAS 旋转盘已经不行。
Write Hole
RAID 5/6 写过程中突然掉电——可能 data 写了 parity 没写,下次重建时用错的 parity 算出错的 data:
应对:
- 硬 RAID 卡的 BBU/Flash 备份
- ZFS Copy-on-Write(不存在 write hole)
- 软 RAID 的 journal device
重建时间
1 | |
重建期间二次故障的窗口期太长——所以大容量 HDD 必须 RAID 6 或更冗余。
RAID 在 SSD 时代的尴尬
数据中心进入 SSD/NVMe 时代后,RAID 卡受到挑战:
| 痛点 | 说明 |
|---|---|
| NVMe 速度太快 | 单盘 14 GB/s,RAID 卡的 SoC 抗不住聚合带宽 |
| NVMe 队列太多 | 65535 队列 vs RAID 卡内部数百队列 |
| 延迟敏感 | RAID 卡多一跳,10 μs 延迟变 30 μs |
| AIC vs RAID 卡 | NVMe 直接进 PCIe Root,RAID 卡反而是中介 |
应对:
- 部分 RAID 卡走 PCIe 5.0 SoC + DDR4/5 缓存(如 Broadcom 9670W)勉强跟上 4-8 颗 NVMe
- 大量场景转向 OS 软件 RAID(mdadm、ZFS、Ceph)——CPU 多核 + DPDK/SPDK 比 RAID 卡更快
- VROC(Intel 虚拟 RAID)/ NVMe RAID:CPU 直接管 RAID,不用专卡
数据中心新方向:云原生场景倾向不做本地 RAID,依赖分布式存储多副本/EC。
SAN / NAS / DAS
存储部署方式三种:
graph TB
subgraph DAS["DAS(直连)"]
S1[Server] --- D1[内置盘]
end
subgraph SAN["SAN(块存储网络)"]
S2[Server] --- N1[FC/iSCSI/NVMe-oF
专用网络]
N1 --- AFA[全闪存阵列
EMC PowerMax
HPE Alletra
NetApp AFF]
end
subgraph NAS["NAS(文件存储)"]
S3[Server] --- N2[Ethernet]
N2 --- NFS[NFS/SMB Server
NetApp / 浪潮]
end
| DAS | SAN | NAS | |
|---|---|---|---|
| 协议 | SATA/SAS/NVMe | FC/iSCSI/FCoE/NVMe-oF | NFS/SMB |
| 暴露形式 | 块设备 | 块设备 | 文件 |
| 网络 | 服务器内部 | 专用 SAN | TCP/IP |
| 典型用途 | 服务器本地 | 数据库共享存储 | 文件共享 |
| 厂商 | OEM | EMC、NetApp、HPE、Hitachi | NetApp、QNAP |
全闪存阵列(AFA)
现代 SAN 主流是 AFA:
- 几十到几百颗 NVMe SSD
- 双控制器或多控制器
- 内置去重 / 压缩 / 快照
- 容量 100 TB - 数 PB
- 接口 FC 32G、NVMe-oF(RoCE / TCP)
代表产品:
- Dell EMC PowerMax / PowerStore
- Pure Storage FlashArray
- HPE Alletra
- NetApp AFF / EF
- 国产:浪潮 AS、华为 OceanStor Dorado、宏杉、得一微
待补充:作者公司在用的 SAN/NAS 厂商。
国内”超融合”和”云原生”对 SAN/NAS 的冲击
中国市场:
- 互联网公司(BAT/字节)几乎不用商业 SAN——用 Ceph、HDFS、对象存储、自研分布式
- 银行/保险/电信仍用商业 SAN(EMC、华为)
- 私有云和边缘场景:超融合(HCI) 起步——Nutanix、SmartX、深信服等,把存储和计算融合
一些命令实操
1 | |
选型实战
graph TD Q1[业务规模] Q1 -- "单机 / 小规模" --> A1[本地 RAID 1/10] Q1 -- "中等" --> A2[SAN AFA + 数据库] Q1 -- "大规模 / 云原生" --> A3[分布式存储
下一篇] Q2[盘类型] Q2 -- HDD --> B1[必须 RAID 6 / RAID-Z2] Q2 -- SSD --> B2[RAID 1/10 / 软 RAID] Q3[关键性?] Q3 -- 高 --> C1[硬 RAID + BBU + 双控] Q3 -- 一般 --> C2[软 RAID 即可]
小结
- RAID 几十年的核心思路只有三种:条带、镜像、奇偶
- 大容量 HDD 必须 RAID 6(URE 概率高),大容量 SSD 可以 RAID 5/10
- 硬 RAID 在 SSD 时代受冲击,软 RAID + 分布式存储正在抢市场
- SAN(块存储网络)= 块设备 + 专用网络,AFA 是现代主流
- NAS = 文件级共享,常用 NFS/SMB
- 互联网公司转向分布式存储,传统行业仍重 SAN
下一篇讲分布式存储入门——Ceph、HDFS、对象存储是怎么把上百节点的盘组成一个池的。