Software-RAID 1|5 Installation eines eisfair-Servers
Dieses Dokument beschreibt die Software-RAID Root-Installation eines taufrischen eisfair Servers oder das Nachrüsten eines dieser Server mit Hilfe des Paketes raidtools 0.1.1.
Das Dokument darf als Rezept verstanden werden, um mit dem Hilfsmittel raidtools ein RAID 1 (Mirroring) einzurichten. Ergänzende Betrachtungen zu RAID 5 (Performance + Parität) sind am Ende des Dokumentes zu finden. Es sei angemerkt, dass RAID 5 in der Handhabung des hier beschriebenen Setups lediglich eine weitere Spielart darstellt.
Das Dokument schließt das Upgrade einer konventionellen eisfair Installation zu einem Software RAID System ein. All das ohne Datenverlust auf dem ursprünglichen Laufwerk.
RAID Root gibt den Hinweis, dass sich das RAID Setup auf ein vollständiges System, einschließlich der Root Partition bezieht.
Das hier vorgeschlagene Setup lässt sich problemlos über eine Secure Shell ssh durchführen. Kein eisfair Administrator muss beispielsweise nach Redmond eilen, um dort auf seinen eisfair Servern ein RAID System zu installieren. Sicherlich findet sich vor Ort genügend fachkundiges Personal, das den Einbau hinreichender Hardware übernimmt. Sämtliche Tests zu diesem Dokument wurden im Übrigen vollständig über ssh durchgeführt.
Bitte vor Beginn unbedingt darauf achten, dass alle wichtigen Daten auf einem gesonderten, vom betroffenen eisfair System vollkommen unabhängigen Datenträger, gesichert sind.
Kein noch so funktionstüchtiges RAID System kann im Nachhinein über den Verlust von unersetzlichen Daten hinwegtrösten.
Hinweis in eigener Sache. Dieser Artikel wurde unter größter Sorgfalt erstellt und jeder Einzelschritt vor der Veröffentlichung getestet. Dennoch kann der Autor in keinem Falle die Funktion im Einzelnen oder Gesamten gewährleisten und muss jede Art von Haftung ausschließen.
Alle Schritte zum erfolgreichen Setup eines Software RAID Systems können über Copy and Paste durchgeführt werden. Damit auch hierbei keine Missverständnisse auftreten, nachfolgend jeweils ein Screen Dump für Copy und Paste.
Abb 01 - Kopieren aus dem Dokument
Abb 02 - Einfügen in die Secure Shell
Im Folgenden wird vorausgesetzt, dass ein funktionstüchtiges eisfair System auf dem Laufwerk /dev/hda installiert ist und dass ein weiteres Laufwerk /dev/hdc bereits hardwareseitig korrekt eingebaut und konfiguriert ist.
Wenn im Folgenden von RAID die Rede ist, wird ausschließlich Software RAID gemeint.
Wer hier eine erläuternde Einführung zu RAID im Allgemeinen oder Software RAID im Besonderen erwartet, wird auf einschlägige Seiten im www verwiesen. Besonders hervorzuheben ist das Linux Software-RAID HOWTO [1], quasi als Standardwerk.
Am sinnvollsten und leichtesten ist ein RAID Setup im Zuge einer Neuinstallation des Systems durchzuführen. Da der eisfair Server derlei Erleichterungen erst in mittelbarer Zukunft anbieten wird, kann auf die folgende Möglichkeit verwiesen werden. Hierbei wird ein bestehendes NON RAID System in ein RAID System umgewandelt.
Das Problem bei dieser Vorgehensweise besteht im Einbinden des laufenden Root Filesystems in eine Mehrfachplatte (Multiple Device). Um dennoch das Ziel Root RAID zu erreichen, ist ein kleiner Umweg erforderlich, der hier in allen Einzelheiten beschrieben wird.
In der Beschreibung wird von einem Standard eisfair System ausgegangen mit hinlänglich bekannter Aufteilung des Laufwerkes /dev/hda. Systeme mit anderer Aufteilung sind analog zu handhaben.
Ein fdisk -ul /dev/hda auf der Konsole bzw. in der ssh zeigt uns die Aufteilung von Platte hda. Parameter -l listet die einzelnen Partitionen und -u zeigt die Anzahl der Sektoren an.
Die Handhabung des Tools fdisk erklärt das zugehörige fdisk Manual.
eisfair # fdisk -ul /dev/hda Disk /dev/hda: 128 heads, 63 sectors, 520 cylinders Units = sectors of 1 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 63 16127 8032+ 83 Linux /dev/hda2 16128 548351 266112 82 Linux swap /dev/hda3 548352 4193279 1822464 83 Linux eisfair #
Secure Shell Abb 1 - Einteilung der alten Platte (/dev/hda)
Wir gehen wie oben angerissen von einem konventionellen System aus und erweitern es um die notwendige RAID Funktionalität. Ein RAID Upgrade ist damit bis ins Detail identisch mit einem RAID Setup auf einer bestehenden Neuinstallation. Dieses Konzept ist zum einen auch für unerfahrene Administratoren noch gut nachzuvollziehen und zum anderen extrem leicht zu handhaben. Es genügt bereits die einzelnen Schritte in der beschriebenen Folge nachzuvollziehen, um zum Ziel zu gelangen. Bei korrekter Handhabung bleiben die vorhandenen Daten auf dem Original-Laufwerk /dev/hda unversehrt.
Dennoch, ein wiederholter Hinweis auf ein funktionstuechtiges Backup!
Ein aktuelles Paket raidtools in der Version 0.1.2, speziell für den eisfair Server aufbereitet, erhält man als Tarball auf http://ice.computerkramer.de oder direkt ueber das eisfair-Menu Search packages with Pack-Eis.
Das Setup des Paketes raidtools übernimmt selbstständig die Überprüfung auf hinreichende RAID Funktionalität des Kernels.
Weiterhin wird neben den erforderlichen Binaries die Konfigurations-Datei /etc/raidtab mitinstalliert.
Das Setup legt bereits Device Nodes, md0, md1, ... md15, für die neuen Multiple Devices an. MAKEDEV ist für das RAID Setup obsolet.
Die Frage, ob es sinnvoller ist raidtools oder mdadm einzusetzen, kann lediglich angerissen werden. Hier fällt die Entscheidung zugunsten der älteren raidtools, da diese im Gegensatz zu mdadm die Möglichkeit bieten, RAID 5 Arrays mit hinzugekommenen neuen Laufwerken zu erweitern.
Um unter dem Aspekt höchster Ausfallsicherheit von einem Multiple Device zu booten, ist Lilo in der Version 22.6.1 erforderlich. Seit eisfair base 1.1.0 wird Lilo in der erforderlichen Version 22.6.1 bereits installiert. Für den Defektfall einer Platte schreibt Lilo 22.6.1 Bootcode in den MBR aller Laufwerke des Arrays. Lilo garantiert somit bei einem Ausfall der Boot Platte, dass eisfair von einer der funktionsfähig verbliebenen Laufwerke hochfährt. Dies erhöht auch hierdurch die Ausfallsicherheit auf ein Maximum. Bleibt anzumerken, dass Grub solche Möglichkeiten zur Zeit leider nicht bietet.
Einteilen kann man Festplatten auf zweierlei Weise. Zum einen über die Kommandozeile mit sfdisk, zum anderen manuell mit fdisk.
Die erste Variante soll hier exemplarisch gezeigt werden,
da die Benutzung des Tools fdisk
für manchen Anwender etwas mühsam erscheint.
Eine Partitionierung mit sfdik ist hingegen über einfaches
Copy and Paste wie in
Secure Shell Abb 2 gezeigt realisierbar.
Parameter des Tools sfdisk erklärt das zugehörige sdisk Manual.
eisfair # sfdisk --change-id /dev/hda 1 fd && \ sfdisk --change-id /dev/hda 2 fd && \ sfdisk --change-id /dev/hda 3 fd && \ sfdisk -d /dev/hda > /tmp/hda.part.tab && \ sfdisk -f /dev/hdc < /tmp/hda.part.tab eisfair #
Secure Shell Abb 2 - Aufbereiten der Festplatten
In Secure Shell Abb 2 wird demonstriert wie die Einteilung der Systemplatte komplett ausgelesen und anschließend auf die neue Platte übertragen wird.
Unterschiede zu RAID 5 beim Partitionieren siehe Secure Shell Abb 19
Im Ergebnis sollten die beiden Laufwerke so partitioniert sein wie in Secure Shell Abb 3 abgebildet. Zu kontrollieren ist, ob alle Partitionen die gleiche Größe besitzen (Spalte #sectors) und ob alle vom Typ Linux raid autodetect (Spalte System)sind.
eisfair # sfdisk -luS Disk /dev/hda: 520 cylinders, 128 heads, 63 sectors/track Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/hda1 * 63 16127 16065 fd Linux raid autodetect /dev/hda2 16128 282239 266112 fd Linux raid autodetect /dev/hda3 282240 4193279 3911040 fd Linux raid autodetect /dev/hda4 0 - 0 0 Empty Disk /dev/hdc: 8322 cylinders, 16 heads, 63 sectors/track Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/hdc1 * 63 16127 16065 fd Linux raid autodetect /dev/hdc2 16128 282239 266112 fd Linux raid autodetect /dev/hdc3 282240 4193279 3911040 fd Linux raid autodetect /dev/hdc4 0 - 0 0 Empty eisfair #
Secure Shell Abb 3 - Ergebnis Partitionierung (hda, hdc)
Die Tabelle /etc/raidtab kann für eine Basisinstallation so übernommen werden, wie sie von den raidtools mitgeliefert wird. Ein Editieren ist nicht erforderlich.
Damit die Platte /dev/hda, auf dem das System aktuell läuft, bei der RAID Erstellung zunächst ausgeklammert bleibt, wird diese in der raidtab mit dem Parameter failed-disk gekennzeichnet. Dieses Ausklammern muss später nicht mehr abgeändert werden, da die betreffenden Partitionen mit dem Befehl raidhotadd eingebunden werden und der Kernel seine Informationen über die Multiple Devicesnicht aus dieser Tabelle bezieht.
eisfair # cat /etc/raidtab #------------------------------------------------------------------------- # /etc/raidtab - raiddev configuration file # # Creation: 03.02.2005 mnr # Last Update: 28.02.2005 mnr # # Copyright (c) 2005 - Manfred N. Reiland - info[at]eis.it-reiland[dot]de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #------------------------------------------------------------------------- # md1 is the /boot array #------------------------ raiddev /dev/md1 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc1 raid-disk 0 device /dev/hda1 failed-disk 1 # md2 is the swap array #------------------------ raiddev /dev/md2 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc2 raid-disk 0 device /dev/hda2 failed-disk 1 # md3 is the / array #------------------------ raiddev /dev/md3 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc3 raid-disk 0 device /dev/hda3 failed-disk 1 eisfair #
Secure Shell Abb 4 - Raidtabelle (raidtab)
Bitte unbedingt beachten!
Der failed-disk Parameter muss jeweils der letzte Eintrag in der raidtab Tabelle sein!
Unterschiede der RAID-Tabelle zu RAID 5 siehe Secure Shell Abb 20
Das Erstellen der RAID Arrays erfolgt wie in Secure Shell Abb 5 dargestellt mit dem Shell Kommando mkraid --really-force /dev/mdx (x als Platzhalter für die Partitions-Nummern).
eisfair # mkraid --really-force /dev/md1 && \ mkraid --really-force /dev/md2 && \ mkraid --really-force /dev/md3 DESTROYING the contents of /dev/md1 in 5 seconds, Ctrl-C if unsure! handling MD device /dev/md1 analyzing super-block disk 0: /dev/hdc1, 8032kB, raid superblock at 7936kB disk 1: /dev/hda1, failed DESTROYING the contents of /dev/md2 in 5 seconds, Ctrl-C if unsure! handling MD device /dev/md2 analyzing super-block disk 0: /dev/hdc2, 133056kB, raid superblock at 132992kB disk 1: /dev/hda2, failed DESTROYING the contents of /dev/md3 in 5 seconds, Ctrl-C if unsure! handling MD device /dev/md3 analyzing super-block disk 0: /dev/hdc3, 1955520kB, raid superblock at 1955456kB disk 1: /dev/hda3, failed eisfair #
Secure Shell Abb 5 - Make RAID
In Secure Shell Abb 5 gut zu erkennen sind die planmäßig erzeugten failed Devices und die bereits integrierten Laufwerke mit der Kennzeichnung raid superblock.
Befindet sich bereits ein Persistent Superblock auf einer Partition, wird dieser nach 5 Sekunden ueberschrieben. Innerhalb dieser 5 Sekunden je Partition hat der Admin die Möglichkeit den Vorgang mit CTRL + c abzubrechen.
Kontrollieren des Fortschritts beim Erstellen der Multiple Devices.
eisfair # cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [multipath] read_ahead 1024 sectors md3 : active raid1 hdc3[0] 1822400 blocks [2/1] [U_] md2 : active raid1 hdc2[0] 266048 blocks [2/1] [U_] md1 : active raid1 hdc1[0] 7936 blocks [2/1] [U_] unused devices:<none>eisfair #
Secure Shell Abb 5 - Kontrolle der RAID Arrays
Es werden Einzelheiten des Kernels über das RAID Array aufgezeigt. Auch hier ist wieder deutlich zu erkennen, dass Laufwerk /dev/hda gemäß Planung noch nicht in das RAID Array eingebunden ist.
Auf den neu erzeugten Multiple Devices /dev/md1 für /boot sowie /dev/md3 für / wird je ein File System ext3 erstellt und auf /dev/md2 eine swap Partition angelegt.
eisfair # mkfs.ext3 /dev/md1 && \ mkfs.ext3 /dev/md3 && \ mkswap /dev/md2 eisfair #
Secure Shell Abb 6 - Anlegen der Dateisysteme
Nachdem das neue Root Device nach /mnt eingehängt ist, wird ein neues Verzeichnis boot auf /mnt angelegt und dieses ebenfalls eingehängt.
eisfair # mount /dev/md3 /mnt && \ mkdir /mnt/boot && \ mount /dev/md1 /mnt/boot eisfair #
Secure Shell Abb 7 - Root und Boot einhängen
Um das komplette RAID Setup über eine Secure Shell
durchführen zu können, sollte man vor dem ersten Reboot
die Überprüfung des Root Filesystems unterbinden. Dazu ist in der Datei
/etc/init.d/boot die Zeile /sbin/fsck -A -p 2>/dev/null
auszukommentieren.
Dies sieht dann folgendermaßen aus:
#/sbin/fsck -A -p 2>/dev/null
Möchte man dies aus irgendwelchen Gründen nicht tun,
bleibt lediglich der Weg über die Konsole, da beim Bootvorgang
die Bestätigung der Überprüfung eines eingehängten Gerätes erwartet wird.
Der Befehlsausdruck in Secure Shell Abb 8 kommentiert die erwähnte Zeile aus.
eisfair # sed -e 's/\/sbin\/fsck/#\/sbin\/fsck/g' \ /etc/init.d/boot > /tmp/boot && \ cp /tmp/boot /etc/init.d/boot eisfair #
Secure Shell Abb 8 - fsck auskommentieren
Die Partitionen mit dem Root-Verzeichnis sowie dem Boot-Verzeichnis werden auf die neu erstellten Multipl-Devices kopiert.
Per Copy and Paste laut Secure Shell Abb 9 wird der Kopiervorgang jedem eisfair Administrator gelingen. Einfach die folgenden Zeilen im Block auf eine ssh Shell verfrachten und abschicken. Da der Kopiervorgang selbst einige Minuten andauern kann, wartet man solange bis der Eingabe-Prompt wieder erscheint.
eisfair # cd / && \ find . -xdev | cpio -pmv /mnt && \ cd /boot && \ find . -xdev | cpio -pmv /mnt/boot eisfair #
Secure Shell Abb 9 - Kopieren des Root Filesystems
/mnt/etc/fstab wird an die neuen Einhängepunkte angepasst.
eisfair # joe /mnt/etc/fstab
/dev/md3 / ext3 defaults,errors=remount-ro 0 1 /dev/md1 /boot ext3 defaults,errors=remount-ro 0 1 /dev/md2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
Secure Shell Abb 10 - fstab editieren
Jetzt kann die aktuelle /boot Partition ausgehängt und stattdessen /dev/hda1 nach /mnt/boot eingehängt werden. Grund dieser Aktion ist die korrekte Installation des Bootloaders Lilo.
eisfair # cd / && \ umount /boot && \ mount /dev/hda1 /mnt/boot eisfair #
Secure Shell Abb 11 - Boot Device umhängen
Im nächsten Schritt wird die /mnt/etc/lilo.conf insoweit editiert, dass das Boot Device immer noch ein herkömmliches Laufwerk, /dev/hda bleibt, das Root Filesystem sich aber bereits auf einem Multiple Device befindet.
eisfair # joe /mnt/etc/lilo.conf
disk = /dev/hda bios = 0x80 boot = /dev/hda read-only prompt timeout = 5 vga = normal image = /boot/kernel root = /dev/md3 label = eis initrd = /boot/initrd.gz
Secure Shell Abb 12 - /mnt/etc/lilo.conf editieren
Nach korrekter Änderung der Datei /mnt/etc/lilo.conf als Voraussetzung für einen fehlerfreien Neustart, kann Lilo auf dem Verzeichnis /mnt ausgeführt und das System neu gestartet werden.
eisfair # lilo -r /mnt && \ reboot eisfair #
Secure Shell Abb 13 - Lilo ausführen und Reboot
Wenn alle bisherigen Schritte ohne Probleme durchgeführt werden konnten, ist das RAID Array bereits aktiv, jedoch noch ohne Redundanz.
Das Device /dev/hda wird mit raidhotadd in das RAID Array integriert.
eisfair # raidhotadd /dev/md1 /dev/hda1 && \ raidhotadd /dev/md2 /dev/hda2 && \ raidhotadd /dev/md3 /dev/hda3 eisfair #
Secure Shell Abb 14 - Heißes Einfügen
Eine Synchronisation der Daten auf den neuen Partitionen sollte nun starten. Die Dauer dieses Rekonstruktionsvorgangs ist abhängig von der jeweiligen Partitionsgröße und kann eine gewisse Zeit in Anspruch nehmen.
eisfair # cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [multipath] read_ahead 1024 sectors md1 : active raid1 hda1[1] hdc1[0] 7936 blocks [2/2] [UU] md2 : active raid1 hda2[1] hdc2[0] 266048 blocks [2/2] [UU] md3 : active raid1 hda3[3] hda[2] hdc3[0] 1822400 blocks [2/1] [U_] [====>................] recovery = 21.6% (396160/1822400)... unused devices:<none>eisfair #
Secure Shell Abb 15 - Überwachen der Synchronisation
eisfair # cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid5] [multipath] read_ahead 1024 sectors md1 : active raid1 hda1[1] hdc1[0] 7936 blocks [2/2] [UU] md2 : active raid1 hda2[1] hdc2[0] 266048 blocks [2/2] [UU] md3 : active raid1 hda3[3] hda[1] hdc3[0] 1822400 blocks [2/2] [UU] unused devices:<none>eisfair #
Secure Shell Abb 16 - Ergebnis der Synchronisation
eisfair # sed -e 's/#\/sbin\/fsck/\/sbin\/fsck/g' \ /etc/init.d/boot > /tmp/boot && \ cp /tmp/boot /etc/init.d/boot eisfair #
Secure Shell Abb 17 - Filesystem Check wieder aktivieren
Die Auskommentierung der Zeile #/sbin/fsck -A -p 2>/dev/null wird wieder entfernt damit das System bei jedem Start einen Filesystem-Check durchführen kann.
Lilo ist schließlich an die veränderten Rahmenbedingungen anzupassen, damit es in der Lage ist von allen Laufwerken des Arrays zu booten. Die Veränderungen sind in der Secure Shell Abb 18 nachzulesen.
eisfair # joe /etc/lilo.conf
disk = /dev/hda bios = 0x80 boot = /dev/md1 raid-extra-boot=/dev/hda,/dev/hdc read-only prompt timeout = 5 vga = normal image = /boot/kernel root = /dev/md3 label = eisfair-raid1 initrd = /boot/initrd.gz
Secure Shell Abb 18 - Boot Ausfallsicherung
eisfair # lilo Added eisfair-raid1 * The boot record of /dev/md1 has been updated. The boot record of /dev/hda has been updated. Warning: /dev/hdc is not on the first disk The boot record of /dev/hdc has been updated. eisfair #
lilo beschreibt den MBR aller in der /etc/lilo.config angegebenen Platten.
Unterschiede zu RAID 5 siehe Secure Shell Abb 21 und Secure Shell Abb 22
Ein letztes reboot startet das System neu. Wenn es wie erwartet hochfährt, ist das RAID Setup erfolgreich beendet.
Weitere Tests lassen sich realisieren, indem man einzelne Platten nacheinander hardwareseitig abklemmt. Ist alles korrekt konfiguriert, muss das System von jedem Laufwerk ohne Fehlermeldungen hochfahren. Dazu bitte auch die Hinweise in Kapitel Ausfallerscheinungen beachten.
RAID 5 ist im Grunde wie RAID 1 zu handhaben. Die Unterschiede im Einzelnen werden an einem System mit drei Festplatten demonstriert. Hierbei wird angenommen, dass die dritte Platte als Slave am ersten IDE Kanal angeschlossen ist.
eisfair # sfdisk --change-id /dev/hda 1 fd && \ sfdisk --change-id /dev/hda 2 fd && \ sfdisk --change-id /dev/hda 3 fd && \ sfdisk -d /dev/hda > /tmp/hda.out && \ sfdisk /dev/hdb < /tmp/hda.out && \ sfdisk /dev/hdc < /tmp/hda.out eisfair #
Secure Shell Abb 19 - Aufbereiten der Festplatten (RAID 5)
Partitionsdaten von Platte /dev/hda werden zusätzlich auf das neue Laufwerk /dev/hdb geschrieben.
#------------------------------------------------------------------------- # /etc/raidtab - raiddev configuration file # # Creation: 03.02.2005 mnr # Last Update: 28.02.2005 mnr # # Copyright (c) 2005 - Manfred N. Reiland - info[at]eis.it-reiland[dot]de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #------------------------------------------------------------------------- #------------------------------------------------------------------------- # RAID 5 #------------------------------------------------------------------------- # md1 is the /boot array #------------------------ raiddev /dev/md1 raid-level 1 # RAID-Level 1! nr-raid-disks 3 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdb1 raid-disk 0 device /dev/hdc1 raid-disk 1 device /dev/hda1 failed-disk 2 # md2 is the swap array #------------------------ raiddev /dev/md2 raid-level 5 # RAID-Level 5! nr-raid-disks 3 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdb2 raid-disk 0 device /dev/hdc2 raid-disk 1 device /dev/hda2 failed-disk 2 # md3 is the / array #------------------------ raiddev /dev/md3 raid-level 5 # RAID-Level 5! nr-raid-disks 3 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdb3 device /dev/hdc3 raid-disk 1 device /dev/hda3 failed-disk 2
Secure Shell Abb 20 - Raidtabelle (raidtab - RAID 5)
Lilo ist nicht in der Lage von einem RAID 5 Array zu booten. Deshalb muss die Boot-Partition /dev/md1 als RAID 1 realisiert werden.
disk = /dev/hda bios = 0x80 boot = /dev/md1 raid-extra-boot=/dev/hda,/dev/hdb,/dev/hdc read-only prompt timeout = 5 vga = normal image = /boot/kernel root = /dev/md3 label = eisfair-raid5 initrd = /boot/initrd.gz
Secure Shell Abb 21 - Boot Ausfallsicherung (RAID 5)
eisfair # lilo Added eisfair-raid5 * The boot record of /dev/md1 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. Warning: /dev/hdc is not on the first disk The boot record of /dev/hdc has been updated. eisfair #
Secure Shell Abb 22 - Lilo Ergebnis (RAID 5)
Die markantesten Unterschiede zu RAID 1
sind in den Tabellen
Secure Shell Abb 19,
Secure Shell Abb 20
und
Secure Shell Abb 21
dargestellt.
Wer Wert auf ein hochperformantes System legt, muss im Wesentlichen den
chunk-size Parameter in der raidtab
justieren und beim Formatieren den Parameter stride
nutzen.
mkfs.ext3 -b 4096 -R stride=8 /dev/md1
Zu tiefergehenden Einzelheiten wird auf die einschlägige
Literatur verwiesen.
Als Lohn für all die Mühen erhält der eisfair Administrator ein System, dass höchste Ausfallsicherheit bietet.
Das System ist fortan nicht nur vor Datenverlust auf allen Platten, einschließlich der Speicherauslagerung swap geschützt, sondern es ist bei einem Plattencrash in der Lage von irgendeinem der intakten Laufwerke zu booten, die in dem RAID Array integriert sind.
Bei Ausfall einer Platte fährt der Administrator das System herunter und startet es erneut nachdem er die defekte Hardware ausgetauscht hat. Analog zu Secure Shell Abb 2 wird die neue Platte partitioniert und mit raidhotadd wieder in das Array integriert.
Bei den Tests ist präzise darauf zu achten, dass ein RAID 5 System vollkommen synchronisiert ist, bevor man es herunterfährt und weitere Platten entfernt oder hinzufügt.
eisfair # cat /etc/raidtab #------------------------------------------------------------------------- # /etc/raidtab - raiddev configuration file # # Creation: 03.02.2005 mnr # Last Update: 28.02.2005 mnr # # Copyright (c) 2005 - Manfred N. Reiland - info[at]eis.it-reiland[dot]de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. #------------------------------------------------------------------------- # md1 is the /boot array #------------------------ raiddev /dev/md1 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc1 raid-disk 0 device /dev/hda1 failed-disk 1 # md2 is the swap array #------------------------ raiddev /dev/md2 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc2 raid-disk 0 device /dev/hda2 failed-disk 1 # md3 is the / array #------------------------ raiddev /dev/md3 raid-level 1 nr-raid-disks 2 chunk-size 32 nr-spare-disks 0 persistent-superblock 1 device /dev/hdc3 raid-disk 0 device /dev/hda3 failed-disk 1 eisfair #
Abb A1 - /etc/raidtab - RAID 1
#------------------------------------------------------------------------- # /etc/lilo.conf - Lilo Configuration File # # Creation: 15.02.2005 mnr # Last Update: - # # Copyright (c) 2005 - Manfred N. Reiland - info[at]eis.it-reiland[dot]de #------------------------------------------------------------------------- disk = /dev/hda bios = 0x80 # boot devices boot=/dev/md1 # <--- boot from multiple device raid-extra-boot=/dev/hda,/dev/hdc # <--- rescue boot device # read-only prompt timeout = 5 vga = normal # image = /boot/kernel root = /dev/md3 # <--- root label = eisfair-raid1 initrd = /boot/initrd.gz
Abb A2 - /etc/lilo.conf - RAID 1
#------------------------------------------------------------------------- # /etc/fstab - File system # # Creation: 15.02.2005 mnr # Last Update: - # # Copyright (c) 2005 - Manfred N. Reiland - info[at]eis.it-reiland[dot]de #------------------------------------------------------------------------- /dev/md3 / ext3 defaults,errors=remount-ro 0 1 /dev/md1 /boot ext3 defaults,errors=remount-ro 0 1 /dev/md2 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0
Abb A3 - /etc/fstab - RAID 1
[1]
Linux Software-RAID HOWTO (german)
[2]
Boot + Root + Raid + Lilo : Software Raid mini-HOWTO
Copyright (C) 2005 Manfred N. Reiland - info@ice.it-reiland.de
Wortgetreues Kopieren sowie die Verbreitung des kompletten Dokumentes
ist mit jedem Medium gestattet, soweit dieser Vermerk erhalten bleibt.
Verbatim copying and distribution of this entire article is permitted in any medium,
provided this notice is preserved.
Aktualisiert: 03.01.2007