실패한 소프트웨어 Raid5 복구

실패한 소프트웨어 Raid5 복구

소프트웨어 raid5에 설정된 4개의 오래된 HDD에서 데이터를 복구하려고 하는데 디스크에 오류가 발생한 것 같습니다. 제가 하고 싶은 일은 공격대를 복원하여 데이터를 다른 곳에 복사할 수 있도록 하는 것입니다. 몇 가지 조사를 했고 이를 사용하여 재동기화를 수행하고 싶지만 mdadm궁극적으로 이를 엉망으로 만들고 싶지 않으며 누군가 이를 달성하기 위해 수행해야 할 작업을 설명할 수 있다면 데이터 보안에 크게 감사하겠습니다. 나는 또한 우분투 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).

그 후 어레이는 이제 "Active Sync" 상태의 디스크 3개와 함께 "Active, Degraded" 상태가 되며 마지막 디스크는 제거되었습니다. 데이터를 보다 안전한 위치로 성공적으로 복사하기 시작했음을 보고하게 되어 기쁩니다(적어도 지금까지는 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

관련 정보