RAID-Arrays erstellen und Daten auf RAID verschieben
Kurzfassung: Dieses Kapitel zeigt, wie Sie zwei RAID1-Arrays (/dev/md0 und /dev/md1) mit mdadm anlegen, /dev/md1 für LVM vorbereiten, die Systemkonfiguration anpassen und anschließend die Daten von /dev/sda auf /dev/sdb migrieren. Lesen Sie vor dem Reboot die Checkliste und halten Sie ein Notfallmedium bereit.
Wichtige Begriffe in einer Zeile
- RAID1: Spiegelung (Mirror) zweier Blöcke zur Redundanz.
- mdadm: Linux-Werkzeug zur Verwaltung von Software-RAID.
- LVM: Logical Volume Manager zur flexiblen Partitionierung.
Kontext und Ziel
Wir erstellen zwei RAID1-Arrays: /dev/md0 für /boot (nicht-LVM) und /dev/md1 als physikalisches Volume für LVM. /dev/sdb1 und /dev/sdb2 werden sofort verwendet; /dev/sda1 und /dev/sda2 sind noch aktiv und können zunächst nicht in die Arrays aufgenommen werden, deshalb verwenden wir bei der Erstellung den Platzhalter missing. Nach der Anlage passen wir Systemkonfigurationen (mdadm.conf, fstab, mtab, GRUB) an, verschieben die LVM-Daten und fügen schließlich die alten /dev/sda-Partitionen zum RAID hinzu.
Important: Führen Sie diese Schritte nur mit aktuellem Backup aus. Ein Reboot ist erforderlich und im Fehlerfall benötigen Sie ein Rettungsmedium.
4 RAID-Arrays erstellen
Nun legen wir unsere RAID-Arrays /dev/md0 und /dev/md1 an. /dev/sdb1 wird /dev/md0 hinzugefügt und /dev/sdb2 zu /dev/md1. /dev/sda1 und /dev/sda2 können jetzt nicht hinzugefügt werden (das System läuft momentan darauf), deshalb verwenden wir bei den folgenden Befehlen 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 anzeigen, dass Sie zwei degradiere RAID-Arrays haben ([U] oder [U] bedeutet, dass ein Array degradiert ist; [UU] bedeutet, dass das Array in Ordnung ist):
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb2[1]
10377920 blocks [2/1] [_U]
md0 : active raid1 sdb1[1]
104320 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
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 nutzbar zu machen, führen Sie aus:
pvcreate /dev/md1
Dann erweitern Sie die Volume Group VolGroup00 um das neue PV:
vgextend VolGroup00 /dev/md1
Die Ausgabe von
pvdisplay
sollte nun ähnlich aussehen:
[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroup00
PV Size 9.90 GB / not usable 22.76 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 316
Free PE 0
Allocated PE 316
PV UUID aikFEP-FB15-nB9C-Nfq0-eGMG-hQid-GOsDuj
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 9.90 GB / not usable 22.69 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 316
Free PE 316
Allocated PE 0
PV UUID u6IZfM-5Zj8-kFaG-YN8K-kjAd-3Kfv-0oYk7J
[root@server1 ~]#
Die Ausgabe von
vgdisplay
sollte wie folgt aussehen:
[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 19.75 GB
PE Size 32.00 MB
Total PE 632
Alloc PE / Size 316 / 9.88 GB
Free PE / Size 316 / 9.88 GB
VG UUID ZPvC10-cN09-fI0S-Vc8l-vOuZ-wM6F-tlz0Mj
[root@server1 ~]#
mdadm-Konfiguration erzeugen
Erzeugen Sie /etc/mdadm.conf mit den aktuellen Arrays:
mdadm --examine --scan > /etc/mdadm.conf
Anzeigen des Inhalts:
cat /etc/mdadm.conf
In der Datei sollten Sie nun Details zu unseren (degradierten) RAID-Arrays sehen, z. B.:
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=0a96be0f:bf0f4631:a910285b:0f337164
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=f9e691e2:8d25d314:40f42444:7dbe1da1
/etc/fstab anpassen
Ersetzen Sie LABEL=/boot durch /dev/md0, sodass /etc/fstab in 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
/etc/mtab anpassen
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
GRUB konfigurieren (Fallback und zweiter Boot-Eintrag)
Öffnen Sie /boot/grub/menu.lst und fügen Sie fallback=1 direkt nach default=0 hinzu:
vi /boot/grub/menu.lst
[...]
default=0
fallback=1
[...]
Dadurch wird beim Fehlschlag des primären Kernels ein alternativer Eintrag gebootet.
Weiter unten kopieren Sie den ersten Kernel-Block und fügen ihn als ersten Eintrag ein, ändern root (hd0,0) zu root (hd1,0). Beispiel:
[...]
title CentOS (2.6.18-128.el5)
root (hd1,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-128.el5.img
title CentOS (2.6.18-128.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-128.el5.img
root (hd1,0) bezieht sich auf /dev/sdb, das bereits Teil der RAID-Arrays ist. Nach diesen Änderungen wird das System versuchen, von den (noch degradierten) RAID-Arrays zu booten. Falls das fehlschlägt, springt GRUB auf /dev/sda (fallback=1).
Initramfs anpassen
Sichern und neu erstellen des Ramdisks für den aktuellen Kernel:
mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
5 Daten auf die RAID-Arrays verschieben
Nachdem alle Konfigurationsdateien angepasst wurden, kopieren wir den Inhalt von /dev/sda nach /dev/sdb (einschließlich der zuvor geänderten Konfigurationsdateien).
LVM-Daten mit pvmove verschieben
Um den Inhalt der LVM-Partition /dev/sda2 auf das LVM-RAID /dev/md1 zu verschieben, verwenden Sie:
pvmove /dev/sda2 /dev/md1
Hinweis: Dieser Vorgang kann einige Zeit dauern — bitte Geduld.
Anschließend entfernen wir /dev/sda2 aus der Volume Group VolGroup00:
vgreduce VolGroup00 /dev/sda2
und teilen dem System mit, dass /dev/sda2 nicht länger als LVM-PV genutzt werden soll:
pvremove /dev/sda2
Die Ausgabe von
pvdisplay
sollte jetzt nur noch /dev/md1 zeigen:
[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name VolGroup00
PV Size 9.90 GB / not usable 22.69 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 316
Free PE 0
Allocated PE 316
PV UUID u6IZfM-5Zj8-kFaG-YN8K-kjAd-3Kfv-0oYk7J
[root@server1 ~]#
Partitionstyp ändern und altes /dev/sda2 als RAID hinzufügen
Ändern Sie den Partitionstyp von /dev/sda2 auf “fd” (Linux raid autodetect) mit fdisk:
fdisk /dev/sda
Beispiel-Dialog (Eingaben mit <– markiert):
[root@server1 ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
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 ~]#
Dann fügen Sie /dev/sda2 dem RAID-Array hinzu:
mdadm --add /dev/md1 /dev/sda2
Anschließend sollten Sie in /proc/mdstat die laufende Synchronisation sehen:
cat /proc/mdstat
Beispielausgabe während Recovery:
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[2] sdb2[1]
10377920 blocks [2/1] [_U]
[====>................] recovery = 23.4% (2436544/10377920) finish=2.0min speed=64332K/sec
md0 : active raid1 sdb1[1]
104320 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
Tipp: Überwachen Sie die Synchronisation laufend mit:
watch cat /proc/mdstat
Zum Beenden von watch drücken Sie CTRL+C.
Warten Sie, bis die Synchronisation abgeschlossen ist. Dann sollte /proc/mdstat etwa so aussehen:
[root@server1 ~]# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda2[0] sdb2[1]
10377920 blocks [2/2] [UU]
md0 : active raid1 sdb1[1]
104320 blocks [2/1] [_U]
unused devices:
[root@server1 ~]#
/dev/md0 mounten und /boot kopieren
Erstellen Sie ein temporäres Mountpoint und mounten Sie /dev/md0:
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
Prüfen Sie die Ergebnisse mit mount:
[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 ~]#
Kopieren Sie nun den Inhalt von /boot nach /mnt/md0:
cd /boot
cp -dpRx . /mnt/md0
cp-Optionen:
- -d: Verknüpfungen beibehalten
- -p: Berechtigungen, Zeitstempel, Besitzer beibehalten
- -R: rekursiv
- -x: nur innerhalb des Dateisystems
Checkliste vor dem Reboot
- Backup: Funktionierendes, getestetes Backup vorhanden.
- mdadm.conf: /etc/mdadm.conf wurde mit mdadm –examine –scan erzeugt.
- fstab/mtab: /dev/md0 ist in /etc/fstab und /etc/mtab eingetragen.
- GRUB: fallback=1 gesetzt; ein alternativer Kernel-Eintrag für root (hd1,0) existiert.
- initramfs: Neue initrd für aktuellen Kernel erstellt.
- Synchronisation: RAID-Synchronisation ist abgeschlossen ([UU] für md1 und später auch md0).
- Rettungsmedium: Live-CD / Rescue-USB griffbereit.
Important: Rebooten Sie erst, wenn alle oben genannten Punkte bestätigt sind.
Rollback- und Notfallplan (Kurz)
- Falls das System nicht bootet, starten Sie von Ihrem Rettungsmedium.
- Mounten Sie root-Volume (LVM) und /boot (ggf. von /dev/sda) und prüfen Sie /etc/fstab und /boot/grub/menu.lst.
- Starten Sie grub-install erneut, wenn nötig, und prüfen Sie die RAID-Erkennung mit mdadm –assemble –scan.
- Prüfen Sie /proc/mdstat und dmesg auf Hardwarefehler.
Fehlerfälle und Troubleshooting
Wann es fehlschlägt
- RAID bleibt degraded (_U) und synchronisiert nicht: Prüfen Sie Kabel, SMART, dmesg, und mdadm –detail /dev/mdX.
- GRUB bootet nicht von RAID: Vergewissern Sie sich, dass der Bootloader auf beiden Platten installiert ist (grub-install /dev/sda und grub-install /dev/sdb).
- pvmove bricht ab: Prüfen Sie freien Speicherplatz in der Ziel-VG, I/O-Fehler, und starten Sie pvmove mit –abort, falls nötig.
Typische Befehle zur Diagnose
mdadm --detail /dev/md1
mdadm --examine /dev/sda2 /dev/sdb2
dmesg | tail -n 50
smartctl -a /dev/sda
pvdisplay -m
lvdisplay
Hinweis: Bei I/O-Fehlern prüfen Sie Kabel, Controller und SMART-Werte. Tauschen Sie problematische Medien aus, bevor Sie ein RAID rebuilden.
Alternative Ansätze
- Asynchrone Migration: Statt pvmove kann man Daten auf eine temporäre VG kopieren und LogVolumes neu erstellen, falls pvmove nicht möglich ist.
- Kernel- und Boot-Manager: Statt älterer GRUB-Konfigurationen moderne Bootloader (GRUB2, systemd-boot) verwenden, wenn Distribution und Boot-Setup das erlauben.
- RAID-Level: RAID10 statt RAID1, wenn mehr Platten und Performance/Redundanz-Anforderungen bestehen.
Mentale Modelle und Heuristiken
- “Mirror first, sync later”: Erstellen Sie das Mirror-Array mit missing und bringen erst dann die zweite Platte online, wenn sie verfügbar ist.
- “Always have fallback”: Konfigurieren Sie einen alternativen Boot-Eintrag und halten Sie ein Rettungsmedium bereit.
- “Observable state is king”: Überwachen Sie /proc/mdstat, pvdisplay, vgdisplay regelmäßig während Migration.
Rollenbasierte Checkliste
Sysadmin (Planung)
- Backup validiert
- Wartungsfenster kommuniziert
- Ersatzplatten / Kabel verfügbar
Operator (Durchführung)
- Befehle ausführen und Output protokollieren
- RAID-Sync überwachen
- Reboot & Post-Checks durchführen
Support (Im Notfall)
- Rettungssystem vorbereiten
- Logs prüfen (dmesg, journalctl)
Kurze Sicherheits- und Datenschutzhinweise
- Dieses Verfahren verändert Partitionen und Filesysteme. Es betrifft keine personenbezogenen Daten per se, aber beachtet organisatorische Backup-/Retention-Policies.
- Stellen Sie sicher, dass Backups verschlüsselt sind, falls sensible Daten betroffen sind.
Kurze Begriffserklärung (Glossar)
- RAID1: Spiegelung (Mirror) zweier Platten.
- mdadm: Tool zur Software-RAID-Verwaltung unter Linux.
- pvcreate/vgextend/pvmove: LVM-Werkzeuge zum Anlegen von Physical Volumes, Erweitern von Volume Groups und Verschieben von PVs.
Kommandos Quick-Cheat-Sheet
- mdadm erstellen: mdadm –create /dev/mdX –level=1 –raid-disks=2 missing /dev/sdY
- Dateien scannen: mdadm –examine –scan > /etc/mdadm.conf
- PV anlegen: pvcreate /dev/md1
- VG erweitern: vgextend VolGroup00 /dev/md1
- Daten verschieben: pvmove /dev/sda2 /dev/md1
- RAID hinzufügen: mdadm –add /dev/md1 /dev/sda2
- RAID-Status: cat /proc/mdstat
Kriterien für Erfolg
- /dev/md1 und /dev/md0 sind beide [UU] in /proc/mdstat (vollständig synchronisiert).
- /boot liegt auf /dev/md0 und ist über /etc/fstab korrekt eingetragen.
- LVM verwendet ausschließlich /dev/md1 (pvdisplay zeigt nur /dev/md1 als PV der VG).
- System bootet ohne manuelle Rettungsmaßnahmen vom RAID-Setup.
Zusammenfassung
- Erstellen Sie die RAID-Arrays mit mdadm, initial mit missing, und erstellen Sie ein Dateisystem für /dev/md0.
- Bereiten Sie /dev/md1 für LVM vor und erweitern Sie die Volume Group.
- Aktualisieren Sie mdadm.conf, /etc/fstab, /etc/mtab und GRUB (Fallback) und bauen Sie eine neue initrd.
- Verschieben Sie LVM-Daten mit pvmove, entfernen Sie /dev/sda2 aus der VG und fügen Sie sie dem RAID hinzu.
- Überwachen Sie die RAID-Synchronisation bis zum Status [UU] und kopieren Sie /boot auf das neue /dev/md0.
Wichtig: Testen Sie das Booten nach Änderungen in einer abgesicherten Umgebung oder außerhalb der Produktivzeiten.
Ähnliche Materialien

Windows-Registry sichern & wiederherstellen

So findest du Beiträge, die dir auf Instagram gefallen haben

WhatsApp: Spracheingabe mit Gboard & SwiftKey

IMDb: Gemeinsame Suche für Filme, Cast & Crew

Zitat auf dem Desktop mit Rainmeter anzeigen
