Partitionen eines RAID1-Arrays verkleinern nach mdadm --grow

P

Paso

Jungspund
Hallo zusammen,

auf den Systemplatten meines Linuxservers (Debian Etch) möchte ich etwas freien Plattenplatz schaffen, um ein Windows-Dual-Boot einzurichten.
Leider gelingt es mir nicht die entsprechenden Partitionen zu verkleinern.
Alle Partitionen laufen als Software-RAID1.

Hier meine Konfiguration:
2 Festplatten (hda und hdb) à 250 GB
Partititionierung auf beiden Platten:
Code:
Number  Start   End     Size    Type      File system  Flags
 1      32,3kB  1003MB  1003MB  primary   ext3         boot, raid
 2      1003MB  16,0GB  15,0GB  primary   ext3         raid
 3      16,0GB  250GB   234GB   extended
 5      16,0GB  240GB   224GB   logical                raid
 6      240GB   250GB   10,0GB  logical   linux-swap
Dabei bilden die Kombinationen der Partitionen auf beiden Platten folgende Software-RAID1-Konfigurationen:

Code:
md0 : active raid1 hda1[0] hdb1[1]
      979840 blocks [2/2] [UU]

md1 : active raid1 hda2[0] hdb2[1]
      14651200 blocks [2/2] [UU]

md2 : active raid1 hda5[0] hdb5[1]
      115343360 blocks [2/2] [UU]
Auf md2 wiederum läuft LVM2 mit 1 Volumegroup (102 GB) und mehreren Logical Volumes.

Was ich bisher gemacht habe:
Der belegte Plattenplatz von md2 füllte ursprünglich den gesamten Platz von (hda5 = hdb5 = 224 GB) aus. Da der benötigte Platz für die LVM-Volumegroup aber nur ca. die Hälfte beträgt, habe ich zunächst das Physical Volume verkleinert und anschließend das RAID1-Array
mithilfe des Befehls
Code:
mdadm --grow /dev/md2 --size=115343360
auf eine passende Größe "geschrumpft".
Das hat offenbar auch problemlos funktioniert. Nach einem Reboot läuft alles wie gewohnt.

Nun zum eigentlichen Problem:

Obwohl das RAID1 (/dev/md2) nur noch die Hälfte der Partitionen hda5/hdb5 belegt, sind die Partitionen trotzdem noch 224 GB groß.
Um den Platz nun freizugeben, müsste ich die verkleinern.

Meine erste Idee: "parted".
Leider erhalte ich nach Auswahl des RAID1 folgende Ausgabe:
Code:
(parted) select /dev/md2
Using /dev/md2
(parted) print
Error: Unable to open /dev/md2 - unrecognised disk label.
(parted)
Ich nehme an, das kommt, weil ein LVM darauf läuft und das eigentliche Filesystem erst in den Logical-Volumes steckt.

Meine Frage:
Wie kann ich gefahrlos die Partitionen hda5 und hdb5 verkleinern, so dass das RAID1 erhalten bleibt und ich den "free space" zur Verfügung habe ?
Habt Ihr eine Idee ?

Vielen Dank schonmal für Eure Antworten.

Gruß,
Paso
 
Theoretisch solltest du jetzt die Partitionen auf der Festplatte entsprechend verkleinern können. Das md-Device selbst hat nix damit zu tun. Sichere vorher deine Daten!

Das was du vorhast ist extrem fehleranfällig und ich würde das nicht versuchen wollen ohne ein Backup. Aber mit einem Backup könntest du einfach das Raid neu anlegen mit der kleineren Größe. Das wäre wesentlich sicherer.

Nachdem verkleinern der Partitionen solltest du das Dateisystem in deinem Logical Volume mit den passenden Tools checken (keine Veränderungen, nur prüfen!) und ggf. den Altzustand der Partitionstabellen wiederherstellen und überlegen, was du falsch gemacht hast.
 
Hallo und vielen Dank für Deine Antwort.

Die Daten aus den LogicalVolumes habe ich bereits gesichert, bevor ich mit der ganzen Aktion begonnen habe.
Ich möchte es halt vermeiden, die ganze LVM-Konfiguration zu wiederholen, falls das Verkleinern nicht klappt. Und das müsste ich wohl auch dann tun, wenn ich das RAID neu anlege. (oder nicht ? ...)
Wenn nichts anderes hilft, werde ich das wohl machen. Wahrscheinlich lasse ich das LVM dann auch weg. Das RAID genügt eigentlich in meinem Falle. (Die Konfiguration des Servers sah mal anderes aus, daher existierte das LVM...)

ggf. den Altzustand der Partitionstabellen wiederherstellen
Hilf mir bitte mal auf die Sprünge. Wie mache ich das ?

Vielen Dank und Gruß,
Paso
 
Bevor du die Partitionen veränderst schreib es dir auf. Eine Partitionstabelle sagt nur wo Daten liegen, sofern du nichts auf die Platte schreibst (!) kannst du sie einfach wieder auf den alten Stand zurücksetzen. Dein md Device belegt im Moment einfach nur
--size=115343360
Kibibytes innerhalb der Partitionen. D.h. du kannst diese einfach löschen und neu erstellen mit demselben Anfangspunkt und der entsprechenden Größe. Die Partitionstabelle ist lediglich eine Art Plan, der zum Beispiel eine Schrebergartensiedlung in einzelne Parzellen aufteilt. Veränderst du den Plan hat das noch keine Auswirkungen auf die einzelnen Parzellen. (Geile Metapher, he?)

Wichtig ist nur für das was du vorhast musst du alle deine Werkzeuge beherrschen. Du musst exakt wissen, was welche Funktion deiner Tools auslöst.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Du Kannst diese einfach löschen beizeht sich auf die Einträge in der Partitionstabelle.
 
Zuletzt bearbeitet:

Ähnliche Themen

Raid-1 einrichten

Software-Raid (mdadm) - Festplatte ersetzen

Software RAID 1 verkleinern

Neue Partition unter openSUSE 12.2 erstellen

mdadm Problem (Raid1 von drei auf zwei Platten reduziert)

Zurück
Oben