ZFS auf Low-End System?

limone

Well-Known Member
Aug 1, 2017
89
8
48
30
Moin,

ich baue mir gerade einen kleinen Homeserver zusammen, auf dem ein paar kleine VMs mittels Proxmox laufen sollen (nichts Rechenintensives)

Folgende Komponenten habe ich:
- ASRock J5005-ITX
- Syba SI-PEX40064
- 2x 8GB RAM


Platten sind momentan 2x 120GB SSD und 2x 4TB WD RED, wobei da wenn die 4TB voll sind noch mal 2x 4TB Platten dazu kommen sollen. Ob ich Dann 2x RAID1 mache oder RAID10 aus alles 4 werde ich dann entscheiden, wenn es soweit ist.

Mein Problem nun: Ich habe im Internet gelesen, dass man für ZFS pro 1TB Platte 1GB RAM braucht, d.h. wenn ich bei 16TB HDD insgesamt bin (4x4TB) würde ich ja schon 16GB RAM benötigen...
D.h. ich müsste in das kleine System ja mindestens 2x 16GB RAM verbauen, damit das überhaupt funktionieren würde. Und da ich auch kein ECC habe, frage ich mich ob ZFS das richtige für mich ist.

Als Alternative bleiben mir da die Syba gegen einen anderen Controller auszutauschen, der selbst RAID macht, oder mdadm.

Nun meine Frage: Was macht am meisten Sinn? Ich würde schon gerne ZFS nutzen, da es nativ von Proxmox unterstützt wird, und bei HW RAID Controller ist auch die Frage, ob das Board damit überhaupt umgehen kann (z.B. die Platten vom Syba werden im BIOS gar nicht erkannt, erst in Proxmox) und ob ich dann überhaupt an die SMART Werte komme.
Und mdadm ist natürlich wieder Bastelei...
 
Nun meine Frage: Was macht am meisten Sinn?

Ja!

Ich habe ähnliche Setups seit Jahren im Einsatz, aktuell auf einem J4205-ITX mit 16 GB-RAM. Ich hab' sogar ZFS schon auf einem Pi3 eingesetzt ... ja war langsam hat aber funktioniert.

Wenn ZFS nicht genug RAM hat (bzw. der ARC nicht groß genug ist) ist es "nur" langsam, aber sonst keine negativen Einflüsse. Und der Mythos mit ECC ist immer noch weit verbreitet, aber immer noch nicht richtig. Also generell ist ECC natürlich super, aber ZFS ist nicht schlechter als jedes andere Dateisystem wenn man keinen ECC-RAM verwendet.
 
Was heißt denn langsam? Ich würde wenn ich jetzt nur 16GB RAM verbaue dem ZFS 2x4TB 4GB RAM zur Verfügung stellen wollen, + SSD Cache.
Solange ich dann noch meine 100 mb/s lesen oder schreiben kann, genügt mir das.
 
Was heißt denn langsam? Ich würde wenn ich jetzt nur 16GB RAM verbaue dem ZFS 2x4TB 4GB RAM zur Verfügung stellen wollen, + SSD Cache.

Bei so wenig RAM ist das total Kontraproduktiv einen L2ARC einzusetzen, da du faktisch noch weniger ARC dadurch hast und es noch langsamer wird.

Solange ich dann noch meine 100 mb/s lesen oder schreiben kann, genügt mir das.

Naja ... wenn du sequentiell meinst, dann könnte das vielleicht klappt. Randomisiert werden das bei 4K Blöcken deine SSDs wahrscheinlich nicht mal schaffen, es sei denn du hast Enterprise SSDs gekauft. Hier mal ein paar Zahlen dazu:

http://www.sebastien-han.fr/blog/20...-if-your-ssd-is-suitable-as-a-journal-device/
 
Hmm, dann wirds wohl doch mdadm oder 32GB RAM, oder einfach gar kein RAID so wie das jetzige System auch schon läuft...

Kann man ZFS irgendwie prüfen, ob es Fehler geschrieben hat? Dann würde ich das ja ziemlich schnell mitbekommen und kann die VMs aus dem Backup wiederherstellen.
 
Hmm, dann wirds wohl doch mdadm oder 32GB RAM, oder einfach gar kein RAID so wie das jetzige System auch schon läuft...

Mit 32 GB RAM wird er auch nicht schneller auf das ZFS schreiben können. "Nur" zwei Festplatten sind halt einfach nicht schnell.

Kann man ZFS irgendwie prüfen, ob es Fehler geschrieben hat? Dann würde ich das ja ziemlich schnell mitbekommen und kann die VMs aus dem Backup wiederherstellen.

Klar, ZFS schreibt ja selbst eine Checksumme mit und wenn die Daten nicht passen, wird entweder selbst geheilt (wenn noch eine Kopie irgendwie rumfliegt, z.B. bei einem Mirror oder RAID) oder dann wird das Dataset offline genommen.
 
Definiere mal bitte deine Auffassung von schnell :D

Also so lange die Performance nicht schlechter wird als die Platte komplett ohne RAID/ZFS, ist das für mich kein Problem.
Ich habe auch keine I/O intensiven Anwendungen, sonst würde ich auch keine HDD dafür nehmen.
Mir geht es einzig und allein um die Redundanz.
 
Also so lange die Performance nicht schlechter wird als die Platte komplett ohne RAID/ZFS, ist das für mich kein Problem.

Gut, dann kein ZFS für dich :-D
ZFS ist das fortschrittlichste Dateisystem, was wir in Linux, *BSD und Solaris haben und vollgepackt mit geilen Features. Das kostet alles Zeit und Performance. Man verwendet ZFS nicht wegen der Geschwindigkeit, sondern wegen der Features. Wenn du keine Features brauchst, können wir die Diskussion an der Stelle abbrechen.

Definiere mal bitte deine Auffassung von schnell :D

Das schnellste, was du haben kannst ist thick-LVM auf so viele Platten wie möglich im RAID 0 mit einer geringen Stripe-Größe, damit du am Besten jeden 4K Block von einer anderen Platte liest. Das ist natürlich in der Praxis quatsch.

Für ein Virtualisierungssystem optimiert man aber nicht nach Geschwindigkeit an erster Stelle, sondern nach Features und da gewinnt ZFS bei Standalone-Systemen eigentlich immer. Wenn man sich auf die Features verständigt hat versucht man das System so schnell wie möglich zu bekommen und das hat sehr viele Stellschrauben: RAM, CPU und Disks, ggf. sogar noch SLOG und L2ARC.

Du wirst also den größten Schub in Geschwindigkeit bekommen wenn du dein 2 Disk-System auf ein 4 Disk-System in RAID10 Analogie (stripped mirror) in ZFS aufbaust. Festplatten sind nach wie vor der limitierende Faktor, da die I/O einfach dermaßen langsam ist. Also lieber 4x4 TB Platten verbauen als 2x 8 TB. Der Arbeitsspeicher ist dann wichtig, wenn du nicht auf den langsamen Massenspeicher ausweichen willst. Viele der angeforderten Blöcke sollten daher im ARC liegen, wie es bei einem normalen Dateisystem auch der Fall wäre. Die vielen Features von ZFS tragen aber z.B. dazu bei, dass die Fragmentierung extrem steigen kann, wenn du viele Snapshots hast und dann werden sequentielle Lesevorgänge zu Teilrandomisierten und das zieht dir dann den Boden unter den Füßen weg. Eine normale Festplatte kann so 120 bis maximal 200 IOPS pro Sekunde, was bei einer 4K Blockgröße einer VM zu sagenhaften 800 KB/sec Durchsatz beim Lesen führt ... und der Wert ist extrem optimistisch. Meistens sind es nur knapp ein halbes MB/sec. Das ist definitiv langsam. Enterprise SSDs punkten hier und du bekommst mehrere GB/sec bei den NVMe Modellen. Der sequentielle Durchsatz, also der den du gerne hättest und der in der Praxis eigentlich nur beim Videostreaming (oder ähnlich große Dateien) entscheidend ist geht bei ZFS normalerweise am Cache vorbei.

Aber um nochmal zum Thema zurückzukommen: Ich würde das einfach mit ZFS aufsetzen und dem ARC maximal 1/4 des Arbeitsspeichers geben. Dir verbleiben dann für VMs noch RAM - 1/4 für RAC - 1 GB.

Hab' gerade mal geschaut ... ich hab hier noch einen alten IBM T61 Laptop "rumservern" mit 4 GB-RAM und ZFS und der tut prima. Sequentiell Lesen ist bei 100 MB/sec, auch wenn die Platten wohl die 160 MB/sec packen würden, schreiben bei ca. 70 MB/sec.
 
jetzt bin ich verwirrt, ein lange text warum ich kein zfs nutzen soll, und dann im letzten satz schreibst du ich soll zfs nutzen und dem wenig ram geben :eek:
 
jetzt bin ich verwirrt, ein lange text warum ich kein zfs nutzen soll, und dann im letzten satz schreibst du ich soll zfs nutzen und dem wenig ram geben :eek:

Ich habe versucht zu erklären, welche Probleme im Hintergrund werkeln und wie was man generell zu erwarten hat von einem System mit nur zwei Festplatten und dass ZFS generell das System nicht schneller macht, sondern ihm mehr Features gibt.
 

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!