Add script and documentation to expamd raid6.

This commit is contained in:
2025-08-08 22:36:51 +02:00
parent 9113d8167c
commit 0fd038326b
4 changed files with 711 additions and 0 deletions

145
raid6-expand.txt Normal file
View File

@ -0,0 +1,145 @@
============================================================
Anleitung: RAID-6 Array erweitern (mdadm, GPT, ext4/xfs)
============================================================
Diese Anleitung beschreibt die Erweiterung eines bestehenden
RAID-6-Arrays, nachdem die einzelnen RAID-Mitgliedsplatten physisch
durch größere Platten ersetzt wurden und ein Resync durchgeführt wurde.
ACHTUNG:
- Nur durchführen, wenn RAID in "clean"-State ist.
- Backup wichtiger Daten wird dringend empfohlen.
- Root-Rechte erforderlich.
- Beispielangaben (Gerätenamen) anpassen!
------------------------------------------------------------
1) Vorbereitung & Kontrolle
------------------------------------------------------------
1.1 Prüfen, dass alle neuen, größeren Platten erkannt werden:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
1.2 RAID-Status prüfen:
cat /proc/mdstat
mdadm --detail /dev/mdX
1.3 Sicherstellen, dass der Status "clean" ist.
Falls "resync" oder "recovery" läuft → warten, bis fertig.
------------------------------------------------------------
2) Partitionstabellen sichern
------------------------------------------------------------
Für jedes RAID-Mitgliedsgerät:
sfdisk -d /dev/sdX > backup-sdX-YYYYMMDD.sfdisk
------------------------------------------------------------
3) Partitionen auf Mitgliedsplatten vergrößern
------------------------------------------------------------
Für jede Platte:
- Startsektor unverändert lassen!
- Partition bis zum maximal verfügbaren Platz vergrößern.
- GPT-Partitionstyp unverändert lassen.
- TYP 'A19D880F-05FC-4D3B-A006-743F0F84911E' für Linux-RAID
1. Vergrößern auf maximal verfügbaren Platz mit sfdisk:
- GPT-UUID ermitteln z.bsp. für partition 1 von /dev/sda1:
lsblk -no PARTTYPE "/dev/sda1"
- Partition 1 con /dev/sdX vergrößern
sfdisk --no-reread --force -N 1 /dev/sdX <<EOF
,,type=A19D880F-05FC-4D3B-A006-743F0F84911E
EOF
--no-reread: Verhindert, dass der Kernel die Partitionstabelle sofort neu einliest.
--force: Erzwingt Änderungen auch dann, wenn sfdisk normalerweise abbrechen würde,
z. B. weil die Partition in Benutzung ist.
N 1: Bearbeitet nur die angegebene Partitionsnummer hier also Partition 1.
Eingabe-Redirect <<EOF ... EOF: Damit wird der eigentliche neue Partitions-Eintrag
an sfdisk per Here-Document übergeben.
Startsektor, Größe, Typ
- Startsektor: Wenn leer (""), bleibt der bisherige Startsektor erhalten.
- Größe: Wenn leer (""), nimmt sfdisk den maximal verfügbaren Platz bis zum Plattenende.
- Typ: Hier type=<GPT-UUID>
oder
1. Vergrößern auf maximal verfügbaren Platz mit parted:
parted /dev/sdX
(parted) print
(parted) resizepart 1 100%
(parted) quit
oder in einer Zeile:
parted -s /dev/sdX resizepart 1 100%
2. Danach Partitionstabelle neu einlesen:
partprobe /dev/sdX
udevadm settle
Bemerkung 'parted' im Vergleich zu sfdisk:
- sfdisk ist "roh", arbeitet auf Sektorebene - super für Skripte, aber etwas sperrig für Menschen.
- parted versteht Größenangaben wie 100%, 10TiB, etc. und ist interaktiv angenehmer. resize verändert
nur die Größe, nicht den Typcode - der Linux-Typ bleibt also bestehen.
- Für ein Skript wäre sfdisk robuster, weil es keine Rückfragen stellt und 100 % skriptfähig ist.
------------------------------------------------------------
4) RAID-Array vergrößern
------------------------------------------------------------
Nachdem alle Partitionen angepasst sind:
mdadm --grow /dev/mdX --size=max
Anschließend auf Abschluss des internen Resync warten:
watch cat /proc/mdstat
------------------------------------------------------------
5) Dateisystem vergrößern
------------------------------------------------------------
Je nach Dateisystem:
- ext4:
resize2fs /dev/mdX
- xfs (muss gemountet sein):
xfs_growfs <Mountpoint>
------------------------------------------------------------
6) Abschließende Kontrolle
------------------------------------------------------------
- Blockgeräte prüfen:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
- RAID-Details:
mdadm --detail /dev/mdX
- Dateisystemgröße:
df -h <Mountpoint>
------------------------------------------------------------
Hinweise
------------------------------------------------------------
- GPT-Typcode ermitteln - z.bsp. mit
lsblk -no PARTTYPE /dev/sdX1
für Linux RAID Partition (bei dir):
A19D880F-05FC-4D3B-A006-743F0F84911E
- Wenn nur einzelne Platten ersetzt/geändert werden:
Schrittweise vorgehen: Platte ersetzen - RAID resync - nächste Platte.
- Bei Einsatz von LUKS oder LVM: Zusätzliche Schritte für LUKS-Resize
bzw. LVM PV Resize nach dem RAID-Resize durchführen.