btrfs y espacio libre perdido

8

Convertí mi partición ext4 a btrfs y eliminé el subvolumen de guardar después de hacerlo. Luego habilité la compresión (lzo) del sistema de archivos en el archivo fstab y todo está correcto hasta ahora.

Luego forcé la compresión de todos los archivos usando el comando de desfragmentación con el parámetro -c que la nueva compresión se aplica a todos los archivos.

Al hacerlo, noté que mi SSD se llenó completamente, antes de tener 6 gigas de espacio libre. No, no me queda nada.

easteregg@x201s:~$ btrfs fi df /
Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

y

easteregg@x201s:~$ df -ha
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda1          75G   60G  852M  99% /

Y ahora. ¿Cómo puedo recuperar mi espacio libre? Esperaba ganar más espacio debido a la compresión lzo. ¡Y ahora!

El fs está montado correctamente.

easteregg@x201s:~$ mount
/dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo)

¿Alguna idea de cómo solucionar este problema?

huevo de Pascua
fuente
Ahora tengo el punto: no puedes hacer un reequilibrio en línea. Eso explica por qué nada funcionó para mí. Así que simplemente inicié mi sistema de rescate e hice un reequilibrio de todo el disco y luego ejecuté el comando de desfragmentación con la compresión habilitada. ¡Ahora tengo alrededor de 17 conciertos de espacio libre! nice :)
easteregg
1
Como práctica recomendada, solo mantenga un conjunto mínimo de instantáneas y elimine las innecesarias para evitar el desperdicio de espacio en el volumen, porque btrfs es un sistema de archivos de copia en escritura, a medida que pasa el tiempo, se cambiarán más y más bloques de datos, haciendo instantáneas ocupando más y más espacio en el disco.
Terry Wang
2
Vea también esta pregunta , que tiene una explicación detallada y comentarios útiles.
ignis

Respuestas:

8

Sé que esta pregunta es antigua, pero a partir de hoy el comando de equilibrio resuelve estas cosas:

Durante la conversión, se cubrirá una gran cantidad de espacio para mover cosas. Una vez que se asigna, ya no aparecerá como "libre" o "sin asignar". Para solucionar esto, simplemente comience un equilibrio

btrfs balance start "path"

También puede indicarle al comando de equilibrio que solo equilibre fragmentos, que se utilizan para un determinado porcentaje, como 0%, lo que significaría que los fragmentos están vacíos:

btrfs balance start "path" -dusage=0 -musage=0

parámetro -d significa opciones para los datos. parámetro -m significa opciones para los metadatos.

jugar con el comando de equilibrio, debería ayudar.

wuppi
fuente
5

Mira la salida de btrfs fi df:

Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

La totalparte es el espacio asignado, mientras que usedes realmente utilizado por btrfs. La diferencia entre totaly used(alrededor de 15 GB) es su espacio perdido. Como puede ver, ya se ha asignado para bloques de metadatos.

Solo tengo experiencia de hobby con btrfs, pero no creo que una conversión ext4 sea la mejor manera de crear un sistema de archivos btrfs bien diseñado. Afortunadamente, puede reequilibrar todo el sistema de archivos para que vuelva a hacer todas las asignaciones.

Como siempre, use copias de seguridad.

ramslök
fuente