Vor- und Nachteile von Software Parity-RAID (zB RAID5)

8

Mir wurde kürzlich über einige Probleme bei Parity-RAIDs ohne nichtflüchtigen Cache berichtet. Teurere HW-Controller verfügen über batteriebetriebene Caches, um Schreibvorgänge bei Stromausfall abzuschließen. Einige Leute sagen, dass ein solcher Fehler, möglicherweise in Kombination mit einem verschlechterten Array, Ihr gesamtes Dateisystem zerstören kann. Andere behaupten, dass diese Probleme veraltet und / oder falsch sind .

Leider gibt niemand harte Referenzen und weder eine Suche nach md RAID und nichtflüchtigem Cache noch nach Bitmap-Caching gibt verlässliche Antworten darauf, ob md-RAID5 ratsam ist oder nicht.

Irgendwelche Informationen dazu?

user773568
quelle
1
Linuxs mdraid hat ein Journal, das zumindest im Falle eines plötzlichen Stopps (dh eines Systemabsturzes oder des sofortigen Herunterfahrens aller Festplatten) oder im Fall von RAID-1 sicher ist. Ich weiß nicht, ob sein RAID- [56] mit allen Formen des abgestuften Herunterfahrens zurechtkommt.
Gilles 'SO - hör auf böse zu sein'
2
@ Gilles, es gibt kein Journal, aber eine optionale Bitmap mit Schreibabsicht. Dies beschleunigt jedoch nur den Prozess der Resynchronisation, wenn das System wieder hochgefahren wird, da identifiziert wird, welche Bereiche resynchronisiert werden müssen und welche Bereiche übersprungen werden können.
Psusi
@psusi Ich ging zurück und überprüfte, was ich vor ein paar Monaten recherchiert hatte . Soweit ich weiß, beschleunigt die Bitmap mit Schreibabsicht (kein Journal, mein Fehler) mehr als nur die Resynchronisation. Sie zeigt an, welche der Komponenten einen fehlerhaften Block haben. Dies reicht also aus, um die Blockkonsistenz auf RAID-1 sicherzustellen, aber nicht unter RAID-5 (wo möglicherweise nicht genügend Festplatten im alten und im neuen Status vorhanden sind, um einen der beiden Status wiederherzustellen).
Gilles 'SO - hör auf böse zu sein'
1
@ Gilles Ich bin mir nicht sicher, was du mit "Bock-Konsistenz" meinst. Sie scheinen auf dem gesamten Streifen aufgehängt zu sein, der sich entweder im Zustand vor dem Beginn des Schreibvorgangs oder im Zustand danach befindet. Dies ist niemals garantiert und wird wahrscheinlich nicht der Fall sein, wenn die Stromversorgung mitten im Schreibvorgang ausfällt. Es liegt am Dateisystem, dies genauso zu handhaben wie auf einer einzelnen Festplatte. mit dem Tagebuch.
Psusi

Antworten:

4

Ich gehe davon aus, dass das Software-RAID von Linux genauso zuverlässig ist wie eine Hardware-RAID-Karte ohne BBU und mit aktiviertem Write-Back-Caching. Schließlich befinden sich nicht festgeschriebene Daten in einem Software-RAID-System im Puffer-Cache des Kernels, bei dem es sich um eine Form des Rückschreib-Cachings ohne Batterie-Backup handelt.

Da Sie mit jeder Hardware-RAID-5-Karte, die ich jemals verwendet habe, das Caching beim Zurückschreiben ohne BBU aktivieren können, kann Software-RAID-5 für Personen mit einer bestimmten Risikotoleranz problemlos funktionieren.

ObWarStory:

Trotzdem habe ich persönlich einen ernsthaften Datenverlust erlebt, weil keine BBU auf einer RAID-5-Karte installiert war, obwohl das Rückschreib-Caching aktiviert war. (Auch keine USV. Schrei mich nicht an, nicht meinen Anruf.)

Mein Chef rief mich in Panik an, während ich im Urlaub war, weil eines unserer Produktionssysteme nach einem Stromausfall nicht wieder hochfuhr. Er hatte keine Dinge mehr, um es zu versuchen. Ich musste an den Straßenrand fahren, den Laptop herausziehen, das WLAN-Tethering auf meinem Telefon sshin das betroffene System einschalten und es reparieren, während meine Familie mit mir am Straßenrand saß, bis ich fertig war Wiederherstellen einer roached Datenbanktabelle aus der Sicherung. (Wir waren damals ungefähr eine Meile davon entfernt, den Empfang von Zellen zu verlieren.)

Sagen Sie mir also: Wie viel würden Sie jetzt für eine RAID-Karte + BBU bezahlen ?

Warren Young
quelle
Richtig - Ich habe meinen Kommentar gelöscht. Aber ein Überfall ohne BBU sollte durchschreiben, nicht wahr? Dies ist zumindest das, was die PERC-Controller tun, wenn die Batterie lernt und den Schwellenwert unterschreitet.
Nils
Ja, ohne BBU oder mit einer toten BBU schreibt die RAID-Karte immer noch Daten. Was es nicht tut, ist sich daran zu erinnern, was sich im Schreibpuffer befand, wenn der Server nicht mit Strom versorgt wurde. Da RAID von der Konsistenz zwischen den redundanten Bits abhängt, wird es verwirrt, wenn es inkonsistent wird. Ein Stromausfall während RAID-Schreibvorgängen kann daher zu einer Beschädigung des RAID führen, da der Controller gezwungen ist, eine der zwei oder mehr Kopien der Daten auszuwählen, ohne zu wissen, welche korrekt ist.
Warren Young
3

Nur ein Warnhinweis: RAID-5/6-Schreibvorgänge benötigen eine erhebliche CPU-Zeit, während Ihr Array beeinträchtigt wird. Wenn Ihr Server bereits vollständig ausgelastet ist, wenn eine Festplatte ausfällt, kann dies zu einem Abgrund der Reaktionslosigkeit führen. Ein solches Problem tritt bei einem Hardware-RAID-Controller nicht auf. Ich würde daher dringend davon abraten, Software RAID-5/6 auf einem Produktionsserver zu verwenden. Für eine Workstation oder einen leicht ausgelasteten Server ist dies jedoch in Ordnung.

Wazoox
quelle
3

SW RAID hat einen Fehlermodus. Wenn der Server nach der Hälfte des Schreibvorgangs ausfällt, kann ein beschädigter Streifen angezeigt werden. Ein HW-RAID-Controller mit einer BBU ist nicht allzu teuer und behält schmutzige Blöcke bei, bis Sie die Festplatten neu starten können.

Die BBU im Cache garantiert keine Schreibvorgänge bei einem Stromausfall (dh sie versorgt die Festplatten nicht mit Strom). Der Cache wird einige Tage lang mit Strom versorgt, bis Sie die Festplatten neu starten können. Dann spült der Controller alle verschmutzten Puffer auf die Festplatte.

Einige Hinweise zu SW vs. HW RAID-5

  1. Schreibvorgänge auf einem SW RAID-5-Volume können langsam sein, wenn das Durchschreib-Caching mit blockierenden E / A verwendet wird, da der Aufruf erst zurückkehrt, wenn alle E / A abgeschlossen sind. Ein HW-RAID-Controller mit BBWC kann dies erheblich optimieren, sodass Sie eine wesentlich bessere Leistung erzielen.

  2. Als ich das letzte Mal nachgesehen habe, konnten Sie keine direkten E / A-Vorgänge (dh DMA ohne Kopie) auf einem SW-RAID-Volume ausführen. Dies hat sich möglicherweise geändert und ist nur für Anwendungen wie Datenbankmanager relevant, die unformatierte Partitionen verwenden.

  3. Ein moderner SAS-RAID-Controller kann Daten mit 1 GB / s oder mehr von einem Festplattenarray abrufen oder übertragen, insbesondere wenn er mit einer großen Streifengröße (z. B. 256 KB) formatiert ist. Ich habe sogar einen älteren Adaptec ASR-2200 mit Geschwindigkeiten verglichen , die darauf hinwiesen , dass beide SCSI-Kanäle mit 600 MB / s + insgesamt (10 x 15 KB Festplatten) bei sehr geringer CPU-Auslastung des Host-Computers ziemlich gesättigt waren. Ich bin mir nicht sicher, ob Sie das aus Software-RAID-5 ohne viel CPU-Auslastung herausholen können, wenn überhaupt, selbst auf einem modernen Computer. Vielleicht könntest du das schnell lesen.

  4. Die Konfiguration zum Starten eines HW-RAID-Volumes ist einfach - das RAID-Volume ist für das Betriebssystem transparent.

Ein Low-End-RAID-Controller eines Tier-1-Anbieters wie adaptec ist zu Einzelhandelspreisen nicht so teuer und kann für Erdnüsse bei ebay gekauft werden. Denken Sie jedoch daran, dass Sie sich beim Kauf aus zweiter Hand an Tier-1-Anbieter halten und sicherstellen müssen, dass Sie das Modell kennen und die Verfügbarkeit von Treibern auf deren Website überprüfen.

Bearbeiten: Stellen Sie anhand des Kommentars von @ psusi sicher, dass Sie keinen fakeraid-Controller (transparentes SW-RAID im Treiber versteckt) erhalten, aber die meisten Angebote der größeren Namen (Adaptec, 3Ware oder LSI) sind keine fakeraid-Einheiten. Alles, was eine BBU aufnehmen kann, wird nicht gefälscht.

ConcernedOfTunbridgeWells
quelle
Wenn die Stromversorgung während eines Schreibvorgangs ausfällt, wird ein nicht synchronisierter Streifen angezeigt, der nicht beschädigt ist. Ein nicht synchronisierter Streifen bedeutet lediglich, dass die Parität nicht auf dem neuesten Stand ist. Wenn das Array bereitgestellt wird, muss die Parität aktualisiert werden. Auch die "Raid" -Controller, die für Erdnüsse erhältlich sind, werden oft gefälscht. Sie haben BIOS-ROM-Erweiterungen und Windows-Treiber, die den RAID in Software durchführen.
Psusi
@psusi - Die meisten ASR-2200-Controller, die ich vor einigen Jahren gekauft habe, waren unter 100 USD und sie sind Pukka-HW-RAID-Controller. Ich glaube nicht, dass Adaptec überhaupt fakeraid-Controller herstellt. Sie können Adaptec-, 3Ware- oder LSI SAS-RAID-Controller mit 4 oder 8 Ports für ein paar hundert Dollar ganz einfach bei ebay kaufen.
ConcernedOfTunbridgeWells
Ich würde nicht ein paar hundert Dollar für ein gebrauchtes Produkt aus einer unbekannten Quelle "Pennies" nennen; das bedeutet mehr in der Größenordnung von 50 bis 100 US-Dollar für ein neues Produkt. Geräte in dieser Klasse sind normalerweise fakeraid.
Psusi
@psusi - Sie versuchen, ein Argument zurückzuweisen, das ich nie vorgebracht habe. Ich habe das Wort "Pennies" überhaupt nicht verwendet. Bitte greifen Sie nicht auf Strohmann-Argumente zurück - die Beispiele, die ich verwendet habe, sind keine gefälschten Controller.
ConcernedOfTunbridgeWells
1

Wenn Sie Daten im Cache, aber noch nicht auf der Festplatte haben und die Stromversorgung ausfällt, verschwinden die Daten und Ihre Festplatte befindet sich höchstwahrscheinlich in einem inkonsistenten Zustand. Die Wahrscheinlichkeit dafür ist nicht sehr hoch, es sei denn, Sie haben ein System, das ständig schreibt, aber ich möchte meine Daten trotzdem nicht auf Wahrscheinlichkeitsspiele setzen.

Eine interessante Wendung wäre, ein Hauptdateisystem auf RAID5 / 6 zu erstellen, aber ein Journal auf einem regulären Laufwerk abzulegen, sodass die Daten zuerst auf dem regulären Laufwerk gespeichert werden. Die Leistung würde wahrscheinlich an den Crapper gehen, da Sie auf die Schreibgeschwindigkeit eines einzelnen Laufwerks beschränkt wären, aber die Zuverlässigkeit würde steigen. Ich denke also, in einer Situation, in der Ihre Schreibleistung nicht wichtig ist, aber Ihre Leseleistung, könnte das gut funktionieren.

Oder Sie könnten einfach weitere 100 $ ausgeben und die Karte mit BBU oder einer kleinen USV erhalten und all diese Komplikationen insgesamt vermeiden;)

Marcin
quelle
Was halten Sie von einem Tagebuch auf einer schnellen SSD?
user773568
Das würde es tun, aber in diesem Moment zahlen Sie in erster Linie mehr als einen anständigen Controller;) Auch die Geschwindigkeit steigt, aber die Zuverlässigkeit sinkt, weil die meisten SSDs sehr, sehr schnell sterben.
Marcin
1
@Marcin worauf basiert das? Sie scheinen keine kürzere Lebensdauer zu haben, und ich habe seit über einem Jahr eine und habe nur 5% der Schreibzyklen verwendet.
Psusi
@MarcinWell Wenn Sie Zuverlässigkeit sagen, ist das Sicherheit oder Verfügbarkeit? Ich hatte nicht erwartet, dass der Verlust meines Tagebuchs die Gesamtdaten gefährdet. Macht es? Auf jeden Fall habe ich vor, OS und Swap aus Rausch- und Energiespargründen auf eine kleinere SSD zu setzen. Das RAID kann auf diese Weise in den Ruhezustand versetzt werden.
user773568
MLC-SSDs weisen eine Erfolgsgeschichte von Zuverlässigkeitsproblemen auf. SLC-Einheiten sind viel zuverlässiger, aber auch viel teurer. Ein Whitepaper über die Zuverlässigkeit von SSDs finden Sie hier
ConcernedOfTunbridgeWells
1

Linux mdadm Software Raid ist genauso zuverlässig wie ein Hardware Raid mit batteriegepuffertem Cache. Es gibt keine Probleme mit plötzlichem Stromausfall, außer denen, die auch für plötzlichen Stromausfall auf einer einzelnen Festplatte gelten.

Wenn das System nach einem Stromausfall wieder hochfährt, wird das Array neu synchronisiert. Dies bedeutet im Grunde, dass die Parität neu berechnet wird, um mit den Daten übereinzustimmen, die vor dem Stromausfall geschrieben wurden. Es dauert einige Zeit, aber wirklich keine große Sache. Die Resynchronisationszeit kann durch Aktivieren der Bitmap mit Schreibabsicht erheblich reduziert werden.

psusi
quelle
1
Das klingt etwas optimistisch. Wie kann eine reine Softwarelösung so zuverlässig sein wie ein batteriegepufferter Cache?
user773568
1
Es gibt schlimme Dinge, die mit einem RAID-Array passieren können, die nicht mit einer einzelnen Festplatte passieren können. Mit einer einzelnen Festplatte befindet sich jeder Sektor entweder im alten oder im neuen Zustand. Was ist beispielsweise mit RAID-5 über 4 + 1-Festplatten, wenn sich Sektor 42 der Festplatten 1 und 2 im alten Zustand und Sektor 42 der Festplatten 3, 4 und 5 im neuen Zustand befinden? Weder der alte noch der neue Zustand sind wiederherstellbar. Ich weiß nicht, ob Linux Maßnahmen ergreift, um dies zu vermeiden, und darum geht es bei der Frage.
Gilles 'SO - hör auf böse zu sein'
@ user773568 umm ... Ich habe gerade erklärt, wie?
Psusi
@ Gilles Sie haben gerade den gleichen Fall wie die einzelne Festplatte angepasst. Einige Sektoren befinden sich im alten Zustand, andere im neuen Zustand. Es spielt keine Rolle, auf welcher Festplatte sie sich befinden. Dateisysteme verarbeiten unvollständige Schreibvorgänge während eines Absturzes mit dem Journal.
Psusi
@psusi Nein: Bei einer einzelnen Festplatte befindet sich jeder Sektor entweder im neuen oder im alten Zustand. Wenn der Treiber bei mehreren Festplatten den naiven Ansatz verwendet, den Sektor auf jeder Festplatte zu überschreiben, ohne Informationen an anderer Stelle zu speichern, kann ein Sektor, der sich in einem Übergangszustand befindet (alter Zustand auf einigen Festplatten, neuer Zustand auf anderen), überhaupt nicht wiederhergestellt werden. Der Fehler kann möglicherweise erkannt werden (wenn Sie Glück haben: Die Parität könnte versehentlich übereinstimmen), kann jedoch nicht korrigiert werden.
Gilles 'SO - hör auf böse zu sein'
1

In diesem Blog wird das Problem mit RAID5 und die Lösung durch ZFS RAIDZ erläutert .

Die wichtigsten Punkte sind:

RAID-5 (und andere Daten- / Paritätsschemata wie RAID-4, RAID-6, gerade-ungerade und zeilendiagonale Parität) haben das RAID-Versprechen aufgrund eines bekannten schwerwiegenden Fehlers nie ganz eingehalten - und können es auch nicht als RAID-5-Schreibloch. Wenn Sie die Daten in einem RAID-Streifen aktualisieren, müssen Sie auch die Parität aktualisieren, damit alle Festplatten XOR auf Null sind. Mit dieser Gleichung können Sie Daten rekonstruieren, wenn eine Festplatte ausfällt. Das Problem ist, dass es keine Möglichkeit gibt, zwei oder mehr Festplatten atomar zu aktualisieren, sodass RAID-Streifen bei einem Absturz oder Stromausfall beschädigt werden können.

und

RAID-Z ist ein Daten- / Paritätsschema wie RAID-5, verwendet jedoch die dynamische Streifenbreite. Jeder Block ist ein eigener RAID-Z-Streifen, unabhängig von der Blockgröße. Dies bedeutet, dass jeder RAID-Z-Schreibvorgang ein Vollstreifen-Schreibvorgang ist. In Kombination mit der Copy-on-Write-Transaktionssemantik von ZFS wird das RAID-Schreibloch vollständig beseitigt.

jlliagre
quelle