Raid配置与管理
一:Raid简介
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)可以提供较普通磁盘更高的速度、安全性,所以服务器在安装时都会选择创建RAID。RAID的创建有两种方式:软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡)。
RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。RAID级别主要有以下几种:RAID0,RAID1,RAID2,RAID3,RAID4,RAID5,RAID6,RAID(0+1),RAID(1+0)等,经常使用的是RAID5和RAID(1+0),本文主要介绍RAID0,RAID1,RAID5以及RAID(1+0)。
二:常用RAID介绍
RAID 0
striping(条带模式),至少需要两块磁盘,做RAID分区的大小最好是相同的(可以充分发挥并发优势);数据分散存储于不同的磁盘上,在读写的时候可以实现并发,所以相对其读写性能最好;但是没有容错功能,任何一个磁盘的损坏将损坏全部数据;
磁盘利用率为100%。
RAID 1
mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;
磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。
RAID 5
需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏;
RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和 相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏 后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动 利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性;
空间利用率:(n-1)/n(如4块硬盘利用率为3/4);
RAID(1+0)
Raid 10是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全。我们知道,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。其实,下图只是一种RAID 10方式,更多的情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像;
磁盘利用率与RAID1一样为50%,但读写速度却是大大提升了;
三:实验环境
本次实验主要是针对软raid进行配置操作,需要准备5块硬盘(虚拟机)。
实验内容包含以下几点:
RAID0基本配置;
RAID1基本配置;
RAID5基本配置;
RAID(1+0)基本配置
四:实验步骤
实验一.RAID0配置
1.添加一块sdb硬盘,分成2个主分区sdb1,sdb2
[[email protected] ~]# fdisk /dev/sdb [[email protected] ~]# ll /dev/sdb* brw-rw---- 1 root disk 8, 16 Oct 31 15:42 /dev/sdb brw-rw---- 1 root disk 8, 17 Oct 31 15:42 /dev/sdb1 brw-rw---- 1 root disk 8, 18 Oct 31 15:42 /dev/sdb2
2.创建RAID0阵列
[[email protected]egod63 ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2 mdadm: chunk size defaults to 512K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
注:mdadm是raid管理工具,-C:创建新阵列;-v:显示详细信息;-l:设定磁盘阵列级别;-n:设定阵列成员数量
查看阵列信息
[[email protected] ~]# mdadm -Ds ARRAY /dev/md0 metadata=1.2 name=xuegod63.cn:0UUID=df3227be:0b8f7587:d9ac0626:8a33fc8b
3.生成配置文件
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf
4.将配置好的RAID0阵列进行分区
[[email protected] ~]# fdisk /dev/md0 [[email protected] ~]# ll /dev/md0* brw-rw---- 1 root disk 9, 0 Oct 31 16:01 /dev/md0 brw-rw---- 1 root disk 259, 0 Oct 31 16:01/dev/md0p1
5.格式化并挂载分区
[[email protected] ~]# mkfs.ext4 /dev/md0p1 [[email protected] ~]# mkdir /raid0 [[email protected] ~]# mount /dev/md0p1 /raid0 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 4.0G 13G 24% / tmpfs 495M 224K 495M 1% /dev/shm /dev/sda1 194M 30M 155M 16% /boot /dev/md0p1 485M 11M 449M 3% /raid0
raid0到此创建完成!
实验二.RAID1配置
1.添加一块sdc硬盘,分成3个主分区sdc1,sdc2,sdc3
[[email protected] ~]# fdisk /dev/sdc [[email protected]egod63 ~]# ll /dev/sdc* brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc1 brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc2 brw-rw---- 1 root disk 8, 16 Oct 31 16:32 /dev/sdc3
2.创建RAID1阵列
[[email protected] ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x1 /dev/sdc{1,2,3} mdadm: Note: this array has metadata at the startand may not be suitable as a bootdevice. If you plan to store ‘/boot‘ on this deviceplease ensure that your boot-loader understandsmd/v1.x metadata, or use --metadata=0.90 mdadm: size set to 1059200K Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.
注:-x:阵列中备用盘的数量
3.生成配置文件
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf [[email protected] ~]#cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=xuegod163.com:0UUID=213f0f10:bbeb0493:60694473:8871242a ARRAY /dev/md1 metadata=1.2 spares=1 name=xuegod163.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66
注:spares=1表示:有热备盘1个
4.将配置好的RAID1阵列进行分区并挂载
[[email protected] ~]# mkdir /raid1 [[email protected] ~]# fdisk /dev/md1 [[email protected] ~]# mkfs.ext4 /dev/md1p1 [[email protected] ~]# mount /dev/md1p1 /raid1/ [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 4.0G 13G 24% / tmpfs 495M 224K 495M 1% /dev/shm /dev/sda1 194M 30M 155M 16% /boot /dev/md0p1 485M 11M 449M 3% /raid0 /dev/md1p1 1019M 34M 934M 4% /raid1
到此raid1已经配置完成了,下面模拟一下磁盘故障以及恢复过程
1.将sdc1设置为故障状态
[[email protected] ~]# mdadm -f /dev/md1 /dev/sdc1 mdadm: set /dev/sdc1 faulty in /dev/md1
2.将sdc1移除RAID1阵列
[[email protected] ~]# mdadm -r /dev/md1 /dev/sdc1 mdadm: hot removed /dev/sdc1 from /dev/md1
3.查看阵列状态
[[email protected] ~]# cat /proc/mdstat Personalities : [raid0] [raid1] md1 : activeraid1 sdc3[2] sdc2[1] 1059200 blocks super 1.2 [2/2] [UU] md0 : active raid0 sdb2[1] sdb1[0] 2119680 blocks super1.2 512k chunks unused devices: <none>
由此可以看出sdc1已被热备盘sdc3代替。
4.生成配置文件
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf [[email protected] ~]# cat !$ cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=15b8b7e0:caddb3de:d7d66e00:f42d12e4 ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=6b7cf136:220e9678:c924c7ce:c1e3f285
可以看出spares=1没了,也就是热备盘没有了。
实验三.RAID5配置
1.添加一块sde硬盘,分成3个主分区sde1,sde2,sde3,sde4,sde5,sde6
[[email protected] ~]# fdisk /dev/sdc [[email protected] ~]# ll /dev/sde* brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde1 brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde2 brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde3 brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde4 brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde5 brw-rw---- 1 root disk 8, 16 Oct 31 17:10 /dev/sde6
2.创建RAID5阵列
[[email protected] ~]# mdadm -C -v /dev/md5 -l 5 -n 3-c 32 -x 1 /dev/sde{1,2,3,5} mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: size set to 1059200K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md5 started. 3.生成配置文件 [[email protected] ~]# mdadm -Ds > /etc/mdadm.conf [[email protected] ~]# cat !$ cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=213f0f10:bbeb0493:60694473:8871242a ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66 ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=c367f714:3da62060:28b9dcda:d6753102
其余步骤与RAID0、RAID1一致,此处不再赘述
为RAID5阵列添加分区
再新添加一块硬盘分区/dev/sde6,希望扩展RAID5阵列到4块硬盘 [[email protected] ~]# mdadm -a /dev/md5/dev/sde6 mdadm: added/dev/sde6 [[email protected] ~]# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5][raid4] md5 : active raid5 sde6[5](S) sde1[0] sde5[3](S)sde3[4] sde2[1] 2118400 blocks super1.2 level 5, 32k chunk, algorithm 2 [3/3] [UUU] md1 : active raid1sdc3[2] sdc2[1] 1059200 blocks super1.2 [2/2] [UU] md0 : active raid0sdb2[1] sdb1[0] 2119680 blocks super1.2 512k chunks unused devices:<none> [[email protected]~]# mdadm -G /dev/md5 -n 4 mdadm: Need to backup 192K of critical section.. [[email protected] ~]# mdadm -Ds > /etc/mdadm.conf [[email protected] ~]# cat !$ cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=213f0f10:bbeb0493:60694473:8871242a ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=ac519296:4c614e0e:a0e1da67:cb93eb66 ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=c367f714:3da62060:28b9dcda:d6753102
实验四.简单介绍RAID(1+0)配置
1.添加硬盘,创建分区sdf1,sdf2,sdf3,sdf4
[[email protected] ~]# ll /dev/sdf* brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf1 brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf2 brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf3 brw-rw---- 1 root disk 8, 16 Oct 31 18:10 /dev/sdf4
2.创建2个RAID1
[[email protected] ~]# mdadm -C -v /dev/md11 -l 1 -n 2/dev/sdf{1,2} [[email protected] ~]# mdadm -C -v /dev/md12 -l 1 -n 2/dev/sdf{3,4}
3.在RAID1基础上创建RAID0
[[email protected] ~]# mdadm -C -v /dev/md10 -l 0 -n 2/dev/md1{1,2} mdadm: chunk size defaults to 512K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md10 started.
4.生成配置文件
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf [[email protected] ~]# cat !$ cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=xuegod63.com:0UUID=15b8b7e0:caddb3de:d7d66e00:f42d12e4 ARRAY /dev/md1 metadata=1.2 name=xuegod63.com:1UUID=6b7cf136:220e9678:c924c7ce:c1e3f285 ARRAY /dev/md5 metadata=1.2 spares=1 name=xuegod63.com:5UUID=0135d9f1:dfc01d99:315e46ed:4738fef6 ARRAY /dev/md11 metadata=1.2 name=xuegod63.com:11UUID=a7d22ee3:65c5a8c9:d7abe8a5:0a49f45d ARRAY /dev/md12 metadata=1.2 name=xuegod63.com:12UUID=d46af9a5:fbf486e7:03ff3942:37076f39 ARRAY /dev/md10 metadata=1.2 name=xuegod63.com:10UUID=94f7d294:2148e306:542727f0:d6d06446
其余使用步骤与之前一样,本次实验到此已经结束。
学神-IT-教育51cto技术交流群:468845589 快来上我们公开课吧!
学神MK老师:1273815479
学神ZY老师:3054384936
本文由学神-IT-教育1506班VIP学员 学神-1508-VIP-逍遥同学整理提供