Rdma设备的分配方法、计算设备及存储介质

文档序号:1937192 发布日期:2021-12-07 浏览:22次 >En<

阅读说明:本技术 Rdma设备的分配方法、计算设备及存储介质 (RDMA device allocation method, computing device and storage medium ) 是由 谭林华 张敏 杨育兵 于 2021-08-05 设计创作,主要内容包括:本申请实施例提供一种RDMA设备的分配方法、计算设备及存储介质,在本申请实施例中,接收分配请求,根据分配请求确定可用宿主机;根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备;将分配的RDMA设备配置至可用宿主机中对应的执行设备。其中,通过根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备,可实现根据配置参数来按需地分配RDMA设备。从而可以实现可按照需求进行灵活地分配,可以节省对应的设备资源,提升设备资源的使用效率。(The embodiment of the application provides an RDMA device allocation method, a computing device and a storage medium, wherein in the embodiment of the application, an allocation request is received, and an available host is determined according to the allocation request; according to the configuration parameters in the allocation request and the available hosts, allocating RDMA equipment matched with the corresponding configuration parameters; and configuring the distributed RDMA equipment to the corresponding execution equipment in the available host machine. By allocating RDMA devices matched with corresponding configuration parameters according to the configuration parameters in the allocation request and available hosts, the RDMA devices can be allocated according to the configuration parameters. Therefore, flexible allocation can be achieved according to requirements, corresponding equipment resources can be saved, and the use efficiency of the equipment resources is improved.)

RDMA设备的分配方法、计算设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种RDMA设备的分配方法、计算设备及存储介质。

背景技术

随着高性能计算、大数据分析、人工智能以及物联网等技术的飞速发展,集中式存储、分布式存储以及云数据库的普及等原因,应用服务有越来越多的数据需要从网络中获取,这对网络的交换速度和性能要求越来越高。

传统的TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)软硬件架构及应用存在着网络传输和数据处理的延迟过大、存在多次数据拷贝和中断处理、复杂的TCP/IP协议处理等问题。

在云计算环境中,为了减小网络传输和数据处理的延迟,产生了RDMA(RemoteDirect Memory Access,远程直接内存访问)设备。而如何对该类设备进行更好地分配也是非常重要的。

发明内容

本申请的多个方面提供一种RDMA设备的分配方法、计算设备及存储介质,用以能够按需进行灵活地分配RDMA设备。

本申请实施例提供一种RDMA设备的分配方法,包括:接收分配请求,根据所述分配请求确定可用宿主机;根据所述分配请求中的配置参数以及所述可用宿主机,分配与对应配置参数匹配的RDMA设备;将所述分配的RDMA设备配置至所述可用宿主机中对应的执行设备。

本申请实施例还提供一种计算设备,包括:存储器、处理器;所述存储器,用于存储计算机程序;所述处理器,执行所述计算机程序,以用于:接收分配请求,根据所述分配请求确定可用宿主机;根据所述分配请求中的配置参数以及所述可用宿主机,分配与对应配置参数匹配的RDMA设备;将所述分配的RDMA设备配置至所述可用宿主机中对应的执行设备。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述方法中的步骤。

在本申请实施例中,接收分配请求,根据分配请求确定可用宿主机;根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备;将分配的RDMA设备配置至可用宿主机中对应的执行设备。

其中,通过根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备,可实现根据配置参数来按需地分配RDMA设备。从而可以实现可按照需求进行灵活地分配,可以节省对应的设备资源,提升设备资源的使用效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一示例性实施例的RDMA设备的分配方法的流程示意图;

图2为本申请一示例性实施例的RDMA设备的分配的示意图;

图3为本申请一示例性实施例的RDMA设备的分配系统的结构示意图;

图4为本申请一示例性实施例提供的RDMA设备的分配装置的结构示意图;

图5为本申请一示例性实施例提供的计算设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

根据前文所述可知,在云计算环境中,为了减小网络传输和数据处理的延迟,产生了RDMA(Remote Direct Memory Access,远程直接内存访问)设备。而如何对该类设备进行更好地分配也是非常重要的。

基于此,本申请实施例提供了一种RDMA设备的分配方法、计算设备及存储介质,可以按需进行灵活地对RDMA设备进行分配。

下面结合方法实施例,针对RDMA设备的分配过程进行详细说明。

图1为本申请一示例性实施例的一种RDMA设备的分配方法的流程示意图。本申请实施例提供的该方法100由计算设备执行,如,云服务器等。该方法100包括以下步骤:

101:接收分配请求,根据分配请求确定可用宿主机。

102:根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备。

103:将分配的RDMA设备配置至可用宿主机中对应的执行设备。

需要说明的是,本申请实施例的执行主体可以是云服务器,更具体的可以是宿主机,乃至是宿主机中的容器集群。

以下针对上述步骤进行详细地阐述:

101:接收分配请求,根据分配请求确定可用宿主机。

其中,分配请求可以是用于进行RDMA设备分配的请求,也可以是用于执行设备(如,容器)的分配请求,且该执行设备需要配置有对应的RDMA设备。

其中,RDMA设备包括弹性RDMA设备,弹性RDMA设备是指可动态调整的RDMA虚拟设备。该弹性RDMA设备可以是指利用支持RDMA协议的智能网卡(smart Nic,其具有计算,存储和通信的能力)的资源进行虚拟化而生成的虚拟RDMA设备。

弹性RDMA设备是在云计算环境中,为了在保有网络设备弹性能力的前提下,消减分布式节点间通信的开销,提升端到端性能,而产生的。而弹性RDMA的主要落地场景之一便是云原生场景,而容器集群相关技术又是云原生的关键技术,所以可以在容器集群中落地使用弹性RDMA设备,以可弹性地方式充分发挥弹性RDMA设备。

此外,该RDMA设备还可以包括非弹性的RDMA设备,即物理RDMA设备,可以通过支持RDMA协议的普通网卡实现。

宿主机是指一种计算设备,可以用于挂载或者分配RDMA设备。不同宿主机上面的进程可以通过RDMA设备进行通信,通信的网络协议栈可以是RDMA网络协议栈或者TCP/IP网络协议栈。其中,可用宿主机是指可用于分配RDMA设备的宿主机。

例如,用户可以通过智能终端(如电脑)的浏览器访问云服务器的登录界面,根据该登录界面直接向云服务器发送分配请求,或者通过登录界面跳转到其它界面(如,分配界面)进行请求的发送。用户也可以通过调用API(Application Programming Interface,应用程序接口)接口方式发送请求。云服务器接收到该请求后,可以根据该请求从多个宿主机中选择出可用宿主机,其中,多个宿主机可以通过标记的方式标明是否可用,从而根据标记进行查找。

需要说明的是,除了实体用户可以发送该请求外,其它设备也可以自动发送该请求,例如云服务器中的其它宿主机根据需求发送该请求,就不再赘述了。

具体的,接收分配请求,根据分配请求确定可用宿主机,包括:通过请求接收组件接收分配请求,并将分配请求发送至调度器;通过调度器,以及根据分配请求从多个宿主机中查找满足分配请求的可用宿主机。

其中,请求接收组件可以是运行在云服务器中宿主机容器上的执行组件或模块单元,或框架结构等。

调度器也可以是运行在云服务器中宿主机容器上的调度器,用于实现调度功能。

该分配请求可以携带配置参数,如分配个数。

例如,根据前文所述,如图2所示,用户通过电脑发送分配请求后,可以通过云服务器中的请求接收组件205执行步骤201:接收分配请求。通过请求接收组件205接收到该请求后,执行步骤202:发送分配请求,给调度器206。调度器206接收到该请求后,可以根据该请求从多个宿主机中选择出可用宿主机,其中,多个宿主机可以通过标记的方式标明是否可用,从而根据标记进行查找。

需要说明的是,此处可以默认配置参数中RDMA设备的分配个数为1个。

为了方便查找可用宿主机,可以通过请求中携带的数据,来确定满足的可用宿主机。

具体的,根据分配请求从多个宿主机中查找满足分配请求的可用宿主机,包括:通过调度器,根据分配请求中的分配个数,从多个宿主机中查找可分配RDMA设备(或弹性RDMA设备)分配个数的可用宿主机。

例如,根据前文所述,通过调度器接收到分配请求后,该分配请求可以携带分配个数,该个数可以是指弹性RDMA设备或非弹性RDAM设备的分配个数,如2个。然后通过调度器从多个宿主机中查找出可分配弹性RDMA设备或非弹性RDAM设备分配个数为2个的可用宿主机。可以通过标记宿主机的可分配弹性RDMA设备或非弹性RDAM设备分配个数的标记中确定出对应的可用宿主机。

需要说明的是,对于非弹性RDAM设备而言,每个宿主机可以已经预先设置好了对应的非弹性RDAM设备,其个数可以是已经固定的了。但是由于每个宿主机可以将自己所预置好的非弹性RDAM设备分配给自身的执行设备,如容器,所以其再可被分配的非弹性RDAM设备的数量是可以变化的,所以不一定每个宿主机的非弹性RDAM设备的数量都可以满足配置参数,即针对非弹性RDAM设备而言,宿主机也是需要选择的。

102:根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备。

其中,根据前文所述可知,RDMA设备可以包括弹性RDMA设备,其是指可动态调整的RDMA设备,如可以动态调整RDMA设备的个数、可以动态调整RDMA设备的队列数以及队列对(queue pair)数量等。

配置参数是指用于配置弹性RDMA设备或非弹性RDMA设备的参数。弹性RDMA设备的配置参数可以包括但不限于分配个数、弹性RDMA设备的队列参数等。非弹性RDMA设备的配置参数包括但不限于分配个数。

例如,根据前文所述,云服务器可以根据该请求中的分配个数,可以默认为1个(也可以请求多个,如两个),以及弹性RDMA设备的队列数以及队列对数量,创建一个满足队列数以及队列对数量的弹性RDMA设备。

此外,可以根据该请求中的分配个数,如2个非弹性RDMA设备,以及根据对应的可用宿主机,从预置在宿主机上的可被分配非弹性RDMA设备中选择两个非弹性RDMA设备,用于分配给后续执行设备,如容器。

具体的,根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备,包括:根据分配请求中的配置参数,在可用宿主机上分配与对应配置参数匹配的RDMA设备。

更具体的,根据分配请求中的配置参数,在可用宿主机上分配与对应配置参数匹配的RDMA设备,包括:通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,以及根据配置参数中的队列参数,请求RDMA设备管理服务在可用宿主机上创建(或分配)与队列参数匹配的RDMA设备。

其中,队列参数可以包括弹性RDMA设备的队列数以及队列对数量等。

请求RDMA设备管理服务可以是指部署在云服务器上的云服务或者云产品,用于管理和分配RDMA设备。

例如,根据前文所述,如图2所示,云服务器通过调度器206在确定了可用宿主机207后,将分配请求发送至该可用宿主机207的配置插件208,即执行步骤203:发送分配请求至配置插件208。该配置插件208接收到该请求后,根据该请求中的弹性RDMA设备的队列数以及队列对数量等,向弹性RDMA设备管理服务209执行步骤204:请求在可用宿主机207上创建弹性RMDA设备。如,该配置插件208可以向弹性RDMA设备管理服务209发送分配请求或者创建请求,且请求携带有配置参数,如队列参数,此外还可以携带有可用宿主机207的身份信息,如标识ID等。弹性RDMA设备管理服务209接收到该请求后,针对该可用宿主机207,根据队列参数来为该可用宿主机207在其(可用宿主机207)上创建或分配一个弹性RDMA设备。创建完成后,弹性RDMA设备管理服务209可以发送表示分配成功的信息给配置插件208。

需要说明的是,配置插件208可以向弹性RDMA设备管理服务209发送分配请求或者创建请求,且请求还可以携带有分配个数的配置参数。以使弹性RDMA设备管理服务209根据分配个数来创建或分配弹性RDMA设备。应理解,对于多个弹性RDMA设备需要创建或分配而言,该请求中可以针对分配个数中的每个标明有对应的队列参数,使得弹性RDMA设备管理服务209可以创建或分配对应的个数的弹性RDMA设备,且每个设备还符合队列参数。

由此不同的弹性RDMA设备可以动态配置参数,满足不同场景的下的需求,并且做到不浪费队列资源和queue pair资源,提升资源的使用效率,节省成本。

为了能够方便调度器查找到对应的可用宿主机,还可以先对多个宿主机能够可分配到的弹性RDMA设备(或非弹性RDMA设备)进行确定。

具体的,该方法100还包括:通过配置插件,请求RDMA设备管理服务,确定多个宿主机中对应宿主机可分配到的RDMA设备,并发送第一信息至调度器,第一信息表示多个宿主机中对应宿主机可分配到的RDMA设备,以使调度器进行记录和查找。

例如,根据前文所述,在分配弹性RDMA设备(或非弹性RDMA设备)前,通过调度器可以请求对应的配置插件来确定对应宿主机其可以被分配弹性RDMA设备(或对应宿主机其具有的可用的非弹性RDMA设备)的数量或者,被分配的每个弹性RDMA设备(或每个可用的非弹性RDMA设备)。由此每个宿主机的配置插件可以通过前文所述的方式向弹性RDMA设备管理服务发送请求,该请求用于确定对应宿主机其当前可以被分配弹性RDMA设备的数量或者,被分配的每个弹性RDMA设备。弹性RDMA设备管理服务接收到该请求后,根据该请求所携带的宿主机的身份信息,可以根据当前该宿主机的资源来确定其可以被分配弹性RDMA设备的数量或者,被分配的每个弹性RDMA设备。然后将其可以被分配弹性RDMA设备的数量或者,被分配的每个弹性RDMA设备返回至对应配置插件。通过配置插件可以再将其可以被分配弹性RDMA设备的数量或者,被分配的每个弹性RDMA设备返回至调度器,即发送表示该内容的第一信息至调度器。从而调度器可以根据该第一信息存储对应宿主机其可以被分配弹性RDMA设备的数量或者,被分配的每个弹性RDMA设备。以供前文所述的查找,确定哪些或哪个宿主机可用。

对于非弹性RDMA设备而言,由于宿主机已经预置好了对应的非弹性RDMA设备,那么也可以通过上述配置插件向调度器发送信息,使得调度器知晓各个宿主机可用的非弹性RDMA设备。

具体的,通过配置插件,确定多个宿主机中对应宿主机可用的非弹性RDMA设备,并发送第四信息至调度器,第四信息表示多个宿主机中对应宿主机可用的非弹性RDMA设备,以使调度器进行记录和查找。

其具体实施方式与前文所述相似,就不再赘述,仅说明:配置插件可以查询对应的宿主机可用的非弹性RDMA设备,然后向调度器发送对应的消息,就不再赘述。

需要说明的是,通过上述方式,调度器再查找可用宿主机的时候,可以根据多个宿主机中是否还具有可以被分配的弹性RDMA设备(或可用的非弹性RDMA设备),或者被分配弹性RDMA设备(或可用的非弹性RDMA设备)的数量来确定是否可以为可用宿主机。然后调度器可以根据分配请求携带的分配个数,来查找符合该个数的可用宿主机,从而确定出可用宿主机。如果确定到了多个可用宿主机,还可以根据其它策略来对确定的多个宿主机进行评分,如可以根据宿主机性能或资源打分,也可以根据其可以被分配的弹性RDMA设备(或可用的非弹性RDMA设备)是否正好满足分配个数来打分,如分配个数为1个,且宿主机1还可以被分配的弹性RDMA设备(或可用的非弹性RDMA设备)也为1个,那么宿主机1就是符合的可用宿主机。

除此以外,在具有多个调度器的前提下,多个调度器对多个宿主机的确定可能存在抢占的关系,或者调度器在确定了可用宿主机后,宿主机由于其它的情况,资源无法继续支持当前的分配个数,或者无法支持被分配RDMA设备(如弹性RDMA设备),那么使得调度器可能存在对可用宿主机被分配弹性RDMA设备的失败的情况(或可用宿主机所有具有的非弹性RDMA设备不再满足配置参数)。此时,则调度器需要根据前文所述的方式重新确定可用宿主机,然后再进行弹性RDMA设备(或非弹性RDMA设备)分配,就不再过多赘述了。

还需要说明的是,对于弹性RDMA设备而言,除了根据上述方式进行可用宿主机的确定外,还可以考虑其它因素进行可用宿主机的确定,如当前宿主机的资源,如GPU(图形处理器,graphics processing unit)、CPU(中央处理器,central processing unit)、内存等资源的情况,进行分配,这里就不再过度展开了。

由于调度器需要根据其所记录的对应宿主机可分配到的弹性RDMA设备(或可用宿主机所有具有的非弹性RDMA设备)进行查找可用宿主机,所以在对应宿主机被创建了或被分配了弹性RDMA设备(或分配了非弹性RDMA设备),还需要告知调度器进行记录的更新。

具体的,在分配与对应配置参数匹配的RDMA设备后,该方法100还包括:通过配置插件,发送第二信息至调度器,第二信息表示在可用宿主机上分配与对应配置参数匹配的RDMA设备;通过调度器,更新可用宿主机可分配到的RDMA设备。

例如,根据前文所述,通过配置插件在接收到弹性RDMA设备管理服务发送的表示分配成功的信息后,可以向调度器发送第二信息,第二信息表示为在可用宿主机上创建与对应配置参数匹配的弹性RDMA设备。然后通过调度器接收到该信息后,可以标记对应可用宿主机的1块(或多块,根据分配个数来确定)空闲的弹性RDMA设备为占用状态或者可用宿主机的弹性RDMA设备可分配数量减一。

对于非弹性RDMA设备而言,具体的,在分配与对应配置参数匹配的RDMA设备后,该方法100还包括:通过配置插件,发送第五信息至调度器,第五信息表示通过可用宿主机分配与对应配置参数匹配的RDMA设备;通过调度器,更新可用宿主机可用的RDMA设备。

具体的实施方式与前文所述相似,就不再过多赘述了。

103:将分配的RDMA设备配置至可用宿主机中对应的执行设备。

其中,执行设备可以为云服务器的容器或虚拟机。

例如,根据前文所述,如图2所示,通过配置插件208接收到弹性RDMA设备管理服务209发送的表示分配成功的信息后,弹性RDMA设备管理服务209还可以发送弹性RDMA设备的信息,如ID等。由此通过配置插件208可以查找到该弹性RDMA设备,并将该弹性RDMA设备拉起到对应的容器A 210所在的隔离区域中,使得容器A 210可以找到该弹性RDMA设备,并进行使用,从而完成弹性RDMA设备的配置。

对于非弹性RDMA设备而言,可用宿主机有一个默认的网络名称空间(networknamespace),容器也具有的网络名称空间(可以随之创建的),通过配置插件修改非弹性RDMA设备所属的网络名称空间,由默认的宿主机的网络名称空间修改为容器的网络名称空间。

具体的,将分配的RDMA设备配置至可用宿主机中对应的执行设备,包括:通过配置插件,将分配的RDMA设备配置可用宿主机中的对应容器中。

由于前文已经阐述过了,此处就不再赘述。

需要说明的是,由于需要将弹性RDMA设备(或非弹性RDMA设备)配置至执行设备中,那么分配请求除了需要分配弹性RDMA设备(或非弹性RDMA设备)外,还需要去创建或分配对应的执行设备,如容器或虚拟机,该执行设备可以在可用宿主机中分配或创建。

具体的,该方法100还包括:通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,请求可用宿主机中容器管理服务进行容器的创建,以待将创建的RDMA设备配置至容器。

其中,容器管理服务可以是部署在云服务器的可用宿主机上的服务,用于创建和管理容器,该服务可以调用kubernetes编排管理工具进行容器的创建。

例如,根据前文所述,通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,向该可用宿主机的容器管理服务发送容器创建请求,该服务基于该请求调用kubernetes编排管理工具进行容器的创建,在该可用宿主机内,同时该服务会发送创建的容器的信息至配置插件。以使后续在该宿主机内创建了弹性RDMA设备(或分配了非弹性RDMA设备)后,配置插件可以将该弹性RDMA设备(或分配的非弹性RDMA设备)配置至对应的容器。

如图2所示,在可用宿主机207中创建了容器A 210和容器B 211,且这两个容器属于不同的用户,也可以属于同一个用户,每个容器均被配置有一个对应的弹性RDMA设备(或非弹性RDMA设备),各个容器可以通过各自的弹性RDMA设备(或非弹性RDMA设备)与对方进行通信交互或数据交互,即可以通过各自的弹性RDMA设备(或非弹性RDMA设备)执行步骤212:数据交互。此外,一个容器可以被配置多个弹性RMDA设备。

另,可以根据用户的身份识别ID,其可以被携带在分配请求中,来分配弹性RDMA设备,该弹性RDMA设备是可以打通该用户隔离网络空间,结合安全容器的强隔离性,做到单一宿主机支持多个用户。

除此对弹性RDMA设备(或非弹性RDMA设备)进行分配外,还可以对弹性RDMA设备(或非弹性RDMA设备)进行释放(对于非弹性RDMA设备而言,释放是指当前的非弹性RDMA设备不再为当前执行设备提供网卡服务,归还给对应的宿主机)。以下进行释放内容的阐述:

具体的,该方法100还包括:接收释放请求,根据释放请求确定对应的可用宿主机;将配置至执行设备中的RDMA设备移出至可用宿主机中,释放移出的RDMA设备。

需要说明的是,该释放过程与前文所述的分配过程相似,可以说是分配过程的逆过程。

例如,根据前文所述,用户可以通过电脑调用API接口方式(也可以通过前文所述的界面方式)向云服务器发送释放请求,该请求可以携带关于释放的容器的标识以及弹性RDMA设备(或非弹性RDMA设备)的标识。然后,云服务器接收到请求后,可以先确定对应的可用宿主机,将配置至容器中的弹性RDMA设备移出至可用宿主机中,释放移出的弹性RDMA设备。最后可以释放容器。

对于非弹性RDMA设备而言,具体的,该方法100还包括:接收释放请求,根据释放请求确定对应的可用宿主机;将配置至执行设备中的RDMA设备还原至可用宿主机中。

例如,根据前文所述,通过配置插件修改非弹性RDMA设备所属的网络名称空间,由容器的网络名称空间修改为默认的宿主机的网络名称空间。从而使得容器将非弹性RDMA设备归还给对应的宿主机。

具体的,接收释放请求,根据释放请求确定对应的可用宿主机,包括:通过请求接收组件接收释放请求,根据释放请求确定可用宿主机,以使通过请求接收组件将释放请求发送至可用宿主机中的配置插件。

例如,根据前文所述,云服务器可以通过请求接收组件接收该释放请求,根据该请求确定对应的可用宿主机,然后将该释放请求直接发送至对应可用宿主机的配置插件。

具体的,将配置至执行设备中的RDMA设备移出至可用宿主机中,释放移出的RDMA设备,包括:通过配置插件,接收请求接收组件发送的释放请求;根据释放请求,通过配置插件将对应容器中的RDMA设备移出至可用宿主机中;通过配置插件,请求RDMA设备管理服务释放宿主机中移出的RDMA设备。

例如,根据前文所述,通过可用宿主机的配置插件接收到释放请求,根据该请求中的弹性RDMA设备的ID,查找对应的弹性RDMA设备,然后将该弹性RDMA设备从其对应的容器所在隔离区域中移出至该可用宿主机。然后配置插件可以向弹性RDMA设备管理服务发送释放请求,以请求弹性RDMA设备管理服务释放弹性RDMA设备。弹性RDMA设备管理服务接收到释放请求后,根据该请求中的释放弹性RDMA设备的标识以及可用宿主机的ID等信息,查找到该可用宿主机,并释放在该宿主机中对应的弹性RDMA设备。

对于非弹性RDMA设备而言,具体的,将配置至执行设备中的RDMA设备还原至可用宿主机中,包括:通过配置插件,接收请求接收组件发送的释放请求;根据释放请求,通过配置插件将对应容器中的RDMA设备还原至可用宿主机中。

例如,根据前文所述,通过可用宿主机的配置插件接收到释放请求,根据该请求中的非弹性RDMA设备的ID,查找对应的非弹性RDMA设备,然后修改该非弹性RDMA设备所属的网络名称空间,由容器的网络名称空间修改为默认的宿主机的网络名称空间。从而使得容器将非弹性RDMA设备归还给对应的宿主机。

需要说明的是,在配置插件接收到释放请求后,可以向该可用宿主机的容器管理服务发送容器暂停请求,该服务基于该请求根据该请求携带的容器标识,调用kubernetes编排管理工具进行容器的暂停。容器暂停后,配置插件再去将该容器对应的弹性RDMA设备移出至可用宿主机(或将非弹性RDMA设备还原至宿主机)。然后请求弹性RDMA设备管理服务进行释放弹性RDMA设备(或非弹性RDMA设备)。在释放后弹性RDMA设备后,弹性RDMA设备管理服务向配置插件发送释放成功的信息。然后配置插件则可以通过向该可用宿主机的容器管理服务发送容器释放请求(或将非弹性RDMA设备还原至宿主机后,配置插件则可以通过向该可用宿主机的容器管理服务发送容器释放请求),该服务基于该请求根据该请求携带的容器标识,调用kubernetes编排管理工具进行容器的释放。

在释放完弹性RDMA设备(或还原了非弹性RDMA设备)后,需要更新一下调度器中记录的信息。

具体的,该方法100还包括:通过配置插件发送第三信息至调度器,第三信息表示释放可用宿主机中移出的RDMA设备;通过调度器,更新可用宿主机可分配到的RDMA设备。

例如,根据前文所述,通过配置插件在接收到弹性RDMA设备管理服务发送的释放成功的信息后,通过配置插件向调度器发送信息,该信息释放可用宿主机中移出的弹性RDMA设备,该信息是表明了对应可用宿主机的标识的,如ID,以及释放的弹性RDMA设备的个数。调度器接收到这信息后,可以根据信息标记对应可用宿主机的弹性RDMA设备可分配数量加一,或者可用宿主机的1块(或多块,根据分配个数来确定)空闲的弹性RDMA设备为未占用状态。

对于非弹性RDMA设备而言,具体的,该方法100还包括:通过配置插件发送第六信息至调度器,第六信息表示还原RDMA设备至可用宿主机;通过调度器,更新可用宿主机可用的RDMA设备。

其具体实施方式与前文所述相似,就不再过多赘述了。

本申请实施例还可以支持多个租户或用户在相同的宿主机进行服务部署,多个宿主机可以作为一个共享的资源分配池。资源池的规模(可以包括宿主机数量、弹性RDMA设备数量(或非弹性RDMA设备)以及容器数量等)越大,覆盖不同需求的用户越多,形成交错满足需求的场景,可以提升资源池的利用率,节省成本。由此可以支持在云服务器中的容器集群场景中动态提供弹性RDMA设备(或灵活分配非弹性RDMA设备)的能力,按需供应和释放弹性RDMA设备(或按需供应和灵活归还非弹性RDMA设备),并且可以根据租户的身份识别ID,来分配打通该租户隔离网络空间的弹性RDMA设备,结合安全容器的强隔离性,做到单一宿主机支持多个租户。

除了上述动态分配弹性RDMA设备(或灵活分配非弹性RDMA设备)的过程外,还可以将一台或多台宿主机上面能挂载的多个弹性RDMA设备(或非弹性RDMA设备)提前挂载到对应的宿主机上,并且配置到容器内部,供容器使用(具体的实施方式与前文所述相似就不再赘述)。首先通过弹性RDMA设备(或非弹性RDMA设备)控制台或者open api的操作方式,将宿主机挂载多个弹性RDMA设备(或非弹性RDMA设备),由于是提前挂载好在宿主机中的,多个弹性RDMA设备(或非弹性RDMA设备)是跟随宿主机一起提供并且已经是静态挂载好的。释放(或还原)过程也是相似的,只需将弹性RDMA设备从容器中移出宿主机即可,无需释放(或将非弹性RDMA设备还原至对应的宿主机),就不再赘述。但这种方式进行分配弹性RDMA设备(或非弹性RDMA设备)是有限的,更多的是侧重于静态分配,不够灵活,且由于提前配置了弹性RDMA设备(或非弹性RDMA设备),无法进行过多的动态配置或灵活配置,所以单台宿主机只能支持一个用户,没有办法支持云服务器上单台宿主机有多个用户的场景。

图3为本申请一示例性实施例提供的一种RDMA设备的分配系统的结构示意图。如图3所示,该系统300可以包括:第一设备301以及第二设备302。

其中,第一设备301可以是有一定计算能力的设备,可以实现向第二设备302发送数据的功能,也可以接收第二设备302发送的数据。第一设备301的基本结构可以包括:至少一个处理器。处理器的数量可以取决于具有一定计算能力装置的配置和类型。具有一定计算能力装置也可以包括存储器,该存储器可以为易失性的,例如RAM,也可以为非易失性的,例如只读存储器(Read-Only Memory,ROM)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(Operating System,OS)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,具有一定计算能力装置还包括一些基本配置,例如网卡芯片、IO总线、显示组件以及一些外围设备等。可选地,一些外围设备可以包括,例如键盘、输入笔等。其它外围设备在本领域中是众所周知的,在此不做赘述。可选地,第一设备301可以为智能终端,例如,手机、台式电脑、笔记本、平板电脑等。

第二设备302是指可以在网络虚拟环境中提供计算处理服务的设备,可以是指利用网络进行RDMA设备分配的设备。在物理实现上,第二设备302可以是任何能够提供计算服务,响应服务请求,并进行数据获取,还可以进行RDMA设备分配的设备,例如可以是云服务器、云主机、虚拟中心、常规服务器等等。第二设备302的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。

具体的,第二设备302,接收分配请求,根据分配请求确定可用宿主机;根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备;将分配的RDMA设备配置至可用宿主机中对应的执行设备。

此外,第一设备301,发送分配请求至第二设备302。

具体的,第二设备302,通过请求接收组件接收分配请求,并将分配请求发送至调度器;通过调度器,以及根据分配请求从多个宿主机中查找满足分配请求的可用宿主机。

具体的,第二设备302,通过调度器,根据分配请求中的分配个数,从多个宿主机中查找可分配RDMA设备分配个数的可用宿主机。

具体的,第二设备302,通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,以及根据配置参数中的队列参数,请求RDMA设备管理服务在可用宿主机上创建与队列参数匹配的RDMA设备。

此外,第二设备302,通过配置插件,请求RDMA设备管理服务,确定多个宿主机中对应宿主机可分配到的RDMA设备,并发送第一信息至调度器,第一信息表示多个宿主机中对应宿主机可分配到的RDMA设备,以使调度器进行记录和查找。

此外,在分配与所述对应配置参数匹配的RDMA设备后,第二设备302,通过配置插件,发送第二信息至调度器,第二信息表示在可用宿主机上分配与对应配置参数匹配的RDMA设备;通过调度器,更新可用宿主机可分配到的RDMA设备。

具体的,第二设备302,通过配置插件,将分配的RDMA设备配置可用宿主机中的对应容器中。

此外,第二设备302,接收释放请求,根据释放请求确定对应的可用宿主机;将配置至执行设备中的RDMA设备移出至可用宿主机中,释放移出的RDMA设备。

其中,RDMA设备包括弹性RDMA设备,弹性RDMA设备是指可动态调整的RDMA虚拟设备。

需要说明的是,在系统300中未能完全阐述的内容请参见前文方法100中的内容,其具体的实施方式也请参见前文所述的方法100的具体实施方式,此处就不再赘述。

在本申请实施例的弹性RDMA设备的分配场景中,如图3所示,用户可以通过第一设备301,如电脑,的web网络浏览器登录第二设备302,如云服务器,登录界面跳转到其它界面,如分配界面进行请求的发送,即执行步骤303:发送分配请求。可以通过云服务器中的请求接收组件205执行步骤201:接收分配请求。通过请求接收组件205接收到该请求后,执行步骤202:发送分配请求给调度器206。调度器206接收到该请求后,可以根据该请求从多个宿主机中选择出可用宿主机,云服务器通过调度器206在确定了可用宿主机207后,将分配请求发送至该可用宿主机207的配置插件208(也可以称为弹性RDMA配置插件),即执行步骤203:发送分配请求至配置插件208。该配置插件208接收到该请求后,根据该请求中的弹性RDMA设备的队列数以及队列对数量等,向弹性RDMA设备管理服务209执行步骤204:请求在可用宿主机207上创建弹性RMDA设备。弹性RDMA设备管理服务209接收到该请求后,针对该可用宿主机207,根据队列参数来为该可用宿主机207在其(可用宿主机207)上创建或分配一个弹性RDMA设备。创建完成后,弹性RDMA设备管理服务209可以发送表示分配成功的信息给配置插件208。

配置插件208可以直接通过请求接收组件205执行步骤305:发送分配成功的信息。然后电脑执行步骤304:接收分配成功的信息。通过配置插件208在接收到弹性RDMA设备管理服务209发送的表示分配成功的信息后,可以向调度器206发送信息,信息表示为在可用宿主机207上创建与对应配置参数匹配的弹性RDMA设备。然后通过调度器206接收到该信息后,可以标记对应可用宿主机207的1块(或多块,根据分配个数来确定)空闲的弹性RDMA设备为占用状态或者可用宿主机207的弹性RDMA设备可分配数量减一。

在可用宿主机207中创建了容器A 210和容器B 211,且这两个容器属于不同的用户,也可以属于同一个用户,每个容器均被配置有一个对应的弹性RDMA设备,各个容器可以通过各自的弹性RDMA设备与对方进行通信交互或数据交互,即可以通过各自的弹性RDMA设备执行步骤212:数据交互。

用户可以通过电脑调用API接口方式(也可以通过前文所述的界面方式)向云服务器发送释放请求,该请求可以携带关于释放的容器的标识以及弹性RDMA设备的标识。然后,可以通过请求接收组件205接收该释放请求,根据该请求确定对应的可用宿主机207,然后将该释放请求直接发送至对应可用宿主机207的配置插件208。通过配置插件208接收到释放请求,根据该请求中的弹性RDMA设备的ID,查找对应的弹性RDMA设备,然后将该弹性RDMA设备从其对应的容器所在隔离区域中移出至该可用宿主机207。然后配置插件208可以向弹性RDMA设备管理服务209发送释放请求,以请求弹性RDMA设备管理服务209释放弹性RDMA设备。在释放完弹性RDMA设备后,通过配置插件208在接收到弹性RDMA设备管理服务209发送的释放成功的信息后,通过配置插件208向调度器206发送信息,该信息释放可用宿主机207中移出的弹性RDMA设备,该信息是表明了对应可用宿主机207的标识的,如ID,以及释放的弹性RDMA设备的个数。调度器206接收到这信息后,可以根据信息标记对应可用宿主机207的弹性RDMA设备可分配数量加一,或者可用宿主机的1块(或多块,根据分配个数来确定)空闲的弹性RDMA设备为未占用状态。

在上述本实施例中,第一设备301、第二设备302进行网络连接。若第一设备301、第二设备302是通信连接,该移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、WiMax、5G等中的任意一种。

图4为本申请一示例性实施例提供的一种RDMA设备的分配装置的结构框架示意图。该装置400可以应用于云服务器。该装置400包括:确定模块401、分配模块402以及配置模块403;以下针对各个模块的功能进行详细的阐述:

确定模块401,用于接收分配请求,根据分配请求确定可用宿主机。

分配模块402,用于根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备。

配置模块403,用于将分配的RDMA设备配置至可用宿主机中对应的执行设备。

具体的,确定模块401,包括:第一发送单元,用于通过请求接收组件接收分配请求,并将分配请求发送至调度器;查找单元,用于通过调度器,以及根据分配请求从多个宿主机中查找满足分配请求的可用宿主机。

具体的,查找单元,用于通过调度器,根据分配请求中的分配个数,从多个宿主机中查找可分配RDMA设备分配个数的可用宿主机。

具体的,分配模块402,包括:第二发送单元,用于通过调度器,将分配请求发送至可用宿主机中的配置插件;创建单元,用于通过配置插件,以及根据配置参数中的队列参数,请求RDMA设备管理服务在可用宿主机上创建与队列参数匹配的RDMA设备。

此外,确定模块401,还用于:通过配置插件,请求RDMA设备管理服务,确定多个宿主机中对应宿主机可分配到的RDMA设备,并发送第一信息至调度器,第一信息表示多个宿主机中对应宿主机可分配到的RDMA设备,以使调度器进行记录和查找。

此外,在分配与对应配置参数匹配的RDMA设备后,该装置400还包括:第一发送模块,用于通过配置插件,发送第二信息至调度器,第二信息表示在可用宿主机上分配与对应配置参数匹配的RDMA设备;更新模块,用于通过调度器,更新可用宿主机可分配到的RDMA设备。

此外,配置模块403,还用于:通过配置插件,将分配的RDMA设备配置可用宿主机中的对应容器中。

此外,该装置400还包括:第二发送模块,用于通过调度器,将分配请求发送至可用宿主机中的配置插件;分配模块402,还用于通过配置插件,请求可用宿主机中容器管理服务进行容器的创建,以待将创建的RDMA设备配置至容器。

此外,确定模块401,还用于接收释放请求,根据释放请求确定对应的可用宿主机;该装置400还包括:移出模块,用于将配置至执行设备中的RDMA设备移出至可用宿主机中,释放移出的RDMA设备。

具体的,确定模块401,用于:通过请求接收组件接收释放请求,根据释放请求确定可用宿主机,以使通过请求接收组件将释放请求发送至可用宿主机中的配置插件。

具体的,移出模块,包括:接收单元,用于通过配置插件,接收请求接收组件发送的释放请求;移出单元,用于根据释放请求,通过配置插件将对应容器中的RDMA设备移出至可用宿主机中;释放单元,用于通过配置插件,请求RDMA设备管理服务释放宿主机中移出的RDMA设备。

此外,第一发送模块,还用于通过配置插件发送第三信息至调度器,第三信息表示释放可用宿主机中移出的RDMA设备;更新模块,还用于通过调度器,更新可用宿主机可分配到的RDMA设备。

其中,RDMA设备包括弹性RDMA设备,弹性RDMA设备是指可动态调整的RDMA虚拟设备。

以上描述了图4所示的装置400的内部功能和结构,在一个可能的设计中,图4所示的装置400的结构可实现为计算设备,如,云服务器。如图5所示,该设备500可以包括:存储器501、处理器502;

存储器501,用于存储计算机程序。

处理器502,用于执行计算机程序,以用于:接收分配请求,根据分配请求确定可用宿主机;根据分配请求中的配置参数以及可用宿主机,分配与对应配置参数匹配的RDMA设备;将分配的RDMA设备配置至可用宿主机中对应的执行设备。

具体的,处理器502,具体用于:通过请求接收组件接收分配请求,并将分配请求发送至调度器;通过调度器,以及根据分配请求从多个宿主机中查找满足分配请求的可用宿主机。

具体的,处理器502,具体用于:通过调度器,根据分配请求中的分配个数,从多个宿主机中查找可分配RDMA设备分配个数的可用宿主机。

具体的,处理器502,具体用于:通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,以及根据配置参数中的队列参数,请求RDMA设备管理服务在可用宿主机上创建与队列参数匹配的RDMA设备。

此外,处理器502,还用于:通过配置插件,请求RDMA设备管理服务,确定多个宿主机中对应宿主机可分配到性RDMA设备,并发送第一信息至调度器,第一信息表示多个宿主机中对应宿主机可分配到的RDMA设备,以使调度器进行记录和查找。

此外,在分配与对应配置参数匹配的RDMA设备后,处理器502,还用于:通过配置插件,发送第二信息至调度器,第二信息表示在可用宿主机上分配与对应配置参数匹配的RDMA设备;通过调度器,更新可用宿主机可分配到的RDMA设备。

此外,处理器502,还用于:通过配置插件,将分配的RDMA设备配置可用宿主机中的对应容器中。

此外,处理器502,还用于:通过调度器,将分配请求发送至可用宿主机中的配置插件;通过配置插件,请求可用宿主机中容器管理服务进行容器的创建,以待将创建的RDMA设备配置至容器。

此外,处理器502,还用于:接收释放请求,根据释放请求确定对应的可用宿主机;将配置至执行设备中的RDMA设备移出至可用宿主机中,释放移出的RDMA设备。

具体的,处理器502,具体用于:通过请求接收组件接收释放请求,根据释放请求确定可用宿主机,以使通过请求接收组件将释放请求发送至可用宿主机中的配置插件。

具体的,处理器502,具体用于:通过配置插件,接收请求接收组件发送的释放请求;根据释放请求,通过配置插件将对应容器中的RDMA设备移出至可用宿主机中;通过配置插件,请求RDMA设备管理服务释放宿主机中移出的RDMA设备。

此外,处理器502,还用于:通过配置插件发送第三信息至调度器,第三信息表示释放可用宿主机中移出的RDMA设备;通过调度器,更新可用宿主机可分配到的RDMA设备。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图1-2方法实施例中一种RDMA设备的分配方法的步骤。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:UPP接口的可扩展通信方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!