RAID1 einrichten: Arrays, Systemanpassungen und GRUB
Kurzversion: Erstelle drei RAID1-Arrays (md0, md1, md2) mit jeweils einem fehlenden Laufwerk, erstelle Dateisysteme und passe mdadm-, fstab- und GRUB-Konfigurationen an. Kopiere Boot- und Root-Daten auf die neuen Arrays, installiere GRUB auf beiden Festplatten und führe einen Neustart durch. Wichtig: teste das Booten und bereite ein Rollback-Szenario vor, falls der Bootvorgang fehlschlägt.
Wichtig: Arbeite vorsichtig — dieses Vorgehen ändert Boot- und Root-Devices. Ein Backup vor Start ist empfohlen.
4 Erstellen unserer RAID-Arrays
Nun erstellen wir die RAID-Arrays /dev/md0, /dev/md1 und /dev/md2. /dev/hdb1 wird zu /dev/md0, /dev/hdb5 zu /dev/md1 und /dev/hdb6 zu /dev/md2 hinzugefügt. /dev/hda1, /dev/hda5 und /dev/hda6 können momentan nicht hinzugefügt werden (das System läuft derzeit darauf), darum verwenden wir in den folgenden drei Befehlen den Platzhalter missing:
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/hdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/hdb5
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/hdb6Der Befehl
cat /proc/mdstatsollte nun anzeigen, dass drei RAID-Arrays degraded sind ([U] oder [U] bedeutet, dass ein Array degraded ist; [UU] bedeutet OK):
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 hdb6[1]
4642688 blocks [2/1] [_U]
md1 : active raid1 hdb5[1]
417536 blocks [2/1] [_U]
md0 : active raid1 hdb1[1]
176576 blocks [2/1] [_U]
unused devices:
[root@server1 ~]# Anschließend legen wir Dateisysteme an (ext3 auf /dev/md0 und /dev/md2, Swap auf /dev/md1):
mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2Jetzt passen wir /etc/mdadm.conf an (die Datei enthält noch keine Informationen zu den neuen Arrays). Erst eine Sicherung anlegen und dann den Scan anhängen:
cp /etc/mdadm.conf /etc/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm.confInhalt anzeigen:
cat /etc/mdadm.confIn der Datei sollten nun die Details zu den drei (degradierten) RAID-Arrays sichtbar sein, z. B.:
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=6b4f013f:6fe18719:5904a9bd:70e9cee6
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=63194e2e:c656857a:3237a906:0616f49e
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=edec7105:62700dc0:643e9917:176563a7Hinweis: Alternativ zu Gerätenamen ist es empfehlenswert, in späteren Schritten UUIDs zu nutzen (z. B. in fstab), um Probleme bei geänderter Geräte-Reihenfolge zu vermeiden.
5 Anpassung des Systems an RAID1
Zuerst mounten wir /dev/md0 und /dev/md2 (das Swap-Array /dev/md1 muss nicht gemountet werden):
mkdir /mnt/md0
mkdir /mnt/md2mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2Beide Arrays sollten in der Ausgabe von
mountzu finden sein:
[root@server1 ~]# mount
/dev/hda6 on / type ext3 (rw,relatime)
none on /proc type proc (rw)
/dev/hda1 on /boot type ext3 (rw,relatime)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
/dev/md2 on /mnt/md2 type ext3 (rw)
[root@server1 ~]#Nun bearbeiten wir /etc/fstab und ersetzen /dev/hda1 durch /dev/md0, /dev/hda5 durch /dev/md1 und /dev/hda6 durch /dev/md2, sodass die Datei z. B. so aussieht:
/dev/md2 / ext3 relatime 1 1
/dev/md0 /boot ext3 relatime 1 2
/dev/cdrom /media/cdrom auto umask=0022,users,iocharset=utf8,noauto,ro,exec 0 0
/dev/fd0 /media/floppy auto umask=0022,users,iocharset=utf8,noauto,exec,flush 0 0
none /proc proc defaults 0 0
/dev/md1 swap swap defaults 0 0Anschließend ersetzen wir in /etc/mtab /dev/hda1 durch /dev/md0 und /dev/hda6 durch /dev/md2 (die zwei /dev/md-Zeilen am Ende können ignoriert werden):
/dev/md2 / ext3 rw,relatime 0 0
none /proc proc rw 0 0
/dev/md0 /boot ext3 rw,relatime 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/md0 /mnt/md0 ext3 rw 0 0
/dev/md2 /mnt/md2 ext3 rw 0 0Jetzt kommen wir zum GRUB-Bootloader. Öffne /boot/grub/menu.lst und füge direkt nach default 0 die Zeile fallback 1 ein:
default 0
fallback 1Das bewirkt, dass wenn der erste Kernel (Index 0) nicht bootet, der Fallback (hier #2) gestartet wird.
Gehe dann zum Ende der Datei, kopiere den ersten Kernel-Stanza und füge ihn vor dem ersten existierenden Stanza ein. Ersetze dabei root=/dev/hda6 mit root=/dev/md2 und (hd0,0) mit (hd1,0). Falls resume=/dev/hda5 vorhanden ist, ersetze es mit resume=/dev/md1:
[...]
title linux
kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2 resume=/dev/md1
initrd (hd1,0)/initrd.img
title linux
kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6 resume=/dev/hda5
initrd (hd0,0)/initrd.imgEine mögliche vollständige menu.lst sieht so aus:
timeout 10
color black/cyan yellow/cyan
default 0
fallback 1
title linux
kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2 resume=/dev/md1
initrd (hd1,0)/initrd.img
title linux
kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6 resume=/dev/hda5
initrd (hd0,0)/initrd.img
title failsafe
kernel (hd0,0)/vmlinuz BOOT_IMAGE=failsafe root=/dev/hda6 failsafe
initrd (hd0,0)/initrd.img(hd1,0) bezieht sich auf /dev/hdb, welches bereits Teil unserer RAID-Arrays ist. Wir starten in Kürze neu; das System versucht dann, von den (noch degradierten) RAID-Arrays zu booten; falls das fehlschlägt, bootet es von /dev/hda (Fallback 1).
Nun passen wir den Ramdisk an:
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`Anschließend kopieren wir den Inhalt von /dev/hda1 und /dev/hda6 auf /dev/md0 und /dev/md2 (die auf /mnt/md0 und /mnt/md2 gemountet sind):
cp -dpRx / /mnt/md2cd /boot
cp -dpRx . /mnt/md06 GRUB vorbereiten (Teil 1)
Danach müssen wir den GRUB-Bootloader auf die zweite Festplatte /dev/hdb installieren:
brubIm GRUB-Shell die folgenden Kommandos eingeben:
root (hd0,0)Beispielausgabe:
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub>Dann:
setup (hd0)Beispielausgabe:
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded
Done.
grub>Dann das gleiche für das zweite Laufwerk:
root (hd1,0)
setup (hd1)
quitNach Verlassen von GRUB führen wir einen Neustart durch und hoffen, dass das System korrekt von den RAID-Arrays bootet:
rebootCheckliste: Sysadmin vor dem Neustart
- Vollständiges Backup wichtiger Daten vor Beginn erstellen.
- /etc/mdadm.conf gesichert (/etc/mdadm.conf_orig).
- /etc/fstab und /boot/grub/menu.lst gesichert.
- Kopie von / und /boot auf die neuen Arrays bestätigt (Größe, Files vorhanden).
- GRUB auf beiden Datenträgern installiert und Setup-Ausgabe überprüft.
- Notfallkonsole (z. B. Rescue-CD) bereit und Mount-/Chroot-Anweisungen dokumentiert.
Incident-Runbook: Bootversagen nach Umstellung
- Wenn das System nicht bootet, boote von einem Live- oder Rescue-Medium.
- Prüfe mit blkid, lsblk und cat /proc/mdstat die vorhandenen Devices und md-Arrays.
- Assemble die Arrays falls nötig: mdadm –assemble –scan oder mdadm –assemble /dev/mdX /dev/sdY…
- Mounte /dev/md2 auf /mnt und /dev/md0 auf /mnt/boot, überprüfe /boot/grub/menu.lst und /etc/fstab.
- Re-Installiere GRUB auf dem primären Laufwerk: grub-install /dev/sda (oder setup im GRUB-Shell).
- Falls nicht behebbar: Boot von originaler Master-Festplatte (/dev/hda) mittels BIOS/UEFI-Änderung und rolle zurück (restore /etc/fstab, /etc/mtab).
Alternativen und Hinweise
- Alternative: Statt erst degraded zu erstellen, RAID unter Offline-Bedingungen bauen (System herunterfahren und Laufwerke direkt zuordnen). Das reduziert Boot-Risiken, erfordert aber geplante Downtime.
- UUIDs in fstab statt /dev/… verwenden, um robuste Zuordnungen bei geänderter Device-Nummer zu erhalten (empfohlen).
- Moderne Systeme: Mit GRUB2 oder systemd-boot weichen die Befehle ab; hier ist die Anleitung auf traditionelles GRUB (menu.lst) ausgelegt.
Experte: “RAID ist kein Backup. RAID erhöht Verfügbarkeit, ersetzt aber nicht regelmäßige Backups.” — typischer Rat erfahrener Systemadministratoren.
Kriterien für Erfolg
- Der Host bootet erfolgreich von /dev/md2 ohne manuelle Eingriffe.
- /boot ist korrekt auf /dev/md0 vorhanden und lesbar.
- Swap läuft auf /dev/md1.
- mdadm –detail /dev/mdX zeigt die erwarteten Mitglieder und Status [UU] (nach vollständigem Resync).
Kurzer Faktkasten
- RAID-Level verwendet: raid1 (Spiegelung)
- Anzahl Arrays: 3 (md0 = /boot, md1 = swap, md2 = /)
- Wichtigste Werkzeuge: mdadm, mkfs.ext3, mkswap, cp -dpRx, grub
Kurzglossar (1 Zeile je Begriff)
- mdadm: Linux-Tool zur Verwaltung von Software-RAID-Arrays.
- degraded: Ein Array fehlt eines oder mehrerer erwarteter Mitglieder.
- fallback: GRUB-Option, die einen alternativen Eintrag beim Booten angibt.
Schlussfolgerung
Dieses Verfahren ermöglicht, ein laufendes System schrittweise auf RAID1 umzustellen, ohne sofortige Downtime für die gesamte Migration. Testen Sie jeden Schritt, dokumentieren Sie Änderungen und halten Sie ein Recovery-Medium bereit. Viel Erfolg beim Umstellen auf RAID1.
Ähnliche Materialien
Podman auf Debian 11 installieren und nutzen
Apt-Pinning: Kurze Einführung für Debian
FSR 4 in jedem Spiel mit OptiScaler
DansGuardian + Squid (NTLM) auf Debian Etch installieren
App-Installationsfehler auf SD-Karte (Error -18) beheben