Startseite ]  [ Netz-Schule ]  [ Linux-Schule ]  [ Map ]

  Know How
  Glossar

   
  Linux-Schule Know How  

Linux RAID

bedeutet soviel wie "ein Bündel Platten das Eure Informationen sicher verwahrt" oder, weniger blumig im Original - Redundant Array of Independent Disks. Das besagt nichts anderes, als das Eure Daten zielsicher auf mehreren Festplatten verwahrt werden. Nicht immer bedeutet RAID erhöhte Datensicherheit. In einigen Fällen wird es einfach zur Performancesteigerung verwendet. Der ursprüngliche Sinn ist allerdings Datensicherheit beim Ausfall einer Festplatte.

Im Normalfall wird ein RAID System Hardwaretechnisch realisiert, indem man mehrere zueinander passende Festplatten an einen speziellen RAID fähigen Controller anbindet. Bekanntere Vertreter Ihrer Art sind die Auto-RAID Systeme von HP und SUN, der Serve-RAID von IBM etc. Diese Systeme sind allesamt ganz Klasse, haben jedoch den Nachteil auch ziemlich teuer zu sein. Was aber macht man wenn man selbst ein RAID System braucht oder einfach eines haben will ( Spieltrieb befriedigen, Performance steigern, Datensicherheit.. ) ? Man benutzt die Mechanismen des Linux-Kernel und einige Zusatztools. Das ganze nennt sich dann Software-RAID, ist rel. performant, sehr zuverlässig und liegt preislich im Bereich 0,-- Euro

Klären wir erstmal die Frage der verfügaren RAID Level.

RAID linear
ist ein einfacher Mechanismus der mehrere Platten zu einer einzigen verschmilzt. Der Vorteil hier ist, das Ihr jede Platte einfach in das Array einhängen könnt ohne Euch Gedanken um Ihre Grösse machen zu müssen. So könnt Ihr Euren Platz beliebig und leicht erweitern. Nachteil : Geht eine Platte kaputt, sind sämtliche Daten weg. Performancevorteil gleich 0.
RAID Level 0
beschreibt das Zusammenfassen mehrerer Platten in ein sog. " Stripe Set". Dabei werden Schreib und Lesezugriffe auf mehrere Platten verteilt, was vorallem wenn Ihr mit Datenbanken arbeitet einen Geschwindigkeitsvorteil mit sich bringt. Schliesslich könnt Ihr damit mehr Daten in der gleichen Zeit einlesen oder wegschreiben. Der Nachteil ist auch hier, das keinerlei Datenredundanz vorliegt. Geht eine Festplatte den Bach runter, sind alle Daten verschwunden. Diese Variante ist die im Heimbereich übliche. Dabei solltet Ihr beachten das die Platten im Optimalfall identisch sind.
RAID Level 1 *wird unten behandelt*
ist der erste Mechanismus der auch für den semiprofessionellen Bereich geeignet ist. Hier wird die Festplatte gespiegelt, deswegen redet man hier auch häfig von "Mirroring". Die Festplatten sollten identisch sein, da die Größe des zur Verfügung stehenden Speichers von der kleineren Platte vorgegeben wird. Fällt eine Platte aus ist das kein Problem, da Ihr die Daten von der anderen nehmen könnt. Quasi ein Backup zur Laufzeit.
RAID Level 4
ist schon sehr interessant für den Einsatz in mittelständischen Unternehmen mit kleinen Netzen. RAID 4 beschreibt ein Strping Set, wie in Level 1, mit dem Vorteil einer eigenen "Parity Partition". Anhand der Daten die hier gespeichert werden, lassen sich bei einem ev. Plattenausfall die Daten des Stripe Sets wieder rekontruieren. Der Nachteil liegt hier in der Performance. Durch die eigene Parity Partition, erfolgen Schreibzugriffe doppelt da Daten auch hier geschrieben werden müssen. Auch hier müssen die Platten die gleiche größe haben.
RAID 5
stellt den Gipfel an Rednudanz dar. Hier werden die Informationen auf alle Platten verteilt, incl. der Parity Informationen, so das ein doppelter Schreibzugriff entfällt. Wenn eine Platte ausfällt, können auch anhand der Parity Informationen auf den beiden verbleibenden, die Informationen wieder hergestellt werden. Auch RAID 5 hat einen Nachteil. Der Platz : Wenn man z.B. 3 Platten a 18 GigaByte in ein RAID Set steckt, erhält man nur 2 x 18 GigaByte "Nettospeicherplatz". Die restlichen 18 GB gehen für die Parity Informationen drauf. Wie bei RAID 1 und 4 müssen auch hier die Platten die gleiche Größe haben.

Am besten ist ohnehin man kauft identische Platten. Soweit ein kurzer Überblick über die RAID Level. Kommen wir zur Praxis. Erklärt wird am Beispiel von RAID Level 1. Das hat 2 Gründe. Erstens ist er der, für den Heimeinsatz, geeignetste und zweitens habe ich zufällig sowas bei mir eingerichtet. Guck an ;)

Let there be light... und das Paket ap

ap liegt im Paket RAID Tools und beinhaltet alle Zusatzprogramme, die benötigt werden um ein RAID System aufzubauen und zu handhaben. Als erstes solltet Ihr aber noch den Kernel-Patch einspielen, der es möglich macht von einer RAID Platte zu booten. Download unter www.kernel.org. Die genaue Adresse will ich hier wegem ständigen Wechsel nicht angeben. Der Patch wird eingespielt indem Ihr ihn in das Verzeichnis /usr/src kopiert und dann mit

  • patch=p0<raid0145-19990724-2.2.10

installiert. Nach dem entsprechenden Neukompilieren des Kernels und einem Reboot seit Ihr fertig. Wenn alles entsprechend funktioniert hat, habt Ihr im Verzeichnis : /proc die Datei mdstat, die in etwa so aussehen sollte :

Personalities : [1 linear]
read_ahead not set
md0 : inactive
md1 : inactive
md2 : inactive

Logisch das hier noch nichts drinstehen kann. Den RAID 1 definieren wir jetzt erst. Normalerweise zeigt die Datei Informationen über den Zustand des RAID und der Platten an. Kommen wir zum erstellen des RAID :

1. Anlegen der Datei /etc/raidtab

Die Datei raidtab übernimmt im wesentlichen die Funktion dem Kernel zu verklickern welche Platten für das RAID verwendet werden und legt einige Grundfunktionen fest. Das Gegenstück zur Datei /etc/fstab aus der sich Linux die bnötigten Informationen holt, auf welcher Platte welche Dateisysteme gemounted sind etc.. Die Datei sieht bei mir so aus :

#Anfang RAID Einstellungen
raiddev /dev/md0
   raid-level                        1
   nr-raid-disks                2
   nr-spare-disks                1
   chunk-size                        4
   persistent superblock        1

#Platte 1

   device                        /dev/hda1
   raid-disk                        0

# Platte 2

   device                        /dev/hdb1
   raid-disk                        1

Definiert die Platten 1 und 2 (IDE) als RAID Platten. Wobei die physikalische Reihenfolge ( Master, Slave oder Second Master ) mit der im RAID übereinstimmen muß. Die Definitionen im Einzelnen sind schnell erklärt :

raiddev /dev/dev/md0
Hier wird der erste RAID definiert (md0). Dieser wird dann bei Bedarf in die Datei /etc/fstab eingetragen
raid-level
Legt den RAID Level fest
nr-raid-disks
Die Anzahl der Festplatten in diesem RAID Set
nr-spare-disks
Anzahl der eventuell verfügbaren Reserveplatten. Bei mir eine, kann auch 0 sein
chunk-size
definiert die Mindestmenge an Daten die auf eine Platte geschrieben werden muss. Wenn Ihr also 16 KByte an Daten schreibt, dann landen die ersten und dritten 4 KByte auf Platte 1 und die zweiten und letzten 4 KByte auf Platte 2. Ein chunk wird in KB gemessen. Die Größe des chunk sollte von der Art der Daten abhängen die Ihr wegschreibt. Es kann durchaus nützlich sein diese Zahl zu varieren um einen schnelleren Datendurchsatz zu erreichen.
persistent superblock
Wichtig nur bei RAID von denen Ihr boote wollt oder müsst. Hier wird ein Superblock definiert
device
Gibt an welche Festplatte verwendet werden soll
raid-disk
Zeigt an welcher Stelle die Platte im RAID stehen soll

Die Reihenfolge der Platten ist nicht beliebig ! So wie sie im System liegen, so müssen sie auch in der Datei eingetragen sein. Wechselt man also die physikalische Reihenfolge, muss auch der Eintrag hier geändert werden. Mit

  • mkraid /dev/md0

wird das RAID jetzt installiert. Was sich in der Datei /proc/mdstat etwa so auswirkt :

Personalities : [1 linear]
read_ahead not set
md0 : active

  • Das Starten und Stoppen eines RAIDS ist immer mit raidstart bzw. raidstop möglich.VORHER muß man das RAID allerdings unmounten.

So einfach ist es im Grunde ein funktionsfähiges Mirroring aufzubauen. Das Verfahren für das Striping, also RAID Lebel 0 ist identisch, nur das man eben eine 0 statt der 1 bei raidlevel einträgt. Bei 4 und 5, gibt man einfach die 4 und 5, nebst entsprechend mehr Platten ein. Näheres zu den Zusatzprogrammen entnehmt bitte den manpages und den entsprechenden HowTo's.

« zurück --- vor »