6g下载网
当前位置: 主页 > 软件教程 > 云计算 >

OpenvSwitch系统架构介绍

时间: 2017-01-17 14:35 来源: 本站整理

分享到:

今天小编整理一篇OpenvSwitch系统架构介绍的文章和大家分享,希望能给大家提供帮助。

OpenvSwitch系统架构

OVS的架构分为内核空间、用户空间、配置管理层3个部分,如下图所示。内核空间包含了流表(Flow Table)和一个或多个Datapath模块,其中Datapath模块类似于网桥,主要负责对数据分组进行操作,另外内核空间中维护的流表规定了针对数据分组应该进行的操作,Datapath通过关联流表与其协同完成分组处理过程。用户空间中运行着OVS的守护进程(OpenvSwitch Daemon,vswitchd)和数据库(Open vSwitch Database,ovsdb),它们是OVS的核心功能模块,vswitchd类似于OVS的心脏,它维持着OVS的生命周期,而ovsdb就像OVS的大脑,它存储着OVS的配置信息和数据流信息,vswitchd和ovsdb协调工作确保OVS健康的运行状态。配置管理层包括ovs-dpctl、ovs-ofctl、ovs-appctl、ovs-vsctl和ovsdb-tool等,主要用于和vswitchd、ovsdb之间进行交互操作以及OVS的安装配置和部署。

OpenvSwitch系统架构介绍

OpenvSwitch的组成

(1)OVS内核空间(包含Datapath和流表)

· Datapath:主要负责实际的数据分组处理,把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。它同时与vswitchd和流表保持关联,使OVS上层可以对数据分组处理进行控制。

· 流表:流表中存储着分组处理的依据--流表项,每个Datapath 都和一个流表关联,当Datapath接收到数据之后,OVS会在流表中查找可以匹配的flow(流表项),执行对应的操作,例如转发数据到另外的端口。同时还与vswitchd进程上下关联,是OVS上层对底层分组处理过程进行管理的接口。

(2)OVS用户空间(vswitchd和ovsdb)

· vswitchd:守护程序,实现交换功能,和Linux内核模块一起,实现基于流的交换flow-based switching,负责检索和更新数据库信息,并根据数据库中的配置信息维护和管理OVS。Vswitchd可以配置一些列特性:基于MAC地址学习的二层交换、支持IEEE 802.1Q VLAN 、端口镜像、sFlow监测、连接OpenFlow控制器等。Vswitchd也可以通过Netlink协议与内核模块Datapath直接通信。

· ovsdb-server:轻量级的数据库服务,主要保存了整个OVS的配置信息和数据流信息,ovsdb-server直接管理ovsdb,与ovsdb通信进行数据库的增删改查操作。Vswitchd可以通过socket与ovsdb-server进行通信,用于查询和更新数据库信息,或者在检索数据库信息后做出首个数据包的转发策略。

(3)OVS管理工具

· ovs-dpctl:管理OVS Datapath的实用工具,用来配置交换机内核模块,控制数据包的转发规则。可以创建、修改和删除Datapath。

· ovs-vsctl:查询和配置OVS数据库的实用工具,用于查询或修改vswitchd的配置信息,该工具会直接更新ovsdb数据库。

· ovs-appctl:主要是向OVS守护进程发送命令的工具,一般用不上。

· ovs-ofctl:用来控制OVS作为OpenFlow交换机工作时的各种参数,它是OVS提供的命令行工具。在没有配置 OpenFlow控制器的模式下,用户可以使用 ovs-ofctl命令通过 OpenFlow协议去连接 OVS,创建、修改或删除 OVS中的流表项,并对 OVS的运行状况进行动态监控。

· ovs-pki:OpenFlow交换机创建和管理公钥框架。

· ovs-tcpundump:tcpdump的补丁,解析 OpenFlow的消息。

OpenvSwitch系统架构介绍的文章和大家分享结束,感谢阅读!

(责任编辑:大卫)

分享到:

------分隔线----------------------------