Zum Inhalt springen

RAID: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Bash/Kommandos » OSI/4 Transport » RAID
Sharifissah (Diskussion | Beiträge)
Änderung 21379 von Sharifissah (Diskussion) rückgängig gemacht.
Markierung: Rückgängigmachung
K Textersetzung - „z. B. “ durch „beispielsweise “
 
(59 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''R'''edundant '''A'''rray of '''I'''ndependent '''D'''isks
'''RAID''' - ''R''edundant ''A''rray of ''I''ndependent ''D''isks


=Funktion=
== Beschreibung ==
*Ein RAID dient dazu, mehrere physikalische Datenträger zu einem oder mehreren logischen Laufwerken zu vereinen und dadurch einen schnelleren Datenzugriff und/oder eine erhöhte Verfügbarkeit des Systems im Falle eines Datenträgerdefektes zu erreichen.
Datenträger zu logischen Laufwerken zusammenschließen
*Von Software-RAID spricht man, wenn das Zusammenwirken der Datenträger komplett softwareseitig organisiert wird.


*Im Allgemeinen macht es nur Sinn, Partitionen gleicher Größe zu verwenden, die auf unterschiedlichen Datenträger angelegt sind.
; Ziele
 
{| class="wikitable options big"
=RAID und Backup=
! Ziel !! Beschreibung
 
|-
*Ein RAID ersetzt keine Datensicherung!
| Höhere Verfügbarkeit ||
 
|-
*Ein RAID schützt ausschließlich vor Datenverlust durch Plattendefekte.
| Höhere Geschwindigkeit ||
 
|}
*Auch wenn es verlockend scheint, z.B. ein RAID 1 auf einem USB-Datenträger aufzusetzen, um eine automatische Sicherung zu erhalten, ist dies kein Backup.


*Das Entfernen der externen Datenträger führt immer dazu, dass sich das RAID im Fehlerzustand (degraded) befindet.
; Software-RAID
Zusammenwirken der Datenträger wird vom Betriebssystem organisiert


*Bei Wiederanschluss muss der interne Datenträger jedesmal komplett neu mit der externen Platte synchronisiert werden.
; RAID ist keine Datensicherung
Schützt ausschließlich vor Datenträgerausfälle


*Ein Datenverlust, der durch Fehler des Betriebssystems, des Dateisystems, durch die verwendeten Programme oder den Benutzer entsteht, wird sofort automatisch auf alle Laufwerke synchronisiert, so dass das vermeintliche Backup automatisch mit fehlerhaften Daten überschrieben wird.
== RAID-Level ==
 
{|class="wikitable options col1center col2center"
=IDE/SATA=
! RAID-Level !! mind. Partitionen !! Vorteil !! Speicherplatz !! Bemerkung
 
*Generell sollte man bei RAIDs moderne SATA-Datenträger verwenden, da der Datendurchsatz bei diesen zum Teil erheblich höher ist als bei älteren IDE-Platten.
 
*Zudem sind SATA-Platten prinzipiell "hotplugable".
**Das heißt, sie sind im laufenden Betrieb eines RAIDs an- und abschaltbar und damit auch austauschbar.
 
*Allerdings sollte man genau wissen, was man tut, bevor man sich an solcherlei Aktionen heranwagt.
 
Achtung!
Nicht jeder SATA-Controller ist in der Lage, mit "Hotplug" auch richtig umzugehen.
Man sollte auch darauf achten, dass man den richtigen Datenträger angibt, um Datenverlust zu vermeiden.
 
*Bei älteren IDE-ATA-Datenträgern gilt: die verwendeten Datenträger sollten nicht am selben IDE-Kanal hängen, da im Fehlerfall eines Datenträgers unter Umständen der komplette IDE-Kanal gestört wird und dadurch u.U. das RAID nicht mehr nutzbar ist.
 
*Bei einem RAID 0 erhöht sich die Gesamtleistung, da paralleles Lesen/Schreiben auf verschiedenen IDE-Kanälen schneller geht als auf nur einem.
 
=SSD RAIDs=
 
*Linux Software-RAID verwendet bis Kernel 3.11 nur einen Thread für RAID5/RAID6 Berechnungen.
**Das kann die Performance von SSD RAIDs limitieren.
 
*Im Januar 2013 gab es erste Patches von Fusion-io, diese waren zu diesem Zeitpunkt aber noch nicht reviewed.
 
*Die RAID5 multithreading Unterstützung wurde im Linux Kernel mit 3.12 aufgenommen.
 
=RAID-Level=
 
*Eine Übersicht über die gebräuchlichen und unterstützten RAID-Level.
 
*Bei der Angabe des Speicherplatzes im RAID bezeichnet '''k''' die Kapazität je Partition und '''n''' die Anzahl der verwendeten Partitionen.
 
{|class="wikitable"
|+ Auswahl von RAID-Typen im Überblick
|Typ ||mind. Partitionen || Speicherplatz || Vorteil || Bemerkung
|-
|-
| 0 || 2|| k*n|| Geschwindigkeit (Lesen & Schreiben), Plattenplatz|| Keine Partition darf ausfallen - '''Reißverschlussverfahren'''
| 0 || 2||
* Geschwindigkeit (Lesen & Schreiben)
* Plattenplatz
| k*n||
* Keine Partition darf ausfallen
* Reißverschlussverfahren
|-
|-
| 1|| 2|| k|| Ausfallsicherheit, Geschwindigkeit (Lesen)|| Alle bis auf eine Partition dürfen ausfallen - '''Spiegelung'''
| 1|| 2||
* Ausfallsicherheit
* Geschwindigkeit (Lesen)
| k||
* Alle bis auf eine Partition dürfen ausfallen
* Spiegelung
|-
|-
| 5|| 3|| k*(n-1)|| Plattenplatz, Ausfallsicherheit, Geschwindigkeit (Lesen)|| Eine Partition darf ausfallen - '''Striping & Parität'''
| 5|| 3||
* Plattenplatz
* Einfache Ausfallsicherheit
* Geschwindigkeit (Lesen)
| k*(n-1)||
* Eine Partition darf ausfallen
* Striping & Parität
|-
|-
| 6|| 4|| k*(n-2)|| Plattenplatz, bessere Ausfallsicherheit als RAID 5, Geschwindigkeit (Lesen)|| Zwei Partitionen dürfen ausfallen - '''Striping & doppelte Parität'''
| 6|| 4||
* Plattenplatz
* Doppelte Ausfallsicherheit
* Geschwindigkeit (Lesen)
| k*(n-2)||
* Zwei Partitionen dürfen ausfallen
* Striping mit doppelter Parität
|-
|-
| 10|| 4|| || Sicherheit und gesteigerte Schreib-/Lesegeschwindigkeit.|| Kombination aus RAID 0 über mehrere RAID 1
| 10|| 4||
* Ausfallsicherheit
* Geschwindigkeit (Lesen & Schreiben)
| ||
* Kombination aus RAID 0 über mehrere RAID 1
|}
|}


*RAID unterstützt auch unbenutzte Reservelaufwerke, sog. Hotspares.
Speicherplatz
**Dabei werden vorab Partitionen bekannt gegeben, die beim Ausfall eines Laufwerks innerhalb des RAID-Verbundes durch das Reservelaufwerk automatisch ersetzt werden.
<blockquote>
* k = Kapazität je Partition
* n = Anzahl der Partitionen
</blockquote>


=RAID-Zustände=
== Reservelaufwerke ==
; RAID unterstützt Reservelaufwerke (Hotspares)
Partitionen, die beim Ausfall eines Laufwerks innerhalb des RAID-Verbundes durch das Reservelaufwerk automatisch ersetzt werden


*Ein RAID kann sich in unterschiedlichen Zuständen befinden, die seinen Status zusammenfassen:
== RAID-Zustände ==
Ein RAID kann sich in unterschiedlichen Zuständen befinden, die seinen Status zusammenfassen


{|class="wikitable"
{|class="wikitable options"
|+ RAID-Zustände im Überblick
! Zustand !! Beschreibung
| Zustand || Beschreibung
|-
|-
| '''Clean'''|| Bezeichnet den Normalzustand. Es liegt kein Fehler vor und alle Prüf- und Initialisierungsaufgaben sind abgeschlossen.
| Clean || Bezeichnet den Normalzustand. Es liegt kein Fehler vor und alle Prüf- und Initialisierungsaufgaben sind abgeschlossen
|-
|-
| '''Degraded'''|| Es liegt ein Ausfall vor. Je nach RAID-Level kann dieser durch Austausch einer Datenträger mit einem anschließenden Rebuild behoben werden um das RAID wieder in den Clean-Zustand zu versetzen.
| Degraded || Es liegt ein Ausfall vor. Je nach RAID-Level kann dieser durch Austausch einer Datenträger mit einem anschließenden Rebuild behoben werden um das RAID wieder in den Clean-Zustand zu versetzen
|-
|-
| '''Resync'''|| Bei einem Resync werden je nach RAID-Level Sicherungsinformation, z.B. Paritäten, geprüft und ggf. neu erstellt. Ein neu angelegtes RAID befindet sich in der Regel in diesem Zustand. Auch während eines Resync sind die Daten auf dem RAID bereits vor einem Ausfall gesichert. Die volle Lese- und Schreibgeschwindigkeit kann jedoch erst nach Abschluss des Resync erreicht werden.
| Resync || Bei einem Resync werden je nach RAID-Level Sicherungsinformation, beispielsweise  Paritäten, geprüft und ggf. neu erstellt. Ein neu angelegtes RAID befindet sich in der Regel in diesem Zustand. Auch während eines Resync sind die Daten auf dem RAID bereits vor einem Ausfall gesichert. Die volle Lese- und Schreibgeschwindigkeit kann jedoch erst nach Abschluss des Resync erreicht werden
|-
|-
| '''Rebuild'''|| Bei einem Rebuild "erholt" sich das RAID von einem Ausfall. Die verlorenen Daten werden aus den Sicherungsinformationen wiederhergestellt und damit das Austauschlaufwerk gefüllt. Ein weiterer Ausfall eines Laufwerks während eines Rebuilds wird in der Regel zu Datenverlust führen.
| Rebuild || Bei einem Rebuild "erholt" sich das RAID von einem Ausfall. Die verlorenen Daten werden aus den Sicherungsinformationen wiederhergestellt und damit das Austauschlaufwerk gefüllt. Ein weiterer Ausfall eines Laufwerks während eines Rebuilds wird in der Regel zu Datenverlust führen
|}
|}


*'''Resync''' und '''Rebuild''' können je nach Größe und Art des RAIDs mehrere Stunden bis Tage in Anspruch nehmen.
Resync und Rebuild können je nach Größe und Art des RAIDs mehrere Stunden bis Tage in Anspruch nehmen
 
=Alignment (Ausrichtung)=
 
*Datenträger, RAID-Verbunde und Dateisysteme fassen Daten jeweils für sich in Blöcke zusammen, bevor sie gespeichert werden.
 
*Diese Blöcke haben im Allgemeinen alle unterschiedliche Größen.
*Ein Beispiel für das Lesen einer sehr kleinen Datei:
**Das Dateisystem möchte einen einzelnen 4 KiB großen Block lesen
***Das RAID muss dafür den oder die 512 KiB großen RAID-Blöcke (bei RAIDS oft Chunks genannt) laden, in denen der Dateisystem-Block abgelegt ist.
***Die Datenträger müssen dafür wiederum alle 512 Byte großen Blöcke (hier meist Sektoren genannt) laden, die am entsprechenden RAID-Block beteiligt sind.
***Im Idealfall muss also das RAID nur einen 512 KiB Block laden und die Datenträger dafür 1024 Blöcke (512 KiB = 512 B * 1024).
***Dafür müssen diese geschachtelten Blöcke jedoch aufeinander ausgerichtet sein.
***Im schlechtesten Fall könnte ein Dateisystem-Block kurz vor dem Ende eines RAID-Blocks liegen, so dass für einen Dateisystem-Block zwei RAID-Blöcke geladen werden müssen.
***Analog könnte ein RAID-Block auch 1025 anstatt 1024 Datenträger-Blöcke belegen, falls er mitten in einem Datenträger-Block anfängt.
***Das Lesen eines Dateisystem-Blocks würde damit im schlechtesten Fall das Laden von 2050 Datenträger-Blöcken erfordern.
***Dies führt zu dramatischen Performance-Einbußen schon beim Lesen.
***Da beim Schreiben oft auch zuerst die vorherigen Daten gelesen werden müssen, sind die Einbußen beim Schreiben noch stärker.
***Daher sollte bei der Verwendung von Blockgeräten immer auf das Alignment, also die Ausrichtung der verschiedenen Block-Arten aufeinander, geachtet werden:
****Der erste Dateisystem-Block eines RAID-Blocks sollte genau am Anfang des RAID-Blocks beginnen.
****Ein RAID-Block sollte genau am Anfang eines Datenträger-Blocks beginnen.
****Die Größe der RAID-Blöcke sollte ein ganzzahliges Vielfaches der Dateisystem-Blöcke sein.
****Die Größe der RAID-Blöcke sollte ein ganzzahliges Vielfaches der Datenträger-Blöcke sein.
****Partitionen sollten auf Sektorgrenzen der Datenträger ausgerichtet sein, wie im Abschnitt [[Linux:Software-RAID#Partitionierung|Partitionierung]] beschrieben.
****Dem Dateisystem sollten Informationen zum unterliegenden RAID bereitgestellt werden, um seine Blöcke passend auszurichten.
****Falls noch weitere Schichten zwischen Dateisystem und Datenträger verwendet werden, z.B. bei Verschlüsselung, muss auch bei diesen auf das Alignment geachtet werden.
 
==Anwendung==
*Datenträger, RAID-Verbunde und Dateisysteme fassen Daten jeweils für sich in Blöcke zusammen, bevor sie gespeichert werden.
*Diese Blöcke haben im Allgemeinen alle unterschiedliche Größen.
*Um eine optimale Performance zu erzielen, sollten die Größen aufeinander abgestimmt sein.
*Dafür muss zunächst die sog. Chunk Size, also die Datenmenge, die in einem einzelnen Schreibvorgang geschrieben wird, bekannt sein.
 
===Ermittlung der Chunk Size===
 
# mdadm -D /dev/md0 | grep "Chunk Size"
 
*Bei einem RAID 5 mit Standardeinstellungen liefert dies z.B.:


    Chunk Size : 512K
<noinclude>


*Es werden also 512 [https://de.wikipedia.org/wiki/Byte#Vergleichstabelle KiB] Chunks verwendet.
== Software/Hardware-RAID ==
; Pro Software-RAID
Software-RAIDs gibt es als Open-Source-Software
* Bei Defekt des Betriebssystems, kann das RAID mit einer neuen Installation des gleichen Betriebssystems wieder eingelesen werden
* Bei Software-RAIDs auf BIOS-Ebene (Host-RAID-Systemen) ist das nicht immer so


===Änderung der Chunk Size===
; Contra Software-RAID
*Chunk Size auf 64 KiB ändern.
Benutzt den Prozessor und verbraucht Ressourcen
*Macht nur Sinn, wenn auf dem RAID hauptsächlich sehr kleine Dateien geschrieben bzw. gelesen werden sollen.
* Bei einem RAID, das auf dem Betriebssystem (OS) eingerichtet wurde, profitiert das OS selber nicht vom RAID


# mdadm --grow -c 64 /dev/md0
; Pro Hardware-RAID
* Entlastung der Host-CPU.Alle Berechnungen werden vom RAID-Controller gemacht
* Steht schon beim Booten zur Verfügung
** Das OS profitiert vom RAID
* Unterstützt eine Vielzahl von Betriebssystemen


===Berechnung des Alignments===
; Contra Hardware-RAID
*Hieraus können, zusammen mit der Anzahl der Partitionen und des RAID-Levels, die Dateisystem-Parameter berechnet werden.
* Bei RAID-Controller-Defekt - kann kein baugleiches Modell aufgetrieben werden, wird das RAID zum Datengrab
* Zusätzliche Kosten für einen RAID-Controller (kein Fake-RAID)


*Am einfachsten geht das mittels eines [https://busybox.net/~aldot/mkfs_stride.html Raid-Stride-Calculators].
; Fake-RAIDs
<blockquote>
''' können nur eine begrenzte Anzahl von RAID-Leveln, häufig nur RAID-Level 0 und 1
Um die Controller/Karten so billig wie möglich zu halten, überlassen die Hersteller die RAID-Logik der CPU
=> Benutzt also den Prozessor und verbraucht Ressourcen
</blockquote>


*Alternativ können die Parameter auch von Hand ermittelt werden.
**'''block-size''' - Die Größe der Dateisystemblöcke in Bytes. Heutzutage werden fast ausschließlich '''4096 Byte''' (4 KiB) Blöcke verwendet.
**'''stride-size''' - Die Chunk Size umgerechnet in Dateisystemblöcke. Bei 512 KiB Chunk Size mit 4 KiB Blöcken ergibt sich '''512 KiB/ 4 KiB = 128'''.
**'''stripe-width''' - Die Größe eines Datenstreifens, also die Menge an Blöcken, die geschrieben wird, wenn ein voller Chunk auf jedes Laufwerk geschrieben wird. Diese berechnet sich aus '''stride-size * Anzahl der effektiv nutzbaren Partitionen'''. Bei einem RAID 5 über 4 Partitionen ergibt sich hier '''128 * 3 = 384'''.


*Details zur Anzahl der effektiv nutzbaren Partitionen findet man im Artikel [[Hardware:Storage:RAID#RAID-Level|Hardware:Storage:RAID]].
[[Kategorie:Linux/RAID]]


*Sind die Parameter ermittelt, wird das Dateisystem erstellt:
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
{{Special:PrefixIndex/Linux/RAID}}


# mkfs.ext4 -b 4096 -E stride=128,stripe-width=384 /dev/md0
=== Links ===
==== Weblinks ====
# https://de.wikipedia.org/wiki/RAID
# https://www.storage-insider.de/was-ist-raid-alles-ueber-level-1-bis-5-und-mehr-a-517806/
# https://www.globalsystem.ch/ratgeber/raid-systeme-erklaert/
# https://www.tecchannel.de/a/raid-im-ueberblick-grundlagen-raid-0-bis-7,401665


=weiterführende Artikel=
{{DEFAULTSORT:RAID}}
*[[Linux:Software-RAID]]
{{DISPLAYTITLE:RAID}}
*[[Linux:Software-RAID:Vorbereitung]]
*[[Linux:Software-RAID:Anlegen]]
*[[Linux:Software-RAID:Wartung]]
*[[Linux:Software-RAID:Fehlerbehebung]]
*[[Linux:Software-RAID:Komplexe Aufgaben]]


=Quellen=
[[Kategorie:RAID]]
[https://de.wikipedia.org/wiki/RAID https://de.wikipedia.org/wiki/RAID]


[[Category:Linux:Storage]]
</noinclude>
[[Category:Hardware]]

Aktuelle Version vom 28. April 2025, 10:46 Uhr

RAID - Redundant Array of Independent Disks

Beschreibung

Datenträger zu logischen Laufwerken zusammenschließen

Ziele
Ziel Beschreibung
Höhere Verfügbarkeit
Höhere Geschwindigkeit
Software-RAID

Zusammenwirken der Datenträger wird vom Betriebssystem organisiert

RAID ist keine Datensicherung

Schützt ausschließlich vor Datenträgerausfälle

RAID-Level

RAID-Level mind. Partitionen Vorteil Speicherplatz Bemerkung
0 2
  • Geschwindigkeit (Lesen & Schreiben)
  • Plattenplatz
k*n
  • Keine Partition darf ausfallen
  • Reißverschlussverfahren
1 2
  • Ausfallsicherheit
  • Geschwindigkeit (Lesen)
k
  • Alle bis auf eine Partition dürfen ausfallen
  • Spiegelung
5 3
  • Plattenplatz
  • Einfache Ausfallsicherheit
  • Geschwindigkeit (Lesen)
k*(n-1)
  • Eine Partition darf ausfallen
  • Striping & Parität
6 4
  • Plattenplatz
  • Doppelte Ausfallsicherheit
  • Geschwindigkeit (Lesen)
k*(n-2)
  • Zwei Partitionen dürfen ausfallen
  • Striping mit doppelter Parität
10 4
  • Ausfallsicherheit
  • Geschwindigkeit (Lesen & Schreiben)
  • Kombination aus RAID 0 über mehrere RAID 1

Speicherplatz

  • k = Kapazität je Partition
  • n = Anzahl der Partitionen

Reservelaufwerke

RAID unterstützt Reservelaufwerke (Hotspares)

Partitionen, die beim Ausfall eines Laufwerks innerhalb des RAID-Verbundes durch das Reservelaufwerk automatisch ersetzt werden

RAID-Zustände

Ein RAID kann sich in unterschiedlichen Zuständen befinden, die seinen Status zusammenfassen

Zustand Beschreibung
Clean Bezeichnet den Normalzustand. Es liegt kein Fehler vor und alle Prüf- und Initialisierungsaufgaben sind abgeschlossen
Degraded Es liegt ein Ausfall vor. Je nach RAID-Level kann dieser durch Austausch einer Datenträger mit einem anschließenden Rebuild behoben werden um das RAID wieder in den Clean-Zustand zu versetzen
Resync Bei einem Resync werden je nach RAID-Level Sicherungsinformation, beispielsweise Paritäten, geprüft und ggf. neu erstellt. Ein neu angelegtes RAID befindet sich in der Regel in diesem Zustand. Auch während eines Resync sind die Daten auf dem RAID bereits vor einem Ausfall gesichert. Die volle Lese- und Schreibgeschwindigkeit kann jedoch erst nach Abschluss des Resync erreicht werden
Rebuild Bei einem Rebuild "erholt" sich das RAID von einem Ausfall. Die verlorenen Daten werden aus den Sicherungsinformationen wiederhergestellt und damit das Austauschlaufwerk gefüllt. Ein weiterer Ausfall eines Laufwerks während eines Rebuilds wird in der Regel zu Datenverlust führen

Resync und Rebuild können je nach Größe und Art des RAIDs mehrere Stunden bis Tage in Anspruch nehmen


Software/Hardware-RAID

Pro Software-RAID

Software-RAIDs gibt es als Open-Source-Software

  • Bei Defekt des Betriebssystems, kann das RAID mit einer neuen Installation des gleichen Betriebssystems wieder eingelesen werden
  • Bei Software-RAIDs auf BIOS-Ebene (Host-RAID-Systemen) ist das nicht immer so
Contra Software-RAID

Benutzt den Prozessor und verbraucht Ressourcen

  • Bei einem RAID, das auf dem Betriebssystem (OS) eingerichtet wurde, profitiert das OS selber nicht vom RAID
Pro Hardware-RAID
  • Entlastung der Host-CPU.Alle Berechnungen werden vom RAID-Controller gemacht
  • Steht schon beim Booten zur Verfügung
    • Das OS profitiert vom RAID
  • Unterstützt eine Vielzahl von Betriebssystemen
Contra Hardware-RAID
  • Bei RAID-Controller-Defekt - kann kein baugleiches Modell aufgetrieben werden, wird das RAID zum Datengrab
  • Zusätzliche Kosten für einen RAID-Controller (kein Fake-RAID)
Fake-RAIDs

können nur eine begrenzte Anzahl von RAID-Leveln, häufig nur RAID-Level 0 und 1 Um die Controller/Karten so billig wie möglich zu halten, überlassen die Hersteller die RAID-Logik der CPU => Benutzt also den Prozessor und verbraucht Ressourcen

Anhang

Siehe auch

Links

Weblinks

  1. https://de.wikipedia.org/wiki/RAID
  2. https://www.storage-insider.de/was-ist-raid-alles-ueber-level-1-bis-5-und-mehr-a-517806/
  3. https://www.globalsystem.ch/ratgeber/raid-systeme-erklaert/
  4. https://www.tecchannel.de/a/raid-im-ueberblick-grundlagen-raid-0-bis-7,401665