APP下载

分布式系统数据复制的研究

2015-09-18辛大欣

现代电子技术 2015年2期
关键词:副本线性化管理器

张 倩,辛大欣

(西安工业大学,陕西 西安 710021)

0 引 言

在分布式存储系统中,对数据的拷贝能够增强性能,提供高可用性和容错能力,因此它是保证分布式系统有效性的一个关键技术。将创建的多个数据副本合理地分布在多个服务器节点上,用来分担访问请求的处理任务,可以在一定程度上降低节点失效率,缩短用户响应时间[1⁃2]。本文将讨论在数据复制过程中,副本管理器采用何种复制方式能够更准确高效地完成数据副本的更新工作,分布式系统的复制模型,以及数据拷贝的方式。

1 复制数据管理

在分布式存储系统中不仅数据量巨大,而且为了保证系统的可靠性,每份数据对象的副本数量也很多,因此,维护各个节点中副本的一致性就成了一个很重要的问题[3]。在计算机科学领域中,数据的一致性问题已经存在了很长的时间,构成了分布式计算的基础[4]。而实际上,统计学和管理科学是对于一致性问题较正式的研究源头[5]。

1.1 数据复制的基本原则

当执行一个操作时,用户不需要知道存在多少个数据副本,仅仅对其中一项操作,而不管事实上的操作可能是针对一个以上的拷贝一起进行的,这是数据复制的其中一项原则即复制透明性。一致性是数据复制的另一项基本原则,然而,在不同的具体情况下,数据一致性在强度上是会有所不同的。给定对象的副本不一定是完全相同的,至少不要求在任何时间点都一样,一些副本可能已经更新了最新的数据,但是一些副本可能还没有收到这个更新。但是如果不同的客户对同一个对象发出请求,却得到不一致的结果,这通常是不可接受的。

1.2 系统模型

副本由不同的副本管理器(Replica Manager,RM)来管理,副本管理器是包含了特定计算机上的副本,并且直接操作这些副本的组件。副本管理器所组成的集合可以是静态的,也可以是动态的。在动态系统中,新的副本管理器可能会不断出现,副本管理器可能崩溃,接着他们被认为离开了系统。而这在静态的系统中不允许出现新的副本管理器,也不会出现新的副本管理器,但它们可能暂停工作很长时间。

如图1所示副本管理的一般模型,副本管理器集合给用户提供了某种服务。副本管理器存储在服务器上,前端(Front End,FE)组件作为用户访问服务器的门户,每个客户发出的请求首先被一个前端组件处理,它的作用是由消息传递的方式,代替客户,与多个副本管理器进行通信,而不是直接让客户进行通信。这种手段保证了复制透明性[6]。

图1 用于复制数据管理的基本的体系结构模型

副本对象上进行的一个操作通常涉及5个阶段,但是对于不同类型的系统,每个阶段的动作都是不一样的。

(1)请求。前端将来自客户的请求分给一个或多个副本管理器。一种形式是前端只和某一个副本管理器通信,然后由这个副本管理器与其他副本管理器通信;另一种形式是将这些副本管理器看成一个组,由前端将请求组播到各个副本管理器;

(2)协调。接到请求后,副本管理器需要进行协调来保证执行的一致性,它们会对是否执行请求达成一致,并同时决定该请求相对于其他请求的次序;

(3)执行。副本管理器执行请求,也包括执行的效果可以去除的试探性请求;

(4)协定。副本管理器对将要提交的处理结果达成一致;

(5)响应。一个或多个副本管理器给前端应答。一种形式是由一个副本管理器响应前端,还有一种情况是由前端接受一组副本管理器的应答,然后选择或综合成一个结果返回给客户。

副本的撤销也是一种必要情况,引起副本撤销的原因有很多,例如副本所在节点的存储空间不够;副本生命周期结束;副本所在节点的处理能力达到极限;副本被访问的频率很低。生成一个副本的代价是比较高的,所以无谓的副本删除要尽量避免[7]。

1.3 副本复制策略

副本复制策略有5种,路径复制、源请求复制、优先级复制、邻居节点复制和随机复制[8⁃9]:

(1)路径复制。将副本发送给请求路径上的所有节点。实现原理简单是它的优点,也很方便数据的查找;但是创建的副本数量会远远大于需求量,这就会增加维护副本的一致性的开销;

(2)源请求复制。只将副本发送给请求节点。当对目的节点请求时,若目的节点没有过载,那么就可以读取数据,若目标节点没有多余的能力处理,就创建一个新副本,并且是在请求节点未过载的情况下,才把创建的新副本发给它,同时通知路径上所有节点此请求节点上也存储了该数据副本;

(3)优先级复制。优先将副本发送向已经有副本的节点,直至这些节点达到饱和,再选择其他节点来存储数据副本;

(4)邻居节点复制。保存所有网络数据的访问历史记录,新建一份访问率较高的副本,并发送给频繁请求该副本的节点的邻节点,当该节点再次请求访问该数据时,就可以到它的邻居节点上直接读取数据;

(5)随机复制。在选择一个或多个节点来存放数据副本时,采用随机的方式,而随机选择的对象分为两种,请求路径上的节点以及整个网络的节点。

2 容错服务

如果在副本管理器发生故障的条件下,服务还能够保持响应用户请求,同时用户并不能区分该服务是在副本数据上实现的,还是被一个正确的副本管理器提供的,那么这个基于复制的服务就是正确的。

在可靠性理论中,一般都会用RAS来描述系统的健壮与完整性。RAS也就是可靠性(Reliability),可用性(Availability)和可维护性(Serviceablility)[10]。

2.1 线性化能力

假设一个系统中的两个副本管理器分别位于A和B两个计算机上,它们都维护x和y两个银行账户的副本。客户在本地计算机上查看和更新账户,如果本地的服务器出现故障,那么使用另一个服务器。当对客户的操作响应结束后,副本管理器会在后台相互传播更新。x和y的初始余额为0.00。如表1所示。

客户1在本地的副本管理器A上更新账户x余额为1.00,然后更新y余额为2.00,但是此时A发生故障,于是客户1将这个操作放在副本管理器B上。现在客户2在他的本地副本管理器B上读取数据,查询到y余额为2.00,但x仍为0.00,这是因为A发生故障,应用在它上的x的更新还没有传递过来。

这个执行不符合银行账户的规约,也就是不正确的,而对于复制对象有不同的正确性准则,最严格的正确系统是可线性化的,这个性质就是可线性化能力。

表1 不同客户更新及查询数据

一个被复制的共享对象服务,如果对于任何执行,存在一个由全体用户发出的执行序列,并满足下面的两个准则,那么这个服务就认为是可线性化的:

(1)操作的交错序列,符合对象的单个正确副本所遵循的规约。

(2)操作的交错执行次序与实际运行中的次序实时一致。

2.2 顺序一致性

线性化能力中要求的实时性是现实中所需要的,客户应该收到最新最近的数据。但是这是一种理想条件,受到网络延迟及其他因素的制约。一个更能满足现实需要并且相对严格的条件是顺序一致性(Sequential Consistency)。在不要求实时的情况下,这个条件抓住了处理请求的顺序实质。它规定:如果所有的进程以一定的顺序执行操作,每一个进程的操作都以程序规定的顺序出现,则任何操作的结果都是一样的。顺序一致存储器不保证读返回的值是1 nm,1 ms甚至1 min以前另一个进程写入的,它只保证所有进程以相同的顺序看见存储器访问[11]。

一个被复制的共享对象服务,如果对于任何执行,存在一个由全体用户发出的执行序列,并满足下面的2个准则,那么这个服务就认为是顺序一致的:

(1)操作的交错序列符合对象的单个正确副本所遵循的规约。

(2)操作在交错执行中的次序,和在每个客户程序中执行的次序一致。

2.3 被动复制

在图2中的复制模型中,任何时候都有一个主副本管理器和至少一个次副本管理器,称为“从管理器”或“备份”。这个模型的实质就是在上面2.2节中提到的前端与服务交互方式中的一种情况,前端只和主副本管理器通信,然后由主副本管理器执行操作并将更新操作发送到服务中的其他备份管理器。如果主副本管理器出现故障,那么将从剩余的备份管理中提升一个称为新的主副本管理器。

图2 被动(主备份)模型

在主备份管理器出现故障时,如果某个备份变成新的主备份管理器并且新的系统配置从故障点正确接管的话,即满足下面条件时,系统仍具有线性化能力:

(1)主副本管理器被惟一的备份副本管理器代替

(2)当接管主副本管理器时,剩余的副本管理器在哪些操作已经被执行上达成一致。

被动复制的缺点是开销相对较大,试图同步通信在每次组播时需要要几个回合的通信,而且当主副本管理器发生故障时,组通信系统需要进行协商并传递试图,这会导致更多的延时。

考虑到当用户较多,与服务通信数量较大的问题,可以将这个模型做一些改进,客户可以将读的请求发送给备份副本管理器,这样可以减轻主副本管理器的负载,虽然不能保证线性化,但是仍能提供具有顺序一致性的服务给用户。

2.4 主动复制

如图3中所示的主动复制模型中,副本管理器是一个状态机,所有副本管理器被组织成一个组,并充当同等的角色。前端将用户发出的请求消息组播到副本管理器组,组内的副本管理器按相同但独立的方式来处理请求并作出响应。

图3 主动复制模型

可以看出任何一个副本管理器的崩溃都不会对服务的性能产生影响,因为剩下的副本管理器能继续正常处理请求并做出应答。这个系统具有顺序一致性,所有的副本管理器处理同样次序的请求,组播的可靠性保证每一个正确的副本管理器处理同样的请求集合,全序保证以同样的顺序处理他们。主动复制系统并不具有线性化能力,因为副本管理器处理请求的全排序未必和客户发出这些请求的实时次序相一致。

3 结 语

本文分析了分布式系统中的用于复制数据管理的基本的体系结构模型及它的执行过程,进而讨论了向用户提供容错服务的复制模型,并在这个基础上提出了一些改进。然而,现实中的实际情况是多变而复杂的,在解决实际问题时需要根据具体情况做出相应的处理,才能使得系统有更好的可用性和安全性。

[1]徐小龙,邹勤文,杨康.分布式存储系统中数据副本管理机制[J].计算机技术与发展,2013(2):245⁃249.

[2]葛建清.异质结构化对等网络动态副本访问负载均衡策略研究[D].上海:华东师范大学,2010.

[3]王泰格,邵玉如,杨翌.分布式存储系统介绍及其数据一致性实现方法探究[J].企业技术开发,2012(8):18⁃19.

[4]LYNCH N A.Distributed algorithms[M].San Franciso,CA:Morgan Kaufmann,1997.

[5]DE GROOT M H.Reaching a consensus[J].American Statisti⁃cal Association,1974,69(345):118⁃121.

[6]COULOURIS George,DOLLIMORE Jean,KINDBERG Tim.Distributed systems concepts and design[M].金蓓弘,马应龙,译.北京:机械工业出版社,2013.

[7]陈赓,余宏亮,张堃.对等网络中基于位置信息和文件流行度的自适应复本管理机制算法[J].计算机学报,2009,32(10):1927⁃1937.

[8]LÜ Q,CAO P,COHEN E,et al.Search and replication in un⁃structured peer⁃to⁃peer networks[C]//16th International Conference on Supercomputing.New York: ACM Press,2002:11⁃15.

[9]BASSAM A A,CHEN W,ZHOU B B,et al.Effects of replica placement algorithms on performance of structured overlay net⁃works[C]//Parallel and Distributed Processing Symposium.Nice:IPDPS,2007:111⁃117.

[10]王伟娜.分布式存储系统中容错子系统的设计与实现[D].沈阳:东北大学,2008.

[11]杨玲,李俊峰.分布式系统中存储器的一致性问题[J].现在计算机,2005(4):2⁃9.

猜你喜欢

副本线性化管理器
“线性化”在多元不等式证明与最值求解中的应用
应急状态启动磁盘管理器
使用卷影副本保护数据
面向流媒体基于蚁群的副本选择算法①
Windows文件缓冲处理技术概述
基于反馈线性化的RLV气动控制一体化设计
副本放置中的更新策略及算法*
EHA反馈线性化最优滑模面双模糊滑模控制
空间机械臂锁紧机构等效线性化分析及验证
高集成度2.5A备份电源管理器简化锂离子电池备份系统