Tamaño BTRFS en disco 200 veces mayor que el tamaño real

Tamaño BTRFS en disco 200 veces mayor que el tamaño real

¿Por qué BTRFS cita tan erróneamente el tamaño de los archivos pequeños en mi sistema de archivos?

[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
  • Opciones sobre acciones completamente ( defaults, simple mkfs.btrfs)
  • Núcleo de Linux 3.18
  • RAID1

Bien, parece que BTRFS está redondeando archivos hasta 1 MB en algún umbral. Ese 1 MB esexactamente1048576 (o 2²⁰) bytes.

Lo más sorprendente cat __init__.py > __init__2.pyes que crea un nuevo archivo del tamaño correcto. ¿Tiene esto algo que ver con el hecho de que creé estos archivos sobre samba?

Los archivos recién creados también tienen el tamaño correcto.

Respuesta1

Resulta simplemente reescribir todos los archivos en el lugar:

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

Redujo correctamente los archivos. No he visto que vuelva a suceder.

información relacionada