一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于LSB接口的集群控制方法与流程

2021-12-04 14:25:00 来源:中国专利 TAG:

一种基于lsb接口的集群控制方法
技术领域
1.本发明属于计算机应用控制技术领域,具体涉及一种基于lsb接口的集群控制方法。


背景技术:

2.2006年google、amazon等公司提出“云计算”构想。根据美国国家标准与技术研究院(nist)的定义,云计算是一种利用互联网实现随时随地、按需、共享地访问共享资源池的模式。其中集群控制技术作为“云计算”的基础得到迅速发展,集群(cluster)作为一组通过特定的硬件和软件连接起来的独立计算机系统,它在用户面前表现为一个单一系统,其中单个计算机系统就是集群的节点(node)。集群按其应用目的可分为高性能集群和高可用集群。高性能集群(high performance cluster)目标是追求高的性能加速比,高可用集群(high availability cluster)是追求高的稳定性和容错性。高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损失。如果某服务失效,它的备援服务将接管它的职责,从而保证了系统的高可用性。高性能集群的出现是为了使集群的各个服务模块达到最高的运行效率,通过负载均衡算法来实现各个服务模块的效能最大化。
3.传统的集中式实时数据处理系统因其可靠性差、处理能力低、系统可拓展性差、灵活性低等缺点无法满足闭合性、强实时性、同步操作性、高可靠性、并行性高的软件系统要求,在一些领域,实时数据处理系统往往采用双机备份的daemon进程集合方式提供集中式服务,具有可靠性低,拓展性差等缺点,此类软件系统改造实现软件即服务,实现高性能、高可用集群,改造过程较复杂、成本较高。


技术实现要素:

4.本发明的目的是提供一种基于lsb接口的集群控制方法,实现分布式部署管理,并实现业务负载均衡。
5.本发明所采用的技术方案是,一种基于lsb接口的集群控制方法,具体按照以下步骤实施:
6.步骤1,运行在集群节点上的实时数据处理业务进程加载集群控制动态链接库,即ha库;
7.步骤2,运行业务进程,servicex,加载ha库,通过进程间通信方式与resagent进行交互,集群控制器通过lsb接口脚本启动resagent,查询服务状态,并设置业务进程状态;
8.步骤3,集群控制动态链接库根据业务进程id号及待处理业务唯一标识号,使用负载均衡算法进行业务分配。
9.本发明的特点还在于,
10.步骤1中,ha库定义了四种业务进程状态:error、starting、ready、norunning,分别表示故障、初始化、正常和未运行;定义了两种服务角色:work、unwork,分别表示可提供
服务和无法提供服务。
11.步骤2中,lsb接口脚本运行resagent,通过命名管道与加载了ha库的服务进程进行通信,获取状态并设置角色。
12.步骤3中,负责均衡算法包括“状态相关”算法和“状态无关”两种算法;“状态相关”算法具体实现为“最小链接法”,即当新业务到来时由当前正在处理的业务数最小的且角色为“work”的业务进程负责处理;“状态无关”算法具体实现为“一致性哈希法”,将业务进程id通过哈希算法映射在0~2n

1,n为业务进程数目范围中,将业务标识同样映射至此范围内,由哈希值大于且最接近的业务进程负责处理。
13.当业务与业务进程比值低于5比1时,采用最小链接法,当业务与业务进程比值大于5比1时,采用一致性哈希法。
14.本发明的有益效果是,提供了一种与具体服务内容无关的集群管理实现方案,可应用于实时性、可靠性要求高的实时数据处理系统中,尤其适用于原有非集群系统改造,在不改变原系统上层实现基础上,实现分布式部署管理,及业务负载均衡,实现高性能、高可用目标。
附图说明
15.图1是本发明方法中业务进程状态及角色图;
16.图2是本发明方法中业务进程、代理进程、lsb脚本及资源管理器交互关系图;
17.图3是本发明方法中负载均衡算法示意图。
具体实施方式
18.下面结合附图和具体实施方式对本发明进行详细说明。
19.本发明一种基于lsb接口的集群控制方法,具体按照以下步骤实施:
20.步骤1,运行在集群节点上的实时数据处理业务进程加载集群控制动态链接库(ha库);
21.ha库为c 实现的动态链接库,与具体的业务进程实现无关,通过链接可执行程序过程中加载。在进程初始化过程中,启动常驻线程,等待与resagent进行通信。运行过程中根据运行状态调用ha库方法,设置状态;
22.ha库定义了四种业务进程状态:error、starting、ready、norunning,分别表示故障、初始化、正常和未运行。定义了两种服务角色:work、unwork,分别表示可提供服务和无法提供服务;
23.业务进程启动后状态为starting,发生错误退出后默认为norunning,出现异常无法提供服务(未退出)时状态为error。以上状态除starting和norunning为默认状态外,其余状态需业务进程根据运行情况,调用ha库方法进行设置。由集群管理工具根据业务进程状态设置角色,norunning、starting、error对应角色为unwork,ready对应角色为work,如图1所示。
24.步骤2,后台运行业务进程(servicex,加载ha库),通过进程间通信(命名管道fifo)方式与代理进程(resagent)进行交互,集群控制器(rml)通过lsb接口脚本启动代理进程(resagent),查询服务状态,并设置业务进程状态,具体过程如图2所示;
25.lsb接口脚本提供start、stop、restart等标准操作接口以及check_status、set_role等集群控制方法,其实现过程为lsb接口脚本运行resagent,通过命名管道(fifo)与加载了ha库的服务进程进行通信,获取状态并设置角色;
26.resagent与服务进程间通信采用actionfifo(resagent指令发送通道)和statusfifo(服务返回状态通道),其过程为resagent通过指令发送通道,发送checkstatus命令,业务进程通过服务返回状态通道,返回本进程状态。设置角色过程为resagent通过指令发送通道,发送设置角色命令,业务进程设置为对应角色,并返回当前角色至resagent;
27.步骤3,资源调度时,根据业务进程id号(pid)及待处理业务唯一标识号,使用负载均衡算法进行业务分配。
28.负责均衡主要分为“状态相关”和“状态无关”两种算法,“状态相关”算法具体实现为“最小链接”即当新业务到来时由当前正在处理的业务数最小的且角色为“work”的业务进程负责处理。使用此“状态相关”算法,需有独立主控进程记录各业务进程负载,进行统一业务分配,各业务进程根据分配结果进行处理。
[0029]“状态无关”算法具体实现为“一致性哈希”算法,如图3所示,将业务进程(server)id通过哈希算法映射在0~2n

1(n为业务进程数目)范围中,将业务标识(task)同样映射至此范围内,由哈希值大于且最接近的业务进程负责处理;
[0030]
当采用“一致性哈希”算法时,某业务进程失效(停止运行或状态被为error,角色为unwork)或重启启动恢复正常(状态为ready,角色为work)后系统均需进行一次业务划分计算。使用此“状态无关”算法,可由各业务进程根据当前状态(业务进程数量及id、业务数量及id),各自独立计算并根据分配结果进行处理。
[0031]“最小链接”和“一致性哈希”算法取决于业务与业务进程比值,低于5比1采用最小链接法,大于5比1时采用一致性哈希法。
[0032]
在某系统集群化改造中使用该方法,原有系统处理架构及逻辑无需更改。加载动态库后,在初始化、错误处理等处调用ha库状态设置方法,在业务调度逻辑中调用资源分配算法,根据业务与业务进程比值动态采用“最小链接”和“一致性哈希”算法。改造后集群管理器可通过lsb接口进行集群调度,实现自动故障检测、负载资源分配、多活资源均衡分配等集群管理功能。证明该方法可行,且可在原有非集群系统改造中,实现快捷方便,对原架构设计、业务逻辑实现影响较小。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献