Proxmox und ZFS

Salamimander

Captain
Registriert
Okt. 2019
Beiträge
4.015
Hi,

aktuell verwende ich ein TrueNAS Server mit Raidz2 auf dem ich auch, mittels bhyve, virtualisiere. Da B-Hyve mmn totaler Käse ist für Linux VMs (Bei BSD mag das anders aussehen, aber soll garnicht diskutiert werden).

Auf Grund dessen und weil ich gerne rumspiele und lerne, möchte ich das ganze auf Proxmox umbauen und den TrueNAS Part am Ende einfach virtualisieren.

Wie sieht das bei proxmox mit ZFS aus? Ja klar, es geht. Aber wie stabil ist das ganze? Production Ready? Vom Aufbau her hätte ich gerne die Installation auf einem RaidZ2 samt SSD-Cache.Letzteres hänge ich später auch einfach dran, kein Thema. Da ZFS aber arg Memorylastig ist, frage ich mich, wie das geregelt ist? Muss ich das, ähnlich wie bei FreeBSD händisch limitieren? TrueNAS ist mir anfänglich gerne mal mit einem OOM weg geflogen und das tut weh, das will ich bei Proxmox gerne direkt verhindern. Es stehen 32GB für alles zur Verfügung.

Was habe ich überhaupt vor?

5 VMs (Debian)
  • Unifi/Unbound/pihole (Kann alles in eine VM, weniger Overhead)
  • jenkins
  • HomeAssistant
  • Backup Server (rsnapshot --> Remote Sicherung)
  • TrueNAS

Bei einem Neuaufbau besteht auch die Möglichkeit, Teile zu Containerisieren, dH ich könnte das weiter aufdröseln. Allerdings ist der Overhead bei proxmox Containern wohl doch bedeutend höher als bei Docker.

Zur (betagten) Hardware:
Intel Core i5-7600k
2x 16 GB DDR4
4x4TB HDD
1x 500GB SSD
1x 120GB SSD
1x 1GBit Realtek
2x 1GBit Intel (LACP geplant)

Natürlich könnte man jetzt auch neue Hardware kaufen, RAM nachstecken und und und, möchte ich aber an dieser Stelle nicht. Sobald der 5600G von AMD billiger wird, steht ein Systemwechsel an, vorher nicht.

Steht meinem Plan im Grundsatz irgendwas im Wege? Migration der Daten plane ich nicht wirklich. Es wird ein Backup der Daten des TrueNAS erstellt sowie config exports der Dienste (Jenkins, unifi, HomeAssistant, rsnapshot usw)

Aus der Doku:
Arbeitsspeicher: mind. 2 GB für OS und Proxmox VE-Dienste. Für jeden Gast zusätzlichen Arbeitsspeicher. Zusätzlicher Arbeitsspeicher für Ceph oder ZFS, ca. 1 GB Speicher pro TB genutztem Storage.

--> Es sind knapp 6TB Storage beim RaidZ2 über. dH 8GB RAM der 32 abziehen. Aber muss dazu etwas konfiguriert werden? Wie gesagt, bei FreeBSD muss ich das tatsähclich in den parametern limitieren sonnst gibt es OOM Fehler.

Des weiteren Frage ich mich, Kann ich den System Storage auch als VM Storage nutzen, dH kann ich VMs direkt auf dem "root ZFS" erstellen auf dem auch die Installation liegt?
 
Salamimander schrieb:
Wie sieht das bei proxmox mit ZFS aus? Ja klar, es geht. Aber wie stabil ist das ganze? Production Ready?
Ceph und ZFS sind die von Proxmox bevorzugten Speicherziele.
ZFS on Linux ist sehr stabil. Das es nicht im kernel ist hat ideologische / Lizenzgründe, denen man zustimmen kann oder nicht.

Salamimander schrieb:
Containern wohl doch bedeutend höher als bei Docker.
Docker ist eine Containerruntime, und nicht gerade die, die ich bevorzugen würde..

Salamimander schrieb:
Da ZFS aber arg Memorylastig ist, frage ich mich, wie das geregelt ist? Muss ich das, ähnlich wie bei FreeBSD händisch limitieren? TrueNAS ist mir anfänglich gerne mal mit einem OOM weg geflogen und das tut weh, das will ich bei Proxmox gerne direkt verhindern. Es stehen 32GB für alles zur Verfügung.
Auch wenn 1gb pro tb empfohlen wird, kommst du auch mit einem Bruchteil davon aus.

Salamimander schrieb:
Da B-Hyve mmn totaler Käse ist für Linux VMs
würde mich interessieren.
 
zfs ist bei proxmox "stable" -> https://pve.proxmox.com/wiki/Storage

du kannst es über die gui konfigurieren oder wie bekannt in der kommandozeile erstellen und dann einbinden:

Code:
root@proxmox:~# cat /etc/pve/storage.cfg
dir: local
    path /var/lib/vz
    content vztmpl,backup,iso

lvmthin: local-lvm
    thinpool data
    vgname pve
    content images,rootdir

zfspool: local-zfs
    pool local-zfs
    content rootdir,images
    mountpoint /local-zfs
    nodes proxmox

root@proxmox:~# pvesm status
Name             Type     Status           Total            Used       Available        %
local             dir     active        59600812        17947108        38596452   30.11%
local-lvm     lvmthin     active       154533888               0       154533888    0.00%
local-zfs     zfspool     active       942669824        90867724       851802100    9.64%
 

Anhänge

  • prox_zfs.png
    prox_zfs.png
    39,2 KB · Aufrufe: 357
Danke soweit und zu deiner Frage:

1.) Shutdown klappt nur manchmal
2.) BHyve erwartet bei EFI ein bestimmtes File im /boot Laufwerk, das Debian nicht hat. Man muss es bei jedem Bootlaoderupdate selbst dorthin kopieren, sonnst bootet er nicht. ( /boot/efi/EFI/BOOT/bootx64.efi. Symlinks gehen leider auch nicht... )
3.) EFI wird für VNC benötigt, ohne gehts nicht (ggf mehr TrueNAS Problematik als bhyve, kA)

Das sind so die 3 nervigen Punkte :D

Edit:
Danke auch dir.

Die Frage nach dem System Storage als VM Storage: Soll wohl gehen, afaik kann man als Storage auch einfach einen Ordner angeben, würde mir ja reichen. (Wäre klasse, wenn compression dann noch klappt. Oder kann ich ggf sogar einzelne ZVOLs im Pool erstellen und diese angeben? Dann würde compression weiter funktionieren)
 
Ehm, ich würde die Unifi Software so weit weg wie möglich von aller anderen Software betreiben, entweder in einem Container oder dedizierten VM. Die Abhängigkeiten der Unifi Software sind sowas von veraltet, dass du damit ansonsten in echte Probleme rennst (vollkommen veraltete MongoDB zb.)
 
  • Gefällt mir
Reaktionen: madmax2010
Dessen bin ich mir bewusst, gerade Unifi würde ich bei einer Neuinstallation tatsächlich in einen Container sperren wollen. Dazu muss ich mir aber erstmal LXC in proxmox angucken, gerade auf Netzwerkebene gibt es da einige Fallstricke (in meinem Setup hier daheim)
 
Salamimander schrieb:
Da B-Hyve mmn totaler Käse ist für Linux VMs
Für Linux würde ich auch gar nicht unbedingt auf eine Virtualisierung setzen, sondern einfach Jails verwenden. Gerade mit Debian geht das super einfach wenn Du debootstrap die Jail problemlos mit Debian befüllen kannst.
Gerade seit FreeBSD 12.2 sind Linux-Jails deutlich einfacher geworden.
 
Ich mag die Jails auch nicht so sonderlich. Naja ich sehe schon, am Wochenende wird gebastelt :D
 
Mal ein Feedback:

Läuft soweit so rund. ZFS habe ich mittels Config etwas eingeengt, so dass in Etwa 22GB für VMs über bleiben. Aktuell habe ich 3 VMs und 4 Container. Den PiHole lasse ich als VM laufen, ist bedeutend unkomplizierter so. Unifi dagegen als Container. Auch mein RSNAPSHOT läuft als Conatiner, allerdings privelegiert, da ich dort NFS benötige. Leider ist der RAM voll..

Das führt mich zu einer Folgefrage:

Würde Proxox einen Board und CPU Wechsel (auf AMD) verkraften? Ich will auf den 5600G gehen samt 64GB ram.
 
ja und zfs verkraftet es sogar, wenn du im laufenden betrieb ds Dataset resizen willst, weil du gerade genutzte platten durch groessere austauschen willst.
 
Ja, das mit ZFS ist mir bewusst und ich war auch der Meinung, dass Debian das verkraftet. Na dann rede ich mal mit der Regierung, der Wechsel muss her... :D (Spart vermutlich Strom)
 
  • Gefällt mir
Reaktionen: madmax2010
Ich kann mich des Eindrucks nicht erwehren, das der RAM vor allem deshalb voll ist, weil Du so verschwenderisch mit den Ressourcen umgehst.

Salamimander schrieb:
(Spart vermutlich Strom)
Dafür hast Du aber auch Ausgaben für neue Hardware.
In Deutschland haben wir mit rund 30 Cent pro kWh einen relativ hohen Strompreis.
Selbst wenn Du 50W sparst (was viel wäre) und nur 300€ für neue Hardware ausgibst (was sehr wenig wäre) und das Ding 24/7 läuft bräuchtest Du über 2 Jahre bis sich das mal amortisiert.
 
Das mit dem Strom war mehr ein Scherz ;).

Und nein, jeder Container und jede VM kratzen an den 90% Auslastung. Home Assistant ZB enthält noch eine MariaDB, InfluxDB und Grafana. Ich habe das ganz gut im Blick. Man muss aber dazu sagen, dass das Proxmox UI leider RAM inkl FS Cache anzeigt. Htop zeigt mir dagegen 18GB an. Reich rechnerisch sollte das sogar inkl zfs-ARC sein.
 
Zuletzt bearbeitet:
Hast du KVM VMs laufen oder CT(LXC) container am start?
Bin soweit wie möglich weg gegangen von KVM VMs für Linux VMs, solange du in der VM mit dem Host Kernel leben kannst.

Vor allem beim jenkins und dem backup server würde ich mal nen CT container probieren.

Als Tipp am Rande: besorg dir eine kleine Intel Optane als zfs slog, bewirkt Wunder für build server :)
 
Ach ich lasse da nur Ansible von laufen, das reicht :).
 
Zurück
Oben