Tri-Mode ist ja ganz nett, aber der 9440 hat keinen Flash Backed Write Cache?? Ohne den ist das Controller-RAID nicht garantiert konsistent.ich habe im Server Broadcom MegaRAID 9440-8i SAS-SATA-NVMe verbaut.
Was ist der beste Weg? RAID über Controller oder über ZFS (software basierende RAID) einzurichten.
Das stimmt nicht. Das RAID ist immer konsistent, nur ohne Cache ist es deutlich langsamer. RAID 5 erreicht dann nur ca. 35 MB/s. Weil nur wenn alle Disks ihre Daten tatsächlich geschrieben haben gibt es den ACK an das OS zurück.Tri-Mode ist ja ganz nett, aber der 9440 hat keinen Flash Backed Write Cache?? Ohne den ist das Controller-RAID nicht garantiert konsistent.
Und was nützt das, wenn das OS an der Stelle schon tot ist?Das stimmt nicht. Das RAID ist immer konsistent, nur ohne Cache ist es deutlich langsamer. RAID 5 erreicht dann nur ca. 35 MB/s. Weil nur wenn alle Disks ihre Daten tatsächlich geschrieben haben gibt es den ACK an das OS zurück.
Genau das was du beschreibst soll ein Controller ja verhindern. Ich arbeite seit mehr als 20 Jahren mit RAID Controllern und inkonsistente Daten gab es nur wenn HDDs schleichend kaputt gegangen sind und Daten nicht mehr lesbar sind.Und was nützt das, wenn das OS an der Stelle schon tot ist?
Ein Controller mit FBWC übernimmt die Daten vom OS und meldet sofort Erfolg. Dann schreibt er die Daten auf die Member des RAIDs, und erst wenn die alle Erfolg gemeldet haben (Daten im Write Cache bei SSDs mit PLP, sonst tatsächlich geschrieben) wird der Cache-Eintrag wieder gelöscht. Damit bleiben die Daten im Cache und werden ins Flash geschrieben, falls der Strom ausfällt während noch nicht alle bestätigt haben. Wenn der Strom dann wieder da ist, wird der Schreibvorgang automatisch fortgesetzt, damit sind die Laufwerke wieder konsistent - das Array als Ganzes ist immer konsistent, solange nicht der Controller selbst abraucht, während noch Daten drin sind.
Wenn Du keinen gepufferten Schreibcache hast und Dir nach dem Schreiben auf einen Teil der RAID-Member der Saft ausgeht, hast Du nach dem Wiedereinschalten ein inkonsistentes RAID, weil der Controller nicht mehr weiß, was er auf die übrigen Laufwerke schreiben wollte. PLP auf den einzelnen Laufwerken nützt Dir dabei nur insofern was, daß das "data in transit"-Zeitfenster verkürzt wird, kann aber keine Daten retten, die auf diesem Laufwerk noch gar nicht angekommen sind.
Deswegen sollte man Hardware-RAID immer nur mit gepuffertem Schreibcache verwenden. Sonst kann man auch gleich Softraid nehmen.
zfs behilft sich, indem es die Daten einfach mehrmals schreibt, aber double-buffering belastet die SSD und die Performance.
Und was bedeutet ein nicht abgeschlossener Write? In diesem Fall, daß ein Teil der Disks schon die neuen Daten hat und ein Teil noch die alten. Also ein nicht konsistentes RAID. Dieses Problem ist nur behebbar, wenn die Instanz, die die Daten auf die Disks aufteilt, selbst persistenten Speicher hat und ein Replay machen kann, wenn Power wieder da ist. Wenn der Controller keinen gesicherten Speicher hat, GEHT das nicht, weil der Host nicht weiß, wo der Controller gerade hingeschrieben hat.Auch wenn eine oder mehrere Komponenten kaputt gehen, stört das nicht, weil ein Write nur abgeschlossen ist wenn alle Disks OK sagen oder der BatterieCache.
Nicht mit PLP. Dafür ist das ja da, um zu garantieren, daß alles, was im Cache der Disks angekommen ist, auch im permanenten storage landet.Deshalb darf man auch nie den Cache auf den Disks aktivieren. Das ist immer tödlich, auch bei ZFS.
Du denkst zu weit und Cache orientiert.Und was bedeutet ein nicht abgeschlossener Write? In diesem Fall, daß ein Teil der Disks schon die neuen Daten hat und ein Teil noch die alten. Also ein nicht konsistentes RAID. Dieses Problem ist nur behebbar, wenn die Instanz, die die Daten auf die Disks aufteilt, selbst persistenten Speicher hat und ein Replay machen kann, wenn Power wieder da ist. Wenn der Controller keinen gesicherten Speicher hat, GEHT das nicht, weil der Host nicht weiß, wo der Controller gerade hingeschrieben hat.
PLP gibts aber nur bei SSDs. Viele Leute nutzen RAID Controller aber für HDDs.Nicht mit PLP. Dafür ist das ja da, um zu garantieren, daß alles, was im Cache der Disks angekommen ist, auch im permanenten storage landet.
Du denkst nicht weit genug.Du denkst zu weit und Cache orientiert.
Und woher soll das RAID bei der crash recovery wissen, daß die Blöcke Müll sind und nicht wichtig, wenn das OS an der Stelle schon tot war und nicht mehr überschreiben kann? Der ganze Block ist dann kaputt. Selbst wenn das RAID eine dirty map hat, ist da immer noch das Problem, daß in dem Block schon teilweise Daten gestanden haben können, weil das fs nur Lücken aufgefüllt hat. Die sind dann weg. (Nebenbei auch der Grund, warum tail merging so gefährlich ist ...)Wenn im Write das System crasht, haben eventuell ein paar Disks schon mehr Bytes als andere geschrieben, aber diese Blöcke sind einfach Garbage und werden überschrieben weil das RAID den Write nicht abgeschlossen hatte und somit auch kein Ack an das schreibende OS gesendet wurde.
Ja, aber die Aussage "nie" bzw. "immer tödlich" war mir da etwas zu allgemein. Sowas führt dann dazu, daß Leute den Cache wirklich immer abschalten, auch wenn sie das gar nicht müßten, und damit die SSD tatsächlich noch mehr belasten, weil die dann die Zugriffe nicht optimieren kann.PLP gibts aber nur bei SSDs. Viele Leute nutzen RAID Controller aber für HDDs.
Dann lese dich mal in die RAID Grundlagen ein, früher als ich mit sowas angefangen habe gab es keinen Cache.Du denkst nicht weit genug.
Und woher soll das RAID bei der crash recovery wissen, daß die Blöcke Müll sind und nicht wichtig, wenn das OS an der Stelle schon tot war und nicht mehr überschreiben kann? Der ganze Block ist dann kaputt. Selbst wenn das RAID eine dirty map hat, ist da immer noch das Problem, daß in dem Block schon teilweise Daten gestanden haben können, weil das fs nur Lücken aufgefüllt hat. Die sind dann weg. (Nebenbei auch der Grund, warum tail merging so gefährlich ist ...)
Ok, da gehe ich mit.Ja, aber die Aussage "nie" bzw. "immer tödlich" war mir da etwas zu allgemein. Sowas führt dann dazu, daß Leute den Cache wirklich immer abschalten, auch wenn sie das gar nicht müßten, und damit die SSD tatsächlich noch mehr belasten, weil die dann die Zugriffe nicht optimieren kann.