摘要
自从我安装了一些新的硬件以来,我一直在syslog中得到这些神秘的消息,但是我无法弄清楚问题出在哪里,如果严重的话,或者要怎么做。
它们来自新的SATA HBA,并且遵循一种模式。5-30秒后,我将收到第一条消息中的几条,随后第二条消息中的几条。它们以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主机总线适配器的驱动程序,但是错误内容过于含糊。它并没有告诉我问题出在哪里,它在使用哪个磁盘或端口,或者它有多严重。
硬件
具有Xeon E3-1220和8GB RAM的Supermicro X9SCL。
基于LSI SAS2008的Supermicro AOC-USAS2-L8I SAS / SATA HBA连接到Supermicro CSE-M35T-1B磁盘托盘组。它具有插入的三个Western Digital WD30EZRX和两个Segate ST3000DM001。所有3TB驱动器(实际上完全相同的扇区数)。没有使用端口扩展器。
HBA,磁盘托架和四个驱动器是新的。其中一台WD30EZRXes已投入使用数月之久,没有任何问题。之前已将其连接至集成的Intel SATA控制器,然后使用此新设置将其移至驱动器托架中。
HBA出现问题,需要频繁重置并获得真正的糟糕性能。将固件/ BIOS更新为“阶段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-服务器x86_64。使用操作系统随附的mpt2sas驱动程序。
尝试使用具有这五个磁盘的Linux md构建RAID6阵列。从3个磁盘的退化阵列开始,两个是Segates和一个新的WD驱动器。这非常快并且运行得很好,在执行固件更新后,日志中没有消息。同时,我仍在同一控制器的端口0上使用旧的WD磁盘。
将另一个新的WD磁盘添加到阵列。重建开始了,现在我定期在syslog中获取这些消息。我不确定将磁盘添加到阵列需要多长时间,但是估计时间(cat / proc / mdstat)从数千到数万分钟不等,比前三个磁盘要花费的时间长得多。我确实知道WD磁盘要慢得多。我有不同的型号来减少发生多个磁盘故障的机会,而那是两个最便宜的3TB型号。
笔记
SMART不会报告任何磁盘上的任何问题。任何磁盘上都没有记录的错误,并且任何故障统计信息都没有接近阈值。
在我添加了最后一个磁盘之后,才开始显示记录的消息,这表明可能是有问题,但是我没有其他指向该问题的信息。
我确实找到了一个似乎与此驱动程序的日志记录消息相对应的头文件。第一条消息似乎是未列出的“子代码” 0303的中止(代码12)。第二条消息是重置(代码11),原因也不清楚。如果我可以确定0303和0d01的含义,那将非常有帮助。
我知道5磁盘RAID6中的4磁盘是不完整的阵列。我计划在完成第四个磁盘的集成后将旧磁盘的内容复制到阵列,然后将旧磁盘也添加到阵列。