一种基于分布式存储系统的自动配置块存储方法技术方案

技术编号:22329748 阅读:22 留言:0更新日期:2019-10-19 12:12
本发明专利技术涉及一种基于分布式存储系统的自动配置块存储方法,涉及数据分布式存储技术领域。该方法通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,保证了数据的高可用与IO的高效。其中在进行冗余策略设计时,根据写数据块的数量自动配置条带内数据冗余策略,区分这三种情况,一方面能够保证系统的可靠性,另一方面,是能够提高系统的性能,特别适用于非满条带写的情况。

An automatic configuration block storage method based on distributed storage system

【技术实现步骤摘要】
一种基于分布式存储系统的自动配置块存储方法
本专利技术涉及数据分布式存储处理
,具体涉及一种基于分布式存储系统的自动配置块存储方法。
技术介绍
随着数据量的暴增,分布式存储系统因为其灵活的配置、可伸缩的规模、高可靠性,成为存储系统的主流系统。在数据可靠性方面,分布式存储系统一般使用副本或者纠删码(EC)的方法进行数据冗余,提高可靠性。纠删码方法由于其容量占用比的优势,目前在分布式系统应用较广泛。纠删码有多种配比,不同的配比支持的可靠性不同,一般用户会根据数据的重要性来选择。如果定义N表示原始数据的块数、M表示编码数据的块数,那么M则表示任意M份数据被破坏都能根据纠删码计算出原始数据来。在写原始用户数据的时候,数据节点需要根据原始数据的块数N计算出M份编码数据,然后分别存到各自的节点上的硬盘里。比如客户端以N+M的配比写数据到数据节点,并且N份数据是完整的,只需要进行纠删码计算即可。客户端通过文件中记录的元数据信息找到文件所对应的数据节点,然后将数据发过去。由于原始数据是满条带的,所以直接在这个节点上计算出M份编码数据,然后将N+M份数据分发到其他数据节点上,其中一份存入本节点。所有数据只需要放入各节点的内存中即返回,这样客户端的延迟将会大大减少。此时,N+M个节点任意坏M个都不会导致数据丢失。以上是最简单的情况,实际使用过程中远比这个复杂,特别是随机IO测试时,到达数据节点的数据一般不是满条带的,这样如果计算编码就需要从硬盘中读出其他数据补全然后再计算,对于客户端来说延迟较长。跟硬盘阵列比起来差距明显,无法满足用户的需求。所以,非满条带写的性能将成为系统性能的瓶颈。为此,需要提出一种基于分布式存储系统自动配置块存储方法来解决这个问题。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何设计一种基于分布式存储系统的块数据高可用、高性能的存储方法。(二)技术方案为了解决上述技术问题,本专利技术提供了一种基于分布式存储系统的自动配置块存储方法,该方法通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,其中根据写数据块的数量,自动配置条带内数据冗余策略。优选地,底层存储的格式是按条带存储的,每个条带具有N份原始数据的存储空间,以及M份编码数据的存储空间,所述原始输入是指原始写入的数据,所述编码数据是计算出来的数据而非原始写入的数据,设当前存储系统的EC数据冗余配比是N+M,上层应用实际写入数据的块数是x,0<x<=N,首先获取x、N、M之间的关系,根据x,N,M之间的关系,分成以下三种情况进行数据冗余:(1)、若x=N,则以满条带写的方式进行数据冗余,此种情况,采用EC方法进行数据冗余与存储,将原始数据1分块,恰好有N块,在第一节点7上直接计算纠删码,得到原始数据块:第一原始数据块2,第二原始数据块3,……,第N原始数据块4和第一编码数据5,……,第M编码数据6,将所有数据块分别一对一分配到不同的节点:第一节点7,第二节点8,……,第N节点9,第N+1节点10,……,第N+M节点11;此步骤为满条带写方式的数据冗余步骤;(2)、若x<=M,则以块副本写的方式进行数据冗余,此种情况,采用副本方法存储,对每个数据块再存储一个副本,将原始数据1分块,分成x块,直接为每个数据块创建一个副本,第一原始数据块2对应第一副本数据块15,一次直到x,形成第一原始数据块2,……第x原始数据块12,第一副本数据块15,……,第x副本数据块16,以及条带空闲数据块13,将这些数据块分配到不同的节点;此步骤为块副本写的方式数据冗余步骤;(3)、若M<x<N,则以混合EC写的方式进行数据冗余,此种情况,将原始数据1分块,分成x块,对x块数据实现x+N数据配比的纠删编码,在第一节点7上计算纠删码,得到第一原始数据块2,……第x原始数据块12,第一编码数据5,……,第M编码数据6的数据块,将这些数据块分别存储在不同的节点,此时,当前条带上还有N-x个数据块空间未使用,将第一原始数据块2至第N-x原始数据块18的副本数据:第一副本数据15,……,第N-x副本数据19,存储在N-x个未使用的数据块空间,当N-x>=x时,每个原始数据块都有一个副本,当0<N-x<x,只有前N-x原始数据块有一个副本;此步骤为混合EC写的方式数据冗余步骤。优选地,形成的数据块还包括冗余空闲数据块17。本专利技术又提供了一种基于所述的存储方法实现的数据写入方法,包括以下步骤:当写一个或者多个数据块时,首先统计数据块的数量x,读取系统冗余比配置获取N、M,比较x与N、M;当比较得到x=N时,执行满条带写方式的数据冗余步骤,计算编码值,写原始数据与编码数据,更新元数据;当比较得到x<=M时,执行块副本写方式的数据冗余步骤,计算写副本的数量,写副本,更新元数据;当比较得到M<x<N时,混合EC写方式的数据冗余步骤,计算编码值,写原始数据与编码数据,发起写副本任务,更新元数据,先返回写完成,写副本任务首先计算写副本的数量,等待写副本完成。优选地,更新元数据后均返回写完成。本专利技术还提供了一种基于所述的存储方法实现的数据恢复读取方法,包括以下步骤:当需要读取数据时,首先读取元数据,获取当前条带的存储策略;当存储策略是满条带写时,首先直接读取原始数据块,读取成功则直接返回读完成,若有失效数据块,则通过EC算法恢复当前条带写入的原始数据;当存储策略是副本写时,首先直接读取原始数据块,读取成功则直接返回读完成,当读取到失效数据块时,根据元数据查找其副本,从副本读取数据;当存储策略是混合EC写时,首先直接读取原始数据块,读取成功则直接返回读完成,若读取到失效数据块,根据元数据查找其是否存在副本,若存在副本,读取副本内容,否则,根据EC算法恢复当前数据块数据。优选地,不论按照那种存储策略进行数据恢复读取,最后都返回读完成。(三)有益效果本专利技术提出一种基于分布式存储系统自动配置块存储方法,该方法通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,保证了数据的高可用与IO的高效。其中在进行冗余策略设计时,根据写数据块的数量自动配置条带内数据冗余策略,区分这三种情况,一方面能够保证系统的可靠性,另一方面,是能够提高系统的性能,特别适用于非满条带写的情况。附图说明图1为本专利技术满条带写数据冗余原理示意图;图2为本专利技术副本写数据冗余原理示意图;图3为本专利技术EC混合写数据冗余原理示意图。其中,1原始数据2原始数据块13原始数据块24原始数据块N5编码数据16编码数据M7节点18节点29节点N10节点N+111节点N+M12原始数据块x13条带空闲数据块14副本数据15副本数据块116副本数据块x17冗余空闲数据块18原始数据块N-x19副本数据块N-x具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。当前热门的分布式存储系统中,为了提高数据的可用性,采用纠删码(EC)技术进行数据冗余,它底层存储的格式是按条带存储的,每个条带具有N份原始数据的存储空间,以及M份编码数据的存储空间,所述原始输入是指原始写入的数据,所述编码数据是计算出来的数据而非原本文档来自技高网
...

【技术保护点】
1.一种基于分布式存储系统的自动配置块存储方法,其特征在于,该方法通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,其中根据写数据块的数量,自动配置条带内数据冗余策略。

【技术特征摘要】
1.一种基于分布式存储系统的自动配置块存储方法,其特征在于,该方法通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,其中根据写数据块的数量,自动配置条带内数据冗余策略。2.如权利要求1所述的方法,其特征在于,底层存储的格式是按条带存储的,每个条带具有N份原始数据的存储空间,以及M份编码数据的存储空间,所述原始输入是指原始写入的数据,所述编码数据是计算出来的数据而非原始写入的数据,设当前存储系统的EC数据冗余配比是N+M,上层应用实际写入数据的块数是x,0<x<=N,首先获取x、N、M之间的关系,根据x,N,M之间的关系,分成以下三种情况进行数据冗余:若x=N,则以满条带写的方式进行数据冗余,此种情况,采用EC方法进行数据冗余与存储,将原始数据(1)分块,恰好有N块,在第一节点(7)上直接计算纠删码,得到原始数据块:第一原始数据块(2),第二原始数据块(3),……,第N原始数据块(4)和第一编码数据(5),……,第M编码数据(6),将所有数据块分别一对一分配到不同的节点:第一节点(7),第二节点(8),……,第N节点(9),第N+1节点(10),……,第N+M节点(11);此步骤为满条带写方式的数据冗余步骤;若x<=M,则以块副本写的方式进行数据冗余,此种情况,采用副本方法存储,对每个数据块再存储一个副本,将原始数据(1)分块,分成x块,直接为每个数据块创建一个副本,第一原始数据块(2)对应第一副本数据块(15),一次直到x,形成第一原始数据块(2),……第x原始数据块(12),第一副本数据块(15),……,第x副本数据块(16),以及条带空闲数据块(13),将这些数据块分配到不同的节点;此步骤为块副本写的方式数据冗余步骤;若M<x<N,则以混合EC写的方式进行数据冗余,此种情况,将原始数据(1)分块,分成x块,对x块数据实现x+N数据配比的纠删编码,在第一节点(7)上计算纠删码,得到第一原始数据块(2),……第x原始数据块(12),第一编码数据(5),……,第M编码数据(6)的数据块,将这些数据块分别存储在不同的节点,此时,当前条带上还有N-x个数据块空间未使用,将第一原始数据块...

【专利技术属性】
技术研发人员:王施人马连志
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1