一种应用于分布式存储的多活动副本机制及其存取方法

文档序号:7854867阅读:195来源:国知局
专利名称:一种应用于分布式存储的多活动副本机制及其存取方法
技术领域
本发明涉及一种应用于分布式存储的多活动副本机制及其存取方法,是适用于分布式存储和云存储系统的一种新机制和方法,属于计算机科学与技术领域。
背景技术
在大数据时代,分布式存储是解决海量数据存储问题的有效途径。文件副本策略作为一种保证数据高可用性的有效手段,可以提高分布式存储系统的可靠性和访问速度,均衡系统负载。分布式存储系统将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,并通过一定的应用软件或接口共同对外提供数据存储和业务访问功能,实现海量数据的分布式存储和并行I/o访问。它的基本结构如图I所示,主要包括元数据服务器 (MS, Metadata servers)、数据服务器(DS, Data servers)和客户端(Client)三个部分。然而随着系统规模的扩大,硬件设备或软件架构不可避免会出现故障,从而造成数据的损坏和丢失,影响到数据的正常访问。而副本技术将数据复制多份放在分布式系统的多个节点上,单个或多个节点的数据发生损坏或者丢失,甚至整个节点的失效,都不会导致副本的无法访问,从而能够保证数据的完整性和可用性。并且动态副本策略会根据系统环境和应用需求的变化动态调整副本的个数和存储位置,从而提高系统的响应速度,并能实现负载均衡。不同的应用场合对副本策略也提出了不同的需求。对于一个读操作集中的应用,关注的是数据的可用性,需要尽可能地将副本分布在广阔的节点上,提高读操作的性能和访问速度;而对于一个写操作集中的应用,数据的一致性更为重要,需要将副本集中部署,以方便数据的写入和更新。目前,主流的分布式存储系统包括GFS、HDFS、Dynamo、PVFS等,它们的副本策略都存在两个共同的问题。首先,在进行读操作时,通常只有一个文件副本是活动可用的,也就是说只有一个副本提供数据,其它副本只是起到数据备份和容错作用。这样就造成了系统资源的浪费,并且当用户访问量很大时,活动副本所在的节点会产生I/O瓶颈或者网络拥堵。其次,它们没有把副本存放策略的实现开放给用户,用户无法根据自己的实际需求来指定文件副本存放的具体位置。基于这种情况,本发明提出一种应用于分布式存储的多活动副本机制及其存取方法。该方法首先确保在读取数据时系统中每个文件副本都是活动可用的,用户可随意存取其中的任意副本,克服单一活动副本的缺陷;其次,系统可根据用户需求动态调整副本数目和存放位置,加快数据的访问。

发明内容
针对背景技术所述,本发明“一种应用于分布式存储的多活动副本机制及其存取方法”包括两个部分多活动副本机制和基于该机制的动态副本存取方法,旨在解决读操作频繁的分布式存储系统中易出现的网络拥堵和磁盘I/o瓶颈问题,提高系统的可靠性和响应速度。I、多活动副本机制所谓多活动副本机制,是指系统中每个文件副本都是活动可用的,用户可根据需要随意存取其中的任意副本。如图2所示,原始文件有三个副本,分别存放在数据中心I的数据服务器DS1、DS2和数据中心2的数据服务器DS3上。在某一时刻,当用户访问量很大时,如果只有副本I提供数据,那么存储该副本的数据服务器DSl就会因吞吐量过大而不可避免地达到I/O瓶颈,DSl所在的网络也会产生拥塞。而多活动副本机制通过让多个副本同时提供数据,将用户的访问分散到不同数据中心的多个数据服务器上,增大数据服务器总的磁盘I/O吞吐量,降低单个服务器的网络负载。此时,数据服务器DS1、DS2和DS3共同对外提供存取服务,副本 I、副本2和副本3同时被用户所读写,从而避免了出现上述情况。2、动态副本存取方法基于多活动副本机制的动态副本存取方法,位于分布式存储系统的元数据服务器上,是分布式存储系统的一个软件模块。元数据服务器主要通过四个模块来完成多活动副本的读取和动态调整功能,包括数据节点信息维护模块、路由分析模块、用户请求处理模块和动态副本管理模块。图3是各个模块及信息的利用关系。下面介绍各组成部分。(I)数据服务器信息维护模块(DIM, Data server Information Module):该模块记录整个系统中文件到数据块和数据块到数据服务器的映射关系,根据数据服务器的反馈信息监控数据服务器和文件副本的工作状态。(2)路由分析模块(RAM,Routing Analysis Module):该模块分析数据中心和用户以及数据中心之间的路由关系,确保数据能够在最好的网络状况下进行传输,避免网络拥堵。(3)用户请求处理模块(URM,User Request Module):该模块对用户的访问权限进行认证,根据用户请求将相应的元数据信息发送给用户,用户根据这些控制信息与数据服务器进行数据交互。(4)动态副本管理模块(DRM, Dynamic Replication Module).该模块管理文件副本的读取和写入,并能够根据用户行为和系统的1/0、网络状况,动态调整副本数目,将副本存放在合适的数据服务器上。一种基于多活动副本机制的动态副本存取方法包括图4所示的7个步骤(I)数据服务器信息维护DM模块监控系统中数据服务器的工作状态,记录每个节点的1/0吞吐量、网络带宽和文件副本的存放位置等元数据信息。(2)用户读写请求处理URM模块验证用户的访问权限,并记录用户的网络位置和路由情况。若用户请求为写数据,继续步骤(3);若用户请求为读数据,进入步骤(5)。(3)文件副本的初始化存储URM模块将节点的控制信息发送给用户,用户据此向数据服务器传送数据,DRM模块进行副本存储。当没有特殊应用需求时,如图5所示,DRM默认的副本数目为三个。其中副本I和副本2放置在本地数据中心的两个不同数据服务器DSl和DS2上,用户与数据中心I在同一⑶N域内进行数据交互,加快数据流的传输,避免网络拥堵;DRM采用Round-Robin方法将副本3放置在远程数据中心2的数据服务器DS3上,保证数据的可靠性。(4)副本数目和存放位置的主动调整很多情况下,用户在本地数据中心存放的数据往往不是由本地用户读取,而是提供给远端的其他用户,当远端用户从本地数据中心大量读取数据时同样会造成网络拥堵。理想情况下,每个数据中心内都存放一个副本可以保证用户的快速访问,但是这会造成不必要的资源浪费,消耗更大的管理和维护成本。这就要求DRM根据不同应用需求进行调整,DRM根据文件可能被大量用户使用的区域,将副本推送(PUSH)到该CDN域内对应的数据中心内缓存起来。如图6所示,DRM主动将副本数据推送到数据中心3和4上,并在数据服务器DS4和DS5上缓存,方便同一⑶N域内用户的访问。这一步是副本的预处理过程,主要通过人工配置完成。由于这个步骤是DRM主动完成的,因此称之为主动调整过程。(5)数据中心和数据服务器的选择RAM模块根据用户的网络位置和路由情况,找到用户所在CDN域内的数据中心和数据服务器。(6)多活动副本的读取URM模块根据RAM的选择将相应的元数据信息发送给用户。若该数据中心的数据服务器上有用户请求的副本数据,则用户与数据服务器建立连接进行多活动副本的读取;否则继续步骤(7)进行副本的第二次调整。(7)副本数目和存放位置的被动调整如图7所示,当与用户连接的数据中心(例如图中的数据中心5和6)没有请求的数据时,数据中心会启动DRM的拉取(PULL)方法,将其它数据中心(图中的数据中心I)存储的副本数据缓存到本地数据服务器(数据服务器 DS6和DS9)上,然后与用户进行数据交互;当用户访问量很大时,存储该副本缓存数据的服务器(例如数据服务器DS6)的磁盘I/O吞吐量可能会很快达到瓶颈,造成数据的无法访问,这时DRM会在该数据中心的其它数据服务器(DS7和DS8)上新建其它缓存,同时向外提供服务,以提高系统的I/O性能。随着副本数目的增多,系统的存储量会呈线性增大趋势,为降低系统的存储压力,增大存储容量,副本的缓存数据通常具有实效性,默认为24小时。这个步骤是DRM被动完成的,因此称之为被动调整过程。这个方法是对第一次副本调整的优化,这里副本数目和和存放位置的调整是按需分配的。根据以上步骤即可完成基于多活动副本机制的动态副本存取过程。


图I分布式存储系统的基本结构图2多活动副本机制的基本原理图3基于多活动副本机制的动态副本存取方法的各个模块及利用关系图4基于多活动副本机制的动态副本存取步骤图5副本的初始化存储过程图6副本的主动调整过程图7副本的被动调整过程图8基于多活动副本机制的动态副本存取方法使用实例具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例也仅仅是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了说明一种基于多活动副本机制的动态副本存取方法,这里给出了一个实例。实例以现实生活中某门户网站提供视频服务这种应用为基础,假设分布式存储系统有北京、上海、广州、成都、武汉五个数据中心,每个数据中心有百台数据服务器。相应的参数为元数据服务器和数据中心之间以千兆以太网连接,网络吞吐量为Bt :1000M/S每台数据服务器的最大磁盘I/O为Umax 300M/S ;用户访问本地数据中心的数据流量为Vtl :1M/S,访问其他数据中心则降为Vt2 :200KB/S。假设记者A从广州拍摄了一段比赛视频,视频大小为M 500M,需要将视频数据提供给用户访问,采用基于多活动副本机制的动态副本存取方法主要通过如图8所示的四个 阶段完成。(I)副本的默认存储元数据服务器根据记者所在的位置选择了广州数据中心,并将此数据中心的元数据信息发送给记者A的客户端,随后记者A与广州数据中心建立连接开始上传数据;同时元数据服务器采用轮询的方式选择了武汉数据中心,在记者A上传数据的同时,广州数据中心也会将数据传输到武汉数据中心进行备份;完成后系统中副本数目为3个,分别为副本I、副本2、副本3。视频在本地的上传时间为Tup = M/Vtl = 500/1 =500S,而副本从广州数据中心存储到武汉的最大延迟为Tdelay = M/Bt = 500/1000 = 0. 5S ;若副本直接从用户上传到武汉数据中心,所需时间为=Tup2 = M/Vt2 = 500/0. 2 = 2500S,可见Tup2远远大于Tup和Td6lay的总和。因此用户应与同一⑶N域内的数据中心进行交互,并且副本数据的传输应尽可能在数据中心间进行。(2)副本数目和存放位置的主动调整副本的初始化存储没有考虑到视频数据可能被何处用户访问的情况,而元数据服务器会根据视频信息对此进行初步调整。假设记者A拍摄的视频为北京队与上海队的比赛,为方便北京和上海两地用户访问,元数据服务器会选择距离最近的副本(分别为武汉和广州),主动将副本数据推送(PUSH)到北京和上海的数据中心,此时系统中的副本数目变为5个,新增了缓存副本4和缓存副本5。(3)副本数目和存放位置的被动调整副本的主动调整带有一定的主观性,不能完全满足实际情况。例如,北京和上海两支球队中有多名队员来自成都,于是成都地区用户也会大量访问。当用户发出读取请求时,本方法是把用户所在CDN域内的数据中心的元数据信息发送给用户。而此时成都数据中心中没有副本数据,于是它会从距离最近的数据中心(这里是广州)拉取(PULL)数据并进行缓存,同时将缓存数据发送给用户,此时副本数目变为6个,新增了缓存副本6。这样视频的下载时间为Td_lMd = M/Vtl+Tdelay = 500/1+0. 5=500. 5S ;若直接从武汉数据中心访问则时间为=Tdownload2 = M/Yt2 = 500/0. 2 = 2500S。由此可见先缓存再读取的效率远远高于直接读取的效率。(4)缓存数目的调整对于热度很高的视频,在某一时刻用户访问量很大时,存储该视频副本的服务器可能达到磁盘I/O瓶颈。在本例中,当北京数据中心缓存副本5所在的数据服务器每秒内同时有300人访问时,用户的总访问量U_ = 300*1 = Umax,服务器达到了传输瓶颈。为避免这种情况发生,元数据服务器会设置一个门限值=Uthreshtjld = 0. 8*U_ ;当用户访问量达到门限值,即Usmi = Uthreshold时,数据中心会在另外一个数据服务器上建立副本的缓存,共同对外提供服务,如图中新建的缓存副本7和缓存副本8。此时,数据的I/O吞吐量扩大了 2倍,达到了 900M/S。当然,这是以消耗磁盘空间为代价的,因此副本的缓存通常具有实效性。如果在24小时内没有用户的访问,系统会自动删除这些缓存数据,只保留初始情况下的副本,从而避免资源的浪费,提高系统容量。主要技术优势为了提高系统的可靠性,分布式存储系统都采用了文件副本策略。然而当前的分布式存储系统大都是基于单个活动副本的,在任意时刻只能对一个副本进行操作,并且用户很难根据自己需要来指定副本的存放位置。本发明基于多活动副本机制提出了一种新型的动态存取副本方法,副本可以按需进行复制和存储。本发明的优势在于(1)提出了多活动副本机制,通过将用户的访问分散到不同数据中心的多个数据服务器上,增大了数据服务器的磁盘I/O吞吐量,降低了单个服务器的网络负载,避免资源的浪费;(2)系统在初始化存储的基础上,还可根据应用需求将副本·数据主动推送到不同CDN域内的数据中心,使用户能够快速从本地数据中心获得请求的数据;(3)元数据服务器在处理用户的读请求时并不是把副本所在的数据服务器发送给用户,而是把同一 CDN域内的数据中心发送给用户,系统根据用户需求对文件副本进行缓存,从而实现了按需分配,在保证数据的高效传输的同时提高系统存储容量。该发明不涉及数据在分布式存储系统中具体的存储方式,对读操作集中的应用具有很好的作用。
权利要求
1.提出了多活动副本机制,分布式存储系统中存储的所有文件副本在任意时刻都是活动可用的,用户可根据需要随意存取其中的任意副本,通过将用户的访问分散到不同数据中心的多个数据服务器上,增大磁盘I/o吞吐量,降低单个服务器的网络负载。
2.提出了副本数目和存放位置的动态调整方法,根据不同的应用场景和用户需求,系统会动态调整副本数目和存放位置,提高系统的响应速度和可靠性,主要通过两个步骤实现 (1)用户写入文件时系统的主动调整,元数据服务器主动将副本数据推送到可能被大量访问的地区的数据服务器上进行缓存。
(2)用户读取文件时系统的被动调整,与用户连接的数据中心通知元数据服务器传输数据并建立副本缓存。
3.副本缓存具有时效性,如果在有效时间内没有用户访问,系统将删除这些副本,避免该方法在实施过程中因建立多个副本缓存占用额外的磁盘空间,提高系统的存储容量。
全文摘要
本发明提出了一种应用于分布式存储的多活动副本机制及其存取方法,适用于读操作频繁的分布式存储系统。该方法位于分布式存储系统的元数据服务器上,它包括数据节点信息维护模块、路由分析模块、用户请求处理模块和动态副本管理模块四个部分;提出了多活动副本机制,用户可随意存取系统中的任意副本,提高了系统的可靠性和I/O吞吐量;针对不同的应用环境和用户需求,它可以动态调整副本的数目和存放位置,加快系统的响应速度和数据流量的传输;由于新增副本具有时效性,可以保证系统在快速响应用户访问的同时节省磁盘空间,避免资源浪费,达到增大系统容量的目的。
文档编号H04L29/08GK102752381SQ20121022277
公开日2012年10月24日 申请日期2012年6月28日 优先权日2012年6月28日
发明者袁玉宇, 陆月明, 马良 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1