드라이브가 "E"상태 인 Synology NAS에서 mdadm 어레이를 복구하는 방법은 무엇입니까?


12

Synology는 커널의 rdev-> flags 구조에 'DriveError'플래그를 추가하는 md 드라이버 및 mdadm 도구 세트를 사용자 정의한 버전으로 제공합니다.

순 효과-불행히도 두 번째 드라이브의 오류와 결합하여 어레이 오류 (첫 번째 드라이브)를 얻을 수있는 경우-드라이브에서 읽기가 작동하더라도 어레이를 복구 / 재구성 할 수없는 상태가됩니다. 좋아.

이 시점에서 나는 이미이 내용을 가져 와서 재구성 할 것이기 때문에이 배열의 관점 에서이 질문에 대해 걱정하지 않습니다. 미래에이를위한 해결 방법을 원합니다. , 나는 그것이 두 번째로 두 번째이기 때문에 포럼에서 비슷한 질문을하는 다른 사람들을 보았습니다.

Synology의 지원은 그다지 도움이되지 않았으며 (대부분은 무응답), 상자에있는 공격대를 다루는 데있어 어떠한 정보도 공유하지 않습니다.

/ proc / mdstat의 내용 :

ds1512-ent> cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
md2 : active raid5 sdb5[1] sda5[5](S) sde5[4](E) sdd5[3] sdc5[2]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUE]

md1 : active raid1 sdb2[1] sdd2[3] sdc2[2] sde2[4] sda2[0]
      2097088 blocks [5/5] [UUUUU]

md0 : active raid1 sdb1[1] sdd1[3] sdc1[2] sde1[4] sda1[0]
      2490176 blocks [5/5] [UUUUU]

unused devices: <none>

mdadm --detail / dev / md2의 상태 :

/dev/md2:
        Version : 1.2
  Creation Time : Tue Aug  7 18:51:30 2012
     Raid Level : raid5
     Array Size : 11702126592 (11160.02 GiB 11982.98 GB)
  Used Dev Size : 2925531648 (2790.00 GiB 2995.74 GB)
   Raid Devices : 5
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Fri Jan 17 20:48:12 2014
          State : clean, degraded
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

           Name : MyStorage:2
           UUID : cbfdc4d8:3b78a6dd:49991e1a:2c2dc81f
         Events : 427234

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       21        1      active sync   /dev/sdb5
       2       8       37        2      active sync   /dev/sdc5
       3       8       53        3      active sync   /dev/sdd5
       4       8       69        4      active sync   /dev/sde5

       5       8        5        -      spare   /dev/sda5

보시다시피-/ dev / sda5가 어레이에 다시 추가되었습니다. (실제로 실패한 드라이브였습니다.)-md가 드라이브를 예비 드라이브로 인식하더라도 다시 빌드하지는 않습니다. 이 경우 / dev / sde5는 (E) DiskError 상태의 문제가있는 드라이브입니다.

md 장치를 중지하고, 강제로 재 조립하고, 장치 등에서 sda5를 제거 / 판독하려고 시도했습니다. 행동에는 변화가 없습니다.

다음 명령으로 배열을 완전히 다시 만들 수있었습니다.

mdadm --stop /dev/md2
mdadm --verbose \
   --create /dev/md2 --chunk=64 --level=5 \
   --raid-devices=5 missing /dev/sdb5 /dev/sdc5 /dev/sdd5 /dev/sde5

배열을이 상태로 되돌 렸습니다.

md2 : active raid5 sde5[4] sdd5[3] sdc5[2] sdb5[1]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUU]

그런 다음 / dev / sda5를 다시 추가했습니다.

mdadm --manage /dev/md2 --add /dev/sda5

그 후 재 구축을 시작했습니다.

md2 : active raid5 sda5[5] sde5[4] sdd5[3] sdc5[2] sdb5[1]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUU]
      [>....................]  recovery =  0.1% (4569508/2925531648) finish=908.3min speed=53595K/sec

"누락 된"드라이브의 위치가 누락 된 슬롯의 정확한 위치와 일치하는지 확인하십시오.

이 작업이 완료되면 의심스러운 드라이브를 가져와 다시 재구성해야 할 것입니다.

이 복구를 수행하는 "무섭지 않은"방법이 있는지 또는 누군가 Synology 어레이에 대해이 경험을 겪어 md 장치를 오프라인으로 전환하는 것 이외의 다른 방법으로 강제로 재구성하는 방법을 알고 있다면 제안을 찾고 있습니다. 처음부터 배열을 다시 만듭니다.


나는 비슷한 상황에 처해있다. 이 문제를 성공적으로 해결 했습니까?
dvorak

예, 위 단계에 따라 배열을 다시 작성할 수있었습니다. 그래도 R5에서 R6로 지우고 변경하여 후속 조치를 취했습니다.이 시점에서 나는 Synology의 "전체 어레이를 탱크로 연결"동작에 대해 크게 불만을 나타냅니다. ". 이 경우 "글리치"오류가 발생한 두 번째 드라이브는 단일 문제없이 확장 된 스마트 테스트를 통과했습니다.
Nathan Neulinger

유용한 가이드에 감사드립니다. 나는이 모든 것에 너무 자신이 없다고 확신하지 않는다. 나는 공습 전문가가 아니다. 이제는 같은 문제에 직면했지만 제 경우에는 / dev / sde3가 두려운 [E]로 표시된 단일 디스크 RAID 1 어레이 (/ dev / md3)가 있습니다. 나는 당신이했던 것과 같은 단계를 수행하는 것이 가능해야한다고 가정하지만, 그것이 어레이의 단일 디스크이기 때문에 그것이 무엇을 할 지 모르겠습니다. ;-). 어쨌든 mdadm --stop / dev / md3 명령이 실패합니다 (장치 또는 자원 사용 중). 구글이 조금 더 길어질 것 같아 .. =)
dSebastien

어레이를 중지 할 수없는 경우, 무언가를 사용하고있는 것처럼 들립니다. 즉, 장착되었거나 해당 장치에 대해 실행중인 다른 작업이 있습니다.
Nathan Neulinger

2
다행스럽게도 Synology는이 문제를 해결하도록 도와주었습니다. 그들은 그들이 수행 한 명령을 나에게 충분히 제공하기에 친절했다. dsebastien.net/2015/05/19/…
dSebastien

답변:


3

동일한 문제가 발생한 후에 찾은 솔루션에 추가 한 것입니다. 배열을 다시 만드는 방법에 대한 dSebastien 의 블로그 게시물을 따랐 습니다 .

배열을 다시 만드는 방법이 위의 방법보다 더 효과적이라는 것을 알았습니다. 그러나 어레이를 다시 생성 한 후에도 여전히 웹 인터페이스에 볼륨이 표시되지 않았습니다. 내 LUN 중 아무것도 표시되지 않았습니다. 기본적으로 아무것도 구성하지 않은 새 배열을 표시합니다. Synology 지원 부서에 연락하여 문제를 해결하기 위해 원격으로 접속했습니다. 불행히도, 내가 콘솔에서 떨어져있는 동안 그들은 멀리 떨어져있었습니다. 그래도 세션을 캡처하고 그들이 한 일을 살펴 보았습니다. 일부 데이터를 복구하려고 할 때 드라이브가 다시 충돌했고 같은 상황으로 돌아 왔습니다. dSebastien의 블로그에서와 같이 배열을 다시 만든 다음 synology 세션을 통해 업데이트를 수행했습니다. 아래 명령을 실행 한 후 내 어레이와 LUN이 웹 인터페이스에 나타 났으며 작업 할 수있었습니다. 나는 리눅스에서 실제로 경험이 0이지만, 이것은 내 상황에서 수행 한 명령이었습니다. 이것이 다른 사람을 도울 수 있기를 바랍니다. 이 상황은 실제 상황과 다를 수 있으므로 Synology 지원 센터에 문의하여 문제를 해결하는 것이 가장 좋습니다.

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Pass 

DiskStation> synocheckshare
synocheckshare: Pass SYNOICheckShare()
synocheckshare: Pass SYNOICheckShareExt()
synocheckshare: Pass SYNOICheckServiceLink()
synocheckshare: Pass SYNOICheckAutoDecrypt()
synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()

DiskStation> spacetool --synoblock-enum
****** Syno-Block of /dev/sda ******
//I've removed the output. This should display info about each disk in your array

DiskStation> vgchange -ay
  # logical volume(s) in volume group "vg1" now active

DiskStation> dd if=/dev/vg1/syno_vg_reserved_area of=/root/reserved_area.img
24576+0 records in
24576+0 records out

DiskStation> synospace --map_file -d
Success to dump space info into '/etc/space,/tmp/space'

DiskStation> synocheckshare
synocheckshare: Pass SYNOICheckShare()
synocheckshare: Pass SYNOICheckShareExt()
synocheckshare: Pass SYNOICheckServiceLink()
synocheckshare: Pass SYNOICheckAutoDecrypt()
synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Not Pass, # conflict 

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Pass 

1

또 다른 추가 사항 : 1 디스크 / RAID 레벨 0 장치와 매우 비슷한 문제가 발생했습니다.

Synology 지원은 매우 도움이되었고 내 장치를 복원했습니다. 여기에 무슨 일이 있었는지, 이것이 다른 사람들을 돕기를 바랍니다.

내 디스크에서 특정 블록 하나에 오류가 발생했습니다. 시스템 로그 ( dmesg)의 메시지 는 다음과 같습니다.

[4421039.097278] ata1.00: read unc at 105370360
[4421039.101579] lba 105370360 start 9437184 end 5860528064
[4421039.106917] sda3 auto_remap 0
[4421039.110097] ata1.00: exception Emask 0x0 SAct 0x2 SErr 0x0 action 0x6
[4421039.116744] ata1.00: edma_err_cause=00000084 pp_flags=00000003, dev error, EDMA self-disable
[4421039.125410] ata1.00: failed command: READ FPDMA QUEUED
[4421039.130767] ata1.00: cmd 60/00:08:b8:d2:47/02:00:06:00:00/40 tag 1 ncq 262144 in
[4421039.130772]          res 41/40:00:f8:d2:47/00:00:06:00:00/40 Emask 0x409 (media error) <F>
[4421039.146855] ata1.00: status: { DRDY ERR }
[4421039.151064] ata1.00: error: { UNC }
[4421039.154758] ata1: hard resetting link
[4421039.667234] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
[4421039.887286] ata1.00: configured for UDMA/133
[4421039.891777] ata1: UNC RTF LBA Restored
[4421039.895745] ata1: EH complete

몇 초 후 나는 Volume 1 has crashed내 장치에서 무서운 메일을 받았습니다 .

-면책 조항 : 장치 이름을 사용자의 것으로 바꾸고 명령을 복사하여 붙여 넣지 마십시오. 문제가 악화 될 수 있습니다! -

smb를 중지 한 후 파티션을 읽기 전용으로 다시 마운트하고 불량 블록 검사 ( -c) 와 함께 e2fsk를 실행할 수있었습니다 .

umount /dev/md2
e2fsck -C 0 -v -f -c /dev/md2

( e2fsck -C 0 -p -v -f -c /dev/md2내 경우에는 오류를 수동으로 수정해야했기 때문에 가능한 경우 무인으로 실행 하는 데 사용할 수도 있습니다 . 따라서 e2fsck를 다시 시작해야했습니다. Conclusio : -p는 의미가 없습니다. 디스크 오류의 경우)

e2fsck가 오류를 수정할 수 있었지만 smartctl도 Raw_Read_Error_Rate에서 더 이상 증가하지 않았지만 볼륨은 여전히 ​​장치에 의해 읽기 / 쓰기 모드로 마운트되지 않습니다. DSM은 여전히 ​​"볼륨 충돌"을 표시했습니다

그래서 나는 지원으로 티켓을 열었다. 일을 시작하는 데 꽤 오랜 시간이 걸렸지 만 결국 RAID 어레이를 재구성하여 문제를 해결했습니다.

synospace --stop-all-spaces
syno_poweroff_task -d 
mdadm -Sf /dev/md2
mdadm -AfR /dev/md2 /dev/sda3

작업을 수행하기 전에 장치 이름 ( /dev/mdX/dev/sdaX) 을 확인하십시오 . cat /proc/mdstat관련 정보가 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.