Festplattenaustausch (RAID)
(Die Seite wurde neu angelegt: Nachdem z.B. der mdadm-checkarray-Cronjob eine Fehlermeldung versandt hat oder der Fehler anderweitig festgestellt wurde, sollte die Festplatte zeitnah ausgetauscht wer...) |
K (hat „Festplattenaustausch“ nach „Festplattenaustausch (RAID)“ verschoben) |
Aktuelle Version vom 2. Juni 2011, 17:42 Uhr
Nachdem z.B. der mdadm-checkarray-Cronjob eine Fehlermeldung versandt hat oder der Fehler anderweitig festgestellt wurde, sollte die Festplatte zeitnah ausgetauscht werden. Beim Austausch von defekten Festplatten, die in einem RAID-Verbund verwendet werden, sind vorher einige Vorbereitungen zu treffen.
Der Status zeigt, daß hier /dev/sda defekt ist:
~# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md2 : active raid1 sda3[2](F) sdb3[1] 1451496768 blocks [2/1] [_U] md1 : active raid1 sda2[2](F) sdb2[1] 12586816 blocks [2/1] [_U] md0 : active raid1 sda1[2](F) sdb1[1] 1052160 blocks [2/1] [_U]
Zu erkennen ist dies an dem [_U], bei einem fehlerfreien Array [UU] und an dem (F) hinter sda*.
Sollte eine Partition in einem der Arrays noch nicht als fehlerhaft markiert sein sein, ist dies nachzuholen:
~# mdadm --manage /dev/md1 --fail /dev/sda2
Danach können die fehlerhaften Partitionen aus den Arrays entfernt werden:
~# mdadm /dev/md0 -r /dev/sda1 ~# mdadm /dev/md1 -r /dev/sda2 ~# mdadm /dev/md2 -r /dev/sda3
Zur Sicherheit sollte noch herausgefunden werden welche Seriennummer die Festplatte hat, damit auch die Richtige gewechselt wird. Am einfachsten wäre ein:
~# smartctl -i /dev/sda Model Family: Seagate Barracuda 7200.11 family Device Model: ST31500341AS Serial Number: 9VS3THWF
Falls die Festplatte jedoch nicht mehr ansprechbar ist, hilft
- das Ausschlußverfahren, indem die Informationen über die intakten Festplatten gesammelt werden
- im noch laufenden System verbliebene Informationen:
~# ls -l /dev/disk/by-id | grep sda lrwxrwxrwx 1 root root 9 Jun 2 08:34 ata-ST31500341AS_9VS3THWF -> ../../sda lrwxrwxrwx 1 root root 9 Jun 2 08:34 scsi-SATA_ST31500341AS_9VS3THWF -> ../../sda
Aus diesen Zeilen ist das Modell und die Seriennummer ablesbar.
- früher, z.B. durch backupninja, gesammelte Informationen
~# grep sda /var/backups/hardware.txt SysFS ID: /class/block/sda Device File: /dev/sda Device Files: /dev/sda, /dev/block/8:0, /dev/disk/by-id/scsi-SATA_ST31500341AS_9VS3THWF, \ /dev/disk/by-id/ata-ST31500341AS_9VS3THWF, /dev/disk/by-id/wwn-0x5000c500200d70bb, \ /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0
Die gesammelten Fehlermeldungen, relevante Informationen aus z.B. /var/log/kern.log und die Hardwareinformationen können nun an den Support des Providers gesendet werden und ein Hardwaretausch eingeleitet werden.
Nachdem die Festplatte getauscht wurde und der Server wieder läuft, muß diese wieder in das System eingebunden werden.
Achtung! Nicht den falschen Bootsektor überschreiben. /dev/sdb ist in diesem Fall die Quelle, /dev/sda das Ziel (die getauschte Platte)
~# dd if=/dev/sdb of=/dev/sda count=1 bs=512 ~# sfdisk -R /dev/sda
Jetzt wieder beim RAID anmelden:
~# mdadm /dev/md0 -a /dev/sda1 ~# mdadm /dev/md1 -a /dev/sda2 ~# mdadm /dev/md2 -a /dev/sda3
Dabei ist es sinnvoll, kleine Partitionen zuerst einzubinden, da diese innerhalb von wenigen Minuten abgeschlossen sind, md2 (1,5TB) benötigt hier 6-8h. Es können alle Befehle nacheinander aufgerufen werden, sie werden jedoch nacheinander im Hintergrund synchronisiert. Der Fortschritt kann beobachtet werden:
~# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda3[2] sdb3[1] 1451496768 blocks [2/1] [_U] resync=DELAYED md1 : active raid1 sda2[2] sdb2[1] 12586816 blocks [2/1] [_U] [==========>..........] recovery = 50.0% (6297856/12586816) finish=1.3min speed=76595K/sec md0 : active raid1 sda1[0] sdb1[1] 1052160 blocks [2/2] [UU]
md0 ist schon fertig, md1 in Arbeit, md2 wartet noch.
~# cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md2 : active raid1 sda3[2] sdb3[1] 1451496768 blocks [2/1] [_U] [>....................] recovery = 0.0% (1058176/1451496768) finish=411.1min speed=58787K/sec md1 : active raid1 sda2[0] sdb2[1] 12586816 blocks [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 1052160 blocks [2/2] [UU]
und jetzt der große Brocken (fast 7h)
Die CPU-Last von md2_resync beträgt 1-2%, iotop zeigt nichts diesbezüglich, der Loadwert bewegt sich dauerhaft bei ca. 1,00, das System läuft jedoch ohne spürbare Verzögerungen.