CN113395183B - 网络仿真平台vlan互联的虚拟节点调度方法与*** - Google Patents
网络仿真平台vlan互联的虚拟节点调度方法与*** Download PDFInfo
- Publication number
- CN113395183B CN113395183B CN202110945958.8A CN202110945958A CN113395183B CN 113395183 B CN113395183 B CN 113395183B CN 202110945958 A CN202110945958 A CN 202110945958A CN 113395183 B CN113395183 B CN 113395183B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- virtual
- physical host
- virtual node
- virtual nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络仿真平台VLAN互联的虚拟节点调度方法与***。本发明首先统计所请求启动虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则虚拟节点总数选择采用小型拓扑图调度方法或大型拓扑图调度方法;小型拓扑图调度方法中通过有条件遍历的计算方法求VLAN最少的调度结果,大型拓扑图调度方法中采用以关键节点为中心的分组调度方法,尽量使每个分组调度时新增的VLAN最少。对同时启动的多个拓扑图可以合并处理,以达到占用VLAN最少。本发明解决了多主机网络仿真平台VLAN资源合理利用的问题,使整个拓扑图在物理主机上的分布更加紧凑,且计算过程精简、直观。
Description
技术领域
本发明涉及一种多主机网络仿真平台基于VLAN互联的虚拟节点调度方法与***,属于网络技术领域。
背景技术
网络仿真是一种通过虚拟化或者网络隔离的方式,对现实中复杂网络进行模拟的一种技术。网络仿真平台一般用虚拟机或者容器模拟网络中的节点,用网桥或者隧道等方式来模拟节点之间的二层链路。对于小型的网络仿真实验,只需要一台物理主机即可;对于大规模的网络拓扑仿真或者多个网络同时仿真,单台物理主机的CPU、内存、磁盘资源可能不能满足需求,所以需要将多台物理主机组成一个集群。一个虚拟网络拓扑图中的虚拟节点,可能分布在不同的物理主机上。
我们考虑在虚拟网络中直接相连的两个虚拟节点VM1与VM2,如果这两个节点在同一个物理主机上,那么它们的虚拟网卡可以通过网桥或者虚拟交换机连接起来。如果这两个节点在不同的物理主机上,那么跨物理主机使两个虚拟节点能够通信的常用手段有:1、在两个物理主机直接建立VXLAN或者GRE隧道,虚拟节点发出的报文经过隧道送达对端。2、两个物理主机接到同一个物理交换机上,将虚拟节点置于同一个VLAN中,虚拟节点发出的报文由物理交换机来转发。
由于第二种手段实现起来相对简单,并且能够被大多数交换机支持,同时能够充分利用交换机的高速转发能力和端口镜像等功能。所以这种基于VLAN的虚拟链路实现方案,是很多大型网络仿真平台的首选。VLAN号的范围是0~4095,其中0和4095往往被交换机保留使用,能够用于虚拟节点跨主机通信的VLAN就更少了。传统的虚拟机节点调度方法通常只考虑CPU、内存、磁盘、带宽的因素,忽略了VLAN号这一资源,从而可能会影响网络仿真平台的使用。因此,如何合理的调度虚拟节点,以减少VLAN号的使用,是大规模的网络拓扑仿真或者多个网络同时仿真需要考虑的问题。
发明内容
发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种网络仿真平台VLAN互联的虚拟节点调度方法与***,解决大规模的网络拓扑仿真或者多个网络同时仿真时的VLAN号资源的限制问题。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
网络仿真平台VLAN互联的虚拟节点调度方法,包括如下步骤:
统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,在虚拟节点总数不超过设定阈值时,采用小型拓扑图调度方法,在虚拟节点总数超过设定阈值时,采用大型拓扑图调度方法;
所述小型拓扑图调度方法包括:对物理主机按照可用资源从大到小排序;依次增加选取物理主机数目直到设定的阈值,在每一种情况下记录资源足够时的调度结果;最后在所有调度结果中选择占用VLAN数目最少的作为最终调度结果;拓扑图中若存在一条链路两端的虚拟节点调度到不同的物理主机,则占用一个VLAN号;
所述大型拓扑图调度方法包括:将虚拟节点进行分组,计算分组的资源需求,分组中的虚拟节点与组内至少一个节点相连;按照资源需求从大到小对每个分组进行整体调度,若找到一个能够容纳分组内虚拟节点的物理主机,则将分组调度到该物理主机,若找到多个物理主机,则选择新增的占用VLAN数目最少的进行调度,若不存在能够容纳分组内虚拟节点的物理主机,则从分组中剔除一个虚拟节点后再整体调度;在所有分组调度完毕后,再对剔除的单个虚拟节点进行调度。
作为优选,所述大型拓扑图调度方法中,虚拟节点分组的方法为:对虚拟节点进行分类,单网口的虚拟节点归为终端类,多网口的虚拟节点归为网络设备类;以每一个网络设备类虚拟节点为中心创建分组,将终端类虚拟节点添加到相邻的网络设备类虚拟节点所属分组内。
作为优选,在小型拓扑图调度方法中,计算占用VLAN数目的方法为:
记拓扑图中虚拟节点列表为V,虚拟节点之间的链路为L,L中单条链路的定义为Li=(Va,Vb),其中Va和Vb是虚拟节点列表中的两个节点;记物理主机列表为P;定义一个列表S表示调度结果,长度与虚拟节点列表长度相同,其中每个元素Si表示虚拟节点Vi使用的物理主机编号;
遍历L中的单条链路Li=(Va,Vb),从S中找出(Va,Vb)对应的物理主机(Pa, Pb),若Pa和Pb相同则不占用VLAN号,若Pa和Pb不相同,则记占用一个VLAN号,最后对占用的VLAN数目求和。
作为优选,在大型拓扑图调度方法中,计算某一分组调度新增的占用VLAN号数目的方法为:记分组G被调度到物理主机Pi,遍历分组G中的每个虚拟节点Va,找到与其相连的已调度的虚拟节点Vc,若Pi与Vc调度到的物理主机相同,则不新增VLAN号,否则记新增一个VLAN号,最后对新增的VLAN数目求和。
作为优选,若一个拓扑图中的虚拟节点数目在10个以上,则采用大型拓扑图调度方法。
进一步地,在收到拓扑图启动请求之后缓存起来,延迟设定时间后再开始调度,将此延迟时间内收到的拓扑图启动请求合并处理。
作为优选,在小型拓扑图调度方法中,若前5台物理主机不能满足资源需求,则采用随机调度方法。
基于相同的发明构思,本发明提供的网络仿真平台VLAN互联的虚拟节点调度***,包括:预处理模块、小型拓扑图调度模块以及大型拓扑图调度模块;
所述预处理模块,用于统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,在虚拟节点总数不超过设定阈值时,调用小型拓扑图调度模块进行调度,在虚拟节点总数超过设定阈值时,调用大型拓扑图调度模块进行调度;
所述小型拓扑图调度模块,用于对物理主机按照可用资源从大到小排序;依次增加选取物理主机数目直到设定的阈值,在每一种情况下记录资源足够时的调度结果;最后在所有调度结果中选择占用VLAN数目最少的作为最终调度结果;拓扑图中若存在一条链路两端的虚拟节点调度到不同的物理主机,则占用一个VLAN号;
所述大型拓扑图调度模块,用于将虚拟节点进行分组,计算分组的资源需求,分组中的虚拟节点与组内至少一个节点相连;按照资源需求从大到小对每个分组进行整体调度,若找到一个能够容纳分组内虚拟节点的物理主机,则将分组调度到该物理主机,若找到多个物理主机,则选择新增的占用VLAN数目最少的进行调度,若不存在能够容纳分组内虚拟节点的物理主机,则从分组中剔除一个虚拟节点后再整体调度;在所有分组调度完毕后,再对剔除的单个虚拟节点进行调度。
进一步地,所述***还包括缓存模块,用于在收到拓扑图启动请求之后缓存起来,延迟设定时间后再开始调度,将此延迟时间内收到的拓扑图启动请求合并处理。
基于相同的发明构思,本发明提供的一种计算机***,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的网络仿真平台VLAN互联的虚拟节点调度方法。
有益效果:与现有技术相比,本发明具有如下优点:本发明为多主机网络仿真平台提出了一整套基于VLAN互联的虚拟节点调度方法,解决了VLAN资源合理利用问题。其中小型拓扑图的调度方法,通过有条件遍历的计算方法求占用VLAN数目最少的调度结果,能够找到全局最优解而不是局部最优解;大型拓扑图的调度方法,采用以关键节点为中心,按分组进行调度的方法,其计算过程精简、直观,结果可解释,使整个拓扑图在物理主机上的分布更加紧凑,具备实用性。
附图说明
图1为本发明实施例的方法总体流程图。
图2为本发明实施例中小型拓扑图调度方法流程图。
图3为本发明实施例中大型拓扑图调度方法流程图。
具体实施方式
下面将结合附图和具体实施例,对本发明的技术方案进行清楚、完整的描述。
本发明实施例公开的一种网络仿真平台基于VLAN互联的虚拟节点调度方法,为了尽量减少跨主机通信需要占用的WLAN资源,对虚拟节点进行合理调度,使一个拓扑图的虚拟节点尽量集中在少数的物理主机上。首先统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,根据拓扑图中虚拟节点数量选择采用小型拓扑图调度方法或大型拓扑图调度方法。调度过程如图1-3所示,下面对各调度方法进行详细说明。
1、单一小型拓扑图的调度,通过有条件遍历的计算方法求VLAN最少的调度结果。
设拓扑图的定义为:T=(V,L)。其中V为虚拟节点列表,元素个数记为n,L为虚拟节点之间的链路。
单条链路的定义为:Li=(Va,Vb),其中Va和Vb是虚拟节点列表中的两个节点。
设物理主机列表为P,元素个数记为m。A(Vi)表示虚拟节点Vi申请的资源,R(Pi)表示物理主机Pi可用的资源。这里的资源包括CPU、内存、磁盘、带宽等,但不包括VLAN号,一个物理主机必须能够提供虚拟节点申请的所有资源,才可以将此虚拟节点调度到此物理主机。
定义一个列表S表示调度结果,长度与虚拟节点列表长度相同,为n;其中每个元素Si表示Vi使用的物理主机编号。
定义一个函数K(S)衡量调度结果S的效果,此函数计算按照S进行调度后,整个拓扑图占用的跨主机通信所需的VLAN数目。计算过程如下:
L->[(Va,Vb)] ->S-> [(Pa, Pb)] -> 0或1 -> 求和
即遍历L中的单条链路Li=(Va,Vb),从S中找出(Va,Vb)对应的物理主机(Pa, Pb),若Pa和Pb相同,得0,即不占用VLAN号,若Pa和Pb不相同,得1,占用一个VLAN号,最后对占用的VLAN数目求和。
首先,对申请的资源求和:SUM(A(Vi)),尝试筛选出能够提供所有这些资源的物理主机。如果有,就从中随机选取一个。此时K(S)应当是0,因为没有跨主机通信。如果没有主机能够提供所有的资源,那么我们需要尝试多种调度结果,找出K(S)的最小值。
在没有任何资源限制的情况下,调度结果S的取值个数为mn,计算量非常大。但是,不是每个虚拟节点都需要尝试调度到每一个物理主机。拿单个虚拟节点来说,如果某个物理主机可用资源不够,就可以跳过;拿整个拓扑图来说,如果可用资源较多的物理主机无法容纳整个拓扑图,那么可用资源较少的物理主机也可以跳过。通过检查资源限制进行有条件的遍历,能够有效地减少S的取值个数。
一般来说调度结果越集中越好,所以我们按照期望得到的结果的优先顺序依次尝试。首先尝试调度到一个物理主机,其次尝试两个物理主机,依此进行。
在此之前,对物理主机按照可用资源从大到小排序为P1、P2……Pm。
当选取物理主机数目为1时,只需要判断P1资源是否足够。如果不够,那么P2或者其它单个物理主机的资源也不够。此时调度结果只有1种可能(即S=[1,1,1...]),记为X1;
当选取物理主机数目为2时,只需要判断P1和P2资源是否足够。同样,如果P1和P2资源不够,那么P2和P3、P2和P4等物理主机组合起来资源也不够。如果资源足够,那么此时调度结果有2n-2*X1种可能,记为X2;
当选取物理主机数目为a时,如果资源足够,那么调度结果有an-C(a,a-1)*Xa-1-C(a,a-2)*Xa-2...C(a,1)*X1种可能,记为Xa。这里C是组合数函数。
通过试验发现,在虚拟节点数n不超过10个的情况下,可限制a<=5,表示仅尝试前5个物理主机,使调度结果数目缩小到可以计算的量级。如果这些物理主机资源足够,那么就能找出调度在这些物理主机上的最佳结果。如果资源不够,那么很可能其他物理主机的资源也不多了,此时单独节约VLAN已经没有必要,可以降级为采用传统调度方法,如针对每个虚拟节点在资源足够的物理主机上随机调度。
2、多个小型拓扑图的调度,通过合并处理来尝试获得更优的调度结果。
不同拓扑图的虚拟节点之间不存在连接。但其中一个拓扑图的调度,可能由于资源竞争而影响其他拓扑图的调度。
典型的例子是,有物理主机P1和P2,拓扑图T1和T2,其可用资源量和申请资源量的关系为:P2>T2>P1>T1 并且P2 < T1 + T2。当先启动的拓扑图T1在P1和P2之间选择P2之后,后启动的拓扑图T2发现P2的资源不够,只能拆分到P1和P2两个物理主机上,从而多占用了一个VLAN。
在真实应用场景中,同时启动的多个拓扑图,大多数是同一个拓扑图的多个副本,少数情况是不同的拓扑图。
针对上述情况,多个拓扑图统一的调度能够尽可能的优化资源分配,减少VLAN的浪费。具体方法是,在收到拓扑图启动请求之后缓存起来,延迟一定的时间(比如10秒)后再开始调度。延迟时间可根据业务特点延长或缩短。在此时间内收到的后续启动请求将与前面缓存的请求合并处理。合并后的调度方法与上述单一拓扑图的调度方法相同。
3、大型拓扑图的调度,采用以关键节点为中心,按分组进行调度的方法。
由于方法1在虚拟节点数目在10个以上的时候可能计算量大到无法计算,需要采用不同的方法。步骤如下:
1)首先仍然是将整个拓扑图的虚拟节点申请的资源求和,尝试找到能够容纳所有虚拟节点的单一物理主机。如果找到就调度到这个物理主机,此时所有虚拟机的链路都在同一个物理主机,没有跨物理主机的链路,所以不占用VLAN号;如果找不到就执行后续步骤;
2)将虚拟节点按照链路进行分组,分组中的虚拟节点与组内至少一个节点相连,将虚拟节点的调度转化成分组的调度。理想情况下每个分组将被整体调度到某个物理主机,分组内部不存在跨主机链接,从而不占用VLAN号。具体地,遍历虚拟节点列表,对虚拟节点进行分类。单网口的虚拟节点归为终端类,多网口的虚拟节点归为网络设备类;以每一个网络设备类虚拟节点为中心创建多个分组,将终端类虚拟节点添加到相邻的网络设备类虚拟节点所属分组内(若终端类虚拟节点连接几个网络设备类虚拟节点,则按照归入第一个网口相连的设备)。
3)对每个分组的虚拟节点所需的资源求和,记为分组的资源需求;
4)按照资源需求从大到小的顺序对分组进行排序;
5)遍历排序后的分组(即优先处理资源需求较大的分组),尝试对每个分组进行整体调度。首先过滤出能够提供所需资源的所有物理主机,如果找不到,那么说明资源紧缺,则减少单次申请的资源数量,从这个分组中剔除一个终端类虚拟节点,再次尝试。(此时这个分组被***两部分,一定会增加VLAN号的使用。)如果只能够找到单个物理主机,那么这个分组内的虚拟节点全部调度到这个物理主机即可。如果能够找到多个物理主机(记这个列表为P),那么需要进一步筛选。我们将分组记为G,每个分组有若干虚拟节点组成,其中第一个为网络设备类虚拟节点,记为V1;其它为终端类虚拟节点,记为V2等;每个虚拟节点包含若干链路,记为Li,链路用它两端的虚拟节点表示,如(V1, V2)。那么分组G的属性描述如下:
G:
V1:
L1: (V1, V2)
L2: (V1, V3)
V2:
L3: (V2, V1)
...
定义一个函数Q(G, Pi)衡量将分组G调度到物理主机Pi之后的效果。此函数计算将分组G调度到物理主机Pi后,新增的跨主机通信所需的VLAN数目。计算过程如下:
G -> [Va] -> [Lb] -> [(Va Vc)] -> [Vc] -> [S(Vc)] -> [Pi <> S(Vc)] ->求和
即遍历分组G中的每个虚拟节点Va,以及Va相关的链路Lb(原拓扑图中的),找到相连的虚拟节点Vc。若Pi与Vc调度到的物理主机S(Vc)相同,则不新增VLAN号,否则记新增一个VLAN号,最后对新增的VLAN数目求和。这里函数S(Vc)得到的是虚拟节点已经被调度到的物理主机,比如Vc被调度到P1那么此函数的结果是P1;如果虚拟节点没有完成调度,那么此函数的结果是空值。逻辑运算Pi <> S(Vc)表示如果两者不相同且都不是空值,那么结果是1,其它情况为0。
针对可选的物理主机列表P中的每一个物理主机Pi,求对应的Q值。找到Q值最小的情况对应的Pi,就是分组G需要被调度到的物理主机。例如有一个理想的情况:Q(G, P1)=0,表明分组G调度到物理主机P1后新增的VLAN数目为0,也就是没有出现跨主机通信。
6)当所有分组调度完毕,再对过程中剔除出来的单个虚拟节点进行随机调度即可。
大型拓扑图调度方法从主要矛盾出发,优先调度链路数较多的网络设备类虚拟节点,通过终端与网络设备亲和、分组与分组亲和,使整个拓扑图在物理主机上的分布更加紧凑,达到很实用的效果。
基于相同的发明构思,本发明实施例公开的网络仿真平台VLAN互联的虚拟节点调度***,主要包括预处理模块、小型拓扑图调度模块以及大型拓扑图调度模块;其中预处理模块,用于统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,在虚拟节点总数不超过设定阈值(如10)时,调用小型拓扑图调度模块进行调度,在虚拟节点总数超过设定阈值时,调用大型拓扑图调度模块进行调度;小型拓扑图调度模块,用于对物理主机按照可用资源从大到小排序;依次增加选取物理主机数目直到设定的阈值(如5),在每一种情况下记录资源足够时的调度结果;最后在所有调度结果中选择占用VLAN数目最少的作为最终调度结果;大型拓扑图调度模块,用于将虚拟节点进行分组,计算分组的资源需求,分组中的虚拟节点与组内至少一个节点相连;按照资源需求从大到小对每个分组进行整体调度,若找到一个能够容纳分组内虚拟节点的物理主机,则将分组调度到该物理主机,若找到多个物理主机,则选择新增的占用VLAN数目最少的进行调度,若不存在能够容纳分组内虚拟节点的物理主机,则从分组中剔除一个虚拟节点后再整体调度;在所有分组调度完毕后,再对剔除的单个虚拟节点进行调度。进一步,还包括缓存模块,用于在收到拓扑图启动请求之后缓存起来,延迟设定时间后再开始调度,将此延迟时间内收到的拓扑图启动请求合并处理。各模块的具体实施细节参见上述方法实施例,此处不再赘述。
基于相同的发明构思,本发明实施例公开的一种计算机***,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的网络仿真平台VLAN互联的虚拟节点调度方法实施例的各个步骤。
Claims (10)
1.网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,包括如下步骤:
统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,在虚拟节点总数不超过设定阈值时,采用小型拓扑图调度方法,在虚拟节点总数超过设定阈值时,采用大型拓扑图调度方法;
所述小型拓扑图调度方法包括:对物理主机按照可用资源从大到小排序;依次增加选取物理主机数目直到设定的阈值,在每一种情况下记录资源足够时的调度结果;最后在所有调度结果中选择占用VLAN数目最少的作为最终调度结果;拓扑图中若存在一条链路两端的虚拟节点调度到不同的物理主机,则占用一个VLAN号;
所述大型拓扑图调度方法包括:将虚拟节点进行分组,计算分组的资源需求,分组中的虚拟节点与组内至少一个节点相连;按照资源需求从大到小对每个分组进行整体调度,若找到一个能够容纳分组内虚拟节点的物理主机,则将分组调度到该物理主机,若找到多个物理主机,则选择新增的占用VLAN数目最少的进行调度,若不存在能够容纳分组内虚拟节点的物理主机,则从分组中剔除一个虚拟节点后再整体调度;在所有分组调度完毕后,再对剔除的单个虚拟节点进行调度。
2.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,所述大型拓扑图调度方法中,虚拟节点分组的方法为:对虚拟节点进行分类,单网口的虚拟节点归为终端类,多网口的虚拟节点归为网络设备类;以每一个网络设备类虚拟节点为中心创建分组,将终端类虚拟节点添加到相邻的网络设备类虚拟节点所属分组内。
3.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,在小型拓扑图调度方法中,计算占用VLAN数目的方法为:
记拓扑图中虚拟节点列表为V,虚拟节点之间的链路为L,L中单条链路的定义为Li=(Va,Vb),其中Va和Vb是虚拟节点列表中的两个节点;记物理主机列表为P;定义一个列表S表示调度结果,长度与虚拟节点列表长度相同,其中每个元素Si表示虚拟节点Vi使用的物理主机编号;
遍历L中的单条链路Li=(Va,Vb),从S中找出(Va,Vb)对应的物理主机(Pa, Pb),若Pa和Pb相同则不占用VLAN号,若Pa和Pb不相同,则记占用一个VLAN号,最后对占用的VLAN数目求和。
4.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,在大型拓扑图调度方法中,计算某一分组调度新增的占用VLAN数目的方法为:记分组G被调度到物理主机Pi,遍历分组G中的每个虚拟节点Va,找到与其相连的已调度的虚拟节点Vc,若Pi与Vc调度到的物理主机相同,则不新增VLAN号,否则记新增一个VLAN号,最后对新增的VLAN数目求和。
5.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,若一个拓扑图中的虚拟节点数目在10个以上,则采用大型拓扑图调度方法。
6.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,在收到拓扑图启动请求之后缓存起来,延迟设定时间后再开始调度,将此延迟时间内收到的拓扑图启动请求合并处理。
7.根据权利要求1所述的网络仿真平台VLAN互联的虚拟节点调度方法,其特征在于,在小型拓扑图调度方法中,若前5台物理主机不能满足资源需求,则采用随机调度方法。
8.网络仿真平台VLAN互联的虚拟节点调度***,其特征在于,包括:预处理模块、小型拓扑图调度模块以及大型拓扑图调度模块;
所述预处理模块,用于统计请求启动的一个或多个拓扑图中虚拟节点申请的资源总和,若存在能够容纳所有虚拟节点的单一物理主机,则调度到这个物理主机;否则,在虚拟节点总数不超过设定阈值时,调用小型拓扑图调度模块进行调度,在虚拟节点总数超过设定阈值时,调用大型拓扑图调度模块进行调度;
所述小型拓扑图调度模块,用于对物理主机按照可用资源从大到小排序;依次增加选取物理主机数目直到设定的阈值,在每一种情况下记录资源足够时的调度结果;最后在所有调度结果中选择占用VLAN数目最少的作为最终调度结果;拓扑图中若存在一条链路两端的虚拟节点调度到不同的物理主机,则占用一个VLAN号;
所述大型拓扑图调度模块,用于将虚拟节点进行分组,计算分组的资源需求,分组中的虚拟节点与组内至少一个节点相连;按照资源需求从大到小对每个分组进行整体调度,若找到一个能够容纳分组内虚拟节点的物理主机,则将分组调度到该物理主机,若找到多个物理主机,则选择新增的占用VLAN数目最少的进行调度,若不存在能够容纳分组内虚拟节点的物理主机,则从分组中剔除一个虚拟节点后再整体调度;在所有分组调度完毕后,再对剔除的单个虚拟节点进行调度。
9.根据权利要求8所述的网络仿真平台VLAN互联的虚拟节点调度***,其特征在于,还包括缓存模块,用于在收到拓扑图启动请求之后缓存起来,延迟设定时间后再开始调度,将此延迟时间内收到的拓扑图启动请求合并处理。
10.一种计算机***,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-7任一项所述的网络仿真平台VLAN互联的虚拟节点调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945958.8A CN113395183B (zh) | 2021-08-18 | 2021-08-18 | 网络仿真平台vlan互联的虚拟节点调度方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110945958.8A CN113395183B (zh) | 2021-08-18 | 2021-08-18 | 网络仿真平台vlan互联的虚拟节点调度方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113395183A CN113395183A (zh) | 2021-09-14 |
CN113395183B true CN113395183B (zh) | 2021-12-07 |
Family
ID=77622765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110945958.8A Active CN113395183B (zh) | 2021-08-18 | 2021-08-18 | 网络仿真平台vlan互联的虚拟节点调度方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113395183B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794732B (zh) * | 2021-09-22 | 2023-08-11 | 上海观安信息技术股份有限公司 | 一种部署仿真网络环境的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050024795A (ko) * | 2003-09-04 | 2005-03-11 | 삼성전자주식회사 | 스케줄링 방법 및 이를 수행하기 위한 스케줄러 |
CN105791164A (zh) * | 2016-02-24 | 2016-07-20 | 中国联合网络通信集团有限公司 | 网络资源分配方法和*** |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
CN109379268A (zh) * | 2018-11-27 | 2019-02-22 | 新华三技术有限公司合肥分公司 | 虚拟专用网络的创建方法、装置和服务器 |
CN112468458A (zh) * | 2020-11-12 | 2021-03-09 | 鹏城实验室 | 一种基于neutron分层机制的调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6279436B2 (ja) * | 2014-09-04 | 2018-02-14 | Kddi株式会社 | 仮想ネットワーク割当方法および装置 |
-
2021
- 2021-08-18 CN CN202110945958.8A patent/CN113395183B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050024795A (ko) * | 2003-09-04 | 2005-03-11 | 삼성전자주식회사 | 스케줄링 방법 및 이를 수행하기 위한 스케줄러 |
CN105791164A (zh) * | 2016-02-24 | 2016-07-20 | 中国联合网络通信集团有限公司 | 网络资源分配方法和*** |
CN107329827A (zh) * | 2017-06-22 | 2017-11-07 | 平安科技(深圳)有限公司 | 支持哈希调度策略的lvs调度方法、设备及存储介质 |
CN109379268A (zh) * | 2018-11-27 | 2019-02-22 | 新华三技术有限公司合肥分公司 | 虚拟专用网络的创建方法、装置和服务器 |
CN112468458A (zh) * | 2020-11-12 | 2021-03-09 | 鹏城实验室 | 一种基于neutron分层机制的调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113395183A (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778756B2 (en) | Location of actor resources | |
US7623455B2 (en) | Method and apparatus for dynamic load balancing over a network link bundle | |
CN108141416A (zh) | 一种报文处理方法、计算设备以及报文处理装置 | |
CN104756451A (zh) | 用于lag接口上网络流的动态负载平衡的方法 | |
CN108897606B (zh) | 多租户容器云平台虚拟网络资源自适应调度方法及*** | |
CN110308984B (zh) | 一种用于处理地理分布式数据的跨集群计算*** | |
CN107819891A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111181873B (zh) | 数据发送方法、装置、存储介质和电子设备 | |
Cheng et al. | Application-aware SDN routing for big data networking | |
CN113810205A (zh) | 服务算力信息的上报、接收方法、服务器及数据中心网关 | |
CN112000435B (zh) | 基于Openstack的多活型负载均衡方法及*** | |
CN104639437A (zh) | 堆叠***中广播报文的转发方法及装置 | |
Ke et al. | Aggregation on the fly: Reducing traffic for big data in the cloud | |
Bhowmik et al. | Distributed control plane for software-defined networks: A case study using event-based middleware | |
CN113395183B (zh) | 网络仿真平台vlan互联的虚拟节点调度方法与*** | |
Qing et al. | Hybrid virtual network embedding with K-core decomposition and time-oriented priority | |
CN115913952B (zh) | 基于cpu+dpu平台的多目标服务功能链的高效并行化和部署方法 | |
CN109308210B (zh) | 一种在多核服务器上优化nfv转发服务链性能的方法 | |
AlShammari et al. | BL‐Hybrid: A graph‐theoretic approach to improving software‐defined networking‐based data center network performance | |
Wang et al. | A clustering-based approach for virtual network function mapping and assigning | |
Xu et al. | A mathematical model and dynamic programming based scheme for service function chain placement in NFV | |
CN112231096B (zh) | 一种fpga池化资源任务均衡的方法、***、设备及介质 | |
CN112783673A (zh) | 一种调用链的确定方法、装置、计算机设备及存储介质 | |
KR101787448B1 (ko) | 단일 데이터 센터 클라우드 컴퓨팅 환경에서의 확률적 가상 네트워크 요청 방법, 이를 이용한 요청 수신 장치, 이를 이용한 자원 할당 방법, 자원 할당 장치, 이를 수행하는 프로그램 및 기록매체 | |
Szymanski | Low latency energy efficient communications in global-scale cloud computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |