Por que o BTRFS está citando erroneamente o tamanho de arquivos pequenos em meu sistema de arquivos?
[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
- Opções totalmente de ações (
defaults
, simplesmkfs.btrfs
) - Kernel Linux 3.18
- RAID1
Ok, parece que o BTRFS está arredondando arquivos para até 1 MB em algum limite. Esse 1MB éexatamente1048576 (ou 2²⁰) bytes.
O mais surpreendente cat __init__.py > __init__2.py
é que cria um novo arquivo com o tamanho correto. Isso tem algo a ver com o fato de eu ter criado esses arquivos no samba?
Os arquivos recém-criados também têm o tamanho correto.
Responder1
Acontece que apenas reescrevemos todos os arquivos no local:
find . -type f -exec /usr/bin/echo {} \; -exec sed -i '' {} \;
Reduziu corretamente os arquivos. Eu não vi isso acontecer novamente.