暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

记录一次linux多网卡模拟multipath出现的问题

原创 hzdba 2023-03-31
523

一、记录一次linux多网卡模拟multipath出现的问题

1、环境、问题情况描述
oel6+oracle 11.2.0.4RAC+openfile共享存储,在部署rac的时候用双网卡模拟多路径的情况分别是20.20.20.0和30.30.30.0网段。rac部署过程没有问题,在运行一段时间后发现rac总有一个节点会出现识别不到multipath磁盘的情况,同时执行multipath -r出现如下信息。
[root@rac2 ~]# multipath -r
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
Mar 31 13:41:58 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)
2、原因以及解决
Linux默认开启了反向路由检查导致的,
所谓反向路由校验,就是在一个网卡收到数据包后,把源地址和目标地址对调后查找路由出口,从而得到反身后路由出口。然后根据反向路由出口进行过滤。
rp_filter (Reverse Path Filtering)参数定义了网卡对接收到的数据包进行反向路由验证的规则。他有三个值,0、1、2,具体含意如下:

    0:关闭反向路由校验
    1:开启严格的反向路由校验。对每个进来的数据包,校验其反向路由是否是最佳路由。如果反向路由不是最佳路由,则直接丢弃该数据包。
    2:开启松散的反向路由校验。对每个进来的数据包,校验其源地址是否可达,即反向路由是否能通(通过任意网口),如果反向路径不通,则直接丢弃该数据包。。

解决办法:(我这里针对存储网络进行了设置)
net.ipv4.conf.eth1.rp_filter=0
net.ipv4.conf.eth2.rp_filter=0
net.ipv4.conf.eth3.rp_filter=0
重新加载多路径后存储磁盘可以正常看到的
multipath -r
multipath -ll
3、总结
问题总结我当时发现应该是在linux的参数上(后续我再观察一下看看),事实上在生产环境也很少遇到这个情况,一般生产环境都是光纤实现多路径,而生产环境唯一有可能遇到的情况是RAC环境中私网采用多网卡的情况下需要注意该参数的设置,而实际上在oracle的官方文档部署其实也给出过该情况的设置,说明自己的基础知识还是不够,还是要沉下心来好好读一下文档,把自己的基础知识打的更牢固点。
官方文档连接:
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/multiple-private-interconnects-and-oracle-linux.html#GUID-B9508AD5-AFD6-4D34-9DA9-773D44FD43A0

![DB41A3130D2C443e8D65C56CF030A3A7.png](https://oss-emcsprod-public.modb.pro/image/editor/20230331-7e159816-68a4-42fa-a723-84a84b96e17c.png)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论