ZFS special device

hagbard

Member
Aug 24, 2016
6
0
21
Hallo,

Ich nutze einen ZFS pool mit special device, als lokales Storage in meiner PVE Umgebung.
Im Wiki ZFS on Linux habe ich folgenden Hinweis gefunden:
If the value for special_small_blocks is greater than or equal to the recordsize (default 128K) of the dataset, all data will be written to the special device, so be careful!
Dieses Verhalten wollte ich mir zu nutze machen um VMs nur auf den SSDs abzulegen. Daher hab ich ein Subvol ZFS-HDD01/proxmox_ssd angelegt und dort sowohl special_small_blocks wie auch recordsize auf 1M eingestellt. Leider funktioniert es nicht wie gedacht. Bei dem Typ den PVE nutzt um die Daten auf einem ZFS pool zu speichern scheinen beide parameter keinerlei Auswirkungen zu haben. Im Gegensatz zu anderen ZFS Parametern sehe ich bei zfs get recordsize keine Vererbung auf den disks.
Ist das korrekt?

Gruß Marian
 
Sind die VMs als qcow2-Dateien gespeichert? Wenn nicht, dann nutzt PVE Zvols für VMs und Zvols nutzen volblocksize anstatt recordsize. Sehe da jetzt auch nicht das Problem. Bei einer special_small_blocks von 1M wären ja sowohl deine Datasets mit 1M recordsize wie auch die Zvols mit 8K (der standard, falls du das nicht auch angepasst hast beim erstellen des zvols...kann nicht nachträglich geändert werden) kleiner oder gleich groß wie special_small_blocks und die Daten sollten auf der SSD landen.
 
Hallo,

mit qcow habe ich es jetzt auch mal getestet mit Folder als Storage, da funktioniert es und das qcow liegt nur auf den ssds, mit zpool iostat -v überprüft. Damit funktionier dann natürlich die Replikation nicht mehr, deswegen würde ich schon gerne das ZFS Storage Plugin benutzen.
Ich habe auch mal die volblocksize überprüft:
Code:
ZFS-HDD01/proxmox_ssd                                                 volblocksize  -         -
ZFS-HDD01/proxmox_ssd/vm-1822-disk-0                                  volblocksize  8K        default
Code:
ZFS-HDD01/proxmox_ssd                                                 special_small_blocks  1M                    local
ZFS-HDD01/proxmox_ssd/vm-1822-disk-0                                  special_small_blocks  -                     -
Diese stecht auf dem Standard Wert von 8k, die Daten landen aber trotzdem nicht auf den Special Devices, wen ich eine StorageMigration mache sehe ich aber das er durchaus auch auf den SSDs schreibt. Merkwürdigerweise nimmt der reservierte Platz auch erst zu, aber wen er fertig mit der Migration ist, auch wieder ab.
 
habe aber jetzt mit dem hinweis auf die volblocksize im englishen teil des forums einen beitrag gefunden wo fabian schreibt:
IIRC what doesn't work for zvols is the special_small_blocks mechanism (that would store data blocks under a certain size on the special vdevs as well), so you can't use it to move complete zvols including data nodes to the special vdevs by setting volblocksize to less than special_small_blocks.
schade okay, dann muss ich wohl mit der folder option leben
 
Warum denn keinen separaten zpool nur aus den SSDs?
Du könntest die SSDs ja auch partitionieren und nur einen Teil als VM pool nutzen, den Rest wie gehabt als special devices für den HDD pool.
 
  • Like
Reactions: Dunuin
Würde ich das neu aufbauen, wäre das eine Möglichkeit.
Aus Unwissenheit, habe ich damals aber in den raid05 pool direkt die ganze 2TB der SSDs als mirror als special device hinzugefügt. Trotz das ich mit special_small_blocks=512K und recordsize=1M die maximalen Werte ausreize, werden aber nur 78G derzeit der SSD genutzt.
Aufgrund der Masse an Daten, ist ein löschen und neuaufsetzen des Pools keine wirkliche Option und ich hatte gehofft, den freien Platz der SSDs so nutzen zu können.
 
Wenn du dir die Downtime erlauben kannst, würde ich die Maschinen sichern auf ne andere Disk und den Pool ernsthaft neu aufbauen.
Im Forum wird wirklich ausnahmslos überall von einem Parity RAID als VM Pool abgeraten. Obendrein noch das Problem, dass du die Special Devices nicht mehr vom Pool trennen kannst in dem Konstrukt.

Wenn es der Platz erlaubt, lieber ein RAID10 (striped mirrors in ZFS) und die 5. Disk als spare im Pool.
Und dann die SSDs ganz nach gusto partitionieren und als special device und 2. Pool verwenden.

Was ist denn die Aufgabe des restlichen Pools, wenn die VMs nur auf die SSD sollen?
 
Es gibt einen zusätzlichen NVMe mirror pool. Der RAID05 pool dient eigentlich nur als "datengrab" für samba und co, dort liegen keine wichtigen VMs. Nur wie gesagt da die SSDs jetzt als special device größtenteils brach liegen, wollte ich die zusätzlich für test VMs nutzen, womit ich mir nicht den kostbaren NVMe Space "zumüllen" will.
 
habe aber jetzt mit dem hinweis auf die volblocksize im englishen teil des forums einen beitrag gefunden wo fabian schreibt:

schade okay, dann muss ich wohl mit der folder option leben
Ich muss das noch mal ausgraben. Ist das immer noch so? Ein ZFS RAW HardDisk in einer VM hat also von dem Special Device nichts? Würde ein CACHE-Device im ZFS da ggf. mehr sinn machen?
 
Ich muss das noch mal ausgraben. Ist das immer noch so? Ein ZFS RAW HardDisk in einer VM hat also von dem Special Device nichts? Würde ein CACHE-Device im ZFS da ggf. mehr sinn machen?
Das wurde da nicht geschrieben. Eine VM mit einem Zvol profitiert weiterhin von Metadaten, die dann auf das Special Device Vdev geschrieben werden anstatt auf die normalen Vdevs und damit werden dann die normalen Vdevs entlastet. Was halt technisch bedingt nicht wirklich was bringt ist Daten von den normalen Vdevs auf die Speciakl Device Vdevs auszulagern. Da kannst du höchstens mit special_small_blocks entscheiden, ob alles an Daten+Metadaten auf das Special Device Vdev soll oder ausschließlich die Metadaten.
 
  • Like
Reactions: itNGO

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!