如何从RAID阵列中更换故障设备

在前面的文章中,我们介绍如何设置RAID-1在RHEL/CentOS系统上。附阵列有的时候会发生磁盘故障,RAID简单地将其标记为出现故障的设备,不要使用它了。在这种情况下,我们需要更换新的工作设备故障设备。下面的图像显示,为/dev/sdc2磁盘已被标记为出现故障,新的磁盘连接已经发生,与完整的内容同步。 RAID 1阵列与 - 故障磁盘 在本文中,您将了解到如何检查哪个设备出现故障以及如何从RAID阵列中删除。本文将一步一步你帮忙从RAID阵列更换故障设备。

第1步:确定故障设备

找出正确的磁盘这标志着的故障,使用的mdadm -status检查连接RAID中的所有磁盘的状态。
[root@server1 ~]# mdadm --detail /dev/md0

/dev/md0:
        Version : 1.2
  Creation Time : Tue Mar 25 19:30:56 2014
     Raid Level : raid1
     Array Size : 5252187 (5.01 GiB 5.38 GB)
  Used Dev Size : 5252187 (5.01 GiB 5.38 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Tue Mar 25 22:40:08 2014
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           Name : server1:0  (local to host server1)
           UUID : 32a1c5ed:7d6a99a6:29d422f9:a3559b48
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       0        0        1      removed

       1       8       33        -      faulty spare   /dev/sdc1
如果你看上面的输出,磁盘/dev/sdc1正显示出故障且作为备用磁盘。 因此,我们的目标是要删除/dev/sdc1和代替的添加新的磁盘。 同时一定要设置文件系统类型为Linux的RAID自动检测学习目的:你可以简单地标记任何故障磁盘,使用以下命令
[root@server1 ~]# mdadm /dev/md0 --fail /dev/sdc1

mdadm: set /dev/sdc1 faulty in /dev/md0

第2步:创建新的磁盘

我附上一个新的虚拟磁盘/dev/sdd 让我们使磁盘上的一个分区作为故障磁盘的大小相同/dev/sdd1
[root@server1 ~]# fdisk /dev/sdd

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xe70cdc62.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +5G

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

第3步:删除RAID磁盘故障

从RAID阵列中移除故障磁盘
[root@server1 ~]# mdadm /dev/md0 --remove /dev/sdc1

mdadm: hot removed /dev/sdc1 from /dev/md0

第4步:在RAID附加新磁盘

正如我们从RAID阵列中删除故障磁盘,允许它取代附加新磁盘/dev/sdd1。
[root@server1 ~]# mdadm /dev/md0 --add /dev/sdd1

mdadm: added /dev/sdd1
一旦新的磁盘连接到RAID阵列,它就会自动开始同步数据到磁盘,要查看同步使用状态
[root@server1 ~]# cat /proc/mdstat

Personalities : [raid1]
md0 : active raid1 sdd1[2] sdb1[0]
      5252187 blocks super 1.2 [2/1] [U_]
      [====>................]  recovery = 22.8% (1200000/5252187) finish=0.2min speed=240000K/sec

unused devices: