The Net Wizard HauptseiteISP SetupNetzwerkeVelotourenSoftwareKryptografieVaria

Replace a failed HDD in a Softraid

Kürzlich ist mir aufgefallen, das der periodische resync bei meinem Softraid wesentlich länger als üblich gedauert hat. Zudem war der Auszug aus dem Logs, der mir täglich zugeschickt wird, voll von Fehlern:
sd 2:0:0:0: [sdc] tag#30 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 2:0:0:0: [sdc] tag#30 Sense Key : Medium Error [current]
sd 2:0:0:0: [sdc] tag#30 Add. Sense: Unrecovered read error - auto reallocate failed
sd 2:0:0:0: [sdc] tag#30 CDB: Read(10) 28 00 39 58 12 f8 00 00 38 00 blk_update_request: I/O error, dev sdc, sector 962073336
Ein klares Zeichen dafür, dass eine Harddisk kurz davor ist, das Zeitliche zu segnen. Da gibts nur eins, das Teil muss ersetzt werden. In meinem Fall war die defekte HDD Teil eines Software-RAID5 setups, bestehend aus 4 Platten. Als erstes muss man herausfinden, um was welche Platte es sich genau handelt. Es wäre ziemlich fatal, wenn man die falsche ersetzen würde, weil dann zwei von 4 Platten in einem Raid5 weg wären.
hdparm -i /dev/sdc | grep SerialNo
Die Seriennummer schreibt man sich nun am besten auf. Als nächstes sollte man schauen, ob die Platte vom softraid system bereits als fehlerhaft erkannt wurde. Diese Information steht in /proc/mdstat. In meinem Fall war das nicht so. Folglich habe ich dem System mitgeteilt, dass die Platte /dev/sdc fehlerhaft sei:
mdadm --manage /dev/md0 --fail /dev/sdc1
Es reicht allerdings nicht aus, die Harddisk als fehlerhaft zu markieren, man muss sie auch noch aus dem Raidverbund entfernen:
mdadm --manage /dev/md0 --remove /dev/sdc1
Wenn man nun wieder einen Blick auf /proc/mdstat wirft, sieht man, dass eine Platte im Raidverbund fehlt. Diese kann man nun ersetzen. Dazu fährt man das system runter und ersetzt die Fehlerhafte Platte. Hier ist wichtig, die Seriennummer, die man sich weiter oben notiert hat, mit der Seriennummer auf der Platte zu vergleichen. Ist die Platte ersetzt und das System wieder gestartet, kann man anfangen, das Raid zu vervollständigen. Dazu muss die neue Platte erst einmal partitioniert werden. Da meine Platte 2 TB gross ist, muss man hierfür den Befehl parted verwenden:
parted -a optimal /dev/sdc
Daraufhin erscheint der Prompt des parted Programmes. Dort gibt man folgendes ein:
mklabel gpt
mkpart primary 1 -1
set 1 raid on
print
quit
Jett ist man so weit, dass man das Raid wieder vervollständigen kann:
mdadm --manage /dev/md0 --add /dev/sdc1
Ein Blick auf /proc/mdstat zeigt an, wie lange dieser Vorgang noch dauert. Die Auslastung der HDDs wärend dieses Vorgangs sieht folgendermassen aus:

Man sieht sehr schön, wie am 6. August morgens ein periodischer resync des Softraids stattgefunden hat. Das war der Moment, an dem mir auffiel, dass eine Platte Fehler angezeigt hat. Am 9. August wurde die Platte dann ersetzt. Dort sieht man, dass von den anderen Mitgliedern des Raidverbundes ziemlich heftig gelesen wird, während /dev/sdc sehr viele Schreibvorgänge zeigt.

Powered by w3.css