실제 크기보다 200배 더 큰 디스크의 BTRFS 크기

실제 크기보다 200배 더 큰 디스크의 BTRFS 크기

BTRFS가 내 파일 시스템의 작은 파일 크기를 그렇게 심하게 잘못 인용하는 이유는 무엇입니까?

[pi@rpi scipy]% cat __init__.py | wc -c            # literal byte count
4729
[pi@rpi scipy]% du --apparent-size -h __init__.py  # size on filesystem (same)
4.7K    __init__.py
[pi@rpi scipy]% du -h __init__.py                  # reported size to ls
1.0M    __init__.py
  • 완전 스톡 옵션( defaults, 일반 mkfs.btrfs)
  • 리눅스 커널 3.18
  • RAID1

좋아요, BTRFS가 일부 임계값에서 파일을 1MB까지 반올림하는 것으로 보입니다. 그 1MB는정확히1048576(또는 2²⁰)바이트.

더 놀라운 것은 cat __init__.py > __init__2.py올바른 크기의 새 파일을 만드는 것입니다. 이것이 내가 삼바를 통해 이러한 파일을 생성했다는 사실과 관련이 있습니까?

새로 생성된 파일의 크기도 정확합니다.

답변1

모든 파일을 그 자리에서 다시 작성하는 것으로 나타났습니다.

find . -type f -exec /usr/bin/echo {} \; -exec sed -i '' {} \;

파일을 올바르게 축소했습니다. 나는 그런 일이 다시 일어나는 것을 보지 못했습니다.

관련 정보