Software root RAID1 mit raidtools2

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

Linux IDE root RAID1

Da die Dokumentation von Software RAID unter Linux einige Probleme verursachen kann, habe ich mich da zu durch gerungen, für den häufigsten Fall der RAID1 Konfiguration, eine weitere Dokumentation zu schreiben. Ich beschreibe hier die Installation mit Slackware. Wie das an andere Distributionen angepasst wird, entnimmst du am besten aus den Manpages der benutzen Programme und dem "Boot + Root + Raid + Lilo: Software Raid HOWTO"

[1]

Hardware

An jedem IDE Kanal ist wegen der Performance nur eine Festplatte angeschlossen. /dev/hda und /dev/hdc Das CDROM Laufwerk habe ich zur Installation vorübergehend an /dev/hdd angeschlossen und nach der Installation wieder entfernt.

Booten

Boote den PC mit einer Linux Distribution die einen Kernel mit Raid1 Unterstützung benutzt. Raidtools sollten auch dabei sein! Ich habe Slackware 8.1 mit dem 2.4.18 Kernel benutzt. Prinzipiell lässt sich aber jede Distribution benutzen, die die RAID Unterstützung im Kernel, und die RAID Tools im Pre-Installations Dateisystem haben. Wie du diese Anleitung auf low-knowledge Distributionen wie SUSE oder RedHat umsetzt, musst du selbst heraus finden. Mein Ansatz umgeht die Möglichkeiten der Installation Prozeduren von SUSE und RedHat und ist sehr gut für eine "Linux from Scratch " oder eine transparente Installation wie die von Slackware gedacht.

Partitionen

Lösche mit fdisk die Partitionstabelle von /dev/hda und /dev/hdc. Partitioniere die Platte /dev/hda als würdest du eine normale Linux Installation vorbereiten. Ich habe mein /dev/hda in 4 Teile aufgeteilt. Diese Konfiguration ist für einen WWW + Mailserver ausgelegt.

Messagebox info.png

/dev/hda1 4000mb für / "typ FD / Linux RAID autodetect"
/dev/hda2 256mb für swap "typ 82 Linux Swap"
/dev/hda3 10000mb für /var "typ FD / Linux RAID autodetect"
/dev/hda4 45000mb für /home "typ FD / Linux RAID autodetect"

Partitioniere /dev/hdc exact so wie /dev/hda.

RAID Konfiguration

Als nächstes erstellt man die Datei /etc/raidtab. Diese Datei enthält alle Informationen, welche raidtool für das erzeugen des RAID benötigt. Einfach mit vi /etc/raidtab öffnen und den Inhalt eintragen. Abspeichern nicht vergessen. Außerdem ist zu erwähnen, das die raidtab nach einem Neustart nicht mehr vorhanden ist, da sie in der Ramdisk der Pre-Installation erzeugt wurde.


/etc/raidtab

Ascii.png
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hda1
raid-disk 0
device /dev/hdc1

raiddev /dev/md1
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hda3
raid-disk 0
device /dev/hdc3

raiddev /dev/md2
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hda4
raid-disk 0
device /dev/hdc4

RAID Initialisieren

Als nächstes erstellen wir die MD Devices. diese lassen sich nur erstellen, wenn die /etc/raidtab existiert und fehlerfrei ist.

Gnome-terminal.png
"mkraid /dev/md0"
"mkraid /dev/md1"
"mkraid /dev/md2"

Status überprüfen

Wenn man wissen will, ob und wie der RAID gerade läuft, tut es ein einfaches

Gnome-terminal.png
"cat /proc/mdstat"

Installation

Nun da der Spiegel einwandfrei funktioniert kann man das System neu starten und zum Beispiel seine Lieblings-Distribution installieren. Die Voraussetzung dafür ist allerdings, das der Boot CD Kernel mit RAID1 Untersützung kompiliert wurde. Dies ist aber bei den meisten Distributionen der Fall. Zu beachten ist, das nun nicht die bekannten Devices /dev/hda usw benutzt werden, sonder man /dev/md0 usw als Zieldateisystem angibt. Partitionieren müsst ihr /dev/md0, 1 und 2 natürlich nicht mehr. Allerdings sollte noch ein Dateisystem erzeugt werden. Formatiert am besten mit Ext3 oder reiserFS.

Redundantes booten

Dann muss noch lilo.conf erstellt werden, da wir ja auch Bootredundanz wollen, kommt auf jede Platte einen entsprechender Bootrecord. Ich benutze kein Grub, da ich nicht weiss, ob Grub gespiegelte Bootrecords unterstütz. Lilo ist definitiv dafür ausgelegt und läuft einwandfrei.

lilo.conf

Ascii.png
lba32
disk=/dev/hda bios=0x80
disk=/dev/hdc bios=0x82
raid-extra-boot="/dev/hda,/dev/hdc"
boot=/dev/md0
root=/dev/md0
read-only
image=/boot/vmlinuz
label=LinuxRAID

und mit

Gnome-terminal.png
"lilo /etc/lilo.conf" 

wird ein neuer Bootrecord erzeugt.