分布式存储系统中数据副本管理机制
来源:计算机技术与发展杂志 更新时间:2013-11-14
 
分布式存储系统需要完善的数据副本创建、部署、选择、定位和一致性管理机制以保证分布式计算环境中的数据安全、可用、可靠、可扩展性和服务的高效、连续性。文中全面分析与研究了国内外对分布式存储系统中的副本管理机制研究现状,重点对副本创建、副本定位、副本一致性维护和副本撤销机制进行深入的研究,并从数据可用性、节点负载均衡、数据一致性和带宽消耗等性能指标进行了分析。文中的研究成果对于分布式存储系统的合理设计与构建具有良好的参考价值。
    分布式存储系统需要完善的数据副本创建、部署、选择、定位和一致性管理机制以保证分布式计算环境中的数据安全、可用、可靠、可扩展性和服务的高效、连续性。文中全面分析与研究了国内外对分布式存储系统中的副本管理机制研究现状,重点对副本创建、副本定位、副本一致性维护和副本撤销机制进行深入的研究,并从数据可用性、节点负载均衡、数据一致性和带宽消耗等性能指标进行了分析。文中的研究成果对于分布式存储系统的合理设计与构建具有良好的参考价值。
    分布式存储系统(Distributed Storage Systems)是基于存储服务器集群(Cluster)和分布式文件系统,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,并通过各种相应的应用软件或应用接口,共同为用户提供高可用、高可靠的数据存储和业务访问功能的存储资源系统。为了保证数据安全、可用、可靠、可扩展性和服务的高效、连续性,分布式存储系统需要完善的数据多副本创建、部署、选择、定位和一致性管理机制。随着互联网中的用户对资源的需求量日益增多,如果仅有一份数据,则需要该数据的用户都须到同一个节点上读取它,网络容易出现拥塞,而处理能力有限的节点也会因为访问数量太大而宕机。然而,创建多份数据副本,并将它们合理分布在多个服务器节点上,分担处理访问请求的任务,可以有效降低节点失效率,减少用户响应时间。
    文中详细分析了目前国内外对分布式存储系统中的副本管理机制研究现状,重点对副本创建、副本定位、副本一致性维护和副本撤销机制进行深入的研究,并从数据可用性、节点负载均衡、数据一致性和带宽消耗等性能指标进行了系统的分析。
   1.副本创建
    某一节点上的数据被频繁访问使得该服务器节点负载过重时,或出于提高可靠性的考虑时,可将数据复制一份或多份副本并存储到其它节点上。
    1.1 副本数量的设置
  副本数量对分布式存储系统的可用性的影响很大,创建太少容易产生数据热点问题,延长访问时间,太多则会造成无谓的存储空间浪费。很多存储系统复制的默认数据副本数是3份,即在数据投入使用时复制3份它的副本,之后根据具体情况来创建和撤销副本。
  文献根据副本复制的数量可将副本复制方法分为3种:均匀复制,所有数据对象复制相同数量的副本;比例复制,复制数量与被访问频率成正比;方根复制,复制数量与被访问频率的方根成正比。方根复制在平均查询距离和副本利用率方面具有较理想的性能表现。文献经模拟实验得出当副本的生命周期较长和副本密度较高时更能体现方根复制方法的优势。虽然副本复制的数量一般被认为应该正比于原数据大小的平方根,而文献的研究结论表明,副本复制的数量应该反比于原数据大小的平方根。
  1.2 副本复制策略
  副本复制策略分为路径复制、源请求复制、邻居节点复制、随机复制和优先级复制五种:
  (1)路径复制。发送副本给请求路径上的所有节点。优点是实现原理简单,方便数据的查找;缺点是创建的副本数量供过于求,且增加了副本的一致性维护的开销。
  (2)源请求复制。只发送副本给请求节点。LAR(Lightweight Adaptive Replication,轻量级自适应的复制方法)算法是美国马里兰大学研究人员提出的经典源请求复制算法,其主要思想是:当访问请求到达目的节点时,若目标节点未过载,则能读取数据,若目标节点处理能力不够,将创建一份新副本,而且如果请求节点未过载,才把新创建副本发给该请求节点,并告知请求路径上所有节点该请求节点上也有该数据副本。优点是对于目的节点来说,减少了副本的复制数量;缺点是请求路径上有该副本且达到复制阈值的节点都存一份副本到请求节点上,易造成请求节点过载。
  (3)邻居节点复制。对网络数据都保存访问历史记录,节点将被频繁访问的副本新建一份发送给频繁请求的节点的邻节点,当请求节点再次访问该数据时,可以到其邻居节点直接读取数据了,从而减少了请求的跳数。该方法缺点在于历史记录预测会有一定概率的失误。
  (4)随机复制。随机选择一个或多个节点来存放副本,有随机选择的对象是请求路径上的节点和整个网络的节点两种策略,后者主要运用多哈希函数和关联哈希两种方法。多哈希函数的优点是可以动态调整副本的数目;副本被高度分散了,有益于负载均衡;缺点是管理多个哈希函数是个复杂的工作。关联哈希的优点是明显减少了访问时延;缺点是产生较大的副本数量和系统开销。
  (5)优先级复制。请求发生就向已经有副本的节点发送所需副本,直至饱和,再选择别的节点来存储副本。优点是减少了存放副本的节点数,减低了节点的维护开销;缺点是存放副本的节点易过载,容易出现新一轮的访问热点问题。
  通过比较这5种副本分布方法,可以发现路径复制和优先级复制方法不够灵活、效率相对较低,其它3种方法可以在大多数分布式网络环境下使用并能解决热点问题。
  1.3 典型副本分布方法
  文献提出了一种渐进优化的选举和分区合并算法来存储多个副本,以求得目标区域中的最佳存储节点。方法假设要存储n个副本,先将拓扑结构划分为多个区域,每个区域都有一个服务节点,即该区域内最适合放置副本的节点,然后根据选举法,选举过程中,考虑了客户的分布情况、访问频率、通信时延和节点的处理能力四个因素,每次淘汰一个区域,并有调整剩余区域的环节,经过多次的选举淘汰区域调整,最终将整个网格划分为n个区域,这n个区域的服务节点就是最佳存储节点。
  文献提出一种网格环境下的多副本后向预测调度的算法。方法与邻居节点复制策略有些相似,也是根据已收集的历史数据来预测合适的存储节点,不同的是在发生负载失衡情况之前将副本直接存储到选出的节点而不是它们的邻居节点。
  1.4 数据迁移方法
  网络系统的一个重点问题是如何实现负载均衡,通过新副本的添加或撤销能达到这一目的,另外一种常用的方法则是数据迁移。虚拟节点技术的核心思想就是数据迁移。数据虚拟节点是存储数据文件、路由定位的基本单元,一个物理节点可管理多个虚拟节点。若一个物理节点过载,则将其管理的部分虚拟节点转移给其它物理节点管理,数据将随之转移。
  虚拟节点技术有一对一、一对多和多对多这三种策略。虚拟节点策略的缺点在于实现复杂。由于复制技术本身已包含分布策略,且虚拟节点技术必须是在拥有足够数量的副本才能实现,所以虚拟节点技术更适合于与复制技术结合使用。
  2.副本定位
  节点访问数据性能表现的优劣很大程度上受到数据定位策略的影响,即如何快速定位出目标数据所在节点的位置,然后读取数据。
  传统的基于覆盖网(Overlay network)的副本定位算法虽然在不同程度上解决了副本定位效率、负载均衡和可扩展性等问题,但目标节点不能很好地满足特定应用的服务质量需求 。文献提出一种多维度服务质量约束的副本定位方法,通过采用分层和对等的混合定位机制,在高效定位的同时,还保证目标节点提供有效的服务质量。方法基于区域内分层、区域间对等的覆盖网拓扑结构,运用了区间路由算法、副本信息发布算法、站内副本算法、区内副本定位算法和区间副本定位算法等五个算法,使大量副本定位在本区域完成,从而有效降低了定位延迟,以满足特定应用的多维度服务质量规约作为副定位标准,有效地保障了目标节点的服务质量。
  文献提出了一种用于分布式系统多副本对象访问控制的分层结构分布式互斥实现方法,该方法利用了系统的自组织特性,对节点采取分层式管理方式,如图1 所示。
 130287157718276813_new.jpg (382×376)
图1 25个节点分布式系统全活跃分层聚类逻辑图
  第1层每行只有一个节点,采用动态令牌控制方式,每行的第一个节点都带领着此行的其它节点,以保证在出现节点间逻辑图不一致时互斥操作的顺利完成。
  第2层为每行的多个节点,采用基于允许的分布式互斥算法。要求各节点采用相同的聚类规则和代表节点产生规则,系统中每个节点都保持一个系统分层结构逻辑图,并随着系统运行而得到及时更新。对系统进行互斥访问,需要得到各子系统代表节点所组成第2层所有节点的同意。当一个进程需要对系统中的对象进行互斥访问时,该进程先读取本节点保存的系统分层逻辑结构图,并向保存在数组中的表头节点发送访问请求。
  3.数据一致性
  数据一致性是指复制源相同的多个副本之间数据一致,分为弱数据一致性和强数据一致性。数据各副本最终达到一致即可满足弱数据一致性,强数据一致性则要求数据各副本任何时候都要求致。由于多任务并行执行、网络延迟不可预测和修改对象的不确定性等原因,分布式系统中的数据一致性维护过程比较复杂。
  3.1 Paxos 算法
  Paxos 算法是由Leslie Lamport 提出的一种基于消息传递的数据一致性算法,用于解决分布式系统中的一致性问题,是目前为止公认最为有效的经典数据一致性算法。
  在Paxos 算法中,节点被分成了三种类型,Proposer、Acceptor 和Learner,且每个节点可以有多种角色。保证数据的一致性要满足以下三个条件:
  1、决议只有在被Proposer 提出后才能被批准;
  2、每次只批准一个决议;
  3、只有决议确定被批准后Learner 才能获取这个决议。
  为了达到这三个条件,需要满足下面几个约束条件:P1:每个Acceptor 只接受它得到的第一个决议;P2a:一旦某个决议v 得到通过,之后任何Acceptor 再批准的决议必须是v;P1 和P2a 有矛盾,主要体现在节点因失效参加不了决议,所以提出来第三个条件P2b;P2b:一旦某个决议v 得到通过,之后任何Proposer 再提出的决议必须是v;P2b 不易通过技术实现,所以提出蕴含P2b 的P2c;P2c:如果一个编号为k 的提案具有值v,那么存在一个“多数派”,它们中没有谁批准过编号小于k 的任何提案,或者它们进行的最近一次批准具有值v。
  在这些约束条件的基础上,将一个决议的通过分为两个阶段:
  1.准备阶段:
  a.Proposer 选择一个提案编号k 并将prepare 请求发送给Acceptor 中的一个多数派;
  b.Acceptor 收到prepare 消息后,如果提案的编号大于它已经回复的所有prepare 消息,则Acceptor 将自己上次的批准回复给Proposer,并承诺不再批准编号小于k 的提案。
  2.批准阶段:
  a.当一个Proposer 收到了多数Acceptor 对prepare的回复后,就进入批准阶段。它要向回复prepare请求的Acceptor 发送accept请求,包括编号k和根据P2c 决定的value(如果根据P2c没有决定value,那么它可以自由决定value);
  b.在不违背自己向其他Proposer 的承诺的前提下,Acceptor 收到accept 请求后即批准这个请求。为了减少决议发布过程中的消息量,Acceptor 将这个通过的决议发送给Learner 的一个子集,然后由该Learner 去通知所有其他的Learner,即所有副本都将执行一样的更新。
  3.2 协同计算系统的副本一致性维护
  协同计算环境由计算机网络技术、通讯技术、多媒体技术和群件技术共同构成,使不同地域、不同时间、不同文化背景的人们能够协调一致地为某项任务共同工作。
  文献指出基于无结构P2P 网络的文件共享系统中的数据一般是静态的,数据一致性维护的工作量较小;然而在基于无结构P2P 网络的新型协同计算系统中,数据具有较强的动态性,这种模式下的数据要求可被参与工作的人频繁更改,同时保持强数据一致性。最简便的方法是集中式方法:由一个或几个副本节点保存所有成员信息,当发生更新时,就由这些节点来向其它节点发送更新信息。集中式方法的优点在于发送更新快,但它的可扩展性差,易引起单点失效问题。基于Gossip 的组管理协议的容错能力和扩展性较好,但基于Gossip 协议的数据一致性维护方法不能保证副本数据的强一致性,还会出现大量冗余数据。如以树状结构组织节点,更新信息冗余较少且更新快,但容错能力不高。
  文献结合以上三种方法的优点,提出一种基于分割树的无结构P2P 网络数据一致性维护方法。该方法采用Chord作为副本组管理协议,对Chord环所代表的ID 空间不断分割,动态地建立更新消息传播树,从而达到副本数据的强一致性、更新信息冗余少、容错性能高的目的。
  4.副本撤销
  引起副本撤销的原因通常有:副本的生命周期结束;副本被访问的频率很低;副本所在节点存储空间不够;副本所在节点的处理能力达到极限。
  如果给节点所在副本制定生命周期,则在生命周期结束时就撤销副本;当副本的需求不够,即被访问频率很低,应予以撤销;如果节点需要接纳一个新的副本,而本身存储空间不够,则会从已有副本中撤销一个或多个副本,直到能够存储该副本;如果节点的处理能力已达到极限,有时会新建一份副本到其它节点上以分担负载,有时会选择撤销副本。
  4.1 周期保存法
  文献采用的是周期保存法:在副本创建时就给其一个初始值,每当计时周期到了就减1,到该值变为0 时,不论副本的访问频率或它所在节点的利用率的高低都撤销该副本,在未变0之前,如果检测到该副本几乎未被访问,则直接撤销。
  4.2 最久未访问法
  最久未访问法(Least Recently Used,LRU)是一种比较简单直接的撤销方法:每个节点自己维护一个LRU 队列,队列中包含了节点上的所有文件。新产生的文件和副本被加到队列的尾部。当一个文件被客户端访问时,它也被从LRU 队列中抽取出来放到队列的尾部。当需要删除一个文件时,从队列首部的文件开始,逐个删除,直至磁盘剩余空间达到新文件的存储要求。
  文献认为生成一个副本是代价比较高的一件事,所以建议尽量避免无谓地副本删除。在撤销副本时使用LRU 方法并结合考虑副本的重要程度来决定撤销对象可以减少得不偿失的副本撤销。该文描述了当迎接新副本而节点存储空间不够时采取的撤销策略。其过程是:将新副本与节点LRU 队列中的第一个副本开始比较重要程度,第一个重要程度低于新副本的副本将会被撤销,且将新副本放置在队列的队尾,如果比较完后无副本被撤销,则取消新副本的存储。
  两种撤销方法中的周期保存方法在国外没有被广泛采用,其中的原因可能是:不同环境下数据的利用率不尽相同,有些数据的访问频率长期保持在一个波动不大的值上,而有些数据可能只是在短期被大量访问,副本生命周期的制定会限制副本被有效地利用。而最久未访问方法则显得更加灵活,可以降低副本被误删的概率。
  5. 结束语
  副本管理问题是现在的研究热点,通过对副本本身进行高效管理和一些相关技术的改进,使大众所处的网络环境能朝更高效率、更可用和更安全的方向发展。
  副本是一群需要实际存储空间的实体,能引发大量访问请求,继而影响网络中节点的利用率、带宽消耗和数据一致性维护等方面。如何为一个局域网乃至整个互联网制定出一套实用的副本管理机制是一项重要任务。其中,数据的副本数量、副本的分布、副本的定位和副本的数据一致性对网络的总体性能影响较大,因而是副本问题研究的重点。