一、配置环境介绍
操做平台:VMware workstation
测试环境:centos7 计算机一台,添加一块新的硬盘,建立4个分区。模拟4块新硬盘
二、实践目的
一、配置RAID5
二、模拟硬盘故障,检验RAID5容错能力,并实现故障盘替换
三、RAID阵列上建立分区
三、建立RAID准备工做
一、首先查看硬盘标签类型centos
[root@adong ~]# fdisk -l /dev/sdc Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt #为GPT类型 Disk identifier: 0x25cc0f39
二、由于硬盘标签类型为GPT,左移咱们用gdisk命令建立分区便可bash
[root@adong ~]# gdisk /dev/sdc GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): n #新建分区 Partition number (1-128, default 1): #默认分区编号便可,默认从1开始 First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: #指定起始扇区大小,默认便可 Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +5G #指定分区大小 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): fd00 #更改分区类型为LinuxRAID Changed type of partition to 'Linux RAID'
重复上述步骤,创建4个分区,而后以下操做保存退出ide
Command (? for help): w #保存分区 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y #上面提示将写入GPT分区数据,这样会覆盖原来的分区,是否继续 OK; writing new GUID partition table (GPT) to /dev/sdc. The operation has completed successfully.
此时用于模拟4块硬盘的分区就建立好了
三、使用mdadm工具建立RAID,阵列的成员能够使用通配符工具
[root@adong ~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-device=1 /dev/sdc[1-4] mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
说明:由于作RAID5最少须要3块磁盘,此前咱们建立了4个分区模拟4个磁盘,因此建立时咱们经过--raid-devices选项指定用于建立raid的磁盘数为3,而后将剩余的一个磁盘经过--spare-device选项设置为备用磁盘。
四、查看RAID配置的详细信息测试
[root@adong ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Dec 12 10:03:04 2020 Raid Level : raid5 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sat Dec 12 10:03:31 2020 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : adong.com:0 (local to host adong.com) UUID : 597cac50:2c13e44b:f5a87d17:c0f2fc8e Events : 18 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 4 8 35 2 active sync /dev/sdc3 3 8 36 - spare /dev/sdc4
经过上述信息,咱们能够看到,有3块硬盘处于active激活的状态并sync同步中,一块硬盘处于spare备用状态
五、模拟磁盘故障、查看备用盘的工做状况ui
[root@adong ~]# mdadm /dev/md0 --fail /dev/sdc2 mdadm: set /dev/sdc2 faulty in /dev/md0
经过--fail选项模拟其中一块磁盘故障centos7
[root@adong ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Dec 12 10:03:04 2020 Raid Level : raid5 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sat Dec 12 10:14:34 2020 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Rebuild Status : 21% complete Name : adong.com:0 (local to host adong.com) UUID : 597cac50:2c13e44b:f5a87d17:c0f2fc8e Events : 23 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 3 8 36 1 spare rebuilding /dev/sdc4 4 8 35 2 active sync /dev/sdc3 1 8 34 - faulty /dev/sdc2
此时咱们发现原来备用状态的/dev/sdc4,此时正在进行备用重建,加入到RAID中,替换故障磁盘
六、故障盘修复或者更换新的物理盘,替换原来的问题磁盘
若是是现实物理环境,将新的物理磁盘更换上去便可,此处咱们模拟环境,因此首先要手动移除故障磁盘spa
[root@adong ~]# mdadm /dev/md0 --remove /dev/sdc2 mdadm: hot removed /dev/sdc2 from /dev/md0
而后将新的磁盘添加上去操作系统
[root@adong ~]# mdadm /dev/md0 --add /dev/sdb1 mdadm: added /dev/sdb1
此时咱们查看RAID的信息,发现新添加上的磁盘,处于备用状态。一切恢复正常code
[root@adong ~]# mdadm --detail /dev/md0 /dev/md0: Version : 1.2 Creation Time : Sat Dec 12 10:03:04 2020 Raid Level : raid5 Array Size : 10475520 (9.99 GiB 10.73 GB) Used Dev Size : 5237760 (5.00 GiB 5.36 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sat Dec 12 10:21:39 2020 State : clean Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Name : adong.com:0 (local to host adong.com) UUID : 597cac50:2c13e44b:f5a87d17:c0f2fc8e Events : 39 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 3 8 36 1 active sync /dev/sdc4 4 8 35 2 active sync /dev/sdc3 5 8 17 - spare /dev/sdb1
注意:更换的磁盘大小必定要和现有RAID中的磁盘大小同样
七、在RAID阵列上建立分区,并格式化文件系统为xfs
阵列磁盘对操做系统而言,同样是一个逻辑磁盘,因此咱们能够像操做单个磁盘同样对他进行建立分区和格式化文件系统
[root@adong ~]# gdisk /dev/md0 GPT fdisk (gdisk) version 1.0.3 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): n #新建分区 Partition number (1-128, default 1): #指定分区编号 First sector (34-20951006, default = 2048) or {+-}size{KMGTP}: #指定起始扇区 Last sector (2048-20951006, default = 20951006) or {+-}size{KMGTP}: +5G #设置分区大小 Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): w #保存分区 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y #将要写入GPT分区去数据,原来的分区数据将被覆盖,是否继续 OK; writing new GUID partition table (GPT) to /dev/md0. The operation has completed successfully.
八、查看分区状况,发现生成一个/dev/mdop1的分区
[root@adong ~]# fdisk -l /dev/md0 Disk /dev/md0: 10 GiB, 10726932480 bytes, 20951040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 524288 bytes / 1048576 bytes Disklabel type: gpt Disk identifier: BD1E493E-652F-4676-AA07-FCC0D601F15C Device Start End Sectors Size Type /dev/md0p1 2048 10487807 10485760 5G Linux filesystem
九、针对上述生成的分区记性格式化文件系统xfs
[root@adong ~]# mkfs.xfs /dev/md0p1 meta-data=/dev/md0p1 isize=512 agcount=8, agsize=163712 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=1309696, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
十、挂载分区到指定目录/mnt
[root@adong ~]# mount /dev/md0p1 /mnt/
十一、查看磁盘分区使用状况,能够看到/dev/mdop1/被挂载到了/mnt/使用空间为5G
[root@adong ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 383M 0 383M 0% /dev tmpfs 399M 0 399M 0% /dev/shm tmpfs 399M 11M 388M 3% /run tmpfs 399M 0 399M 0% /sys/fs/cgroup /dev/sda2 23G 12G 11G 53% / /dev/sda3 6.0G 83M 6.0G 2% /home /dev/sda1 3.7G 203M 3.3G 6% /boot tmpfs 80M 4.0K 80M 1% /run/user/0 /dev/md0p1 5.0G 69M 5.0G 2% /mnt
总结:额外经常使用的一些软RAID操做命令1.中止RAIDmdadm --stop /dev/md0 二、删除RAID首先中止RAID而后清除RAID阵列中全部磁盘元数据,这样就完全删除了,重启系统也不会被自动安装mdadm --zero-superblock /dev/sdc1三、监控RAID,若是出现故障,通知管理员nohup mdadm --monitor --mail=root@localhost.com --delay=180 /dev/md0nohup:将监控任务放置后台运行delay选项:每一个多久对阵列检查一下