在数据中心中的虚拟网络功能分配的制作方法

文档序号:16855137发布日期:2019-02-12 23:11阅读:193来源:国知局
在数据中心中的虚拟网络功能分配的制作方法
虚拟化是一种使得能够经由硬件设备上的软件来执行多个应用的技术。其可以指的是表现得像具有操作系统的硬件的虚拟机的创建并且允许应用在其中被执行。一些企业可以使用诸如数据中心中的服务器之类的硬件来通过分配在其中的多个虚拟机来执行应用。照此,在数据中心的服务器中分配多个虚拟机可以向企业提供关键价值,因为可以以更有效的方式使用硬件计算资源。附图说明关于结合附图所采取的以下详细描述可以更全面地理解本申请,其中,相同附图标记通篇指的是类似部分,并且其中:图1是图示出用于在数据中心中分配虚拟网络功能的计算系统的示例的框图。图2是图示出用于使用安装模块和更新模块在数据中心中分配虚拟网络功能的计算系统的示例的框图。图3是图示出虚拟网络功能目录的示例的框图。图4是用于在数据中心中分配虚拟网络功能的示例方法的流程图。图5是用于在数据中心中分配虚拟网络功能的另一种示例方法的流程图。图6是图示出用于在数据中心中分配虚拟网络功能的计算系统的示例的框图。具体实施方式以下描述涉及本公开的各个示例。在本文公开的示例不应当被解释或以另外方式使用为限制包括权利要求的本公开的范围。此外,以下描述具有较宽的应用,并且任何示例的讨论仅仅意欲时为了描述该示例,并且并不意图指示包括权利要求的本公开的范围受限于该示例。在以上描述中,阐述了许多详情以提供在本文公开的示例的理解。然而,那些本领域技术人员将理解,可以在没有这些详情的情况下实践示例。尽管已经公开了有限数量的示例,但那些本领域技术人员将理解从其进行的许多修改和变化。所附权利要求旨在覆盖落入示例的范围内的此类修改和变化。贯穿本公开,术语“一”意图表示特定要素中的至少一个。此外,如在本文所使用的,术语“包括”意指包括但不限于、术语“包括有”意指包括但不限于。术语“基于”意指至少部分地基于。虚拟化是一种使得能够经由硬件设备上的软件来执行多个应用的技术。其可以指的是表现得像具有操作系统的真实硬件的虚拟机的创建并且允许应用在其中被执行。一些企业可以使用诸如数据中心中的服务器之类的硬件来通过分配在其中的多个虚拟机来执行应用。因此,在数据中心的服务器中分配多个虚拟机可以向企业提供关键价值,因为可以以更有效的方式使用硬件计算资源。虚拟网络功能(vnf)是一种应用信息技术(it)中的自动化和虚拟化技术以将网络中的当前网络功能从专用硬件移动到通用it基础设施的技术。vnf可以包括互相协调可以实施网络的功能的一个或多个虚拟机(vm)和虚拟网络。与使用云技术的it应用相比,vnf技术可以向it系统提供灵活性。在数据中心中分配vm时,存在挑战。数据中心包括数据中心单元(例如,服务器),这些中的每一个提供计算资源,诸如:核(c)、随机存取存储器(ram)(r)、硬盘(d)、非易失性存储器(nvm)、带宽(bw),等等。在示例中,数据中心可以包括三个服务器(例如,s1、s2,和s3),其中,每个服务器提供其自己的计算资源(例如,s1提供c1、r1、d1、nvm1,和bw1;s2提供c2、r2、d2、nvm2,和bw2;并且s3提供c3、r3、d3、nvm3,和bw3)。另一方面,vm消耗计算资源,诸如:核(c)、随机存取存储器(ram)(r)、硬盘(d)、非易失性存储器(nvm)、带宽(bw),等等。取决于vm的需求,不能在同一服务器上分配一些vm,而必须在同一服务器上分配其他vm。这增添了数据中心中的vm分配的额外的复杂度,同时也最大化所使用的计算资源。作为先前的挑战的说明性示例,数据中心包括每个均具有1000gb硬盘的两个数据中心单元(s1和s2)。三个vm需要被分配(vm1、vm2,和vm3);vm1仅仅要求硬盘的5gb、vm2要求硬盘的700gb,并且vm3要求硬盘的350gb。在第一方案中,不存在限制,因此能够在s1中分配vm1和vm2,填充1000gb中的705gb,并且能够在s2中分配vm3,填充1000gb中的350gb。在第二方案中,存在限制,vm1来自一个客户,并且vm2和vm3来自不同的客户,因此增添需要在与vm2和vm3不同的数据中心单元中分配vm1的约束。在第二方案中,可以在s1中分配vm1,填充1000gb中的5gb(995gb空闲);然后可以在s2中分配vm2,填充1000gb中的700gb(300gb空闲);并且既不能在s1(vm1和vm3不能被一起分配的约束)中也不能在s2(没够足够硬盘空闲空间)中分配vm3。因此,即使在系统中存在1200gb空闲,也不能分配仅仅要求350gb的系统vm3,因此要求至少350gb的硬盘的第三数据中心单元(s3)。先前示例是说明性的,因此仅仅包括一个变量(d),然而,如前所提及,数据中心单元和vm可以提供并且要求多个计算资源(例如,c、r、d、nvm、bw),因此增添更高复杂度。本公开的一个示例提供通过减少服务器的空闲资源来用于在数据中心中高效地分配vnf的计算系统。计算系统包括处理单元、计算模块,以及分配模块。计算模块被配置为基于数据中心的状态和包括多个vnf的vnf目录来确定与数据中心中的数据中心单元相对应的消耗系数;并且基于所确定的消耗系数来开发分配模型。分配模块被配置为基于分配模型在数据中心中分配多个vnf中的第一vnf。本公开的另一个示例提供用于在数据中心中分配vnf的方法。所公开的方法通过查询数据中心数据库来检查数据中心的当前状态。该方法进一步基于vnf目录、一组分配规则,以及数据中心的当前状态来定义消耗系数。该方法基于vnf目录、一组分配规则、消耗系数,以及数据中心的当前状态来确定分配模型。该方法还接收多个vnf中的第一vnf并且基于分配模型在数据中心单元中分配第一vnf,其中,数据中心单元是数据中心的一部分。现在参考附图,图1是图示出用于在数据中心中分配虚拟网络功能的计算系统的示例的框图。计算系统100可以包括一个或多个处理单元,诸如cpu、片上系统(soc)、单个处理器,等等。然而,为了清晰目的,一个或多个处理单元在下文可以被称为“处理单元”。计算节点100包括处理单元110、计算模块122,以及分配模块124。计算系统100连接到多个vnf150、vnf目录170,以及数据中心140。数据中心140可以包括一个或多个数据中心单元(例如,服务器)。计算模块122,和分配模块124可以是硬件和编程的任何组合以实施在本文描述的模块的功能。在本文描述的示例中,可以以许多不同的方式实施硬件和编程的此类组合。例如,模块的编程可以是存储在至少一个非暂时性机器可读存储介质上的处理器可执行的指令,并且用于模块的硬件可以包括至少一个处理器来执行那些指令。在本文描述的一些示例中,可以通过硬件和编程的组合来共同地实施多个模块,如上所述。在其他的示例中,可以以电子电路的形式至少部分地实施计算模块122和分配模块124的功能。计算系统100接收vnf目录170(例如请参见图3中描述的vnf目录370),其是以相继次序向计算系统100指示进来的vnf的文件。被vnf目录170确认的接下来进来的vnf将在下文被称为“第一vnf”。第一vnf包括将被分配在数据中心140中的一个或多个vm。数据中心140包括一个或多个数据中心单元(例如,服务器)。计算系统100可以具有访问数据中心140(例如请参见图2中的数据中心数据库230)的实际状态的机制。数据中心的状态指示数据中心140内的数据中心单元的可用的计算资源。数据中心状态的示例被示出在表格1中。s1s2s3...s_ncore(c)130...2ram(r)200gb500gb125gb...0gbhd(d)1000gb5000gb750gb...4500gbnvm300gb0gb800gb...1250gb带宽(bw)450gbit/s600gbit/s100gbit/s...300gbit/s表格1:示出每个dc单元中的可用资源的数据中心状态的示例在表格1示例中,系统100确认数据中心170的可用的计算资源状态。数据中心170包括第一数据中心单元(s1)、第二数据中心单元(s2)、直到第n数据中心单元(s_n),其中,n是正整数。表格1示例包括核、ram、hd、nvm,和带宽作为计算资源,然而,可以使用不同的数量和/或任何其他类型的计算资源。在公开的示例中,s1具有以下可用的计算资源:1个核、ram的200gb、hd的1000gb、nvm的300gb,以及带宽的450gbit/s;s2具有以下可用的计算资源:3个核、ram的500gb、hd的5000gb、nvm的0gb,以及带宽的600gbit/s;s3具有以下可用的计算资源:0个核、ram的125gb、hd的750gb、nvm的800gb,以及带宽的100gbit/s;直到s_n具有以下可用的计算资源:2的核、ram的0gb、hd的4500gb、nvm的1250gb,以及带宽的600gbit/s。在该示例中,s2没有可用的nvm、s3没有可用的核,并且s_n没有可用的ram。计算模块122基于数据中心的状态(例如,表格1)和vnf目录170(例如请参见图3中的vnf目录370)来确定用于每个数据库单元和第一vnf的消耗系数。消耗系数可以指示能够多少次将进来的vnf放置在数据库单元中。例如,s1中的消耗系数3可以指示能够将vnf三次放置在s1中,或,换句话说,指示s1至少具有vnf可以消耗的计算资源三倍的可用资源。在表格2中示出消耗系数的示例。表格2:关于vnf1-n和s1-n的消耗系数的示例在表格2中示出消耗系数确定示例。vnf1能够被一次放置在s1中、三次放置在s2中、其不能被放置在s3中,并且两次放置在s_n中;vnf2能够被五次放置在s1中、一次放置在s2中、十九次放置在s3中,并且不能被放置在s_n中;vnf3不能被放置在s1中、能够五次被放置在s2中、三次被放置在s3中,并且八次被放置在s_n中;并且vnf_n能够八次被放置在s1中、不能被放置在s2中、七次被放置在s3中,并且三次被放置在s_n中。即使在表格2中公开的示例计算vnf在数据中心单元上的消耗系数,但本公开的另一个实施例计算每个vnf的每一个vm在数据中心单元上的消耗系数。计算模块122可以进一步基于消耗系数确定来开发分配模型。一旦由计算系统100接收到进来的vnf和/或vm,分配模型就可以指示在哪个数据中心单元中分配进来的vnf和/或vm。在本公开的一个实施例中,进来的vnf/vm被选择为被存储在具有较高的消耗系数的数据中心单元中(例如,在表格2示例中,vnf1将被放置在s2中,因为s2具有消耗系数3——数据中心单元当中最大的)。在本公开的另一个示例中,选择一旦vnf/vm被分配在其中,就消耗vnf/vm的较小数量的分配的数据中心单元。术语“消耗”可以被理解为数据库单元状态,其中,将来的vnf/vm可能因为不可用的计算资源原因而不被分配在其中。分配模块124被配置为基于由计算模块122构造的分配模型来在数据中心中分配多个vnf中的每个vnf。在另一个实施例中,分配模块124基于由计算模块122构造的分配模型来在数据中心中分配来自多个vnf中的每个vnf的每个vm。图2是图示出用于使用安装模块和更新模块在数据中心中分配虚拟网络功能的计算系统的示例的框图。计算系统200可以包括一个或多个处理单元,诸如cpu、片上系统(soc)、单个处理器,等等。然而,为了清晰目的,一个或多个处理单元在下文可以被称为“处理单元”。计算节点100包括处理单元210、计算模块222、分配模块224、安装模块226,以及更新模块224。处理单元210、计算模块222,以及分配模块224可以与图1中的处理单元110、计算模块122,以及分配模块124相同或类似。计算系统200可以连接到多个vnf250、vnf目录270、一组分配规则280、数据中心数据库230,和数据中心240。多个vnf250、vnf目录270,以及数据中心240可以与图1中的多个vnf150、vnf目录170,以及数据中心140相同或类似。数据中心240可以包括一个或多个数据中心单元(例如,服务器)。计算模块222、分配模块224、安装模块226,和更新模块228可以是硬件和编程的任何组合以实施在本文描述的模块的功能。在本文描述的示例中,可以以许多不同的方式实施硬件和编程的此类组合。例如,模块的编程可以是存储在至少一个非暂时性机器可读存储介质上的处理器可执行的指令,并且用于模块的硬件可以包括至少一个处理器来执行那些指令。在本文描述的一些示例中,可以通过硬件和编程的组合来共同地实施多个模块,如上所述。在其他的示例中,可以以电子电路的形式至少部分地实施计算模块222、分配模块224、安装模块226,和更新模块228的功能。计算系统200接收vnf目录270(例如请参见图3中描述的vnf目录370),其是以相继次序向计算系统200指示进来的vnf的文件。被vnf目录270确认的接下来进来的vnf将在下文被称为“第一vnf”。第一vnf包括将被分配在数据中心240中的一个或多个vm。如上所述,每个vnf包括一个或多个vm。一个或多个vm可以要求基于一组分配规则280被分配在数据中心240中。一组分配规则280可以包括对分配模型的约束。分配规则的一些示例是:亲和性规则、反亲和性规则、服务器排除规则,和服务器更新规则,或其组合。亲和性规则定义vnf和vm之间的关系,例如,vm1和vm2可以/必须被存储在同一服务器中,或vnf1和vnf2可以/必须在同一机架中;亲和性规则可以不仅仅适用于服务器或机架,而且也适用于诸如vim、区、数据中心等等的其他资源。反亲和性规则定义vnf和vm之间的反关系,例如,vm1和vm2不可以/绝不可被存储在同一服务器中,或vnf1和vnf2不可以/绝不可被存储在同一机架中;反亲和性规则可以不仅仅适用于服务器或机架,而且也适用于诸如vim、区、数据中心等等的其他资源。服务器排除规则定义vnf和vm之间的关系,例如,服务器(s1)可以仅仅分配来自特定vnf(vnf1)的vm;在特定客户拥有数据中心中的服务器并且不想与任何其他客户共享其的情况下,可以使用服务器排除规则;服务器排除规则可以不仅仅适用于服务器,而且也适用于诸如vim、机架、区、数据中心等等的其他资源。服务器更新规则定义其他规则之间的关系,例如,服务器(s1)能够分配vm1或vm2任一,因此转化成更新规则,其陈述一旦已经分配了vm1,不能再分配vm2;并且一旦已经分配了vm2,不能再分配vm1。即使本公开集中于亲和性规则、反亲和性规则、服务器排除规则,和服务器更新规则;一组分配规则280可以包括任何其他规则或任何其他规则与先前提及的规则的组合。数据中心240包括一个或多个数据中心单元(例如,服务器)。计算系统100可以进一步包括数据中心数据库230,其包含数据中心单元的状态。数据中心的状态指示数据中心240内的数据中心单元的可用的计算资源。在表格1中示出了数据中心单元的状态的示例。在接收第一vnf之前由计算系统200确认一组分配规则280和vnf目录270。在本公开的一个示例中,计算模块222基于以相继次序包含进来的vnf和vm的vnf目录270和亲和性规则和/或反亲和性规则来定义亲和组、反亲和组或其组合。亲和组指示符合一组分配规则280中的亲和性规则的(基于vnf目录270被确认的)进来的vnf中的那些vnf/vm,因此指哪些拿vnf/vm非得被存储在数据中心240中的同一数据库单元中。相反,反亲和组指示符合一组分配规则280中的反亲和性规则的(基于vnf目录270被确认的)进来的vnf中的那些vnf/vm,因此指示哪个vnf/vm不可以/绝不可被存储在同一数据库单元中。计算模块222可以进一步基于数据中心240的状态(例如,表格1)、vnf目录270(例如请参见图3中的vnf目录370),和一组分配规则(例如,亲和性规则/组、反亲和性规则/组,等等)来确定用于每个数据库单元和第一vnf的消耗系数。消耗系数可以指示考虑反亲和组(a-ag)能够多少次将亲和组(ag)放置在数据库单元中。例如,s1中的消耗系数3可以指示能够将第一亲和组三次放置在s1中,或,换句话说,指示s1至少具有第一亲和组可以消耗的计算资源三倍的可用资源。在表格3中示出消耗系数的示例。表格3:关于ag1-n和s1-n的消耗系数的示例在表格3中示出消耗系数确定示例。ag1不能与ag8或ag52被放置在同一数据库单元(s1-s_n)中;ag1能够一次被放置在s1中,其不能被放置在s2中,并且三次被放置在s_n中;ag2不能与ag_n被放置在同一数据库单元(s1-s_n)中;ag2不能被放置在s1中,其能够六次被放置在s2中,并且其不能被放置在s_n中。ag3没有任何反亲和性;ag1能够四次被放置在s1中、两次被放置在s2中,并且十一次被放置在s_n中。直到不能与ag2或ag69被放置在同一数据库单元(s1-s_n)中的ag_n;ag_n能够三次被放置在s1中、九次并且五次被放置在s_n中。计算模块222可以进一步基于消耗系数确定来开发分配模型。一旦由计算系统200接收到每个亲和组,分配模型就可以指示在哪个数据中心单元中分配每个亲和组。在本公开的一个实施例中,进来亲和组(其vfn/vm)被选择为被存储在具有较高的消耗系数的数据中心单元中(例如,在表格3示例中,ag1将被放置在s_n中,因为s_n具有消耗系数3——数据中心单元当中最大的)。在本公开的另一个示例中,选择一数据中心单元,一旦亲和组(例如,ag1)被分配在该数据中心单元中,就消耗对其他亲和组的较小数量的数据中心单元的分配。术语“消耗”可以被理解为数据库单元状态,其中,将来的进来的亲和组可能因为一组分配规则280上的不可用的计算资源原因而不被分配在其中。分配模型的一个示例可以是将亲和组与数据中心240内的多个数据库单元匹配的分配矩阵。在表格4中示出分配矩阵的一个示例。ags1s2s3...s_nag1--x...-ag2---...xag3x-...-..................ag_m-x-...-表格4:关于ag1-n和s1-n的分配矩阵的示例在表格4中示出分配矩阵的示例,其将多个亲和组(ag1-ag_m)的分配与数据中心(例如,数据中心240)中的多个数据库单元(s1-s_n)匹配;其中,n和m是正整数。表格4中的分配矩阵确定可以在s3中分配ag1、可以在s_n中分配ag2、可以在s1中分配ag3,并且可以在s2中分配ag_m。分配模块224被配置为基于由计算模块222构造的分配模型来在数据中心240中分配每个亲和组。在另一个实施例中,分配模块224被配置为基于由计算模块222构造的分配模型来在数据中心240中分配多个vnf中的每个vnf。在另一个实施例中,分配模块224被配置为基于由计算模块222构造的分配模型来在数据中心240中分配来自多个vnf中的每个vnf的每个vm。安装模块226被配置为基于由计算模块222构造的分配模型来在数据中心240中安装每个亲和组。在另一个实施例中,安装模块226被配置为基于由计算模块222构造的分配模型来在数据中心240中安装多个vnf中的每个vnf。在本公开的另一个实施例中,安装模块226被配置为基于由计算模块222构造的分配模型来在数据中心240中安装来自多个vnf中的每个vnf的每个vm。更新模块228被配置为在数据中心240中安装亲和组的情况下更新分配模型和数据中心数据库230。在另一个实施例中,更新模块228被配置为在数据中心240中安装多个vnf中的vnf的情况下更新分配模型和数据中心数据库230。在本公开的另一个实施例中,更新模块228被配置为在数据中心240中安装来自多个vnf中的每个vnf的每个vm的情况下更新分配模型和数据中心数据库230。图3是图示出虚拟网络功能目录的示例的框图。vnf目录370可以是以相继次序包含针对计算系统(例如,图1中的计算系统100,以及图2的计算系统200)的进来的vnf信息的文件。vnf目录370可以与图1中的vnf目录170和图2中的vnf目录270相同或类似。vnf目录370是包含第一vnf_a375a、第二vnf_b375b、第三vnf_c375c,直到第nvnf_n375n的文件,其中,n是正整数。vnf目录370也可以包含哪些vm在vnf中的信息。vnf目录370可以包含,第一vnf_a375a包含单个vm:vm_a1375a1。vnf目录370也可以包含,第二vnf_b375b包含四个vm:vm_b1375b1、vm_b2375b2、vm_b3375b3,和vm_b4375b4。vnf目录370包含:第二vnf_c375c包含三个vm:vm_c1375c1、vm_c2375c2,和vm_c3375c3。vnf目录370也可以包含,第nvnf_n375n包含m个vm:vm_n1375n1、vm_n2375n2,直到vm_nm375nm,其中,m是正整数。图4是用于在数据中心中分配虚拟网络功能的示例方法的流程图。可以通过诸如cpu、soc、单个处理器等等的一个或多个处理单元来执行方法400。为了清晰目的,至少一个处理单元在下文可以被称为“一处理器”或“该处理器”。方法400接收vnf目录,和一组分配规则,其中,vnf目录指示多个vnf。vnf目录和一组分配规则可以与图1中的vnf目录170,或者图2中的vnf目录270和一组分配规则280相同或类似。对于每一个进来的vnf执行方法400,然而,为了清晰目的并且没有限制本公开的范围的目标,公开了仅仅一个进来的vnf(例如,多个vnf中的第一vnf)的执行。可以例如通过图1中的系统100来实施方法400。也可以例如通过图2中的系统200来实施方法400。例如能够以存储在计算系统的存储器上的机器可读指令(例如,图6中的系统600的指令641-646的实施)的形式、以电子电路的形式或者另一种适当的形式实施方法400以及在本文描述的数个方法。方法400包括将被执行的多个框。在框410,系统(例如,图1中的计算系统100,以及图2中的计算系统200)通过查询数据中心数据库(例如,图2中的数据中心数据库230)来检查数据中心(例如,图2中的数据中心240)的当前状态。在框420,系统基于vnf目录(例如,图2中的vnf目录270)、一组分配规则(例如,图2中的一组分配规则280),以及数据中心的当前状态来定义消耗系数。在框430,系统基于vnf目录、一组分配规则,和数据中心的当前状态来确定分配模型。在框440,系统接收多个vnf(例如,图1中的多个vnf150)中的第一vnf。在框450,系统基于分配模型来在数据中心单元中分配第一vnf,其中,数据中心单元是数据中心的一部分。图5是用于在数据中心中分配虚拟网络功能的另一种示例方法的流程图。可以通过诸如cpu、soc、单个处理器等等的一个或多个处理单元来执行方法500。为了清晰目的,至少一个处理单元在下文可以被称为“一处理器”或“该处理器”。方法500接收vnf目录,和一组分配规则,其中,vnf目录指示多个vnf。vnf目录和一组分配规则可以与图1中的vnf目录170,或者图2中的vnf目录270和一组分配规则280相同或类似。对于每一个进来的vnf执行方法400,然而,为了清晰目的并且没有限制本公开的范围的目标,公开了仅仅一个进来的vnf(例如,多个vnf中的第一vnf)的执行。可以例如通过图1中的系统100来实施方法500。也可以例如通过图2中的系统200来实施方法500。例如能够以存储在计算系统的存储器上的机器可读指令(例如,图6中的系统600的指令641-646的实施)的形式、以电子电路的形式或者另一种适当的形式实施方法500以及在本文描述的数个方法。方法500包括将被执行的多个框。在框511中,计算模块510可以通过查询数据中心数据库(例如,图2中的数据中心数据库230)来检查数据中心(例如,图2中的数据中心240)状态。在框512中,计算模块510可以接收一组分配规则(例如,图2中的一组分配规则280)。在框513中,计算模块510可以接收vnf目录(例如,图2中的vnf目录270)。可以并行地或者以相继次序执行框511-513。一旦计算模块510接收一组分配规则和vnf目录,计算模块可以在框514定义亲和组、在框515定义反亲和组、在框516定义数据中心排除规则,并且在框517定义数据中心单元更新规则。一旦计算模块510检查了数据库状态(框511),并且定义的亲和组(框514)和反亲和组(框515);计算模块510可以在框518定义每个亲和组的消耗系数。一旦计算模块510已经定义了每个亲和组的消耗系数(框518),定义了数据中心单元排除规则(框516),并且定义了数据中心单元更新规则(框517);计算模块510在框519可以定义对亲和组和数据中心单元进行匹配的分配模型(例如,表格4的分配矩阵)。一旦计算模块510已经定义了分配模型,分配模块在框521可以接下一vnf并且基于在先的计算来从所接收的vnf中选择(框522)亲和组。在框523,分配模块520可以选择下一亲和组,并且基于分配模型、排除规则和更新规则来确定(框524)可用的数据库单元。然后在判定框525检查是否存在可用的数据中心单元(例如,图2中的数据中心240中的可用的服务器)。如果存在不可用的数据中心单元(判定框525的“否”分支),安装模块530可以确定存在溢出并且不可以在数据中心中分配亲和组(和其vm)。如果存在可用的数据中心单元(判定框525的“是”分支),则分配模块520可以执行判定框526。在判定框526,分配模块520可以检查是否存在分配亲和组(在框523中选择的亲和组)的多于一个可用的数据中心单元。如果存在分配亲和组的单个可用的数据中心单元(判定框526的“否”分支),在框532中,安装模块530可以在所选择的数据中心单元中安装亲和组内的vm。在存在分配亲和组的多于一个可用的数据中心单元(判定框526的“是”分支)的情况下,在框533中,安装模块530可以在数据中心单元中安装消耗较小的数量的数据中心单元的亲和组内的vm。在通过安装模块530在数据中心单元中安装vm(框532或533)之后,更新模块540可以利用安装信息更新(框541)分配模型和数据中心数据库。一旦更新模块540更新了模型和数据中心矩阵(框541),分配模块520就可以通过检查在vnf(在框521中接收的vnf)中是否存在更多个亲和组来执行判定框527。如果在vnf中存在更多个亲和组(判定框527的“是”分支),分配模块520可以选择(框523)下一亲和组并且可以继续上述方法。如果在vnf中不再有亲和组(判定框527的“否”分支),分配模块520可以等待并且接收(框521)下一vnf并且可以继续上述方法。图6是图示出用于在数据中心中分配虚拟网络功能的计算系统的示例的框图。图6描述包括物理处理器620和非暂时型机器可读存储介质640的系统600。处理器620可以是微控制器、微处理器、中央处理单元(cpu)核、专用集成电路(asic)、现场可编程门阵列(fpga),和/或类似物。机器可读存储介质640可以存储可以由处理器620执行的指令641-646或利用其被编码以执行在本文描述的功能。系统600硬件可以与图1的系统100中的硬件相同或类似。系统600硬件可以与图2的系统200中的硬件相同或类似。系统1200可以使用图4的方法400。系统600可以使用图5的方法500。系统600可以连接到vnf目录660。vnf目录660可以与来自图3的vnf目录370相同或类似。系统600可以进一步连接到一组分配规则680。一组分配规则680可以与图2中的一组分配规则280相同或类似。系统600可以进一步连接到数据中心数据库690,其包含数据中心695中的数据中心单元的状态信息。数据中心数据库690和数据中心695可以与图1中的数据中心140,或者图2中的数据中心数据库230和数据中心240相同或与其类似。在示例中,指令641-646,和/或其他指令能够是能够由处理器620执行的用于实施在本文描述的功能的安装数据包的一部分。在此种情况中,非暂时性机器可读存储介质640可以是由计算设备维持的诸如cd、dvd,或闪存设备或存储器之类的便携式介质,从该便携式介质能够对安装数据包进行下载和安装。在另一个示例中,程序指令可以是已经安装在非暂时性机器可读存储介质640中的应用(一个或多个)的一部分。非暂时性机器可读存储介质640可以是电子、磁性、光学,或包含或存储系统600可访问的可执行数据的其他物理存储设备。因此,非暂时性机器可读存储介质640例如可以是随机存取存储器(ram)、电可擦可编程只读存储器(eeprom)、存储设备、光盘,等等。非暂时性机器可读存储介质640不包含暂时传播的信号。非暂时性机器可读存储介质640可以被分配在系统600中和/或与系统600进行通信的任何其他设备中。在图6的示例中,当指令641被处理器620执行时,使处理器620通过查询数据中心数据库690来检查数据中心695的当前状态。系统600可以另外包括指令642,当指令642被处理器620执行时,使处理器620基于vnf目录660和一组分配规则680来定义一个或多个亲和组。系统600可以另外包括指令643,当指令643被处理器620执行时,使处理器620基于亲和组和数据中心695的当前状态来定义消耗系数。系统600可以另外包括指令644,当指令644被处理器620执行时,使处理器620基于一组分配规则680、消耗系数,和数据中心695的当前状态来确定将亲和组与多个数据中心单元匹配的分配模型。系统600可以另外包括指令645,当指令645被处理器620执行时,使处理器620接收第一vnf,其中,第一vnf包括一个或多个第一vm。系统600可以另外包括指令646,当指令646被处理器620执行时,使处理器620基于分配模型来在多个数据中心单元中的数据中心单元中分配一个或多个第一vm。系统600可以另外包括附加指令,当该附加指令被处理器620执行时,使处理器620在数据中心单元中安装第一vnf。系统600可以另外包括附加指令,当该附加指令被处理器620执行时,使处理器620更新分配模型。系统600可以另外包括附加指令,当该附加指令被处理器620执行时,使处理器620更新数据中心数据库690。可以通过硬件或与硬件结合的软件来实施以上示例。例如,可以通过物理处理器来实施在本文描述的各种方法、处理和功能模块(术语处理器将被宽泛地解释为包括cpu、处理模块、asic、逻辑模块,或可编程门阵列,等等)。处理、方法和功能模块可以全部都由单个处理器来执行或者被分离在若干处理器之间;在本公开或权利要求中对“处理器”的引用因此应当被解释为意指“至少一个处理器”。处理、方法和功能模块被实施为可由至少一个处理器、至少一个处理器的硬件逻辑电路,或其组合所执行的机器可读指令。本公开的示例中的附图是一些示例。应当注意到,过程的一些单元和功能不一定对实施本公开是必要的。单元可以被组合为一个单元或进一步划分为多个子单元。在本文已经描述和说明的是本公开与一些其变化一起的示例。作为说明来阐述在本文使用的术语、描述和图。许多变化在意图由所附权利要求和它们的等同物所限定的本公开的精神和范围内是可能的。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1