一种数据分发方法、数据存储方法、相关装置以及系统制造方法及图纸

技术编号:17561371 阅读:18 留言:0更新日期:2018-03-28 11:59
本发明专利技术实施例公开了一种数据分发方法,用于提升分布式存储系统的性能。本发明专利技术实施例方法包括:数据分发装置接收用户的存储指令,将存储指令指示存储的待存储的数据划分为P个数据段,并确定每个数据段对应的存储节点组,最后将每个数据段分发到对应的存储节点组的主节点上。本发明专利技术实施例还提供了相关的数据存储方法、相关装置以及系统。

A data distribution method, data storage method, related device and system

An embodiment of the invention discloses a data distribution method, which is used to improve the performance of a distributed storage system. The method comprises the following steps: data distribution storage device receives the instruction of the user, will store the instruction stored data to be stored is divided into P segments, each segment corresponding to the storage node group and finally determined, each data segment is distributed to the storage nodes of the node corresponding to the main group. The embodiments of the invention also provide a related data storage method, a related device and a system.

【技术实现步骤摘要】
一种数据分发方法、数据存储方法、相关装置以及系统
本专利技术涉及数据存储领域,尤其涉及一种数据分发方法、数据存储方法、相关装置以及系统。
技术介绍
现阶段的分布式存储系统越来越多的采用纠删码(EC,ErasureCode)技术对数据进行存储。纠删码技术原理是将数据进行分割成m个数据块,并且采用冗余算法对m个数据块进行校验编码,生成k个校验块,该m个数据块与k个校验块组成一个EC条带。每个EC条带能容忍k个数据块或者校验块的丢失。在纠删码技术中,数据分发装置对数据进行EC编码,生成m个数据块与k个校验块后分发给m+k个存储节点。若有多个数据分发装置同时读写相同的EC条带的数据,则需要使用分布式锁来解决多个数据分发装置之间的冲突问题。但是若采用分布式锁方式来解决多数据分发装置冲突的问题,则当遇到上层应用在不同数据分发装置分发IO的情况时,将导致数据分发装置之间频繁的抢锁和锁切换。由于锁切换是一种较为费时的操作,因此频繁的锁切换会产生较大的读写时延,不能满足实际应用的需求。
技术实现思路
本专利技术实施例提供了一种数据分发方法,用于提升分布式存储系统的读写性能。本专利技术实施例的第一方面提供了一种数据分发方法,应用于分布式存储系统,所述分布式存储系统通过纠删码EC条带来存储数据,每个EC条带包括数据部分和校验部分,所述每个EC条带的数据部分包括m个数据块,所述每个EC条带的校验部分包括对所述m个数据块进行校验编码后得到的k个校验块,所述分布式存储系统包括多个存储节点,所述多个存储节点组成多个存储节点组,每个存储节点组包括的存储节点的个数不小于m+k,每个存储节点组指定一个主存储节点,所述m、k均为正整数;所述方法包括:接收存储指令,所述存储指令携带待存储的数据;将所述待存储的数据划分为P个数据段,其中,每个数据段对应于一个EC条带,所述每个数据段的大小不大于Z,所述Z为m个数据块的大小,所述P为正整数;确定所述每个数据段对应的存储节点组;将所述每个数据段分发到确定的所述每个数据段对应的存储节点组的主存储节点上。结合本专利技术实施例的第一方面,本专利技术实施例的第一方面的第一种实现方式中,所述分布式存储系统的逻辑卷包括多个逻辑区域,每个逻辑区域的大小为Z且互不重叠;所述将所述待存储的数据划分为P个数据段包括:根据所述待存储的数据的逻辑地址,将所述待存储的数据划分为P个数据段,其中,每个数据段落在一个所述逻辑区域中。结合本专利技术实施例的第一方面的第一种实现方式,本专利技术实施例的第一方面的第二种实现方式中,所述P个数据段中的第1个数据段的起始地址为所述待存储的数据的起始地址,所述P个数据段中的第p个数据段的起始地址为所述第p个数据段所落在逻辑区域的起始地址,2≤p≤P。结合本专利技术实施例的第一方面的第一种实现方式,本专利技术实施例的第一方面的第三种实现方式还包括:预先设置并记录所述每个逻辑区域与所述每个存储节点组之间的对应关系;所述确定所述每个数据段对应的存储节点组包括:根据所述每个逻辑区域与所述每个存储节点组之间的对应关系,确定所述每个数据段所落在的逻辑区域对应的存储节点组。结合本专利技术实施例的第一方面的第三种实现方式,本专利技术实施例的第一方面的第四种实现方式中,每个所述逻辑区域唯一对应一个key值,所述预先设置并记录所述每个逻辑区域与所述每个存储节点组的对应关系包括:预先设置并记录所述每个存储节点组对应的key值;根据所述每个逻辑区域与所述每个存储节点组之间的对应关系,确定所述每个数据段所落在的逻辑区域对应的存储节点组包括:根据所述每个数据段所落在的逻辑区域,确定所述每个数据段的key值;根据所述每个数据段的key值,确定所述每个数据段对应的存储节点组。本专利技术实施例的第二方面提供了一种数据存储方法,适用于分布式存储系统,所述分布式存储系统通过纠删码EC条带来存储数据,每个EC条带包括数据部分和校验部分,所述每个EC条带的数据部分包括m个数据块,所述每个EC条带的校验部分包括对所述m个数据块进行校验编码后得到的k个校验块,所述分布式存储系统包括多个存储节点,所述多个存储节点组成多个存储节点组,每个存储节点组包括的存储节点的个数不小于m+k,每个存储节点组指定一个主存储节点,所述m、k均为正整数;所述多个存储节点组中的任意一个存储节点组的主存储节点执行所述数据存储方法,所述方法包括:接收第一数据段,所述第一数据段的大小不大于Z,其中,Z为m个数据块的大小;根据所述第一数据段进行EC编码得到第一EC条带,所述第一EC条带包括m个第一数据块和k个第一校验块;将所述第一EC条带分发给m+k个存储节点以执行存储,其中,所述m+k个存储节点中的每个存储节点负责存储所述第一EC条带的m个第一数据块或者k个第一校验块中的任一个。结合本专利技术实施例的第二方面,本专利技术实施例的第二方面的第一种实现方式中,所述分布式存储系统的逻辑卷包括多个逻辑区域,每个逻辑区域的大小为Z且互不重叠,所述第一数据段落在一个所述逻辑区域中。结合本专利技术实施例的第二方面的第一种实现方式,本专利技术实施例的第二方面的第二种实现方式中,在所述将所述第一EC条带分发给m+k个存储节点以执行存储之前,所述方法还包括:接收第二数据段,所述第二数据段与所述第一数据段落在相同的逻辑区域且所述第二数据段的逻辑地址与所述第一数据段的逻辑地址存在重叠;根据所述第二数据段进行EC编码得到第二EC条带,所述第二EC条带包括m个第二数据块和k个第二校验块;所述将所述第一EC条带分发给m+k个存储节点以执行存储具体包括:确定所述第一EC条带与所述第二EC条带的串行分发顺序,并根据所述串行分发顺序,将所述第一EC条带与所述第二EC条带串行分发给所述m+k个存储节点。结合本专利技术实施例的第二方面的第二种实现方式,本专利技术实施例的第二方面的第三种实现方式中,所述确定所述第一EC条带与所述第二EC条带的串行分发顺序,并根据所述串行分发顺序,将所述第一EC条带与所述第二EC条带串行分发给所述m+k个存储节点以执行存储包括:若所述第一数据段的接收时间早于所述第二数据段的接收时间,则将所述第一EC条带先分发给m+k个存储节点以执行存储,在接收到所述m+k个存储节点成功存储所述第一EC条带的响应消息之后,再将所述第二EC条带分发给所述m+k个存储节点以执行存储;或者,若所述第一数据段的接收时间晚于所述第二数据段的接收时间,则将所述第二EC条带先分发给m+k个存储节点以执行存储,在接收到所述m+k个存储节点成功存储所述第二EC条带的响应消息之后,再将所述第一EC条带分发给所述m+k个存储节点以执行存储。结合本专利技术实施例的第二方面的第一种实现方式,本专利技术实施例的第二方面的第四种实现方式中,在根据所述第一数据段进行EC编码得到第一EC条带之前还包括:接收第三数据段,所述第三数据段与所述第一数据段落在相同的逻辑区域且所述第三数据段的逻辑地址与所述第一数据段的逻辑地址不存在重叠;将所述第三数据合并到所述第一数据段中,并触发所述根据所述第一数据段进行EC编码得到第一EC条带的步骤。结合本专利技术实施例的第二方面、第二方面的第一种至第四种实现方式中的任一项,本专利技术实施例的第二方面的第五种实现方式中,所述根据所述第一数据段进行EC编码得到第一EC条带,所本文档来自技高网...
一种数据分发方法、数据存储方法、相关装置以及系统

【技术保护点】
一种数据分发方法,应用于分布式存储系统,其特征在于,所述分布式存储系统通过纠删码EC条带来存储数据,每个EC条带包括数据部分和校验部分,所述每个EC条带的数据部分包括m个数据块,所述每个EC条带的校验部分包括对所述m个数据块进行校验编码后得到的k个校验块,所述分布式存储系统包括多个存储节点,所述多个存储节点组成多个存储节点组,每个存储节点组包括的存储节点的个数不小于m+k,每个存储节点组指定一个主存储节点,所述m、k均为正整数;所述方法包括:接收存储指令,所述存储指令携带待存储的数据;将所述待存储的数据划分为P个数据段,其中,每个数据段对应于一个EC条带,所述每个数据段的大小不大于Z,所述Z为m个数据块的大小,所述P为正整数;确定所述每个数据段对应的存储节点组;将所述每个数据段分发到确定的所述每个数据段对应的存储节点组的主存储节点上。

【技术特征摘要】
1.一种数据分发方法,应用于分布式存储系统,其特征在于,所述分布式存储系统通过纠删码EC条带来存储数据,每个EC条带包括数据部分和校验部分,所述每个EC条带的数据部分包括m个数据块,所述每个EC条带的校验部分包括对所述m个数据块进行校验编码后得到的k个校验块,所述分布式存储系统包括多个存储节点,所述多个存储节点组成多个存储节点组,每个存储节点组包括的存储节点的个数不小于m+k,每个存储节点组指定一个主存储节点,所述m、k均为正整数;所述方法包括:接收存储指令,所述存储指令携带待存储的数据;将所述待存储的数据划分为P个数据段,其中,每个数据段对应于一个EC条带,所述每个数据段的大小不大于Z,所述Z为m个数据块的大小,所述P为正整数;确定所述每个数据段对应的存储节点组;将所述每个数据段分发到确定的所述每个数据段对应的存储节点组的主存储节点上。2.根据权利要求1所述的数据分发方法,其特征在于,所述分布式存储系统的逻辑卷包括多个逻辑区域,每个逻辑区域的大小为Z且互不重叠;所述将所述待存储的数据划分为P个数据段包括:根据所述待存储的数据的逻辑地址,将所述待存储的数据划分为P个数据段,其中,每个数据段落在一个所述逻辑区域中。3.根据权利要求2所述的数据分发方法,其特征在于,所述P个数据段中的第1个数据段的起始地址为所述待存储的数据的起始地址,所述P个数据段中的第p个数据段的起始地址为所述第p个数据段所落在逻辑区域的起始地址,2≤p≤P。4.根据权利要求2所述的数据分发方法,其特征在于,所述方法还包括:预先设置并记录所述每个逻辑区域与所述每个存储节点组之间的对应关系;所述确定所述每个数据段对应的存储节点组包括:根据所述每个逻辑区域与所述每个存储节点组之间的对应关系,确定所述每个数据段所落在的逻辑区域对应的存储节点组。5.根据权利要求4所述的数据分发方法,其特征在于,每个所述逻辑区域唯一对应一个key值,所述预先设置并记录所述每个逻辑区域与所述每个存储节点组的对应关系包括:预先设置并记录所述每个存储节点组对应的key值;根据所述每个逻辑区域与所述每个存储节点组之间的对应关系,确定所述每个数据段所落在的逻辑区域对应的存储节点组包括:根据所述每个数据段所落在的逻辑区域,确定所述每个数据段的key值;根据所述每个数据段的key值,确定所述每个数据段对应的存储节点组。6.一种数据存储方法,适用于分布式存储系统,其特征在于,所述分布式存储系统通过纠删码EC条带来存储数据,每个EC条带包括数据部分和校验部分,所述每个EC条带的数据部分包括m个数据块,所述每个EC条带的校验部分包括对所述m个数据块进行校验编码后得到的k个校验块,所述分布式存储系统包括多个存储节点,所述多个存储节点组成多个存储节点组,每个存储节点组包括的存储节点的个数不小于m+k,每个存储节点组指定一个主存储节点,所述m、k均为正整数;所述多个存储节点组中的任意一个存储节点组的主存储节点执行所述数据存储方法,所述方法包括:接收第一数据段,所述第一数据段的大小不大于Z,其中,Z为m个数据块的大小;根据所述第一数据段进行EC编码得到第一EC条带,所述第一EC条带包括m个第一数据块和k个第一校验块;将所述第一EC条带分发给m+k个存储节点以执行存储,其中,所述m+k个存储节点中的每个存储节点负责存储所述第一EC条带的m个第一数据块或者k个第一校验块中的任一个。7.根据权利要求6所述的数据存储方法,其特征在于,所述分布式存储系统的逻辑卷包括多个逻辑区域,每个逻辑区域的大小为Z且互不重叠,所述第一数据段落在一个所述逻辑区域中。8.根据权利要求7所述的数据存储方法,其特征在于,在所述将所述第一EC条带分发给m+k个存储节点以执行存储之前,所述方法还包括:接收第二数据段,所述第二数据段与所述第一数据段落在相同的逻辑区域且所述第二数据段的逻辑地址与所述第一数据段的逻辑地址存在重叠;根据所述第二数据段进行EC编码得到第二EC条带,所述第二EC条带包括m个第二数据块和k个第二校验块;所述将所述第一EC条带分发给m+k个存储节点以执行存储具体包括:确定所述第一EC条带与所述第二EC条带的串行分发顺序,并根据所述串行分发顺序,将所述第一EC条带与所述第二EC条带串行分发给所述m+k个存储节点。9.根据权利要求8所述的数据存储方法,其特征在于,所述确定所述第一EC条带与所述第二EC条带的串行分发顺序,并根据所述串行分发顺序,将所述第一EC条带与所述第二EC条带串行分发给所述m+k个存储节点以执行存储包括:若所述第一数据段的接收时间早于所述第二数据段的接收时间,则将所述第一EC条带先分发给m+k个存储节点以执行存储,在接收到所述m+k个存储节点成功存储所述第一EC条带的响应消息之后,再将所述第二EC条带分发给所述m+k个存储节点以执行存储;或者,若所述第一数据段的接收时间晚于所述第二数据段的接收时间,则将所述第二EC条带先分发给m+k个存储节点以执行存储,在接收到所述m+k个存储节点成功存储所述第二EC条带的响应消息之后,再将所述第一EC条带分发给所述m+k个存储节点以执行存储。10.根据权利要求7所述的数据存储方法,其特征在于,在根据所述第一数据段进行EC编码得到第一EC条带之前,所述方法还包括:接收第三数据段,所述第三数据段与所述第一数据段落在相同的逻辑区域且所述第三数据段的逻辑地址与所述第一数据段的逻辑地址不存在重叠;将所述第三数据合并到所述第一数据段中,并触发所述根据所述第一数据段进行EC编码得到第一EC条带的步骤。11.根据权利要求6至10中任一项所述的数据存储方法,其特征在于,所述根据所述第一数据段进行EC编码得到第一EC条带,所述第一EC条带包括m个第一数据块和k个第一校验块包括:当所述第一数据段的大小等于Z,则将所述第一数据段划分为m个第一数据块,并对所述m个第一数据块进行校验编码得到的k个第一校验块;或者,当所述第一数据段的大小小于Z,则使用已存储的数据将所述第一数据段的大小补齐为Z,然后将补齐后的第一数据段划分为m个第一数据块,并对所述m个第一数据块进行校验编码得到的k个第一校验块。12.一种数据分发装置,应用于分布式存储系统,其特征在于,所述分布式...

【专利技术属性】
技术研发人员:王道辉张烽樊伟张志乐曾永强
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1