一种负载均衡的方法及其装置与流程

文档序号:12271016阅读:303来源:国知局
一种负载均衡的方法及其装置与流程

本发明涉及计算机技术领域,尤其涉及一种负载均衡的方法及其装置。



背景技术:

现有云计算平台上默认采用的虚拟机分配算法是随即算法,容易导致各个物理机的负载差异很大,部分物理机因为负载过大而带来宕机的风险,或者部分物理机因某种负载过小而带来资源的浪费。



技术实现要素:

本发明实施例提供一种负载均衡的方法及其装置,可以实现各个物理机的负载均衡。

第一方面,本发明实施例提供了一种负载均衡的方法,该方法包括:若接收虚拟机的请求,则获取虚拟机的CPU核数和内存大小;根据获取的虚拟机的CPU核数和内存大小识别虚拟机的消耗类型;获取每个物理机当前的CPU使用率和内存使用率;根据虚拟机的消耗类型以及获取的每个物理机的CPU使用率和内存使用率,按照预设第一规则计算出每个物理机的均衡参数;将虚拟机分配给均衡参数最大的物理机。

另一方面,本发明实施例提供了一种负载均衡装置,该装置包括获取模块、识别模块、第一计算模块和分配模块,其中,获取模块用于若接收虚拟机的请求,获取虚拟机的CPU核数和内存大小以及还用于获取每个物理机当前的CPU使用率和内存使用率;识别模块用于根据获取的虚拟机的CPU核数和内存大小识别虚拟机的消耗类型;第一计算模块用于根据虚拟机的消耗类型以及获取的每个物理机的CPU使用率和内存使用率,按照预设第一规则计算出每个物理机的均衡参数;分配模块用于将虚拟机分配给均衡参数最大的物理机。

本发明实施例通过计算出每个物理机的均衡参数,再根据均衡参数确定放置虚拟机的物理机,由于均衡参数与物理机的CPU使用率、内存使用率和虚拟机的消耗类型相关,其中每个物理机的CPU使用率以及内存使用率与物理机集群的均衡相关、虚拟机的消耗类型又与每个物理机内部CPU和内存均衡相关,因此该方法即考虑了物理机集群整体的均衡又考虑了单个物理机内部资源的负载均衡,因此更有效的实现了物理机集群的负载均衡。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供一种负载均衡的方法的示意流程图;

图2是提供的一种物理机集群负载不均衡的折线图;

图3是图1的子流程示意图;

图4是图1的子流程示意图;

图5是图4的子流程示意图;

图6是本发明实施例提供一种物理机集群负载均衡的折线图;

图7是本发明实施例提供一种物理机集群负载均衡的散点图;

图8是本发明实施例提供一种负载均衡装置的组成示意图。

图9是本发明实施例提供第一计算单元的组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组建的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组建和/或其集合的存在或添加。还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

在云计算平台的数据中心有多主机组成的集群,一个集群中包括若干个物理机,物理机是用于运行虚拟机的主机。由于不断接收来自虚拟机的请求,需要分配物理机来放置虚拟机,因此需要根据物理机的负载从物理机集群中选择负载相对小的物理机来运行虚拟机,进而实现物理机集群的负载均衡。请参看图1,本发明实施例提供的一种负载均衡的方法,如图所示,负载均衡的方法包括S100~S106。

S100,开始。

S101,若接收虚拟机的请求,则获取虚拟机的CPU核数和内存大小。CPU(central processing unit)是中央处理器的缩写,CPU核数用于表示CPU核心的数量。

S102,根据获取的虚拟机的CPU核数和内存大小识别虚拟机的消耗类型。具体的,虚拟机的消耗类型包括常规类型、CPU消耗型以及内存消耗型,不同消耗类型的虚拟机的对资源的占用不同,CPU消耗型所占用的CPU资源相比内存消耗型和常规类型占用的CPU资源多;内存消耗型所占用的内存资源相比CPU消耗型和常规类型占用的内存资源多。而部分物理机内部CPU和内存的资源存在不均衡,因此需要考虑物理机内部资源的均衡以及虚拟机的消耗类型,将虚拟机放置于较佳的物理机上来实现物理机内部的资源均衡。具体实现过程为根据获取的CPU核数和内存大小的比值来判断虚拟机的消耗类型。

S103,获取每个物理机当前的CPU使用率和内存使用率。本实施例中,用Ui表示第i个物理机的CPU使用率,Mi表示第i个物理机的内存使用率。

S104,根据虚拟机的消耗类型以及获取的每个物理机的CPU使用率和内存使用率,按照预设第一规则计算出每个物理机的均衡参数。本实施例中,用S2表示均衡参数。

均衡参数S2用于表示综合考虑物理机集群整体的负载均衡以及物理机内部CPU和内存资源的负载均衡时,物理机的选择性。物理机的均衡参数S2越大,则优选考虑该物理机来放置虚拟机。

预设第一规则用于表示虚拟机的消耗类型、获取的每个物理机的CPU使用率和内存使用率与均衡参数的关系,针对不同消耗类型的虚拟机,物理机的均衡参数与物理机的CPU使用率和内存使用率的关系式不同。具体的,若虚拟机的消耗类型为CPU消耗型或者内存消耗型,物理机的均衡参数还与物理机的CPU使用率以及内存使用率的比值相关,若虚拟机的消耗类型为常规类型,物理机的均衡参数与物理机的CPU使用率以及内存使用率的比值无关。

S105,将虚拟机分配给均衡参数最大的物理机。由于均衡参数S2用于表示综合考虑物理机集群整体的负载均衡以及物理机内部CPU和内存资源的负载均衡时,物理机的选择性。物理机均衡参数S2越大,则优选考虑该物理机来放置虚拟机。因此将虚拟机分配给均衡参数S2最大的物理机,以此来实现物理机集群的负载均衡,应当理解,物理机集群的负载均衡包括物理机彼此之间的负载均衡以及单个物理机内部资源的均衡。

S106,结束。

需要说明的是,基于物理机内部存在CPU和内存资源的不均衡以及不同消耗类型的虚拟机消耗CPU或者内存的不同,S102中识别虚拟机的消耗类型是有必要的。请参看图2,如图2所示图中所示L1为CPU使用率,L2为内存使用率,其中16~20这几个物理机出现了CPU使用率高而内存使用率低的情况,相差较大,会导致这几个物理机的资源利用率不高,在满负荷时,容易造成CPU或内存较大的浪费,且容易导致物理机内CPU和内存的均衡问题。因此需要考虑单个物理机内部的内存和CPU资源的负载均衡。首先需要识别虚拟机的类型,进而根据虚拟机的消耗类型和各个物理机内部资源的情况分配适宜的物理机,例如虚拟机为CPU消耗型时,应该选择内存相对CPU消耗高的物理机来放置虚拟机;虚拟机为内存消耗型时,应该选择CPU相对内存消耗高的物理机来放置虚拟机。请参看图3,本发明实施例提供的图1的子流程示意图,如图所示,S102根据获取的CPU核数和内存大小识别虚拟机的消耗类型,包括:

S301,计算获取的虚拟机的CPU核数与内存大小的比值。

S302,判断比值是在预设第一范围还是预设第二范围或是预设第三范围。其中预设第二范围大于预设第一范围和预设第三范围,预设第一范围大于预设第三范围。本实施例中优选预设第一范围为:大于0.25且小于1,预设第二范围为:大于或等于1,预设第三范围为小于或等于0.25。

S303,若比值在预设第一范围,识别虚拟机的消耗类型为常规类型。

S304,若比值在预设第二范围,识别虚拟机的消耗类型为CPU消耗型。

S305,若比值在预设第三范围,识别虚拟机的消耗类型为内存消耗型。

上述方法,根据虚拟机的CPU核数以及内存大小识别消耗类型,所识别的消耗类型用于考虑物理机内部资源的均衡时选择物理机。

还需要说明的是,S104中计算的均衡参数S2用于表示综合考虑物理机集群整体的负载均衡以及物理机内部CPU和内存资源的负载均衡时,物理机的选择性。本实施例中,用第一均衡度S1表示考虑物理机集群整体的负载均衡时,物理机的选择性;用第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。

请参看图4,如图所示,S104根据所述虚拟机的消耗类型以及获取的每个物理机的CPU使用率和内存使用率,按照预设第一规则计算出所述每个物理机的均衡参数,包括S401~S405:

S401,将获取的每个物理机的CPU使用率和内存使用率按照预设第二规则计算出每个物理机的第一均衡度。

具体的,第一均衡度S1用于表示考虑物理机集群整体的负载均衡时,物理机的选择性。应当理解,若只考虑整个集群整体的负载均衡,而不考虑各个物理机内部资源均衡,将选择当前第一均衡度S1最大的物理机来放置虚拟机。

应当理解若只考虑内存,而不考虑CPU的影响因素时,为了物理机集群的负载均衡,应当将虚拟机分配给当前内存使用率最低的物理机,同理,只考虑CPU,不考虑内存的影响时,应当将虚拟机的请求给当前CPU使用率最低的物理机,本实施例同时考虑CPU以及内存的影响,因此第一均衡度S1与CPU使用率Ui和内存使用率Mi均相关,第一均衡度S1与CPU使用率以及内存使用率成函数关系。

预设第二规则用于表示每个物理机的CPU使用率和内存使用率与第一均衡度的关系,本实施例中,预设第二规则具体为:若CPU和内存对第一均衡度的影响程度相同时或者两者之间的影响程度差可以忽略,一个物理机的CPU使用率和内存使用率分别大于另一物理机的CPU使用率和内存使用率,则该一个物理机的第一均衡度S1小于另一物理机的第一均衡度S1;若CPU和内存对第一均衡度的影响差异不可忽略,第一均衡度与CPU使用率、内存使用率以及CPU相对内存的选择权重w1有关,选择权重W1用于表示CPU和内存对第一均衡度的影响程度差异。

请参照图5,如图所示,S401将获取的每个物理机的CPU使用率和内存使用率按照预设第二规则计算出每个物理机的第一均衡度,包括S501~S504:

S501,计算每个物理机当前的CPU使用率的倒数和内存使用率的倒数。

S502,对所有物理机的CPU使用率的倒数进行求和得到CPU总权重,对所有物理机的内存使用率的倒数得到内存总权重。

S503,计算每个物理机的CPU使用率的倒数与CPU总权重的比值得到CPU占比c以及每个物理机的内存使用率的倒数与内存总权重的比值得到内存占比m。例如三个物理机的CPU使用率为1/3/、1/3、以及1/4,则此三个物理机的CPU使用率的倒数为3、3、4,CPU总权重为3+3+4=10,三个物理机的CPU占比c分别为3/10、3/10以及4/10。

S504,根据所计算出的每个物理机的CPU占比c以及内存占比m和预设的CPU相对内存的选择权重w1计算出第一均衡度S1。第一均衡度S1与CPU占比c、内存占比m、CPU相对内存的选择权重w1的关系如下:

S1=c×w1+m×(1-w1)

其中预设的CPU相对内存的选择权重w1表示优先考虑CPU影响因素或者内存影响因素,w1越大表示更优先考虑CPU因素对物理机集群整体负载均衡的影响,w1越小表示更优先考虑内存因素对物理机集群整体负载均衡的影响。本实施例优选忽略CPU因素或内存因素的影响区别,将w1设置为0.5,其它可行的实施例中,w1可以根据CPU因素或者内存因素的影响程度设置为其他数值。

由于本实施例中优选w1等于0.5,此时预设第二规则为一个物理机的CPU使用率和内存使用率分别大于另一物理机的CPU使用率和内存使用率,该一个物理机的第一均衡度S1小于另一物理机的第一均衡度S1。

S402,若虚拟机的消耗类型是常规类型,赋予每个物理机的均衡参数为对应物理机的第一均衡度。

具体的,若虚拟机的消耗类型为常规类型,因为虚拟机的消耗类型为常规类型时,分配该虚拟机给物理机后,不会对物理机内部资源造成额外的不均衡。

S403,若虚拟机的消耗类型是CPU消耗型或内存消耗型,根据获取的每个物理机的CPU使用率和内存使用率,计算出CPU平均使用率和内存平均使用率。

具体的,本实施例中用Uavg表示物理机集群的CPU平均使用率,Mavg表示物理机集群的内存平均使用率。需要说明的是,若虚拟机的消耗类型是CPU消耗型或内存消耗型,计算物理机的均衡参数还包括S404和S405。

S404,根据获取的每个物理机的CPU使用率和内存使用率以及CPU平均使用率和内存平均使用率计算出每个物理机的第二均衡度。

用第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。第二均衡度t等于物理机的CPU使用率Ui和内存使用率Mi的比值与CPU平均使用率Uavg和内存平均使用率Mavg比值的差,关系如下所示:

当t﹥0是,表示此物理机的CPU使用率相对内存使用率较多即CPU消耗相对内存消耗较多,t越大表示该物理机内CPU和内存资源越不均衡;当t﹤0时,表示此物理机的内存使用率相对CPU使用率较多,即内存消耗相对CPU消耗较多,t的绝对值越大,表示该物理机内CPU和内存资源越不均衡。

S405,根据虚拟机的消耗类型、每个物理机的第一均衡度以及第二均衡度计算出每个物理机的均衡参数。

由于第一均衡度S1用于表示考虑物理机集群整体的负载均衡时,物理机的选择性;而第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。而虚拟机的消耗类型为CPU消耗型或者内存消耗型时,虚拟机放置在物理机上后均会对物理机内部资源的均衡造成影响。因此均衡参数与虚拟机的消耗类型、第一均衡度以及第二均衡度相关。

若虚拟机的消耗类型为CPU消耗型,均衡参数S2有:

S2=S1-k×tn其中,n为奇数,k为正数,k以及n的设置是为了使物理机集群整体均衡以及物理机内部资源均衡的影响相当,即使S1与k×tn的数值在同一数量级。应当理解,若虚拟机的消耗类型为CPU消耗型,应该选择内存相对CPU消耗高的物理机来运行虚拟机,以此来均衡物理机的内部资源,所选择的物理机的第二均衡度t值小于零。

若虚拟机的消耗类型为内存消耗型,均衡参数S2有:

S2=S1+k×tn,同理,n为奇数,k为正数,k以及n的设置是为了使物理机集群整体均衡以及物理机内部资源均衡的影响相当,即使S1与k×tn的数值在同一数量级。应当理解,若虚拟机的消耗类型为内存消耗型,应该选择CPU相对内存消耗高的物理机来运行虚拟机,以此来均衡物理机内部资源,所选择的物理机的第二均衡度t值大于零。

本实施例中,将物理机全部分配8C/8G和4C/32G情况进行计算获知,Ui/Mi的范围为(0.32,2.56),因此第二均衡度t的范围为(-2.24,2.24)。

若虚拟机的消耗类型为CPU消耗型,均衡参数S2:

若虚拟机的消耗类型为内存消耗型,均衡参数S2有:

其中,对第二均衡度t进行处理,使t/3的范围为(-1,1),再3次方后,使物理机内CPU和内存资源越不均衡时,对均衡参数S2的影响越大,再除以1000,使物理机内部资源的均衡对均衡参数S2的影响程度与物理机集群整体均衡的影响程度在同一等级。

从上述关系式可知,若虚拟机的消耗类型是CPU消耗型,一个物理机的第一均衡度大于另一物理机的第一均衡度,且该一个物理机的第二均衡度小于另一物理机的第二均衡度,该一个物理机的均衡参数大于另一物理机的均衡参数;若虚拟机的消耗类型是内存消耗型,一个物理机的第一均衡度和第二均衡度分别大于另一物理机的第一均衡度和第二均衡度,该一个物理机的均衡参数大于另一物理机的均衡参数。

应当理解,利用上述负载均衡的方法,即考虑了物理机集群整体的负载均衡,又考虑了单个物理机内部CPU和内存资源的负载均衡,因此通过该方法使不同物理机的CPU使用率和内存使用率接近,同时单个物理机内部的CPU使用率和内存使用率也接近,进而即保证了物理机彼此之间的负载均衡以及单个物理机内部资源的均衡,同时还提高了各个物理机内资源的利用率,使物理机满载时,运行的虚拟机数量增加了。请参看图6和图7,图中所示为使用上述负载均衡方法后,物理机的CPU使用率和内存使用率的折线图和散点图,图中所示L1为CPU使用率,L2为内存使用率。

相较于上述方法,进一步地,为了衡量物理机集群的均衡情况,采用综合均衡度以及接收的虚拟机的数量作为衡量标准,综合均衡度越低,表示物理机集群的负载越加均衡;处理的虚拟机越多,表示物理机内资源利用率越高。负载均衡方法还包括:

根据每个物理机当前的CPU使用率和内存使用率,计算出CPU平均使用率和内存平均使用率。

根据每个物理机的CPU使用率与CPU平均使用率的离散程度以及每个物理机的内存使用率与内存平均使用率的离散程度获取综合均衡度Q,综合均衡度Q用于表示物理机集群的负载均衡。具体的,通过对所有物理机的CPU使用率以及内存使用率分别进行均方误差计算后进行加权计算。

具体的,若Ui表示第i个物理机的CPU使用率,Uavg表示物理机集群的CPU平均使用率,则物理机集群的CPU均衡度Q1为对所有物理机的CPU使用率进行均方误差计算:

若Mi表示第i个物理机的内存使用率,Mavg表示物理机集群的内存平均使用率。物理机集群的内存均衡度Q2为对所有物理机的内存使用率进行均方误差计算:

则对所计算出来的CPU均衡度以及内存均衡度进行加权计算,综合均衡度Q有:

Q=Q1×W2+Q2×(1-W2)

其中,W2表示考虑综合均衡度时,CPU相对内存的均衡权重,若W2越大,表示优选考虑CPU对综合均衡度的影响。这是因为CPU和内存对综合均衡度的影响可能是不同的。本实施例中,暂时设定CPU和内存对综合均衡度的影响相近,忽略之间的差异,取W2为0.5。

应当理解,根据综合均衡度Q可获知该物理机集群的负载均衡情况,若综合均衡度越小,表示越均衡,因此可以实时根据综合均衡度Q监控物理机集群的负载均衡,还可以根据综合均衡度Q调整第一均衡度、第二均衡度以及均衡参数之间的关系,以便物理机集群的负载更加均衡。

还应当理解,若在实际情况中,为了扩大规模,需要增加物理机,使用该负载均衡的方法后,增加物理机后,刚增加的物理机的CPU使用率和内存使用率为零,远远偏离各自均值,物理机集群的当前的综合均衡度Q将会上升,系统相对不均衡,但是根据负载均衡方法,将会优先分配虚拟机给新增的物理机,因此,物理机集群的综合均衡度Q将会下降直至平稳,因此新增的物理机可以快速的融入物理机集群中,且物理机集群相对快速的恢复至均衡状态。

请参看图8,本发明实施例提供的一种负载均衡装置,该装置100用于分配物理机给虚拟机放置运行,该装置100分别与物理机以及虚拟机通讯,如图所示,负载均衡装置包括接收模块81、获取模块82、识别模块83、第一计算模块84和分配模块85。

其中接收模块81用于接收虚拟机的请求。

获取模块82用于获取虚拟机的CPU核数和内存大小以及还用于获取每个物理机当前的CPU使用率和内存使用率。CPU(central processing unit)是中央处理器的缩写,CPU核数用于表示CPU核心的数量。

识别模块83用于根据获取的虚拟机的CPU核数和内存大小识别虚拟机的消耗类型。

第一计算模块84根据所述虚拟机的消耗类型以及获取的每个物理机的CPU使用率和内存使用率,按照预设第一规则计算出所述每个物理机的均衡参数。

分配模块85用于将虚拟机分配给均衡参数最大的物理机。

具体的,识别模块83识别虚拟机的消耗类型时,本实施例中,虚拟机的消耗类型包括常规类型、CPU消耗型以及内存消耗型,不同消耗类型的虚拟机的对资源的占用不同,CPU消耗型所占用的CPU资源相比内存消耗型和常规类型占用的CPU资源多;内存消耗型所占用的内存资源相比CPU消耗型和常规类型占用的内存资源多。识别模块83还包括第一运算单元831、判断单元832以及处理单元833。

其中第一运算单元831用于计算获取的CPU核数与内存大小的比值。

判断单元832用于判断比值是在预设第一范围还是预设第二范围或是预设第三范围。其中预设第二范围大于预设第一范围和预设第三范围,预设第一范围大于预设第三范围。本实施例中优选预设第一范围为:大于0.25且小于1,预设第二范围为:大于或等于1,预设第三范围为小于或等于0.25。

处理单元833用于如判断单元832判断出比值在预设第一范围,识别虚拟机的消耗类型为常规类型;判断出比值在预设第二范围,识别虚拟机的消耗类型为CPU消耗型以及判断出比值比值在预设第三范围,识别虚拟机的消耗类型为内存消耗型。

需要说明的是,第一计算模块84计算出每个物理机的均衡参数,是综合考虑物理机集群整体的负载均衡以及物理机内部CPU和内存资源的负载均衡时,物理机的选择性。本实施例中,用第一均衡度S1表示考虑物理机集群整体的负载均衡时,物理机的选择性;用第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。第一计算模块84包括第一计算单元841、设置单元842、第二计算单元843以及第三计算单元844和第四计算单元845。

第一计算单元841用于将获取的每个物理机的CPU使用率和内存使用率按照预设第二规则计算出每个物理机的第一均衡度。

具体的,第一均衡度S1用于表示考虑物理机集群整体的负载均衡时,物理机的选择性。应当理解,若只考虑整个集群整体的负载均衡,而不考虑各个物理机内部资源均衡,将选择当前第一均衡度S1最大的物理机来放置虚拟机。应当理解若只考虑内存,而不考虑CPU的影响因素时,为了物理机集群的负载均衡,应当将虚拟机分配给当前内存使用率最低的物理机,同理,只考虑CPU,不考虑内存的影响时,应当将虚拟机的请求给当前CPU使用率最低的物理机,本实施例同时考虑CPU以及内存的影响,因此第一均衡度S1与CPU使用率Ui和内存使用率Mi均相关,第一均衡度S1与CPU使用率以及内存使用率成函数关系。

请参看图9,第一计算单元841包括第二运算单元8411、求和单元8412、第三运算单元8413以及第四运算单元8414。

其中,第二运算单元8411用于计算每个物理机当前的CPU使用率的倒数和内存使用率的倒数。

求和单元8412用于对所有物理机的CPU使用率的倒数进行求和得到CPU总权重,对所有物理机的内存使用率的倒数得到内存总权重。

第三运算单元8413用于计算每个物理机的CPU使用率的倒数与CPU总权重的比值得到CPU占比c以及每个物理机的内存使用率的倒数与内存总权重的比值得到内存占比m。

第四运算单元8414用于根据所计算出的每个物理机的CPU占比c以及内存占比m和预设的CPU相对内存的选择权重w1计算出第一均衡度S1。

第一均衡度S1与CPU占比c、内存占比m、CPU相对内存的选择权重w1的关系如下:

S1=c×w1+m×(1-w1)

其中预设的CPU相对内存的选择权重w1表示优先考虑CPU影响因素或者内存影响因素,w1越大表示更优先考虑CPU因素对物理机集群整体负载均衡的影响,w1越小表示更优先考虑内存因素对物理机集群整体负载均衡的影响。本实施例暂时忽略CPU因素或内存因素的影响区别,将w1设置为0.5,其它可行的实施例中,w1可以根据CPU因素或者内存因素的影响程度设置为其他数值。

应当理解,由于本实施例中w1等于0.5,因此若一个物理机的CPU使用率和内存使用率分别大于另一物理机的CPU使用率和内存使用率,该一个物理机的第一均衡度S1小于另一物理机的第一均衡度S1。

设置单元842用于若虚拟机的消耗类型是常规类型,赋予每个物理机的均衡参数为对应物理机的第一均衡度。

第二计算单元843用于若虚拟机的消耗类型是CPU消耗型或内存消耗型,根据获取的每个物理机的CPU使用率和内存使用率,计算出CPU平均使用率和内存平均使用率。

具体的,本实施例中用Uavg表示物理机集群的CPU平均使用率,Mavg表示物理机集群的内存平均使用率。

第三计算单元844用于根据获取的每个物理机的CPU使用率和内存使用率以及CPU平均使用率和内存平均使用率计算出每个物理机的第二均衡度。

用第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。第二均衡度t等于物理机的CPU使用率Ui和内存使用率Mi的比值与CPU平均使用率Uavg和内存平均使用率Mavg比值的差,关系如下所示:

当t﹥0是,表示此物理机的CPU使用率相对内存使用率较多即CPU消耗相对内存消耗较多,t越大表示该物理机内CPU和内存资源越不均衡;当t﹤0时,表示此物理机的内存使用率相对CPU使用率较多,即内存消耗相对CPU消耗较多,t的绝对值越大,表示该物理机内CPU和内存资源越不均衡。

第四计算单元845用于根据虚拟机的消耗类型、每个物理机的第一均衡度以及第二均衡度计算出每个物理机的均衡参数。

由于第一均衡度S1用于表示考虑物理机集群整体的负载均衡时,物理机的选择性;而第二均衡度t表示考虑物理机内部CPU和内存资源的负载均衡时,物理机的选择性。而虚拟机的消耗类型为CPU消耗型或者内存消耗型时,虚拟机放置在物理机上后均会对物理机内部资源的均衡造成影响。因此均衡参数与虚拟机的消耗类型、第一均衡度以及第二均衡度相关。

若虚拟机的消耗类型为CPU消耗型,均衡参数S2有:

S2=S1-k×tn其中,n为奇数,k为正数,k以及n的设置是为了使物理机集群整体均衡以及物理机内部资源均衡的影响相当,即使S1与k×tn的数值在同一数量级。应当理解,若虚拟机的消耗类型为CPU消耗型,应该选择内存相对CPU消耗高的物理机来运行虚拟机,以此来均衡物理机的内部资源,所选择的物理机的第二均衡度t值小于零。

若虚拟机的消耗类型为内存消耗型,均衡参数S2有:

S2=S1+k×tn,同理,n为奇数,k为正数,k以及n的设置是为了使物理机集群整体均衡以及物理机内部资源均衡的影响相当,即使S1与k×tn的数值在同一数量级。应当理解,若虚拟机的消耗类型为内存消耗型,应该选择CPU相对内存消耗高的物理机来运行虚拟机,以此来均衡物理机内部资源,所选择的物理机的第二均衡度t值大于零。

本实施例中,将物理机全部分配8C/8G和4C/32G情况进行计算获知,Ui/Mi的范围为(0.32,2.56),因此t的范围为(-2.24,2.24)。

若虚拟机的消耗类型为CPU消耗型,均衡参数S2:

若虚拟机的消耗类型为内存消耗型,均衡参数S2有:

其中,对第二均衡度t进行处理,使t/3的范围为(-1,1),再3次方后,使物理机内CPU和内存资源越不均衡时,对均衡参数S2的影响越大,再除以1000,使物理机内部资源的均衡对均衡参数S2的影响程度与物理机集群整体均衡的影响程度在同一等级。

从上述关系式可知,若虚拟机的消耗类型是CPU消耗型,一个物理机的第一均衡度大于另一物理机的第一均衡度,且该一个物理机的第二均衡度小于另一物理机的第二均衡度,该一个物理机的均衡参数大于另一物理机的均衡参数;若虚拟机的消耗类型是内存消耗型,一个物理机的第一均衡度和第二均衡度分别大于另一物理机的第一均衡度和第二均衡度,该一个物理机的均衡参数大于另一物理机的均衡参数。

还需要说明的是,为了衡量物理机集群的均衡情况,采用综合均衡度以及接收的虚拟机的数量作为衡量标准,综合均衡度越低,表示物理机集群的负载越加均衡;处理的虚拟机越多,表示物理机内资源利用率越高。该负载均衡装置100还包括第二计算模块86以及第三计算模块87。

其中第二计算模块86用于根据每个物理机当前的CPU使用率和内存使用率,计算出CPU平均使用率和内存平均使用率。

第三计算模块87用于根据每个物理机的CPU使用率与CPU平均使用率的离散程度以及每个物理机的内存使用率与内存平均使用率的离散程度获取综合均衡度Q,综合均衡度Q用于表示物理机集群的负载均衡。具体的,通过对所有物理机的CPU使用率以及内存使用率分别进行均方误差计算后进行加权计算。

具体的,若Ui表示第i个物理机的CPU使用率,Uavg表示物理机集群的CPU平均使用率,则物理机集群的CPU均衡度Q1为对所有物理机的CPU使用率进行均方误差计算:

若Mi表示第i个物理机的内存使用率,Mavg表示物理机集群的内存平均使用率。物理机集群的内存均衡度Q2为对所有物理机的内存使用率进行均方误差计算:

则对所计算出来的CPU均衡度以及内存均衡度进行加权计算,综合均衡度Q有:

Q=Q1×W2+Q2×(1-W2)

其中,W2表示考虑综合均衡度时,CPU相对内存的均衡权重,若W2越大,表示优选考虑CPU对综合均衡度的影响。这是因为CPU和内存对综合均衡度的影响可能是不同的。应当理解,根据综合均衡度Q可获知该物理机集群的负载均衡情况,若综合均衡度越小,表示越均衡。

上述负载均衡的方法和装置,即考虑了物理机集群整体的负载均衡,又考虑了单个物理机内部CPU和内存资源的负载均衡,因此通过该方法使不同物理机的CPU使用率和内存使用率接近,同时单个物理机内部的CPU使用率和内存使用率也接近,进而即保证了负载均衡,同时还提高了各个物理机内资源的利用率,使物理机满载时,运行的虚拟机数量增加了,且若扩大规模增加物理机时,通过该负载均衡的方法可以使新增的物理机快速融入物理机集群中,使其CPU使用率和内存使用率与均值快速接近,使物理机集群恢复至均衡状态。

需要说明的是,本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的工具和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组建可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1