RAID: Festplatte ersetzen
Wie ich gestern ja bereits schrieb sind in dem Server der auch dieses Blog hostet gestern gleich 2 Festplatten gestorben, zum Glück hintereinander. Die erste Platte fing bereits am Sonntag an sich komisch zu benehmen, was ich jedoch erst am Montag erkannte. Die Platte war noch nicht automatisch aus dem RAID-Verbund herausgeworfen worden, hatte aber bereits gelegentliche Lese-Probleme. Also habe ich sie manuell aus dem RAID entfernt:
mdadm --manage /dev/md0 --fail /dev/sda1
mdadm --manage /dev/md1 --fail /dev/sda2
mdadm --manage /dev/md2 --fail /dev/sda3
mdadm --manage /dev/md0 --remove /dev/sda1
mdadm --manage /dev/md1 --remove /dev/sda2
mdadm --manage /dev/md2 --remove /dev/sda3
Bevor ich die Platte zum Austausch durch Manitu freigegeben habe wurde noch sichergestellt dass grub
auch von der noch verbliebenen Platte starten konnte:
update-grub
grub-install /dev/sdb
Hier sollte überprüft werden, ob die Angaben für das root
-Filesystem auf die korrekte Festplatte/Partition verweist. Bei mir wollte dies mit grub-legacy
nicht klappen, ein schneller Umstieg auf grub2
bzw. grub-pc
funktionierte dann Problemlos.
Mit hdparm
noch schnell Bezeichnung und Seriennummer kopiert und zu Manitu geschickt:
hdparm -i /dev/sda
Nachdem die neue Platte verfügbar war musste diese für das RAID vorbereitet werden, hier ist es sehr wichtig, dass die Partitionen der neuen Platte exakt mit denen auf der alten Platte übereinstimmen. Dies kann man leicht automatisch erledigen lassen:
sfdisk -d /dev/sdb | sfdisk /dev/sda
Mit Hilfe von fdisk -l
kann geprüft werden ob alles korrekt funktioniert hat, die Partitionen von /dev/sda
müssten nun exakt mit denen von /dev/sdb
übereinstimmen:
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 63 16787924 8393931 fd Linux raid autodetect
/dev/sda2 16787925 18892439 1052257+ fd Linux raid autodetect
/dev/sda3 18892440 1953520064 967313812+ fd Linux raid autodetect
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 63 16787924 8393931 fd Linux raid autodetect
/dev/sdb2 16787925 18892439 1052257+ fd Linux raid autodetect
/dev/sdb3 18892440 1953520064 967313812+ fd Linux raid autodetect
Nun kann das RAID wieder zusammengesetzt werden:
mdadm --manage /dev/md0 --add /dev/sda1
mdadm --manage /dev/md1 --add /dev/sda2
mdadm --manage /dev/md2 --add /dev/sda3
Je nach RAID-Partitionen kann es natürlich mehr oder wenig /dev/md*
-Geräte und Partitionen geben. Mit cat /proc/mdstat
kann man den Erfolg überprüfen:
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
967313728 blocks [2/1] [U_]
resync=DELAYED
md1 : active raid1 sdb2[2] sda2[0]
1052160 blocks [2/1] [U_]
resync=DELAYED
md0 : active raid1 sdb1[2] sda1[0]
8393856 blocks [2/1] [U_]
[###>.........] recovery = 59.3% (4980864/8393856) finish=1.3min speed=43548K/sec
unused devices: <none>
Wie man an den Zeilen 3, 7 und 11 ([U_]
) sieht ist in dem RAID immer noch nur eine Platte aktiv, aber es steht ein resync
an oder wird gerade durchgeführt (Zeilen 4, 8 und 12). Auf den Geräten md1
und md2
wird auf den resync
noch gewartet, da immer nur ein RAID-Gerät einen Resync durchführen kann. Ist der Resync auf md0
fertig wird automatisch der Resync von md1 durchgeführt, und so weiter:
Personalities : [raid1]
md2 : active raid1 sdb3[2] sda3[0]
967313728 blocks [2/1] [U_]
resync=DELAYED
md1 : active raid1 sdb2[2] sda2[0]
1052160 blocks [2/1] [U_]
[#####>...........] recovery = 45.3% (477440/1052160) finish=0.1min speed=47744K/sec
md0 : active raid1 sdb1[1] sda1[0]
8393856 blocks [2/2] [UU]
unused devices: <none>
Je Größer die Partition ist um so länger dauert der Resync. Unter Umständen kann dieser mehrere Stunden oder sogar Tage dauern. Geht hierbei die Platte mit den Daten kaputt ist das RAID verloren, sofern es nicht noch aus weiteren Spiegelplatten besteht. Bei mir wäre dies ja fast der Fall gewesen. Auch wenn es den Resync verlangsamt sollte man also noch einmal einen Blick über seine Backupdaten werden und ggf. noch einige Daten zusätzlich auf einem anderen Gerät speichern. Meine Datenplatte hat zum Glück dann noch lange genug durchgehalten um das RAID noch einmal vollständig zu syncen. Jetzt sind 2 neue Platten verbaut und der hoffentlich letzte Sync für lange Zeit ist in etwa 420 Minuten fertig.