集群管理方法及装置与流程

文档序号:17761861发布日期:2019-05-24 21:45阅读:193来源:国知局
集群管理方法及装置与流程

本申请实施例涉及计算机技术领域,尤其涉及一种集群管理方法及装置。



背景技术:

集群技术是一种由相互独立的、通过高速网络互联的计算机构成的计算组,一个客户与集群相互作用时,集群像是一个独立的服务器。而互联网的发展,使得越来越多的应用和服务(例如口户网站、电商网站、社交服务等等)都围绕集群展开。

为了提升网络服务器系统的可用性、増强网络服务器系统的性能,集群技术被广泛采用。比如越来越多的企业开始自己搭建或者购买云环境的集群。对于集群来说,工作负载至关重要。所谓工作负载是指在给定时间内分配给客户端、工作组、服务器或系统的工作总额。大多数情况下,一个集群所承受的工作负载是相对比较平稳的。但在某些业务的场景里,工作负载会发生频繁、大量的变化。比如成千上万的用户会在短短数秒内向集群发出巨大的请求量,而送些请求量产生的流量除了给企业带来了巨大经济效益的同时也会给集群带来很大的工作负载量,极有可能导致构建服务的集群不堪重负而巧疾,进而无法立即响应用户的请求,并给用户提供服务。

针对频繁、大量的负载变化,在现阶段可以通过调整集群的性能来为集群与工作负载的动态关系提供一种普适性的解决方案,例如为了増强集群性能,一方面,可以通过提升集群里每台服务器的性能来完成,从而可以处理更大的工作负载。但这种方式因为单台服务器的性能总有上限,所以集群的总体性能也有上限,当工作负载持续不断变大时,集群的性能问题依然存在。另一方面,可以通过増加适当数量的服务器、扩大集群的容量来提升集群的总体性能,这种方式需要预先购置足够多的服务器,进而也会导致系统复杂度提髙。



技术实现要素:

有鉴于此,本申请实施例所解决的技术问题之一在于提供一种集群管理方法及装置,用以克服或者缓解现有技术中上述问题。

本申请实施例提供了一种集群管理方法,其包括:

确定对集群进行伸缩处理的时机;

若所述集群的工作负载为突发时工作负载,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,

若所述集群的工作负载为非突发时工作负载,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

可选地,在本申请的任一实施例中,确定对集群进行伸缩处理的时机包括:根据响应式伸缩或者预测式伸缩机制,确定对集群进行伸缩处理的时机。

可选地,在本申请的任一实施例中,若根据预测式伸缩机制,确定对集群进行伸缩处理的时机包括:根据采用自回归模型执行的预测式伸缩机制,确定对集群进行伸缩处理的时机。

可选地,在本申请的任一实施例中,根据采用自回归模型执行的预测式伸缩机制,确定对集群进行伸缩处理的时机包括:

根据监控到的多个历史工作负载数据建立自回归模型;

根据自回归模型确定下一时刻工作负载的预测数据;

根据所述预测数据,确定对集群进行伸缩处理的时机。

可选地,在本申请的任一实施例中,根据自回归模型确定下一时刻工作负载的预测数据包括:根据发生在当前时刻之前的请求响应时间以及请求率确定历史工作负载数据;将所述历史工作负载数据输入到自回归模型中以确定下一时刻工作负载的预测数据。

可选地,在本申请的任一实施例中,所述预测数据为预测的请求率,或者预测的请求响应时间,若预测的请求率超过设定的请求率阈值,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求率未超过设定的请求率阈值,则将当前时刻确定为对集群进行收缩处理的时机;

或者,若预测的请求响应时间超过设定的请求响应时间阈值,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求响应时间未超过设定的请求响应时间阈值,则将当前时刻确定为对集群进行收缩处理的时机。

可选地,在本申请的任一实施例中,若对集群进行收缩处理,则通过对收缩调整的资源进行逐步释放。

可选地,在本申请的任一实施例中,通过对收缩调整的资源进行逐步释放包括:从docker容器开始到虚拟机逐台进行释放。

可选地,在本申请的任一实施例中,在进行伸缩处理时,在每一次伸缩处理之后先冷却,再启动下一次伸缩处理。

可选地,在本申请的任一实施例中,集群管理方法还包括:根据维护的历史工作负载数据表,确定工作负载变化率;根据所述工作负载变化率以及设定的工作负载变化率阈值确定是突发时工作负载还是非突发时工作负载。

可选地,在本申请的任一实施例中,集群管理方法还包括:基于排队论模型中的g/g/1模型确定集群处理的服务数量。

本申请实施例还提供一种集群管理装置,其包括:

第一程序模块,用于确定对集群进行伸缩处理的时机;

第二程序模块,用于在所述集群的工作负载为突发时工作负载时,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,

在所述集群的工作负载为非突发时工作负载时,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

本申请实施例还提供一种设备,其包括处理器,所述处理器上配置有第一程序模块和第二程序模块;所述第一程序模块用于确定对集群进行伸缩处理的时机;第二程序模块用于在所述集群的工作负载为突发时工作负载时,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,在所述集群的工作负载为非突发时工作负载时,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

本申请实施例还提供一种存储介质,所述存储介质上存储有执行如下步骤的指令:

确定对集群进行伸缩处理的时机;

若所述集群的工作负载为突发时工作负载,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,

若所述集群的工作负载为非突发时工作负载,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

本申请实施例中,由于可以通过首先确定对集群进行伸缩处理的时机;若所述集群的工作负载为突发时工作负载,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,若所述集群的工作负载为非突发时工作负载,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理,从而实现了调整集群与工作负载的动态关系,同时克服了如背景技术部分记载的所述普适性技术方案。

附图说明

后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:

图1为本申请实施例一中集群管理方法的流程示意图;

图2为本申请实施例二中集群管理装置的结构示意图;

图3为本申请实施例三中设备的结构示意图。

具体实施方式

实施本申请实施例的任一技术方案必不一定需要同时达到以上的所有优点。

为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。

下面结合本申请实施例附图进一步说明本申请实施例具体实现。

图1为本申请实施例一中集群管理方法的流程示意图;如图1所示,其包括:

s101、确定对集群进行伸缩处理的时机;

可选地,在本实施例中,步骤s101中确定对集群进行伸缩处理的时机具体可以包括:根据响应式伸缩或者预测式伸缩机制,确定对集群进行伸缩处理的时机。

本实施例中,响应式伸缩机制是在明确了负载的变化情况下做出的伸缩决定,使得伸缩有据可依。而预测试伸缩机制是在在工作负载变化之前完成对负载的预判并进行相应的伸缩以达到平滑的过渡,保证系统性能的连续性。预测试伸缩机制可以基于时序分析、控制理论、增强学习等,主要通过对历史工作负载数据的分析、建模来完成对之后伸缩处理的时机的预测。

优选地,本实施例中,若根据预测式伸缩机制,确定对集群进行伸缩处理的时机时,可以具体包括:根据采用自回归模型执行的预测式伸缩机制,确定对集群进行伸缩处理的时机。而其中根据采用自回归模型执行的预测式伸缩机制,确定对集群进行伸缩处理的时机具体可以包括:根据监控到的多个历史工作负载数据建立自回归模型;根据自回归模型确定下一时刻工作负载的预测数据;根据所述预测数据,确定对集群进行伸缩处理的时机。其中,根据自回归模型确定下一时刻工作负载的预测数据包括:根据发生在当前时刻之前的请求响应时间以及请求率确定历史工作负载数据;将所述历史工作负载数据输入到自回归模型中以确定下一时刻工作负载的预测数据。

可选地,在本实施例中,响应式伸缩机制、预测试伸缩机制可采用相同的性能指标作为监测对象,比如工作负载的变化率。

在一具体应用场景中,对于预测试伸缩机制来说,旨在建立的自回归模型如下公式(1):

yt+a1yt-1+a2yt-2+...+apyt-p=ηt(1)

其中ai(i=1,...,p)表示自回归系数,ηt符号表示时序白噪声,其均值为0表示该序列属于平稳随机过程。本发明首先假设一个固定的时间间隔,记录时刻同时监控当时的工作负载值,并维护一个长度为t的历史数据表。要进行预测需要解得上式里的系数ai(i=1,...,p),将表内离当时时刻最近的p个数据带入如下矩阵:

如果预测模型阶数p是1阶或者2阶时,可以直接通过矩阵求解运算解得自回归系数。当出现3阶或者3阶以上较高阶数时,矩阵运算变得繁复耗时,可以根据yule-walker方程组可以解得对自回归系数ai的计算,由此可以继续计算出下一时刻工作负载的预测数据。

在一具体应用场景中,通过请求率γα(t)和请求响应时间tα反映工作负载,即通过t时刻的请求率γα(t)来反应t时刻的工作负载情况,请求率即单位时间内集群收到的请求数量。同时监控请求响应时间tα,采用平均请求响应时间作为衡量集群性能的指标。对于一个需要伸缩的集群,伸缩处理的有效持续时间从集群启动并一直持续到集群结束工作。当集群开始工作时,会首先判断是否是预测式伸缩,伸缩方法每经过一段固定时间间隔就会对当前的请求响应时间tα和请求率γα(t)进行监测,同时将监测得到的请求率分别输入到长度为t的历史工作负载表h和长度为l的近期工作负载表p中。通过历史工作负载表对h的工作负载数据代入自回归模型可以对下个时刻的工作负载进行预测γp(t),即对预测请求率进行预测。当观测到请求率γα(t)或预测请求率γp(t)超过请求率上限阈值时,或者请求响应时间tα超过上限请求响应时间阈值将触发扩展处理;当请求率γα(t)低于请求率下限阈值时将触发收缩处理。

可选地,在一具体应用场景中,扩展处理具体横向伸缩处理,从而通过增加服务器的数量来满足性能的要求。另外,收缩处理时执行时不能一次性释放太多资源,而是需要逐步进行释放,从而避免因同时释放太多集群而使集群突然损失大量的性能。具体的释放策略比如是从docker容器开始到虚拟机逐台释放。每次伸缩扩展执行完成之后,都需要经过一段冷却时间,以防集群频繁伸缩造成的“抖动”现象。

s102a、若所述集群的工作负载为突发时工作负载,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,

s102b、若所述集群的工作负载为非突发时工作负载,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

在一具体应用场景中,响应式伸缩处理的实际具体可以通过如下方法实现:

维持一张长度为l的近期工作负载表,表里记录了当前时刻往前p时间内的工作负载变化情况。假定此刻监控得到的工作负载值为γα,将其余近期负载表里的工作负载值计算平均斜率得到当前时刻的负载变化率λ。如果λ大于负载变化率上限λtu,说明此刻迎来突发的工作负载突变,需要进行docker容器伸缩处理,否则的话说明此刻是其他工作负载类型即非突发事件工作负载变化,则对应地进行虚拟机的伸缩处理。

可选地,本实施例中,所述预测数据为预测的请求率,或者预测的请求响应时间,若预测的请求率超过设定的请求率阈值上限,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求率未超过设定的请求率阈值下限,则将当前时刻确定为对集群进行收缩处理的时机;或者,若预测的请求响应时间超过设定的请求响应时间阈值上限,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求响应时间未超过设定的请求响应时间阈值下限,则将当前时刻确定为对集群进行收缩处理的时机。

当然,也可以同时根据预测的请求率、预测的请求响应时间是否超过对应阈值的上下限进行伸缩处理的时机确定。

可选地,本实施例中,若对集群进行收缩处理,则通过对收缩调整的资源进行逐步释放,比如服务器级资源。具体地,在通过对收缩调整的资源进行逐步释放时,具体可以从docker容器开始到虚拟机逐台进行释放。优选地,在进行伸缩处理时,在每一次伸缩处理之后先冷却,再启动下一次伸缩处理,以防集群频繁伸缩造成的“抖动”现象,以及避免因同时释放太多集群而使集群突然损失大量的性能。

综上,即在集群管理方法还可以包括:根据维护的历史工作负载数据表,确定工作负载变化率;根据所述工作负载变化率以及设定的工作负载变化率阈值确定是突发时工作负载还是非突发时工作负载。

可选地,在本申请的任一实施例中,集群管理方法还包括:基于排队论模型中的g/g/1模型确定集群处理的服务数量。

在一具体实施例中,在该排队论模型中,g/g/1分别表示请求到达间隔服从一般分布、服务时间服从一般分布、服务数量为1个,到达的服务请求按照先来先服务(fcfs)顺序处理。令λ表示请求到达率,r表示平均响应时间,s表示平均服务时间。由系统的监测数据(比如工作负载数据)计算可以得到到达间隔时间和服务时间方差,分别使用σa和σb来表示,那么该模型可通过下公式(3)表示:

在一具体应用场景中,假定每个会话有思考时间且为t,那么每个会话的请求率为由利特尔法(在一个稳定系统中,顾客的平均数l等于顾客的平均有效到达率乘以每个顾客在系统中的服务时间)则可知,假定τ为会话时长的均值,那么就是会话请求到达率。在已知单个服务的服务能力的情况下,可以计算出当迎来请求率为的峰值的时候,系统所需要的服务数量为k,如下公式(4)所示:

公式(3)中,β为常量系数,t与τ由经验得出。

图2为本申请实施例二中集群管理装置的结构示意图;如图2所示,其包括:

第一程序模块201,用于确定对集群进行伸缩处理的时机;

第二程序模块202,用于在所述集群的工作负载为突发时工作负载时,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,

在所述集群的工作负载为非突发时工作负载时,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

可选地,在任一实施例中,所述第一程序模块201进一步用于根据响应式伸缩或者预测式伸缩机制,确定对集群进行伸缩处理的时机。

可选地,在任一实施例中,所述第二程序模块202进一步用于根据采用自回归模型执行的预测式伸缩机制,确定对集群进行伸缩处理的时机。

可选地,在任一实施例中,所述第二程序模块202进一步用于:

根据监控到的多个历史工作负载数据建立自回归模型;

根据自回归模型确定下一时刻工作负载的预测数据;

根据所述预测数据,确定对集群进行伸缩处理的时机。

具体地,所述第二程序模块202具体可以包括:

建立单元212,用于根据监控到的多个历史工作负载数据建立自回归模型;

预测单元222,用于根据自回归模型确定下一时刻工作负载的预测数据;

时机单元232,用于根据所述预测数据,确定对集群进行伸缩处理的时机。

可选地,在任一实施例中,所述第二程序模块202进一步用于根据发生在当前时刻之前的请求响应时间以及请求率确定历史工作负载数据;以及将所述历史工作负载数据输入到自回归模型中以确定下一时刻工作负载的预测数据。

具体地,所述第二程序模块202具体可以包括:

第一数据单元242,用于用于根据发生在当前时刻之前的请求响应时间以及请求率确定历史工作负载数据;

第二数据单元252,用于将所述历史工作负载数据输入到自回归模型中以确定下一时刻工作负载的预测数据。

具体地,在所述第一程序模块201确定伸缩处理的时机时,所述预测数据为预测的请求率,或者预测的请求响应时间,若预测的请求率超过设定的请求率阈值,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求率未超过设定的请求率阈值,则将当前时刻确定为对集群进行收缩处理的时机;或者,若预测的请求响应时间超过设定的请求响应时间阈值,则将当前时刻确定为对集群进行扩张处理的时机;或者,若预测的请求响应时间未超过设定的请求响应时间阈值,则将当前时刻确定为对集群进行收缩处理的时机。

可选地,在任一实施例中,所述第二程序模块202进一步用于在对集群进行收缩处理时,通过对收缩调整的资源进行逐步释放。

可选地,在任一实施例中,所述第二程序模块202进一步用于从docker容器开始到虚拟机逐台进行释放。

可选地,在任一实施例中,所述第二程序模块202进一步用于在进行伸缩处理时,在每一次伸缩处理之后先冷却,再启动下一次伸缩处理。

可选地,在任一实施例中,集群管理装置还包括:第三程序模块203,用于根据维护的历史工作负载数据表,确定工作负载变化率;以及根据所述工作负载变化率以及设定的工作负载变化率阈值确定是突发时工作负载还是非突发时工作负载。

可选地,在任一实施例中,集群管理装置还包括第四程序模块204,用于基于排队论模型中的g/g/1模型确定集群处理的服务数量。

图3为本申请实施例三中设备的结构示意图;如图3所示,其包括处理器301,所述处理器301上配置有第一程序模块201和第二程序模块202;所述第一程序模块201用于确定对集群进行伸缩处理的时机;第二程序模块202用于在所述集群的工作负载为突发时工作负载时,则至少在所述伸缩处理的时机起采用docker容器对集群进行伸缩处理;或者,在所述集群的工作负载为非突发时工作负载时,则至少在所述伸缩处理的时机起采用虚拟机进行对集群进行伸缩处理。

进一步地,所述设备上还配置有存储介质302,所述存储介质302上存储有执行执行第一程序模块201和第二程序模块202相关功能的指令。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

本领域的技术人员应明白,本申请实施例的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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