btrfs no space left on device - Metadata
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
{{percentage}} % positiv