[发明专利]一种面向构件的混合型云操作系统体系结构及其通信方法有效
申请号: | 201310367864.2 | 申请日: | 2013-08-22 |
公开(公告)号: | CN103442049A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 王恩东;张东;刘正伟;亓开元;刘俊朋;郭峰;刘成平;高飞;朱波 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 构件 混合 操作系统 体系结构 及其 通信 方法 | ||
1.一种面向构件的混合型云操作系统, 其特征在于基于层次、对象和消息模型建立混合型架构,并采用面向构件思想对组成构件及其处理环境进行管理,在此基础上,对构件处理集群进行高效路由、读写分离和负载均衡,满足对云操作系统地的开放兼容、松耦合和可扩展需求,解决现有云操作系统的自管理问题、构件水平伸缩问题和有状态构件的高可用问题,
从层次模型角度,系统自上至下分为门户层、逻辑层、适配层和实现层,各层相对独立,通过在各层分别定义标准接口增强开放性,通过在各层适配不同功能实现增强兼容性;
从对象模型角度,云操作系统由云门户、云管理门户、云资源管理、监控管理、计量计费、业务审批、授权认证功能模块组成,各功能组件通过基于Rest消息的调用进行通信,可自由组合,按需分布部署,并且可根据需求增值开发新模块,通过在逻辑层的不同模块间实现互操作增强平台的可扩展性,在实施例中,最小化安装的云操作系统仅由云门户、云管理门户和云资源管理模块组成,在此基础上,监控、计费、审批或其他模块按需定制和扩展,通过基于Rest消息的调用进行通信,按需分布部署和增值开发,通过在逻辑层的不同模块间实现互操作增强系统的可扩展性;引入基于消息的通信方式支持异步调用,使用消息通信接口JMS传输Rest消息,使系统架构进一步解耦,在此基础上,采用面向构建设计,构件管理门户负责管理构件的元数据并对其运行状态进行监控;
对象架构虽然能够实现按需扩展和分布部署,但属于RPC(Remote Process Call)同步通信方式,发送端等待接收端返回后才能继续执行,双方进程紧耦合,随着系统的扩大化和复杂化,构件之间的关联关系过于复杂,针对此问题,在对象架构的基础上引入基于消息的通信方式,使用消息通信接口JMS传输Rest信息,使得发送和接收端生命周期可以不同,并支持异步调用,使系统架构进一步解耦,在实施例中,门户和云资源层之间的虚拟机开启、关闭、挂起、关闭等操作通过异步方式实现,门户发出命令后无需等待响应即可返回,提升了用户交互效果;
基于上述混合型架构的云操作系统能够满足开放兼容和扩展需求,在此基础上,基于面向构建设计思想,构件管理门户负责管理构件的元数据信息,支持注册、删除、修改和查询等操作,其中,
构件是一个三元组包括:名称、服务集合、访问地址、描述;
服务是一个四元组,包括:名称、类型、消息协议、参数列表、key名称、功能描述、非功能描述;
除对构件进行描述和管理,构件管理模块进一步对其处理环境进行监控,为保障构件的可伸缩性和可用性提供基础服务,完善云操作系统的自管理能力,在构件注册时,系统为其分配用户名user、密码psw以及唯一的构件id,之后构件处理集群的接入过程为:
1)处理集群向地址为url的系统总线发起接入请求,系统总线验证接入节点的用户名、密码和id,如验证通过,建立连接,代码为:
connection=ConnectionFactory.createConnection(user,psw,url);
2)建立一个写操作主题,构件的每个处理节点向该主题订阅写操作;
write_topic=session.createTopic(id+WRITE_TOPIC);
write_topic_consumer=session.createConsumer(write_topic);
3)构件在writeTopicListener的onMessage方法中实现写处理,并向系统总线注册;
write_topic_consumer.setMessageListener(writeTopicListener);
4)根据构件处理节点数mum建立读操作队列组,每个处理节点对应一个队列订阅读操作
read_queue=session.createMultiQueue(num,id+READ_QUEUE);
read_queue_consumer=session.createConsumer(read_queue);
5)在readQueueListener的onMessage方法中实现具体的读处理功能,并向系统总线注册
read_queue_consumer.setMessageListener(readQueueListener);
在上述读写分离队列组基础上,在构件管理模块中对各构件的服务类型进行区分,设定其为幂等或非幂,幂等操作属于无状态操作,在同一状态下每次执行的结果相同;非幂等操作属于有状态操作,同一状态下每次执行的结果不同,路由器根据服务类型进行路由,非幂操作发送到唯一的写队列,幂操作根据负载均衡策略发送到不同的读队列;
读操作负载均衡流程过程为:
1)计算节点的处理能力;
若节点i的CPU频率、内存容量和I/O带宽分别为Ci,Mi和Bi,集群的各种资源为节点各种资源之和,即C=∑Ci,M=∑Mi,B=∑Bi;
则节点i的CPU权值为WiCPU=Ci/C,内存容量WiRAM=Mi/M,I/O带宽WiIO=Bi/B;
若构件服务所需资源比例分别为pCPU,pRAM,pIO,则节点i的处理能力为Wi=pCPUWiCPU+pRAMWiRAM+pIOWiIO;
2)根据读写操作权值计算各节点的负载;
若读队列Lr同写队列 Lw 的读写操作开销比a ,则节点i的负载Li=LRi+aLW
各节点的负载状态Si=Li/Wi
3)选择负载最轻的节点进行路由;
写操作采用流水方式进行,以提高数据写入效率,其过程为节点1首先写入数据,写入一个数据分片64 KB后,在继续接收数据的同时向节点2转发已写入的64K数据,节点2至节点n以相同方式接收和转发数据,直到节点n写入最后一个不超过64 KB数据分片;
在上述通信方法基础上,节点监控模块进一步将构件处理节点的加入、退出、失效和恢复事件发送给构件管理模块,其中,节点加入事件是指为构件添加一个处理节点;节点退出事件是指为构件撤销一个处理节点;节点失效事件是指构件的一个处理节点不可用;节点苏醒事件是指构件一个不可用处理节点恢复可用。
2.一种面向构件的混合型云操作系统的通信方法,其特征在于,包括高可用构件集群通信方法和水平伸缩构件集群通信方法,其中:
高可用构件集群通信方法,是构件管理模块为每个构件集群建立一个读写分离队列组,构件管理模块进一步将构件的服务类型区分为幂等或非幂,路由器根据服务类型进行路由,非幂操作发送到唯一的写队列,幂操作根据负载均衡策略发送到不同的读队列,在此基础上,节点监控模块将处理节点的加入、退出、失效和恢复事件发送给构件管理模块,构件管理模块进一步根据节点变化事件调整队列结构,此方法通过读写分离和负载均衡提高有状态构件集群的通信性能,根据节点变化调整队列结构保障构件的高可用性,构件管理模块进一步根据监控模块发送的节点变化事件调整队列结构,流程如下:
1)当节点加入时,在队列组中为该节点建立一个读操作队列,该节点向该队列订阅读操作,并向写主题订阅写主题;
2)当节点退出时,删除该节点对应的读队列,关闭其对写主题的订阅;
3)当节点失效时,停止向该节点的读队列发送读请求,在写主题中为该节点保留写操作;
4)当节点苏醒时,在写主题中同步写操作,恢复向该节点对应的读队列发送读操作请求;
无状态集群的负载均衡方法将操作完全均衡的分配到各个节点上,在有状态情况下将造成处理结果不一致,上述方法通过建立读写分离队列并针对节点能力负载均衡,能够避免此问题,提高有状态构件集群的通信性能,并且根据节点变化事件调整队列结构保障了有状态集群的高可用性;
水平伸缩构件集群通信方法,是构件管理模块根据节点数为构件的每个服务建立多边形队列结构,按Hash值进行二分查找路由,算法效率由远小于关键字规模的Hash分组数目决定,提高了路由效率,并且在节点数发生变化的情况下只需调整部分节点数据状态,提高了动态伸缩效率,在上述通信方法基础上,在初始化阶段根据节点处理能力划分各节点所需处理的Hash区间,形成路由表,实现按比例分布数据状态,达到负载均衡;
构件管理模块根据节点数为构件的每个服务建立多边形队列组,每个队列对应一个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),算法的效率由分组数目决定,由于分组数目远小于关键字规模,因此提高了路由效率,另外,由于采用了分组策略,因此在节点数量发生变化的情况下只需调整部分分组的关键字规模和对应节点的数据状态,提高了动态伸缩效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310367864.2/1.html,转载请声明来源钻瓜专利网。