虚拟网络的分割方法、装置和系统与流程

文档序号:30962256发布日期:2022-07-30 14:09阅读:135来源:国知局
虚拟网络的分割方法、装置和系统与流程

1.本技术涉及云计算领域,具体而言,涉及一种虚拟网络的分割方法、装置和系统。


背景技术:

2.随着虚拟网络规模的不断增大,厂商逐渐开始采用软硬件结合的方案来实现虚拟边界网关节点。由于客户对转发性能的要求,大部分流量都需要被硬件转发,因此,可以将一个虚拟网络的配置分割到多组虚拟边界网关。但是,当客户单个虚拟网络的规模接近或超过单组虚拟边界网关能够支持的最大容量时,导致该虚拟边界网关存在瓶颈。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种虚拟网络的分割方法、装置和系统,以至少解决相关技术中的虚拟网络的分割方法无法应对单个超大规模虚拟网络的技术问题。
5.根据本技术实施例的一个方面,提供了一种虚拟网络的分割方法,包括:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
6.根据本技术实施例的另一方面,还提供了一种虚拟网络的分割装置,包括:获取模块,用于获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;确定模块,用于基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;分割模块,用于对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;调度模块,用于将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
7.根据本技术实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例中的方法。
8.根据本技术实施例的另一方面,还提供了一种计算机终端,包括:存储器和处理器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述实施例中的方法。
9.根据本技术实施例的另一方面,还提供了一种虚拟网络的分割系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预
设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
10.在本技术实施例中,通过虚拟网络中的多组虚拟边界网关的资源使用率,确定资源使用率大于第一预设阈值的第一虚拟边界网关,然后对第一虚拟边界网关部署的目标子网进行分割,得到多个分片,并将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关,达到虚拟网络的两级分割的目的。容易注意到的是,在第一虚拟边界网关的资源使用率较大的情况下,可以进一步对目标子网进行分割,得到多个分片,从而满足超大规模虚拟网络中,vpc规模大,子网规模大的场景,降低单组虚拟边界网关的资源开销,进而解决了相关技术中的虚拟网络的分割方法无法应对单个超大规模虚拟网络的技术问题。
附图说明
11.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
12.图1是根据现有技术的一种虚拟网络的物理拓扑的示意图;
13.图2是根据本技术实施例的一种一种用于实现虚拟网络的分割方法的计算机终端的硬件结构框图;
14.图3是根据本技术实施例的一种虚拟网络的分割方法的流程图;
15.图4是根据本技术实施例的一种虚拟网络的分割装置的示意图;
16.图5是根据本技术实施例的一种计算机终端的结构框图。
具体实施方式
17.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
18.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
19.首先,在对本技术实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
20.虚拟专有网络:virtual private cloud,简称为vpc,可以是一个公共云计算资源的动态配置池,需要使用加密协议、隧道协议和其他安全程序,在企业和云服务提供商之间传输数据。
21.虚拟边界网关:virtual edge gateway,简称为veg,可以是vpc的边界设备,用于将该vpc内的报文转发给internet或其他vpc。
22.虚拟机:virtual machine,简称为vm,可以是指通过软件模拟的具有完整硬件系统功能的、运行在一个安全隔离环境中的完整计算机系统。
23.在云计算网络中,用户的虚拟网络(vpc)在底层实现上,往往由在物理机上的虚拟交换机与虚拟边界网关(veg)组成。虚拟交换机位于物理机上,vm发出的报文首先发给虚拟交换机,当发现报文需要发出本vpc时,例如发给internet,或者发送给其他vpc时,则需要先发给该vpc的边界设备,即veg,由veg处理后发出vpc。随着云网络规模的不断扩大,云厂商开始选择使用网络配置容量相对较低硬件,例如asic,fpga来代替通用x86服务器,作为用户的veg。而同时,这些性能较好的硬件veg,可能支持的容量低于用户需求的虚拟机数量,如图1所示,用户的vpc有500万的vm,但单组veg仅支持200万的vm。
24.于客户对转发性能的要求,大部分流量都需要被硬件转发,因此,对于虚拟边界网关节点,通常需要采用水平扩展的方式,将一个虚拟网络的配置分割到多组veg。传统的分割方法可以将不同的虚拟网络按照一定的方式(例如随机、round robin)静态分割到多组veg,如图1所示,可以将用户的vpc中250万vm分割到veg1,150万vm分割到veg2,100万vm分割到veg3。但是,该方案无法应对单个虚拟网络的规模接近或超过单组网关能够支持的最大容量的场景,同时,也无法应对多组veg之间配置不均衡,导致个别veg成为瓶颈的问题。
25.为了解决上述问题,本技术提供了一种新的虚拟网络的分割方法,按照子网(subnet)、分片(slice)两级概念,将虚拟网络分割成多个分片,将分片分配到多组veg,从而满足超大规模虚拟网络的场景。而且,基于网络配置密度因子对分片进行动态调度,在单组veg配置过多时,可以将配置调度到其他veg。
26.实施例1
27.根据本技术实施例,还提供了一种虚拟网络的分割方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
28.本技术实施例所提供的方法实施例可以在计算机终端、服务器、云服务器或者类似的运算装置中执行。图2示出了一种用于实现虚拟网络的分割方法的计算机终端的硬件结构框图。如图2所示,计算机终端20可以包括一个或多个(图中采用202a、202b,
……
,202n来示出)处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输装置206。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为bus总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
29.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端20中的其他元件中的任意一个内。该数据处理电路作为一种处理器控制(例如与接口
连接的可变电阻终端路径的选择)。
30.存储器204可用于存储应用软件的软件程序以及模块,如本技术实施例中的虚拟网络的分割方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟网络的分割方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
31.传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
32.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端20的用户界面进行交互。
33.在上述运行环境下,本技术提供了如图3所示的虚拟网络的分割方法。图3是根据本技术实施例的一种虚拟网络的分割方法的流程图。如图3所示,该方法包括如下步骤:
34.步骤s302,获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到。
35.在一个vpc中,网络配置主要有两类:vpc路由、vpc内vm的配置,其中,vpc路由可以由客户配置到每个子网,即每个子网拥有独立的路由条目表,这些路由条目对本子网的所有vm生效,即使本子网内的vm数量增加,其对应的路由条目数量不会增加。vpc内vm的配置可以是指每个vm所在物理机的ip地址、mac地址等信息,该配置会随着vm数量增加而增加。通常来说,vpc路由变化不太频繁,而vpc内vm的配置会随着vm的创建和删除而动态变化。
36.针对vpc路由和vpc内vm的配置,veg可以设置两块独立的存储空间,分别是存储路由的vpc_route_mem,和存储vm配置的vpc_vm_mem。由于vm配置会随着网络规模扩大而线性上涨,因此,本技术中主要考虑vpc_vm_mem规格小于虚拟网络vm规模的场景。
37.在一种可选的实施例中,可以获取veg上述两种资源的使用率,分别描述为vpc_route_mem_usage和vpc_vm_mem_usage,其中,使用率可以是指当前使用的资源/最大规格的值。
38.步骤s304,基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值。
39.上述步骤中的第一预设阈值可以是预先设定的资源使用率阈值,当某组veg的资源使用率超过该阈值时,确定该组veg的配置过多,需要对虚拟网络进行分片,并将分片调度至其他veg。
40.步骤s306,对第一虚拟边界网关部署的目标子网进行分割,得到多个分片。
41.传统分割方法主要考虑vpc路由是子网粒度的资源,因此,按照子网进行分割,但是,只是按照子网分割,当单个子网的vm数量过多时,可能会超过单网关的vpc_vm_mem容
量,同时,由于子网创建时,无法预测后续vm数量,可能导致后续多组veg的vpc_vm_mem的使用率不均衡。例如,仍以如图1所示的虚拟网络场景为例,可以将子网1、子网3分割到veg1,而子网2、子网4分割到veg2,随着用户将大部分vm创建到子网1和3,会导致veg1的vpc_vm_mem使用率远超过veg2,veg1的vpc_vm_mem可能会成为瓶颈。
42.为了将vpc路由和vpc内的vm配置水平分割到多组veg,可以采用了两级分割,第一级为子网,第二级为子网分片。在一种可选的实施例中,目标子网可以按照二分法划分,划分成2的n次方个slice(即上述的多个分片)。
43.需要说明的是,在子网刚创建时,默认仅有一个slice。
44.步骤s308,将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
45.在一种可选的实施例中,当第一veg的资源使用率较高时,可以将当前的部分子网划分成slice后,再调度到其他veg。
46.通过本技术上述实施例提供的技术方案,通过虚拟网络中的多组虚拟边界网关的资源使用率,确定资源使用率大于第一预设阈值的第一虚拟边界网关,然后对第一虚拟边界网关部署的目标子网进行分割,得到多个分片,并将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关,达到虚拟网络的两级分割的目的。容易注意到的是,在第一虚拟边界网关的资源使用率较大的情况下,可以进一步对目标子网进行分割,得到多个分片,从而满足超大规模虚拟网络中,vpc规模大,子网规模大的场景,降低单组虚拟边界网关的资源开销,进而解决了相关技术中的虚拟网络的分割方法无法应对单个超大规模虚拟网络的技术问题。
47.在本技术上述实施例中,将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关,包括:获取多个分片的分片信息和第二虚拟边界网关的网关信息;基于分片信息和网关信息,生成目标分片对应的调度因子,其中,调度因子用于表征目标分片调度至第二虚拟边界网关后对第二虚拟边界网关的资源使用率的影响程度;基于调度因子,将目标分片调度至第二虚拟边界网关。
48.上述步骤中的分片信息可以是分割后的每个分片包含的vm数量、活跃ip和理论最大ip,但不仅限于此,任何会影响资源使用率的分片相关的信息均可以作为分片信息。上述步骤中的网关信息可以是第一veg中已存储的所有子网的子网路由数量,以及所有子网分割得到的slice,但不仅限于此,任何会影响资源使用率的veg相关的信息均可以作为网关信息。
49.在一种可选的实施例中,为了避免静态分割导致单组veg的配置过多,称为瓶颈点的问题,引入了基于调度因子的动态调度算法,使得分割得到的slice的大小可以动态调整,以便于动态平衡多组veg之间的资源使用率。
50.如下表1示出了vm的虚拟ip、子网、slice及所属veg的关系,由表1可知,每个veg上仅有相关slice的配置信息。如果虚拟交换机未将vm的报文发送给分片所属的veg,则veg因为没有相关配置,无法正确转发报文。因此,虚拟交换机和虚拟边界网关上,均维护一张分片导流表。如表2所示,该路由表为每个分片的地址段的下一跳,指向分片所属的veg。分片导流表作为一张路由表,也会占用vpc_route_mem,因此分片导流表也具有一定的规格,不能配置过多引流规则。
51.表1
52.虚拟机ip地址所属虚拟子网所属子网分片所属veg10.0.0.1subnet1sub1-slice1veg110.0.0.2subnet1sub1-slice1veg110.0.0.129subnet1sub1-slice2veg210.0.1.1subnet2sub2-slice1veg1
53.表2
54.目的地址下一跳所属分片10.0.0.0/25gateway1sub1-slice110.0.0.128.0/25gateway2sub1-slice210.0.1.0/24gateway1sub2-slice1
55.因此,如果要解决单个子网过大的问题,或者让配置尽量在多组veg之间均衡,那么将子网分割成尽可能小的slice,效果更好,但分割的过小,又会导致分片引流表条目过多。为了能保证支持超大规模vpc,本技术提供了一种基于网络配置密度因子(即上述的调度因子)的动态调度算法,当该因子越高,则越倾向于将该子网进行分片并调度到其他veg,让调度能兼顾调度效率以及分片导流表的容量。
56.在本技术上述实施例中,资源使用率包括:用于存储路由的第一资源的第一使用率,和用于存储虚拟机配置的第二资源的第二使用率,其中,基于分片信息和网关信息,生成调度因子,包括:基于网关信息,确定第一因子,其中,第一因子用于表征对第一使用率的影响程度;基于分片信息,确定第二因子,其中,第一因子用于表征对第二使用率的影响程度;对第一因子和第二因子进行融合,得到调度因子。
57.上述步骤中的第一资源可以是存储路由的vpc_route_mem,第一使用率描述为vpc_route_mem_usage;第二资源可以是存储vm配置的vpc_vm_mem,第二使用率描述为vpc_vm_mem_usage。
58.在一种可选的实施例中,对于路由配置容量角度:每个子网都有自己独立的路由表,仍以如图1所示的虚拟网络场景为例,如果veg2没有子网1的slice,此时将子网1的一个slice从veg1调度到veg2,则veg2上需要增加子网1的路由;而如果veg2上已经包含子网1的slice,那么调度一个新slice不会导致路由增加。因此,可以引入基于第二veg的网关信息所确定的第一因子。对于vm配置容量角度:在调度过程中,如果选择仅按照某个slice的ip数量来决定调度,可能导致一个大的子网被分割多次,进而导致子网引流表的膨胀,以及管理的复杂度。仍以如图1所示的虚拟网络场景为例,假如子网1有16万活跃ip,另外一个子网2有4万ip,假设ip分布是均匀的,均在veg1上,根据容量,需要调度4万ip到veg2。此时可以选择将子网1进行两次二分法拆分,将其中一个分片调度到veg2,也可以直接选择将子网2调度到veg2,但选择子网1的分片会增加子网引流表的使用率,称之为“子网碎片”现象。为了防止类似“子网碎片”的现象产生,可以引入基于分片信息确定的第二因子。将两个因子综合起来,即可得到调度因子,该因子越高,意味着调度该分片,能在降低本veg的vpc_vm_mem使用率的同时,尽可能的减少目的veg的vpc_route_mem增加。
59.在本技术上述实施例中,网关信息至少包括:第二虚拟边界网关部署的子网的路由表和分片信息,其中,基于网关信息,确定第一因子,包括:基于分片信息,判定第二虚拟
边界网关是否包含目标子网的分片,得到判定结果;基于判定结果,生成第一参数;获取第一因子对应的第一系数;获取第一参数、第一系数和路由表数量的乘积,得到第一因子。
60.在一种可选的实施例中,第一因子a可以采用如下公式得到:
61.a=(1-第二veg是否包含目标子网的slice)*第一系数*路由表数量,
62.其中,第一参数为(1-第二veg是否包含目标子网的slice),第一系数为路由密度系数,是一个可调节系数,可以根据veg的vpc_vm_mem的关注度进行调整,更加关注vpc_vm_mem时可以将该系数调整的较低,此时,调度策略更关注是否可以降低第一veg的vpc_vm_mem_usage。
63.在本技术上述实施例中,网关信息还包括:第一资源的第一容量和第二资源的第二容量,其中,获取第一因子对应的第一系数,包括:获取第一容量和第二容量的比值;基于比值、第一使用率和第二使用率,确定第一系数。
64.在一种可选的实施例中,可以根据实际veg的vpc_route_mem与vpc_vm_mem的比例,以及当前两种资源的使用率,进行动态调节。
65.在本技术上述实施例中,分片信息至少包括:虚拟机数量、活跃网络地址和最大网络地址,其中,基于分片信息,确定第二因子,包括:获取活跃网络地址和最大网络地址的比值,得到网络地址密度;基于目标分片的网络地址密度和多个分片中其他分片的网络地址密度,生成第二参数;基于第二参数和第二系数,生成第三参数;获取第三参数和目标虚拟机数量的乘积,得到第二因子,其中,目标虚拟机数量用于表征目标分片包含的虚拟机的数量。
66.在一种可选的实施例中,首先,本技术定义了网络地址密度,即ip密度(ipdensity,可以简称为density)的概念,ip密度=本slice的活跃ip/本slice的理论最大ip。根据云计算场景下的经验,如果一个用户的子网进行分片后,如果一个slice的ip密度要明显多与另外一个slice,即兄弟slice(sibling slice),意味着该子网的ip还有可能有较大增长。此外,如果一个slice的ip密度明显大于另一个slice,则说明本次拆分的效率并不高,不如直接调度父节点,避免子网碎片。
67.因此,第二因子b可以采用如下公式得到:
68.b=(1-(本slice与sibling slice的ip密度差的绝对值)*第二系数)*目标虚拟机数量,
69.其中,第二参数为(本slice与sibling slice的ip密度差的绝对值),第三参数为(1-(本slice与sibling slice的ip密度差的绝对值)*第二系数),第二系数为ip密度系数,是一个可调节系数,可以根据veg的子网分流表,即vpc_route_mem的关注度进行调整,更加关注子网分流表时可以将该系数调整的较高,此时,调度策略更关注分片是否会导致子网分流表的条目数增加;当子网分流表的规模较大或使用率很低时,可以将该系数降低。
70.需要说明的是,由于不同veg的类型可以不同,导致子网分流表、vpc_route_mem、vpc_vm_mem并不相同,以及当前运行状态不相同,因此,在本技术实施例中,可以根据实际veg的类型调整第一系数和第二系数的取值。
71.在本技术上述实施例中,对第一因子和第二因子进行融合,得到调度因子,包括:获取第二因子和第一因子的差值,得到调度因子。
72.在一种可选的实施例中,调度因子可以采用如下公式得到:
73.调度因子=b-a=(1-(本slice与sibling slice的ip密度差的绝对值)*第二系数)*目标虚拟机数量-(1-第二veg是否包含目标子网的slice)*第一系数*路由表数量。
74.在本技术上述实施例中,基于调度因子,将目标分片调度至第二虚拟边界网关,包括:将调度因子与第二预设阈值进行比较;在调度因子大于等于第二预设阈值的情况下,将目标分片调度至第二虚拟边界网关。
75.在一种可选的实施例中,由于调度因子越高,意味着调度该分片,能在降低本veg的vpc_vm_mem使用率的同时,尽可能的减少目的veg的vpc_route_mem增加。因此,可以预先设置一个第二预设阈值,该阈值为调度阈值,限定了调度目标分片的最小值,只有调度因子大于该最小值,才能将目标分片调度至第二veg,否则不进行调度。
76.例如,假设veg1容量100,当前已使用容量50,部署了子网vsw1和vsw2;veg2容量100,当前已使用容量50,部署了子网vsw3,其中,vsw1包含50个vm,vsw2包含0个vm,vsw3包含50个vm。当vsw2增长到30,此时veg1总容量达到80,超过容量阈值,开始分片。先尝试进行二分法:vsw2-slice1 25,vsw2-slice2 5,此时,由于本slice和sibling slice的密度差较大,计算出的调度因子较低,低于调度阈值,不进行调度;当vsw2增长到45,vsw2-slice1 25,vsw2-slice2 20,此时调度因子较高,可以将vsw2-slice2,调度到veg2。
77.在本技术上述实施例中,基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,包括:比较每组虚拟边界网络的第一使用率与预设阈值中的第一预设值,及第二使用率与预设阈值中的第二预设值;获取第一使用率大于第一预设值的虚拟边界网关,或第二使用率大于第二预设值的虚拟边界网关,得到第一虚拟边界网关。
78.上述步骤中的第一资源可以是存储路由的vpc_route_mem,第一使用率描述为vpc_route_mem_usage;第二资源可以是存储vm配置的vpc_vm_mem,第二使用率描述为vpc_vm_mem_usage。针对第一使用率和第二使用率,可以预先分别设定一个使用率阈值,即上述的第一预设值和第二预设值,当第一使用率大于第一预设值时,表明第一资源紧张;当第二使用率大于第二预设值时,表明第二资源紧张。
79.由上可知,veg包含两种资源,因此,可以分别获取到两种资源的使用率,由于vm配置会随着网络规模扩大而线性上涨,导致vpc_vm_mem_usage变化较大,而vpc路由变化不太频繁,因此,vpc_route_mem_usage变化不大。在一种可选的实施例中,可以仅考虑vpc_vm_mem_usage来确定是否需要对虚拟网络进行分割,也即,当第一使用率大于第一预设值时,表明第一资源紧张,需要对虚拟网络进行分割,因此可以采用二分法对目标子网进行分割,得到多个分片;否则,表明第一资源不紧张,则无需对虚拟网络进行分割。在另一种可选的实施例中,可以综合考虑vpc_route_mem_usage和vpc_vm_mem_usage,当第一使用率大于第一预设值,或第二使用率大于第二预设值时,表明第一资源或第二资源紧张,需要对虚拟网络进行分割,因此可以采用二分法对目标子网进行分割,得到多个分片;否则,表明两个资源均不紧张,无需对虚拟网络进行分割。在又一种可选的实施例中,可以综合考虑vpc_route_mem_usage和vpc_vm_mem_usage,当第一使用率大于第一预设值,且第二使用率大于第二预设值时,表明两个资源均紧张,需要对虚拟网络进行分割,因此可以采用二分法对目标子网进行分割,得到多个分片;否则,表明有一个资源均不紧张,无需对虚拟网络进行分割。
80.在实际应用场景中,可以根据veg能够支持的容量以及用户需求的虚拟机数量,选
择能够满足用户需求的判定方案来判断是否需要对虚拟网络进行分割。
81.在本技术上述实施例中,对第一虚拟边界网关部署的目标子网进行分割,得到多个分片,包括:按照二分法对目标子网进行分割,得到多个分片。
82.为了避免目标子网分割方法不合适,基于分割后的多个分片确定调度因子,导致调度因子不满足动态调度新需求,在一种可选的实施例中,可以采用二分法对目标子网进行分割,使得每次分割后的两个分片包含的vm数量均衡,不同分片之间的密度差较小。
83.例如,假设目标子网包含30个vm,可以按照二分法进行分割,得到两个分片,一个分片包含25个vm,另一个分片包含5个vm。假设目标子网包含45个vm,可以按照二分法进行分割,得到两个分片,一个分片包含25个vm,另一个分片包含20个vm。
84.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
85.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
86.实施例2
87.根据本技术实施例,还提供了一种用于实施上述虚拟网络的分割方法的虚拟网络的分割装置,如图4所示,该装置400包括:获取模块402、确定模块404、分割模块406和调度模块408。
88.其中,获取模块402用于获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;确定模块404用于基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;分割模块406用于对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;调度模块408用于将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
89.此处需要说明的是,上述获取模块402、确定模块404、分割模块406和调度模块408对应于实施例1中的步骤s302至步骤s308,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
90.在本技术上述实施例中,调度模块包括:信息获取单元、因子生成单元和调度单元。
91.其中,信息获取单元用于获取多个分片的分片信息和第二虚拟边界网关的网关信息;因子生成单元用于基于分片信息和网关信息,生成目标分片对应的调度因子,其中,调度因子用于表征目标分片调度至第二虚拟边界网关后对第二虚拟边界网关的资源使用率
的影响程度;调度单元用于基于调度因子,将目标分片调度至第二虚拟边界网关。
92.在本技术上述实施例中,资源使用率包括:用于存储路由的第一资源的第一使用率,和用于存储虚拟机配置的第二资源的第二使用率,其中,因子生成单元包括:第一因子确定子单元、第二因子确定子单元和融合子单元。
93.其中,第一因子确定子单元用于基于网关信息,确定第一因子,其中,第一因子用于表征对第一使用率的影响程度;第二因子确定子单元用于基于分片信息,确定第二因子,其中,第一因子用于表征对第二使用率的影响程度;融合子单元用于对第一因子和第二因子进行融合,得到调度因子。
94.在本技术上述实施例中,网关信息至少包括:第二虚拟边界网关部署的子网的路由表和分片信息,其中,第一因子确定子单元还用于基于分片信息,判定第二虚拟边界网关是否包含目标子网的分片,得到判定结果;基于判定结果,生成第一参数;获取第一因子对应的第一系数;获取第一参数、第一系数和路由表数量的乘积,得到第一因子。
95.在本技术上述实施例中,网关信息还包括:第一资源的第一容量和第二资源的第二容量,其中,第一因子确定子单元还用于获取第一容量和第二容量的比值;基于比值、第一使用率和第二使用率,确定第一系数。
96.在本技术上述实施例中,分片信息至少包括:虚拟机数量、活跃网络地址和最大网络地址,其中,第二因子确定子单元还用于获取活跃网络地址和最大网络地址的比值,得到网络地址密度;基于目标分片的网络地址密度和多个分片中其他分片的网络地址密度,生成第二参数;基于第二参数和第二系数,生成第三参数;获取第三参数和目标虚拟机数量的乘积,得到第二因子,其中,目标虚拟机数量用于表征目标分片包含的虚拟机的数量。
97.在本技术上述实施例中,融合子单元还用于获取第二因子和第一因子的差值,得到调度因子。
98.在本技术上述实施例中,调度单元还用于将调度因子与第二预设阈值进行比较;在调度因子大于等于第二预设阈值的情况下,将目标分片调度至第二虚拟边界网关。
99.在本技术上述实施例中,确定模块包括:比较单元和网关确定单元。
100.其中,比较单元用于比较每组虚拟边界网络的第一使用率与预设阈值中的第一预设值,及第二使用率与预设阈值中的第二预设值;网关确定单元用于获取第一使用率大于第一预设值的虚拟边界网关,或第二使用率大于第二预设值的虚拟边界网关,得到第一虚拟边界网关。
101.在本技术上述实施例中,分割模块包括:分割单元。
102.其中,分割单元用于按照二分法对目标子网进行分割,得到多个分片。
103.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
104.实施例3
105.根据本技术实施例,还提供了一种用于虚拟网络的分割系统,包括:
106.处理器;
107.以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定
多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
108.上述的虚拟网络的分割系统可以是虚拟网络的管理系统,包含一个或多个服务器,也可以是云计算网络,包含一个或多个云服务器,但不仅限于此。
109.存储器还用于为处理器提供处理一下处理步骤的指令:获取多个分片的分片信息和第二虚拟边界网关的网关信息;基于分片信息和网关信息,生成目标分片对应的调度因子,其中,调度因子用于表征目标分片调度至第二虚拟边界网关后对第二虚拟边界网关的资源使用率的影响程度;基于调度因子,将目标分片调度至第二虚拟边界网关。
110.存储器还用于为处理器提供处理一下处理步骤的指令:基于网关信息,确定第一因子,其中,第一因子用于表征对第一使用率的影响程度;基于分片信息,确定第二因子,其中,第一因子用于表征对第二使用率的影响程度;对第一因子和第二因子进行融合,得到调度因子。
111.存储器还用于为处理器提供处理一下处理步骤的指令:基于分片信息,判定第二虚拟边界网关是否包含目标子网的分片,得到判定结果;基于判定结果,生成第一参数;获取第一因子对应的第一系数;获取第一参数、第一系数和路由表数量的乘积,得到第一因子。
112.存储器还用于为处理器提供处理一下处理步骤的指令:第一资源的第一容量和第二资源的第二容量,其中,获取第一因子对应的第一系数,包括:获取第一容量和第二容量的比值;基于比值、第一使用率和第二使用率,确定第一系数。
113.存储器还用于为处理器提供处理一下处理步骤的指令:获取活跃网络地址和最大网络地址的比值,得到网络地址密度;基于目标分片的网络地址密度和多个分片中其他分片的网络地址密度,生成第二参数;基于第二参数和第二系数,生成第三参数;获取第三参数和目标虚拟机数量的乘积,得到第二因子,其中,目标虚拟机数量用于表征目标分片包含的虚拟机的数量。
114.存储器还用于为处理器提供处理一下处理步骤的指令:获取第二因子和第一因子的差值,得到调度因子。
115.存储器还用于为处理器提供处理一下处理步骤的指令:将调度因子与第二预设阈值进行比较;在调度因子大于等于第二预设阈值的情况下,将目标分片调度至第二虚拟边界网关。
116.存储器还用于为处理器提供处理一下处理步骤的指令:比较每组虚拟边界网络的第一使用率与预设阈值中的第一预设值,及第二使用率与预设阈值中的第二预设值;获取第一使用率大于第一预设值的虚拟边界网关,或第二使用率大于第二预设值的虚拟边界网关,得到第一虚拟边界网关。
117.存储器还用于为处理器提供处理一下处理步骤的指令:按照二分法对目标子网进行分割,得到多个分片。
118.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
119.实施例4
120.本技术的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。
121.可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。上述计算机终端还可以是位于云计算网络的多个云服务器中的至少一个云服务器。
122.在本实施例中,上述计算机终端可以执行虚拟网络的分割方法中以下步骤的程序代码:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
123.可选地,图5是根据本技术实施例的一种计算机终端的结构框图。如图5所示,该计算机终端a可以包括:一个或多个(图中仅示出一个)处理器502、以及存储器504。
124.其中,存储器可用于存储软件程序以及模块,如本技术实施例中的虚拟网络的分割方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟网络的分割方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
125.处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
126.可选的,上述处理器还可以执行如下步骤的程序代码:获取多个分片的分片信息和第二虚拟边界网关的网关信息;基于分片信息和网关信息,生成目标分片对应的调度因子,其中,调度因子用于表征目标分片调度至第二虚拟边界网关后对第二虚拟边界网关的资源使用率的影响程度;基于调度因子,将目标分片调度至第二虚拟边界网关。
127.可选的,资源使用率包括:用于存储路由的第一资源的第一使用率,和用于存储虚拟机配置的第二资源的第二使用率,上述处理器还可以执行如下步骤的程序代码:基于网关信息,确定第一因子,其中,第一因子用于表征对第一使用率的影响程度;基于分片信息,确定第二因子,其中,第一因子用于表征对第二使用率的影响程度;对第一因子和第二因子进行融合,得到调度因子。
128.可选的,网关信息至少包括:第二虚拟边界网关部署的子网的路由表和分片信息,上述处理器还可以执行如下步骤的程序代码:基于分片信息,判定第二虚拟边界网关是否
包含目标子网的分片,得到判定结果;基于判定结果,生成第一参数;获取第一因子对应的第一系数;获取第一参数、第一系数和路由表数量的乘积,得到第一因子。
129.可选的,网关信息还包括:第一资源的第一容量和第二资源的第二容量,上述处理器还可以执行如下步骤的程序代码:获取第一容量和第二容量的比值;基于比值、第一使用率和第二使用率,确定第一系数。
130.可选的,分片信息至少包括:虚拟机数量、活跃网络地址和最大网络地址,上述处理器还可以执行如下步骤的程序代码:获取活跃网络地址和最大网络地址的比值,得到网络地址密度;基于目标分片的网络地址密度和多个分片中其他分片的网络地址密度,生成第二参数;基于第二参数和第二系数,生成第三参数;获取第三参数和目标虚拟机数量的乘积,得到第二因子,其中,目标虚拟机数量用于表征目标分片包含的虚拟机的数量。
131.可选的,上述处理器还可以执行如下步骤的程序代码:获取第二因子和第一因子的差值,得到调度因子。
132.可选的,上述处理器还可以执行如下步骤的程序代码:将调度因子与第二预设阈值进行比较;在调度因子大于等于第二预设阈值的情况下,将目标分片调度至第二虚拟边界网关。
133.可选的,上述处理器还可以执行如下步骤的程序代码:比较每组虚拟边界网络的第一使用率与预设阈值中的第一预设值,及第二使用率与预设阈值中的第二预设值;获取第一使用率大于第一预设值的虚拟边界网关,或第二使用率大于第二预设值的虚拟边界网关,得到第一虚拟边界网关。
134.可选的,上述处理器还可以执行如下步骤的程序代码:按照二分法对目标子网进行分割,得到多个分片。
135.采用本技术实施例,提供了一种虚拟网络的分割方案。通过在第一虚拟边界网关的资源使用率较大的情况下,可以进一步对目标子网进行分割,得到多个分片,从而满足超大规模虚拟网络中,vpc规模大,子网规模大的场景,降低单组虚拟边界网关的资源开销,进而解决了相关技术中的虚拟网络的分割方法无法应对单个超大规模虚拟网络的技术问题。
136.本领域普通技术人员可以理解,图5所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图5其并不对上述电子装置的结构造成限定。例如,计算机终端a还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示不同的配置。
137.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
138.实施例5
139.本技术的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例所提供的虚拟网络的分割方法所执行的程序代码。
140.可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于服务器集群中的任意一个服务器中,又或者位于云计算
网络中的任意一个云服务器中。
141.可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取虚拟网络中的多组虚拟边界网关的资源使用率,其中,多组虚拟边界网关分别部署有虚拟网络的多个子网,多个子网通过对虚拟网络中的虚拟机进行划分得到;基于资源使用率,确定多组虚拟边界网关中的第一虚拟边界网关,其中,第一虚拟边界网关的资源使用率大于第一预设阈值;对第一虚拟边界网关部署的目标子网进行分割,得到多个分片;将多个分片中的目标分片从第一虚拟边界网关,调度至多组虚拟边界网关中的第二虚拟边界网关。
142.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取多个分片的分片信息和第二虚拟边界网关的网关信息;基于分片信息和网关信息,生成目标分片对应的调度因子,其中,调度因子用于表征目标分片调度至第二虚拟边界网关后对第二虚拟边界网关的资源使用率的影响程度;基于调度因子,将目标分片调度至第二虚拟边界网关。
143.可选的,资源使用率包括:用于存储路由的第一资源的第一使用率,和用于存储虚拟机配置的第二资源的第二使用率,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于网关信息,确定第一因子,其中,第一因子用于表征对第一使用率的影响程度;基于分片信息,确定第二因子,其中,第一因子用于表征对第二使用率的影响程度;对第一因子和第二因子进行融合,得到调度因子。
144.可选的,网关信息至少包括:第二虚拟边界网关部署的子网的路由表和分片信息,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于分片信息,判定第二虚拟边界网关是否包含目标子网的分片,得到判定结果;基于判定结果,生成第一参数;获取第一因子对应的第一系数;获取第一参数、第一系数和路由表数量的乘积,得到第一因子。
145.可选的,网关信息还包括:第一资源的第一容量和第二资源的第二容量,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取第一容量和第二容量的比值;基于比值、第一使用率和第二使用率,确定第一系数。
146.可选的,分片信息至少包括:虚拟机数量、活跃网络地址和最大网络地址,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取活跃网络地址和最大网络地址的比值,得到网络地址密度;基于目标分片的网络地址密度和多个分片中其他分片的网络地址密度,生成第二参数;基于第二参数和第二系数,生成第三参数;获取第三参数和目标虚拟机数量的乘积,得到第二因子,其中,目标虚拟机数量用于表征目标分片包含的虚拟机的数量。
147.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取第二因子和第一因子的差值,得到调度因子。
148.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将调度因子与第二预设阈值进行比较;在调度因子大于等于第二预设阈值的情况下,将目标分片调度至第二虚拟边界网关。
149.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:比较每组虚拟边界网络的第一使用率与预设阈值中的第一预设值,及第二使用率与预设阈值中的第二预设值;获取第一使用率大于第一预设值的虚拟边界网关,或第二使用率大于第二预设值的虚拟边界网关,得到第一虚拟边界网关。
150.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:按照二分法对目标子网进行分割,得到多个分片。
151.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
152.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
153.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
154.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
155.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
156.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
157.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1