RAID

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Grundsätzliches)
K
 
(9 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
'''R'''edundand '''A'''rray of ('''I'''nexpensive|'''I'''ndependend) '''D'''isks
 
'''R'''edundand '''A'''rray of ('''I'''nexpensive|'''I'''ndependend) '''D'''isks
 
==Grundsätzliches==
 
==Grundsätzliches==
Dient dazu, um mehrere Physikalische Festplatten (ggf. auch einzelne Partitionen) zu einem logischen LAufwerk zusammenzufassen.
+
Dient dazu, um mehrere Physikalische Festplatten (ggf. auch einzelne Partitionen) zu einem logischen Laufwerk zusammenzufassen.
  
 
RAID kann als Hardware oder als Software realisiert werden.
 
RAID kann als Hardware oder als Software realisiert werden.
Zeile 8: Zeile 8:
  
 
===JBOD===
 
===JBOD===
'''Just a bounce (?) of disks
+
'''Just a bunch of disks
  
 
Exportiert die angeschlossenen Platten als Einzelplatten ohne RAID-Funktionalität. D.h. man kann auch einzelne Platten dem Betriebssystem gegenüber "anmelden". Dies können die meisten, nicht aber alle richtigen RAID-Controller.
 
Exportiert die angeschlossenen Platten als Einzelplatten ohne RAID-Funktionalität. D.h. man kann auch einzelne Platten dem Betriebssystem gegenüber "anmelden". Dies können die meisten, nicht aber alle richtigen RAID-Controller.
Zeile 20: Zeile 20:
 
Die Daten werden sequentiell (=hintereinander) auf die beteiligten Festplatten geschrieben. Zuerst wird Platte 1 gefüllt, dann Platte 2 usw. Logisch erscheinen diese als ein Laufwerk.
 
Die Daten werden sequentiell (=hintereinander) auf die beteiligten Festplatten geschrieben. Zuerst wird Platte 1 gefüllt, dann Platte 2 usw. Logisch erscheinen diese als ein Laufwerk.
  
Nachteil ist, daß kein Geschwindigkeitsvorteil auftritt. Bei Ausfall einer der Festplatten kann man mit etwas Geschick die Daten, die auf den anderen Festplatten gespeicher sind, nocht retten.  
+
Nachteil ist, daß kein Geschwindigkeitsvorteil auftritt. Bei Ausfall einer der Festplatten kann man mit etwas Geschick die Daten, die auf den anderen Festplatten gespeichert sind, noch retten.  
  
 
===RAID 0===
 
===RAID 0===
Zeile 30: Zeile 30:
 
Die Daten werden blockweise auf die beteiligten Festplatten verteilt. Dadurch muß der Computer nicht darauf warten, bis die Festplatte einen Block geschrieben hat, sondern kann gleich den nächsten Block auf die nächste Platte schreiben. Beim Lesen umgekehrt.
 
Die Daten werden blockweise auf die beteiligten Festplatten verteilt. Dadurch muß der Computer nicht darauf warten, bis die Festplatte einen Block geschrieben hat, sondern kann gleich den nächsten Block auf die nächste Platte schreiben. Beim Lesen umgekehrt.
  
Nachteil ist jedoch, daß bei Ausfall einer der beteiligten Platten das komplette RAID komplett zerstört ist, da von einer darauf gescpeicherten Datei jeder 2. (bzw. 3. usw.) Block fehlt. Eine Datenrettung ist unmöglich.
+
Nachteil ist jedoch, daß bei Ausfall einer der beteiligten Platten das komplette RAID komplett zerstört ist, da von einer darauf gespeicherten Datei jeder 2. (bzw. 3. usw.) Block fehlt. Eine Datenrettung ist unmöglich.
  
 
===RAID 1===
 
===RAID 1===
Zeile 51: Zeile 51:
 
*Wird nicht verwendet
 
*Wird nicht verwendet
 
===RAID 5===
 
===RAID 5===
*Mindestanzahl HDD:  3, gleiche Größe
+
*Mindestanzahl HDD:  3, gleiche Größe (Sollte nicht, aber kann aber auch mit unterschiedlich großen Platten erstellt werden)
 
*Redundanz:          Ja (eine Platte kann ausfallen)
 
*Redundanz:          Ja (eine Platte kann ausfallen)
*Geschwindigkeit:    Lesen: ca. 2x schneller, Schreiben: deutlich langsamer
+
*Geschwindigkeit:    Lesen: ca. 2x schneller, Schreiben: je nach System, im allgemeinen schneller als eine einzelne Platte
 
*Besonderheiten:    Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch
 
*Besonderheiten:    Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch
  
 
Die Blöcke werden mit einer logischen Operation (üblicherweise XOR) verknüpft, der Ergebnisblock wird zusätzlich auf dem Array gespeichert. Beim Lesen kann nun so verfahren werden wie bei RAID 0.
 
Die Blöcke werden mit einer logischen Operation (üblicherweise XOR) verknüpft, der Ergebnisblock wird zusätzlich auf dem Array gespeichert. Beim Lesen kann nun so verfahren werden wie bei RAID 0.
  
Nachteil ist, dass der Schreibzugriff deutlich langsamer ist, da zuerst der Paritätsblock berechnet und gespeichert werden muss. Mit steigender Anzahl der Festplatten steigt die Speicherplatzeffizienz. Man verschenkt immer genau eine Platte.
+
Nachteil ist, dass der Schreibzugriff deutlich langsamer ist, da zuerst der Paritätsblock berechnet und gespeichert werden muss. Mit steigender Anzahl der Festplatten steigt die Speicherplatzeffiziens. Man verschenkt immer genau eine Platte.
  
 
Vorteil ist die Redundanz des Systems. Bei Ausfall einer Festplatte liegen die Daten immer noch auf den anderen. Man kann weiterarbeiten und eine neue Festplatte einsetzen, die sich dann wieder neu synchronisiert.
 
Vorteil ist die Redundanz des Systems. Bei Ausfall einer Festplatte liegen die Daten immer noch auf den anderen. Man kann weiterarbeiten und eine neue Festplatte einsetzen, die sich dann wieder neu synchronisiert.
Zeile 67: Zeile 67:
 
*Mindestzahl HDD:    4, gleiche Größe
 
*Mindestzahl HDD:    4, gleiche Größe
 
*Redundanz:          Ja (2 Platten können ausfallen)
 
*Redundanz:          Ja (2 Platten können ausfallen)
*Geschwindigkeit:    Lesen: ca. schneller Schreiben: deutlich langsamer
+
*Geschwindigkeit:    Lesen: schneller Schreiben: schneller, je nach System
*Besonderheiten:    Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch, sehr aufwendige Berechnung nur mit Hardware möglich.
+
*Besonderheiten:    Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch, sehr aufwendige Berechnung fast nur mit Hardware möglich.
 +
 
 +
Der Vorteil bei RAID 6 ist, daß ZWEI Platten ausfallen dürfen. Da die Platten nach dem Austausch einer Platte während des Resyncs stark belastet sind, kann es sein daß eine weitere Platte ausfällt. Dies führt dann nicht zur Zerstörung des Arrays.
 +
 
 +
===RAID 10 und andere Kombinationen===
 +
Man kann die einzelnen RAID-Level auch kombinieren, um so weitere Steigerungen der Geschwindigkeit und/oder Ausfalltollernaz zu erreichen. Hier ein Beispiel für RAID 10, durchaus üblich sind auch die Varianten RAID50 oder RAID01.
 +
*Mindestzahl HDD:    4, jeweils zwei gleiche Größe
 +
*Redundanz:          Ja (2 Platten können ausfallen)
 +
*Geschwindigkeit:    Lesen: deutlich schneller Schreiben: deutlich schneller
 +
*Besonderheiten:    Zwei RAID1 Systeme werden zu einem RAID0 zusammengeschaltet. Fällt eine Platte aus, kann eine zweite ausfallen, sofern diese nicht im gleichen RAID1 ist.
  
 
==Software RAID unter Linux==
 
==Software RAID unter Linux==
Zeile 75: Zeile 84:
 
Der Kernel muß die Unterstützung für MD und RAID sowie für die verwendete RAID-Level beinhalten.
 
Der Kernel muß die Unterstützung für MD und RAID sowie für die verwendete RAID-Level beinhalten.
 
===mdtools===
 
===mdtools===
Die unter Linux realiserte Software-RAID Lösung nennt sich mdtools (md=MultipleDisks). Zuerst muß eine Konfigurationsdatei ''/etc'raidtab'' erstellt werden. Diese Datei wird ausschließlich beim Erstellen des Raid-Devices benötigt. Wenn man den "persistent-superblock" verwendet, ist der Inalt dieser Datei später uninteressant- sie muß aber dennoch existieren! Selbstverständlich ist es dennoch zu empfehlen, diese Datei stets mit dem Raid abzugleichen, um im Fehlerfall besser reagieren zu können.
+
Die unter Linux realiserte Software-RAID Lösung nennt sich mdtools (md=MultipleDisks). Zuerst muß eine Konfigurationsdatei ''/etc/raidtab'' erstellt werden. Diese Datei wird ausschließlich beim Erstellen des Raid-Devices benötigt. Wenn man den "persistent-superblock" verwendet, ist der Inalt dieser Datei später uninteressant- sie muß aber dennoch existieren! Selbstverständlich ist es dennoch zu empfehlen, diese Datei stets mit dem Raid abzugleichen, um im Fehlerfall besser reagieren zu können.
  
 
Beispiel:
 
Beispiel:
Zeile 137: Zeile 146:
 
=== Links ===
 
=== Links ===
  
[http://de.wikipedia.org/wiki/RAID Wikipedia] Ausführliche Beschreibung auf Wikipedia
+
* Ausführliche Beschreibung von {{wikipedia|RAID}} auf Wikipedia
 +
* http://wiki.ubuntuusers.de/Software-RAID
  
 
[[Kategorie:Begriffserklärungen]]
 
[[Kategorie:Begriffserklärungen]]

Aktuelle Version vom 6. Mai 2012, 07:13 Uhr

Redundand Array of (Inexpensive|Independend) Disks

Inhaltsverzeichnis

[Bearbeiten] Grundsätzliches

Dient dazu, um mehrere Physikalische Festplatten (ggf. auch einzelne Partitionen) zu einem logischen Laufwerk zusammenzufassen.

RAID kann als Hardware oder als Software realisiert werden.

Es sind verschiedene RAID-Level definiert:

[Bearbeiten] JBOD

Just a bunch of disks

Exportiert die angeschlossenen Platten als Einzelplatten ohne RAID-Funktionalität. D.h. man kann auch einzelne Platten dem Betriebssystem gegenüber "anmelden". Dies können die meisten, nicht aber alle richtigen RAID-Controller.

[Bearbeiten] linear RAID

  • Mindestzahl HDD: 2, auch ungleiche Größen
  • Redundanz: Nein
  • Geschwindigkeit: unverändert
  • Besonderheiten: Deutlich höhere Ausfallwahrscheinlichkeit

Die Daten werden sequentiell (=hintereinander) auf die beteiligten Festplatten geschrieben. Zuerst wird Platte 1 gefüllt, dann Platte 2 usw. Logisch erscheinen diese als ein Laufwerk.

Nachteil ist, daß kein Geschwindigkeitsvorteil auftritt. Bei Ausfall einer der Festplatten kann man mit etwas Geschick die Daten, die auf den anderen Festplatten gespeichert sind, noch retten.

[Bearbeiten] RAID 0

  • Mindestzahl HDD: 2, gleiche Größe
  • Redundanz: Nein
  • Geschwindigkeit: Lesen: ca. 2x schneller Schreiben: ca. 2x schneller
  • Besonderheiten: Deutlich höhere Ausfallwahrscheinlichkeit

Die Daten werden blockweise auf die beteiligten Festplatten verteilt. Dadurch muß der Computer nicht darauf warten, bis die Festplatte einen Block geschrieben hat, sondern kann gleich den nächsten Block auf die nächste Platte schreiben. Beim Lesen umgekehrt.

Nachteil ist jedoch, daß bei Ausfall einer der beteiligten Platten das komplette RAID komplett zerstört ist, da von einer darauf gespeicherten Datei jeder 2. (bzw. 3. usw.) Block fehlt. Eine Datenrettung ist unmöglich.

[Bearbeiten] RAID 1

  • Mindestzahl HDD: 2, gleiche Größe
  • Redundanz: Ja
  • Geschwindigkeit: Lesen: ca. 2x schneller Schreiben: unverändert
  • Besonderheiten: Redundanz, verbunden mit guter Lesegeschwindigkeit, dafür Platzverbrauch

Die Daten werden auf den beteiligten Festplatten identisch abgespeichert. Ein Block wird beim Schreiben also verdoppelt (verdreifacht...) und auf alle beteiligten Platten geschrieben. Beim Lesen kann nun so verfahren werden wie bei RAID 0.

Nachteil ist, daß sehr viel Festplattenplatz "verschenkt" wird. Man hat je nach Anzahl der Platten nur 50% (33%...) des gesamten Speicherplatzes zur Verfügung.

Vorteil ist die Redundanz des Systems. Bei Ausfall einer Festplatte liegen die Daten immer noch auf den anderen. Man kann weiterarbeiten und eine neue Festplatte einsetzen, die sich dann wieder neu synchronisiert.

[Bearbeiten] RAID 2

  • Wird nicht verwendet

[Bearbeiten] RAID 3

  • Wird nicht verwendet

[Bearbeiten] RAID 4

  • Wird nicht verwendet

[Bearbeiten] RAID 5

  • Mindestanzahl HDD: 3, gleiche Größe (Sollte nicht, aber kann aber auch mit unterschiedlich großen Platten erstellt werden)
  • Redundanz: Ja (eine Platte kann ausfallen)
  • Geschwindigkeit: Lesen: ca. 2x schneller, Schreiben: je nach System, im allgemeinen schneller als eine einzelne Platte
  • Besonderheiten: Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch

Die Blöcke werden mit einer logischen Operation (üblicherweise XOR) verknüpft, der Ergebnisblock wird zusätzlich auf dem Array gespeichert. Beim Lesen kann nun so verfahren werden wie bei RAID 0.

Nachteil ist, dass der Schreibzugriff deutlich langsamer ist, da zuerst der Paritätsblock berechnet und gespeichert werden muss. Mit steigender Anzahl der Festplatten steigt die Speicherplatzeffiziens. Man verschenkt immer genau eine Platte.

Vorteil ist die Redundanz des Systems. Bei Ausfall einer Festplatte liegen die Daten immer noch auf den anderen. Man kann weiterarbeiten und eine neue Festplatte einsetzen, die sich dann wieder neu synchronisiert.

Dort, wo es nicht unbedingt auf schnellste Schreibzugriffe ankommt, ist RAID5 eine sehr gute Wahl.

[Bearbeiten] RAID 6

  • Mindestzahl HDD: 4, gleiche Größe
  • Redundanz: Ja (2 Platten können ausfallen)
  • Geschwindigkeit: Lesen: schneller Schreiben: schneller, je nach System
  • Besonderheiten: Redundanz, verbunden mit guter Lesegeschwindigkeit, weniger Platzverbrauch, sehr aufwendige Berechnung fast nur mit Hardware möglich.

Der Vorteil bei RAID 6 ist, daß ZWEI Platten ausfallen dürfen. Da die Platten nach dem Austausch einer Platte während des Resyncs stark belastet sind, kann es sein daß eine weitere Platte ausfällt. Dies führt dann nicht zur Zerstörung des Arrays.

[Bearbeiten] RAID 10 und andere Kombinationen

Man kann die einzelnen RAID-Level auch kombinieren, um so weitere Steigerungen der Geschwindigkeit und/oder Ausfalltollernaz zu erreichen. Hier ein Beispiel für RAID 10, durchaus üblich sind auch die Varianten RAID50 oder RAID01.

  • Mindestzahl HDD: 4, jeweils zwei gleiche Größe
  • Redundanz: Ja (2 Platten können ausfallen)
  • Geschwindigkeit: Lesen: deutlich schneller Schreiben: deutlich schneller
  • Besonderheiten: Zwei RAID1 Systeme werden zu einem RAID0 zusammengeschaltet. Fällt eine Platte aus, kann eine zweite ausfallen, sofern diese nicht im gleichen RAID1 ist.

[Bearbeiten] Software RAID unter Linux

[Bearbeiten] Kernel-Voraussetzungen

Der Kernel muß die Unterstützung für MD und RAID sowie für die verwendete RAID-Level beinhalten.

[Bearbeiten] mdtools

Die unter Linux realiserte Software-RAID Lösung nennt sich mdtools (md=MultipleDisks). Zuerst muß eine Konfigurationsdatei /etc/raidtab erstellt werden. Diese Datei wird ausschließlich beim Erstellen des Raid-Devices benötigt. Wenn man den "persistent-superblock" verwendet, ist der Inalt dieser Datei später uninteressant- sie muß aber dennoch existieren! Selbstverständlich ist es dennoch zu empfehlen, diese Datei stets mit dem Raid abzugleichen, um im Fehlerfall besser reagieren zu können.

Beispiel:

# Beispiel für RAID0 mit drei Festplatten
raiddev /dev/md0
       raid-level              0
       nr-raid-disks           3
       persistent-superblock   1
       chunk-size              32
       device                  /dev/sda5
       raid-disk               0
       device                  /dev/sdb
       raid-disk               1
       device                  /dev/sdc5
       raid-disk               2
# Beispiel für RAID1 mit drei Festplatten
raiddev /dev/md1
       raid-level              1
       nr-raid-disks           3
       persistent-superblock   1
       chunk-size              32
       device                  /dev/hda5
       raid-disk               0
       device                  /dev/hdb5
       raid-disk               1
       device                  /dev/hdc5
       raid-disk               2


# Beispiel für RAID5 mit drei Festplatten
raiddev /dev/md1
       raid-level              5
       nr-raid-disks           3
       persistent-superblock   1
       chunk-size              32
       device                  /dev/sdd5
       raid-disk               0
       device                  /dev/sde5
       raid-disk               1
       device                  /dev/sdf5
       raid-disk               2


Anschließend können die Arrays mit mkraid /dev/md0 angelegt werden. Danach kann man das Array formatieren (z.B. mkreiserfs /dev/md0) und verwenden (mount /dev/md0 /video0).

Eine nachträgliche Vergrößerung bzw. Verkleinerung ist nicht vorgesehen. Es gibt zwar die Möglichkeit mittels dem Programm mdadm, ist aber mit Risiko verbunden. Hier bietet sich dann eher ein LVM an.

[Bearbeiten] Hardware RAID unter Linux

Alternativ ist es möglich, einen speziellen Hardware-RAID-Controller einzusetzen. Beispiele für unter aktuellen Kernel-Versionen (>=2.6.10) gut unterstützte Controller sind die Modelle der Serie 8xxx von 3ware sowie die MegaRAID-Serie (150-4|6) von LSI Logic (früher Symbios bzw. NCR). Solche Adapter, die preislich meist zwischen 200 und 500 EUR angesiedelt sind, sollten keinesfalls mit den sogenannten FakeRAID-Controllern verwechselt werden, wie sie heute auf vielen Motherboards bereits vorhanden sind. Sie unterscheiden sich von diesen durch eine eigene CPU sowie durch auf dem Controller befindlichen Arbeits- bzw. Cache-Speicher. Gegenüber dem Kernel präsentieren sich solche Controller als einfacher SCSI-Controller, der dann je angelegtem RAID-Volume eine virtuelle SCSI-Festplatte emuliert. Da der Kernel nichts vom RAID wissen muss, sind solcher Controller ohne besondere Maßnahmen bootfähig.

[Bearbeiten] Vorteile gegenüber einem Linux-Software-Raid

  • Checksummenberechnung (RAID5) läuft ohne Belastung der CPU ab
  • keine inkonsistenten Daten nach einem Betriebssystem-Crash
  • keine inkonsistenten Daten nach einem Stromausfall, sofern eine meist optional erhältliche Battery Backup Unit (BBU) verwendet wurde (kleine Aufsatzsteckkarte für den RAID-Controller)
  • meist deutlich bessere Performance, speziell bei Verwendung eines entsprechenden Server-Mainboards mit hinreichender PCI-Bandbreite
  • in der SATA-Version hotplug-fähig -> Plattentausch ohne Reboot/Herunterfahren des Systems
  • keinerlei manueller Verwaltungsaufwand, Adminsitration der Volumes meist menugeführt per Controller-BIOS oder spezieller Linux-Software


[Bearbeiten] Links