邹洪

【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启
Dell服务器频繁重启、IBM服务器频繁重启、惠普服务器频繁重启、R410R420R710R720报错现象:线上有...
扫描右侧二维码阅读全文
17
2019/06

【工作】解决ACPI Error: No handler for Region错误导致linux系统自动重启

Dell服务器频繁重启、IBM服务器频繁重启、惠普服务器频繁重启、R410R420R710R720

报错现象:

线上有台服务器运行了了大概半年多,突然收到报警服务器重启了,可以确定不是人为操作导致的重启,以下是排查过程。
服务器品牌:Dell PowerEdge R720
系统版本:CentOS Linux release 7.1.1503
内核版本:3.10.0-229.el7.x86_64
查看messages日志报错信息如下:
# tail -1000 /var/log/messages | grep -i error
20170824173356
查看dmesg报错信息如下:
# dmesg | grep -E "error|Error|ERROR|fail|Fail|FAIL"
20170824173452

报错原因:

由于BIOS中开启了中断重映射,在ERST(芯片集中的错误校验表)校验时发生错误,导致高级配置电源管理模块无法处理IPMI驱动请求,预存数据到内存发生错误,造成kernel寻找了空指针。
网上说这是kernel的一个bug,它不会立即造成重启,会在服务器200多天内没重启过就会自动重启,但是我觉得这种说法不准确,线上有台服务器和这台无论是硬件品牌型号,系统版本、内核版本都是一样的,但是运行了440多天了也没有重启过,目前不知道具体是什么原因会诱发这个问题。
发现有问题的内核版本:
Centos 6:2.6.32-220.el6.x86_64 、2.6.32-431.el6.x86_64 、2.6.32-71.el6.x86_64
Centos 7:3.10.0-229.el7.x86_64

解决方法:

方法一:

# vi /boot/grub/grub.conf
在kernel一行最后加上添加 intremap=off 或者 intremap=no_x2apic_optout
然后重启服务器即可。
参数解释:
intremap={on,off,nosid,no_x2apic_optout}
on:(默认值)开启中断重映射,BIOS中默认开启
off:关闭中断重映射
nosid:重映射时不对SID(Source ID)做检查
no_x2apic_optout:无视BIOS的设置,强制禁用x2APIC特性,主要用于解决某些对x2APIC支持有缺陷的BIOS导致的故障

方法二:(此方法会导致多核变单核,生成环境不要使用)

# vi /boot/grub/grub.conf
在kernel一行最后加上acpi=off noacip,关闭高级电源管理接口如下:
kernel ... acpi=off noacip
然后重启服务器即可。

方法三:更新系统内核

# yum install kernel
我升级到3.10.0-514.26.2.el7内核后,问题解决。关于内核升级的方法,请参看本站文章:
参考文章:
http://www.mamicode.com/info-detail-1724724.html
http://www.bubuko.com/infodetail-1781180.html
Last modification:November 7th, 2019 at 03:28 am
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment