Transaktionsdatenbanken
RAID-5 ist relativ langsam zu schreiben, da der Controller genügend Daten laden muss, um die Parität beim Schreiben neu zu berechnen. Schreibvorgänge erfordern mindestens vier Festplattenvorgänge:
Lesen im Paritätsblock
Lesen Sie den alten Block ein (vorausgesetzt, er befindet sich noch nicht im Cache), um den Wert mit dem Paritätsblock zu XOREN.
Schreiben des neuen Paritätsblocks (alter Paritätsblock XOR alter Datenblock XOR neuer Datenblock)
Schreiben des neuen Datenblocks.
Wenn das System kein Write-Back-Caching verwendet, bedeutet dies, dass sich alle diese Vorgänge auf dem kritischen Pfad für die E / A-Vervollständigung befinden. Dies ist häufig bei Datenbankschreibvorgängen der Fall. Tatsächlich verfügt Microsoft beispielsweise über ein Zertifizierungsprogramm für SAN-Geräte zur Verwendung mit SQL Server, bei dem die Anbieter dieses Verhalten garantieren müssen. Manchmal verwendeten ältere RAID-5-Geräte diese Optimierung nicht und mussten die Parität aus dem gesamten Stripe neu berechnen.
RAID-10 verfügt über einen Spiegel für jedes einzelne Laufwerk und muss keine zusätzlichen Daten lesen, um die Parität zu berechnen. Dies bedeutet, dass Schreibvorgänge viel weniger physische E / A benötigen.
RAID-50 befindet sich irgendwo in der Mitte, wobei das Volume in mehrere RAID-5-Volumes aufgeteilt ist, die wiederum gestreift sind. Auf einem RAID-50, das aus Gruppen besteht, die in einem 3 + 1-Schema gestreift sind, werden durch einen Schreibvorgang höchstens drei zusätzliche Festplatten-E / A-Anforderungen generiert. Wenn Sie dies wünschen, können Sie RAID-5 und RAID-10 als Sonderfälle für RAID-50 anzeigen. RAID-50 wird hauptsächlich verwendet, um große Volumes auf vielen physischen Festplatten bereitzustellen
Es gibt auch andere Paritätsschemata wie RAID-6 (ein Paritätsschema mit zwei redundanten Festplatten pro Satz). Moderne Festplatten sind groß genug, um ein Array neu zu erstellen, was ziemlich lange dauern kann - lange genug, um das Risiko eines Ausfalls einer zweiten Festplatte während des Der Wiederaufbau ist ziemlich bedeutsam. RAID-6 verringert dieses Risiko, indem eine zweite Paritätsfestplatte vorhanden ist, bei der drei Festplattenfehler zu Datenverlust führen. Ein ähnlicher Trick wie bei RAID-50-Schemata kann verwendet werden, um RAID-60-Arrays zu erstellen.
Schließlich kann ein einzelnes gespiegeltes Paar (als RAID-1 bezeichnet) für einige Aufgaben Redundanz und ausreichend Leistung bereitstellen. Insbesondere werden Sie wahrscheinlich feststellen, dass RAID-1 Ihnen einen ausreichenden Durchsatz für eine ganze Reihe von Datenbankprotokollen bietet. Mehr dazu weiter unten.
Wenn Sie eine schreiblastige Workload haben, erhalten Sie wahrscheinlich einen Leistungsgewinn durch ein RAID-10-Volume. Dies kann ein Gewinn sein, da Sie wahrscheinlich den erforderlichen Durchsatz von einer geringeren Anzahl physischer Datenträger erhalten, vorausgesetzt, die Datenträger verfügen über genügend Speicherplatz. Einige Elemente wie Protokolle oder temporäre Bereiche auf einem Datenbankserver sollten sich auf RAID-1- oder RAID-10-Volumes befinden, da diese viel Schreibverkehr erhalten.
Protokolle
Protokolldatenträger sind durch ein größtenteils sequentielles Datenzugriffsmuster gekennzeichnet und stellen im Wesentlichen einen Ringpuffer dar, der aus Befehlen im Sinne von "Diese Daten in diesen Block schreiben" besteht. Sie werden vom DBMS-Kernmodul als Produzent ausgeschrieben und als Conumer verarbeitet durch die Protokollleserfunktion. Ein einzelnes gespiegeltes Paar verarbeitet tatsächlich ziemlich viel Protokolldatenverkehr.
Leselastige Systeme und Dateiserver
Auf einem System mit hohem Lesezugriff, z. B. einem Data Warehouse, möchten Sie möglicherweise ein oder mehrere RAID-5-Volumes verwenden. Auf einem Dateiserver werden Datenträgerzugriffe größtenteils auf Dateibasis ausgeführt, sodass Schreibvorgänge wahrscheinlich die meisten Blöcke ausschreiben, aus denen der Paritätsblock ohnehin besteht. In diesem Fall ist die Leistung von RAID-5 geringer.
In der Vergangenheit waren die Kosteneinsparungen auf der Festplatte möglicherweise beträchtlich, aber dies ist jetzt mit geringerer Wahrscheinlichkeit ein Problem.
Write-Back-Caching und RAID-5
Auf einem SAN- oder internen RAID-Controller mit einem batteriegepufferten Cache können Sie möglicherweise das 'Write-Back'-Caching aktivieren. Dadurch werden Schreibvorgänge zwischengespeichert und die Steuerung an die Anwendung zurückgegeben. Die E / A wird vom Controller als abgeschlossen gemeldet. Die Daten werden jedoch nicht unbedingt sofort auf die Festplatte geschrieben. Mit dieser Funktion können Lese- / Schreibvorgänge mit RAID-5-Parität erheblich optimiert und die Schreibleistungseinbußen für RAID-5x-Volumes verringert werden.
Dies birgt jedoch immer noch ein geringes Risiko für Datenintegritätsprobleme. Dem Hostsystem wurde mitgeteilt, dass dieser Schreibvorgang abgeschlossen ist, wenn dies nicht der Fall ist. Es ist möglich, dass bei einem Hardwarefehler Dateninkonsistenzen zwischen (beispielsweise) Protokoll und Datenvolumen auf einem Datenbankserver auftreten. Aus diesem Grund wird das Write-Back-Caching für Transaktionssysteme nicht empfohlen, obwohl es für so etwas wie einen ETL-Prozess ein Leistungsgewinn sein kann.
Zusammenfassung
Der Speicherplatz ist heutzutage so günstig, dass Transaktionssysteme wahrscheinlich RAID-1 oder RAID-10 für Protokollvolumes und RAID-10 für Datenvolumes verwenden sollten. Die physische Datenträgergröße ist wahrscheinlich viel größer als die Datenbank, und RAID-10 ermöglicht einen höheren Schreibdurchsatz für die gleiche Anzahl von Datenträgern, wodurch möglicherweise die Anzahl der Datenträgervolumes verringert wird, die zur Unterstützung des Systems erforderlich sind.
In so etwas wie einem Data Warehouse können Sie immer noch Speicherplatz mit großen, stark indizierten Faktentabellen kauen, sodass Sie mit RAID-5- oder RAID-50-Datenvolumes möglicherweise einen kleinen Preisgewinn erzielen. Protokolle und Tempdb sollten jedoch weiterhin auf einem RAID-10-Volume gespeichert werden, da sie während der ETL-Verarbeitung wahrscheinlich viel Arbeit benötigen. Die Kosteneinsparung auf der Festplatte dürfte jedoch recht gering sein.