megacli:无法为 IOCTL 分配内核 SGL 缓冲区

megacli:无法为 IOCTL 分配内核 SGL 缓冲区

今天,我的一台服务器开始向我发送有关非最佳 RAID 状态的警报。这些警报由 cron 运行的一个非常简单的脚本触发 - 如果它检测到并非所有磁盘都报告“最佳”状态,它就会发送警报。

现在的问题是 RAID 似乎没有问题,但megacli -LDInfo -Lall -aALL脚本调用的命令反复失败,在 syslog 中留下神秘的错误消息: megacli: Failed to alloc kernel SGL buffer for IOCTL。奇怪的是,该命令有时确实有效并返回输出,但大多数时候它只返回两个空白行和退出代码:

# megacli -LDInfo -Lall -aALL


退出代码:0x00

megacli其他参数也是如此megacli -AdpAllInfo -aAll。每次命令失败时,系统日志中都会出现上述错误。

据我所知,这种情况以前从未发生过。最近服务器上没有发生任何变化。适配器是PERC 6/i Integrated,服务器在 Debian Wheezy 下运行。

可能存在什么问题?我该从哪里开始解决这个问题?

编辑:

# megacli -v


      MegaCLI SAS RAID 管理工具版本 5.00.12 2009 年 5 月 8 日

    (c)版权所有 2009,LSI Corporation,保留所有权利。

退出代码:0x00

至少这个命令每次都能正常工作,不会触发错误 ;) 我刚刚意识到这是 megacli 的旧版本。不过,这应该不成问题,因为同样的设置已经运行了几十个月,没有问题,现在突然决定失控。

答案1

此问题有一个 Debian 错误报告,请参阅:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=703356

目前似乎没有修复方法,而且最近的内核也会出现这种情况。我个人怀疑是 Xen。您在这台主机上运行 Xen 吗?

相关内容