En el sistema de archivos Btrfs, hay fragmentos que se asignan para datos regulares, metadatos. También hay fragmentos que se asignan para almacenar información del sistema de archivos y también sobre dónde se ubican otros fragmentos en el disco físico. Esos fragmentos solo pueden almacenar los datos. Muy ocasionalmente, un tipo de fragmento puede llenarse y comenzar a quedarse sin espacio. Sin embargo, puede haber (y a menudo hay) todavía espacio disponible en otros fragmentos. Por lo tanto, es necesario liberar algo de espacio en él.
Hay una función de equilibrio disponible en Btrfs FileSystem. La operación de balance libera efectivamente espacio en los otros fragmentos para que esté disponible para su asignación.
1. El siguiente comando muestra cuánto espacio se ha asignado en su sistema de archivos:
# btrfs fi show
2. El siguiente comando muestra el uso del archivo:
# btrfs filesystem du /btr
3. Uso completo del sistema de archivos por datos y metadatos (antes del balance):
# btrfs filesystem usage /btr
El siguiente comando se usa para el balance y este comando hace el balance completo sin solicitar filtros. Esta operación es muy intensa y lleva potencialmente mucho tiempo. Se recomienda utilizar los filtros de balance para restringir los datos balanceados.
[Sin filtro]
# btrfs filesystem balance /btr
[Con filtro (use dusage y musage)]
# btrfs filesystem balance start -dusage=5 /btr
Tenga en cuenta que no debe haber espacio entre -d y uso . Este comando intentará reubicar los datos en fragmentos de datos vacíos o casi vacíos (en este ejemplo, se utiliza como máximo el 5 %), lo que permite recuperar el espacio y reasignarlo a los metadatos.
Si el comando de equilibrio termina con "Terminado, tuve que reubicar 0 de XX fragmentos “, entonces necesita aumentar el “dusage ” parámetro de porcentaje hasta que se reubique al menos un fragmento. Si no usa los filtros, equilibra tanto los datos como los metadatos.
Otra forma de equilibrar el sistema de archivos btrfs a través de script
for i in 0 5 10 15 20 25 30 40 50 60 70 80 90 100 do echo "${0}: Running with ${i}%" sudo btrfs balance start -dusage=$i -musage=$i /btr/ done
Después de verificar el saldo a través del siguiente comando:
# btrfs filesystem usage /btr
Dependiendo de 'btrfs filesystem du' y 'btrfs filesystem use', decida los valores para -dusage y -musage.