本申请涉及计算机,具体涉及一种智能网卡设备、主机设备和方法及系统。
背景技术:
1、在以太网数通(数据通信)和云计算领域,为解决传统网络发展滞后、运维成本较高等相关问题,业界提出了将数据平面和控制平面分离解耦的软件定义网络(sdn)技术。开放虚拟交换机(ovs)技术是sdn领域中一个比较重要的应用。借助ovs可以实现云网络的搭建和部署,但ovs采用纯软件方案实现,在云计算网络环境中虚拟终端个数比较多时,网络性能显著降低。为了优化网络性能,提高云网络中虚拟终端的吞吐,业界通常采用具备普通网卡功能特性和sdn功能特性的智能网卡,以实现提升网络性能的目标。
2、智能网卡的卸载功能是提高网络性能的主要手段。卸载功能主要解决三类主要问题:1)网络特性的支持力度;2)流表规则建立的灵活性和高时效性,特别在大流量情况下;3)卸载的方式和粒度。
3、根据不同的业务场景需求,现有的智能网卡装置,在网络特性的支持粒度方面千差万别,尚无统一的解决方案。在流表的构建上,通常采用ovs技术和sdn控制器结合的方案。此方案不足之处在于虽可满足灵活性需求,但流表的构建仍需要经过操作系统内核模块,无法满足高时效性需求。在卸载的方式和粒度上,网络数据仍需要经过宿主系统,无法有效提升数据吞吐性能。
技术实现思路
1、本申请提供一种智能网卡设备、主机设备和方法及系统。
2、第一方面,本申请提供一种智能网卡设备,用于作为软件定义网络sdn系统中的第一主机的附加设备,所述sdn系统还包括第二主机和sdn控制器,所述智能网卡设备包括:流表部件,被配置成存储流表;rdma部件,被配置成响应于接收到来自于所述第二主机的业务流量,将所述业务流量与所述流表进行匹配,匹配成功后将所述业务流量推送到所述第一主机的内存中;以及,响应于所述第一主机准备发送业务数据,将所述业务数据与所述流表进行匹配,匹配成功后向所述第二主机推送所述业务数据。
3、在一些可选的实施方式中,还包括:dma控制器,被配置成接收所述第一主机下发的所述流表,将所述流表写入所述流表部件,所述流表是由所述sdn控制器生成并发送到所述第一主机的或者是由用户在所述第一主机上配置的。
4、在一些可选的实施方式中,所述rdma部件,进一步被配置成:将所述业务流量与所述流表进行匹配失败后,将所述业务流量丢弃,或者,将所述业务流量转发到所述sdn控制器,以便所述sdn控制器构建接收方向的流表规则,生成或更新所述流表;以及,将所述业务数据与所述流表进行匹配失败后,放弃发送所述业务数据,或者,将所述业务数据转发到所述sdn控制器,以便所述sdn控制器构建发送方向的流表规则,生成或更新所述流表。
5、在一些可选的实施方式中,所述流表部件,进一步被配置成初始化一个默认流表,所述默认流表指示将匹配失败的数据转发至所述sdn控制器;所述rdma部件,进一步被配置成初始化传输队列和内存资源,以及和所述第二主机建立连接。
6、在一些可选的实施方式中,所述rdma部件,进一步被配置成响应于首次接收到来自于所述第二主机的业务流量,将首次接收的所述业务流量与所述默认流表进行匹配,匹配失败后将首次接收的所述业务流量转发至所述sdn控制器,以便所述sdn控制器生成所述流表。
7、在一些可选的实施方式中,所述rdma部件,进一步被配置成将所述业务流量与所述流表进行匹配且匹配成功后,申请一个空闲的rdma队列,将所述业务流量填充到所述rdma队列中,通过所述rdma队列将所述业务流量推送到所述第一主机的内存中。
8、在一些可选的实施方式中,所述rdma部件,进一步被配置成将所述业务数据与所述流表进行匹配且匹配成功后,申请一个空闲的rdma队列,将所述业务数据填充到所述rdma队列中,通过所述rdma队列向所述第二主机推送所述业务数据。
9、第二方面,本申请提供一种sdn系统数据交换方法,应用于sdn系统中的智能网卡设备,所述智能网卡设备为所述sdn系统中的第一主机的附加设备,所述sdn系统还包括第二主机和sdn控制器,所述智能网卡设备包括流表部件和rdma部件;所述方法包括:所述rdma部件响应于接收到来自于所述第二主机的业务流量,将所述业务流量与所述流表部件中存储的流表进行匹配,匹配成功后将所述业务流量推送到所述第一主机的内存中;以及,响应于所述第一主机准备发送业务数据,将所述业务数据与所述流表进行匹配,匹配成功后向所述第二主机推送所述业务数据。
10、第三方面,本申请提供一种主机设备,用于作为软件定义网络sdn系统中的第一主机且安装有智能网卡设备,所述sdn系统还包括第二主机和sdn控制器,所述主机设备包括:处理模块,被配置成对所述智能网卡设备进行初始化,以及在所述智能网卡设备的流表部件中写入流表;rdma协议栈模块,被配置成获取所述智能网卡设备的rdma部件按照所述流表推送到所述第一主机的内存中的、来自于所述第二主机的业务流量,将所述业务流量交付给所述第一主机上运行的虚拟终端;以及,当所述虚拟终端开始发送业务数据时,指令所述rdma部件从所述第一主机的内存中获取待发送的所述业务数据,按照所述流表向所述第二主机推送所述业务数据。
11、在一些可选的实施方式中,所述处理模块,进一步被配置成从所述sdn控制器获取所述流表或者根据用户的配置生成所述流表,将所述流表写入所述智能网卡设备的所述流表部件。
12、第四方面,本申请提供一种软件定义网络sdn系统,包括如第一方面按所述的智能网卡设备以及如第二方面所述的主机设备。
13、为了提升sdn网络性能,本申请提出了一种智能网卡设备、主机设备和方法及系统。本申请的智能网卡设备为硬件设备,结合openflow技术和rdma技术,采用dma控制器实现对openflow流表的快速配置访问,可以提高流表规则的有效构建率;以及,基于rdma技术实现网络数据的直接内存读写,数据交互不再经过cpu和操作系统内核模块,可以提高网络吞吐性能,扩大组网的规模。
1.一种智能网卡设备,用于作为软件定义网络sdn系统中的第一主机的附加设备,所述sdn系统还包括第二主机和sdn控制器,其特征在于,所述智能网卡设备包括:
2.根据权利要求1所述的智能网卡设备,其特征在于,还包括:
3.根据权利要求1所述的智能网卡设备,其特征在于,
4.根据权利要求1所述的智能网卡设备,其特征在于,
5.根据权利要求4所述的智能网卡设备,其特征在于,
6.根据权利要求1所述的智能网卡设备,其特征在于,
7.一种软件定义网络sdn系统数据交换方法,其特征在于,应用于sdn系统中的智能网卡设备,所述智能网卡设备为所述sdn系统中的第一主机的附加设备,所述sdn系统还包括第二主机和sdn控制器,所述智能网卡设备包括流表部件和rdma部件;
8.一种主机设备,用于作为软件定义网络sdn系统中的第一主机且安装有智能网卡设备,所述sdn系统还包括第二主机和sdn控制器,其特征在于,所述主机设备包括:
9.根据权利要求8所述的主机设备,其特征在于,
10.一种软件定义网络sdn系统,其特征在于,包括:如权利要求1所述的智能网卡设备,以及如权利要求8所述的主机设备。