Linux RAID 原理及配置

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是通过将多个物理磁盘组合为一个逻辑存储单元,实现提升性能增加数据冗余(容错) 或两者兼顾的技术。Linux 中主要通过软件 RAID(基于操作系统实现)或硬件 RAID(基于独立控制器)实现,其中软件 RAID 因成本低、灵活性高而被广泛使用(依赖 mdadm 工具)。

一、RAID 核心原理(常见级别)

RAID 有多个标准级别(如 RAID0/1/5/6/10 等),不同级别通过数据分布方式(条带化、镜像、奇偶校验)实现不同的性能和冗余特性。

1. RAID0(条带化)

  • 原理:将数据分成小块(条带),分散存储在多个磁盘上,读写时多磁盘并行操作。
  • 特点
    • 无冗余(无容错能力),任何一块磁盘故障会导致全部数据丢失。
    • 性能最优(读写速度为单盘的 N 倍,N 为磁盘数量)。
    • 总容量 = 所有磁盘容量之和(无容量损失)。
  • 最少磁盘:2 块。
  • 适用场景:对性能要求高、数据临时存储(如视频编辑缓存),不适合重要数据。

2. RAID1(镜像)

  • 原理:将数据同时写入两块磁盘(互为镜像),每块磁盘存储完整数据副本。
  • 特点
    • 冗余最高(允许 1 块磁盘故障,数据仍完整)。
    • 读性能提升(可并行读两块盘),写性能略低(需写两份数据)。
    • 总容量 = 最小单盘容量(容量损失 50%)。
  • 最少磁盘:2 块。
  • 适用场景:重要数据存储(如系统分区、数据库日志),优先保证数据安全。

3. RAID5(分布式奇偶校验)

  • 原理:数据条带化存储在多块磁盘,同时计算奇偶校验信息并分布式存储在所有磁盘(每块盘都包含部分校验数据)。
  • 特点
    • 允许 1 块磁盘故障(通过校验信息重建数据)。
    • 性能均衡(读接近 RAID0,写因校验计算略低)。
    • 总容量 =(N-1)× 最小单盘容量(N 为磁盘数量,损失 1 块盘容量用于校验)。
  • 最少磁盘:3 块。
  • 适用场景:中小规模存储(如文件服务器),平衡性能与冗余。

4. RAID6(双重奇偶校验)

  • 原理:在 RAID5 基础上增加第二组奇偶校验信息,分布式存储。
  • 特点
    • 允许 2 块磁盘同时故障(容错能力更强)。
    • 总容量 =(N-2)× 最小单盘容量(损失 2 块盘容量)。
    • 写性能低于 RAID5(因双重校验计算)。
  • 最少磁盘:4 块。
  • 适用场景:大规模存储(如数据中心),数据重要性极高(不允许因双盘故障丢失数据)。

5. RAID10(RAID1 + RAID0)

  • 原理:先将磁盘两两组成 RAID1 镜像(保证冗余),再将多个镜像组组成 RAID0 条带化(提升性能)。
  • 特点
    • 兼顾冗余(允许每组镜像中 1 块盘故障)和性能(并行读写)。
    • 总容量 =(N/2)× 最小单盘容量(N 为磁盘数量,需偶数)。
    • 成本高(需多块磁盘)。
  • 最少磁盘:4 块(2 组镜像)。
  • 适用场景:高 IO 需求且数据重要的场景(如数据库服务器)。

5. RAID50(RAID5 + RAID0)

二,实验步骤:

添加一块新硬盘sdb,创建1G的分区代替一块硬盘。

1.创建raid0

1.1添加一块硬盘sdb 20G,创建两个1G的分区代替两个硬盘
lsblk  查看磁盘名称

yum install -y mdadm   安装工具mdadm

1.2将/dev/sdb和/dev/sdc建立RAID等级为RAID 0的md0(设备名)

mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2

mdadm -D /dev/md0  查看RAID详细信息
1.3对创建的RAID进行文件系统创建并挂载

mkfs.xfs /dev/md0 
mkdir /raid5
临时挂载
mount /dev/md5 /raid5
blkid /dev/md0
echo "UUID=8eafdcb6-d46a-430a-8004-d58a68dc0751 /raid5 xfs defaults 0 0" >> /etc/fstab


2、删除raid0

umount /dm0
mdadm -S /dev/md0
rm -rf /dm0
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
vi /etc/fstab
UUID=8eafdcb6-d46a-430a-8004-d58a68dc0751 /raid0 xfs defaults 0 0  #删除此行

2.创建raid1

步骤和创建raid0一样,使用两块硬盘(1G),但是- l的等级为1,效果是dm1的大小只有1G

3、raid 5

利用磁盘分区新建4个磁盘分区,每个大小为1 GB。用3个1 GB的分区来模拟raid 5,加一个热备盘。
mdadm -Cv /dev/md5 -l5 -n3 /dev/sdb{1..3} --spare-devices=1 /dev/sd5  
模拟硬盘故障
3.1查看:
 mdadm -D /dev/md5  

3.2将sdb1设置故障
mdadm -f /dev/md5 /dev/sdb1  查看RAID的详细信息,命令如下。
 mdadm -D /dev/md5   从以上结果可以发现原来的热备盘/dev/sd并正在参与RAID 5的重建,而原来的/dev/sdb1变成了坏盘。

3.3 热移除故障盘,命令如下:
 mdadm -r /dev/md5 /dev/sdb1  格式化RAID并进行挂载,命令如下:
mdadm -a /dev/md5 /dev/sdb1 添加
mkfs.xfs /dev/md5
mkdir /md5
blkid /dev/md5
echo "UUID=8eafdcb6-d46a-430a-8004-d58a68dc0751 /raid0 xfs defaults 0 0" >> /etc/fstab

4、raid 10 创建四个分区,(两个raid1 组成raid0)

4.1 四个分区;

4.2 创建两个raid1:

mdadm -Cv /dev/md101 -l 1 -n 2 /dev/sdb{6..7}
mdadm -Cv /dev/md102 -l 1 -n 2 /dev/sdb{8..9}

4.3 创建raid 0

mdadm -Cv /dev/md10 -l 0 -n 2 /dev/md101 /dev/md102

Logo

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

更多推荐