btrfs komprimiert jede Datei, die seit dem Mounten geändert wurde, wenn Sie Folgendes verwenden:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Wenn Sie dafür sorgen möchten, dass ALLE Dateien auf diese Weise komprimiert werden, habe ich ein kleines Skript, das ich dazu geschrieben habe ...
du -ht +$((1024*1024)) "$HOME" |\
sed -rn 's/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p' |\
sudo sh -n
Das obige funktioniert nur in meinem $HOME
Verzeichnis - aber Sie können es für alles oder jedes verwenden, wie Sie möchten. Außerdem wird der -n
Operand sh
so wie er ist eingespeist, sodass Sie selbst sehen können, was gerade sh
geschieht not
, bevor Sie ihn entfernen, um ihn anzuweisen, dies zu tun.
Wie auch immer, zuerst werden du
Dateien im human-readable
Format abgefragt (wahrscheinlich redundant hier, da wir das im nächsten Schritt sowieso entfernen) , die größer als 1MB
oder sind$((1024*1024)).
Es ist |pipes
seine Information, sed
die alles abstreift, bevor der /, "quotes"
Dateiname führt, den btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename
Befehl erstellt und ihm ein |pipe
to sudo sh
zur Ausführung übergibt .
Auch hier wird es nichts tun, solange sh --no-execute
es in Kraft ist.
Ich denke , einige sehr bisherigen btrfs
User - Space - Tool baut rekursiv defragmentieren ganze Verzeichnisse tun, aber wenn so ist es eine ziemlich neue Sache, so dass ich immer Sachen wie diese zu tun gehabt haben.
compress=lzo
ist ausreichend, Sie müssen komprimierte Binärdateien wie PNG nicht erneut komprimieren.compression
Nach dem, was ich gelesen habe, können Sie die Eigenschaft auf die Wurzel des Subvolumes setzen, um dies zu erreichen [0, 1]:Nachdem Sie Ihre Btrfs-Subvolume-UUID mit abgerufen haben
sudo btrfs filesystem show /mnt/your-subvolume
, können Sie überprüfen , ob die LZO-Komprimierungsfunktion derzeit aktiviert ist mit:Es sollte 1 zurückgeben, wenn es aktiviert ist.
[0] https://btrfs.wiki.kernel.org/index.php/Compression
[1] https://www.berthon.eu/2016/setting-shared-folder-compression-on-synology-nas-btrfs/
quelle