news 2026/10/27 9:53:50

硬件老师傅之RAID

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
硬件老师傅之RAID

RAID 0 = 单纯追求速度,零容错;RIAD 1 = 单纯追求安全,零提速空间。两者是 RAID 家族里最基础、最极端的两个对立面,所有其他 RAID 级别(5/6/10)都是在它们基础上做折中。


一、RAID 0:条带化(Striping)

工作原理

把数据切成条带,并行写到多块硬盘上。

数据 [A B C D E F] ↓ 盘1: [A] [C] [E] ← 同时写 盘2: [B] [D] [F] ← 同时写

核心特征

维度

RAID 0

最少盘数

2 块​

容量利用率

100%(n × 单盘容量)

容错能力

0​

读性能

极高(n 倍提升)

写性能

极高(n 倍提升)

致命缺陷

任意一块盘损坏 = 整个阵列数据全部丢失。因为每块盘只存了数据的一部分,缺任何一块都拼不出完整数据。

⚠️ 一块盘坏,全盘报废——这是 RAID 0 的必然结果。


二、RAID 1:镜像(Mirroring)

工作原理

把数据同时写入两块硬盘,两块盘内容完全一致。

数据 [A B C D] ↓ 盘1: [A B C D] ← 完整副本 盘2: [A B C D] ← 完整副本

核心特征

维度

RAID 1

最少盘数

2 块​

容量利用率

50%(n/2 × 单盘容量)

容错能力

✅ 1 块盘坏​

读性能

高(可并行读不同块)

写性能

中等(要写两次)

典型场景

系统盘、数据库redo log、关键业务数据

核心优势

  • 容错能力强:一块盘彻底损坏,另一块盘仍然完整可用

  • 恢复简单:换上新盘,重新同步即可,不需要复杂的重建算法

  • 读性能好:可以从两块盘同时读不同数据

权衡

  • 写性能略有损失:同样的数据要写两次

  • 成本高:50% 的容量利用率意味着同样的存储量要多花一倍钱


事实:某些场景是合理的。比如Redis 缓存节点、Kubernetes 的 ephemeral 存储、CI/CD 构建节点——这些场景下数据本身就是可丢失的,反而需要 RAID 0 的高吞吐。

RAID 0 是用可靠性换性能,RAID 1 是用容量换可靠性。​

真正生产环境里,两者单独使用都有明显短板——所以才有了 RAID 10(速度+冗余兼得)和 RAID 5/6(容量+单/双盘容错)来填补空白。

这个说法大体方向是对的,但有例外(尤其是 NVMe 普及后)。准确说法是:企业级服务器绝大多数硬盘都通过 RAID 卡或 HBA 卡接入,而普通 PC 的硬盘直接连主板——中间差了这一层,正是服务器和普通 PC 在存储架构上的根本分野。

一、服务器为什么非要多这一层

普通 PC 里,操作系统直接指挥硬盘读写;服务器里,操作系统看到的"硬盘"其实是一块 RAID 卡虚拟出来的逻辑盘,物理硬盘并不直接暴露给 OS。

RAID 卡本质上是一块插在主板 PCIe 插槽上的微型存储计算机,自带 CPU(ASIC/ARM)、DDR 缓存、固件、电池/电容。它承担四件事:

功能

对业务的意义

数据冗余​

RAID 1/5/6/10 允许 1~2 块盘同时坏而不丢数据

性能叠加​

RAID 0/10 通过并行读写把 IOPS 与带宽线性放大

缓存加速 + 断电保护​

写数据先进缓存再刷盘,BBU 电池能在断电后维持 24-72 小时保命

简化管理​

OS 只看到"一块超级硬盘",不用关心背后有几块物理盘

💡 关键价值:软 RAID 依赖主机 CPU 做 XOR 校验,RAID 5/6 高负载下可能吃掉 30%+ CPU;硬件 RAID 卡独立运算,CPU 占用几乎为零。


二、服务器里的真实连接链路

一台典型 2U 服务器的存储链路是这样的:

[硬盘] → [背板 Backplane] → [Mini-SAS 线缆] → [RAID 卡] → [主板 PCIe 插槽] → [CPU] ↑ ↑ ↑ 固定+供电 SAS 信号传输 RAID 运算+缓存

每一步的作用:

  1. 硬盘 → 背板:硬盘插在前面板的金属托架上,针脚嵌入背板。背板负责统一供电和信号分配到对应端口

  2. 背板 → RAID 卡:一根 Mini-SAS 线缆(SFF-8087 或 SFF-8643)把背板和 RAID 卡连起来,一块 8 端口 RAID 卡能带 8 块盘直连,挂 expander 扩展芯片能扩展到上百块

  3. RAID 卡 → 主板:RAID 卡插在主板的 PCIe 插槽上,通过 PCIe 总线与 CPU 交换数据

  4. → CPU:RAID 卡做完 RAID 运算后,通过 PCIe 总线把数据传给 CPU 处理

HPE 官方安装文档里写的就是这条路径:"用随服务器提供的内部 SAS 线缆,把控制器的内部连接器连接到热插拔硬盘笼"——本质就是上述链路。


三、普通 PC 的连接方式(不重要)

普通 PC 没有背板、没有 RAID 卡、没有 SAS 线缆,架构简化成这样:

[硬盘] → [SATA 数据线] → [主板 SATA 接口] → [PCH 芯片组] → [CPU] ↑ ↑ 15针电源线 主板原生直连

SATA 接口直接做在主板的 PCH(平台控制器中枢,俗称南桥)上,每块硬盘独占一条 SATA 通道,物理上不存在主从仲裁。Windows/Linux 直接通过 AHCI 协议指挥硬盘,不做任何硬件层面的 RAID 虚拟化。

⚠️ 普通 PC 也能做 RAID,但那是软 RAID(Windows 存储空间、Linux mdadm),依赖 CPU 算校验,性能和可靠性跟硬件 RAID 卡不在一个量级。


四、一个踩坑高发点:SAS 与 SATA 的不对称兼容性

这是服务器硬盘为什么大多要走 RAID 卡的另一层原因——普通 PC 主板根本认不出它:

方向

结果

SAS 控制器(RAID 卡)→ 插 SATA 硬盘

✅向下兼容,能识别

SATA 控制器(普通主板)→ 插 SAS 硬盘

❌反向不兼容,认不出

原因是 SAS 接口比 SATA 多出 7 个针脚,用于支持双端口冗余和全双工通信,普通 SATA 主板既没这 7 根针也没 SAS 协议栈,强行插进去只会"隐身"。

所以服务器硬盘(尤其是 SAS 接口的)没法直接插普通 PC 用——这也是为什么服务器一定配 RAID 卡/HBA 卡的原因之一。


五、NVMe 时代这条链路的演变

随着 NVMe SSD 普及,服务器的连接架构正在分化:

  • 传统 SAS/SATA SSD​ → 仍走 "SSD → 背板 → SAS 线缆 → RAID 卡 → PCIe → CPU"

  • U.2/U.3 NVMe SSD​ → 可以走 "SSD → 背板 → PCIe 直连 CPU",每个盘独占 x4 PCIe 通道,RAID 卡的角色被弱化

  • M.2 NVMe(系统盘)​ → 直接插主板 M.2 插槽,连到 PCH

我这里会同时提到RAID 模式、HBA 直通模式、Mixed 混合模式——NVMe 时代越来越多场景倾向于把盘直通给 OS(ZFS/Ceph/vSAN 自己管冗余),RAID 卡反而成了累赘。

服务器硬盘"都接在 RAID 卡上"这句话,折射的是企业级存储对冗余、性能、可管理性的硬性要求——普通 PC 没有这些要求,所以架构可以简单粗暴地直连主板。反过来也成立:如果你给普通 PC 加上硬件 RAID 卡和背板,它就具备了服务器级别的存储能力。

RAID 是把多块磁盘组合成一个逻辑存储系统,以实现性能提升、容量扩展或容错。不同 RAID 的核心区别在于:是否做条带化、镜像、校验,以及允许坏几块盘。

常见 RAID 对比

RAID级别原理最少磁盘可用容量可坏盘数性能特点
RAID 0条带化,无冗余2所有磁盘总容量0读写快,无容错
RAID 1镜像2约一半1可靠,容量利用率低
RAID 5条带化 + 单校验3(磁盘数-1) × 单盘容量1容量利用率较好,写入有校验开销
RAID 6条带化 + 双校验4(磁盘数-2) × 单盘容量2容错更强,写入和重建更慢
RAID 10RAID 1 + RAID 04约一半通常可坏多盘,但不能坏同一镜像组的两盘性能和可靠性都较好
RAID 50多组 RAID 5 再做 RAID 06左右多组 RAID 5 容量之和每组可坏1盘比 RAID 5 更适合大规模
RAID 60多组 RAID 6 再做 RAID 08左右多组 RAID 6 容量之和每组可坏2盘容错强,容量和性能损耗较大

1. RAID 0:只追求速度

数据 A → 磁盘1、磁盘2、磁盘3 分片写入

优点:

  • 读写性能高;
  • 容量利用率 100%;
  • 成本低。

缺点:

  • 没有任何冗余;
  • 坏一块盘,整个阵列数据通常都不可用。

适合:

  • 临时数据;
  • 缓存;
  • 可重建的数据;
  • 对可靠性不敏感的场景。

不适合:

  • 操作系统;
  • 数据库;
  • 文件服务器;
  • 重要业务数据。

2. RAID 1:镜像,简单可靠

磁盘1:A B C 磁盘2:A B C

两块盘保存完全相同的数据。

优点:

  • 一块盘损坏,系统仍可运行;
  • 恢复和更换简单;
  • 读取性能可能提升。

缺点:

  • 可用容量只有约 50%;
  • 写入性能通常不如 RAID 0;
  • 只能有效容忍镜像中的一块盘损坏。

适合:

  • 系统盘;
  • 小型服务器;
  • 数据量不大的关键服务。

3. RAID 5:单盘容错

RAID 5 使用数据条带化,并保存校验信息。

例如三块盘:

盘1:数据 盘2:数据 盘3:校验

校验信息会分布在不同磁盘上,不是固定放在某一块盘。

优点:

  • 一块盘损坏仍可运行;
  • 容量利用率比 RAID 1 高;
  • 读取性能较好。

缺点:

  • 写入需要计算校验;
  • 大容量磁盘重建时间长;
  • 重建期间性能下降;
  • 重建过程中如果再坏一块盘,阵列可能失效;
  • 不适合现代大容量磁盘上的高风险关键数据。

容量示例:

4块 4TB 磁盘 RAID 5 可用容量约:12TB

4. RAID 6:双盘容错

RAID 6 相当于保存两组独立校验信息。

优点:

  • 同时坏两块盘,通常仍可运行;
  • 比 RAID 5 更适合大容量磁盘和大规模阵列;
  • 重建期间安全性更高。

缺点:

  • 至少损失两块盘的容量;
  • 写入性能比 RAID 5 更低;
  • 重建仍然可能耗时较长。

容量示例:

6块 4TB 磁盘 RAID 6 可用容量约:16TB

5. RAID 10:性能和可靠性的平衡

RAID 10 是:

先做 RAID 1 镜像 再做 RAID 0 条带

四块盘可以理解为:

镜像组1:盘1 + 盘2 镜像组2:盘3 + 盘4 两个镜像组再做条带

优点:

  • 随机读写性能好;
  • 延迟低;
  • 重建速度通常比 RAID 5/6 快;
  • 适合高 I/O 业务;
  • 一般比 RAID 5 更适合数据库。

缺点:

  • 可用容量约 50%;
  • 如果同一镜像组的两块盘都损坏,阵列会失效。

容量示例:

4块 4TB 磁盘 RAID 10 可用容量约:8TB

RAID 5、RAID 6 和 RAID 10 怎么选

选 RAID 5

适合:

  • 磁盘数量较少;
  • 读多写少;
  • 对容量利用率较看重;
  • 磁盘容量不太大;
  • 有可靠备份。

选 RAID 6

适合:

  • 大容量磁盘;
  • 文件服务器;
  • 备份仓库;
  • 存储容量优先;
  • 需要同时容忍两块盘故障。

选 RAID 10

适合:

  • 数据库;
  • 虚拟化平台;
  • 高频随机读写;
  • 交易系统;
  • 对性能和低延迟要求高的业务。

通常可以简单记忆:

性能优先:RAID 10 容量和双盘容错优先:RAID 6 容量利用率和一般业务:RAID 5 绝不能容忍数据丢失但容量不大:RAID 1

热备盘是什么

热备盘不是 RAID 级别,而是备用磁盘。

当阵列中的磁盘损坏时,控制器可以自动使用热备盘进行重建。

类型包括:

  • 全局热备:为多个阵列提供备用;
  • 专用热备:只服务某一个阵列;
  • 热插拔盘:可以在线更换,但不等于热备盘。

例如:

8块盘组成 RAID 6 第9块盘作为热备盘

坏盘后,热备盘自动加入重建。


硬 RAID 和软 RAID

硬件 RAID

由 RAID 控制器完成阵列计算。

优点:

  • 对操作系统透明;
  • 通常性能稳定;
  • 支持缓存和掉电保护;
  • 企业服务器常见。

缺点:

  • 依赖 RAID 控制器;
  • 控制器故障可能影响阵列识别;
  • 更换控制器时需要兼容型号或导入配置。

软件 RAID

由操作系统完成。

Linux 常见:

mdadm LVM RAID ZFS Btrfs RAID

优点:

  • 成本低;
  • 灵活;
  • 不依赖特定 RAID 卡;
  • 阵列迁移方便。

缺点:

  • 占用系统 CPU 和内存;
  • 配置、监控和恢复需要运维能力;
  • 不同软件方案的可靠性和功能差异较大。

RAID 不等于备份

一句话总结

**RAID 速记短文**

RAID 就是把多块盘组合成一个逻辑存储系统,核心看三件事:**条带、镜像、校验**。记住口诀:**0 快、1 镜像、5 单校验、6 双校验、10 先镜像再条带;50/60 是分组后再条带。**

| RAID | 最小硬盘数 | 一句话记忆 | 可坏盘 |
|---|---:|---|---|
| RAID 0 | **2** | 只条带、无冗余,最快但坏一块全丢 | 0 |
| RAID 1 | **2** | 镜像复制,简单可靠但容量约一半 | 1 |
| RAID 5 | **3** | 条带+单校验,容量利用率较好 | 1 |
| RAID 6 | **4** | 条带+双校验,大容量存储更稳 | 2 |
| RAID 10 | **4** | 先镜像再条带,性能与可靠性平衡 | 同镜像组不能双坏 |
| RAID 50 | **6** | 多组 RAID 5 再条带 | 每组可坏 1 块 |
| RAID 60 | **8** | 多组 RAID 6 再条带 | 每组可坏 2 块 |

**容量速记**:RAID 0 全用;RAID 1、RAID 10 约一半;RAID 5 是 `(盘数-1)×单盘`;RAID 6 是 `(盘数-2)×单盘`;RAID 50/60 按各组容量相加。

**选型速记**:要性能选 **RAID 10**;要容量和双盘容错选 **RAID 6**;一般容量利用率选 **RAID 5**;小规模关键数据选 **RAID 1**;RAID 0 只适合临时、可重建数据。

**最后两句最重要**:热备盘是坏盘后自动顶上的备用盘,不是 RAID 级别;**RAID 提高可用性,不等于备份**,生产环境要 **RAID + 定期备份 + 异地/离线副本 + 恢复演练**。

  • RAID 0:快,但坏一块全丢;
  • RAID 1:镜像,简单可靠但浪费容量;
  • RAID 5:坏一块,容量利用率较好;
  • RAID 6:坏两块,适合大容量存储;
  • RAID 10:性能好,适合数据库和虚拟化;
  • 热备盘:坏盘后自动顶上;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 9:51:17

Impeccable怎么用?从词根到搭配彻底掌握“无可挑剔”

前阵子有朋友问我,准备雅思写作的时候想夸人“无可挑剔”,到底用哪个词最稳。我脑子里第一个蹦出来的就是 impeccable。这个词在国内英语学习圈里出镜率不算低,但真正能把读音、搭配、语感用对的人并不多。很多人知道它是“完美”的近义词&am…

作者头像 李华
网站建设 2026/10/27 9:50:37

2007-2024年 省级-知识产权保护指数IPP(知识产权发展状况报告)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 9:50:36

2010-2025年 长期护理保险制度试点DID(xlsx)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 9:49:31

2008-2024年 全国淘宝村DID数据(xlsx+dta)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 9:49:15

2008-2023年 中国证券监督管理委员会行政复议数据(xlsx)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 9:49:05

2000-2023年 行业财务指标数据(dta)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华