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

一、RAID的介绍

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

二、RAID的类型

1.RAID0 条带卷

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

2.RAID1 镜像卷

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

3.RAID5 奇偶校验卷

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

4.RAID6

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

5.RAID10

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

三、RAID实现方式

1.软RAID

  • mdadm命令

2.硬RAID

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

四、模拟RAID5

1.创建RAID5

  • 01
  • 02
  • 03
[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 指定磁盘的个数
  • 01
  • 02
  • 03
  • 04
  • 05
[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

  • 01
[root@localhost ~]# mkfs -t ext4 /dev/md1
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
[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
  • 01
  • 02
[root@localhost ~]# df -hT | grep "md1" /dev/md1 ext4 40G 49M 38G 1% /test4

3.热备盘

  • 减少故障的修复时间

添加热备盘

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
[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>

模拟硬盘故障

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

查看RAID5自动修复

  • 01
  • 02
  • 03
  • 04
  • 05
[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