RAID-Arrays erstellen und Daten auf RAID 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.
Ähnliche Materialien

High-Sierra-Benachrichtigung deaktivieren

Poster gestalten: In 6 Schritten sichtbar überzeugen

YouTube Dislike-Zähler anzeigen – Anleitung

Spotify zu MP3 ohne Premium — Anleitung
RAID erstellen & LVM-Daten migrieren
