Btrfs: riesige Metadaten zugeordnet

14

Ich habe eine 256 GB SSD-Festplatte, auf der ich mein ext4-Root-FS in btrfs konvertiert habe. Ich habe das ext4-Backup-Subvolume gelöscht, die Komprimierung aktiviert und rekursiv defragmentiert, um es für alle Dateien zu aktivieren.

btrfs fi df / hat eine Ausgabe, die mich allerdings beunruhigt:

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

Wenn ich die Ausgabe richtig verstehe, sind 65 GB (1/4 meiner Festplatte!) Für Metadaten reserviert und nicht zum Speichern von Dateien verfügbar. Wenn dies korrekt ist, wäre es eine enorme Verschwendung von Speicherplatz. Verstehe ich das richtig? Kann die Größe des Metadaten-zugewiesenen Teils meiner Festplatte geändert werden?

Gnurou
quelle

Antworten:

16

Stellen Sie zunächst sicher, dass Ihr Kernel und der BTRFS-User-Space auf dem neuesten Stand sind.

Gemäß den häufig gestellten Fragen zu BTRFS können Sie die Größe des Metadatenblocks nicht ändern. Sie können jedoch versuchen, btrfs balance start -m <Einhängepunkt> auszuführen, wodurch die Metadaten auf der gesamten Festplatte neu zugeordnet werden und möglicherweise nicht zugeordneter Speicherplatz freigegeben wird.

Wenn dies nicht funktioniert, müssen Sie möglicherweise Ihre Daten sichern und das Dateisystem neu erstellen. (Werfen Sie einen Blick auf diese für weitere Informationen.)

hololeap
quelle
Danke für die Antwort. Kernel ist 3.11.2, btrfs-tools sind v0.20-rc1, also glaube ich nicht, dass ich hier veraltet bin. Ich habe versucht, ein Gleichgewicht herzustellen, aber dann bin ich auf den folgenden Fehler gestoßen : spinics.net/lists/linux-btrfs/msg26977.html und habe keine Lust, nur dafür einen neueren Kernel zu kompilieren. : P Ich frage mich, ob diese 65 GB der Metadatenblock sind, dessen Größe nicht geändert werden kann, oder ob sich dieser Begriff auf etwas anderes bezieht. Ansonsten verstehe ich wirklich nicht, wie der Metadatenblock überhaupt mit dieser Größe erstellt wurde.
Gnurou
Leider bin ich nur ein Benutzer von btrfs und kein Experte, daher ist meine Hilfe begrenzt. In jedem Fall ist es möglich, dass der Konvertierungsprozess von ext4 fehlerhaft ist.
Hololeap
11
Der notwendige Patch hat es also in den Stable-Kernel geschafft, und ich habe versucht, was Sie vorgeschlagen haben. Durch den Ausgleich wurde der reservierte Bereich für Metadaten auf 3 GB reduziert, und der beanspruchte Speicherplatz wird jetzt als freier Speicherplatz in "df" angezeigt. Beachten Sie, dass Sie nicht die gesamte Festplatte neu verteilen müssen. Sie können btrfs balance start -m <Einhängepunkt> ausführen, um nur die Metadaten neu zu verteilen, was viel schneller ist. Danke für die aufschlussreiche Antwort!
Gnurou
Froh, dass ich helfen konnte!
Hololeap
msgstr "Sie können die Größe des Metadatenblocks nicht ändern". Dies ist für diese Frage nicht relevant - die häufig gestellten Fragen beziehen sich auf die Größe der Zuordnungseinheiten und nicht auf den für die Metadaten zugewiesenen Speicherplatz.
Vladimir Panteleev
1

Dadurch wird die Größe der Metadaten verringert.

sudo btrfs balance start -v -musage=0 /path
Benjamin
quelle