CN111597253B - 一种基于Quota的集群模糊控制容量规划方法 - Google Patents

一种基于Quota的集群模糊控制容量规划方法 Download PDF

Info

Publication number
CN111597253B
CN111597253B CN202010257399.7A CN202010257399A CN111597253B CN 111597253 B CN111597253 B CN 111597253B CN 202010257399 A CN202010257399 A CN 202010257399A CN 111597253 B CN111597253 B CN 111597253B
Authority
CN
China
Prior art keywords
region
count
capacity
fuzzy
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010257399.7A
Other languages
English (en)
Other versions
CN111597253A (zh
Inventor
李胜
林煜南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202010257399.7A priority Critical patent/CN111597253B/zh
Publication of CN111597253A publication Critical patent/CN111597253A/zh
Application granted granted Critical
Publication of CN111597253B publication Critical patent/CN111597253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于Quota的集群模糊控制容量规划方法,包括以下步骤:步骤1:根据用户方提供的保存周期、每日数据增量折算为Quota;步骤2:创建集群region,设计抽象出两层逻辑的概念rack和region来规划集群;步骤3:预留free‑rack缓冲池,定位在10%的free‑rack;所有的集群共享一个弹性云的free池;步骤4:按照模糊控制容量规划策略计算每个region的调整量count;步骤5:去重操作;步骤6:查询每个region的任务,依次检查每个region正在执行中的扩缩容任务和缩容任务。本发明提高集群资源利用率。

Description

一种基于Quota的集群模糊控制容量规划方法
技术领域
本发明涉及大数据组件Elasticsearch中集群资源规划问题,尤其涉及基于Quota(配额)管控的索引模版在Elasticsearch集群中的容量规划算法改进的领域。
背景技术
在互联网企业中,随着基于大数据Elasticsearch引擎搭建的搜索存储平台优化迭代过程中,各类自适应规划算法层出不穷,力求对用户创建的索引数据进行高效合理的管控,提高集群资源利用率的同时又大大减少人工运维成本。但是随着自适应容量规划算法的应用,带来的运维成本不断凸显,并且存在集群单节点故障的可能,随着各种集群自适应算法应用和时间推移,业务需求的不断接入,这种故障变得不再可控。
对比某一互联网企业的自适应集群容量规划算法可知,根据同一个索引模板来创建的索引数据每天都会分配到不同的集群节点上,这种算法存在以下几个问题:
(1)数据热点。算法会一次性将集群中某个节点的空闲空间打满,经常出现一个节点上存在某个超大数据量的索引,这种情况对后期运维非常不友好,涉及磁盘告警和数据搬迁时操作复杂,耗时较长;
(2)不可容错性。要求自适应集群规划算法任务每天都要成功,不得失败,因为索引模板分配的节点只能承接一天的量;
(3)影响模版范围广。在当前自适应规划算法状态下,侧重于空闲的节点,用户索引模版数据会不均匀分配到多个集群节点中,有些节点存储模版量多,有些节点存储模版量小,一旦出现集群某节点故障,该故障节点存在大量模版的情况下,造成严重的数据丢失,后果不堪设想。
(4)固化的写入瓶颈。基于配额管控用户的索引模板时,当配额内的磁盘被打满时,容量规划算法下只能通过停止用户写入来管控。但是,对索引中过期数据的处理显然比停止用户写入来得更优雅。
虽然这种自适应规划算法在一定程度上提升了集群的资源利用率,降低了需要人工手动分配集群资源带来的运维成本。但是随着业务需求的发展,自适应算法带来其他方面的运维成本不断凸显,一定程度降低集群的稳定性。因此,需要更有效的集群容量规划策略来解决当前的痛点。
发明内容
为了克服已有技术的不足,本发明提供了一种基于Quota的集群模糊控制容量规划方法,将集中于集群级别的资源规划,集群资源规划中的数据存储单元为索引模板,其大小是基于Quota来管控的,不在支持索引资源需求量的自适应;实现一个能够作用于任何集群、任何索引模板保存周期的固定资源分配的规划算法;能够定期的检查各个索引模板的资源是否能够满足Quota需求,并根据统计做出扩缩容调整;提高集群资源利用率,会保证每个region的资源利用率在合理的范围内,每个模板会占用的资源会固定在region中。
本发明解决其技术问题所采用的技术方案是:
一种基于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%。
进一步,所述步骤4)的过程为:
4.1容量规划任务,规划region资源;
4.2容量检查任务。
再进一步,所述4.1的过程为:
4.1.1定时执行:每天运行一次,凌晨执行;
4.1.2算法目标:尽量保证每个region在接下来的一天中资源是充足的;
4.1.3算法策略包括水位设计、模糊控制模型输入参数计算、模糊控制容量规划模型构建。
更进一步,所述4.1.3的过程为;
4.1.3.1水位线设计原则:
最低水位线初始化设置为60%,保证集群规划后的region使用率在百分之高低水位线直接;高水位线初始化设置为80%,针对PB级数据量的节假日场景,集群得到了较好的缓冲性和稳定性。
其中,num1、num2为水位线初始化常量,为每个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*hotrate
acquirecpu=t*cpuactual+(1-t)quotacpu
其中:系数t决定集群的超***,0≤t≤1,越接近1,集群的超***越高;hotrate表示每个模板热数据的比例;diskactual表示模板过去的一段时间实际的磁盘消耗;quotadisk表示用户申请的quota中占的磁盘容量;cpuactual表示模板过去一段时间实际的cpu消耗,这个值是模板的tps、qps、文档大小、索引个数等因子共同决定的;quotacpu表示用户申请的quota中包含的cpu核数;
4.1.3.3模糊控制容量规划模型构建如下:
本模型输出值作为扩缩容的节点数目,其中:
count=f(rateregion)
f(x)单变量二维模糊控制模型;rateregion单个region的资源利用率。
count=0,表示资源利用率达标;
count>0,表示资源利用率大于高水位线,需要扩容,扩容的节点数为count的绝对值;
count<0,表示资源利用率小于低水位线,需要缩容,缩容的节点数为count的绝对值;
其中,构建f(h)=count模型流程如下:
4.1.3.3.1)确定观测量
集群region低水位线为Low,高水位线为High,实际测得的水位高度为h,上下限液位差Δe如下:
h-Low≤Δe≤h-High
其中对于高低水位线的偏差量Δe作为观测值。
4.1.3.3.2)定义输入输出模糊集
Δe的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB},其中负大(NB)、负中(NM)负小(NS)、零(ZO)、正小(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)、零(ZO)、正小(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=NB
ifΔe=NM then count=NM
ifΔe=NS then count=NS
ifΔe=0 then count=0
ifΔe=PS then count=PS
ifΔe=PM then count=PM
ifΔe=PB then count=PB
由上经验规则,得模糊控制规则表3。
NBe NMe NSe ZOe PSe PMe PBe
NBc NMc NSc ZOc PSc PMc PBc
表3
4.1.3.3.4)求模糊关系
模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R:
R=(NBe×NBc)∪(NMe×NMc)∪(NSe×NSc)∪(ZOe×ZOc)∪(PSe×PSc)∪(PMe×PMc)∪(PBe×PBc)
由上模糊关系,其中规则内的模糊集运算取交集,规则间的模糊集运算取并集,求得
4.1.3.3.5)模糊核心决策
集群region调整输出量为一模糊向量其中,/>为矩阵的合成运算;
4.1.3.3.6)根据上述控制输出模糊向量v,再反模糊化得到调整节点count。
优选的,反模糊化方法采用最大隶属度法,选取推理结果模糊集合中隶属度最大的元素作为输出值,即:
count=maxμv(v),v∈R
如果在输出论域V中,其最大隶属度对应的输出值多于一个,则取所有具有最大隶属度输出的平均值,即:
最大隶属度法不考虑输出隶属度函数的形状,只考虑最大隶属度处的输出值;
根据隶属度最大原则进行反模糊化,1对应的隶属度为-4,故选择控制量为count=-4。
所述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。
本发明的基于Quota的集群模糊控制容量规划方法,过程为:模版数据Quota化、创建集群region、预留region free-rack缓冲池、根据模糊控制容量规划策略获取每个region的调整量count、再由count维度执行region资源规划和region资源检测任务、任务去重操作。
本发明的有益效果主要表现在:1,集群资源规划中的数据存储单元为索引模板,其大小是基于Quota来管控的,不在支持索引资源需求量的自适应;2,实现一个能够作用于任何集群、任何索引模板保存周期的固定资源分配的规划算法,3,该算法能够定期的检查各个索引模板的资源是否能够满足Quota需求,并根据统计做出扩缩容调整;4,提高集群资源利用率,算法会保证每个region的资源利用率在合理的范围内,每个模板会占用的资源会固定在region中。
附图说明
图1为本发明实施例集群资源分配示意图;
图2为balance-diff策略示意图;
图3是balance-diff策略收益图;
图4为本发明实施例容量规划算法流程图;
图5为本发明实施例region检查任务流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图4,一种基于Quota的集群模糊控制容量规划方法,包括以下步骤:
步骤1:模版数据Quota初始化,根据用户方提供的保存周期、每日数据增量折算为Quota;
Quota=(userapply*day)/capnode
其中,userapply为用户申请的资源,day为保存天数,capnode为每个机器节点的磁盘规格,例如:数据总量为200G,每台机器磁盘为3T,则Quota=200/(3*1024);若保存周期为3天,每日数据增量为100G,Quota=(3*100)/(3*1024);
步骤2:创建集群region,在传统容量规划的方式中,作用层面局限于集群中单个物理节点node,处理相同集群数据量,次数多、并发度高,本发明设计抽象出两层逻辑的概念rack和region来规划集群,作用层面在region,类似虚拟技术,集群与节点的关系如下所示:
其中,R为集群区域region,r为机架rack,n为rack的个数,n的范围为3<n<20,针对不同的机型disk不同,这里我们选择中等机型的磁盘容量(GB)为临界点用m代替,可以更合理高效管控集群中的每一个节点;当节点磁盘容量disk大于等于m时,意味着一个rack包含着2个节点,当磁盘容量disk小于m时,一个rack则包括4个节点。
region创建策略:
2.1、每个rack按着磁盘空闲空间大到小排序;
2.2、每个索引模板按着磁盘需求量大到小排序;
2.3、依次为每个索引模板分配足够的rack,组成region,一个region最少由3个rack组成,否则region无意义;
region创建的过程,就是将集群的索引模板按着一定的规则分成几组,每组模板共享一部分资源,这部分资源构成了一个region,组织模板时需要做一定的文章来尽量提高region的资源利用率,可通过balance-diff策略;
步骤3:预留free-rack缓冲池,为了保证集群的稳定性,数据的高可用,不会因为节假日暴增的数据量击溃集群,每个集群需要确保有一定的free-rack作为缓冲,一般传统做法是对集群物理node保持20%~30%的free-source,而本设计做法一,因为抽象出两层逻辑概念来规划集群,增大了每次处理的作用面积,所以定位在10%的free-rack比较合适;做法二,可以是所有的集群共享一个弹性云的free池,这一做法,使得usage资源和free资源相互隔离,不会产生集群中资源交互污染,很多中小型企业及时有弹性云也不会用来做free池;
步骤4:按照以下模糊控制容量规划策略计算每个region的调整量count,即需要扩缩容的量,策略在容量规划任务和容量检测任务得以体现:
4.1容量规划任务,规划region资源
4.1.1定时执行:每天运行一次,凌晨执行(业务低峰期)
4.1.2算法目标:尽量保证每个region在接下来的一天中资源是充足的
4.1.3算法策略包括水位设计、模糊控制模型输入参数计算、模糊控制容量规划模型构建。
4.1.3.1水位线设计原则:
鉴于作用region层面的资源规划,传统资源规划方式处理后,使用率可能出现不足30%的情况,集群成本如此高的情况下出现大面积空闲资源。在此,为了保证较高的资源利用率,避免成本的不必要浪费,故最低水位线初始化设置为60%,保证集群规划后的region使用率在百分之高低水位线直接;高水位线初始化设置为80%,针对PB级数据量的节假日场景,集群得到了较好的缓冲性和稳定性。
其中,num1、num2为水位线初始化常量,为每个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*hotrate
acquirecpu=t*cpuactual+(1-t)quotacpu
其中:系数t(0≤t≤1)决定集群的超***,越接近1,集群的超***越高;hotrate表示每个模板热数据的比例;diskactual表示模板过去的一段时间实际的磁盘消耗;quotadisk表示用户申请的quota中占的磁盘容量;cpuactual表示模板过去一段时间实际的cpu消耗,这个值是模板的tps、qps、文档大小、索引个数等因子共同决定的;quotacpu表示用户申请的quota中包含的cpu核数;
4.1.3.3模糊控制容量规划模型构建如下:
本模型输出值作为扩缩容的节点数目,其中:
count=f(rateregion)
f(x)单变量二维模糊控制模型;rateregion单个region的资源利用率。
count=0,表示资源利用率达标;
count>0,表示资源利用率大于高水位线,需要扩容,扩容的节点数为count的绝对值;
count<0,表示资源利用率小于低水位线,需要缩容,缩容的节点数为count的绝对值。
其中,构建f(h)=count模型流程如下:
4.1.3.3.1)确定观测量
集群region低水位线为Low,高水位线为High,实际测得的水位高度为h,上下限液位差Δe如下:
h-Low≤Δe≤h-High
其中对于高低水位线的偏差量Δe作为观测值。
4.1.3.3.2)定义输入输出模糊集
Δe的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB},其中负大(NB)、负中(NM)负小(NS)、零(ZO)、正小(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)、零(ZO)、正小(PS)、正中(PM)正大(PB),并将count的变化范围分为九个等级:-4,-3,-2,-1,0,+1,+2,+3,+4。得到集群region控制量模糊划分表2。
表2
4.1.3.3.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=NB
ifΔe=NM then count=NM
ifΔe=NS then count=NS
ifΔe=0 then count=0
ifΔe=PS then count=PS
ifΔe=PM then count=PM
ifΔe=PB then count=PB
由上经验规则,可得模糊控制规则表3。
NBe NMe NSe ZOe PSe PMe PBe
NBc NMc NSc ZOc PSc PMc PBc
表3
4.1.3.3.4)求模糊关系
模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R:
R=(NBe×NBc)∪(NMe×NMc)∪(NSe×NSc)∪(ZOe×ZOc)∪(PSe×PSc)∪(PMe×PMc)∪(PBe×PBc)
由上模糊关系,其中规则内的模糊集运算取交集,规则间的模糊集运算取并集,求得
4.1.3.3.5)模糊核心决策
集群region调整输出量为一模糊向量其中,/>为矩阵的合成运算。
4.1.3.3.6)根据上述控制输出模糊向量v,再反模糊化得到调整节点count
对比以下三种反模糊化方法:
第一,重心法。为了获得准确的控制量,要求模糊方法能够很好的表达输出隶属度函数的计算结果。重心法是取隶属度函数曲线与横坐标围成面积的重心为模糊推理的最终输出值,即
其中,V为输出论域。
对于具有m个输出量化级数的离散域情况:
重心法具有更平滑的输出推理控制。即使对应于输入信号的微小变化,输出也会发生变化,本设计模型为单输入,输入信号量变化会随着用户申请的quota而变化,具有大波动性,故不适合采用此方法。
第二,加权平均法,工业控制中广泛使用的反模糊方法为加权平均法,输出值由下式决定:
其中系数ki的选择根据实际情况而定。不同的系数决定***具有不同的响应特性。当系数ki取隶属度μv(vi)时,就转化为重心法,和第一种方法存在相同的缺陷,故也不选择。
第三,最大隶属度法,选取推理结果模糊集合中隶属度最大的元素作为输出值,即:
count=maxμv(v),v∈R
如果在输出论域V中,其最大隶属度对应的输出值多于一个,则取所有具有最大隶属度输出的平均值,即:
最大隶属度法不考虑输出隶属度函数的形状,只考虑最大隶属度处的输出值,它的突出优点是计算简单高效,适用于控制要求中等的场合,应用于本场景支持用户申请Quota索引数据大小可调,故采用此法。
根据隶属度最大原则
进行反模糊化,1对应的隶属度为-4,故选择控制量为count=-4。
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;
步骤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%。
本实施例中,如图1所示的容量规划集群资源分配示意图,步骤如下:
步骤S1,将集群中的资源(节点)按着rack组织,一个rack中包含两个节点;
步骤S2,将集群的中的rack分区(region)管理,一个模板只能存放到一个region中,一个region中可以存放1个或者多个模板,集群中要有一定的空闲region作为buffer,region中的模板不做具体区分,可以是按天创建、按月创建或者不周期创建的模板;
步骤S3,集群容量规划定期执行,每次执行时,一次检查每个region的以下指标:
物理资源利用率:实际的每个节点的资源(磁盘、CPU)使用情况;
逻辑资源利用率:按着模板的Quota计算region的资源利用率;
步骤S4,根据这两个资源利用率,得到一个region的综合资源利用率,计算逻辑如下,两个资源利用率之间再通过各自的系数(可配置)合成一个综合的资源利用率作为region的资源利用率:综合资源利用率=物理资源利用率系数*物理资源利用率+逻辑资源利用率系数*逻辑资源利用率;其中物理资源利用率系数+逻辑资源利用率系数=1.0。
步骤S5,得到这个综合的资源利用率之后,根据资源利用率的高低水位线和模糊控制算法构建count=f(rateregion),由count值来判断是否要做扩缩容动作,以保持集群中所有的region的利用率保持在可控的范围内。
本发明中,为提高region利用率的balance-diff策略如图2所示,步骤为:
步骤S1,获取到每个集群模板需要的rack值时,需要将根据tps计算得到的值和根据磁盘得到的值都存下来。
步骤S2,计算每个模板rackByTPS–rackBySize的值,记为rackDiff,并按着这个值从大到小排序。
步骤S3,从队列的两头获取一到两个模板,组成pair,使得一个rack的磁盘和CPU得到充分的利用。
步骤S4,在将得到结果视为一个模板,放到分配Pair的规则中进行分配。需要考虑balance rack diff的收益率,才能做pair,如图3所示,空白框框起来的部分就是节省的资源。
本发明中,主要规划过程流程由图4所示,算法实现上分为region构建、region检查两个部分;步骤如下:
步骤S1,region创建,将集群的模板按着一定的规则分成几组,每组模板共享一部分资源,这部分资源构成了一个region;组织模板时需要利用balance-diff策略尽量提高region的资源利用率。
步骤S2,由图5所示region任务检查流程,具体步骤包括:
2.1整个算法需要遍历所有的region;
2.2根据模糊控制规划策略模型count=f(rateregion),判断是否要扩缩容count>0缩容;count<0扩容。
2.3扩容时,直接到free-buffer中获取空闲的rack,如果集群的free-buffer不足,需要知会运维人员扩容集群;
2.4缩容时,是将rack直接放回到free-buffer中,这是个理想的状态,实际需要将rack放入一个move-buffer中,表示这个里面的rack搬迁数量count,搬迁完成后才能把count放到free-buffer中;当region中rack个数为2时,就不能在缩容了;
2.5扩缩容时,只是记录搬迁计划,待循环扩缩容至region资源利用率打标时,需要修改模板的rack。

Claims (1)

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,m为中等机型的磁盘容量;当节点磁盘容量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的平均磁盘空间空闲率已经达到期望值,则关闭该任务,该界限人工指定;
所述步骤4)的过程为:
4.1容量规划任务,规划region资源;
4.2容量检查任务;
所述4.1的过程为:
4.1.1定时执行:每天运行一次,凌晨执行;
4.1.2算法目标:尽量保证每个region在接下来的一天中资源是充足的;
4.1.3算法策略包括水位设计、模糊控制模型输入参数计算、模糊控制容量规划模型构建;
所述4.1.3的过程为;
4.1.3.1水位线设计原则:
最低水位线初始化设置为60%,保证集群规划后的region使用率在高低水位线之间;高水位线初始化设置为80%,针对PB级数据量的节假日场景,集群得到了较好的缓冲性和稳定性;
其中,num1、num2为水位线初始化常量,为每个region的容量;
结合上述创建region后,依次检查每个region,要求每个region的资源利用率在合理范围之内,方便可控;如果不符合,需要根据模糊控制容量规划策略做出资源调整,以满足资源利用率在合理的范围,资源利用率的范围如下:
Low<rate<Hight
其中,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*hotrate
acquirecpu=t*cpuactual+(1-t)quotacpu
其中:系数t决定集群的超***,0≤t≤1,越接近1,集群的超***越高;hotrate表示每个模板热数据的比例;diskactual表示模板过去的一段时间实际的磁盘消耗;quotadisk表示用户申请的quota中占的磁盘容量;cpuactual表示模板过去一段时间实际的cpu消耗,这个值是模板的tps、qps、文档大小、索引个数因子共同决定的;quotacpu表示用户申请的quota中包含的cpu核数;
4.1.3.3模糊控制容量规划模型构建如下:
本模型输出值作为扩缩容的节点数目,其中:
count=f(rateregion)
f(x)单变量二维模糊控制模型;rateregion单个region的资源利用率;
count=0,表示资源利用率达标;
count>0,表示资源利用率大于高水位线,需要扩容,扩容的节点数为count的绝对值;
count<0,表示资源利用率小于低水位线,需要缩容,缩容的节点数为count的绝对值;
其中,构建f(h)=count模型流程如下:
4.1.3.3.1)确定观测量
集群region低水位线为Low,高水位线为High,实际测得的水位高度为h,上下限液位差Δe如下:
h-Low≤Δe≤h-High
其中对于高低水位线的偏差量Δe作为观测值;
4.1.3.32)定义输入输出模糊集
Δe的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB},其中负大NB、负中NM负小NS、零ZO、正小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、零ZO、正小PS、正中PM正大PB,并将count的变化范围分为九个等级:-4,-3,-2,-1,0,+1,+2,+3,+4,得到集群region控制量模糊划分表2:
表2
4.1.3.3.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=NB
if Δe=NM then count=NM
if Δe=NS then count=NS
if Δe=0then count=0
if Δe=PS then count=PS
if Δe=PM then count=PM
if Δe=PB then count=PB
由上经验规则,得模糊控制规则表3:
NBe NMe NSe ZOe PSe PMe PBe NBc NMc NSc ZOc PSc PMc PBc
表3
4.1.3.3.4)求模糊关系
模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R:
R=(NBe×NBc)∪(NMe×NMc)∪(NSe×NSc)∪(ZOe×ZOc)∪(PSe×PSc)∪(PMe×PMc)∪(PBe×PBc)
由上模糊关系,其中规则内的模糊集运算取交集,规则间的模糊集运算取并集,求得
4.1.3.3.5)模糊核心决策
集群region调整输出量为一模糊向量其中,°为矩阵的合成运算;
4.1.3.3.6)根据控制输出模糊向量v,再反模糊化得到调整节点count;
反模糊化方法采用最大隶属度法,选取推理结果模糊集合中隶属度最大的元素作为输出值,即:
count=maxμv(v),v∈R
如果在输出论域V中,其最大隶属度对应的输出值多于一个,则取所有具有最大隶属度输出的平均值,即:
vi=max(μv)
最大隶属度法不考虑输出隶属度函数的形状,只考虑最大隶属度处的输出值;
根据隶属度最大原则
进行反模糊化,1对应的隶属度为-4,故选择控制量为count=-4;
所述4.2,容量检查任务的过程为:
4.2.1)执行周期:根据不同场景,定期运行;
4.2.2)算法目标:确保流量突增、用户申请扩容等场景下的资源充足;
4.2.3)算法策略:
依次检查每个region的实际的资源利用率,如果rate<High即资源利用率超过高水位线时则扩容,其中
rate=max(diskrate,cpurate)
4.2.4)扩缩容策略。
CN202010257399.7A 2020-04-03 2020-04-03 一种基于Quota的集群模糊控制容量规划方法 Active CN111597253B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010257399.7A CN111597253B (zh) 2020-04-03 2020-04-03 一种基于Quota的集群模糊控制容量规划方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010257399.7A CN111597253B (zh) 2020-04-03 2020-04-03 一种基于Quota的集群模糊控制容量规划方法

Publications (2)

Publication Number Publication Date
CN111597253A CN111597253A (zh) 2020-08-28
CN111597253B true CN111597253B (zh) 2023-11-07

Family

ID=72185465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010257399.7A Active CN111597253B (zh) 2020-04-03 2020-04-03 一种基于Quota的集群模糊控制容量规划方法

Country Status (1)

Country Link
CN (1) CN111597253B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484540A (zh) * 2016-10-20 2017-03-08 腾讯科技(深圳)有限公司 一种资源配置方法及装置
CN108469989A (zh) * 2018-03-13 2018-08-31 广州西麦科技股份有限公司 一种基于集群性能的反馈式自动扩缩容方法及***
CN108845860A (zh) * 2018-04-26 2018-11-20 北京奇艺世纪科技有限公司 一种quota管理方法、装置及电子设备
CN109726007A (zh) * 2017-10-31 2019-05-07 中兴通讯股份有限公司 一种容器编排配额管理方法和装置、及容器编排***
KR101987664B1 (ko) * 2018-07-19 2019-06-11 나무기술 주식회사 클라우드 플랫폼에서 복수의 클러스터 및 어플리케이션을 모니터링하는 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484540A (zh) * 2016-10-20 2017-03-08 腾讯科技(深圳)有限公司 一种资源配置方法及装置
CN109726007A (zh) * 2017-10-31 2019-05-07 中兴通讯股份有限公司 一种容器编排配额管理方法和装置、及容器编排***
CN108469989A (zh) * 2018-03-13 2018-08-31 广州西麦科技股份有限公司 一种基于集群性能的反馈式自动扩缩容方法及***
CN108845860A (zh) * 2018-04-26 2018-11-20 北京奇艺世纪科技有限公司 一种quota管理方法、装置及电子设备
KR101987664B1 (ko) * 2018-07-19 2019-06-11 나무기술 주식회사 클라우드 플랫폼에서 복수의 클러스터 및 어플리케이션을 모니터링하는 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
夏明波 ; 王晓川 ; 金士尧 ; 姜小辉 ; .模糊控制及其在ASAS执行服务器中的应用.重庆邮电学院学报(自然科学版).2006,(第05期),第77-79页. *
王晓钰 ; 吴伟明 ; 谷勇浩 ; .基于云平台的弹性Web集群扩缩容机制的研究.软件.2017,(第11期),第32-36页. *

Also Published As

Publication number Publication date
CN111597253A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN104639639B (zh) 一种虚拟机部署位置的调整方法、装置及***
CN107291545A (zh) 计算集群中多用户的任务调度方法及设备
CN100399301C (zh) 大容量存储设备和用于动态管理大容量存储设备的方法
CN110138612A (zh) 一种基于QoS模型自校正的云软件服务资源分配方法
CN103345514A (zh) 大数据环境下的流式数据处理方法
CN106202092A (zh) 数据处理的方法及***
CN109976901A (zh) 一种资源调度方法、装置、服务器及可读存储介质
CN110147372A (zh) 一种面向htap的分布式数据库智能混合存储方法
CN107450855A (zh) 一种用于分布式存储的模型可变的数据分布方法及***
CN107133228A (zh) 一种数据重分布的方法及装置
CN106339386A (zh) 数据库弹性调度方法以及装置
CN108647155A (zh) 一种基于深度学习的多级cache共享的方法和装置
CN110597598B (zh) 一种云环境中的虚拟机迁移的控制方法
CN115940294A (zh) 多级电网实时调度策略调整方法、***、设备及存储介质
CN115941696A (zh) 异构大数据分布式集群存储优化方法
CN111597253B (zh) 一种基于Quota的集群模糊控制容量规划方法
CN107426315A (zh) 一种基于BP神经网络的分布式缓存***Memcached的改进方法
CN117407921A (zh) 基于必连和勿连约束的差分隐私直方图发布方法及***
CN107155215B (zh) 一种应用归属服务集群的分配方法和装置
CN115564204B (zh) 供应链中的需求资源配置并行处理方法
CN114219353B (zh) 基于大数据和智能仓储的物流管理方法
Ying et al. A nonlinear service composition method based on the skyline operator
CN114066310A (zh) 审批任务分配方法、装置、计算机设备和存储介质
Yang et al. A replica management strategy based on MOEA/D
CN105279560B (zh) 用于软件定义储存***的自适应模糊规则控制***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant