Linux (Debian, CentOS, etc.) defekte Festplatte im SW RAID1 austauschen.
Wir gehen davon aus, dass 2 Festplatten verbaut sind. Also /dev/sda und /dev/sdb.
Folgende Partitionen sind vorhanden:
/dev/sda1 und /dev/sdb1 enthalten das RAID1 Array /dev/md0
/dev/sda2 and /dev/sdb2 enthalten das RAID1 Array /dev/md1
Um zu prüfen, welche Festplatte defekt ist, geben wir als root
cat /proc/mdstat
ein. Anstelle von [UU] steht dann z.B. [U_] da.
/dev/sdb ist in unserem Beispiel defekt und soll ausgetauscht werden.
Zuerst müssen wir die Seriennnummer der Festplatte herausfinden, damit wir nachher wissen, welche Festplatte wir ausbauen bzw. austauschen müssen.
Dafür installieren wir hdparm
Unter Debian:
apt-get install hdparm
Mit folgendem Befehl lesen wir nun die Seriennummer aus:
hdparm -i /dev/sdb | grep SerialNo
Die Ausgabe sieht dann so ungefähr aus:
root@ded105:~# hdparm -i /dev/sda | grep SerialNo
Model=ST500DM002-1BD142, FwRev=KC45, <strong>SerialNo=Z2APRL6N</strong>
root@ded105:~#[/sourcecode]
Die Seriennummer notieren wir uns und entfernen die Partitionen als Nächstes aus ihren RAID Arrays.
Dafür markieren wir /dev/sdb1 und /dev/sdb2 als defekt bzw. ausgefallen:
mdadm –manage /dev/md0 –fail /dev/sdb1
mdadm –manage /dev/md1 –fail /dev/sdb2
Die Ausgabe sollte nun so ungefähr aussehen:
[sourcecode language=“text“]root@ded101:~# mdadm –manage /dev/md0 –fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
root@ded101:~# mdadm –manage /dev/md1 –fail /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1
root@ded101:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1](F)
945510264 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0] sdb1[1](F)
31248312 blocks super 1.2 [2/1] [U_]
unused devices: <none>
root@ded101:~#
Nun entfernen wir sdb1 und sdb2 noch aus Ihren RAID Arrays:
mdadm –manage /dev/md0 –remove /dev/sdb1
und
mdadm –manage /dev/md1 –remove /dev/sdb2
Die Konsole sollte dabei folgendes ausgeben:
root@ded101:~# mdadm –manage /dev/md0 –remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
root@ded101:~# mdadm –manage /dev/md1 –remove /dev/sdb2
mdadm: hot removed /dev/sdb2 from /dev/md1
root@ded101:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0]
945510264 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
31248312 blocks super 1.2 [2/1] [U_]
unused devices: <none>
root@ded101:~#
Nun fahren wir das System herunter:
shutdown -h now
Wir tauschen nun die /dev/sdb welche wir anhand der Seriennummer identifizieren durch eine mindestens genauso große Festplatte aus.
Nun fahren wir das System wieder hoch.
Zuerst müssen wir auf der neuen Festplatte die selben Partitionen erstellen wie auf /dev/sda
Das machen wir am einfachsten mit:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Um die Partitionierung zu überprüfen geben wir
fdisk -l
ein.
Jetzt fügen wir /dev/sdb1 wieder zu /dev/md0 und /dev/sdb2 wieder zu /dev/md1 hinzu:
mdadm –manage /dev/md0 –add /dev/sdb1
mdadm –manage /dev/md1 –add /dev/sdb2
Die beiden RAID Arrays werden nun automatisch wieder Synchronisiert.
Mit cat /proc/mdstat sollte dieser Vorgang sichtbar gemacht werden.
Und schon sind wir fertig! /dev/sdb wurde erfolgreich ersetzt und das System ist wieder komplett einsatzbereit.
Kann ich bei einem Raid 5 identisch vorgehen?
Danke für den Beitrag, hat mir geholfen zwei alte Platten im Raid1 auszutauschen!