Software root RAID1 mit raidtools2
Inhaltsverzeichnis
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"
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.
/dev/hda1 4000mb für / "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
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.
"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
"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
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
"lilo /etc/lilo.conf" |
wird ein neuer Bootrecord erzeugt.