概括
自从我安装了一些新硬件后,我就一直在系统日志中收到这些神秘的消息,我无法弄清楚问题是什么,是否严重,或者如何处理。
它们来自新的 SATA HBA,并且遵循一定的模式。我会在 5-30 秒后收到几条第一条消息,然后收到几条第二条消息。它们以 blob 的形式出现,并且都在同一秒内记录下来,每个 blob 的确切数量在 2 到 35 之间变化。条目出现间隔可能是几分钟或几小时。
两条消息的示例:
Jul 13 06:06:23 durandal kernel: [366918.435596] mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303)
Jul 13 06:06:28 durandal kernel: [366923.145524] mpt2sas0: log_info(0x31110d01): originator(PL), code(0x11), sub_code(0x0d01)
它始终是 0x31120303,后面跟着 0x31110d01。
mpt2sas 是我正在使用的 SATA 主机总线适配器的驱动程序,但错误内容过于隐晦。它没有告诉我问题是什么,与哪个磁盘或端口有关,或者问题有多严重。
硬件
超微X9SCL和至强 E3-1220和8GB RAM。
基于 LSI SAS2008 的 SupermicroAOC-USAS2-L8I连接到 Supermicro 的 SAS/SATA HBACSE-M35T-1B磁盘托盘组。它具有三个 Western DigitalWD30EZRX和两台 SegateST3000DM001插入它。所有 3TB 驱动器(实际上扇区数完全相同)。未使用端口扩展器。
HBA、磁盘托架和 4 个驱动器都是新的。其中一个 WD30EZRX 已经使用了几个月,没有出现任何问题。之前已将其连接到集成的 Intel SATA 控制器,使用这个新设置将其移入驱动器托架。
遇到了 HBA 需要频繁重置的问题,性能非常糟糕。将固件/BIOS 更新为“Phase 12”,这是 Supermicro 提供的最新版本,并将类型更改为 IT(即直通,从集成 RAID 的 IR 更改为直通,因为我打算使用所有软件 RAID):2008IT12.FW。该更新解决了所有早期问题,直到后来我才开始收到上述消息(见下文)。
我添加的前四个磁盘都在第一个 SFF-8087 端口上(分成 4 条 SATA 电缆)。我添加的最新磁盘在另一个端口上,如果这很重要的话。
系统上唯一的其他磁盘包含操作系统,并且是插入集成 SATA 控制器的旧款 Intel 80GB SSD。
软件
Ubuntu 11.10 (oneiric)。Linux 3.0.0-14-server x86_64。使用操作系统自带的 mpt2sas 驱动程序。
尝试使用 Linux md 用这五个磁盘构建 RAID6 阵列。从 3 个磁盘组成的退化阵列开始,两个 Segate 和一个新的 WD 驱动器之一。这个过程很快,进展也很顺利,在我进行固件更新后,日志中没有任何消息。同时,我仍然在同一控制器的端口 0 上使用旧的 WD 磁盘。
将另一个新的 WD 磁盘添加到阵列中。重建已开始,我现在会定期在系统日志中收到这些消息。我不确定将磁盘添加到阵列需要多长时间,但估计时间(cat /proc/mdstat)范围从数千分钟到数万分钟,比前 3 个磁盘花费的时间长得多。我确实知道 WD 磁盘要慢得多;我买了不同的型号以减少多个磁盘发生故障的可能性,这两个是最便宜的 3TB 型号。
笔记
SMART 未报告任何磁盘问题。任何磁盘均未记录任何错误,并且任何故障统计信息均未接近阈值。
在我添加最后一个磁盘后,记录的消息才开始出现,这表明其中一个磁盘可能有问题,但我没有其他迹象表明这一点。
我确实找到了头文件这似乎与该驱动程序的日志消息相对应。第一条消息似乎是未列出的“子代码”0303 的中止(代码 12)。第二条消息是重置(代码 11),原因也不清楚。如果我能确定 0303 和 0d01 的含义,那将非常有帮助。
我知道 5 磁盘 RAID6 中的 4 个磁盘是不完整的阵列。我计划在阵列完成第 4 个磁盘的集成后将旧磁盘的内容复制到阵列中,然后将旧磁盘也添加到阵列中。
答案1
最有可能的情况是磁盘之间以及包括 sas raid 控制器在内的某个地方存在硬件问题。我建议尝试:
- 运行供应商提供的任何诊断工具(如果可用)
- 检查/重新安装/更换电缆
- 去掉硬件组件并换掉连接磁盘到你的 raid 控制器的链中的硬件,包括控制器本身(即,对于你来说,尝试主板集成 raid 以外的其他东西)。
我有两个相同的 Dell PowerEdge R515 中的一个,它们发出了非常相似的消息(日志定期填充 mpt2sas0 消息,尽管我没有确切的数字代码)。Dell 自己的可启动诊断程序将这些消息识别为“硬件错误”,更换 RAID sas 背板解决了该问题。
当我进行调查时,我找不到有关各种 mpt2sas0 错误代码含义的全面资源。我怀疑它们甚至可能是特定于硬件供应商的(需要更了解 SAS 的人来确认或否认这一点)。因此,您的错误代码可能意味着完全不同的东西,但如果 SMART 是干净的,很难想象 mpt2sas0 报告错误代码的其他好理由。
这些错误可能非常严重。我的 R515 在使用 12 磁盘 Ubuntu Linux 软件 raid 6 的情况下,似乎可以正常工作一周,但后来突然将所有 12 个磁盘弹出阵列,因为它们已损坏(!)
在我的情况下,所有磁盘的 SMART 都完全干净。一个好的检查是进行智能自我诊断测试:smartctl -t long /dev/sdX
,然后在大约一天后使用检查结果smartctl -l selftest /dev/sdX
。如果一切正常,测试应该显示Completed
并且LBA_first_err
列应该为空。
答案2
答案3
这意味着磁盘上出现了一些错误,它是 LSI 的 SAS 控制器中的 SATA 磁盘,并且由于该错误,所有未完成的请求都被中止。
在大多数情况下,磁盘上存在中等错误,这是导致此错误的诱因。此错误本身并不意味着中等错误,您需要检查日志以获取其他提示,以找出原始磁盘故障的根源。
稍微详细一点的版本如下:http://blog.disksurvey.org/blog/2014/03/27/sata-handling-of-medium-errors-log-info-0x0x31080000/