破译持续的 mpt2sas 系统日志消息

Chr*_*ith 15 linux sata syslog software-raid md

概括

自从我安装了一些新硬件后,我一直在 syslog 中收到这些神秘消息,但我无法弄清楚问题是什么,是否严重,或者如何处理。

它们来自新的 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)
Run Code Online (Sandbox Code Playgroud)

它始终是 0x31120303 后跟 0x31110d01。

mpt2sas 是我正在使用的 SATA 主机总线适配器的驱动程序,但错误内容过于神秘。它没有告诉我问题是什么,它是什么磁盘或端口,或者它有多严重。

硬件

Supermicro X9SCL配备至强 E3-1220和 8GB 内存。

基于 LSI SAS2008 的 Supermicro AOC-USAS2-L8I SAS/SATA HBA 连接到 Supermicro CSE-M35T-1B磁盘托盘组。它插入了三个 Western Digital WD30EZRX和两个Segate ST3000DM001。所有 3TB 驱动器(实际上完全相同的扇区数)。没有使用端口扩展器。

HBA、磁盘托盘和 4 个驱动器是新的。其中一台 WD30EZRX 已使用数月,没有任何问题。如果它之前连接到集成的英特尔 SATA 控制器,则使用此新设置将其移动到驱动器托架中。

HBA 有问题需要频繁重置并且性能非常糟糕。将固件/BIOS 更新为“Phase 12”,Supermicro 提供的最新版本,并将类型更改为 IT(即直通,从 IR 用于集成 raid,因为我将使用所有软件 raid):2008IT12.FW。该更新清除了所有早期问题,直到后来我才开始收到上述消息(见下文)。

我添加的前四个磁盘都在第一个 SFF-8087 端口上(拆分为 4 条 SATA 电缆)。如果重要的话,我添加的最新磁盘在另一个端口上。

系统上唯一的其他磁盘包含操作系统,并且是插入集成 SATA 控制器的较旧的 Intel 80GB SSD。

软件

Ubuntu 11.10 (oneiric)。Linux 3.0.0-14-服务器 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 个磁盘是不完整的阵列。我计划在完成第四个磁盘的集成后将旧磁盘的内容复制到阵列,然后将旧磁盘也添加到阵列中。

Mic*_*ton 5

哇,好难的一个。

似乎表明 0x31120303 是由于您的设备之一负载过重而导致的总线重置。它还说你不需要担心它。(哈哈,是的。)

表明这些日志消息的发生是因为您的设备之一响应命令的时间过长。说的是同样的事情,也表明它是在重负载下发生的。

虽然这不是一个完整的答案,但它希望能为您指明一个有用的方向。


小智 5

可能您最好的选择是磁盘之间的某个硬件问题,直到并包括您的 SAS RAID 控制器。我建议尝试:

  1. 运行供应商提供的任何诊断工具(如果可用)
  2. 检查/重新安装/更换电缆
  3. 去掉硬件组件并换出将磁盘连接到您的 RAID 控制器的链中的硬件,包括控制器本身(即,对您来说,尝试除主板集成的 RAID 之外的其他东西)。

我有两个相同的戴尔 PowerEdge R515 中的一个给出非常相似的消息(日志定期填充 mpt2sas0 消息,但我没有确切的数字代码)。戴尔自己的可引导诊断程序将这些诊断为“硬件错误”,更换 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列应该是空的。