首页 » ORACLE 9i-23c » Troubleshooting CRS start fail when Private IP using 169.254.*.* due to HAIP drop route table

Troubleshooting CRS start fail when Private IP using 169.254.*.* due to HAIP drop route table

Oracle RAC众所周知通常需要PUBLIC和Interconnect network两个网络,当然从12c使用FLEX ASM可以增加ASM network,  而interconnect network也就是private network在11g r2后可以配置多个网卡,引入了haip实现了private networkIP的HA, 以169.254.*.*的随机IP绑定在private network网卡上。169.254因为是一个保留网段, ORACLE RAC在获取HAIP时有判断是否已使用防止IP冲突,但是最近一有个客户RAC一个节点CRASH后,private network无法互相ping通,结果发现private network安装初期使用的也是169.254.9.*。

观察主机上route table的变化, 环境 ORACLE RAC 11.2.0.4 on linux 6

操作系统启动,未启动CRS时

[root@rac1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.110.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.9.0     0.0.0.0         255.255.255.0     U     0      0        0 eth1
0.0.0.0         192.168.110.1   0.0.0.0         UG    0      0        0 eth0

启动CRS后

[root@rac1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.110.0   0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth1
0.0.0.0         192.168.110.1   0.0.0.0         UG    0      0        0 eth0

Note:
原169.254.9.0(for Private IP) 会自动和169.254.0.0(for HAIP)合并,即使手动填加route table

当手动关闭一个节点的CRS后

[root@rac2 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.110.0   *               255.255.255.0   U     0      0        0 eth0
default         192.168.110.1   0.0.0.0         UG    0      0        0 eth0

Note:
原169.254的priate network 路由表也会补清理

从日志中也能发现

ohasd orarootagent log shows haip agent removing HAIP route. 
"Removed unused HAIP route 169.254.0.0 / 255.255...."

是CRS触发清理掉了HAIP 所用的route table, 但未曾想到private ip也使用的该route table。 但未记录存活节点的route table,不确认会何node2 OS 重启后集群依旧无法正常。 彻底解决这问题是改掉private network不使用169.254.如使用192.168.10.*

 oifcfg setif -global bond1/'192.168.10.0':cluster_interconnect --只在存活的一个节点做就可以
 crsctl stop crs
 所有实例 OS层 改网卡ip
 crsctl start crs
 oifcfg delif -global bond1/'169.254.9.0'  -- 只在存活的一个节点做就可以
打赏

对不起,这篇文章暂时关闭评论。