Ubuntu

ZFS - 系統日誌中的“添加。感知:未恢復的讀取錯誤 - 自動重新分配失敗”,但 SMART 數據看起來正常

  • November 21, 2019

我有一個 zpool(3x 3TB Western Digital Red),我每週都會清理出現的錯誤,但我的 syslog 中有一個反復出現的錯誤:

Jul 23 14:00:41 server kernel: [1199443.374677] ata2.00: exception Emask 0x0 SAct 0xe000000 SErr 0x0 action 0x0
Jul 23 14:00:41 server kernel: [1199443.374738] ata2.00: irq_stat 0x40000008
Jul 23 14:00:41 server kernel: [1199443.374773] ata2.00: failed command: READ FPDMA QUEUED
Jul 23 14:00:41 server kernel: [1199443.374820] ata2.00: cmd 60/02:c8:26:fc:43/00:00:f9:00:00/40 tag 25 ncq 1024 in
Jul 23 14:00:41 server kernel: [1199443.374820] res 41/40:00:26:fc:43/00:00:f9:00:00/40 Emask 0x409 (media error) <F>
Jul 23 14:00:41 server kernel: [1199443.374946] ata2.00: status: { DRDY ERR }
Jul 23 14:00:41 server kernel: [1199443.374979] ata2.00: error: { UNC }
Jul 23 14:00:41 server kernel: [1199443.376100] ata2.00: configured for UDMA/133
Jul 23 14:00:41 server kernel: [1199443.376112] sd 1:0:0:0: [sda] tag#25 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Jul 23 14:00:41 server kernel: [1199443.376115] sd 1:0:0:0: [sda] tag#25 Sense Key : Medium Error [current] [descriptor]
Jul 23 14:00:41 server kernel: [1199443.376118] sd 1:0:0:0: [sda] tag#25 Add. Sense: Unrecovered read error - auto reallocate failed
Jul 23 14:00:41 server kernel: [1199443.376121] sd 1:0:0:0: [sda] tag#25 CDB: Read(16) 88 00 00 00 00 00 f9 43 fc 26 00 00 00 02 00 00
Jul 23 14:00:41 server kernel: [1199443.376123] blk_update_request: I/O error, dev sda, sector 4181982246
Jul 23 14:00:41 server kernel: [1199443.376194] ata2: EH complete

不久前,我的 SATA 電纜出現故障,導致了一些讀/寫錯誤(後來被 zpool 清理和從快照恢復),最初認為這個錯誤是由此造成的。然而,它一直隨機重複出現,這次是我在擦洗的時候。

到目前為止 ZFS 說沒有錯誤,但它也說它正在“修復”該磁碟:

pool: sdb
state: ONLINE
 scan: scrub in progress since Sun Jul 23 00:00:01 2017
   5.41T scanned out of 7.02T at 98.9M/s, 4h44m to go
   16.5K repaired, 77.06% done
config:

   NAME                                        STATE     READ WRITE CKSUM
   sdb                                         ONLINE       0     0     0
     ata-WDC_WD30EFRX-68EUZN0_WD-WMC4N1366685  ONLINE       0     0     0  (repairing)
     ata-WDC_WD30EFRX-68EUZN0_WD-WMC4N0K3PFPS  ONLINE       0     0     0
     ata-WDC_WD30EFRX-68EUZN0_WD-WMC4N0M94AKN  ONLINE       0     0     0
   cache
     sde                                       ONLINE       0     0     0

errors: No known data errors

SMART 數據似乎告訴我在執行一個簡短的測試後一切正常,我現在正在執行長時間的自檢,看看是否有任何結果。唯一跳出來的是UDMA_CRC_Error_Count,但是在我修復了那條 SATA 電纜之後,它根本沒有增加。

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   195   175   021    Pre-fail  Always       -       5233
 4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       625
 5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
 7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
 9 Power_On_Hours          0x0032   069   069   000    Old_age   Always       -       22931
10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       625
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       581
193 Load_Cycle_Count        0x0032   106   106   000    Old_age   Always       -       283773
194 Temperature_Celsius     0x0022   118   109   000    Old_age   Always       -       32
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   133   000    Old_age   Always       -       1801
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     22931         -

除此之外,我還收到有關 ZFS I/O 錯誤的通知,儘管據此只是與驅動器空閒/啟動時間相關的錯誤。

 eid: 71
class: io
 host: server
 time: 2017-07-23 15:57:49-0500
vtype: disk
vpath: /dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WMC4N1366685-part1
vguid: 0x979A2C1464C41735
cksum: 0
 read: 0
write: 0
 pool: sdb

**我的主要問題是我應該對那個驅動器有多擔心?**為了安全起見,我傾向於更換它,但我想知道我需要多久才能更換。

以下是我認為可能解釋 SMART 數據和 ZFS/核心之間差異的可能性:

  1. ZFS io 錯誤錯誤使核心認為有壞扇區,但根據 SMART 沒有。
  2. ZFS 一直在修復該驅動器(與先前使用故障電纜的錯誤有關),這也可能表明驅動器故障,儘管有 SMART 數據。
  3. 該錯誤是一個誤報,並且與Ubuntu 中的這個未修復的錯誤有關

編輯:現在我剛剛意識到好的驅動器在韌體版本 82.00A82 上,而出現錯誤的驅動器是 80.00A80。根據西部數據論壇的說法,無法更新此特定型號的韌體。我敢肯定這也無濟於事。

編輯2:很久以前忘記更新了,但這確實是一個硬體問題。在更換了多條 SATA 電纜後,我終於意識到問題一直是電源線故障。電源不穩定正在殺死驅動器,但我設法獲得了更好的驅動器並保存了池。

最後,這是您的數據,因此您將是決定是否應該更換驅動器的人。最後,它只是旋轉生鏽。

不過,我應該指出,您似乎已經創建了一個 cat/RAID0 池,因此如果驅動器出現故障,您將失去一切。如果沒有鏡像,ZFS 無法修復任何失敗的文件——只能報告它們。

如果您在清理執行時看到發送到 syslog 的錯誤消息,可能是由於在檢查 ZFS 校驗和時對驅動器徵稅。而且由於並非所有數據都被訪問,因此清理可能會遇到驅動器認為需要重新分配的塊。或者噪音就行了。我不是指 Brendan Gregg 對磁碟大喊大叫。;o)您確實注意到電纜問題,也許控制器或埠問題也存在?

您還注意到了一個西部數據論壇。我已經看到許多關於消費類驅動器的“抱怨”不能很好地與軟體或硬體 RAID 配合使用。如果您的數據很重要,您可能需要考慮使用鏡像,甚至可能是 3 向鏡像,因為磁碟數量不多,並且在重建/重新同步期間可能會出現其他問題。

就“智能數據”而言,它的“智能”或有用程度尚無定論。我已經看到驅動器通過了供應商的測試,但毫無用處。

引用自:https://unix.stackexchange.com/questions/381306