Es ist Subvolume @homegemountet /home, mit btrbkBackups in Subvolume btrbk-snap. Für ein Dateisystem, das bis zu 2 ^ 64 Snapshots unterstützt, würde ich erwarten, dass es eine Möglichkeit bietet, die Metadatengröße zu erhöhen ...
@ EmmanuelRosa habe ich. Welchen Teil halten Sie für nützlich?
Tom Hale
In einer Sekunde wird das Neuausgleichen der Metadaten erörtert. Vielleicht können Sie mit dem richtigen Filter mehr Speicherplatz für Metadatenblöcke gewähren.
Emmanuel Rosa
Antworten:
7
TL; DR Die Metadaten (wenn das btrfs nicht unter einem allgemeinen Platzmangel leidet) werden automatisch erhöht. In Fällen, in denen kein nicht zugewiesener freier Speicherplatz vorhanden ist, wird die automatische Erhöhung berücksichtigt. Wenn dem Datenteil jedoch btrfsmehr Speicherplatz zugewiesen wurde, als er benötigt, kann dies neu verteilt werden. Dies wird balancein btrfs -ing genannt.
Unter der Annahme, dass auf den Sicherungsblockgeräten des / der Sicherungsblockgeräte genügend Speicher vorhanden ist, btrfsweist der Metadatenteil des Dateisystems - wie vom OP angenommen - automatisch Speicher zu, um die Metadaten zu erhöhen / zu erweitern.
Daher lautet die Antwort: Ja (vorausgesetzt, es gibt keine Bedingung für wenig Speicherplatz / freien Speicherplatz in der btrfs) , dann werden die Metadaten automatisch erhöht.
(1) Wir sehen uns einige anfängliche Zuordnungseinstellungen der btrfs (auf einem 40GBGerät) an.
(2) Wie zu sehen ist, beträgt der zugewiesene Speicherplatz im Dateisystem zum Speichern von Metadaten 1,55 GB, von denen 1,33 GB, daher wird fast alles verwendet (dies kann eine Situation sein, wie sie im Fall des OP auftritt).
(3) Wir provozieren nun eine Erhöhung der hinzuzufügenden Metadaten. Dazu kopieren wir den Ordner / home mit der --reflink=alwaysOption des cpBefehls.
$> cp -r --reflink=awlways /home /home.copy
(4) Da (wie wir annehmen, dass sich viele Dateien in / home befanden) viele neue Daten zum Dateisystem hinzugefügt wurden, verwendet das, da wir nur --reflinkwenig bis gar keinen zusätzlichen Speicherplatz für die tatsächlichen Daten verwenden, die Copy-on-Write-Mechanismus. Kurz gesagt, dem Dateisystem wurden hauptsächlich Metadaten hinzugefügt. Wir können also einen anderen Blick darauf werfen
Wie zu sehen ist, verwendet der Raum für Metadaten zugeordnet , in dieser btrfswurde automatisch erweitert erhöht.
Da dies so automatisch geschieht, wird es normalerweise vom Benutzer nicht erkannt. Es gibt jedoch einige Fälle, meistens solche, in denen das gesamte Dateisystem bereits ziemlich voll ist. In diesen Fällen btrfskann es zu "Stottern" kommen und der zugewiesene Speicherplatz für die Metadaten kann nicht automatisch vergrößert werden. Der Grund wäre beispielsweise, dass den Teilen (Daten, System, Metadaten, GlobalReserve) bereits der gesamte Speicherplatz zugewiesen wurde. Verwirrenderweise könnte es dennoch sein, dass es scheinbaren Raum gibt. Ein Beispiel wäre diese Ausgabe:
Wie zu sehen ist, ist das System alle 40GiB, aber die Zuordnung ist etwas aus balance, da die Metadaten (wie im OP-Fall) niedrig sind, obwohl noch Platz für die Daten der neuen Dateien vorhanden ist. Die automatische Speicherzuweisung für die Geräte, die das btrfsDateisystem sichern, ist nicht mehr möglich (addieren Sie einfach die Gesamtsummen der Zuweisung, 38,12 G + 1,55 G + .. ~ = 40 GB).
Da dem dataTeil des Dateisystems jedoch überschüssiger freier Speicherplatz zugewiesen wurde , kann es jetzt nützlich sein, die btrfs auszugleichen. Balance würde bedeuten, den bereits zugewiesenen Platz neu zu verteilen.
Im Falle des OP kann davon ausgegangen werden, dass aus irgendeinem Grund ein Ungleichgewicht zwischen den verschiedenen Teilen der btrfsZuweisung aufgetreten ist.
Leider kann der einfache Befehl sudo btrfs balance -dusage=0, der im Prinzip leere Blöcke (für Daten zugewiesen) durchsuchen und einem besseren Benutzer zur Verfügung stellen sollte (dies wäre der fast erschöpfte Speicherplatz für Metadaten), fehlschlagen, da keine vollständig leeren Datenblöcke gefunden werden können.
Die btrfsEntwickler empfehlen daher, das Nutzungslimit von "Wann sollten Datenblöcke neu angeordnet werden, um Speicherplatz zurückzugewinnen" sukzessive zu erhöhen?
Daher, wenn das Ergebnis von
$> sudo btrfs balance -dusage=0
Done, had to relocate 0 out of 170 chunks
zeigt keinen Umzug, sollte man etwas tun
$> sudo btrfs balance -dusage=5
Done, had to relocate 0 out of 170 chunks <--(again fail)
$> sudo btrfs balance -dusage=10
Done, had to relocate 0 out of 170 chunks <--(again fail)
$> sudo btrfs balance -dusage=15
Done, had to relocate 2 out of 170 chunks <--(success)
Die andere Antwort hat auf den Einfluss der btrfsKnotengröße hingewiesen, der etwas beeinflusst, wie schnell Metadaten zunehmen werden. Die Knotengröße wird (wie in der anderen Antwort erwähnt) zum mkfs.btrfsZeitpunkt der Dateisystemerstellung nur einmal festgelegt . Theoretisch könnte man die Größe von Metadaten reduzieren, wenn es möglich wäre, auf einen niedrigeren Wert für die Knotengröße zu wechseln, wenn dies möglich wäre (ist es nicht!). Die Knotengröße kann jedoch nicht dazu beitragen, den zugewiesenen Metadatenbereich in irgendeiner Weise zu erweitern oder zu vergrößern. Stattdessen hätte es vielleicht nur geholfen, Platz zu sparen. Eine kleinere Knotengröße kann jedoch nicht garantiert werden, um die Metadatengröße zu verringern. In der Tat können einige Fälle zeigen, dass größere Knotengrößen die Baumdurchquerungslänge von btrfs verringern, da Notizen mehr "Links" enthalten können.
Laut den FAQ im btrfs-Wiki ist dies nicht möglich und wird wahrscheinlich nicht implementiert.
Kann ich die Blockgröße von Metadaten ändern, ohne das Dateisystem neu zu erstellen?
Nein, der an mkfs.btrfs -n SIZE übergebene Wert kann nach dem Erstellen des Dateisystems nicht mehr geändert werden. Eine Sicherung / Wiederherstellung ist erforderlich. Beachten Sie, dass dies wahrscheinlich nie implementiert wird, da größere Aktualisierungen der Kernfunktionalität erforderlich wären.
Sie können das vorhandene btrfs-Dateisystem auf ein neues mit einem größeren Dateisystem migrieren -n SIZE. Möglicherweise können Sie es dann mithilfe von btrfs RAID und balance zum vorhandenen Dateisystem hinzufügen und dann das alte Dateisystem entfernen.
Es gibt einen Unterschied zwischen dem nodesize (die , wie Sie Zustand kann nur einmal bei Erzeugen von Dateisystemen gesetzt werden) und die Metadaten Größe, die imho ist das, was btrfs filesystem df /Befehle Ausgangsleitung Metadata, single: total=xxGiB, used=xxxdarstellt.
Menschlichkeit und
Worauf willst du hinaus? Sicher gibt es einen Unterschied, aber es ist keine Ansichtssache. -nLegt die Größe jedes Metadatenblocks fest und btrfs filesystem dfzeigt den von diesen Blöcken belegten Speicherplatz an. Wenn der ursprüngliche Postautor zu viel Speicherplatz für Metadaten im Vergleich zu tatsächlichen Daten hat, sollte die Größe von verringert werden -n, damit Metadatenblöcke eine geringere Mindestgröße haben (weniger Speicherplatz, aber mehr Fragmentierung).
Etskinner
3
Das OP fragt, wie "der den Metadaten zugewiesene Speicherplatz vergrößert / erweitert werden soll", daher -nlautet Ihre Antwort "Es ist unmöglich, die Knotengröße ( Option) festzulegen" imho und nicht auf den Punkt. Da er weiter fragt "oder [der zugewiesene Speicherplatz für Metadaten] wird er automatisch erweitert?", Deutet er darauf hin, dass es nicht die Knotengröße ist, sondern der zugewiesene Speicherplatz, an dem er interessiert ist. Die Antwort sollte daher "Ja" sein. Sie haben natürlich Recht und weisen darauf hin, dass die -nEinstellung die Metadatengröße indirekt beeinflusst, aber die Frage scheint eher auf den zugewiesenen Speicher für Metadaten gerichtet zu sein, nicht auf die Größe der einzelnen Metadatennoten ....
humanityANDpeace
... sagen wir zum Beispiel, dass 100 G nicht genutzter Speicherplatz auf dem Backing-Block-Gerät vorhanden sind, und falls der zugewiesene / zugewiesene Speicher für Metadaten automatisch erweitert wird (wie das OP zu Recht angenommen hat). Mit btrfsaber es ist nicht uncommen, dass alle Trägereinrichtungen / Speicher hat bereits Daten blockgroups alloted worden, was bedeutet , dass neben freiem Speicher (für Daten selbst), „keinen Platz“ Fehler erzeugt werden. Der Benutzer muss daher einige versuchen btrfs balance, die, wenn in anderen Segmenten noch Speicherplatz vorhanden ist, diesen neu verteilen können, um den fehlenden Speicherplatz des Metadatenteiles zu vergrößern.
@home
gemountet/home
, mitbtrbk
Backups in Subvolumebtrbk-snap
. Für ein Dateisystem, das bis zu 2 ^ 64 Snapshots unterstützt, würde ich erwarten, dass es eine Möglichkeit bietet, die Metadatengröße zu erhöhen ...Antworten:
TL; DR Die Metadaten (wenn das btrfs nicht unter einem allgemeinen Platzmangel leidet) werden automatisch erhöht. In Fällen, in denen kein nicht zugewiesener freier Speicherplatz vorhanden ist, wird die automatische Erhöhung berücksichtigt. Wenn dem Datenteil jedoch
btrfs
mehr Speicherplatz zugewiesen wurde, als er benötigt, kann dies neu verteilt werden. Dies wirdbalance
in btrfs -ing genannt.Unter der Annahme, dass auf den Sicherungsblockgeräten des / der Sicherungsblockgeräte genügend Speicher vorhanden ist,
btrfs
weist der Metadatenteil des Dateisystems - wie vom OP angenommen - automatisch Speicher zu, um die Metadaten zu erhöhen / zu erweitern.Daher lautet die Antwort: Ja (vorausgesetzt, es gibt keine Bedingung für wenig Speicherplatz / freien Speicherplatz in der
btrfs
) , dann werden die Metadaten automatisch erhöht.(1) Wir sehen uns einige anfängliche Zuordnungseinstellungen der btrfs (auf einem
40GB
Gerät) an.(2) Wie zu sehen ist, beträgt der zugewiesene Speicherplatz im Dateisystem zum Speichern von Metadaten 1,55 GB, von denen 1,33 GB, daher wird fast alles verwendet (dies kann eine Situation sein, wie sie im Fall des OP auftritt).
(3) Wir provozieren nun eine Erhöhung der hinzuzufügenden Metadaten. Dazu kopieren wir den Ordner / home mit der
--reflink=always
Option descp
Befehls.(4) Da (wie wir annehmen, dass sich viele Dateien in / home befanden) viele neue Daten zum Dateisystem hinzugefügt wurden, verwendet das, da wir nur
--reflink
wenig bis gar keinen zusätzlichen Speicherplatz für die tatsächlichen Daten verwenden, die Copy-on-Write-Mechanismus. Kurz gesagt, dem Dateisystem wurden hauptsächlich Metadaten hinzugefügt. Wir können also einen anderen Blick darauf werfenWie zu sehen ist, verwendet der Raum für Metadaten zugeordnet , in dieser
btrfs
wurde automatisch erweitert erhöht.Da dies so automatisch geschieht, wird es normalerweise vom Benutzer nicht erkannt. Es gibt jedoch einige Fälle, meistens solche, in denen das gesamte Dateisystem bereits ziemlich voll ist. In diesen Fällen
btrfs
kann es zu "Stottern" kommen und der zugewiesene Speicherplatz für die Metadaten kann nicht automatisch vergrößert werden. Der Grund wäre beispielsweise, dass den Teilen (Daten, System, Metadaten, GlobalReserve) bereits der gesamte Speicherplatz zugewiesen wurde. Verwirrenderweise könnte es dennoch sein, dass es scheinbaren Raum gibt. Ein Beispiel wäre diese Ausgabe:Wie zu sehen ist, ist das System alle
40GiB
, aber die Zuordnung ist etwas ausbalance
, da die Metadaten (wie im OP-Fall) niedrig sind, obwohl noch Platz für die Daten der neuen Dateien vorhanden ist. Die automatische Speicherzuweisung für die Geräte, die dasbtrfs
Dateisystem sichern, ist nicht mehr möglich (addieren Sie einfach die Gesamtsummen der Zuweisung, 38,12 G + 1,55 G + .. ~ = 40 GB).Da dem
data
Teil des Dateisystems jedoch überschüssiger freier Speicherplatz zugewiesen wurde , kann es jetzt nützlich sein, die btrfs auszugleichen. Balance würde bedeuten, den bereits zugewiesenen Platz neu zu verteilen.Im Falle des OP kann davon ausgegangen werden, dass aus irgendeinem Grund ein Ungleichgewicht zwischen den verschiedenen Teilen der
btrfs
Zuweisung aufgetreten ist.Leider kann der einfache Befehl
sudo btrfs balance -dusage=0
, der im Prinzip leere Blöcke (für Daten zugewiesen) durchsuchen und einem besseren Benutzer zur Verfügung stellen sollte (dies wäre der fast erschöpfte Speicherplatz für Metadaten), fehlschlagen, da keine vollständig leeren Datenblöcke gefunden werden können.Die
btrfs
Entwickler empfehlen daher, das Nutzungslimit von "Wann sollten Datenblöcke neu angeordnet werden, um Speicherplatz zurückzugewinnen" sukzessive zu erhöhen?Daher, wenn das Ergebnis von
zeigt keinen Umzug, sollte man etwas tun
Die andere Antwort hat auf den Einfluss der
btrfs
Knotengröße hingewiesen, der etwas beeinflusst, wie schnell Metadaten zunehmen werden. Die Knotengröße wird (wie in der anderen Antwort erwähnt) zummkfs.btrfs
Zeitpunkt der Dateisystemerstellung nur einmal festgelegt . Theoretisch könnte man die Größe von Metadaten reduzieren, wenn es möglich wäre, auf einen niedrigeren Wert für die Knotengröße zu wechseln, wenn dies möglich wäre (ist es nicht!). Die Knotengröße kann jedoch nicht dazu beitragen, den zugewiesenen Metadatenbereich in irgendeiner Weise zu erweitern oder zu vergrößern. Stattdessen hätte es vielleicht nur geholfen, Platz zu sparen. Eine kleinere Knotengröße kann jedoch nicht garantiert werden, um die Metadatengröße zu verringern. In der Tat können einige Fälle zeigen, dass größere Knotengrößen die Baumdurchquerungslänge von btrfs verringern, da Notizen mehr "Links" enthalten können.quelle
Laut den FAQ im btrfs-Wiki ist dies nicht möglich und wird wahrscheinlich nicht implementiert.
Sie können das vorhandene btrfs-Dateisystem auf ein neues mit einem größeren Dateisystem migrieren
-n SIZE
. Möglicherweise können Sie es dann mithilfe von btrfs RAID und balance zum vorhandenen Dateisystem hinzufügen und dann das alte Dateisystem entfernen.Siehe auch den Abschnitt über fast volle Laufwerke .
quelle
btrfs filesystem df /
Befehle AusgangsleitungMetadata, single: total=xxGiB, used=xxx
darstellt.-n
Legt die Größe jedes Metadatenblocks fest undbtrfs filesystem df
zeigt den von diesen Blöcken belegten Speicherplatz an. Wenn der ursprüngliche Postautor zu viel Speicherplatz für Metadaten im Vergleich zu tatsächlichen Daten hat, sollte die Größe von verringert werden-n
, damit Metadatenblöcke eine geringere Mindestgröße haben (weniger Speicherplatz, aber mehr Fragmentierung).-n
lautet Ihre Antwort "Es ist unmöglich, die Knotengröße ( Option) festzulegen" imho und nicht auf den Punkt. Da er weiter fragt "oder [der zugewiesene Speicherplatz für Metadaten] wird er automatisch erweitert?", Deutet er darauf hin, dass es nicht die Knotengröße ist, sondern der zugewiesene Speicherplatz, an dem er interessiert ist. Die Antwort sollte daher "Ja" sein. Sie haben natürlich Recht und weisen darauf hin, dass die-n
Einstellung die Metadatengröße indirekt beeinflusst, aber die Frage scheint eher auf den zugewiesenen Speicher für Metadaten gerichtet zu sein, nicht auf die Größe der einzelnen Metadatennoten ....btrfs
aber es ist nicht uncommen, dass alle Trägereinrichtungen / Speicher hat bereits Daten blockgroups alloted worden, was bedeutet , dass neben freiem Speicher (für Daten selbst), „keinen Platz“ Fehler erzeugt werden. Der Benutzer muss daher einige versuchenbtrfs balance
, die, wenn in anderen Segmenten noch Speicherplatz vorhanden ist, diesen neu verteilen können, um den fehlenden Speicherplatz des Metadatenteiles zu vergrößern.