SSD als Write Cache moeglich?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

SSD als Write Cache moeglich?

Beitrag von Knogle » 12.09.2017 19:15:02

Ich gruess euch liebe Community.

Ich habe nun nach viel Aufwand, eine 10GBit/s Verbindung zwischen meinem Debian Server, und meinem Windows/Debian Client aufgebaut.
Auf meinem Client ist eine M.2 SSD verbaut, und ein RAID 0 aus 4x 2TB Platten.
Auf meinem Server ist ein RAID 5 aus nun 8 Platten verbaut (eventuell RAID 10 sinvoller?), und auch dort habe ich nun eine 256GB SM961 M.2 SSD drin welche ich aus einem anderen PC habe.
Nun meine Frage, oder mein Anliegen.

Der RAID 5 ist ziemlich lahm, die 256GB SSD aber ziemlich flott mit bis zu 1800MB/s Schreiben.
Ich wuerde gerne, dass wenn ich Daten uebertrage mit beispielsweise 400MB/s (da wo mein 4x 2TB RAID 0 limitiert), die Uebertragungsrate zum Server auhc ne Weile lang konstant bei diesem 400MB/s bleibt.
Ist es daher irgendwie moeglich dass die Daten auf der M.2 SSD zwischengespeichert werden, also als Cache, und dann auf den RAID 5 geschrieben werden?

Aktuell nutze ich ZFS, waere cool wenn es wegen gaebe um die Schreibrate zumindest ne Weile lang auf 500MB/s zu halten, also so dass nicht der Server der limitierende Faktor ist.

Colttt
Beiträge: 2983
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: SSD als Write Cache moeglich?

Beitrag von Colttt » 12.09.2017 19:34:18

Na klar geht das, sogar super einfach mit ZFS

zpool add <poolname> log /dev/<ssd>

Aber wenn dir die ssd abraucht hast du mit hoher Wahrscheinlichkeit Datenverlust.
Wir sind gerade dabei ein HA-ZFS aufzubauen..
Debian-Nutzer :D

ZABBIX Certified Specialist

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 12.09.2017 19:49:43

HA-ZFS? Was ist denn das? :D
Datenverlust, zumindest bei der Uebertragung waere nicht schlimm.
Ich verschiebe keine Daten, sondern kopiere nur, und loesche erst nach erfolgreicher Uebertragung

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von r4pt0r » 14.09.2017 15:57:08

Ein paar Hinweise zu SLOG:

- ZFS betreibt immer ein intent-log; dieses wird auf allen providern verteilt und ist i.d.r. bereits sehr performant (in relation zur r/w performance des pools)
- LOG bzw ein SLOG device macht nur nur bei sync-writes (DBs) sinn, alles andere wird von ZFS sowieso bereits per cache (->RAM) beschleunigt.
- Wenn ZFS performanter werden soll gilt nach wie vor: erst so viel RAM verbauen wie irgend möglich, dann über SLOG(oder L2ARC) auf ("langsamen") SSDs gedanken machen.
- Caches (egal ob SLOG oder L2ARC) benötigen ebenfalls RAM - es macht also noch weniger Sinn, in einem System mit ohnehin schon zu wenig RAM auch noch log-/cache-vdevs in einem pool zu verwenden.
- ZFS beginnt auch bei vorhandenem und "schnellem" (NVMe/PCIe SSD) SLOG zu throtteln wenn der pool nicht schnell genug ist und der cache mit einem zu großen delta anwächst. Dadurch wird (auch) die Scheibgeschwindigkeit normalisiert.


KA was mit RAID5 gemeint ist - sowas gibt es bei ZFS nicht. Ich vermute mal es ist RAID-Z gemeint (das nichts mit RAID5 zu tun hat...)
Alle Platten in ein RAID-Z1/2 Verbund zu stecken ist schlicht die Falsche pool-konfiguration wenn man aus so "wenig" Platten eine möglichst hohe r/w Leistung erzielen will - 2x 4-disk RAID-Z1 wäre hier sinnvoller, evtl auch noch eine weitere HDD und ein pool mit 3x3RAID-Z1 vdevs.

Problematisch bei fast allen Schreibvorgängen unter linux (auf externe/entfernte ziele) ist das undurchsichtige caching - die Schreibgeschwindigkeit ist oft völlig an der realität vorbei, da direkt in den RAM geschrieben wird (vgl kopieren von images per dd auf USB - angeblich mehrere gb/s bei ausreichend RAM, ein anschließendes "sync" dauert dann aber ggf mehrere minuten!).

Die tatsächliche Performance eines pools per "daten rüberkopieren" zu messen ist ohnehin relativ sinnfrei, da hier auch noch etliche andere Faktoren eine (große) Rolle spielen. Wird z.B. SMB genutzt ist 10GigE schlicht rausgeworfenes Geld - SMB hat ja bereits Probleme in 1GigE Netzen vernünftig zu skalieren...
Für maximale Performance über Netzwerk ist NFS nach wie vor erste Wahl; ansonsten iSCSI mit zvols als targets.

Ansonsten wären weitere Infos hilfreich:
- mit welcher sektorengröße/ashift wurde der pool angelegt? (sektorengröße HDDs?) recordsize? Wenn der Pool mit 512b sektoren auf 4k Laufwerken angelegt wurde erstickt das System komplett durch write-amplification...
- Welche HDDs und HBAs werden verwendet? Mit SATA geht die r/w performance komplett in den Keller bei konkurrierendem I/O, da diese nur einen queue haben und sowieso (deutlich!) langsamer als SAS sind.
- wie wird übers Netzwerk übertragen?

Wenn konstant hohe Streamleistung gefordert wird, wirst du nicht an einem 'all-flash' pool vorbeikommen - NVMe oder PCIe. Mechanische Platten sind hier einfach nicht schnell genug (~140-150MB/s max...)

Colttt hat geschrieben: ↑ zum Beitrag ↑
12.09.2017 19:34:18
Aber wenn dir die ssd abraucht hast du mit hoher Wahrscheinlichkeit Datenverlust.
Da er ein RAID0 mit 4 Platten betreibt ist ihm Redundanz und Datensicherheit wohl sowieso völlig egal...

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 27.09.2017 14:18:13

So ich melde mich auch mal wieder zurück.

Habe nun meinen Server auf Sockel 1366 verkauft, und mir nun einen kleineren NAS gebaut, jedoch mit der gleichen Problematik: Dem Write Cache.

16GB RAM habe ich nun drinnen, bei 2-4TB (von 6-8TB) die ich belegen will.


Nun habe ich ein System mit 4x 2TB Festplatten in einem RAID 0 auf einem LSI 8708EM2 256MB Controller.
Backups der wichtigen Daten werden jede Nacht auf eine extra Platte gemacht welche dann geunmountet wird.

RAID 5 ist mir zwar lieber als RAID 0, jedoch gibt es kein Konfigurationstool zum Controller unter Debian, und das ganze über das WebBIOS zu machen dauert ungelogen Stunden, da nach jeder Aktion das Fenster 30 Sekunden neu aufgebaut wird.

Habe dann ein 7,2TB grosses Volume gemacht, und mit "zpool create pool0 /dev/sdX" auf dem RAID 0 den pool erstellt.
Aktuell habe ich eine maximale Übertragungsrate von 480MB/s über die Punkt-zu-Punkt Verbindung, wäre prima wenn ich mit der M.2 SSDs als Write-Cache meine SSD beim Read, im PC permanent auslasten könnte.

Übertragen wird mit 25m OM2 Kabel und 2x Mellanox Connect X2 Karten mit Intel 10G Transceivern.

Sonst nutze ich meist FTP

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: SSD als Write Cache moeglich?

Beitrag von Lord_Carlos » 27.09.2017 14:29:30

Hast du das versucht was Beitrag #2 vorschlaegt?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 27.09.2017 14:30:32

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
27.09.2017 14:29:30
Hast du das versucht was Beitrag #2 vorschlaegt?
Genau das habe ich probiert.
Jedoch habe ich keinen Performancevorteil gemerkt :/ Habe zwar 3-4 Sekunden die 500MB/s gehabt, dann gings aber wieder auf normal runter.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: SSD als Write Cache moeglich?

Beitrag von Lord_Carlos » 27.09.2017 14:32:25

Welche Geschwindigkeit bekommst du wenn du via Netzwerk direkt auf die m.2 schreibst?

Ich kenne mich leider nicht mit zfs aus. Habe bei mir ein read/write cache mittels lvm gemacht.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 27.09.2017 14:40:25

Ja mit ZFS kenne ich mich leider auch nicht so aus, habe es bisher nur unter FreeBSD viel verwendet.
Ja wenn ich direkt auf die M.2 SSD im Server schreibe, von der SSD meines PCs aus erreiche ich knapp 600MB/s.

Wenn ich jedoch von meiner RAM Disk aus auf die M.2 SSD im Server schreibe dann sinds ca. 960MB/s, und das sogar sehr sehr lange Zeit

Die 4x 2TB Festplatten machen beim sequentiellen Schreiben ohne Cache jedoch maximal 650MB/s, werde daher ueberlegen ob ein Cache wirklich sinn macht.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von r4pt0r » 29.09.2017 10:47:32

Knogle hat geschrieben: ↑ zum Beitrag ↑
27.09.2017 14:40:25
Die 4x 2TB Festplatten machen beim sequentiellen Schreiben ohne Cache jedoch maximal 650MB/s, werde daher ueberlegen ob ein Cache wirklich sinn macht.
Welche Würfel verwendest du um auf solche Zahlen zu kommen?
650MB/s mit 4 HDDs ist schlicht und ergreifend Unsinn...

Da du nen RAID-Controller vewendest (der in einem ZFS-setup NICHTS verloren hat!) hast du nicht den durchsatz der platten sondern des Caches auf dem Controller gemessen - der anscheinend ziemlich mies ist...


Aber wenn du lokal ständig sowieso ausreichend hohe Durchsatzraten "misst" - warum hast du dann noch nie den Durchsatz der 10GbE Verbindung ohne auf irgendwelche Dateisysteme zu schreiben gemessen? Dafür reicht schon netcat, ansonstten gibts auch z.b. netperf...
Nur weil 10GbE NICs verbaut sind, heißt das nicht dass auch sofort line-speed erreicht wird. Das kernelrouting von linux, speziell wenn auch noch firewalling konfiguriert ist, ist ziemlich lahm. Der Linux-Netzwerkstack ist leider in einigen teilen noch immer eher für langsame und verlustbehaftete Verbindungen optimiert; da wirds teilweise schon schwierig überhaupt 1GbE zu sättigen - für 10GbE muss i.d.r. einiges manuell optimiert werden.
Mit Windows hab ich diesbezüglich auf "bare metal" keinerlei Erfahrungen - aber die Performance auf virtio interfaces zwischen VMs ist ziemlich grottig. Von Windows würde ich da also (wie immer) keine Wunder erwarten...

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 29.09.2017 13:09:38

Wie sollte ich deiner Ansicht nach vorgehen Raptor?

Also ich habe aktuell einen Windows Client an dem Debian Server.

Schreiben kann mich vom Windows Client auf Debian Server mit bis zu 1100MB/s uebers Netzwerk, Lesen jedoch, also vom Debian Server zum Windows Server, nur mit ca. 500MB/s, und das bei der M.2 SSD!!!
Ist das eventuell das beschriebene Konfigurationsproblem von dir?

Da WriteCache wohl keinen Sinn macht aufgrund der langsamen SSD in meinem Windows System (wegen SATA) habe ich nun die M.2 SSD als Systemplatte fuer Debian genommen.

Hier mal einige Werte:

Konstantes Schreiben von Windows aus mit insgesamt 550-600MB/s kein Problem, auch bei sehr grossen Datenmengen.
Bild

Und auf 450MB/s komme ich so ziemlich immer, da meine SSD im Windows System nicht mehr mitmacht

Bild

Hier von Windows aus auf die M.2 SSD
Es kommt mir so vor, als wuerden Uebertragungen vom Debian System auf meinen Windows Client nur halb so schnell sein wie umgekehrt.
Bild

Hier nochmal Links, der RAID Verbund im Debian Server, Rechts meine SSD unter Windows

Bild

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von r4pt0r » 29.09.2017 13:41:24

"Von Windows Daten kopieren" ist kein Benchmark. Damit kannst du höchstens rausbekommen, wann die caches volllaufen... 1100MB/s mit SMB sind völlig unrealistisch bei einem THEORETISCHEN maximalen Durchsatz von 1250MB/s ohne jeglichen Protokolloverhead!

Wie gesagt: mach erstmal benchmarks der tatsächlichen Durchsatzrate zwischen den systemen. nc + mbuffer oder netperf sind hier geeignet. Dann kommen benchmarks (lokal!) der Dateisysteme.

Vermutlich ist hier schon einer/mehrere Werte deutlich unter dem was Windows behauptet (bzw es misst halt was es in seine caches schiebt...). Die Hardware ist bei solchen geschwindigkeiten auch entscheidend - eine M.2 die nur per SATA oder mit nur einer PCIe-Lane angebunden ist, wird da ggf auch schnell zum Flaschenhals...

Wenn nach diesen Benchmarks jetzt bei Anwendungsfall X die Performance deutlich unter dem jeweils niedrigeren Wert der beiden baselines für Netzwerk und FS liegt, ist das Problem eher an der Anwendung/Protokoll zu suchen.
Bei Dateitransfers kommt auch noch die miese Performance von SMB beim Dateien erstellen dazu - werden zigtausende kleine Dateien übertragen erstickt das protokoll am overhead und der Transfer krebst mit wenigen kb/s vor sich hin. Das kann ich hier regelmäßig beim installieren/übertragen von Fahrzeughandbüchern beobachten - ca 250t-350t einzelne html-dateien mit insgesamt nur ~300MB größe benötigen locker 30-45min; als tar nur wenige sekunden...
Also nochmal: mach erstmal _richtige_ benchmarks von Netzwerk und Dateisystem, dann siehst du ob/wo wirklich probleme sind (und ich würde Wetten, der Flaschenhals liegt nicht bei ZFS...)

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: SSD als Write Cache moeglich?

Beitrag von Knogle » 02.12.2017 21:15:54

Ich gruesse dich, danke nochmal fuer die Antwort!

Ich habe jetzt mal mit netperf den Durchsatz getestet, wenn ich richtig liege, ist das Ergebnis in MBit/s, gemessen wurde "9383.20", also knapp 10GBit/s ?
Wo kann der Engpass dann liegen? Habe jetzt nochmal unter Windows das Benchmark Tool fuer Datentraeger durchlaufen lassen, und komme nun beim Lesen vom Server nurnoch auf 40MB/s, beim Schreiben aber auf 600MB/s. Oder kann das an Windows oder dem Windows Treiber liegen, oder eventuell auch Samba?
Unter Debian nutze ich zum Zugriff auf meinem Server immer SFTP, ist das Performancetechnisch sinvoll, oder gibt es da andere Alternativen?

Von Client zu Server und umgekehrt habe ich mal netperf laufen lassen, das Ergebnis ist identisch.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: SSD als Write Cache moeglich?

Beitrag von Lord_Carlos » 02.12.2017 22:16:41

sftp ist recht CPU intensiv. Man kann rumfummel so das eine pseudo Verschluesselung benutzt wird. Aber .. eh. Irgendwas in die Richtung von ssh -T -c arcfour -o Compression=no -x
Ich kann mit smb/samba auch mit aelterer Hardware ohne Probleme 1Gbit ausnutzten (~112MB/s), ohne Anpassung der Konfig. Viele aus diesem Forum haben vor 10 Jahren aber andere Erfahrung gemacht.

Ich glaube viele schwoeren auf NFS, selber habe ich es noch nicht getestet.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: SSD als Write Cache moeglich?

Beitrag von ThorstenS » 03.12.2017 09:17:38

nach wheezy wurde arcfour als cipher nicht mehr angeboten. Habe ich früher auch gerne benutzt.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: SSD als Write Cache moeglich?

Beitrag von wanne » 03.12.2017 15:14:27

nach wheezy wurde arcfour als cipher nicht mehr angeboten. Habe ich früher auch gerne benutzt.
Auf aktueller Hardware ist der AES sowieso schneller.
Für maximale Performance über Netzwerk ist NFS nach wie vor erste Wahl; ansonsten iSCSI mit zvols als targets.
?
Langsamer wie NFS ist doch nur noch SMB. iSCSI mit einem XFS ist immer um Größenordnungen schneller. Hoffe doch, dass die zvols da nicht all zu viel kaputt machen.
Auf meinem Server ist ein RAID 5 aus nun 8 Platten verbaut (eventuell RAID 10 sinvoller?),
RAID 10 ist natürlich deutlich schneller. Braucht aber halt auch fast den doppelten Platz.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
MSfree
Beiträge: 10684
Registriert: 25.09.2007 19:59:30

Re: SSD als Write Cache moeglich?

Beitrag von MSfree » 03.12.2017 16:06:35

wanne hat geschrieben: ↑ zum Beitrag ↑
03.12.2017 15:14:27
Langsamer wie NFS ist doch nur noch SMB. iSCSI mit einem XFS ist immer um Größenordnungen schneller.
Du solltest mal auf deine Wortwahl achten.

Ich bekomme über NFS unbd SMB reproduierbare Datenraten von über 100MByte/s über Gigabit-LAN. Da limitieren einerseits die Festplatten und andererseits das LAN selbst.

Da du ja von Größenordnungen schneller sprichst:
Eine Größenordnung entspricht einer Dezimalstelle, also Faktor 10, Plural sind es also Faktor 100 und mehr. Wie du das über eine ohnehin gesättigte Gigabit-Laitung schicken willst, mußt du mal ganz genau beschreiben. Und 10-100GBit Netzwerktechnik, die noch mehr Geschwindigkeit als GBit bringen würde, ist im SOHO-Bereich bis hin zu mittleren Unternehmen überhaupt nicht vorhanden.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: SSD als Write Cache moeglich?

Beitrag von wanne » 04.12.2017 08:21:12

Klugscheiß:
MSfree hat geschrieben:Eine Größenordnung entspricht einer Dezimalstelle, also Faktor 10, Plural sind es also Faktor 100 und mehr.
wikipedia hat geschrieben:Rechnen der Faktor, der notwendig ist, um in der jeweiligen Zahlendarstellung einen Wert um eine Stelle zu vergrößern […] Dargestellt wird sie in der Exponentialdarstellung (Gleitkommazahl).
In der Informatik defakto immer dem Faktor 2.
MSfree hat geschrieben: ↑ zum Beitrag ↑
03.12.2017 16:06:35
Ich bekomme über NFS unbd SMB reproduierbare Datenraten von über 100MByte/s über Gigabit-LAN.
Wunderbar. Reproduzierbar, wenn du den mittleren Teil einer Datei zu exakt einem Rechner überträgst. Die frage ist dann nur: Warum nicht einfach ein primitives ncat für diesen Anwendungszweck. Jetzt probier mal 10000 4kiB Dateien von 100 Rechnern aus. Dann hast du etwas, dass der Realität etwas näher kommt und da hast du dann locker den genannten Faktor 4 selbst bei GiB-Ethernet.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten