Tamanho do BTRFS no disco 200x maior que o tamanho real

2

Por que é que o BTRFS cita erroneamente o tamanho de arquivos pequenos no 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
  • Completamente opções de estoque ( defaults , simples mkfs.btrfs )
  • Kernel do Linux 3.18
  • RAID1

Ok, isso indica que o BTRFS está arredondando arquivos de até 1 MB em algum limite. Esse 1MB é exatamente 1048576 (ou 2²⁰) bytes.

Mais surpreendentemente, cat __init__.py > __init__2.py 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.

    
por PythonNut 01.06.2015 / 23:44

1 resposta

1

Acaba de reescrever todos os arquivos no local:

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

Corrigimos os arquivos. Eu não vi isso acontecer novamente.

    
por 08.08.2015 / 01:47