Eine Geschichte die ich während der Zeit als Betreiber von Swissjabber erlebt habe.

Damals lief Swissjabber auf einem dedizierten Root-Server bei Nine in Zürich. Der Server war mit einem Software-RAID aufgesetzt. Die Applikations-Daten in einem mit Truecrypt verschlüsseltem Container gespeichert.

Disk defect

Dann plötzlich fällt eine Disk aus:

/dev/sda Defect
/dev/sdb Active sync

Die Disk in den Zustand fail versetzen und das muss für jedes Array gemacht werden bei welchem /dev/sda im Einsatz war:

mdadm /dev/mdN -f /dev/sdaN

Und jetzt die Disk komplett aus dem Array entfernen. Auch das für jedes Array wo die Disk im Einsatz war:

mdadm /dev/mdN -r /dev/sdaN

Disk im Betrieb austauschen

Wurde die neue Disk vom Support angeschlossen, weisen wir Linux an, den ATA/SCSI Bus zu scannen, damit die neue Disk gefunden wird.

apt-get install scsiadd
scsiadd -s

Wir prüfen ob die Disk bereits ansprechbar ist:

fdisk -l /dev/sda

Nun kopieren wir die Platten Geometrie der noch aktiven Platte auf die neue:

sfdisk -d /dev/sdb | sfdisk /dev/sda
fdisk -l /dev/sda

Wurde die Plattengeometrie erfolgreich übertragen, fügen wir wir die Partitionen wieder zum Array hinzufügen (für jedes Array einzeln):

mdadm -a /dev/mdN /dev/sdaN

Logfiles

Das Raid Subsystem von Linux beginnt nun sofort mit dem Rebuild aller Arrays. Dies überprüfen wir in /var/log/kern.log:

08:28:34  kernel: I/O error, dev sda, sector 431499907
08:28:34  kernel: sd 0:0:0:0: SCSI error: return code = 0x00040000
08:28:34  kernel: end_request: I/O error, dev sda, sector 431500195
08:28:37  kernel: RAID1 conf printout:
08:28:37  kernel: --- wd:1 rd:2
08:28:37  kernel: disk 0, wo:1, o:0, dev:sda6
08:28:37  kernel: disk 1, wo:0, o:1, dev:sdb6
08:28:37  kernel: RAID1 conf printout:
08:28:37  kernel: --- wd:1 rd:2
08:28:37  kernel: disk 1, wo:0, o:1, dev:sdb6
08:28:40  mdadm: Fail event detected on md device /dev/md4, component device /dev/sda6
08:28:40  mdadm: Fail event detected on md device /dev/md3, component device /dev/sda5
08:28:40  mdadm: SpareActive event detected on md device /dev/md4, component device /dev/sda6
09:49:45  mdadm: Fail event detected on md device /dev/md0, component device /dev/sda1
10:09:34  mdadm: Fail event detected on md device /dev/md1, component device /dev/sda2
10:10:11  mdadm: Fail event detected on md device /dev/md2, component device /dev/sda3
12:37:35  mdadm: RebuildStarted event detected on md device /dev/md0
12:37:36  mdadm: RebuildFinished event detected on md device /dev/md0
12:37:36  mdadm: SpareActive event detected on md device /dev/md0, component device /dev/sda1
12:42:25  mdadm: RebuildStarted event detected on md device /dev/md1
12:42:55  mdadm: RebuildFinished event detected on md device /dev/md1
12:42:55  mdadm: SpareActive event detected on md device /dev/md1, component device /dev/sda2
12:44:17  mdadm: RebuildStarted event detected on md device /dev/md3
12:45:17  mdadm: Rebuild80 event detected on md device /dev/md3
12:45:21  mdadm: RebuildFinished event detected on md device /dev/md3
12:45:21  mdadm: SpareActive event detected on md device /dev/md3, component device /dev/sda5
12:48:25  mdadm: RebuildStarted event detected on md device /dev/md2
12:48:39  mdadm: RebuildFinished event detected on md device /dev/md2
12:48:39  mdadm: SpareActive event detected on md device /dev/md2, component device /dev/sda3
12:52:38  mdadm: RebuildStarted event detected on md device /dev/md4
13:11:38  mdadm: Rebuild20 event detected on md device /dev/md4
13:29:38  mdadm: Rebuild40 event detected on md device /dev/md4
13:50:38  mdadm: Rebuild60 event detected on md device /dev/md4
14:15:38  mdadm: Rebuild80 event detected on md device /dev/md4
14:46:37  mdadm: RebuildFinished event detected on md device /dev/md4
14:46:37  mdadm: SpareActive event detected on md device /dev/md4, component device /dev/sda6
14:46:37  mdadm: RebuildFinished event detected on md device /dev/md4