영구 ZFS 오류는 무엇을 나타 냅니까?


18

permanent errors오늘 내 zpool에 여러 개가보고되었습니다.

  pool: seagate3tb
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        seagate3tb  ONLINE       0     0    28
          sda       ONLINE       0     0    56

errors: Permanent errors have been detected in the following files:

        /mnt/seagate3tb/Install.iso
        /mnt/seagate3tb/some-other-file1.txt
        /mnt/seagate3tb/some-other-file2.txt

편집 : 그 CKSUM값이 정확한지 확신합니다 . 데이터를 수정하고 실수로 데이터를 엉망으로 만들었을 수 있습니다. 불행히도 내 노트에서 결정적인 답변을 찾을 수 없으며 오류가 해결되어 확실하지 않지만 zpool이보고 한 내용은 정확하고 반영됩니다.

/mnt/seagate3tb/Install.iso 영구적 인 오류가있는 것으로보고 된 예제 파일입니다.

여기 내가 혼란스러워하는 곳이 있습니다. "영구적으로 오류가있는" Install.iso파일을 다른 파일 시스템에있는 동일한 파일의 백업과 비교하면 파일이 동일하게 보입니다.

shasum "/mnt/seagate3tb/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/seagate3tb/Install.iso
shasum "/mnt/backup/Install.iso"
1ade72fe65902b2a978e5504aaebf9a3a08bc328  /mnt/backup/Install.iso
cmp /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso
diff /mnt/seagate3tb/Install.iso /mnt/backup/Install.iso

파일 이 동일한 것 같습니다 . 또한 파일이 완벽하게 작동합니다. 응용 프로그램에서 사용하면 예상대로 작동합니다.

현상태대로 문서 상태 :

데이터 손상 오류는 항상 치명적입니다.

그러나 기본 파일 확인을 기반으로의 정의를 이해하지 못했습니다 fatal.

상태 : 하나 이상의 장치에 오류가 발생하여 데이터가 손상되었습니다. 응용 프로그램에 영향을 줄 수 있습니다.

조치 : 가능하면 문제의 파일을 복원하십시오. 그렇지 않으면 백업에서 전체 풀을 복원하십시오.

어쩌면 내가 누락 된 것이 있지만 ZFS의 권장 사항에도 불구하고 내가 말할 수있는 한 파일은 완벽하게 보이며 복원이 필요하지 않으며 손상이 표시되지 않습니다.

같은 오류 가있는 다른 기사 를 보았지만 아직 내 질문에 대한 답변을 찾지 못했습니다.

파일의 영구적 인 오류는 무엇입니까 ? 나에게 쉽게 명백하지 않은 파일에 대한 하위 레벨 문제가 있습니까? 그렇다면 왜 shasum파일 차이로 감지되지 않습니까?

평신도의 관점에서 볼 때이 파일의 오류를 나타내는 것은 없습니다.


스냅 샷이 있습니까?
ewwhite

3
아무도 말하지 않았으므로 ServerFault에 오신 것을 환영합니까? 이것은 나에게 훌륭한 첫 번째 질문 처럼 보이며 , 나는 그것이 유익한 답변을 계속 얻기를 바랍니다. SF를 고수하고 더 기여하기로 결정하기를 바랍니다.
MadHatter는 Monica

@MadHatter 감사합니다! 당신의 친절한 환영에 감사 드리며 SF를 고수 할 것입니다. 이미 SE 커뮤니티 목록에 추가했습니다.
Will Haley

답변:


22

의 표현은 zpool status약간 오해의 소지가 있습니다. 이 오류에서 영구 오류는 I / O 오류가 발생하여 해당 풀의 SPA (Storage Pool Allocator) 오류 로그에 기록되었음을 나타냅니다. 이것이 반드시 복구 할 수없는 데이터 손상이 있음을 의미 하지는 않습니다 .

zpool scrub풀에서 실행해야 합니다. 제거가 완료되면 SPA 오류 로그가 회전하고 제거하기 전의 오류가 더 이상 표시되지 않습니다. 스크럽에서 오류가 발견되지 zpool status않으면 더 이상 "영구적 인"오류가 표시되지 않습니다.

설명서와 관련하여 "치명적 오류"만이 방식으로 기록된다고 말합니다. 치명적 오류는 ZFS에서 자동으로 수정할 수 없어 I / O 오류로 응용 프로그램에 노출 된 I / O 오류입니다. 반대로 I / O가 즉시 재 시도되거나 중복 장치에서 논리 I / O가 만족되면 치명적인 오류로 간주되지 않으므로 데이터 손상 오류로 기록되지 않습니다.

치명적인 오류가 반드시 영구적 인 데이터 손실을 의미하는 것은 아니며, 애플리케이션에 전파되기 전에 수정 될 수 없었 음을 의미합니다. 예를 들어 케이블이 느슨하거나 컨트롤러가 불량하면 ZFS에서 "영구적"이라고 설명하는 일시적인 치명적 오류가 발생할 수 있습니다. 이것이 실제로 문제인지 여부는 I / O의 특성과 응용 프로그램이 I / O 오류에서 복구 할 수 있는지 여부에 따라 다릅니다.

편집 : @bahamat에 완전히 동의하여 가능한 빨리 중복에 투자해야합니다.


이것을 "영구적"으로보고하는 SPA 오류 로그는 실제로 약간 오해의 소지가 있습니다. 은 zpool scrub당신이 톰 쇼 @ 제안 정확히 무엇을했고, 당신의 설명은 완벽한 의미가 있습니다. 제거 후이 어레이에서 더 이상 "영구적 인 오류"가 표시되지 않습니다. 읽기 실패의 맥락에서 치명적인 오류에 대해서는 생각하지 않았습니다. 나는 그것이 당신이 제안하는 것처럼 일시적인 I / O 오류 일 것이라고 생각합니다. 또한 이중화의 필요성에 전적으로 동의합니다.
Will Haley

톰, 한동안 보지 못 했어 다시 오신걸 환영합니다.
the-wabbit

7

영구 오류는 파일에 체크섬 오류가 있고 복구 할 복제본이 충분하지 않음을 의미합니다. 이는 적어도 하나의 읽기가 I / O 오류로 인해 손상된 데이터를 리턴했음을 의미합니다. 무엇이든 읽기를 수신 한 경우 다시 동일한 디스크 파일에 기록하면 복구 할 수없는 데이터 손상이 발생합니다.

풀 구성을 살펴보면 중복성이없는 것 같습니다. 이것은 매우 위험합니다. 당신은 ZFS의자가 치료 혜택을 얻을하지 않습니다하지만 것입니다 데이터 손상이 있었다 때 말할 수. 일반적으로 ZFS는 손상된 읽기를 자동으로 자동 수정하지만 사용자의 경우에는 읽을 수 없습니다. 카운트는 두 드라이브 모두에 zpool clear해당하기 때문에 이미 실행 한 것처럼 보입니다 .CKSUM0

불행히도, 복제본이 없으면 실제로 알 방법이 없습니다.


2
하지 않을까요 zpool clear또한 오류 메시지 자체뿐 아니라 오류 수를 지우? 메시지가 지속되는 것은 이상하지만 오류는 표시되지 않습니다.
user121391

2
사과드립니다. 개인 정보 보호를 위해 영구적 인 오류 목록에서 파일을 생략했습니다. 그 결과물을 편집 할 때 CKSUM 수를 엉망으로 만들고 귀중한 맥락을 잃었습니다. 현실을 반영하기 위해 질문을 편집했습니다. @ user121391
Will Haley 님이

이 경우 표시되는 숫자가 정확하면 어딘가에 하드웨어 오류가있을 수 있습니다. 두 디스크 모두 CKSUM counts컨트롤러, 케이블 또는 두 디스크 사이의 공유 하드웨어 일 수 있음을 보여줍니다 . 디스크가 모두 고장 일 수도 있습니다 . 어쨌든 중복성을 최대한 추가하고 표시된 파일의 손상 여부를 검사해야합니다.
bahamat

OP에는 중복성이없는 것 같습니다. vdev에는 56 개의 CKSUM 오류가 있고 풀에는 28 개의 CKSUM 오류가 있습니다. 따라서 이전 의견에서 "두 디스크"로 무엇을 언급했는지 잘 모르겠습니다. 중복의 가치에 대한 귀하의 의견에 동의합니다.
CVn

네가 옳아. 다른 디스크 인 것처럼 풀 이름을 잘못 읽었습니다. 지적 해 주셔서 감사합니다.
bahamat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.