Add script and documentation to expamd raid6.
This commit is contained in:
145
raid6-expand.txt
Normal file
145
raid6-expand.txt
Normal 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.
|
Reference in New Issue
Block a user