Realmente no necesita desfragmentar los sistemas de archivos Btrfs manualmente.
Sí, Btrfs es COW (copia en escritura), lo que implicaría que fragmenta los archivos mucho más que Ext, pero esto se aborda en varios aspectos del diseño, incluida la capacidad de desfragmentar fácilmente el sistema de archivos mientras está en línea. Este extracto proporciona más detalles (énfasis mío):
Desfragmentación automática
Los sistemas de archivos COW (copiar-escribir-escribir) tienen muchas ventajas, pero también tienen algunas desventajas, por ejemplo, la fragmentación. Btrfs presenta los datos secuencialmente cuando los archivos se escriben en el disco por primera vez, pero un diseño COW implica que cualquier modificación posterior al archivo no debe escribirse sobre los datos antiguos, sino que debe colocarse en un bloque libre, que causar fragmentación (las bases de datos RPM son un caso común de este problema). Además, sufre los problemas de fragmentación comunes a todos los sistemas de archivos.
Btrfs ya ofrece alternativas para combatir este problema: en primer lugar, admite la desfragmentación en línea con el comando btrfs filesystem defragment
. En segundo lugar, tiene una opción de montaje -o nodatacow
, que deshabilita la VACA para los datos. Ahora btrfs agrega una tercera opción, la -o autodefrag
opción de montaje. Este mecanismo detecta pequeñas escrituras aleatorias en archivos y las pone en cola para un proceso de desfragmentación automática, por lo que el sistema de archivos se desfragmentará a sí mismo mientras se usa. Todavía no es adecuado para la virtualización o grandes cargas de trabajo de bases de datos, pero funciona bien para archivos más pequeños como rpm, SQLite o bases de datos bdb.
Por lo tanto, siempre y cuando no planee ejecutar un software intensivo en E / S como una base de datos bajo una carga significativa, debería ser bueno, siempre que monte sus sistemas de archivos con la autodefrag
opción.
Para verificar la fragmentación de los archivos, puede usar la utilidad filefrag :
$ find /path -type f -exec filefrag {} + >frag.list
# Now you can use your favourite tools to sort the data
En los sistemas Systemd, /var/log/journal/
probablemente será el más fragmentado. También puede mirar ~/.mozilla
y otras bases de datos de navegadores.
Para desfragmentar, use:
$ sudo btrfs fi defrag -r /path