[SOLVED] Grundsatzfrage: LVM unter KVM oder direkt auf ZFS?

Dec 19, 2012
494
14
83
Hallo.
ich bin heute eher zufällig über diese Seite gestolpert:
https://superuser.com/questions/1246958/qemu-kvm-lvm-performance-of-block-device-drive-vs-file-image

Bei uns ist es so, dass wir auf dem Proxmox-Server ZFS einsetzen.

Eine der VMs ist ein importiertes Ubuntu-Linux 18.04 Image und kommt mit einem vorinstallierten LVM daher. Darin befinden sich 4 Mountpoints, von denen 2 mit einem Quota belegt sind. Ich frage mich, ob das auf diese Weise vernünftig ist, oder ob ich aus Performancegründen nicht lieber vollständig auf das LVM verzichten sollte und vom Hypervisor 4 neue Partitionen (ZFS) in passender Größe anlegen lassen und direkt an die VM durchreichen sollte?
Snapshosts kann ZFS auch ohne LVM -- und vergrößern kann man die Partitionen dann im Notfall auch direkt ... weitere Notwendigkeiten für ein LVM gibt's imho nicht, oder??
Was meint ihr?
 
Ok, das dachte ich mir ... zwei weitere Fragen zum gleichen Thema:

Ich habe mittlerweile unter Proxmox 6 vier virt HDDs hinzugefügt und als Storage den ZFS-Pool gewählt. Wenn man etwas stöbert, liest man immer, dass .raw schneller als .qcow2 sei ... dennoch steht diese Option beim Hinzufügen der virt. HDD gar nicht (mehr?) zur Wahl. Es ist per default qcow2 ausgewählt und auch nicht änderbar. Das hat sicher seine Gründe ... aber wie sieht's in Sachen Performance aus?

Die andere Frage taucht auch immer wieder im Zshg mit ZFS auf: Welche Art von Cache ist zu wählen, wenn man größtmögliche Performance will? Ich habe im Moment writethrough gewählt und zusätzlich die Option "[x] Discard" ... habe aber auch schon gehört, dass man besser "write back" wählen sollte!?!? Unser ZFS-Pool besteht aus einem RAID-Z2 (1 TB WD Red) und einer Cache-Platte (Enterprise SSD).
Danke nochmal ...
 
Ich habe mittlerweile unter Proxmox 6 vier virt HDDs hinzugefügt und als Storage den ZFS-Pool gewählt. Wenn man etwas stöbert, liest man immer, dass .raw schneller als .qcow2 sei ... dennoch steht diese Option beim Hinzufügen der virt. HDD gar nicht (mehr?) zur Wahl. Es ist per default qcow2 ausgewählt und auch nicht änderbar. Das hat sicher seine Gründe ... aber wie sieht's in Sachen Performance aus?

Die Option RAW oder QCOW2 steht nur bei dateibasierten Storages zur Verfügung. ZFS ist im KVM-Umfeld aber ein blockbasiertes Storage, sodass du hier immer implizit RAW hast (geht auch nichts anderes), dass aber mit den COW-Features von ZFS (Snapshot, Replikation, Thin-Provisioning) daherkommt und somit das beste von RAW und QCOW2 vereint - daher ist es Standard bei ZFS.

Die andere Frage taucht auch immer wieder im Zshg mit ZFS auf: Welche Art von Cache ist zu wählen, wenn man größtmögliche Performance will? Ich habe im Moment writethrough gewählt und zusätzlich die Option "[x] Discard" ... habe aber auch schon gehört, dass man besser "write back" wählen sollte!?!? Unser ZFS-Pool besteht aus einem RAID-Z2 (1 TB WD Red) und einer Cache-Platte (Enterprise SSD).
Danke nochmal ...

Discard ist nur dann interessant, wenn ihr gelöschten Speicher direkt auf dem ZFS-Gerät wieder freigeben wollt ... und das wollt ihr :-D

Die beste Performance hat Write-Back, da die Daten nur in den Cache geschrieben werden und dann ein Erfolg gemeldet wird - das ist natürlich die gefährlichste Variante - aber ein inkonsistentes Dateisystem bekommt ihr Dank ZFS dabei nicht. Weitere Infos dazu in der deutschen Wikipedia.
 
Ok, danke, ich hab's auf "write back" geändert. Discard war ja bereits überall aktiviert ...

... aber vielleicht doch noch eine "letzte" Frage hinterher: Ich überlege, ob ich die eine der hinzgefügten Platten nicht lieber als Dataset anstelle eines ZVols anlegen sollte, um direkt filebasierten Zugriff zu erhalten. Wie sieht's denn da mit der Performance aus?

Übrigens: https://openbenchmarking.org/result/1803231-TY-MERGE995140
 
Last edited:
... aber vielleicht doch noch eine "letzte" Frage hinterher: Ich überlege, ob ich die eine der hinzgefügten Platten nicht lieber als Dataset anstelle eines ZVols anlegen sollte, um direkt filebasierten Zugriff zu erhalten. Wie sieht's denn da mit der Performance aus?

Bei KVM kannst du nur ein blockbasiertes Gerät anlegen, da eine virtuelle Festplatte immer blockbasiert ist - wie eine physikalische Festplatte auch.

Wenn es "nur" darum geht Dateien auszutauschen zwischen VM und Host, dann kannst du da gerne ein Dataset anlegen und die Daten via Samba/NFS teilen.
 
OK, dann habe ich es verwechselt... bzw ging es in diesem Video von "ZFS rocks" um "Datasets vs ZVols" auf einem FreeNAS -- also gänzlich ohne KVM dazwischen.
Aber evtl kann man Aber man kann ein ZVol ja auch auf dem Hypervisor mounten, um einzelne Files heraus zu kopieren:... und zwar so ...
 
Last edited:

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!