一种基于纠删码技术改进的云存储系统及实现方法

文档序号:6543676阅读:184来源:国知局
一种基于纠删码技术改进的云存储系统及实现方法
【专利摘要】本发明公开了一种基于纠删码技术改进的云存储系统及实现方法,涉及分布式文件系统,该方法包括建立元数据管理节点、数据存储节点、修复管理节点、工作管理节点、客户端节点,根据纠删码技术,通过该元数据管理节点、该数据存储节点和该客户端节点进行数据的存储和读取,其中通过该修复管理节点和该工作管理节点修复采用纠删码技术后丢失或损坏的数据块。本发明通过将纠删码的修复过程与云储存系统文件管理节点相互分离,减轻修复过程元数据管理节点的负担,保证修复过程中系统的稳定性,高可靠性和高可用性。
【专利说明】一种基于纠删码技术改进的云存储系统及实现方法
【技术领域】
[0001]本发明创造属于分布式文件系统,特别是为了保证分布式文件系统的高可靠性、闻可用性以及闻容错性。
【背景技术】
[0002]近年来,随着数据呈现爆炸式的增长趋势,高性能计算、医学影像、石油和天然气勘探、数字媒体和社交网络等大量数据密集型应用导致数据的井喷,据研究显示,2020年数字宇宙将达到35.2ZB,比2009年的0.8ZB猛增44倍,而如何保证系统在尽可能低的空间开销情况下,保证存储数据的高可靠性、高稳定性和高可用性。
[0003]在传统的云存储系统中,采用复制的策略提高分布式文件系统的可靠性,在一定程度上能够保证系统的可靠性,但随着数据的爆炸式增长,采用单一的复制策略,不但可能造成很大的空间开销,同时也可能造成副本全部丢失所带来的不可恢复性文件丢失,从而对系统的可靠性带来一定的风险性。纠删码(Erasure Code)作为一种前向纠错技术分布式存储系统利用它作为一种冗余机制来保证分布式存储系统数据的高可靠性、高可用性和高容错性。其基本思想是:如图1所示,将要存储在系统中的文件分割成k块,然后对其编码得到的η个数据块并进行分布存储,则只需存在k个可用的数据块,就可以重构出原始文件。
[0004]在云存储系统中采用纠删码技术对文件进行保存,在一定程度上降低系统的空间开销,但同时由于文件修复带来的巨大的网络开销可能导致整个系统的网络或者部分节点的网络拥塞而无法提供服务,影响系统的性能。同时对于存储和传输的IO读写的开销也会加大,这可能会降低系统吞吐量。考虑到以上问题,为了将纠删码的修复过程与云存储系统文件管理节点相互分离,减轻修复过程元数据管理节点的负担,保证修复过程中系统的稳定性,本发明提出一种改进的云储存系统新架构。
[0005]发明专利“云存储系统及其元数据写入方法、元数据读取方法”公开了一种云存储系统及其元数据写入方法、元数据读取方法。包括:元数据服务器集群、视图管理模块和客户端。客户端向用户提供访问云存储系统的接口并解析用户要访问的元数据服务器的视图位置;视图管理模块存储全部元数据视图信息,根据全部元数据视图信息构建各元数据服务器之间的逻辑关联关系,并向每个元数据服务器分发与元数据服务器自身相关联的元数据视图信息;各元数据服务器存储由视图管理模块分发的元数据视图信息,并确定的元数据服务器的网络访问地址信息;元数据服务器分层部署,最底层的元数据服务器还存储元数据内容和元数据视图信息并根据用户请求将自身存储的元数据信息提供给用户。该发明专利能减小带宽消耗。但是该发明专利只说明了元数据的读取方法,并没有涉及到数据块损坏或丢失后的恢复方法。
[0006]发明专利“一种云存储系统及实现方法”公开了一种云存储系统及其实现方法,涉及计算机以及网络信息【技术领域】。该发明公开的云存储系统,包括:所述访问特征数据库,记录所述云存储系统内各文件被访问的次数;所述访问特征分析与副本调度模块,接收客户端对云存储系统内文件发起的访问请求,从所述访问特征数据库中查询所接收到的访问请求所要访问的文件被访问的次数,若所查询到的文件被访问的次数满足设定条件,则向所述数据副本模块发起数据副本创建指令;所述数据副本模块,接收所述数据副本创建指令,根据该数据副本创建指令为所接收到的访问请求所要访问的文件创建数据副本。该发明实施例在一定程度上提高了云存储系统的可用性,改善了云存储系统的可靠性。但是该发明所采用的数据备份方式仍然是传统的复制策略,这种策略在随着需要储存的数据量爆炸式增长过程中,将带来很大存储空间的浪费,不利于绿色资源调度和绿色数据中心的发展。而本发明是基于纠删码编码技术架构的云存储系统,采用纠删码编码技术取代传统的副本复制备份策略,不但可以降低副本备份所带来的巨大空间开销,同时提高数据存储的可靠性。

【发明内容】

[0007]针对上述云储存系统的架构以及纠删码原理的介绍,本发明在原生的云储存系统架构中加入修复管理节点,该节点主要负责采用纠删码技术对丢失或损坏的数据块进行修复,将修复管理节点与元数据管理节点相互分离,从而减轻元数据管理节点在修复过程中的负载,保证系统的高可靠性、高可用性和高稳定性。同时在此架构的基础上对采用纠删码算法处理的数据块进一步增加采用基于异或运算的数据信息块,在单点发生故障时,能够快速及时的恢复丢失或损坏的数据块。
[0008]具体地讲,本发明公开了一种基于纠删码技术改进的云存储实现方法,其特征在于,包括建立元数据管理节点、数据存储节点、修复管理节点、工作管理节点、客户端节点,根据纠删码技术,通过该元数据管理节点、该数据存储节点和该客户端节点进行数据的存储和读取,其中通过该修复管理节点和该工作管理节点修复采用纠删码技术后丢失或损坏的数据块。
[0009]所述的基于纠删码技术改进的云存储实现方法,还包括生成异或数据块,具体步骤如下:
[0010]该修复管理节点向该元数据管理节点发送读取数据块信息表和用户的可靠性等级请求;该修复管理节点根据该数据块信息表和该用户的可靠性等级,向该工作管理节点提交生成异或信息块任务;该工作管理节点根据该数据块信息表和该用户可靠性等级向该数据存储节点提交生成异或信息块任务;该数据存储节点生成异或信息块并将该异或信息块的位置信息返回给该修复管理节点;该修复管理节点生成异或信息块表,同时通知该元数据管理节点该异或信息块已生成。
[0011]所述的基于纠删码技术改进的云存储实现方法,还包括:
[0012]该修复管理节点周期性扫描数据块的状态,当发现异常时,读取用户可靠性等级,并向该工作管理节点提交修复数据块任务,该工作管理节点将该修复数据块任务发送到该数据存储节点,该数据存储节点读取本地数据块信息表并启动修复进程,并向该修复管理节点发送修复后数据块所在节点的位置信息,该修复管理节点向该元数据管理节点发送元数据表更新信息,该元数据管理节点根据该元数据表更新信息更新元数据表。
[0013]所述的基于纠删码技术改进的云存储实现方法,还包括:
[0014]根据修复后数据块所在节点的位置信息与该修复管理节点保存的数据块信息表比对,如果是异或信息表更新,将更新信息更新到异或信息块表;若是元数据表信息表更新,将更新信息更新到元数据表。
[0015]本发明还公开了一种基于纠删码技术改进的云存储系统,其特征在于,包括元数据管理节点、数据存储节点、修复管理节点、工作管理节点、客户端节点,根据纠删码技术,通过该元数据管理节点、该数据存储节点和该客户端节点进行数据的存储和读取,其中通过该修复管理节点和该工作管理节点修复采用纠删码技术后丢失或损坏的数据块。
[0016]所述的基于纠删码技术改进的云存储系统,还包括生成异或数据块:该修复管理节点用于向该元数据管理节点发送读取数据块信息表和用户的可靠性等级请求;该修复管理节点根据该数据块信息表和该用户的可靠性等级,向该工作管理节点提交生成异或信息块任务;该工作管理节点根据该数据块信息表和该用户可靠性等级向该数据存储节点提交生成异或信息块任务;该数据存储节点生成异或信息块并将该异或信息块的位置信息返回给该修复管理节点;该 修复管理节点生成异或信息块表,同时通知该元数据管理节点该异或信息块已生成。
[0017]所述的基于纠删码技术改进的云存储系统,还包括:
[0018]该修复管理节点周期性扫描数据块的状态,当发现异常时,读取用户可靠性等级,并向该工作管理节点提交修复数据块任务,该工作管理节点将该修复数据块任务发送到该数据存储节点,该数据存储节点读取本地数据块信息表并启动修复进程,并向该修复管理节点发送修复后数据块所在节点的位置信息,该修复管理节点向该元数据管理节点发送元数据表更新信息,该元数据管理节点根据该元数据表更新信息更新元数据表。
[0019]所述的基于纠删码技术改进的云存储系统,还包括:根据修复后数据块所在节点的位置信息与该修复管理节点保存的数据块信息表比对,如果是异或信息表更新,将更新信息更新到异或信息块表;若是元数据信息表更新,将更新信息更新到元数据表。
[0020]目前的云储存系统中的数据是靠复制策略来保证冗余的。采用复制策略占用和浪费了大量的存储空间,在集群规模较小的时候可能还不是非常明显,但是对于大规模集群就比较显著了。如果按照当前IGB存储空间的成本是I Y来算,若数据的规模是5TB,那么两备份(IOT)和三备份(15T)的成本差距是5000 ¥ ;而如果数据规模到了 5PB的话,两备份和三备份的成本差距就有5,000,000 Y。本发明能够有效减少成本,提高系统运行效率,特别具有推广和应用的价值。
【专利附图】

【附图说明】
[0021]图1为纠删码编码与解码;
[0022]图2为基于纠删码改进的云储存系统文件系统架构;
[0023]图3为基于纠删码改进的云储存系统系统数据写入过程;
[0024]图4为基于纠删码改进的云储存系统系统数据读取过程;
[0025]图5为基于纠删码改进的云储存系统系统异或信息块生成过程;
[0026]图6为基于纠删码改进的云储存系统系统损坏或丢失的数据块修复过程;
[0027]其中,附图标记为:
[0028]I为客户端节点;
[0029]11为z?存储系统客户端;[0030]12为分布式文件系统对象实例;
[0031]13为数据输入流;
[0032]131为分布式文件系统输入流;
[0033]132为输入流转化器;
[0034]133为RS译码器;
[0035]14为数据输出流;
[0036]141为分布式文件系统输出流;
[0037]142为数据流转化器;
[0038]143为RS编码器;
[0039]2为元数据管理节点;
[0040]3为修复管理节点;
[0041]4为工作管理节点;
[0042]5为数据存储节点。
【具体实施方式】
[0043]本发明针对云存储系统中文件备份策略进行改进,进一步降低由于冗余备份所带来的空间占用开销,同时保证系统的可靠性、可用性和容错性。下面结合附图和【具体实施方式】,对本发明的文件上传和数据块恢复过程做进一步的说明。
[0044]如图2所示,基于纠删码技术改进的云储存系统架构中包含的节点和功能:
[0045]元数据管理节点2。元数据管理节点2是云储存系统中原始数据的管理者,它负责管理文件系统的命名空间,维护文件系统的文件树及所有的文件和目录的元数据。同时,元数据管理节点2中还保存了每个文件与分布式存储下每个数据块与其所在的数据储存节点5的映射关系,这些信息将被用于其他功能组件查找所需文件资源的数据存储服务器使用。
[0046]数据储存节点5。数据储存节点5是云存储系统文件系统中保存数据的节点。分布式的云存储系统中的文件通常被分割为多个数据块,通过编码后分发到不同的数据储存节点5中。数据储存节点5定期向元数据管理节点2报告其存储的所有数据块列表和健康状态,以备使用者通过直接访问数据储存节点5获得相应的数据。
[0047]修复管理节点3。在云存储系统中使用纠删码技术重构和异或处理的信息块储存后,由于修复损坏或丢失的数据块的过程中会频繁与元数据管理节点2通信,为了减轻元数据管理节点2的负担,将修复过程与管理节点进行隔离,由单独一个修复管理节点3完成损坏或丢失的数据块恢复,保证数据块的完整性和一致性。
[0048]客户端节点I。客户端节点I是云存储文件系统的使用者,它通过调用云存储系统提供的API对系统的文件进行读写操作。在进行读写操作时,客户端节点I需要首先从元数据管理节点2获得文件存储的元数据信息,然后从元数据信息中解析出再与请求读写文件所属的若干个数据储存节点5信息,最后与多个数据存储节点5通信进行数据读写操作。
[0049]如图3所示,基于纠删码改进的云储存系统的客户端节点I向文件系统创建一个文件,并将数据写入到云存储文件系统中的过程是:
[0050]客户端节点I生成分布式文件系统对象实例12,并创建一个文件。[0051]分布式文件系统对象实例12通过远程过程调用模块RPC向元数据管理节点2发出创建文件的请求。元数据管理节点2在确认请求创建的文件在云存储中没有出现重复并且符合命名规则,同时云存储系统客户端11对于云存储具有写入权限后,在命名空间中创建此文件的对应记录。在此过程中如果出现异常,元数据管理节点将向云存储客户端11返回IO异常并进行IO异常和回退处理。
[0052]分布式文件系统对象实例12在获得元数据管理节点2返回的创建成功和分配的存储节点分布信息(包含存储节点的IP地址、可用的存储地址等)后,生成一个数据输出流14返回给云存储系统客户端11。数据输出流包含一个分布式文件系统输出流141,负责后续的文件内容写入处理。
[0053]云存储系统客户端11向数据输出流14发送需要写入文件的数据。分布式文件系统输出流141在收到待写入的数据后会将数据拆分后放入数据队列。
[0054]RS编码器143负责从数据队列中不断取出数据块进行Reed Solomon编码(里所编码),通过数据流转化器142和分布式文件系统输出流141将编码后的数据块和原始数据块依据之前获取的分配存储节点分布信息(包含存储节点的IP地址、可用的存储地址等)写入到若干个对应的数据储存节点5中客户端节点I从元数据管理节点2获取分配的数据存储节点5的列表及在数据存储节点5上的存储位置信息,之后云存储系统客户端11根据上述信息将创建的文件分解成与数据存储节点5数量对应的若干段,然后将对应的段发送给对应的数据存储节点5中,然后每个数据存储节点5返回给数据输出流14,经汇总后再向元数据管理节点2上传文件写入结果,之后(以下内容属于数据云存储系统的内部处理流程)每个数据存储节点5将保存的数据块进行RS编码,然后将编码后的数据块发送到其他同样保存此文件的数据存储节点5中,最后数据存储节点5将原始文件信息、数据存储节点5保存的数据块、里所编码块保存节点、数据完整校验码等信息向元数据管理节点2进行上传。
[0055]每个数据储存节点5完成写入后,会向数据流转化器142和分布式文件系统输出流141返回保存情况以完成数据块写入操作,之后数据流转化器142和分布式文件系统输出流141将完整的文件写入情况上传给元数据管理节点2完成数据块写入处理。
[0056]当云存储系统客户端11完成所有数据写入后,将调用数据输入流结束本次文件写入操作。
[0057]如图4所示,基于纠删码改进的云储存系统中的客户端节点I从文件系统中读取数据的过程:
[0058]云存储系统客户端11生成分布式文件系统对象实例12,并打开一个文件。
[0059]分布式文件系统对象实例12通过RPC向元数据管理节点2发出文件打开请求,以获得文件相关的数据块位置信息。元数据管理节点2将包含此文件相关数据块所在的数据储存节点5地址及节点中存储位置信息,经过与云存储系统客户端11相关的距离进行排序后,返回给分布式文件系统对象实例12。
[0060]分布式文件系统对象实例12在获得数据块相关的信息后,生成一个数据输入流13返回给分布式文件系统对象实例12。数据输入流13包含一个分布式文件系统输入流132,负责存储数据块信息及数据储存节点地址信息。
[0061]数据输入流13中的分布式文件系统输入流131选择与云存储系统客户端11距离最近的恢复文件所需要数目的数据块。通过输入流转化器132输入,随之输入RS译码器133进行RS解码处理,直到所需要的数据块读取完成,云存储系统客户端11通过元数据管理节点2从数据存储节点5中获取用来保存源文件的数据块的信息及该源文件在数据存储节点5上的位置信息,云存储系统客户端11根据以上信息分别与数据存储节点5进行通信,获取文件内容。
[0062]当云存储系统客户端11读取完所有数据后,将调用数据输入流13结束本次文件读取操作。
[0063]如图5所示,基于纠删码改进的云储存系统中生成异或数据块的过程:
[0064]在元数据管理节点2收到所有数据储存节点5数据块写入成功后,通过RPC向修复管理节点3发送数据块分发成功信号。
[0065]修复管理节点3接收到元数据管理节点2发送的信号,向元数据管理节点2发送读取数据块信息表和用户的可靠性等级请求。
[0066]修复管理节点3接收到元数据管理节点2发送来的数据块信息表和用户的可靠性等级信息,向工作管理节点4提交生成异或信息块任务。
[0067]工作管理节点4接收到修复管理节点3发送的任务请求,根据数据块信息表和用户可靠性等级向数据存储节点5下发任务。
[0068]数据存储节点5完成任务将生成的异或信息块所存储的位置信息返回给修复管理节点3。
[0069]修复管理节点3接收到数据存储节点5发来的任务完成信息,统计生成异或信息块表,同时向元数据管理节点2发送异或信息块生成完成。
[0070]异或信息块是通过两个或者四个数据块逐位进行异或计算后获得对的数据块,在异或恢复之前,首先要对其他数据块和异或数据块的校验码进行验证,查看是否正确,然后这几个数据块进行异或恢复处理。
[0071]异或信息块针对的是用户可靠性等级很高的用户,本发明为这些用户提供了两套数据恢复方案:纠删码恢复(恢复计算量大,时间较慢,容错度高)、异或信息块恢复(计算量小,恢复时间快,容错度较低)。
[0072]如图6所示,基于纠删码改进的云储存系统中数据块损坏或丢失的修复的过程:
[0073]修复管理节点3周期性的扫描各个数据存储节点5中数据块的健康状态。
[0074]当修复管理节点3扫描中发现其中的数据块出现异常时,修复管理节点3会从元数据管理节点2中读取用户可靠性的等级,向工作管理节点4下发修复数据块的任务。
[0075]工作管理节点4接收到来自修复管理节点3的任务后,向数据存储节点5下发修复数据块任务。
[0076]数据存储节点5读取本地保存的数据块信息表,启动修复进程。完成数据块的修复后向修复管理节点3发送修复后数据块所在节点的位置信息。
[0077]修复管理节点3接受到新的修复的数据块位置信息与自己所保存的数据块信息表比对。如果是异或信息表更新,将相应的更新信息更新到异或信息块表;若是元数据表信息表更新,将相应的更新信息更新到元数据表,同时发送更新元数据表发送给元数据管理节点2。
[0078]元数据管理节点2接收到修复管理节点3发送的元数据表更新信息,将接收到的元数据表更新到保存的元数据表。
【权利要求】
1.一种基于纠删码技术改进的云存储实现方法,其特征在于,包括建立元数据管理节点、数据存储节点、修复管理节点、工作管理节点、客户端节点,根据纠删码技术,通过该元数据管理节点、该数据存储节点和该客户端节点进行数据的存储和读取,其中通过该修复管理节点和该工作管理节点修复采用纠删码技术后丢失或损坏的数据块。
2.如权利要求1所述的基于纠删码技术改进的云存储实现方法,其特征在于,还包括生成异或数据块,具体步骤如下: 该修复管理节点向该元数据管理节点发送读取数据块信息表和用户的可靠性等级请求;该修复管理节点根据该数据块信息表和该用户的可靠性等级,向该工作管理节点提交生成异或信息块任务;该工作管理节点根据该数据块信息表和该用户可靠性等级向该数据存储节点提交生成异或信息块任务;该数据存储节点生成异或信息块并将该异或信息块的位置信息返回给该修复管理节点;该修复管理节点生成异或信息块表,同时通知该元数据管理节点该异或信息块已生成。
3.如权利要求1所述的基于纠删码技术改进的云存储实现方法,其特征在于,还包括: 该修复管理节点周期性扫描数据块的状态,当发现异常时,读取用户可靠性等级,并向该工作管理节点提交修复数据块任务,该工作管理节点将该修复数据块任务发送到该数据存储节点,该数据存储节点读取本地数据块信息表并启动修复进程,并向该修复管理节点发送修复后数据块所在节 点的位置信息,该修复管理节点向该元数据管理节点发送元数据表更新信息,该元数据管理节点根据该元数据表更新信息更新元数据表。
4.如权利要求1或3所述的基于纠删码技术改进的云存储实现方法,其特征在于,还包括: 根据修复后数据块所在节点的位置信息与该修复管理节点保存的数据块信息表比对,如果是异或信息表更新,将更新信息更新到异或信息块表;若是元数据表信息表更新,将更新信息更新到元数据表。
5.一种基于纠删码技术改进的云存储系统,其特征在于,包括元数据管理节点、数据存储节点、修复管理节点、工作管理节点、客户端节点,根据纠删码技术,通过该元数据管理节点、该数据存储节点和该客户端节点进行数据的存储和读取,其中通过该修复管理节点和该工作管理节点修复采用纠删码技术后丢失或损坏的数据块。
6.如权利要求5所述的基于纠删码技术改进的云存储系统,其特征在于,还包括生成异或数据块:该修复管理节点用于向该元数据管理节点发送读取数据块信息表和用户的可靠性等级请求;该修复管理节点根据该数据块信息表和该用户的可靠性等级,向该工作管理节点提交生成异或信息块任务;该工作管理节点根据该数据块信息表和该用户可靠性等级向该数据存储节点提交生成异或信息块任务;该数据存储节点生成异或信息块并将该异或信息块的位置信息返回给该修复管理节点;该修复管理节点生成异或信息块表,同时通知该元数据管理节点该异或信息块已生成。
7.如权利要求5所述的基于纠删码技术改进的云存储系统,其特征在于,还包括: 该修复管理节点周期性扫描数据块的状态,当发现异常时,读取用户可靠性等级,并向该工作管理节点提交修复数据块任务,该工作管理节点将该修复数据块任务发送到该数据存储节点,该数据存储节点读取本地数据块信息表并启动修复进程,并向该修复管理节点发送修复后数据块所在节点的位置信息,该修复管理节点向该元数据管理节点发送元数据表更新信息,该元数据管理节点根据该元数据表更新信息更新元数据表。
8.如权利要求5或7所述的基于纠删码技术改进的云存储系统,其特征在于,还包括:根据修复后数据块所在节点的位置信息与该修复管理节点保存的数据块信息表比对,如果是异或信息表更新,将更新信息更新到异或信息块表;若是元数据信息表更新,将更新信息更新 到元数据表。
【文档编号】G06F17/30GK103944981SQ201410148335
【公开日】2014年7月23日 申请日期:2014年4月14日 优先权日:2014年4月14日
【发明者】刘晓东, 孙毓忠 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1