Bei ZFS definiert die Recordsize die Größe jedes Schreibvorganges. Mit der Recordsize kann unter Umständen die Performance und Stabilität erhöht werden. Aber hier ganz wichtig, was für Daten liegen in eurem ZPool?

Eine schnelle Kurzerklärung, wenn Ihr eine Datei schreibt oder verändert mit der Größe 80Kb, dann wird im ZFS der ganze Block gelesen und auch der ganze Block geschrieben.

Erklärung zur ZFS Recordsize und Beispiele

Wenn ich richtig liege, liegt der Default Wert für den Recordsize bei 128Kb. Wenn man mal seine Daten analysiert, dann merkt man, dass dieser Wert so ziemlich richtig ist für alles.

Also wenn Ihr euer Recordsize optimieren wollt, müsst Ihr wissen was für Daten in eurem Dataset liegen. Liegen dort große Dateien wie Musik, Bilder oder Filme, dann empfehle ich euch eine Recordsize von 1M.

Für normale Dateiablage, virtuelle Maschinen und Betriebssysteme ist der Default Wert von 128k keine schlechte Idee. Ich sag mal so, es kann auch sein das 64k auch eine gute Option ist.

Bei viele kleinen Schreiboperationen wie z.B. Datenbanken oder IoT, wird überall 16k Empfohlen.

Ihr müsst also euren Mittelwert der zu schreibenden Daten ermitteln. Immer daran denken, die Recordsize wird ebenfalls dazu benutzt eure Daten zu komprimieren und deduplizieren.

Meine Empfehlungen zum Recordsize

Recordsize von 16k – 32k

  • Datenbanken wie z.B. MySQL
  • Alles was mit IoT zu tun hat
  • Logging Tools
  • Monitoring Tools, CheckMK, Observium und so
  • Webserver

Recordsize größer 256k

  • Ablage von Bildern, Videos, Musik
  • Backups
  • ISOs und Images
  • Alles mit vielen großen Daten

Recordsize von 64k – 256k

  • Virtuelle Umgebungen
  • Normale Dokumentenablage
  • FreeNAS, SMB/CIFS, NFS
  • Für Betriebssysteme

Die für Proxmox beste ZFS Recordsize ist übrigens 128k. Das deckt so gut wie alles ab.

Übrigens, wer denkt mit dem Wert seine Performance super krass zu steigern, liegt nicht ganz richtig. Es optimiert und steigert auch die Performance, aber nicht so exorbitant.