Erweiterung eines Software-RAIDs unter Debian durch Migration auf neue große Festplatten

Das Setup: Zwei physische Laufwerke eines RAID 1 (Spiegel) werden durch zwei umfangreichere Laufwerke ersetzt, wir werden einen „Hot“-Ersatz direkt vom laufenden Betriebssystem aus durchführen, ohne von einem externen Bootmedium booten zu müssen. Dieses Handbuch wurde auf Debian-Distributionen 6, 7, 8 sowohl 32 als auch 64 Bit getestet.

Wir gehen davon aus, dass die beiden Laufwerke mit einer Root- und Swap-Partition partitioniert sind und dass diese beiden Partitionen die beiden Raid-Geräte md0 und md1 bilden:

  • Die Partition sda1 und sdb1, aus der das Volume md0 (root) besteht.
  • Die Partitionen sda2 und sdb2, aus denen sich das Volume md1 zusammensetzt (Swap).

Zuerst machen Sie ein Backup aller Ihrer Daten, auch wenn der Guide mehrmals getestet wurde, das Pech ist immer noch da…. Wir bieten (meiner Meinung nach die beste Lösung) für einen Austausch, wir trennen eine der beiden alten Festplatten bei ausgeschalteter Maschine, schließen dann eine neue temporäre Festplatte an und synchronisieren dann neu, so dass wir immer noch das RAID und eine einzelne Festplatte (mit RAID im verschlechterten Modus) haben und Sie immer noch ein funktionierendes RAID erstellen können, wenn etwas nicht funktioniert. Dazu geben Sie einfach diese Befehle ein, nachdem Sie den vollen Antrieb durch den leeren ersetzt haben:

sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty
mdadm —zero-superblock /dev/hd empty
mdadm —add /dev/md(raid) /dev/hd(empty)

Wiederholen Sie die letzten beiden Zeilen für jedes RAID / jede Partition auf dem System.

(zum Beispiel:

mdadm -add /dev/md0 /dev/sdb1

dann

mdadm -add /dev/md1 /dev/sdb2

etc.

Auf diese Weise haben wir die Partitionstabelle vom Quelllaufwerk auf das leere Ziel gezwängt und diese dann dem RAID hinzugefügt.

Natürlich müssen Sie bis zum Ende des Wiederaufbauprozesses warten, überwacht von:

watch cat / pro / mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Fahren Sie die Maschine an dieser Stelle herunter, wir fügen zwei neue Festplatten hinzu, die jeweils sdc und sdd werden, dann starten Sie den Server und führen Sie den Befehl aus:

fdisk -l

Das Ergebnis sollte ähnlich aussehen:

Disk /dev/sda: ……MB , ………….Bytes
… heads, …sectors/track , ….. cylinders
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk: identifier : ………..
Device boot Start End Blocks Id   System
/dev/sda2        970           1044 602437+ fd   Linux raid autodetect
/dev/sda2            1 969 7783461 fd   Linux raid autodetect
……
/dev/sdb1     *       1 969 7783461 fd   Linux raid autodetect
/dev/sdb2            970        1044 602437+ fd   Linux raid autodetect
……
Disk /dev/sdc: …Mb, …….Bytes
……
Disk /dev/sdd: …Mb, …….Bytes
……
Disk /dev/md0: …Mb, …….Bytes
…...
Disk /dev/md1: …Mb, …….Bytes

Jetzt tippen Sie:

fdisk /dev/sdc

wir erstellen eine neue Partition mit dem Befehl n,

wir wählen p primäre Partition,

wir wählen die Partitionsnummer (1,2,3,3, etc….),

wählen wir den Startzylinder (1) aus,

wir wählen die Größe der primären Partition aus, indem wir das Symbol + gefolgt von der Größe in GB und GB aus Buchstaben eingeben (z.B.: +480GB).

wir machen es bootfähig mit dem Befehl a und wählen die gleiche Anzahl von Partitionen.

wir ändern die Partitions-ID in „fd“ (Linux Raid Autodetect) mit t, und schreiben als Hex-Code, nur „fd„.

Dann wiederholen wir ALLE Befehle für die zweite Partition (die Partition wird der Swap sein).

Wir werden die Änderungen mit w speichern.

Achten Sie natürlich auf die Größe der Partitionen. Die beste Lösung ist, die aktuelle Swap-Größe von der Summe des freien Platzes abzuziehen, um die Arbeitspartition mit dem größtmöglichen Platz zu erstellen.

Jetzt werden wir genau die gleichen Operationen auf dem SDD-Laufwerk durchführen und sicherstellen, dass die gleiche Partition mit den gleichen Größen wie zuvor erstellt wird.

An dieser Stelle tauschen wir zwischen dem ersten Laufwerk „voll“ und dem ersten neuen Laufwerk aus und fügen letzteres als Ersatz für das RAID hinzu:

mdadm -add /dev/md0 /dev/sdc1

Dann sollten wir die Raid-Disk-Situation überprüfen, so sollte es sein:

md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
 ………blocks super 1.2 [2/2] [UU]

Dann setzen wir das Originallaufwerk ein:

mdadm -f /dev/md0 /dev/sda1

und entfernen Sie es aus dem RAID:

mdadm -r /dev/md0 /dev/sda1

Nun überprüfen wir, ob die Rekonstruktion automatisch gestartet wurde und warten, bis sie abgeschlossen ist, indem wir sie erneut mit überwachen:

watch cat /proc/mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Am Ende installieren wir den Bootloader (grub) auf dem neuen Laufwerk (/ dev / sdc):

grub-install /dev/sdc

Der gleiche Prozess muss nur für jede der Systempartitionen wiederholt werden:

mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

Und wir warten wieder, bis der Umbau abgeschlossen ist:

watch cat /proc/mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Als nächstes führen Sie die gleiche Vorgehensweise für die erste Swap-Partition von zwei neuen Laufwerken durch:

mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2

Warten Sie noch einmal, bis die Rekonstruktion abgeschlossen ist:

watch cat /proc/mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Und die letzte Fahrt:

mdadm -add /dev/md1 /dev/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2

Warten Sie noch einmal, bis die Rekonstruktion abgeschlossen ist:

watch cat /proc/mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Installieren Sie den Bootloader an dieser Stelle auf beiden Laufwerken neu:

grub-install /dev/sdc
grub-install /dev/sdd

An diesem Punkt befinden wir uns mit der alten Festplatte, die aus dem RAID ausgeschlossen ist, und die neuen Festplatten sind montiert und betriebsbereit. Aber mit dem nutzbaren Platz unter dem Maximum, das die Partition zulässt.

Dann fahren wir mit der Vergrößerung der Partition und deren Überprüfung fort, wie für beide Bände üblich:

mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev(md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1

Wenn Sie fertig sind, schalten Sie den PC aus, trennen Sie die alten Laufwerke und starten Sie die Maschine neu.

Auch wenn der Neustart funktionierte, rekonstruieren wir das Grub aus Sicherheitsgründen, da der Start des neuen Laufwerks den Namen des alten (sda und sdb) angenommen haben wird:

mv /boot/grub/device.map/boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb

Wenn Sie absolut sicher sein wollen, dass das neue Raid-Setup funktioniert, schalten Sie die Maschine aus, trennen Sie einen der neuen Laufwerke und starten Sie erneut. Es sollte ohne Probleme beginnen. Danach wieder abschalten, den Antrieb anschließen und starten. Mit diesem Befehl kannst du den Raid-Status überprüfen.

watch cat /proc/mdstat

(Und natürlich STRG + C, um den Prozess zu beenden)

Wir haben die Arbeit beendet, wir feiern.

Das könnte dich auch interessieren …