一种数据中心虚拟网络映射方法及系统与流程

文档序号:27337678发布日期:2021-11-10 02:31阅读:184来源:国知局
一种数据中心虚拟网络映射方法及系统与流程

1.本发明属于通信技术领域,尤其涉及一种数据中心虚拟网络映射方法及系统。


背景技术:

2.近年来,云计算应用发展迅速。作为云计算的关键技术,虚拟化技术将底层数据中心基础设施资源(计算,存储和网络资源)池化,采用虚拟网络映射算法,为不同用户分配资源,实现资源按需共享。虚拟网络映射是指在虚拟网络请求的物理资源需求、服务质量要求等约束下,在共享的底层物理网络中为虚拟网络请求进行物理资源的分配。
3.虚拟网络映射问题最早出现在互联网场景中,并得到了广泛研究。然而数据中心的规则拓扑以及承载应用的多租户、异构化的特性,为数据中心虚拟网络映射算法的设计带来了挑战。首先,现有的虚拟网络映射算法大都针对一般网络拓扑,而数据中心网络拓扑一般具有对称性,需要有针对性的设计数据中心的虚拟网络映射算法。其次,数据中心多租户、异构化的特性使得数据中心资源分配不均衡问题突出。现有研究大多仅关注单维资源的均衡问题,而没有考虑多维资源之间的均衡问题,使得映射资源利用率和均衡性受到了一定的限制。
4.luo shouxi等人在其发表论文“traffic

aware vdc embedding in data center:a case study offat

tree”(communications,china,2014.)中提出一种流量感知的数据中心虚拟网络映射算法。该方法的步骤是,第一步:将数据中心按照可用服务器数对机架和pod进行降序排序。第二步:选择带宽资源需求最大的虚拟节点作为首个待映射节点。第三步:在第一步排好序的数据中心中,按顺序找到第一台满足资源约束的服务器,将虚拟节点映射至该服务器。第四步:在所有连接未映射节点和已映射节点的链路中选择带宽需求最大的未映射节点u。第五步:在与u相连的带宽最大的链路所连接的已映射节点v所在机架中,选择第一台满足资源需求的服务器并将虚拟节点映射至该服务器;若该机架没有满足条件的服务器,则扩展到相同pod下的其他机架中寻找满足资源需求的服务器;如果相同pod的其他机架中也没有满足资源需求的服务器,再扩展到其他pod中,依次类推;如果整个数据中心中都没有满足资源需求的服务器,则节点映射失败。该方法存在的不足之处是,在为虚拟节点选择服务器时,只是选择了第一台满足资源约束的服务器,没有考虑服务器计算资源和链路资源的均衡性,容易造成单维资源耗尽,导致其他维资源不可用,造成资源浪费,影响资源利用率。因此,亟需一种新的数据中心虚拟网络映射方法。
5.通过上述分析,现有技术存在的问题及缺陷为:
6.(1)现有的虚拟网络映射算法大都针对一般网络拓扑,而数据中心网络拓扑一般具有对称性,需要有针对性的设计数据中心的虚拟网络映射算法,且数据中心多租户、异构化的特性使得数据中心资源分配不均衡问题突出。
7.(2)现有研究大多仅关注单维资源的均衡问题,而没有考虑多维资源之间的均衡问题,容易造成单维资源耗尽,导致其他维资源不可用,造成资源浪费,使得映射资源利用率和均衡性受到了一定的限制。
8.解决以上问题及缺陷的难度为:数据中心网络的多维资源之间以及虚拟网络请求的多维资源需求之间均具有耦合关系,如何设计合理的数据中心虚拟网络映射算法,实现各单维资源内部以及多维资源之间的负载均衡是一个关键难题。
9.解决以上问题及缺陷的意义为:通过解决各单维资源内部以及多维资源之间的负载不均衡问题,能够提升用户体验、避免单维资源耗尽、提高数据中心的资源利用率。


技术实现要素:

10.针对现有技术存在的问题,本发明提供了一种数据中心虚拟网络映射方法及系统,尤其涉及一种基于近域均衡的数据中心虚拟网络映射方法及系统。
11.本发明是这样实现的,一种数据中心虚拟网络映射方法,所述数据中心虚拟网络映射方法包括:
12.对于fat

tree拓扑的数据中心,计算数据中心每个机架和pod的可用资源,并根据可用资源对机架和pod进行降序排序;计算虚拟网络请求中所有虚拟节点的带宽资源需求,并根据资源需求对虚拟节点进行降序排序;在排好序的数据中心中,根据均衡性公式选择服务器,即计算机架下的所有服务器的均衡性,并选择均衡性指标最小的服务器承载当前虚拟节点;所有节点映射完成后,进行链路映射,所有节点和链路都映射成功后,该虚拟网络映射成功,否则映射失败。
13.进一步,所述数据中心虚拟网络映射方法包括以下步骤:
14.步骤一,构建虚拟网络请求,用以刻画用户请求的物理资源需求;
15.步骤二,确定虚拟节点的映射顺序,作为计算资源分配的顺序规则;
16.步骤三,对数据中心的pod和机架进行排序,用以实现近域节点映射;
17.步骤四,映射虚拟节点,实现计算资源分配;
18.步骤五,映射虚拟链路,实现带宽资源分配。
19.进一步,步骤一中,所述虚拟网络请求为:
20.g
v
=(n
v
,l
v
);
21.其中,n
v
表示虚拟节点集合,l
v
表示虚拟链路集合;每个虚拟节点v∈n
v
都有一个权重,该权重表示虚拟节点v的计算资源请求为c(v);虚拟链路vv'∈l
v
连接虚拟节点v和v',虚拟链路vv'上的权重表示虚拟链路的带宽资源请求为bw(vv')。
22.进一步,步骤二中,所述确定虚拟节点的映射顺序,包括:
23.(1)按照下式计算每个虚拟节点v∈n
v
的带宽资源需求:
[0024][0025]
其中,ω(v)表示与虚拟节点v相连的所有虚拟链路的集合;
[0026]
(2)根据bw(v)对所有的虚拟节点进行降序排列,依次映射。
[0027]
进一步,步骤三中,所述对数据中心的pod和机架进行排序,包括:
[0028]
若虚拟节点个数不大于机架下的服务器数,按照机架可用资源对所有机架进行降序排列,保持机架中的服务器顺序不变;
[0029]
若虚拟节点个数大于机架下的服务器数,则先按照pod可用资源对所有pod进行降序排列,然后按照机架可用资源对每个pod内的机架进行降序排列,保持机架中的服务器顺
序不变;
[0030]
其中,机架可用资源为机架下的服务器可用资源之和,pod可用资源为pod下的服务器可用资源之和;
[0031]
所述服务器可用资源为可用计算资源和可用带宽资源之和,利用计算资源为满足如下约束时的服务器剩余计算资源:
[0032][0033]
该约束表示服务器剩余计算资源需要大于等于所有虚拟节点中的最大计算资源请求;
[0034]
可用带宽资源为满足如下约束时的与服务器相连的链路的剩余带宽资源:
[0035][0036]
该约束表示与服务器相连的链路的最大剩余带宽资源需要大于等于所有虚拟节点中的最大带宽资源请求。
[0037]
进一步,步骤四中,所述映射虚拟节点,包括:
[0038]
(1)对首个虚拟节点,在排好序的数据中心中,依次检查所有服务器,选择满足资源约束的首个服务器,将该服务器所在机架的编号记作rackindex,在该机架下选出所有满足资源约束的服务器;其中所述资源约束为以下两个约束:
[0039][0040][0041]
表示服务器的剩余计算资源需要大于等于虚拟节点的计算资源请求,与服务器相连的链路的剩余带宽资源需要大于等于虚拟节点的带宽资源请求;
[0042]
对其余虚拟节点,基于近域原则选择服务器,从rackindex机架开始检查,选择满足资源约束的服务器,若该机架中没有满足资源约束的服务器,则去该机架所在pod的其他机架下检查,若仍没有满足资源约束的服务器,则扩展到其他pod检查,直到找到满足资源约束的服务器,并选出该服务器所在机架中的所有满足资源约束的服务器;其中,所述机架顺序依据步骤三中的机架顺序,所述pod顺序依据步骤三中的pod顺序;
[0043]
(2)按照下式计算服务器的剩余计算资源:
[0044][0045]
其中,c(s)表示服务器s的计算资源容量,x
vs
表示二元决策变量,若虚拟节点v映射到服务器s上,则x
vs
=1,否则x
vs
=0;
[0046]
按照下式计算与服务器相连的链路的剩余带宽资源:
[0047][0048]
其中,bw(s)表示与服务器s相连的链路的带宽资源容量,y
(vv

)(ss

)
表示二元决策变量,若虚拟链路vv

映射到物理链路ss

上,则y
(vv

)(ss

)
=1,否则y
(vv

)(ss

)
=0;
[0049]
对当前待映射虚拟节点v∈n
v
,按照下式计算服务器的均衡性:
[0050]
[0051]
其中,η
s
表示若虚拟节点v映射到服务器s上,服务器s的均衡性;
[0052]
(3)将虚拟节点映射到η
s
最小的服务器上,根据步骤(2)中的公式更新服务器和链路的物理资源状态,继续映射下一个节点;
[0053]
(4)若找不到满足资源约束的服务器,则释放当前虚拟网络已占用资源,映射失败,算法结束;
[0054]
(5)重复步骤(1)

步骤(4),若所有节点全部映射成功,跳转到步骤五。
[0055]
进一步,步骤五中,所述映射虚拟链路,包括:
[0056]
(1)对每条虚拟链路,根据连接虚拟链路两端的虚拟节点,找到承载两虚拟节点的物理节点,求出两物理节点间的所有可行路径;其中,所述可行路径为组成路径的每条链路的剩余带宽资源都要大于等于映射在其上的虚拟链路的带宽资源请求;
[0057]
(2)将虚拟链路映射到剩余链路资源最大的物理路径中,若找不到任一条可行路径,则释放当前虚拟网络已占用资源,映射失败,算法结束;其中,所述的物理路径的剩余链路资源为路径上所有链路中的最小剩余带宽资源;
[0058]
(3)若所有链路映射成功,则该虚拟网络映射成功。
[0059]
本发明的另一目的在于提供一种应用所述的数据中心虚拟网络映射方法的数据中心虚拟网络映射系统,所述数据中心虚拟网络映射系统包括:
[0060]
网络请求构建模块,用于构建虚拟网络请求;
[0061]
映射顺序确定模块,用于计算虚拟网络请求中所有虚拟节点的带宽资源需求,并根据资源需求对虚拟节点进行降序排序,确定虚拟节点的映射顺序;
[0062]
数据中心排序模块,对于fat

tree拓扑的数据中心,计算数据中心每个机架和pod的可用资源,并根据可用资源对机架和pod进行降序排序;
[0063]
虚拟节点映射模块,用于在排好序的数据中心中,根据均衡性公式选择服务器,即计算机架下的所有服务器的均衡性,并选择均衡性指标最小的服务器承载当前虚拟节点;
[0064]
虚拟链路映射模块,用于在所有节点映射完成后,进行链路映射,所有节点和链路都映射成功后,该虚拟网络映射成功,否则映射失败。
[0065]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
[0066]
对于fat

tree拓扑的数据中心,计算数据中心每个机架和pod的可用资源,并根据可用资源对机架和pod进行降序排序;计算虚拟网络请求中所有虚拟节点的带宽资源需求,并根据资源需求对虚拟节点进行降序排序;在排好序的数据中心中,根据均衡性公式选择服务器,即计算机架下的所有服务器的均衡性,并选择均衡性指标最小的服务器承载当前虚拟节点;所有节点映射完成后,进行链路映射,所有节点和链路都映射成功后,该虚拟网络映射成功,否则映射失败。
[0067]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的数据中心虚拟网络映射系统。
[0068]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的数据中心虚拟网络映射方法,在进行虚拟网络映射时,在近域映射的前提下,考虑计算资源的负载均衡、带宽资源的负载均衡以及计算资源和带宽资源之间的负载均衡,在缩短映射路
径,减少带宽资源消耗的同时,缓解单维资源耗尽导致其他维资源不可用造成的资源浪费问题,提高资源利用率,同时提高数据中心各维资源及不同维资源之间的均衡性。
[0069]
同时,本发明可以应用于fat

tree拓扑中,实现对虚拟网络请求的近域均衡映射,实现数据中心各维度的资源的均衡占用,使得资源利用率有效提升,实现了计算资源负载均衡、带宽资源负载均衡以及计算资源和带宽资源之间的负载均衡。
附图说明
[0070]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0071]
图1是本发明实施例提供的数据中心虚拟网络映射方法流程图。
[0072]
图2是本发明实施例提供的数据中心虚拟网络映射系统结构框图;
[0073]
图中:1、网络请求构建模块;2、映射顺序确定模块;3、数据中心排序模块;4、虚拟节点映射模块;5、虚拟链路映射模块。
[0074]
图3是本发明实施例提供的数据中心虚拟网络映射方法的实例图。
[0075]
图4是本发明实施例提供的数据中心虚拟网络映射方法的一个具体映射实例。
具体实施方式
[0076]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0077]
针对现有技术存在的问题,本发明提供了一种数据中心虚拟网络映射方法及系统,下面结合附图对本发明作详细的描述。
[0078]
如图1所示,本发明实施例提供的数据中心虚拟网络映射方法包括以下步骤:
[0079]
s101,构建虚拟网络请求;
[0080]
s102,确定虚拟节点的映射顺序;
[0081]
s103,对数据中心的pod和机架进行排序;
[0082]
s104,映射虚拟节点;
[0083]
s105,映射虚拟链路。
[0084]
如图2所示,本发明实施例提供的数据中心虚拟网络映射系统包括:
[0085]
网络请求构建模块1,用于构建虚拟网络请求;
[0086]
映射顺序确定模块2,用于计算虚拟网络请求中所有虚拟节点的带宽资源需求,并根据资源需求对虚拟节点进行降序排序,确定虚拟节点的映射顺序;
[0087]
数据中心排序模块3,对于fat

tree拓扑的数据中心,计算数据中心每个机架和pod的可用资源,并根据可用资源对机架和pod进行降序排序;
[0088]
虚拟节点映射模块4,用于在排好序的数据中心中,根据均衡性公式选择服务器,即计算机架下的所有服务器的均衡性,并选择均衡性指标最小的服务器承载当前虚拟节点;
[0089]
虚拟链路映射模块5,用于在所有节点映射完成后,进行链路映射,所有节点和链路都映射成功后,该虚拟网络映射成功,否则映射失败。
[0090]
下面结合实施例对本发明的技术方案作进一步描述。
[0091]
如图3所示,数据中心网络是k=4的fat

tree拓扑,k表示交换机端口数。fat

tree共包含k个pod,每个pod包含k/2个接入层交换机和k/2个汇聚层交换机。对于每一个接入层交换机,其k/2个端口与汇聚层交换机相连,其余k/2个端口与服务器相连。对于每一个汇聚层交换机,其k/2个端口与接入层交换机相连,其余k/2端口与核心层交换机相连。虚拟网络是随机生成的不规则拓扑。
[0092]
本发明在图3所述的场景中进行虚拟网络映射,需要说明的是,本实例不应理解为对本发明的限制。
[0093]
本发明实施例提供的数据中心虚拟网络映射方法包括以下步骤:
[0094]
步骤1,构建虚拟网络请求g
v
=(n
v
,l
v
):
[0095]
其中,n
v
表示虚拟节点集合,l
v
表示虚拟链路集合。每个虚拟节点v∈n
v
都有一个权重,该权重表示虚拟节点v的计算资源请求为c(v);虚拟链路vv'∈l
v
连接虚拟节点v和v',虚拟链路vv'上的权重表示虚拟链路的带宽资源请求为bw(vv')。
[0096]
步骤2,确定虚拟节点的映射顺序:
[0097]
按照下式计算每个虚拟节点v∈n
v
的带宽资源需求:
[0098][0099]
其中,ω(v)表示与虚拟节点v相连的所有虚拟链路的集合;
[0100]
根据bw(v)对所有的虚拟节点进行降序排列,依次映射。
[0101]
步骤3,对数据中心的pod和机架进行排序:
[0102]
若虚拟节点个数小于等于机架下的服务器数,按照机架可用资源对所有机架进行降序排列,保持机架中的服务器顺序不变;
[0103]
若虚拟节点个数大于机架下的服务器数,首先按照pod可用资源对所有pod进行降序排列,然后按照机架可用资源对每个pod内的机架进行降序排列,保持机架中的服务器顺序不变;
[0104]
其中,机架可用资源为机架下的服务器可用资源之和,pod可用资源为pod下的服务器可用资源之和;
[0105]
步骤4,映射虚拟节点:
[0106]
对首个虚拟节点,在排好序的数据中心中,依次检查所有服务器,选择满足资源约束的首个服务器,将该服务器所在机架的编号记作rackindex,在该机架下选出所有满足资源约束的服务器;
[0107]
对其余虚拟节点,基于近域原则选择服务器,从第rackindex机架开始检查,选择满足资源约束的服务器,若该机架中没有满足资源约束的服务器,则去该机架所在pod的其他机架下检查(检查机架的顺序依据步骤3中的机架顺序),若仍没有满足资源约束的服务器,就扩展到其他pod检查(检查pod的顺序依据步骤3中的pod顺序),直到找到满足资源约束的服务器,然后选出该服务器所在机架中的所有满足资源约束的服务器;
[0108]
按照下式,计算服务器的剩余计算资源:
[0109][0110]
其中,c(s)表示服务器s的计算资源容量,x
vs
表示二元决策变量,若虚拟节点v映射到服务器s上,则x
vs
=1,否则x
vs
=0;
[0111]
按照下式,计算与服务器相连的链路的剩余带宽资源:
[0112][0113]
其中,bw(s)表示与服务器s相连的链路的带宽资源容量,y
(vv

)(ss

)
表示二元决策变量,若虚拟链路vv

映射到物理链路ss

上,则y
(vv

)(ss

)
=1,否则y
(vv

)(ss

)
=0;
[0114]
对当前待映射虚拟节点v∈n
v
,按照下式,计算服务器的均衡性:
[0115][0116]
其中,η
s
表示若虚拟节点v映射到服务器s上,服务器s的均衡性;
[0117]
将虚拟节点映射到η
s
最小的服务器上,根据步骤4中的公式更新服务器和链路的物理资源状态,继续映射下一个节点;
[0118]
若找不到满足约束的服务器,则释放当前虚拟网络已占用资源,映射失败,算法结束;
[0119]
重复该步骤,若所有节点全部映射成功,跳转到步骤5;
[0120]
步骤5,映射虚拟链路:
[0121]
对每条虚拟链路,根据连接虚拟链路两端的虚拟节点,找到承载两虚拟节点的物理节点,求出两物理节点间的所有可行路径;
[0122]
将虚拟链路映射到剩余链路资源最大的物理路径中,若找不到任一条可行路径,则释放当前虚拟网络已占用资源,映射失败,算法结束;
[0123]
重复该步骤,若所有链路映射成功,则该虚拟网络映射成功。
[0124]
如图4所示,为简化说明,选择fat

tree中的一个pod进行举例说明。假设服务器的计算资源容量为100个单位,链路的带宽资源容量也为100个单位。
[0125]
(1)产生虚拟网络请求,如图4(a)。
[0126]
(2)确定虚拟节点的映射顺序。bw(a)=27,bw(b)=25,bw(c)=22,节点映射顺序为a,b,c。
[0127]
(3)对该pod的机架进行排序。如图4(b)为k=4的fat

tree拓扑中的一个pod,方框内的数字表示服务器的已用计算资源,线段旁边的数字表示链路的已用带宽资源,rack1的可用资源为400

60

55

40

35=210,rack2的可用资源为400

50

40

30

30=250,排序后的机架顺序为rack2,rack1,如图4(c)。
[0128]
(4)对虚拟节点a,检查发现满足资源约束的首个服务器为服务器3,记rackindex=2,计算rack2下所有满足资源约束的服务器的均衡性,η3>η4,将a映射到服务器4上。
[0129]
对虚拟节点b,从rack2开始检查,发现服务器3满足资源约束,且该机架下没有其他可用服务器了,于是将b映射到服务器3。
[0130]
对虚拟节点c,从rack2开始检查,发现该机架下没有可用服务器,于是到同pod的其他机架rack1下检查,计算η1>η2,将c映射到服务器1上。
[0131]
(5)映射链路。将虚拟链路映射到剩余链路资源最大的物理路径中。
[0132]
简要说明不考虑近域均衡时的映射方案,如图4(d)所示,总是选择第一台满足资源约束的服务器映射当前虚拟节点,于是节点a被映射到服务器3,节点b被映射到服务器4,节点c被映射到服务器1。首先,发现服务器1的资源利用率已经达到90%,而与其相连的链路的剩余带宽资源还空闲较多,但可能因计算资源的耗尽而不可用。其次,对于后续到达的虚拟网络请求,可能无法映射到同一pod下,跨pod映射增加了路径长度,导致消耗更多的带宽资源。
[0133]
考虑近域均衡的映射方案如图4的(e)所示,发现考虑负载均衡以后,各服务器和链路的资源占用都比较均衡,对于后续到达的虚拟网络请求,更可能映射到同一pod下,节约带宽资源,提高资源利用率。
[0134]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0135]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1