RAID-System mit zwei Festplatten

Hier soll exemplarisch die Einrichtung eines md-basierten Software-RAID-Systems bei (Neu-)Installation von CentOS auf einem Root Server gezeigt werden. Die ‘Geschmacksrichtung’ (lies: 32Bit oder 64Bit, deutsch oder englisch) ist hierbei — abgesehen von den abweichenden Formulierungen und Bezeichnungen zum Beispiel während der Installation — irrelevant, das beschriebene Prozedere funktioniert so auf allen zur Verfügung stehenden CentOS-Images der Root Server, die eine manuelle (benutzerdefinierte) Installation durchführen lassen.


Schritt eins

Anstoßen einer benutzerdefinierten Installation von CentOS dem Root Server. Folgen Sie hier den Hinweisen im Interface.


Schritt zwei

Die Installation auf dem Root Server ‘wie üblich’ durchführen, beim Partitionieren der Festplatten jedoch den Punkt ‘Create custom layout’ wählen.

(Abbildung eins)


Schritt drei

Sowohl auf Laufwerk /dev/sda wie auch /dev/sdb ein Dateisystem des Typs ‘Software RAID’ anlegen; hier wird beispielsweise ein 4097MiByte großer Bereich auf dem Root Server angelegt, auf dem später die swap-Partition zu Hause sein soll. Das Anlegen dieses Dateisystems muß für beide Festplatten getrennt erfolgen (ansonsten beschwert sich die Installationsroutine sofort).

(Abbildung zwei)

In Abbildung drei ist nun zu sehen, wie zwei Bereiche vom Typ ‘Software RAID’ eingerichtet wurden.

(Abbildung drei)

 


 

Schritt vier

Abbildung vier zeigt das Anlegen eines den Rest der Festplatte einnehmenden Bereiches auf dem Root Server; das Auswählen der Option ‘Fill to maximum allowable size’ weist den Partitionierer an, den kompletten Rest der Festplatte zu nutzen. Auch dies ist für beide Geräte, sowohl /dev/sda wie /dev/sdb durchzuführen.

(Abbildung vier)

 


 

Schritt fünf

Jetzt kommt der interessante Part, in dem aus den angelegten RAID-Partitionen die RAID Devices ‘gebaut’ werden; ein Klick auf den Button ‘RAID’ (siehe Abbildung fünf) führt zur (schon standardmäßig ausgewählten) Option, ein RAID device zu bauen (hier: /dev/md0). Ein Klick auf ‘OK’ führt uns in das nächste Fenster (Abbildung sechs), wo schlußendlich der vom System später zu sehende/nutzende Dateisystemtyp (hier: swap) und die Art des RAIDs (RAID0 — Striping, Beschleunigung ohne Redundanz; RAID1 — Spiegelung) einstellbar ist. Für den swap-Bereich, der nicht zwingend von Redundanz profitiert, mehr dafür aber von Geschwindigkeit, haben wir einfach mal RAID0 gewählt.

Für die das größere RAID, welches den Rest der Festplatte(n) einnimmt, soll dann doch eher RAID1 (Spiegelung) gewählt werden — siehe Abbildung sieben. Um das Beispiel möglichst einfach zu halten, platzieren wir das Root-Dateisystem “/” hier — die einfachste Art, das System korrekt aufzusetzen.

(Hier mögen sich die Geschmäcker unterscheiden: Ein einfaches Setup wie dieses birgt Risiken, zum Beispiel das unbemerkte Vollaufen von /tmp oder /var/tmp über längere Zeiträume und anschließende Probleme des Systems mit vollgelaufener Root-Partition, unter anderem. Komplexere Setups reichen über weitere RAID-Devices bis hin zum Einsatz von LVM, um dann auf einem RAID-Device Volume Groups und Logische Laufwerke einzurichten. Da dies außerhalb dessen liegt, was in diesem Artikel gezeigt werden soll, möge hierauf verzichtet werden.)

(Abbildung fünf)

(Abbildung sechs)

(Abbildung sieben)

 


 

Schritt sechs

Die Installation auf dem Root Server wie üblich weiter durchgehen — nach Fertigstellen der Installation und anschließendem Neustart hat man ein System mit Software-RAID. Den Status des RAID-Systems kann man mit dem Befehl

[root@n112h113 ~]# cat /proc/mdstat

prüfen, der beispielsweise folgendes zeigen könnte:

Personalities : [raid1] [raid0]
md0 : active raid0 sdb2[1] sda2[0]
8385536 blocks 256k chunks

md1 : active raid1 sdb1[1] sda1[0]
152087232 blocks [2/2] [UU]
[>....................]  resync =  0.8% (1302400/152087232) finish=146.7min speed=17125K/sec

unused devices: <none>

Hier wird der RAID-Spiegel nach dem ersten Neustart (direkt nach der Installation des Systems) aufgebaut.

 


 

Schritt sieben

Um schließlich nach dem Ausfall beispielsweise von /dev/sda, also der ersten Festplatte des Root Server, das System bei einem Neustart wieder sauber hochfahren zu können, darf man jetzt nicht vergessen, den Bootloader grub noch auf der zweiten Festplatte zu installieren. Das BIOS Ihres Atom-Servers ist so eingerichtet, daß es im Falle einer defekten ersten Festplatte (was alles mögliche sein kann, zum Beispiel hardwareseitig defekte Festplatte oder zerstörtes Dateisystem) versucht, von der zweiten zu starten. Findet das System hier keinen funktionierenden Bootloader (in diesem Falle der erwähnte grub), passiert gar nichts mehr.

Um den Bootloader zu installieren, wechseln Sie als root in die grub shell:

/sbin/grub

Dann sollte sich grub wie folgt melden:

Probing devices to guess BIOS drives. This may take a long time.

GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename.]
grub>

Nun einfach folgende Befehle der Reihe nach eingeben (grub wird jedes mal Rückmeldung geben, was er gemacht hat):

device (hd0) /dev/sda

device (hd1) /dev/sdb

root (hd0,0)

setup (hd0)

root (hd1,0)

setup (hd1)

quit

Das war es schon. Ihr System kann nun von beiden Festplatten booten, sollte eine davon — aus welchen Gründen auch immer — ausfallen.

 


 

Test des Setups

Falls man der ganzen Sache mißtraut und vielleicht auch ein bißchen Zeit hat, sich damit näher zu befassen, kann man das Setup recht einfach ‘auf die Probe stellen’.

Man sollte sich natürlich sicher sein, daß man o.g. Schritte ausgeführt hat und das System die RAID-Partitionen aufgebaut/erkannt hat (mit cat /proc/mdstat prüfbar, siehe oben).

Ein klein wenig Mut zusammennehmen und ein

dd if=/dev/zero of=/dev/sda bs=1024k count=10

zerschießt galant die ersten 10MiByte der ersten Festplatte — ‘Totalschaden im Dateisystem’. Daraufhin gibt man dem System ein

reboot

und versucht ein paar Minuten später, sich erneut einzuloggen — hat man beim Setup alles richtig gemacht, funktioniert das auch problemlos.

# cat /proc/mdstat

wird dann ein nicht-redundantes RAID1 zeigen und ein zerlegtes RAID0 (swap):

Personalities : [raid1] [raid0]
md0 : inactive sdb2[1]
4192768 blocks

md1 : active raid1 sdb1[1]
152087232 blocks [2/1] [_U]

unused devices: <none>

Damit ist bewiesen: Das RAID ist eingesprungen, das System ist von der zweiten Festplatte gebootet. Nun sollte man sich an die Wiederherstellung der Redundanz machen, dafür hat man schließlich zwei Festplatten. (Im Falle eines wirklichen Festplattenschadens wende man sich vertrauensvoll an den Inter.Net-Support, das defekte Teil wird zügig ausgetauscht werden.)

Mit

# fdisk -l /dev/sdb

kann man sich die Geometrie der verbliebenen, funktionierenden Festplatte darstellen lassen:

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       18934   152087323+  fd  Linux raid autodetect
/dev/sdb2           18935       19456     4192965   fd  Linux raid autodetect

und anhand dieser Daten mit fdisk /dev/sda die erste Festplatte dementsprechend partitionieren. Ist man damit fertig, stößt

mdadm -a /dev/md1 /dev/sda1

den Wiederaufbau des RAID-Systems an, den man ebenfalls beobachten kann (cat /proc/mdstat):

Personalities : [raid1] [raid0]
md0 : inactive sdb2[1]
4192768 blocks

md1 : active raid1 sda1[2] sdb1[1]
152087232 blocks [2/1] [_U]
[====>................]  recovery = 24.2% (36808896/152087232) finish=99.6min speed=19286K/sec

cpr certification online
cpr certification onlineCPR certificationcpr certification online