磁盘阵列RAID
# 什么是RAID
- RAID简称磁盘阵列;
- 什么是阵列,例如:古代打仗时为什么要对士兵进行排兵布阵,其目的在于提高士兵整体的作战能力,而不是某个士兵的战斗力;
- 那么回到磁盘中,我们也可以将多块盘组合进行排列,提高磁盘的整体读写能力,和冗余能力,通常我们将其称为磁盘阵列;
# 为什么需要RAID
- 提升读写能力;(在RAID中,可以让很多磁盘同时传输数据,因为多块磁盘在逻辑上感觉是一个磁盘,所以使用RAID可以达到单个磁盘的几倍、几十倍甚至上百倍的速率。)
- 保证数据安全;(硬盘其实非常的脆弱,它经常会坏掉。所以有了RAID这个东西。它的目的是将好几个硬盘合并在一起,就算硬盘坏了一个,剩下还有好几个硬盘是正常的,这样服务器还能正常提供服务。保证磁盘高可用。)
- RAID可以预防数据丢失,但并不能百分百保证数据不丢,所以在使用RAID的同时还是要备份重要的数据;
# 实现RAID的几种模式
# RAID0
RAID0条带卷,最少两块盘。读写性能好,但没有容错机制,坏一块磁盘数据全丢;- 磁盘空间使用率:100%,成本低
- 读性能:
N*单块磁盘的读性能; - 写性能:
N*单块磁盘的写性能; - 冗余:无,任何一块磁盘损坏都将导致数据不可用;
- 应用场景:临时数据缓存;

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

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

# RAID10
RAID10,先做RAID1,再做RAID0;- 磁盘空间利用率:50%
- 读性能:
- 写性能:
- 冗余:只要一对镜像盘中有一块磁盘可以使用就没问题;
- 应用场景:数据库(db);

# 实现RAID的方式
# 硬RAID
- 硬
RAID使用硬件阵列卡;在安装操作系统之前进入BIOS配置;
# 软RAID
- 软
RAID通过操作系统软件来实现,性能远不如硬RAID,仅测试效果;
# 软RAID配置方法
# RAID环境准备
- 由于使用操作系统模拟的软
RAID,所以需要在虚拟机上添加9块硬盘,来完成实验; - 创建软
RAID命令mdadm,如果没有使用yum install mdadm安装即可;mdadm磁盘阵列命令选项;- 创建模式:
-C:创建阵列;-l:指定指定级别;-n:指定设备数量;-v︰指定设备名称;-x︰指定备用磁盘;
- 管理模式:
-a/--add:添加磁盘;-r/--remove:移除磁盘;-f/--fail:标记指定磁盘为损坏;
# 配置RAID0
创建RAID0实验环境:
| raid种类 | 磁盘 | 热备盘 |
|---|---|---|
| raid0 | sdb、sdc |
创建
raid0;[root@web ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc1查看阵列信息;
[root@web ~]# mdadm -Ds [root@web ~]# mdadm -D /dev/md01
2格式化磁盘并分区挂载;
[root@web ~]# mkfs.xfs /dev/md0 [root@web ~]# mkdir /raid0 [root@web ~]# mount /dev/md0 /raid0/ [root@web ~]# df -h1
2
3
4
# 配置RAID1
创建RAID1实验环境:
| raid种类 | 磁盘 | 热备盘 |
|---|---|---|
| raid1 | sdd、sde | sdf |
准备
sdd、sde两块盘,然后创建阵列为RAID1,准备sdf为备用盘;# 1.创建raid1阵列 [root@web ~]# mdadm -C -v /dev/md1 -l 1 -n 2 /dev/sd[d,e,f]1
2格式化磁盘并分区挂载;
[root@web ~]# mkfs.xfs -f /dev/md1 [root@web ~]# mkdir /raid1 [root@web ~]# mount /dev/md1 /mnt/raid1/1
2
3使用
--fail模拟RAID1中数据盘/dev/sde出现故障,观察/dev/sdf备用盘能否自动顶替故障盘;[root@web ~]# mdadm /dev/md1 --fail /dev/sde1检查当然
raid状态;[root@web ~]# mdadm -D /dev/md1 Number Major Minor RaidDevice state 0 8 96 0 active sync /dev/sdd 2 8 128 1 spare rebuilding /dev/sdf #热备盘已经在同步数据 1 8 112 - faulty /dev/sde #故障盘1
2
3
4
5移除损坏的磁盘;
[root@web ~]# mdadm /dev/md1 -r /dev/sde1
# 配置RAID5
创建RAID5实验环境:
| raid种类 | 磁盘 | 热备盘 |
|---|---|---|
| raid5 | sdg、sdh、sdi | sdj |
创建
raid5也可以在最后使用-x添加备用盘;[root@web ~]# mdadm -C -v /dev/md5 -l 5 -n 3 /dev/sd{g,h,i,j}1格式化磁盘并分区挂载;
[root@web ~]# mkfs.xfs -f /dev/md5 [root@web ~]# mkdir /mnt/raid5 [root@web ~]# mount /dev/md5 /raid5/ [root@web ~]# echo "Raid" > /raid5/file [root@web ~]# mdadm -D /dev/md51
2
3
4
5模拟一块磁盘损坏,查看
/dev/sdj备用磁盘是否会顶上;[root@web ~]# mdadm /dev/md5 --fail /dev/sdg [root@web ~]# mdadm -D /dev/md51
2将故障的
/dev/sdg盘剔除;[root@web ~]# mdadm /dev/md5 -r /dev/sdg1再次模拟—块磁盘损坏,检查数据是否丢失;
[root@web ~]# mdadm /dev/md5 --fail /dev/sdh [root@web ~]# mdadm -D /dev/md51
2
Last Updated: 2021/11/25, 10:57:04