Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: Die Konfiguration der /etc/mdadm/mdadm.conf für neue RAID-Arrays muss noch erklärt werden!
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Ein Redundant Array of Independent Disks dient dazu, ein logisches Laufwerk redundant auf mehrere physikalische Festplatten zu verteilen und dadurch eine erhöhte Sicherheit vor Datenverlust zu erreichen. Native (Hardware)-RAID-Controller, die unter Linux unterstützt werden (z.B. 3Ware) sind aber für den Heimgebrauch teuer. Das alles kann man sich sparen, die einfache Alternative unter Linux: Software-RAID. Die Festplatten dafür können auch an sog. FakeRAID-Controllern verwendet werden, die oftmals unter Windows als RAID-Controller eingesetzt werden bzw. an Onboard-RAID-Controllern (auf neueren Hauptplatinen).
Für ein RAID werden mehrere Partitionen benötigt. Es ist dringend angeraten, diese auf verschiedenen Festplatten anzulegen. Zudem sollten die Partitionen alle die gleiche Größe haben. Angabe des Speicherplatzes im RAID in Kapazität je Partition (k); "n" ist die Anzahl der verwendeten Partitionen.
| RAID-Typen im Überblick | ||||
| Raidtyp | min. Anzahl an Partitionen | Vorteil | Speicherplatz | Bemerkung |
| RAID 0 | 2 | Geschwindigkeit (Lesen & Schreiben), Plattenplatz | k*n | Keine Partition darf ausfallen |
| RAID 1 | 2 | Ausfallsicherheit, Geschwindigkeit (Lesen) | k | Alle bis auf eine Partition dürfen ausfallen |
| RAID 5 | 3 | Plattenplatz, Ausfallsicherheit, Geschwindigkeit (Lesen) | k*(n-1) | Eine Partition darf ausfallen |
| RAID 6 | 4 | Plattenplatz, bessere Ausfallsicherheit als Raid-5, Geschwindigkeit (Lesen) | k*(n-2) | Zwei Partitionen dürfen ausfallen |
Zusätzlich werden sog. "Spare"-Laufwerke unterstützt, d.h. Festplatten, die aktiv nicht am RAID teilnehmen, aber im Fehlerfall sofort mit ins RAID aufgenommen werden.
Zwar ist es möglich, für ein RAID mehrere Partitionen auf einer Festplatte zu verwenden, jedoch ist dies unsinnig, da beim Ausfall der Festplatte das RAID nicht mehr lesbar ist.
Bei IDE-ATA-Festplatten gilt: die verwendeten Festplatten sollten nicht an einem IDE-Kanal hängen, da im Fehlerfall einer Festplatte unter Umständen der komplette IDE-Kanal gestört wird und dadurch u.U. das RAID nicht mehr nutzbar ist. Bei einem RAID 0 erhöht sich die Gesamtleistung, da paralleles Lesen/Schreiben auf verschiedenen IDE-Kanälen schneller geht als auf nur einem.
Generell sollte man bei RAIDs moderne SATA-Festplatten verwenden, da der Datendurchsatz bei dieser Technologie zum Teil erheblich höher ist. Zudem sind SATA-Platten "hotplugable"; das heißt, sie sind im laufenden Betrieb eines RAIDs an- und abschaltbar, und damit auch austauschbar. Allerdings sollte man genau wissen was man tut, bevor man sich an solcherlei Aktionen heranwagt.
Nicht jeder SATA-Controller ist in der Lage, mit Hot-Plug auch richtig umzugehen. Auch sollte man darauf achten, dass man die richtige Festplatte zieht, um Datenverlust zu vermeiden.
Die folgende Anleitung beschreibt die Konfiguration eines Software-RAID als Datenfestplatte, nicht als Bootfestplatte (dafür sind noch andere Schritte nötig).
Folgendes Paket muss installiert [2] werden, um ein Software RAID erstellen zu können:
mdadm
Bis einschließlich Ubuntu 8.10 sollte sichergestellt sein, dass das Kernelmodul "md" geladen ist.
Ab Ubuntu 9.04 ist die RAID-Funktionalität fest im Kernel integriert und das Modul wird nicht benötigt.
Dazu folgendes in einer Konsole eingeben:
sudo lsmod | grep md
Das Ergebniss sollte in etwa so aussehen:
md_mod 79508 2 raid1
Gibt der Befehl keine Rückgabe, so muss das Modul zunächst manuell geladen werden:
sudo modprobe md
Anschließend sollte noch wie unter Kernelmodule beschrieben ein Eintrag in /etc/modules vorgenommen werden um das Modul beim Systemstart automatisch zu laden[3].
Benutzt man bei der Installation die Alternate-CD, so bietet Ubuntu an, bereits bei der Installation ein RAID einzurichten. Dies findet man unter dem Punkt "Partitionieren". Trotzdem ist es sinnnvoll, wenn man diese Seite hier gelesen hat, um beim Einrichten des RAIDs zu wissen, was man tut. Nach aktuellem Stand (Ubuntu 10.04 Lucid Lynx) unterstützt die Alternate-CD die RAID-Level 0, 1, 5, 6 und 10. Es gibt diverse HowTos im Web zu Konfigurationen, die mit der textbasierten Installation angeblich nicht automatisch erstellt werden können, z.B. RAID10. Es lohnt sich auf jeden Fall, es zuerst mit der Alternate-CD zu versuchen bevor man mit manuellen Setups experimentiert.
Die beiden für RAID0 oder RAID1 vorgesehenen Platten werden in diesem Beispiel als /dev/hde und /dev/hdg erkannt. Die dritte Festplatte für das RAID5-Beispiel wird als /dev/hdf erkannt.
Das Partitionieren der Festplatten löscht alle vorherigen Inhalte.
Zuerst sollte man sicher gehen, dass die neuen Festplatten korrekt vom System erkannt werden. Ist dies der Fall, so können beide Platten mit "fdisk" partitioniert werden. Dazu öffnet man ein Terminal[1] und gibt folgenden Befehl ein:
fdisk /dev/hde
Im Fdisk-Menü wählt man "n" für neue Partition, dann legt man die Partition über das komplette Laufwerk an. Sind die Festplatten unterschiedlich groß, so muss man für beide neuen Partitionen die gleiche Größe (gleiche Anzahl der Zylinder) auswählen. Nun wählt man "t" um den Typ der Partition als "fd" (Linux RAID) festzulegen. Diese Änderungen lässt man von Fdisk mit dem Befehl "w" ausführen. Diese Prozedur führt man für jede am RAID-Verbund beteiligte Festplatte aus.
Um potentiellen Problemen beim automatischen Zusammenbau des RAID (z.B. beim Booten) zu entgehen, sollte die letzte Partition auf der Festplatte nicht bis zu deren Ende reichen, sondern mindestens 128 KByte vorher enden. (sonst kann der Superblock, welcher später die Zugehörigkeit der Partition zum RAID beschreibt auch als gültiger Superblock der gesamten Platte interpretiert werden und dann wird ggf. das falsche Block-Device zum RAID gefügt)
Nun muss das "virtuelle" Laufwerk erzeugt werden, das dann das eigentliche Dateisystem enthält. Dazu führt man abermals am Terminal [1] einen der folgende Befehle aus. Wie man sieht, bestimmt die Option "level" den Typ des zu erzeugenden RAID.
Hier darauf achten, dass die Partition und nicht die Festplatte selbst gewählt wird, also /dev/hde1 und nicht /dev/hde! Mit dem Befehl "cat /proc/partitions" kann man sich die Festplatten und Partitionen anzeigen lassen.
Falls die Partitionen zuvor schon mal als RAID verwendet wurden, muss man die Metadaten zunächst wie folgt löschen.
mdadm --zero-superblock /dev/hde1 mdadm --zero-superblock /dev/hdg1
Folgender Befehl erstellt ein Software-RAID 0:
mdadm --create --verbose /dev/md0 --auto=yes --level=0 --raid-devices=2 /dev/hde1 /dev/hdg1
Folgender Befehl erstellt ein Software-RAID 1:
mdadm --create --verbose /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/hde1 /dev/hdg1
Folgender Befehl erstellt ein Software-RAID 5 mit drei Festplatten:
mdadm --create --verbose /dev/md0 --auto=yes --level=5 --raid-devices=3 /dev/hde1 /dev/hdf1 /dev/hdg1
Folgender Befehl erstellt ein Software-RAID 6 mit vier Festplatten:
mdadm --create --verbose /dev/md0 --auto=yes --level=6 --raid-devices=4 /dev/hde1 /dev/hdf1 /dev/hdg1 /dev/hdh1
Um das komplette System zu einem RAID zusammenzufassen, muss es mit der Alternate-Disk aufgesetzt werden.
Grub-Legacy (bis Jaunty Jackalope):
GRUB kann nur von RAID 1 booten. Wer also das System mit einem anderen RAID versehen will, muss eine getrennte (Nicht-Raid) /boot-Partition anlegen.
GRUB 2 (seit Karmic Koala):
GRUB 2 erlaubt das direkte Booten auch von anderen RAID-Konstellationen. Die Installation des MBR ist unter GRUB 2 sehr variabel - siehe auch Baustelle/GRUB 2 Linux Befehle.
Damit ist das virtuelle Laufwerk angelegt. Nun formatiert man /dev/md0 mit dem gewünschten Dateisystem und hängt dieses an der gewünschten Stelle im Dateisystem ein. Formatiert wird /dev/md0 durch folgenden Befehl:
sudo mkfs.ext3 /dev/md0
Weitere Informationen zu diesem Vorgehen unter Datenträger. Im Hintergrund werden zwischenzeitlich die im RAID vorhandenen Partitionen synchronisiert. Die Synchronisation kann eine erhöhte Systemauslastung ("load average") verursachen und je nach Größe der Partitionen eine Weile dauern.
Um HotSpares hinzufügen wird der Befehl
sudo mdadm --add /dev/mdxx /dev/sdaxx
ausgeführt.
Für E-Mail-Benachrichtigung muss die Datei /etc/mdadm/mdadm.conf mit Root-Rechten editiert und folgende Zeile eingefügt werden:
MAILADDR example@example.com
Optional kann hier auch die Absenderadresse konfiguriert werden:
MAILFROM mdadm@example.com
Zusätzlich zu einer E-Mail-Benachrichtigung kann ein Programm ausgeführt werden. Hierzu fügt man folgende Zeile ein:
PROGRAM /usr/bin/raid-problem.sh
Um die E-Mail-Benachrichtigung und die Ausführung des Programmes zu testen führt man folgenden Befehl aus:
mdadm --monitor --test /dev/md0
Wichtig ist, dass die Option "AUTOCHECK" in der Datei /etc/default/mdadm auf "true" eingestellt ist.
Das RAID muss nun natürlich in den Dateibaum eingebunden werden. Der korrelierende Eintrag dazu in der /etc/fstab folgt der selben Syntax wie der einer normalen Partition, und könnte beispielsweise so aussehen:
/dev/md0 /media/daten ext3 defaults 0 0
Ausführliche Informationen zu einem Raid-Device erhält man mittels folgendem Befehl:
mdadm --detail /dev/Raiddevice
Ebenso lässt sich mit diesem Befehl eine kurze Übersicht des RAIDs ausgeben:
cat /proc/mdstat
Nachdem das RAID-Device nun gemountet und funktionsfähig, sowie in der fstab eingetragen ist, müssen noch die RAID-Platten in die mdadm.conf eintragen werden. Dazu werden im Terminal die Metadaten und UUID des RAIDs abgefragt:
mdadm --detail --scan
Die beiden ausgegebenen Werte werden nun in einem Editor mit Root-Rechten in die Datei /etc/mdadm/mdadm.conf eingetragen, z.B. /dev/hda3 und /dev/hdb1:
DEVICE /dev/hda3 /dev/hdb1
Darunter wird das neue Array wie folgt eingetragen:
ARRAY /dev/md0 level=raid0 num-devices=2 metadata=00.90 UUID=c4677279:2d8a904a:01f9e43d:ac30fbff mdadm --detail --scan
Nach Abspeichern wird das ganze Array nun bei jedem Systemstart automatisch erkannt werden.
Wer es einfacher haben will, benutzt einfach diesen Befehl, sobald die Arrays erstellt sind und laufen:
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Wenn eine der Festplatten im Verbund ausfällt, wird dies vom mdadm-Dämon entsprechend geloggt. Auf Wunsch kann man sich auch per E-Mail informieren lassen (siehe manpages). Bei einem RAID 0 äußert sich der Ausfall einer Platte natürlich im Ausfall des gesamten RAID-Verbunds.
Die ausgefallene Platte lässt sich mit den oben unter Benutzung/Konfiguration genannten Befehlen erkennen. Um die Festplatte zu ersetzen, muss diese zunächst aus dem RAID-Verbund entfernt werden:
mdadm /dev/md0 --remove /dev/hde1
Anschließend kann sie durch eine neue Ersatzplatte ersetzt werden.
Die neue Platte muss zunächst genauso wie die anderen mit "fdisk" partitioniert werden. Alternativ kann die Partitionstabelle einer anderen Platte im Verbund 1:1 kopiert werden (hier von hdf nach hde):
sfdisk -d /dev/hdf | sfdisk /dev/hde
Anschließend kann die Platte mit folgendem Befehl zum Verbund hinzugefügt werden:
mdadm /dev/md0 --add /dev/hde1
Soll die neue Festplatte startfähig sein, muss noch der Bootloader in den MBR der neuen Festplatte geschrieben werden.
In Einzelfällen kann es vorkommen, dass aufgrund eines defekten Controllers oder Netzteils ein RAID nicht mehr funktionsfähig ist. In so einem Fall liegt kein Schaden an den Festplatten vor - das RAID ist also wieder herstellbar. Hier hilft die folgende Vorgehensweise.
Zuerst muss das RAID gestoppt werden:
mdadm --stop /dev/mdX
Danach wird das RAID manuell wieder zusammengefügt. Dabei ist es wichtig, die letzte funktionierende Konfiguration zu verwenden.
Bei einem RAID 5 mit 3 Platten, bei dem zwei Platten wegen Controller-Defekt ausgestiegen sind, müssen diese zwei Platten verwendet werden, da sie bis zum Ausfall des Controllers noch zusammen aktiv waren. Diese werden dann wie folgt reaktiviert:
mdadm --assemble /dev/mdX /dev/sdaX /dev/sdbX --force
Nun sollte das RAID wieder funktionieren. Die dritte Platte (aus o.g. Beispiel) kann mit dem Parameter "--add" wieder in den Verbund aufgenommen werden.
Für den Fall, dass man mal das Betriebssystem neu aufsetzen muss oder auf dem Rechner ein zweites Betriebssystem installieren will, kann man das Software-Raid weiter verwenden (sofern das Betriebssystem nicht direkt auf dem Software-Raid angelegt ist). Danach muss man auf dem neuen System das Paket
mdadm
installieren[2], danach kann man dann das Software-RAID wieder benutzen:
mdadm --assemble --scan
Hat man mehrere Software-RAIDs und möchte ein bestimmtes RAID zusammenführen, kann man dies durch die Angabe der UUID des entsprechenden RAIDs tun:
mdadm --assemble --scan --uuid=6c926c35:380d7ab2:3603cf0e:ecfa67b9
oder durch die Angabe der RAID-Partitionen:
mdadm --assemble /dev/mdX /dev/sdaX /dev/sdbX /dev/sdcX
Auf keinen Fall darf man hierbei die Optionen --create verwenden, damit wird die Lesbarkeit auf den beteiligten Partitionen zerstört.
Falls zum Beispiel der Speicherplatz eines RAIDs nicht mehr ausreicht, kann man es durch weitere Festplatten bzw. Partitionen erweitern. Dies gilt allerdings nur für ein RAID 1,4,5 oder 6. Die Partition, die hinzugefügt werden soll, muss genauso formatiert sein, wie die Partitionen, die bereits im RAID vorhanden sind. Zunächst fügt man die Partition mit
sudo mdadm --add /dev/mdX /dev/sddX
zum vorhandenen Array hinzu. Die Partition wird zunächst nur als Spare-Laufwerk zum RAID hinzugefügt. Der Befehl kann auch öfter ausgeführt werden, wenn man gleich mehrere Geräte hinzufügen will.
Um das RAID neu aufzubauen und somit den neuen Speicherplatz nutzen zu können, muss man wie folgt vorgehen.
Das Vergrößern ("reshaping") eines RAID-Systems kann, je nach Größe, einige Stunden oder sogar Tage dauern. Die Aktion wird im Hintergrund ausgeführt. Es sollte also sichergestellt sein, dass das "reshaping" beendet ist, bevor man den Computer ausschaltet oder neu startet. Es können sonst alle Daten des RAID verloren gehen.
Der Vorgang wird mit dem Befehl
mdadm --grow --raid-devices=X /dev/mdX
gestartet. Die Option "raid-devices" gibt die Anzahl der Geräte an, aus denen das RAID nach der Erweiterung bestehen soll. Falls man den Platz hat, um ein Backup zu erstellen, kann man mit dem Zusatz "--backup-file=" den Ort einer entsprechenden Backup-Datei angeben. Den Status des Vorgangs kann man mit
cat /proc/mdstat
auslesen.
Um die Auswirkungen auf das System zu minimieren, wird die Geschwindigkeit beim Vergrößern des RAID auf das Minimum gedrosselt. Es macht also Sinn den Wert in /proc/sys/dev/raid/speed_limit_min temporär zu erhöhen, falls die Geschwindigkeit zu gering und das System nicht ausgelastet ist.
Hierzu muss man sich erst als root am System anmelden. Dies macht man mit dem Befehl
sudo -i
Als root angemeldet kann am nun mit dem Befehl
echo 100000 >/proc/sys/dev/raid/speed_limit_min
die minimale Geschwindigkeit auf rund 100 MB/s setzen. Selbst wenn diese Geschwindigkeit nicht erreicht wird, ist es kein Schaden, sie auf diesen Wert zu setzen. Danach kann man sich wieder als normaler Benutzer anmelden, indem man den Befehl
exit
eingibt und mit ⏎ bestätigt.
Das RAID (/dev/mdX) darf während des Vorgangs eingebunden sein. Dies verlangsamt den Vorgang allerdings wesentlich. Im ungemounteten Zustand kann das "reshaping" über 50% schneller sein als im gemounteten Zustand.
Nun muss noch das Dateisystem erweitert werden, damit der neu entstandene Speicherplatz auch genutzt werden kann.
Für ext2- oder ext3-Dateisystem kann hierfür
resize2fs /dev/mdX
verwendet werden.
Für ein reiser-Dateisystem sollte der folgende Befehl verwendet werden:
resize_reiserfs /dev/mdX
Dem Wunsch, das Dateisystem zunächst zu überprüfen, sollte man in jedem Fall folgen, auch wenn es ein wenig Zeit in Anspruch nimmt.
Grundsätzlich sollte die Datei mdadm.conf noch auf den aktuellen Stand gebracht werden! Dies geht z.B. mit "mdadm --detail --scan > /etc/mdadm/mdadm.conf". Und damit die Boot-Partitionen durch die initrd auch einwandfrei gemountet werden, sollte nach Änderung der Datei mdadm.conf noch die initrd neu angelegt werden, z.B. durch Ausführen von " dpkg-reconfigure mdadm".
Betreibt man ein Raid-Verbund als Systemlaufwerk, ist es praktisch, wenn das System auch noch nach Ausfall einer Festplatte hochfahren kann. Das wird z.B. bei ferngewarteten Rechnern benötigt, auf die man keinen direkten Zugriff hat. Da sich GRUB in der Standardkonfiguration nur auf einem der Laufwerke installiert, muss man da etwas nachhelfen.
Dazu installiert man GRUB auf allen dem Raidverbund angehörenden Laufwerken in den MBR wie folgt:
Mit
sudo grub
landet man in der GRUB-Konsole. Die sieht dann wie folgt aus:
Probing devices to guess BIOS drives. This may take a long time.
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>Jetzt muss man GRUB von Hand auf die entsprechenden Festplatten installieren:
grub>device (hd0) /dev/sdb grub>root (hd0,0) grub>setup (hd0) grub>device (hd0) /dev/sdc grub>root (hd0,0) grub>setup (hd0) ...
Hat man das gemacht, beendet man die Grub-Konsole mit "quit".
Jetzt ist in jedem Fall schonmal ein Boot-loader vorhanden. Nun muss man die /boot/grub/menu.lst noch anpassen:
... title Ubuntu 9.04, kernel 2.6.28-11-server root (hd0,0) kernel /boot/vmlinuz-2.6.28-11-server root=/dev/md0 ro quiet splash initrd /boot/initrd.img-2.6.28-11-server ...
es muss darauf geachtet werden dass die richtige Gerätedatei angegeben ist (hier /dev/md0).
Da das Tool "mdadm" bei einem fehlerhaften Raid-Verbund (eine Platte defekt) standardmäßig nicht automatisch hochfährt und stattdessen in eine kleine Shell wechselt,
muss man dies noch ausschalten. In der Datei /etc/initramfs-tools/conf.d/mdadm muss der Wert "BOOT_DEGRADED" auf "true" gesetzt werden, oder man benutzt
dpkg-reconfigure mdadm
Jetzt fährt das System in jedem Fall bei Ausfall eines Laufwerks hoch.
Mit Ubuntu Version 9.04 wurde RAID direkt im Kernel integriert. Dies kann allerdings häufig zu Problemen führen, so ist es möglich, dass RAID in einen "degraded"-Zustand verfällt.
Meistens treten diese "Fehler" allerdings erst nach einem Neustart auf. Hat man das RAID also gerade erst neu aufgesetzt, wartet man am besten, bis das "resync" durchgelaufen ist.
Der folgende Befehl zeigt den Fortschritt an
cat /proc/mdstat
Ist dies abgeschlossen, startet man das System zum Test neu, da das RAID nun in einem "degraded"-Zustand sein könntet. Prüfen kann man dies mit dem gleichen Befehl.
Man hat nun einen Zustand erreicht, den viele durch Upgraden auf 9.04 mit existierendem RAID besitzen. Sie können also hier einsteigen, wenn sie gerade einen Upgrade hinter sich haben.
Da die Festplatten im Folgenden nur neu "eingesammelt" werden, sollten keine Daten verloren gehen. Es sei hier nahe gelegt, den "degraded" RAID zu benutzen, um eine Sicherheitskopie anzulegen (falls dies noch möglich ist!) Wenn nicht sollte man sagen, dass ein RAID Sicherheitskopien nicht ersetzt. Gründe dafür können Viren, Benutzerfehler, Totalausfall oder eben auch ein Systemupdate sein.
1. Alle RAIDs stoppen
2. RAIDs explizit (durch Angabe der devices) neu "Einsammeln". Verwenden werden die Namen "/dev/md_dX X=0,1,2,..." (Die RAIDs erscheinen später als /dev/md0,1,2...)
3. Updaten der mdadm.conf mit "mdadm --detail --scan >> mdadm.conf"
4. Auskommentieren der alten ARRAY-Definitionen in der mdadm.conf
5. Ein obligatorischer Testneustart
6. Einfügen der /dev/md0,1,... in die fstab
7. Neuladen der fstab
Damit ist das RAIDs gerettet bzw. an Ubuntu 9.04 angepasst
Im Folgenden werde die Schritte noch einmal langsam und mit genauen Befehlen beschrieben:
1. Stoppen aller RAIDs. (Den Stern * so stehen lassen, es werden dann alle RAIDs gestoppt)
sudo mdadm --stop /dev/md*
2. Wiedervereinigen der RAIDs: (Beispiel eines RAID1. Verwendet werden muss "md_d0", nicht "md0"! Statt 0 natürlich 1 2 3 falls mehrere RAIDs verwendet werden)
sudo mdadm --assemble /dev/md_d0 /dev/sda1 /dev/sdb1
3. Wiedereinfügen der neu vereinigten RAIDs in die /etc/mdadm/mdadm.conf
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
oder
sudo mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm/mdadm.conf
4. Wichtig ist dabei das Löschen oder Auskommentieren der alten ARRAY-Definitionen, dazu in einem Editor mit Rootrechten die Datei /etc/mdadm/mdadm.conf berarbeiten
Dies sollte in etwa so aussehen:
# definitions of existing MD arrays #Diese Zeile müssen Sie auskommentieren #ARRAY /dev/md0 level=raid1 num-devices=2 UUID=c4677279:2d8a904a:01f9e43d:ac30fbff #Diese Zeile wurde eingefügt: ARRAY /dev/md/d0 level=raid1 num-devices=2 metadata=00.90 UUID=ea1f247d:e21f1ae1:01f9e43d:ac30fbff
Die Angabe "metadata=00.90" zeigt beim Starten einen Fehler. Die Änderung auf "metadata=0.90" behebt das Problem.
Die RAIDs erscheinen nach einem Neustart mit den gewohnten Gerätenamen (z.B. /dev/md0 und (nicht etwa /dev/md_d0 oder /dev/md/d0)
Die Angaben können nun auch in die fstab eintragen werden. Dazu zunächt im Terminal mit
sudo mkdir /media/raiddisk
das Verzeichnis /media/raiddisk anlegen, und dann die Datei /etc/fstab in einem Editor mit Root-Rechten bearbeiten und folgende Zeile einfügen:
/dev/md0 /media/raiddisk ext3 defaults 0 0
Anschließend die fstab neuladen:
sudo mount -a
Überprüfung der Aktion mit dem Befehl "df -h", das Ergebnis sollte u.A. in etwa Folgendes liefern:
Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/md0 917G 11G 861G 2% /media/raiddisk <---- RAID
Wichtig ist vor allem, dass RAID-0 (stripping) denkbar ungeeignet für ein USB-RAID ist, da bei diesem das Entfernen einer Platte direkt zum Defekt des RAID-Verbunds führt. Mit RAID5-6 kann es kritisch werden, es sollte aber funktionieren, auch wenn stark davon abzuraten ist. Daher ist das Folgende an einem RAID-1 (Spiegel) mit 2 Partitionen auf 2 verschiedenen USB Festplatten (sdb1 sdc1) erklärt.
RAID1 funktioniert, weil immer auf alle Platten geschrieben wird und das System zwischenzeitlich entfernte Platten wieder synchronisieren kann.
Bei USB-Festplatten muss man unterbinden, dass Benutzer versuchen, diese einzuhängen. und dass das System dies am Anfang nicht selbst probiert. Dazu sollte man wissen, dass alle am RAID beteiligten Partitionen die gleiche UUID haben. Diese kopiert man in die fstab und fügt die Parameter "nouser" und "noauto" hinzu.
Zum Herausfinden der UUID folgenden Befehl ausführen:
sudo vol_id /dev/sdb1 sudo vol_id /dev/sdc1
Beide sollten die gleiche UUID haben, wenn sie am gleichen RAID beteiligt sind. Daher muss man auch nur einen UUID-Eintrag in die fstab aufnehmen.
Dies geschieht in dem Beispiel, indem man die Datei /etc/fstab in einem Editor mit Root-Rechten bearbeitet:
... hier stehen noch autogenerierte Einträge.... ##################RAID 1 sdb1 and sdc1 settings########################### #deny automout and useraccess to sdb1 sdc1 #verbiete den Automount und den Benutzerzugriff zu sdb1 sdc1 UUID=ea1f247d:e21f1ae1:01f9e43d:ac30fbff none auto nouser,noauto 0 0 #Mount RAID in /media/usbraiddisk with default parameters #Mounte das RAID in /media/usbraiddisk mit standard parametern. /dev/md0 /media/usbraiddisk ext3 defaults 0 0
Bedeutung:
"UUID=ea1....bff" lokalisiert die Partitionen sdb1 und sdc1 eindeutig, auch wenn diese mal ausgesteckt wurden und der alte Name sdb1 oder sdc1 schon belegt ist.
"none" bedeutet, dass diese Festplatten nicht eingehängt werden, sie sollen ja auch nur über das RAID erreichbar sein.
"auto" ermittelt das Dateisystem automatisch, "fd" würde hier also auch gehen.
"nouser" verbietet, dass Benutzer diese Partition mounten können, bzw dass sie in "Orte" verfügbar ist.
"noauto" verbietet dem System, diese Festplatte beim Hochfahren zu mounten. Dies ist nicht zwingend notwendig, da es nicht versuchen wird. (Kleine Kritik an Ubuntu: Ubuntu ist ein Betriebssystem für einfache Benutzer oder Linux-Einsteiger, daher ist man sich nie ganz sicher, was hier alles automatisch und vor allem wann gemacht wird, oder ob dies durch Hilfsprogramme getätigt wird. Dies macht Ubuntu zwar sehr einfach in der Bedienung, führt aber bei komplexen Situationen wie USB-RAIDs zu erheblichen Problemen. Daher besser "noauto" einfügen, um die gewünschte Eigenschaft zu garantieren.)
"0 0" am Ende sind die "dump"- und "pass"-Werte. Mehr dazu unter fstab
Wem die oben genannten Möglichkeiten nicht ausreichen, der kann auch auf komplexere Konfigurationen zurückgreifen. So ist es möglich, zwei RAID 5 zu spiegeln, also als RAID 1 zu betreiben (zum Beispiel: md0 = sda1 + sdb1 + sdc1 ; md1 = sdd1 + sde1 + sdg1 ; md2 = md0 + md1 ; wobei md0 und md1 jeweils ein RAID 5 sind, und md2 ein RAID 1 ist). Dies erhöht die Datensicherheit, da ein komplettes RAID 5 ausfallen kann, und die Daten trotzdem noch verfügbar sind.
Alternativ verwendet man auch gerne mehrere RAIDs in Zusammenarbeit mit LVM, da dieses einen sehr flexiblen Umgang mit den RAIDs ermöglicht. Zudem sind dadurch auch sehr große Dateisysteme mit etlichen Terabytes und sogar Petabytes realisierbar.
Hat man ein Softwareraid manuell eingerichtet und möchte ohne extra /boot-Partition direkt vom Raid 1 starten, so muss man nach der Installation von "mdadm" das Initramfs aktualisieren:
update-initramfs -u -k all
Falls von dem RAID noch nicht gebootet werden kann, weil man das System darauf umgezogen hat, kann man dazu in einer Live-Umgebung mit chroot in das neue System wechseln. Eine Beschreibung hierzu findet sich im Artkel GRUB.
sudo mount /dev/md0 /mnt sudo mount -o bind /dev /mnt/dev sudo mount -t proc /proc /mnt/proc sudo chroot /mnt /bin/bash sudo update-initramfs -u -k all
Falls das System nicht bootet, nachdem man es auf ein RAID1 kopiert hat, obwohl /etc/fstab angepasst wurde und die Datei /boot/grub/grub.cfg, nach ausführung von update-grub, sowie /etc/mdadm/mdadm.conf korrekt erscheint und die initram wie oben beschrieben aktualisiert wurde, kann es helfen, grub2 nach der Methode, wie unter GRUB 2/Reparatur beschrieben, erneut zu installieren.
Falls beim Erstellen eines RAIDs folgende Fehlermeldung erscheint
mdadm: Cannot open /dev/sdXX: Device or resource busy
und mit den Partitionen bereits einmal ein RAID erstellt wurde, muss dieses mit dem Befehl
sudo mdadm --manage --stop /dev/mdX
gestoppt werden.
Sollte wider Erwarten ein RAID beim Booten nicht erkannt werden, so kann man mit der Datei /etc/mdadm/mdadm.conf der automatischen Erkennung auf die Sprünge helfen. Zuerst aktiviert und startet man alle RAIDs händisch (s.o.), damit sie vom Kernel erkannt werden. Der Befehl
cat /proc/mdstat
zeigt anschliessend an, ob alles seine Richtigkeit hat. Dann erstellt man eine neue Konfigurations-Datei. Hier muss man unterscheiden, ob man Partitionen oder ganze Platten für das Raid verwendet hat:
Befehle zur Wiederherstellung der Konfigurationsdatei bei aus Partitionen aufgebauten RAIDs:
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > /etc/mdadm/mdadm.conf mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Befehle zur Wiederherstellung der Konfigurationsdatei bei aus ganzen Platten aufgebauten RAIDs:
echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > /etc/mdadm/mdadm.conf mdadm --examine --scan --config=/etc/mdadm/mdadm.conf >> /etc/mdadm/mdadm.conf
Diese Revision wurde am 25. Juli 2010 um 23:11 Uhr
von hannemann erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Hardware, Server
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten