今天,我的一台服务器开始向我发送有关非最佳 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 吗?