目前,云服务已经在市场上蔓延开来,相关的云存储和云计算技术也成为时下讨论的热门话题.在云存储中,为了保证高可靠性、高性能,多副本管理是其中的一项关键技术.而多副本管理作为传统分布式存储系统中的关键技术则是已经探讨很久的技术,对于其创建方法、放置技术、选择、删除策略及一致性管理等方面的研究也已经日趋成熟.而目前在云环境下的多副本管理研究较少.针对云环境中所涉及到的多副本管理问题进行全方面剖析,详细地分析了在云环境下各种副本管理技术方案的优势与缺点.最后给出了未来云环境下多副本管理研究的展望.
现在社会上云的概念被铺天盖地地议论着,究竟什么是云.可以说它是一种现代计算机技术发展的产物,但与其他技术有所区别的是它以网络为基础和依托的.所有在云端的服务都是客户端远程发送请求,由网络另一端的云朵进行操作,在通过网络传回给客户.公司企业可以通过租用云服务的方式,使用提供商的硬件设备软件资源等来进行大规模的数据存储和运算.因此云可以是广域网或者某个局域网内硬件、软件、网络等一系列资源统一在一起的一个综合称呼.云服务的概念包含基础设施服务(IaaS)、平台服务(PaaS)、软件服务(SaaS)以及web2.0和其他最新技术.云的应用主要分为云计算和云存储.云计算瞳3是分布式处理、并行处理和网格计算的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经计算分析之后将处理结果回传给用户.通过云计算技术,网络服务提供者可以在数秒之内处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大的网络服务.而且云端利用虚拟化技术等有效利用小型机服务器资源,不仅降低企业客户端用户机器运算能耗,也可提高企业本身资源的利用率.
云存储是在云计算概念上延伸和发展出来的一个新的概念.云计算时代可以抛弃U盘等移动设备,比如利用Google云存储技术要新建一个文档,只需要进入Google Docs页面,新建文档,编辑内容,保存起来,然后,直接将文档的URL分享给其他人,他们可以直接打开浏览器访问URL.此时我们再也不用担心因PC硬盘的损坏而发生资料丢失事件,云存储的系统已经为我们进行了容灾备份,只需要我们有网络可以访问就可以进行如在自己电脑上一样的用户体验.
随着电子设备广泛应用,互联网技术快速发展,市场商业运营模式扩大,企业的数据量正在急剧膨胀.海量数据的出现使企业不得不思考海量数据的存储和计算等.为了解决这种海量数据处理问题,包括海量数据存储容量、计算速度、传送带宽及处理成本等等,根据用户需求,Amazon等公司提供了云端服务系统.
多副本的产生主要是为了保障不发生由于硬件故障而引起的数据丢失.而现在,面对复杂的网络环境下的多副本,不仅仅是为了保证数据不丢失,还包括对数据读写的访问速度,数据容灾性及可靠性等方面的考虑.多副本技术的产生也引起对一系列针对多副本管理策略的讨论,何时何地创建副本,怎样选择最佳副本并快速定位进行访问,哪些副本可以被删除废弃和如何保证副本之问的一致性等技术问题都在考虑范围.在传统的分布式系统中已经有很多成熟的多副本管理技术来应对上述问题.
1、多副本管理
本节将从多副本传统的创建技术、多副本选择技术、多副本定位技术、多副本删除技术及多副本一致性保障技术这5个方面简述现有技术,并将现有的P2P环境和网格环境下的多副本管理方法与云环境下的多副本管理方法比较进行简要阐述.
1.1多副本创建技术
副本创建技术分为静态的副本创建和动态副本创建,对于现在讨论及应用的最多的动态副本创建的策略.而且无论何种的文件系统,策略代价评估规则都必须考虑到运行系统负载、存储终端效率、网络状况和数据副本尺寸大小等物理特性因素,并结合用户访问特征,最终确定此时是否适合副本的创建并按照放置策略选择最佳的放置位置.本文也主要讨论如何动态的确定创建副本的最佳时机、创建副本数量和副本的放置策略.目前,针对不同网络拓扑已有的副本创建策略,如表1中所列各种创建策略,其优缺点进行了对比.
1)无副本策略:又称之为缓存策略,就是不产生任何副本.将所有的数据都储存在系统中的某个节点上,该节点可看作是该网格系统层次结构的根节点.在一定的访问模式下,测出各种副本策略相应的响应时间和带宽消耗,以无副本策略的参数值作为参照,比较其他策略的优劣.若其他策略产生的参数值都比该策略的参数值差,则不予考虑.
2)最佳客户策略:该策略主要基于对历史访问记录的统计,在每个网格节点详细记录每个文件访问历史词组,这个记录列表详细描述节点对文件的请求次数和请求该文件的节点编号.在该策略中,某节点在给定的时间间隔内检查其上是否有文件的访问次数超过事先给出的阈值,并找出访问次数超过这个阈值的节点,然后标识该节点为该文件的最佳客户,并在该节点上拷贝一个副本.生成副本之后,清除该文件在所有节点上的访问记录,然后重复上述过程,产生下一个周期的最佳客户,这必然会在一定程度上提高数据的访问效率和减少带宽的消耗.这种复制策略的副本创建请求由服务端发出,在一定时候不能及时地反映客户端的需求,可能会造成客户端存储资源的浪费或者存储资源的不足两种极端. (图片) 3)瀑布式策略:主要针对具有层次结构的分级存储系统,利用三级瀑布思想,系统中根节点的访问次数超过了一定的限额,就在下一层中寻找最佳节点创建该文件的副本,当下一层中对这个文件副本的访问次数又超过限额,最终在客户端创建了该文件的副本.这种复制策略能够比较合理地将数据分布在层次网格结构的各层节点中,最终实现系统负载的均衡性.应用到其他的类型的网格拓扑结构就有比较大的局限性.
4)普通缓存策略:当有文件读写请求时,该用户节点就在本地拷贝一个副本.但是针对于容量很大的大文件请求,就需要客户节点有足够的存储空间,并且缓存数据的更新速度应该很快.这样就对客户节点的存储空间提出了很高的要求,它是以牺牲客户节点的存储开销以求系统的高效运作.
5)缓存瀑布式策略:这是综合瀑布式策略和普通缓存策略的优点的一种策略,副本文件仍然在客户节点本地生成,Master将周期性地标识出热点文件,即请求次数超过阈值的文件,并按照级喷泉策略在最佳客户路径上生成各级节点副本.这样可以发现,用户通常就是网格中的叶子节点.网格中的任一节点均可以充当Master.特殊的情况下,用户节点可以充当它的相邻节点的服务器.该策略合理地在各个网格节点中分布数据的同时,实现了客户端的快速访问,以开销大量的存储资源为代价.因此,采用该策略时应该权衡访问的速度和存储资源的开销.
6)快速扩展策略:该策略将在从根节点到客户节点路径上的所有节点上拷贝副本.就是说当一个客户需要某个文件时,根节点服务器会将该文件的副本存储在到达客户节点所走过路径上的每一个节点上,从而达到数据快速扩展的效果.该存储网格数据管理种策略在能够加快访问速度和减少带宽消耗的同时存储资源,对存储资源提出了更为苛刻的要求,在数据网格中每一个节点都应该有足够在数据访问速度和存储资源富余的情况下可以采用该种策略.
7)基于市场应用的副本创建策略:应不同的需求产生不同的策略,扬长避短.如基于蚂蚁算法的文件创建.在考虑络带宽和磁盘读写速度等物理因素和存储代价和传输通信代价的同时,如何确定最优的副本创建路径.这里的最优策略可以是时间代价最优,花费代价最优和性价比指数最优.在对等网络中,副本放置算法就是一个完全意义的NP.再如基于经济学模型的复制策略,按照反向拍卖协议确定副本创建位置及进行副本选择,它将数据传输时间作为拍卖的价格指标.该模型在评估数据复制价值时存在这样的问题:节点往往根据自身利益进行决策,因而不一定得到全局最佳效益.
1.2多副本定位技术
多副本定位技术要求Master通过用户递交的特定信息,如数据对象的名字、ID或关键字等,能够快速准确地在整个广域分布的系统内高效找到并返回数据对象的物理位置信息.不同网络拓扑结构也有不同的副本定位技术.
现在已经存在十分成熟的两种定位策略集中式资源定位和分布式资源定位.集中式资源定位是指系统利用一个唯一确定的目录结构作为索引服务器,目录中包含当前系统中所有共享资源的元数据信息,需要定位时只需到索引服务器进行查询.这种定位方法理解容易、实现简单、使用方便,但是其扩展性和可靠性较差,不适合大型系统,特别是大型的网格环境.而分布式资源定位在系统中建立分布式的索引服务器,而非集中式管理数据信息,其定位方法也可分为多种,如基于分布哈希表的资源定位方法,通过对节点间拓扑关系以及资源位置的精确控制,可以保证系统中的资源一定能够通过某种特定的查找方法被找到,并具有较高的查询效率,其典型的应用系统包括OceanStore,CFS和Pastry等.基于无结构的资源定位方法[73的查询多采用广播查询、随机转发和有选择性转发等查找算法.该定位方法无需花费很大的代价维护分布哈希表,但是其查询效率较低,且并不保证系统中的资源一定能够被找到,采用无结构资源定位的典型系统包括Gnutella,Freenet和Free Haven等.
在数据网格环境下,讨论最多的便是Globus提出的目录副本服务的副本定位技术和基于这种技术提出的各种改进算法,如Globus和欧洲数据网格项目联合提出的Giggle架构.Globus的副本定位采用类似于P2P中的集中式目录结构管理,实现简单,但扩展性、可靠性不强.另外,欧洲数据网格项目组也曾提出的层次式副本定位策略,该策略中所有逻辑文件都在副本目录的根节点中出现,因此根节点将非常庞大,可扩展性、可靠性和查询性能都比较差.后来Globus和欧洲数据网格项目联合提出的Giggle架构采用了一个通用的层次式副本目录结构,在具体应用时需要结合应用的具体特征设置参数的取值.通过改变参数的取值可以改变副本目录的结构和性能,这项技术得到了广泛应用.
可见分布式的副本定位方法SRB(Storage resource broker)、Globus这些著名的数据网格管理技术由于它们的副本定位都是采用集中式的目录,限制了系统的可扩展性和可靠性.而很多研究者也在这些的基础上提出了可扩展的分布式副本定位方法凹].力求将副本定位信息平均地分布在多个索引节点上,简单易实现且具备动态迁移和可扩展的特性.
1.3多副本选择技术
副本选择策略负责根据用户的要求选择最佳副本,不同应用所对应的副本选择标准不尽不同,可以是副本的响应时间、副本的可靠性以及访问代价等.由于实际应用中网格环境的动态复杂性,加之副本较多的情况下,影响副本选择的因素较多,往往是综合多种因素进行预测寻找最优解.
1)基于性能模型的预测:系统对性能要求十分高时,要通过为数据网格系统建立性能模型来对系统中副本的响应时间进行预测.实现预测的关键在于建立网格系统的性能模型并获取模型所需的物理参数.但它的缺点是需要访问大量底层物理设备的详细信息.
2)基于访问历史信息的预测:Master或者Slaves中保存副本访问的详细历史信息,以此来预测副本的响应时间.基于访问历史信息的性能预测的实现包括两个关键问题:性能度量信息的获取和基于度量信息的性能预测.在实际应用中,需要在度量信息量和预测的精度之间进行有效折中.
1.4多副本删除技术
由于副本数目可能由于访问量的减少而变得相对较多,或者副本过多引起网络访问不够通畅等原因,提出副本删除策略可以保证存储空间的优化,实现网络性能的提高.无论是通过用户通知的删除或者系统根据副本访问量的动态删除,都要在保证数据安全一致的情况下执行,这样可以提高存储资源的利用率.对于多副本的删除也有以下几种策略.
1)延迟删除:当删除一条被引用的数据时,可以利用该技术实现.原始数据被删除后,并不急于删除引用它所生成的副本文件,而是当再有数据要访问所引用文件时,再进行删除.但一旦副本数较多,或者有些资源不再被访问,此方法会造成存储资源的严重浪费.
2)线下删除:当数据涉及关联的入口数据较多,一旦执行起来会产生很大的系统消耗,就可以采用线下删除的方法,选择在系统负载比较低的时候触发任务.
3)不删除:如果对副本生命期限进行设定,在有效期内,我们并不消耗额外的系统资源去删除它们.但是随其使用频率或者动态策略的调整,可以对其有效期时限进行重新设定.
1.5多副本一致性技术
数据建立副本或者在多用户同时读写数据时,往往会造成副本状态不一致的问题.而为保证副本一致性的CAP性能,我们要求副本具有物理上的一致,即表示同一个事实的数据应相同,也称数据的相容性和逻辑上的一致,即不同数据之间业务逻辑的一致性.但无论哪种一致,我们都通过数据强一致性和数据弱一致性两类来研究数据一致性维护技术.
数据强一致性数据副本之间保持实时的一致性,通过事务控制和同步复制执行保持各副本在任何时刻数据的绝对一致.强一致性确保并发的修改操作不会发生冲突,但是过多的副本数量会造成副本管理瓶颈,因为过多的副本数一般是基于过多用户的访问,当过多用户并发请求读写数据时,系统的可用性、连通性就将受到限制.而且强一致性对硬件的要求非常高,大量节点同步几乎是不可能的.另外,对分布系统的稳定性和连通性要求也比较高,一旦某个副本不可用则可能导致整个系统的瘫痪.数据弱一致性又被称作最终一致性,只要在到达一定条件下保证了各副本数据一致即可.可通过现有的异步复制和数据复制两种基本复制技术来实现副本进行一致性校验.与强一致性相比,弱一致性提高了系统包容通信失效和节点失效的能力.弱一致性是对复制算法的最低要求,如果满足不了最终一致,副本内容可能总是保持在“被破坏”的状态,从而导致放弃该副本甚至整个系统不可用;其次,弱一致性提供的最终一致性服务总是尽最大努力在副本之间快速地传播更新,实际上对许多应用来讲这已经足够了.Amazon云系统S3所使用的就是这种数据弱一致性技术.针对海量数据一致性,有人提出了更新一致性维护策略,用户更新所访问的数据对象,并提交到系统中;系统根据设计的一致性维护方法在多个副本间进行更新传播;副本按照不同的顺序接收更新,然后根据一定的规则应用更新,最终达到一致状态.
2、云环境下的多副本管理技术探讨
多副本是通过利用物理存储资源对数据进行备份.云环境下的多副本管理主要是依托于现在新型的云存储技术,云存储又是依托于云计算而发展出来的.云存储是将互联网上不同结构不同类型的存储设备通过应用软件集合起来,利用集群应用、网格技术或分布式文件系统等功能,提供对外数据存储和业务访问等服务.云存储可以是指云计算的存储部分,即虚拟化的、易于扩展的存储资源池.云存储也意味着存储可以作为一种服务,通过网络提供给用户.换句话说,云存储并非传统意义上的硬件设备,而是一种基于硬件存储资源、网络设备、应用软件和接人口等一系列的复杂网络服务系统.
目前要在云环境下考虑多副本管理技术就要综合云平台特性及客户需求,有不同的策略,如表2中所述,云环境下要考虑一些额外影响因素.在云环境下存在多数据中心,这种复杂情况下的数据副本管理不仅要依赖于传统多副本管理方法,还要针对云环境下不同应用优化服务策略.优秀的副本管理策略直接影响用户体验.在海量数据云存储的环境下的多副本创建问题、选择策略、动态迁移技术和多副本一致性的方法讨论则成为重点方向.云环境下的副本选择则比较复杂,而且是其他副本管理的基础.它的选择预测直接影响到副本创建时的放置策略,动态迁移时迁移哪个副本,副本一致性检测时使用哪些副本进行校验.和传统选择技术一样要考虑地域分布、网络负载均衡等综合因素对访问性能的限制,还要对访问历史记录的分析决策.
云环境下的多副本创建主要考虑创建粒度和放置位置.对于使用云端服务的用户,其数据量必然是大量的,甚至海量数据.最初创建副本时,结合副本选择预测算法预测出热点位置,并创建合理的副本数量.这可以保证大量的数据在多个数据中心的数据之间畅通传输.(图片) 对于在云环境下的副本一致性的管理,文献提出了按照4个类别的应用程序的一致性,根据他们的阅读频率和更新频率,然后设计相应的一致性策略.应用程序在运行时自动选择最合适的战略,以实现一致性,可用性和高性能之间的动态平衡.评价结果表明,该机制在保证数据一致性的同时还降低了操作带来的负载消耗.文献则提出了一种基于树的一致性的方法,减小副本服务器对于引入云数据库的部分一致和完全一致的状态的依赖关系.保证从主服务器到所有副本服务器都在最可靠路径上.因此,事务失败的概率大大减少,这有助于提高不可靠的网络性能和使吞吐量均匀.
云环境下的动态迁移技术则更多的是结合虚拟化技术应用.动态迁移和多副本技术可以简单理解成计算机中的剪切与复制技术.如何选择合适的节点做数据的容灾备份或者热点迁移地址,并且在保证服务不中断的情况下迅速进行数据转移.尤其在云环境下,用户会产生不同的用户需求,比如实时动态迁移过程等,延迟删除与线下删除等技术的结合使用可以.而且在云环境下的副本数据是海量存储,分布式的文件系统将海量数据分割成较为小的数据,但需要处理的数据量依然很大.如果立即删除会给系统突发地带来相当大的负载,甚至可能会引起用户访问的响应率降低的任务.将删除任务分割成很多很小的任务,分批地提交给系统定时线下处理.Aaron等人提出一种弹性云平台下的动态迁移技术,有效进行非共享事务实时数据库迁移.文献提出的一种懒惰更新算法是分隔云的数据复制和数据访问的过程,从而提高数据访问的吞吐量和缩短响应时间.多副本技术在云环境下应用也更多讨论的是副本动态迁移问题,充分利用了上述提到过的几种技术策略,综合性较强.
3、云环境下的多副本管理技术展望
在云环境下未来的研究中,多副本管理仍将是讨论的重点,随着海量数据的出现,相信云存储及云端海量数据分析都将遇到挑战.笔者认为,在云环境下,多副本管理可以从以下几方面进行研究:
1)基于云平台的数据迁移问题.云环境下对于数据迁移工作的部署,必将是大量数据由传统的数据存储中转移到云存储中.另外,在云存储的海量数据中,如何备份容灾和进行海量数据转移也是很关键的问题.云平台下的数据库管理系统要具有可伸缩、容错和弹性,这样才能够保证副本之间可以在不宕机的情况下进行无缝迁移复制,并且使用户完全感觉不到.而这项技术是传统多副本定位、删除、一致性保证等技术融合,对于云存储这种海量数据的处理以及面对超级多的用户访问,策略的完善更是刻不容缓.而在云环境下,无论是云计算或是云存储都是基于虚拟化技术的实现,多副本存储与虚拟化存储的配合使用也是云平台下多副本管理的研究值得思考的问题.虚拟机宕机之后的多副本存放与硬盘存储设备的接管,都是迁移技术的难点所在.单是针对存储资源的动态迁移已经是现在技术的难点,更值得提出的是对于云环境下多副本的处理,动态迁移哪个副本文件,副本选择策略放置策略等技术在迁移过程中的应用,更将把这个云环境下的副本迁移技术难度推向一个新高度.
2)在云环境下,由于海量级的数据存在多个副本,对于像Google的GFS系统和Yahoo!的Hadoop这样的系统,还要将其庞大的数据分割存放,其副本的选择和放置策略则要经过精密计算.如何有效对碎片式的多副本数据进行整合调用将成为未来研究重点之一.海量数据的处理已经让技术人员煞费苦心,对于分布式文件管理系统开发人员,数据的分割策略也是技术难点,而对于应用分布式存储的云环境下的海量数据多副本管理这个课题,更将是难上加难.云环境下的多副本意味着海量数据的数量级更上一层楼,而数据分割分配策略也会因实际情况底层存储系统不同而不同.因此,云环境下的海量分片式多副本管理仍面临很多技术挑战.
3)在云环境下对多用户多应用的即时响应也是需要深度探讨的问题.要求副本粒度随着用户数的变化而动态调整,使副本数不至于太多而浪费存储空间,也不会太少而影响多用户访问速度.该删除副本时是用哪种删除策略才不会影响系统性能.
4)数据基于地理位置的感知也十分关键.随着数据量增大,存放数据的云朵规模也越来越大,越来越多的应用被部署在不同地理空间上.如何改进传统的放置和选择多副本策略使之适应于云环境的大规模数据调用,使副本合理分布在不同的地理空间,以节省数据在传输过程的消耗并保证数据副本数容灾性及可靠性必将是多副本在云存储平台的一个讨论热点.
5)当年伴随云计算的提出,很多质疑声音也出现了,那就是云安全的问题.对于云计算安全的处理一直是云技术发展的一个难点.用户将大量私密数据存在云端,而在云环境下数据的多副本策略,既要保证数据不被外界截获盗取,又要保证数据一致性无误保存,又将是云存储环境下的技术难点.副本数目越多,分布范围越广,其管理难度就会越大.,安全性也会越低.如何在云端对数据的多副本进行加密处理等措施是未来云端副本秘密安全性的重点.
4、结束语
云环境的应用已经越来越火热,围绕云存储和云计算的多副本高可靠性、高性能的技术正在被慢慢挖掘.而云环境下多副本管理如何继承传统分布式存储系统中的技术优点,如何对于传统的多副本创建方法、放置技术、选择删除策略及一致性管理等方面进行优化改进,针对不同应用,又如何运用不同的技术管理方法实现云环境下的多副本管理.目前在云环境下的多副本管理研究较少.本文全面分析了传统的多副本管理技术,并针对在云环境中所涉及到的多副本管理问题进行阐述,分析了不同的网络环境、不同文件系统要求及不同的应用需求、多副本管理采用的不同侧重的管理方法.
7/18/2012
|