ZFS - die Basics für lmn7 dokumentieren?

Hallo Freunde des ZFS,

nebenher werde ich in den nächsten Wochen unsere neue Hardware hochziehen. Ich versuche mich auch an Proxmox und an ZFS.
Ich habe sicher nicht die Zeit mir alle Videos von ZFS rocks (#zfsrocks 001 - Das Raid nachdem nichts mehr sein wird wie zuvor! - Invidious) anzuschauen, aber Stück für Stück hole ich mir dort auch Informationen.
Es ginge natürlich bedeutend schneller, auch für nachfolgende Generationen, wenn wir wichtige Kennzahlen sammeln und weitergeben = dokumentieren würden.

Ich habe mal die Wikiseite hier angefangen: anwenderwiki:virtualisierung:dateisysteme:zfs:start [CommunityWiki]
(auch wenn ich langsam müde bin, dokuwiki syntax zu tippen…)

Ich hab auch gleich ein Problem:

Wenn ich Kompression ausschalte:

zfs set compression=off rpool/data

dann ist die Schreibrate von /dev/zero schlechter wie im Vergleich auf einem mit eingeschalteter Kompression.

Ich habe das Gefühl, dass ich einiges tunen und verstehen muss.
Aber wie immer: die Basics muss man sich wohl aneignen, aber es wäre cool, wenn die standard-Einstellungen oder die standard-Änderungen für ein sinnvolles System irgendwo hier dokumentiert wären.

VG, Tobias

Moin Tobias!

Schau Dir Teil 7 an … leider ist dieser Teil auf „denglisch“ aber man kann da trotzdem viel mitnehmen.
Viele Grüße,
Michael

Hi Tobias,
Du testest einfach zu viel :slight_smile: ich hab das nie ausprobiert… Es war mir halt schnell genug…
LG
Max

Hi Tobias,
ich hab Dir mal ins Wiki geschrieben, was ich mir selbst aufgeschrieben hatte (wie immer nicht viel), noch wusste oder jetzt nachschauen konnte.
LG
Max

2 „Gefällt mir“

Hallo Tobias,

dann ist die Schreibrate von /dev/zero schlechter wie im Vergleich auf einem mit eingeschalteter Kompression.

Könnte das daran liegen, dass man Nullen recht gut komprimieren kann, sodass mit Kompression deutlich weniger Daten auf der Platte landen? Hast Du mal /dev/urandom probiert?

Beste Grüße

Jörg

Ich weiß, aber ich habe nur jetzt die Möglichkeit, das neue System zu testen, bevor es produktiv geht… und da ich mich nicht darauf verlassen kann, dass ein „Professioneller“ (wie ZFS rocks - Mensch :)) das System geschraubt hat, sondern ich…

Jetzt mache ich das doch mal öffentlich:

dort könnt ihr nachlesen, dass ich die Schreibraten mal getestet habe, nur um zu schauen, ob die System „wie sie sind“ irgendwie sinnvoll vergleichbare Geschwindigkeiten liefern - und ich bin enttäuscht.

Ich fasse es mal in einer Tabelle hier zusammen:

Server Serverhost (SSD) Serverhost2 (SSD) Serverhost2 (Raid) Serverhost1 (neu)
hdparm read direct-I/O ~400 ~250 ~450 ~3000
/dev/zero 329 44 30 ~2000
/dev/urandom 94 80 ~60 62
/dev/urandom + Direct-I/O 77 46 21 62
/dev/urandom + D-I/O + Sync-I/O 60 28 15 60
  • Dabei ist Serverhost (alt) ein Rechner von 2012 mit LVM aus SSDs (ohne RAID) von Samsung, ubuntu 20.04
  • Serverhost2 (alt) in ein Rechner von 2010 mit Hardwareraid und parallel noch mit 1 SSD… hier hängen die Werte beim Hardwareraid tatsächlich stark davon ab, was noch auf dem System an Schreibvorgängen anhängig sind…
  • serverhost1 (neu) in besagter neuer Server mit 5 NVMe in Raid 5 (Raidz1 ZFS)

Fazit: Bei den rohen Werten klingt alles schön und gut, aber bei den 60 MB/Sek bin ich schon enttäuscht: eine einzelne SSD ist genauso schnell…

Hi alle,

ich fange mit ZFS mal wieder von vorne an…
Nutzt jemand von euch, dass ZFS auch ein Dateisystem ist in der linuxmuster.net?

  1. Wenn ich mir die Anleitung Proxmox vorbereiten — linuxmuster.net 7.1 Dokumentation anschaue und LVM durch ZFS ersetze, dann nutze ich für die virtuellen Maschinen weiterhin VirtioSCSI, was im System dann als ein /dev/sdX erscheint und dort formatiere ich das z.B. mit ext4.

  2. Geht das auch irgendwie besser, oder ist das schon gut genug? Ich dachte, ZFS ist auch ein DAteisystem, so dass ich ein dataset bzw. zvol direkt mounten kann - und daher dachte ich, man kann es auch direkt im virtuellen Gast verwenden, aber : Pass ZFS zvol/dataset to a guest VM | Proxmox Support Forum scheint mich eines besseren zu belehren.

  3. Es gibt ja auch noch VirtIO Block, zumindest in der Proxmox GUI, und es gibt Hinweise, dass ein Block-device langsamer ist als SCSI… d.h. nutzt jemand von euch nicht wie in der doku von linuxmuster.net ?

2022-03-03_12-23

Hintergrund ist natürlich, dass ich Performanz an verschiedene virtuelle Hosts durchreichen will. Wenn ich dabei nur die Storage-Funktionalität von ZFS nutzen soll/kann (eben das, was vorher LVM machte + mehr), ist mir das Recht. Dachte eben es gibt auch den Vorteil, das ZFS ein Dateisystem ist.

VG, Tobias

Absurderweise ergeben Ad-Hoc-Tests an vda, sdb und sdc (No write cache)
das es fast keinen Unterschied macht, zumindest im Durchsatz und der Latenz:

vda:
  write: IOPS=1558, BW=6235KiB/s (6384kB/s)(365MiB/60001msec); 0 zone resets
sdb:
  write: IOPS=1545, BW=6184KiB/s (6332kB/s)(362MiB/60001msec); 0 zone resets
sdc (no write cache):
  write: IOPS=1650, BW=6600KiB/s (6758kB/s)(387MiB/60001msec); 0 zone resets

vermutlich isses auf den ersten Blick egal.

Hallo Tobias,

@Michael, @gpeter von denen ich auf Anhieb weiß.

Beste Grüße

Thorsten

Hallo Zusammen
Jow, dass wir -sogar grundsätzlich und bei zahlreichen installationen- auf ZFS setzten ist richtig.
@Tobias ich verstehe aber die Frage nicht richtig. Meinst du ZFS beim Host oder beim Gast, also der Virtuellen Maschine?
ZFS sollte nur auf dem Hostsystem verwendet werden! Also direkt auf das „Blech“ .
ZFS sollte nicht bei virtuellen Maschinen verwendet werden.
(LVM ist übrigens bei VMs eigentlich auch nicht wirklich hilfreich, wir versuchen LVM bei den VMs zu vermeiden)
Bei den VMs bzw. den Gästen würde ich die default Einstellung weitestgehend belassen, zB ext4 bei Linux, NTFS bei Windows.
ZFS ist grundsätzlich langsamer als ein aktueller Raid Controller, daher für mich nur ZFS + Raid 10 ODER noch besser ZFS und SSDs + Raid1 und genügend RAM.
Wie gesagt den Rest der Frage habe ich nicht genau verstanden.

Grüße,
gerd

Hallo,

ja, ich nutze auf dem Proxmox Host auch ZFS auf einem Raid 10 mit 4 SSD. Allerdings habe ich die Blocksize von 8k auf 64k gesetzt. Das war performanter bei meinen Schreibtests.

Viele Grüße
Klaus

Übrigens:
Proxmox bring bei den aktuellen Versionen eine sehr gute offline Hilfe mit. Immer im direkten Kontext zu den jeweiligen Optionen der GUI Assistenten. Immer über das jeweilige Hilfe Icon zu erreichen …
Da bekommt man auch am ehesten konkret Verbesserungen und Vorschlage mit.
ZB: was vor Jahren mit best pracitce bezüglich „VirtIO Block“ galt, gilt heute nicht mehr, wie du oben schon schreibst, ist das jetzt „VirtIO SCSI“, siehe aktuelle Offline Hilfe des GUI Assistenten.
Hier ist das komplette, immer aktuelle Proxmox Handbuch hinterlegt, absolut genial!

gerd

Hi @gpeter ,

danke für deinen Input.

Ich meinte damit, ZFS ist auch ein Dateisystem, nicht nur ein Storage-Verwaltungssystem. Ihr und ich verwende somit ZFS nur als Storagesystem äquivalent zu RAID + LVM oder ähnlichem. Aber nicht noch zusätzlich, dass ich direkt darauf Dateien ablegen kann, wenn ich ein Datenset eben mounte. Stattdessen wird an einen Client „nur“ ein block-device (oder scsi-device) weitergegeben, dass dann noch(mal?) mit einem Dateisystem versehen wird.
Meine Frage hat sich damit erübrigt: ihr nutzt das auch nicht noch als Dateisystem.

Weil du LVM erwähnst:

Ja, verstehe, daher ist es auch (m.E.) sinnvoll, das LVM des linuxmuster-Servers aufzulösen und auf verschiedene block-devices zu verteilen, die je eine zvol/dataset (bin da noch nicht so fit sprachlich) zugeordnet sind.

VG, Tobias

hallo @garblixa,

danke für den Input: Ich habe jetzt 5 NVMe mit RAIDz1 eingerichtet. Die Blocksize habe ich nicht in Betracht gezogen. Mal sehn, ob ich das jetzt nochmal von vorne beginne…

Wenn einer von euch da (bezahlbarer) Profi ist, der mir sagen kann, wie ich meine 5 NVMe ohne HW-RaidController, mit ZFS (oder ohne) tune, damit ich spürbar bessere Ergebnisse erhalte, dann würde ich gerne die Schule Geld ausgeben lassen. Ich habe bei der Hardware immerhin einiges gespart.
Schreibt mir doch per PM,

Tobias

Hallo Tobias,

eine ZFS Spezialisten zu finden dürfte schwierig sein. Es spielen viele Komponenten zusammen, welche die Performance beinflussen und letztendlich müsste man die Performance verschiedener Einstellungen vor dem Produktivbetrieb durch Benchmarks messen.
https://martin.heiland.io/2018/02/23/zfs-tuning/

Die Blocksize des zvol bestimmst Du, wenn Du eine „Platte“ für die VM erzeugst. Also keine Notwendigkeit das RAIDz1 neu zu erstellen.

Wenn Du schon eine VM mit einer Linuxmuster Installation mit dem zvol hast, dann kannst Du die volblocksize nachträglich nicht ändern. Du kannst aber ein neues zvol mit identischer Größe und neuer volblocksize erstellen und das alte zvol mit dd conv=sparse auf das neue kopieren.
https://blog.bm-server.de/2020/09/proxmox-block-size-von-virtuellem-datentraeger-nachtraeglich-aendern/

Viele Grüße
Klaus

1 „Gefällt mir“

Hi.
Ich habe das mit unserer v7-Installation damals so gemacht, dass ich auf das voreingestellte LVM verzichtet habe und die Partitionen direkt in 5 unterschiedliche ZVOLs gesteckt habe. Dazu habe ich unter Proxmox „einfach“ 5 weitere virt. Platten angelegt, mit einer Notfall-DVD gebootet und das LVM erkennen lassen. Anschließend alles rüber … ich weiß nicht mehr, ob ich dazu dd oder clonezilla oder noch etwas anderes verwendet habe. Aber seitdem ist unsere Installation vom LVM berfreit und alles läuft direkt auf ZFS … zu einzelnen Stolpersteinen kann ich nicht mehr viel sagen aber am Ende hat’s jedenfalls funktioniert und läuft seitdem stabil. Die Partitionen kann ich jetzt bei Bedarf natürlich direkt unter Proxmox und mit ZFS-Bordmitteln vergrößern. Das LVM kam mir schon bei der Installation in Kombination mit ZFS unnötig vor. Ob das auch unnötig Performance zieht, kann ich aber nicht wirklich beurteilen…
Viele Grüße,
Michael

1 „Gefällt mir“

Doch. Allein die Standard Proxmox Installation legt doch unter /var/lib/vz/ ein „file level directory“ an, auf denen du auf Dateiebene arbeiten kannst.
Sowas kannst du auch jedezeit selbst erledigen, wenn du zB nicht möchtest dass der Kram, der Standardmäßig unter /var/lib/vz/ auf den kostbaren SSDs landet sondern auf einem zusätzlichen HDD-Raid:

 zfs create r5pool/vz
 zfs set mountpoint=/var/lib/vz-r5pool r5pool/vz

Grüß dich Michael!

So ähnlich, auf jeden Fall mit gleichem Ergebniss, machen wir das auch

Grüße,
Gerd

1 „Gefällt mir“