Inhalt

6. RAID-Verbunde mit den RAID-Tools Version 0.9x erstellen

6.1 Vorbereiten des Kernels

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.

6.2 Erstellen eines RAID-0 Devices

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 Manual Pages von raidtab und mkraid. Eine raidtab für ein RAID-0 System 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.

6.3 Automatisierung

Wieviel Komfort einem der neue RAID-Patch bringt, zeigt sich bei diesem Automatisierungsprozeß. Das bei der Verwendung der MD-Tools Version 0.4x 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:

  1. »Autodetect RAID partitions« ist im Kernel aktiviert.
  2. »persistent-superblock 1« ist in der Datei /etc/raidtab für Ihr Device gesetzt.
  3. Der Partitionstyp, der von Ihnen für das RAID genutzten Partitionen, muß auf »0xFD« gesetzt werden.

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.

6.4 Anmerkung

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 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.


Inhalt