RAID- RAID

RAID ( / r d / ; „ Redundant Array of Inexpensive Disks “ oder „ Redundant Array of Independent Disks “) ist eine Datenspeichervirtualisierungstechnologie , die kombiniert mehrere physikalischen Plattenlaufwerk - Komponenten in eine oder mehrere logischen Einheiten für die Zwecke der Datenredundanz , Leistungssteigerung oder beides. Dies stand im Gegensatz zu dem früheren Konzept hochzuverlässiger Mainframe-Festplattenlaufwerke, das als "Single Large Teure Disk" (SLED) bezeichnet wird.

Die Daten werden auf verschiedene Weise auf die Laufwerke verteilt, die als RAID-Level bezeichnet werden, abhängig von der erforderlichen Redundanz und Leistung. Die verschiedenen Schemata oder Datenverteilungs-Layouts werden mit dem Wort "RAID" gefolgt von einer Zahl bezeichnet, zum Beispiel RAID 0 oder RAID 1. Jedes Schema oder RAID-Level bietet ein anderes Gleichgewicht zwischen den Hauptzielen: Zuverlässigkeit , Verfügbarkeit , Leistung und Kapazität . RAID-Level über RAID 0 bieten Schutz vor nicht behebbaren Sektorlesefehlern sowie vor Ausfällen ganzer physischer Laufwerke.

Geschichte

Der Begriff "RAID" wurde 1987 von David Patterson , Garth A. Gibson und Randy Katz an der University of California, Berkeley, erfunden . In ihrem Artikel vom Juni 1988 "A Case for Redundant Arrays of Inexpensive Disks (RAID)", präsentiert bei der SIGMOD- Konferenz argumentierten sie, dass die leistungsstärksten Mainframe- Festplattenlaufwerke der damaligen Zeit von einer Reihe preiswerter Laufwerke, die für den wachsenden PC- Markt entwickelt wurden, in Bezug auf die Leistung übertroffen werden könnten . Obwohl die Ausfälle proportional zur Anzahl der Laufwerke zunehmen würden, könnte die Zuverlässigkeit eines Arrays durch die Konfiguration für Redundanz die jedes großen einzelnen Laufwerks bei weitem übertreffen.

Obwohl diese Terminologie noch nicht verwendet wurde, wurden die Technologien der fünf RAID-Stufen, die in der Veröffentlichung vom Juni 1988 genannt wurden, vor der Veröffentlichung der Veröffentlichung in verschiedenen Produkten verwendet, einschließlich der folgenden:

  • Spiegelung (RAID 1) war in den 1970er Jahren gut etabliert, darunter beispielsweise Tandem NonStop Systems .
  • 1977 reichte Norman Ken Ouchi von IBM ein Patent ein, das das später als RAID 4 bezeichnete System offenbarte.
  • Um 1983 begann DEC mit der Auslieferung von subsystemgespiegelten RA8X-Festplattenlaufwerken (jetzt bekannt als RAID 1) als Teil seines HSC50-Subsystems.
  • 1986 haben Clark et al. bei IBM reichte ein Patent ein, das das später als RAID 5 bezeichnete System offenbart.
  • Um 1988 verwendete DataVault von Thinking Machines Fehlerkorrekturcodes (jetzt bekannt als RAID 2) in einer Reihe von Festplattenlaufwerken. Ein ähnlicher Ansatz wurde in den frühen 1960er Jahren beim IBM 353 verwendet .

Industriehersteller definierten später das Akronym RAID neu, um für "Redundant Array of Independent Disks" zu stehen.

Überblick

Viele RAID-Level verwenden ein Fehlerschutzschema namens " Parität ", ein weit verbreitetes Verfahren in der Informationstechnologie, um Fehlertoleranz in einem gegebenen Datensatz bereitzustellen . Die meisten verwenden einfaches XOR , aber RAID 6 verwendet zwei separate Paritäten, die jeweils auf Addition und Multiplikation in einem bestimmten Galois-Feld oder Reed-Solomon-Fehlerkorrektur basieren .

RAID kann auch Datensicherheit mit Solid-State-Laufwerken (SSDs) ohne die Kosten eines reinen SSD-Systems bieten . So lässt sich beispielsweise eine schnelle SSD mit einem mechanischen Laufwerk spiegeln. Damit diese Konfiguration einen signifikanten Geschwindigkeitsvorteil bietet, wird ein entsprechender Controller benötigt, der die schnelle SSD für alle Lesevorgänge verwendet. Adaptec nennt dies "hybrides RAID".

Standardstufen

Speicherserver mit jeweils 24 Festplattenlaufwerken und integrierten Hardware-RAID-Controllern, die verschiedene RAID-Level unterstützen

Ursprünglich gab es fünf Standard-RAID-Level, aber viele Variationen haben sich entwickelt, darunter mehrere verschachtelte Level und viele Nicht-Standard-Level (meist proprietär ). RAID-Level und die dazugehörigen Datenformate sind von der Storage Networking Industry Association (SNIA) im Common RAID Disk Drive Format (DDF)-Standard standardisiert:

RAID 0 besteht aus Striping , aber ohne Spiegelung oder Parität . Im Vergleich zu einem übergreifenden Volume ist die Kapazität eines RAID 0-Volumes gleich; es ist die Summe der Kapazitäten der Laufwerke im Set. Da Striping jedoch den Inhalt jeder Datei auf alle Laufwerke des Satzes verteilt, führt der Ausfall eines Laufwerks zum Verlust des gesamten RAID 0-Volumes und aller Dateien. Im Vergleich dazu bewahrt ein übergreifendes Volume die Dateien auf den fehlerfreien Laufwerken. Der Vorteil von RAID 0 besteht darin, dass der Durchsatz von Lese- und Schreibvorgängen für jede Datei mit der Anzahl der Laufwerke multipliziert wird, da im Gegensatz zu übergreifenden Volumes Lese- und Schreibvorgänge gleichzeitig ausgeführt werden . Die Kosten sind die erhöhte Anfälligkeit für Laufwerksausfälle – da ein Ausfall eines Laufwerks in einem RAID 0-Setup zum Verlust des gesamten Volumes führt, steigt die durchschnittliche Ausfallrate des Volumes mit der Anzahl der angeschlossenen Laufwerke.

RAID 1 besteht aus Datenspiegelung, ohne Parität oder Striping. Daten werden identisch auf zwei oder mehr Laufwerke geschrieben, wodurch ein "gespiegelter Satz" von Laufwerken erzeugt wird. Somit kann jede Leseanforderung von jedem Laufwerk im Satz bedient werden. Wenn eine Anfrage an jedes Laufwerk in der Gruppe gesendet wird, kann sie von dem Laufwerk bearbeitet werden, das zuerst auf die Daten zugreift (abhängig von seiner Suchzeit und Rotationslatenz ), wodurch die Leistung verbessert wird. Der anhaltende Lesedurchsatz, wenn der Controller oder die Software dafür optimiert ist, nähert sich der Summe der Durchsätze jedes Laufwerks im Satz, genau wie bei RAID 0. Der tatsächliche Lesedurchsatz der meisten RAID 1-Implementierungen ist langsamer als der des schnellsten Laufwerks. Der Schreibdurchsatz ist immer langsamer, da jedes Laufwerk aktualisiert werden muss und das langsamste Laufwerk die Schreibleistung einschränkt. Das Array läuft weiter, solange mindestens ein Laufwerk funktioniert.

RAID 2 besteht aus Striping auf Bit-Ebene mit dedizierter Hamming-Code- Parität. Die gesamte Rotation der Plattenspindel wird synchronisiert und die Daten werden gestriped , sodass sich jedes sequentielle Bit auf einem anderen Laufwerk befindet. Die Hamming-Code-Parität wird über entsprechende Bits berechnet und auf mindestens einem Paritätslaufwerk gespeichert. Diese Ebene ist nur von historischer Bedeutung; Obwohl es auf einigen frühen Maschinen (z. B. Thinking Machines CM-2) verwendet wurde, wird es ab 2014 von keinem kommerziell erhältlichen System verwendet.

RAID 3 besteht aus Striping auf Byte-Ebene mit dedizierter Parität. Die gesamte Rotation der Plattenspindel wird synchronisiert und die Daten werden so aufgeteilt, dass sich jedes sequentielle Byte auf einem anderen Laufwerk befindet. Die Parität wird über entsprechende Bytes berechnet und auf einem dedizierten Paritätslaufwerk gespeichert. Obwohl Implementierungen existieren, wird RAID 3 in der Praxis nicht häufig verwendet.

RAID 4 besteht aus Striping auf Blockebene mit dedizierter Parität. Diese Ebene wurde früher von NetApp verwendet , wurde aber jetzt weitgehend durch eine proprietäre Implementierung von RAID 4 mit zwei Paritätsplatten, genannt RAID-DP, ersetzt . Der Hauptvorteil von RAID 4 gegenüber RAID 2 und 3 ist die E/A-Parallelität: Bei RAID 2 und 3 erfordert ein einzelner Lese-E/A-Vorgang das Lesen der gesamten Gruppe von Datenlaufwerken, während bei RAID 4 ein E/A-Lesevorgang dies tut müssen sich nicht auf alle Datenlaufwerke verteilen. Als Ergebnis können mehr E/A-Operationen parallel ausgeführt werden, wodurch die Leistung kleiner Übertragungen verbessert wird.

RAID 5 besteht aus Striping auf Blockebene mit verteilter Parität. Im Gegensatz zu RAID 4 werden die Paritätsinformationen auf die Laufwerke verteilt, sodass alle Laufwerke außer einem vorhanden sein müssen, um zu funktionieren. Bei Ausfall eines einzelnen Laufwerks können nachfolgende Lesevorgänge aus der verteilten Parität berechnet werden, sodass keine Daten verloren gehen. RAID 5 erfordert mindestens drei Festplatten. Wie alle Single-Parity-Konzepte sind große RAID 5-Implementierungen anfällig für Systemausfälle aufgrund von Trends bezüglich der Array-Neuaufbauzeit und der Wahrscheinlichkeit eines Laufwerkausfalls während der Neuerstellung (siehe Abschnitt „ Erhöhung der Neuerstellungszeit und Ausfallwahrscheinlichkeit “ weiter unten). Der Wiederaufbau eines Arrays erfordert das Lesen aller Daten von allen Festplatten, was die Gefahr eines zweiten Laufwerksausfalls und des Verlustes des gesamten Arrays eröffnet.

RAID 6 besteht aus Striping auf Blockebene mit doppelter verteilter Parität. Doppelparität bietet Fehlertoleranz für bis zu zwei ausgefallene Laufwerke. Dies macht größere RAID-Gruppen praktischer, insbesondere für Hochverfügbarkeitssysteme, da die Wiederherstellung von Laufwerken mit großer Kapazität länger dauert. RAID 6 erfordert mindestens vier Festplatten. Wie bei RAID 5 führt der Ausfall eines einzelnen Laufwerks zu einer reduzierten Leistung des gesamten Arrays, bis das ausgefallene Laufwerk ersetzt wurde. Mit einem RAID 6-Array, das Laufwerke von mehreren Quellen und Herstellern verwendet, ist es möglich, die meisten Probleme im Zusammenhang mit RAID 5 zu mildern. Je größer die Laufwerkskapazitäten und je größer die Array-Größe, desto wichtiger wird es, stattdessen RAID 6 zu wählen von RAID 5. RAID 10 minimiert auch diese Probleme.

Verschachteltes (hybrides) RAID

Bei dem, was ursprünglich als Hybrid-RAID bezeichnet wurde , ermöglichen viele Speichercontroller die Verschachtelung von RAID-Levels. Die Elemente eines RAID können entweder einzelne Laufwerke oder Arrays selbst sein. Arrays sind selten mehr als eine Ebene tief verschachtelt.

Das letzte Array wird als oberstes Array bezeichnet. Wenn das oberste Array RAID 0 ist (wie bei RAID 1+0 und RAID 5+0), lassen die meisten Anbieter das "+" weg (was RAID 10 bzw. RAID 50 ergibt).

  • RAID 0+1: erstellt zwei Stripes und spiegelt sie. Wenn ein einzelner Laufwerksausfall auftritt, ist einer der Spiegel ausgefallen, der zu diesem Zeitpunkt effektiv als RAID 0 ohne Redundanz ausgeführt wird. Ein erheblich höheres Risiko besteht während eines Rebuilds als bei RAID 1+0, da alle Daten von allen Laufwerken im verbleibenden Stripe gelesen werden müssen und nicht nur von einem Laufwerk, was die Wahrscheinlichkeit eines nicht behebbaren Lesefehlers (URE) erhöht und erheblich verlängert. das Rebuild-Fenster.
  • RAID 1+0: (siehe: RAID 10 ) erstellt ein Striped-Set aus einer Reihe von gespiegelten Laufwerken. Das Array kann mehrere Laufwerksverluste erleiden, solange kein Spiegel alle seine Laufwerke verliert.
  • JBOD RAID N+N: Mit JBOD ( just a Bund of Disks ) ist es möglich, Festplatten, aber auch Volumes wie RAID-Sets zu verketten. Bei größeren Laufwerkskapazitäten nehmen Schreibverzögerung und Wiederherstellungszeit dramatisch zu (insbesondere, wie oben beschrieben, bei RAID 5 und RAID 6). Durch Aufteilen eines größeren RAID N-Satzes in kleinere Untersätze und Verketten dieser mit linearem JBOD wird die Schreib- und Wiederherstellungszeit reduziert. Wenn ein Hardware-RAID-Controller nicht in der Lage ist, lineares JBOD mit RAID N zu verschachteln, kann lineares JBOD mit Software-RAID auf Betriebssystemebene in Kombination mit separaten RAID N-Subset-Volumes erreicht werden, die in einem oder mehreren Hardware-RAID-Controllern erstellt werden. Dies bietet neben einer drastischen Geschwindigkeitssteigerung auch einen wesentlichen Vorteil: die Möglichkeit, ein lineares JBOD mit einem kleinen Plattensatz zu starten und den Gesamtsatz später um Platten unterschiedlicher Größe erweitern zu können (mit der Zeit auch Platten größerer Größe auf dem Markt erhältlich). Ein weiterer Vorteil besteht in der Disaster Recovery (wenn eine RAID N-Untergruppe ausfällt, gehen die Daten der anderen RAID N-Untergruppen nicht verloren, wodurch die Wiederherstellungszeit verkürzt wird).

Nicht-Standard-Niveaus

Viele andere Konfigurationen als die grundlegenden nummerierten RAID-Levels sind möglich, und viele Unternehmen, Organisationen und Gruppen haben ihre eigenen nicht standardmäßigen Konfigurationen erstellt, die in vielen Fällen darauf ausgelegt sind, die speziellen Anforderungen einer kleinen Nischengruppe zu erfüllen. Solche Konfigurationen umfassen Folgendes:

  • Linux MD RAID 10 bietet einen allgemeinen RAID-Treiber, der in seinem "nahen" Layout standardmäßig ein Standard-RAID 1 mit zwei Laufwerken und ein Standard-RAID 1+0 mit vier Laufwerken ist; es kann jedoch eine beliebige Anzahl von Laufwerken enthalten, einschließlich ungerader Nummern. Mit seinem "fernen" Layout kann MD RAID 10 sowohl gestreift als auch gespiegelt ausgeführt werden, sogar mit nur zwei Laufwerken im f2Layout; dies führt eine Spiegelung mit gestreiften Lesevorgängen durch, wodurch die Leseleistung von RAID 0 erreicht wird. Reguläres RAID 1, wie es von der Linux-Software RAID bereitgestellt wird , führt keine Stripeset-Lesevorgänge durch, kann jedoch parallel Lesevorgänge ausführen.
  • Hadoop verfügt über ein RAID-System, das eine Paritätsdatei durch Xoring eines Blockstreifens in einer einzelnen HDFS-Datei generiert.
  • BeeGFS , das parallele Dateisystem, verfügt über interne Striping- (vergleichbar mit dateibasiertem RAID0) und Replikation (vergleichbar mit dateibasiertem RAID10) Optionen, um den Durchsatz und die Kapazität mehrerer Server zu aggregieren und basiert normalerweise auf einem zugrunde liegenden RAID, um eine Festplatte zu erstellen Fehler transparent.
  • Declustered RAID verteilt doppelte (oder mehr) Kopien der Daten auf alle Festplatten (möglicherweise Hunderte) in einem Speichersubsystem, während genügend freie Kapazität zurückgehalten wird, damit einige Festplatten ausfallen können. Die Streuung basiert auf Algorithmen, die den Anschein von Beliebigkeit erwecken. Wenn eine oder mehrere Platten ausfallen, werden die fehlenden Kopien wieder willkürlich in dieser freien Kapazität wieder aufgebaut. Da die Wiederherstellung von und zu allen verbleibenden Festplatten durchgeführt wird, arbeitet sie viel schneller als bei herkömmlichem RAID, wodurch die Gesamtauswirkungen auf die Clients des Speichersystems verringert werden.

Implementierungen

Die Verteilung der Daten auf mehrere Laufwerke kann entweder durch dedizierte Computerhardware oder durch Software verwaltet werden . Eine Softwarelösung kann Teil des Betriebssystems, Teil der Firmware und der Treiber sein, die mit einem Standard-Laufwerkscontroller geliefert werden (sogenanntes "hardwaregestütztes Software-RAID"), oder sie kann sich vollständig im Hardware-RAID-Controller befinden.

Hardware-basiert

Konfiguration von Hardware-RAID

Hardware-RAID-Controller können vor dem Booten eines Betriebssystems über das Karten- BIOS oder das Options-ROM konfiguriert werden. Nach dem Booten des Betriebssystems sind vom Hersteller jedes Controllers proprietäre Konfigurationsprogramme erhältlich. Im Gegensatz zu den Netzwerkschnittstellen-Controllern für Ethernet , die normalerweise vollständig über die gängigen Betriebssystemparadigmen wie ifconfig in Unix konfiguriert und gewartet werden können , ohne dass Tools von Drittanbietern erforderlich sind, bietet jeder Hersteller jedes RAID-Controllers normalerweise seine eigenen proprietären Softwaretools für jedes Betriebssystem, von dem sie glauben, dass es unterstützt wird, um eine Anbieterbindung sicherzustellen und zu Zuverlässigkeitsproblemen beizutragen.

Um beispielsweise in FreeBSD auf die Konfiguration von Adaptec RAID-Controllern zugreifen zu können , müssen Benutzer die Linux-Kompatibilitätsschicht aktivieren und die Linux-Tools von Adaptec verwenden, was möglicherweise die Stabilität, Zuverlässigkeit und Sicherheit ihres Setups beeinträchtigt, insbesondere wenn Sie die langfristige Sicht.

Einige andere Betriebssysteme haben ihre eigenen generischen Frameworks für die Verbindung mit jedem RAID-Controller implementiert und bieten Tools zur Überwachung des RAID-Volume-Status sowie zur Erleichterung der Laufwerksidentifizierung durch LED-Blinken, Alarmverwaltung und Hot-Spare-Festplattenbezeichnungen innerhalb des Betriebssystems ohne muss das Karten-BIOS neu starten. Dies war beispielsweise der Ansatz von OpenBSD im Jahr 2005 mit seinem bio(4) -Pseudogerät und dem bioctl- Dienstprogramm, die den Volume-Status bereitstellen und eine LED-/Alarm-/Hotspare-Steuerung sowie die Sensoren (einschließlich des Antriebssensors) ermöglichen ) zur Gesundheitsüberwachung; dieser Ansatz wurde auch 2007 von NetBSD übernommen und erweitert .

Softwarebasiert

Software-RAID-Implementierungen werden von vielen modernen Betriebssystemen bereitgestellt . Software-RAID kann implementiert werden als:

  • Eine Schicht , die mehrere Geräte abstrahiert, wodurch eine einzelne Bereitstellung virtuelles Gerät (wie zum Beispiel Linux Kernel ‚s md und OpenBSDs softraid)
  • Ein generischerer Logical Volume Manager (wird von den meisten Server-Klasse-Betriebssystemen wie Veritas oder LVM bereitgestellt )
  • Eine Komponente des Dateisystems (wie ZFS , Spectrum Scale oder Btrfs )
  • Eine Schicht, die sich über jedem Dateisystem befindet und Paritätsschutz für Benutzerdaten bietet (z. B. RAID-F)

Einige erweiterte Dateisysteme sind so konzipiert, dass sie Daten direkt über mehrere Speichergeräte hinweg organisieren, ohne die Hilfe eines logischen Volume-Managers eines Drittanbieters zu benötigen:

  • ZFS unterstützt die Äquivalente von RAID 0, RAID 1, RAID 5 (RAID-Z1) Single-Parity, RAID 6 (RAID-Z2) Double-Parity und eine Triple-Parity-Version (RAID-Z3), auch als RAID 7 bezeichnet Da es immer über vdevs der obersten Ebene verteilt, unterstützt es Äquivalente der verschachtelten RAID-Level 1+0, 5+0 und 6+0 (sowie Striped-Triple-Parity-Sets), jedoch keine anderen verschachtelten Kombinationen. ZFS ist das native Dateisystem von Solaris und illumos und ist auch für FreeBSD und Linux verfügbar. Open-Source-ZFS-Implementierungen werden im Rahmen des OpenZFS-Dachprojekts aktiv entwickelt .
  • Spectrum Scale , ursprünglich von IBM für Medienstreaming und skalierbare Analysen entwickelt, unterstützt declusterte RAID- Schutzschemata bis zu n+3. Eine Besonderheit ist die dynamische Neuaufbau-Priorität, die mit geringer Auswirkung im Hintergrund läuft, bis ein Daten-Chunk die n+0-Redundanz erreicht, in diesem Fall wird dieser Chunk schnell auf mindestens n+1 neu aufgebaut. Darüber hinaus unterstützt Spectrum Scale RAID 1.
  • Btrfs unterstützt RAID 0, RAID 1 und RAID 10 (RAID 5 und 6 sind in Entwicklung).
  • XFS wurde ursprünglich entwickelt, um einen integrierten Volume-Manager bereitzustellen, der das Verketten, Spiegeln und Striping mehrerer physischer Speichergeräte unterstützt. Der Implementierung von XFS im Linux-Kernel fehlt jedoch der integrierte Volume-Manager.

Viele Betriebssysteme bieten RAID-Implementierungen, einschließlich der folgenden:

  • Das OpenVMS- Betriebssystem von Hewlett-Packard unterstützt RAID 1. Die gespiegelten Platten, die als "Schattensatz" bezeichnet werden, können sich an verschiedenen Orten befinden, um die Notfallwiederherstellung zu unterstützen.
  • Apples macOS und macOS Server unterstützen RAID 0, RAID 1 und RAID 1+0.
  • FreeBSD unterstützt RAID 0, RAID 1, RAID 3 und RAID 5 sowie alle Verschachtelungen über GEOM- Module und ccd.
  • Linux ‚s md unterstützt RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 und alle Verschachtelungen. Bestimmte Umformungs-/Größenänderungs-/Erweiterungsvorgänge werden ebenfalls unterstützt.
  • Microsoft Windows unterstützt RAID 0, RAID 1 und RAID 5 mit verschiedenen Softwareimplementierungen. Der mit Windows 2000 eingeführte Logical Disk Manager ermöglicht die Erstellung von RAID 0-, RAID 1- und RAID 5-Volumes unter Verwendung dynamischer Datenträger , dies war jedoch bis zur Veröffentlichung von Windows 8 nur auf Professional- und Server-Editionen von Windows beschränkt . Windows XP kann geändert werden, um die Unterstützung für RAID 0, 1 und 5 freizugeben . Windows 8 und Windows Server 2012 haben eine RAID-ähnliche Funktion namens Storage Spaces eingeführt , mit der Benutzer auch Spiegelung, Parität oder keine Redundanz für einen Ordner angeben können -für-Ordner-Basis. Diese Optionen ähneln RAID 1 und RAID 5, werden jedoch auf einer höheren Abstraktionsebene implementiert.
  • NetBSD unterstützt RAID 0, 1, 4 und 5 über seine Softwareimplementierung namens RAIDframe.
  • OpenBSD unterstützt RAID 0, 1 und 5 über seine Softwareimplementierung namens softraid.

Wenn ein Bootlaufwerk fehlschlägt, muss das System hochentwickelt genug sein, um von dem verbleibenden Laufwerk oder den verbleibenden Laufwerken booten zu können. Betrachten Sie beispielsweise einen Computer, dessen Festplatte als RAID 1 (gespiegelte Laufwerke) konfiguriert ist; Wenn das erste Laufwerk im Array ausfällt, ist ein Bootloader der ersten Stufe möglicherweise nicht ausgereift genug, um zu versuchen, den Bootloader der zweiten Stufe als Fallback vom zweiten Laufwerk zu laden . Der Bootloader der zweiten Stufe für FreeBSD ist in der Lage, einen Kernel aus einem solchen Array zu laden .

Firmware- und treiberbasiert

Ein SATA 3.0- Controller, der RAID-Funktionalität durch proprietäre Firmware und Treiber bietet

Software-implementiertes RAID ist nicht immer mit dem Boot-Prozess des Systems kompatibel und für Desktop-Versionen von Windows im Allgemeinen unpraktisch. Hardware-RAID-Controller sind jedoch teuer und proprietär. Um diese Lücke zu schließen, wurden kostengünstige „RAID-Controller“ eingeführt, die keinen dedizierten RAID-Controller-Chip enthalten, sondern einfach einen Standard-Laufwerkscontroller-Chip mit proprietärer Firmware und Treibern. Beim frühen Booten wird das RAID von der Firmware implementiert und sobald das Betriebssystem vollständiger geladen ist, übernehmen die Treiber die Kontrolle. Folglich funktionieren solche Controller möglicherweise nicht, wenn für das Host-Betriebssystem keine Treiberunterstützung verfügbar ist. Ein Beispiel ist die Intel Rapid Storage Technology , die auf vielen Mainboards auf Verbraucherebene implementiert ist.

Da eine minimale Hardwareunterstützung erforderlich ist, wird diese Implementierung auch als "hardwaregestütztes Software-RAID", "Hybridmodell"-RAID oder sogar "Fake-RAID" bezeichnet. Wenn RAID 5 unterstützt wird, kann die Hardware einen Hardware-XOR-Beschleuniger bereitstellen. Ein Vorteil dieses Modells gegenüber dem reinen Software-RAID besteht darin, dass bei Verwendung eines Redundanzmodus das Bootlaufwerk während des Bootvorgangs vor Ausfall (bedingt durch die Firmware) geschützt ist, noch bevor die Treiber des Betriebssystems übernehmen.

Integrität

Das Daten-Scrubbing (in einigen Umgebungen als patrol read bezeichnet ) beinhaltet das periodische Lesen und Überprüfen aller Blöcke in einem Array durch den RAID-Controller, einschließlich derer, auf die sonst nicht zugegriffen wird. Dies erkennt fehlerhafte Blöcke vor der Verwendung. Das Data Scrubbing prüft auf jedem Speichergerät in einem Array auf fehlerhafte Blöcke, nutzt aber auch die Redundanz des Arrays, um fehlerhafte Blöcke auf einem einzelnen Laufwerk wiederherzustellen und die wiederhergestellten Daten Ersatzblöcken an anderer Stelle auf dem Laufwerk neu zuzuweisen.

Häufig ist ein RAID-Controller so konfiguriert, dass er ein Komponentenlaufwerk "löscht" (d. h. annimmt, dass ein Komponentenlaufwerk ausgefallen ist), wenn das Laufwerk etwa acht Sekunden lang nicht reagiert hat; Dies kann dazu führen, dass der Array-Controller ein fehlerfreies Laufwerk verwirft, da diesem Laufwerk nicht genügend Zeit gegeben wurde, um das interne Fehlerbehebungsverfahren abzuschließen. Folglich kann die Verwendung von Festplatten mit RAID für Verbraucher riskant sein, und Laufwerke der sogenannten „Enterprise-Klasse“ begrenzen diese Fehlerwiederherstellungszeit, um das Risiko zu verringern. Die Desktop-Laufwerke von Western Digital hatten früher eine spezielle Lösung. Ein Dienstprogramm namens WDTLER.exe begrenzte die Fehlerwiederherstellungszeit eines Laufwerks. Das Dienstprogramm aktivierte TLER (zeitbegrenzte Fehlerwiederherstellung) , wodurch die Fehlerwiederherstellungszeit auf sieben Sekunden begrenzt wird. Ungefähr im September 2009 hat Western Digital diese Funktion in ihren Desktop-Laufwerken (wie der Caviar Black-Reihe) deaktiviert, wodurch solche Laufwerke für die Verwendung in RAID-Konfigurationen ungeeignet sind. Festplatten der Enterprise-Klasse von Western Digital werden jedoch ab Werk mit aktiviertem TLER ausgeliefert. Ähnliche Technologien werden von Seagate, Samsung und Hitachi verwendet. Für die Nicht-RAID-Nutzung ist daher ein Laufwerk der Enterprise-Klasse mit einem kurzen, nicht änderbaren Fehlerwiederherstellungs-Timeout weniger geeignet als ein Desktop-Laufwerk. Ende 2010 begann das Smartmontools- Programm, die Konfiguration von ATA Error Recovery Control zu unterstützen, wodurch das Tool viele Festplatten der Desktop-Klasse für die Verwendung in RAID-Setups konfigurieren kann.

Obwohl RAID vor dem Ausfall physischer Laufwerke schützen kann, sind die Daten dennoch der Zerstörung durch Bediener, Software, Hardware und Viren ausgesetzt. Viele Studien nennen Bedienerfehler als häufige Ursache für Fehlfunktionen, wie z. B. ein Serverbediener, der das falsche Laufwerk in einem fehlerhaften RAID ersetzt und dabei das System (auch vorübergehend) deaktiviert.

Ein Array kann durch einen katastrophalen Ausfall überfordert werden, der seine Wiederherstellungskapazität überschreitet, und das gesamte Array ist durch Feuer, Naturkatastrophen und menschliche Kräfte physisch beschädigt. Backups können jedoch außerhalb des Standorts gespeichert werden. Ein Array ist auch anfällig für Controller-Ausfälle, da es nicht immer ohne Datenverlust auf einen neuen, anderen Controller migriert werden kann.

Schwächen

Korrelierte Fehler

In der Praxis sind die Antriebe oft gleich alt (mit ähnlichem Verschleiß) und unterliegen der gleichen Umgebung. Da viele Laufwerksausfälle auf mechanische Probleme zurückzuführen sind (die bei älteren Laufwerken wahrscheinlicher sind), verstößt dies gegen die Annahmen einer unabhängigen, identischen Ausfallrate zwischen Laufwerken; Fehler sind in der Tat statistisch korreliert. In der Praxis ist die Wahrscheinlichkeit für einen zweiten Fehler, bevor der erste wiederhergestellt wurde (was zu Datenverlust führt), höher als die Wahrscheinlichkeit für zufällige Fehler. In einer Studie mit etwa 100.000 Laufwerken war die Wahrscheinlichkeit, dass zwei Laufwerke im selben Cluster innerhalb einer Stunde ausfallen, viermal höher als von der exponentiellen statistischen Verteilung vorhergesagt – die Prozesse charakterisiert, bei denen Ereignisse kontinuierlich und unabhängig mit konstanter Durchschnittsrate auftreten. Die Wahrscheinlichkeit von zwei Ausfällen im gleichen 10-Stunden-Zeitraum war doppelt so groß wie durch eine Exponentialverteilung vorhergesagt.

Nicht behebbare Lesefehler beim Neuaufbau

Nicht behebbare Lesefehler (URE) treten als Sektorlesefehler auf, auch bekannt als latente Sektorfehler (LSE). Das zugehörige Medienbewertungsmaß, die Rate nicht behebbarer Bitfehler (UBE), beträgt normalerweise garantiert weniger als ein Bit von 10 15 für Laufwerke der Enterprise-Klasse ( SCSI , FC , SAS oder SATA) und weniger als ein Bit von 10 14 für Festplatten der Desktop-Klasse (IDE/ATA/PATA oder SATA). Steigende Laufwerkskapazitäten und große RAID 5-Instanzen haben dazu geführt, dass die maximalen Fehlerraten nicht ausreichen, um eine erfolgreiche Wiederherstellung zu garantieren, da ein solcher Fehler bei einem oder mehreren verbleibenden Laufwerken während eines RAID-Set-Rebuilds mit hoher Wahrscheinlichkeit auftritt. Beim Wiederaufbau sind paritätsbasierte Schemata wie RAID 5 besonders anfällig für die Auswirkungen von UREs, da sie nicht nur den Sektor beeinflussen, in dem sie auftreten, sondern auch rekonstruierte Blöcke, die diesen Sektor für die Paritätsberechnung verwenden.

Paritätsbasierte Schemata mit doppeltem Schutz, wie z. B. RAID 6, versuchen, dieses Problem zu lösen, indem sie Redundanz bereitstellen, die Doppellaufwerkausfälle ermöglicht; Als Nachteil leiden solche Schemata unter einer erhöhten Schreibstrafe – der Häufigkeit, mit der auf das Speichermedium während einer einzelnen Schreiboperation zugegriffen werden muss. Schemata, die Daten von Laufwerk zu Laufwerk duplizieren (spiegeln), wie RAID 1 und RAID 10, haben ein geringeres Risiko durch UREs als solche, die Paritätsberechnung oder Spiegelung zwischen gestreiften Sets verwenden. Data Scrubbing kann als Hintergrundprozess verwendet werden, um UREs zu erkennen und wiederherzustellen, wodurch das Risiko, dass sie während RAID-Neuaufbaus auftreten und Doppellaufwerkausfälle verursachen, effektiv reduziert wird. Die Wiederherstellung von UREs beinhaltet die Neuzuordnung betroffener zugrunde liegender Plattensektoren unter Verwendung des Sektor-Neuzuordnungspools des Laufwerks; im Fall von UREs, die während des Hintergrund-Scrubbings erkannt werden, ermöglicht die Datenredundanz, die von einem voll funktionsfähigen RAID-Set bereitgestellt wird, die Rekonstruktion der fehlenden Daten und das Neuschreiben in einen neu abgebildeten Sektor.

Erhöhte Umbauzeit und Ausfallwahrscheinlichkeit

Die Laufwerkskapazität ist viel schneller gewachsen als die Übertragungsgeschwindigkeit, und die Fehlerraten sind im Vergleich dazu nur geringfügig gesunken. Daher kann die Wiederherstellung von Laufwerken mit größerer Kapazität Stunden, wenn nicht sogar Tage dauern. Während dieser Zeit können andere Laufwerke ausfallen oder dennoch unentdeckte Lesefehler auftreten. Die Rebuild-Zeit ist auch begrenzt, wenn das gesamte Array noch mit reduzierter Kapazität in Betrieb ist. Bei einem Array mit nur einem redundanten Laufwerk (gilt für die RAID-Level 3, 4 und 5 und für das "klassische" RAID 1 mit zwei Laufwerken) würde ein Ausfall des zweiten Laufwerks einen kompletten Ausfall des Arrays zur Folge haben. Auch wenn die mittlere Ausfallzeit (MTBF) einzelner Laufwerke im Laufe der Zeit zugenommen hat, hat dieser Anstieg nicht mit der gestiegenen Speicherkapazität der Laufwerke Schritt gehalten. Die Zeit für den Wiederaufbau des Arrays nach dem Ausfall eines einzelnen Laufwerks sowie die Wahrscheinlichkeit eines zweiten Ausfalls während eines Wiederaufbaus haben sich im Laufe der Zeit erhöht.

Einige Kommentatoren haben erklärt, dass RAID 6 in dieser Hinsicht nur ein "Pflaster" ist, weil es das Problem nur ein wenig weiter in die Tiefe treibt. Laut der NetApp- Studie von Berriman et al. aus dem Jahr 2006 sinkt die Ausfallwahrscheinlichkeit jedoch bei einer ordnungsgemäßen Implementierung von RAID 6 um einen Faktor von etwa 3.800 (im Vergleich zu RAID 5), selbst wenn Standardlaufwerke verwendet werden. Sollten die derzeit beobachteten Technologietrends jedoch unverändert bleiben, wird ein RAID-6-Array 2019 die gleiche Ausfallwahrscheinlichkeit haben wie sein RAID-5-Pendant im Jahr 2010.

Spiegelungsschemata wie RAID 10 haben eine begrenzte Wiederherstellungszeit, da sie die Kopie eines einzelnen ausgefallenen Laufwerks erfordern, im Vergleich zu Paritätsschemata wie RAID 6, die die Kopie aller Blöcke der Laufwerke in einem Array-Set erfordern. Dreifache Paritätsschemata oder Dreifachspiegelung wurden als ein Ansatz vorgeschlagen, um die Widerstandsfähigkeit gegenüber einem zusätzlichen Laufwerksausfall während dieser langen Wiederherstellungszeit zu verbessern.

Atomarität

Ein Systemabsturz oder eine andere Unterbrechung eines Schreibvorgangs kann zu Zuständen führen, in denen die Parität aufgrund der Nichtatomarität des Schreibvorgangs nicht mit den Daten übereinstimmt, so dass die Parität im Falle eines Plattenausfalls nicht zur Wiederherstellung verwendet werden kann. Dies wird allgemein als RAID 5-Schreibloch bezeichnet. Das RAID-Schreibloch ist ein bekanntes Datenkorruptionsproblem in älteren und Low-End-RAIDs, das durch unterbrochenes Auslagern von Schreibvorgängen auf die Festplatte verursacht wird. Das Schreibloch kann mit Write-Ahead-Logging adressiert werden . Dies wurde in mdadm behoben, indem zu diesem Zweck ein dediziertes Journaling-Gerät eingeführt wurde (um Leistungseinbußen zu vermeiden, werden normalerweise SSDs und NVMs bevorzugt).

Dies ist ein wenig verstandener und selten erwähnter Fehlermodus für redundante Speichersysteme, die keine Transaktionsfunktionen verwenden. Der Datenbankforscher Jim Gray schrieb in den frühen Tagen der Kommerzialisierung relationaler Datenbanken "Update in Place is a Poison Apple".

Zuverlässigkeit des Schreib-Cache

Es gibt Bedenken hinsichtlich der Zuverlässigkeit des Schreib-Cache, insbesondere in Bezug auf Geräte, die mit einem Write-Back-Cache ausgestattet sind , einem Caching-System, das die Daten als geschrieben meldet, sobald sie in den Cache geschrieben werden, und nicht, wenn sie in den Nicht-Cache geschrieben werden -flüchtiges Medium. Wenn das System einen Stromausfall oder einen anderen schwerwiegenden Fehler erfährt, können die Daten unwiderruflich aus dem Cache verloren gehen, bevor sie den nichtflüchtigen Speicher erreichen. Aus diesem Grund umfassen gute Write-Back-Cache-Implementierungen Mechanismen, wie z. B. redundante Batteriestromversorgung, um Cache-Inhalte bei Systemausfällen (einschließlich Stromausfällen) zu erhalten und den Cache beim Neustart des Systems zu leeren.

Siehe auch

Verweise

Externe Links