众所周知,OpenvSwitch 以其丰富的功能和不错的性能,已经成为 Openstack 部署中最受欢迎的虚拟交换机。由于 Openstack Neutron 的架构引入了一些性能问题,比如 neutron-server 要与非常多的 agent 通信,RPC 就是一个性能瓶颈,还有 neutron 里面用到非常多的 namespace,namespace 资源有限而且系统开销比较大,这也是一个性能瓶颈。OVS 社区觉得从长远来看,Neutron 应该让一个其它的项目来做虚拟网络的控制平面,Neutron 只需要提供 API 的处理,于是 OVS 社区推出了 OVN(Open Virtual Switch)这个项目,OVN 是 OVS 的控制平面,它给 OVS 增加了对虚拟网络的原生支持,大大提高了 OVS 在实际应用环境中的性能和规模。
OVN 的功能
虽然 OVN 是 OVS 社区在 2015 年 1 月份才宣布的一个子项目,但是到目前为止 OVN 已经支持了很多功能,
- Logical switches:逻辑交换机,用来做二层转发。
- L2/L3/L4 ACLs:二到四层的 ACL,可以根据报文的 MAC 地址,IP 地址,端口号来做访问控制。
- Logical routers:逻辑路由器,分布式的,用来做三层转发。
- Multiple tunnel overlays:支持多种隧道封装技术,有 Geneve,STT 和 VXLAN。
- TOR switch or software logical switch gateways:支持使用硬件 TOR sw