btrfs Generation_errs는 무엇입니까?

btrfs Generation_errs는 무엇입니까?

btrfs 파일 시스템을 몇 번 스크러빙하여 몇 가지 오류를 발견했습니다. 장치 상태를 확인하면 Generation_errs가 있음을 알 수 있습니다.

$ sudo btrfs device stats /dev/nvme0n1p5
[/dev/nvme0n1p5].write_io_errs   0
[/dev/nvme0n1p5].read_io_errs    0
[/dev/nvme0n1p5].flush_io_errs   0
[/dev/nvme0n1p5].corruption_errs 0
[/dev/nvme0n1p5].generation_errs 3

이러한 Generation_errs는 무엇입니까? 걱정할 것이 있나요?

FWIW, 정리 후 커널 로그에 발견된 오류 메시지는 다음과 같습니다.

5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321435615232
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 321376649216
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS warning (device nvme0n1p5): checksum/header error at logical 343949312 on dev /dev/nvme0n1p5, sector 671776: metadata leaf (level 0) in tree 109330432
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): bdev /dev/nvme0n1p5 errs: wr 0, rd 0, flush 0, corrupt 0, gen 2
5/22/16 12:00 AM BTRFS error (device nvme0n1p5): unable to fixup (regular) error at logical 343949312 on dev /dev/nvme0n1p5

답변1

이것Btrfs 위키 용어집이게 뭐야?세대예:

  • 세대

    모든 거래마다 내부 카운터가 업데이트됩니다. 메타데이터 블록이 기록되면(기록 중 복사 사용) 현재 세대가 블록에 저장되어 너무 새로운(따라서 일관성이 없을 가능성이 있는) 블록을 식별할 수 있습니다.

다른 항목말하는

일반적으로 코드명은 일치해야 합니다. 불일치는 충돌 후 쓰기 손실(예: 매달린 블록 "포인터", 소프트웨어 오류, 하드웨어 오류), 잘못된 쓰기(블록이 해당 위치에 기록되지 않음, 소프트웨어 오류, 하드웨어 오류)로 인해 발생할 수 있습니다.

그것은 나에게 많은 것을 말해주지 않습니다. 다른 사람들이 묻고 있습니다.이 메일 스레드.

실제로,지난 기사이 스레드에서는 유용한 내용이 언급되었습니다. "생성 오류"는 "블록이 아직 작성되지 않았음을 나타내는 표시"이며 기본적으로 위키에서 말하는 내용을 반영합니다.

따라서 이 정보를 바탕으로 우리는 몇 가지 결론을 내릴 수 있습니다.

  • 파일 시스템은 btrfs완전히 문서화되지 않았으며(사용자 측) 해당 도구의 출력 설명(wiki 또는 심지어설명하다"현재 대부분의 정보는 사람들의 머리 속에 존재합니다.")

  • 메타 정보를 디스크에 쓸 때 일부 오류가 발생하며 이는 문제를 나타낼 수 있습니다.

btfs이 질문에 대답함으로써 나는 어떤 전문가가 와서 "나는 무엇을 해야 합니까?"라는 질문에 대한 올바른 답을 줄 수 있기 를 바랍니다.

다음 전화번호는 btrfs메일링 리스트에서 물어볼 수 있습니다.위키피디아에서 언급됨(내가 당신이라면 지금 당장 이 일을 할 것입니다.)

답변2

저는 전문가는 아니지만 btrfs dev stats -c정기적인 월별 청소 후에 비슷한 보고서를 받았습니다.

4000 corruption_errs on sda
14 generation_errs on sdd

에서 언급했듯이btrfs선적 서류 비치,

손상 오류 블록 체크섬 불일치 또는 손상된 메타데이터 헤더가 발견되었습니다.

오류 발생 생성된 블록이 예상 값과 일치하지 않습니다(예: 상위 노드에 저장됨).

나는 raid 10을 실행하고 있으므로 스크럽이 잘못된 헤더를 다른 복사본의 정상적인 헤더로 교체하여 이러한 체크섬 오류를 수정해야 한다고 생각했지만 스크럽은 그렇게 하지 않습니다(또는 적어도 자동으로 오류 카운터를 재설정하지 않습니다). 그렇다면) 실제로 문제를 해결합니다.

어쨌든, 대신 밸런스를 실행한 다음 디스크를 스크럽하기로 결정했습니다. 이로 인해 손상된 체크섬이 정상 체크섬으로 바뀌었고 오류가 사라졌습니다.

  • 잔액이 권장되나요, 아니면 필수인가요? 나는 모른다.
  • 손상 오류가 있는 상태에서 밸런스를 실행하면 손상된 헤더가 다른 디스크에 전파될 가능성이 있습니까? 나는 모른다.
  • 내 문제가 해결되었나요? 네, YMMV입니다.

관련 정보