Linux(六)——RAID
Linx(六)——RAID
前言
RAID技术概述
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种通过将多个物理磁盘组合成一个逻辑单元的技术,旨在提升数据存储的性能、可靠性或两者兼备。根据不同的配置(RAID级别),可实现数据冗余、读写加速或故障容错。
核心优势
- 性能提升:通过并行读写(如RAID 0)缩短数据访问时间。
- 数据冗余:部分RAID级别(如RAID 1、5、6)允许磁盘故障后恢复数据。
- 容量扩展:多磁盘合并提供更大的逻辑存储空间。
常见RAID级别
- RAID 0:条带化设计,无冗余,读写速度最快,但单盘故障会导致全部数据丢失。
- RAID 1:镜像存储,数据完全复制到另一磁盘,冗余性高,但容量利用率仅50%。
- RAID 5:分布式奇偶校验,允许单盘故障,平衡性能与冗余,需至少3块磁盘。
- RAID 6:双奇偶校验,允许双盘故障,需至少4块磁盘,适合大容量环境。
- RAID 10:RAID 1+0的组合,先镜像再条带化,兼顾性能与冗余,需至少4块磁盘。
应用场景
- 企业存储:RAID 5/6用于数据库或文件服务器,确保数据安全。
- 高性能计算:RAID 0适合临时数据处理,如视频编辑缓存。
- 关键备份:RAID 1适用于金融或医疗系统的元数据保护。
注意事项
- 成本与复杂度:高级别RAID需更多磁盘和控制器,维护成本较高。
- 重建风险:大容量磁盘在重建时可能因第二块磁盘故障导致数据彻底丢失。
- 非备份替代:RAID不能完全替代定期备份,需结合云存储或离线介质。
RAID的选择需权衡性能、冗余需求和预算,结合实际业务场景进行配置。
第一章 RAID是什么
RAID(独立磁盘冗余阵列)是一种将多个物理磁盘驱动器组合成一个或多个逻辑单元的技术,旨在提升数据存储的性能、可靠性或容量。其主要目标包括:
核心目标
- 性能提升:通过并行读写操作加速数据处理
- 冗余保护:通过数据备份或校验机制防止磁盘故障
- 容量扩展:整合多个磁盘的存储空间
常见级别详解
RAID 0(条带化)
- 原理:数据分块(条带)后轮询写入磁盘
数据块 = { D 1 , D 2 , . . . , D n } 分布于磁盘 { D i s k 1 , D i s k 2 , . . . , D i s k n } \text{数据块} = \{D_1, D_2, ..., D_n\} \quad \text{分布于磁盘} \{Disk_1, Disk_2, ..., Disk_n\} 数据块={D1,D2,...,Dn}分布于磁盘{Disk1,Disk2,...,Diskn} - 优势:读写速度倍增( n n n倍理论提升)
- 缺陷:无冗余,任一磁盘故障导致数据全损
- 存储效率:100%
RAID 1(镜像)
- 原理:相同数据同时写入两组磁盘
存储模式: D i s k A = D i s k B \text{存储模式:} \quad Disk_A = Disk_B 存储模式:DiskA=DiskB - 优势:高容错性(允许半数磁盘损坏)
- 缺陷:存储利用率仅50%
- 典型场景:金融系统关键数据
RAID 5(分布式奇偶校验)
- 原理:数据与校验信息( P P P)轮询分布
磁盘阵列: { D 1 , D 2 , P 3 } , { D 4 , P 5 , D 6 } , { P 7 , D 8 , D 9 } \text{磁盘阵列:} \quad \{D_1, D_2, P_3\}, \{D_4, P_5, D_6\}, \{P_7, D_8, D_9\} 磁盘阵列:{D1,D2,P3},{D4,P5,D6},{P7,D8,D9} - 关键技术:异或运算生成校验
P = D 1 ⊕ D 2 ⊕ . . . ⊕ D n P = D_1 \oplus D_2 \oplus ... \oplus D_n P=D1⊕D2⊕...⊕Dn - 优势:兼顾性能与冗余(允许1盘损坏)
- 存储效率: ( n − 1 ) / n (n-1)/n (n−1)/n( n n n为磁盘数)
混合级别
- RAID 10(1+0):先镜像后条带化,兼顾速度与安全
物理结构: [ 磁盘A1 ↔ 磁盘A2 ] -- 条带化 -- [ 磁盘B1 ↔ 磁盘B2 ]
技术演进:现代RAID控制器支持动态扩容、在线重建、缓存加速等高级功能,结合SSD可突破传统性能瓶颈。
第二章 作用与级别
RAID 0(条带化)
RAID 0(条带化)是一种存储技术,其主要作用与特性如下:
作用:
- 性能提升:通过将数据分割成块并并行写入多个驱动器,显著提高读写速度。理论上, n n n个驱动器的阵列可使吞吐量提升至单盘的 n n n倍。
- 容量最大化:总存储空间为所有驱动器容量之和( C 总 = ∑ i = 1 n C i C_{\text{总}} = \sum_{i=1}^{n} C_i C总=∑i=1nCi)。
级别特性:
- 无冗余:数据均匀分布在各驱动器,但无校验或镜像备份。
- 故障风险:任一驱动器失效将导致整个阵列数据丢失,可靠性为 P 存活 = ∏ i = 1 n P i P_{\text{存活}} = \prod_{i=1}^{n} P_i P存活=∏i=1nPi( P i P_i Pi为单盘存活率)。
典型应用场景:
- 需高速读写的临时数据处理(如视频编辑缓存)
- 对冗余要求低的非关键数据存储
⚠️ 注意:RAID 0不适用于数据安全要求高的场景,常需配合定期备份使用。若需冗余,可考虑RAID 1/5/6等。
RAID 1(镜像)
RAID 1(镜像)的作用与级别可概括如下:
作用
-
数据冗余
通过实时同步写入两个(或多个)磁盘,确保存储数据的完全一致性。当任一磁盘发生故障时,系统仍能通过镜像磁盘维持正常运行,实现高可靠性。 -
提升读取性能
数据可从多个磁盘并行读取(如 读取吞吐量 ≈ n × 单盘速度 \text{读取吞吐量} \approx n \times \text{单盘速度} 读取吞吐量≈n×单盘速度,其中 n n n 为磁盘数),但写入性能受限于同步操作(需同时写入所有镜像盘)。 -
简化数据恢复
故障磁盘替换后,仅需从镜像盘直接复制数据即可完成重建,无需复杂计算。
级别特性
- RAID级别:标准定义为 RAID 1(镜像级别),仅由两个磁盘组成基础镜像组。
- 磁盘利用率:有效存储容量为总容量的 50 % 50\% 50%(例如 2 × 4 TB 2 \times 4\text{TB} 2×4TB 磁盘仅提供 4 TB 4\text{TB} 4TB 可用空间)。
- 适用场景:适用于对数据安全性要求极高(如金融系统、关键数据库)但对存储成本不敏感的场景。
对比其他RAID级别
| 特性 | RAID 1 | RAID 0 | RAID 5 |
|---|---|---|---|
| 冗余能力 | 完全冗余 | 无冗余 | 单磁盘冗余 |
| 容量效率 | 50 % 50\% 50% | 100 % 100\% 100% | ( n − 1 ) / n (n-1)/n (n−1)/n |
| 读写性能 | 读高、写较低 | 读写均高 | 读高、写中等 |
RAID 5(分布式奇偶校验)
好的,我们来详细解释一下 RAID 5。
RAID 5(分布式奇偶校验)的作用与级别
RAID 5 是一种将数据条带化(Striping)与分布式奇偶校验(Distributed Parity)技术相结合的磁盘阵列级别。它主要服务于以下两个核心目的:
- 提高数据可靠性(容错能力):这是 RAID 5 最主要的作用。它能够容忍阵列中一块磁盘的故障而不会导致数据丢失。这是通过存储奇偶校验信息实现的。
- 提升读取性能:由于数据被条带化分布在多个磁盘上,当读取数据时,多个磁盘可以同时工作,从而提升读取速度。
- 提高存储空间利用率:相比于 RAID 1(镜像)需要 100% 的冗余空间,RAID 5 只需要牺牲相当于一块磁盘容量的空间来存储奇偶校验信息,因此空间利用率更高。
RAID 5 的级别特征
- 级别:RAID 5
- 最小磁盘数:至少需要 3 块物理磁盘才能构建 RAID 5 阵列。
- 数据分布方式(条带化与分布式奇偶校验):
- 数据被分割成大小固定的块(条带)。
- 这些数据块和对应的奇偶校验块被循环地、均匀地分布存储在阵列中的所有磁盘上。
- 奇偶校验块不是固定存储在某一特定磁盘上(这点与 RAID 3/4 不同),而是轮流存储在不同的磁盘上。例如,在由三块磁盘组成的 RAID 5 中:
- 条带 1:数据块 A1 在磁盘1,数据块 A2 在磁盘2,奇偶校验块 Ap 在磁盘3。
- 条带 2:数据块 B1 在磁盘1,数据块 B2 在磁盘3,奇偶校验块 Bp 在磁盘2。
- 条带 3:数据块 C1 在磁盘2,数据块 C2 在磁盘3,奇偶校验块 Cp 在磁盘1。
- 这种奇偶校验信息轮流存储的方式就是“分布式”的含义。
- 容错能力:RAID 5 可以容忍一块磁盘的完全故障。当一块磁盘失效时,可以利用剩余磁盘上的数据块和奇偶校验信息,通过异或运算(XOR)来重建丢失的数据。计算公式大致为:
丢失的数据 = 剩余数据块 1 ⊕ 剩余数据块 2 ⊕ … ⊕ 奇偶校验块 丢失的数据 = 剩余数据块1 \oplus 剩余数据块2 \oplus \ldots \oplus 奇偶校验块 丢失的数据=剩余数据块1⊕剩余数据块2⊕…⊕奇偶校验块- 重要限制:如果同时有两块或以上磁盘发生故障,数据将无法恢复,导致数据丢失。因此,当一块磁盘故障后,需要尽快更换新盘并重建阵列。
- 存储空间利用率:总可用容量等于所有磁盘总容量减去一块磁盘的容量。例如:
- 3 块 1TB 磁盘:总容量 3TB,可用容量 3 T B − 1 T B = 2 T B 3TB - 1TB = 2TB 3TB−1TB=2TB。
- 4 块 1TB 磁盘:总容量 4TB,可用容量 4 T B − 1 T B = 3 T B 4TB - 1TB = 3TB 4TB−1TB=3TB。
- 可用容量计算公式: 可用容量 = ( N − 1 ) × 单盘容量 可用容量 = (N - 1) \times 单盘容量 可用容量=(N−1)×单盘容量(N 为磁盘数量)。
- 性能特点:
- 读取性能:通常非常好,接近 RAID 0(条带化),因为数据分布在多个盘上,可以并行读取。
- 写入性能:相对较差(尤其是小文件写入)。因为每次写入数据块时,通常需要读取旧数据块、旧奇偶校验块,计算新的奇偶校验块(涉及 XOR 运算),然后再写入新数据块和新奇偶校验块。这个过程被称为“写惩罚”(Write Penalty)。
- 适用场景:适用于需要良好读取性能、较高存储空间利用率以及一定容错能力的场景,如文件服务器、Web服务器、中小型数据库等。
总结:
RAID 5 是一种平衡了性能、容量和成本的常用 RAID 级别。它通过分布式存储奇偶校验信息,在牺牲一块磁盘容量的前提下,提供了对单盘故障的容错能力,并提升了读取性能。其主要弱点是写入性能开销较大,且无法承受两块磁盘同时故障。
RAID 10(1+0)
好的,我们来详细解释一下 RAID 10(也常称为 RAID 1+0)。
RAID 10 (RAID 1+0) 的作用与级别
1. 定义与别称
RAID 10 是一种复合(或称嵌套)级别的磁盘阵列技术。它结合了 RAID 1(镜像)和 RAID 0(条带化)两种基本 RAID 级别的特性。因此,它常被称为 RAID 1+0,表示其构建过程是先做镜像(RAID 1),再做条带化(RAID 0)。
2. 核心作用
RAID 10 的主要作用是在提供高性能的同时,保障数据的冗余和容错能力。它旨在解决纯 RAID 0 缺乏容错性和纯 RAID 1 写入性能相对较低的问题。
3. 技术特点与工作原理
- 构建方式:构建 RAID 10 至少需要 4 块硬盘。首先,将硬盘两两配对,每组组成一个 RAID 1(镜像)对。然后,将这些 RAID 1 镜像对作为一个整体,再进行 RAID 0(条带化)操作。
- 数据写入:
- 数据被条带化(分割)后写入不同的 RAID 1 镜像对。
- 在每个 RAID 1 镜像对内部,数据被镜像(完全复制)到两块硬盘上。
- 数据读取:可以从多个硬盘(尤其是多个 RAID 1 镜像对中的活动盘)同时读取数据,提高了读取速度。
- 容错能力:
- RAID 10 可以容忍同一 RAID 1 镜像对中的一块硬盘故障而不丢失数据或中断服务(因为镜像对中的另一块硬盘有完整数据副本)。
- 如果不同 RAID 1 镜像对中各有一块硬盘同时故障,阵列通常也能继续运行。
- 但是,如果同一个 RAID 1 镜像对中的两块硬盘都故障,或者多个镜像对中各坏一块盘且这些盘恰好存储了同一条带的数据,则会导致数据丢失。因此,其容错能力取决于故障硬盘是否分布在不同的镜像组中。
- 存储效率:由于采用了镜像,总存储空间的 50% 用于存储冗余数据。例如,使用 4 块 1TB 硬盘组成 RAID 10,实际可用容量为 2TB。
- 性能:
- 读性能:由于条带化和可以从多个镜像对读取,读取性能通常接近甚至超过 RAID 0。
- 写性能:由于需要在每个 RAID 1 镜像对内写入两份相同数据,写性能通常比 RAID 0 低,但比纯 RAID 1 高(因为条带化允许并行写入多个镜像对)。
4. 总结
RAID 10 是一种高性能、高可靠性的磁盘阵列方案。它通过先镜像后条带化的方式,结合了 RAID 1 的数据安全性和 RAID 0 的 I/O 性能优势。其主要代价是需要至少双倍数量的硬盘(导致 50% 的存储效率损失)和较高的成本。它非常适合对性能(尤其是 I/O 密集型应用)和容错性都有较高要求的场景,如数据库服务器、应用服务器等。
第三章 创建RAID
需求描述:
为Linux服务器添加4块SCSI硬盘
使用mdadm软件包,构建RAID5磁盘阵列,提高磁盘存储的性能和可靠性
检查是否已安装mdadm软件包
检查是否已安装mdadm软件包
rpm -q mdadmyum install -y mdadm
mdadm(Multiple Disk and Device Administration)是Linux系统中用于管理软件RAID(冗余磁盘阵列)的工具。其核心功能包括:
创建和管理RAID阵列:支持RAID 0、1、5、6、10等常见级别,允许将多块磁盘组合为逻辑卷。
监控和故障恢复:实时检测磁盘状态,自动替换故障磁盘并重建数据。
配置灵活性:支持热插拔、动态扩容和阵列迁移等操作
mdadm命令常用选项
-C:创建一个新的raid设备
-l:指定 RAID 级别(如 -l 0 为 RAID 0,-l 1 为 RAID 1)。
-n:指定参与 RAID 的磁盘数量
-a yes:自动创建设备文件(默认行为)。
-r: 移除设备
-a: 添加设备
-S: 停止RAID
-A: 启动RAID
使用fdisk工具进行分区
使用fdisk工具将新磁盘设备/dev/sdb、/dev/sdc、 /dev/sdd、 /dev/sde划分出主分区sdb1、sdc1、 sdd1、 sde1, 并且
把分区类型的ID标记号改为
echo "- - - " > /sys/class/scsi_host/host0/scan # 重启或者扫描fdisk -l


创建 RAID 0
创建 RAID 0 矩阵
mdadm -Cv /dev/md10 -l0 -n2 /dev/sde /dev/sdf
查看创建结果
cat /proc/mdstat
文件格式化
mkfs.xfs /dev/md10
挂载
mount /dev/md10 /myraid
创建 RAID 1
创建 RAID 1矩阵
mdadm -Cv /dev/md10 -l1 -n2 /dev/sde /dev/sdf
查看创建结果
cat /proc/mdstat
文件格式化
mkfs.xfs /dev/md10
挂载
mount /dev/md10 /myraid
创建 RAID 5
检查mdadm包,安装mdadm包
rpm -q mdadm
yum install -y mdadm
对4块硬盘进行分区
使用fdisk对四块硬盘进行分区。
分别为:sde1、sdf1、sdg1、sdh1,类型为Linux raid autodetect
创建 RAID 5
命令常用选项
- -C:创建一个新的raid设备
- -l:指定 RAID 级别(如 -l 0 为 RAID 0,-l 1 为 RAID 1)。
- -n:指定参与 RAID 的磁盘数量
- -a yes:自动创建设备文件(默认行为)。
- -r: 移除设备
- -a: 添加设备
- -S: 停止RAID
- -A: 启动RAID
混合级别:
先镜像再条带
mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ef]1 :镜像
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[gh]1 :镜像
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1 :条带化
查看创建结果
cat /proc/mdstat
文件格式化
mkfs.xfs /dev/md10
挂载
mount /dev/md10 /myraid
总结
RAID技术总结
一、基本概念
RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,是一种将多个物理磁盘组合成逻辑单元的技术,主要目标包括:
- 提升性能:通过并行读写加速数据访问
- 增强容错:利用冗余数据实现故障恢复
- 扩展容量:整合多个磁盘的存储空间
二、常见级别对比
| 级别 | 技术原理 | 最少磁盘数 | 优势 | 局限性 |
|---|---|---|---|---|
| RAID 0 | 条带化(数据分块存储) | 2 | 最高读写性能 | 无冗余,单盘故障全损 |
| RAID 1 | 镜像(完全数据复制) | 2 | 100%数据冗余 | 存储利用率仅50% |
| RAID 5 | 分布式奇偶校验 | 3 | 性能与冗余平衡 | 单盘故障时性能下降 |
| RAID 6 | 双重分布式奇偶校验 | 4 | 允许双盘同时故障 | 写性能较低 |
| RAID 10 | 镜像+条带化(先镜像再条带) | 4 | 高读写性能与强容错 | 成本高,利用率50% |
三、关键技术特性
-
条带化(Striping)
- 数据分块存储在多个磁盘
- 并行读写显著提升传输速率
- 典型应用:RAID 0/5/6/10
-
镜像(Mirroring)
- 实时复制数据到备用磁盘
- 提供实时故障保护
- 典型应用:RAID 1/10
-
奇偶校验(Parity)
- 通过异或运算生成校验数据
- 分布式存储实现空间高效冗余
- 典型应用:RAID 5/6
四、应用场景建议
- 高性能需求:视频编辑/数据库 → RAID 0/10
- 高可靠性:金融系统/医疗数据 → RAID 1/6/10
- 性价比平衡:文件服务器 → RAID 5
- 大容量存储:备份系统 → RAID 6
注意事项:
- RAID不能替代定期备份
- 同批次磁盘可能同时老化
- 重建过程可能导致二次故障
更多推荐

所有评论(0)