Defekte Festplatte mit S.M.A.R.T. erkennen und monitoren
Der Server ist langsam, reagiert nur noch träge? Oftmals liegt das nicht an der Systemleistung sondern an einer oder mehreren defekten Festplatten. Ich gehe in diesem Beitrag von einem Linux System mit SATA Festplatten aus.
Punkt 1: S.M.A.R.T. auslesen
S.M.A.R.T. ist die schnellste und einfachste Methode um Schäden an den Festplatten zu erkennen. Wir installieren das Paket, insofern nicht bereits geschehen.
Debian
1 | apt-get install smartmontools |
CentOS
1 | yum install smartmontools |
Nun aktivieren wir S.M.A.R.T. für die einzelnen Festplatten.
1 2 3 4 5 6 | # smartctl -s on /dev/sda smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-26-pve] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF ENABLE/DISABLE COMMANDS SECTION === SMART Enabled. |
Jetzt prüfen wir, ob die Festplatte defekte Sektoren hat. Relevante Zeilen markiere ich.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # smartctl -A /dev/sda smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-26-pve] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 177 154 021 Pre-fail Always - 13133 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 14 5 Reallocated_Sector_Ct 0x0033 199 199 140 Pre-fail Always - 1746 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 063 063 000 Old_age Always - 27342 10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 11 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 8 193 Load_Cycle_Count 0x0032 191 191 000 Old_age Always - 28350 194 Temperature_Celsius 0x0022 116 095 000 Old_age Always - 36 196 Reallocated_Event_Count 0x0032 199 199 000 Old_age Always - 1 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 254 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 254 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0 |
Wenn die 3 Zeilen in der letzten Spalte so aussehen, ist die Festplatte defekt und sollte ausgetauscht werden. Im dmesg sollten ebenfalls I/O Error zu sehen sein.
Punkt 2: Seriennummer für den Austausch auslesen
Um einen Fehltausch zu vermeiden, geben wir unserem Provider immer die Seriennummer der defekten Festplatte mit. Wenn diese nicht mehr vom System erkannt wird teilen wir alle Seriennummern der funktionierenden Festplatten mit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # smartctl -i /dev/sda smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-26-pve] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION === Model Family: Western Digital Caviar Black Device Model: WDC WD2002FAEX-00MJRA0 Serial Number: WD-WMC1P0224819 LU WWN Device Id: 5 0014ee 2b4128fc3 Firmware Version: 01.01L01 User Capacity: 2.000.398.934.016 bytes [2,00 TB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: 8 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Tue Jan 21 14:50:44 2014 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled |
Wenn die defekte Festplatte ausgetauscht wurde, kann diese wieder dem Raid 1 Array hinzugefügt werden.
Punkt 3: Festplatten überwachen
Um in Zukunft keine bösen Überraschungen mehr erleiden zu müssen, können wir uns ganz leicht per E-Mail über den S.M.A.R.T. Health Status benachrichtigen lassen. Öffnet /etc/smartd.conf und passt die DEVICESCAN Zeile entsprechend an.
1 | DEVICESCAN -d removable -n standby -H -l error -l selftest -m admin@example.org -M exec /usr/share/smartmontools/smartd-runner |
Der Dienst smartd sollte im Autostart sein und laufen.
Debian
1 2 | # update-rc.d smartd defaults # /etc/init.d/smartd start |
CentOS
1 2 | # chkconfig smartd on # /etc/init.d/smartd start |