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.
raid
hardware-raid
controller
bbu
Tanascius
quelle
quelle
Antworten:
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.
quelle
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.
quelle
proper shutdown
Anfrage senden kann, wenn RAID daran liegt, wenn ein Flush ausgegeben wird.proper
oderimproper
Herunterfahren. 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!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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle