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

140
raid6-expand.md Normal file
View File

@ -0,0 +1,140 @@
Perfekt — dann schreibe ich dir jetzt einen **minimal-Risiko-Plan**, damit du dein RAID6 (`/dev/md4`) mit Ext4 sauber und ohne Datenverlust auf die volle Größe bringst.
Ich gehe davon aus, dass:
* `/dev/sda1`, `/dev/sdb1`, `/dev/sdc1`, `/dev/sdd1` **die RAID-Mitglieder** sind.
* Jede Platte 20 TB groß ist, die Partitionen aktuell nur 10 TB.
* Das RAID ist **gesund** (`cat /proc/mdstat` zeigt „clean“).
---
## **Schritt-für-Schritt Anleitung Minimal Risk**
### **1. Status checken**
Bevor wir irgendwas anfassen, prüfen wir den Status:
```bash
cat /proc/mdstat
mdadm --detail /dev/md4
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
```
Es muss **clean** sein, und die Partitionen (`sdX1`) müssen ungefähr 10 TB groß sein.
---
### **2. Backup der Partitionstabelle**
Falls wir einen falschen Startsektor erwischen, ist das RAID im Eimer.
Deshalb sichern wir die Partitionstabellen **aller** Platten:
```bash
sfdisk -d /dev/sda > sda.part
sfdisk -d /dev/sdb > sdb.part
sfdisk -d /dev/sdc > sdc.part
sfdisk -d /dev/sdd > sdd.part
```
Damit kannst du im Notfall zurückschreiben:
```bash
sfdisk /dev/sda < sda.part
```
---
### **3. Eine Platte vergrößern (nacheinander!)**
Wir machen das **Platte für Platte**, damit immer 3 von 4 Platten voll intakt bleiben.
Beispiel für `/dev/sda`:
1. **Startsektor merken**:
```bash
parted /dev/sda unit s print
```
Notiere die **Start-Sektor-Zahl** der Partition 1 (z. B. `2048s`).
2. **Partition löschen und neu anlegen** (nur Metadaten, keine Daten!):
```bash
parted /dev/sda
(parted) unit s
(parted) rm 1
(parted) mkpart primary 2048s 100%
(parted) quit
```
3. **Kernel über neue Partition informieren**:
```bash
partprobe /dev/sda
```
---
### **4. RAID Resync starten**
Nach dem Anpassen der ersten Platte muss mdadm den neuen Bereich initialisieren:
```bash
mdadm --grow /dev/md4 --size=max
```
⚠️ Das kann mehrere Stunden/Tage dauern.
Fortschritt beobachten:
```bash
watch cat /proc/mdstat
```
Warte, bis der Status wieder **\[UUUU] clean** ist.
---
### **5. Nächste Platten**
Wiederhole **Schritt 3** für `/dev/sdb`, dann `/dev/sdc`, dann `/dev/sdd`.
Nach jeder Platte läuft ein **Teil-Resync** auch hier **immer abwarten**, bis es fertig ist, bevor du die nächste Platte anfässt.
---
### **6. Dateisystem vergrößern**
Wenn alle Platten angepasst und der RAID-Resync komplett abgeschlossen ist:
```bash
resize2fs /dev/md4
```
Das Ext4-Dateisystem wird dann den gesamten neuen Platz nutzen.
---
### **7. Kontrolle**
```bash
df -h /mountpunkt
lsblk
mdadm --detail /dev/md4
```
Jetzt solltest du die volle Kapazität sehen.
---
## **Wichtige Sicherheitsregeln**
* Immer nur **eine Platte gleichzeitig** verändern.
* Niemals den **Startsektor** ändern!
* Während Resyncs am besten keine großen Schreiblasten.
* Falls irgendetwas nicht clean ist → erst reparieren, dann weitermachen.
---
Wenn du magst, kann ich dir **ein fertiges Shell-Skript** bauen, das dir pro Platte die Startsektoren automatisch liest, die Partition neu anlegt und sicherstellt, dass du dich nicht vertippst.
Das minimiert Tippfehler und verhindert den Super-GAU.
Willst du, dass ich dir so ein Skript direkt schreibe?