Gast Filesystem: XFS vs. ext4 auf ZFS-Host?

gnomegemini

Member
Mar 12, 2012
24
2
23
Hallo,

dank einem Beitrag habe auf eine Frage von mir habe ich nun meinen Server auf ZFS umgestellt. Nun stellt sich mir die Frage: XFS oder ext4 als Gast FS? Bisher war ich immer ein Freund von XFS:
- defrag online möglich (auch unter Linux relevant; ggf. weniger/gar nicht bei SSD?)
- stabil, robust, flink
Der einzige Nachteil, der mir ad hoc einfällt ist, dass es nicht shrinkbar ist - ist für mich aber vernachlässigbar.

Daher meine Frage: spricht irgendwas für ext4 oder xfs, und irgendwas dagegen? Ist es bei einem COW FS vom Host auf SSDs überhaupt notwendig defragmentieren zu können? Wenn nein würde ich ja fast wegen der schlichtheit und geringeren Overheads (gut, das beides eher Bauchgefühl als Wissen) ext4 nehmen. Ein Arbeitskollege ist im Debian Projekt Owner einiger Pakete und versteht nicht, wieso RedHat XFS als default nutzt, da seiner Meinung nach ext4 wesentlich schneller ist. Allerdings sagen Benchmarks wieder was anderes...
 
Kannst du beides bedenkenlos nehmen. Defragmentieren ist in der Tat überflüssig bei SSDs oder HDDS auf CoW FS.
Xfs ist halt etwas moderner und laut Benchmarks wohl auch etwas schneller. Ext4 ist dafür aber der Klassiker der fast überall als Standard verwendet wird und damit auch mit so ziemlich allem läuft und bestens getestet ist.

Ich selbst nehme da der Einfachheit und Gewohnheit halber einfach ext4, da die Performance jetzt auch nicht so krass unterschiedlich ist.
Wenn dir xfs zusagt und du damit die meiste Erfahrung hast, denn nehm halt xfs.
 
Last edited:
  • Like
Reactions: gnomegemini
Am besten vorher nochmal überlegen ob du für virtio SCSI 4k oder 512B Blockgröße nehmen willst (512B wäre default was meist nicht so sinnig ist bei 4K Blockgröße vom Gast und vermutlich 4-64K Blockgröße am Host) und ob die Blockgröße der zvols (volblocksize) passt (muss gut abgewägt werden wegen Write Amplification, Padding Overhead, Performance and Komprimierbarkeit). Das macht man am besten vor dem Erstellen der VMs, weil sich das später nur noch nervig ändern lässt.
 
  • Like
Reactions: gnomegemini
Okay... die physische Größe der noch verwendeten Platten ist 512, habe aber dennoch ashift=12 genommen. Die Blocksize der zvol hab ich auf 8k angepasst bei 2 Platten im Raid 1. Meinst Du 4k wären da besser/sinnvoller als zvol? Und: gibt man dann dem ext4 innerhalb der VM ebenfalls eine Blocksize von 4/8k? Bei so hardwaretechnischen bin ich dann doch raus leider. Bis Oberkante OS bekommen wir DevOps Engineers alles geliefert, die Cloud wird erst darauf aufgebaut. :)
 
Im Gast kannst du ja meist die Blockgröße nicht über 4K anheben, da die maximal die Größe der Page Files haben kann. Wenn du nicht gerade das Linux mit Hugh Pages aufsetzt, dann bist du da im Gast schon einmal auf 4K Blockgröße limitiert. Wenn dein Pool dann auch eine 4K Blockgröße hat (ashift=12) dann wäre 4K als volblocksize für die zvols vermutlich auch nicht verkehrt. Müsstest du mal gucken was von beidem da bei dir besser läuft. Mit 8K volblocksize fängst du dir vermutlich eine Write Amplification vom Gast zum Host ein (wenn da virtio mit 512B oder 4K auf das 8K zvol schreibt). Andererseits kann es auch sein, dass sich damit dann nur die Write Amplification in die SSD verlagert, falls diese intern Irgendetwas wie 8K, 16K oder ähnliches nutzt und eh keine 4K Blöcke schreiben kann. Mit der Block Level Kompression wird es auch immer schwieriger, je kleiner die Volblocksize ist und ein 4K Block vom zvol lässt sich ja eh nicht nicht mehr kleiner machen, wenn der Pool nur ganze 4K Blöcke auf die SSD schreiben kann.

Wäre echt schön, wenn das Proxmox Team da vielleicht auch mal ein Paper zu veröffentlichen könnten, was da im technischen Detail erklärt, wo da mit ZFS und PVE die Haken sind. So richtig etwas Handfestes bezüglich KVM Virtualisierung auf ZFS findet man im Netz leider kaum.
 
Last edited:
Ich hatte mich an dem Blog ein wenig orientiert: https://jrs-s.net/2018/08/17/zfs-tuning-cheat-sheet/
An Speicher mangelt es nicht, die Compression könnte ich auch ausschalten. Aber da es eh schneller läuft als das Filesystem jemals sein wird ist das ja wurscht. Also probiere ich mal 4k volblocksize. Und die checksum werde ich nun nach einigem lesen auf Fletcher4 wieder ändern.
 
Ich habe mal anhand https://pve.proxmox.com/wiki/Benchmarking_Storage paar Benchmarks gemacht mit unterschiedlichem ashift (12 und 13) sowie unterschiedlichen bs. Fazit: ashift=12 ist überall schneller ausser bei 1M blöcken. Je größer der Schreibblock, desto schneller wurde es mb/s aber desto geringer die IOPS.

Fraglich ist, was bei einer VM nun besser ist. Soweit ich las ist die recordsize ein variabler Wert und die von mir konfigurierten geben den Maxwert an. Aber zvolblock? 8k vs. 4k. Mehr MiB/s oder lieber mehr IOPS. Ich würde fast meinen IOPS da ohnehin an unterschiedlichsten Stellen geschrieben wird. Oder doch 4k und das Guest auch auf 4k? Da müsste man mal umfangreich Benchmarken. Mach ich mal, wenn der Storage wirklich mal das Bottleneck sein sollte.
 
Da müsste man mal umfangreich Benchmarken. Mach ich mal, wenn der Storage wirklich mal das Bottleneck sein sollte.
Benchmarken würde schon alleine wegen der Haltbarkeit der SSD Sinn machen. Ich habe hier eine gemischte Write Amplification von gut Faktor 20. Bei großen sequentiellen Async Writes wohl eher Richtung Faktor 3, bei kleinen Random Sync Writes wohl eher Richtung Faktor 40-50.
Wenn die 1TB SSD nur 600 TBW hat und da dann eine Datenbank mit Write Amplification von 50 draufschreibt, dann kann die SSD hin sein, wenn da der Gast nur 12 TB draufschreibt. Hat man einen Mirror sind gleich 2 SSDs nach 12TB hin;)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!