按照建议的步骤操作后,仍然出现 aacraid:主机适配器中止请求错误

按照建议的步骤操作后,仍然出现 aacraid:主机适配器中止请求错误

我在使用新的 Adaptec RAID 控制器时,在高 I/O 下遇到了臭名昭著的 aacraid:主机适配器中止请求错误。我读过几个论坛,甚至自适应技术,将 /sys/block/sdX/device/timeout 值设置为 45 将解决此问题。但是,我正在运行 Ubuntu Server 12.04,默认情况下该值已为 45。我还尝试了下一个建议,即将主板的 bios 更新到最新版本,我这样做了。

我不确定是否有其他人在采取这些步骤之前遇到过这个“aacraid:主机适配器中止请求”错误。

这是我在系统日志中看到的内容:

kernel: [ 5493.523282] aacraid: Host adapter abort request (4,0,0,0)
Jan  6 20:29:15 server kernel: [ 5493.523309] aacraid: Host adapter abort request (4,0,0,0)
Jan  6 20:29:15 server kernel: [ 5493.523375] aacraid: Host adapter reset request. SCSI hang ?

这是我的 uname -a

Linux server 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

谢谢大家,

吉姆

答案1

如果您还没有解决这个问题,我最近也遇到了同样的问题,随着 IO 的增加,这个问题迅速升级为每 5 分钟阵列挂起几分钟。Ubuntu 默认使用 CFQ 调度程序,它不是硬件 RAID 的最佳选择。使用以下命令将调度程序切换为 noop:

echo noop > /sys/block/<blockdevice>/queue/scheduler

就我个人而言,我只能使用旧内核,但有人告诉我升级到最新的 aacraid 驱动程序应该可以解决这个问题 - 虽然无法验证。但即便如此,还是切换到 noop。由于 sysfs 不是永久的,因此您可能需要设置调度程序/etc/rc.local或使用elevator=启动参数。

我会注意其他内核参数以及 Ubuntu 上的设置对于大多数常见硬件来说都是合理的默认值,但大多数时候服务器都需要特别注意,无论您使用什么发行版。

答案2

如果您的 Adaptec RAID 控制器有自己的固件/BIOS,您可能需要更新它。我们在高 I/O 期间遇到了问题,并且也得到了“aacraid:主机适配器中止请求”,并且看到了比我们当前的固件版本更新的固件版本,上面写着“修复了固件在高 I/O 压力期间可能挂起的问题”。http://download.adaptec.com/pdfs/readme/relnotes_arc_fw-b18937_asm-18837.pdf

上述发行说明列出了以下 Adaptec 型号:2045、2405、2405Q、2805、5085、5405、5405Z、5445、5445Z、5805、5805Q、5805Z、5805ZQ、51245、51645、52445)。

我们还得到了如下日志行:

sd 0:0:0:0: timing out command, waited 360s

Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT,SUGGEST_OK

在网上搜索其他人是否遇到类似问题时,我们发现另一系列的卡已通过固件修复了以下可能相关的问题:

以上两种适用于 Adaptec 型号 7805、7805Q、78165、71605E、71605、71605Q、71685、72405、8805、8885、8885Q 和 81605ZQ。

相关内容