CN103297542A - 一种支持构件在线伸缩的云操作系统总线及均衡方法 - Google Patents
一种支持构件在线伸缩的云操作系统总线及均衡方法 Download PDFInfo
- Publication number
- CN103297542A CN103297542A CN2013102508714A CN201310250871A CN103297542A CN 103297542 A CN103297542 A CN 103297542A CN 2013102508714 A CN2013102508714 A CN 2013102508714A CN 201310250871 A CN201310250871 A CN 201310250871A CN 103297542 A CN103297542 A CN 103297542A
- Authority
- CN
- China
- Prior art keywords
- node
- operating system
- processing
- system bus
- management module
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种支持构件在线伸缩的云操作系统总线及均衡方法,该总线的结构包括:构件管理模块、队列管理模块、消息路由器、节点监控模块、构件处理集群、构件客户端;该方法的具体步骤包括:1)初始化阶段;2)运行阶段。该一种支持构件在线伸缩的云操作系统总线及均衡方法和现有技术相比,克服现有技术无法支持构件部署集群动态、快速伸缩之不足,并解决由于节点异构、热点数据而引起的负载倾斜问题,完善了松耦合、构件化的云操作系统体系结构。
Description
技术领域
本发明涉及云计算技术领域,具体的说是一种支持有状态构件集群化的支持构件在线伸缩的云操作系统总线及均衡方法。
背景技术
随着云计算的兴起,传统的数据中心正在迅速向云数据中心转型。在数据中心从初级形态向高级形态演进的物理资源基础整合、物理与应用虚拟化整合、自动化集中管理、数据中心协同服务四个阶段中,云操作系统发挥着重要作用。云操作系统承担着对上接口应用、对下调度管理硬件的中间功能,将大量的异构设备融合为标准统一的逻辑资源池,动态调度给云应用,完成对终端的服务。
云操作系统对应用和硬件的兼容性决定了整个云数据中心的开放融合程度。云操作系统必须考虑对不同厂商软、硬件的兼容性,同时要考虑到云计算应用功能和非功能需求不断变化的实际,便于第三方基于云操作系统平台进行应用的系统优化和二次开发。因此,云操作系统一方面需要采用广泛兼容的开放架构,既考虑对第三方软、硬产品的兼容性,也将第三方二次开发纳入其中,提供完善、标准的接口API,另一方面,更要采用构件化、可扩展的系统设计,使资源虚拟化、资源调度、运维管理、计量计费、自助服务、数据管理等功能构件可自由组合,按需部署,并且采用可扩展性系统设计,便于增值构件的开发和动态伸缩,灵活满足用户定制需求。
已有云操作系统采用消息队列或消息中间件方式建立松耦合、构件化的体系结构,但基于消息队列的架构缺乏系统级的可扩展性支持,需要构件自行考虑伸缩方式,既加重了构件的开发负担,又加重了构件处理节点的系统开销。遵循高内聚低耦合的软件设计原则,从中间件层面针对构件建立消息队列组,可以支持构件处理集群的动态伸缩。然而,现有基于消息中间件的云操作系统的构件在线水平伸缩方案存在如下问题:
缺乏对构件及其处理集群的生命周期管理和动态监控机制;
缺乏高效的队列组路由机制,基于关键字的树型路由算法效率受到关键字的规模扩大的影响,而基于Hash函数的路由算法在节点加入和退出时,会产生大量的数据移动开销;
针对构件处理集群,缺乏均衡异构节点负载的初始化数据分布方法和运行时调整方法。
因此,如何在云操作系统中提供对构件及其处理集群的管理和监控机制,以及实现队列组的高效路由和负载均衡,成为中亟待解决的技术问题。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种支持构件在线伸缩的云操作系统总线及均衡方法。
本发明的技术方案是按以下方式实现的,该一种云操作系统总线,其结构包括:
构件管理模块,负责云操作系统各组成构件的注册、删除、修改和查询;
队列管理模块,负责根据构件信息建立、删除和调整构件的消息队列组;
消息路由器,负责根据路由信息向所述队列管理模块的队列组分发消息;
节点监控模块,负责检测构件各处理节点的加入和退出,获取处理节点的配置信息,并对各节点的数据状态进行控制;
构件处理集群,由若干处理节点组成,负责实现构件的具体服务功能,这里的具体服务功能是接收队列组的信息,并将心跳信息发送给节点监控模块,接收来自节点监控模块的监控指令,发送构件注册、撤销、变更指令给构件管理模块;
构件客户端,接收来自构件管理模块的构件信息,负责发起对构件服务的使用请求并将该请求发送给消息路由器。
所述队列管理模块根据处理节点数为构件的每个服务建立多边形队列结构,按Hash值分组进行二分查找路由,根据处理能力确定各节点的Hash区间规模,根据节点变更事件调整各节点的区间规模并向节点监控模块发送状态调整指令。
所述多边形队列结构根据处理节点数建立多个子队列,并形成一个环形拓扑结构,每个处理节点向其对应的队列订阅信息;构件客户端在查询构件服务信息后,向队列组发送服务请求消息。
所述节点监控模块将构件处理节点的加入、退出事件以及节点的配置信息发送给所述队列管理模块。
所述队列管理模块将所述状态调整指令发送给节点监控模块,节点监控模块根据状态调整指令对构件各节点的进行数据调整。
一种支持构件在线伸缩的负载均衡方法,包括
1)初始化阶段:根据构件的配置信息计算节点的处理能力,根据节点处理能力划分各节点的队列所需处理的Hash区间,形成路由表;
2)运行阶段:当节点加入事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表;当节点退出事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表。
本发明与现有技术相比所产生的有益效果是:
本发明的一种支持构件在线伸缩的云操作系统总线及均衡方法克服现有技术无法支持构件部署集群动态、快速伸缩之不足,并解决由于节点异构、热点数据而引起的负载倾斜问题,完善了松耦合、构件化的云操作系统体系结构,通过支持构件的在线伸缩和负载均衡保障了云操作系统的扩展性。
附图说明
附图1本发明的云操作系统总线架构。
附图2本发明的多边队列组路由示意图。
附图3本发明的数据状态调整时序图。
附图4本发明的数据分布算法流程图。
附图5 本发明的节点加入时数据分布调整流程图。
附图6 本发明的节点退出时数据分布调整流程图。
具体实施方式
下面结合附图对本发明的一种支持构件在线伸缩的云操作系统总线及均衡方法作以下详细说明。
附图1 为本发明支持构件在线伸缩的云操作系统总线架构实施例。如图1 所示,本实施例主要包括如下模块:
构件管理模块,负责管理各组成构件元数据信息,支持注册、删除、修改和查询等构件管理操作,其中,构件是一个三元组{名称、功能和非功能描述、服务集合};服务是一个四元组{名称,消息协议,参数列表,key名称}。
队列管理模块,负责根据构件信息建立、删除和调整构件的消息队列组。
消息路由器,负责根据路由信息向所述队列组分发消息。
节点监控模块,负责检测构件各处理节点的加入和退出,获取处理节点的配置信息,并对各节点的数据状态进行控制。
构件处理集群,负责实现构件的具体服务功能,由若干个处理节点组成。
构件客户端,负责发起对构件服务的使用请求。
基于上述云操作系统总线架构,本发明实施例提供了一种消息队列结构和路由算法,如图2所示。
构件注册时,系统总线为构建分配用户名user、密码psw以及唯一的构件id,所述队列管理模块进一步用于根据预定义处理节点数为构件的每个服务建立多边形队列结构,按Hash值分组进行二分查找路由,根据处理能力确定各节点的Hash区间规模,根据节点变更事件调整各节点的区间规模并向节点监控模块发送状态调整指令。
其中,路由算法为:
1)计算key 的Hash值h;
2)初始化分组下限i为1,分组上限j为分组总数m;
3)重复;
4)计算中间分组t=(i+j)/2,查看分组t是否包含h;
5)若h小于当前分组下限,更新上限j=t-1;
6)若h大于当前分组上限,更新下限i=t+1
7)按照区间所在节点进行路由。
算法相当于以分组为节点做二分查找,复杂度为O(log2n),路由算法的效率由分组数目决定,由于分组数目远小于关键字规模,因此提高了路由效率。另外,由于采用了分组策略,因此在节点数量发生变化的情况下只需调整部分分组的关键字规模,提高了动态伸缩效率。
基于上述云操作系统总线架构,本发明实施例提供了一种处理节点和客户端接入、退出方法,其过程如附图3、图4、图5、图6所示,其具体步骤如下。
1)处理节点在合适的时候向地址为url消息总线发起接入请求,代码为
connection=ConnectionFactory.createConnection(user,psw,url); session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
2)消息总线验证接入节点的用户名、密码和id,如验证通过,建立连接。
3)每个处理节点向其对应的构件队列组订阅信息,若对应构件id 的队列组的订阅节点已满,则消息总线在该多边队列组中增加一个队列
polygon_queue=session.createPolygonQueue(id+"POLYGON_QUEUE"); polygon_queue_consumer=session.createConsumer(polygon_queue);
4)处理节点在polygonQueueListener的onMessage方法中实现具体的处理功能,并向消息总线进行注册
polygon_queue_consumer.setMessageListener(polygonQueueListener);
polygon_queue_consumer.listen();
5)所述构件客户端在查询构件服务信息后,如构件标示id、队列名后,向队列组发送服务请求消息,并标示服务关键字,例如发送关键字为key的get服务请求代码为
polygon_queue=session.createQueue(id+"POLYGON_QUEUE"); client_producer=session.createProducer(polygon_queue);
Mesasge message = session.createTextMessage("get");
message.setStringProperty("POLYGON_QUEUE_ID", "key");
client_queue_producer.send(message)
6)处理节点在合适的时候向消息总线发起退出请求,代码为
session.close();
connection.close();
基于上述处理节点的接入和退出方法,本发明实例提出了一种数据状态调整方法,如图4,其过程为:
(1)节点监控模块进一步将构件处理节点的加入、退出事件,以及节点的配置信息发送给所述队列管理模块
(2)所述队列管理模块进一步用于将所述状态调整指令发送给节点监控模块;
(3)所述节点监控模块进一步用于根据所述状态调整指令对构件各节点的进行数据调整。
基于上述架构和方法,本发明实例提出了一种数据状态分布方法,包括
在初始化阶段,根据构件的配置信息计算节点的处理能力,根据节点处理能力划分各节点的队列所需处理的Hash区间,形成路由表;
在运行阶段,当节点加入事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表;
在运行阶段,当节点退出事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表;
在上述数据状态分布方法中,包括在初始化阶段根据节点能力确定各节点的队列规模的步骤, 其中,节点i处理能力的计算方法为,
若节点i的CPU频率、内存容量和I/O带宽的配置信息分别为为Ci,Mi和Bi,则集群的各种资源配置为节点各种资源之和,即C=∑Ci,M=∑Mi,B=∑Bi
因此,节点i的CPU频率权值为Wi CPU=Ci/C,内存容量权值Wi RAM=Mi/M,I/O带宽权值Wi IO=Bi/B
若构件服务处理所需资源各种资源比例分别为pCPU,pRAM,pIO,则节点i的处理能力Wi=pCPUWi CPU+pRAMWi RAM+pIOWi IO
根据节点处理能力比例就能够划分各节点的队列所需处理的Hash区间规模
基于上述节点处理能力计算方法,可以在运行阶段根据节点的加入、退出事件确定各节点队列规模并进行调整,同时,为了提高路由效率,调整过程在在保障最小化数据移动量的同时,要尽量减少划分数量。数据状态分布方法的步骤包括
在运行阶段,当节点加入事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,为了减少分组数,关键是如何移动每一分组的端点,调整过程为:
1、计算各节点区间规模,H1 ,H2,…, Hn,Hn+1
2、计算原有节点需减少的区间大小△H1,△H2,…,△Hn并从小到大小排序;
3、将每个节点的分组按区间规模从小到大排序,计算受影响分组并标记;
4、若存在非受影响分组,从任一非受影响分组开始,否则,从任意分组开始;
5、顺时针旋转;
6、对于任意分组,查看是否需移动;
7、若前一端已移动,选择该端移动划分点,否则,若后一端是受影响分组,选择后一端移动移动划分端点;否则随机选择一端移动划分点。
在上述调整方法中,通过尽量选择已移动的端点,减少了分组数,提高了路由效率。
在运行阶段,当节点退出事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间, 为了减少分组数,关键是如何移动每一分组的端点,调整过程为
1)计算各节点区间规模,H1 ,H2 ,…,Hn-1 。
2)计算各节点需增加的区间大小△H1 ,△H2,…,△Hn-1并从大到小排序。
3)若退出节点对应多个分组,按区间规模从小到大排序。
4)从最小退出分组j开始。
5)两端邻接分组需增加规模相加小于分组j△Hj+1+△Hj-1<Hj,移动j+1左端和j-1右端。
6)若存在两端都邻接,按比例划分移动。
7)若存在一端邻接,例如如果j-1端邻接,移动j+1端,计算剩余空间,按照剩余空间移动j-1。
8)否则,两端都不邻接,邻接分组需增加规模相加大于分组,若△Hj-1<Hj且△Hj+1<Hj,或△Hj-1>Hj且△Hj+1>H,移动较大分组的相邻端点;若△Hj-1<Hj或△Hj+1<Hj,移动j+1左端或j-1右端。
在上述方法中,为了避免出现多余的分组,从最小分组开始,通过尽量选择无邻接的端点和优先选择大分组,减少了分组数。
Claims (6)
1.一种云操作系统总线,其特征在于其结构包括:
构件管理模块,负责云操作系统各组成构件的注册、删除、修改和查询;
队列管理模块,负责根据构件信息建立、删除和调整构件的消息队列组;
消息路由器,负责根据路由信息向所述队列管理模块的队列组分发消息;
节点监控模块,负责检测构件各处理节点的加入和退出,获取处理节点的配置信息,并对各节点的数据状态进行控制;
构件处理集群,由若干处理节点组成,负责实现构件的具体服务功能,这里的具体服务功能是接收队列组的信息,并将心跳信息发送给节点监控模块,接收来自节点监控模块的监控指令,发送构件注册、撤销、变更指令给构件管理模块;
构件客户端,接收来自构件管理模块的构件信息,负责发起对构件服务的使用请求并将该请求发送给消息路由器。
2.根据权利要求1所述的一种云操作系统总线,其特征在于:所述队列管理模块根据处理节点数为构件的每个服务建立多边形队列结构,按Hash值分组进行二分查找路由,根据处理能力确定各节点的Hash区间规模,根据节点变更事件调整各节点的区间规模并向节点监控模块发送状态调整指令。
3.根据权利要求2所述的一种云操作系统总线,其特征在于:所述多边形队列结构根据处理节点数建立多个子队列,并形成一个环形拓扑结构,每个处理节点向其对应的队列订阅信息;构件客户端在查询构件服务信息后,向队列组发送服务请求消息。
4.根据权利要求2所述的一种云操作系统总线,其特征在于:所述节点监控模块将构件处理节点的加入、退出事件以及节点的配置信息发送给所述队列管理模块。
5.根据权利要求2所述的一种云操作系统总线,其特征在于:所述队列管理模块将所述状态调整指令发送给节点监控模块,节点监控模块根据状态调整指令对构件各节点的进行数据调整。
6.一种支持构件在线伸缩的负载均衡方法,其特征在于包括:
1)初始化阶段:根据构件的配置信息计算节点的处理能力,根据节点处理能力划分各节点的队列所需处理的Hash区间,形成路由表;
2)运行阶段:当节点加入事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表;当节点退出事件发生时,根据节点的配置信息计算节点的处理能力,调整各节点对应队列的Hash区间,更新路由表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102508714A CN103297542A (zh) | 2013-06-24 | 2013-06-24 | 一种支持构件在线伸缩的云操作系统总线及均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013102508714A CN103297542A (zh) | 2013-06-24 | 2013-06-24 | 一种支持构件在线伸缩的云操作系统总线及均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103297542A true CN103297542A (zh) | 2013-09-11 |
Family
ID=49097845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013102508714A Pending CN103297542A (zh) | 2013-06-24 | 2013-06-24 | 一种支持构件在线伸缩的云操作系统总线及均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103297542A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916396A (zh) * | 2014-04-10 | 2014-07-09 | 电子科技大学 | 一种基于负载自适应的云平台应用实例自动伸缩方法 |
CN104869072A (zh) * | 2015-04-25 | 2015-08-26 | 哈尔滨工业大学 | 一种基于构件化模块的航天器总线路由器 |
CN105490903A (zh) * | 2014-09-19 | 2016-04-13 | 中国银联股份有限公司 | 一种基于总线模式的集群架构 |
CN108234606A (zh) * | 2017-12-15 | 2018-06-29 | 浪潮软件股份有限公司 | 一种消息管理方法及管理装置 |
CN108270857A (zh) * | 2018-01-15 | 2018-07-10 | 郑州云海信息技术有限公司 | 一种云计算操作系统负载均衡方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853160A (zh) * | 2010-05-18 | 2010-10-06 | 上海动量软件技术有限公司 | 计算机软件系统中云构件实现框架配置的平台系统及方法 |
US7836448B1 (en) * | 2004-06-30 | 2010-11-16 | Emc Corporation | System and methods for task management |
CN102223254A (zh) * | 2011-06-17 | 2011-10-19 | 南京中兴新软件有限责任公司 | 监控系统及方法 |
CN102236554A (zh) * | 2011-07-18 | 2011-11-09 | 国家电网公司 | 在线应用软件的构建平台、系统和方法 |
CN102868736A (zh) * | 2012-08-30 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种云计算监控框架设计及实现方法及云计算处理设备 |
-
2013
- 2013-06-24 CN CN2013102508714A patent/CN103297542A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836448B1 (en) * | 2004-06-30 | 2010-11-16 | Emc Corporation | System and methods for task management |
CN101853160A (zh) * | 2010-05-18 | 2010-10-06 | 上海动量软件技术有限公司 | 计算机软件系统中云构件实现框架配置的平台系统及方法 |
CN102223254A (zh) * | 2011-06-17 | 2011-10-19 | 南京中兴新软件有限责任公司 | 监控系统及方法 |
CN102236554A (zh) * | 2011-07-18 | 2011-11-09 | 国家电网公司 | 在线应用软件的构建平台、系统和方法 |
CN102868736A (zh) * | 2012-08-30 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种云计算监控框架设计及实现方法及云计算处理设备 |
Non-Patent Citations (2)
Title |
---|
柳佳佳: ""基于策略的转发系统的设计与实现"", 《中国优秀硕士学位论文全文数据库,信息科技辑》 * |
许世杰: ""基于集群的网络仿真平台NS2的设计与实现"", 《中国优秀硕士学位论文全文数据库,信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103916396A (zh) * | 2014-04-10 | 2014-07-09 | 电子科技大学 | 一种基于负载自适应的云平台应用实例自动伸缩方法 |
CN105490903A (zh) * | 2014-09-19 | 2016-04-13 | 中国银联股份有限公司 | 一种基于总线模式的集群架构 |
CN105490903B (zh) * | 2014-09-19 | 2019-07-19 | 中国银联股份有限公司 | 一种基于总线模式的集群架构 |
CN104869072A (zh) * | 2015-04-25 | 2015-08-26 | 哈尔滨工业大学 | 一种基于构件化模块的航天器总线路由器 |
CN104869072B (zh) * | 2015-04-25 | 2018-01-30 | 哈尔滨工业大学 | 一种基于构件化模块的航天器总线路由器 |
CN108234606A (zh) * | 2017-12-15 | 2018-06-29 | 浪潮软件股份有限公司 | 一种消息管理方法及管理装置 |
CN108270857A (zh) * | 2018-01-15 | 2018-07-10 | 郑州云海信息技术有限公司 | 一种云计算操作系统负载均衡方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN103442049B (zh) | 一种面向构件的混合型云操作系统体系结构及其通信方法 | |
Liu et al. | Selective data replication for online social networks with distributed datacenters | |
Zhang et al. | Toward a unified elastic computing platform for smartphones with cloud support | |
CN110798517B (zh) | 去中心化集群负载均衡方法、系统、移动终端及存储介质 | |
CN1658598A (zh) | 计算机网络中自组织分配服务方法、系统和软件产品 | |
CN104754008B (zh) | 网络存储节点、网络存储系统以及用于网络存储节点的装置和方法 | |
CN103297542A (zh) | 一种支持构件在线伸缩的云操作系统总线及均衡方法 | |
WO2015165095A1 (zh) | 一种虚拟基站的创建方法及基站云设备 | |
CN110071965B (zh) | 一种基于云平台的数据中心管理系统 | |
Chang et al. | A load-balance based resource-scheduling algorithm under cloud computing environment | |
WO2018121201A1 (zh) | 分布式集群服务结构及节点协同方法和装置、终端及介质 | |
CN103368864A (zh) | 一种基于c/s架构的智能负载均衡方法 | |
CN103777950B (zh) | 一种对aos遥测数据解析的网格化方法 | |
Li et al. | Deployment of edge servers in 5G cellular networks | |
Kang et al. | A cluster-based decentralized job dispatching for the large-scale cloud | |
CN111538570A (zh) | 一种面向节能和QoS保障的VNF部署方法及装置 | |
CN110727738B (zh) | 基于数据分片的全局路由系统、电子设备及存储介质 | |
CN103457870A (zh) | 用于分布式系统的负载均衡及高可用性子系统及方法 | |
CN110427270A (zh) | 一种面向rdma网络下分布式连接算子的动态负载均衡方法 | |
Zhao et al. | Contact duration aware data replication in DTNs with licensed and unlicensed spectrum | |
CN106874108B (zh) | 移动云计算中最小化微云使用个数技术 | |
CN103152382B (zh) | 面向多宿主网络的多文件并发传输控制方法 | |
CN105554126A (zh) | 一种通过cdn加速机制实现多数据中心分布式部署的方法 | |
CN103312808A (zh) | 一种云操作系统总线及通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130911 |
|
WD01 | Invention patent application deemed withdrawn after publication |