MDADM RAID1 重新组装-非破坏性方法?

MDADM RAID1 重新组装-非破坏性方法?

系统重启后,我的 MDADM 阵列突然显示非常旧的(超过一年)数据。我假设其中一个磁盘(sdd1)大部分时间都处于离线状态,重启后,我现在只看到该磁盘,而不是较新的磁盘(sdc1)。幸运的是,两个磁盘都完好无损,所以我认为我没有丢失任何数据。我的目标是将旧磁盘从阵列中取出,然后将较新的磁盘添加到阵列中。验证并备份数据后,我想重建阵列,以便两个磁盘都能正常工作。

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdd1[1]
      976630336 blocks super 1.2 [2/1] [_U]

unused devices: <none>


# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Wed Feb 27 00:29:21 2013
     Raid Level : raid1
     Array Size : 976630336 (931.39 GiB 1000.07 GB)
  Used Dev Size : 976630336 (931.39 GiB 1000.07 GB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Wed Oct  4 10:55:30 2017
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : hypervisor:0  (local to host hypervisor)
           UUID : 3676c254:c804e29a:1150107a:a390f263
         Events : 12989

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       49        1      active sync   /dev/sdd1


# mdadm --examine /dev/sdc1 
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 3676c254:c804e29a:1150107a:a390f263
           Name : hypervisor:0  (local to host hypervisor)
  Creation Time : Wed Feb 27 00:29:21 2013
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
     Array Size : 976630336 (931.39 GiB 1000.07 GB)
  Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 67dcc89f:185338b3:9724c8e6:0d437f28

    Update Time : Tue Oct  3 22:04:15 2017
       Checksum : 75e1922c - correct
         Events : 1329213


   Device Role : Active device 0
   Array State : A. ('A' == active, '.' == missing) 


# mdadm --examine /dev/sdd1 
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 3676c254:c804e29a:1150107a:a390f263
           Name : hypervisor:0  (local to host hypervisor)
  Creation Time : Wed Feb 27 00:29:21 2013
     Raid Level : raid1
   Raid Devices : 2

 Avail Dev Size : 1953260976 (931.39 GiB 1000.07 GB)
     Array Size : 976630336 (931.39 GiB 1000.07 GB)
  Used Dev Size : 1953260672 (931.39 GiB 1000.07 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 56c78b79:a587561c:07e7785e:9c6845e2

    Update Time : Wed Oct  4 10:55:30 2017
       Checksum : ea2a38e7 - correct
         Events : 12989


   Device Role : Active device 1
   Array State : .A ('A' == active, '.' == missing)

请注意,sdc1 的“事件”计数远高于 sdd1。另请注意,没有磁盘显示为故障,但其中一个磁盘 (sdc1) 显示为已移除。

备份 sdc 和 sdd 后,我可以安全地执行以下操作吗:

mdadm /dev/md0 -f /dev/sdd1
mdadm /dev/md0 -r /dev/sdd1
mdadm /dev/md0 -a /dev/sdc1

任何投入将不胜感激。

答案1

不,您不能 setfaulty+remove 阵列的单个驱动器。

最好的办法是取出sdd并放入sdc。也许它可以自动检测到,也许不能(因为目前驱动器不包括在内)。

您可以使用命令mdadm使当前阵列脱机并使阵列联机sdc,但由于它们可能具有相同的 GUID,因此这可能很难。

顺便说一句,我真的很想知道这里发生了什么。也许sdc没有raid-autodetect分区?显示了什么fdisk -lu /dev/sdc

相关内容