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
BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei
-
- Beiträge: 657
- Registriert: 24.09.2020 14:51:14
Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei
Hier so: Debian Stable/Sid (nach Laune) – KDE Plasma – Lenovo Thinkpad T470p – i7-7700HQ – 32GB RAM
- schorsch_76
- Beiträge: 2652
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
- 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
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 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.
Darum ist das Richtige selten, lobenswert und schön.
Re: BTRFS - mehrere TB an unreachable Space / bekomme diesen nicht frei
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:
Jetzt mal schauen, inwiefern mir wieder Speicher abhanden kommt.
Vielen Dank für Eure Unterstützung!
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

Vielen Dank für Eure Unterstützung!

- 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
@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:
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.
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