公开/公告号CN104917792A
专利类型发明专利
公开/公告日2015-09-16
原文格式PDF
申请/专利权人 上海宝信软件股份有限公司;
申请/专利号CN201410090747.0
发明设计人 龚敬群;
申请日2014-03-12
分类号H04L29/08(20060101);H04L12/24(20060101);
代理机构31236 上海汉声知识产权代理有限公司;
代理人郭国中
地址 201203 上海市浦东新区张江高科技园区郭守敬路515号
入库时间 2023-12-18 11:00:03
法律状态公告日
法律状态信息
法律状态
2018-10-30
授权
授权
2015-10-14
实质审查的生效 IPC(主分类):H04L29/08 申请日:20140312
实质审查的生效
2015-09-16
公开
公开
技术领域
本发明涉及一种集群管理方法,具体涉及基于集群子系统间民主自治策略的集 群管理系统,以提高集群系统的可用性、可管理性及可扩展性。
背景技术
随着信息技术的发展,计算机技术的应用已经到达了一种前所未有的广泛程度, 系统和应用规模成倍增加。在这种情况下,可提供更高并发量访问、更稳定服务质 量的系统集群技术就应运而生,目前的集群技术多以Master-Slave模式为基础, Master-Slave集群管理方法在集群系统中定义一个Mater管理子系统(节点)和若 干Slave服务提供子系统(节点),Master节点可提供集群管理服务(部分集群系 统也将其设计为可提供业务服务),Slave节点仅能提供业务服务,这种集群模式 保证了集群管理的唯一性,同时集群内节点可并行对外提供服务,但这种方案具有 以下问题:
1、Master节点存在单点故障的风险。由于为了保障集群管理的唯一性,集群 系统中仅设计了一个Master(一些改进型Master-Slave集群系统设计了备用 Master,但也不能避免Master和备用Master都出现故障的情况),而管理功能只 由Master提供,所以当Master故障时,整个集群系统虽能正常对外提供业务服务, 当丧失了管理功能,在Master修复前都不可对集群进行管理;
2、Master-Slave集群系统缺乏弹性伸缩的灵活性。Master-Slave集群在集群 启动时为每个节点定义了角色,Master仅管理预先定义好的Slave节点,当由于访 问量激增而需要临时增加节点以加快服务响应时、或访问量激降而需要临时减少节 点以节约资源时,Master-Slave集群管理模式都难以实现对临时节点的管理。
经对现有技术进行检索,发现如下相关文献。
申请号:CN201310058640.3,名称:一种用于分布式服务的集群管理方法和系 统。该发明公开了一种用于分布式服务的集群管理方法和系统,每个服务器向 Zookeeper服务发送注册请求;Zookeeper服务根据注册请求对每个服务器进行注 册,并根据先后顺序选定其中的一个服务器作为Master;每个已注册的服务器判断 是否被选定为Master,如果是则被选定为Master的服务器作为集群管理者对所有 的服务器进行管理,并等待其它没有被选定为Master的服务器来注册,否则没有 被选定为Master的服务器向选定为Master的服务器进行注册。集群所有服务器启 动后首先通过Zookeeper来选举Master,Worker主动联系Master,从而实现Master 对集群中所有服务器的管理。
该发明设计了一种集群中Master服务器的管理办法,通过向指定的Zookeeper 服务发送注册请求、根据注册先后顺序来确定Master服务器。但该发明对Master 的选择需要第三方服务,不能通过民主自治选取产生,需依赖第三方服务,存在第 三方服务出现故障时的单点风险;且该发明只能存在一个大集群限制,容错性和可 管理性较低。
发明内容
针对现有技术中的缺陷,本发明主要解决的问题是,在保留现有Master-Slave 集群管理唯一性、并发提供服务访问的前提下,同时解决集群管理单点故障风险、 加强集群系统的弹性伸缩灵活性,使得集群系统具备更好的可管理性和更高的服务 提供质量。
根据本发明提供的一种民主自治的集群管理方法,包括如下步骤:
步骤1:集群启动;
步骤2:集群运行自治;
步骤3:集群分裂自治;
步骤4:集群融合自治;
步骤5:集群动态伸缩自治;
步骤6:集群管理员治理,其中,集群管理员用户集群管理的最高权限,各节点均 提供管理员入口,以执行主席节点检修升级、追加服务节点、调整全局策略参数操作。
优选地,所述步骤1包括如下步骤:
步骤101:集群初始化启动时,根据系统管理员的指定指令产生主席节点,其中, 所述指定指令在确定主席过程中拥有最高权限;
步骤102:除主席节点外,其余节点自动将本节点角色Role置为Slave节点;
步骤103:主席节点管理集群的全局配置策略,并将全局策略初始化派送给各Slave 节点,其中,所述全局策略初始化包括:全局节点数量、集群标识、各节点名称、各节 点角色、各节点监听地址、各节点服务地址、健康检查策略、不信任策略、信息同步策 略、信息同步时间间隔、信息同步时间、民主选举策略、各节点当前状态、集群伸缩策 略。
优选地,节点状态包括:
启动状态BOOTING:当启动失败时,转入脱离状态;当启动成功时,转入控制状态;
脱离状态DISCONN:当收到信息同步指令时,转入控制状态;
控制状态CONN:当被认为不健康时,转入脱离状态;当收到隔离指令时,转入隔离 状态;当收到待机指令时,转入待机状态;当收到关闭指令时,转入关闭进行状态;
关闭进行状态SHUTDOWING:当关闭结束后,转入关闭结束状态;
隔离状态ISOLATED:当收到集合指令时,转入控制状态;
待机状态IDLE:当收到隔离指令时,转入隔离状态;当收到恢复指令时,转入控制 状态;当收到关闭指令时,转入关闭进行状态;
未定义状态UNASSIGNED:当收到启动指令时,转入启动状态;当收到信息同步指令 时,转入控制状态。
优选地,所述步骤2包括如下步骤:
步骤201:各节点按照信息同步策略及信息同步时间间隔,将自身状态信息块同步 给集群中其他节点,其中,所述信息同步策略包括增量同步和海量同步;
步骤202:主席节点将全局信息按照信息同步策略及信息同步时间间隔,将集群全 局信息同步给所有Slave节点,信息同步策略包括增量同步和海量同步;
步骤203:所有节点接收到其他节点的同步信息后,在BBS中更新相应节点信息存 储内存块中;
步骤204:Slave节点在接收到主席节点全局同步信息时,更新BBS中主席节点信 息存储内存块及全局配置变化的参数,比较其余节点更新时间与全局信息包中子项的时 间,将BBS中Slave节点信息内存块的信息更新为最新状态值;
步骤205:所有节点按照全局健康检查策略检查各自BBS块中其他节点状态,并维 护管理节点状态,其中,健康检查策略由检查周期Th、状态裁定周期n*Th决定;
步骤206:主席节点执行步骤205操作,当裁定Slave节点状态为脱离状态DISCONN、 或者未定义状态UNASSIGNED时,对Slave执行Boot指令;
步骤207:Slave节点执行步骤205,根据不信任策略,当裁定主席节点状态为脱 离状态DISCONN时,执行步骤208选举操作;不信任策略为健康检查策略与管理员操作 的综合策略;
步骤208:Slave节点根据选举策略进行民主选举:当集群节点数M=2时,Slave 节点自动升级为主席节点;当集群节点数M=3时,Slave节点IP地址小者升级为主席节 点;当集群节点数M≥4时,Slave节点向其他Slave节点推举处于控制状态CONN中最 小IP者为候选节点,得票多者为为临时主席节点,Slave节点等待临时主席节点的确认 公告信息,并发送认可公告,当临时主席节点收到100%的认可后,即成为主席节点,否 则重复执行步骤208。
优选地,在所述步骤208中,选举策略参数可配置为最小IP优先、或者最大IP优 先。
优选地,所述步骤3,包括如下步骤:
步骤301:集群C={N1,N2,N3…Nm},m为集群C中的节点数量,所有节点 N1,N2,N3…Nm执行步骤205,将所有非脱离状态DISCONN的节点形成若干个包含本Slave 节点的C的真子集SC,,n为集群SC中的节点数量,根据网 络特性,约束所有真子集间没有交集,即j≤m,i≤m;
步骤302:含有主席节点的真子集形成一个独立的分裂子集群,进行集群运行自治 管理步骤201~步骤208;
步骤303:不含主席节点的真子集{SC1,SC2,SC3…SCn}执行步骤208,形成各自独 立的分裂子集群,进行集群运行自治管理。
优选地,所述步骤4包括如下步骤:
步骤401:所有子集群Slave节点执行步骤201、203、204,所有子集群主席节点 执行步骤202;
步骤402:当Slave节点在执行步骤204时,若收到来自当前子集群标识之外的主 席节点全局同步信息时,比较两个主席节点的IP信息,选择IP较小者加入,并脱离另 外一个子集群;
步骤403:当主席节点收到来自当前子集群标识之外的主席节点全局同步信息时, 若该主席节点IP小于自身值,则放弃当前主席身份,作为Slave节点加入到该子集群。
优选地,所述步骤5包括如下步骤:
步骤501:主席节点按周期tl、调整周期数N检查集群内各节点负荷NLmNtl,其中, m为集群节点数,N为负荷调整周期数,tl为负荷周期,当综合负荷CLn满足
步骤502:主席节点按周期检查集群内各节点负荷NLmNtl,当综合负荷满足
优选地,所述步骤6包括如下步骤:
步骤601:系统管理员登录任何一个节点,执行获取主席节点管理权指令,当前节 点将指令发送给主席节点,若获得回复,则修改节点修改角色状态标识ROLE=M以变 为主席节点,主席节点修改角色状态标识ROLE=S以变为Slave节点,当前节点接替 成为主席节点执行集群管理职责步骤202、步骤206;
步骤602:选择需要检修升级节点之外的其他任意节点,执行步骤601获得管理员 主席权限,对待检修升级节点执行隔离指令,当该节点处于隔离状态ISOLATED时,对 该节点实施检修、升级操作,此时,该节点处于不提供服务状态,当完成检修工作后, 执行集合指令恢复;
步骤603:准备好需要追加的集群服务节点执行步骤601,执行追加导入指令 (URL_LIST,),其中,URL_LIST为URL列表信息,为对应节点的URL,主席 节点将全局集群URL列表信息URL_LIST导入到节点同时蒋追加到集群;集群 执行步骤402、步骤403。
根据本发明提供的一种民主自治的集群管理系统,所述系统用于执行上述的民主自 治的集群管理方法。
与现有技术相比,本发明具有如下的有益效果:
1、本发明可广泛应用于需弹性伸缩的、持续服务质量要求高、集群内节点数 目大的集群系统管理。
2、本发明实现了多节点集群的自治管理,使得集群在任意单节点异常、多节 点异常时,都具备持续的对外服务、集群管理服务提供能力,极大地提高了多节点 集群的可用性和可管理性;同时,还可在任意状态下对集群内节点实施检修升级工 作和追加服务节点,满足用户对集群的管理需求;另外,使用本发明的集群具有实 际可用的弹性伸缩特性,为用户节约系统资源。
3、本发明对Master的选择不需要第三方服务,完成民主自治选取产生,减少 了对第三方服务的依赖,且屏蔽了当第三方服务出现故障时的单点风险;同时相对 与该发明只能存在一个大集群限制,本发明支持集群的分裂自治,提高了容错性和 可管理性;本发明还支持管理员的最高管理权限。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、 目的和优点将会变得更明显:
图1为本发明的节点状态流转示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人 员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技 术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于 本发明的保护范围。
基于民主自治的集群基于两点基本原则:
原则a)同一时刻只有一个管理节点,任何节点都可以成为管理节点,管理节点的 产生可以通过管理员指定,也可以通过集群选举产生;
原则b)所有节点包括管理节点,在提供服务访问方面是对等的。
步骤1:集群启动
步骤101:集群初始化启动时,系统管理员通过‘指定’的方式产生主席,‘指定’ 指令在确定主席过程中拥有最高权限;
步骤102:除主席节点外,其余节点自动将本节点Role置为Slave节点;
步骤103:主席节点管理集群的全局配置策略,并将全局策略初始化派送给各Slave 节点,包括:全局节点数量、集群标识、各节点名称、各节点角色、各节点监听地址、 各节点服务地址、健康检查策略、不信任策略、信息同步策略、信息同步时间间隔、信 息同步时间、民主选举策略、各节点当前状态、集群伸缩策略等。
步骤2:集群运行自治
步骤201:各节点按照信息同步策略及信息同步时间间隔,将自身状态信息块同步 给集群中其他节点,信息同步策略包括增量同步和海量同步;
步骤202:主席节点将全局信息按照信息同步策略及信息同步时间间隔,将集群全 局信息同步给所有Slave节点,信息同步策略包括增量同步和海量同步;
步骤203:所有节点接收到其他节点的同步信息后,在BBS中更新相应节点信息存 储内存块中;
步骤204:Slave节点在接收到主席节点全局同步信息时,更新BBS中主席节点信 息存储内存块及全局配置变化的参数,比较其余节点更新时间与全局信息包中子项的时 间,将BBS中Slave节点信息内存块的信息更新为最新状态值;
步骤205:所有节点按照全局健康检查策略检查各自BBS块中其他节点状态,并按 照图1所示状态流转图维护管理节点状态。健康检查策略由检查周期Th、状态裁定周期 n*Th决定;
步骤206:主席节点执行步骤205操作,当裁定Slave节点状态为DISCONN、 UNASSIGNED状态时,对Slave执行Boot指令;
步骤207:Slave节点执行步骤205,根据不信任策略,当裁定主席节点状态为 DISCONN状态时,执行步骤208选举操作。不信任策略为健康检查策略与管理员操作的 综合策略;
步骤208:Slave节点根据选举策略进行民主选举:当集群节点数M=2时,Slave 节点自动升级为主席节点;当集群节点数M=3时,Slave节点IP地址小者升级为主席节 点;当集群节点数M>=4时,Slave节点向其他Slave节点推举CONN状态最小IP者为候 选节点,得票多者为为临时主席节点,Slave节点等待临时主席节点的确认公告信息, 并发送认可公告,当临时主席节点收到100%的认可后,即成为主席节点,否则重复执行 步骤208;选举策略参数可配置为最小IP优先、最大IP优先等。
步骤3:集群分裂自治
集群分裂自治解决因网络故障而将集群分裂为多个子网时,集群失去部分管理职 能的问题。
步骤301:集群C={N1,N2,N3…Nm},所有节点执行步骤205,将所有非DISCONN状 态的节点形成若干个包含本Slave节点的C的真子集SC,根据网络特性,约束所有真子集间没有交集,即j≤m,≤m;
步骤302:含有主席节点的真子集形成一个独立的分裂子集群,进行集群运行自治 管理步骤201~步骤208;
步骤303:不含主席节点的真子集{SC1,SC2,SC3…SCn}执行步骤208,形成各自独 立的分裂子集群,进行集群运行自治管理。
步骤4:集群融合自治
步骤401:所有子集群Slave节点执行步骤201、203、204,所有子集群主席节点 执行步骤202;
步骤402:当Slave节点在执行步骤204时,若收到来自当前子集群标识之外的主 席节点全局同步信息时,比较两个主席节点的IP信息,选择IP较小者加入,并脱离另 外一个子集群;
步骤403:当主席节点收到来自当前子集群标识之外的主席节点全局同步信息时, 若该主席节点IP小于自身值,则放弃当前主席身份,作为Slave节点加入到该子集群。
步骤5:集群动态伸缩自治
步骤501:主席节点按周期tl、调整周期数N检查集群内各节点负荷NLmNtl(m:集 群节点数;N:负荷调整周期数;tl:负荷周期),当综合负荷
步骤502:主席节点按周期检查集群内各节点负荷NLmNtl,当综合负荷
步骤6:集群管理员治理
集群管理员用户集群管理的最高权限,各节点均提供管理员入口,以执行主席节点 检修升级、追加服务节点、调整全局策略参数等操作。
步骤601:系统管理员登录任何一个节点,执行获取主席节点管理权指令,当前节 点将指令发送给主席节点,若获得回复,则修改节点修改状态标识ROLE=M,主席节 点修改状态标识ROLE=S,当前节点接替成为主席节点执行集群管理职责步骤202、步 骤206;
步骤602:选择需要检修升级节点之外的其他任意节点,执行步骤601获得管理员 主席权限,对待检修升级节点执行隔离指令,当该节点STATUS=ISOLATED时,及可 对该节点实施检修、升级操作,此时,该节点处于不提供服务状态,当完成检修工作后, 执行集合指令恢复;
步骤603:准备好需要追加的集群服务节点,执行步骤601,执行追加导入指令 (URL_LIST,),主席节点将全局集群URL_LIST信息导入到节点,同时将追加 到集群。集群执行步骤402、步骤403。
交易中间件iXTOP1.8版本应用了本发明的技术方案,实现了支持分布式交易的集 群系统管理。该集群默认支持32个服务节点的集群管理,每个节点部署了管理者进程、 随机启动管理监听进程、远程管理队列和管理员工具,管理者进程通过远程管理队列与 相互之间进行通信和交互,随机启动管理监听进程确保管理者可以在初始状态和 SHUTDOWN状态下联络到被管理节点,管理员工具为系统管理员提供管理入口。整个集群 可自治管理,也可管理人员管理。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上 述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改, 这并不影响本发明的实质内容。
机译: 有效构建云上虚拟集群的弹性虚拟集群管理方法,弹性虚拟集群管理装置和使用该集群的云系统
机译: 集群系统,集群管理方法和集群管理程序
机译: 服务器集群系统,服务器集群管理装置及服务器集群管理方法