1、RAID 概念概述

        RAID(独立冗余磁盘阵列(Redundant Array of Independent Disks)) 是一种将多块硬盘组合成一个逻辑存储单元的技术。
        通过特定的数据分布算法和冗余机制,RAID 能够在不同程度上实现以下目标:
                1. 提高性能:通过并行读写操作提升整体速度;
                2. 提高可靠性:通过数据冗余(如镜像或奇偶校验)实现容错;
                3. 扩大容量:将多块硬盘合并为一个更大的逻辑卷。

2、常见的 RAID 级别

2.1 RAID 0(条带化 / Striping

        特点:数据分块后分布在多块硬盘上。
        优点:读写性能提升显著。
        缺点:没有冗余,一块硬盘损坏会导致全部数据丢失。
        使用场景:对性能要求高但数据安全要求低的环境(如临时缓存、游戏盘)。
                                

2.2 RAID 1(镜像 / Mirroring

        特点:两块硬盘存储完全相同的数据副本。
        优点:高可靠性,一块盘损坏可自动切换到另一块。
        缺点:存储利用率仅 50%,成本较高。
        使用场景:重要数据存储(如数据库系统、服务器系统盘)。
                                

2.3 RAID 5(带奇偶校验的条带化)

        特点:数据和奇偶校验信息分布在所有磁盘上。
        优点:在提升性能的同时提供一定的容错能力(可容忍一块盘损坏)。
        缺点:写入速度略低于 RAID 0,重建时间长。
        使用场景:常用于企业文件服务器和网络存储(NAS)。
                                 
  

2.4 RAID 10RAID 1+0

        特点:先做镜像(RAID 1),再条带化(RAID 0)。
        优点:兼顾性能与可靠性。
        缺点:至少需要 4 块硬盘,成本较高。
        使用场景:数据库、高性能服务器。
                             

3、RAID 的应用建议

应用场景 推荐级别 说明
高速临时存储 RAID 0 强调速度,不关心数据安全
系统盘 / 数据安全高 RAID 1  提供镜像冗余
文件服务器 RAID 5 平衡性能与安全
高性能数据库 RAID 10 综合性能与可靠性

4、 RAID  实战

注意:由于磁盘阵列RAID 是在硬件设备上去做,现场没有环境,只能在操作系统上安装软RAID .

4.1、检查是否已安装mdadm软件包

rpm -q mdadm     # 查看是否安装mdadm,没有安装执行下面命令安装
yum install -y mdadm

4.2、使用fdisk工具进行分区

使用fdisk.工具将新磁盘设备/dev/sdb/dev/sdc/dev/sdd/dev/sde划分出主分区sdb1、 sdc1、 sdd1sde1, 并且把分区类型的ID标记号改为"fd”

echo "- - - " > /sys/class/scsi_host/host0/scan   # 刷新虚拟机的磁盘
fdisk -l     # 查看新建磁盘
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
更改磁盘设置,以 /dev/sdb 为例:
全部做完之后查看
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x45105c84

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20971519    10484736   fd  Linux raid autodetect

磁盘 /dev/sdc:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd91272ee

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    20971519    10484736   fd  Linux raid autodetect

磁盘 /dev/sdd:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9d3973c9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    20971519    10484736   fd  Linux raid autodetect

磁盘 /dev/sde:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x125e5c28

   设备 Boot      Start         End      Blocks   Id  System
/dev/sde1            2048    20971519    10484736   fd  Linux raid autodetect

4.3、创建RAID设备

4.3.1   创建 RAID  5  顺序

① 创建RAID 5
mdadm -C -v /dev/md0 [-a yes] -15 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
        -C:表示新建;
        -v:显示创建过程中的详细信息。
        /dev/md0: 创建RAID5的名称。
        -ayes:--auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
        -1: 指定RAID 的级别,15表示创建RAID5.
        -n:指定使用几块硬盘创建RAID, n3表示使用3块硬盘创建RAID
        /dev/sd [bcd]1: 指定使用这3块磁盘分区去创建RAID
        -x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用
        /dev/sde1: 指定用作于备用的磁盘
② 查看RAID磁盘详细信息
cat /proc/mdstat #还能查看创建RAID的进度
或者
mdadm -D /dev/md0

③ 用watch命令来每隔-一段时间刷新/proc/mdstat的输出

watch -n 10 'cat /proc/mdstat'
④ 检查磁盘是否ELRAID
mdadm -E /dev/sd[b-e]1

看指定设备(磁盘或分区)上的 RAID 元数据(superblock)信息

⑤ 创建并挂载文件系统

mkfs -t xfs /dev/md0
mkdir /myraid
mount /dev/md0 /myraid/
df -Th
cp /etc/fstab /etc/fstab.bak
vim /etc/fstab
/dev/md0 /myraid xfs defaults 0 0

⑥实现故障恢复

mdadm /dev/md0 -f /dev/sdb1 #模拟/dev/sdb1故障
mdadm -D /dev/md0 #查看发现sde1已顶替sdb1

⑦创建/etc/mdadm.cinf 配置文件,方便管理软RAID的配置,比如启动、停止

echo ' DEVICE /dev/sdc1 /dev/sdb1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
mdadm命令其它常用选项
        -r: 移除设备
        -a: 添加设备
        -S: 停止RAID
        -A: 启动RAID
mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md0 -r /dev/ sdb1
mdadm /dev/md0 -a /dev/ sde1


umount /dev/md0
mdadm -S /dev/md0
mdadm -As /dev/md0
#-s: 指查找/etc/mdadm. conf 文件中的配置信息

4.3.2 创建RAID 10 (先做镜象,再做条带)

mdadm -Cv /dev/md0 -11 -n2 /dev/sd[bc]1
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1
mdadm -Cv /dev/md10 -l0 -n2 /dev/md0/dev/md1

其他步骤和RAID 5 一致。

总结

RAID技术通过不同的组合方式,在性能、可靠性和存储效率之间提供了多种选择:

​​RAID 0​​: 通过数据条带化(Striping)提升性能,但没有冗余,一旦一块硬盘损坏,所有数据都会丢失。
​​RAID 1​​: 采用数据镜像(Mirroring)策略,两块硬盘存储完全相同的数据,高可靠性,但存储利用率为50%,成本较高。
​​RAID 5​​: 结合了条带化和奇偶校验,提供了较好的性能与一定的容错能力(可容忍一块硬盘故障),但有重建时间较长的缺点。最小需要三块磁盘。
​​RAID 10​​: 是RAID 1和RAID 0的组合,利用镜像和条带化,能够容忍两块硬盘同时故障的同时兼顾了性能和冗余,是企业中较为常用的一种方案。

根据实际需求选择合适的RAID级别,可以有效提升存储系统的性能和可靠性。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐