首页> 中国专利> 可伸缩网络服务器群架构系统

可伸缩网络服务器群架构系统

摘要

本发明公开了一种可伸缩网络服务器群架构系统,包括若干个管理服务器和业务服务器,所述可伸缩网络服务器群架构为树形架构;所述管理服务器连接若干个管理服务器或若干个业务服务器;所述管理服务器位于树形架构的根节点或中间节点位置,业务服务器位于树形架构的叶子节点位置;所述管理服务器包括成员管理模块和业务协助处理模块;所述业务服务器上包括业务处理模块和成员管理模块。本发明实现了服务运行状态的监控,可以方便地查看服务运行状态,进而高效地进行管理,并且使得服务器群架构系统具有较高的可伸缩性以及架构的平衡,同时负载迁移尽可能在相邻服务器间迁移,可减少负载迁移带来的资源消耗。

著录项

  • 公开/公告号CN102833333A

    专利类型发明专利

  • 公开/公告日2012-12-19

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201210303088.5

  • 发明设计人 汤德佑;张婷;刘杨;

    申请日2012-08-23

  • 分类号H04L29/08(20060101);H04L12/24(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人蔡茂略

  • 地址 510640 广东省广州市天河区五山路381号华南理工大学

  • 入库时间 2023-12-18 07:46:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-01-28

    授权

    授权

  • 2013-02-06

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20120823

    实质审查的生效

  • 2012-12-19

    公开

    公开

说明书

技术领域

本发明涉及网络信息技术领域,特别涉及一种可伸缩网络服务器群架构系统。

背景技术

随着互联网技术的发展,服务器的部署对实现高效的业务系统越来越重要。对由单台服务器组成的系统而言,由于单台服务器的中央处理器、输入/输出接口处理速度等方面的限制,已无法满足快速增长的数据量以及同时处理多种业务的请求,取而代之的是由多台服务器组成的服务器群系统。

在实际应用中,很多业务系统具有很强动态性,仅以高峰时段业务要求配置服务器资源则不利于资源复用和节能环保。目前,动态扩展服务器有较成熟方案,但既支持动态扩展又支持动态缩减的高效、方便的服务器群的管理方案还比较匮乏,因此,研发可保持业务系统稳定运行的可伸缩的服务器群的部署方案和管理方法具有重要意义。

发明内容

为了克服现有技术存在的缺点与不足,本发明提供一种可伸缩网络服务器群架构系统。

本发明所采用的技术方案:

一种可伸缩网络服务器群架构系统,包括若干个管理服务器和业务服务器,所述可伸缩网络服务器群架构为树形架构;

所述管理服务器连接若干个管理服务器或若干个业务服务器;所述管理服务器位于树形架构的根节点或中间节点位置,业务服务器位于树形架构的叶子节点位置;

所述管理服务器包括成员管理模块和业务协助处理模块;

所述位于根节点的管理服务器上的成员管理模块,用于在负载超过分裂阈值时,向管理员发送分裂请求;用于监听下级服务器的运行状态,如果下级服务器达到合并条件,则向这些服务器下发合并指令;用于在接收到下级服务器发送的分裂请求后,处理下级服务器的分裂;用于处理服务器本机的分裂及负载再分配;用于处理与下属管理服务器的合并;

所述位于中间节点的管理服务器上的成员管理模块,用于接收到上级管理服务器下发的分裂响应后,进行负载再分配与业务迁移;用于在接收到上级管理服务器下发的合并指令后,进行负载合并与业务迁移;用于监听本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上级管理服务器发送分裂请求;用于监听下级服务器的运行状态,如果下级服务器达到合并条件,则向这些服务器下发合并指令;用于在接收到下级服务器发送的分裂请求后,处理下级服务器的分裂;用于节点编码管理;用于拒绝标志管理;

所述业务协助处理模块,用于根据业务服务器发送的业务协助处理请求或下级管理服务器转发的业务协助处理请求查找用户所属的业务服务器;

所述业务服务器上包括业务处理模块和成员管理模块;

所述业务服务器上的成员管理模块,用于接收到上级管理服务器下发的分裂响应后,进行负载再分配与业务迁移;用于在接收到上级管理服务器下发的合并指令后,进行负载合并与业务迁移;用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上级服务器发送分裂请求;用于节点编码管理;

所述业务处理模块,用于给用户提供接口,根据用户的业务请求处理业务。

所述管理服务器中的成员管理模块包括监控线程、分裂线程和合并线程;

所述业务服务器中的成员管理模块包括监控线程、分裂线程和合并线程;

所述位于根节点的管理服务器上的监控线程,用于监控本机服务器的运行状态并将状态信息保存到数据库;用于监听下属服务器的运行状态,用于向管理员发送分裂请求,向达到合并条件的下属服务器发出合并指令;用于节点编码管理和拒绝标志管理;

所述位于中间节点的管理服务器上的监控线程,用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上一级管理服务器;用于监听下属服务器的运行状态,用于向上级服务器发送分裂请求,向达到合并条件的下属服务器发出合并指令;接收上一级服务器发出的分裂响应指令及合并响应指令;用于节点编码管理和拒绝标志管理;

所述业务服务器上的监控线程,用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上一级管理服务器发送分裂请求;用于接收上级管理服务器发出的分裂响应指令;用于接收上级管理服务器发出的合并指令;用于节点编码管理;

所述管理服务器和业务服务器中的分裂线程,用于处理负载再分配与业务迁移;

所述管理服务器和业务服务器中的合并线程,用于处理负载合并与业务迁移。

所述处于中间节点位置的管理服务器和业务服务器设置有节点编码;

所述节点编码具有唯一性;

所述节点编码是变长的,由0,1串组成,其节点编码长度等于其管理的服务器节点编码或业务节点编码的共同前缀部分的长度;管理服务器的节点编码是其下属管理服务器的节点编码或业务服务器的节点编码的共同前缀部分;业务服务器的节点编码是其管理的业务节点编码的共同前缀部分;

当只含有一台业务服务器时业务服务器节点编码的长度为零。

所述管理服务器均设有前缀位列表保存其管理的管理服务器或业务服务器的节点编码,每个前缀位串对应一台管理服务器或业务服务器;

所述业务服务器保存一个前缀位串,管理所有以该前缀位串开头的业务节点编码;

所述系统还包括业务节点,所述业务节点表示用户负载,设有业务节点编码,所述业务节点编码是定长的,总长T位,所述T位业务节点编码包含上一级业务服务器的K位节点编码前缀,

所述K、T均为非负整数。

所述管理服务器和业务服务器均设有合并阈值和分裂阈值,且分裂阈值大于合并阈值。

所述管理服务器上还设有拒绝标志r,r的取值为真或假,所述r为真时表示由该管理服务器管理的管理服务器或业务服务器达到稳定状态,不能分裂。

所述管理服务器上拒绝标志r置真的条件如下:

(1)位于第i层且0<i<n的管理服务器的拒绝标志r置真的条件是:位于父亲节点的r为真,前缀位列表中的前缀位串长均为Ls为第s层管理服务器逻辑上的最大节点编码长度,所述该管理服务器下层非业务服务器;

(2)位于根位置的管理服务器的r置真的条件是:前缀位列表中的前缀位串长均为L1,所述该管理服务器下层非业务服务器,所述L1表示第一层管理服务器的最大节点编码长度;

(3)位于第n层管理服务器的r置真的条件是:父亲节点的r为真,前缀位列表中的前缀位串长均为M,所述M为业务服务器逻辑上的最大节点编码长度,即下层业务服务器满,

所述i、n、M均为非负整数。

所述管理服务器或业务服务器的成员管理模块采用如下步骤完成分裂和合并;

所述分裂步骤为:管理服务器或业务服务器的监控线程向上级管理服务器发送分裂请求消息;上级管理服务器的监控线程在接收到下属服务器发送的分裂请求消息后,根据管理服务器或业务服务器的分裂条件处理分裂请求,并下发分裂响应指令;下级服务器的监控线程收到分裂响应指令后,分裂线程根据分裂指令进行分裂,并对本机服务器进行负载再分配与业务迁移;

所述合并步骤为:管理服务器的监控线程根据监控到的下属服务器的管理服务器或业务服务器的运行状态,并根据管理服务器或业务服务器的合并条件向达到合并条件的服务器发出合并指令;下级管理服务器或业务服务器的监控线程收到合并响应指令后,合并线程根据合并指令进行合并,并对本机服务器进行负载合并与业务迁移;

所述业务服务器中的业务处理模块根据用户的业务请求处理业务:

具体为:用户向已知业务服务器的业务处理模块发送业务处理消息,业务服务器的业务处理模块在接收到用户发送的业务处理消息后,根据业务节点编码判定用户是否属于该业务服务器,如果是,则进行业务处理,否则,则向上级管理服务器发送业务协助处理请求直至找到相应的业务服务器,相应的业务服务器收到业务处理消息后进行业务处理。

所述分裂条件包括业务服务器分裂条件和管理服务器分裂条件;

所述业务服务器分裂条件:管理的业务节点编码超过分裂阈值;

所述管理服务器分裂条件是满足如下条件之一:

(1)同级分裂,该管理服务器的拒绝标志r为假,上层管理服务器r为假且上层管理服务器管理的服务器达到上限,则分裂,分裂后的管理服务器由上层管理服务器管理;

(2)合并分裂,该管理服务器的拒绝标识r为假,上层管理服务器r为假且上层管理服务器管理的服务器达到上限,则分裂,新增管理服务器管理具有共同前缀位串且服务器节点编码长度大于Lc的管理服务器,新增的管理服务器的节点编码长度等于Lc

(3)向上分裂,该管理服务器的拒绝标识r为假,上层管理服务器r为真,立即分裂,并新增一台管理服务器管理分裂后的服务器;

所述位于根位置的管理服务器采用向上分裂。

所述合并条件包括业务服务器合并条件和管理服务器合并条件;

所述业务服务器合并条件是:业务服务器节点编码相邻的两台服务器的负载之和低于合并阈值;

管理服务器合并条件是必须满足下列条件之一:

(1)水平合并,所述同层的两台管理服务器sij与sik的节点编码相邻、负载之和低于合并阈值且孩子节点类型相同;

(2)第一垂直合并,管理服务器sij、sij的子节点为服务器s(i+1)k及s(i+1)k的孩子节点均为管理服务器、sij的负载与s(i+1)k的负载之和低于合并阈值或者sij的负载与s(i+1)k的负载之和使得sij的拒绝标志位为真,将s(i+1)k合并到sij

(3)第二垂直合并,管理服务器sij、管理服务器s(i+1)k是sij的子节点且唯一,s(i+1)k只有唯一的孩子s(i+2)k且s(i+2)k为业务服务器,将s(i+1)k合并到sij

其中,sij表示第i层、第j台管理服务器;在管理服务器的合并过程中,水平方向合并要优先于垂直方向合并;垂直合并的方向是自底向上;水平合并后的服务器由原负载多的服务器取代。

本发明的有益效果:

本发明将管理服务器分为成员管理模块和业务协助处理模块,业务服务器分为成员管理模块和业务处理模块;由管理服务器的业务协助处理模块和业务服务器的业务处理模块对业务节点进行业务处理;管理服务器的成员管理模块根据监听到的业务服务器/或下一级管理服务器的运行状态并判定是否需要合并,如果需要合并,管理服务器的成员管理模块组织业务服务器/或下一级管理服务器的合并及负载再分配;业务服务器/管理服务器的成员管理模块在负载过重时向上一级管理服务器发出分裂请求,管理服务器的成员管理模块间协作完成下一级服务器的负载再分配与平衡,实现了服务运行状态的监控,可以方便地查看服务运行状态,进而高效地进行管理,并且使得服务器群架构系统具有较高的可伸缩性以及架构的平衡,同时负载迁移尽可能在相邻服务器间迁移,可减少负载迁移带来的资源消耗。

附图说明

图1为可伸缩网络服务器群架构系统结构图;

图2为本发明的业务节点编码结构图;

图3(a)为本发明实施例中只涉及业务服务器的分裂前的系统结构图,(b)为本发明实施例中只涉及业务服务器的分裂后的系统结构图;

图4(a)为本发明实施例中引起上层服务器分裂的业务服务器分裂前的系统结构图,(b)为本发明实施例中引起上层服务器分裂的业务服务器分裂后的系统结构图;

图5(a)是本发明实施例中的同级分裂前的系统结构图,(b)是本发明实施例中的同级分裂后的系统结构图;

图6(a)是本发明实施例中的向上分裂前的系统结构图,(b)是本发明实施例中的向上分裂后系统结构图;

图7(a)是本发明实施例中的合并分裂前系统结构图,(b)是本发明实施例中的合并分裂后系统结构图;

图8(a)是本发明实施例中的水平合并前系统结构图,(b)是本发明实施例中的水平合并后系统结构图;

图9(a)是本发明实施例中第一垂直合并前系统结构图,(b)是本发明实施例中第一垂直合并后系统结构图;

图10(a)是本发明实施例中第二垂直合并前系统结构图,(b)是(a)图水平合并后的系统结构图,(c)是(b)图第二垂直合并后的系统结构图。

具体实施方式

下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例

如图1所示,本实施例中的可伸缩网络服务器群架构,包括若干个管理服务器和业务服务器,所述可伸缩网络服务器群架构为树形架构;

所述管理服务器连接若干个管理服务器或若干个业务服务器;所述管理服务器位于树形架构的根节点或中间节点位置,业务服务器位于树形架构的叶子节点位置;

所述管理服务器包括成员管理模块和业务协助处理模块;

位于根节点的管理服务器上的成员管理模块,用于在负载超过分裂阈值时,向管理员发送分裂请求;用于监听下级服务器的运行状态,如果下级服务器达到合并条件,则向这些服务器下发合并指令;用于在接收到下级服务器发送的分裂请求后,处理下级服务器的分裂;用于处理服务器本机的分裂及负载再分配;用于处理与下属管理服务器的合并;

位于中间节点的管理服务器上的成员管理模块,用于接收到上级管理服务器下发的分裂响应后,进行负载再分配与业务迁移;用于在接收到上级管理服务器下发的合并指令后,进行负载合并与业务迁移;用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上级服务器发送分裂请求;用于监听下级服务器的运行状态,如果下级服务器达到合并条件,则向这些服务器下发合并指令;用于在接收到下级服务器发送的分裂请求后,处理下级服务器的分裂;用于节点编码管理;用于拒绝标志管理;

所述业务协助处理模块,用于根据业务服务器发送的业务协助处理请求或下级管理服务器转发的业务协助处理请求查找用户所属的业务服务器

所述业务服务器上包括业务处理模块和成员管理模块;

业务服务器上的成员管理模块,用于接收到上级管理服务器下发的分裂响应后,进行负载再分配与业务迁移;用于在接收到上级管理服务器下发的合并指令后,进行负载合并与业务迁移;用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上级服务器发送分裂请求;用于节点编码管理;

所述业务处理模块,用于给用户提供接口,根据用户的业务请求处理业务。

所述管理服务器中的成员管理模块包括监控线程、分裂线程和合并线程;

业务服务器中的成员管理模块包括监控线程、分裂线程和合并线程;

所述位于根节点的管理服务器上的监控线程,用于监控本机服务器的运行状态并将状态信息保存到数据库;用于监听下属服务器的运行状态,用于向管理员发送分裂请求,向达到合并条件的下属服务器发出合并指令;用于节点编码管理和拒绝标志管理;

所述位于中间节点的管理服务器上的监控线程,用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上一级管理服务器;用于监听下属服务器的运行状态,用于向上级服务器发送分裂请求,向达到合并条件的下属服务器发出合并指令;接收上一级服务器发出的分裂响应指令及合并响应指令;用于节点编码管理和拒绝标志管理;

所述业务服务器上的监控线程,用于监控本机服务器的运行状态,将状态信息保存到数据库,并将状态信息定时发送至上级管理服务器;用于在负载超过分裂阈值时,向上一级管理服务器发送分裂请求;用于接收上级管理服务器发出的分裂响应指令;用于接收上级管理服务器发出的合并指令;用于节点编码管理;

所述管理服务器和业务服务器中的分裂线程,用于处理负载再分配与业务迁移;

所述管理服务器和业务服务器中的合并线程,用于处理负载合并与业务迁移。

所述管理服务器的成员管理模块与管理服务器的成员管理模块或者业务服务器上的成员管理模块之间采用TCP进行通信;管理服务器上的业务协助处理模块与管理服务器上的业务协助处理模块或者业务服务器上的业务处理模块之间采用TCP进行通信;管理服务器上的业务协助处理模块和成员管理模块之间,通过本机调用方式进行通信;业务服务器上的业务处理模块和成员管理模块之间,通过本机调用方式进行通信。

所述处于中间节点位置的管理服务器和业务服务器设置有节点编码以区别不同的服务器,节点编码具有唯一性;

所述节点编码是变长的,由0,1串组成,所述节点编码长度等于其管理的服务器节点编码或业务节点编码的共同前缀部分长度;当服务器群只含有一台业务服务器时业务服务器编码的长度为零;根位置的管理服务器的编码长度为零。

管理服务器均设有前缀位列表保存其管理的管理服务器或业务服务器的节点编码,每个前缀位串对应一台管理服务器或业务服务器;

所述业务服务器保存一个前缀位串,管理所有以该前缀位串开头的业务节点编码

在本发明实施案例中,服务器群初始状态只包括一台管理服务器和一台业务服务器,服务器节点编码长度为零(无需编码);管理服务器的节点编码前缀位列表为空,r为假,业务服务器的节点编码前缀位串长度为零,业务服务器直接接收并处理用户的业务请求。

如图1所示,本实施例中树形架构为三层,第1层有两台管理服务器,则位于根位置的管理服务器的节点编码前缀位列表包含(0,1),管理的服务器节点编码分别为0和1;服务器节点编码为0的管理服务器下有三台业务服务器,节点编码前缀位列表为(00,010,011),管理的业务服务器节点编码分别记作00、010和011;服务器节点编码为1的管理服务器下有两台业务服务器,节点编码前缀位列表为(10,11),管理的业务服务器节点编码分别记作10和11。

如图1所示,本实施例的可伸缩网络服务器群架构为三层树形结构,图中的0、1串表示各个服务器的节点编码。

图1中所示的可伸缩网络服务器群架构的运行过程为:

(1)部署管理服务器并启动;

(2)部署管理服务器上的成员管理模块和业务协助处理模块。

(3)部署业务服务器并启动;

(4)部署业务服务器上的成员管理模块和业务处理模块;

(5)设置管理服务器与业务服务器的上下级关系;

上述操作完成后,可以对可伸缩网络服务器群系统进行管理了。

如图2所示为本发明的业务节点编码结构图,所述业务节点编码设置在业务节点上,业务节点表示用户负载,假设管理服务器逻辑上最多可管理2Lc个管理服务器或2M个业务服务器,业务服务器最多可支持2N个业务节点编码,服务器群架构最多有n层位于中间节点的管理服务器;接入服务器群的业务节点具有与之对应的唯一业务节点编码,该业务节点编码确定业务节点在服务器群中接入的业务服务器;业务节点编码是定长的,总长T位,由K位服务器节点编码前缀和N位的局部业务节点编码组成,K位服务器节点编码前缀由L位管理服务器编码(L≤n*Lc,Lc为非负整数)和M位业务服务器编码部分组成;其中,M、N、n、T、K、L均为非负整数。

所述每台服务器均设有合并阈值和分裂阈值,分裂阈值是服务器可以承受的最大负载,合并阈值是指合并后服务器的最大负载,分裂阈值通常大于合并阈值。其中,管理服务器上还设有拒绝标志r,r的取值为真或假,r为真时表示服务器管理的管理服务器/业务服务器达到稳定状态,不能分裂。

所述拒绝标志r置真的条件如下:

(1)位于第i层且0<i<n,管理服务器的r置真的条件是:父亲节点的r为真,前缀位列表中的前缀位串长均为Ls为第s层管理服务器逻辑上的最大编码长度,下层非业务服务器;

(2)位于根位置的管理服务器的r置真的条件是:前缀位列表中的前缀位串长均为L1,下层非业务服务器,所述L1表示第一层管理服务器的最大节点编码长度;

(3)位于第n层管理服务器的r置真的条件是:父亲节点的r为真,前缀位列表中的前缀位串长均为M,所述M为业务服务器逻辑上的最大节点编码长度,即下层业务服务器满。所述i、n、M均为非负整数。

所述管理服务器或业务服务器的成员管理模块采用如下步骤完成分裂和合并:

所述分裂步骤为:管理服务器或业务服务器的监控线程向上级管理服务器发送分裂请求消息;上级管理服务器的监控线程在接收到下属服务器发送的分裂请求消息后,根据管理服务器或业务服务器的分裂条件处理分裂请求消息,并下发分裂响应指令;下级服务器的监控线程收到分裂响应指令后,分裂线程根据分裂指令进行分裂,并对本机服务器进行负载再分配与业务迁移;

所述合并步骤为:管理服务器的监控线程根据监控到的下属管理服务器或业务服务器的运行状态,并根据管理服务器或业务服务器的合并条件向达到合并条件的服务器发出合并指令;下级服务器的监控线程收到合并指令后,合并线程根据合并指令进行合并,并对本机服务器进行负载合并与业务迁移;

所述业务服务器中的业务处理模块根据用户的业务请求处理业务,具体为:用户向已知业务服务器的业务处理模块发送业务处理消息,业务服务器的业务处理模块在接收到用户发送的业务处理消息后,根据业务节点编码判定用户是否属于该业务服务器,如果是,则进行业务处理,否则,则向上级管理服务器发送业务协助处理请求直至找到相应的业务服务器,相应的业务服务器收到业务处理消息后进行业务处理。

所述业务服务器分裂的条件是:管理的业务节点超过分裂阈值。

为表述方便,假设每层业务服务器最多可管理四个节点,即Lc=2;在本发明的其他实施例中,分裂前的服务器群架构可以是多层的。

图3(a)、(b)是本发明实施例中只涉及业务服务器的分裂前、后系统结构图。如图3(a)所示,分裂前,业务服务器有三台,位于根位置的管理服务器的节点编码前缀位列表为(0,10,11),根位置的管理服务器的拒绝标志r为假,管理的服务器节点编码分别为0、10和11;当业务服务器的负载超过分裂阈值时,业务服务器的监控线程向上级管理服务器发送分裂请求;上级管理服务器的分裂线程接收并处理下级服务器的分裂,如图3(b)所示,节点编码前缀位串为11的业务服务器分裂成两台,负载少的使用新增服务器,两台业务服务器节点编码分别记作110和111,如果分裂后,业务服务器的负载仍超过分裂阈值,此时继续向上发送分裂请求,直至服务器负载不超过分裂阈值;上级管理服务器的节点编码前缀位列表记作(0,10,110,111),r为假,服务器的节点编码不变(本例中根位置的管理服务器无节点编码)。

图4(a)、(b)是本发明实施例中引起上层管理服务器分裂的业务服务器分裂前后系统结构图。如图4(a)所示,分裂前,树形构架为两层,业务服务器有四台,假设位于根位置的管理服务器的节点编码前缀位列表包含(0,10,110,111),拒绝标志r为假,业务服务器节点编码分别为0、10、110和111;当业务服务器的负载超过分裂阈值时(如前缀位串为111的业务服务器),业务服务器的监控线程向上级管理服务器发送分裂请求;上级管理服务器接收并处理下级服务器的分裂。

如图4(b)所示为分裂后的架构图,树形架构为三层,所述节点编码前缀位为111的业务服务器分裂成两台,负载少的使用新增服务器,并分配服务器节点编码分别记作1110和1111;由于业务服务器由四台扩展为五台,则位于根位置的管理服务器的监控线程向管理者发送分裂请求;管理者收到分裂请求,指示位于根位置的管理服务器分裂为0和1(一台新增,一台使用位于根位置的原服务器,负载少的使用新增服务器),新增一台服务器位于根节点,管理分裂后的服务器;位于根位置的管理服务器的节点编码前缀位列表包含(0,1),r为假;业务服务器根据自身的节点编码前缀位串进行迁移,前缀位串为0的业务服务器迁移至节点编码为0的管理服务器下,管理服务器的节点编码前缀位列表包含(0),r为假;编码为1的管理服务器的节点编码前缀位列表包含(10,110,1110,1111),r为假。

如果分裂后,服务器的负载仍超过分裂阈值,此时继续向上发送分裂请求,直至服务器负载不超过分裂阈值。

管理服务器分裂时必须满足下列条件之一:

(1)同级分裂,r为假,上层服务器r为假且管理的物理服务器未达到上限,立即分裂,分裂后的服务器由上层服务器管理。

图5(a)所示分裂前树形架构为三层,第1层有两台管理服务器,则位于根位置的管理服务器的节点编码前缀位列表为(0,1),r为假,管理的服务器节点编码分别记作0和1;服务器节点编码为0的管理服务器下有两台业务服务器,管理服务器的节点编码前缀位列表为(00,01),r为假;服务器节点编码为1的管理服务器下有四台业务服务器,管理服务器的节点编码前缀位列表为(100,101,110,111),r为假;当业务服务器的负载超过分裂阈值时,业务服务器的监控线程向上级管理服务器发送分裂请求;上级管理服务器接收并处理下级服务器的分裂。

如图5(b)所示为分裂后的系统结构图,所述树形架构为三层,如节点编码前缀位为100的业务服务器分裂成两台,负载少的使用新增服务器,上级管理服务器分配服务器节点编码分别记作1000和1001;由于业务服务器由四台扩展为五台,则服务器节点编码为1的管理服务器向上级管理服务器发送分裂请求;位于根位置的管理服务器接收并处理下级服务器的分裂,服务器节点编码为1的管理服务器分裂成两台,负载少的使用新增服务器,位于根位置的管理服务器分配服务器节点编码分别记作10和11;位于根位置的管理服务器的节点编码前缀位列表为(0,10,11),r为假;业务服务器根据自身的节点编码前缀位串进行迁移,前缀位串为110、111的业务服务器迁移至服务器节点编码为11的管理服务器下,管理服务器的节点编码前缀位列表为(110,111),r为假;编码为10的管理服务器的节点编码前缀位列表包含(1000,1001,101),r为假(如果分裂后,服务器的负载仍超过分裂阈值,此时继续向上发送分裂请求,直至服务器负载不超过分裂阈值)。

(2)合并分裂,所述管理服务器的拒绝标志r为假,上层服务器r为假且管理的物理服务器达到上限,立即分裂并且新增管理服务器管理具有共同前缀位串且服务器节点编码长度大于Lc的管理服务器,新增的管理服务器的节点编码长度等于Lc

图7(a)、(b)是本发明实施例中合并分裂前、后系统结构图。

如图7(a)所示为分裂前的系统结构图,所示树形架构为三层,所述当业务服务器的负载超过分裂阈值时,业务服务器的监控线程向上级管理服务器发送分裂请求;上级管理服务器接收并处理下级服务器的分裂。

如图7(b)所示,如节点编码前缀位串为11111的业务服务器分裂成两台,负载少的使用新增服务器,上级管理服务器分配服务器节点编码分别记作111110和111111;由于业务服务器由四台扩展为五台,节点编码为111的管理服务器的监控线程向上级管理服务器(本例中为根,其他情况类似)发送分裂请求;上级管理服务器接收并处理下级管理服务器的分裂,节点编码为111的管理服务器分裂成两台,负载少的使用新增服务器,上级管理服务器分配服务器节点编码分别记作1110和1111;由于第1层管理服务器由四台扩展为五台并且根的r为假且管理的物理服务器达到上限,需要新增一台节点编码为11的管理服务器,节点编码前缀位列表包含(110,1110,1111),r为假。

如果节点编码为0的管理服务器分裂成两台,即00、01,则新增的管理服务器节点编码为11,节点编码前缀位列表包含(110,111);如果节点编码为10的管理服务器分裂成两台,即100、101,则新增两台管理服务器,节点编码分别记作10、11,其中编码为10的管理服务器的前缀位列表包含(100,101),编码为11的管理服务器的前缀位列表包含(110,111)。

管理的三台服务器的节点编码分别为110、1110、1111;业务服务器根据自身的节点编码前缀位串进行迁移,前缀位串为11100、11101的业务服务器迁移至节点编码为1110的管理服务器下,管理服务器的节点编码前缀位列表包含(11100,11101),r为假;编码为1111的管理服务器的节点编码前缀位列表包含(11110,111110,111111),r为假,如果分裂后,服务器的负载仍超过分裂阈值,此时继续向上发送分裂请求,直至服务器负载不超过分裂阈值。

(3)向上分裂,所述管理服务器的拒绝标志r为假,上层管理服务器r为真,立即分裂,并新增一台管理服务器管理分裂后的服务器;位于根位置的管理服务器采用向上分裂。其中,在水平分裂过程中,通常负载少的使用新增服务器。

图6(a)(b)所示为本实施例中向上分裂的前、后的系统结构图。

图6(a)所示分裂前服务器群树形架构为三层,服务器节点编码为11的管理服务器下有四台业务服务器;当业务服务器的负载超过分裂阈值时,业务服务器的监控线程向上级管理服务器发送分裂请求;上级管理服务器接收并处理下级服务器的分裂。

如图6(b)所示分裂后的系统结构图,如节点编码前缀位为1111的业务服务器分裂成两台,负载少的使用新增服务器,上级管理服务器分配服务器节点编码分别记作11110和11111;由于业务服务器由四台扩展为五台,服务器节点编码为11的管理服务器的监控线程向上级管理服务器(本例中为根位置的管理服务器,其他情况类似)发送分裂请求。

根位置的拒绝标志r为真,无法接纳新的服务器,指示节点编码为11的管理服务器分裂为110和111(一台新增,一台使用编码为原11的服务器,负载少的使用新增服务器),新增一台编码为11的服务器管理分裂后的110和111;编码为11的管理服务器的节点编码前缀位列表为(110,111),r为假。

业务服务器根据自身的节点编码前缀位串进行迁移,前缀位串为1100、1101的业务服务器迁移至节点编码为110的管理服务器下,管理服务器的节点编码前缀位列表包含(1100,1101),r为假;编码为111的管理服务器的节点编码前缀位列表包含(1110,11110,11111),r为假,如果分裂后,服务器的负载仍超过分裂阈值,此时继续向上发送分裂请求,直至服务器负载不超过分裂阈值。

由上述例子可知,服务器的分裂方向是自底向下;如果分裂后,服务器的负载仍超过分裂阈值,则继续向上级服务器发送分裂请求,直至服务器的负载不超过分裂阈值。

所述合并条件包括业务服务器合并条件和管理服务器合并条件;

所述业务服务器合并条件是:业务服务器节点编码相邻的两台服务器的负载之和低于合并阈值;

管理服务器合并条件是必须满足下列条件之一:

(1)水平合并,所述同层的两台管理服务器sij与sik的节点编码相邻、负载之和低于合并阈值且孩子节点类型相同;

(2)第一垂直合并,管理服务器sij、sij的子节点为服务器s(i+1)k及s(i+1)k的孩子节点均为管理服务器、sij的负载与s(i+1)k的负载之和低于合并阈值(或者sij的负载与s(i+1)k的负载之和使得sij的拒绝标志位为真),将s(i+1)k合并到sij

(3)第二垂直合并,管理服务器sij、管理服务器s(i+1)k是sij的子节点且唯一,s(i+1)k只有唯一的孩子s(i+2)k且s(i+2)k为业务服务器,将s(i+1)k合并到sij

其中,sij表示第i层、第j台管理服务器;在管理服务器的合并过程中,水平方向合并要优先于垂直方向合并;垂直合并的方向是自底向上;水平合并后的服务器由原负载多的服务器取代。

图8是本实施例中的水平合并前、后架构图。其中,图8(a)表示合并前的服务器群架构,图8(b)表示合并后的服务器群架构。上层服务器(本例中为根节点,其他情况类似)的监控线程监听到具有相邻节点编码的两台服务器的运行状态(如本例中节点编码为10和11的管理服务器,其他实例中下层也可以是业务服务器),两台服务器的负载之和不超过合并阈值,判定两台服务器可以合并;上级管理服务器向下级需要合并的两台服务器发送合并指令;下级服务器接收并处理合并指令,两台服务器合并为一台服务器,被释放的服务器上的业务迁移至合并后的服务器上(本例中由负载多的,即原节点编码为11的管理服务器取代,合并后的管理服务器节点编码为1;前缀位串为10的业务服务器迁移至节点编码为1的管理服务器下,合并后的管理服务器的节点编码前缀位列表包含(10,110,111),r为假)。

图9(a)(b)是本实施例中的第一垂直合并前、后架构图。其中,图9(a)表示合并前的服务器群架构,图9(b)表示合并后的服务器群架构。如上层服务器(本例中为根节点,其他情况类似)的监控线程监听到节点编码为1的管理服务器的运行状态,上层服务器的负载与编码为1的管理服务器的负载之和不超过合并阈值且编码为1的管理服务器的子节点为管理服务器,满足垂直合并(1)的条件,可以进行垂直合并;上层管理服务器向下级需要合并的服务器发送合并指令;下级服务器接收并处理合并指令,编码为1的管理服务器合并到上层服务器(本例中为根节点,其他情况类似);被释放的服务器上的业务迁移至合并后的服务器上(前缀位串为10、11的管理服务器迁移至位于根位置的管理服务器下,合并后的管理服务器的节点编码前缀位列表包含(0,10,11),r为假。

图10(a)(b)(c)是本实施例中的第二垂直合并前、后架构图。其中,图10(a)表示合并前的服务器群架构,图10(c)表示合并后的服务器群架构。如上层服务器(本例中为根节点,其他情况类似)的监控线程根据监听到节点编码为0的管理服务器的运行状态以及相邻节点编码为1的管理服务器的运行状态,两台服务器的负载之和不超过合并阈值,判定两台服务器可以进行合并(水平合并),如图10(b)所示。上级管理服务器向下级需要合并的两台管理服务器发送合并指令;下级管理服务器接收并处理合并指令,两台服务器合并为一台并由负载多的,即原节点编码为0的管理服务器取代。

由于合并后,上级管理服务器(本例中为根节点,其他情况类似)下的管理服务器只有一台且下层管理服务器的孩子节点均为业务服务器,则满足第二垂直合并的条件,进行第二垂直合并,上下层服务器合并为一台管理服务器并由下层管理服务器取代,服务器节点编码不变(本例中根无节点编码);管理服务器的节点编码前缀位列表包含(00,01,1),r为假,如图10(c)所示。

由上述可见,本发明将管理服务器分为成员管理模块和业务协助处理模块,业务服务器分为成员管理模块和业务处理模块;由管理服务器的业务协助处理模块和业务服务器的业务处理模块对业务节点进行业务处理;管理服务器的成员管理模块根据监听到的业务服务器/或下一级管理服务器的运行状态并判定是否需要合并,如果需要合并,管理服务器的成员管理模块组织业务服务器/或下一级管理服务器的合并及负载再分配;业务服务器/管理服务器的成员管理模块在负载过重时向上一级管理服务器发出分裂请求,管理服务器的成员管理模块间协作完成下一级服务器的负载再分配与平衡,实现了服务运行状态的监控,可以方便地查看服务运行状态,进而高效地进行管理,并且使得服务器群架构系统具有较高的可伸缩性以及架构的平衡,同时负载迁移尽可能在相邻服务器间迁移,可减少负载迁移带来的资源消耗。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号