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

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

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, simples mkfs.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.

informação relacionada