
나는 완전히 신뢰하지는 않지만 여전히 사용하고 싶은 HDD를 가지고 있습니다(버스트코인 채굴, 파일에 불량 블록이 있으면 몇 센트만 잃게 됩니다).
특정 블록을 불량으로 표시하도록 btrfs에 어떻게 지시할 수 있습니까(예: badblocks
출력에서)?
블록을 불량으로 미리 표시할 수 없는 경우 해당 btrfs scrub
블록을 사용하는 파일이 삭제되면 나중에 식별된 불량 블록을 피할 수 있습니까?
답변1
안타깝게도 그렇지 않습니다.
btrfs는 불량 블록을 추적하지 않으며 btrfs scrub
다음 파일이 동일한 불량 블록에 도달하는 것을 방지하지 않습니다.
이 btrfs 메일링 리스트 게시물ext4를 다음과 함께 사용하는 것이 좋습니다 mkfs.ext4 -c
(이것은"불량 블록 목록을 작성한 다음 해당 섹터를 사용하지 않습니다."). 사용 제안RAID0이 포함된 mdadm 3.1+ 이상의 btrfs는 작동하지 않습니다..
것 같다LVM은 불량 블록 재할당을 지원하지 않습니다..
해결 방법은 불량으로 알려진 블록을 제외하고 장치를 구축하는 것입니다.dmsetup을 통한 btrfs.
청구되지 않음 — 아직 패치 없음 — 아직 커널에 없음
현재 btrfs는 불량 블록, 즉 기록된 데이터가 손실될 가능성이 매우 높은 디스크 블록을 추적하지 않습니다. Btrfs는 불량 블록의 출력 형식으로 목록을 승인하고 이를 새 btree(또는 새 플래그와 함께 현재 익스텐트 트리)에 저장하고 블록에 포함된 모든 데이터를 재배치하고 이러한 블록을 사용할 수 없도록 예약해야 합니다. 향후 할당을 위해. 또한 체크섬 오류가 발견되면 불량 블록을 테스트하도록 스크럽을 학습할 수 있습니다. 이렇게 하면 스크럽이 훨씬 더 유용해집니다. 체크섬 오류는 일반적으로 디스크로 인해 발생하지만, 스크럽이 문제가 있는 파일을 감지하여 백업 시나리오에서 해당 파일을 다시 생성할 수 있는 반면, 불량 블록을 재사용하는 다음 파일에서는 대신 오류가 발생하기 시작합니다. 이 두 항목은 ext4 기능(e2fsck를 통해 사용됨)과 일치합니다.
상태가 변경되면 댓글을 달아 주시면 이 답변을 업데이트하겠습니다.
답변2
이것이 제가 이 제한을 해결하려고 생각하는 방법입니다. 불완전한 솔루션.
- 파일 시스템으로 저널링하지 않고 ext4 생성(불량 블록이 표시됨)
- ext4 위에 btrfs 파일 이미지를 만듭니다.
- 루프 장치를 사용하여 btrfs 이미지를 마운트합니다.
약간의 추가 오버헤드가 예상될 수 있습니다.