首页 > 技术 > CAE其它 > > 云环境下多副本管理综述

云环境下多副本管理综述

作者:Simwe    来源:万方数据    发布时间:2012-07-16    收藏】 【打印】  复制连接  【 】 我来说两句:(0逛逛论坛

  现在社会上云的概念被铺天盖地地议论着,究竟什么是云.可以说它是一种现代计算机技术发展的产物,但与其他技术有所区别的是它以网络为基础和依托的.所有在云端的服务都是客户端远程发送请求,由网络另一端的云朵进行操作,在通过网络传回给客户.公司企业可以通过租用云服务的方式,使用提供商的硬件设备软件资源等来进行大规模的数据存储和运算.因此云可以是广域网或者某个局域网内硬件、软件、网络等一系列资源统一在一起的一个综合称呼.云服务的概念包含基础设施服务(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所使用的就是这种数据弱一致性技术.针对海量数据一致性,有人提出了更新一致性维护策略,用户更新所访问的数据对象,并提交到系统中;系统根据设计的一致性维护方法在多个副本间进行更新传播;副本按照不同的顺序接收更新,然后根据一定的规则应用更新,最终达到一致状态.

 
分享到: 收藏