Wofür ist eine (Raid-Controller-) BBU?

13

Ich frage mich, was der Zweck einer BBU ist. Mein erstes Verständnis war, dass es dem Cache ermöglicht, die Daten während eines Stromausfalls auf die Disc zu schreiben. Einige Spezifikationen besagen jedoch, dass eine BBU ihre Daten bis zu 72 Stunden lang speichern kann. Ich würde erwarten, dass die Daten innerhalb von Millisekunden auf die Disc geschrieben werden (vorausgesetzt, die Disc hat auch noch Strom).

Soll eine BBU also nicht nur den Cache schützen, sondern auch die gesamte Disc für einige Sekunden? Wäre das nicht noch sicherer, weil die Cache-Daten auf die Disc geschrieben werden, anstatt im Cache zu sein und wieder auf Strom zu warten? Nach etwa einer Sekunde könnte die Disc heruntergefahren werden.

Tanascius
quelle
Obwohl RAID-Batterien die tatsächlichen Laufwerke nicht mit Strom versorgen, ähnelt etwas in unserer Welt dem, was Sie sich ursprünglich vorgestellt hatten: Einige SSDs der Server-Klasse verfügen über "Superkondensatoren", die Backup-Strom bereitstellen, um zwischengespeicherte Schreibvorgänge während der Millisekunden nach einem Stromausfall auszuführen.
Skyhawk

Antworten:

17

Die Festplatten werden nicht mit Strom versorgt, sondern die Daten bleiben (in diesem Fall) bis zu 72 Stunden im Cache, bis Sie die Maschine wieder in Betrieb nehmen. Wenn Sie die Maschine wieder einschalten, wird der Inhalt des Caches wieder auf die Festplatten geschrieben.

Sie schützt lediglich vor einem Stromausfall. Wenn (aus irgendeinem Grund) der Computer die Stromversorgung verliert, ohne die Daten sauber auf die Festplatte zu übertragen, bleibt der Cache-Inhalt durch den Akku erhalten, bis Sie den Computer neu starten können.

Es ist keine USV für Festplatten, da sich die Festplatten in einem externen Festplatten-Array oder sogar in einem anderen Stromkreis befinden könnten. Sogar eine USV könnte ausfallen.

Betroffen vonTunbridgeWells
quelle
1
Der Unterschied zu einer USV für Festplatten besteht also darin, dass sie für ein Szenario ausgelegt ist, in dem sich die Festplatten nicht im selben Stromkreis befinden. In allen anderen Fällen (Controller und Festplatten in einem Stromkreis) wäre eine USV überlegen? Ich würde immer noch bevorzugen, dass die letzten Befehle auf die Festplatte geschrieben werden, anstatt bei einem Stromausfall im Cache zu warten.
Tanascius
Kaufen Sie also auch eine USV für Ihren Server! Eine BBU hat nicht genug Strom, um ein Array von Laufwerken zu betreiben. Es gibt Ihnen ein ausreichend großes Fenster, in dem Sie die Stromversorgung wiederherstellen und die Änderungen speichern können. Die meisten Ausfälle sind sehr kurz und die meisten Leute brauchen keine zusätzlichen Kosten für eine USV für nicht lebenswichtige Maschinen.
James Ryan
1
Die BBU speichert die Daten nur im Cache, bis Sie den Computer neu starten. Der Controller weiß, was auf die Festplatte gespült wurde (die Festplatte meldet, dass der Vorgang abgeschlossen wurde). Alles, was nicht auf die Festplatte gespült wurde, bleibt erhalten, bis der Computer neu gestartet wird.
ConcernedOfTunbridgeWells
13

Das funktioniert so:

Die meisten Betriebssysteme haben einen Systemaufruf, der ein sogenanntes "synchrones Schreiben" ermöglicht. Dies bedeutet, dass während eines Schreibvorgangs, wenn ein Schreibvorgang abgeschlossen ist, garantiert wird, dass er auf die Festplatte geschrieben wurde.

Synchrones Schreiben wird daher nicht zwischengespeichert. Es blockiert die Anwendung, bis sie abgeschlossen ist. Diese Art von Operation ist offensichtlich langsamer als das Schreiben im Cache, wodurch die Daten im Betriebssystemspeicher gehalten werden, bis die Festplatte im Leerlauf ist und die Daten dann geschrieben werden.

Einige wichtige Softwareprodukte, wie z. B. Datenbanksoftware, führen synchrone Schreibvorgänge für wichtige Daten durch, da ein halbgeschriebenes Update im Falle eines Stromausfalls die Integrität der Datenbank beeinträchtigen kann.

RAID-Controller sind mit RAID-5-Schreibvorgängen bekanntermaßen langsam, sodass dies zu einem Problem wird, wenn Ihre Anwendungssoftware viele synchrone Schreibvorgänge verwendet. Aus diesem Grund sind RAID-5-Controller mit eigenen Caches ausgestattet.

Was der RAID-Controller tut, ist, dass er die Daten stattdessen in seinen Cache schreibt und dem Betriebssystem LIES und mitteilt, dass er die Daten auf die Festplatte festgeschrieben hat, während sich die Daten tatsächlich noch im RAID-Cache befinden.

Was aber, wenn die Stromversorgung unterbrochen wurde, während sich die Daten noch im Puffer des RAID-Controllers befanden? Sie hätten halbgeschriebene und wahrscheinlich inkonsistente Daten auf Ihren Datenträgern.

Sie können sagen, dass dieses Verhalten den Zweck eines synchronen Schreibvorgangs außer Kraft setzt. Wenn es in Ordnung wäre, einen zwischengespeicherten Schreibvorgang durchzuführen, würde die App-Software nicht in erster Linie nach einem Synchronisierungsschreibvorgang fragen.

Der Kompromiss besteht darin, dass der RAID-Controller immer noch das Betriebssystem belastet, für das die Daten auf die Festplatte übertragen wurden. Um diese kritischen Daten im Falle eines Stromausfalls zu schützen, verfügt der RAID-Controller über eine Batterie, die den Cache für einige Zeit am Leben hält, bis die Stromversorgung hergestellt werden kann restauriert.

Nachdem die Stromversorgung wiederhergestellt und die Festplatten hochgefahren und initialisiert wurden, hat der Controller diese Daten dank des Akkus immer noch im Cache und kann Ihre Transaktion fertig auf die Festplatte schreiben.

Jeder ist glücklich.

Aus diesem Grund können Sie auf RAID-Controllern normalerweise den Schreibcache nur aktivieren, wenn Sie über eine funktionsfähige und geladene Akkueinheit verfügen.

Terlisimo
quelle
Ich würde nach dem Standort des Controllers fragen. Ist es ein Teil der Hauptplatine oder in die Festplatte eingebaut?
Valentin Tihomirov
Außerdem möchte ich wissen, wie das Betriebssystem eine proper shutdownAnfrage senden kann, wenn RAID daran liegt, wenn ein Flush ausgegeben wird.
Valentin Tihomirov
@ValentinTihomirov Es gibt keine properoder improperHerunterfahren. Das Betriebssystem gibt ein Abschaltsignal aus und das Netzteil schaltet sich nach dem Ausschalten aus. Beim Ausschalten geht der flüchtige Speicher und der gesamte Inhalt verloren!
PF4Public
4

Es ist erwähnenswert, dass einige neuere Festplatten-Controller jetzt mit einem Hochgeschwindigkeits-Flash-Cache ausgestattet sind, der die Daten weit über die typischen 72 Stunden hinaus aufbewahrt. Oft ist er auch sehr viel größer (~ 1 GB). Wenn Sie Details zum Teil benötigen, lassen Sie es mich wissen.

Chopper3
quelle
Danke für die Info, aber ich bin kein Sysadmin und werde wahrscheinlich nie ein professionelles RAID entwerfen ... Ich bin nur neugierig auf die BBU :)
Tanascius
3

Stellen Sie sich den BBU-Cache so vor, dass er einen ähnlichen Schutz bietet wie ein Journaled File System. Hiermit können Transaktionen, in diesem Fall einfache Schreibvorgänge, ausgeführt werden, wenn sie durch einen Stromausfall unterbrochen werden. Sobald die Stromversorgung unterbrochen wird, kann der Controller nicht mehr weiter schreiben, da dies zu völlig unvorhersehbaren Ergebnissen führen würde. Stattdessen werden die Daten so lange gespeichert, wie dies möglich ist, und das Schreiben wird beendet, wenn die Stromversorgung wiederhergestellt wird. Was es nicht tut, ist sich wie eine USV für die Laufwerke zu verhalten.

John Gardeniers
quelle
Aber wenn ich eine USV für die Antriebe + Controller habe - wofür brauche ich die BBU? Nur für ein scneario, wo die USV auch ausfällt?
Tanascius
Gute Frage. Wenn Sie wissen, dass der Server IMMER ordnungsgemäß heruntergefahren wird, bin ich auch nicht von der Notwendigkeit einer BBU überzeugt.
John Gardeniers
2
Eine BBU wird normalerweise häufig zum Zurückschreiben von Konfigurationen verwendet. Einige RAID-Controller ermöglichen kein Zurückschreiben, wenn keine BBU vorhanden ist. Ich halte es jedoch für eine schlechte Idee, davon auszugehen, dass Ihr Server immer ordnungsgemäß heruntergefahren wird.
ConcernedOfTunbridgeWells
2

Die Anschaffung eines 100-Dollar-Akkus ist ein Muss, insbesondere auf einem DB-Server, auch wenn Stromausfälle selten vorkommen. Selbst wenn Sie Transaktionen aktiviert haben und Ihr Server die Stromversorgung verliert, bevor diese Änderungen den Cache verlassen und auf die Festplatte übertragen wurden, bleibt eine unvollständige Abfrage oder beschädigte Daten zurück.

Andy
quelle
1

Wenn Ihr Server abstürzt, hängt oder jemand am Stromkabel zieht, schützt Sie eine BBU vor beschädigten oder verlorenen Daten, wenn Sie den Schreibcache verwenden. Die Verwendung eines USV schützt Sie nur vor einem Stromausfall.

Wenn Sie den Schreibcache nicht verwenden möchten, benötigen Sie keine BBU.

JPS
quelle
1

Eine RAID-Karte kann 1 GB Cache haben. Auch wenn in der Regel nicht alle Daten für einen Schreibcache verwendet werden, können Sie davon ausgehen, dass in diesem Cache eine lange Warteschlange ungeschriebener Daten gespeichert ist.

Dateisysteme und Datenbanken gehen davon aus, dass ihre synchronen Schreibvorgänge auch bei einem Stromausfall nicht neu geordnet werden. Normalerweise wird ein synchroner Schreibvorgang erst dann ausgeführt, wenn sich die Daten auf der Festplatte befinden. Dies ist jedoch relativ langsam. RAID-Karten verbessern die Leistung, indem sie kleinere Schreibvorgänge gruppieren und weniger zufällig neu anordnen.

Wenn es keine BBU gäbe, hätte ein Stromausfall unter Last katastrophale Folgen. Bei Schreibvorgängen hatte die RAID-Karte versprochen, dass sie dort verloren gehen würde (wie im Fall eines Dateisystems haben Sie möglicherweise Verweise auf eine neue Datei oder ein neues Verzeichnis, dies wurde jedoch nicht erwähnt Datei oder Verzeichnis, obwohl das Dateisystem die neue Datei speziell erstellt hat, bevor auf sie verwiesen wurde, um dies zu vermeiden. Schlimmer noch, wenn jemand eine geheime Datei gelöscht und eine von der Welt lesbare Datei erstellt hat, kann es vorkommen, dass sich ein Teil des Inhalts der geheimen Datei in der von der Welt lesbaren Datei befindet. Sobald Sie die Annahmen brechen, auf denen das Dateisystem aufgebaut ist, ist alles möglich.

Angenommen, eine USV garantiert eine unterbrechungsfreie Stromversorgung, ist naiv. Was ist, wenn die Maschine abstürzt und Sie am Netzkabel ziehen müssen oder jemand darauf stolpert?

Consumer-SATA-Festplatten (und SSDs) zwischenspeichern manchmal auch synchrone Schreibvorgänge, aber ihre Caches sind viel kleiner und die Verwendung durch den Verbraucher ist weniger anspruchsvoll, sodass sie normalerweise damit durchkommen können.

Moderne RAID-Controller verfügen auch über einen Flash-Speicher, in den sie bei einem Stromausfall den Inhalt des Schreibcaches kopieren, sodass der Akku nicht länger als ein paar Sekunden halten muss.

Jussi Peltola
quelle