飞翔灬吾爱的Blog
Linux 7 | RAID阵列磁盘——修复
2018-7-24 fishyoung

在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,应该使用mdadm命令将其移除,然后查看RAID磁盘阵列的状态,可以发现状态已经改变。

咱们在生产环境中部署RAID10磁盘阵列组目的就是为了提高存储设备的IO读写速度及数据的安全性,但因为这次是在本机电脑上模拟出来的硬盘设备所以对于读写速度的改善可能并不直观,因此讲解下RAID磁盘阵列组损坏后的处理方法,这样以后步入了运维岗位后不会因为突发事件而手忙脚乱。首先确认有一块物理硬盘设备出现损坏不能再继续正常使用后,应该使用mdadm命令来予以移除之后查看下RAID磁盘阵列组的状态已经被改变:[hide]

[root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
       mdadm: set /dev/sdb faulty in /dev/md0
[root@linuxprobe ~]# mdadm -D /dev/md0
       /dev/md0:
       Version : 1.2
       Creation Time : Fri May 8 08:11:00 2017
       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 : Fri May 8 08:27:18 2017
       State : clean, degraded
       Active Devices : 3
       Working Devices : 3
       Failed Devices : 1
       Spare Devices : 0
       Layout : near=2
       Chunk Size : 512K
       Name : linuxprobe.com:0 (local to host linuxprobe.com)
       UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0
       Events : 21
       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/sde0 8 16 - faulty /dev/sdb

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

[root@linuxprobe ~]# umount /RAID
[root@linuxprobe ~]# mdadm /dev/md0 -a /dev/sdb
[root@linuxprobe ~]# mdadm -D /dev/md0
       /dev/md0:
        Version : 1.2
        Creation Time : Mon Jan 30 00:08:56 2017
        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 Jan 30 00:19:53 2017
        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 : d3491c05:cfc81ca0:32489f04:716a2cf0
        Events : 56 Number Major Minor RaidDevice State 4 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@linuxprobe ~]# mount -a

 磁盘阵列+备份盘

RAID 10磁盘阵列中最多允许50%的硬盘设备发生故障,但是存在这样一种极端情况,即同一RAID 1磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。换句话说,在RAID 10磁盘阵列中,如果RAID 1中的某一块硬盘出现了故障,而我们正在前往修复的路上,恰巧该RAID1磁盘阵列中的另一块硬盘设备也出现故障,那么数据就被彻底丢失了。这可真不是乌鸦嘴,这种RAID 1磁盘阵列中的硬盘设备同时损坏的情况还真有遇到过。

在这样的情况下,该怎么办呢?其实,我们完全可以使用RAID备份盘技术来预防这类事故。该技术的核心理念就是准备一块足够大的硬盘,这块硬盘平时处于闲置状态,一旦RAID磁盘阵列中有硬盘出现故障后则会马上自动顶替上去。这样很棒吧!

为了避免多个实验之间相互发生冲突,我们需要保证每个实验的相对独立性,为此需要大家自行将虚拟机还原到初始状态。另外,由于刚才已经演示了RAID 10磁盘阵列的部署方法,我们现在来看一下RAID 5的部署效果。部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘,所以总计需要在虚拟机中模拟4块硬盘设备,如图所示。

现在创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数-l 5代表RAID的级别,而参数-x 1则代表有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候就能看到有一块备份盘在等待中了。

[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
       mdadm: layout defaults to left-symmetric
       mdadm: layout defaults to left-symmetric
       mdadm: chunk size defaults to 512K
       mdadm: size set to 20954624K
       mdadm: Defaulting to version 1.2 metadata
       mdadm: array /dev/md0 started.
[root@linuxprobe ~]# mdadm -D /dev/md0
       /dev/md0:
       Version : 1.2
       Creation Time : Fri May 8 09:20:35 2017
       Raid Level : raid5
       Array Size : 41909248 (39.97 GiB 42.92 GB)
       Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 3
       Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Fri May 8 09:22:22 2017
       State : clean
       Active Devices : 3
       Working Devices : 4
       Failed Devices : 0
       Spare Devices : 1
       Layout : left-symmetric
       Chunk Size : 512K
       Name : linuxprobe.com:0 (local to host linuxprobe.com)
       UUID : 44b1a152:3f1809d3:1d234916:4ac70481
       Events : 18Number Major Minor RaidDevice State
       0 8 16 0 active sync /dev/sdb
       1 8 32 1 active sync /dev/sdc
       4 8 48 2 active sync /dev/sdd
       3 8 64 - spare /dev/sde

现在将部署好的RAID 5磁盘阵列格式化为ext4文件格式,然后挂载到目录上,之后就可以使用了。

[root@linuxprobe ~]# 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
[root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@linuxprobe ~]# mkdir /RAID
[root@linuxprobe ~]# mount -a

[/hide]最后是见证奇迹的时刻!我们再次把硬盘设备/dev/sdb移出磁盘阵列,然后迅速查看/dev/md0磁盘阵列的状态,就会发现备份盘已经被自动顶替上去并开始了数据同步。RAID中的这种备份盘技术非常实用,可以在保证RAID磁盘阵列数据安全性的基础上进一步提高数据可靠性,所以,如果公司不差钱的话还是再买上一块备份盘以防万一。

[root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@linuxprobe ~]# mdadm -D /dev/md0
       /dev/md0:
       Version : 1.2
       Creation Time : Fri May 8 09:20:35 2017
       Raid Level : raid5
       Array Size : 41909248 (39.97 GiB 42.92 GB)
       Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
       Raid Devices : 3
       Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Fri May 8 09:23:51 2017
       State : active, degraded, recovering
       Active Devices : 2
       Working Devices : 3
       Failed Devices : 1
       Spare Devices : 1
       Layout : left-symmetric
       Chunk Size : 512K
       Rebuild Status : 0% complete
       Name : linuxprobe.com:0 (local to host linuxprobe.com)
       UUID : 44b1a152:3f1809d3:1d234916:4ac70481
       Events : 21Number Major Minor RaidDevice State
       3 8 64 0 spare rebuilding /dev/sde
       1 8 32 1 active sync /dev/sdc
       4 8 48 2 active sync /dev/sdd
       0 8 16 - faulty /dev/sdb


篇一Linux 7 | RAID阵列技术——简介

篇二Linux 7 | RAID阵列部署——RAID



原文摘自:https://www.linuxprobe.com/chapter-07.html