RAID1-Rebuild trotz defekter Sektoren erzwingen?

08/12/2009 - 22:51 von Joern Bredereck | Report spam
Hallo,

ich habe hier einen Server mit zwei 750GB-Sata-Platten in einem
Software-RAID1 (mdadm).

Die Festplatte /dev/sdb ist gestern ausgefallen und wurde gegen eine
neue Platte ersetz. Beim Rebuild stellt sich jetzt heraus, dass wohl
auch schon die Platte /dev/sda defekte Sektoren aufweist:

root@gmork:~# grep -i raid /var/log/syslog |grep error
Dec 8 06:50:37 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 507774976
Dec 8 08:20:48 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 507774976
Dec 8 10:09:27 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 599298176
Dec 8 11:43:27 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 507774976
Dec 8 13:13:06 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 507774976
Dec 8 14:47:57 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 507774976
Dec 8 16:42:21 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 599298176
Dec 8 18:09:11 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 497551360
Dec 8 19:44:29 gmork kernel: raid1: sda: unrecoverable I/O read error
for block 499386368


Das komplette RAID (/dev/md1) ist ein physical Volume (pv) einer
Volume-Group. Zu meinem Glück scheinen die defekten Sektoren bislang
nicht einem Logical-Volume zugeordnet worden zu sein. Jedenfalls zeigene
die Dateisysteme auf den einzelnen LVs keinerlei Auffàlligkeiten oder
Probleme.

Habe ich eine Möglichkeit einen Rebuild des RAIDs zu erzwingen? Dass
dabei defekte Sektoren auf /dev/sdb gespiegelt werden, ist mir zunàchst
einmal egal. Ich könnte die /dev/sda nach dem Rebuild ausbauen und durch
eine neue Platte ersetzen.

Gibt es für mdadm einen Schalter um defekte Sektoren zu spiegeln?

Ich könnte /dev/sda alternativ wahrscheinlich auch per dd_rescue auf
/dev/sdb spiegeln, aber dafür müsste ich den Server komplett offline
nehmen. Eine Downtime von einigen Stunden möchte ich auf dem Server
eigentlich vermeiden.

Eine andere Idee wàre, /dev/sdb in ein zusàtzliches RAID1 (mit einem
"missing drive") zu nehmen und dann dieses neu RAID der Volume-Group
hinzuzufügen. Es sollte doch möglich sein, die LVs dann irgendwie auf
das intakte RAID zu relocaten, oder? Anschliessend könnte ich dann
/dev/md1 aus der VG nehmen und komplett auflösen. Dann für /dev/sda eine
neue Platte einbauen und dem intakten RAID hinzufügen. Habe ich etwas
übersehen, oder müsste das funtionieren? Und falls ja, hat das jemand
von euch schonmal gemacht? Bin für jeden Tipp dankbar.


Gruß,
Jörn
 

Lesen sie die antworten

#1 Ulf Volmer
08/12/2009 - 23:22 | Warnen spam
Joern Bredereck schrieb:

Die Festplatte /dev/sdb ist gestern ausgefallen und wurde gegen eine
neue Platte ersetz. Beim Rebuild stellt sich jetzt heraus, dass wohl
auch schon die Platte /dev/sda defekte Sektoren aufweist:


...
Eine andere Idee wàre, /dev/sdb in ein zusàtzliches RAID1 (mit einem
"missing drive") zu nehmen und dann dieses neu RAID der Volume-Group
hinzuzufügen. Es sollte doch möglich sein, die LVs dann irgendwie auf
das intakte RAID zu relocaten, oder? Anschliessend könnte ich dann
/dev/md1 aus der VG nehmen und komplett auflösen. Dann für /dev/sda eine
neue Platte einbauen und dem intakten RAID hinzufügen. Habe ich etwas
übersehen, oder müsste das funtionieren? Und falls ja, hat das jemand
von euch schonmal gemacht? Bin für jeden Tipp dankbar.



Diese Idee würde ich verwenden. Neues RAID1 mit einer Platte anlegen,
pvcreate, dann mit pvmove die LVs rüberschieben, das alte RAID auflösen.

Das ganze geht im Prinzip online, einen reboot gegen Ende würde ich aber
einplanen.

Gruß,
Ulf.

Ähnliche fragen