面向负载均衡的高性能环加星型云平台设计
2015-03-15杨帆
杨帆
面向负载均衡的高性能环加星型云平台设计
杨帆
摘要:目前云平台存在服务器的更新造成硬件的浪费,多个高性能的服务器作备份成本太高等问题。基于此运用负载均衡的集群技术,设计了一个兼顾可靠、性能和成本兼顾的云平台。使用环型网与星型网相结合的网络结构,使计算的组合形式多样化,采用数据多处备份,提升性能与安全。通过负载均衡技术解决网络瓶颈问题,使客户的访问不会只集中在某个端点上,减少通信过程中的瓶颈。最后,通过可靠性与性能分析,证明该设计在负载越高的情况下性能表现越好,并且平台能长期地保持这种状态。
关键词:环加星网;数据库水平与垂直分割;负载均衡
0 引言
云计算平台需要具有强大的计算能力,并且必须能适应计算量的不断增加。针对不断的增加的计算量,一般会通过更换高性能的服务器来解决这一问题,但旧的服务器就会因此浪费。通过使用负载均衡的集群技术,可以很好地实现服务器的分布式计算,从而提高性能,提升计算能力。常用的服务器集群方式都是多层的层次结构,存在计算瓶颈与网络线路可靠性不高等问题。针对上述情况,本文采用负载均衡的集群技术,使用环型网与星型网相结合的网络结构,使计算的压力分布到不同计算机上,降低局部计算机的负担和风险,还提供多链路访问,从而使得计算平台的性能与可靠性都得到提升。
1 本云平台的设计
本文的云平台的结构如图1所示:
图1 云平台的结构图
如图1所示,服务器集群分工明确,web服务器集群提供用户访问功能,常用数据库集群提供数据存储,长期备份数据库集群提供数据的长期备份和重要数据的存储功能,性能监测集群根据服务器性能的具体信息,为注册用户提供特定服务。云平台的网络拓扑图如图2所示:
图2 云平台的网络拓扑图(主要功能区)
在图2中有4个环状结构,它们是web服务器集群,用户使用web service获得服务,web服务器集群提供相同的服务,当用户使用web service请求服务时,负载均衡设备会根据web服务器的性能及网络情况来决定访问某个服务器集群。中间是环型网结构的数据库集群,外层环网是常用数据库集群,中间是存储和备份重要数据的数据库集群。当用户注册使用服务时,性能监测服务器集群会根据web服务器集群的性能,来决定用户在那一个服务器中注册并生成特定的web service,提供给用户,用户从而可以访问web服务器。
针对主要功能区的数据库网络详细介绍如图3所示:
图3 据库网络拓扑图
如图3所示,数据库网络中有3个环状结构,主要作用是以防网络某处出现故障时,还能继续通讯。最中心的数据库集群是存储重要数据和长期备份的数据库。中环上的数据库是外环的数据库的热备份,一旦外环数据库出现故障,立刻切换。web服务器访问外环数据库,具体访问那个数据库,则根据用户登录时的ID号,具有相似性的ID号是同一个单位,访问相同的数据库集群,反之则访问不同的数据库集群。
拓扑结构中关键设备的功能或特点:
W1:它是ICX数据库路由器,能使web服务器同时对多个数据库进行写入,可以实时切换数据库,按计划地在数据库间进行数据更新,并能对数据库的访问事务进行过滤和分发。
W2:外环,为web服务器连接ICX数据库路由器提供多个选择,保证它能访问到数据库。
W3:主数据库,是web服务器主要访问的数据库。
Z1:中环,让内环数据库可以连接多个中环数据库,也是提供了多个连接的选择,以防线路故障。
Z2:每2个数据库服务器组成一组,可以作双机热备份。
Z3:从数据库,主要功能是主数据库的热备,其次它会有计划地把新数据更新到内环数据库,或在故障和超负载后作为主服务器使用,故障修复后,还原主数据库。
Z4:RAID10的磁盘阵列,RAID10是RAID1与RAID0的结合,拥有较高的读写效率和较高的数据保护、恢复能力。但它安全性不高,通过把它放置于最内层,通过内网IP的方式与外网隔绝,提高安全性。
N1:做RAID5的磁盘陈列,它能提供大容量数据储存及高安全性保护。
N2:内环数据库,除了存储重要数据和长期备份功能以外,还可以把数据库中临时无用数据删除,把少量的使用数据或要长期保存的数据、重要数据,转移到内环库中保存,尽量减少上一层数据库的负荷来提高效率。
N3:内环,也是以防环上某处网络故障,保证连通性,其次内环上部署多个数据库,以防某个内环数据库超负荷或故障。
环上的设备的数量不是固定的,比如外环上可以不只是4个ICX数据库路由器,每个ICX数据库路由器连接多个数据库服务器,ICX数据库路由器与数据库服务器组之间的具体对应关系要根据现实的负荷来决定的,如果用户数量增多,肯定要增加设备。除了整个网络的设计外,服务器间集群的组织方式也很重要,数据库的水平与垂直分割的策略如图4所示:
图4 数据库的水平与垂直分割的集群示意图
FG1:把数据库按功能分割,不同的服务访问不同的设备,把负荷分散,提高性能。
FG2:在实际情况中,用户需要的查询服务比操作服务要多很多,因此查询与操作分开设备进行,使性能得到提升。
备份管理层对查询层和操作层进行管理,主要是清理临时无用数据和把不常用但要长期保存的数据进行转移到此层,目的就是减少上两层的数据量,减少设备负荷。
假设本平台在运行一个某产品的网站,此网站有产品展示功能、用户注册功能、产品论坛浏览等,由于产品展示功能、用户注册功能、产品论坛浏览的模块相对独立,因此在数据库的设计中,进行相应的垂直分割。除此之外,对数据库的设计也进行一定的优化,对数据库表的进行垂直与水平分割,如图5所示:
图5 表的垂直与水平分割
在设计数据库的表时,某些表的数据可能会很多,造成表变得很长,这不利于查找,所以我们使用水平分割,把它变成多个表来存放,在web服务中的查找数据前,使用哈希函数来定位需要查找的数据在那个表中,提高查找速度。
表中的一些列是经常要查找的,比如用户表中的用户名、密码、用户id列,但省份、年龄不是经常查找的,使用垂直分割,把经常查找的在一个表中,不经常查找的内容放置在别外一个表中,提高效率。
除了数据中心外,我们的平台还要通过web服务器对外提供服务,为了能提供高性能和可靠的服务,我们对web服务器进行了多环加星式的服务器集群,环的集群有利于流水线的计算,而星型的集群则方便分布式的计算。此集群方式的如图6所示:
图6 多环加星结合特定服务的集群
2 靠性分析和性能分析
2.1可靠性分析
本文中的云平台的设计采用最多的是环型网络与星型网结合的方式,这样保证平台不会只因某处的网络故障而停止服务。对硬件设备采用冗余方式,并且使用磁盘陈列的存储方式,因此,单个设备的故障也不会造成停止服务;其次,我们充分考虑负载均衡,尽量让设备及网络不处于负荷过重,以免造成死机。下面以一故障示意图来显示它的特点,如图7所示:
图7 故障示意图
现在我们来计算一下本平台因故障而完全停止服务的概率,现设每条线路出故障的概率为px,设备出故障的概率为ps,那么对于所有web服务器集群都不能提供服务的概率(pw)是(以本论文中的图2的设备数量为例):
pw=(px2+ps4)4
因为环结构一般出现2处故障,网络才失去通讯能力所以有px2,而web服务器集群中有4个服务器,最差的情况就是所有服务器都故障,这个集群就不能提供服务,所以有ps4,最后,服务器集群有4个,所以有(px2+ps4)4。
数据中心不能提供服务的概率(pd)是:
pd= px16+ ps4(与上面的思想类似)
因为提供服务的部分是在环形结构中,所以本平台完全不能提供服务的概率(P)是:
P=pw+pd=(px2+ps4)4+ px16+ ps4
在现实中,一条正常的线路,工作20小时,出现一次故障,而这故障通过发现、检测、修复的时间一般为1小时,所以我们的px大概可以估值为1/20。同样的估值方式ps大概为1/20,从而得出P约为: 0.0000062500即约为1/160000,即18年中可能有1小时故障使得整个平台不能提供服务。3.2性能分析
本平台的性能主要取决于web 服务器集群,它可以为上面运行的服务提供多种计算形式:流水线计算、分布式计算、流水线与分布式混合式计算。
如果服务可以分成多个子任务来逐步计算,并且这种服务需要持续地对外提供,那么我们可以用流水线完成,这里我们设n为任务数,每个任务分成k个子任务, △ti为第i个子任务所需的时间, TK1是流水线完成n个任务所需的时间:
TK1= ∑△ti+ ( n-1)max(△t1,△t2,…,△tk)
如果不用流水线,用非本平台的单机来完成任务,那么完成任务的时间(TK2)为:
TK2= (∑△ti)+(n-1) (∑△ti)
假设现有100个任务,每个任务分成10个子任务,每个子任务完成的时间为1秒,那么TK1为199秒,而TK2 为1000秒,相差4倍,并且随着任务数的增加,这个倍数也随着增加。
如果服务可以分成多个子任务来并行计算,那么我们可以用分布式来完成,分布式计算的性能分析如下:
(分布式)TK1=( n)max(△t1,△t2,…,△tk)
(一般)TK2= (∑△ti)+(n-1) (∑△ti)
如果假设的情况与流水线的例子一样,那么TK1为100秒,而TK2为1000秒,相差9倍,并且随着任务数的增加,这个倍数也随着增加。性能分析如图8所示:
图8 性能分析对比图
从图8中可以看出单机计算与流水线和分布式计算的差别。
3 总结
本文提出的环形加星型网络结构的云平台设计,计算资源的组织方式比较灵活多变,通过负载均衡、数据库多处备份、数据表的垂直分割与水平分割方案,保证云平台的性能的同时,兼顾系统的安全性与可靠性。通过对系统的安全性与可靠性分析,也证明系统兼顾上述两个要求。
在接下来的工作里面,将从服务器检索的层面进一步提高系统性能,使用更高效的数据结构来构建服务器节点索引,辅助检索过程,提高效率。
参考文献
[1] 黎宏剑,刘恒,黄广文,等. 基于Hadoop的海量电信数据云计算平台研究[J].电信科学, 2012,8: 80-85.
[2] 黄河,刘旭东,孙海龙.云计算环境下服务中间件动态管理框架的设计与实现[J].计算机工程与科学,2013-01,30-35.
[3] 罗军舟,金嘉晖,宋爱波,等.云计算:体系架构与关键技术[C].《通信学报》学术论坛暨2011云计算学术会议论文集.2011:3-21.
[4] 丁泽柳,郭得科,申建伟,等. 面向云计算的数据中心网络拓扑研究[J].国防科技大学学报,2011,33(6):1-6.
[5] 刘正伟,文中领,张海涛等.云计算和云数据管理技术[J].计算机研究与发展,2012,49(z1):26-31.
[6] ZHANG Liangjie,ZHOU Qun.CCOA:cloud computing open architecture[C]//Proc of IEEE International Conference on Web Services.Washington DC:IEEE Computer Society,2009;607-616.
收稿日期:(2015.01.09)
作者简介:杨帆(1990-),男,复旦大学,计算机科学与技术学院,上海市数据科学重点实验室,硕士研究生,研究方向:云计算,人机交互,虚拟现实,上海,201203
文章编号:1007-757X(2015)12-0035-03
中图分类号:TP302
文献标志码:A