btrfs und fehlender freier Speicherplatz


8

Ich habe meine ext4-Partition in btrfs konvertiert und das gespeicherte Subvolume danach gelöscht. Dann habe ich die Komprimierung (lzo) des Dateisystems in der fstab-Datei aktiviert und alles ist soweit korrekt.

Dann habe ich die Komprimierung aller Dateien mit dem Befehl defragmentierung mit dem Parameter -c erzwungen, dass die neue Komprimierung auf alle Dateien angewendet wird.

Dabei bemerkte ich, dass meine SSD vollständig gefüllt war - bevor ich 6 GB freien Speicherplatz hatte. Nein, ich habe nichts mehr übrig.

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

und

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

Also jetzt. Wie kann ich meinen freien Speicherplatz wiedererlangen? Ich hatte erwartet, aufgrund der lzo-Komprimierung mehr Platz zu gewinnen. Und nun!

Das fs ist korrekt montiert.

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

Irgendwelche Ideen, wie man dieses Problem behebt?


Ich habe jetzt den Punkt: Sie können nicht online neu ausgleichen. Das erklärt, warum bei mir nichts funktioniert hat. Also habe ich gerade mein Rettungssystem hochgefahren und die gesamte Festplatte neu ausgeglichen und anschließend den Defragmentierungsbefehl mit aktivierter Komprimierung ausgeführt. Jetzt habe ich ungefähr 17 Gigs freien Speicherplatz! schön :)
Ostern

1
Bewahren Sie als Best Practice nur einen minimalen Satz von Snapshots auf und entfernen Sie unnötige, um Platzverschwendung auf dem Volume zu vermeiden, da btrfs ein Copy-on-Write-Dateisystem ist. Mit der Zeit werden immer mehr Datenblöcke geändert. Dadurch werden Schnappschüsse erstellt, die immer mehr Speicherplatz auf der Festplatte belegen.
Terry Wang

2
Siehe auch diese Frage , die eine ausführliche Erklärung und nützliche Kommentare enthält.
Ignis

Antworten:


8

Ich weiß, dass diese Frage alt ist - aber ab heute löst der Balance-Befehl dieses Problem:

Während der Konvertierung wird viel Platz beschichtet, um Inhalte dorthin zu verschieben. Sobald es zugewiesen ist, wird es nicht mehr als "frei" oder "nicht zugewiesen" angezeigt. Um dies zu beheben, starten Sie einfach eine Waage

btrfs balance start "path"

Sie können dem Befehl balance auch mitteilen, dass nur Chunks ausgeglichen werden sollen, die für einen bestimmten Prozentsatz verwendet werden - beispielsweise 0%, was bedeuten würde, dass die Chunks leer sind:

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

Parameter -d bedeutet Optionen für die Daten. Parameter -m bedeutet Optionen für die Metadaten.

Spielen Sie mit dem Balance-Befehl, es sollte helfen.


5

Schauen Sie sich die Ausgabe von an btrfs fi df:

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

Der totalTeil ist der zugewiesene Speicherplatz, während useder von btrfs tatsächlich verwendet wird. Der Unterschied zwischen totalund used(ca. 15 GB) ist Ihr fehlender Speicherplatz. Wie Sie sehen, wurde es bereits für Metadatenblöcke zugewiesen.

Ich habe nur Hobbyerfahrung mit btrfs, aber ich denke nicht, dass eine ext4-Konvertierung der beste Weg ist, um ein übersichtliches btrfs-Dateisystem zu erstellen. Glücklicherweise können Sie das gesamte Dateisystem neu ausgleichen, damit alle Zuordnungen erneut ausgeführt werden.

Verwenden Sie wie immer Backups.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.