ZFS - best practice

pvenewbee

Member
Sep 19, 2022
25
1
8
Hallo,

ich hatte mal ein volles Dateisystem (ZFS) https://forum.proxmox.com/threads/zfs-vm-disk-voll.171552/ und würde sagen, daraus habe ich mitgenommen: "Alter, pass auf, ein Pool darf niemals voll werden, sonst ist man f***ed - und das kann schnell gehen!".

Mir ist damals vorgeschlagen worden, ein Quota zu setzen. Aber ich schau mir die Doku an https://docs.oracle.com/cd/E19253-01/819-5461/gazvb/index.html und komme zum Schluss:

-Quota verlagert das Problem nur (eigentlich für User gedacht; was da passiert, ist, dass der Pool quasi hart verkleinert wird, d.h. wenn mein Pool 2TB groß ist und ich Speicher reservieren wollte, mit einem Quota von 1,9TB habe ich dasselbe Problem wie vorher, nur halt mit 1,9TB)

-stattdessen müsste auf dem Pool ein refreservation gesetzt werden:
"If refreservation is set, a snapshot is only allowed if sufficient unreserved pool space exists outside of this reservation to accommodate the current number of referencedbytes in the dataset."

Gut - ich glaube, Snapshots sind in der Tat das größte Risiko (weil automatisiert, oft gebraucht, das Delta ist nicht immer klar, aber weil es so einfach ist und eigentlich keinen Speicherplatz kostet, immer gern genommen, ...). Die Beschreibung ist aber IMHO etwas ungenau, muss noch testen, ob die Aussage eigentlich "unreserved and unused pool space" lauten sollte.

Wie sind Eure Erfahrungen?
 
Last edited:
Verstehe nicht ganz, warum du nicht den bestehenden pool damals vergrössert hast, oder die VM den storage verschoben hast, oder mittels der Backup Funktion die VMs "neu" angelegt hast, sondern mit ZFS send was probiert hast.

"Alter, pass auf, ein Pool darf niemals voll werden, sonst ist man f***ed - und das kann schnell gehen!".
Dem stimme ich zu 50% zu. Der pool sollte nicht voll werden. Wenn es auch noch der boot pool ist, kommt es vermutlich zu noch dooferen Situationen.
Nur geht das bei mir nicht "schnell".
VMs nutzten RAW disks und diese haben nur die Grösse, die sie auch brauchen. Da müssten schon alle VMs plötzlich sich füllen, damit es auf dem pool eng wird.
 
  • Like
Reactions: news and Johannes S
Verstehe nicht ganz, warum du nicht den bestehenden pool damals vergrössert hast
weil es nicht mehr ging. Das war tot. Nicht mehr veränderbar. Autoextend, nada, Mirror erstellen, niente. 0B frei.
oder die VM den storage verschoben hast, oder mittels der Backup Funktion die VMs "neu" angelegt hast, sondern mit ZFS send was probiert hast.
es gibt meist tausend Wege, etwas zu tun. So auch hier. Auch mein Weg hätte funktionieren *sollen*. Andernfalls wäre zfs kaputt.
Nur geht das bei mir nicht "schnell".
wenn ich es Dir erklären könnte, wäre mir geholfen, weil ich es dann verstanden hätte. Fakt ist, schon der mir angezeigte Füllstand in PVE stimmte nicht mit meiner Erwartung über die Summe der VM-Laufwerke überein. Es war deutlich größer. Aus der Lage heraus, nicht genau erklären zu können, was da den Füllstand erzeugt, den Snapshot zu erstellen, um das Dataset dann senden zu können, das hat den Pool wahrscheinlich voll gemacht. Schnell meine ich: CoW und SSD. Ratzfatz. Aber das ist nur meine Vermutung zu damals und es ist jetzt abgesehen von der Schlussfolgerung, das Fangnetz aufzuspannen, nicht mehr wichtig, da Präteritum.

Aber meine eigentliche Frage war ja:
Was meint Ihr denn zu refreservation?
 
Last edited:
Oh guten Morgen, mein Fehler ich habe ja gar nicht drauf geachtet, wir bewegen uns ja bei OpenZFS 2.3 im Augenblick; das hätte ich verlinken müssen.
 
Fakt ist, schon der mir angezeigte Füllstand in PVE stimmte nicht mit meiner Erwartung über die Summe der VM-Laufwerke überein.
Das kann meiner Erfahrung nach nur zwei Gründe haben:
- Snapshots
- Pool geometrie

Hast du Interesse rauszufinden, warum du in deine Situation gekommen bist? Oder ist das gar nicht relevant für dich?
Wie du Snapshots automatisiert hast wäre spannend, mittels GUI ja nicht, vermutlich war dort ein Fehler?
Was meint Ihr denn zu refreservation?
Gute Sache. Ich war für meinen PBS zu faul, weil boot SSDs mich nur 20€ gekostet haben. Bei PVE habe ich mehr als genug NVME Speicher und nutzte nur 20%, darum dort nicht interessant für mich.
 
Last edited:
Guten Morgen,
ich werfe noch ein paar "Tatsachen in den Ring", ist bekannt, dass ein ZFS Dataset kompression unterstützt und diese eingeschaltet ist? Ist bekannt, dass auch "viele" Metadaten gespeichert werden müssen. Das Thema Datenplatzreservierung und ZFS Snapshots ist bekannt.
Dann kommt noch bei ZFS Volume, die eingesetze Formatierung des Blockdevice zum tragen, da sind zusätzlich auch Metadaten vorhanden.
Also mir ist eine Differenz i.A. egal. Ich schaue mit Tools nach, ob die Anzahl der ZFS auto-snapshot zu viel ist und reduziere sie bei Bedarf.