首页> 中国专利> 一种多物理设备绑定虚拟设备的方法、系统及相关设备

一种多物理设备绑定虚拟设备的方法、系统及相关设备

摘要

本申请提供一种多物理设备绑定虚拟设备的方法、系统及相关设备。其中,该方法包括:基于多个物理设备创建多个物理设备集合,其中,所述多个物理设备集合中的至少两个物理设备集合包括同一个物理设备;针对所述多个物理设备集合中的任意一个物理设备集合创建一个或多个与所述物理设备集合对应的虚拟设备;利用所述虚拟设备接收业务应用下发的数据。通过创建多个物理设备集合,且针对每个物理设备集合创建与之对应的虚拟设备以接收业务应用下发的数据,这样可以保证各个物理设备均参与数据处理,有效提高物理设备的资源利用率,实现多物理设备负载均衡。

著录项

  • 公开/公告号CN114064263A

    专利类型发明专利

  • 公开/公告日2022-02-18

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN202011308800.1

  • 发明设计人 杨学文;蔡志方;

    申请日2020-11-20

  • 分类号G06F9/50(2006.01);G06F9/455(2006.01);

  • 代理机构广州三环专利商标代理有限公司 44202;广州三环专利商标代理有限公司 44202;

  • 代理人熊永强;李稷芳

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 15:49:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-08

    实质审查的生效 IPC(主分类):G06F 9/50 专利申请号:2020113088001 申请日:20201120

    实质审查的生效

说明书

本申请要求于2020年08月03日提交中国专利局、申请号为202010769410.8、申请名称为“一种多物理设备绑定虚拟设备的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本发明涉及云计算技术领域,尤其涉及一种多物理设备绑定虚拟设备的方法、系统及相关设备。

背景技术

目前为了提高资源的利用率和系统性能及可靠性,多物理设备绑定技术变得越来越流行,例如linux系统下的网卡绑定技术(bonding),可以把多个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,可以有效提升网络吞吐量、实现网络冗余、负载均衡等功能。

在将多物理设备绑定为一个虚拟设备之后需要配置其工作模式,一般都将其配置为主备模式,在该模式下,多个物理设备中只有一个物理设备为主设备,其它都为备设备,即只有一个物理设备处于激活(active)状态,其它的物理设备只有在当前激活的物理设备发生故障后才会变为激活状态。该模式提供了容错机制,可以提高网络连接的可用性,但同时该模式降低了资源利用率,在有N个物理设备的情况下,其资源利用率仅为1/N,此外也不具备负载均衡能力。

因此,在多物理设备绑定虚拟设备的场景中如何提高资源的利用率,增加多物理设备的负载均衡能力是目前亟待解决的问题。

发明内容

本发明实施例公开了一种多物理设备绑定虚拟设备的方法、系统及相关设备,基于多个物理设备创建多个物理设备集合,并针对每一个物理设备集合创建与不同物理设备对应的虚拟设备以支持业务应用,从而可以提高资源利用率,实现多物理设备负载均衡。

第一方面,本申请提供了一种多物理设备绑定虚拟设备的方法,包括:服务器基于多个物理设备创建多个物理设备集合,其中,所述多个物理设备集合中的至少两个物理设备集合包括同一个物理设备;服务器针对所述多个物理设备集合中的任意一个物理设备集合创建一个或多个与所述物理设备集合对应的虚拟设备;服务器利用所述虚拟设备接收业务应用下发的数据。

可选的,本申请所涉及的物理设备包括但不限于NIC、GPU和NPU。

在本申请提供的方案中,在存在多个物理设备时,服务器基于多个物理设备创建多个物理设备集合,从而对多个物理设备进行绑定,同一个物理设备可以归属于不同的物理设备集合,再针对每一个物理设备集合创建与其对应的虚拟设备,并利用创建的虚拟设备接收上层业务应用下发的数据。这样可以保证各个物理设备均参与数据处理,有效提高了资源利用率,实现了多物理设备之间的负载均衡。

结合第一方面,在第一方面的一种可能的实现方式中,服务器提供输入接口,所述输入接口用于提示用户输入物理设备集合的创建参数;服务器通过所述输入接口获取所述创建参数,并根据所述创建参数创建多个物理设备集合。

可选的,所述输入接口包括配置界面、应用程序编程接口API和输入模板。

在本申请提供的方案中,用户可以通过服务器提供的配置界面或API接口输入创建参数,从而根据该创建参数创建多个物理设备集合,以使多个物理设备集合可以同时进行业务处理,从而提高资源利用率。

结合第一方面,在第一方面的一种可能的实现方式中,服务器基于第一物理设备和第二物理设备创建第一物理设备集合和第二物理设备集合,所述第一物理设备集合和所述第二物理设备集合分别包括一个主设备和至少一个备设备,其中,所述第一物理设备集合的主设备为所述第一物理设备,所述第二物理设备集合的主设备为所述第二物理设备。

在本申请提供的方案中,服务器在创建物理设备集合时,保证各个物理设备集合的主设备不同,从而确保各个物理设备都能参与业务处理,提高资源利用率。

结合第一方面,在第一方面的一种可能的实现方式中,服务器基于第一物理设备集合创建第一虚拟设备;若所述第一物理设备的业务流量超过第一预设阈值,调整所述第一虚拟设备与所述第一物理设备集合的对应关系,以使所述第一虚拟设备对应所述第二物理设备集合。

在本申请提供的方案中,服务器可以根据各个物理设备集合的业务流量灵活调整虚拟设备和物理设备集合的对应关系,可以将业务流量分流至业务压力较小的物理设备集合,从而实现多物理设备负载均衡。

结合第一方面,在第一方面的一种可能的实现方式中,所述第一物理设备集合包括所述第一物理设备和所述第二物理设备;若所述第一物理设备的业务流量超过第二预设阈值,服务器调整所述业务流量的流向,以使所述第一物理设备集合通过所述第二物理设备下发所述业务流量。

在本申请提供的方案中,服务器可以针对于同一个物理设备集合中的物理设备进行业务流量调整,以使得在业务流量超过主设备的预设阈值时,可以将业务流量分流至备设备处理,从而实现在同一个物理设备集合内负载均衡。

结合第一方面,在第一方面的一种可能的实现方式中,对于所述多个物理设备集合中的任意一个物理设备集合,服务器根据业务应用和所述多个物理设备集合中的任意一个物理设备集合中的各个备设备之间的亲和性对各个备设备成为主设备的优先级进行设置。

在本申请提供的方案中,服务器可以利用业务应用与各个备设备之间的亲和性进行优先级设置,从而保证在主设备故障的情况下,优先级高的备设备接替主设备继续工作,保证业务的连续性。

结合第一方面,在第一方面的一种可能的实现方式中,服务器根据业务应用所对应的处理器与所述各个备设备之间的连接关系对所述各个备设备成为主设备的优先级进行设置;或者,服务器根据所述各个备设备的可用资源大小对所述各个备设备成为主设备的优先级进行设置;或者,服务器根据所述各个备设备升级为主设备所消耗的资源大小对所述各个备设备成为主设备的优先级进行设置。

在本申请提供的方案中,服务器可以根据不同的约束条件灵活设置各个备设备的优先级,以使得在主设备故障时,符合要求的备设备能够成为新的主设备,从而保证业务的连续性和系统的稳定性。

结合第一方面,在第一方面的一种可能的实现方式中,虚拟设备接收所述业务应用下发的测试信息,所述测试信息用于测试与所述多个物理设备集合对应的虚拟设备的处理时延;服务器确定与所述多个物理设备集合对应的虚拟设备的处理时延,并选择最小处理时延所对应的虚拟设备接收所述业务应用下发的数据。

在本申请提供的方案中,服务器在创建虚拟设备后,通过确定各个虚拟设备的处理时延,从而完成对虚拟设备的筛选,将最小处理时延的虚拟设备与业务应用进行匹配,从而缩短业务处理时间,提高业务处理效率。

结合第一方面,在第一方面的一种可能的实现方式中,服务器对所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备的优先级进行设置,以使所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备按照设置的优先级使用资源。

在本申请提供的方案中,服务器通过对虚拟设备的优先级进行设置,从而可以保证在资源有限的情况下虚拟设备能够按照优先级使用资源,提高服务质量。

第二方面,本申请提供了一种计算设备,包括:创建单元,用于基于多个物理设备创建多个物理设备集合,其中,所述多个物理设备集合中的至少两个物理设备集合包括同一个物理设备;所述创建单元,还用于针对所述多个物理设备集合中的任意一个物理设备集合创建一个或多个与所述物理设备集合对应的虚拟设备;处理单元,用于利用所述虚拟设备接收业务应用下发的数据。

结合第二方面,在第二方面的一种可能的实现方式中,所述计算设备还包括接收单元,所述接收单元,用于提供输入接口,所述输入接口用于提示用户输入物理设备集合的创建参数;所述创建单元,还用于根据所述创建参数创建多个物理设备集合。

结合第二方面,在第二方面的一种可能的实现方式中,所述创建单元,具体用于:基于第一物理设备和第二物理设备创建第一物理设备集合和第二物理设备集合,所述第一物理设备集合和所述第二物理设备集合分别包括一个主设备和至少一个备设备,其中,所述第一物理设备集合的主设备为所述第一物理设备,所述第二物理设备集合的主设备为所述第二物理设备。

结合第二方面,在第二方面的一种可能的实现方式中,所述创建单元,还用于基于第一物理设备集合创建第一虚拟设备;所述处理单元,还用于在所述第一物理设备的业务流量超过第一预设阈值时,调整所述第一虚拟设备与所述第一物理设备集合的对应关系,以使所述第一虚拟设备对应所述第二物理设备集合。

结合第二方面,在第二方面的一种可能的实现方式中,所述第一物理设备集合包括所述第一物理设备和所述第二物理设备,所述处理单元,还用于在所述第一物理设备的业务流量超过第二预设阈值时,调整所述业务流量的流向,以使所述第一物理设备集合通过所述第二物理设备下发所述业务流量。

结合第二方面,在第二方面的一种可能的实现方式中,所述处理单元,还用于根据业务应用和所述多个物理设备集合中的任意一个物理设备集合中的各个备设备之间的亲和性对各个备设备成为主设备的优先级进行设置。

结合第二方面,在第二方面的一种可能的实现方式中,所述处理单元,具体用于:根据业务应用所对应的处理器与所述各个备设备之间的连接关系对所述各个备设备成为主设备的优先级进行设置;或者,根据所述各个备设备的可用资源大小对所述各个备设备成为主设备的优先级进行设置;或者,根据所述各个备设备升级为主设备所消耗的资源大小对所述各个备设备成为主设备的优先级进行设置。

结合第二方面,在第二方面的一种可能的实现方式中,所述接收单元,还用于接收所述业务应用下发的测试信息,所述测试信息用于测试与所述多个物理设备集合对应的虚拟设备的处理时延;所述处理单元,还用于确定与所述多个物理设备集合对应的虚拟设备的处理时延,并选择最小处理时延所对应的虚拟设备接收所述业务应用下发的数据。

结合第二方面,在第二方面的一种可能的实现方式中,所述处理单元,还用于对所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备的优先级进行设置,以使所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备按照设置的优先级使用资源。

第三方面,本申请提供了一种计算设备,所述计算设备包括处理器和存储器,所述处理器和所述存储器通过内部总线相连,所述存储器中存储有指令,所述处理器调用所述存储器中的指令以执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的方法。

第四方面,本申请提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,当所述计算机程序被处理器执行时,可以实现上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的方法。

第五方面,本申请提供了一种计算机程序产品,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的方法。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种利用多物理设备绑定技术支持业务应用的场景示意图;

图2是本申请实施例提供的另一种利用多物理设备绑定技术支持业务应用的场景示意图;

图3是本申请实施例提供的一种系统架构的示意图;

图4是本申请实施例提供的另一种系统架构的示意图;

图5是本申请实施例提供的一种多物理设备绑定虚拟设备的方法的流程示意图;

图6是本申请实施例提供的一种配置界面的示意图;

图7是本申请实施例提供的一种设置备设备优先级的示意图;

图8是本申请实施例提供的一种系统结构的示意图;

图9是本申请实施例提供的一种计算设备的结构示意图;

图10是本申请实施例提供的又一种计算设备的结构示意图。

具体实施方式

下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。

首先,对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。

物理设备是为应用提供服务的设备,包括但不限于网络接口控制器(networkinterface card,NIC)或NIC上的网络端口、图形处理器(graphics process ingunit,GPU)或嵌入式神经网络处理器(neural-network processing unit,NPU)等。

物理设备集合是将多个物理设备绑定得到的一个集合,其对外显示为同一个设备,例如linux系统下的网卡绑定,通过修改网口驱动使多个网卡对外显示为一个单独的以太网接口设备并具有相同的IP地址,物理设备集合由于是将多个物理设备绑定得到的一个集合,因此在某个物理设备或某个物理设备上的端口出现故障无法使用的时候,可以根据配置策略通过冗余的物理设备或端口继续提高服务,以提高系统性能和可靠性。

在利用多物理设备绑定技术支持业务应用的场景中,需要将多个物理设备绑定得到一个物理设备集合,根据该物理设备集合进行映射得到一个或多个虚拟的物理设备,最后利用虚拟的物理设备支持上层业务应用。如图1所示,网卡NIC100提供了两个物理网口,即以太网口ETH110和以太网口120,将ETH110和ETH120进行绑定得到物理设备集合,即BOND200,该BOND200为主备模式BOND,在创建BOND200时,可以指定ETH110为主设备,那么ETH120则为备设备,当然,也可以指定ETH120为主设备,那么ETH120则为备设备。在得到BOND200之后,利用该BOND200映射得到多个虚拟网卡,例如VNIC310、VNIC320和VNIC330,映射完成之后,上层业务应用可以利用映射得到的任意一个虚拟网卡或直接使用BOND200进行通信,若ETH110为主设备的情况下,那么在正常通信过程中,所有上层业务应用的数据将通过虚拟网卡以及BOND200汇集到ETH110,最终由ETH110进行处理转发,即所有上层业务应用的数据都仅会通过ETH110,不会通过ETH120完成数据转发处理。特别的,当ETH110出现故障或ETH110对应的外部链路出现故障,不能完成数据转发处理时,BOND机制检测到ETH110异常,则将会触发主备切换,例如,Linux系统通过链路侦听参数进行链路监测,检测网口的链路连接状态,其值可以设为100,表示系统每100毫秒监测一次链路连接状态,若检测到ETH110链路连接断开,则表明ETH110异常,那么BOND200的主设备将切换为ETH120,所有上层业务应用的数据将通过虚拟网卡和BOND200汇集到ETH120,由ETH120接替ETH110完成数据转发处理。

可以看出,在图1所示的物理设备包含多物理网口的应用场景中,将多个网口绑定为一个BOND,导致在同一时刻仅有一个物理网口处于工作状态,其它物理网口处于空闲状态,导致资源利用率较低,且没有负载均衡能力。

对于物理设备仅包含单个物理网口的场景也可以利用相似原理将多个物理设备绑定为一个物理设备集合,从而提供容错机制,提高可用性。如图2所示,网卡NIC210提供以太网口ETH2110,网卡NIC220提供以太网口ETH2210,NIC210和NIC220之间可以通过总线直接互连或者通过其所对接的中央处理器(central processing unit,CPU)间接互联,将NIC210和NIC220进行绑定得到物理设备集合BOND230,在创建BOND230过程中,可以指定NIC210为主设备,则NIC220为备设备,在创建完成之后,可以利用该BOND230映射得到多个虚拟网卡,例如VNIC2410、VNIC2420和VNIC2430。映射完成后,所有上层业务应用的数据可以通过映射得到的任意一个虚拟网卡以及BOND230汇集至NIC210,并通过NIC210中的ETH2110完成最终的转发处理。当NIC210出现故障或NIC210对应的外部链路出现故障,不能完成数据转发处理时,BOND机制将会检测到NIC210异常,从而触发主备切换,将NIC220切换为BOND230新的主设备,所有上层业务应用的数据将通过虚拟网卡及BOND230汇集至NIC220,由NIC220完成数据转发处理。

可以理解,在图2所示的物理设备包含单网口的应用场景中,将多个物理设备绑定为一个BOND,在同一时刻也仅有一个物理设备处于工作状态,其资源利用率较低,各个物理设备之间没有负载均衡能力,此外,由于所有的业务应用的数据都通过同一个物理设备进行转发处理,那么数据可能存在跨设备转发,时延较高,例如在NIC210正常工作状态下,NIC220的数据也需要通过NIC210进行转发处理,增加了传输时延。

为了解决上述问题,本申请提供一种多物理设备绑定虚拟设备的方法,该方法通过基于多个物理设备创建与多个物理设备集合,以使得其中至少两个物理设备集合中都包含同一个物理设备,然后针对每一个物理设备集合创建一个或多个虚拟设备,并利用创建得到的虚拟设备支持业务应用,从而提高资源利用率和多物理设备的负载均衡能力。

本申请实施例的技术方案可以应用于各种物理设备绑定的场景,包括但不限于多网卡设备绑定、多GPU绑定、多NPU绑定等,为了便于理解,本申请以物理设备为网卡设备为例进行具体说明。

图3是本申请实施例提供的一种系统架构的示意图。如图3所示,网卡310提供了ETH3110和ETH3120两个物理网口,基于ETH3110和ETH3120创建了两个物理设备集合,即BOND3210和BOND3220,其中,ETH3110为BOND3210的主设备,ETH3120为BOND3210的备设备;ETH3120为BOND3220的主设备,ETH3110为BOND3220的备设备。在创建得到BOND3210和BOND3220之后,利用BOND3210映射得到虚拟网卡VNIC3310和VNIC3320,利用BOND3220映射得到虚拟网卡VNIC3330和VNIC3340,上层业务应用可以选择任意一个虚拟网卡进行数据传输,这样可以保证ETH3110和ETH3120能够同时参与通信过程,均有流量通过,提高了资源利用效率,实现了负载均衡。当ETH3110出现故障或ETH3110对应的外部链路出现故障,不能完成数据转发处理时,将触发主备切换,那么BOND3210的主设备将切换为ETH3120,所有数据都将通过ETH3120完成转发处理,保证业务数据仍能够正常完成转发处理,保证系统可靠性。可以理解,图3是以一个物理设备包含多个物理网口为例进行说明的,对于一个物理设备仅包含单个物理网口的情况,其实现原理与上述类似。如图4所示,网卡410提供了ETH4110,网卡420提供了ETH4210,网卡410和网卡420之间通过总线直接互联或通过其所对接的CPU相连,基于网卡410和网卡420创建BOND430和BOND440,其中,网卡410为BOND430的主设备,网卡420为BOND430的备设备;网卡420为BOND440的主设备,网卡410为BOND440的备设备。之后,基于BOND430创建VNIC4310和VNIC4320,基于BOND440创建VNIC4410和VNIC4420,上层业务应用可以根据需要从多个虚拟设备(例如VNIC4310和VNIC4320)中选择一个进行业务处理,避免多个业务应用同时使用同一个虚拟设备,从而提高业务处理效率,使用网卡410的上层业务应用使用VNIC4310和VNIC4320进行数据传输,使用网卡420的上层业务应用使用VNIC4410和VNIC4420进行数据传输,这样可以避免数据在网卡410和网卡420之间进行跨设备传输,减少传输时延,提高传输效率。

结合图3和图4所示的系统架构的示意图,下面将描述本申请实施例提供的多物理设备绑定虚拟设备的方法。如图5所示,该方法包括但不限于以下步骤:

S501:服务器基于多个物理设备创建多个物理设备集合。

具体地,服务器可以基于部署在该服务器中的多个物理设备(例如多网口网卡或单网口网卡等),通过内核CPU运行存储器中所存储的代码创建物理设备集合,每个物理设备集合中包括一个主设备和至少一个备设备,且多个物理设备在不同的物理集合中互为主备关系,每个物理设备集合中的主设备不同。例如,对于物理设备为网卡(ETH0和ETH1)时,服务器在文件目录中创建物理设备集合(即BOND0)的网络接口配置文件时,通过增加主设备参数将ETH0设置为BOND0的主设备,增加网卡支持参数将ETH1设置为支持BOND0,即ETH1为BOND0的备设备;同理,在文件目录中创建物理设备集合(BOND1)的网络接口配置文件时,通过增加主设备参数将ETH1设置为BOND1的主设备,增加网卡支持参数将ETH0设置为支持BOND1,ETH0为BOND1的备设备,在网络接口配置文件创建好之后,服务器通过重启系统或重启网络服务,在网络初始化过程中,服务器的操作系统会逐一读取配置文件,从而建立ETH0、ETH1与BOND0、BOND1的绑定关系。

可选的,物理设备可以是GPU设备、NPU设备、网卡设备或多网口网卡设备中的网口,例如上述图3中所示的网卡310中的ETH3110和ETH3120,或图4中所示的网卡410和网卡420。

在一种可能的实现方式中,服务器可以通过向用户提供输入接口,该输入接口用于提示用户输入物理设备集合的创建参数,然后通过该输入接口获取用户输入的创建参数,并根据所述创建参数创建多个物理设备集合。

可选的,所述输入接口可以包括配置界面、应用程序编程接口(applicationprogramming interface,API)和输入模板等,用户基于服务器提供的配置界面、API或输入模板输入创建参数以使得服务器能够根据创建参数完成物理设备集合的创建。

示例性的,如图6所示,用户在服务器提供的配置界面中选择或输入物理设备的名称、物理设备的标识、物理设备集合的工作模式(例如主备模式)、物理设备集合的数量、每个物理设备集合中的备设备数量等创建参数,用户在选择完成所有参数配置之后,点击界面中的确认按钮,服务器即根据用户输入的创建参数创建相对应的物理设备集合。

应理解,在创建物理设备集合的过程中,同一个物理设备可以归属于不同的物理设备集合,例如服务器基于其中部署的物理设备创建了第一物理设备集合和第二物理设备集合,其中,第一物理设备为第一物理设备集合的主设备且同时为第二物理设备集合的备设备,如上述图3中的ETH3110或图4中的网卡410。

在另一种可能的实现方式中,服务器基于第一物理设备和第二物理设备创建第一物理设备集合和第二物理设备集合,所述第一物理设备集合的主设备为第一物理设备,所述第二物理设备集合的主设备为第二物理设备。

具体地,对于物理设备是单网络端口设备时,例如上述图4中所示的网卡410和网卡420,服务器可以根据物理设备的数量创建与之相同数量的物理设备集合,每个物理设备集合中的主设备不同。

容易理解,服务器在创建物理设备集合的过程中,通过指定不同的物理设备作为各个物理设备集合的主设备,这样可以使得各个物理设备都将参与通信过程,提高了资源利用率,且可以避免数据在不同物理设备之间进行跨设备传输,提高传输效率。

在另一种可能的实现方式中,服务器对于所述多个物理设备集合中的任意一个物理设备集合,根据业务应用和该物理设备集合中的各个备设备之间的亲和性对各个备设备成为主设备的优先级进行设置。

具体地,服务器在创建物理设备集合时可以指定物理设备集合的主设备以及物理设备集合的备设备,备设备是在主设备故障的情况下接替主设备从而继续提供服务。当物理设备集合中存在多个备设备时,服务器可以根据业务应用与各个备设备之间的亲和性对各个备设备成为主设备的优先级进行设置,以使得在原主设备故障时,优先级高的备设备优先成为新的主设备。

可选的,服务器可以根据所述业务应用所对应的处理器与备设备之间的连接关系对备设备进行优先级设置,例如,可以将与业务应用所对应的处理器直连的备设备的优先级设置为第一优先级,将与业务应用所对应的处理器相邻的备设备的优先级设置为第二优先级,在主设备故障时,第一优先级的备设备优先成为新的主设备。可以理解,通过这种方式设置优先级,可以在主设备故障时,有效降低链路时延。

示例性的,如图7所示,网卡710提供了ETH7110、网卡720提供了ETH7210、网卡730提供了ETH7310、网卡740提供了ETH7410,它们之间通过内部总线互连,基于上述四个网卡设备创建了四个物理设备集合,即BOND750、BOND760、BOND770和BOND780,其中,BOND750的主设备为网卡710,备设备为网卡720、网卡730和网卡740;BOND760的主设备为网卡720,备设备为网卡710、网卡730和网卡740;BOND770的主设备为网卡730,备设备为网卡710、网卡720和网卡740;BOND780的主设备为网卡740,备设备为网卡710、网卡720和网卡730,同时基于各个物理设备集合创建了相应的虚拟设备(例如VNIC7510、VNIC7610等)。服务器在创建物理设备集合时,对各个物理设备集合中的备设备的优先级进行设置,例如,对于BOND750来说,网卡720与网卡710直接相连,其对应的转发开销最小,因此将网卡720的优先级设置为第一优先级,网卡730与网卡710之间通过网卡720间接连接,其对应的转发开销相比网卡720较大,因此将网卡730的优先级设置为第二优先级,网卡740与网卡710之间通过网卡720和网卡730连接,其对应的转发开销更大,其对应的优先级别更低。在正常工作时,BOND750利用网卡710支持上层业务应用,当网卡710发生故障时,BOND750将优先选择网卡720成为新的主设备,接替网卡710的工作,此时,BOND750和BOND760共同使用网卡720以支持上层业务应用,完成数据转发处理。

或者,服务器根据各个备设备的可用资源大小对各个备设备进行优先级设置,例如,服务器获取各个备设备中的网口对接外部网络的带宽,将带宽最高的备设备的优先级设置为第一优先级,在主设备故障时,第一优先级的备设备优先成为新的主设备。通过这种方式,可以保证在主设备故障时,新的主设备存在足够的带宽资源支持上层业务应用。

或者,服务器根据各个备设备的升级开销对各个备设备进行优先级设置,例如,服务器计算每个备设备成为新的主设备所对应的资源开销(例如带宽资源开销、CPU资源开销和内存资源开销等),将资源开销最小的备设备的优先级设置为第一优先级,在主设备故障时,第一优先级的备设备优先成为新的主设备。可以看出,通过这种方式设置优先级,可以保证在主设备故障时,所重新选择的新的主设备消耗资源最少,能够提高系统资源利用率。

值得说明的是,服务器可以选择上述任意一种方式进行优先级设置,或者也可以结合上述多种方式进行优先级设置,本申请对此不作限定。例如,服务器针对上述三种方式分配权重,分别为40%,30%和30%,然后计算各个备设备的综合得分,并根据综合得分设置优先级,即业务应用所对应的CPU与备设备的连接关系占40%权重,备设备的可用资源大小占30%权重,备设备的升级开销占30%权重,计算各个备设备的综合得分,将综合得分最高备设备的优先级设置为第一优先级,在主设备故障时,第一优先级的备设备优先成为新的主设备。

S502:服务器针对所述多个物理设备集合中的任意一个物理设备集合创建一个或多个与所述物理设备集合对应的虚拟设备。

具体地,服务器在创建绑定设备之后,基于每一个物理设备集合,映射得到一个或多个虚拟设备以供上层业务应用使用,例如,上述图3中所示的VNIC3310和VNIC3320和图4中所示的VNIC4310和VNIC4320,应理解,虽然物理设备集合可以映射多个虚拟设备,但所有虚拟设备的业务流量实际均是通过物理设备集合的主设备完成转发处理,例如,图3中VNIC3310和VNIC3320的业务流量均实际通过ETH3110完成转发处理,图4中的VNIC4310和VNIC4320的业务流量均实际通过网卡410完成转发处理。

在另一种可能的实现方式中,服务器针对所述多个物理设备集合中的任意一个物理设备集合创建与所述业务应用相匹配的一个或多个虚拟设备,并通过所述虚拟设备向所述业务应用提供服务。

具体地,服务器基于各个物理设备集合创建与业务应用相匹配的虚拟设备,以使得业务应用可以通过相匹配的虚拟设备下发业务流量,从而可以实现多个物理设备能够同时参与通信过程,提高资源利用率,并可以实现多物理设备的负载均衡。

在另一种可能的实现方式中,服务器对所述虚拟设备的优先级进行设置,以使所述虚拟设备按照设置的优先级使用资源。

具体地,服务器在基于物理设备集合创建虚拟设备时,当创建了多个虚拟设备时,可以对各个虚拟设备的优先级进行设置,例如,可以根据业务应用与各个虚拟设备之间的匹配程度设置优先级,优先级高的虚拟设备优先使用资源,这样可以保证较为紧急的业务优先得到处理,避免流量拥塞。

S503:服务器利用所述虚拟设备接收业务应用下发的数据。

具体地,上层业务应用通过创建得到的虚拟设备下发业务流量,例如利用图3中所示的VNIC3310和VNIC3320或图4中所示的VNIC4310和VNIC4320下发业务流量,从而使得虚拟设备所对应的物理设备(例如ETH3110或网卡410)接收业务应用下发的业务流量并完成转发过程。

在另一种可能的实现方式中,服务器基于第一物理设备集合创建第一虚拟设备,若所述第一物理设备的业务流量超过第一预设阈值,调整所述第一虚拟设备与所述第一物理设备集合的对应关系,以使所述第一虚拟设备对应所述第二物理设备集合。

具体地,服务器在基于物理设备集合创建与物理设备集合相对应的虚拟设备之后,可以根据物理设备集合的主设备的状态,动态调整虚拟设备与物理设备集合的对应关系,当物理设备集合的主设备的业务流量超过预设阈值时,则说明主设备当前已经比较堵塞,不适合继续接收上层业务应用下发的业务流量,此时,服务器可以通过调整虚拟设备与物理设备集合的对应关系,将虚拟设备与其它物理设备集合(例如主设备空闲的物理设备集合)进行对应,从而使得上层业务流量通过其它物理设备集合的主设备完成转发处理,以减轻该物理设备集合的主设备的转发压力,提高整个系统的运行效率。其中,第一预设阈值可以根据实际情况进行设置,本申请对此不作限定。

示例性的,如上述图4所示的应用场景中,BOND430的主设备为网卡410,上层业务应用通过基于BOND430创建的VNIC4310和VNIC4320向网卡410下发业务流量,当网卡410的业务流量超过预设阈值时,调整VNIC4310和/或VNIC4320与BOND430的对应关系,以使得VNIC4310和/或VNIC4320对应BOND440,调整完成之后,网卡410的转发压力将得到缓解,上层业务应用下发的业务流量将通过VNIC4310和/或VNIC4320到达BOND440,最终通过网卡420完成转发处理,实现了网卡410和网卡420之间的负载均衡。

在另一种可能的实现方式中,第一物理设备集合包括第一物理设备和第二物理设备,若所述第一物理设备的业务流量超过第二预设阈值,调整所述业务流量的流向,以使所述第一物理设备集合通过所述第二物理设备下发所述业务流量。

具体地,服务器在创建物理设备集合之后,可以根据物理设备集合中各个物理设备的状态,动态调整业务流量的流向,当第一物理设备的业务流量超过第二预设阈值,则通过第一物理设备集合调整业务流量流向,以使得业务流量流向第二物理设备,从而减轻第一物理设备的处理压力,实现多物理设备负载均衡。

示例性的,在上述图4所示的场景中,BOND430包括网卡410和网卡420,当网卡410的业务流量超过预设阈值时,通过BOND430调整业务流量流向,以使得业务流量流向网卡420,从而缓解网卡410的处理压力,实现网卡410和网卡420的负载均衡。

在另一种可能的实现方式中,在基于物理设备集合创建虚拟设备之后,接收业务应用下发的测试信息,所述测试信息用于测试与所述多个物理设备集合对应的虚拟设备的处理时延,确定与所述多个物理设备集合对应的虚拟设备的处理时延,并选择最小处理时延所对应的虚拟设备支持所述业务应用。

具体地,业务应用需要依赖虚拟设备才能完成业务下发,但各个虚拟设备的性能存在差异,业务应用需要从中确定一个性能较优的虚拟设备并完成最终的业务下发。因此,业务应用在进行实际业务下发之前,需要对存在的所有虚拟设备进行性能测试,例如,业务应用可以遍历所有虚拟设备,并向每个虚拟设备发送测试信息,然后根据该测试信息的反馈信息确定各个虚拟设备的处理时延,然后选择最小时延对应的虚拟设备下发业务。

下面以四个单网口设备为例,对本申请提供的多物理设备绑定虚拟设备的方法进行进一步详细介绍。

如图8所示,服务器中部署了四个网卡,网卡810提供了ETH8110、网卡820提供了ETH8210、网卡830提供了ETH8310、网卡840提供了ETH8410,它们之间通过总线互连,服务器800基于上述四个网卡创建BOND850,并指定网卡810为主设备,网卡820、网卡830、网卡840为备设备且成为主设备的优先级依次降低,基于BOND850创建VNIC8510供上层业务应用使用,实际流量均通过网卡810;创建BOND860,并指定网卡820为主设备,网卡830、网卡840、网卡810为备设备且成为主设备的优先级依次降低,基于BOND860创建VNIC8610供上层业务应用使用,实际流量均通过网卡820;创建BOND870,并指定网卡830为主设备,网卡840、网卡820、网卡810为备设备且成为主设备的优先级依次降低,基于BOND870创建VNIC8710供上层业务应用使用,实际流量均通过网卡830;创建BOND880,并指定网卡840为主设备,网卡830、网卡820、网卡810为备设备且成为主设备的优先级依次降低,基于BOND880创建VNIC8810供上层业务应用使用,实际流量均通过网卡840。

可以看出,每个物理设备都是主设备,都将参与通信过程,提高了资源利用率,且实现了跨设备的网口资源冗余备份,提高了系统可靠性,每个物理设备使用自身的以太网口进行转发处理,可以避免数据跨设备转发。此外,通过设置备设备成为主设备的优先级,保证在主设备故障的情况下,可以选择优先级最高的备设备成为新的主设备,从而降低链路时延。

需要说明的是,图8所示的多物理设备绑定虚拟设备的方法与图5的原理一致,可以参照图5中的S501至S503步骤中的相关描述,为了简洁,在此不再赘述。

上述详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关装置。

参见图9,图9是本申请实施例提供的一种计算设备的结构示意图,该计算设备可以是上述图5所述的方法实施例中的服务器,可以执行图5所述的多物理设备绑定虚拟设备的方法实施例中以服务器为执行主体的方法和步骤。如图9所示,该计算设备900包括创建单元910和处理单元920。

其中,

创建单元910,用于基于多个物理设备创建多个物理设备集合,其中,所述多个物理设备集合中的至少两个物理设备集合包括同一个物理设备;

所述创建单元910,还用于针对所述多个物理设备集合中的任意一个物理设备集合创建一个或多个与所述物理设备集合对应的虚拟设备;

处理单元920,用于利用所述虚拟设备接收业务应用下发的数据。

具体地,所述创建单元910用于执行前述步骤S501和步骤S502,且可选的执行前述步骤中可选的方法,所述处理单元920用于执行前述步骤S503,且可选的执行前述步骤中可选的方法。上述两个单元之间互相可以通过通信通路进行数据传输,应理解,计算设备900包括的各单元可以为软件单元、也可以为硬件单元、或部分为软件单元部分为硬件单元。

作为一个实施例,所述计算设备900还包括接收单元930,所述接收单元930,用于提供输入接口;所述创建单元910,还用于根据所述创建参数创建多个物理设备集合。

作为一个实施例,所述创建单元910,具体用于:基于第一物理设备和第二物理设备创建第一物理设备集合和第二物理设备集合,所述第一物理设备集合和所述第二物理设备集合包括一个主设备和至少一个备设备,其中,所述第一物理设备集合的主设备为所述第一物理设备,所述第二物理设备集合的主设备为所述第二物理设备。

作为一个实施例,所述创建单元910,还用于基于第一物理设备集合创建第一虚拟设备;所述处理单元920,还用于在所述第一物理设备的业务流量超过第一预设阈值时,调整所述第一虚拟设备与所述第一物理设备集合的对应关系,以使所述第一虚拟设备对应所述第二物理设备集合。

作为一个实施例,所述第一物理设备集合包括所述第一物理设备和所述第二物理设备,所述处理单元920,还用于在所述第一物理设备的业务流量超过第二预设阈值时,调整所述业务流量的流向,以使所述第一物理设备集合通过所述第二物理设备下发所述业务流量。

作为一个实施例,所述处理单元920,还用于根据业务应用和所述多个物理设备集合中的任意一个物理设备集合中的各个备设备之间的亲和性对各个备设备成为主设备的优先级进行设置。

作为一个实施例,所述处理单元920,具体用于:根据业务应用所对应的处理器与所述各个备设备之间的连接关系对所述各个备设备成为主设备的优先级进行设置;或者,根据所述各个备设备的可用资源大小对所述各个备设备成为主设备的优先级进行设置;或者,根据所述各个备设备升级为主设备所消耗的资源大小对所述各个备设备成为主设备的优先级进行设置。

作为一个实施例,所述接收单元930,还用于接收所述业务应用下发的测试信息,所述测试信息用于测试与所述多个物理设备集合对应的虚拟设备的处理时延;所述处理单元920,还用于确定与所述多个物理设备集合对应的虚拟设备的处理时延,并选择最小处理时延所对应的虚拟设备接收所述业务应用下发的数据。

作为一个实施例,所述处理单元920,还用于对所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备的优先级进行设置,以使所述一个或多个与所述多个物理设备集合中的任意一个物理设备集合对应的虚拟设备按照设置的优先级使用资源。

应理解,上述计算设备的结构仅仅作为一种示例,不应构成具体限定,可以根据需要对计算设备的各个单元进行增加、减少或合并。此外,计算设备中的各个单元的操作和/或功能分别为了实现上述图5所描述的方法的相应流程,为了简洁,在此不再赘述。

参见图10,图10是本申请实施例提供的又一种计算设备的结构示意图。如图10所示,该计算设备10包括:处理器11、通信接口12以及存储器13,所述处理器11、通信接口12以及存储器13通过内部总线14相互连接。

所述计算设备10可以是图5所述方法实施例中的服务器。图5所述的方法实施例中的服务器所执行的功能实际上是由所述服务器的处理器11来执行。

所述处理器11可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。

总线14可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线14可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。

存储器13可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器13也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器13还可以包括上述种类的组合。程序代码可以是用来实现计算设备900所示的功能单元,或者用于实现图5所示的方法实施例中以服务器为执行主体的方法步骤。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤,以及实现上述图9所描述的任意一个功能单元的功能。

本申请实施例还提供了一种计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。上述所涉及的设备的各组成单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。

在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号