Files
mdadm/raid6-expand.md

141 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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?