Моя історія починається досить просто. У мене є легкий сервер із запуском Arch Linux, який зберігає більшість своїх даних на RAID-1, що складається з двох накопичувачів SATA. Він працював без проблем близько 4 місяців. Потім раптом я почав отримувати помилки читання на одному з накопичувачів. Завжди повідомлення виглядали приблизно так:
Apr 18 00:20:15 hope kernel: [307085.582035] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Apr 18 00:20:15 hope kernel: [307085.582040] ata5.01: failed command: READ DMA EXT
Apr 18 00:20:15 hope kernel: [307085.582048] ata5.01: cmd 25/00:08:08:6a:34/00:00:27:00:00/f0 tag 0 dma 4096 in
Apr 18 00:20:15 hope kernel: [307085.582050] res 51/40:00:0c:6a:34/40:00:27:00:00/f0 Emask 0x9 (media error)
Apr 18 00:20:15 hope kernel: [307085.582053] ata5.01: status: { DRDY ERR }
Apr 18 00:20:15 hope kernel: [307085.582056] ata5.01: error: { UNC }
Apr 18 00:20:15 hope kernel: [307085.621301] ata5.00: configured for UDMA/133
Apr 18 00:20:15 hope kernel: [307085.640972] ata5.01: configured for UDMA/133
Apr 18 00:20:15 hope kernel: [307085.640986] sd 4:0:1:0: [sdd] Unhandled sense code
Apr 18 00:20:15 hope kernel: [307085.640989] sd 4:0:1:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Apr 18 00:20:15 hope kernel: [307085.640993] sd 4:0:1:0: [sdd] Sense Key : Medium Error [current] [descriptor]
Apr 18 00:20:15 hope kernel: [307085.640998] Descriptor sense data with sense descriptors (in hex):
Apr 18 00:20:15 hope kernel: [307085.641001] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Apr 18 00:20:15 hope kernel: [307085.641010] 27 34 6a 0c
Apr 18 00:20:15 hope kernel: [307085.641020] sd 4:0:1:0: [sdd] Add. Sense: Unrecovered read error - auto reallocate failed
Apr 18 00:20:15 hope kernel: [307085.641023] sd 4:0:1:0: [sdd] CDB: Read(10): 28 00 27 34 6a 08 00 00 08 00
Apr 18 00:20:15 hope kernel: [307085.641027] end_request: I/O error, dev sdd, sector 657746444
Apr 18 00:20:15 hope kernel: [307085.641035] ata5: EH complete
Apr 18 00:20:15 hope kernel: [307085.641672] md/raid1:md16: read error corrected (8 sectors at 657744392 on sdd1)
Apr 18 00:20:17 hope kernel: [307087.505082] md/raid1:md16: redirecting sector 657742336 to other mirror: sdd1
Кожна помилка скаржилася на інший номер сектору і супроводжувалася декількома секундами затримки для доступу користувача (мене) до диска.
Я перевірив висновок smartctl і побачив наступний вихід (невідповідні частини, вирізані):
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 193 193 051 Pre-fail Always - 1606
5 Reallocated_Sector_Ct 0x0033 194 194 140 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 162 162 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 51
Оглянувшись назад у журналах, я виявив, що помилки насправді траплялися протягом декількох днів, переважно під час резервного копіювання, але також часто під час дуже легкого використання (мається на увазі кожного 5-го разу, коли я намагався зберегти текстовий файл). Я зробив висновок, що мій диск вмирає, що RAID-1 обробляє його належним чином, і що прийшов час замовити диск із заміною. Я замовив новий диск.
На мій подив, через день помилки ... припинилися. Я нічого не зробив, щоб їх виправити. Я не перезавантажувався, не брав диск в автономному режимі, нічого. Але помилки просто зупинилися.
У цей момент, цікаво дізнатися, чи погані сектори просто у непрацюючих частинах диска, я вийняв диск з RAID, поклав його назад в RAID і дозволив йому завершити наступне повне пересинхронізацію. Ресинхронізація завершена без жодних помилок через 9 годин (2 ТБ триває час).
Крім того, висновок smartctl трохи змінився:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 193 193 051 Pre-fail Always - 1606
5 Reallocated_Sector_Ct 0x0033 194 194 140 Pre-fail Always - 43
196 Reallocated_Event_Count 0x0032 162 162 000 Old_age Always - 38
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
Отже, частина цього, що мене дивно переживає, - це, звичайно, "з тих пір, коли погані диски виправляються самі?"
Я вважаю, що можливо, що дуже невелика площа накопичувача спонтанно вийшла з ладу, і що диск просто зайняв 3 дні (!), Перш ніж почався перерозподіл коду сектору, і він склав кілька запасних секторів на погану область диска ... Але я не можу сказати, що я коли-небудь бачив, щоб це сталося.
Хтось ще бачив подібну поведінку? Якщо так, то який у вас був досвід із диском згодом? Чи трапилось це знову? Чи зрештою диск повністю вийшов з ладу? Або це був просто незрозумілий глюк, який залишився незрозумілим?
У моєму випадку у мене вже є привід заміни (отриманий під гарантію), тому я, мабуть, просто замінюватиму диск. Але я хотів би знати, чи неправильно діагностував це. Якщо це допомагає, у мене є повний висновок 'smartctl -a', коли проблема виникала. Це зовсім небагато часу, тому я не публікував це тут.