Frage zu zfs - ProxmoxVE und PBS auf einem Host

Burschi500

New Member
Jun 2, 2021
13
0
1
47
Hallo,

nach einigem hin und her habe ich jetzt geschafft Proxmox mit zfs auf meinem neuen Server zum laufen zu bringen (r8168 Netzwerkprobleme...), und ich scheine das Konzept noch nicht ganz verstanden zu haben. Deshalb meine Frage, aber zunächst eine grobe skizzierung meines Installationsweges:

* Debian Buster installiert
* r8168 nachinstalliert
* ProxmoxVE auf nvme installiert
* mehr Probleme mit r8168 und Netzwerkthematik (aber gelöst)
* ZFS per ProxmoxVE Webinterface auf drei HDs als Z1 installiert/eingerichtet (Daraufhin habe ich im root-Verzeichnis ein neues Verzeichnis /zPool (mein zfs-Pool)
* Proxmox-Backup-Server aus den Paketquellen von Debian auf nvme installiert (apt install proxmox-backup-server)
* in /zPool ein neues Verzeichnis /zPool/pbs erstellt und als Datastore im pbs eingebunden

Backups funktionieren und werden wie erwartet im entsprechenden Verzeichnis abgelegt. Die VMs/LXCs die ich per ProxmoxVE erstelle sind allerdings nicht im Dateisystem sichtbar

So - nun zur Frage(n):
Warum?
Besteht die Gefahr, das Proxmox die Daten vom PBS überschreibt, oder umgekehrt?
Warum kann ich meinen zfs-Pool unter ProxmoxVE nur für VM-disks und CT-Volumes nutzen, aber nicht für images etc.?
RTFM, aber welches Stichwort?

Gruß,
Burschi500
 
Warum kann ich meinen zfs-Pool unter ProxmoxVE nur für VM-disks und CT-Volumes nutzen, aber nicht für images etc.?
ZFS ist kein herkömmlicher Storage wo es ein großes Dateisystem gibt und da einfach Dateien und Ordner verschachtelt sind. Du erstellt stattdessen Zvols (Block Devices) und Datasets (jedes Dataset ist sein eigenes Dateisystem). VMs nutzen Zvols und LXCs Datasets als virtuelle Disks. Wenn man mag kann man sich ein Dataset erstellen und dessen Mountpoint als ein "Directory Storage" in Proxmox einbinden. Auf diesem kannst du dann auch alles andere Speichern. Guck mal hier.

Raidz1 ist übrigens nicht wirklich toll als Storage für deine VMs. Wegen all den CPU-Berechnungen wird bei Raidz1/2/3 die Latenz ziemlich schlecht und die Schreibleistung skaliert auch nicht gut. Ich vermute mal du hast extra NVMe gekauft weil es performant sein soll, da ist Raidz1 dann ziemlich kontraproduktiv. Das taugt da eigentlich nur etwas wenn man knapp bei Kasse ist oder Kapazität um jeden Preis will. Ansonsten sollte man da lieber zu einem Mirror (raid1) oder Striped Mirror (raid10) greifen.
 
Last edited:
Danke, zum großen Teil sind die Fragen auf ungenügende Bildung zurückzuführen :), ich lese mich gerade ein und langsam klärt sich der Nebel (langsam...).
Raidz1 - Momentan habe ich 3x4TB zusammgengepoolt, und es ist ok für mich (Homelab, da sind die Anforderungen, zumindest von mir und für mich, geringer) was die Performance angeht. Allerdings läuft momentan noch nicht viel auf dem Host, da noch eine andere Proxmox-installation vorhanden ist. Aber ja - VM/Virtualisierung mit Backupserver zu mischen ist wohl unglücklich, aber im (in meinem...) homelab tolerabel.
Nvme - Performance ist gut, aber ehrlich gesagt habe ich die installiert da der Preisunterschied zu einer SSD nicht mehr relevant war und so auch weniger Platz und Anschlüsse benötigt werden.
Und um meine beiden anderen Fragen noch zu beantworten:

Warum?
Bei der zpool create ... wird der entstandene zpool automatisch eingehängt in /<zpool-name>. Immer. STeht zumindest in den Oracle und BSD-docs (ja, habe ich jetzt auch mal gelesen ;)

Besteht die Gefahr das Daten überschrieben werden?
Nein, bzw nur wenn man es falsch macht. (so wie ich beim experimentieren - hatte das Verzeichnis /zpool/pbs angelegt und als Datastore im pbs angemeldet. Somit ist das auch genau das - ein Verzeichnis im dataset /zpool. Dann hatte ich, dummer weise, ein zfs dataset mit dem Namen pbs angelegt. Meh. Allerdings sind auch DANN noch keine Daten gelöscht, da das Verzeichnis pbs unter dem zfs-dataset immer noch existent ist und nach zfs unmount wieder zur Verfügung steht/stand.

Vielen Dank für deinen Link, das war für mich das erste Sprungbrett.
 
Nochmal als Tipp: Deinen Pool würde ich nicht direkt verwenden. Also nicht einfach Ordner in zpool erstellen und stattdessen lieber ein paar Datasets für jeden Verwendungszweck anlegen. Z.B. ein Dataset für Backups, eines für ISOs etc und dann erst Dateien und Ordner in den Datasets erstellen. Das macht es mit der Verwaltung einfacher. Verschlüsselst du z.B. deinen Pool dann ist alles zwangsweise verschlüsselt was auf dem Pool liegt. Hast du deine Daten aber in Datasets, dann kannst du manche Datasets verschlüsseln und manche unverschlüsselt lassen.
Oder du willst für deine Backups eine bessere aber langsamere Kompression und stellst das dann für das Backup-Dataset von lz4 auf zstd. Dann wird alles im Backup Dataset mit zstd komprimiert und alle anderen Datasets mit dem standardmäßigen lz4.
 
Das habe ich dann auch geschnallt und so gemacht. Da ich den Computer sowieso frisch aufgesetzt habe war das ja kein Problem. Im /zpool ist jetzt nichts mehr (direkt) gespeichert, alles auf datasets umgelegt und somit wieder frei zum spielen ;).