Ubuntu服务器iSCSI多路径异常及LACP与iSCSI结合适用性咨询
Ubuntu服务器iSCSI多路径异常及LACP与iSCSI结合适用性咨询
一、先解决多路径仅显示2条路径的问题
从你的描述来看,iscsiadm已经确认两块网卡都建立了会话,但multipath -ll只识别到NIC1的路径,大概率是多路径配置或链路识别环节出了问题,你可以按以下步骤排查:
- 验证iSCSI会话的完整性:执行
iscsiadm -m session -P 3,仔细查看每个会话对应的本地网卡IP,确认NIC2的IP确实有对应的iSCSI会话存在。如果NIC2的会话是空的,说明iscsi发现环节可能有隐性问题,需要重新执行iscsiadm -m discovery -t st -p <存储IP>(分别指定存储对应两块网卡的IP)。 - 检查multipath.conf的设备识别配置:Ubuntu默认的multipath配置可能没有针对NetApp LUN做优化,导致无法识别所有路径。你需要在
/etc/multipath.conf中添加NetApp的设备规则:
devices { device { vendor "NETAPP" product "LUN" path_grouping_policy multibus # 让所有路径处于活跃状态,实现负载均衡 getuid_callout "/sbin/scsi_id -g -u -s /block/%n" path_checker tur # 使用Test Unit Ready检查路径可用性 failback immediate # 故障恢复后立即切换回原路径 no_path_retry queue # 无路径时持续排队IO,避免中断 } }
修改后重启multipath服务:systemctl restart multipathd。
- 确认路由配置正确性:确保NIC2的IP段有到存储对应端口IP的路由。可以用
ip route get <存储IP>测试,看返回的出口网卡是否包含NIC2。如果没有,需要添加静态路由:ip route add <存储IP段> dev <NIC2名称>,并写入/etc/netplan/配置文件(Ubuntu用netplan的话)永久生效。 - 重新扫描路径并刷新多路径:先执行
iscsiadm -m node --rescan重新扫描iSCSI设备,然后执行multipath -F清空现有多路径映射,再执行multipath -v2重新生成路径,最后用multipath -ll查看是否识别到4条路径。
二、关于LACP与iSCSI结合的适用性
不推荐将LACP二层绑定用于iSCSI场景,原因如下:
- iSCSI与LACP的适配性不佳:iSCSI基于TCP协议,LACP的负载均衡策略(比如源IP/目的IP哈希)容易导致流量分布不均,而且当某条链路故障时,TCP会话需要重新建立,会造成短暂的IO中断;而MPIO(多路径)是在块设备层面做故障切换和负载均衡,对上层应用/数据库的影响极小,更适合存储高可用场景。
- MPIO本身已满足需求:通过multibus策略的多路径配置,已经可以让两块网卡同时承载iSCSI流量,实现冗余和负载均衡,不需要额外依赖LACP。
- 增加复杂度:使用LACP需要服务器和存储端同时配置LACP端口,一旦配置不当反而会引入新的故障点,而MPIO的配置逻辑更简单直接,针对存储设备的兼容性也更好。
总结建议
优先排查并修复多路径配置问题,让MPIO正常识别4条路径,通过multibus策略实现两块网卡同时承载流量;放弃LACP二层绑定的方案,MPIO才是iSCSI存储高可用的标准最佳实践。
备注:内容来源于stack exchange,提问作者xtremerkr
相关产品推荐
相关产品推荐

