恢复失败的软件 Raid5

恢复失败的软件 Raid5

我正在寻找从软件 raid5 中设置的 4 个旧 HDD 恢复数据,看起来磁盘已出现故障。我想要做的是恢复 raid,以便我可以将其数据复制到其他地方。我已经做了一些研究,我相信我想用它mdadm来执行重新同步,但最终我不想把它搞砸,如果有人能解释需要做什么才能实现这一点,我将不胜感激数据安全。我也在 ubuntu 16.04 上,这是我运行时看到的mdadm --detail /dev/md0

/dev/md0:
        Version : 1.1
  Creation Time : Thu Feb 13 09:03:27 2014
     Raid Level : raid5
     Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
  Used Dev Size : 1465005568 (1397.14 GiB 1500.17 GB)
   Raid Devices : 4
  Total Devices : 3
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sun Dec 23 12:51:56 2018
          State : clean, FAILED 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 1
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 512K

           Name : CentOS-01:0
           UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
         Events : 4178728

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       33        1      active sync   /dev/sdc1
       2       8       65        2      active sync   /dev/sde1
       6       0        0        6      removed

       0       8       49        -      faulty   /dev/sdd1

另外,我在每个设备上运行 mdadm --examine:


    /dev/sdb1:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
           Name : CentOS-01:0
  Creation Time : Thu Feb 13 09:03:27 2014
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
     Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
  Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
    Data Offset : 262144 sectors
   Super Offset : 0 sectors
   Unused Space : before=262072 sectors, after=1024 sectors
          State : clean
    Device UUID : 252a74c1:fae726d9:179963f2:e4694a65

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Mar 15 07:05:19 2015
       Checksum : 53cae08e - correct
         Events : 130380

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

    /dev/sdc1:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
           Name : CentOS-01:0
  Creation Time : Thu Feb 13 09:03:27 2014
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
     Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
  Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
    Data Offset : 262144 sectors
   Super Offset : 0 sectors
   Unused Space : before=262072 sectors, after=1024 sectors
          State : clean
    Device UUID : dc8c18bd:e92ba6d3:b303ee86:01bd6451

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 23 14:18:53 2018
       Checksum : d1ed82ce - correct
         Events : 4178730

         Layout : left-symmetric
     Chunk Size : 512K

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

    /dev/sdd1:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
           Name : CentOS-01:0
  Creation Time : Thu Feb 13 09:03:27 2014
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
     Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
  Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
    Data Offset : 262144 sectors
   Super Offset : 0 sectors
   Unused Space : before=262072 sectors, after=1024 sectors
          State : active
    Device UUID : 03a2de27:7993c129:23762f07:f4ba7ff8

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 23 12:48:03 2018
       Checksum : ba2a5a95 - correct
         Events : 4178721

         Layout : left-symmetric
     Chunk Size : 512K

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

    /dev/sde1:
          Magic : a92b4efc
        Version : 1.1
    Feature Map : 0x1
     Array UUID : 1cf7d605:8b0ef6c5:bccd8c1e:3e841f24
           Name : CentOS-01:0
  Creation Time : Thu Feb 13 09:03:27 2014
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 2930012160 (1397.14 GiB 1500.17 GB)
     Array Size : 4395016704 (4191.41 GiB 4500.50 GB)
  Used Dev Size : 2930011136 (1397.14 GiB 1500.17 GB)
    Data Offset : 262144 sectors
   Super Offset : 0 sectors
   Unused Space : before=262072 sectors, after=1024 sectors
          State : clean
    Device UUID : c00a8798:51804c50:3fe76211:8aafd9b1

Internal Bitmap : 8 sectors from superblock
    Update Time : Sun Dec 23 14:18:53 2018
       Checksum : 14ec2b30 - correct
         Events : 4178730

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : .AA. ('A' == active, '.' == missing, 'R' == replacing)

编辑: 按照@frostschutz的建议,我运行了:

server:~$ sudo mdadm --stop /dev/md0

从而成功阻止了袭击。之后我跑了:

server:~$ sudo mdadm --assemble --force /dev/md0 /dev/sdc1 /dev/sdd1 /dev/sde1`
mdadm: forcing event count in /dev/sdd1(0) from 4178721 upto 4178730
mdadm: Marking array /dev/md0 as 'clean'
mdadm: /dev/md0 assembled from 3 drives - not enough to start the array.

看起来不太好,但我仍然尝试了以下方法:

server:~$ sudo mdadm --assemble --scan
mdadm: /dev/md/0 has been started with 3 drives (out of 4).

此后,阵列现在处于“活动、降级”状态,其中 3 个磁盘处于“活动同步”状态,最后一个磁盘被删除。我很高兴地报告,我已经成功开始将数据复制到更安全的地方(至少到目前为止,rsync 命令没有显示错误消息,但我想我们会看到)。

答案1

所以.../dev/sdb1从那以后就没有在这个阵列中活跃过2015年( Update Time)。上面的数据应该已经过时到无用的程度了。从本质上讲,您从那时起就一直在运行 RAID-0。

这样就剩下另外三个设备了/dev/sd{c,d,e}1。其中,/dev/sdd1最近失败了。由于您几年前就已经失去了冗余,因此这次故障实际上使您的 RAID 完全无法工作。

现在就看情况了。这三个驱动器仍然可读吗?然后您也许可以恢复数据。否则,游戏就结束了。所以检查一下smartctl -a。如果任何驱动器有坏扇区或重新分配的扇区,请使用ddrescue将它们复制到新驱动器。

如果驱动器完好无损,并且有足够新的内核(4.10+)和 mdadm(v4.x),您可能可以像这样组装它:

mdadm --stop /dev/md0
mdadm --assemble --force /dev/md0 /dev/sdc1 /dev/sdd1 /dev/sde1

(旧版本中存在组装力错误,但我不确定到底是哪个版本。)

...如果这不起作用,你就剩下了,mdadm --create但这是一条充满危险的道路,另请参阅https://unix.stackexchange.com/a/131927/30851

相关内容