btrfs: metadatos ENORMES asignados

14

Tengo un disco SSD de 256 GB en el que convertí mi raíz ext4 FS a btrfs. Borré el subvolumen de respaldo ext4, habilité la compresión y desfragmenté recursivamente para habilitarlo en todos los archivos.

btrfs fi df / Sin embargo, tiene una salida que me preocupa:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Si entiendo la salida correctamente, 65GB (¡1/4 de mi disco!) Está reservado para metadatos y no está disponible para almacenar archivos. Si esto es correcto, sería un gran desperdicio de espacio en mi disco. ¿Estoy entendiendo correctamente? ¿Se puede cambiar el tamaño de la parte de mi disco asignada a metadatos?

Gnurou
fuente

Respuestas:

16

Primero, asegúrese de que su núcleo y el espacio de usuario BTRFS estén actualizados.

Según las preguntas frecuentes de BTRFS , no puede cambiar el tamaño del bloque de metadatos. Sin embargo, puede intentar ejecutar btrfs balance start -m <punto de montaje> que reasignará los metadatos en todo el disco y, como efecto secundario, posiblemente liberará espacio no asignado.

Si eso no funciona, es posible que deba hacer una copia de seguridad de sus datos y volver a crear el sistema de archivos. (Echa un vistazo a esto para obtener más información).

hololeap
fuente
Gracias por la respuesta. Kernel es 3.11.2, btrfs-tools son v0.20-rc1, así que no creo que esté desactualizado aquí. Traté de ejecutar un equilibrio, pero luego encontré el siguiente error: spinics.net/lists/linux-btrfs/msg26977.html y no tengo ganas de compilar un kernel más nuevo solo por esto. : P Lo que me pregunto es si estos 65 GB son el bloque de metadatos que no se puede cambiar de tamaño, o si ese término se refiere a otra cosa. De lo contrario, no entiendo cómo se creó el bloque de metadatos con ese tamaño en primer lugar.
Gnurou
Desafortunadamente, solo soy un usuario de btrfs y no un experto, por lo que mi ayuda es limitada. En cualquier caso, es posible que haya una falla en el proceso de conversión de ext4.
hololeap
11
Entonces, el parche necesario llegó al kernel estable, y he intentado lo que sugirió. El balance de hecho redujo la cantidad de área reservada para metadatos a 3 GB, y el espacio reclamado ahora aparece como espacio libre en 'df'. Tenga en cuenta que no necesita reequilibrar todo el disco, puede hacer btrfs balance start -m <punto de montaje> para reequilibrar solo los metadatos, que es mucho más rápido. Gracias por la perspicaz respuesta!
Gnurou
Me alegro de poder ayudar!
hololeap el
"no se puede cambiar el tamaño del bloque de metadatos". Esto es irrelevante para esta pregunta: las preguntas frecuentes se refieren al tamaño de la unidad de asignación, no a la cantidad de espacio asignado para los metadatos.
Vladimir Panteleev
1

Esto disminuirá el tamaño de los metadatos.

sudo btrfs balance start -v -musage=0 /path
Benjamín
fuente