SoftRAID 的故障與復原

參考網頁:
磁碟管理:SoftRAID 與 LVM 綜合實做應用(上)

以 Debian Linux RAID 6 為例
1. 原本的 RAID 狀態
# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jun 28 10:25:06 2016
     Raid Level : raid6
     Array Size : 41908224 (39.97 GiB 42.91 GB)
  Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Tue Jun 28 10:36:08 2016
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : debian:0  (local to host debian)
           UUID : 8f039d29:9179c09a:17a76417:e54c9dfa
         Events : 23

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1
       3       8       65        3      active sync   /dev/sde1[@more@]2. 模擬 /dev/sdd1 故障
# mdadm –manage –fail /dev/md0 /dev/sdd1
# mdadm –manage –set-faulty /dev/md0 /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0

3. 檢查目前的 RAID 狀態
# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jun 28 10:25:06 2016
     Raid Level : raid6
     Array Size : 41908224 (39.97 GiB 42.91 GB)
  Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Tue Jun 28 11:12:01 2016
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : debian:0  (local to host debian)
           UUID : 8f039d29:9179c09a:17a76417:e54c9dfa
         Events : 25

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       0        0        4      removed
       3       8       65        3      active sync   /dev/sde1

       2       8       49        –      faulty   /dev/sdd1

sdd1[2](F) 後面 F 代表故障,md0 的最後一行 [4/3]與[UU_U]表示出有一顆磁碟壞掉了
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdb1[0] sde1[3] sdd1[2](F) sdc1[1]
      41908224 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [UU_U]

unused devices: <none>

4. 將故障的硬碟移出
# mdadm –manage –remove /dev/md0 /dev/sdd1
mdadm: hot removed /dev/sdd1 from /dev/md0

5. 檢視移除 /dev/sdd1 的 RAID 狀態
# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jun 28 10:25:06 2016
     Raid Level : raid6
     Array Size : 41908224 (39.97 GiB 42.91 GB)
  Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
   Raid Devices : 4
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Tue Jun 28 11:20:14 2016
          State : clean, degraded
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : debian:0  (local to host debian)
           UUID : 8f039d29:9179c09a:17a76417:e54c9dfa
         Events : 26

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       0        0        4      removed
       3       8       65        3      active sync   /dev/sde1

6. 將新加入的 /dev/sdf 磁碟機建立磁碟分割
# fdisk /dev/sdf

7. 將新增的 /dev/sdf1 加入到 RAID 中
# mdadm –manage –add /dev/md0 /dev/sdf1
mdadm: added /dev/sdf1

8. 再次檢視 RAID 狀態
# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Jun 28 10:25:06 2016
     Raid Level : raid6
     Array Size : 41908224 (39.97 GiB 42.91 GB)
  Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Tue Jun 28 11:29:08 2016
          State : clean, degraded, recovering
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 49% complete

           Name : debian:0  (local to host debian)
           UUID : 8f039d29:9179c09a:17a76417:e54c9dfa
         Events : 39

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       4       8       81        2      spare rebuilding   /dev/sdf1
       3       8       65        3      active sync   /dev/sde1

# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdf1[4] sdb1[0] sde1[3] sdc1[1]
      41908224 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [UU_U]
      [=============>…….]  recovery = 67.1% (14066688/20954112) finish=0.9min speed=124729K/sec

unused devices: <none>