什么是raid 磁盘冗余阵列
这是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。
大白话的解释
磁盘冗余阵列,就是将很多块硬盘组合成一个整体,不同的RAID级别,可以实现不同的功能
如加速数据读写、如实现数据备份。
raid技术的作用
- 提高IO能力,磁盘并行读写
- 提高耐用性,磁盘冗余算法来实现
- 具备冗余功能,节约成本
raid级别的作用、以及区别
- raid0
最小磁盘数: 2
优点:性能提升(写入和读取速度)。数据分别存入两个不同的磁盘
缺点:没有数据冗余。数据不安全
业务用途:直播,IPTV,VOD边缘服务器
- raid1
最小磁盘数: 2
优点:容错和简单的数据恢复。提高了读取性能。实现了数据的备份
缺点:可用容量较低。写入速度变慢。
业务用途:标准应用服务器,其中数据冗余和可用性很重要。
- Raid5
最小磁盘数: 3
优点:容错和IO性能提升(低于RAID 0)
缺点:由于奇偶校验开销导致服务器执行大量写操作,性能降低。
理想用途:文件存储服务器和应用服务器。
- Raid6
最小磁盘数: 4
优点:比RAID 5更高的冗余。提高了读取性能。
缺点:由于奇偶校验开销,服务器执行大量写操作会降低性能。
理想用途:大型文件存储服务器和应用服务器。
- raid10
最小磁盘数: 4
优点:性能非常高。容错。
缺点:可用容量较低/成本较高。有限的可扩展性
理想用途:高度利用的数据库服务器/服务器执行大量写入操作
- RAID级别的区别主要是读写速度的不同,以及容错性能和搭建成本不同
raid0
至少需要两块磁盘
数据==条带化==分布到磁盘,==高的读写性能==,100%==高存储空间利用率==
数据==没有冗余策略==,一块磁盘故障,数据将无法恢复
应用场景:
对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储
raid1
至少需要2块磁盘
数据==镜像备份==写到磁盘上(工作盘和镜像盘),==可靠性高==,磁盘利用率为50%
读性能可以,但写性能不佳,写入数据要同步,因此速度很慢。
一块磁盘故障,不会影响数据的读写,因为是镜像盘,冗余性好,只要有一块是好的,数据还是玩转的。
RAID 1应用场景:
对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
raid10
RAID10特点:
RAID10是raid1+raid0的组合
至少需要4块磁盘
两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
兼顾==数据的冗余==(raid1镜像)和==读写性能==(raid0数据条带化)
磁盘利用率为50%,成本较高
只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据。
因此raid10是最实用的方案。
总结raid级别
硬raid、软raid区别
硬RAID使用磁盘阵列卡实现RAID功能,更稳定,不依赖于操作系统。
软RAID使用软件模拟RAID功能,因为功能实现依赖软件以及操作系统,所以性能不如硬件RAID稳定
软Raid 10实战
(1)环境准备
添加4块硬盘,搭建raid 10磁盘冗余阵列。
[root@mini ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 18G 0 lvm /
└─centos-swap 253:1 0 1G 0 lvm [SWAP]
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sdg 8:96 0 10G 0 disk
sr0 11:0 1 4.4G 0 rom
# sdd sde sdf sdg为新添加磁盘
(2)安装mdadm
(实现软RAID功能)
mdadm
命令用于建设,管理和监控软件RAID阵列
[root@lamp-241 ~]# yum install mdadm -y
参数
(3)创建RAID10磁盘阵列
# 1. 命令说明
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-C 表示创建RAID阵列卡
-v 显示创建过程
/dev/md0 指定raid阵列的名字
-a yes 自动创建阵列设备文件
-n 4 参数表示用4块盘部署阵列
-l 10 代表指定创建raid 10级别
最后跟着四块磁盘设备名
# 2. 创建RAID10
[root@mini ~]#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdd /dev/sde /dev/sdf /dev/sdg
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 10476544K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
(4)查看RAID10信息
[root@mini ~]#fdisk -l /dev/md0
Disk /dev/md0: 21.5 GB, 21455962112 bytes, 41906176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
# 4块盘分别为10G,总结40G,因RAID10只能利用磁盘50%的空间,所以此处显示为21.5GB空间
(5)创建分区及文件系统
这里就不分区了
[root@lamp-241 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
(6)挂载分区并写入数据
mount /dev/md0 /md0_disk/
查看挂载后的磁盘使用情况
df -h
写入数据
[root@lamp-241 ~]# ls /yuchao-linux/
[root@lamp-241 ~]#
[root@lamp-241 ~]# touch /yuchao-linux/超哥带你学linux.txt
[root@lamp-241 ~]#
[root@lamp-241 ~]# ls /yuchao-linux/
超哥带你学linux.txt
查看raid 10信息
[root@lamp-241 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Mar 3 04:20:20 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Mar 3 04:25:12 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : lamp-241:0 (local to host lamp-241)
UUID : 8b05fda8:ea9f56df:d639157c:bf00d883
Events : 21
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@lamp-241 ~]#
加入开机自动挂载
[root@lamp-241 ~]# tail -1 /etc/fstab
/dev/md0 /yuchao-linux xfs defaults 0 0
剔除一块硬盘
[root@lamp-241 ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
检查raid 10信息
[root@lamp-241 ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
[root@lamp-241 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Mar 3 04:20:20 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Mar 3 04:28:33 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : lamp-241:0 (local to host lamp-241)
UUID : 8b05fda8:ea9f56df:d639157c:bf00d883
Events : 23
可以看到/dev/sdd硬盘被移除了,faulty翻译是有故障的
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
- 0 0 2 removed
3 8 64 3 active sync set-B /dev/sde
2 8 48 - faulty /dev/sdd
不影响raid 10的使用
[root@lamp-241 ~]# touch /yuchao-linux/天气确实不错.txt
[root@lamp-241 ~]#
[root@lamp-241 ~]# ls /yuchao-linux/
天气确实不错.txt 超哥带你学linux.txt
重新加入/dev/sdd硬盘
RAID10磁盘阵列,挂掉一块硬盘并不影响使用,只需要购买新的设备,替换损坏的磁盘即可
1.先取消RAID10阵列的挂载,注意必须没有人在使用挂载的设备
[root@lamp-241 ~]# umount /dev/md0
2.重启机器
reboot
3.重新添加新的磁盘加入raid 10
[root@lamp-241 ~]# mdadm /dev/md0 -a /dev/sdd
mdadm: added /dev/sdd
[root@lamp-241 ~]#
[root@lamp-241 ~]#
[root@lamp-241 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Mar 3 04:20:20 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Mar 3 04:47:07 2022
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 6% complete # 默认会有一个修复的过程,这里是进度条
Name : lamp-241:0 (local to host lamp-241)
UUID : 8b05fda8:ea9f56df:d639157c:bf00d883
Events : 38
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
4 8 48 2 spare rebuilding /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@lamp-241 ~]#
最终修复完毕
[root@lamp-241 ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Mar 3 04:20:20 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Mar 3 04:48:45 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : lamp-241:0 (local to host lamp-241)
UUID : 8b05fda8:ea9f56df:d639157c:bf00d883
Events : 54
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
4 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@lamp-241 ~]#
删除软件raid
1.卸载磁盘
[root@lamp-241 ~]# umount /dev/md0
2.停止raid服务
[root@lamp-241 ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
3.卸载raid中所有硬盘
[root@lamp-241 ~]#
[root@lamp-241 ~]# mdadm --misc --zero-superblock /dev/sdb
[root@lamp-241 ~]# mdadm --misc --zero-superblock /dev/sdc
[root@lamp-241 ~]# mdadm --misc --zero-superblock /dev/sdd
[root@lamp-241 ~]# mdadm --misc --zero-superblock /dev/sde
4.删除raid配置文件
rm -f /etc/mdadm.conf
5.删除开机自动挂载配置
修改/etc/fstab
/dev/md0 /yuchao-linux xfs defaults 0 0 #删除 没弄开机自启就不用弄
或者在可以创建分区,创建文件系统