Wer kennt das nicht: auf der einen Seite möchte man so sicher sein wie möglich das eine defekte Platte nicht den ganzen Rechner lahmlegt auf der anderen Seite sollen die Kosten im bezahlbaren Rahmen bleiben. Die Anbieter haben reagiert und haben zu den teuren "echten" Hardware Raid Controller sogenannte FakeRaid Controller auf den Markt gebracht. Diese Controller sind nicht unbedingt schlecht und Leisten auch gute Arbeit, aber wichtig hierfür ist die Tatsache das das ausgesuchte Linux eine Kernel Version liefert das den Treiber bereits im Bauch hat, als auch die Installation ohne Probleme von statten geht und booten sollte das Betriebssystem natürlich auch.
Da ich mir eh einen neuen Server zusammenbauen wollte und durch einen dummen Zufall plötzlich auch noch einen schönen Dell PowerEdge 850 Server in den Händen hielt war der Weg für einen neuen Server frei, wobei die Hardware leider keinen Raid Controller intus hatte. Ich habe mir dafür dann einen Adaptec SATA II RAID 1220SA FakeRaid Controller zugelegt. Eine schöne kleine PCI Express X1 Karte für Sata Platten. Als Betriebssystem hab ich mir Ubuntu 8.10 (Server Version) ausgesucht wobei ich als alter Red Hat Fuzzi extrem positiv von Ubuntu überrascht bin.
Auf die Installation selbst möchte ich hier nicht näher eingehen da sie so dermassen einfach ist und das System auch auf Anhieb den Raid Controller erkennt. Die Probleme kommen erst beim ersten reboot. Anzumerken ist die Tatsache, das die Probleme nicht auf die Adaptec Karte zurück zu führen sind - es kann folglich auch jede andere FakeRaid Karte sein! Die Probleme liegen direkt bei der dmraid Software. Anstelle des Betriebssystems kommt nach kurzer Zeit die Fehlermeldung "Gave up waiting for root device." und "ALERT! /dev/mapper/xxxx does not exist". Das kleine "mini" System startet in eine kleine "mini" Shell mit der man ein paar wenige Befehle einhacken kann. Mit dem Befehl "ls /dev/mapper" wird man ausser der "control" Datei nichts finden was zeigt, das die dmraid Devices nicht existieren. Ihr könnt jetzt mit "dmraid -ay" die Devices automatisch erstellen lassen und mit dem Befehl "exit" müsste jetzt das System wie von Geisterhand starten". Damit das System von vornherein die Devices erstellt müsst ihr folgende Datei bearbeiten:
"sudo vi /usr/share/initramfs-tools/scripts/local-top/dmraid"
Die Datei müsste folgendermassen aussehen:
- #!/bin/sh
- # local-top script for dmraid.
- PREREQS=""
- prereqs()
- {
- echo $PREREQS
- }
- case $1 in
- # get pre-requisites
- prereqs)
- prereqs
- exit 0
- ;;
- esac
- # Activate any dmraid arrays that were not identified by udev and vol_id.
- for dev in $(dmraid -r -c); do
- dmraid-activate $(basename $dev)
- done
Ändern müsst ihr nur den unteren Bereich. Die Schleife auskommentieren und ein paar neue Befehle hinzufügen:
- #for dev in $(dmraid -r -c); do
- # dmraid-activate $(basename $dev)
- #done
- /sbin/udevadm settle --timeout=30
- modprobe -Q dm-mod
- modprobe -Q dm-mirror
- /sbin/dmraid -ay
Es gibt einige dmraid Versionen die den Bug haben das die Datei keine Ausführungsrechte hat. Also einfach zur Sicherheit setzen:
"sudo chmod 755 /usr/share/initramfs-tools/scripts/local-top/dmraid"
Zum guten Schluss muss das ganze nur noch für den Init Prozess mit folgenden Befehl bereitgestellt werden:
"sudo update-initramfs -k all -u"
Jetzt braucht ihr nur noch zu rebooten.



