Hallo Zusammen,
ich möchte mich an dieser Stelle bzgl. ZFS einklinken und ein Problem mit meiner aktuellen unRAID Konfiguration schildern.
Aktuelles System:
Mainboard: Gigabyte x570 Gaming X
CPU: Ryzen 5 2600
RAM: DDR4 3200 64GB
Hard Disks: 2 x 4 TB WD NAS RED (HDD), 1 x 6 TB WD NAS RED (HDD), 1 x 2 TB Toshiba (HDD), 1 x 240 GB SanDisk (SSD),
NVMe´s: 2 x 1 TB Samsung Evo 970 Plus, 1 x 500 GB Samsung Evo 970 Plus, 1 x 125 GB SanDisk
QNAP Extention TR-004: 4 x 5 TB WD Red (HDD) RAID 5
Mein Ziel:
Ich möchte gerne diverse Windows VMs auf den 1 TB NVMe´s am Besten im "Spiegel" auslagern. Für Medien, Backups etc. habe ich mir die 2 x 4 TB ebenfalls im "Spiegel" vorgestellt. Die 125 GB NVMe und die 240 GB SSD möchte ich einer Gaming VM durchschalten. Die 500 GB NVMe habe ich als "Cache" geplant.
In meiner kostenlosen Testphase habe ich festgestellt, dass dieses Vorhaben so nicht umsetzbar ist.
Nachdem ich das Array mit der 6 TB als Parität und den genannten Festplatten als Disks erstellt habe, musste ich feststellen, dass die Übertragungsgeschwindigkeit der NVMe´s (bis zu 3700 MBit/s R/W) auf die Übertragungsgeschwindigkeit der HDDs (bis zu 154 MBit/s) begrenzt wird, ob die NVMe´s jeweils über PCIe installiert sind.
Nun bin ich vergangene Tage auf ZFS gestoßen und habe dementsprechend meine unRAID Konfiguration so angepasst, dass die 6 TB als Parität weiterhin dient und die 2 x 4 TB und die 2 TB als Disks dienen. Für die 2 x 4TB Platten habe ich ein Pool mit der 240GB SSD als Cache erstellt. Wenn ich nun Daten auf dieses Pool verschiebe, dann habe ich dank der Übertragungsrate der SSD eine Netzwerkübertragung von ~ 100 MB/s, aber wenn die Daten von dem Cache-Pool auf das eigentliche Pool verschoben werden, dann liegt die Übertragungsgeschwindigkeit maximal bei ~ 23MB/s, da die HDD(s) des Pools R/W ausführen, um auch auf die Parität zu schreiben.
Für die Virtualisierungen habe ich ein ZFS-Pool mit beiden 1 TB NVMe´s im "Mirror" erstellt und dort die vdisks der VMs ausgelagert. Die 500 GB sowie die 125 GB NVMe´s sind testweise nur als "unassigned Device" gemounted. Bei einer Datenübertragung zwischen den NVMe´s (egal welcher) erreiche ich trotzdem nur eine maximale Übertragungsrate von 176 MB/s. Wie bereits weiter oben schon erwähnt, sind die NVMe´s als PCIe eingebunden. Die 500GB über den M.2 PCIe Slot und die 2 x 1 TB über die QNAP Card als PCIe x16.
Hinzu kommt, dass bei einer Datenübertragung zwischen den NVMe´s und dem ZFS-Pool mein Arbeitsspeicher von 3% auf 56% steigt. Ich habe gelesen, dass ZFS ARC standardmäßig 50% des gesamten RAMs allokiert, aber man das mit entsprechenden Optionen in einer /zfs.conf angepassen kann, was für mich wichtig ist, da viele VMs (5 Windows Server 2016, Gaming VM, Workstation) ausgeführt werden.
Da es mir leider nicht gelungen ist, das QNAP OS auf dem System mit allen Disks zu installieren, bin ich wieder zu unRAID als Plus Member zurück gekehrt, nachdem ich wie gesagt das mit ZFS gelesen habe.
Endlich zu meiner Frage:
Habt ihr vielleicht einen Vorschlag, wie ich die Leistung meines Arrays, die des ZFS´s und die Auslastung meines RAMs optimal konfigurieren kann? Die Daten der Pools werden redundant auf der QNAP Extention gespeichert. unRaid war Aufgrund des Pass Through´s der GPU an eine VM interessant, aber aufgrund der aktuellen Leistung bedauere ich, Geld für das Plus Paket ausgegeben zu haben.
Von daher bin ich für jede Hilfe und jeden Vorschlag zur Verbesserung dankbar und danke euch vorab für Eure Zeit.
Viele Grüße