RAID 5
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。
工作原理
RAID 5,数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5
特点:高读取、读写一般、高可靠
组成条件:至少3块大小相同的磁盘组成
容量:n-1/n磁盘容量总和
部署RAID5磁盘阵列组
1.首先在虚拟机中添加四块硬盘,3块用来做RAID 5,另外1块作为备用,当RAID 5中有一块硬盘有故障不能运行的时候,备用的硬盘便会顶替上去继续工作。


2.四块硬盘创建好分区以后,用命令fdisk -l 进行查看,就能看到刚创建好的raid分区,一个是/dev/sdb1,一个是/dev/sdc1,一个是/dev/sdd1,一个是/dev/sde1
[root@localhost ~]# fdisk -l 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xd8c6fa82 设备 Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 fd Linux raid autodetect 磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xdb452914 设备 Boot Start End Blocks Id System /dev/sdc1 2048 41943039 20970496 fd Linux raid autodetect 磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x20419715 设备 Boot Start End Blocks Id System /dev/sdd1 2048 41943039 20970496 fd Linux raid autodetect 磁盘 /dev/sde:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x4d998851 设备 Boot Start End Blocks Id System /dev/sde1 2048 41943039 20970496 fd Linux raid autodetect 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000bef51 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 12584959 6291456 83 Linux /dev/sda2 12584960 83886079 35650560 8e Linux LVM 磁盘 /dev/mapper/centos-root:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:4294 MB, 4294967296 字节,8388608 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-home:10.7 GB, 10733223936 字节,20963328 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
3. 使用mdadm命令创建RAID 5,名称为"/dev/md5"。
(1)输入命令:mdadm -C -v /dev/md5 -l5 -n3 /dev/sd{b..d}1 -x1 /dev/sde1
输入命令“cat /proc/mdstat”,可以查看完成的进度
[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd{b..d}1 -x1 /dev/sde1 mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 512K mdadm: size set to 20954112K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md5 started. [root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0] 41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [===============>.....] recovery = 75.1% (15749376/20954112) finish=0.4min speed=206421K/sec unused devices: <none>
(2)创建好后用命令mdadm -D去进行查看raid5磁盘阵列的详细信息
[root@localhost ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Aug 23 19:50:26 2019 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Aug 23 19:52:12 2019 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : localhost.localdomain:5 (local to host localhost.localdomain) UUID : 192e6b07:face7325:435f2848:40b4a92c Events : 18 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 4 8 49 2 active sync /dev/sdd1 3 8 65 - spare /dev/sde1
4.格式化
(1)输入命令'ls /dev"进行查看,然后输入命令“mkfs.xfs /dev/md5”j进行格式化
[root@localhost ~]# ls /dev agpgart cpu fuse lp1 null rtc0 sde1 stderr tty15 tty25 tty35 tty45 tty55 tty8 usbmon2 vcsa3 autofs cpu_dma_latency hidraw0 lp2 nvram sda sg0 stdin tty16 tty26 tty36 tty46 tty56 tty9 vcs vcsa4 block crash hpet lp3 oldmem sda1 sg1 stdout tty17 tty27 tty37 tty47 tty57 ttyS0 vcs1 vcsa5 bsg disk hugepages mapper port sda2 sg2 tty tty18 tty28 tty38 tty48 tty58 ttyS1 vcs2 vcsa6 btrfs-control dm-0 hwrng mcelog ppp sdb sg3 tty0 tty19 tty29 tty39 tty49 tty59 ttyS2 vcs3 vfio bus dm-1 initctl md5 ptmx sdb1 sg4 tty1 tty2 tty3 tty4 tty5 tty6 ttyS3 vcs4 vga_arbiter cdrom dm-2 input mem pts sdc sg5 tty10 tty20 tty30 tty40 tty50 tty60 uhid vcs5 vhci centos dri kmsg mqueue random sdc1 shm tty11 tty21 tty31 tty41 tty51 tty61 uinput vcs6 vhost-net char fb0 log net raw sdd snapshot tty12 tty22 tty32 tty42 tty52 tty62 urandom vcsa vmci console fd loop-control network_latency rfkill sdd1 snd tty13 tty23 tty33 tty43 tty53 tty63 usbmon0 vcsa1 vsock core full lp0 network_throughput rtc sde sr0 tty14 tty24 tty34 tty44 tty54 tty7 usbmon1 vcsa2 zero [root@localhost ~]# mkfs.xfs /dev/md5 meta-data=/dev/md5 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
(2)创建好后用命令mdadm -D去进行查看raid5磁盘阵列的详细信息
[root@localhost ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Aug 23 19:50:26 2019 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Aug 23 20:16:59 2019 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : localhost.localdomain:5 (local to host localhost.localdomain) UUID : 192e6b07:face7325:435f2848:40b4a92c Events : 18 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 4 8 49 2 active sync /dev/sdd1 3 8 65 - spare /dev/sde1
5.挂载
创建挂载目录/opt/md5,然后用mount命令把/dev/md5挂载到/opt/md5上,并用命令“df -h”进行查看
[root@localhost ~]# mkdir /opt/md5 [root@localhost ~]# ls /opt/ md5 rh [root@localhost ~]# mount /dev/md5 /opt/md5 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 20G 4.3G 16G 22% / devtmpfs 473M 0 473M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 7.2M 481M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 6.0G 161M 5.9G 3% /boot /dev/mapper/centos-home 10G 37M 10G 1% /home tmpfs 98M 4.0K 98M 1% /run/user/42 tmpfs 98M 24K 98M 1% /run/user/0 /dev/md5 40G 33M 40G 1% /opt/md5
7.模拟故障
第一步,直接用一条命令“mdadm -f /dev/md5 /dev/sdb1”把sdb1卸掉
[root@localhost ~]# mdadm -f /dev/md5 /dev/sdb1 mdadm: set /dev/sdb1 faulty in /dev/md5
第二步,用命令cat /proc/mdstat查看raid5的状况,可以看出正在同步
[root@localhost ~]# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md5 : active raid5 sdd1[4] sde1[3] sdc1[1] sdb1[0](F) 41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] [==================>..] recovery = 90.5% (18965248/20954112) finish=0.1min speed=207091K/sec unused devices: <none>
第三步,用命令mdadm -D /dev/md5去查看具体信息,可以看出备用的sde1已经顶替上来开始工作
[root@localhost ~]# mdadm -D /dev/md5 /dev/md5: Version : 1.2 Creation Time : Fri Aug 23 19:50:26 2019 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri Aug 23 20:31:21 2019 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : localhost.localdomain:5 (local to host localhost.localdomain) UUID : 192e6b07:face7325:435f2848:40b4a92c Events : 37 Number Major Minor RaidDevice State 3 8 65 0 active sync /dev/sde1 1 8 33 1 active sync /dev/sdc1 4 8 49 2 active sync /dev/sdd1 0 8 17 - faulty /dev/sdb1
最后得出结论
当RAID 5中有备用磁盘的情况下,当其中一块磁盘因某种原因停止工作,此时备用磁盘就会顶替不工作的磁盘继续工作,而且数据并不会因此而丢失,仍旧可以读取完整的数据。
以上所述就是RAID 5的部署过程,下一篇将针对RAID 10进行部署
本文介绍了RAID 5的工作原理、特点及部署过程。RAID 5是一种平衡性能、安全和成本的存储解决方案,通过奇偶校验提供数据保护。部署步骤包括添加硬盘、创建RAID 5阵列、格式化、挂载以及模拟故障演示了RAID 5的容错能力。
278

被折叠的 条评论
为什么被折叠?



