(0)
Artikel
bewerten
(100% positiv)
(2)

btrfs no space left on device - Metadata

Wenn BTRFS der Platz ausgeht.

Inhalt dieses Artikels:

    Ich hab es übersehen und mein BTRFS Volume komplett angefüllt. Nachdem ich einige Dateien gelöscht habe und jede Menge freier Speicherplatz angezeigt wurde, konnte ich aber immer noch nicht schreiben: no space left

    Mein BTRFS Volume besteht aus 2 physischen Festplatten, von denen jeweils eine 1,4TB Partition gespiegelt ist. Das Volume ist unter /daten eingehängt. Unter anderem verwende ich Snapshots. Nähere Infos zu BTRFS siehe: ZFS oder BTRFS: Filesystem Deduplizierung und Snapshots.

    Nun aber zurück zum Schreibproblem:

    Damit ich den Platz wieder frei bekomme, hab ich Daten in einem Subvolume ohne Snapshots gelöscht, es waren laut Dateiverwaltung wieder 600GB frei. (was in BTRFS ja ca. 300GB für Raid1 bedeutet.) 

    Metadata

    sudo btrfs fi df /daten lieferte folgende Ausgabe:

    Wie ich im Internet recherchiert habe, liegt das Problem an den Metadaten:

    Ich bin auf folgende Schlussfolgerung gekommen:

    BTRFS benötigt intern 500MB für sich, beim Erreichen dieser Grenze: "total" ist nur 500MB grösser als "used", muss der Metadata Bereich erweitert werden. Kann in den Bereich Data oder Metadata in dieser Phase nicht mehr geschrieben werden, kann der Bereich nicht mehr erweitert werden, das Volume lässte keine Schreiboperationen mehr zu.

    Entgegen so mancher Artikel im Internet konnte der Befehl: btrfs balance start -v -dusage=1 /daten auch nichts daran ändern.

    (siehe auch: http://www.spinics.net/lists/linux-btrfs/msg32660.html, http://nathantypanski.com/blog/2014-07-14-no-space-left.html, http://unix.stackexchange.com/questions/174446/btrfs-error-error-during-balancing-no-space-left-on-device)

    die Lösung: temporären Platz hinzufügen

    Eine mögliche Lösung für das Problem, ist das Hinzufügen von zusätzlichem Speicherplatz. Ich hab an dieser Stelle einige Snapshots gelöscht und den zusätzlichen Platz wieder entfernt.

    Folgende Befehle haben mich zum Ziel geführt:

     

    dd if=/dev/zero of=/var/tmp/btrfs bs=1G count=5

    sudo losetup -v -f /var/tmp/btrfs

    sudo btrfs device add /dev/loop0/daten

    sudo btrfs subvolume delete /daten/.snapshot/quarter_??? hier, bei Verwendung von Snapshots je nach Dateisystem ...

    sudo btrfs device delete /dev/loop0 /daten

     

    am Ende hab ich dann noch ein Balance ausgeführt: 

    sudo btrfs balance /daten

     

    Nach einigen Stunden Laufzeit schaut jetzt wieder alles sauber aus

    Der Bereich Metadata ist sogar wieder geschrumpft ... 

     

    Die Lösung hab ich auf folgender Seite gefunden:  http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html

     

    letzte Änderung dieses Artikels: 21.12.2015 17:18



    Feedback: