基于纠删码的分布式文件系统存储方法及装置与流程

文档序号:12786217阅读:390来源:国知局
基于纠删码的分布式文件系统存储方法及装置与流程

本发明涉及计算机互联网技术领域,尤其涉及一种基于纠删码的分布式文件系统存储方法及装置。



背景技术:

随着网络技术及信息处理技术的不断发展,个人数据和企业数据的产生量呈现爆炸性膨胀的趋势,IT系统正面临着海量数据存储成本高、管理困难、可靠性低的问题,为了充分利用资源,减少重复的投资,数据存储作为IT系统的主要架构和基础设施之一,逐步被作为一个完整的系统从IT系统中独立出来。分布式文件系统因为具有海量数据存储、高扩展性、高性能、高可靠性、高可用性的特点,目前正被作为企业海量数据存储方案被业界所广泛讨论和应用。因此对于分布式文件系统的研究不仅紧跟目前发展的趋势,而且具有较高的应用价值。

在如金融行业、保险行业、电信行业等对数据安全可靠性要求高的行业,为了保证数据的高可靠性,通常采用数据冗余备份的方法进行容灾。传统的数据容灾方式通过对原始数据进行完全复制备份,将备份数据存储在异地的存储服务端上,但是这种容灾方式花费的成本十分高昂。



技术实现要素:

本发明的主要目的在于提供一种基于纠删码的分布式文件系统存储方法,旨在降低待存储数据所占用的空间。

为实现上述目的,本发明提供的一种基于纠删码的分布式文件系统存储方法,所述基于纠删码的分布式文件系统存储方法包括:

获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;

对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;

存储K份所述待存储数据和M份所述校验数据。

优选地,所述对所述待存储数据和所述校验数据进行分片处理之前还包括:

根据存储空间设置适当的纠删码比例,即K:M。

优选地,所述对所述待存储数据和所述校验数据进行分片处理包括:

判断所述待存储数据的长度是否为分片长度的K倍;

若否,则在所述待存储数据的末端添加数据以使所述待存储数据的长度达到分片长度的K倍。

优选地,所述存储K份所述待存储数据和M份所述校验数据包括:

判断所述客户端请求的存储地址是否为缓存层;

若是,则将所述K份所述待存储数据和M份所述校验数据存入所述缓存层;

若否,则将所述K份所述待存储数据和M份所述校验数据存入存储层。

优选地,K份所述待存储数据和M份所述校验数据中均包括用于查找自身数据的检索信息。

此外,为实现上述目的,本发明还提供一种基于纠删码的分布式文件系统存储装置,所述基于纠删码的分布式文件系统存储装置包括:

获取模块,用于获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;

分片模块,用于对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;

存储模块,用于存储K份所述待存储数据和M份所述校验数据。

优选地,所述基于纠删码的分布式文件系统存储装置还包括:

设置模块,用于根据存储空间设置适当的纠删码比例,即K:M。

优选地,所述分片模块包括:

第一判断单元,用于判断所述待存储数据的长度是否为分片长度的K倍;

添加单元,用于在所述待存储数据的长度不足分片长度的整数倍时,在所述待存储数据的末端添加数据以使所述待存储数据的长度达到分片长度的K倍。

优选地,所述存储模块包括:

第二判断单元,用于判断所述客户端请求的存储地址是否为缓存层;

第一存储单元,用于在所述客户端请求的存储地址是缓存层时,将所述K份所述待存储数据和M份所述校验数据存入所述缓存层;

第二存储单元,用于在所述客户端请求的存储地址不是缓存层时,将所述K份所述待存储数据和M份所述校验数据存入存储层。

优选地,K份所述待存储数据和M份所述校验数据中均包括用于查找自身数据的检索信息。

本发明通过获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;存储K份所述待存储数据和M份所述校验数据。在后续读取待存储数据时,纠删码函数读取K份所述待存储数据能够重建原所述待存储数据,若在待存储数据损坏的情况下,只要对应的校对数据的损坏数量在M份以内,依旧可以通过已有的待存储数据计算出原所述待存储数据,相较于现有技术中需要对原始数据进行完全复制备份的方式,降低了待存储数据所占用的空间。

附图说明

图1为本发明基于纠删码的分布式文件系统存储方法第一实施例的流程示意图;

图2为本发明基于纠删码的分布式文件系统存储方法第二实施例的流程示意图;

图3为本发明基于纠删码的分布式文件系统存储方法第三实施例的流程示意图;

图4为本发明基于纠删码的分布式文件系统存储方法第四实施例的流程示意图;

图5为本发明基于纠删码的分布式文件系统存储装置第一实施例的功能模块示意图;

图6为本发明基于纠删码的分布式文件系统存储装置第二实施例的功能模块示意图;

图7为本发明基于纠删码的分布式文件系统存储装置第三实施例中分片模块的细化功能模块示意图;

图8为本发明基于纠删码的分布式文件系统存储装置第四实施例中存储模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种基于纠删码的分布式文件系统存储方法,请参阅图1,在第一实施例中,该基于纠删码的分布式文件系统存储方法包括:

步骤S10,获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;

本发明实施例提供的基于纠删码的分布式文件系统存储方法用于分布式文件系统中的存储装置存储客户端的数据。

客户端需要待存储数据时向存储装置发出请求,在获准后将待存储写入所述存储装置。所述存储装置获取客户端写入的所述待存储数据,纠删码函数会根据所述待存储数据通过纠删码编码方式得到所述待存储数据对应的校验数据。所述校验数据为一组描述所述待存储数据的数字,在部分所述待存储数据丢失后可通过算法计算出丢失的待存储数据。

步骤S20,对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;

步骤S30,存储K份所述待存储数据和M份所述校验数据。

本发明通过获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;存储K份所述待存储数据和M份所述校验数据。在后续读取待存储数据时,纠删码函数读取K份所述待存储数据能够重建原所述待存储数据,若在待存储数据损坏的情况下,只要对应的校对数据的损坏数量在M份以内,依旧可以通过已有的待存储数据计算出原所述待存储数据,相较于现有技术中需要对原始数据进行完全复制备份的方式,降低了待存储数据所占用的空间。

进一步地,K份所述待存储数据和M份所述校验数据中包括用于查找自身数据的检索信息。

在客户端读取所述待存储数据时能够根据所述检索信息查读取到目标待存储数据,避免了系统全盘搜索,不仅加快了读取速度也减轻了系统的负载,而且优化了分布式文件系统的性能。

进一步地,请参阅图2,基于本发明基于纠删码的分布式文件系统存储方法第一实施例,本发明基于纠删码的分布式文件系统存储方法第二实施例中,所述步骤S20之前还包括:

步骤S40,根据存储空间设置适当的纠删码比例,即K:M。

M数量越多,整体损坏程度修复的几率就越高,但是占据的存储空间就会越多,根据所述存储空间设置设置适当的纠删码比例能够更好的提升用户体验,所述纠删码比例可以是用户预先根据存储条件设定,或是由系统预设的。

本实施例中,存储装置在分片处理之前先根据存储空间设置适当的纠删码比例,之后按照所述纠删码比例对所述待存储数据和所述校验数据进行分片处理,能够得到最优的存储效果。

进一步地,请参阅图3,基于本发明基于纠删码的分布式文件系统存储方法第一实施例,本发明基于纠删码的分布式文件系统存储方法第三实施例中,所述步骤S20之前包括:

步骤S50,判断所述待存储数据的长度是否为分片长度的K倍;

步骤S60,若否,则在所述待存储数据的末端添加数据以使所述待存储数据的长度达到分片长度的K倍。

需要说明的是,所述待存储数据的长度只会出现短于分片长度的K倍,或等于分片长度的K倍,并不会出现大于分片长度K倍的情况。例如,当所述待存储数据的长度为超过分片长度的2倍,不足分片长度的三倍时,K=3。

本实施例中,分片模块根据待存储数据的长度判断是否为分片长度的K倍,在不足待存储数据的长度的K倍时,通过自行补满数据至所述待存储数据的长度达到分片长度的K倍。通过这个步骤,能够保证分片后每个片段的数据长度都是相同的,可以均衡负载,提高系统性能。

进一步地,请参阅图4,基于本发明基于纠删码的分布式文件系统存储方法第一实施例,本发明基于纠删码的分布式文件系统存储方法第四实施例中,所述步骤S30包括:

步骤S31,判断所述客户端请求的存储地址是否为缓存层;

步骤S32,若是,则将所述K份所述待存储数据和M份所述校验数据存入所述缓存层;

步骤S33,若否,则将所述K份所述待存储数据和M份所述校验数据存入存储层。

本实施例中,存储采用缓存分层的方式进行存储,缓存分层包含了使用快速、昂贵的存储设备来创建一个池,用这个存储池作为缓存层;同时包含了一个使用低速、便宜设备组成的池作为经济的存储层。

对于分布式文件系统这种大型的架构系统,通过缓存分层能够更好地优化存储集群;在使用缓存时,尽管多个客户端需要多个缓存,但是其存储的热数据不一样,存储和读取时I/O的利用率更高。

本发明还提供一种基于纠删码的分布式文件系统存储装置,请参照阅5,在第一实施例中,本发明提供的基于纠删码的分布式文件系统存储装置100包括:

获取模块10,用于获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;

本发明实施例提供的基于纠删码的分布式文件系统存储方法用于分布式文件系统中的存储装置存储客户端的数据。

客户端需要待存储数据时向存储装置发出请求,在获准后将待存储写入所述存储装置。所述存储装置获取客户端写入的所述待存储数据,纠删码函数会根据所述待存储数据通过纠删码编码方式得到所述待存储数据对应的校验数据。所述校验数据为一组描述所述待存储数据的数字,在部分所述待存储数据丢失后可通过算法计算出丢失的待存储数据。

分片模块20,用于对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;

存储模块30,用于存储K份所述待存储数据和M份所述校验数据。

本发明通过获取客户端写入的待存储数据,并通过纠删码编码方式得到所述待存储数据对应的校验数据;对所述待存储数据和所述校验数据进行分片处理,得到K份的所述待存储数据和M份的所述校验数据;其中,K和M为正整数;存储K份所述待存储数据和M份所述校验数据。在后续读取待存储数据时,纠删码函数读取K份所述待存储数据能够重建原所述待存储数据,若在待存储数据损坏的情况下,只要对应的校对数据的损坏数量在M份以内,依旧可以通过已有的待存储数据计算出原所述待存储数据,相较于现有技术中需要对原始数据进行完全复制备份的方式,降低了待存储数据所占用的空间。

进一步地,K份所述待存储数据和M份所述校验数据中包括用于查找自身数据的检索信息。

在客户端读取所述待存储数据时能够根据所述检索信息查读取到目标待存储数据,避免了系统全盘搜索,不仅加快了读取速度也减轻了系统的负载,而且优化了分布式文件系统的性能。

进一步地,请参阅图6,基于本发明基于纠删码的分布式文件系统存储装置的第一实施例,在本发明基于纠删码的分布式文件系统存储装置的第二实施例中,所述基于纠删码的分布式文件系统存储装置100还包括:

设置模块40,用于根据存储空间设置适当的纠删码比例,即K:M。

M数量越多,整体损坏程度修复的几率就越高,但是占据的存储空间就会越多,根据所述存储空间设置设置适当的纠删码比例能够更好的提升用户体验,所述纠删码比例可以是用户预先根据存储条件设定,或是由系统预设的。

本实施例中,存储装置在分片处理之前先根据存储空间设置适当的纠删码比例,之后按照所述纠删码比例对所述待存储数据和所述校验数据进行分片处理,能够得到最优的存储效果。

进一步地,请参阅图7,基于本发明基于纠删码的分布式文件系统存储装置的第一实施例,在本发明基于纠删码的分布式文件系统存储装置的第三实施例中,所述分片模块20包括:

第一判断单元21,用于判断所述待存储数据的长度是否为分片长度的K倍;

添加单元22,用于在所述待存储数据的长度不足分片长度的整数倍时,在所述待存储数据的末端添加数据以使所述待存储数据的长度达到分片长度的K倍。

需要说明的是,所述待存储数据的长度只会出现短于分片长度的K倍,或等于分片长度的K倍,并不会出现大于分片长度K倍的情况。例如,当所述待存储数据的长度为超过分片长度的2倍,不足分片长度的三倍时,K=3。

本实施例中,分片模块根据待存储数据的长度判断是否为分片长度的K倍,在不足待存储数据的长度的K倍时,通过自行补满数据至所述待存储数据的长度达到分片长度的K倍。通过这个步骤,能够保证分片后每个片段的数据长度都是相同的,可以均衡负载,提高系统性能。

进一步地,请参阅图8,基于本发明基于纠删码的分布式文件系统存储装置的第一实施例,在本发明基于纠删码的分布式文件系统存储装置的第四实施例中,所述存储模块30包括:

第二判断单元31,用于判断所述客户端请求的存储地址是否为缓存层;

第一存储单元32,用于在所述客户端请求的存储地址是缓存层时,将所述K份所述待存储数据和M份所述校验数据存入所述缓存层;

第二存储单元33,用于在所述客户端请求的存储地址不是缓存层时,将所述K份所述待存储数据和M份所述校验数据存入存储层。

本实施例中,存储采用缓存分层的方式进行存储,缓存分层包含了使用快速、昂贵的存储设备来创建一个池,用这个存储池作为缓存层;同时包含了一个使用低速、便宜设备组成的池作为经济的存储层。

对于分布式文件系统这种大型的架构系统,通过缓存分层能够更好地优化存储集群;在使用缓存时,尽管多个客户端需要多个缓存,但是其存储的热数据不一样,存储和读取时I/O的利用率更高。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1