Mal folgendes Problem: Ich habe 4 WD Red 4 TB im RAID 6 Verbund. Ursprünglich war es ein RAID 5, aber nachdem eine Disk damit anfing, habe ich sicherheitshalber auf RAID 6 aufgerüstet. Es ist bisher nichts Dramatisches passiert und das RAID tut was es soll: Es korrigiert Fehler. Bevor es das tut, lässt es mich aber gerne 30 Sekunden warten und friert dabei den gesamten Verbund ein.
Ich habe mir zum Wochenende hin etwas Zeit genommen, die Daten mal auf andere Festplatten geschaufelt und alle Platten des RAIDs mal mit einem destruktiven badblocks Durchlauf und einem Smart long Test überzogen. Eine der beiden Problemfälle hat sich geheilt, die andere möchte immer noch nicht richtig und ich bekomme es nicht hin, die Festplatte dazu zu bringen, einen defekten bzw. langsamen Sektor auszutauschen.
Aber mal etwas Output:
Hier der Kernel Log. Ganz eindeutig, was mir die Festplatte sagen möchte. Warum sie kein auto rellocate hinbekommt, bleibt mir aber ein Rätsel.
Code:
[175855.698123] ata2.00: configured for UDMA/133
[175855.698151] sd 1:0:0:0: [sdb] tag#5 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=4s
[175855.698157] sd 1:0:0:0: [sdb] tag#5 Sense Key : Medium Error [current]
[175855.698161] sd 1:0:0:0: [sdb] tag#5 Add. Sense: Unrecovered read error - auto reallocate failed
[175855.698164] sd 1:0:0:0: [sdb] tag#5 CDB: Read(16) 88 00 00 00 00 01 ba 86 da 08 00 00 02 00 00 00
[175855.698166] I/O error, dev sdb, sector 7424367112 op 0x0:(READ) flags 0x800 phys_seg 64 prio class 2
[175855.698192] ata2: EH complete
[175859.938942] ata2.00: exception Emask 0x0 SAct 0x8000 SErr 0x0 action 0x0
[175859.938957] ata2.00: irq_stat 0x40000008
[175859.938965] ata2.00: failed command: READ FPDMA QUEUED
[175859.938969] ata2.00: cmd 60/08:78:28:db:86/00:00:ba:01:00/40 tag 15 ncq dma 4096 in
res 41/40:00:28:db:86/00:00:ba:01:00/00 Emask 0x409 (media error) <F>
[175859.938983] ata2.00: status: { DRDY ERR }
[175859.938987] ata2.00: error: { UNC }
Praktischerweise gibt der Kernel auch gleich den Sektor aus, der das Problem verursacht: 7424367112. Da könnte man die Platte doch gezielt dazu zwingen, den Sektor auszulesen. hdparm kann das wunderbar und siehe da: Nach etwa 1-2 Sekunden taucht der Sektor auch auf und weitere Aufrufe gehen danach auch zügig (vermutlich durch den Cache). Wirklich defekt ist er also nicht. Aber richtig gelesen werden möchte er auch nicht.
Code:
# hdparm --read-sector 7424367112 /dev/sdb
/dev/sdb:
reading sector 7424367400: succeeded
5555 5555 5555 5555 5555 5555 5555 5555
...
Stellen wir die Platte mal kurz vor und was sie über sich selbst denkt:
Code:
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Red
Device Model: WDC WD40EFRX-68N32N0
Serial Number: WD-WCC7K0YEXXXX
LU WWN Device Id: 5 0014ee 2663b4729
Firmware Version: 82.00A82
User Capacity: 4.000.787.030.016 bytes [4,00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 3.5 inches
[...]
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH FAIL RAW_VALUE
1 Raw_Read_Error_Rate POSR-K 200 157 051 - 3
3 Spin_Up_Time POS--K 176 168 021 - 6158
4 Start_Stop_Count -O--CK 100 100 000 - 98
5 Reallocated_Sector_Ct PO--CK 200 200 140 - 0
7 Seek_Error_Rate -OSR-K 200 200 000 - 0
9 Power_On_Hours -O--CK 056 056 000 - 32272
10 Spin_Retry_Count -O--CK 100 253 000 - 0
11 Calibration_Retry_Count -O--CK 100 253 000 - 0
12 Power_Cycle_Count -O--CK 100 100 000 - 98
192 Power-Off_Retract_Count -O--CK 200 200 000 - 57
193 Load_Cycle_Count -O--CK 200 200 000 - 204
194 Temperature_Celsius -O---K 115 106 000 - 35
196 Reallocated_Event_Count -O--CK 200 200 000 - 0
197 Current_Pending_Sector -O--CK 200 200 000 - 1
198 Offline_Uncorrectable ----CK 100 253 000 - 0
199 UDMA_CRC_Error_Count -O--CK 200 200 000 - 8
200 Multi_Zone_Error_Rate ---R-- 200 200 000 - 13
[...]
Error 1755 [2] occurred at disk power-on lifetime: 32271 hours (1344 days + 15 hours)
When the command that caused the error occurred, the device was doing SMART Offline or Self-test.
After command completion occurred, registers were:
ER -- ST COUNT LBA_48 LH LM LL DV DC
-- -- -- == -- == == == -- -- -- -- --
40 -- 51 00 00 00 01 ba 86 db 28 40 00 Error: UNC at LBA = 0x1ba86db28 = 7424367400
Commands leading to the command that caused the error were:
CR FEATR COUNT LBA_48 LH LM LL DV DC Powered_Up_Time Command/Feature_Name
-- == -- == -- == == == -- -- -- -- -- --------------- --------------------
60 00 08 00 78 00 01 ba 86 db 28 40 08 2d+00:48:12.368 READ FPDMA QUEUED
60 00 08 00 70 00 01 ba 86 db 20 40 08 2d+00:48:12.368 READ FPDMA QUEUED
60 00 08 00 68 00 01 ba 86 db 18 40 08 2d+00:48:12.368 READ FPDMA QUEUED
60 00 08 00 60 00 01 ba 86 db 10 40 08 2d+00:48:12.368 READ FPDMA QUEUED
60 00 08 00 58 00 01 ba 86 db 08 40 08 2d+00:48:12.368 READ FPDMA QUEUED
[...]
SMART Extended Self-test Log Version: 1 (1 sectors)
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Selective captive Interrupted (host reset) 90% 32270 -
# 2 Selective captive Interrupted (host reset) 90% 32270 -
# 3 Selective captive Interrupted (host reset) 90% 32270 -
# 4 Short offline Completed without error 00% 32270 -
# 5 Selective offline Completed: read failure 90% 32269 7528551873
# 6 Extended offline Completed: read failure 10% 32269 7526054736
# 7 Extended offline Completed: read failure 90% 30011 100173888
# 8 Extended offline Completed: read failure 90% 29339 100173888
# 9 Extended offline Completed: read failure 90% 27452 100173888
#10 Selective offline Completed without error 00% 26475 -
#11 Extended offline Completed: read failure 10% 26415 7423573328
#12 Extended offline Completed: read failure 10% 26404 7423573328
#13 Extended offline Completed without error 00% 19509 -
#14 Extended offline Completed without error 00% 14888 -
#15 Extended offline Completed without error 00% 11652 -
#16 Extended offline Completed without error 00% 8765 -
#17 Extended offline Completed without error 00% 6748 -
#18 Extended offline Completed without error 00% 27 -
Badblocks scheint von dem Problem auch etwas mitbekommen zu haben. 1 Lesefehler wurde erkannt.
Code:
Testing with pattern 0x55: done
Reading and comparing: 98.06% done, 2:36:35 elapsed. (1/0/0 errors)
Man sieht, dass ich die Platte gerade aktiv untersuche und Dinge ausprobiere. Kaputt machen kann ich ja gerade nichts.
Die Platte hat Probleme, aber prinzipiell würde ich meinen, dass ich hier keine 80 Euro in die Hand nehmen muss. Die Platte würde ich sowieso weiter benutzen, um Daten auszulagern und Daten wurden bisher nicht korrumpiert. Meiner Meinung nach, ist es einfach nur ein Kratzer im Lack.
Ich möchte diesen Kratzer trotzdem gerne beseitigen. Aber der Klassiker, die Platte einfach zu überschreiben und selbst erkennen zu lassen, dass sie einen Sektor austauschen muss, funktioniert hier leider nicht.
Der GP Log 0x04 zeigt noch mal weitere Statistiken:
Code:
0x03 ===== = = === == Rotating Media Statistics (rev 1) ==
0x03 0x008 4 32162 --- Spindle Motor Power-on Hours
0x03 0x010 4 32133 --- Head Flying Hours
0x03 0x018 4 262 --- Head Load Events
0x03 0x020 4 0 --- Number of Reallocated Logical Sectors
0x03 0x028 4 4385 --- Read Recovery Attempts
0x03 0x030 4 0 --- Number of Mechanical Start Failures
0x03 0x038 4 8 --- Number of Realloc. Candidate Logical Sectors
0x03 0x040 4 57 --- Number of High Priority Unload Events
0x04 ===== = = === == General Errors Statistics (rev 1) ==
0x04 0x008 4 1754 --- Number of Reported Uncorrectable Errors
0x04 0x010 4 0 --- Resets Between Cmd Acceptance and Completion
Ich nenne es mal, nicht so gesund, aber funktioniert.
Also meine Frage: Hat jemand schon mal mit ähnlichen Symptomen zu kämpfen gehabt? Wie bekomme ich die Platte dazu, ihre fehlerhaften Sektoren auszutauschen?
--- edit
Es wäre auch zu einfach. Der selektive Test auf einen Bereich mit vormals defekten Sektoren wird ohne Fehler beendet.
Code:
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Selective offline Completed without error 00% 32272 -
[...]
# 7 Selective offline Completed: read failure 90% 32269 7528551873
# 8 Extended offline Completed: read failure 10% 32269 7526054736
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 7526000000 7600000000 Not_testing
Vielleicht fällt ja jemanden dazu etwas ein. Sobald badblocks durch ist, schicke ich die Platte noch mal in ihren 8 stündigen long Test. Mit etwas Glück hat sich das Problem mit Beharrlichkeit gelöst.
--- Nachtrag
Ich werde nicht schlau daraus, aber badblocks ein paar Mal über die fehlerhaften Sektoren schreiben zu lassen, hat die Platte anscheinend zu Einsicht bewegt. Weil mir die Rechnung LBA auf Sektoren und Blöcke für die späte Nacht zu lästig war, hatte ich einfach eine Partition von knapp 200 GB erstellt und badblocks dort arbeiten lassen.
Der anschließende long Test ist erfolgreich abgeschlossen worden. Fragt mich nicht, aber ich mache mit der Platte jetzt weiter. Als Parity Laufwerk taugt sie trotz des Vertrauensverlusts doch noch.