Nu ja...
Also ich habe mich nun genug mit f2fs beschäftigt - mit meinen bescheidenden Kenntnissen. Mein Fazit: ich würde es nicht nutzen.
//Edit2: Zumindest nicht auf herkömmlichen SSDs/NVMEs in "normalen" Computern. Das FS mag sinnvoll sein für FlashCards/Handys(Android nutzt es AFAIK) oder z.B. in einem Raspi (wobei in meinem Uralt-Raspi mit Speicherkarte ext4 auch bisher nie versagte...)
Zur Kompression: Auch wenn compression aktiv ist scheint es IMHO daß das Dateisystem nicht transparent sinnvoll Daten/Blöcke/Inodes komprimiert.
Ich würde von einem intelligenten Dateisystem erwarten z.B. einen Block der zu einem ZIP oder JPEG gehrt nicht versucht zu komprimieren, andere gut komprimierbare hingegen schon - und zwar ohne mein Zutun.
Und da bin ich mir bei f2fs nicht sicher.
Ich habe bei meinen tests keine bestimmte Extension eingeschränkt/bevorzugt (übrigens: dein Test mit jpg ist wohl eher suboptimal, die sind ja schon "komprimiert").
Vorweg: Ich sehe mich außerstande irgendwo bei f2fs das Ratio zwischen unkomprimiert und ggf. komprimiert sicher rauszulesen. Und das geht anderen wohl auch so:
https://unix.stackexchange.com/questions/611976/how-to-i-find-f2fs-compression-ratio
https://bbs.archlinux.org/viewtopic.php?id=262364
Ich sehe nur - wenn ich das FS mit komprimierbaren Daten zuschütte - daß scheinbar etwas komprimiert wird:
less /sys/kernel/debug/f2fs/status
Utilization: 94% (37258 valid blocks, 0 discard blocks)
- Node: 120 (Inode: 95, Other: 25)
- Data: 37138
- Inline_xattr Inode: 94
- Inline_data Inode: 0
- Inline_dentry Inode: 3
- Compressed Inode: 79, Blocks: 1852
- Swapfile Inode: 0
- Donate Inode: 0
- Orphan/Append/Update Inode: 0, 0, 0
NB: dein "grep compress" im status File: Da erwischst du ja nur die Zeile aus der Sektion "Balancing F2FS Async:" - und da glaube ich fast nicht das dort was Aussagekräftiges zu Compress-Ratio drin ist.
Ich hätte erwartet, etwas in:
# cat /sys/fs/f2fs/loop0/compress_percent
zu finden, aber das bleibt bei 0. Lediglich bei den anderen (sinnvollen?) Statusfiles:
# ls -1 /sys/fs/f2fs/loop0/compr*
/sys/fs/f2fs/loop0/compress_percent
/sys/fs/f2fs/loop0/compress_watermark
/sys/fs/f2fs/loop0/compr_new_inode
/sys/fs/f2fs/loop0/compr_saved_block
/sys/fs/f2fs/loop0/compr_written_block
sehe ich "Bewegung" drin.
Aber auch erst, seit ich mit chattr das ganze gemountete Verzeichniss "behandelt" habe.
Zu deiner Fehlermeldung: "chattr: Invalid argument while setting flags"...
Habe ich auch. Entgegen der Doku ist es aktuell scheinbar nicht möglich für einzelne Dateien das c-Flag zu setzen. Es funktioniert hingegen bei Verzeichnissen.
Mein Test-FS ist eingehängt unter:
/mnt/f2fs
Ich habe vor dem Kopieren nun dieses Verzeichnis "behandelt"
chattr +c /mnt/f2fs
(-R/--recursive funktioniuert nicht, da dann wieder o.a. Fehlermeldung invalid argument auftaucht)
Dateien/Dirs die ich dann kopierte, verschob haben dann das c-Flag
lsattr -R /mnt/f2fs/|less
Mit meinem 94% Full dateisystem sehe ich nun zwischen du und df Ausgaben schon einen Unterschied, aber ob daß (per Kopfrechnen) ein Compress-Ratio ist?
Oder ist es halt mit "Kompression" etwas Religiöses ;-) Entweder man glaubt dran oder nicht...
NB: Das würde sich auch mit der "spärlichen" Doku zu Kompression (aus Usersicht) in den Kernel-Doks decken
https://docs.kernel.org/filesystems/f2fs.html#compression-implementation
So weit ich das verstehe <g>:
Ich habe bei meinem BTRFS auf dem Server auch compression eingeschaltet, evtl. schau ich da mal ob ich das ein Ratio eher entdecke... Habe mich darum nie sonderlich gekümmert.
//Edit: Ich habe mal geschaut, da ist wenigstens was zu sehen für den User <g>:
# compsize /usr/share/
Processed 47775 files, 11724 regular extents (11749 refs), 37358 inline.
Type Perc Disk Usage Uncompressed Referenced
TOTAL 44% 184M 419M 419M
none 100% 73M 73M 73M
zstd 32% 111M 345M 346M
Ganz beachtlich bei Daten die sich gut komprimieren lassen.
Bilder hingegen (vornehmlich jpg/png):
# compsize /data/Media/bilder/
Processed 1347 files, 1221 regular extents (1221 refs), 176 inline.
Type Perc Disk Usage Uncompressed Referenced
TOTAL 96% 141M 147M 147M
none 100% 139M 139M 139M
zstd 26% 2.0M 7.6M 7.6M
Aber meine Tests mit f2fs sind erstmal genug...