Technologieführer

RAID-Arrays erstellen und Daten auf RAID migrieren

6 min read Systemadministration Aktualisiert 28 Sep 2025
RAID erstellen & LVM-Daten migrieren
RAID erstellen & LVM-Daten migrieren

Übersicht und Ziel

Dieses Kapitel beschreibt Schritt für Schritt, wie Sie zwei RAID1-Arrays anlegen, eines davon als reines Dateisystem (/dev/md0 für /boot) und eines als LVM-physisches Volume (/dev/md1). Danach migrieren wir die bestehenden Daten von /dev/sda nach /dev/sdb und fügen die zuvor blockierten /dev/sda-Partitionen dem jeweiligen RAID hinzu, sodass am Ende beide physikalischen Platten redundant sind.

Wichtige Begriffe in einer Zeile:

  • mdadm: Linux-Tool zur Verwaltung von Software-RAID.
  • LVM: Logical Volume Manager, ermöglicht flexible Volumes auf physischen Volumes.

4 RAID-Arrays erstellen

Nun erstellen wir unsere RAID-Arrays /dev/md0 und /dev/md1. /dev/sdb1 wird zu /dev/md0 hinzugefügt und /dev/sdb2 zu /dev/md1. /dev/sda1 und /dev/sda2 können gerade nicht hinzugefügt werden, weil das System noch von ihnen läuft; deshalb verwenden wir in den folgenden zwei Kommandos den Platzhalter missing:

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2

Der Befehl

cat /proc/mdstat

sollte nun zeigen, dass Sie zwei degradierte RAID-Arrays haben ([U] oder [U] bedeutet, dass ein Array degradiert ist; [UU] zeigt ein intaktes Array an):

[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb2[1]
      5036288 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
      200704 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

Hinweis: Degradierte Arrays sind normal an diesem Punkt, weil jeweils eine Platte fehlt. Sie sind noch benutzbar, aber nicht redundant.

Dateisystem auf /dev/md0 anlegen

Erstellen Sie ein ext3-Dateisystem auf dem nicht-LVM-RAID /dev/md0:

mkfs.ext3 /dev/md0

/dev/md1 für LVM vorbereiten

Um /dev/md1 für LVM verfügbar zu machen, initialisieren Sie es als physisches Volume:

pvcreate /dev/md1

Fügen Sie /dev/md1 zur Volume Group VolGroup00 hinzu:

vgextend VolGroup00 /dev/md1

Der Befehl

pvdisplay

sollte nun so oder ähnlich aussehen (Ausgabe zeigt ein weiteres PV /dev/md1):

[root@server1 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               4.80 GB / not usable 22.34 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              153
  Free PE               1
  Allocated PE          152
  PV UUID               op2n3N-rck1-Pywc-9wTY-EUxQ-KUcr-2YeRJ0

  --- Physical volume ---
  PV Name               /dev/md1
  VG Name               VolGroup00
  PV Size               4.80 GB / not usable 22.25 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              153
  Free PE               153
  Allocated PE          0
  PV UUID               pS3xiy-AEnZ-p3Wf-qY2D-cGus-eyGl-03mWyg

[root@server1 ~]#

Der anschließende Befehl

vgdisplay

zeigt die aktualisierte Volume Group:

[root@server1 ~]# vgdisplay
  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               9.56 GB
  PE Size               32.00 MB
  Total PE              306
  Alloc PE / Size       152 / 4.75 GB
  Free  PE / Size       154 / 4.81 GB
  VG UUID               jJj1DQ-SvKY-6hdr-3MMS-8NOd-pb3l-lS7TA1

[root@server1 ~]#

mdadm-Konfiguration und fstab anpassen

Erzeugen Sie /etc/mdadm.conf mit der aktuellen RAID-Erkennung:

mdadm --examine --scan > /etc/mdadm.conf

Zeigen Sie die Datei an:

cat /etc/mdadm.conf

In der Datei sollten jetzt Details zu den beiden (degradierten) RAID-Arrays stehen, z. B.:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=7d2bf9c3:7cd9df21:f782dab8:9212d7cb
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=d93a2387:6355b5c5:25ed3e50:2a0e4f96

Öffnen Sie /etc/fstab und ersetzen Sie LABEL=/boot durch /dev/md0, sodass die Datei etwa so aussieht:

vi /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
/dev/md0             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

Ebenso ersetzen Sie /dev/sda1 durch /dev/md0 in /etc/mtab:

vi /etc/mtab
/dev/mapper/VolGroup00-LogVol00 / ext3 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
/dev/md0 /boot ext3 rw 0 0
tmpfs /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0

Wichtig: Achten Sie darauf, Dateien wie /etc/fstab und /etc/mtab korrekt zu editieren; ein Fehler kann zum Nicht-Booten führen.

GRUB konfigurieren (Fallback)

Öffnen Sie /boot/grub/menu.lst und fügen Sie direkt nach default=0 die Zeile fallback=1 ein:

vi /boot/grub/menu.lst
[...] 
default=0
fallback=1
[...]

Dadurch wird beim Fehlschlag des ersten Kernels der zweite Eintrag gestartet (Zählung beginnt bei 0).

Kopieren Sie im selben File die erste Kernel-Stanza und fügen Sie sie vor dem ersten Eintrag ein; ersetzen Sie dort root (hd0,0) durch root (hd1,0), damit GRUB von der zweiten Platte booten kann:

[...]
title Fedora (2.6.23.1-42.fc8)
        root (hd1,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.23.1-42.fc8.img
title Fedora (2.6.23.1-42.fc8)
        root (hd0,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.23.1-42.fc8.img

Die gesamte Datei sollte danach in etwa so aussehen:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
fallback=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
        root (hd1,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.23.1-42.fc8.img
title Fedora (2.6.23.1-42.fc8)
        root (hd0,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.23.1-42.fc8.img

root (hd1,0) verweist auf /dev/sdb, das bereits Teil unserer RAID-Arrays ist. Nach einem Reboot versucht das System, von den (noch degradierten) RAID-Arrays zu booten; falls das fehlschlägt, greift die Fallback-Option und bootet von /dev/sda.

Initramdisk anpassen

Sichern Sie das aktuelle initrd und erzeugen Sie ein neues für den laufenden Kernel:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

Damit stellt das System sicher, dass das neue initrd die notwendigen Module für md/raid und LVM enthält.

5 Daten auf die RAID-Arrays verschieben

Nachdem alle Konfigurationen angepasst wurden, kopieren wir die Inhalte von /dev/sda nach /dev/sdb (einschließlich der zuvor vorgenommenen Konfigurationsänderungen).

LVM-Daten mit pvmove verschieben

Um den Inhalt der LVM-Partition /dev/sda2 auf das LVM-RAID /dev/md1 zu verschieben, verwenden Sie pvmove:

pvmove /dev/sda2 /dev/md1

Das kann je nach Datenmenge einige Zeit dauern. Bitte geduldig sein.

Anschließend entfernen Sie /dev/sda2 aus der Volume Group VolGroup00:

vgreduce VolGroup00 /dev/sda2

und sagen dem System, dass /dev/sda2 kein LVM-physisches Volume mehr sein soll:

pvremove /dev/sda2

Der Aufruf von

pvdisplay

sollte dann in etwa so aussehen, dass nur /dev/md1 noch als PV in VolGroup00 vorhanden ist:

[root@server1 ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md1
  VG Name               VolGroup00
  PV Size               4.80 GB / not usable 22.25 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              153
  Free PE               1
  Allocated PE          152
  PV UUID               pS3xiy-AEnZ-p3Wf-qY2D-cGus-eyGl-03mWyg

[root@server1 ~]#

/dev/sda2 für RAID vorbereiten und hinzufügen

Ändern Sie den Partitionstyp von /dev/sda2 auf “fd” (Linux raid autodetect) mit fdisk:

fdisk /dev/sda

Beispiel-Interaktion:

[root@server1 ~]# fdisk /dev/sda

Command (m for help): <- t
Partition number (1-4): <- 2
Hex code (type L to list codes): <- fd
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <- w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#

Fügen Sie dann /dev/sda2 dem md1-Array hinzu:

mdadm --add /dev/md1 /dev/sda2

Prüfen Sie erneut mit

cat /proc/mdstat

Sie sollten sehen, dass /dev/md1 synchronisiert wird:

[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[2] sdb2[1]
      5036288 blocks [2/1] [_U]
      [=====>...............]  recovery = 28.8% (1454272/5036288) finish=2.8min speed=21132K/sec

md0 : active raid1 sdb1[1]
      200704 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

Tipp: Sie können laufend überwachen mit:

watch cat /proc/mdstat

Zum Beenden von watch drücken Sie CTRL+C.

Warten Sie, bis die Synchronisation beendet ist; die Ausgabe sollte dann so aussehen:

[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0] sdb2[1]
      5036288 blocks [2/2] [UU]

md0 : active raid1 sdb1[1]
      200704 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

/dev/md0 mounten und Boot-Dateien kopieren

Erstellen Sie den Mountpunkt und mounten Sie /dev/md0:

mkdir /mnt/md0
mount /dev/md0 /mnt/md0

Mit

mount

sollte /dev/md0 nun sowohl auf /boot als auch auf /mnt/md0 erscheinen:

[root@server1 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/md0 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/md0 on /mnt/md0 type ext3 (rw)
[root@server1 ~]#

Wechseln Sie ins /boot-Verzeichnis und kopieren Sie alle Dateien nach /mnt/md0 (Bewahrung von Rechten, Links und Attributen):

cd /boot
cp -dpRx . /mnt/md0

Damit sind alle Kernel- und initrd-Dateien auf dem RAID-/boot verfügbar.

Fehlerbehebung & Prüfungen

Wichtige Prüfungen vor dem Reboot:

  • /etc/mdadm.conf enthält die ARRAY-Zeilen für md0 und md1.
  • /etc/fstab verweist auf /dev/md0 für /boot.
  • /boot beinhaltet initrd und vmlinuz auf beiden Platten (nach Kopie).
  • GRUB hat fallback=1 gesetzt und enthält einen Eintrag mit root (hd1,0).
  • mdstat zeigt [UU] für ein fertig gespiegeltes Array an.

Häufige Probleme und Lösungen:

  • Fehler: Re-reading the partition table failed — Ursache: Partition in Nutzung. Lösung: Reboot nach Partitionstabelle-Änderung, wenn möglich im Wartungsfenster.
  • Boot-Problem nach Migration — prüfen Sie /etc/fstab und /boot/grub/menu.lst auf Tippfehler; prüfen Sie initrd.
  • LVM sieht PV nicht — prüfen Sie pvscan/pvs und ob md1 korrekt als Blockgerät vorhanden ist.

Rollenbasierte Checkliste (Kurz)

  • Systemadministrator (Planung): Backup erstellen, Wartungsfenster planen, Reboot-Zeit festlegen.
  • Systemoperator (Durchführung): mdadm erstellen, pvcreate/vgextend, pvmove ausführen, mdadm –add und Synchronisierung überwachen.
  • QA/Tester (Verifikation): mount-/boot testen, Kernel booten, Resilienz testen indem eine Platte ausgebaut und Reboot-Versuch durchgeführt wird.

Testfälle / Kriterien für erfolgreiche Migration

  • Kriterium 1: Nach pvmove ist /dev/sda2 kein PV mehr (pvdisplay zeigt nur /dev/md1).
  • Kriterium 2: /boot ist auf /dev/md0 verfügbar und enthält alle Kernel/initrd-Dateien.
  • Kriterium 3: Reboot startet erfolgreich von RAID (oder bei Fehlern wechselt GRUB auf Fallback ohne manuelle Intervention).
  • Kriterium 4: Beide md-Arrays erreichen [UU] (vollständig synchronisiert).

Kurze Zusammenfassung

  • Erstellen Sie md0 und md1 mit missing als Platzhalter.
  • Legen Sie /dev/md0 als /boot an, erstellen Sie ext3.
  • Initialisieren Sie /dev/md1 als PV, fügen Sie es zur VG hinzu und verschieben Sie Daten mit pvmove.
  • Ändern Sie Partitionstyp von /dev/sda2 auf fd und fügen Sie sie per mdadm –add wieder in das RAID ein.
  • Passen Sie mdadm.conf, /etc/fstab, /etc/mtab und GRUB an; erstellen Sie ein neues initrd.

Wichtig: Testen Sie alle Änderungen in einem Wartungsfenster und stellen Sie sicher, dass Sie ein vollständiges Backup haben, bevor Sie Partitionstabellen oder Boot-Konfigurationen ändern.

Autor
Redaktion

Ähnliche Materialien

High-Sierra-Benachrichtigung deaktivieren
macOS

High-Sierra-Benachrichtigung deaktivieren

Poster gestalten: In 6 Schritten sichtbar überzeugen
Grafikdesign

Poster gestalten: In 6 Schritten sichtbar überzeugen

YouTube Dislike-Zähler anzeigen – Anleitung
Anleitung

YouTube Dislike-Zähler anzeigen – Anleitung

Spotify zu MP3 ohne Premium — Anleitung
Anleitung

Spotify zu MP3 ohne Premium — Anleitung

RAID erstellen & LVM-Daten migrieren
Systemadministration

RAID erstellen & LVM-Daten migrieren

App erstellen 2023: Kompletter Leitfaden
App-Entwicklung

App erstellen 2023: Kompletter Leitfaden