第1章 引言
1.1 课题研究背景
半个多世纪以来,计算机技术已经融入了我们社会生活中的各个方面,其中,爆炸式增长的信息已经积累到了可以引发技术变革的程度。这使我们的世界不仅充斥着比以往更多的信息,而且还造成全球每日所产生的数据量呈现出指数增长的趋势。这些大数据的来源主要包括:科学研究(天文学、生物学和基因学等)、仿真、互联网、物联网以及电子商务等领域。互联网上一天大约所产生的数据统计如下:在一天24小时之中,所产生的数据足以需要用1.68亿张DVD盘存储;大约每天都会有1.72亿人登录Facebook;2940多亿封邮件通过网络发送出去;4000万人登录 Twitter;200多万个社区帖子被发表;2200万人登录 LinkedIn;37.8万台手机被卖出,高于全球每天出生的婴儿总数量(37.1万人);2000万人登录Google+;还有1700万人登录Pinterest;另外,大约有2.5亿张图片上传到 Facebook 中,这些图片如果都被打印出来,相当于80座埃菲尔铁塔的高度;在YouTube中上传的视频的时长长达86.4万小时,假设不间断全部播放完,大约需要98年[1]。
在上述环境之下,“大数据”的概念便应运而生。通常情况下,1000TB级以上的数据我们称它为大数据,处理这样的数据,大约需要400~500台一般配置的机器共同工作才能完成。图1-1是2011—2016年中国大数据应用市场规模与增长情况,从中我们可以看出,在2014年市场规模已经达到19.9亿元,同比增长148.8%,到2016年达到了百亿规模[2]。图1-2所示的是2010—2018年全球云服务市场规模分析及预测,从图中我们可以看到,云计算的服务市场规模正在逐年增加,2014年的增长率是17.9%,云市场规模达到1499亿美元[3]。
当前,大数据早已成为一种普遍的社会现象,虽然数据的大容量确实给我们的数据采集、存储、维护以及共享带来了极大的挑战,但数据的大容量却代表着我们可以处理、分析并可利用的数据在大量增加。如果可以有效地、合理地对这些数据进行处理、整合和分析,那么,我们就可以发现新知识并创造新价值,这些可以为人类的发展起到积极的作用,并使人类逐步走向创新型社会化的新信息时代。目前,传统的数据库系统处理能力已经远远不能满足大数据的处理需求,然而,规模问题仅仅是大数据问题的一个方面,大数据的另外两个基本特性也是不能小觑的,它们分别是数据产生的速度和多样性。这给我们的数据管理、分析处理以及网络带宽等方面都带来了前所未有的挑战,并已经成为整个领域所关注并研究的热点问题[4]。
图1-1 2011—2016年中国大数据应用市场规模与增长情况
图1-2 2010—2018年全球云服务市场规模分析及预测
云计算是分布式计算、网格计算和并行计算的发展,并在此基础上提出的一个新概念。云计算绝不仅仅是一个计算的问题,它需要融合诸多学科与技术。它面对的是超大规模的分布式环境,其核心是提供大数据的存储和高效率的计算能力,由此衍生出来的商业应用。大数据技术离不开云计算的发展,它们之间的关系是密不可分的,换言之,大数据技术是云计算技术的延伸。其中,数据的海量存储和处理技术都属于大数据技术,如:应用知识库、自然语言理解和模式识别等[5]。
目前,大数据处理工具 Hadoop[1]已经被很多运营商所使用,其目的除了对用户数据进行管理和分析,更重要的意义是通过对这些数据的分析,能在今后的日常运营、客户维护以及市场战略的制订方面可以有一定的科学依据和判断条件,而不再是盲目的决策和执行。我们可以看到,未来企业成功与否的关键因素是谁能准确地抓住并把握好大数据的机遇,谁就是未来的王者。美国总统委员会的科学技术顾问Stephen Brobst就曾经说过:根据我们目前所产生的数据量,可以肯定地说大数据时代已经到来。
在对大数据进行存储和分析处理的时候,我们通常都是在云平台中进行的,换言之,利用云计算对大数据进行管理和分析是目前一个很好的研究方向,它的突出优势表现在以下几点。
1.高可靠的存储和维护能力
随着大数据数量级的不断提高,利用传统的文件系统或数据库来存储它们基本变成了幻想,但是云计算的分布式存储模式却可以胜任这项任务。云计算通过把大量的普通计算机整合起来,形成拥有巨大存储能力和计算能力的资源池,说明它有能力为企业用户提供大容量的存储服务和计算服务。同时,云计算本身的特性也给大数据的维护提供了强有力的保障,如:并发控制、数据备份、一致性维护以及可靠性等控制策略等。
2.超强的分布式并行处理能力
云计算分布式并行处理的基本思想是将一个大任务划分成若干个小任务,之后分布到不同的云节点中进行并行处理,即分布式并行处理。在对待大数据的问题上,我们根据现有的资源,同样可以采用相同的解决思路,并结合相应的任务调度优化方案,可以显著提高云计算对大数据的处理能力。
3.良好的可伸缩性和灵活性
众所周知,云计算的一个显著特点就是良好的可伸缩性和灵活性,即根据处理任务的大小,可以方便地对云平台的规模进行扩大和缩小。在处理数据量弹性变化的大数据问题的时候,云平台的这个特点是非常适合的。通常情况下,云平台都是由廉价机构成的,因此,在扩大云平台的存储和计算能力的同时,不需要投入太多资金。
本课题以国家自然科学基金“动态网络环境下的服务组合、重建与优化的研究”(No.61070182)、“面向下一代互联网的网络服务建模基础理论研究”(No.61170209)、“可编程网络环境下多粒度服务与服务组合的机制研究”(No.61272508)、“互联云环境中基于效用模型的跨云协同服务优化研究”(No.61370132)为依托,在云计算环境下,重点针对数据管理、任务调度以及容错机制三个方面进行了研究,从而对大数据的处理策略起到了指导作用。
1.2 课题研究意义
云计算[6-8]是计算机技术和网络技术发展到一定程度的必然趋势和结果,而云计算技术的迅猛发展,和大数据处理紧密相关,如果没有云计算技术,大数据的处理可谓纸上谈兵。目前,各类企业、机构的数据量都在飞速增长,每天流动在其系统中的数据都是庞大的。随着数据量的猛增,实时处理这些数据的能力和策略已经成为当前大数据的重要挑战之一。在未来一段时间里,伴随着云计算应用部署的加快,大数据给我们带来的挑战将会更加严峻[9-13]。
本课题将通过对云计算技术及数据应用需求的分析与研究,考虑如何利用云计算平台,对数据进行有效的管理与处理,并重点针对数据处理所面临的几个关键问题展开研究,包括:数据的副本管理策略研究、任务调度的优化策略研究,以及云计算的容错机制研究等。旨在提高数据的存储和管理技术、提高云计算的可靠性和容错能力,以及提高系统的服务性能等。本书的研究课题得到了国家自然科学基金的支持,既具有重要的学术研究价值,又具有广阔的市场应用前景。
1.3 研究内容与成果
用户可以通过互联网,以便利的、按需付费的方式向云服务提供商租赁自己所需的服务,例如:存储空间、计算能力和信息服务等。而服务提供方则需要根据用户的请求,从云计算中心为用户配置相应的资源,以满足用户的服务需求。对于服务提供方来说,当为用户配置所需资源的时候,需要重点考虑的问题是:在保证用户服务需求的前提下,尽量降低自己的服务成本问题,即如何以较低的服务成本来满足用户的服务请求的问题。而对于用户来说,按需付费之后最关注的问题就是服务质量。
基于以上分析,在本书中,我们的主要研究内容分为三个方面,如图1-3所示。首先,当用户向服务提供方租赁存储空间时,我们考虑了服务成本和服务质量之间的关系,对云计算环境下的服务成本优化存储策略进行了研究。其次,当用户向服务提供方租赁计算能力时,我们综合考虑了节点性能、网络环境以及待计算任务的计算复杂度等因素,提出了节点性能的综合度量方法,并在多指标影响下对如何提高系统的服务质量、降低服务成本进行了任务调度优化策略的研究。最后,从系统的容错机制方面考虑,当出现节点失效的时候,我们对快速、有效地进行数据恢复算法进行了研究,并且综合考虑了系统的负载情况、服务成本以及服务质量等因素,对资源恢复后的再部署优化策略进行了研究。
图1-3 本书的研究内容
1.云计算环境下成本优化存储策略
针对实时爆炸式增长的大数据,为了满足不同用户的需求,提高数据的存取效率,通常采用对大数据进行分块式、冗余备份,并采用分布式存储的方法解决。关于副本数量和副本部署等问题一直是该领域研究的重点。在文件副本的部署问题上,大部分工作都考虑了节点自身的性能和当前的网络状况对系统服务质量的影响,但是却忽略了文件热度本身对服务质量也有一定的影响。为了解决这些问题,并满足不同用户对服务的请求,且提高整个系统的服务质量,我们从用户角度出发,分析了用户对不同数据的兴趣程度,提出了针对不同热度的数据块,确定相应副本数量的方法,并提出了与数据块热度相关的成本矩阵调整因子的概念,利用它对成本矩阵调整之后,我们实现了在不改变数据块的最小存储服务成本的前提下,有效地提高了整个系统的服务性能。同时,我们考虑了整个云平台的负载情况,提出了满足用户服务请求的最低服务成本存储MCSB策略。在进一步的研究工作中,我们考虑到数据存储节点可以由服务器集群承担的事实,对基于不同负载下的数据存储策略进行了进一步的探讨研究,在分析现有机制对性能影响的基础上,提出了一种自适应的数据节点内的存储数据块的最小服务成本AMCSB策略。最后,对我们提出的策略进行了实验分析,并与具有代表性的策略进行实验比对。实验结果表明,我们的策略能够在降低服务成本的同时,有利于系统的负载均衡,并提高该系统的服务性能。
2.云计算环境下服务质量优化的任务调度策略
在云计算系统中,有效的任务调度策略是保证用户服务质量和服务成本的关键。在本书中,我们重点针对降低系统的服务成本、提高系统的服务性能以及优化任务调度策略等问题进行了深入研究。结合实际情况,综合考虑了节点的服务成本、节点的实时负载率、带宽利用率、网络延迟和待计算任务的计算复杂度等影响因素,提出了节点的综合效用数学模型,并为节点进行量化。该模型可以综合衡量节点成本、节点性能和待计算任务的计算复杂度之间的关系。另外,考虑了系统的负载情况,本书还提出了基于服务质量优化的任务调度优化TSSQO策略,并给出了该系统的服务成本近似值及其相关证明。通过实验,我们对模型和策略进行了详细分析,并与具有代表性的策略进行实验对比,验证了我们的策略可以更合理地进行任务调度,使整个系统不仅可以达到服务质量较高,而且服务成本相对较低的效果。
3.云节点失效情况下的资源部署优化策略
我们从系统容错机制的角度出发,考虑了在云节点失效的情况之下,为了保证数据的存取效率,满足不同用户的服务请求,本书针对失效节点中的数据恢复问题提出了快速有效的解决方法,其中包括备份节点的衡量和选择方法等。同时,在不影响系统服务成本的前提下,我们给出成本矩阵调整因子,可以有效地提高整个系统的内容访问服务性能。另外,由于本书主要针对的是降低存储数据块的服务成本和提高用户的QoS请求的问题,因此,在考虑整个系统的负载情况时,主要考虑了云节点的实时可用磁盘空间情况和并发访问情况两个因素,针对恢复的数据提出了基于成本效益的数据部署CERD策略。最后,在实验中模拟了随机出现云节点失效的情况,并与具有代表性的策略进行实验对比,验证了我们的策略不仅可以保持整个系统的负载均衡、降低系统的服务成本,而且能提供较高的服务质量。
1.4 本书的组织结构
本书的组织结构及内容共分6个部分,如图1-4所示,分别是:
第1章,引言,针对本课题的研究背景和选题意义进行阐述,并对本书的研究问题和主要贡献做简要介绍。
第2章,背景知识和相关工作,主要对云计算、大数据以及Hadoop的相关知识和国内外发展现状进行了介绍,另外,重点针对云计算环境下的数据管理和任务调度中的几个关键技术进行了阐述,并进行问题分析,例如,数据管理、任务调度和容错机制等。
第3章,介绍了云计算环境下基于用户体验的成本优化存储策略的研究,分析了用户对数据的兴趣度,并针对不同的兴趣给出不同的副本个数,以满足不同用户的需求。重点考虑了在降低服务成本的同时,如何有利于系统的负载均衡和提高系统的服务性能等问题,并给出了相应的解决策略。
图1-4 本书的组织框架
第4章,介绍了云计算环境下的任务调度优化策略研究,重点考虑了影响系统服务质量的关键参数和任务的计算复杂度,针对节点提出了权衡这些关键参数的综合效用数学模型,并对任务调度问题提出了优化策略,该策略可以更合理地进行任务分配,使整个系统不仅可以达到服务质量较高,而且服务成本相对较低的效果。
第5章,介绍了云节点失效的情况下,针对丢失数据的重新恢复以及重新部署等问题进行了研究,同时不仅考虑了整个系统的负载均衡、服务成本,而且还有整个系统的服务性能等问题,并给出了相应的解决优化策略。
第6章,总结与展望,总结本书的主要工作和创新点,并指出了下一步的研究方向。