一块硬盘不够快、也不够稳,多块“组团“怎么就把难题解了?——RAID 的冗余算术,一次讲透
一块硬盘不够快、也不够稳多块组团怎么就把难题解了——RAID 的冗余算术一次讲透几年前有个朋友丢了移动硬盘里面是他拍了五年的照片一张都没留。他问我有没有办法恢复我只能摇头——单块机械硬盘一旦坏道、摔了、进水数据基本就交代了。后来我了解到服务器里的数据从来不会只放一块盘上。为什么答案就藏在一个词里RAID。你可能天天用着它却从没认真想过它到底怎么运作。这篇文章我把它从头拆到脚。一、先搞清楚单块盘到底输在哪机械硬盘HDD有两个天生短板。第一是慢。磁头要摆到对应的柱面、等盘片转到对的扇区这一趟寻道 旋转延迟下来是毫秒级。对比 CPU 的纳秒级运算硬盘慢了几十万倍——它是整个计算机里最拖后腿的部件之一。第二是脆。盘片是物理旋转的磁头是悬浮的稍有震动、发热、老化随时可能出坏道。数据说没就没。两个短板的解法其实是同一个思路一块不够就多来几块让它们协同工作。RAID 的全称叫Redundant Array of Independent Disks直译就是独立磁盘的冗余阵列。把好几块物理盘绑成一个逻辑盘对外看起来就是一块大硬盘。但协同有很多种玩法不同的玩法换来的是不同的东西——有的换速度有的换可靠有的两者都要点。下面逐个拆。二、RAID 0拆开并行速度翻倍但一颗子弹就完蛋RAID 0 的思路叫条带化striping把数据切成一片片固定大小的条带轮流写到不同的盘上。比如你要写 1MB 的数据有 4 块盘那就切成 4 份每块盘同时写 256KB。原本 1MB 要一块盘写 4 个时间单位现在 4 块盘并行1 个时间单位就写完了。理论上性能翻 4 倍读也一样。数据块: D0 D1 D2 D3 D4 D5 D6 D7 ... │ │ │ │ │ │ │ │ 磁盘0: D0 D4 ... 磁盘1: D1 D5 ... 磁盘2: D2 D6 ... 磁盘3: D3 D7 ...代价是什么零容错。4 块盘里任何一块挂掉数据就不完整了——因为你的每一份数据都被拆散分布在所有盘上。而且坏的概率反而更高了4 块盘的总故障率是 1 块的 4 倍。所以 RAID 0 的定位很明确要极致的速度能接受数据丢失的风险。用在那些数据可以随时重建、丢了也无所谓的场景比如视频剪辑的临时缓存、数据库的热数据副本。RAID 0 里的0其实不是冗余等级而是一个带点玩笑的说法——冗余是 0故障率却翻倍。三、RAID 1镜像容量砍半换来的双保险RAID 1 的思路是镜像mirroring每一份数据都一模一样地写到两块盘上。磁盘0: D0 D1 D2 D3 ... 磁盘1: D0 D1 D2 D3 ... 完全相同的副本好处立竿见影任何一块盘挂了另一块还在数据分毫不少。而且读性能也能翻倍——同一份数据存在两处可以同时从两块盘读不同的部分。坏处也直白花了两块盘的价钱和容量只得到一块盘的可用空间。容量利用率只有 50%。RAID 1 适合那种数据比命还值钱的场景核心数据库、财务系统、系统盘。它是最简单、也最直观的冗余方式。四、RAID 5奇偶校验用一块盘的代价换扛一块盘坏RAID 0 快但脆RAID 1 稳但贵。能不能折中RAID 5 给出了经典的答案。它的核心武器是奇偶校验parity而奇偶校验的数学基础是一个你早就认识的东西——异或运算XOR。先看异或的性质0 ⊕ 0 0 0 ⊕ 1 1 1 ⊕ 0 1 1 ⊕ 1 0异或有个绝妙的特性如果 A ⊕ B ⊕ C P那么丢掉任意一个都能用剩下的三个把它算回来。比如丢了 C那么 C A ⊕ B ⊕ P。这就是 RAID 5 的底层逻辑。假设有 4 块盘其中 3 块装数据1 块的对应位置装校验值磁盘0: D0 D3 P2 ... 这里是 P2 校验块 磁盘1: D1 P1 D5 ... 磁盘2: D2 D4 D6 ... 磁盘3: P0 D5 D7 ... 校验块轮流分散在不同盘上注意校验块 P 不是固定写在同一块盘而是轮流分散到每一块盘上。这样避免了校验盘成为读写热点的瓶颈。现在算一笔账。4 块盘1 块专门轮流存校验可用容量是3/4即 (n-1)/n。相比 RAID 1 的 50%同样的 4 块盘RAID 5 能多出整整一块盘的可用空间。更妙的是容错能力任意一块盘坏了系统还能继续工作降级运行换上新盘后用剩余的盘做异或把丢失的数据原地重建出来。我们举个具体数字感受一下这种魔法。假设三份数据 D011000001、D110100111、D201101100那校验块是P D0 ⊕ D1 ⊕ D2 11000001 ⊕ 10100111 ⊕ 01101100 00001010现在假设 D1 那块盘烧了。恢复它只需D1 D0 ⊕ D2 ⊕ P 11000001 ⊕ 01101100 ⊕ 00001010 10100111 ← 正是原来丢掉的数据一块盘坏了数据一块都不少地回来了。这不是运气是异或的确定性。代价是写性能比 RAID 0 差一些——每次写数据都要额外算一次校验、多写一块盘有读改写的开销。但换来的是扛一块盘坏的能力性价比极高是中大型企业最常用的 RAID 级别。五、RAID 6 与 RAID 10往两个方向继续加码RAID 5 能扛一块盘坏但有个隐患降级运行期间已经坏了一块、正在重建另一块时如果又坏一块数据就真没了。磁盘容量越来越大重建一块 16TB 的盘要十几个小时这段裸奔时间里风险并不低。于是有了 RAID 6用两个独立的校验值通常基于不同的算法比如 Reed-Solomon 编码能同时容忍两块盘故障。代价是可用容量变成 (n-2)/n。而 RAID 10RAID 10走的是另一条路先做镜像RAID 1再做条带化RAID 0。既拿到条带化的性能又拿到镜像的可靠但成本也最贵——容量利用率 50%至少需要 4 块盘。RAID 0 条带化上层 │ ┌───────┴───────┐ RAID 1 RAID 1 下层镜像对 磁盘A 磁盘B 磁盘C 磁盘DRAID 10 的性能和可靠性都极其出色属于不差钱的企业的选择尤其适合数据库这种对随机读写性能要求高的负载。六、一张表把这些级别摆平级别最少盘数容量利用率容错能力读性能写性能一句话定位RAID 02100%无高最高只要快数据能重建RAID 1250%1 块较高一般双保险简单直观RAID 53(n-1)/n1 块高中等有校验开销性价比之王RAID 64(n-2)/n2 块高较低双校验大容量时代的保守选择RAID 10450%每对可坏 1 块高高性能与可靠兼得但费盘看到这张表你可能意识到一件事RAID 从来不是越高级越好而是一道用多少钱、买多少性能、买多少安心的算术题。选哪一级取决于你更怕慢还是更怕丢。七、408 里怎么考以及它跟校验码的亲戚关系RAID 虽然在 408 操作系统文件管理 / 外存管理里不是每年必考的大题但它和两样东西强相关命题人特别爱把它们串起来考。第一是组成原理里的奇偶校验 / 海明码。RAID 5 用的是奇偶校验思想本质上和计组里奇偶校验码能检错、海明码能纠错是同一套冗余换可靠的哲学。我之前写过一篇讲海明码的文章核心就一句话检错纠错的本质是往数据里掺进可控的冗余再用这套冗余去算回丢掉的信息。RAID 的异或校验是这套思想在块设备层面的放大版。第二是磁盘读写与 I/O 性能。为什么 RAID 0 能提速因为它把顺序 I/O 变成了并行 I/O。这个点会和磁盘调度算法“块大小”寻道时间这些 OS 存储知识点绑在一起出选择题。所以备考时别把 RAID 当成孤立名词背。它一头连着计组的校验码一头连着 OS 的磁盘 I/O是典型的跨科目知识。复习的时候把这三条线串起来比各背各的效率高得多。这类散落在不同章节、需要串线的知识点正是容易学了就忘、考了就不会的地方。建议把 RAID、校验码、磁盘调度收进 CoLearnyantucs.com的 AI 错题集里考前专门过一次概念上卡壳直接丢给 AI 答疑问RAID 5 为什么坏一块盘还能恢复数据它会从异或的角度给你推一遍。写在最后RAID 这个东西说白了就是把一个朴素的道理落到了工程里再结实的单点也架不住时间与其押注一块盘永远不坏不如让多块盘互相兜底。冗余听起来是浪费——多买盘、少容量、多算校验。可正是这点浪费换来了数据在意外面前的那份从容。回到开头那个丢了五年照片的朋友。如果他的照片放在一个 RAID 1 或 RAID 5 上故事的结局会完全不一样。技术不负责创造奇迹但它能把万一的概率压到你安心睡觉的程度。想系统补齐这些底层原理的硬知识推荐 B站【408实验室】的《数据结构》与操作系统相关课程跟着把存储、I/O 这条线从原理到计算练扎实比零散刷题管用得多。

相关新闻

ping 一下,为什么就能知道“通不通“?——ICMP 这个藏在水面下的“网络修理工“

ping 一下,为什么就能知道“通不通“?——ICMP 这个藏在水面下的“网络修理工“

ping 一下,为什么就能知道"通不通"?——ICMP 这个藏在水面下的"网络修理工" 你肯定敲过 ping。网络连不上,第一反应就是 ping 一下。这个命令几乎成了"网络好不好"的代名词。 可你有没有想过一件事——ping …

2026/10/13 3:25:39 阅读更多 →
小白也能轻松玩转龙虾:虾壳云一键部署 OpenClaw v2.7.9 智能助手,TaoToken 统一 Key 接入实操

小白也能轻松玩转龙虾:虾壳云一键部署 OpenClaw v2.7.9 智能助手,TaoToken 统一 Key 接入实操

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

2026/10/12 10:21:15 阅读更多 →
字符串处理实战:拼接、截取、编码转换与性能优化全解析

字符串处理实战:拼接、截取、编码转换与性能优化全解析

1. 字符串处理的核心价值与场景拆解字符串这东西,看起来简单,真到用的时候才发现坑多得很。我做了十多年开发,几乎每个项目都绕不开字符串处理,从最基础的拼接、截取,到复杂的正则匹配、编码转换、性能优化&#xff0c…

2026/10/13 23:04:53 阅读更多 →

最新新闻

计及需求侧响应的配电网供电能力综合评估Matlab实现

计及需求侧响应的配电网供电能力综合评估Matlab实现

供电能力评估这个方向,做配电网规划的人都不陌生。传统做法很简单:把负荷当成一个给定的“硬条件”,算主变、算线路、算N-1通过率,能带多少就是多少。但问题是,现在的负荷已经不再“硬”了——分时电价、可中断负荷、车…

2026/10/14 6:02:23 阅读更多 →
AI协作者实战指南:从提示词工程师到流程编排师

AI协作者实战指南:从提示词工程师到流程编排师

1. 这不是“自动印钞机”,而是AI时代的职业重构现场“自动赚钱时代来了?”——这个标题一出来,朋友圈就炸了。有人截图转发配文“终于等到这一天”,也有人冷笑评论“又一个割韭菜的标题党”。但真正让我坐下来认真拆解它的&#x…

2026/10/14 6:02:23 阅读更多 →
ZeroTermux 内置命令手册:tcpreplay 报文重放与双网卡网络测试实战

ZeroTermux 内置命令手册:tcpreplay 报文重放与双网卡网络测试实战

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 导读 tcpreplay 是一款基于 PCAP 文件的报文重放工具,它能把用 Wireshark(及其前身 Ethereal)、…

2026/10/14 6:02:23 阅读更多 →
AnyPS5:一套对任意PS5都适用的折腾与优化方案

AnyPS5:一套对任意PS5都适用的折腾与优化方案

看到“AnyPS5”这个名字,估计不少人会误会:是破解方案?是某个新机型?其实都不是。我更愿意把它理解为一套“对任意一台PS5都适用的折腾与优化方案”。这些年帮朋友处理过不少台PS5主机,有的是刚拆封的新机,…

2026/10/14 6:02:23 阅读更多 →
轻资产酒店集团财报解读:现金流、分红与CFO变动背后的逻辑

轻资产酒店集团财报解读:现金流、分红与CFO变动背后的逻辑

最近酒店行业的头条,大概率是这家头部连锁酒店集团的年度成绩单:营收253亿,净利51亿,同时宣布派发约4亿美元股息,同一时间,任职多年的CFO卸任。几个消息堆在一起,很多人第一反应是"业绩不错…

2026/10/14 6:02:23 阅读更多 →
高校农业病虫害智能监测系统设计与实现

高校农业病虫害智能监测系统设计与实现

1. 项目概述农业病虫害监测与预测一直是农业生产中的关键环节。传统的人工巡查方式效率低下且容易遗漏,而基于大数据的智能监测系统正在改变这一现状。这个项目构建了一个面向高校场景的农业病虫害监测与趋势预测系统,整合了数据采集、存储、分析和可视化…

2026/10/14 6:01:22 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →