Desfragmentación Btrfs de archivos / carpetas


9

Acabo de instalar Ubuntu 11.10 en el sistema de archivos Btrfs y quiero hacer una pregunta sobre la desfragmentación de archivos.

¿Realmente necesito desfragmentar archivos o todo el sistema?

Desfragmentar # btrfs sistema de archivos desfragmentar / pool1 Desfragmentar

Desfragmentación de Btrfs


No, btrs, ext4,3,2, ETC ... no requieren que desfragmente las unidades, lo sufren como cualquier otro sistema de archivos.
Uri Herrera

Pero de ninguna manera es lo mismo que NTFS.
Uri Herrera el

Respuestas:


13

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 autodefragopció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 autodefragopció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 ~/.mozillay otras bases de datos de navegadores.

Para desfragmentar, use:

$ sudo btrfs fi defrag -r /path

¿Cómo sé si su desfragmentación ... o no ... comando para comprobar el estado de la desfragmentación
One Zero

2
Esta respuesta es incorrecta según el wiki de BTRFS : btrfs gotchas . El problema de la fragmentación de archivos se puede reproducir fácilmente ejecutando systemd-journald en un volumen btrfs. Aunque todavía no lo he probado, la opción autodefrag resuelve este problema.
Jonas Schäfer

He estado usando btrfs a tiempo completo durante al menos 18 meses, con systemd, firefox, etc. Una verificación rápida usando filefragrevela que los archivos de diario están realmente muy fragmentados (con un promedio de 10k extensiones cada uno), pero no he observado picos de CPU ni Impacto en el rendimiento. No tengo autodefragactivado, lo habilitaré e informaré en el próximo reinicio.
Félix Saparelli

Entonces: la fragmentación de archivos ocurre, autodefragayuda, el impacto en el rendimiento es menor en el mejor de los casos en los sistemas cotidianos. Obviamente, los servidores de carga pesada pueden necesitar medir y ajustar las cosas, pero, de nuevo, este es un software alfa, por lo que es posible que desee evitarlo de todos modos.
Félix Saparelli

find /path -type f -exec filefrag {} + >frag.listevita todos los FIBMAP unsupportederrores de directorios y otros archivos no regulares, y no se rompe con nombres de archivos extraños.
Peter Cordes

0

Por el bien de este tema, creo que es mejor aclarar que:

Any filesystem! = Utilidades de recuperación / gestión

Tenga en cuenta que el sistema de archivos se trata de cómo se organizan los datos en un hardware físico, todas las demás actividades se realizan con software y utilidades adicionales que, especialmente en GNU / Linux, son realizadas por personas que probablemente no están estrictamente relacionadas con quién hizo El sistema de archivos.

Probablemente este no sea el caso de los Btrfs, pero a veces estamos cerca de eso porque los entornos de escritorio y empresariales pueden proporcionar diferentes soluciones con diferentes grados de confiabilidad.

La respuesta a su pregunta es "no", pero es un "no" relacionado con el comportamiento normal de un sistema de archivos genérico, y cada utilidad que puede encontrar al respecto es simplemente un proyecto diferente.

Cuando necesite desfragmentar su sistema de archivos, tenga en cuenta que va a utilizar un software externo que no está realmente relacionado con la vida del sistema de archivos en sí, con todos los pros y los contras.


0

El comando para desfragmentar un sistema de archivos btrfs es

btrfs filesystem defragment sync -r -v -f [-czlib] / /home

0

Basado en esta respuesta se me ocurrió:

sudo find / -xdev -type f -exec filefrag {} + | sed -En 's/(.+): (\w+) extent.*/\2 \1/p' | sort -nr

Esto enumera los archivos más fragmentados primero, con el formato:

<num-fragments> <pathname>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.