ZFS - 系统日志中显示“Add.Sense:无法恢复的读取错误 - 自动重新分配失败”,但 SMART 数据看起来正常

ZFS - 系统日志中显示“Add.Sense:无法恢复的读取错误 - 自动重新分配失败”,但 SMART 数据看起来正常

我有一个 zpool(3x 3TB Western Digital Red),我每周都会清理一次,以查找出现的错误,但我的系统日志中经常出现错误:

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错误bug使内核认为存在坏扇区,但根据SMART,没有坏扇区。
  2. ZFS 不断修复该驱动器(与以前的错误电缆相关),这也可能表明驱动器出现故障,尽管有 SMART 数据。
  3. 该错误是误报,与此相关未修复漏洞在Ubuntu中

编辑:现在我刚刚意识到好的驱动器的固件版本是 82.00A82,而出现错误的驱动器是 80.00A80。根据西部数据论坛的说法,无法更新此特定型号的固件。我确信这也没有帮助。

编辑2:很久以前忘记更新了,但这最终是一个硬件问题。更换多条 SATA 电缆后,我终于意识到问题一直是电源线故障。电源不稳定正在扼杀驱动器,但我设法获得更好的驱动器并保存池。

答案1

最后,这是您的数据,因此您可以决定是否应该更换驱动器。最终,只是生锈而已。

不过,我应该指出,您似乎已经创建了一个 cat/RAID0 池,因此如果驱动器发生故障,您将丢失所有内容。如果没有镜像,ZFS 无法修复任何失败的文件——只能报告它们。

如果您在清理运行时看到发送到 syslog 的错误消息,可能是在检查 ZFS 校验和时驱动器被征税。由于并非所有数据都被访问,清理可能会碰到驱动器认为需要重新分配的块。或者线路上有噪音。我指的并不是 Brendan Gregg 对磁盘大喊大叫。 ;o)您确实注意到电缆问题,也许控制器或端口问题也存在其中?

您还注意到了西部数据论坛。我见过很多关于消费者驱动器无法与软件或硬件 RAID 配合良好的“投诉”。如果您的数据很重要,您可能需要考虑使用镜像,甚至可能使用 3 路镜像,因为磁盘并不多,并且在重建/重新同步期间其他内容可能会失败。

就“智能数据”而言,结论是它的“智能”程度或有用程度。我见过驱动器通过了供应商测试,但毫无用处。

相关内容