Cache für Raid - Fileserver

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Cache für Raid - Fileserver

Beitrag von debiankoe » 25.01.2020 15:28:02

Guten Tag,

Ich bin auf der suche nach einer Möglichkeit eine SSD als Cache für ein Raid6 zu verwenden.
Das Raid soll schlussendlich als Datenarchiv dienen. Wie ihr euch sicher vorstellen könnt ist Raid6 nicht gerade performant was schreibvorgänge betrifft.
Daher habe ich mir gedacht ich könnte eine SSD als Cache verwenden, bin auch schnell auf möglichkeiten gestossen, wie z.b bcache, dm-cache

Ich habe nun bcache (writeback) wie folgt getestet (ohne Raid).
HDD - 200GB - SATA 1 - als "langsames Raid"
SSD - 240GB - SATA 2 - als Cache
1 GBit/s Ethernet

Meist kopiere ich grosse Dateien (1-20GB).
Somit habe ich mal das Debian iso von 4GB kopiert. Die ersten 20s ist alles in ordnung ich kann mit 110MB/s übertragen.
Bei ca 40% bricht die übertragungsrate ein und ich habe nur noch ca 50MB/s.
  • Warum wird nicht konstant mit 110MB/s übertragen ?
  • Der cache ist 200GB gross. Warum wird dieser nicht ausgenützt ?
  • Warum bricht die Übertragungsrate nach ca 40% so massiv ein ?
  • Kennt jemand eine alternative (Programm) wie ich einen solchen Cache realisieren könnte ?
Ich möchte im das die Daten beim übertragen auf die SSD geschrieben werden.
Mir ist relativ egal wann die daten auf das Raid geschreiben werden. Es muss nicht direkt wärend dem Übertragen auf die SSD bereits aufs Raid geschrieben werden, wäre aber natürlich schön.

Mfg Koe

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Cache für Raid - Fileserver

Beitrag von hec_tech » 25.01.2020 16:38:04

Wieviele Disken hast du überhaupt in den Raids?

debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Re: Cache für Raid - Fileserver

Beitrag von debiankoe » 25.01.2020 16:54:34

2x 1TB SSD - Software Raid 1 - System
2x 240GB SSD - Software Raid 1 - Cache
16x 2TB - Hardware Raid 6 - Data

inwiefern ist das relevant für den Cache ?

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: Cache für Raid - Fileserver

Beitrag von Lord_Carlos » 25.01.2020 17:40:03

Ich habe mal lvm cache benutzt. Wenn auf deim raid6 eh schon lvm ist, isst das ganze recht schmerzfrei (mdadm -> dmcrypt -> lvm -> filesystem). Ich habe aber nie getestet wie (gut) der Algorithmus funktioniert.

Code: Alles auswählen

sudo vgextend redTwo /dev/sde2
sudo lvcreate --type cache -L 45G -n redTwoCachePool --cachemode writeback redTwo/redTwoMain /dev/sde2
und um zu gucken ob es funktioniert:

Code: Alles auswählen

sudo lvs -a redTwo
sudo lvs -o cache_read_hits,cache_read_misses,cache_total_blocks,cache_used_blocks redTwo/redTwoMain 
https://www.systutorials.com/docs/linux/man/7-lvmcache/
A second cache mode is "writeback". Writeback delays writing data blocks from the cache pool back to the origin LV. This mode will increase performance, but the loss of a device associated with the cache pool LV can result in lost data.
Warum brauchst du ueberhaupt ein cache bei 1 Gbit/s?

Code: Alles auswählen

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

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Cache für Raid - Fileserver

Beitrag von hec_tech » 25.01.2020 17:44:09

SSD Cache mag für die Latency interessant sein aber da sowieso eine Limitierung durch Gigabit gegeben ist macht es keinen Sinn. Gigabit können 16 SATA Disken auch liefern. Die Anzahl der Disken ist deswegen Interessant da man von der Anzahl der Disken auf die erreichbaren IOs und dadurch auch auf den Durchsatz schließen kann.

Wie voll ist das Raid? Sind ausreichend freie zusammenhängende Blöcke vorhanden? Wenn nicht sind das keine seq IOs sondern random IOs. Nachdem zuerst mal die Geschwindigkeit Gigabit entspricht gehe ich davon aus er Schreibt die Daten in den Cache des HW Raid Controllers. Ich gehe mal davon aus der ist etwa 2GB. Sobald der Cache mehr oder weniger voll ist fängt er an den Cache zu destagen. Klingt für mich nach einer zu schwachen CPU. Die Disken sollten dies können.

Wie sieht die Auslastung des HW Raid Controllers aus? Heutzutage würde ich von HW Raid Controllern Abstand halten und SW Raid einsetzen da meist die Controller der Flaschenhals sind.

debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Re: Cache für Raid - Fileserver

Beitrag von debiankoe » 25.01.2020 18:10:05

hec_tech hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 17:44:09
Wie sieht die Auslastung des HW Raid Controllers aus? Heutzutage würde ich von HW Raid Controllern Abstand halten und SW Raid einsetzen da meist die Controller der Flaschenhals sind.
Besten Dank für die Informationen.
Wie sieht es bei folgendem setup aus ?

3x 2TB - Hardware Raid 5 - Data

Der Raidcontroller ist richtig schlecht, ich habe dies getestet, beim kopieren eines 5GB iso komme ich auf 5-15MB/s, sobald der 256MB cache voll ist.
Dies ist richtig unterirdisch. Daher bin ich auf die Idee eines SSD caches gekommen. Da ich meine 1GBit/s ausnützen möchte wäre hier ein SSD-Write-Cache die ideale lösung.

Ich werde lvm-cache noch testen. Habe länger recherchiert und bei den Benchmarks hat lvm-cache sogut wie kein performance gewinn erzielt. Dazu habe ich keine erfahrung mit lvm und lvm erhöt die komplexität um eine weitere Schicht was ich wenn möglich nicht wollte.

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Cache für Raid - Fileserver

Beitrag von hec_tech » 25.01.2020 18:25:35

Statt 3x 2TB RAID5 würde ich gleich 4x 2TB RAID10 machen.

Allerdings würde ich eher ZFS oder sonst etwas verwenden. Hast du überhaupt einen Ersatz für den Raid Controller? Denk dran was passiert wenn der Raid Controller defekt wird.

debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Re: Cache für Raid - Fileserver

Beitrag von debiankoe » 25.01.2020 19:15:33

hec_tech hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 18:25:35
Statt 3x 2TB RAID5 würde ich gleich 4x 2TB RAID10 machen.

Allerdings würde ich eher ZFS oder sonst etwas verwenden. Hast du überhaupt einen Ersatz für den Raid Controller? Denk dran was passiert wenn der Raid Controller defekt wird.
Ja habe mehrere solcher Controller. Diese sind billig, das ist halt der Vorteil.
Dazu hätte ich halt kleine SSDs die ich verwenden könnte.
Wenn ich die write-performance mit den SSDs steigern könnte wäre ich zufrieden.
Naja habe mir auch schon HW-Controller mit SSD-Cache unterstützung angeschaut. Diese sind halt dementsprechend teuer.

Wenn man jetzt unbedingt RAID5 verwenden möchte ?

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: Cache für Raid - Fileserver

Beitrag von Lord_Carlos » 25.01.2020 19:20:58

debiankoe hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 19:15:33
Wenn man jetzt unbedingt RAID5 verwenden möchte ?
Vielleicht einfach software raid mit ZFS oder mdadm machen?

Code: Alles auswählen

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

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Cache für Raid - Fileserver

Beitrag von hec_tech » 25.01.2020 21:47:02

Also unbedingt Raid5 halte ich mal für sehr interessant. Hat dies irgendwelche Gründe oder einfach nur weil es immer so war?

Nur weil du einen Cache hast wird das Diskbackend nicht schneller. Wenn du einen Schreibcache mit SSDs haben willst brauchst du mindestens Raid1. Da sind aktive Daten auf der SSD wenn die ausfällt hast du ein Problem. Bei einem Read Cache wäre das egal.

debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Re: Cache für Raid - Fileserver

Beitrag von debiankoe » 27.01.2020 11:16:23

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 19:20:58
Vielleicht einfach software raid mit ZFS oder mdadm machen?
Danke für den Hinweis mit ZFS, habe ich mir gar nicht überlegt.
Dann kann ich nen normalen HBA Controller verwenden und benötige keinen Raidcontroller.
Ich möchte das die parity auf dem Controller berechnet wird wenn ich schon nen Raidcontroller habe.
hec_tech hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 21:47:02
Also unbedingt Raid5 halte ich mal für sehr interessant. Hat dies irgendwelche Gründe oder einfach nur weil es immer so war?

Nur weil du einen Cache hast wird das Diskbackend nicht schneller. Wenn du einen Schreibcache mit SSDs haben willst brauchst du mindestens Raid1. Da sind aktive Daten auf der SSD wenn die ausfällt hast du ein Problem. Bei einem Read Cache wäre das egal.
Naja ich möchte einfach wissen ob es möglich ist einen Schreibcache zu realiseren.
Das ist mein Grund warum ich "unbedingt Raid5" angegeben habe.
Das Diskbackend ist mir realtiv egal wenn ich einen Schreibcache per SSD realisieren könnte.
Alle meine Files die ich übertrage würden ja "schnell" auf meinen Schreibcache geschrieben.
Danach kümmert sich der Server darum das die Datei auf das "langsame" Raid geschrieben wird.
Wenn der Schreibcache voll ist würde natürlich die Übertragungsrate stark sinken.

Deine Argumentation ist natürlich korrekt.
Den Schreibcache würde ich im Raid1 gespiegelt betreiben.
Dann wäre eine zusätzliche HD im Raid10 billiger.

PS:
hec_tech hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 17:44:09
SSD Cache mag für die Latency interessant sein aber da sowieso eine Limitierung durch Gigabit gegeben ist macht es keinen Sinn. Gigabit können 16 SATA Disken auch liefern.
Die Anzahl der Disken ist deswegen Interessant da man von der Anzahl der Disken auf die erreichbaren IOs und dadurch auch auf den Durchsatz schließen kann.
Mit der Anzahl der Disks kann ich auf den Druchsatz schliessen. Im einem Raid10 ist dies ja kein Problem.
Aber wie berechne ich den Druchsatz eines Raid5 mit 3 Disks?
Da hier das berechnen der parity dazu kommt lässt sich dies nicht einfach berechnen, oder schon ?

Vielen Dank für die Hilfe

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: Cache für Raid - Fileserver

Beitrag von Lord_Carlos » 27.01.2020 12:31:03

Ich will dir nichts ausreden, ich hatte ja selber ne cache SSD.
Aber jeder moderne Desktop oder Server CPU in den letzten 10 Jahren sollte kein Problem haben parity fuer 1 GBit/s zu berechnen. Weit aus besser als die 5-15MB/s von deinem Controller.

Ich benutzte meine raid Karte als "dumme" HBA Karte + Software raid. Einfach weil es so flexibler ist.

Hast du das mit LVM schon versucht?

Code: Alles auswählen

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

slu
Beiträge: 2136
Registriert: 23.02.2005 23:58:47

Re: Cache für Raid - Fileserver

Beitrag von slu » 27.01.2020 13:03:58

debiankoe hat geschrieben: ↑ zum Beitrag ↑
25.01.2020 15:28:02
Bei ca 40% bricht die übertragungsrate ein und ich habe nur noch ca 50MB/s.
Kenn ich gut, genau das war auch mein Problem:
viewtopic.php?f=13&t=175955&p=1226353#p1226314
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

debiankoe
Beiträge: 42
Registriert: 21.10.2011 19:23:28

Re: Cache für Raid - Fileserver

Beitrag von debiankoe » 05.02.2020 22:31:45

Sorry für die späte Antwort.
Vielen Dank für eure Antworten.

Nein Ich habe das mit LVM nicht mehr versucht.
Es wird schlichtweg zu kompliziert für mich da ich mich mit lvm noch gar nicht beschäftigt habe, dazu gehe ich nicht davon aus das die performance besser sein wird.

Gruss Koe

Antworten