CentOS7做RAID10,并模拟损坏磁盘以及修复

您所在的位置:网站首页 windows创建raid10 CentOS7做RAID10,并模拟损坏磁盘以及修复

CentOS7做RAID10,并模拟损坏磁盘以及修复

2023-10-14 03:17| 来源: 网络整理| 查看: 265

RAID简介 RAID:(Redundant Array of Independent Disk)独立磁盘的冗余阵列 详细介绍可参考刘遄老师的RAID讲解文章

环境: CentOS7MINI VMware16.0

准备: 磁盘5块(系统盘1块+4块做阵列) 在这里插入图片描述

mdadm命令用于管理Linux系统中的软件RAID硬盘阵列。 格式:

mdadm [格式] [选项] [成员名称] 参数 作用 -a 检测设备名称 -n 指定设备数量 -l 指定RAID级别 -C 创建 -v 显示过程 -f 模拟设备损坏 -r 移除设备 -Q 查看摘要信息 -D 查看详细信息 -S 停止RAID磁盘阵列

由于CentOS7最小化没有 安装mdadm

[root@localhost ~]yum install -y mdadm

创建RAID10 ①创建需要使用mdadm中的参数了。其中-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,并设置阵列名为/dev/md0;-a yes参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数表示RAID 10;最后再加上4块硬盘设备的名称就搞定了。

[root@localhost ~]mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde mdadm: layout defaults to n2 mdadm: layout defaults to n2 mdadm: chunk size defaults to 512k mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.

②然后格式化好新的阵列卡

[root@localhost ~]mkfs.ext4 /dev/md0 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=128 blocks, Stripe width=256 blocks 2621440 inodes, 10477312 blocks 523865 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2157969408 320 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done

③创建挂载点然后把硬盘设备进行挂载操作。挂载成功后可看到可用空间为40GB。

[root@localhost ~]# mkdir /RAID10 [root@localhost ~]# mount /dev/md0 /RAID10/ [root@localhost ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 18G 913M 17G 6% / devtmpfs devtmpfs 908M 0 908M 0% /dev tmpfs tmpfs 914M 0 914M 0% /dev/shm tmpfs tmpfs 914M 8.5M 906M 1% /run tmpfs tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sr0 iso9660 3.9G 3.9G 0 100% /media/cdrom /dev/sda1 xfs 497M 96M 401M 20% /boot /dev/md0 ext4 40G 49M 38G 1% /RAID10

④查看md0阵列的详细信息,并将阵列盘永久挂载使其生效

[root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sun Nov 15 19:50:03 2020 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Nov 16 01:39:15 2020 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 96c7dce8:0f15d2aa:984c6629:5dd4531a Events : 17 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde [root@localhost ~]# echo "/dev/md0 /RAID10 ext4 defaults 0 0" >> /etc/fstab [root@localhost ~]# cat /etc/fstab #查看挂载文件 # # /etc/fstab # Created by anaconda on Fri Oct 30 21:03:35 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 1 1 UUID=2999ce12-9dc5-4581-b11c-b0ff63188473 /boot xfs defaults 1 2 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sr0 /media/cdrom iso9660 defaults 0 0 /dev/md0 /RAID10 ect4 defaults 0 0

损坏损坏磁盘阵列及修复 首先在生产环境中,总是避免不了磁盘损坏的情况,比如长时间老化啊,接触不良等等导致硬盘,出现故障,我们就需要用到阵列,既然用到阵列,阵列内某个磁盘损坏了,我们该如何去修复它,这也是作为运维人员的一个技能点,所以,我会模拟一块硬盘损坏,来学习在生产环境中的出现某个硬盘损坏如何去修复,并让生产环境继续工作。

[root@localhost ~]# mdadm /dev/md0 -f /dev/sdb #-f:模拟磁盘损坏 mdadm: set /dev/sdb faulty in /dev/md0 [root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sun Nov 15 19:50:03 2020 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Nov 16 03:33:03 2020 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 96c7dce8:0f15d2aa:984c6629:5dd4531a Events : 19 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde 0 8 16 - faulty /dev/sdb #这里提示有/dev/sdb这块硬盘出现故障了

在RAID 10级别的磁盘阵列中,当RAID 1磁盘阵列中存在一个故障盘时并不影响RAID 10磁盘阵列的使用。当购买了新的硬盘设备后再使用mdadm命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。由于我们是在虚拟机中模拟硬盘,所以先重启系统,然后再把新的硬盘添加到RAID磁盘阵列中。

[root@localhost ~]#poweroff #重启后替换掉损坏的磁盘 [root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sun Nov 15 19:50:03 2020 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 3 Persistence : Superblock is persistent Update Time : Mon Nov 16 03:48:59 2020 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 96c7dce8:0f15d2aa:984c6629:5dd4531a Events : 29 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─centos-swap 253:0 0 2G 0 lvm [SWAP] └─centos-root 253:1 0 17.5G 0 lvm / sdb 8:16 0 20G 0 disk sdc 8:32 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sdd 8:48 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sde 8:64 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sr0 11:0 1 3.9G 0 rom /media/cdrom

目前sdb是重新加进去的硬盘,所以我们需要重新添加到新的RAID10内,在此操作前,注意的是,您开机的时候硬盘是直接把RAID10挂载好的,所以需要卸载挂载点后,添加再去重新挂载上去

[root@localhost ~]# umount /RAID10/ [root@localhost ~]# mdadm /dev/md0 -a /dev/sdb mdadm: added /dev/sdb [root@localhost ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sun Nov 15 19:50:03 2020 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Nov 16 03:53:14 2020 State : clean, degraded, recovering Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : near=2 Chunk Size : 512K Rebuild Status : 22% complete Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : 96c7dce8:0f15d2aa:984c6629:5dd4531a Events : 38 Number Major Minor RaidDevice State 4 8 16 0 spare rebuilding /dev/sdb #再次您会问为什么是这个状态;解释:这是加入阵列加载状态 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde [root@localhost ~]# mount /dev/md0 /RAID10/ [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─centos-swap 253:0 0 2G 0 lvm [SWAP] └─centos-root 253:1 0 17.5G 0 lvm / sdb 8:16 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sdc 8:32 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sdd 8:48 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sde 8:64 0 20G 0 disk └─md0 9:0 0 40G 0 raid10 /RAID10 sr0 11:0 1 3.9G 0 rom /media/cdrom 总结

对于我来说,磁盘阵列在Linux上做确实很好用,很方便,但是我不是很推荐直接用系统的方式做阵列,建议在生产环境,最好是做硬RAID,就是服务器的RAID,为什么会提出这个建议呢;因为如果说您在生产环境中,奔溃的不是您的硬盘,而是系统呢?这个阵列还有用吗?虽然说可以更换内核,但是对于我的建议还是希望能够给到大家最好的帮助!

最后感谢的是刘遄老师给予的教材资料,我也是跟着刘遄老师学的教材学的知识,希望像学习的同学跟我一起学习探讨,再次声明,我不是为了谁打广告,我是为了自己的未来而记录自己的学习的经验!谢谢~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3