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