磁盘阵列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/sdc
1查看阵列信息;
[root@web ~]# mdadm -Ds [root@web ~]# mdadm -D /dev/md0
1
2格式化磁盘并分区挂载;
[root@web ~]# mkfs.xfs /dev/md0 [root@web ~]# mkdir /raid0 [root@web ~]# mount /dev/md0 /raid0/ [root@web ~]# df -h
1
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/sde
1检查当然
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/sde
1
# 配置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/md5
1
2
3
4
5模拟一块磁盘损坏,查看
/dev/sdj
备用磁盘是否会顶上;[root@web ~]# mdadm /dev/md5 --fail /dev/sdg [root@web ~]# mdadm -D /dev/md5
1
2将故障的
/dev/sdg
盘剔除;[root@web ~]# mdadm /dev/md5 -r /dev/sdg
1再次模拟—块磁盘损坏,检查数据是否丢失;
[root@web ~]# mdadm /dev/md5 --fail /dev/sdh [root@web ~]# mdadm -D /dev/md5
1
2
Last Updated: 2021/11/25, 10:57:04