Slackware 12 mit RAID und LVM

Juli 6, 2007

Am 2.7. ist nun Slackware die 12te erschienen. Zu dem Zeitpunkt wo ich es runtergeladen habe waren auf den FTP mirrors noch keine ISO Image verfügbar. So habe ich die „Install ISO disk 1“ mit Bittorrent heruntergeladen.

Inzwischen gibt es aber auch die iso Dateien zum Download.

z.B. hier – ftp://ftp.wh8.tu-dresden.de/pub/linux/distributions/slackware/slackware-12.0-iso

Der Server hatte bis jetzt die 11 laufen. Da ich jetzt auch den Hardware Unterbau geändert (verbessert) habe wird das System komplett neu aufgebaut.

Die zwei Festplatten laufen wieder als Raid1 Verbund. /dev/md0 ist /boot mit knapp 100 mb, /dev/md1 ist der SWAP mit 1gb und /dev/md2 ist ein Physical Volume für den LVM.

LVM habe ich deswegen gewählt, da ich Xen einrichten will und die DomU’s nicht im Loopback-Devices laufen sollen (zu langsam). Bis jetzt ist nur ein Logical Volume eingerichtet und das ist die dom0 mit Slackware 12.0.

Die Einrichtung des Raid und des LVM ging problemlos. Anschließend „setup“ ausführen und /dev/vg0/dom0 als Setup Pfad wählen. Wenn die Prozedur vorbei wird es erst richtig spannend!

Damit Slackware von einem LVM bootet muss man den Anweisungen aus der README_LVM.TXT folgen. Im genauen sind das folgende Schritte:

# mount -o bind /proc /mnt/proc

# mount -o bind /sys /mnt/sys

# chroot /mnt

# vgscan –mknodes

Als nächstes soll man mit mkinitrd eine initrd für lilo erstellen. Das Problem ist, dass bei der Standard initrd die das Skript erstellt der Raid Support fehlt. Deswegen muss man etwas Handarbeit anlegen.

Wenn wir im chroot sind wechseln wird in das Verzeichnis „/usr/share/mkinitrd/“.

# cd /usr/share/mkinitrd/

Der Befehl mkinitrd benutzt die Datei „initrd-tree.tar.gz“ um den Dateibaum (tree) der Initrd aufzubauen. Diesen editieren wir jetzt.

# mkdir newinitrd && cd newinitrd

# tar -xzvf ../initrd-tree.tar.gz

Der Ordner Inhalt sieht jetzt ungefähr so aus:

# ls
bin/ etc/ initrd-name load_kernel_modules* mnt/ rootdev sys/
dev/ init* lib/ luksdev proc/ rootfs

Wir kopieren nun die notwendigen Config-Files:

# cp -r /etc/lvm/ etc/

Wichtig ist außerdem die folgen Zeile in der lvm.conf!

md_component_detection = 1

Damit in der initrd das Raidarray wieder erstellt werden kann, wird in der „init“ der „mdadm“ Befehl eingebunden. Ein Ausschnitt (nur ein Beispiel!):

# vi init

[…]

# rebuild RAID ARRAY

/sbin/mdadm –assemble /dev/md2 /dev/hda3 /dev/hdb3
/sbin/mdadm –assemble /dev/md0 /dev/hda2 /dev/hdb2
/sbin/mdadm –assemble /dev/md1 /dev/hda1 /dev/hdb1

# Initialize LVM:
if [ -x /sbin/vgscan ]; then
/sbin/vgscan –mknodes -v –ignorelockingfailure
sleep 10
/sbin/vgchange -ay -v –ignorelockingfailure
fi

[…]

Damit ist der initrd-tree fertig es muss jetzt nur noch in das passende Archiv gepackt werden.

# mv ../initrd-tree.tar.gz ../initrd-tree.tar.gz.back

# tar -czf ../initrd-tree.tar.gz ./

Schlussendlich muss nur noch die „/sbin/mkinitrd“ angepasst werden, damit das „init“ Skript auch eine „mdadm“ Binary zum ausführen hat. Wieder ein Ausschnitt:

# vi /sbin/mkinitrd

[…]

# Include LVM support in initrd
if [ ! -z „$LVM“ ]; then
if [ -f /sbin/lvm.static ]; then
mkdir -p $SOURCE_TREE/sbin
cp /sbin/lvm.static $SOURCE_TREE/sbin/lvm.static
cp /sbin/mdadm $SOURCE_TREE/sbin/
( cd $SOURCE_TREE/sbin
ln -s lvm.static vgchange
ln -s lvm.static vgscan )
if ! echo ${MODULE_LIST} | grep -q dm-mod ; then
MODULE_LIST=“$MODULE_LIST:dm-mod“
fi
else
echo „LVM static binary is missing, LVM support isn’t installed“
fi
fi
[…]

Sichern und einfach weiter in der Anleitung!

# mkinitrd -c -k 2.6.21.5-smp -m reiserfs -f reiserfs -r /dev/vg0/dom0 -L

In „/boot/initrd-tree“ kann man prüfen ob alles seine Richtigkeit hat (/boot/initrd-tree/etc/lvm/ und /boot/initrd-tree/sbin/mdadm).

Zum Schluss dann noch die lilo.conf anpassen (initrd = /boot/initrd.gz) und lilo den MBR schreiben lassen.

# lilo

Warning: ‚/proc/partitions‘ does not match ‚/dev‘ directory structure.
Name change: ‚/dev/dm-0‘ -> ‚/dev/vg0/dom0‘
Added Linux *
The boot record of /dev/md0 has been updated.
The boot record of /dev/hda has been updated.
Warning: /dev/hdb is not on the first disk
The boot record of /dev/hdb has been updated.
2 warnings were issued.

Die Warnungen kann man getrost ignorieren! „reboot“ und viel Spaß mit Slackware 12 und Raid/LVM 😉

PS: Man kann auch versuchen in der „init“ statt dem „mdadm -assemble …“ einfach „mdadm -A –scan“ zu nehmen. Damit muss man aber auch die „mdadm.conf“ der „initrd-tree.tar.gz“ anfügen!

Advertisements

2 Antworten to “Slackware 12 mit RAID und LVM”

  1. Plissee Says:

    Hi

    kann es sein, dass der Link oben nicht funktioniert? Denn wenn ich den anklicke, kommt ein Timeout-Fehler beim Firefox…


  2. Purtroppo passo anch’io davanti a questa splendida chiesa, non sono un fervido credente, ma u00e8 una foto autentica.. nessun fotomontaggio. Come on http://tropaadet.dk/bettyebender19764081845


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: