基于InfiniBand的通信方法、设备及存储介质与流程

文档序号:25991571发布日期:2021-07-23 21:03阅读:174来源:国知局
本发明涉及网络通信
技术领域
:,尤其涉及基于infiniband的通信方法、设备及存储介质。
背景技术
::就物理主机的当前运行方式而言,在大多数场景下,所有的业务应用都将直接运行在物理主机上。但缺点在于,计算资源和存储资源都会变得难于增减,要么是一直不够用,要么是把过剩的资源浪费掉,难以高效地运用物理主机的现有资源。针对此现况,业界提出和设计了虚拟机技术方案,通过虚拟机技术的合理调度,在很多场景下都提高了资源利用率。但是,虚拟机技术却也存在着虚拟化管理软件自身消耗资源的问题,而且,虚拟机方案还需要在虚拟化管理软件之上运行独立的访客操作系统,这显然不是一种轻量的解决方案。针对此现况,引入了容器技术,容器技术作为一种轻量级的技术可以很好地避免了上述问题。具体而言,容器技术多通过容器引擎提供了一个在完全隔离的环境中打包和运行应用程序的能力,这个隔离的环境通常被称为容器。较之虚拟机技术,容器技术更为轻量,它可以保证程序运行环境的一致性,降低配置开发环境、生产环境的复杂度和成本,实现程序的快速部署。同时,容器引擎及容器内的应用程序均运行在操作系统上。为了进一步地理解容器技术,此处可以kubernetes平台为例,其中,kubernetes平台是一种较为流行的容器编排管理工具,其支持自动化部署、大规模可伸缩及应用容器化管理。以kubernetes平台上的pod间的通信为例,pod为容器组的一种形式,当其中的一个pod(即本端pod)访问另一个pod(即对端pod)时,通常会通过service服务进行通信。这种方式具体是通过iptables经由操作系统的tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/网际协议)协议栈实现对于对端pod的访问的,可见,随着新的应用场景的出现,容器或容器组间的通信对带宽的需求也急剧增加。其中,容器集群中的容器或容器组是指,容器集群在编排管理时的最小单位;同时,这里的容器是指在容器环境下运行独立应用的容器,而容器组是指在容器环境下运行独立应用的“逻辑主机”,运行着一个或者多个紧密耦合的应用容器。但是,传统的tcp/ip协议栈并不是针对高性能应用场景设计的,它难以提供高效的通信支持,系统调用和内存复制等操作都会带来巨大的性能开销。可见,传统的tcp/ip模式存在着通信效率低下的技术问题。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于提供基于infiniband的通信方法、设备及存储介质,旨在解决传统的tcp/ip模式通信效率低下的技术问题。为实现上述目的,本发明提供一种基于infiniband的通信方法,所述基于infiniband的通信方法包括以下步骤:对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡;设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡;基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。优选地,所述基于所述虚拟rdma网卡在各容器之间进行rdma网络传输,具体包括:在接收到第一容器发出的第一通信请求时,获取所述第一通信请求指向的虚拟rdma网卡的网络地址;根据所述网络地址发起rdma通信行为。优选地,所述对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡,具体包括:通过sr-iov将网络设备上安装的infiniband网卡设定为物理功能组件;通过所述物理功能组件虚拟出作为虚拟功能组件的虚拟rdma网卡。优选地,所述对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡之后,所述基于infiniband的通信方法还包括:对容器进行服务网格化处理。优选地,所述对容器进行服务网格化处理,具体包括:对容器所处的命名空间配置自动注入功能,以对与所述命名空间对应的容器注入网络代理组件;其中,所述网络代理组件用于接收经过所述容器的当前数据。优选地,所述基于所述虚拟rdma网卡在各容器之间进行rdma网络传输之后,所述基于infiniband的通信方法还包括:读取所述网络代理组件中的预设流量治理规则;通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作。优选地,所述读取所述网络代理组件中的预设流量治理规则之前,所述基于infiniband的通信方法还包括:配置预设流量治理规则;将所述预设流量治理规则装载至所述网络代理组件中;其中,所述预设流量治理规则包括负载均衡策略规则、限流策略规则及熔断策略规则中的至少一类。此外,为实现上述目的,本发明还提出一种网络设备,所述网络设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于infiniband的通信程序,所述基于infiniband的通信程序配置为实现如上文所述的基于infiniband的通信方法的步骤。其中,所述网络设备与infiniband网卡连接。此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于infiniband的通信程序,所述基于infiniband的通信程序被处理器执行时实现如上文所述的基于infiniband的通信方法的步骤。此外,为实现上述目的,本发明还提出一种基于infiniband的通信装置,所述基于infiniband的通信装置包括:虚拟化模块、挂载模块以及网络传输模块;虚拟化模块,用于对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡;挂载模块,用于设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡;网络传输模块,用于基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。本发明中先对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟rdma网卡;设置虚拟rdma网卡接口,并通过虚拟rdma网卡接口挂载虚拟rdma网卡;基于虚拟rdma网卡在各容器之间进行rdma网络传输。可见,本发明通过将集群容器的网络环境由传统的tcp/ip模式升级至rdma模式,各容器彼此之间可通过rdma技术进行网络传输,实现了容器/容器组间的rdma通信,解决了传统的tcp/ip模式通信效率低下的技术问题。附图说明图1是本发明实施例方案涉及的硬件运行环境的网络设备结构示意图;图2为本发明基于infiniband的通信方法第一实施例的流程示意图;图3为本发明基于infiniband的通信方法第二实施例的流程示意图;图4为本发明基于infiniband的通信方法第二实施例的网卡虚拟化后通信框架的框架示意图;图5为本发明基于infiniband的通信方法第三实施例的流程示意图;图6为本发明基于infiniband的通信方法第四实施例的流程示意图;图7为本发明基于infiniband的通信方法第四实施例的容器化服务网格结构的框架示意图;图8为本发明基于infiniband的通信方法第四实施例的流量治理规则的适用示意图;图9为本发明基于infiniband的通信装置第一实施例的结构框图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图1,图1为本发明实施例方案涉及的硬件运行环境的网络设备结构示意图。如图1所示,该网络设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display),可选用户接口1003还可以包括标准的有线接口以及无线接口,而用户接口1003的有线接口在本发明中可为通用串行总线(universalserialbus,usb)接口。网络接口1004可选的可以包括标准的有线接口以及无线接口(如wi-fi接口)。存储器1005可以是高速随机存取存储器(randomaccessmemory,ram);也可以是稳定的存储器,比如,非易失存储器(non-volatilememory),具体可为,磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。其中,该网络设备与infiniband网卡连接。本领域技术人员可以理解,图1中示出的结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于infiniband的通信程序。在图1所示的网络设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接外设;所述网络设备通过处理器1001调用存储器1005中存储的基于infiniband的通信程序,并执行以下操作:对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡;设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡;基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:在接收到第一容器发出的第一通信请求时,获取所述第一通信请求指向的虚拟rdma网卡的网络地址;根据所述网络地址发起rdma通信行为。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:通过sr-iov将网络设备上安装的infiniband网卡设定为物理功能组件;通过所述物理功能组件虚拟出作为虚拟功能组件的虚拟rdma网卡。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:对容器进行服务网格化处理。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:对容器所处的命名空间配置自动注入功能,以对与所述命名空间对应的容器注入网络代理组件;其中,所述网络代理组件用于接收经过所述容器的当前数据。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:读取所述网络代理组件中的预设流量治理规则;通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作。进一步地,处理器1001可以调用存储器1005中存储的基于infiniband的通信程序,还执行以下操作:配置预设流量治理规则;将所述预设流量治理规则装载至所述网络代理组件中;其中,所述预设流量治理规则包括负载均衡策略规则、限流策略规则及熔断策略规则中的至少一类。在本实施例中先对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟rdma网卡;设置虚拟rdma网卡接口,并通过虚拟rdma网卡接口挂载虚拟rdma网卡;基于虚拟rdma网卡在各容器之间进行rdma网络传输。可见,本实施例通过将集群容器的网络环境由传统的tcp/ip模式升级至rdma模式,各容器彼此之间可通过rdma技术进行网络传输,实现了容器/容器组间的rdma通信,解决了传统的tcp/ip模式通信效率低下的技术问题。基于上述硬件结构,提出本发明基于infiniband的通信方法的实施例。参照图2,图2为本发明基于infiniband的通信方法第一实施例的流程示意图。在第一实施例中,所述基于infiniband的通信方法包括以下步骤:步骤s10:对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡。可以理解的是,本实施例的执行主体为网络设备,且该网络设备上安装有infiniband网卡。其中,infiniband(ib),是一类支持远程直接内存访问(rdma,remotedirectmemoryaccess)技术的新一代网络协议。其中,ib是一种服务器和存储器间的互联技术,具有高速、低延迟、低cpu负载、高效率和可扩展的特性。同时,ib的关键特性之一是天然地支持rdma,ib能够让服务器和服务器之间、服务器和存储设备之间的数据传输不需要主机的cpu的参与。其中,rdma技术是一种较早应用于高性能计算领域的网络通信协议,当前已在数据中心逐渐普及。就其技术实质而言,rdma允许用户程序绕过操作系统内核,直接和网卡交互进行网络通信,从而了提供高带宽和极小时延;rdma让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理;rdma将数据从一个系统快速移动到远程系统的内存中,而不对操作系统造成任何影响。具体地,在实操上,可先在集群中的物理机即网络设备上安装ib网卡。接着,可对ib网卡进行虚拟化操作,以获得用于挂载的虚拟rdma网卡。进一步地,具体地,可通过sr-iov(singlerooti/ovirtualization)对ib网卡进行虚拟化操作。其中,sr-iov是虚拟化的一个重要功能。通过启用sr-iov这个功能,可以大大减轻宿主机的cpu负荷,提高网络性能,降低网络时延等,sr-iov最初应用在网卡上。简单来说,就是将一个物理网卡虚拟出来多个轻量化的pcie物理设备,从而可以分配给虚拟机使用。该功能可以提高性能,节省成本和耗能,简化与网络设备的适配、布线的工作。其中,pcie是一类总线标准。进一步地,ib技术作为一类新的网络技术,需要支持该技术的网卡和交换机。本实施例中的容器使用到的ib网卡可采用基于硬件的sr-iov虚拟化解决方案,sr-iov标准允许在虚拟机之间高效共享pcie设备,即高效共享快速外设组件互连设备,并且它是在硬件中实现的,可以获得能够与本机性能接近的i/o性能。步骤s20:设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡。应当理解的是,在取得虚拟rdma网卡后,可通过sr-iov为容器或容器组设置虚拟rdma网卡接口。在通过虚拟rdma网卡接口挂载虚拟rdma网卡后,就完成了系统化的搭建操作。步骤s30:基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。可以理解的是,在完成系统化的搭建操作后,处于系统应用层的各容器彼此之间就可通过rdma技术进行网络传输,提高了系统应用层的应用程序在容器与容器之间进行数据传输时的效率,从而大大提高了系统的通信效率。其中,容器环境可为kubernetes平台上的容器/容器组。同时,轻量级隔离和可移植性也降低了部署和管理云应用的复杂性,而且,rdma网络能够提供更高的吞吐量、更低的延迟和更少的cpu占用。进一步地,以一类具体场景为例,例如在高并发的微服务场景下,如果在容器云平台部署分布式训练任务,作为子任务训练节点的容器/容器组间的通信带宽需求可达10gb-100gb级,但对分布式系统而言,如何加速网络通信一直以来都是一个非常重要的问题。例如此前研究所示,将一个单机键值存储系统应用到基于客户机-服务器(client-server)模式的分布式环境中,即便使用了批量处理(batching)等优化技术,仍然会造成大幅的性能下降。同时,分布式系统依赖网络通信完成节点间的协作,因此通信开销很大程度上决定了应用程序的整体性能。因此传统的tcp/ip协议栈并不是针对高性能应用场景设计的,它难以提供高效的通信支持,系统调用和内存复制等操作都会带来巨大的性能开销。但是,本实施例给出的rdma模式可以较好地应对这一工况。本实施例中先对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟rdma网卡;设置虚拟rdma网卡接口,并通过虚拟rdma网卡接口挂载虚拟rdma网卡;基于虚拟rdma网卡在各容器之间进行rdma网络传输。可见,本实施例通过将集群容器的网络环境由传统的tcp/ip模式升级至rdma模式,各容器彼此之间可通过rdma技术进行网络传输,实现了容器/容器组间的rdma通信,解决了传统的tcp/ip模式通信效率低下的技术问题。参照图3,图3为本发明基于infiniband的通信方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于infiniband的通信方法的第二实施例。第二实施例中,所述步骤s30,具体包括:步骤s301:在接收到第一容器发出的第一通信请求时,获取所述第一通信请求指向的虚拟rdma网卡的网络地址。在具体实现中,就具体的网络传输行为而言,当各容器集群中的集群a中的第一容器欲与集群b中的第二容器进行通信时,可先获取集群b中第二容器挂载的虚拟rdma网卡的网络地址(ip)。步骤s302:根据所述网络地址发起rdma通信行为。接着,可根据集群b中第二容器的虚拟rdma网卡的ip,通过集群a中第一容器的虚拟rdma网卡与集群b中第二容器的虚拟rdma网卡之间的rdma网络,执行rdma通信行为。其中,容器可为系统应用层的容器,但也不限于此。本实施例中可在各集群中的各容器之间进行rdma网络传输,优化了传输效率。进一步地,可通过sr-iov对ib网卡进行虚拟化操作,具体地,所述对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡,具体包括:通过sr-iov将网络设备上安装的infiniband网卡设定为物理功能组件;通过所述物理功能组件虚拟出作为虚拟功能组件的虚拟rdma网卡。可以理解的是,就sr-iov而言,存在着物理功能(pf)与虚拟功能(vf)。pf,用于支持sr-iov的周边元件扩展接口(pci,pedpherdcomponentinterconnect)功能,拥有完全配置或控制pcie设备资源的能力。vf,是一种轻量级的pcie功能,与pf相关联,可以与物理功能以及同一物理功能关联的其他vf共享一个或多个物理资源。在具体实现中,物理功能组件的表述对应于pf,虚拟功能组件的表述对应于vf。可见,可先对物理机的ib网卡进行插件安装,使之成为物理功能;接着,将ib网卡虚拟出若干个虚拟网卡;然后,可在容器上挂载虚拟rdma网卡,使之可以进行rdma间的通信。进一步地,若后续采用服务网格,则可通过网络代理组件进行rdma通信行为。进一步地,在将ib网卡设变为物理功能组件时,可使用到插件,插件可为但不限于英特尔提供的sriov-cni插件。其中,sriov-cni插件的作用是,让物理机的网卡设备可以实现虚拟化,变成多个vf。进一步地,还可使用sriov-network-device-plugin组件,该组件可使容器中的pod使用到虚拟出来的vf。进一步地,可在网络设备上安装sriov-cni、sriov-network-device-plugin插件,可在网络设备上部署kubernetes集群和istio组件。进一步地,为了便于理解基于infiniband的通信方法第二实施例,此处给出描述网卡虚拟化后通信框架的框架示意图,即图4。在图4中,1个ib网卡虚拟化出n个虚拟网卡,n为正整数,例如,虚拟网卡1至3,虚拟网卡即为虚拟rdma网卡。其中,还可使用到一组vf网卡组件,该组件和对应的微服务的容器相连。参照图5,图5为本发明基于infiniband的通信方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于infiniband的通信方法的第三实施例。第三实施例中,所述步骤s10之后,所述基于infiniband的通信方法还包括:步骤s201:对容器进行服务网格化处理。可以理解的是,就网络设备所处的容器环境而言,也可记为,rdma网络环境,可对rdma网络环境进行服务网格的配置。通过服务网格化处理,具体地,通过为每个集群容器的rdma网络环境进行服务网格的配备,进而使得容器/容器组间的系统网络流量可使用rdma网络来执行rdma通信,大大地提高了系统的通信效率,进而提升了分布式系统的效率。进一步地,就服务网格化的具体实现方式而言,可先配置istio组件,通过istio组件对容器进行服务网格化。通过实现服务网格化,可将服务之间、服务与集群外部的网络通讯和安全机制从微服务的业务逻辑中解藕,作为一个与平台无关的、独立运行的程序存在,以减少开发和运维人员的工作量。此外,服务网格通常还具有更复杂的操作要求,比如,微服务间网络流量的各种治理方案,服务网格能够屏蔽分布式系统通信的复杂性,例如,负载均衡、服务发现、认证授权、监控追踪及流量控制等。服务只用关注业务逻辑,与服务真正的语言无关的,服务可以用任何语言编写,只需和服务网格通信即可,服务网格组件可以单独升级。其中,istio组件是一类微服务系统管理工具。更具体地,istio组件实现了服务网格模式,它是一个用于服务治理的开放平台,是一个与kubernetes紧密结合的适用于云原生场景的服务网格形态的用于服务治理的开放平台。通过istio的服务网格特性,使得用户能够专注微服务本身业务,而不需要去关注服务之间的管理逻辑;同时,提供了一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证及监控等功能,而不需要对服务的代码做任何改动。本实施例中考虑到当前日益增长的应用微服务的大小和复杂性,微服务网络及其之间的交互变得越来越难以理解和管理,通过对容器环境进行服务网格化处理,可以较好地应对上述状况。同时,还大大地提高了系统的通信效率,进而提升了分布式系统的效率。进一步地,所述对容器进行服务网格化处理,具体包括:对容器所处的命名空间配置自动注入功能,以对与所述命名空间对应的容器注入网络代理组件;其中,所述网络代理组件用于接收经过所述容器的当前数据。具体地,就对每个集群容器的rdma网络环境进行服务网格配置的具体操作而言,可先对集群中的容器进行服务网格化,服务网格化的容器之后所有经过容器的流量将先由网络代理组件接收,也就实现了对于系统服务部分的基础搭建工作。进一步地,更具体地,可先配置istio组件,例如,可在kubernetes集群上安装istio组件。接着,可对应用层的容器所在的命名空间(namespaces)进行自动注入的配置,具体的操作方法是对要开启自动注入的namespaces加上标签istio-injection:enabled,如此,该namespaces下所有pod都会被注入一个网络代理组件,这样就完成了系统应用层的服务网格化。其中,yaml文件代码片段如下所示,可提交该yaml文件到kubernetes集群中进行创建工作。如下所示,可见,可通过yaml文件创建该namespaces资源、应用对应的deployment、service资源,完成服务的部署。进一步地,在注入网络代理组件后,后续经过容器的流量将先由网络代理组件接收。参照图6,图6为本发明基于infiniband的通信方法第四实施例的流程示意图,基于上述图5所示的第三实施例,提出本发明基于infiniband的通信方法的第四实施例。第四实施例中,所述步骤s30之后,所述基于infiniband的通信方法还包括:步骤s40:读取网络代理组件中的预设流量治理规则。步骤s50:通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作。可以理解的是,就流量治理规则的使用环节而言,可通过网络代理组件对流量进行监听,进而进行分析和转发。更具体地,鉴于不同的业务场景所处的容器在处理业务时可能需要不同的流量治理规则,网络代理组件可根据所代理容器的业务的不同对流量的治理有不同的规则。具体可表现为,上述的预设流量治理规则。进一步地,可见,可为每个微服务所在的容器定制所需要的流量治理规则。进一步地,当系统应用层的容器之间在进行网络传输时,如果符合网络代理组件转载的治理规则,则按规则进行流量治理工作。本实施例中,通过适用治理规则可以较好地适应日益复杂的服务和不断增大的服务规模。进一步地,为了便于理解基于infiniband的通信方法第一至第四实施例,此处给出描述容器化服务网格结构的框架示意图,即图7。在图7中,以集群a与集群b为例,每个集群中虚拟化出虚拟网卡1至4,虚拟网卡即为虚拟rdma网卡。可见,不同集群中的虚拟网卡之间可进行rdma通信,即,容器/容器组通过各自的rdma网卡接入rdma网络。同时,可分别对两组容器集群对应的物理机上部署好rdma网络,负责系统的网络传输环节,主要处理微服务之间的流量传输工作。进一步地,若通过升级的方式,则需重新配置容器集群上运行时的网络环境,使其通信时使用rdma网络通信。进一步地,当集群a中部署的应用a负责调用和传输数据给集群b中的应用b时,容器/容器组先分配获得rdma网络ip以及通信涉及的其他容器/容器组分配获得的rdma网络ip,接着,微服务所在的容器通过提供的rdma网络进行服务调用。进一步地,网络代理和控制中枢组件用于实现服务的管理,支持负载均衡、熔断及限流。更具体地,系统应用层中至少包含两套容器/容器组集群,并分别部署好应用组件,主要适用于处理容器集群的管理和系统的主要业务所需资源的调度,不负责任何的网络设置以及流量治理服务的配置,同时,可以是已经存在的微服务组件。进一步地,所述读取所述网络代理组件中的预设流量治理规则之前,所述基于infiniband的通信方法还包括:配置预设流量治理规则;将所述预设流量治理规则装载至所述网络代理组件中;其中,所述预设流量治理规则包括负载均衡策略规则、限流策略规则及熔断策略规则中的至少一类。可以理解的是,就流量治理规则的装载环节而言,可定制治理规则,并将定制规则装载至网络代理组件中。接着,通过网络代理组件可对系统应用层的流量进行分析和转发。具体地,可通过配置文件的方式在kubernetes集群中创建预设流量治理规则,如此应用程序就感知不到网络代理组件,也不会和治理规则之间有任何的联系。同时,网络代理组件代理了应用程序的流量,执行负载均衡、限流和熔断动作。此外,新的系统在使用rdma的同时是需要重新设计系统的治理方案的,在不需要对服务的代码做任何改动的同时用最简单的方式来为已部署的服务建立网络。同时,该网络具有负载均衡、服务间认证及监控等功能。进一步地,就流量治理规则的具体类型而言,其一,可在网络代理组件中装载负载均衡策略规则。相应地,所述通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作,具体包括:通过负载均衡策略规则确定目标负载均衡算法,根据目标负载均衡算法对网络代理组件接收的当前数据进行负载均衡操作。具体地,可修改对应应用的yaml文件更新副本的个数为2,分别进行版本1规则和版本2规则的注解,用以标识版本1部署和版本2部署,并创建对应的virtualservice和destinationrule资源。接着,可设置destinationrule的spec.trafficpolicy.loadbalance.simple字段,来选择合适的负载均衡算法。例如,可对创建了两个工作负载的服务配置轮询调度(round_robin)算法,这样经过该服务的流量将会被平均地分配到版本1和版本2上。其中,yaml文件代码片段如下所示,如此便可根据yaml文件的要求在kubernetes集群中创建对应的virtualservice和destinationrule对象。virtualservice:其中设置v1的副本数为2destinationrule:对v1版本进行负载均衡策略配置其二,可在网络代理组件中装载限流策略规则。相应地,所述通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作,具体包括:通过限流策略规则确定目标限流策略,根据目标限流策略对网络代理组件接收的当前数据进行限流操作。例如,在请求达到限制速率时,触发目标限流策略中对应的请求丢弃操作。具体地,可在kubernetes集群中创建memquota资源,根据memquota中对应的规则,使得在请求达到限制的速率时触发限流方案。可通过yaml文件创建memquota,memquota可规定app-a服务在5秒内最多能被访问4次,该策略的效果是在5秒内刷新前台页面5次,可以看到有1次显示app-a服务不可用。其三,可在网络代理组件中装载熔断策略规则。相应地,所述通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作,具体包括:通过熔断策略规则确定目标熔断策略,根据目标熔断策略对网络代理组件接收的待处理请求进行熔断控制操作。例如,在待处理请求的数量处于预设请求数量阈值且当前连接的数量处于预设连接数量阈值时,触发目标熔断策略中对应的熔断控制操作。具体地,可在kubernetes集群中创建对应的virtualservice和destinationrule资源,根据destinationrule中对应的规则就可以触发相应的熔断机制。可通过yaml文件创建destinationrule,其中,connectionpool表示如果对服务发起超过3个http/1.1的连接并且存在5个及以上的待处理请求,就会触发熔断机制。其中,destinationrule:connectionpool表示如果对app-a服务发起超过3个http/1.1的连接并且存在5个及以上的待处理请求,outlierdetection表示每10秒扫描一次app-a服务的后端实例,在连续返回两次网关错误的实例中40%会被移出连接池两分钟。如下所示,本实施例中,通过制定与适用治理规则可以较好地适应日益复杂的服务和不断增大的服务规模。具体地,通过对各集群中的容器配备网络代理组件的流量治理规则来处理rdma通信行为,采纳的服务网格模式可使得容器/容器组间的微服务网络及其之间的交互更加容易管理。在对网络流量进行治理的同时,系统的应用只需要关注其本身的业务即可,这些不同类型的治理方法(例如,负载均衡、熔断及流量控制等)是通过服务网格化的网络代理组件来完成的,实现了服务治理与服务本身的解耦。这种特性也使得本实施例不仅适用于新的系统,旧的系统升级也可以适用。进一步地,若通过流量治理规则对容器间的流量进行对应规则的治理操作,可参见图8所示的流量治理规则的适用示意图。其中,node1与node2表示节点,即物理机,治理规则表示流量治理规则。本实施例中通过轻量级网络代理能让应用程序无感知地进行流量治理,解耦应用程序的重试、超时、监控、追踪和服务发现。此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于infiniband的通信程序,所述基于infiniband的通信程序被处理器执行时实现如下操作:对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡;设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡;基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:在接收到第一容器发出的第一通信请求时,获取所述第一通信请求指向的虚拟rdma网卡的网络地址;根据所述网络地址发起rdma通信行为。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:通过sr-iov将网络设备上安装的infiniband网卡设定为物理功能组件;通过所述物理功能组件虚拟出作为虚拟功能组件的虚拟rdma网卡。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:对容器进行服务网格化处理。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:对容器所处的命名空间配置自动注入功能,以对与所述命名空间对应的容器注入网络代理组件;其中,所述网络代理组件用于接收经过所述容器的当前数据。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:读取所述网络代理组件中的预设流量治理规则;通过所述预设流量治理规则对所述网络代理组件接收的当前数据进行流量控制操作。进一步地,所述基于infiniband的通信程序被处理器执行时还实现如下操作:配置预设流量治理规则;将所述预设流量治理规则装载至所述网络代理组件中;其中,所述预设流量治理规则包括负载均衡策略规则、限流策略规则及熔断策略规则中的至少一类。本实施例中先对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟rdma网卡;设置虚拟rdma网卡接口,并通过虚拟rdma网卡接口挂载虚拟rdma网卡;基于虚拟rdma网卡在各容器之间进行rdma网络传输。可见,本实施例通过将集群容器的网络环境由传统的tcp/ip模式升级至rdma模式,各容器彼此之间可通过rdma技术进行网络传输,实现了容器/容器组间的rdma通信,解决了传统的tcp/ip模式通信效率低下的技术问题。此外,参照图9,本发明实施例还提出一种基于infiniband的通信装置,所述基于infiniband的通信装置包括:虚拟化模块10、挂载模块20以及网络传输模块30;虚拟化模块10,用于对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟远程直接内存访问rdma网卡;挂载模块20,用于设置虚拟rdma网卡接口,并通过所述虚拟rdma网卡接口挂载所述虚拟rdma网卡;网络传输模块30,用于基于所述虚拟rdma网卡在各容器之间进行rdma网络传输。本实施例中先对网络设备上安装的infiniband网卡进行虚拟化,得到虚拟rdma网卡;设置虚拟rdma网卡接口,并通过虚拟rdma网卡接口挂载虚拟rdma网卡;基于虚拟rdma网卡在各容器之间进行rdma网络传输。可见,本实施例通过将集群容器的网络环境由传统的tcp/ip模式升级至rdma模式,各容器彼此之间可通过rdma技术进行网络传输,实现了容器/容器组间的rdma通信,解决了传统的tcp/ip模式通信效率低下的技术问题。本发明所述基于infiniband的通信装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器、ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者通信设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1