RAID技术:磁盘阵列,提高性能,提高冗余。
RAID0:条带化磁盘阵列,性能较高,没有冗余,安全性较差。数据根据分片的方式进行 写入,按照顺序写入硬盘中。RAID0 由 1 块及以上的盘组成,逻辑磁盘容量=所有物理硬盘容量之和。
RAID1:镜像卷,性能较低,自带冗余备份。RAID1 由两块盘组成,逻辑盘大小=两块硬盘容量之和的一半,操作系统安装的磁盘常用 RAID1。
RAID3::带奇偶校验的条带化磁盘阵列,由 3 块及以上硬盘组成,其中一块盘为奇偶校验 的硬盘。最大容忍坏掉一块盘。 RAID3 磁盘的容量=磁盘数量-1。所有校验数据都存放在一块磁盘中,性能较差。
RAID5:平均分布的带奇偶校验的条带化磁盘阵列,校验数据平均分布在每一个磁盘中, 解决了 RAID3 性能的问题,提供校验数据多通道,性能较好。可用空间为硬盘总数-1,最大容忍损坏一块硬盘。
RAID6:和 RAID5 原理一样,但需要由 4 块及以上的硬盘构成,可用空间为总硬盘-2,最 大容忍损坏两块硬盘。
RAID10=RAID1+RAID0
最少四个盘组成,先分别将两块盘做成 RAID1,再将两块 RAID1 做成 RAID0,可用空间为总 容量的一半,最大容忍损坏一般的磁盘。
配置RAID需要使用mdadm工具,首先介绍一下mdadm命令的基本使用。
例如:mdadm -C -V /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde
-C:表示新建;
-v:显示创建过程中的详细信息;
/dev/md0: 创建 RAID5 的名称;
-l: 指定 RAID 的级别,l5 表示创建 RAID5;
-n:指定使用几块硬盘创建 RAID, n3 表示使用 3 块硬盘创建 RAID;
-x:指定使用几块硬盘做 RAID 的热备用盘,x1 表示保留 1 块空闲的硬盘作备用 ;
/dev/sd [bcd]: 指定使用这 3 块磁盘分区去创建 RAID5。
常用的命令搭配
mdadm -D /dev/md0 :查看磁盘信息
mdadm -S /dev/md0 :删除 RAID 配置并释放资源
mdadm --stop /dev/md0:删除 RAID 配置并释放资源
mdadm -f /dev/md1 /dev/sdb:停用/dev/sdb 并将其标记
mdadm -r /dev/md1 /dev/sdb:将/dev/sdb 从/md1 中移除(先停用再移除)
mdadm -a /dev/md1 /dev/sdb:将/sdb 添加到/md
准备4块磁盘
1、RAID0配置
将/dev/sdb和/dev/sdc配置为RAID0
[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[bc]
查看配置好的md0信息
[root@localhost ~]# mdadm -D /dev/md0
列举几个比较重要的参数
Creation Time 创建时间
Raid Level RAID级别
Array Size : 20953088 (19.98 GiB 21.46 GB) 大小
State : clean 状态
Active Devices : 2 活动设备
Working Devices : 2 工作设备
Failed Devices : 0 损坏设备
Spare Devices : 0 备用设备
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb 磁盘信息
1 8 32 1 active sync /dev/sdc
查看创建好的md0
[root@localhost ~]# fdisk -l
将md0格式化为ext4模式,并挂载使用
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mount /dev/md0 /test/
查看挂载信息
[root@localhost ~]# df -Th
进行文件拷贝测试
[root@localhost ~]# cd /test/
[root@localhost test]# cp /etc/passwd ./
[root@localhost test]# ls
lost+found passwd
卸载md0并删除释放资源
[root@localhost /]# umount /dev/md0 /test/
umount: /test/: not mounted
[root@localhost /]# mdadm -S /dev/md0 删除RAID配置并释放资源
2、RAID1配置,将/dev/sdb和/dev/sdc配置为RAID1
[root@localhost /]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[bc]
查看md1信息
[root@localhost /]# mdadm -D /dev/md1
可以看到两块硬盘配置RAID1之后的可用总容量只有总容量的一半大小。
查看配置好的md1
[root@localhost ~]# fdisk -l
格式化、挂载、文件拷贝测试
[root@localhost /]# mkfs.ext4 /dev/md1
[root@localhost /]# mount /dev/md1 /test/
[root@localhost /]# cp /etc/passwd /test/
[root@localhost /]# cd /test/
[root@localhost test]# ls
lost+found passwd
将/dev/sdb停用并移除模拟硬盘损坏,查看RAID1的安全性能
[root@localhost test]# mdadm -f /dev/md1 /dev/sdb
[root@localhost test]# mdadm -r /dev/md1 /dev/sdb
查看md1状态信息
[root@localhost test]# mdadm -D /dev/md1
可以看到只剩下/dev/sdc状态活动,查看刚刚拷贝的passwd文件
发现文件存在,可以知道RAID1两块盘互为备份,一块盘损坏后数据可以不被丢失。
将md1卸载删除并释放资源
[root@localhost /]# mdadm -S /dev/md1
3、RAID5配置,将/dev/sdb、/dev/sdc和/dev/sdd三块盘配置为RAID5,将/dev/sde作为热备盘
[root@localhost /]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[bcd] -x1 /dev/sde
查看md5信息
[root@localhost /]# mdadm -D /dev/md5
将md5格式化、挂载、拷贝文件测试
[root@localhost /]# mkfs.ext4 /dev/md5
[root@localhost /]# mount /dev/md5 /test/
[root@localhost /]# cp /etc/passwd /test/
[root@localhost /]# cd /test/
[root@localhost test]# ls
lost+found passwd
将/dev/sdb停用模拟硬盘损坏,查看RAID5的安全性能
[root@localhost /]# mdadm -f /dev/md5 /dev/sdb
查看md5状态信息
[root@localhost /]# mdadm -D /dev/md5
可以看到/dev/sdb状态已经损坏,/dev/sde自动作为备份盘,查看拷贝的passwd文件
[root@localhost /]# cd /test/
[root@localhost test]# ls
lost+found passwd
看到文件并未损坏,可以得出RAID5的三块盘其中一块盘损坏时,通过奇偶校验可以算出损坏盘的数据保证数据的安全。
卸载md5并释放资源
4、RAID6配置,将/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四块盘做RAID6
[root@localhost /]# mdadm -C -v /dev/md6 -l6 -n4 /dev/sd[bcde]
[root@localhost /]# mdadm -D /dev/md6
格式化、挂载、文件拷贝测试
[root@localhost /]# mkfs.ext4 /dev/md6
[root@localhost /]# mount /dev/md6 /test/
[root@localhost /]# cp /etc/passwd /test/
[root@localhost /]# cd /test/
[root@localhost test]# ls
lost+found passwd
将其中两块磁盘移除,查看RAID6的安全性能
[root@localhost /]# mdadm -f /dev/md6 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md6
[root@localhost /]# mdadm -f /dev/md6 /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md6
[root@localhost /]# mdadm -D /dev/md6
查看拷贝文件
[root@localhost /]# cd /test/
[root@localhost test]# ls
lost+found passwd
可以看到RAID6可以容忍损坏的盘比RAID多一块,和RAID5一样,也是通过奇偶校验进行数据恢复。
5、RAID10=RAID1+RAID0
先将/dev/sdb、/dev/sdc和/dev/sdd、/dev/sde分别配置RAID1,再将配置好的两块RAID1盘做RAID0。
[root@localhost /]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[b-c]
[root@localhost /]# mdadm -C -v /dev/md2 -l1 -n2 /dev/sd[d-e]
[root@localhost /]# mdadm -C -v /dev/md3 -l0 -n2 /dev/md[1-2]
[root@localhost /]# mdadm -D /dev/md3