Partitionen im RAID Array ändern

Yuuri

Fleet Admiral
Registriert
Okt. 2010
Beiträge
13.923
Hallo zusammen,

ich hab nun nen neuen Server, allerdings sind die Partitionen für mich nicht wirklich gut verteilt.

Code:
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   3.7T  0 disk
├─sda1    8:1    0    32G  0 part
│ └─md0   9:0    0    32G  0 raid1 [SWAP]
├─sda2    8:2    0   512M  0 part
│ └─md1   9:1    0 511.4M  0 raid1 /boot
├─sda3    8:3    0     2T  0 part
│ └─md2   9:2    0     2T  0 raid1 /
├─sda4    8:4    0   1.7T  0 part
│ └─md3   9:3    0   1.7T  0 raid1 /home
└─sda5    8:5    0     1M  0 part
sdb       8:16   0   3.7T  0 disk
├─sdb1    8:17   0    32G  0 part
│ └─md0   9:0    0    32G  0 raid1 [SWAP]
├─sdb2    8:18   0   512M  0 part
│ └─md1   9:1    0 511.4M  0 raid1 /boot
├─sdb3    8:19   0     2T  0 part
│ └─md2   9:2    0     2T  0 raid1 /
├─sdb4    8:20   0   1.7T  0 part
│ └─md3   9:3    0   1.7T  0 raid1 /home
└─sdb5    8:21   0     1M  0 part

Das Ganze läuft auf nem Software RAID 1. Ich würde jetzt
  • das RAID auflösen /dev/md[23]
    • via mdadm --stop und mdadm --remove, siehe hier
  • sd[ab]4 löschen
  • sd[ab]3 vergrößern
  • das RAID wieder aufnehmen /dev/sd[ab]3
    • via mdadm --create, siehe hier
Hab ich irgendwo was übersehen oder vergessen?



LG
 
md2 auflösen? Dann geht dir / flöten...

Ich würde den mount point für /home auf md2 ziehen, die Daten von md3 dahin kopieren, dann md3 löschen und mit mdadm grow md2 vergrößern. Dann musst du noch das Filesystem anpassen und fertig.

Achso: backup nicht vergessen...
 
Ok, wenn es grow gibt, muss ich md2 natürlich nicht auflösen. Auf dem Server liegt eh noch kaum was, das kann im Notfall auch den Bach runter gehen.

Dachte nur daran beide Arrays aufzulösen, /home löschen, / vergrößern und dann das Array neu aufbauen. Würde doch prinzipiell auch funktionieren, oder?

Danke schon mal, werd ich dann mal probieren.
 
Nein, weil du dann ja / verlierst.
Wäre nicht nen reinstall einfacher? Dann direkt mit lvm und gut ist?
 
Nein ich werd erstmal das Array vergrößern. Wenn das nicht klappen sollte oder irgendwas passiert, kann ich immer noch neu installieren.
 
So, gesagt getan. grow allein ging nicht, weil ja die Partition nicht entsprechend groß war und ich die auch nicht einfach vergrößern konnte. Vergrößern ging aber auf anderem Wege:

  1. Arrays via mdadm --stop /dev/md[23] stoppen
  2. via fdisk /dev/sd[ab] und p zur Kontrolle die Blockgrößen notieren
    Code:
    Device        Start        End    Sectors  Size Type
    /dev/sda1      4096   67112959   67108864   32G Linux RAID
    /dev/sda2  67112960   68161535    1048576  512M Linux RAID
    /dev/sda3  68161536 4291825663 4223664128    2T Linux RAID
    /dev/sda5      2048       4095       2048    1M BIOS boot
  3. via fdisk /dev/sd[ab] und d die Partitionen 3 und 4 (= /dev/sd[ab][34]) löschen
  4. mittels fdisk /dev/sd[ab] und n eine neue Partition mit selbem Start wie /dev/sd[ab][34] erstellen, die Endgröße ist bereits das Maximum voreingestellt
  5. es wird dann automatisch der RAID Header erkannt und gefragt ob dieser gelöscht werden soll - natürlich nicht löschen
  6. zum Schluss musste ich noch manuell den Partitionstyp auf Linux RAID (in fdisk Option t) ändern
    Code:
    Device        Start        End    Sectors  Size Type
    /dev/sda1      4096   67112959   67108864   32G Linux RAID
    /dev/sda2  67112960   68161535    1048576  512M Linux RAID
    /dev/sda3  68161536 7814037134 7745875599  3.6T Linux RAID
    /dev/sda5      2048       4095       2048    1M BIOS boot
  7. mittels partprobe die neue Partitionstabelle einlesen lassen
  8. neues RAID Array via mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3 erstellen
  9. Dateisystem via e2fsck /dev/md2 prüfen lassen
  10. Dateisystem via resize2fs /dev/md2 vergrößern
  11. Rebooten
  12. Fertig

Hier der Hinweis an der Stelle (dank Stackoverflow natürlich...): Beim Löschen der Partitionen wird natürlich nicht das Dateisystem selbst berührt. Ergo kann ich die Partitionen einfach löschen und eine Neue, Größere einfach mit dem selben Startblock erstellen, welche dann die gleichen Daten enthält wie die Alte.

Das Array resynct gerade natürlich noch, System bootet aber und alle Daten sind noch vorhanden.
 
Zurück
Oben