一篇文章彻底搞懂RAID磁盘阵列及其配置使用

一、RAID技术概述

RAID(Redundant Array of Independent Disks)即独立磁盘冗余阵列,是一种通过多磁盘组合实现​​数据冗余​​、​​性能提升​​或二者兼顾的存储虚拟化技术。其核心原理包括:

  • ​条带化(Striping)​​:数据分块并行写入多磁盘(如RAID 0)
  • ​镜像(Mirroring)​​:数据完全复制到多磁盘(如RAID 1)
  • ​奇偶校验(Parity)​​:通过校验数据实现故障恢复(如RAID 5/6)

二、常见RAID级别详解

1. ​​RAID 0​

RAID 0使用数据条带化(striping)的方式将数据分散存储在多个磁盘上,而不进行冗余备份。数据被分成固定大小的块,并依次存储在每个磁盘上。例如,如果有两个磁盘(磁盘A和磁盘B),一块数据的第一个部分存储在磁盘A上,第二个部分存储在磁盘B上,以此类推。这种条带化的方式可以同时从多个磁盘读取或写入数据,从而提高系统的性能。​简单来说:

  • ​原理​​:数据分块后并行存储于≥2块磁盘
  • ​优点​​:读写性能最高,100%磁盘利用率
  • ​缺点​​:无冗余,单盘故障导致数据全毁
  • ​场景​​:临时缓存、非关键数据存储

2. ​​RAID 1​

RAID 1使用数据镜像(mirroring)的方式将数据完全复制到两个或多个磁盘上。当写入数据时,数据同时写入所有磁盘。这样,每个磁盘都具有相同的数据副本,从而实现数据的冗余备份。如果其中一个磁盘发生故障,系统可以继续从剩余的磁盘中读取数据,确保数据的可用性和完整性。​

  • ​原理​​:数据完全镜像到≥2块磁盘
  • ​优点​​:高可靠性,读取性能提升
  • ​缺点​​:磁盘利用率仅50%
  • ​场景​​:数据库、交易系统等关键数据

3. ​​RAID 5​

RAID 5使用数据条带化(striping)的方式将数据分散存储在多个磁盘上,并通过分布式奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的磁盘上。当写入数据时,奇偶校验信息也会被更新。如果其中一个磁盘发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和数据冗余。​

  • ​原理​​:数据条带化存储,​​分布式奇偶校验​​(校验信息轮转存储)
  • ​优点​​:兼顾性能与安全,利用率(n-1)/n(n代表磁盘数量)
  • ​缺点​​:单盘故障后重建时间长
  • ​场景​​:金融、数据库等随机读写场景

4. ​​RAID 6​

与RAID 5相似,RAID 6也使用数据条带化(striping)的方式将数据分散存储在多个磁盘上,并通过分布式奇偶校验和双重奇偶校验实现数据的冗余备份。数据和奇偶校验信息被组织成数据块,其中奇偶校验信息被分布式存储在不同的磁盘上,并通过双重奇偶校验提供更高的数据冗余性。当写入数据时,奇偶校验信息也会被更新。如果其中两个磁盘发生故障,系统可以通过重新计算奇偶校验信息来恢复丢失的数据。这种方式可以同时提供性能增强和更高级别的数据冗余。​

  • ​原理​​:双奇偶校验,可容忍​​同时两块磁盘故障​
  • ​优点​​:安全性高于RAID 5
  • ​缺点​​:利用率(n-2)/n,写入性能较低
  • ​场景​​:高可靠性要求的存储系统

5. ​​RAID 10(1+0)​

RAID 10结合条带化(striping)和镜像(mirroring)实现数据的冗余备份。具体来说就是:先将磁盘两两分组,每组设置为RAID 1;再将每组RAID 1一起设置为RAID 0。这样,RAID 10在提供性能增强的同时,也提供了数据的冗余保护。​

  • ​原理​​:先镜像再条带化(需≥4块磁盘)
  • ​优点​​:兼具RAID 1可靠性和RAID 0高性能
  • ​缺点​​:磁盘利用率仅50%
  • ​场景​​:金融、大数据分析等高性能高可靠场景

▶ RAID级别对比表

​级别​​最小磁盘数​​容错能力​​利用率​​读性能​​写性能​
RAID 02100%⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
RAID 12单盘50%⭐⭐⭐⭐⭐⭐
RAID 53单盘(n-1)/n⭐⭐⭐⭐⭐⭐⭐
RAID 64双盘(n-2)/n⭐⭐⭐⭐⭐
RAID 104镜像组单盘50%⭐⭐⭐⭐⭐⭐⭐⭐⭐

三、mdadm工具详解

mdadm是Linux下管理​​软件RAID​​的核心工具,支持阵列创建、监控、修复等操作。

命令格式​

mdadm [模式] <RAID设备> [选项] <成员设备>
  • 模式​​:指定操作模式(如创建、管理、监控等)。
  • ​​RAID设备​​:虚拟 RAID 设备名(如 /dev/md0)。
  • ​​成员设备​​:物理磁盘分区(如 /dev/sdb1)。

​常用模式与参数​

​1. 创建模式 (--create/-C)​

创建新的 RAID 阵列:

mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  • -l/--level​:RAID 级别(如 01510)。
  • -n/--raid-devices​:活动磁盘数量。
  • -x/--spare-devices​:热备盘数量。
  • -a/--auto​:自动创建设备文件(yes/no)。
  • -c/--chunk​:条带大小(单位 KB,默认 64KB)。

​2. 管理模式 (--manage)​

动态调整运行中的 RAID:

mdadm /dev/md0 --add /dev/sdf # 添加磁盘 
mdadm /dev/md0 --fail /dev/sdb # 标记故障 
mdadm /dev/md0 --remove /dev/sdb # 移除磁盘
  • --add​:添加新成员盘(可作热备盘)。
  • --fail​:模拟磁盘故障。
  • --remove​:移除故障盘。

​3. 监控模式 (--monitor/-F)​

后台监控阵列状态(如邮件告警):

mdadm --monitor --daemonise --mail=admin@example.com /dev/md0
  • --daemonise​:后台运行。
  • --mail​:故障时发送邮件。

​4. 组装模式 (--assemble/-A)​

重新激活已存在的 RAID:

mdadm -A /dev/md0 /dev/sdb /dev/sdc # 手动指定磁盘 
mdadm -As --scan # 自动扫描配置文件
  • --scan​:读取 /etc/mdadm.conf 配置。

​5. 查看模式 (--detail/-D)​

显示 RAID 详细信息:

mdadm -D /dev/md0 # 详细状态 
cat /proc/mdstat # 实时概览
  • -Q/--query​:简要摘要。

​6. 停止模式 (--stop/-S)​

停用 RAID 设备:

mdadm -S /dev/md0

四、CentOS 7.9实战:创建与管理RAID 10

1. 环境准备​

准备4块可用磁盘或分区,安装mdadm软件。

组成RAID的可以是磁盘,也可以是分区,以下使用分区来代替磁盘。

  • 4个分区组成RAID 10(注意每个分区一样大最佳,sda5-sda8)
  • 1个分区作为热备份磁盘(与RAID的分区一样大,sda9)
  • 将此RAID 10设备挂载到 /mnt/raid 目录下
# 1.安装mdadm
yum install mdadm -y

# 2.查看可用磁盘(确认≥3块) 
lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  500M  0 part /boot
├─sda2   8:2    0    1G  0 part [SWAP]
├─sda3   8:3    0   17G  0 part /
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0  250M  0 part 
├─sda6   8:6    0  250M  0 part 
├─sda7   8:7    0  250M  0 part 
├─sda8   8:8    0  250M  0 part 
└─sda9   8:9    0  250M  0 part 
sr0     11:0    1  9.6G  0 rom

# 3.创建挂载点
mkdir /mnt/raid

2. 创建RAID 10阵列​

mdadm -C /dev/md0 -n4 -x1 -l10 -a yes /dev/sda{5..9}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
mdadm -D /dev/md0        # 可查看RAID设备详细数据

-C 创建模式 ;-n 活动磁盘数量 ;-x 热备份磁盘数量 ;-l RAID级别 ;-a 是否自动创建设备文件; -D 查看模式

3. 格式化与挂载​

mkfs.xfs /dev/md0            # 格式化为xfs文件系统
mount /dev/md0 /mnt/raid     # 挂载

 此时RAID 10就可以正常使用了。

df -Th /mnt/raid        # 查看磁盘空间
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/md0       xfs   490M   26M  465M   6% /mnt/raid

为什么我分配了5块250M的磁盘,但是 /dev/md0 只有490M大小?

答:这是由RAID 10的特性所决定的,这5块磁盘中除去1个热备磁盘作为备用,剩下4块磁盘,但其中一半的容量用来存放镜像数据,所以总体只有约500M大小的磁盘容量。

4. 模拟故障与恢复​

mdadm /dev/md0 --fail /dev/sda8        # 标记sdb为故障盘 
mdadm /dev/md0 --remove /dev/sda8       # 移除故障盘 
mdadm /dev/md0 --add /dev/sda8          # 添加新盘并等待重建 
watch cat /proc/mdstat                 # 监控重建进度 

/dev/sda8其实并未损坏,只是被标记为损坏,因此可以模拟新盘使用。现实中需要进行硬盘更换的操作。

5. 配置开机自动挂载​

RAID也有配置文件​,即/etc/mdadm.conf,但默认不会自动生成,需要我们手动创建

# 1. 保存阵列配置
mdadm -D --scan >> /etc/mdadm.conf 
# 2. 编辑fstab
echo "/dev/md0 /mnt/raid xfs defaults 0 0" >> /etc/fstab 
# 3. 测试挂载
mount -a

6. 安全关闭RAID​

当确认不再使用RAID时,需要安全关闭RAID。尤其是使用磁盘分区的情况,如果只将/dev/md0卸载,但忘记关闭RAID,那么未来在重新划分/dev/sda时可能出现错误。​

# 卸载并取消开机自动挂载 
umount /mnt/raid
vim /etc/fstab
#/dev/md0  /mnt/raid  xfs  defaults  0 0  # 将这一行删除或注释掉
mdadm -S /dev/md0                         # 关闭RAID
mdadm --zero-superblock /dev/sda{5..9}    # 清除磁盘超级块(彻底销毁)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

俗人不俗鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值