zfs raidz-2는 3개 드라이브에서 어떻게 복구합니까?

zfs raidz-2는 3개 드라이브에서 어떻게 복구합니까?

무슨 일이 일어났는지, ZFS가 어떻게 완전히 복구할 수 있었는지, 아니면 내 데이터가 아직 그대로인지 궁금합니다.
내가 어젯밤에 들어왔을 때 나는 이것을 보고 당황스러웠고, 그 다음에는 혼란스러웠습니다.

zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

errors: No known data errors 

데이터 오류가 없고 전체 풀에 오류가 발생하지 않는 것이 어떻게 가능합니까?

한 드라이브에는 sdfSMART에 대한 smartctl 테스트 실패가 있고 read fail다른 드라이브에는 약간 덜 문제가 있습니다. 수정할 수 없거나 보류 중인 섹터 또는 UDMA CRC 오류.

결함이 있는 각 드라이브를 오프라인으로 전환한 다음 한 번에 하나씩 온라인으로 전환해 보았지만 도움이 되지 않았습니다.

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  OFFLINE      0     0    63
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

그래서 매우 운이 좋다고 느꼈거나 내 데이터가 실제로 모두 거기에 있을 수 있는지 약간 혼란스러워서 최악의 드라이브를 찾기 위해 검사를 한 후 유일한 예비 드라이브로 교체했습니다.

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jan 21 17:33:15 2020
        467G scanned out of 8.91T at 174M/s, 14h10m to go
        77.6G resilvered, 5.12% done
config:

        NAME                                              STATE     READ WRITE CKSUM
        san                                               DEGRADED     0     0     0
          raidz2-0                                        DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346      ONLINE       0     0     0
            replacing-1                                   DEGRADED     0     0     0
              ata-ST2000DM001-9YN164_W1E07E0G             OFFLINE      0     0    38
              ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0  (resilvering)
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332      DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                     ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344      ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                        DEGRADED     0     0    75  too many errors

리실버가 성공적으로 완료되었습니다.

$ zpool status
  pool: san
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:

        NAME                                            STATE     READ WRITE CKSUM
        san                                             DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346    ONLINE       0     0     0
            ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332    DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                   ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344    ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                      DEGRADED     0     0    75  too many errors

나는 지금 기로에 섰습니다. 저는 일반적으로 dd결함이 있는 드라이브의 처음 2MB를 0으로 만들고 자체적으로 교체합니다. 그렇게 해도 괜찮습니다. 그러나 실제로 데이터가 누락된 경우 복구를 위해 마지막 두 볼륨이 필요할 수 있습니다.

sdf지금 내 책상 위에 이게 있다 가 치워졌어요. 최악의 경우에는 이 제품을 사용하여 회복을 도울 수 있을 것 같습니다.

그동안 성능이 저하된 드라이브의 처음 몇 MB를 개발/제로화하고 자체적으로 교체할 예정입니다. 문제가 해결되면 교체품을 얻을 수 있을 때까지 두 번째 결함이 있는 드라이브에 대해 헹구고 반복해야 한다고 생각합니다. 손에.

질문 무슨 일이 일어났는지, 풀이 어떻게 버틸 수 있었는지, 아니면 일부 데이터가 누락되었을 수 있는지(zfs 및 해당 보고서의 무결성을 고려할 때 의심스럽습니다)

예를 들어 실패한 스택의 최상위 드라이브가 아닌 행운의 실패 순서로 인한 것일 수 있습니까?

질문 이것은 단지 참고용일 뿐이며 주제와 관련이 없습니다. 3개가 동시에 실패하게 된 원인은 무엇입니까? 나는 그것이 촉매제였던 스크럽이라고 생각합니다. 전날 밤에 확인했는데 모든 드라이브가 온라인 상태였습니다.

최근 케이블 연결이 문제가 되어 사무실이 밤에 추워졌지만 이러한 문제는 drive unavailable체크섬 오류와는 반대로 발생했습니다. 나는 그것이 케이블링이 아니라 5년이 된 오래된 드라이브라고 생각합니다. 그런데 하루에 3번의 실패? 자, 그거면 우리 모두가 겁을 먹기에 충분해요!

답변1

RAID-Z2는 이중 패리티입니다., RAID 6과 유사한 중복성. 두 개의 디스크가 완전히 실패할 수 있으며 데이터는 패리티에서 복구됩니다. 배열의 나머지 부분이 정상이라고 가정합니다.

반드시 I/O 오류가 있었던 것은 아닙니다.DEGRADED는 ZFS가 디스크를 계속 사용함을 의미합니다., 체크섬 오류에도 불구하고. 아마도 몇 번의 비트 전환 때문일 수도 있지만 드라이브는 여전히 작동합니다. 당링크해당 출력에서:

오류가 발생한 풀을 확인하려면 'zpool status -x'를 실행하세요.

READ, WRITE 또는 CKSUM에 대한 오류 수가 0이 아닌 장치를 찾습니다. 이는 장치에 읽기 I/O 오류, 쓰기 I/O 오류 또는 체크섬 유효성 검사 오류가 발생했음을 나타냅니다. 장치가 미러 또는 RAID-Z 장치의 일부이기 때문에 ZFS는 오류를 복구하고 이어서 손상된 데이터를 복구할 수 있었습니다.

이러한 오류가 일정 기간 동안 지속되면 ZFS는 장치에 결함이 있다고 판단하고 이를 표시할 수 있습니다. 그러나 이러한 오류 수는 장치를 사용할 수 없음을 나타낼 수도 있고 그렇지 않을 수도 있습니다.

드라이브 상태 관련:

어쩌면 5년이 된 오래된 드라이브일 수도 있습니다. 그런데 하루에 3번의 실패? 자, 그거면 우리 모두가 겁을 먹기에 충분해요!

이제 중요한 데이터를 백업 복원 테스트해 보세요. 이 배열이 아닌 다른 미디어에서.

계속해서 성능이 저하되는 드라이브를 교체하십시오. 확실히 커널이 syslog에서 I/O 오류를 보고하는 경우입니다. 보증 또는 지원 계약이 적용되는 경우 이를 활용하십시오. 보증 기간이 지나면 제조업체에서는 이렇게 오래 지속되지 않을 것이라고 장담하므로 이를 고려하십시오.

관련 정보