[SOLVED] Speicherplatz im Hypervisor größer als in VM (ZFS RAID-Z2, keine SSDs), Trim-Problem (Discard-Option lässt sich unter cryptLUKS-Disk nicht aktvieren)

Noch eine Verständnisfrage analog zum gegebenen Beispiel:
Parity sind die Extra-Daten die du haben willst, damit nichts verloren geht, wenn dir eine HDD ausfällt. Padding ist der Overhead den du hast, weil die Daten aus der VM ja irgendwie auf 4 HDDs aufgeteilt werden müssen und weil die Blockgrößen zwischen LBA von der HDD, Volblocksize und ashift von ZFS sowie die Blockgröße des Dateisystems innerhalb der VM sich ja meistens unterscheiden. Mal ein vereinfachtes Beispiel zum groben Verständnis:
Hast du den Pool mit ashift 12 angelegt ist das Kleinste, was die HDDs speichern können, 4kb. Wenn du die Volblocksize beim Erstellen der virtuellen Festplatten nicht vom Standardwert von 8kb abgeändert hast, dann werden Daten von ZFS in 8kb Blocken bearbeitet. Dieser 8kb Block wird dann auf deine 4 HDDs aufgeteilt also soll jede HDD 2kb schreiben. Das kleinste was die schreiben können ist 4kb, also schreiben die 4x 4kb = 16kb. So werden deine 8kb zu 16kb und alle Daten nehmen also den doppelten Platz weg.

Angenommen ich nehme nun als VolBlocksize 64kb, sodass die Daten von ZFS in 64kb-Blöcken bearbeitet werden. Jetzt wird so ein 64kb-Block ebenfalls auf 4 HDDs aufgeteilt, also soll jede HDD 16kb aufnehmen. Jetzt ist das kleinste, was die HDD schreiben kann, wieder 4kb, sie wird also für die 16kb 4x4kb schreiben, richtig? Wenn ich nun viele kleine Textdateien habe, von denen viele nichtmal 10KB Größe haben, belegen die dann nicht alle min. 64kb, sodass sich das Problem dann nur verlagert?
 
Last edited:
Ja, wenn du viele kleine 10KB Dateien hast und die Volblocksize 64K ist, dann wird jede Datei mindestens 64KB brauchen. Gibt da leider keine perfekte Lösung. Aber in den meisten Fällen machen die ganz kleinen Dateien wirklich nur ein Minimum von der Gesamtkapazität aus und da stört es dann nicht so großartig, wenn da mal eine kleine Datei 64K statt 10KB braucht. Wenn dafür dann eine 1GB Datei auch wirklich nur 1GB und nicht 1,5GB braucht. Dann lieber die 52KB mehr bei der kleinen Datei als 500MB mehr bei der großen Datei. Da müssten dann ja schon über 10.000 10KB-Dateien auf jede einzelne 1GB-Datei kommen, damit sich das mit der größeren Volblocksize nicht mehr rechnen würde.
Außer du hast wirklich spezielle Workloads am laufen die massig kleine Writes machen. Da würde es dann Sinn machen z.B. eine Datenbank-VM auf einen extra Pool zu legen, wo man dann die Volblocksize gezielt klein hält un am besten nur einen einfachen Mirror und kein Raidz nutzt.
 
Last edited:
  • Like
Reactions: r4dh4l

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!