我有一个 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/内核之间的差异:
- ZFS io错误bug使内核认为存在坏扇区,但根据SMART,没有坏扇区。
- ZFS 不断修复该驱动器(与以前的错误电缆相关),这也可能表明驱动器出现故障,尽管有 SMART 数据。
- 该错误是误报,与此相关未修复漏洞在Ubuntu中
编辑:现在我刚刚意识到好的驱动器的固件版本是 82.00A82,而出现错误的驱动器是 80.00A80。根据西部数据论坛的说法,无法更新此特定型号的固件。我确信这也没有帮助。
编辑2:很久以前忘记更新了,但这最终是一个硬件问题。更换多条 SATA 电缆后,我终于意识到问题一直是电源线故障。电源不稳定正在扼杀驱动器,但我设法获得更好的驱动器并保存池。
答案1
最后,这是您的数据,因此您可以决定是否应该更换驱动器。最终,只是生锈而已。
不过,我应该指出,您似乎已经创建了一个 cat/RAID0 池,因此如果驱动器发生故障,您将丢失所有内容。如果没有镜像,ZFS 无法修复任何失败的文件——只能报告它们。
如果您在清理运行时看到发送到 syslog 的错误消息,可能是在检查 ZFS 校验和时驱动器被征税。由于并非所有数据都被访问,清理可能会碰到驱动器认为需要重新分配的块。或者线路上有噪音。我指的并不是 Brendan Gregg 对磁盘大喊大叫。 ;o)您确实注意到电缆问题,也许控制器或端口问题也存在其中?
您还注意到了西部数据论坛。我见过很多关于消费者驱动器无法与软件或硬件 RAID 配合良好的“投诉”。如果您的数据很重要,您可能需要考虑使用镜像,甚至可能使用 3 路镜像,因为磁盘并不多,并且在重建/重新同步期间其他内容可能会失败。
就“智能数据”而言,结论是它的“智能”程度或有用程度。我见过驱动器通过了供应商测试,但毫无用处。