针对归约器任务的虚拟机优化分配和/或生成的制作方法

文档序号:11450276阅读:228来源:国知局
针对归约器任务的虚拟机优化分配和/或生成的制造方法与工艺
本公开内容总体涉及计算领域,并且更具体地,涉及用于提供针对归约器任务的优化虚拟机分配的系统与方法。
背景技术
:计算机网络技术通过将工作共享在网络内的各种硬件资源中来允许复杂计算任务的执行。这种资源共享功能促进了此前过于繁琐或不能实行的计算任务的完成。例如,术语“大数据”已被用来描述极其大且复杂、并由此非常难以处理的数据集。许多计算和联网技术的实现已设计出来进行大数据的处理。用于操作这些大型数据集的一种常用操作是mapreduce(映射归约)。举一个例子,采用mapreduce的hadoop(分布式计算框架)可允许应用的写操作,其中这些应用以可靠的、容错的方式在商用硬件的大型集群(数以千计的节点)上并行处理大量数据(多tb级的数据集)。在经虚拟化的环境(例如,openstack云基础架构)中工作时,mapreduce可使用许多分布在物理主机上的虚拟机来实现。对这种大型数据集进行的处理是计算密集的,并在数据中心资源的占用可能是昂贵的。附图说明结合附图并参照以下描述来提供对于本公开及其特征和优点的更完整的理解,其中相似参考符号代表相似部分,其中:图1根据本公开的一些实施例示出在经虚拟化的计算环境中执行的具有映射任务和归约器任务的mapreduce(映射归约)的过程;图2根据本公开的一些实施例示出用于针对在物理主机上的归约器任务确定虚拟机分配的方法的示例性流程图;图3根据本公开的一些实施例示出在映射任务完成之后在映射器虚拟机上的键分布;图4根据本公开的一些实施例示出示例性的变量矩阵x;图5根据本公开的一些实施例示出键分布矩阵d;图6根据本公开的一些实施例示出网络距离矩阵c;以及图7根据本公开的一些实施例示出用于针对在物理主机上的归约器任务确定虚拟机分配的示例性系统。具体实施方式概述本公开涉及在mapreduce(映射归约)中在“映射”阶段基本完成之后进行归约器虚拟机(vm)的分配或生成。代替在先布置,在“映射”阶段之后进行的在映射器虚拟机上键分布可用来在虚拟云计算基础设施(例如,openstack)中有效地进行归约器任务。通过对约束优化问题求解,归约器vm可受制于某些约束被优化地分配给处理键。具体地,本公开描述了一种特殊的变量矩阵。此外,本公开描述了用于表示基于映射器vm上的键分布(以及其他适当的因素)所确定的成本的若干可能的成本矩阵。在一些实施例中,一种用于针对在物理主机上的归约器任务确定虚拟机分配的方法(有时称为“分区方法”)可包括:在映射任务完成之后,确定在映射器虚拟机上的键的分布;基于键的分布确定与向键上的归约器任务进行可能的虚拟机分配所相关联的成本;以及基于成本并受制于一个或多个约束来对向归约器任务的虚拟机分配进行求解。换句话说,向归约器任务分配虚拟机可被公式化为约束优化问题,其中可能存在一个或多个最优或期望的解决方案。从一个或多个解决方案中,可选择能够提供针对归约器任务的最佳虚拟机分配或者至少比其他可能的分配更好的分配的解决方案。此外,针对每个可能的虚拟机以及每个归约器任务,与向归约器任务进行可能的虚拟机分配所相关联的成本包括:用于特定的可能的虚拟机执行特定归约器任务的成本。在一些情况下,可基于键的分布来计算这些成本。有利的是,所得的针对归约器任务的优化虚拟机分配可更有效地利用数据中心中的资源,并在一些情况下,允许比在先归约器vm布置更快地完成mapreduce。具体地,键分布为优化提供了一些引导,使得在数据中心中的针对归约器vm分配的给定集合的一定成本可被确定并被最小化。一般来说,针对每个键以及每个映射器虚拟机,在映射器虚拟机上的键的分布包括:与特定映射器虚拟机一起存储的针对特定键的若干键-值对。在一些实施例中,该方法不仅可以确定向归约器任务分配映射器虚拟机(在“映射”阶段中,vm用作映射器),该方法也可确定向归约器任务分配要在可用物理主机上创建的虚拟机。具体地,分区方法通过使用定义可能的分配的专用变量矩阵从可能的分配中确定优化的分配(即,对基本优化的虚拟机分配进行求解)。具体地,变量矩阵可具有至少为n×(m+p×q)的维度,其中n是键的数目、m是映射器虚拟机的数目、p等于n-m以及q是能创建虚拟机的可用物理主机的数目。广义上讲,分区方法通过针对每个虚拟机以及每个归约器任务基于在映射器虚拟机上的键的分布计算使用特定虚拟机执行针对特定键的特定归约器任务的成本来评估针对归约器任务的多种可能归约器vm分配的成本。在一些实施例中,其他因素被用来计算成本。这些因素可包括下列中的一者或多者:从存储特定键的键-值对的一个或多个虚拟机至执行针对该特定键的归约器任务的特定虚拟的一个或多个网络距离;执行针对特定键的归约器任务的特定虚拟机的处理器利用率;执行针对特定键的归约器任务的特定虚拟机的存储器利用率;从存储特定键的键-值对的一个或多个虚拟机至执行针对该特定键的归约器任务的特定虚拟的通信路径的一个或多个带宽可用性;以及执行针对特定键的归约器任务的特定虚拟机的磁盘输入/输出速度。为了限制可能的分配,分区方法配有一个或多个约束。这些约束可以有利地对可能的分配执行某些规则和策略,并确保优化问题的解是正确的。在一个示例中,一个或多个约束包括下列:(1)虚拟机被分配给至多一个归约器任务,(2)针对特定键的归约器任务仅分被配给一个虚拟机,以及(3)如果归约器任务被分配给要在物理主机上创建的虚拟机,则该虚拟机仅在一个物理主机上被创建。在约束被放宽的另一示例中(例如,在虚拟机能够执行多达预定义数目的一个或多个归约器任务的情况下),该一个或多个约束可包括下列:(1)针对特定键的归约器任务仅被分配给一个虚拟机,以及(2)如果归约器任务被分配给要在物理主机上创建的虚拟机,则该虚拟机仅在一个物理主机上被创建。示例实施例了解在经虚拟化环境中的mapreduce的基础知识mapreduce作业(例如,作为hadoop(海杜普)工作负荷)通常将输入数据集分割成独立的区块以便以并行方式被处理。该作业有两个主要的工作阶段-“map(映射)”和“reduce(归约)”-由此称为mapreduce。在“映射”阶段中,给定的问题被分成更小的子问题,接着每个映射器在提供输出一组(键,值)对(或者在本文中被称为键-值对)的数据子集上工作。在“reduce”阶段,映射器的输出由一组归约器处理,其中每个归约器根据所提供的键对数据进行总结(summarize)。当mapreduce在经虚拟化环境中被实现时(例如,通过使用openstack云基础设施),映射器和归约器被配置为物理主机上的虚拟机(“vm”或有时称为虚拟计算节点)。图1根据本公开的一些实施例示出在经虚拟化计算环境中执行的具有映射任务和归约器任务的mapreduce的过程。首先,数据被提供至m个映射器vm(示为mapvm_1、mapvm_2……mapvm_m)以执行相应的映射器任务。在mapreduce作业期间,所有的映射任务可在归约器任务开始之前完成。一旦映射器任务完成,映射器vm的输出可以具有n个键。对于归约,具有相同键的键-值对应该结束于(或布置在/分配给)同一个归约器vm。这称为分区。在一个示例中,假设一个归约器vm执行针对一个键的归约器任务。该示例会有n个归约器vm(示为reducevm_1、reducevm_2……reducevm_n)。mapreduce系统通常提供默认分区函数,例如,哈希(键)对r取模来为特定键选择归约器vm。但是,由于受不对称的键分布、多租户、网络拥塞等影响,这种简单分区函数可能导致一些归约器vm占用过长的时间,从而使整个作业延迟完成。至少因为这个原因,在主机/服务器的物理拓扑中的vm布置以及这些vm至归约器任务的分配可在这样的工作负荷的性能的决定上起重要作用。经改进的分区方法本公开描述了一种经改进的分区方法,该方法可针对物理主机上的归约器任务确定虚拟机分配,使得所有归约器任务能够既快速又均衡地被完成。在一些实施例中,经改进的分区方法可解决如何在云基础设施(例如,openstack)上的经虚拟化的hadoop环境中对归约器vm进行优化布局。经改进的分区方法可执行技术任务,例如改进归约器vm(以及提供归约器vm的主机)之间的负载平衡,确定是否要创建新的归约器vm、多少个将被创建以及哪一主机来布置新的归约器vm,等等。图2根据本公开的一些实施例示出了阐明用于针对在物理主机上的针对归约器任务确定虚拟机分配的经改进的分区方法的示例性流程图。一旦映射任务完成,分区方法确定在映射器虚拟机上的键的分布(框202)。基于键的分布,分区方法确定与向键上的归约器任务确定可能的虚拟机分配所相关的成本(框204)。基于该成本,分区方法受制于一个或多个约束求解向归约器任务的基本优化的虚拟机分配(框206)。流程图示出改进的分区方法对约束优化问题求解以确定vm至归约器任务的最优分配。这可通过考虑一个或多个约束并基于键分布而最小化成本来完成。本公开预期到等效实现可通过最大化另一个量度(与最小化成本相反)来对该问题求解。完成映射任务之后的键分布以及基于该键的分布进行的示例性归约器vm分配经改进的分区方法的一个有趣特征是,当对归约器vm分配进行优化时,该方法使用键的分布作为约束优化问题的成本函数的部分。键的分布是分区中的一个重要因素,因为在经虚拟化的云基础设施中这些键的传送和处理可能占用大量的网络和计算资源。执行归约器任务所需的网络和计算资源与特定归约器vm执行归约器任务的成本直接相关。针对每个键和每个映射器vm,在映射器虚拟机上键的分布通常会包括:与特定映射器vm(在vm的物理主机上)一起存储的针对特定键的多个键-值对。键的分布提供了关于键存储在何处的信息,这样可确定在某些归约器vm上传送和/或处理这些键的成本。图3根据本公开的一些实施例示出在映射任务完成之后在映射器vm上的键的分布。在该示例中,表或矩阵具有以行示出的映射器vm(映射器1、映射器2、映射器3)。列示出与特定映射器vm一起存储的特定键具有的键-值对的计数/数目。在该示例中,键1对应映射器1具有10000个键-值对,对应映射器2为100000个键-值对,以及对应映射器3为20个键-值对。可以预期到可以使用其他数字类型(例如,百分比、分数、得分、大小等)来表示键的分布。考虑图3中所示的键的分布的示例,用来归约这些键的可能归约器vm分配有:·分配与映射器2使用的vm相同的vm作为针对键1的归约器vm(因为键1的许多键-值对已与映射器2对应),·分配与映射器3使用的vm相同的vm作为针对键2的归约器vm(因为键2的许多键-值对已与映射器3对应),以及·分配与映射器1使用的vm相同的vm作为针对键3的归约器vm(因为被用作映射器1的vm不繁忙)。上述示例性的分配可以确保必须要从映射器移动到归约器的数据量被最小化或被减少。在该示例中,这些分配可以基于哪个vm具有针对特定键的最多键值对(这可能与将数据从映射器移动到归约器的成本直接相关)来确定。注意,在上述与图3相关的示例中可以看出,针对键3的归约器可能已在被用作映射器3的相同vm上被运行,因为被用作映射器3的vm也具有大量的键3键-值对。因此,优化的解决方案可根据如何定义成本而变化。定义约束优化问题:基本设置为了有效地管理这些复杂计算任务的分摊,应当智能地分配可用的计算和网络资源。为了找到最佳布置,该方法通过最小化用以找到受制于资源约束的最优解的成本来解决约束优化问题。具体地,可至少基于映射器vm上的键的分布来确定成本。该最优解决方案一旦找到,就可被计算vm调度器(如openstack计算调度器)用来决定使用哪个物理主机来启动vm或重新使用该主机上的现有映射器vm。在一些实施例中,总成本可以是用于完成在特定vm上的特定归约器任务所消耗的计算和网络资源的量度,这也是完成在特定vm上的该特定归约器任务上所花费的总时间的指示。通过最小化该总成本,可解出针对归约器任务的一个或多个最佳归约器vm分配。在简化的实施例中,在优化时假设每个键将对应一个归约器vm,并且在当前映射器vm正在输出的键多于映射器vm情况下,则可以创建额外的vm。更复杂的实施例将稍后在本公开中被描述,其中优化问题不需要假设一个归约器vm对应一个键,且分区方法可以允许每个归约器vm对应多于一个键。返回并参考该简化的实施例,其中分区方法假设每个归约器vm对应一个键,约束优化问题被归纳为基于键的分布找到决定哪个vm应当用于执行针对特定的键的特定归约器任务的最优解决方案。广义上说,确定分配问题的解决方案是重要的。除了键分布之外的许多因素可以影响分配特定归约器vm来执行针对特定键的归约器任务的成本。与向归约器任务进行可能的虚拟机分配所相关联的成本对于每个键以及每个映射器虚拟机可包括:特定的可能的虚拟机执行特定归约器任务的成本。这种成本可以基于下列中的一者或多者来计算:·基于映射器vm上的键的分布,要在映射器vm和特定归约器vm之间传输的数据的量(与向特定归约器vm传输键-值所需的时间和带宽的量有关,因此会影响执行特定归约器任务的成本);·从存储针对特定键的键-值对的一个或多个虚拟机至执行针对该特定键的归约器任务的特定虚拟机的一个或多个网络距离(与向特定归约器vm传输键-值所需的时间和带宽的量有关,因此会影响执行特定归约器任务的成本);·执行针对特定键的归约器任务的特定虚拟机的处理器利用率(较低利用率通常意味着使用特定归约器vm执行特定归约器任务的成本较低);·执行针对特定键的归约器任务的特定虚拟机的存储器利用率(较低利用率通常意味着使用特定归约器vm执行特定归约器任务的成本较低);·从存储针对特定键的键-值对的一个或多个虚拟机至执行针对该特定键的归约器任务的特定虚拟机的通信路径的一个或多个带宽可用性(较高带宽通常意味着传输键-值对的成本较低和网络利用率较好);·执行针对特定键的归约器任务的特定虚拟机的磁盘输入/输出速度(较高的速度通常意味着较低的成本和较快的归约器任务的执行)。定义变量矩阵x鉴于所有这些变化的因素,约束求解器可有效地解决归约器vm分配和生成的问题。具体地,约束求解器可使用变量矩阵(结合一个或多个成本矩阵)并解出受制于一个或多个约束的一个或多个最优解。约束求解器的机制为搜索变量矩阵的不同的可能实例(受制于一个或多个约束),以确定哪一个(或多个)实例可使成本最低(或降低成本)。图4根据本公开的一些实施例示出示例性的变量矩阵x。矩阵中的每个条目由x_ij表示,其中i的范围为从1到m,j的范围为从1到n。在给定n个键的情况下,经改进的分区方法旨在确定可被分配来对n个键进行归约的n个归约器vm。还存在有m个(现有的)映射器vm,它们是已经存在并被布置在某些物理主机中的vm。因此,这m个映射器vm中的每一者可由变量矩阵中的每一行表示。然而,当m小于n时,应创建p=n-m个额外的vm。为了容纳要在物理主机上创建的p个额外的vm(其中p=n-m),变量矩阵还包括针对这些附加vm的额外的行。根据q个可用主机,变量矩阵可在其中包括多达p×q个(或者某个其他规定的数目的要被创建的可能的额外vm的)新行。换句话说,p×q行指示这些新vm中的每一者潜在地具有能够创建该vm的q个主机选项的选择能力。结果是得到m行的变量矩阵,其中m=m+p×q。换言之,变量矩阵的维度至少为n×(m+p×q),其中n是键的数目,m是映射器虚拟机的数目,p等于n-m,q是能创建虚拟机的可用物理主机的数目。返回并参考图4,如果针对键k_j的归约器选择由v_i表示的vm,则变量矩阵中的每个变量x_ij为1。v_i或者是现有映射器vm中的一者,或者是要在q个可用的主机中的一者上创建的新的vm。对于v_i是要创建的新的非映射器vm的所有v_i,基于每个v_i所处的变量行便可获知新的vm可被创建在哪个主机上。(在数学方面:在i>m的情况下,(i-m)%q可给出v_i对应的主机,其中m是映射器的数目,q是主机的数目,%是取模(余数)算符。)有利地,涉及针对现有vm以及所需的所有额外的vm的多个vm行的这种变量矩阵设置允许我们通过数学解出最佳解决方案,包括有机会使物理主机创建多于一个vm。第一组示例性的约束变量矩阵x的可能实例受到一个或多个约束的限制,一般来说,业务规则/策略可管理多少个vm可被创建在一个主机上,或者归约器vm可执行多少个归约器任务。为此,提供一个或多个约束以限制变量矩阵x的可能实例。返回并参考简化的实施例,存在三个约束:(a1)虚拟机被分配给至多一个归约器任务;(a2)针对特定键的归约器任务仅被分配给一个虚拟机;以及(a3)如果归约器任务被分配给要在物理主机上创建的虚拟机,则该虚拟机仅在一个物理主机上被创建。第一约束(a1)要求:变量矩阵x中的vm行(要创建的映射器vm和非映射器vm)中的x_ij值的和小于或等于1。此约束意味着每个归约器vm最多对应一个针对特定键的归约器任务。约束a1可概括为如下:第二约束(a1)要求:对于所有vm行和所有键,列的总和应等于1。该约束意味着键一次只能由一个vm归约。约束a2可以概括为如下:第三约束(a3)要求:对于要创建的额外vm,vm仅创建在一个主机中。为了解释此约束,将考虑以下示例。假设需要两个额外的vm(p=2),有2个可用主机(q=2),并且有2个键(n=2)。针对这些vm的变量矩阵中的行和列如下:k_1k_2v_11x1x2v_12x3x4v_21x5x6v_22x7x8在此,v_11指示第一主机上的第一vm,v_12指示第二主机上的第一vm,以此类推。因此,第一vm可在主机1或主机2中创建,并且该第一vm只能链接到一个键。因此,针对主机1的约束将是:x1+x2+x3+x4=1。在任何时间点,变量x1、x2、x3或x4中只有一个值可以是1,指示为该vm选择仅仅一个主机,并且为该vm选择仅仅一个键。类似地,针对第二主机的约束将是:x5+x6+x7+x8=1。对于对应于相同vm的所有vm行以及所有可能的主机,约束a3可被总结为:虽然本公开侧重几个简单约束(假设所有主机都能够创建新vm),但本领域技术人员应当理解的是,在一些情况下,主机上的计算资源约束(或规则/策略)可限制这些vm的创建。在这些情况下,进一步的约束可限制哪些主机可实际创建新的vm以及在一个主机上可以创建多少个vm。确定成本矩阵与特定归约器vm执行特定归约器任务的相关联的成本可存储在成本矩阵中。确定与向归约器任务进行可能的虚拟机分配所相关联的成本对于每个虚拟机以及每个归约器任务可包括:基于在映射器虚拟机上的键的分布来计算使用特定虚拟机执行针对特定键的特定归约器任务的成本。计算多于一个成本矩阵是可行的,并且可提供基于变量矩阵x(的实例)和一个或多个成本矩阵来计算总成本的函数。以下示例示出基于键分布和主机之间网络距离定义的成本矩阵。为了表示作为成本的一部分的键分布,可定义键分布矩阵d。图5示出根据本公开的一些实施例的键分布矩阵d。矩阵d中的条目d_ij表示由vmv_i生成的针对键k_j的值的数目。在此示例中,对于非映射器vm变量(要生成的其他vm),相应的键的值为零。为了表示作为成本的一部分的网络距离,可定义网络距离矩阵c。图6示出根据本公开的一些实施例的网络距离矩阵c。网络距离矩阵c中的条目c_ab指示vmv_a和vmv_b之间的网络距离。在此注意c_ii为0,c_ab=c_ba。总成本可取决于网络距离和要在被选择用于特定键的归约器任务vm与要传送针对该键的数据的其他vm之间传送数据量。作为针对键k_1的示例,如果vmv_1是所选择的vm,则这会向总成本的总和贡献以下值:x_11×[d_21×c_21+d_31×c_31+……d_i1×c_i1+……+d_ml×c_ml]。应当理解的是,根据应用可以使用其他公式。因此,总成本的和给出了将针对该键的所有数据从其他vm移动到针对该键的归约器任务的该实际选择的vm以执行归约器任务的成本的度量。为了最小化许多可能分配的成本,分区方法将针对所有可能的变量的成本值加和,以构成用来对下列函数总成本最小化的最终总成本度量:总而言之,上述示例描述了具有成本目标函数和约束的约束优化问题,其中在约束中,变量指示哪个键对应于哪个vm以及对额外的非映射器vm的主机选择,其中假设每个归约器vm对应一个键:上述示例示出了成本矩阵的确定,其中可将一个或多个因素考虑进去。可以预期到其他因素也可以用于确定成本矩阵中的成本。例如,成本可取决于运行这些vm的各种物理机器的繁忙程度以及这些节点之间的网络距离和带宽可用性。换句话说,现有的处理器/网络负荷可能影响成本。在一些情况下,一个或多个因素可导致在完全不同的物理主机上创建新vm,在这样做会减少最长的归约器完成时间的情况下。换句话说,向归约器任务进行的可能虚拟机分配包括:向归约器任务分配映射器虚拟至以及向归约器任务分配将要在可用物理主机上创建的虚拟机。第二组示例性的约束本领域技术人员将理解,约束可根据应用被修改。例如,在一些实施例中,归约器任务可处理多于一个键,换句话说,虚拟机可被分配给任何数目的归约器任务(或某一其他预定数目的归约器任务)。对应的约束可包括(a2)针对特定键的归约器任务仅被分配给一个虚拟机;以及(a3_新)如果将归约器任务分配给要在物理主机上创建的虚拟机,则该虚拟机仅在一个物理主机上被创建。注意,由于约束被放宽松,约束a3_新是约束a3的修改版本,该约束的数学表达将略微不同地被定义。为了适应这种约束中的宽松,可提供第二组示例性的约束(代替第一组,同时保持如上所述的相同或相似的成本矩阵)。由于来自第一组的约束a1不再适用,因此该约束将不被使用。但是,来自第一组的约束a2仍然适用(要求单个键一次仅由一个vm被归约)。来自第一组的被用于指示用于所有额外非映射器vm的主机选择和布置的约束a3可被调整(作为约束a3_新),以考虑到vm可处理多于一个键,但仍然具有每个vm对应于一个主机的约束。返回并参考具有两个额外vm的、2个可选择的主机以及2个键的示例,变量矩阵为:k_1k_2v_11x1x2v_12x3x4v_21x5x6v_22x7x8因此,约束a3_新适用于第一vm变量行:v_11和v_12(指示第一主机或第二主机中的vm),其中:·0≤x1+x3≤1·0≤x2+x4≤1·0≤x1+x4≤1·0≤x2+x3≤1(针对第一vm)这里在约束a3_新中,x1+x3可以至多为1,但也可以为0,指示只有一个主机被选择用于vm(在特定键被选择用于该vm的情况下),或无主机被选择用于vm(在无特定键被选择用于该vm的情况下)。类似地,针对第二vm,约束a3_新规定:·0≤x5+x7≤1·0≤x6+x8≤1·0≤x5+x8≤1·0≤x6+x7≤1(针对第二vm)如果存在要被添加的潜在的额外vm的数目最大值p,并且存在q个主机选项和n个键,则进行归纳:针对所需的p个额外vm中的每个额外vm,对两个变量的每种组合进行约束,其中一个变量来自一个vm行,另一个来自我们所有的针对该特殊vm的q-1个vm变量行中的任意一行。在上述实施例中,这些组合是:·(x1,x3),(x1,x4),(x2,x3),(x2,x4)针对第一vm,以及·(x5,x7),(x5,x8),(x6,x7),(x6,x8)针对第二vm。因此,对于每个表示为(a,b)的组合,约束可以是0≤a+b≤1。总而言之,约束a3_新如下:总而言之,上述示例描述了具有成本目标函数和约束的约束优化问题,其中在约束中,变量指示哪个键对应于哪个vm以及对额外的非映射器vm的主机选择,其中假设每个归约器vm对应一个键:系统概述云基础设施可在诸如nova(计算)、cinder(块存储)、neutron(网络)(其他示例性组件包括swift(目标存储))以及sahara(弹性映射归约)之类的组件之间内部地支持独立的资源布置(即调度)决策。由于由nova调度器和cinder调度器做出的独立决定,存在针对vm和列选择的两个主机驻留在于不同机架中的良好的可能性,因此消耗大量业务带宽,导致非最佳资源布置。现有调度机制支持处理简单约束。但没有保证全面提供全局最优解决方案,并且计算平台通常不处理复杂的优化约束,在复杂的优化约束中不仅可能涉及服务本地的状态变量,而且还涉及其他服务的状态变量,这些变量覆盖所有资源-计算、存储和网络。租户可以具有管理数据中心资源的复杂业务规则和策略,并且资源布局决策(即,在映射归约的情况下进行的分区)应考虑这些要求。例如,租户可期望所有存储保存在进行计算的本地,或者可期望最小化网络带宽利用。还可存在与成本相关的业务规则,该规则关于根据时间调度怎样类型的实例(从而影响成本函数定义)。租户策略还可请求将距离最小化。有利地,经改进的分区方法可解决这些租户规范中的任何一者或多者,同时解决了向归约任务的优化vm分配。图7根据本公开的一些实施例示出的用于实现改进的分区方法(例如,针对在物理主机上的归约任务确定虚拟机分配)的示例性系统。系统700包括分区系统702。分区系统702包括一个或多个处理器704和一个或多个存储器元件706。存储器元件706可存储用于促进本文中的任何分区功能的数据和指令。分区系统702还包括成本模块708和约束求解器710,该成本模块708和约束求解器710在由至少一个处理器704执行时被配置为一种约束求解器,该求解器在当由至少一个处理器执行时被配置来执行分区方法(例如图2所示的方法)的任何一个或多个部分。系统700还包括一个或多个调度器712,其可跟踪资源的状态并指示资源来执行某些任务。例如,调度器712可被配置为使用各种vm来实现mapreduce。在一些情况下,调度器712可提供存储管理。调度器的示例包括neutron、cinder和nova。在系统700中,成本模块708与一个或多个调度器712接合。例如,成本模块708可被配置为确定键的分布以及与主机、虚拟机、网络链路、网络拓扑等相关联的状态。成本模块708可提供用于虚拟云基础设施中的(所更新的)资源状态的储存库。一般来说,成本模块708可收集可用于确定一个或多个成本矩阵的信息。系统700还包括规则/策略部分714,其可与可能想要约束分区方法的租户或管理员进行接合。成本模块708可与规则/策略部分714接合,例如,在某些规则/策略可影响成本函数定义的情况下。此外,约束求解器710可与规则/策略部分714接合以确定约束优化问题的一个或多个约束。使用来自成本模块708的成本矩阵以及从规则/策略部分714确定的约束,约束求解器710可确定归约器vm至归约器任务的优化的分配。相应地,约束求解器710可与调度器712接合以执行那些优化的分配。有利的是,经改进的分区方法和系统提供了一种智能资源布局决策引擎,该决策引擎可普遍应用于多种资源布局决策,并且可与所有服务(例如,可与openstack一起使用的各种云基础设施组件)进行通信。该经改进的分区方法和系统可在满足一组约束时解出最小化(或最大化)某些优化度量。该框架很容易帮助满足租户api,所述租户api可允许租户指定资源请求以及业务规则和策略(可转换为分区框架可用的复杂约束)。进行直到映射任务完成的等待的权衡替代在先的分配/布置,该经改进的分区方法的一个方面涉及在完成映射任务之后提供归约器的动态分配/布置。要求所有映射任务完成不是性能问题。如果所有映射器产生的键的数目少,则总的归约器时间不管怎样都是短;如果所产生的键的数目很多,在所有映射任务完成之后做出归约器布置决策仅对整个完成时间增加少量时间。注意,即使归约器任务是在先启动的,这些归约器任务也不能开始运行,直到所有映射任务完成之后。本领域技术人员还应当理解,用于求解优化问题的时间通常远小于无效分区方法需要的时间。变形和实现尽管上述公开描述了一种在行中具有某些变量并且在列中具有某些变量的矩阵,但是本领域技术人员应当理解,在等同的实现中可切换行和列。本文所公开的实施例旨在说明约束求解器可如何被使用来优化归约器vm至键的分配。本领域技术人员将理解,可以想到其他实施例,其中可进行一个或多个假设/简化以使优化问题不那么复杂。此外,本领域技术人员将理解,利用本实施例的优点的同时可根据应用采用约束的其他组合。所述经改进的分区方法通常在映射任务完成之后执行。然而,在一些情况中,一旦键的分布可被估计(但是映射任务不一定完成),就执行该经改进的分区方法。此外,实施例通常假设映射器vm已经被创建,并且映射器vm能够作为归约器vm运行归约器任务。然而,可设想,并不是所有映射器vm都能够作为归约器vm运行归约器任务,特别是在一些映射器vm被调度以执行其他任务的情况下。如果网络距离是(总)成本的一部分,则本领域技术人员可预期,两个虚拟机(即,正在运行两个虚拟机的相应主机)之间的网络距离的量度可根据云基础设施中的主机的物理拓扑被确定或者估计。在一些情况下,约束优化问题可能需要每个归约器或映射器对应一个vm,但是可设想,优化问题适用于vm可运行多个归约器或映射器的情况。为了进一步简化问题,一些实施例可直接通过与分配给归约器任务的(键-值)对的数目成正比来估计完成归约器任务的时间。然而,设想本公开的一些变形可以不同的方式对完成归约器任务的时间进行估计(例如,基于另外的因素)。在本公开的上下文中,本文所用的网络代表用于接收和发送通过通信系统传播的信息的分组的互连通信路径的一系列点、节点、或网络元素。网络提供源和/或主机之间的通信接口,并且可以是任何局域网(lan)、无线局域网(wlan)、城域网(man)、内联网、外联网、互联网、wan、虚拟专用网(vpn)或根据网络拓扑促进网络环境中的通信的任意其他适合的架构或系统。网络可包括通过通信介质耦合到彼此(并且彼此进行通信)的任何数目的硬件或软件元件。如本文在本说明书中所使用的,术语“网络元件”意味着包括任何上述元件,以及分区系统、服务器(物理的或虚拟的)、终端用户设备、路由器、交换机、电缆箱、网关、桥接器、负载平衡器、防火墙、内联服务节点、代理、处理器、模块或可操作以在网络环境中交换、接收和传输信息的任何其他合适的设备、组件、元件、专有设备或对象。这些网络元件可包括便于进行分区操作的任何合适的硬件、软件、组件、模块、接口或对象。这可包括允许有效交换数据或信息的适当的算法和通信协议。在一个实现中,本文描述的分区系统可包括实现(或促进)本文所讨论的用于针对归约器任务确定优化归约器vm分配的功能的软件,其中软件运行在一个或多个处理器上以执行所述功能。这可包括成本模块、约束求解器和/或促进本文所讨论的活动的任何其他合适的元件的实例的实现。另外,这些元件中的每一者可具有内部结构(例如,处理器、存储器元件等),以便于进行本文描述的一些操作。在其他实施例中,这些分区功能可在这些元件外部执行,或者包括在某些其他网络元件中以实现预期的功能。可选地,分区系统可包括可与其他网络元件协作以便实现本文所描述的功能的软件(或往复式软件)。在其他实施例中,一个或多个设备可包括促进操作的任何合适的算法、硬件、软件、组件、模块、接口或对象。在某些示例性实现中,这里概述的对称路由功能可通过在一个或多个非暂态、有形的介质(例如,在专用集成电路(asic)、数字信号处理器(dsp)指令、要被一个或多个处理器执行的软件(可能包括目标代码和源代码)、或其他类似机器等中提供的嵌入式逻辑)中编码的逻辑来实现。在这些实例的一些中,一个或多个存储器元件可存储用于这里所述的操作的数据。这包括能够存储指令(例如,软件、代码等)的存储器元件,这些指令被执行以执行本说明书中所述的动作。存储器元件被进一步配置为存储数据库(例如,映射数据库)来使能这里所公开的对称路由。处理器可执行与数据相关联的任意类型的指令,以实现本说明书在这里详细说明的操作。在一个示例中,处理器可将元件或物品(例如,数据)从一个状态或事物转换到另一状态或事物。在另一示例中,这里概述的活动可采用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且这里标识的元件可以是某种类型的可编程处理器,可编程数字逻辑(例如,现场可编程门阵列(fpga)),可擦可编程只读存储器(eprom),电可擦可编程rom(eeprom),或包括数字逻辑、软件、代码、电子指令、或其任意适当组合的asic。这些元件(例如,网络元件等)中的任一个可包括用于存储信息以用于获得对称路由的存储器元件,如这里所概述的那样。此外,这些设备中的每一个可包括能够执行软件或算法以执行用于保证本说明书中所述的对称路由的动作的处理器。这些设备还可将信息保持在任意适当的存储器元件(随机存取存储器(ram)、rom、eprom、eeprom、asic等)、软件、硬件中,或任意其他适当的组件、设备、元件、或适当且基于具体需要的物体中。这里所述的任意存储器项目应被解释为被包含在广泛的术语“存储器元件”中。类似地,本说明书中所述的任意可能的处理元件、模块、和机器应被解释为被包含在广泛的术语“处理器”中。每个网络元件还可包括用于在网络环境中接收、发送、和/或以其他方式传输数据或信息的适当接口。此外,需要注意的是,根据上述示例,可用两个、三个或四个元件来对交互进行描述。然而,这样做仅是为了清晰和举例的目的。在某些情况下,通过只参考有限数目的网络元件来描述给定流集的一个或多个功能会更容易。应当认识到,此处描述的系统是可轻易扩展的并且可容纳大量数目的组件,以及更复杂/精巧的布置与配置。从而,所提供的示例不应该限制保证对称路由的范围或抑制其广泛的技术,这些技术可能被应用于很多其他架构中。还需要注意的是,图2中的步骤只说明了由这里所述的分区系统运行的或在其中的一些可能情况。这些步骤中的一些可在适当时被删除或移除,或者在不背离本公开的范围的情况下这些步骤可以被适当修改或改变。此外,许多这样的操作可以和一个或多个额外操作同时执行或并行执行。但是,这些操作的时序可被适当更改。上面的操作流被提供用于举例和论述的目的。分区系统提供的大量的灵活性在于:在不背离本公开的教导的情况下,可设置任何合适的布置、发生顺序、配置、和时序机制。很多其他改变、替换、变更、更改和修改可被本领域的技术人员确定,本公开旨在包含落入所附权利要求范围的所有这些改变、替换、变更、更改和修改。为了协助美国专利商标局(uspto)及针对本申请所授予的任何专利的任何读者理解所附的权利要求,申请人希望阐述,申请人:(a)不希望任何所附权利要求援引在其申请日存在的35u.s.c.的112章的第六款,除非在具体的权利要求中特定地使用了词语“用于…的装置”或“用于…的步骤”;以及(b)不希望通过本说明书中的任何表述来以任何未在所附权利要求中以其他方式体现的形式来限制本公开。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1