ipmi配置错误不会直接导致oracle 11g rac节点硬重启,但若启用ipmi-kill且账户/权限异常,可能在cssd驱逐流程中被误触发,成为最终主机强制重启的执行通道;其本质是集群驱逐失败后fallback至硬件级操作,根源仍是私网心跳超时、gipc中断等底层故障。

IPMI配置错误不会直接导致Oracle 11g RAC节点硬重启,但若配置不当(比如启用IPMI-KILL且账户/权限异常),它可能在CSSD驱逐流程中被误触发,成为最终主机断电或重启的执行通道——这不是IPMI本身出问题,而是它被集群误调用后无法完成优雅终止,被迫 fallback 到硬件级强制重启。
为什么IPMI会在RAC节点驱逐中被调用
当ocssd进程检测到严重故障(如私网心跳超时、磁盘心跳丢失、GIPC连接中断)时,会发起“node kill”流程。若配置了IPMI管理口,且ipmi.killer参数启用、IPMI用户存在且有admin权限,CRS会尝试通过IPMI发送硬关机指令;若该指令因认证失败、网络不通或超时未响应,系统会等待至超时阈值(默认约90秒),然后由cssmonit或oprocd触发本地panic式重启。
- 检查是否启用了IPMI killer:
grep -i ipmi /u01/app/11.2.0/grid/crs/install/crsconfig_params,看是否有IPMI_KILLER=1 - 确认IPMI配置文件存在:
/etc/oracle/scls_scr/<node_name>/root/ipmi.conf</node_name>,内容应含IPMI_USER、IPMI_PASSWORD、IPMI_HOST - 验证IPMI连通性不能只靠
ping:需用ipmitool -I lanplus -H <code>IPMI_HOST-UIPMI_USER-PIPMI_PASSWORDchassis status实测
ocssd.log里哪些线索说明IPMI参与了驱逐
真正关键的日志不在IPMI工具输出里,而在ocssd.log和cssmonit.log中。IPMI介入不是默认行为,一旦出现,日志会明确标记。
-
ocssd.log中搜索IPMI或killer:典型行如Node kill could not be performed. Admin or connection validation failed,说明IPMI调用失败后已放弃 -
cssmonit.log中查找reboot advisory message或oracssdagent相关段落:若紧随Member kill issued by node X is being escalated to evict node Y之后出现reboot advisory message text:oracssdagent,基本可判定IPMI fallback失败,触发了本地强制重启 - 注意时间戳对齐:
ocssd.log中gipcretTimeout或IPC timeout最早出现时间,应早于cssmonit.log中reboot advisory至少2–3分钟,这是从检测→驱逐→IPMI尝试→超时→panic的完整链路
如何安全禁用IPMI killer避免误触发
11g RAC中IPMI killer属于“可选增强”,非必需组件。生产环境若无统一硬件管理需求,建议彻底关闭,改用OS级隔离策略。
- 停集群后修改:
crsctl stop cluster -all→ 编辑所有节点的/u01/app/11.2.0/grid/crs/install/crsconfig_params,将IPMI_KILLER=1改为IPMI_KILLER=0 - 删掉IPMI配置文件:
rm -f /etc/oracle/scls_scr/*/root/ipmi.conf(注意通配符覆盖所有节点目录) - 重启集群前清空临时状态:
rm -f /var/tmp/.oracle/* /tmp/.oracle/*,否则旧配置可能被缓存 - 不重启也能临时规避:在
ocssd.bak启动参数中加-noipmi,但该参数仅限调试,不可长期使用
IPMI本身不“导致”重启,它只是集群驱逐流程末端的一个可选执行器;真正要盯住的是ocssd为何发起驱逐——私网延迟、ARP污染、HAIP冲突、子网配置错位(比如oifcfg setif填的10.10.12.0和ip addr show显示的10.10.11.0/24不一致),这些才是根源。IPMI日志只是最后一张底牌翻出来时的回声。











