解決ACPI Error: No handler for Region錯誤

報錯現象:

線上有臺服務器運行了了大概半年多,忽然收到報警服務器重啓了,能夠肯定不是人爲操做致使的重啓,如下是排查過程。
 
服務器品牌: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內核後,問題解決。關於內核升級的方法,請參看本站文章:
 
Centos 7/6 內核版本由3.10.0 升級至 4.12.4方法: http://www.jiagoumi.com/work/1167.html
 
參考文章:
http://www.mamicode.com/info-detail-1724724.html
http://www.bubuko.com/infodetail-1781180.html
相關文章
相關標籤/搜索