ZFS校验和错误,何时更换驱动器?


9

我是ZFS的新手,我有一个带有8个驱动器的简单镜像存储池设置。运行几周后,一个驱动器似乎产生很多错误,因此我更换了它。

再过几周,现在我看到池周围到处都是小错误(请参见zpool status下面的输出)。我应该为此担心吗?如何确定错误是否表明需要更换驱动器?

# zpool status
  pool: storage
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: scrub repaired 22.5K in 1h18m with 0 errors on Sun Jul 10 03:18:42 2016
config:

        NAME        STATE     READ WRITE CKSUM
        storage     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            enc-a   ONLINE       0     0     2
            enc-b   ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            enc-c   ONLINE       0     0     0
            enc-d   ONLINE       0     0     2
          mirror-2  ONLINE       0     0     0
            enc-e   ONLINE       0     0     2
            enc-f   ONLINE       0     0     1
          mirror-3  ONLINE       0     0     0
            enc-g   ONLINE       0     0     0
            enc-h   ONLINE       0     0     3

errors: No known data errors

ZFS会帮助我“确定是否需要更换设备...”,但是我不确定该怎么做。我确实阅读了所引用的文章,该文章很有帮助,但结论并不完全。

我查看了受影响驱动器的SMART测试结果,但没有发现任何问题(所有测试均已完成,没有错误),但是如果有帮助,我也可以发布SMART数据。

更新:在准备重新启动到Memtest86 +时,我注意到控制台上有很多错误。我通常通过SSH进入,因此以前没有看到它们。我不确定应该检查哪个日志,但是整个屏幕上都充满了如下所示的错误(不是我的确切错误行,我只是从另一个论坛复制了此错误):

blk_update_request: I/0 error, dev sda, sector 220473440

从某些Google搜索中看来,该错误似乎表明驱动器性能不佳,但我很难相信它们都像这样立即失效。关于从这里去哪里的想法?

更新2:我遇到了这个ZOL问题,似乎与我的问题有关。像OP一样,我使用hdparm降低驱动器速度,并且看到类似的ZFS校验和blk_update_request错误。我的机器仍在运行Memtest,因此目前无法检查我的内核或ZFS版本,但这至少看起来很可能。我也看到了类似的问题,这令人沮丧。有人知道ZFS和旋转驱动器的问题吗?

更新3: LSI控制器上的固件和驱动程序版本不匹配会导致这样的错误吗?看来我正在运行驱动程序版本20.100.00.00和固件版本17.00.01.00。尝试在卡上刷新更新的固件是否值得?

# modinfo mpt2sas
filename:       /lib/modules/3.10.0-327.22.2.el7.x86_64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko
version:        20.100.00.00
license:        GPL
description:    LSI MPT Fusion SAS 2.0 Device Driver
author:         Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>
rhelversion:    7.2
srcversion:     FED1C003B865449804E59F5

# sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 20.00.00.00 (2014.09.18) 
Copyright (c) 2008-2014 LSI Corporation. All rights reserved 

    Adapter Selected is a LSI SAS: SAS2308_2(D1) 

Num   Ctlr            FW Ver        NVDATA        x86-BIOS         PCI Addr
----------------------------------------------------------------------------

0  SAS2308_2(D1)   17.00.01.00    11.00.00.05    07.33.00.00     00:04:00:00

更新4:dmesg输出中发现了更多错误。我不确定是什么原因触发了这些操作,但是在卸载阵列中的所有驱动器以准备更新LSI控制器的固件后,我注意到了它们。我会稍等一下,看看固件更新是否解决了该问题,但是在此期间出现了一些错误。我不太确定这是什么意思。

[87181.144130] sd 0:0:2:0: [sdc] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144142] sd 0:0:2:0: [sdc] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144148] blk_update_request: I/O error, dev sdc, sector 889461969
[87181.144255] sd 0:0:3:0: [sdd] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144259] sd 0:0:3:0: [sdd] CDB: Write(10) 2a 00 35 04 1c d1 00 00 01 00
[87181.144263] blk_update_request: I/O error, dev sdd, sector 889461969
[87181.144371] sd 0:0:4:0: [sde] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144375] sd 0:0:4:0: [sde] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144379] blk_update_request: I/O error, dev sde, sector 922978096
[87181.144493] sd 0:0:5:0: [sdf] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87181.144500] sd 0:0:5:0: [sdf] CDB: Write(10) 2a 00 37 03 87 30 00 00 08 00
[87181.144505] blk_update_request: I/O error, dev sdf, sector 922978096
[87191.960052] sd 0:0:6:0: [sdg] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960063] sd 0:0:6:0: [sdg] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960068] blk_update_request: I/O error, dev sdg, sector 906238044
[87191.960158] sd 0:0:7:0: [sdh] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87191.960162] sd 0:0:7:0: [sdh] CDB: Write(10) 2a 00 36 04 18 5c 00 00 01 00
[87191.960179] blk_update_request: I/O error, dev sdh, sector 906238044
[87195.864565] sd 0:0:0:0: [sda] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87195.864578] sd 0:0:0:0: [sda] CDB: Write(10) 2a 00 37 03 7c 68 00 00 20 00
[87195.864584] blk_update_request: I/O error, dev sda, sector 922975336
[87198.770065] sd 0:0:1:0: [sdb] FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[87198.770078] sd 0:0:1:0: [sdb] CDB: Write(10) 2a 00 37 03 7c 88 00 00 20 00
[87198.770084] blk_update_request: I/O error, dev sdb, sector 922975368

更新5:我更新了LSI控制器的固件,但是在清除ZFS错误并进行清理后,我看到了相同的行为(一些驱动器上的校验和错误很小)。下一步将更新驱动器本身上的固件。

更新6:在一些论坛上看到其他人使用U-NAS NSC800机箱后,所提供的转接卡出现了问题,我更换了PCI转接卡。对校验和错误没有影响。我一直在推迟HDD固件的更新,因为该过程很麻烦,但是我想是时候吸收它并制作可启动的DOS闪存驱动器了。

更新7:我更新了三个Seagate驱动器上的固件。其他驱动器或者没有可用的固件更新,或者我无法获取它(Western Digital告诉我驱动器没有固件更新)。初始擦洗后没有出现任何错误,但是在我说这可以解决问题之前,我至少要花一两个星期的时间。对我来说,三个驱动器中的固件似乎不可能像这样影响整个池。

更新8:像以前一样,校验和错误又回来了。我可能会研究主板的固件更新,但是现在我茫然了。更换其余的物理组件(控制器,背板,电缆)将非常困难/昂贵,而且我不能百分百确定自己的设置(ZFS + Linux + LUKS +降低空闲驱动器)没有问题。任何其他想法都欢迎。

更新9:仍在尝试跟踪此事件。我遇到了这个问题,它与我的情况有一些相似之处。因此,我继续使用ashift=12来重建zpool,以查看是否可以解决问题(没有运气)。然后,我硬着头皮买了一个新的控制器。我刚刚安装了Supermicro AOC-SAS2LP-MV8 HBA卡。我会给它一两个星期的时间,看看能否解决问题。

更新10:只是为了解决这个问题。自从新的HBA卡插入以来已经有大约2周的时间,冒着金星的风险,此后我没有出现校验和错误。非常感谢所有帮助我解决此问题的人。


2
您能告诉我们更多有关硬件的信息吗?在多个驱动器上出现这些错误似乎比磁盘问题更能说明背板/控制器/电缆问题。
ewwhite

我没想到。这些驱动器位于内置SATA / SAS背板的U-NAS NSC-800机箱中。它通过2个微型SAS连接器连接到LSI SAS 9207-8i HBA。它通过机箱随附的PCI Riser卡连接到Supermicro MBD-X10SDV-4C
Dominic

1
你的RAM还好吗?当内存模块损坏时,我也遇到过类似的错误-没有磁盘错误,但是所有驱动器上都有一些(低)校验和错误。
user121391 '16

1
在这一点上,控制器很可能是显而易见的。实际上,它在“更新4”之前很明显。
迈克尔·汉普顿

1
不客气@ hak8or。该站点上的人员对我有很大帮助,所以很高兴听到我的榜样可能对其他人有所帮助。
Dominic P

Answers:


6

跨多个驱动器出现这些错误似乎比磁盘或RAM问题更能说明背板/控制器/电缆问题。


谢谢您的帮助。我目前无法交换所有这些组件。您对我如何缩小范围或最有可能的罪魁祸首有何建议?
Dominic P

尝试对所有受影响的组件进行固件更新。这些是SATA磁盘吗?
ewwhite

会的,谢谢。我将从控制器上的固件更新开始,因为我在其他地方看到固件和驱动程序版本应该匹配(请参阅我的问题的更新3)。是的,它们都是1TB SATA磁盘,我记得我smartctl说过我正在使用的某些Seagate磁盘有可用的固件更新,因此我也将对其进行更新。
Dominic P

7

我的一般经验法则是,如果错误继续意外发生,则需要更换磁盘;否则,请执行以下操作。如果它是静态的,则可能是某些临时情况导致了错误,并且系统没有重现导致问题的条件。

一些校验和错误不一定表示驱动器机械上有任何不良情况(发生位腐烂,ZFS恰好检测到它,而其他文件系统则没有),但是如果这些错误在一小时的时间内发生了,那就是与一年来发生的情况大不相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.