Linux unterstützt RAID im Kernel - man braucht also keine spezielle Hardware, um mehrere Festplatten (BlockDevices) zu einem sog. RAID-Array zusammenzubinden.
Es werden die RAID-Levels 0, 1, 4 und 5 unterstützt, des weiteren lineares Aneinanderhängen mehrerer Devices.
Natürlich kann man auch verschiedene Level miteinander kombinieren, z.B. ein RAID1 über zwei RAID0.
Der SW-RAID-Support ist seit 2.4 Bestandteil des offiziellen Kernels - vorher gab es allerdings auch schon Patches für 2.2, die auch schon sehr stark in Gebrauch waren.
Seit 2.4.1 gibt es auch keine Probleme mehr mit JournalingFilesystemen oder Swapping auf RAID.
Vorteile:
- keine Zusatzkosten für Hardware-RAID-Controller
kein Problem mit Beschaffung von Ersatzteilen (kein RAID-Controller, kein RAID-Controller-Defekt )
funktioniert mit SCSI-Controllern, EIDE-Controllern und auch sonst mit praktisch jedem BlockDevice (auch /dev/loop, /dev/mdX, /dev/ndX usw.)
trotz anderslautender Vorurteile ist SW-RAID nicht langsam
OpenSource kann einem im Notfall Daten retten (fragt JochenSchnürle )
- keine Treiberprobleme (es werden i.d.R. gängige und daher gut getestete SCSI- oder EIDE-Standard-Controller als Grundlage verwendet)
bei aktuellen Prozessoren schneller als IDE-RAID-Controller, siehe Test in c't 1/2003, Seite 126ff. In jedem RAID-Level.
Nachteile:
- bei RAID5 müssen die Parity-Daten vom Hauptprozessor berechnet werden (ist allerdings auf aktuellen GHz-Prozessoren normalerweise kein Problem - wenn man sich allerdings die letzten paar Prozente Rechenpower einer hochbelasteten Maschine sehr teuer erkauft hat, ist ein HW-Raidcontroller u.U. angebrachter)
Auf meinem Celeron 1200MHz habe ich beim Kopieren von großen Files innerhalb eines RAID5 (mit LVM und ReiserFS) ca. 50% System-Last, im normalen Betrieb sind es unter 10% -- RonnyBuchmann
- für die Bootfähigkeit müssen einige Randbedingungen beachtet werden
Hot-Swapping-Support fraglich (weiß da jemand mehr?), siehe auch hdparm
Tools
UnixConf - Konfigurations-Frontend mit LVM&Raid-Support
Tipps & Tricks
Booten:
- entweder man macht /boot (oder /) auf eine nicht-RAID-Partition
oder man verwendet den RAID1-Modus eines aktuellen LILOs
Sonstiges:
immer ein Monitoring laufen lassen
- eine korrekte /etc/raidtab (oder mdadm.conf) irgendwo außerhalb des RAIDs sichern!
- wer Abstürze vermeiden will, swappt auf RAID1, dann steht der Swapspace auch noch bei Plattenausfall zur Verfügung
- Swappen auf RAID1 ist praxisgetestet und funktioniert spätestens ab Kernel 2.4.17 vorzüglich und auch bei hoher Last sowie bei parallel laufendem RAID-Resync!
- bei IDE-Platten: immer nur eine Platte(Master) pro Kanal, sonst fällt beim Ausfall einer Platte immer auch die zweite(Slave) aus
- Ausnahme: RAID0+1, dabei die RAID0 Platten jeweils an einem Kanal und die Kanäle über RAID1 gespiegelt
- bei vielen Platten und hohem Performancebedarf sollte man ein System mit mehreren/schnelleren PCI-Bussen verwenden
proc/mdstat zeigt den Zustand der Arrays und den Fortschritt eines Rebuilds
Den Zustand der Platten mit den SmartMonTools überwachen.
Fragen und Antworten
F: Was bedeutet die Meldung "raid5: switching cache buffer size"?
A: Die Meldung erscheint, wenn über verschiedene Blockgrößen auf ein RAID-Device zugegriffen wird, z.B.
DateiSysteme mit verschiedenen Blockgrößen
- Dateisystem mit variablen Blockgrößen
LVM Snapshots
siehe auch http://www.luga.at/mailing-lists/luga/2003/01/msg00046.html Aus Performance-Gründen sollte man also darauf achten, innerhalb eines RAID-Device nur eine Blockgröße zu verwenden.
F: Wo liegt denn bitte der Unterschide zwischen Raid-0 und lineares Aneinanderhängen mehrerer Devices??? (2. Absatz!!!) -- JanRoehrich
A:
- Bei RAID-0 werden die Daten scheibchenweise abwechselnd auf die beteiligten Platten geschrieben, man erreicht damit die n-fache Geschwindigkeit gegenüber einer einzelnen Platte (n = Anzahl der Platten). Bei RAID-1 erreicht man dasselbe, aber nur beim Lesen.
- Bei LINEAR werden die Platten nacheinander beschrieben, d.h. zuerst wird die erste Platte voll gemacht, dann die zweite. Außer einer höheren Wahrscheinlichkeit der partiellen Datenrettung im Falle eines Plattenausfalls, bietet der LINEAR-Modus keine Vorteile gegenüber RAID-0.
Bei den IDE-Pseudo-RAID-Controllern wird dieser Modus auch als JBOD (Just a Bunch Of Disks) bezeichnet.
- Mit LVM kann man dasselbe übrigens flexibler handhaben.
Weitere Infos
Software RAID HowTo(englisch, aktuell) Kopie
Software-Raid-Howto (Deutsch, inoffiziell): Mirror1 Mirror2 Mirror3
Software Raid HowTo Sehr gute Schritt für Schritt Anleitung (Englisch)