资讯动态

RAID级别全解析:从RAID0到RAID10,服务器磁盘阵列选型与配置指南

发布时间:2026/9/13 3:08:54 来源:尧图企业网站定制
1. RAID是什么为什么搞服务器的都绕不开它1.1 从一个真实的装机现场说起前两天帮朋友调试一台新到的服务器开机自检一过我就直接按了启动快捷键进RAID卡配置界面。站在旁边的兄弟有点懵问了一句这玩意不是装完系统再弄吗这其实是很多刚接触服务器运维的人最容易踩的坑。RAID独立磁盘冗余阵列Redundant Array of Independent Disks是服务器在安装操作系统之前就要规划好的底层存储方案不是系统装完之后的软件设置。你可以把它理解成给多块物理硬盘组队的过程——每块盘负责一部分工作有的管速度有的管备份有的管校验。组队方式不同最终表现出来的性能、容量和数据安全性也完全不同。我见过太多因为RAID没规划好而出事的情况有人图省事把四块盘全组成了RAID0结果一块盘挂了整个服务器的数据全部归零哭都没地方哭也有人明明有八块盘却保守地两两组成RAID1空间利用率直接砍半性能和容量都亏了。所以搞清楚每种RAID级别到底在干什么是搞服务器运维的基本功。这篇文章我把RAID0、RAID1、RAID5、RAID6、RAID10、RAID01以及软RAID和硬RAID全部掰开揉碎讲一遍后面还会附上我实际配置服务器的完整流程和踩坑记录争取让看完的朋友能直接上手操作。1.2 RAID到底做了什么三个核心动作RAID的核心动作说穿了就三件事条带化、镜像、校验。条带化是把数据切成小块分别写到不同的硬盘上。这个过程类似你把一本书拆成十几个章节分给十几个人同时翻译总速度自然快了很多。RAID0就是纯条带化把所有盘绑在一起提速但没有任何额外保护。镜像则是把同一份数据同时写到两块盘上。一块盘坏了另一块还有完整副本相当于给数据上了个双保险。RAID1的基础就是镜像。校验是生成额外的校验信息当某块盘损坏时系统可以依靠其他盘上的数据加校验信息用算法反推出丢失的数据从而实现数据恢复。理解这三个动作后面再看RAID级别就轻松了。因为RAID0、1、5、6这些级别本质上就是这三个动作的不同组合和侧重。1.3 必须搞清楚的几个底层概念条带深度Stripe Depth每次写入单个磁盘的数据块大小常见的有64KB、128KB、256KB。条带深度设置得小适合大量小文件随机读写设置得大适合大文件顺序读写。默认值通常是128KB或256KB。热备盘Hot Spare阵列里专门留一块空闲硬盘平时不参与读写一旦有成员盘损坏它自动顶替上去进行重建减少了人工干预的时间。重建Rebuild阵列中某块盘出问题后系统根据其他盘的数据和校验信息把缺失的数据重新计算并写入新盘的过程。这个过程会占用大量IO资源耗时比较长期间阵列性能会明显下降。写惩罚Write Penalty带校验的RAID级别RAID5、RAID6在写入数据时需要额外的读改写操作造成实际写入效率低于理论值。RAID5的写惩罚是4次IORAID6是6次IO这也是它们在随机写入场景下性能不如RAID10的原因之一。搞清楚这些概念之后你再看下面各RAID级别的比较思路会清晰非常多。2. RAID级别逐一拆解RAID0、1、5、6、10、01怎么选2.1 RAID0只追求速度数据裸奔RAID0是最简单也是最疯狂的级别它把两块或更多硬盘组合成一个更大的逻辑卷所有数据条带化分布到每块盘上。优点读写性能最强总带宽基本等于所有磁盘带宽之和顺序读写提升非常明显。空间利用率100%N块盘就能用N块盘的总容量。缺点完全没有冗余能力。任意一块盘损坏整个阵列的数据全部丢失。可靠性等于所有磁盘可靠性的乘积盘越多整体可靠性越低。8块盘的RAID0年故障率差不多是单盘故障率的8倍。适用场景临时性的性能测试环境、游戏缓存服务器、对数据不敏感且追求极致速度的场景。生产环境我强烈不建议用RAID0尤其是数据库、代码仓库这类地方。2.2 RAID1双倍保险代价是容量减半RAID1至少需要两块盘数据同时写入两块盘形成一对孪生兄弟。两块盘的内容完全一致任何一块都能独立支撑读取。优点写入性能略低于单盘因为要写两份但读取性能可以提升因为两块盘可以同时响应不同的读请求。容错能力强允许一块盘完全损坏而不丢数据换上新的空盘后系统自动重建。技术简单重建速度快没有校验计算的开销。缺点空间利用率只有50%。比如两块4TB的盘做RAID1实际可用还是4TB而不是8TB。扩容不方便升级容量时经常要成对更换硬盘。适用场景操作系统盘、关键配置目录、中小型数据库日志文件等。很多服务器默认把系统盘做成两个SSD的RAID1就是这个道理——系统盘损坏顶多影响系统启动但重建非常方便而且容量需求不大浪费不了多少空间。2.3 RAID5性价比之王RAID5至少需要三块盘既做条带化又产生一份分布式校验信息。校验信息不是集中在某一块盘上而是轮流分散在各块盘中这样没有哪块盘会变成专门的校验盘成为瓶颈。优点空间利用率是N-1/N三块4TB盘实际可用约8TB比RAID1节省了一半空间成本。读取性能接近RAID0的条带化效果。允许一块盘损坏数据不丢换上热备盘或新盘后自动重建。缺点写入性能受制于校验计算随机写入场景下存在写惩罚性能比RAID10弱。只允许坏一块盘。如果重建过程中又有第二块盘损坏数据会全丢。尤其要注意大容量盘的RAID5重建时间很长期间风险较高。控制器CPU会额外消耗在XOR校验计算上低端阵列卡做RAID5会明显感觉性能受限。适用场景文件服务器、视频存储、大部分中小型业务系统。RAID5是应用最广泛的级别综合了性能、容量和安全性。2.4 RAID6允许坏两块盘RAID6可以看成是RAID5的升级版至少需要四块盘产生了双重分布式校验。即使同时损坏两块盘数据依然安全。优点容错能力强允许同时坏两块盘。在大容量硬盘时代单盘8TB、12TB甚至更高RAID6比RAID5安全得多。因为大容量盘重建时间动辄十几个小时甚至几天期间再坏一块的概率不可忽视。缺点空间利用率只有N-2/N四块4TB盘实际可用只有8TB容量亏了一半。写入性能进一步下降写惩罚达到6次IO随机写入场景下性能明显偏低。控制器开销比RAID5更大。适用场景大容量存储服务器、备份服务器、视频监控存储、NAS系统。我做过一个20盘位的存储服务器单盘16TB最后选了RAID6加两块热备盘虽然可用容量少了些但求个安心。2.5 RAID10与RAID01这对“双胞胎”千万别搞混RAID10和RAID01表面看都是镜像条带的组合但顺序不同安全性差别很大。RAID10先镜像再条带把N块盘先两两组成RAID1镜像对再把多组镜像对用RAID0条带化组合起来。至少需要4块盘。RAID01先条带再镜像把N块盘先整体组成RAID0条带集再把两个条带集做镜像。至少需要4块盘。为什么我强烈推荐RAID10而不是RAID01看故障模型RAID10中假设4块盘A、B、C、DA和B做镜像C和D做镜像。如果A盘坏了B盘还顶着只要C和D这组没问题整体还能工作。最坏情况下只要不是同一镜像组内的两块盘同时坏阵列都能存活。比如坏A和坏C各坏一个镜像组的一块阵列仍能正常工作。RAID01就惨了假设A、B组成条带集1C、D组成条带集2两个条带集做镜像。如果A坏了整个条带集1相当于废了虽然镜像集2还在数据没丢但你已经失去了所有冗余。如果B此时再坏条带集1里的另一块整个阵列就彻底完蛋。也就是说RAID01中同一时刻坏两块盘只要有一块落在同一个条带集里阵列就挂了。这个概率比RAID10高不少。所以RAID10的实际表现就是简单、可靠、性能好。它没有校验计算写惩罚是2次IO先写镜像再写条带相比RAID6的6次IO快得多。坏盘重建时也不用做复杂的异或运算直接从镜像盘复制数据就行。适用场景对性能和可靠性要求都高的场景比如数据库服务器、虚拟化宿主机、高并发业务系统。缺点是空间利用率还是50%成本高。2.6 一张表把六种级别说清楚RAID级别最少盘数容错能力空间利用率读取性能写入性能典型场景RAID02无100%极高极高临时缓存、游戏服务RAID121块盘50%较高中等系统盘、日志盘RAID531块盘(N-1)/N高中低文件服务、业务系统RAID642块盘(N-2)/N高低大容量存储、备份RAID104每组坏1块50%高高数据库、虚拟化RAID014同组故障即崩50%高高不建议使用这里额外说一句RAID01这玩意儿现在基本从主流服务器上绝迹了新规划的存储方案没人会主动选它。如果在老设备上碰到建议尽早迁移到RAID10。3. 软RAID、硬RAID、板载RAID到底有什么区别3.1 硬RAID独立阵列卡说了算硬RAID是指用专用的RAID控制器卡阵列卡来完成所有条带化、镜像、校验计算。阵列卡上有独立的处理器ROC芯片和缓存常见的有LSI/Broadcom的SAS 9361、9460还有国产厂商的一些方案。硬RAID的优势很明显不占用CPU资源所有异或校验计算都由阵列卡自己完成服务器CPU只管业务计算。带缓存阵列卡上的缓存常见512MB、1GB、2GB带电池或电容保护可以大大提升写入性能。开启写缓存之后RAID5、RAID6的写入性能能提升很多。兼容性好操作系统看到的是一个逻辑卷不需要额外关心底层RAID结构装驱动也更简单。掉电保护好的阵列卡配了BBU备用电池单元或超级电容突然断电时缓存里还没落盘的数据不会丢。硬RAID的缺点就是贵。好一点的阵列卡大几千上万对于预算敏感的场合可能有点肉疼。3.2 软RAID操作系统说了算软RAID是纯靠操作系统实现的RAID功能没有专属的硬件处理器。Linux里用mdadmWindows里用动态磁盘存储空间都属于软RAID。优点非常直观零硬件成本用现有CPU和内存就能实现。跨平台灵活遇到机器故障把硬盘拔下来插到另一台差不多的机器上只要操作系统能识别阵列就能重新组装。配置灵活可以在线扩展、在线迁移部分操作甚至不用停机。缺点也明显占用CPU和内存校验计算全走CPU在高负载的随机写入场景下CPU占用能飙升到20%~30%甚至更多。性能上限低没有专用的缓存机制写性能上不去。尤其RAID5/RAID6软RAID的写入表现通常要比硬RAID差一截。依赖操作系统系统本身坏了或者启动引导坏了阵列就没法挂载数据也拿不出来。这就形成了一个尴尬局面——RAID本来是为了保护数据结果软RAID自己还依赖系统状态。不过对个人开发者或小型实验室来说软RAID其实还挺实用。我自己在实验室的一台Linux机器上就跑了一个软RAID5三块闲置的1TB机械盘存点测试数据完全够用。3.3 板载RAID看着像硬其实是半软很多服务器主板上自带了一个准RAID功能厂商叫法五花八门SATA RAID、Intel RSTe、LSI MegaRAID等等。它用的是主板芯片组的特定功能外观和界面看起来像硬RAID但异或校验计算实际上还是走CPU没有独立缓存性能介于真硬RAID和纯粹软RAID之间。业内一般叫它fake RAID。这种板载RAID我觉得很尴尬它不具备硬RAID的性能优势却保留了硬RAID的兼容性劣势比如换到另一台没有同款芯片组的主板上阵列可能无法识别。我一般不推荐在重要生产环境里依赖板载RAID。如果预算确实紧张实在要用重点留意主机硬件故障后的恢复方案。3.4 选型建议什么时候用哪种场景推荐方案理由生产环境、数据库、虚拟化硬RAID独立阵列卡性能稳、CPU占用低、掉电保护文件存储、备份服务器硬RAID或板载RAID容量大、顺序读写为主对随机IO要求不高个人NAS、测试环境软RAID成本最低管理灵活临时测试、开发机任何方案都行数据丢了也不可惜重点是跑通流程我看到不少朋友在组装NAS的时候用主板自带的SATA RAID做RAID5结果某天主板坏了硬盘拆下来插到别的机器上直接不认阵列数据差点全部报废。后来换了方案改用TrueNAS的软RAIDZFS虽然占了些CPU但数据可迁移性高多了。4. 服务器RAID配置实操从开机到装系统4.1 进入RAID配置界面的姿势不同品牌的服务器进入RAID配置界面的快捷键不同这里把我日常用到的列出来方便查阅服务器品牌进入方式备注联想/ThinkServer开机按F1进BIOS后找RAID控制器配置浪潮含R4900 G6等开机按CtrlC或F2根据阵列卡型号常见按CtrlCDell PowerEdgeT420、R740等开机按F2进System Setup然后选RAID配置HPE原惠普企业版开机按F9阵列卡界面还有单独的CtrlR超微/DIY平台开机按CtrlR或CtrlH取决于板载阵列卡型号4.2 创建RAID阵列的完整流程以一台浪潮R4900 G6为例开机出现Logo时按CtrlC进入LSI阵列卡配置界面这里以常见的LSI/Broadcom界面为例。第一步先确认硬盘状态。在主界面能看到所有物理磁盘确认新硬盘都正常识别状态显示为Ready或Unconfigured Good。如果有硬盘显示Foreign或Failed先处理状态问题避免后续建阵列的时候带病工作。第二步进入Virtual Drive Management或Configuration Wizard选择New Configuration开始全新配置。这里要注意如果是新机器就选New Configuration如果是已有阵列需要重建要选Clear Configuration或Add Configuration千万别选错不然会把已有数据全清了。第三步选择要加入阵列的物理磁盘。按空格键选中会看到磁盘前面的图标变化变成高亮或在ID前出现星号。第四步选择RAID级别。系统会根据选中的磁盘数量自动推荐可用的级别。比如选中四块盘你可以选RAID0、RAID1、RAID5、RAID6、RAID10等。第五步设置条带大小Stripe Size、写策略、读策略和缓存策略。这是最容易忽略的一步我建议按以下默认值设置大部分场景都合适条带大小256KB混合工作负载或128KB数据库场景读策略Read Ahead预读对顺序读取有帮助写策略Write Back回写开启后性能大幅提升缓存策略Direct IO绕过缓存减少缓存干扰第六步确认阵列信息后保存并初始化。初始化过程根据磁盘容量大小耗时不定几块2TB的盘一般几分钟到十几分钟。初始化完成后新的逻辑卷就能在操作系统安装环境中看到了。4.3 安装系统时加载RAID驱动不少朋友在做服务器磁盘阵列怎么做的时候卡在装系统找不到硬盘这一步。比如之前有个朋友问过TS80X服务器RAID装Windows 2008的问题典型现象就是Windows安装程序进行到选择磁盘时列表里空空如也。原因基本只有一个Windows没带你这个阵列卡的驱动。解决办法是在这个界面点加载驱动程序把从厂商官网下载好的阵列卡驱动放进去。驱动一般是zip压缩包或者exe自解压文件要在另一台电脑上解压后拷贝到U盘里面找后缀名为.inf或.sys的文件。从Windows 8/Server 2012开始微软系统自带的通用存储驱动已经能识别大部分主流LSI阵列卡了所以很少再遇到装系统找不到盘的问题。但如果装更老的Windows Server 2003、2008几乎100%要手动加载驱动。Dell PowerEdge T420这类老服务器的用户去Dell官网按服务标签搜索阵列卡驱动就能找到下载时要注意选对操作系统版本和32/64位架构。Linux下情况好一些内核现在基本都集成了主流阵列卡驱动。但有些冷门的阵列卡或者新推出的卡可能要装厂商提供的kmod包操作前先确认一下内核版本和驱动兼容性。4.4 查看当前RAID状态的方法装好系统之后怎么确认当前机器的RAID级别和状态这里分享两个最常用的方法。第一种是命令行。Windows下可以用厂商提供的管理工具比如LSI的MSMMegaRAID Storage ManagerDell的OpenManage Server Administrator。Linux下可以用storcli、sas3ircu等命令行工具。以storcli为例storcli /c0 show这条命令会显示控制器基本信息和已配置的逻辑卷。查看具体虚拟磁盘的RAID级别storcli /c0 /vall show结果里能直接看到RAID Level字段比如RAID5、RAID6、RAID10等。第二种是去阵列卡管理界面。Dell R740这类机器可以在iDRAC的Web管理界面里查看虚拟磁盘状态能直观看到RAID级别、磁盘健康度、重建进度等信息。如果是本地界面开机按F2进入系统设置再选RAID Controller相关菜单也能查看。平时巡检时我会特别留意State那一列正常是Optimal或Online如果看到Degraded或Rebuild状态说明阵列出了问题需要马上处理。5. 实际运维中踩过的坑与排查实录5.1 RAID降级了怎么办有一次值班半夜接到告警某台数据库服务器的RAID5阵列降级。登录服务器查看发现是第三块盘状态变成了Failed。这种时候第一反应不是马上把故障盘拔掉而是先确认阵列卡上的缓存状态和整体运行情况再按顺序处理。处理步骤我建议这样确认阵列卡写缓存策略如果是Write Back注意是否有BBU电池保护。电池失效或掉电情况下系统可能会自动切换到Write Through写入性能大减这是正常保护逻辑不是阵列卡坏了。备份关键数据尤其是数据库这类业务数据最好在降级状态下先做一次完整备份以防重建过程中发生二次故障。确认新硬盘型号匹配至少容量不能小于故障盘最好是同型号同固件版本。停止业务或选择业务低谷期进行重建因为重建过程会疯狂读盘写盘IO占用极高业务高峰期操作容易拖垮整个存储系统。拔掉故障盘插入新盘。如果配置了热备盘系统会自动开始重建无需人工操作。查看重建进度storcli或管理界面都能看到百分比。最后说个血泪教训以前图便宜用过一批二手硬盘做RAID5坏了一块心疼数据重建到80%的时候又坏了一块整个阵列直接崩了。后来重建完成后立刻加了一块热备盘把2块盘的RAID5升成了3块盘加1热备心里踏实多了。5.2 硬盘故障后的正确处理流程很多人问我硬盘报警灯亮了能不能直接拔我的回答是先确认这块盘是不是真的故障再决定动不动它。有些硬盘只是出现SMART警告比如产生了大量坏道重映射但还没有完全挂掉。这时候直接热拔反而可能加速损坏而且在某些阵列卡上容易触发更严重的问题。正确做法是先用管理工具看磁盘状态如果是Predictive Failure预测性故障可以尝试在线换盘如果是Failed直接换。另外特别提醒一点千万不要把盘位顺序插错。物理盘在阵列卡里的编号是固定的必须对应到正确的盘位。我见过有人维护时把两块盘顺序弄反开机后阵列直接崩了损失惨重。维护前一定在硬盘托架上做好标签标清楚盘位号、序列号、容量、创建时间。5.3 驱动与系统安装的经典问题这些年被问得最多的一个问题就是为什么我装Windows Server 2008的时候找不到阵列卡驱动这里面的坑挺多的我总结一下常见的几种情况。第一种驱动版本和系统架构不匹配。Windows 2008有32位和64位之分驱动也分x86和x64选错了装进去系统照样不认。下载时一定看清。第二种驱动没解压干净。很多驱动包是个自解压exe要求先在一个Windows机器上运行解压然后把解压出来的整个文件夹拷到U盘。如果你只拷了原始exe加载驱动的时候系统根本找不到.inf文件。第三种阵列卡型号太新老系统不支持。这是最麻烦的。有些全新的阵列卡根本不提供Windows Server 2008的驱动官方只支持2012或2016以上。这时候要么放弃装老系统要么降级阵列卡固件或换驱动兼容性更好的阵列卡。Linux那边相对简单但也不要掉以轻心。CentOS 7自带老的mpt3sas驱动可能带不动最新款阵列卡。解决办法是装系统时用modprobe.blacklistmpt3sas这一类的参数禁用旧驱动然后在安装过程中手动加载厂商提供的驱动盘。具体操作会因发行版不同有差异建议查一下官方文档。5.4 几个容易忽略的细节最后分享几个我平时特别留意的细节这些在教科书里真不一定找得到。第一RAID阵列卡缓存电池要定期测试不然哪天真的掉电了缓存里的数据全丢比磁盘坏了还惨。我在维护计划里每季度安排一次电池校准。第二别把所有鸡蛋放一个篮子里。RAID只是解决了磁盘故障不解决服务器整机故障、机房断电、系统中毒、误删除这些问题。RAID之外还要有异地备份、快照、容灾方案立体防护才算是真的安全。第三新阵列组建完成后第一时间做一次读写压力和稳定性测试。别急着把业务数据灌进去先用fio或dd跑几个小时看看有没有报错尤其是混用新旧硬盘的时候提前暴露问题比事后出故障强多了。第四记录好阵列配置信息。RAID级别、条带大小、磁盘顺序、出厂序列号、阵列卡型号和固件版本这些信息做成表格贴在服务器机箱上或者记在运维文档里。以后做迁移、故障恢复能省非常多时间。我个人在实际操作中最大的体会是RAID选型这事真不能等到机器买回来再纠结。规划服务器硬件的时候先想清楚业务是什么类型的负载、数据有多重要、预算能支撑多少块盘把这些想清楚了再回头选RAID级别就顺理成章了。新配的服务器我强烈建议系统盘用两个性能好点的SSD组RAID1数据盘根据业务量选RAID5或RAID10再加一块热备盘。这套组合在绝大多数中小型场景下都能做到性能、容量和安全性的平衡。如果你现在手头正好有一台服务器要做RAID希望这篇文章能帮你少走点弯路。配置过程其实不复杂真正难的是遇到故障时保持冷静、按流程处理这个只能靠平时多演练多积累。祝你的阵列永远Optimal。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价