1、基础
1.1、什么是raid
将多块盘组合进行排列,提高磁盘的整体读写能力,和冗余能力,通常我们将其称为磁盘阵列。
1.2、为什么需要raid
1、提升读写能力。(在RAID中,可以让很多磁盘同时传输数据,因为多块磁盘在逻辑上感觉是一个磁盘,所以使用RAID可以达到单个磁盘的几倍、几十倍甚至上百倍的速率。)
⒉、保证数据安全。(硬盘其实非常的脆弱,它经常会坏掉。所以有了RAID这个东西。它的目的是将好几个硬盘合并在一起,就算硬盘坏了一个,剩下还有好几个硬盘是正常的,这样服务器还能正常提供服务。保证磁盘高可用。)
3、raid可以预防数据丢失,但并不能百分百保证数据不丢,所以在使用RAID的同时还是要备份重要的数据。
2、RAID常用模式
2.1、RAID-0
2.1.1、介绍
RAID-0条带卷,最少两块盘。读写性能好,但没有容错机制。坏一块磁盘数据全丢。
磁盘空间使用率 : 100%,成本低。
读性能 : N * 单块磁盘的读性能;
写性能 : N * 单块磁盘的写性能;
冗余 : 无,任何一块磁盘损坏都将导致数据不可用;
应用场景 : 无状态服务(web);
2.1.2、架构图

2.2、RAID-1
2.2.1、介绍
RAID-1镜像卷,写入性能一般、读取性能快、有容错机制,但磁盘有50%浪费
磁盘空间使用率 : 50%成本较高。
读性能 : N * 单块磁盘的读性能﹔
写性能 : 1 * 单块磁盘的写性能﹔
冗余 : 在这一对镜像盘中有一块磁盘可以使用,那么无影响;
应用场景 : 有状态服务(db);
2.2.2、架构图

2.3、RAID-5
2.3.1、介绍
RAID5校验卷,至少3块相同大小的盘,并且只允许坏一块盘,有效空间1/3,读写速度快,坏掉—块盘,读会慢。
磁盘空间利用率:(N-1),即只浪费—块磁盘用于奇偶校验;
读性能:(n-1) * 单块磁盘的读性能,接近RAID-0的读性能;
写性能:(n-1) * 单块磁盘的写性能,接近RAID-O的写性能;
冗余:只允许一块磁盘损坏;
应用场景:常规选择(all);
2.3.2、架构图

2.4、RAID-10
2.4.1、介绍
RAID10,先做RAID-1 ,在做RAID-0
磁盘空间利用率:50%
读性能︰
写性能︰
冗余:只要一对镜像盘中有一块磁盘可以使用就没问题。。应用场景︰数据库(db) ;
2.4.2、架构图

3、实现RAID的方式
3.1、软raid
软RAID通过操作系统软件来实现,性能远不如硬RAID,仅测试效果;
3.2、硬raid
硬RAID使用硬件阵列卡;在安装操作系统之前进入BIOS配置
4、软RAID配置-实战【不适合生产环境】
4.1、RAID环境准备
4.1.1、硬盘数量准备
系统盘:1个【只要系统能跑起来就可以】
测试raid硬盘:3块
4.1.2、安装软raid工具
4.1.3、mdadm命令介绍
mdadm-磁盘阵列命令选项
创建模式:
-c︰创建阵列;
-1∶指定指定级别;
-n∶指定设备数量;
-v︰指定设备名称;
-x︰指定备用磁盘;
管理模式:
--add
--remove
--fail
4.2、RAID-0实战
4.2.1、硬盘准备
4.2.2、创建raid-0
]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
4.2.3、查看队列信息
]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=034f4d30:3ea88a61:85832d32:067a13ea
]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 05:00:36 2023
Raid Level : raid0
Array Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sat Apr 22 05:00:36 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : 192.168.10.35:0 (local to host 192.168.10.35)
UUID : 034f4d30:3ea88a61:85832d32:067a13ea
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4.2.4、格式化磁盘并分区挂载
~]# mkfs.xfs /dev/md0 ]# mkdir /mnt/md0
]# mount /dev/md0 /mnt/md0
]# df -h | grep md
/dev/md0 10G 33M 10G 1% /mnt/md0
4.2.5、删除磁盘队列
# 测试好,就可以删除掉了
mdadm --stop /dev/md0
4.3、RAID-1实战
4.3.1、硬盘准备
/dev/sdb
/dev/sdc
/dev/sdd # 热备盘
4.3.2、创建raid-1
mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc
4.3.3、查看队列信息
]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=ad2b1316:425b9831:9fbe19a0:74402323
]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 05:23:54 2023
Raid Level : raid1
Array Size : 5237760 (5.00 GiB 5.36 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sat Apr 22 05:24:21 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : 192.168.10.35:0 (local to host 192.168.10.35)
UUID : ad2b1316:425b9831:9fbe19a0:74402323
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4.3.4、格式化磁盘并分区挂载
mkfs.xfs /dev/md0 -f
mount /dev/md0 /mnt/md0
4.3.5、模拟一块硬盘挂掉,看看还能不能正常写入数据
# 将/dev/sdb设置为挂掉
mdadm /dev/md0 --fail /dev/sdb
# 数据还是写入,读取都正常
echo "test" >/mnt/md0/index.html
cat /mnt/md0/index.html
4.3.6、检查状态
~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 05:23:54 2023
Raid Level : raid1
Array Size : 5237760 (5.00 GiB 5.36 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sat Apr 22 05:28:59 2023
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Consistency Policy : resync
Name : 192.168.10.35:0 (local to host 192.168.10.35)
UUID : ad2b1316:425b9831:9fbe19a0:74402323
Events : 27
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync /dev/sdc
0 8 16 - faulty /dev/sdb 这个失败了
4.3.7、移除挂掉的硬盘
mdadm /dev/md0 -r /dev/sdb
4.3.8、删除磁盘队列
# 测试好,就可以删除掉了
mdadm --stop /dev/md0
4.4、RAID-5-实战
4.4.1、硬盘准备
/dev/sdb
/dev/sdc
/dev/sdd
4.4.2、创建raid-5
mdadm -C -v /dev/md0 -l 5 -n 3 /dev/sd{b,c,d}
4.4.3、检查状态
~]# mdadm -Ds
ARRAY /dev/md0 metadata=1.2 name=192.168.10.35:0 UUID=d8c78f77:a49e0ff3:7faae8b2:5274f643
~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Apr 22 05:36:20 2023
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sat Apr 22 05:36:47 2023
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : 192.168.10.35:0 (local to host 192.168.10.35)
UUID : d8c78f77:a49e0ff3:7faae8b2:5274f643
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
3 8 48 2 active sync /dev/sdd
4.4.4、格式化磁盘并分区挂载
mkfs.xfs /dev/md0 -f
mount /dev/md0 /mnt/md0
4.4.5、模拟挂掉一块硬盘,检查数据是否可以写入
mdadm /dev/md0 --fail /dev/sdb
echo "test" >/mnt/md0/index.html
cat /mnt/md0/index.html
# 还是可以正常写入数据
4.4.6、删除磁盘队列
# 测试好,就可以删除掉了
mdadm --stop /dev/md0