基于Resin技术的云计算服务平台分析与设计
2015-05-12张宝燕
张宝燕
(晋中学院,山西晋中030600)
云技术[1]当前和大数据、智能城市建设并称为三大计算机技术发展大趋势,作为一种新型的计算机应用方式,使用方式,云计算正在从更经济、更效率的运作方式出现在世人面前。记得冯诺依曼等计算机设计的先驱曾经讲过,“对于这样的大型计算机(那个时候所谓的大型机,还没有现在的手机运算性能强),世界需要几台就足够了。”[2]然而现在计算机的生产数量,远远超出他们的规划和设想。计算机的微型化、硬件成本的跳水式降低、使得计算机像一件普通的家庭必备用具或者教学用具一样,广泛的部署到生产、生活的各个方面。然而,几十年计算机的发展和普及,实际的计算机使用当中,其实也存在着很多的问题。
对于网络技术也飞快发展的今天,计算机依赖个人计算机IBM体系,以及服务器架构下的服务网络,还有巨型机等高昂设备部署的今天,对于其更低代价下,临时的较高计算要求、数据稳定安全要求的这种计算机需求,仍然没有得到足够的体现。计算机资源,被大量的盲目生产,和低效的应用,它的部署,更多的起到一种多媒体设备,以及一些娱乐性质的设备。将计算机能够更加廉价的作为一种商业资源去共享,去方便的为企业和家庭服务,是未来发展的需要。
1 云计算集群框架设计
对于云计算而言,能够完成虚拟化资源分配、大量数据存储管理、编程二次开发、计算机集群部署。在内部实现负载均衡,计算机健康性扫描,数据冗余备份、动态计算机更新、远程控制管理等[3]。总体呈现的设计结构如图1所示。
图1 云计算集群系统结构
2 可靠性模型
系统可靠性在定义当中它指的是可运行t=0到以后的任意时刻t这段时间设备不发生故障的概率,这个概率的分布函数记作R(t)。而单位时间内,发生故障的器件数目和总共测试的器件数目之比为λ。而这个发生故障的概率分布和λ有关系,这种关系表达为:R(t)=e^(-λt)。
在网络当中,复杂的拓扑结构[4]通过分解以后,是由串联和并联两种方式交互式组合而实现的一个超大型网络。通过串联和并联的分解计算,再将各自作为整体在整体结构上执行串联或者并联关系计算,最终计算出实际的可靠结构。因此网络的可靠性,可以通过建立这种计算方式来实现可靠程度的计算。
在这种连接方式下,只要一个结构出现故障的时候,那么整个系统就会出现瘫痪,因此可靠性为:R=R1×R2×…×Rn;
对应的,系统发生失效性为:λ=λ1+λ2+…+λn。
而在并联系统下,系统的可靠性却是系统全部发生故障工作的补集。表达为:R=1-(1-R1)×(1-R2)×…×(1-Rn)。
在这种情形下,系统失效为:
这里系统的子系统都是只要有一个正常工作就行,也就是它们都是相同功能作用的情形,也叫做冗余子系统。在云计算过程当中,冗余的存在[5]能够为系统总体可靠性大大提高。
特别的,在非常特殊的情形下,能够设计一类特殊结构的并联系统。这种系统由m=2n+1个子系统构成,也就是说m是奇数,最终外面的输出靠一个表决器来完成输出。也就是说系统的运行结果通过m个子系统的结果进行表决,把结果相同数目最多的结果作为正确结果输出。这种结构下的系统可靠性为:
M模冗余系统结果如图2所示。
图2 m模冗余系统结构
在现在计算机工艺和电子元器件已经非常可靠的情形下,m的取值不必取得非常大,事实上一个主机服务器在从开始使用的时候,安全运行一两年,完全不成问题,因此,在实际的云计算集群部署中,m只是取3即可,采用最小的参数进行三重度冗余备份技术,实现计算机集群的可靠性。三重冗余备份的类设计结构图如图3所示。
图3 三重度冗余类结构设计
3 负载均衡模型
负载均衡有很多的方式,例如最基础的随机分配模式[6],轮询分配模式,权重轮询分配模式。随机分配模式就是采用系统的随机函数,开始随机的计算带分配主机,随机弹出哪个,就将任务分配给它,这种算法的特点就是分配过程非常的高效,无论在任何情况下,都能够在较少的计算资源和仍以数量的任务和主机资源对比关系中,均能够变现出较为合理的分配行为,但是这种算法过于不确定,它的稳定性不能够预测,并且他的性能很大程度上取决于随机函数的分布。负载均衡类设计如图4所示。
图4 负载均衡类设计
4 健康性扫描
该功能依靠的是云计算平台的多个主机之间的消息通信机制实现的,消息通信分为两种模型,一种是请求回复型,另一种是发布订阅的模式。
这里采用了发布订阅消息模式[7],该模式能够为用户提供一个更好的运作方式,这里发送者,不再无选择的,盲目的发送信息,只负责额标注消息的类别。而消息的发送与否,取决于对方的订阅。订阅者,对于消息,进行自己感兴趣的进行订阅,它自身也并不知道消息是什么内容,发布者按照订阅情况,将消息有选择的发送到各个订阅者手中。这种方式实现了订阅者和发布者之间的消息传递类型有更多的有选择的可能,减少了消息发布的盲目性,提升了效率。它自身再结合并行算法、以及缓存机制,或者网络自身主机连接关系,实现更为复杂的消息共享机制,实现更多的可能和可开放性。
在这种情形下,集群计算机的消息模式,采用集群交互的功能来使得消息的发送接收更加稳定。它们通过节点间的特殊通道进行通信。这种特殊性体现在通道不需要某两个节点进行通信时,额外建立,而是共享集群通道进行通信,这在路由功能的方便、以及单点故障处理中,都是非常好的体现。因为从图论角度讲,n个节点的两两连接通信信道数量是n(n-1)/2。是O(n^2)的复杂度。而建立公共信道以后,它们只需要共享同一个信道就可以,减少了信道建立开销。
在集群信道建立体制下,仍然设计了三种集群通信模式。它们分别为不同的应用情形所使用,以使得整体取得一个最佳的效果。
1)队列消费集群:由于他们的通信信道共享,因此任务队列也是共享的,在这种状况下,当出现单点故障的时候,排队的消息任务会转移到其他相邻主机任务队列中去,不会实现任务失败的情况。2)消息代理群:这其实是一个类似于中介的,运作机制。3)主从集群:这不再是对等主机的情形,而是一种领导与被领导,服从与被服从的关系。云集群类设计如图5所示。
图5 云集群类设计
5 系统安全性设置
系统安全性设计,需要考虑的问题是创建服务器和添加服务器的时候实行验证机制,能够登记注册相关的主机身份信息。并对主机的优先结构进行设计,是整个系统把关入口。对于系统安全算法,通过算法采集接口提供,为其中的详细设计提供算法支持。在摘要算法中,通过md5算法实现简单的摘要计算,用SHA-256实现高强度的复杂摘要计算[8]。
6 结束语
本文从总体到细节详细设计了云计算集群结构,从远程访问控制、网页显示和JSP编译、三重冗余备份、集群部署和负载均衡设计等几个方面来展开设计云计算结构[9]。对云计算可靠性问题、负载均衡、健康性扫描、安全性设计等几个问题,进行了原理上的分析并给出合适的解决方案。可靠性方案采用了三重冗余备份的策略,在代价和性能上取得了较好的方式。对于负载均衡来讲,采用带权轮询的方式实现负载的均衡,并在实际的进一步设计当中,把负载均衡又详细设计成web主机和app主机两个部分,进一步结合实际情况细化了设计过程。对于健康性扫描,采用订阅的方式进行扫描,实现优化的使用通信共享总线的目的。
[1]Kaewkasi.CloudComputing[EB/OL].2015.4.http://en.wikipedia.org/wiki/Cloud_computing.2015 -04.
[2]Michael Armbrust,Armando Fox,Rean Griffith,et al.A-bove the Clouds:ABerkeley View of Cloud Computing,Technical Report No[J].UCB/EECS -2009 -28.2009.2.
[3]Lai L,L Shen,Y Zheng,et al.REPERA,A Distributed ArchitectureEfficientlyCombining Pure Replication and Erasure Code[C].2nd International Conference on Cloud Computing and Virtualization,2010.
[4]刘鹏.云计算-将计算变成水和电[J].中国计算机协会通讯,2009,5(10):49 -54.
[5]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337 -1348.
[6]King,Rachel.CloudStorage[EB/OL].2015.1.http://en.wikipedia.org/wiki/Cloud_storage.2015 -01
[7]Danielson.Amazon Simple Storage Service(Amazon S3)[EB/OL].2015.4.http://aws.amazon.com/s3/,2009.
[8]Rouse,Margaret.Hadoop[EB/OL].2015.3.http://hadoop.apache.org/,2015 -03.