OVN, the Open Virtual Network,是一个在虚拟机和容器环境中支持逻辑网络抽象的系统。OVN 补充了 OVS 的现有功能,以添加对逻辑网络抽象的本机支持,例如逻辑 L2 和 L3 覆盖和安全组。就像 OVS 一样,OVN 的设计目标是拥有可以大规模运行的生产质量实现。
OVN 包括如下组件:
- CMS(Cloud Management System),一个云管理系统,可以理解为 OVN 的最终用户(通过其用户和管理员),OVN 最初目标 CMS 是 OpenStack
- 中心位置的 OVN 数据库,可以是物理或者虚拟节点,设置可以是集群模式
- hypervisors, hypervisors 必须可以运行 Open vSwitch 并能够执行 IntegrationGuide.rst 源代码树中所述的接口。任何支持的 OVS 的 hypervisor 平台都是可以接受的。
- gateways,网关通过基于隧道的逻辑网络扩展为物理网络,使能够在隧道和物理以太网接口双向转发数据包。也允许非虚拟化机器参与逻辑网络。 网关可以是物理主机、虚拟机或支持 vtep(5) 架构的基于 ASIC 的硬件交换机。
1. OVN 架构
CMS
|
|
+-----------|-----------+
| | |
| OVN/CMS Plugin |
| | |
| | |
| OVN Northbound DB |
| | |
| | |
| ovn-northd |
| | |
+-----------|-----------+
|
|
+-------------------+
| OVN Southbound DB |
+-------------------+
|
|
+------------------+------------------+
| | |
HV 1 | | HV n |
+---------------|---------------+ . +---------------|---------------+
| | | . | | |
| ovn-controller | . | ovn-controller |
| | | | . | | | |
| | | | | | | |
| ovs-vswitchd ovsdb-server | | ovs-vswitchd ovsdb-server |
| | | |
+-------------------------------+ +-------------------------------+
- CMS,云管理系统
- OVN/CMS Plugin,到 OVN 接口的组件,对于 openstack 可以是 neutron 插件,插件的主要目的是翻译 CMS 逻辑网络配置的通知为被 OVN 可以理解的中间表示,以 CMS 特定格式存储在 CMS 配置数据库
- OVN Northbound DB,接收从 OVN/CMS 插件传递的逻辑网络配置的中间表示。数据库模式与CMS 中的概念是“impedance matched”,因此直接支持逻辑交换机,路由器,ACL等。OVN 北向数据库只有两个客户端:在它上层的 OVN/CMS 插件和在它下面的 ovn-northd
- onv-northd,连接上面的 OVN 北向数据库和下层的 OVN 南向数据库,从北向数据库涉及网络相关概念的逻辑网络配置,翻译为下层南向数据库的逻辑数据流
- OVN Southbound DB,南向数据库是系统的中心,客户端是上层的 ovn-northd 和下层运行在每一个传输节点的 ovn-controller。南向数据库包括三类数据,物理网络表 PN 指定了怎么到达 hepervisor 和其他节点, 逻辑网络表 LN,表述了涉及逻辑数据流的逻辑网络,Binding 表连接逻辑网络组件到物理网络,hypervisor 填充 PN 和 Port_Binding 表,而 ovn-northd 填充 LN 表。
其余组件在每个 hypervisor 上运行:
- ovn-controller,每个 hypervisor 和软件网关上的 OVN 代理,向北连接到 OVN 南向数据库来掌握 OVN 配置和状态来填充物理网络 PN 表,依靠 hypervisor 的状态在 Binding 表填充 Chassis 列,向南作为 OpenFlow 控制器连接到 ovs-vswitched 用于控制网络通信,连接到 ovsdb-server 来允许监控和控制 Open vSwitch 配置
- ovs-vswitchd 和 ovsdb-server 是常规的 Open vSwitch 组件
参考: