software-raid und booten

Post Reply
Message
Author
bernd_h_schulz

software-raid und booten

#1 Post by bernd_h_schulz »

Hallo zusammen,
Habe mal wieder suse9.1 installiert, 3 Raid1-Verbunde erstellt, diesmal eine /boot Part. eingerichtet, Lilo genommen und den Loader in den MBR von sda1 geschrieben.
md0 ist /boot
md1 ist swap
md2 ist /

Bei selflinux0.10 ist das booten vom RAID-Verbund beschrieben.
""
Wie funktioniert nun das direkte Booten von einem RAID-Verbund? Hier ein Beispiel der Datei /etc/lilo.conf für den wohl sinnvollsten RAID-Modus für einen Root-RAID Verbund: RAID-1 auf SCSI-Festplatten:
/etc/lilo.conf


disk=/dev/md15
bios=0x80
sectors=63
heads=255
cylinders=1106
partition=/dev/md0
start=1028160
boot=/dev/sda
image=/boot/vmlinux-2.2.10
label=autoraid
root=/dev/md0
read-only



Der Eintrag disk=/dev/md15 mit seinen Parametern übergibt LILO die benötigten Geometriedaten einer fiktiven Festplatte /dev/md15. Hierbei ist es einerlei, ob dieses Device /dev/md15 oder /dev/md27 heißt. Wichtig ist nur, dass es per mknod mit der Major-Number eines RAID-Devices erstellt wurde. Sind Sie sich nicht sicher, ob dies der Fall ist, lassen Sie sich einfach unter /dev/ alle Devices, die mit md anfangen, zeigen. Standardmäßig werden /dev/md0 bis /dev/md15 erstellt. Die Parameter der Sektoren, Köpfe und Zylinder unterhalb von disk=/dev/md15 geben die Geometriedaten der ersten Festplatte Ihres Systems an, welche man mittels
root@linux # fdisk -lu /dev/sda

erhält. Die Angabe der Partition soll Ihr Root-RAID Verbund sein. Der letzte Parameter start=1028160 bezeichnet den Sektor, in dem Ihre RAID-Partition auf der ersten Festplatte beginnt. Auch diese Information erhalten Sie durch:
root@linux # fdisk -lu /dev/sda

Des weiteren muss als Sitz des LILO der MBR Ihrer ersten Festplatte angegeben werden. Hier geschehen durch den Eintrag: boot=/dev/sda. Der letzte Bereich beschreibt ganz normal die Lokalisation Ihres Kernels mit dem Verweis, als Root-Partition Ihren RAID-Verbund zu nutzen.

Haben Sie den RAID-Verbund nach der weiter unten beschriebenen Methode erstellt und haben sowohl die Option persistent-superblock aktiviert als auch den Partitionstyp der Festplatten auf 0xfd geändert, fehlen dem Master-Boot-Record der SCSI-Festplatten nur noch die Boot-Informationen. Mit dem Aufruf
root@linux # lilo -b /dev/sda

werden die Informationen der Datei /etc/lilo.conf in den MBR der ersten SCSI-Festplatte geschrieben. Anschließend muss man den Befehl ein zweites Mal aufrufen. Diesmal allerdings für den MBR der zweiten Festplatte des RAID-1 Verbundes:
root@linux # lilo -b /dev/sdb

Achtung: Hierbei wird davon ausgegangen, dass die im RAID-Verbund laufenden Festplatten identisch sind und damit auch die gleichen Geometriedaten besitzen! Ein RAID-0 so zu booten, funktioniert auch mit unterschiedlichen Festplatten, da hierbei nur die erste Festplatte berücksichtigt wird. In diesem Beispiel eines RAID-1 liegen jedoch auf allen RAID-Partitionen die gleichen Daten und somit auch die gleiche /etc/lilo.conf. Haben die Festplatten unterschiedliche Geometriedaten und fällt im RAID-1 die erste Festplatte aus, so stehen im MBR der zweiten Festplatte Daten, welche nicht mit denen der zweiten Festplatte übereinstimmen. Ein Workaround könnte sein, zwei LILO Konfigurationsdateien zu pflegen und mit unterschiedlichen Geometriedaten in den MBR der jeweiligen Festplatten zu schreiben. Da mir aber nur mehrere Exemplare dergleichen Festplatte zum Testen von RAID-Verbunden vorliegen, ist dies ein ungesicherter Tipp.

Der Erfolg ist ein RAID-1 Verbund, den man auch nach einem erneuten Kernelkompilierungslauf durch zweimaliges Aufrufen des LILO mit den Parametern für die unterschiedlichen MBRs von beiden beteiligten RAID-Festplatten booten kann.

""
Habe also meine lilo.conf erweitert:
disk=/dev/md10
bios=0x80
sectors=63
heads=255
cylinders=16065
partition=/dev/md0
start=1028160

Egal welche HD ich nun ausschalte, ich kann den Rechner dann mit nur einer HD booten.
Wenn ich aber die vermeindlich defekte HD gegen eine neue HD (natürlich gleicher Typ) tausche, kann ich Linux nicht mehr booten.
Ich verstehe es nicht!!

Gruß Bernd

tukki

#2 Post by tukki »

hau mal ein
raid-extra-boot = "/dev/hda,/dev/hdb,/dev/hdc"
mit in die lilo.conf

Post Reply