APP下载

基于志愿计算的云平台的构建方法与架构研究

2010-09-13杨志和

上海电机学院学报 2010年4期
关键词:计算资源备份客户端

杨志和

(1.上海电机学院电子信息学院,上海200240;2.华东师范大学教育科学学院,上海200062)

基于志愿计算的云平台的构建方法与架构研究

杨志和1,2

(1.上海电机学院电子信息学院,上海200240;2.华东师范大学教育科学学院,上海200062)

提出了基于志愿计算模式的云计算平台的构想,在对比分析了传统的志愿计算平台和云计算平台架构的基础上,阐述了志愿计算的云平台的理论模型和实现框架,并提出了今后的研究内容与方向。

志愿计算;云计算;软件即服务;基础设施即服务;资源池

Abstract:This paper proposes a construction scheme of cloud computing infrastructure using a voluntary computing model.Based on comparison between traditional volunteer computing platforms and the cloud computing platform architecture,a theoretical model and an implementation framework based on voluntary computing model are proposed.Future research is outlined.

Key words:volunteer computing;cloud computing;software-as-a-service(SaaS);infrastructure as s service(IaaS);resource pool

据估计,一台个人计算机用来执行重要任务的资源消耗小于其处理能力的 5%,而大多数服务器只使用了其10%~15%的处理能力来满足用户的需要,剩下的个人计算机或服务器计算资源(CPU,RAM及硬盘等)仍然闲置而未被利用[1];另一方面,如今在医疗、金融、军事、科研等领域,计算密集型项目迫切地需要高性能低成本的计算资源的支持。构建这些高性能计算环境的方法基本上有2种:①传统的自我构建法,即直接购买所需的硬件和软件,以满足相关机构的计算需求。其优点是完全拥有对计算资源调度和管理的控制权,缺点是成本太高,无论是初期基础设施的购买,还是后期系统的日常运行和维护,都需要高昂的费用。②成立志愿计算项目,开发志愿计算平台,以汇聚、管理和使用大规模闲置的计算能力。这里的志愿者是指提供项目计算所需的计算资源的人或机构,他们通过 Internet自愿贡献出个人计算机或服务器的闲置计算资源,以此来组成一个可共享的、相对稳定的强大计算资源池[2]。

本文分析了现有的高性能计算平台的构建方法,提出了一种基于志愿计算模式的云计算平台构建模型及实现该模型的框架结构。基于志愿计算的云平台(Volunteer2Cloud Computing Infrastructure)可以实现每秒一百万万亿次浮点计算(ExaFLOPS)的目标,避免了集群系统和超级计算机将遭遇能耗和散热的瓶颈问题,该平台一旦建成,可以让更多的科研用户方便而廉价地使用云计算,使得科研界也可以享受这种为商业用户带来巨大益处的计算架构[3]。本文的研究旨在通过把互联网中大量节点的、空闲的、可用的CPU计算资源以志愿计算的方式集中并利用起来,形成大规模的安全的计算资源池,实现一个低碳绿色的公共计算平台。

1 Volunteer2Cloud Computing Infrastructure的构想

1999年开展的在家搜索地外文明(Search for ExtraTerrestrial Intelligence at Home,SETI@home)可以说是创造了一个划时代的先例,至今已有10多年的时间了。在这期间,Folding@home,United Devices,SaaS,Google Docs等一系列的计划和工程都在表明,网络已经开始在信息交流之外的另一个领域——信息处理,逐渐取代PC成为主导力量。

志愿计算和分布式计算研究如何把一个需要非常巨大计算能力才能解决的问题分成若干个小部分,然后把这些部分分配给许多计算机进行处理,最后将计算结果综合起来得到最终的结果。这种革命性的想法充分地整合了互联网上各个节点CPU的闲置能力,已经在各领域取得了不错的成绩,也必然使它的商业价值凸现出来。于是,网格服务出现了,但是由于网格服务的安全性、可用性、技术局限性、可操作性等原因,使它的使用范围受到限制。

随着分布式计算、并行计算和网格计算的发展,云计算开始形成并逐步完善。其基于虚拟化技术,将IT资源构筑成一个动态资源池,通过把计算任务进行分布式处理,将数据网络化,实现资源的最优分配和最大利用,并且革命性地使计算变成了一种商品,按照第三方的付费方式动态的供其使用[4]。

志愿计算的主要思想是:志愿者出于对项目的信任,自愿地贡献出自己闲置的计算资源来处理由项目服务器分发的任务,最后由项目服务器完成结果的回收和验证等工作。而本文提出的Volunteer2Cloud Computing Infrastructure的思想则更进一步:成员自愿地加入系统,并贡献自己闲置的计算资源,系统把互联网中所有成员闲置的计算资源进行有效地汇聚、管理和调度,根据客户的积分或付费方式,动态地供其使用,实现一种基于志愿计算模式的公共云计算平台。

2 Volunteer2Cloud Computing Infrastructure的设计

2.1 传统的志愿计算平台架构分析

伯克利开放式网络计算平台(Berkeley Open Infrastructure for Network Computingm,BOINC)是用于志愿计算和网格计算的开放的中间件系统。其最早是为了支持SETI@home项目而开发的,之后逐渐成为最为主流的分布式的志愿计算平台,为数学、物理、化学、生命科学、地球科学等学科类别的项目所使用。BOINC的开发目的是为了帮助研究人员更方便地获得分布在世界各地的志愿者的计算资源[5]。2008年IBM的军用超级计算机RoadRunner成为首台计算能力达到每秒一千万亿次浮点计算(PetaFLOPS)的通用超级计算机。但在这之前,已有多个志愿者计算项目达到了这一计算能力,如斯坦福大学的 Folding@Home和数个采用BOINC中间件系统的项目。

2.2 云计算平台架构分析

现有的云计算基本上都是基于服务器端的云计算,即计算任务完全是在服务器端完成,客户端只需能运行浏览器即可,针对标准的3层Web架构或Web 2.0应用,服务器端有专门的节点通过MapReduce算法,将一个大型的计算任务分解为若干个小任务,以并行方式运行在不同的服务器(一般是数千台)节点上。在这种结构中,服务器端的计算资源和存储资源都得到了充分利用,且进行了相对集中的部署和管理。但是这些计算资源仅仅是互联网中可用资源的冰山一角,有很多客户端拥有强大的计算资源,并经常处于闲置状态而得不到充分利用。

图1 基于志愿计算的云平台示意图Fig.1 Schematic diagram of cloud computing infrastructure based on volunteer computing

2.3 Volunteer2Cloud Computing Infrastructure

Volunteer2Cloud Computing Infrastructure是基于客户端的云计算,每个志愿者的机器作为一个云计算终端,他们的闲置计算资源被虚拟化成一个新的云服务器。由于能够参与志愿计算的终端数量非常庞大,而且所提供的计算资源可用性在一定范围内具有规律性和周期性,如果把这个庞大的可用资源看成是一个非线性的动力系统,其长周期内最小的稳定动力值就是云平台连续可用的动力均值,在实际应用中,可根据这个资源池的动态变化,分配适量的任务,以充分利用这些资源。

志愿计算终端经过管理、调度服务器的资源管理和虚拟化,形成一个虚拟云,基于MapReduce的应用程序可以被系统自动并行化后在云计算机群上调度和运行。系统平台负责处理数据分割、容错、调度、任务间通信以及错误处理等细节。来自大量客户的计算请求,经由负载均衡节点将大量的任务合理分流到 MapReduce Master上,由 MapReduce Master将计算任务分解为很多小的任务,以并行分布的方式在志愿计算节点上计算,经过分析和验证,再将结果反馈给客户,从而可以更好地利用互联网中庞大的闲置的计算资源。云计算服务提供商可以利用这个虚拟的云计算平台提供软件即服务(Software-as-a-Service,SaaS)或基础设施服务(Infrastructure as a Service,IaaS)。需要计算的客户需要付费,而注册的志愿者用户可以根据所提供的计算量来获取佣金或积分,积分可兑换一定量的某些服务。基于志愿计算的云平台架构图如图1所示。

3 Volunteer2 Cloud Computing Infrastructure的实现框架

基于志愿计算的云平台逻辑结构如图2所示。整个平台包括云计算客户端和云计算服务管理中心,客户端的分类有两种:①按客户端的配置情况可分为胖客户端和瘦客户端;②按是否参与志愿计算可分为志愿者和非志愿者。一般只有胖客户端才参与志愿计算,但并不是所有的胖客户端都会参与志愿计算;瘦客户端一般不参与志愿计算。应用层是应用程序本身与云计算基础设施之间的连接,客户端的应用层可仅保留浏览器,其他的基本上都可以使用云中软件服务,所以客户端的应用层用虚线标识。

Volunteer2Cloud云计算服务管理中心的实现框架主要包括管理子系统和资源子系统[4];从系统的纵向逻辑层面上,又可分为表现层、虚拟层和物理层。整个系统的核心组织框架图如图3所示[6]。

在图3中,表现层提供客户计算需要的工具、软件和管理服务,包括设置界面,获取客户请求数据传给虚拟层,计算任务分解,从虚拟层接收计算结果并输出等。虚拟层是一个基于物理层虚拟的云平台,由共享的中间件系统组成,这些中间件包括应用服务器和数据库服务器、过程管理服务器和监控服务器等。让众多用户基于多租户技术快速透明地使用各种虚拟的强大的资源。物理层的主要任务是采用虚拟化技术将分散的志愿计算节点虚拟成云计算虚拟服务器,并管理和监控这些资源。

3.1 管理子系统

管理子系统是云服务提供方给有计算需求的客户提供服务接口、工具和环境的集合,它主要分为客户前端模块、SaaS软件管理中心、资源引擎和策略管理等4个部分。

客户前端模块提供与客户的交互工具和接口,用户通过它们与“服务器”端庞大的计算中心、数据中心和软件租赁中心连接。

SaaS软件管理中心是为客户服务的软件租赁中心,客户可在此查找、订阅所需要的软件服务,同时进行计费和付费管理。这些SaaS应用程序一般由云服务提供方提供并部署,也可由第三方独立软件提供方提供,有云服务提供方部署并管理。

资源引擎主要是帮助客户使用资源,其具备5个特点:获取、共享、搜索、分类、定制。可快速地搜索并获取资源,通过集成服务器技术达到资源的获取,判断有效的连接和可用的资源,然后发布并共享,在过程中有效地控制使用方式,也可定制需要的相关服务和使用过程。

策略管理系统是一种配置(设置)任务执行单元的机制,包括规划、执行及其控制过程,其主要目的是以敏锐的网络环境侦测来发掘任务执行成败的原因,用更具弹性的策略来反映多变的网络环境。

3.2 资源子系统

资源子系统根据所提供的服务,在逻辑上可分为两个部分:计算云和存储云。通过管理子系统的支持,可以对外提供计算和存储服务。计算云根据从管理子系统传递过来的客户的请求来控制和管理志愿计算虚拟机。

计算云由虚拟机调度模块、虚拟机提供者、计算资源管理程序、计算资源监控模块等4个部分组成。其中,虚拟机调度模块主要运行一个负载均衡系统;计算资源监控模块主要负责监视志愿计算节点的可用资源动态变化,将实时的资源分布信息反馈给虚拟机调度模块,形成任务与机器的映射[7]。

存储云由存储资源管理模块、存储块提供者组成。存储资源管理模块主要是监视志愿存储节点的可用存储资源的动态变化,将实时的资源分布信息反馈给资源引擎模块,形成数据地址与机器存储块的映射。

4 Volunteer2Cloud Computing Infrastructure的关键机制与策略

4.1 开源架构策略

Volunteer2Cloud云平台的管理服务器可以基于开源软件的策略来实现:用Java搭建出一套Hadoop框架,用于实现MapReduce算法,能够把应用程序分割成许多很小的工作单元,每个单元可在任何志愿计算机上执行或重复执行。此外,Hadoop还提供一个分布式文件系统(HDFS)及分布式数据库(HBase),用来将数据存储或部署到各个计算节点上。Hadoop框架具有高容错性和对数据读写的高吞吐率,能自动处理失败节点。

4.2 容错机制

由于志愿计算的客户端是动态变化的,随时可能加入或退出资源池,而一般的云计算的资源池是很安全且稳定的,故针对本平台建立特殊的容错备份系统至关重要。该功能需要在各志愿计算机之间相互备份重要数据,它的设计包括备份策略和备份内容。备份策略采用完全备份、增量备份和实时备份共同作用的方式;备份内容包括数据库信息和文件。备份的数据库信息包括应用程序信息、志愿者信息、志愿机统计信息;备份的文件包括应用程序二进制代码、数据以及计算结果。当失效的服务器恢复后,检查数据库系统和文件系统是否被破坏,若被破坏,可从备份信息中恢复。

4.3 调度机制

一旦需要进行“云调度”,则必先征求志愿者的同意(如弹出对话框,以征求志愿者的意见)。这里的“云调度”涉及计算任务的调度及“云设备”的调度。调度系统包括分派和调度2个模块,分派模块负责从作业池中选择一批作业,封装成任务。当志愿计算机请求任务时,调度模块根据该志愿计算机的操作系统类型和硬件类型,选择合适的任务分配给它。基于计算任务时间限定机制,志愿计算机必须在指定时间内返回计算结果,一旦超时,服务器会重新调度该任务。这样避免了由于网络计算的不确定性带来的负面作用,保证计算任务最终能够完成。

5 待解决的问题

本文提出的Volunteer2Cloud Computing Infrastructure是一个由互联网中的普通志愿计算机组成的大型集群,具有一定的持续稳定的计算力,其实现框架具有一定的可操作性,具体实现有待今后进一步研究。今后的工作主要有:

(1)规划和启动基于志愿计算的 Volunteer2Cloud@home项目,基于 Volunteer2Cloud Computing Infrastructure模型以及已有的开源的系统开发、实现云管理平台及中间件,实现基于MapReduce的志愿计算环境,对数据进行分布式处理,将典型应用部署并上线运营,在实际环境中测试和使用。

(2)要解决真正实现Volunteer2Cloud平台的关键问题,即如何保证客户的计算任务可持续性、完整性及安全性。如:云中的志愿计算机突然下线或出现异常;云服务管理中心为避免出现不可预料的结果,该如何处理未完成的计算任务;如何保证用户数据的完整性、一致性和安全性等云计算平台走向实用阶段普遍需要面对和解决的问题。

[1]孙毓忠.基于虚拟化技术设计高端商用服务器面临的挑战[EB/OL].(2007-11-07)[2010-4-14].http:∥lib.ict.ac.cn/ITL/data/2007/2/基于虚拟化技术设计高端商用服务器面临的挑战.pdf.

[2]王 宇,王志坚,黄晓萍,等.基于可用性模型的志愿计算[J].计算机工程,2009,35(3):18-20.

[3]杨志和,梁 云.物流联盟企业的云计算公共技术平台的体系结构[J].上海电机学院学报,2009,12(3):212-215.

[4]中国分布式计算总站.伯克利开放式网络计算平台(BOINC)[EB/OL].[2010-4-04].http:∥www.equn.com/wiki/BOINC.

[5]杨志和,顾小清,祝智庭.CSCL支撑技术的新发展[J].中国电化教育,2009(12):110-115.

[6]Cunsolo V D,Distefano S,Puliafito A,et al.Cloud@Home:Bridging the gap between volu-nteer and cloud computing[C]∥Emerging Intell-igentComputing Technology and Applications.Springer Berlin/Heidelberg:Springer-Vorlag,2009:423-432.

[7]杨志和.云计算:教育信息化转型的助推器[J].中国教育信息化:高教职教,2010(3):9-12.

[8]唐 川.在“云”中做科研[J].科学研究动态监测快报:信息科技专辑,2008(21):1-2.

Construction and Structure of Cloud Computing Infrastructure Based on Volunteer Computing

YA N G Zhihe1,2
(1.School of Electronics and Information,Shanghai Dianji University,Shanghai 200240,China;2.School of Education Science,East China Normal University,Shanghai 200062,China)

TP 311.52;TP 393

A

2095-0020(2010)04-0223-05

2010-03-14

全国教育科学“十一五”规划教育部重点课题(DCA060101)

杨志和(1979-),男,讲师,博士生,专业方向为计算机网络与中间件,E-mail:yangzh@sdju.edu.cn

猜你喜欢

计算资源备份客户端
“备份”25年:邓清明圆梦
基于模糊规划理论的云计算资源调度研究
创建vSphere 备份任务
改进快速稀疏算法的云计算资源负载均衡
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Wi-Fi与Web的云计算资源调度算法研究
耦合分布式系统多任务动态调度算法
旧瓶装新酒天宫二号从备份变实验室