文章目录
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第51篇文章。
本文我们来聊聊磁盘阵列raid磁盘阵列。
一. RAID的概念
以下为引用:
磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。
利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity
Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
总结成一句话: RAID是磁盘荣誉阵列,作用是提升读写速率,并且可以有容错功能。
RAID的基本思想: 把几块硬盘通过一定的组合方式把它组合起来,形成一个新的硬盘阵列组,从而让新的磁盘阵列组能够达到高性能硬盘的要求。
二. RAID的类型
1. RAID的实现方式:
- 硬RAID: 需要RAID卡,有自己的cpu,处理速度极快
- 软RAID : 通过操作系统实现,windows,Linux都可以实现
2. 软raid 5 的实现方式
实验步骤:
1) 创建4块硬盘
2) 创建RAID
3)格式化,挂载
4) 查看RAID信息
5) 模拟其中一块硬盘坏掉的情况
6) 将修好的磁盘重新加入到已经存在的阵列中
1) 新增加一块硬盘并创建5个分区
对新增加的硬盘分区成5个,来模拟五块硬盘。
[root@xinsz08-15 ~]# ll /dev/sd* #目前现有的分区brw-rw---- 1 root disk 8, 0 6月 29 05:45 /dev/sda brw-rw---- 1 root disk 8, 1 6月 29 05:45 /dev/sda1 brw-rw---- 1 root disk 8, 2 6月 29 05:45 /dev/sda2 brw-rw---- 1 root disk 8, 3 6月 29 05:45 /dev/sda3 brw-rw---- 1 root disk 8, 16 6月 29 05:45 /dev/sdb
[root@xinsz08-15 ~]# fdisk /dev/sdbCommand (m for help): n Command action e extended p primary partition (1-4)p Partition number (1-4): Value out of range. Partition number (1-4): 1 First cylinder (1-3263, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263): +5G Command (m for help):
按照上面的分区方法,一共分了四个区,分别都是5G
注意: 逻辑分区无法做磁盘阵列
[root@xinsz08-15 ~]# ll /dev/sdb*brw-rw---- 1 root disk 8, 16 6月 29 06:02 /dev/sdb brw-rw---- 1 root disk 8, 17 6月 29 06:02 /dev/sdb1 brw-rw---- 1 root disk 8, 18 6月 29 06:02 /dev/sdb2 brw-rw---- 1 root disk 8, 19 6月 29 06:02 /dev/sdb3 brw-rw---- 1 root disk 8, 20 6月 29 06:02 /dev/sdb4
2. 创建RAID
[root@xinsz08-15 ~]# yum install mdadm
mdadm 的基本参数:
参数 | 作用 |
---|---|
C | 创建RAID |
/dev/m0 | 第一个RAID设备 |
-L5 | RAID5 |
-n | RAID成员的数量 |
-x | 热备磁盘的数量 |
-a | 添加热备 |
-G | 热备转变为成员身份 |
接下来我们创建第一个RAID设备,做一个raid 5, 用3块盘做阵列,在加上一块做热备。
[root@xinsz08-15 ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sdb{1,2,3,4}mdadm: /dev/sdb4 appears to be part of a raid array: level=raid0 devices=0 ctime=Thu Jan 1 08:00:00 1970 mdadm: partition table exists on /dev/sdb4 but will be lost or meaningless after creating array mdadm: largest drive (/dev/sdb4) exceeds size (5249024K) by more than 1% Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
[root@xinsz08-15 ~]# mdadm -D -s > /etc/mdadm.conf #设置开机生效
查询现有的阵列
[root@xinsz08-15 ~]# mdadm -D -sARRAY /dev/md0 metadata=1.2 spares=1 name=xinsz08-15:0 UUID=85d2c0f0:d2e390b4:6f91164c:c7e3f691[root@xinsz08-15 ~]# mdadm -D -s /dev/md0 # 直接指定磁盘阵列的名字MD0ARRAY /dev/md0 metadata=1.2 spares=1 name=xinsz08-15:0 UUID=85d2c0f0:d2e390b4:6f91164c:c7e3f691
3. 格式化挂载
[root@xinsz08-15 ~]# mkfs.ext4 /dev/md0 # 把磁盘阵列格式化为ext4系统mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux 块大小=4096 (log=2)分块大小=4096 (log=2)Stride=128 blocks, Stripe width=256 blocks 657072 inodes, 2624512 blocks 131225 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2688548864 81 block groups32768 blocks per group, 32768 fragments per group 8112 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.[root@xinsz08-15 ~]#
创建挂载目录并挂载
[root@xinsz08-15 ~]# mkdir /mnt/raid5[root@xinsz08-15 ~]# mount /dev/md0 /mnt/raid5[root@xinsz08-15 ~]# df -h/dev/md0 9.8G 23M 9.3G 1% /mnt/raid5[root@xinsz08-15 ~]#
4. 再次查看raid信息
[root@xinsz08-15 ~]# mdadm -D /dev/md0 #查看磁盘信息/dev/md0: #磁盘名字 Version : 1.2 #磁盘版本 Creation Time : Mon Jun 29 06:03:43 2020 #创建磁盘阵列的时间 Raid Level : raid5 #磁盘阵列为riad5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 #三块盘组成的RAID阵列 Total Devices : 4 #总共四快盘,因为还有个备用盘Persistence : Superblock is persistent Update Time : Mon Jun 29 06:09:43 2020 State : clean Active Devices : 3 #活动磁盘3个Working Devices : 4 #总共四个 Failed Devices : 0 #坏掉的0个 Spare Devices : 1 #共享备用盘1块 Layout : left-symmetric Chunk Size : 512K Name : xinsz08-15:0 (local to host xinsz08-15) UUID : 85d2c0f0:d2e390b4:6f91164c:c7e3f691 Events : 18 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 18 1 active sync /dev/sdb2 4 8 19 2 active sync /dev/sdb3 3 8 20 - spare /dev/sdb4[root@xinsz08-15 ~]#
5. 模拟坏掉一块盘,并移除
终端一:模拟坏掉一块磁盘并移除
-f 模拟坏掉,-r 移除
[root@xinsz08-15 ~]# mdadm /dev/md0 -f /dev/sdb2 -r /dev/sdb2mdadm: set /dev/sdb2 faulty in /dev/md0 mdadm: hot removed /dev/sdb2 from /dev/md0
终端二: 查看变化
[root@xinsz08-15 ~]# watch -n 0.5 ‘mdadm -D /dev/md0’
最后会看到 spare Devices的备用盘,变成了知working盘。 总盘数变成了3个。
6. 将刚才被删除的sdb2修复好后,再次添加到阵列中
[root@xinsz08-15 ~]# mdadm /dev/md0 -a /dev/sdb2mdadm: added /dev/sdb2
查看:
可以看到sdb2变成了热备盘
[root@xinsz08-15 ~]# mdadm -D /dev/md0/dev/md0: Version : 1.2 Creation Time : Mon Jun 29 06:03:43 2020 Raid Level : raid5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Jun 29 06:29:52 2020 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : xinsz08-15:0 (local to host xinsz08-15) UUID : 85d2c0f0:d2e390b4:6f91164c:c7e3f691 Events : 39 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 3 8 20 1 active sync /dev/sdb4 4 8 19 2 active sync /dev/sdb3 5 8 18 - spare /dev/sdb2
总结:
实验出真知,如果你只看文字弄不明白是什么意思,建议照着操作一遍,循序渐进学运维系列所有文章都在机器上验证过,如果你在做的过程中遇到问题,也欢迎留言与我一起探讨。
我是高胜寒,一个在教培行业不忘初心的人,欢迎点赞收藏,我们下篇文章见!