写数据方法与计算节点以及分布式存储系统技术方案

技术编号:20483683 阅读:17 留言:0更新日期:2019-03-02 18:30
在分布式存储系统中,计算节点接收写命令后,所述写命令中携带目标数据,按照写命令的标签查询所述写命令对应的目标分区;查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘;将所述第一数据存储到已选状态的硬盘,但是不把所述目标数据存入备选状态的硬盘。

【技术实现步骤摘要】
写数据方法与计算节点以及分布式存储系统
本专利技术涉及存储领域,特别涉及分布式存储技术。
技术介绍
在现有技术中,分布式存储系统被划分出多个故障域(一般是以服务器或者机柜为粒度来划分)。同一个故障域中只会存放一个副本,避免单个故障域失效导致多个副本不可访问,因此系统要求故障域的数量必须大于等于副本数。例如,三副本场景下,至少需要三个或三个以上的故障域,才能保证同一个故障域中不会放置两个副本。当某个故障域失效后,该故障域中的数据会在其他故障域上进行重建,以保证副本数量的完整性。在现有技术方案下,一旦创建存储池之后,后续难以对存储池的副本进行调整。例如三副本的分布式存储系统只能按照三副本的方式对数据进行存储,无法增加副本数或者减少副本数。如需强制减少副本数,只能逐个减容故障域直到故障域的数量和副本数相等,然后再强制移除一个故障域,由于副本之间存在互斥规则,因此数据无法完成重建,以此来达到降低副本数的目的。以三副本降低到二副本为例,其方案是:首先把分布式存储系统的故障域总数降低到三个;然后以三副本的方式对数据进行存储;接着强行移除掉一个故障域,仅保留二个故障域;这样,保留的二个故障域中各拥有一个副本,因此达到了从三副本降低到二副本的目的。可以看得出来,这种方案操作复杂,而且必须强行移除故障域,局限性很强。
技术实现思路
第一方面,本专利技术提供一种写数据方法的实施例,用于分布式存储系统存储数据,所述分布式存储系统包括计算节点和多个存储节点,每个存储节点包括硬盘,所述方法包括:所述计算节点接收写命令,所述写命令中携带目标数据和目标标签,所述目标标签用于标识所述目标数据;所述计算节点查询所述目标标签所对应的目标分区;所述计算节点查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘,所述已选状态的硬盘可用于存储所述目标数据的副本,其中,所述具有已选状态的硬盘包括主硬盘和从硬盘,所述备选状态的硬盘不用于存储所述目标数据的副本;所述计算节点将所述目标数据和已选硬盘清单发送给所述主硬盘所在的存储节点,所述已选硬盘清单中包括从硬盘ID且不包括备选硬盘ID;所述主硬盘所在的存储节点把所述目标数据存入所述主硬盘,以及,根据从硬盘ID将所述目标数据发送给所述从硬盘所在的存储节点;所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘。基于该方案,目标数据被存储的副本数量与目标分区对应的硬盘数量不再保持一致,从而更有灵活性。在第一方面的第一种可能实现方式中,在所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘之后,进一步包括:把所述目标分区所对应的备选硬盘的状态更新为已选硬盘;从已经存储了所述目标数据的主硬盘或者从硬盘中获取所述目标数据,把获取的所述目标数据存储到新的已选硬盘。基于该方案,可以对已选硬盘和备选硬盘的比例进行调整,从而调整副本数量。在第一方面的第二种可能实现方式中,所述目标数据可以是数据分块,所述目标标签是逻辑单元号标识LUNID和逻辑块地址LBA的组合。该方案提供了目标数据和目标标签的一种具体示例。在第一方面的第三种可能实现方式中,所述目标数据可以是键值对(keyvaluepair),所述目标标签是键(key)。该方案提供了目标数据和目标标签的一种具体示例。在第一方面的第四种可能实现方式中,查询所述目标标签所对应的目标分区,具体包括:计算目标标签的哈希值,根据所述哈希值与所述目标分区之间的对应关系,查询与所述目标标签所对应的目标分区所述目标标签所对应的目标分区。该方案提供了一种查询目标分区的具体操作方案。在第一方面的第五种可能实现方式中,根据权利要求1所述的方法,其中:所述目标分区对应的多个硬盘的状态,和所述目标分区相关。该方案解释了硬盘的状态是和目标分区相关的。同一个分区对两个分区而言,状态可以不一样。第二方面,提供一种写数据方法的实施例,用于向分布式存储系统写入数据,所述分布式存储系统包括计算节点和多个存储节点,每个存储节点包括硬盘,所述方法包括:所述计算节点接收写命令,所述写命令中携带目标数据和目标标签,所述目标标签用于标识所述目标数据;所述计算节点查询所述目标标签所对应的目标分区;所述计算节点查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘,所述已选状态的硬盘可用于存储所述目标数据的副本,所述已选状态的硬盘不用于存储所述目标数据的副本;所述计算节点按照目标分区对应的多个硬盘ID中的已选状态的硬盘ID,将所述目标数据发送给所述具有已选状态的硬盘所在的存储节点。基于该方案,目标数据被存储的副本数量与目标分区对应的硬盘数量不再保持一致,从而更有灵活性。该方案中,计算节点将所述目标数据发送给所述具有已选状态的硬盘所在的存储节点涵盖了两种情况:第一种情况类似于第一方面提供的方案,计算服务器把所述目标数据发送给所述主硬盘所在的存储服务器,所述主硬盘所在的存储服务器把所述目标数据发送给从硬盘所在的存储服务器,然后由从硬盘所在的服务器进行存储;第二组情况是不区分主硬盘和从硬盘,按照目标分区所对应的已选硬盘,计算服务器直接把所述目标数据发送给已选硬盘所在的存储服务器进行存储。在第二方面的第一种可能实现方式中,所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘之后,进一步包括:把所述目标分区所对应的备选硬盘的状态更新为已选硬盘;从已经存储了所述目标数据的主硬盘或者从硬盘中获取所述目标数据,把获取的所述目标数据存储到新的已选硬盘。该方案可能更新已选硬盘和备选硬盘的比例。本专利技术还提供分布式存储系统和计算节点的实施例,具有上述对应方法的效果。附图说明图1是分布式存储系统实施例拓扑图;图2是分区与硬盘状态对应关系的实施例示意图;图3是分区与硬盘状态对应关系的又一实施例示意图;图4是分区与硬盘状态对应关系的再一实施例示意图;图5是向分布式存储系统写入数据的实施例流程图;图6是分区与硬盘状态对应关系的另一实施例示意图。具体实施方式在分布式存储系统中,把相同的数据重复存储在不同的存储服务器上,每个存储服务器上的数据称为一个副本(copy),这种保护数据的方式称为多副本(multi-copy),也称为镜像(mirror)。这里的数据例如是数据块或者对象。数据块是块存储的数据单位,例如存储区域网(storageareanetwork,SAN);对象是对象存储(objectstorage)的数据单位,例如云对象存储(cloudobjectstorage)或者键值(key-value,KV)存储。参见附图1,主机11和分布式存储系统通信,分布式存储系统包括存储服务器12、存储服务器13、存储服务器14和存储服务器15,还包括计算服务器16、计算服务器17和元数据服务器18,各个服务器的数量可更多(未图示)。其中,所述计算服务器用于接收从主机11发出的数据,计算数据对应的分区;所述元数据服务器18中存储有分区对应的硬盘,在本专利技术实施例中,所述元数据服务器18还额外存储有分区对应的硬盘的状态,仅已选状态的硬盘用于存储数据,备选状态的硬盘不用于存储数据。元数据服务器对分区和硬盘关系的对应表、以及硬盘状态进行管理。通过查询元数据服务器18本文档来自技高网...

【技术保护点】
1.一种写数据方法,用于向分布式存储系统的存储节点中写入数据,所述分布式存储系统包括计算节点和所述存储节点,每个存储节点包括硬盘,所述方法包括:所述计算节点接收写命令,所述写命令中携带目标数据和目标标签,所述目标标签用于标识所述目标数据;所述计算节点查询所述目标标签所对应的目标分区;所述计算节点查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘,所述已选状态的硬盘可用于存储所述目标数据的副本,其中,所述具有已选状态的硬盘包括主硬盘和从硬盘,所述备选状态的硬盘不用于存储所述目标数据的副本;所述计算节点将所述目标数据和已选硬盘清单发送给所述主硬盘所在的存储节点,所述已选硬盘清单中包括从硬盘ID且不包括备选硬盘ID;所述主硬盘所在的存储节点把所述目标数据存入所述主硬盘,以及,根据从硬盘ID将所述目标数据发送给所述从硬盘所在的存储节点;所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘。

【技术特征摘要】
1.一种写数据方法,用于向分布式存储系统的存储节点中写入数据,所述分布式存储系统包括计算节点和所述存储节点,每个存储节点包括硬盘,所述方法包括:所述计算节点接收写命令,所述写命令中携带目标数据和目标标签,所述目标标签用于标识所述目标数据;所述计算节点查询所述目标标签所对应的目标分区;所述计算节点查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘,所述已选状态的硬盘可用于存储所述目标数据的副本,其中,所述具有已选状态的硬盘包括主硬盘和从硬盘,所述备选状态的硬盘不用于存储所述目标数据的副本;所述计算节点将所述目标数据和已选硬盘清单发送给所述主硬盘所在的存储节点,所述已选硬盘清单中包括从硬盘ID且不包括备选硬盘ID;所述主硬盘所在的存储节点把所述目标数据存入所述主硬盘,以及,根据从硬盘ID将所述目标数据发送给所述从硬盘所在的存储节点;所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘。2.根据权利要求1所述的方法,在所述从硬盘所在的存储节点把所述目标数据存入本地的从硬盘之后,进一步包括:把所述目标分区所对应的备选状态的硬盘的状态更新为已选状态;从已经存储了所述目标数据的主硬盘或者从硬盘中获取所述目标数据,把获取的所述目标数据存储到新的已选硬盘。3.根据权利要求1所述的方法,还包括:所述目标数据是数据分块;所述目标标签是逻辑单元号标识LUNID和逻辑块地址LBA的组合。4.根据权利要求1所述的方法,查询所述目标标签所对应的目标分区,具体包括:计算所述目标标签的哈希值,根据所述哈希值与所述目标分区之间的对应关系,查询与所述目标标签所对应的目标分区所述目标标签所对应的目标分区。5.根据权利要求1所述的方法,其中:所述目标分区对应的多个硬盘的状态,和所述目标分区相关。6.一种写数据方法,用于向分布式存储系统写入数据,所述分布式存储系统包括计算节点和多个存储节点,每个存储节点包括硬盘,所述方法包括:所述计算节点接收写命令,所述写命令中携带目标数据和目标标签,所述目标标签用于标识所述目标数据;所述计算节点查询所述目标标签所对应的目标分区;所述计算节点查询所述目标分区对应的多个硬盘ID,所述目标分区对应的多个硬盘包括具有已选状态的硬盘和具有备选状态的硬盘,所述已选状态的硬盘可用于存储所述目标数据的副本,所述已选状态的硬盘不用于存储所述目标数据的副本;所述计算节点按照目标分区对应的多个硬盘ID中的已选状态的硬盘ID,将所述目标数据发送给所述具有已选状态的硬盘所在的存储节点。7.根据权利...

【专利技术属性】
技术研发人员:何春雄
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1