Linux(CentOS)系统管理入门笔记(第十七期)——文件系统与存储管理(下篇):RAID 存储技术——RAID 级别原理与 mdadm 软 RAID 管理

Linux(CentOS)系统管理入门笔记(第十七期)——文件系统与存储管理(下篇):RAID 存储技术——RAID 级别原理与 mdadm 软 RAID 管理
LinuxCentOS系统管理入门笔记第十七期——文件系统与存储管理下篇RAID 存储技术——RAID 级别原理与 mdadm 软 RAID 管理知识衔接LinuxCentOS系统管理入门笔记第十六期——文件系统与存储管理中篇硬盘分区方案与工具——MBRGPT 与 fdiskgdiskpartedLinux系统管理入门系列更多文章欢迎访问Linux入门——系统管理1、Linux入门——系统管理2我的主页AOwhisky这里有更多运维系统性知识整理和其他有趣内容欢迎与我一起探讨学习~引言当一块硬盘不够用的时候——RAID 的智慧想象一下你是公司仓库的管理员。随着业务增长仓库里的货物越来越多问题也随之而来性能问题只有一扇进货门每天排队卸货成了常态单块硬盘的 I/O 瓶颈可靠性问题这扇门一旦坏了整个仓库无法运作单点故障容量问题仓库只有这么大放不下更多货物了如果你的预算允许你会怎么做RAID独立磁盘冗余阵列就是解决这个问题的经典方案——把多块硬盘组合成一个“超级仓库”根据需要平衡性能、可靠性和容量之间的关系。RAID 的核心思路很简单条带化Striping把数据分散到多块硬盘上并行读写 →性能提升镜像Mirroring在另一块硬盘上存一份完全相同的副本 →数据冗余校验Parity用额外的空间存储校验信息坏一块硬盘也能恢复 →容错能力不同的 RAID 级别就是这三种技术的不同组合。本期将系统学习RAID 0/1/5/6/10的原理、优缺点与适用场景mdadm工具创建和管理软 RAID 阵列热备盘、故障模拟、扩容等生产级操作读完这一期你将具备在生产环境中规划和部署 RAID 存储的能力。— Compiled and Authored by Whisky — July 28 th, 2026目录RAID 的历史与核心思想RAID 级别详解2.1 RAID 0条带化性能至上2.2 RAID 1镜像数据安全第一2.3 RAID 5条带 分布式校验性价比之选2.4 RAID 6双校验更高级别的容错2.5 RAID 10条带 镜像性能与安全的平衡RAID 级别对比与选型指南RAID 实现方式软 RAID vs 硬 RAIDmdadm管理 Linux 软 RAID5.1 环境准备5.2 创建 RAID 05.3 创建 RAID 1含热备盘与故障模拟5.4 创建 RAID 5含扩容总结与速查手册1. RAID 的历史与核心思想1.1 从“廉价”到“独立”的演化1988 年美国加州大学伯克利分校的 D. A. Patterson 教授首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出RAID廉价磁盘冗余阵列概念。其基本思想是将多个容量较小、相对廉价的磁盘进行有机组合以较低的成本获得与昂贵大容量磁盘相当的容量、性能和可靠性。随着磁盘成本不断降低RAID 中的 “Inexpensive” 已无意义RAID 咨询委员会将其改为Independent即独立磁盘冗余阵列Redundant Array of Independent Disks。1.2 RAID 的三大核心技术技术原理作用条带化Striping将数据分块交替写入多块磁盘提升性能并行读写镜像Mirroring将数据完全复制到另一块磁盘数据冗余一块坏了另一块能顶上校验Parity用 XOR 计算校验信息分布式存储容错恢复坏一块盘用校验信息反推数据2. RAID 级别详解2.1 RAID 0条带化性能至上原理数据被分成固定大小的块依次存储在每个磁盘上。读写时多块磁盘并行工作。磁盘1: [数据块1] [数据块3] [数据块5] 磁盘2: [数据块2] [数据块4] [数据块6] ↑ 数据以“条纹”方式跨盘分布维度说明最小磁盘数2容错能力❌无一块坏全部数据丢失读写性能⭐⭐⭐⭐⭐最高空间利用率100%N 块盘总容量 N × 单盘容量适用场景视频编辑、临时数据缓存、对速度要求极高且不关心冗余的场景优点极高的读写性能并行 I/O100% 空间利用率缺点无冗余任一磁盘损坏导致全部数据丢失不可用于存储关键数据⚠️重要警告RAID 0 的故障率是单块硬盘的 N 倍N 块盘任意一块坏了全毁绝不应用于生产环境的关键数据。2.2 RAID 1镜像数据安全第一原理数据同时写入两块磁盘每块磁盘都有完整的数据副本。磁盘1: [数据块1] [数据块2] [数据块3] 磁盘2: [数据块1] [数据块2] [数据块3] ↑ 两个副本完全相同维度说明最小磁盘数2容错能力✅单盘容错坏一块不影响数据读取性能⭐⭐⭐⭐可从任一磁盘读取负载均衡写入性能⭐⭐需要同步写入两块盘空间利用率50%2 块 1TB 盘 → 1TB 可用适用场景操作系统盘、数据库日志、关键配置文件优点数据冗余最高一块磁盘损坏不影响业务读性能提升可从多块盘并行读取缺点空间利用率只有 50%写入性能略低于单盘需同时写入两块2.3 RAID 5条带 分布式校验性价比之选原理数据条带化分布同时将校验信息分布式存储在所有磁盘上。坏一块盘时可用校验信息恢复。磁盘1: [数据块1] [数据块4] [校验 A-B] 磁盘2: [数据块2] [校验 C-D] [数据块7] 磁盘3: [校验 A-B] [数据块5] [数据块8] 磁盘4: [数据块3] [数据块6] [校验 C-D] ↑ 校验信息轮流存储在不同磁盘上维度说明最小磁盘数3容错能力✅单盘容错读取性能⭐⭐⭐⭐接近 RAID 0写入性能⭐⭐⭐需额外计算校验信息空间利用率(N-1)/N4 块 1TB → 3TB 可用适用场景最常用的生产环境 RAID 级别文件服务器、数据库优点兼顾性能、容量和可靠性空间利用率高仅损失一块盘的容量性价比最高缺点写入时需计算校验有一定性能开销重建期间更换坏盘后性能下降且第二块盘故障会导致数据全丢白话理解RAID 5 是“性价比之王”——花 4 块盘的钱得到 3 块盘的容量、接近 RAID 0 的读性能还能扛住一块盘损坏。2.4 RAID 6双校验更高级别的容错原理RAID 5 的升级版使用双重校验允许同时损坏两块磁盘。磁盘1: [数据块1] [数据块4] [校验 P1] [校验 P2] 磁盘2: [数据块2] [校验 P1] [数据块5] [校验 P2] 磁盘3: [校验 P1] [数据块3] [校验 P2] [数据块6] 磁盘4: [数据块3] [校验 P2] [数据块6] [校验 P1] 磁盘5: [校验 P2] [数据块4] [校验 P1] [数据块5] ↑ 两套独立的校验信息可扛两块盘故障维度说明最小磁盘数4容错能力✅✅双盘容错读取性能⭐⭐⭐⭐写入性能⭐⭐双重校验计算开销较大空间利用率(N-2)/N6 块 1TB → 4TB 可用适用场景大容量存储、归档系统、对数据可靠性要求极高的场景优点可容忍两块磁盘同时故障可靠性极高缺点写入性能损失较大空间利用率低于 RAID 5成本更高2.5 RAID 10条带 镜像性能与安全的平衡原理先将磁盘两两组成 RAID 1镜像再将多组 RAID 1 组成 RAID 0条带化。既有镜像的冗余又有条带的性能。RAID 0条带化 ┌────────┴────────┐ RAID 1 RAID 1 ┌───┴───┐ ┌───┴───┐ 磁盘1 磁盘2 磁盘3 磁盘4 ↑ 镜像关系 ↑ 镜像关系维度说明最小磁盘数4容错能力✅每镜像组可坏一块最多坏 2 块但不能是同一组读写性能⭐⭐⭐⭐⭐最高空间利用率50%4 块 1TB → 2TB 可用适用场景高性能数据库、虚拟化环境、关键业务系统优点性能极高RAID 0 的并行读写容错性强RAID 1 的镜像保护重建速度快只需从镜像盘复制数据无需计算校验缺点成本最高50% 空间利用率至少需要 4 块磁盘3. RAID 级别对比与选型指南3.1 各 RAID 级别综合对比RAID 级别最小磁盘数容错能力空间利用率读取性能写入性能硬件成本推荐场景RAID 02❌ 无100%最高最高低缓存、临时数据RAID 12单盘50%高低中系统盘、关键配置RAID 53单盘(N-1)/N中高中中生产环境首选RAID 64双盘(N-2)/N中高低高大容量归档RAID 104多盘50%最高中高高性能数据库3.2 选型决策树需要高性能不关心数据安全 └─ ✅ → RAID 0仅缓存/临时数据 └─ ❌ → 继续↓ 需要数据冗余 └─ 只有 2 块盘 → RAID 1 └─ 3 块以上预算有限 → RAID 5 └─ 4 块以上数据极其重要 → RAID 6 └─ 4 块以上预算充足追求极致性能 → RAID 103.3 各行业典型应用场景推荐 RAID 级别理由文件服务器RAID 5/6容量与可靠性的平衡Web 服务器RAID 10高并发读取数据不可丢失数据库服务器生产RAID 10最高 I/O 性能 冗余数据库备份服务器RAID 6大容量 高可靠性虚拟化宿主VMware/KVMRAID 10多 VM 争抢 I/O需高性能视频监控存储RAID 6大容量顺序写入需双盘容错个人台式机RAID 1系统盘数据安全4. RAID 实现方式软 RAID vs 硬 RAID实现方式特点优点缺点软 RAID由操作系统和 CPU 实现无专用硬件成本低、灵活、易用消耗 CPU 资源、性能一般硬 RAID有专用 RAID 控制器芯片性能高、不占用 CPU、有缓存成本高、更换硬件受限混合 RAID有 RAID 芯片但无 I/O 处理器性能介于两者之间—生产环境建议学习/测试环境 → 软 RAIDmdadm足够关键生产环境 → 硬 RAID有电池保护缓存 更好的性能5. mdadm管理 Linux 软 RAIDmdadmMultiple Device Admin是 Linux 上管理软 RAID 的核心工具。5.1 环境准备# 查看已添加的磁盘[rootcentos7 ~]# lsblk /dev/sd{b,c,d,e,f,g}NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk sdc8:32020G0disk sdd8:48020G0disk sde8:64020G0disk sdf8:80020G0disk sdg8:96020G0disk5.2 创建 RAID 0# 创建 RAID 0 设备使用 /dev/sdb 和 /dev/sdc[rootcentos7 ~]# mdadm -C /dev/md0 --level raid0 -n 2 /dev/sd{b,c}mdadm: Defaulting to version1.2metadata mdadm: array /dev/md0 started.# 查看 RAID 状态[rootcentos7 ~]# cat /proc/mdstatPersonalities:[raid0]md0:active raid0 sdc[1]sdb[0]41908224blocks super1.2512k chunks# 查看详细设备信息[rootcentos7 ~]# mdadm --detail /dev/md0/dev/md0: Version:1.2Creation Time:Fri Aug217:03:582024Raid Level:raid0 Array Size:41908224(39.97GiB)Raid Devices:2Total Devices:2Persistence:Superblock is persistent State:clean Number Major Minor RaidDevice State08160activesync/dev/sdb18321activesync/dev/sdc# 创建文件系统并挂载[rootcentos7 ~]# mkfs.xfs /dev/md0[rootcentos7 ~]# mkdir /data/raid0[rootcentos7 ~]# mount /dev/md0 /data/raid0[rootcentos7 ~]# df -h /data/raid0Filesystem Size Used Avail Use% Mounted on /dev/md0 40G 319M 40G1% /data/raid0# 删除 RAID 0[rootcentos7 ~]# umount /dev/md0[rootcentos7 ~]# mdadm --stop /dev/md0[rootcentos7 ~]# mdadm --zero-superblock /dev/sd{b,c}5.3 创建 RAID 1含热备盘与故障模拟# 创建 RAID 12 块数据盘 1 块热备盘[rootcentos7 ~]# mdadm -C /dev/md1 --level 1 --raid-devices 2 /dev/sd{b,c} --spare-devices 1 /dev/sddmdadm: array /dev/md1 started.# 查看状态正在同步[rootcentos7 ~]# mdadm --detail /dev/md1/dev/md1: Raid Level:raid1 Array Size:20954112(19.98GiB)Raid Devices:2Total Devices:3State:clean, resyncing Resync Status:33% complete ← 正在同步 Number Major Minor RaidDevice State08160activesync/dev/sdb18321activesync/dev/sdc2848- spare /dev/sdd ← 热备盘创建文件系统并挂载等待同步完成后再操作[rootcentos7 ~]# mkfs.xfs /dev/md1[rootcentos7 ~]# mkdir /data/raid1[rootcentos7 ~]# mount /dev/md1 /data/raid1[rootcentos7 ~]# cp /etc/hosts /data/raid1/模拟磁盘故障# 强制标记 /dev/sdc 为故障状态[rootcentos7 ~]# mdadm /dev/md1 --fail /dev/sdcmdadm:set/dev/sdc faultyin/dev/md1# 查看状态——热备盘自动顶替[rootcentos7 ~]# mdadm --detail /dev/md1 | tail -5Number Major Minor RaidDevice State08160activesync/dev/sdb28481spare rebuilding /dev/sdd ← 自动顶替1832- faulty /dev/sdc# 数据仍然可访问[rootcentos7 ~]# cat /data/raid1/hosts127.0.0.1 localhost...# 移除故障磁盘[rootcentos7 ~]# mdadm /dev/md1 --remove /dev/sdcmdadm: hot removed /dev/sdc from /dev/md1# 删除 RAID 1[rootcentos7 ~]# umount /dev/md1[rootcentos7 ~]# mdadm --stop /dev/md1[rootcentos7 ~]# mdadm --zero-superblock /dev/sd{b,c,d}5.4 创建 RAID 5含扩容# 创建 RAID 54 块数据盘 1 块热备盘[rootcentos7 ~]# mdadm -C /dev/md5 --level 5 --raid-devices 4 /dev/sd{b,c,d,e} --spare-devices 1 /dev/sdfmdadm: array /dev/md5 started.# 查看状态[rootcentos7 ~]# mdadm --detail /dev/md5/dev/md5: Raid Level:raid5 Array Size:62862336(59.95GiB)Raid Devices:4Total Devices:5State:clean, degraded, recovering Rebuild Status:17% complete Number Major Minor RaidDevice State08160activesync/dev/sdb18321activesync/dev/sdc28482activesync/dev/sdd48643spare rebuilding /dev/sde3880- spare /dev/sdf# 注意4 块数据盘 1 块热备盘但热备盘立即被用于重建所以实际状态为 spare rebuilding创建文件系统并挂载[rootcentos7 ~]# mkfs.xfs /dev/md5[rootcentos7 ~]# mkdir /data/raid5[rootcentos7 ~]# mount /dev/md5 /data/raid5扩容 RAID 5# 添加一块新盘作为热备[rootcentos7 ~]# mdadm /dev/md5 --add /dev/sdgmdadm: added /dev/sdg# 将 RAID 5 从 4 块盘扩容到 5 块盘[rootcentos7 ~]# mdadm --grow /dev/md5 --raid-devices 5# 查看扩容进度[rootcentos7 ~]# mdadm --detail /dev/md5 | grep -E Reshape|Delta DevicesReshape Status:16% complete Delta Devices:1,(4-5)# 扩容完成后扩展文件系统[rootcentos7 ~]# xfs_growfs /data/raid5[rootcentos7 ~]# df -h /data/raid5Filesystem Size Used Avail Use% Mounted on /dev/md5 80G 604M 80G1% /data/raid5# 容量从 60G 变为 80G6. 总结与速查手册6.1 核心知识点一览主题关键点RAID 核心思想条带化性能、镜像冗余、校验容错RAID 0100% 容量、最高性能、无冗余、最小 2 盘RAID 150% 容量、单盘容错、最小 2 盘RAID 5(N-1)/N 容量、单盘容错、最小 3 盘、性价比最高RAID 6(N-2)/N 容量、双盘容错、最小 4 盘RAID 1050% 容量、高性能 冗余、最小 4 盘、成本最高软 RAID 工具mdadm -C创建mdadm --detail查看6.2 mdadm 命令速查表命令作用mdadm -C /dev/mdN -l level -n N disks创建 RAID 阵列mdadm --detail /dev/mdN查看阵列详细信息cat /proc/mdstat查看阵列状态和同步进度mdadm /dev/mdN --fail /dev/sdX模拟磁盘故障mdadm /dev/mdN --remove /dev/sdX移除故障磁盘mdadm /dev/mdN --add /dev/sdX添加磁盘热备或扩容mdadm --grow /dev/mdN --raid-devices N扩容阵列成员数mdadm --stop /dev/mdN停止 RAID 阵列mdadm --zero-superblock /dev/sdX清除磁盘上的 RAID 元数据6.3 RAID 容量计算速查RAID 级别可用容量公式示例4 × 1TBRAID 0N × 单盘容量4TBRAID 1单盘容量1TBRAID 5(N-1) × 单盘容量3TBRAID 6(N-2) × 单盘容量2TBRAID 10(N/2) × 单盘容量2TB6.4 RAID 级别选型快速决策条件推荐级别仅 2 块盘需冗余RAID 13-5 块盘兼顾容量与安全RAID 56 块盘数据极为重要RAID 6预算充足性能要求高RAID 10临时数据仅需性能RAID 06.5 常见错误排查问题原因解决方案mdadm: cannot open /dev/sdX磁盘被占用或不存在检查lsblk确认磁盘未挂载同步进度长期停滞系统 I/O 繁忙检查iostat降低应用负载RAID 阵列变成inactive成员盘不足mdadm --assemble尝试重新组合磁盘故障后热备盘未自动顶替未设置热备盘或mdadm配置问题手动--add新盘xfs_growfs报错文件系统未挂载确保挂载后再扩容6.6 思考与拓展原课后作业转化RAID 5 重建期间为什么风险最高→ 重建时所有磁盘处于高负载状态此时如果另一块盘也故障整个阵列崩溃。RAID 5 只容忍单盘故障重建期间容错能力为零。RAID 10 为什么比 RAID 5 更适合数据库→ 数据库有大量随机写入操作。RAID 5 的每次写入都需要计算校验信息读-改-写RAID 10 没有校验开销写入延迟更低。软 RAID 和硬 RAID 的主要区别是什么→ 软 RAID 由 CPU 和操作系统完成所有计算消耗 CPU 资源硬 RAID 有专用控制器芯片性能更好通常带有电池保护的写缓存。RAID 0 的容量利用率为 100%为什么不被推荐用于生产环境→ 因为 N 块盘的 RAID 0故障率是单盘的 N 倍——任意一块盘坏了全部数据丢失。RAID 5 扩容后文件系统需要做什么→ 扩容后文件系统不会自动感知底层容量的变化需要执行xfs_growfsXFS或resize2fsext4扩展文件系统。6.7 生产环境最佳实践场景建议操作系统盘使用 RAID 12 块盘镜像确保系统盘高可用数据存储根据盘数和预算选择 RAID 5 或 RAID 10热备盘为关键 RAID 阵列配置 1 块热备盘实现自动故障恢复监控定期检查/proc/mdstat设置磁盘故障告警备份RAID 不是备份关键数据仍须离线备份批量部署使用mdadm.conf配置文件统一 RAID 组装参数下期预告RAID 解决了“多块硬盘怎么组合”的问题但传统的 RAID 分区方案仍有一个痛点——扩展困难。如果存储空间不够了RAID 扩容往往涉及复杂的操作增加硬盘、重塑阵列。下一期我们将学习LVM逻辑卷管理——它就像“存储界的云计算”可以在不中断服务的情况下动态扩展和缩减存储空间。你将掌握 PV/VG/LV 三层架构、卷组扩展、逻辑卷的在线扩容与缩减。敬请期待第十八期— Compiled and Authored by Whisky — July 28 th, 2026