Sie benötigen hierfür den aktuellen, »sauberen«, ungepatchten Sourcetree des 2.2.10er Kernels. Bitte tun Sie sich selbst einen Gefallen und nehmen Sie keinen Sourcetree Ihrer Distribution. Diese sind meist schon mit Patches aller Art versehen und ein zusätzliches ändern mit dem RAID-Patch würde die Sourcen eventuell sogar zerstören. Die kompletten Kernel-Sourcen erhält man auf:
ftp.kernel.org:/pub/linux/kernel/v.2.2/
Desweiteren benötigen Sie den für diesen Kernel passenden RAID-Patch
(raid0145-19990724-2.2.10
) und die aktuellsten RAID-Tools
(raidtools-19990724-0.90.tar.gz
). Diese sind hier zu finden:
ftp.kernel.org:/pub/linux/daemons/raid/alpha/
Bitte achten Sie genau auf die passende Kernelversion!
Zuerst muß der Kernel nach /usr/src/linux
kopiert und mittels
tar xvfz kernelfile.tar.gz
entpackt werden. Alternativ und bei Benutzung mehrerer Kernel entpackt man ihn
nach /usr/src/linux-2.2.10
und setzt den vermutlich schon vorhandenen
symbolischen Link von /usr/src/linux
auf
/usr/src/linux-2.2.10
. Dies ist für das Patchen wichtig, da sonst
der falsche Sourcetree gepatcht werden könnte. Auch ist es immer schlau, sich
einen ungepatchten Original-Sourcetree aufzuheben, falls mal etwas schiefgeht.
Nun wird der RAID-Patch nach /usr/src/linux-2.2.10
kopiert und dort
mittels
patch -p1 < raidpatchfilename
in den Sourcetree eingearbeitet. Es sollten nun etwa 20 Dateien kopiert und teilweise geändert werden.
Nach dem Aufruf von
make menuconfig
sollte sich Ihnen das Menü mit den
unterschiedlichen Kerneloptionen präsentieren. Bitte benutzen Sie nicht make config
oder make xconfig
, da sich diese Beschreibung ausschließlich
auf make menuconfig
stützt. Hier aktivieren Sie unter »Block devices --->«
folgende Optionen:
[*] Multiple devices driver support
[*] Autodetect RAID partitions
<*> Linear (append) mode
<*> RAID-0 (striping) mode
<*> RAID-1 (mirroring) mode
<*> RAID-4/RAID-5 mode
< > Translucent mode
< > Logical Volume Manager support (NEW)
[*] Boot support (linear, striped)
Da immer wieder einige Fehler durch modularisierte RAID-Optionen auftauchen, nehmen Sie sich an den obigen Einstellungen ein Beispiel und kompilieren Sie den benötigten RAID-Support fest in den Kernel ein.
Passen Sie nun noch alle übrigen Kerneleinstellungen Ihren Wünschen an, verlassen Sie das Menü und kompilieren Sie Ihren neuen Kernel:
make dep && make clean && make bzImage && make modules
make modules_install
Die Benutzer eines SCSI-Kontrollers sollten daran denken, die initiale RAM-Disk mittels
mkinitrd /boot/initrd Kernelversion
neu zu erstellen, falls der SCSI-Kontroller als Modul eingeladen wird.
Anschließend noch den neuen Kernel und die System.map
Datei umkopieren, die
/etc/lilo.conf
bearbeiten, lilo
ausführen und das System neu
starten.
Ihr Kernel unterstützt nun alle nötigen RAID Optionen.
Weiter geht es mit den RAID-Tools. Entpacken Sie die RAID-Tools z.B. nach
/usr/local/src
, führen Sie das enthaltene Konfigurationsskript aus
und kompilieren Sie die Tools:
./configure && make && make install
Die RAID-Tools stellen Ihnen zum einen (unter anderem) die Datei
mkraid
zur Verfügung und erstellen zum anderen die
/dev/md0-15
Devices.
Ob Ihr Kernel die RAID Optionen wirklich unterstützt können Sie mittels
cat /proc/mdstat
in Erfahrung bringen. Diese Pseudodatei wird auch in Zukunft immer Informationen über Ihr RAID System enthalten. Ein Blick hierher lohnt manchmal. Zu diesem Zeitpunkt sollte zumindest ein Eintrag enthalten sein, der Ihnen zeigt, daß die RAID Personalities registriert sind.
Die RAID-Devices, was dasselbe bezeichnet wie das RAID-Array oder den
RAID-Verbund, werden nachher über /dev/md*
angesprochen.
Zuerst sollte man sich darüber im klaren sein, welche und wieviele Partitionen man zusammenfassen möchte. Diese Partitionen sollten leer sein und man sollte sich die Devices und ihre Reihenfolge nicht nur gut merken, sondern besser aufschreiben. Eine Einbindung von Partitionen, die Daten enthalten, welche nachher wieder zugänglich sein sollen, ist bisher nur über einen Umweg möglich und das auch nur bei Verwendung eines RAID-0 Verbundes.
Als Beispiel werden die zwei SCSI-Festplatten /dev/sda
und
/dev/sdb
benutzt. Bei (E)IDE heißen sie dann /dev/hda
,
/dev/hdb
usw. Auf diesen Festplatten liegen nun zwei leere
Partitionen im erweiterten Bereich /dev/sda6
und /dev/sdb6
,
welche zu einem RAID-0 Device zusammenfaßt werden sollen.
Die Grundkonfiguration der zu erstellenden RAID-Devices werden hier unter
/etc/raidtab
gespeichert. Diese Datei enthält alle nötigen Angaben
für ein oder mehrere RAID-Devices. Generelle Hilfe findet man in den
Manuell Pages von raidtab
und mkraid
. Eine raidtab
für
ein RAID-0 Sytem mit den oben beschriebenen zwei Partitionen müßte so aussehen:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sda6
raid-disk 0
device /dev/sdb6
raid-disk 1
Sind die Eintragungen in Ordnung, kann das RAID mittels
mkraid /dev/md0
gestartet werden. Formatieren Sie Ihr neues Device:
mke2fs /dev/md0
Dieses Device kann nun - wie jedes andere Blockdevice auch - irgendwo in den Verzeichnisbaum gemountet werden.
Um das RAID-Device wieder zu stoppen, unmounten Sie es und führen Sie
raidstop /dev/md0
aus. Nach einem Reboot kann das Device mittels
raidstart /dev/md0
wieder aktivert und anschließend überall hin gemountet werden.
Wieviel Komfort einem der neue RAID-Patch bringt, zeigt sich bei diesem
Automatisierungsprozeß. Das bei der Verwendung der MD-Tools beschriebene
Bearbeiten der Init-Skripte fällt völlig weg. Allerdings ist dafür der
einmalige Umgang mit dem nicht ganz ungefährlichen Tool fdisk
vonnöten. Bitte seien Sie sich absolut sicher mit der Einteilung Ihrer
Festplattenpartitionen, bevor Sie sich damit beschäftigen!
Dieses Beispiel sieht nun vor, den RAID-0 Verbund /dev/md0
bestehend
aus /dev/sda6
und /dev/sdb6
komfortabel bei jedem Startup zu
mounten und automatisch auch wieder herunterzufahren.
Der Trick liegt hierfür in der von Ihnen im Kernelmenü gewählten Option »Autodetect RAID partitions«. Der Kernel findet damit bestehende RAID-Arrays beim Booten automatisch und aktiviert sie.
Voraussetzungen dafür sind:
/etc/raidtab
für
Ihr Device gesetzt.Sind Sie dieser Anleitung bis hierher gefolgt, dann enthält Ihr Kernel bereits die Autodetection und Sie haben Ihr RAID-Device auch mit dem persistent-superblock Modus erstellt. Bleibt noch das Ändern des Partitionstyps.
Stellen Sie sicher, daß das RAID-Device gestoppt ist, bevor Sie anfangen, mit
fdisk
zu arbeiten:
umount /dev/md0
raidstop /dev/md0
Bei der vorliegenden Konfiguration müßten die Typen der Partitionen
/dev/sda6
und /dev/sdb6
geändert werden. Dafür wird
fdisk
zuerst für die erste SCSI-Festplatte aufgerufen:
fdisk /dev/sda
Man wählt nun die Option »t« für »toggle partition type« und wird
dann aufgefordert, den Hexcode oder einen Partitionstypen einzugeben.
»l« liefert eine Liste der unterstützten Codes, welche aber im Moment
uninteressant ist. Geben Sie nun einfach »fd« ein und prüfen Sie mit »p«,
ob die Partition tatsächlich geändert wurde. In der »Id«-Spalte sollte nun
»fd« auftauchen. Beenden Sie anschließend fdisk
mit der Option
»w«. Verfahren Sie analog mit den anderen zu Ihrem RAID gehörenden
Partitionen. Um z.B. /dev/sdb6
zu ändern, rufen Sie fdisk
so auf:
fdisk /dev/sdb
Haben Sie das erfolgreich hinter sich gebracht, wird Ihnen beim nächsten
Startup der Kernel mitteilen, daß er Ihr RAID-Device gefunden hat und es
aktivieren. Schauen Sie ruhig nochmal mittels cat /proc/mdstat
Ihr
Device an. Es sollte nach diesem Neustart bereits aktiviert sein.
Anschließend können Sie Ihr /dev/md0
RAID-Device wie jede andere
Partition in die /etc/fstab
eintragen und so automatisch an einen
beliebigen Ort mounten. Das Dateisystem auf dem RAID ist ext2, obwohl Sie den
RAID-Verbund natürlich mit jedem beliebigen Dateisystem formatieren können.
Manche Distributionen sehen es innerhalb ihrer Init-Skripte bereits vor,
eventuell vorhandene RAID-Devices beim Herunterfahren des Systems zu
deaktivieren oder aber beim Booten zu aktivieren. Dieser Umstand kann zu
Fehlermeldungen führen, die Sie jedoch nicht weiter beeindrucken sollten. Diese
Distributionen gehen meist davon aus, daß Sie die alten MD-Tools in Verbindung mit
den alten RAID-Tools Version 0.4x benutzen. Ihr gepatchter Kernel übernimmt aber
ab sofort das Aktivieren und Deaktivieren Ihrer mit den neuen RAID-Tools erstellten
RAID-Devices für Sie. Um die Fehlermeldungen zu unterdrücken, kommentieren Sie
einfach in den passenden Init-Skripten (z.B. /etc/rc.d/init.d/halt
) die
Abfrage nach RAID-Devices und deren nachfolgender Deaktivierung mittels z.B.
mdstop -a
- oder was auch immer dort angegeben ist - aus.