新搭 OpenStack 集群时一定会问的问题:Neutron 后端选 Linuxbridge 还是 OVS?本文是我在生产 + 测试两套集群跑了两年后的结论。

一句话答案

  • 没特殊需求 → Linuxbridge:简单、稳、排查容易
  • 要 SDN / DPDK / 复杂网络策略 → OVS:功能强、性能更好、但学习曲线陡
  • 要分布式 router / SR-IOV / vxlan offload → OVS(或者更激进的 OVN)

对比维度

维度 Linuxbridge OVS
配置复杂度 简单 中-高
性能(包量) 高(DPDK 模式更高)
功能丰富度 基础(vlan/vxlan/flat) 强(flow、qos、meter、bond)
故障排查 brctl + tcpdump,思路简单 ovs-vsctl + ovs-ofctl dump-flows,需懂 OpenFlow
社区方向 稳定但不再发力 主流,OVN 是未来

Linuxbridge 的优点(容易被低估)

  1. 就是 Linux 桥:所有 Linux 网络工具直接能用,没有抽象层
  2. 没有 OpenFlow flow 表:一个 vlan 一个 bridge,看一眼就懂
  3. tcpdump 直接抓包:哪个 tap 卡了立刻定位
  4. 重启 agent 不会断流:因为内核态的 bridge 不依赖用户态进程

我们一个生产集群跑 Linuxbridge 三年,零网络故障。

OVS 的痛点(也容易被低估)

  1. flow 表难读ovs-ofctl dump-flows br-int 出来几百条,肉眼看是看不懂的
  2. ovs-vswitchd 挂了断网:进程死了所有 VM 网络断(Linuxbridge 不会)
  3. 重启 ovs-vswitchd 抖动:百毫秒级丢包,搞过的都懂
  4. 加 flow 不刷新可能有缓存:诡异问题

但优点真的很顶:

  1. vxlan offload:网卡支持的话性能直接翻倍
  2. DVR(分布式 router):南北向流量不再走 network node
  3. 细粒度 QoS / 流量镜像 / ACL:Linuxbridge 干不了

一个非常坑的事

如果你选 OVS,强烈建议直接上 OVN,别用 ML2/OVS。原因:

  • ML2/OVS 是 Neutron agent 算 flow 推到 OVS,agent 挂了网络新建就停
  • OVN 是控制面(ovn-northd)下发到节点的 ovn-controller,去掉了 Neutron agent
  • OVN 的 logical switch / router 模型比 ML2 干净

但 OVN 切换成本不低,老集群在线切几乎不可能,规划期就要选好。

我的选型建议

场景
小规模(<50 节点)私有云、传统业务 Linuxbridge
公有云、需要租户隔离 + 高吞吐 OVS / OVN
边缘集群、单节点 all-in-one Linuxbridge
要做 SDN、Service Mesh 对接 OVN

切换的代价

我们做过 Linuxbridge → OVS 的迁移:

  • 涉及节点:35 台 compute
  • 准备时间:1 个月(包括功能测试、性能压测、回滚方案)
  • 执行时间:3 个晚上的维护窗口
  • 业务影响:每台节点的 VM 需要 live-migrate 走再切,单台约 30 分钟

不是不能切,是确实折腾。

教训一句话:网络后端是 OpenStack 最难切的东西,搭集群前花一天评估,比上线后花一个月迁移划算。

标签: none

添加新评论