Linux中RAID技术文档及操作指南

一、RAID 概述

RAID(Redundant Array of Independent Disks):通过组合多个物理磁盘提升性能、可靠性或两者兼具的技术。


二、RAID 级别详解

级别 最少磁盘数 原理 优势 劣势
RAID 0 2 N块相同大小的存储空间,数据分割为N份,每个空间存1/N 读写速度提升 N 倍 数据安全性不变,无冗余,任一磁盘损坏数据丢失
RAID 1 2 N块相同空间,同一份数据,拷贝N份 提高数据安全性(允许损坏 N-1 块盘) 浪费存储空间,空间利用率仅 50%
RAID 5 3 数据分块存储 + 分布式校验(校验信息轮转存储) 空间利用率高((N-1)/N),允许损坏 1 块盘 写入速度较慢(需计算校验)
RAID 10 4 RAID 1 + RAID 0:先进行RAID 1,再进行RAID 0 高读写速度 + 高容错性 空间利用率仅 50%
RAID 50 6 RAID 5 + RAID 0:先进行RAID 5,再进行RAID 0 高容错 + 高性能 成本高,配置复杂

关键特性对比

  • 安全性:RAID 1/10 > RAID 5/50 > RAID 0
  • 空间利用率:RAID 0 > RAID 5/50 > RAID 1/10
  • 读写速度:RAID 0 > RAID 10 > RAID 5/50

三、实现操作

使用虚拟机进行实验,为了方便实验,对一块硬盘进行分区后操作,不额外添加硬盘

前提:配置好 yum 仓库,并下载 mdadm 工具

1、创建RAID 0
  1. 创建2个分区

    因为RAID 0至少需要2个磁盘数,所以创建2个分区模拟两个磁盘,每个1G

    fdisk /dev/sdb
    
    partprobe /dev/sdb
    

    在这里插入图片描述

  2. 创建RAID 0

    把创建的两个分区建立成RAID等级为RAID 0的md0(设置名,可自定义,必须在/dev下)

    -C 创建 -v 显示过程 -l RAID等级 -n 磁盘数

    mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb{1..2}
    

    在这里插入图片描述

  3. 对创建的RAID进行文件系统创建并挂载

    mkfs.xfs /dev/md0
    mkdir /md0
    blkid
    vim /etc/fstab
    	UUID=c5004996-046d-4c3e-933c-8b826f6dcb2a /md0 xfs defaults 0 0
    	
    mount -a
    df -Th
    

    在这里插入图片描述

2、创建RAID 1
  1. 创建2个分区

    因为RAID 1至少需要2个磁盘数,所以创建2个分区模拟两个磁盘,每个1G

    fdisk /dev/sdb
    
    partprobe /dev/sdb
    

    在这里插入图片描述

  2. 创建RAID 1

    把创建的两个分区建立成RAID等级为RAID 1的md1

    mdadm -Cv /dev/md1 -l 1 -n 2 /dev/sdb{3..4}
    

    在这里插入图片描述

  3. 对创建的RAID进行文件系统创建并挂载

    同上,略

3、创建RAID 5
  1. 创建4个分区

    因为RAID 5至少需要3个磁盘数、

    创建2个分区模拟两个数据盘,1个校验盘,以及1个热备盘(非必要),每个1G

    fdisk /dev/sdb
    
    partprobe /dev/sdb
    

    在这里插入图片描述

  2. 创建RAID 5

    把创建的4个分区建立成RAID等级为RAID 5的md5

    –spare-devices=1 设置热备盘

    mdadm -Cv /dev/md5 -l 5 -n 3 /dev/sdb{5..7} --spare-devices=1 /dev/sdb8
    

    在这里插入图片描述

  3. 模拟硬盘故障

    使用 mdadm -D 查看前后对比

    发现一个数据盘故障后,热备盘开始

    mdadm -f /dev/md5 /dev/sdb5
    

    在这里插入图片描述

    在这里插入图片描述

  4. 热移除故障盘

    mdadm -r /dev/md5 /dev/sdb5
    
  5. 添加热备盘

    mdadm -a /dev/md5 /dev/sdb5
    
4、创建RAID 10
  1. 创建4个分区

    因为RAID 1至少需要2个磁盘数,所以创建2个分区模拟两个磁盘,每个1G

    需要2个RAID 1,建立成RAID 0

    fdisk /dev/sdb
    
    partprobe /dev/sdb
    

    在这里插入图片描述

  2. 创建2个 RAID 1

    把创建的4个分区建立成2个RAID等级为RAID 1的 md101 和 md102

    mdadm -Cv /dev/md101 -l 1 -n /dev/sdb9 /dev/sdb10
    mdadm -Cv /dev/md102 -l 1 -n 2 /dev/sdb11 /dev/sdb12
    
  3. 创建 RAID 10

    把创建的的 md101 和 md102建立成2个RAID等级为RAID 0的md10

    mdadm -Cv /dev/md10 -l 0 -n 2 /dev/md101 /dev/md102
    
  4. 查看

    使用 mdadm -D 查看只能查看最后建立时的

    使用 lsblk 可以查看每一个磁盘的RAID等级

    lsblk
    

    在这里插入图片描述

5、删除RAID 0
  1. 取消挂载

    umount /md0
    vim /etc/fstab
    
  2. 删除RAID 0

    mdadm -S /dev/md0
    rm -rf /md0
    mdadm --zero-superblock /dev/sdb1
    mdadm --zero-superblock /dev/sdb2
    

四、关键命令总结

命令 功能
mdadm -Cv /dev/设备名 -l 级别 -n 磁盘数 [disks] 创建 RAID 设备
mdadm -Ds 查看所有 RAID 详细信息
mdadm -D /dev/设备名 查看指定 RAID 状态
mdadm -f /dev/设备名 /dev/磁盘名 模拟磁盘故障
mdadm -r /dev/设备名 /dev/磁盘名 从 RAID 中移除磁盘
mdadm -a /dev/设备名 /dev/磁盘名 添加磁盘到 RAID
mdadm --zero-superblock /dev/磁盘名 清除磁盘 RAID 元数据

注意事项

  • 所有磁盘需相同容量,避免空间浪费
  • 移除 RAID 后必须清除元数据(--zero-superblock),否则重建时可能报错
  • 热备盘(Spare)需提前配置,故障时自动重建
Logo

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

更多推荐