Btrfs Filesystem voll

Hinweis: In dem Thema Btrfs Filesystem voll gibt es 23 Antworten auf 3 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo,
    ich habe meinen neuen PC im Juli mit SuSE Tumbleweed installiert. Die 1 TB NVMe M.2-SSD have ich mit btrfs formatiert. Und mitten im Urlaub erreicht mich jetzt die Nachricht, dass das Filesystem vollgelaufen ist ☹️.


    An Daten sind eigentlich nur ca. 5-600 GB drauf, Snapper wird nur für Zypper-Updates genutzt.
    2 Stunden vor Abfahrt (letzten Samstag) in den Urlaub habe ich schon mit Schrecken gesehen, dass nur noch 65 GB frei sein sollten. Leider hatte ich keine Zeit mehr, noch etwas zu unternehmen.
    Aber eigentlich startet der PC nur nachts, macht mittels rsync ein Backup auf mein NAS und führt ein paar Skripte, z.B. für Logwatch aus, dann fährt er wieder runter. Nichts, was 65 GB füllen sollte. Aber seit Donnerstag kann Logwatch nicht mehr arbeiten, weil das Filesystem voll ist.
    Aktiv werden kann ich erst am Sonntag, dann bin ich wieder zu Hause.
    Aber ich frage mich, wie die 65 GB verbraucht worden sein können und wie ich ein 1TB Volume, auf dem nur noch 14 MB frei sind, wieder frei bekomme. Wenn ich den PC am Sonntag überhaupt noch starten kann...


    Für Tipps jetzt schon mal danke, eigentlich hatte ich mir den Sonntag anders vorgestellt...


    Gruß,
    Oliver

    Für den Inhalt des Beitrages 136034 haftet ausdrücklich der jeweilige Autor: Oceanwaves

  • Als root (nicht sudo):

    Code
    btrfs fi df /
    Code
    snapper list

    Für den Inhalt des Beitrages 136035 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Als root (nicht sudo):

    So, da bin ich wieder.



    Zusätzlich habe ich noch das gemacht:

    /ds ist ein Mountpoint für autofs, da werden bei Bedarf einige Verzeichnisse vom NAS eingeblendet. Alle anderen (statischen) NFS-Mounts vom NAS habe ich mal abgehängt.


    Dabei ist mir auch aufgefallen, warum die 65 GB plötzlich weg waren: in /backup lagen nämlich rund 65 GB. Eigentlich wird da über die /etc/fstab nachts das Backup-Verzeichnis vom NAS gemountet. Das scheint aber sporadisch nicht zu funktionieren, vor etwa 2 Wochen lagen da mal gut 400 GB drin, quasi die komplette Sicherung statt aufs NAS nochmal auf die SSD :-(. Das obige btrfs filesystem du -s /* habe ich abgesetzt, nachdem ich mittels rm -r den Inhalt von /backup gelöscht hatte.



    Somit habe ich jetzt auch wieder etwas Platz gewonnen:



    Aber die über 400 GB, die ich aus /backup mal gelöscht habe, sind anscheinend nicht wieder freigegeben worden. Und wenn ich mir den Output von btrfs filesystem du -s /* anschaue und aufaddiere (gut 410 GB), dann frage ich mich: was macht btrfs mit den knapp 600 GB, die eigentlich noch frei sein sollten? Die Snapshots belegen doch nur wenige GB.


    Zum Problem der NFS-Mounts: die Einträge in /etc/fstab sehen wie folgt aus:



    Code
    diskstation:/volume1/backup                /backup                 nfs    defaults                      0  0

    In letzter Zeit passiert es mir aber öfter, dass die Mounts nicht da sind. Wenn ich dann (als root) noch mal ein mount -a absetze, ist alles da. Insgesamt habe ich 6 NFS-Mounts in der fstab, das NAS ist ein Synology DS918+, zwischen PC und NAS hängt ein einfacher D-Link-Switch (8 Ports).

    Für den Inhalt des Beitrages 136076 haftet ausdrücklich der jeweilige Autor: Oceanwaves

  • Mal als root:

    Code
    btrfs balance start /

    Kannst du stoppen, pausieren s. o.

    Für den Inhalt des Beitrages 136082 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Mal als root:

    Code
    btrfs balance start /


    Kannst du stoppen, pausieren s. o.

    Aber nicht erfolgreich abschließen:

    dmesg meldet

    Für den Inhalt des Beitrages 136084 haftet ausdrücklich der jeweilige Autor: Oceanwaves

  • Bin etwas weiter gekommen und habe die fehlenden GBs gefunden!


    Die Ausgabe von snapper list ist wohl ziemlich nichtssagend:


    Wenn man sich das so anschaut, belegen die Snapshots ja nur so gut 3 GB...


    Ich habe dann mal in /.snapshots ein du -sh abgesetzt:

    Code
    du -sh *
    9.4G    1
    9.2G    256
    9.7G    257
    427G    274
    428G    275
    427G    278
    427G    279
    4.0K    grub-snapshot.cfg

    Und siehe da, da sind meine fehlenden 400 GB :thumbup:


    Dann habe ich über Yast die Snapshots 274-279 gelöscht und siehe da:

    Code
    btrfs fi df /
    Data, single: total=868.00GiB, used=449.59GiB
    System, single: total=32.00MiB, used=128.00KiB
    Metadata, single: total=6.00GiB, used=1.60GiB
    GlobalReserve, single: total=512.00MiB, used=0.00B

    Das Filesystem ist wieder halb leer... Jetzt will ich nur noch mal ein btrfs balance start / durchführen, damit muss ich aber wohl bis heute Abend warten, wenn ich den PC nicht benötige. Ein 1. Versuch führte dazu, dass das System praktisch nicht mehr reagierte. Nach ca. 20 Minuten hatte ich dann endlich ein btrfs balance cancel / durchbekommen.



    Frage mich nur, warum snapper list mir bei "Used Space" nur so niedrige Werte anzeigt.

    Für den Inhalt des Beitrages 136147 haftet ausdrücklich der jeweilige Autor: Oceanwaves

  • Genau das Theater mit den Snapshots, die die Festplatte bis zur Funktionsunfähigkeit volllaufen lassen, hat mich davon abgehalten, btrfs einzusetzen, allzumal im privaten Bereich btrfs keine Vorteile mit sich bringt. Meine Rechner laufen unter ext4.

    Für den Inhalt des Beitrages 136150 haftet ausdrücklich der jeweilige Autor: matbhm

  • Mal als root:

    Code
    btrfs balance start /


    Kannst du stoppen, pausieren s. o.

    Durch das Löschen der Snapshots habe ich zwar jetzt wieder ein nur zu 50% belegtes Filesystem, aber btrfs balance start --full-balance / wird trotzdem noch immer mit einem ERROR: error during balancing '/': No space left on device beendet. 460 GB freier Platz reichen anscheinend nicht aus. Woran kann das liegen?




    dmesg|tail liefert mir dann

    Code
    frodo:/var/log # dmesg|tail
    [ 2408.133757] BTRFS info (device nvme0n1p1): relocating block group 9260978143232 flags data
    [ 2411.315606] BTRFS info (device nvme0n1p1): found 1587 extents
    [ 2412.109893] BTRFS info (device nvme0n1p1): found 1587 extents
    [ 2412.727014] BTRFS info (device nvme0n1p1): relocating block group 8763768569856 flags metadata
    [ 2418.209344] BTRFS info (device nvme0n1p1): found 38809 extents
    [ 2420.409521] BTRFS info (device nvme0n1p1): relocating block group 8756252377088 flags metadata
    [ 2430.445421] BTRFS info (device nvme0n1p1): found 58442 extents
    [ 2433.972384] BTRFS info (device nvme0n1p1): 1 enospc errors during balance
    [ 2433.972387] BTRFS info (device nvme0n1p1): balance: ended with status: -28

    Für den Inhalt des Beitrages 136186 haftet ausdrücklich der jeweilige Autor: Oceanwaves

  • Du kannst ja mal die systemd-timer anschauen:

    Code
    systemctl status btrfs- <tab><tab>

    <tab><tab> bedeutet: 2 mal kurz hintereinander die Tabulator Taste drücken, analog eines Doppelklicks.
    anschauen mit:
    systemctl status btrfs-xxxx.timer
    Beim Systemstart mitstarten lassen:
    systemctl enable btrfs-xxxx.timer
    sofort starten
    systemctl start btrfs-xxxx.timer


    Die Timer starten den entsprechenden Dienst immer automatisch zur eingestellten Zeit bzw. das erste Mal wenn der PC nach dieser zeit gebootet wird.
    systemctl list-timers



    Funktioniert auch in Yast----System----Dienste-Verwaltung, timers allerdings nicht.

    Für den Inhalt des Beitrages 136188 haftet ausdrücklich der jeweilige Autor: Sauerland