首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZFS校验和错误,何时更换驱动器?

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

Server Fault用户
提问于 2016-07-11 18:12:33
回答 2查看 14.7K关注 0票数 15

我对ZFS相当陌生,我有一个带有8个驱动器的简单镜像存储池设置。经过几个星期的运行,一个驱动器似乎产生了很多错误,所以我更换了它。

几个星期过去了,现在我看到池周围出现了一些小错误(参见下面的zpool status输出)。我该担心这个吗?如何确定错误是否指示需要更换驱动器?

代码语言:javascript
复制
# 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帮助我“确定设备是否需要更换.”但我不知道该怎么做。我确实读过那篇参考的文章,这篇文章很有帮助,但不完全是决定性的。

我已经查看了受影响驱动器的智能测试结果,没有什么是跳出我的(所有测试都完成了没有错误),但我也可以发布智能数据,如果这将是有帮助的。

更新:在准备重新启动到Memtest86+时,我注意到控制台上有很多错误。我通常都会进去,所以我以前没见过他们。我不知道我应该检查哪个日志,但是整个屏幕上都是这样的错误(不是我的错误行,我只是从另一个论坛复制了这个错误):

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

从谷歌的一些人看来,这个错误似乎表明了一个糟糕的驱动器,但我很难相信他们都是这样一次失败。关于从这里到哪里去的想法?

更新2:我偶然发现了这个ZOL问题,它似乎与我的问题有关。和OP一样,我使用hdparm来缩小我的驱动器,我也看到了类似的ZFS校验和错误和blk_update_request错误。我的机器仍在运行Memtest,因此目前无法检查内核或ZFS版本,但这看起来至少是一种可能性。我还看到了这个令人沮丧的相似问题。有人知道ZFS和旋转驱动器的问题吗?

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

代码语言:javascript
复制
# 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控制器的固件后注意到了它们。我会稍等一下,看看固件更新是否解决了这个问题,但同时这里有一些错误。我不太确定他们是什么意思。

代码语言:javascript
复制
[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:在一些论坛上看到Update NSC800案例中的其他人与提供的提升管有问题后,我更换了PCI冒口。对校验和错误没有影响。我一直在推迟HDD固件更新,因为这个过程是如此痛苦,但我想是时候吸取它,并使一个可引导的DOS闪存盘。

更新7:我更新了三个希捷驱动器的固件。其他驱动器要么没有固件更新可用,要么我无法得到它(西部数字告诉我,没有固件更新我的驱动器)。第一次擦洗后没有出现错误,但在我说这解决了问题之前,我至少要给它一到两个星期。在我看来,三个驱动器中的固件不太可能像这样影响整个池。

更新8:校验和错误回来了,就像以前一样。我可能会查看一个固件更新的主板,但在这一点上,我是在一个困惑。更换剩余的物理组件(控制器、背板、电缆)将是困难/昂贵的,我只是不能百分之百地确定我的设置没有问题(ZFS + Linux + LUKS +旋转空闲驱动器)。任何其他想法都是受欢迎的。

更新9:仍在试图追踪这一个。我偶然发现了这个问题,它与我的情况有些相似之处。因此,我使用ashift=12重新构建了zpool,看它是否能解决这个问题(没有运气)。然后,我咬紧牙关,买了一个新的控制器。我刚安装了一张超微量AOC-SAS2LP-MV8 HBA卡。我会给它一两个星期看看这是否解决了问题。

更新10:只是为了结束这一切。自从新的HBA卡出现以来已经有两个星期了,尽管风险很大,但从那以后我就没有出现校验和错误了。非常感谢所有帮助我解决这个问题的人。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-07-14 05:35:56

跨多个驱动器的这些错误似乎比磁盘或RAM问题更多地表明了背板/控制器/布线问题。

票数 8
EN

Server Fault用户

发布于 2016-07-11 18:26:29

我一般的经验法则是,如果错误继续意外上升,那么磁盘需要更换;如果磁盘是静态的,可能存在一些导致错误的瞬态条件,而系统没有再现导致问题的条件。

一些校验和错误并不一定表示驱动器有什么坏的地方(bit rot发生了,ZFS只是碰巧检测到它,而其他文件系统却没有),但是如果这些错误发生在一个小时内,那么情况就与一年中发生的情况大不相同。

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/789194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档