利索能及
我要发布
收藏
专利号: 2020102573997
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-12
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于Quota的集群模糊控制容量规划方法,其特征在于,所述方法包括以下步骤:步骤1:模版数据Quota初始化,根据用户方提供的保存周期、每日数据增量折算为Quota;

Quota=(userapply*day)/capnode其中,userapply为用户申请的资源,day为保存天数,capnode为每个机器节点的磁盘规格;

步骤2:创建集群region,设计抽象出两层逻辑的概念rack和region来规划集群,作用层面在region,集群与节点的关系如下所示:其中,R为集群区域region,r为机架rack,n为rack的个数,n的范围为3<n<20;当节点磁盘容量disk大于等于m时,意味着一个rack包含着2个节点,当磁盘容量disk小于m时,一个rack则包括4个节点;

region创建策略:

2.1、每个rack按着磁盘空闲空间大到小排序;

2.2、每个索引模板按着磁盘需求量大到小排序;

2.3、依次为每个索引模板分配足够的rack,组成region,一个region最少由3个rack组成,否则region无意义;

region创建的过程,就是将集群的索引模板按着一定的规则分成几组,每组模板共享一部分资源,这部分资源构成了一个region;

步骤3:预留free-rack缓冲池,为了保证集群的稳定性,数据的高可用,不会因为节假日暴增的数据量击溃集群,每个集群需要确保有一定的free-rack作为缓冲,定位在10%的free-rack;所有的集群共享一个弹性云的free池;

步骤4:按照模糊控制容量规划策略计算每个region的调整量count,即需要扩缩容的量,策略在容量规划任务和容量检测任务得以体现:步骤5:去重操作,检查每个region的资源,根据region的count操作,如果需要扩容,处理如下:

5.1)获取上次该region的扩缩容任务信息;

5.2)获取指定数量的rack,获取到足够的rack;如果获取rack失败,需要知会运维人员;

5.3)为该region生成一条状态为执行中的扩容任务,或者修改上次还没有完成的任务;

5.4)确保一个region执行中的任务只有一条,修改region中的索引模板占有的rack;

步骤6:查询每个region的任务,依次检查每个region正在执行中的扩缩容任务,如果是扩容任务:计算扩容的rack的平均磁盘空间已经达到region内平均磁盘利用率的界限,则关闭该任务;如果是缩容任务:计算释放的rack的平均磁盘空间空闲率已经达到期望值,则关闭该任务,该界限可以人工指定,推荐范围80%~95%。

2.如权利要求1所述的一种基于Quota的集群模糊控制容量规划方法,其特征在于,所述步骤4)的过程为:

4.1容量规划任务,规划region资源;

4.2容量检查任务。

3.如权利要求2所述的一种基于Quota的集群模糊控制容量规划方法,其特征在于,所述4.1的过程为:

4.1.1定时执行:每天运行一次,凌晨执行;

4.1.2算法目标:尽量保证每个region在接下来的一天中资源是充足的;

4.1.3算法策略包括水位设计、模糊控制模型输入参数计算、模糊控制容量规划模型构建。

4.如权利要求3所述的一种基于Quota的集群模糊控制容量规划方法,其特征在于,所述4.1.3的过程为;

4.1.3.1水位线设计原则:

最低水位线初始化设置为60%,保证集群规划后的region使用率在百分之高低水位线直接;高水位线初始化设置为80%,针对PB级数据量的节假日场景,集群得到了较好的缓冲性和稳定性;

其中,num1、num1为水位线初始化常量, 为每个region的容量;

结合上述创建region后,依次检查每个region,要求每个region的资源利用率在合理范围之内,方便可控;如果不符合,需要根据模糊控制容量规划策略做出资源调整,以满足资源利用率在合理的范围,资源利用率的范围如下:Low<rate<High

其中,Low为低水位线,High为高水位线,rate为每个region的资源利用率;

4.1.3.2模糊控制容量规划模型的输入参数设计:把rateregion作为模糊控制容量规划模型的输入参数,即region的资源利用率,具体设计原则如下:根据某个模版过去一段时间cpu消耗率和用户申请的quota值,引入超卖比系数t,计算出region中某个模版消耗的cpu和磁盘消耗率,取较大者作为模版分配额,最后对某个region累加每个索引模版的quota配额,再除以节点数,获得该region的资源利用率;

相关参数计算如下:

其中,索引模版中的acquiredisk和acquirecpu分别为acquiredisk=t*diskactual+(1-t)*quotadisk*hotrateacquirecpu=t*cpuactual+(1-t)quotacpu其中:系数t决定集群的超卖比,0≤t≤1,越接近1,集群的超卖比越高;hotrate表示每个模板热数据的比例;diskactual表示模板过去的一段时间实际的磁盘消耗;quotadisk表示用户申请的quota中占的磁盘容量;cpuactual表示模板过去一段时间实际的cpu消耗,这个值是模板的tps、qps、文档大小、索引个数等因子共同决定的;qttotacpu表示用户申请的quota中包含的cpu核数;

4.1.3.2模糊控制容量规划模型构建如下:本模型输出值作为扩缩容的节点数目,其中:count=f(rateregion)

f(x)单变量二维模糊控制模型;rateregion单个region的资源利用率;

count=0,表示资源利用率达标;

count>0,表示资源利用率大于高水位线,需要扩容,扩容的节点数为count的绝对值;

count<0,表示资源利用率小于低水位线,需要缩容,缩容的节点数为count的绝对值;

其中,构建f(h)=count模型流程如下:

4.1.3.2.1确定观测量

由上定义集群region低水位线为Low,高水位线为High,实际测得的水位高度为h,上下限液位差Δe如下:h-Low≤Δe≤h-High

其中对于高低水位线的偏差量Δe作为观测值;

4.1.3.1.2)定义输入输出模糊集

Δe的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB},其中负大(NB)、负中(NM)负小(NS)、零(O)、正小(PS)、正中(PM)正大(PB),其中N1、N2为经验值,以下出现N1、N2皆为该意义;

Δe论域,即变化范围为:{-3,-2,-1,0,1,2,3},得到如下集群region水位变化划分表

1,表1为集群region水位变化划分表:表1

控制量count为调节集群region的变化阀门,将其分为五个模糊集:负大(NB)、负中(NM)负小(NS)、零(O)、正小(PS)、正中(PM)正大(PB),并将count的变化范围分为九个等级:-4,-3,-2,-1,0,+1,+2,+3,+4,得到集群region控制量模糊划分表2:表2

4.1.3.1.3)模糊规则的描述

根据日常的经验,设计以下模糊规则:

“若Δe负大,则count负大”

“若Δe负中,则count负中”

“若Δe负小,则count负小”

“若Δe为0,则count为0”

“若Δe正小,则count正小”

“若Δe正中,则count正中”

“若Δe正大,则count正大”

其中,region利用率调整时,count为负,增加,count为正,减少;

上述规则采用“IF A THEN B”形式来描述:ifΔe=NB then count=NBifΔe=NM then count=NSifΔe=NS then count=NSifΔe=0then count=0

ifΔe=PS then count=PSifΔe=PM then count=PMifΔe=PB then count=PB由上经验规则,得模糊控制规则表3:

若 NBe NMe NSe ZOe PSe PMe PBe则 NBc NMc NSc ZOc PSc PMc PBc表3

4.1.3.1.4)求模糊关系

模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R:R=(NBe×NBc)∪(NMe×NMc)∪(NSe×NSc)∪(ZOe×ZOc)∪(PSe×PSc)∪(PMe×PMc)∪(PBe×PBc)由上模糊关系,其中规则内的模糊集运算取交集,规则间的模糊集运算取并集,求得

4.1.3.1.5)模糊核心决策

集群region调整输出量为一模糊向量 其中,为矩阵的合成运算;

4.1.3.1.6)根据上述控制输出模糊向量v,再反模糊化得到调整节点count。

5.如权利要求3所述的一种基于Quota的集群模糊控制容量规划方法,其特征在于,反模糊化方法采用最大隶属度法,选取推理结果模糊集合中隶属度最大的元素作为输出值,即:count=maxμv(v),v∈R

如果在输出论域V中,其最大隶属度对应的输出值多于一个,则取所有具有最大隶属度输出的平均值,即:最大隶属度法不考虑输出隶属度函数的形状,只考虑最大隶属度处的输出值;

若 根据隶属度最大原则

进行反模糊化,1对应的隶属度为-4,故选择控制量为count=-4。

6.如权利要求2所述的一种基于Quota的集群模糊控制容量规划方法,其特征在于,所述4.2,容量检查任务的过程为:

4.2.1)执行周期:根据不同场景,定期运行;

4.2.2)算法目标:确保流量突增、用户申请扩容等场景下的资源充足;

4.2.3)算法策略:

依次检查每个region的实际的资源利用率,如果rate<High即资源利用率超过高水位线时则扩容其中

rate=max(diskrate,cpurate)

4.2.4)扩缩容策略

count=f(rateregion)

如上描述,f(x)为单变量二维模糊控制模型,count=0表示资源利用率达标;count>0表示资源利用率大于高水位线,需要扩容,扩容的节点数为count;count<0表示资源利用率小于低水位线,需要缩容,缩容的节点数为count。