Im Btrfs-Dateisystem gibt es Chunks, die regulären Daten, Metadaten, zugeordnet sind. Es gibt auch Chunks, die zum Speichern von Dateisysteminformationen zugewiesen sind, und auch darüber, wo sich andere Chunks auf der physischen Festplatte befinden. Diese Chunks können nur die Daten speichern. Sehr selten kann es vorkommen, dass ein Chunk-Typ voll wird und der Speicherplatz knapp wird. Allerdings kann (und ist oft) noch Platz in anderen Chunks verfügbar. Daher muss darauf etwas Platz freigegeben werden.
Im Btrfs-Dateisystem ist eine Ausgleichsfunktion verfügbar. Die Ausgleichsoperation gibt effektiv Speicherplatz in den anderen Chunks frei, um ihn für die Zuweisung verfügbar zu machen.
1. Der folgende Befehl zeigt, wie viel Speicherplatz auf Ihrem Dateisystem zugewiesen wurde:
# btrfs fi show
2. Der folgende Befehl zeigt die Dateinutzung:
# btrfs filesystem du /btr
3. Vollständige Dateisystemnutzung nach Daten und Metadaten (vor dem Ausgleich):
# btrfs filesystem usage /btr
Der folgende Befehl wird für den Ausgleich verwendet und dieser Befehl führt den vollständigen Ausgleich ohne angeforderte Filter durch. Dieser Vorgang ist sehr intensiv und dauert möglicherweise sehr lange. Es wird empfohlen, die Ausgleichsfilter zu verwenden, um die ausgeglichenen Daten einzugrenzen.
[Ohne Filter]
# btrfs filesystem balance /btr
[Mit Filter (Verwendung und Musage verwenden)]
# btrfs filesystem balance start -dusage=5 /btr
Beachten Sie, dass zwischen dem -d kein Leerzeichen stehen darf und Nutzung . Dieser Befehl versucht, Daten in leeren oder fast leeren Datenblöcken (in diesem Beispiel höchstens 5 % belegt) zu verschieben, sodass der Speicherplatz zurückgewonnen und Metadaten neu zugewiesen werden kann.
Wenn der Ausgleichsbefehl mit „Fertig, musste 0 von XX Chunks verschieben endet “, dann müssen Sie den „Verbrauch erhöhen ” Prozentparameter, bis mindestens ein Chunk verschoben wird. Wenn Sie die Filter nicht verwenden, werden sowohl Daten als auch Metadaten ausgeglichen.
Eine andere Möglichkeit, das Btrfs-Dateisystem durch Skript auszugleichen
for i in 0 5 10 15 20 25 30 40 50 60 70 80 90 100 do echo "${0}: Running with ${i}%" sudo btrfs balance start -dusage=$i -musage=$i /btr/ done
Überprüfen Sie nach dem Gleichgewicht den folgenden Befehl:
# btrfs filesystem usage /btr
Abhängig von „btrfs filesystem du“ und „btrfs filesystem usage“ entscheiden die Werte für -dusage und -musage.