NAS의 RAID5 수정 정지, 이제 mdadm을 사용하여 복구를 시도하십시오.

NAS의 RAID5 수정 정지, 이제 mdadm을 사용하여 복구를 시도하십시오.

저는 4x4TB 하드 드라이브가 장착된 Zyxxel NAS540을 실행하고 있습니다. 며칠 전 NAS에서 신호음이 울리기 시작했고 RAID 성능이 저하된 상태인 것을 확인했습니다. 드라이브 중 하나의 SMART 값이 매우 나빴기 때문에 NAS를 종료하고 교체 디스크를 주문한 후 이를 삽입하고 웹 인터페이스를 통해 복구 프로세스를 시작했습니다.

며칠 후(주말에 갔음) 진행 상황을 확인하고 싶었지만 더 이상 웹 인터페이스에 로그인할 수 없었습니다. NAS에는 디스크 활동도 표시되지 않습니다(LED 깜박임이나 소음 없음). SSH 및 mdadm을 통해 상태를 가져오려고 시도했는데 3개의 드라이브가 깨끗한 상태이고 하나는 대기 상태에 있다고 합니다. 그럼 수리가 성공하기 전과 같나요? 액세스도 없고 디스크 액세스도 없는 상태에서 NAS를 다시 시작했습니다.

이제 웹 인터페이스가 다시 작동하지만 "볼륨 작게"라고 표시됩니다. 메뉴에서 해결할 수 있는 방법이 없습니다. 또한 디스크를 클릭하면 디스크 1,2,3이 "핫 스페어"로 표시됩니다. 디스크 4에는 상태가 없습니다. 교체한 디스크는 3번 디스크입니다.

그 이후로 NAS에 대한 SSH 액세스도 끊어졌기 때문에 디스크를 내 PC에 넣고 몇 가지 명령을 실행하여 상황을 파악했습니다. 출력은 다음과 같습니다.

고양이 /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
unused devices: <none>

sudo mdadm --check /dev/sd[abcdef]3

/dev/sda3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
  Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=384 sectors
          State : clean
    Device UUID : ac8c7cd6:a8f3d86e:cb210c2b:bcdfc2eb

    Update Time : Thu Nov 14 16:31:43 2019
       Checksum : 667f486f - correct
         Events : 1210

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 3
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
  Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=384 sectors
          State : active
    Device UUID : 1bbec5f9:dec5a68a:d07cfdbe:e05d0cb4

    Update Time : Mon Nov 11 18:02:11 2019
       Checksum : 1cd3509 - correct
         Events : 74

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : clean
    Device UUID : 78f30bc0:b68074ee:9a3a223c:93decfd4

    Update Time : Sun Nov 17 23:41:48 2019
       Checksum : c9cda273 - correct
         Events : 1230

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 0
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : clean
    Device UUID : 85b74994:874b016e:609081d6:4cfcd0ee

    Update Time : Sun Nov 17 23:41:48 2019
       Checksum : d1f8a2d1 - correct
         Events : 1230

         Layout : left-symmetric
     Chunk Size : 64K

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

sudo mdadm --examine --brief --scan --config=파티션

ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2
ARRAY /dev/md/0  metadata=1.2 UUID=b705c51b:2360cd8e:6b81c03f:2072f947 name=NAS540:0
ARRAY /dev/md/1  metadata=1.2 UUID=186ed461:615007c3:ab9e4576:7b5f7084 name=NAS540:1
ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2

sudo mdadm --assemble --scan

mdadm: Devices UUID-73e88019:b7cf694c:8584cbaa:47f57992 and UUID-73e88019:b7cf694c:8584cbaa:47f57992 have the same name: /dev/md/2
mdadm: Duplicate MD device names in conf file were found.

이제 다음 단계는 어떻게 생겼는지 궁금합니다. 중복 항목을 제거하기 위해 /etc/mdadm.conf를 수동으로 편집한 몇 가지 유사한 상황을 발견했습니다.

다른 경우에는 RAID가 수동으로 어셈블되지만(예: mdadm --assemble /dev/mdX /dev/sda3 /dev/sdb3 ...) 여기서는 내 RAID 이름(mdX)을 모릅니다.

진행 방법에 대한 아이디어가 있습니까?

추신: 예, 중요한 파일의 백업이 있지만 다른 모든 파일을 복원하는 것은 여전히 ​​문제가 없습니다.

나는 이제 몇 걸음 앞으로 나아갔다. 나는 다음을 사용하여 배열을 재조립했습니다.

mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

그런 다음 다음을 사용하여 파티션 레이아웃을 복사합니다.

sfdisk -d

마지막으로 새 디스크를 추가하십시오.

sudo mdadm --manage /dev/md2 --add /dev/sdb3

mdadm --details의 출력에는 각 장치가 "clean"으로 표시되고 raid 상태는 "AAAA"로 표시됩니다. 이제 Raid를 설치하려고 하면 다음 오류가 발생합니다.

sudo mount /dev/md/2 /media/raid
mount: /media/raid: wrong fs type, bad option, bad superblock on /dev/md2, missing codepage or helper program, or other error.

이제 헤더의 비트맵에서 오는 것으로 의심되는 데이터 오프셋에 차이가 있습니다.

Data Offset : 262144 sectors
Data Offset : 264192 sectors

mdadm 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

When creating an array on devices which are 100G or larger, mdadm automatically adds an internal bitmap as it will usually be beneficial. This can be suppressed with --bitmap=none or by selecting a different consistency policy with --consistency-policy.

그러면 .man --bitmap=none페이지에 나와 있는 대로 실행하여 이 문제를 해결할 수 있습니까? 아니면 문제가 발생합니까?

If the word none is given with --grow mode, then any bitmap that is present is removed.

데이터 오프셋을 수동으로 지정하여 배열을 다시 만들었습니다.

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 /dev/sdc3 /dev/sda3

이제 이를 설치하고 데이터에 액세스할 수 있습니다. NAS에서도 작동합니다.

답변1

편집 내용에서 언급했듯이 mdadm --create올바른 데이터 오프셋으로 명령을 다시 실행하여 문제를 해결했습니다. 내 공격대를 다시 읽을 수 있습니다. 이미 새 disk3에서 복구를 실행했기 때문에 OP에 설명된 대로 명령을 실행할 수 있었지만 오류의 초기 위치에 있다고 가정하면 다음을 실행합니다.

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

이어서

sudo mdadm --manage /dev/md2 --add /dev/sdb3

물론 대신에 자신만의 지정자를 사용하십시오 sdbX.

관련 정보