SelfLinux Systemverwaltung Linux Software-RAID HOWTO Abschnitt 6 | SelfLinux-0.13.0

| Linux Software-RAID HOWTO | Autor Formatierung GPL

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

#### 6.1 Vorbereiten des Kernel für 0.9x

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://ftp.kernel.org/pub/linux/kernel/v.2.2/

Des weiteren 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://ftp.kernel.org/pub/linux/daemons/raid/alpha/

Bitte achten Sie genau auf die passende Kernelversion!
Zuerst muss der Kernel nach /usr/src/linux kopiert und mittels

root@linux ~# 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 schief geht.

Nun wird der RAID-Patch nach /usr/src/linux-2.2.10 kopiert und dort mittels

root@linux ~# patch -p1 < raidpatchfilename

in den Sourcetree eingearbeitet. Es sollten nun etwa 20 Dateien kopiert und teilweise geändert werden.

Nach dem Aufruf von

root@linux ~# 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:

Block devices --->

           [*] 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:

root@linux ~# make dep && make clean && make bzImage && make modules root@linux ~# make modules_install

Die Benutzer eines SCSI-Controllers sollten daran denken, die initiale RAM-Disk mittels

root@linux ~# 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:

root@linux ~# ./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

root@linux ~# 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, dass 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 wie viele 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 zusammenfasst werden sollen.

#### 6.2 Erstellen eines RAID-0 Devices mit 0.9x

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üsste so aussehen:

root@linux ~# 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

root@linux ~# mkraid /dev/md0

gestartet werden. Formatieren Sie Ihr neues Device:

root@linux ~# 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

root@linux ~# raidstop /dev/md0

aus. Nach einem Reboot kann das Device mittels

root@linux ~# raidstart /dev/md0

wieder aktiviert und anschließend überall hin gemountet werden.

#### 6.3 Automatisierung mit 0.9x

Wie viel Komfort einem der neue RAID-Patch bringt, zeigt sich bei diesem Automatisierungsprozess. 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, muss 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, dass das RAID-Device gestoppt ist, bevor Sie anfangen, mit fdisk zu arbeiten:

root@linux ~# umount /dev/md0 root@linux ~# raidstop /dev/md0

Bei der vorliegenden Konfiguration müssten die Typen der Partitionen /dev/sda6 und /dev/sdb6 geändert werden. Dafür wird fdisk zuerst für die erste SCSI-Festplatte aufgerufen:

root@linux ~# 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:

root@linux ~# fdisk /dev/sdb

Haben Sie das erfolgreich hinter sich gebracht, wird Ihnen beim nächsten Startup der Kernel mitteilen, dass er Ihr RAID-Device gefunden hat und es aktivieren. Schauen Sie ruhig noch mal 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, dass 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.