BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Probleme mit Samba, NFS, FTP und Co.
kreuzschnabel
Beiträge: 657
Registriert: 24.09.2020 14:51:14

Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Beitrag von kreuzschnabel » 22.03.2025 09:27:31

Mich würde halt interessieren, ob btrfs generell für irgendein problematisches Verhalten bekannt ist, weil ich davon noch nichts gehört und auch nicht selbst erlebt habe.

Wer btrfs einsetzt, sollte wissen, dass es nicht volllaufen darf, weil sonst nicht mehr geschrieben werden kann, selbst wenn theoretisch genug freier Raum verfügbar wäre. Ungefähre Richtwerte habe ich oben genannt (das sind meine persönlichen Grenzen, auch frei von tieferem Sachverstand).

Das ist aber keine Designfehler, sondern liegt am COW-Prinzip. btrfs „überschreibt“ halt nichts, genau das ist ja der Witz am System. Und je voller es wird, desto mehr Platz wird auch für Metadaten gebraucht – das landet irgendwann in einem Teufelskreis, wenn für eine zu schreibende Datei zwar noch Platz wäre, aber kein neuer Metadatenblock angelegt werden kann.

Und ja, man sollte ab und zu balancen, das macht das System noch nicht selbst. Andererseits ist das kein Muss, solange man Luft lässt.

Eines meiner btrfs-Datengräber, eine 2-TB-Magnetfestplatte, ist zu über 90% voll und verhält sich kein bisschen problematisch. Da wird aber auch nicht viel drauf geschrieben.

--ks
Hier so: Debian Stable/Sid (nach Laune) – KDE Plasma – Lenovo Thinkpad T470p – i7-7700HQ – 32GB RAM

Benutzeravatar
schorsch_76
Beiträge: 2652
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Beitrag von schorsch_76 » 22.03.2025 10:37:09

Debianbtrfsmaintenance installieren, daß wars ;)

Benutzeravatar
novalix
Beiträge: 1911
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Beitrag von novalix » 22.03.2025 20:16:02

Ich habe vor fünf Jahren einen Server eingerichtet, der vollständig auf btrfs läuft. Da sitze ich gerade dran, weil die darin laufenden Container von purem lxc auf incus migriert werden sollen.
Das sind mehrere RDBMS- und Webhosts, ein Haproxy-Varnish-Geflecht und 'ne elasticsearch[*] dabei.
Ich hatte mich auf Probleme eingestellt. Gab aber keine; <erikativ>auf Holz klopf</erikativ>.

[*] Sollte man mal installiert haben, wenn man wissen will, was Ram-Verbrauch ist. Da schiessen Dir die Tränen in die Augen.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Torty1337
Beiträge: 11
Registriert: 14.03.2025 12:17:56

Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Beitrag von Torty1337 » 24.03.2025 11:38:27

Moin,

also ich habe am Wochenende die Holzhammermethode angewendet, ein neues BTRFS-Dateisystem erstellt und die Daten via btrfs send / receive kopiert:
Danke dem Kollegen, der hierfür Vorlage dazu gegeben hat: https://plantroon.com/moving-btrfs-subv ... other-disk
Hat funktioniert, rund 50% der virtuellen Disk sind nunmehr als freier Speicher wieder verfügbar.
Anbei die Befehlsfolge, für den Fall, dass das auch jemand machen mag:

Code: Alles auswählen

# Vorbereitung: neues BTRFS-Dateisystem erzeugen und für die Migration unter /mnt einhängen

# Daten des Quelldateisystems auf Fehler prüfen
btrfs scrub start /btrfs 

# Subvolumes des Quelldateisystems auf ReadOnly setzen
for subvol in /btrfs/*; do btrfs property set $subvol ro true; done

# Alle Subvolumes und deren Daten kopieren
for subvol in /btrfs/*; do btrfs send $subvol | btrfs receive /mnt/; done

# Alte virtuelle Disk abhängen und neues Dateisystem unter /btrfs einhängen.
# Alle Subvolumes unter /btrfs wieder beschreibbar machen.
for subvol in /btrfs/*; do btrfs property set -f $subvol ro false; done

# Der Vollständigkeit halber, die Daten des neuen Dateisystems erneut auf Fehler prüfen
btrfs scrub start /btrfs
Jetzt mal schauen, inwiefern mir wieder Speicher abhanden kommt. :?

Vielen Dank für Eure Unterstützung! :THX:

Benutzeravatar
heisenberg
Beiträge: 4236
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei

Beitrag von heisenberg » 26.03.2025 12:35:08

@Torty1337: Wenn Du mit der Holzhammermethode glücklich bist, dann ist ja alles gut. Ich wäre es nicht. So wie es aussieht wird das ja regelmässig wieder auftreten. Die Ursache haben wir hier ja noch nicht gefunden.

Was hier an erster Stelle von Dir gefehlt hat, war die Auflistung der Subvolumes und Snapshots (und wie viel Speicherplatz die verbrauchen), wie von Wanne gewünscht.

Hier sind auch nochmal ein paar Befehle, mit dem man das einfach bekommt:

Code: Alles auswählen


# Quotas einschalten - falls man die nicht aktiviert hat

btrfs quota enable /btrfs-mountpoint

# Anzeige Subvolumes+Snapshots inkl. Speicherplatzverbrauch

btrfs qgroup show -p  /btrfs-mountpoint

Qgroupid    Referenced    Exclusive Parent     Path
--------    ----------    --------- ------     ----
0/5            1.75GiB     16.00KiB -          <toplevel>
0/270          1.75GiB     48.00KiB -          btrfs/snap-7
0/271          1.75GiB     48.00KiB -          btrfs/snap-8
0/272          2.73GiB     48.00KiB -          btrfs/snap-9
0/273          2.73GiB     32.00KiB -          btrfs/snap-10
0/274          2.73GiB     32.00KiB -          btrfs/snap-11
0/275          1.75GiB     16.00KiB -          .bla/.fasel/my_snapshot_15

# Quotas wieder ausschalten - falls man das nicht dauerhaft aktiv haben möchte

btrfs quota disable /btrfs-mountpoint
Hier sieht man die vollständige Auflistung aller Subvolumes und Snapshots, und dass da einige Snapshots sind, mit deren Löschung man Speicherplatz frei bekommen wird.

Antworten