【Linux系列教程】RAID磁盘阵列

一、RAID的介绍

  1. 组织、使用硬盘的一种方式
  2. 将多块物理硬盘组织成一个逻辑硬盘
  3. 优势
    • 提升数据的读写速度
    • 提升数据的可靠性

二、RAID的类型

1.RAID0 条带卷

  • 至少需要2块硬盘
  • 优势
    • 提升数据的读写速度
    • 容量是所有硬盘之和
  • 劣势
    • 数据可靠性低

2.RAID1 镜像卷

  • 至少需要2块硬盘
  • 优势
    • 提升数据的可靠性
  • 劣势
    • 损失1/2的容量
    • 写速度相对低

3.RAID5 奇偶校验卷

  • 至少3块硬盘
  • 优势
    • 提升数据读写速度、可靠性(校验码)
    • 最多只支持坏1块盘
  • 实际的存储空间
    • 少1块硬盘的容量,用于存储校验码

raid1

4.RAID6

  • 与RAID 5工作方式类似
  • 最多支持同时损坏2块盘

5.RAID10

  • 至少4块盘
  • 优势
    • 提升速度,可靠性
    • 容量损失1/2

raid2

三、RAID实现方式

1.软RAID

  • mdadm命令

2.硬RAID

  • RAID卡
  • 同品牌、同型号、同厂商的硬盘
  • 硬盘必须是裸设备

四、模拟RAID5

1.创建RAID5

[root@localhost ~]# mdadm -C /dev/md1 -n 3 -l 5 /dev/sdc /dev/sdd /dev/sde   
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
  • -C 创建
  • -l 指定RAID的级别
  • -n 指定磁盘的个数
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sde[3] sdd[1] sdc[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
      [===>.................]  recovery = 18.4% (3867648/20954112) finish=1.3min speed=203560K/sec

2.使用RAID

[root@localhost ~]# mkfs -t ext4 /dev/md1 
[root@localhost ~]# mkdir /test4
[root@localhost ~]# mount /dev/md1 /test4

[root@localhost ~]# touch /test4/{1..100}.mp3
[root@localhost ~]# ls /test4/
100.mp3  16.mp3  22.mp3  29.mp3  35.mp3
[root@localhost ~]# df -hT | grep "md1"
/dev/md1                ext4       40G   49M   38G    1% /test4

3.热备盘

  • 减少故障的修复时间

添加热备盘

[root@localhost ~]# mdadm -a /dev/md1 /dev/sdf
mdadm: added /dev/sdf

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sdf[4](S) sde[3] sdd[1] sdc[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

模拟硬盘故障

[root@localhost ~]# mdadm -f /dev/md1 /dev/sdd 
mdadm: set /dev/sdd faulty in /dev/md1

查看RAID5自动修复

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md1 : active raid5 sdf[4] sde[3] sdd[1](F) sdc[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
      [=>...................]  recovery =  7.6% (1600128/20954112) finish=1.4min speed=228589K/sec