
최근에 btrfs-convert를 사용하여 lvm 볼륨의 ext4 파일 시스템을 btrfs로 마이그레이션했습니다. 나중에 설치 후 몇 가지 문제가 있음을 발견했습니다.
디스크에 데이터를 쓰는 것과 관련된 작업을 수행 dmesg
하면 scrub
. 불행히도 그 중 하나는 ext2_saved
롤백용입니다. csum 오류가 발생한 파일을 삭제하면 문제가 해결될 것이라고 생각합니다. 그래서 백업과 기타 파일을 삭제했습니다.
다시 시작한 후,scrub
아니요오류가 발견되었습니다. 하지만 설치 시 다음과 같은 메시지가 나타납니다 bdev /dev/mapper/my-volume errs: wr 0, rd 0, flush 0, corrupt 608, gen 0
. 이제 디스크에 쓸 수 있는 것 같습니다(파일 이름을 바꾸는 것이 작동하지만 추가 테스트는 하지 않았습니다).
이 메시지가 나를 걱정하게 해야 합니까, 아니면 무시해도 됩니까? 아니면 더 나은 방법은: 원인을 어떻게 찾을 수 있습니까? 스크러빙 및 btrfs check --repair에서도 문제가 발견되지 않았습니다.
고쳐 쓰다:
Memtest를 실행하고 불량 블록이 있는지 확인했습니다. 두 테스트 결과 모두 깨끗했습니다. 또한 커널을 .dll로 업데이트했습니다 4.9.9-gentoo
. 커널을 컴파일할 때CONFIG_BTRFS_FS_CHECK_INTEGRITY
활성화 옵션(일명 Btrfs with integrity check tool compiled in (DANGEROUS)
) 현재 이 옵션은 비활성화되어 있습니다.
그 후 Chrome을 실행해 보았습니다. 언급된 디스크에서 뭔가 작업을 수행한 것 같습니다. 잠시 후 dmesg에서 다음 내용을 읽었습니다.
*Some stacktrace*
btrfs_finish_ordered_io:someline errno=-95 unknown
forced readonly
제거로 인해 다음 메시지가 남았습니다.
cleaner transaction attach returned -30
또한 체크섬 오류가 계속 발생했을 때 이러한 오류가 발생했지만 이제는 해결되었습니다. 이제 나는 그 이유를 찾을 수 없습니다.
스크럽을 다시 실행했는데 오류가 0개 발생했습니다. btrfs check --repair /dev/mapper/my-volume
지금 실행하면 fixed discount file extents for some inodes
업데이트 이전의 동일한 명령에서 아무 것도 발견되지 않았기 때문에 이것은 분명히 새로운 오류입니다.
데이터를 읽기 전용으로 다른 디스크로 옮긴 다음 포맷해야 할 수도 있습니다.
고쳐 쓰다:
읽기 전용 모드에서 데이터를 복사하는 것이 효율적이고 데이터가 손실되지 않는 것 같습니다. ext4에서 btrfs로의 변환이 아직 완벽하게 작동하지 않은 것 같습니다.
시스템 메시지:
Kernel: 4.4.39-gentoo; now: 4.9.9-gentoo
btrfs-progs v.4.9
답변1
btrfs는 장치별 통계를 유지하고 이를 디스크에 영구적으로 저장합니다. 수동으로 인쇄할 수 있습니다 btrfs device stats device|mountpoint
. 또한 마운트에도 인쇄됩니다(적어도 0이 아닌 경우).
따라서 당신이 보는 것은 과거에 손상이 발견되었다는 것뿐입니다. -z 플래그를 사용하여 카운터를 지울 수 있습니다 btrfs device stats -z /dev/mapper/my-volume
.
물론 처음에 손상을 일으킨 원인을 찾는 것이 가장 좋습니다. btrfs 변환 오류인지, 아니면 계속 손상을 일으킬 수 있는 무언가(신뢰할 수 없는 하드웨어)가 있는지 확실하지 않습니다. 확실하지 않다면 기억력 테스트를 해보는 것을 추천합니다.
(물론, 특히 btrfs와 같은 비교적 새로운 파일 시스템을 사용할 때는 백업을 해야 합니다.)