一种数据存储方法以及协议服务器的制造方法_2

文档序号:9489110阅读:来源:国知局
3] 结合第二方面至第二方面的第四种可能的实现方式中的任一种可能的实现方式, 在第二方面的第五种可能的实现方式中,所述协议服务器包括的读取单元用于,若所述第 一数据条带对应的所述L个镜像条带中的第一镜像条带所处的存储节点发生故障,则根据 所述对应关系读取所述第一数据条带对应的所述L个镜像条带中的第二镜像条带内存储 的所述第一数据。
[0054] 采用上述方案,协议服务器接收第一数据,其中,所述第一数据用于更新目的分条 的第一数据条带内存储的数据;向L个镜像条带所处的存储节点发送数据写入指令,所述 数据写入指令包括所述第一数据,以及所述镜像条带的地址;建立所述L个镜像条带与所 述第一数据条带之间的对应关系;所述对应关系用于,所述协议服务器在接收到读取所述 第一数据条带的数据读取指令时,根据所述对应关系读取所述第一数据条带对应的任一镜 像条带内存储的所述第一数据。也就是说,协议服务器将用于更新第一数据条带的第一数 据写入到了L个镜像条带内,并非直接替换所述第一数据条带内存储的数据,这样,所述目 的分条中所有的数据条带内的数据未发生改变,从而无需重新计算纠删码,进而无需先将 所述目的分条中所有的数据条带内存储的数据读出,以重新计算纠删码,简化了数据写入 过程,提高了数据写入速率。并且,所述协议服务器在接收到读取所述第一数据条带的数据 读取指令时,可以根据所述对应关系读取所述第一数据条带对应的任一镜像条带内存储的 所述第一数据,从而保证了数据读取的正确性。并且,由于L个镜像条带处于至少两个存储 节点上,因此,所述L个镜像条带内存储的所述第一数据互为备份,在某一存储节点发生故 障后,协议服务器仍然可以从其他存储节点上的镜像条带中读取到所述第一数据,从而实 现了对所述第一数据的镜像保护。
【附图说明】
[0055] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述 中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。
[0056]图1为本发明提供的一种分布式存储系统的结构示意图;
[0057]图2为本发明实施例提供的一种数据存储方法的流程示意图;
[0058]图3为本发明实施例提供的一种分布式存储系统的结构示意图;
[0059]图4为本发明实施例提供的另一种数据存储方法的流程示意图;
[0060]图5为本发明实施例提供的一种数据读取方法的流程示意图;
[0061] 图6为本发明实施例提供的一种协议服务器的结构示意图;
[0062] 图7为本发明实施例提供的另一种协议服务器的结构示意图;
[0063] 图8为本发明实施例提供的又一种协议服务器的结构示意图。
【具体实施方式】
[0064] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065] 实施例一
[0066] 本发明实施例提供一种数据存储方法,如图2所示,该方法包括:
[0067]S201、协议服务器接收第一数据,该第一数据用于更新目的分条的第一数据条带 内存储的数据。
[0068] 其中,该目的分条包括N个数据条带以及Μ个校验条带,该N个数据条带分别是N 个存储节点上特定的存储空间,该Μ个校验条带分别是Μ个存储节点上特定的存储空间,Κ 为大于2的正整数,Μ为小于Ν的正整数,该第一数据条带是该Κ个数据条带中的任一个数 据条带。
[0069]S202、该协议服务器向L个镜像条带所处的存储节点分别发送写入指令,该写入 指令包括所述第一数据,以及该镜像条带的地址。
[0070] 其中,该L个镜像条带是至少两个存储节点上特定的存储空间,L为大于1的正整 数。
[0071] S203、该协议服务器建立该L个镜像条带与该第一数据条带之间的对应关系。
[0072] 其中,基于该对应关系,该协议服务器能够将对该第一数据条带的读取指令转换 为对任一所述镜像条带的读取指令。
[0073] 通过上述步骤S201至步骤S203,由于协议服务器在写入该第一数据的过程中,并 非直接替换该第一数据条带内存储的数据,这样,该目的分条中所有的数据条带内的数据 未发生改变,从而无需重新计算纠删码,也就是说,本发明在写入该第一数据时,无需先将 该目的分条中所有的数据条带内存储的数据读出,以重新计算纠删码,从而简化了数据写 入过程,提高了数据写入速率。
[0074]下面对步骤S201至步骤S203进行详细说明。
[0075]具体地,步骤S201中,该协议服务器可以是接收协议客户端发送的该第一数据, 示例地,该协议客户端向协议服务器发送写入指令,该写入指令包括该第一数据以及写入 地址,该协议服务器在接收到所述数据写入指令后,可以根据该写入地址确定该第一数据 是用于更新目的分条的第一数据条带内存储的数据。
[0076]示例地,上述步骤S203中,该协议服务器建立的该对应关系可以是,该第一数据 条带所处的存储节点的标识,以及该第一数据条带的地址,与各镜像条带所处的存储节点 的标识,以及各镜像条带的地址之间的对应关系,以便该协议服务器更够根据该对应关系 准确读取到任一镜像条带内存储的数据。
[0077]例如,若该第一数据条带是存储节点1上的第一存储空间,镜像条带1是存储节点 2上的第二存储空间,镜像条带2是存储节点3上的第三存储空间,则该协议服务器可以建 立如下表1所示的对应关系:
[0078]表1
[0079]
[0080]进一步地,该协议服务器基于该对应关系,能够在接收到读取该第一数据条带的 读取指令时,将该读取指令转换为对任一镜像条带的读取指令,也就是说,在步骤S203之 后,若该协议服务器接收到协议客户端发送的读取指令,该数据读取指令用于指示该协议 服务器读取该第一数据条带内存储的数据,此时,该协议服务器可以根据该对应关系,读取 该第一数据条带对应的任一镜像条带内存储的该第一数据,并将该第一数据返回至该协议 客户端。
[0081]也就是说,参照上述表1,协议客户端发送的读取指令包括该存储节点1的标识以 及该第一存储空间的标识,这样,该协议服务器根据上述表1,可以将该数据读取指令转换 为读取镜像条带1的数据读取指令,读取镜像条带1的数据读取指令包括该存储节点2的 标识以及第二存储空间的地址。
[0082]进一步地,在步骤S203之后,以及该协议服务器接收到读取该第一数据条带的数 据读取指令之前,该协议服务器可能接收到用于更新该目的分条所有条带的数据的第二数 据,此时,该协议服务器将该第二数据写入该目的分条的一种可能的实现方式为:该协议服 务器接收该第二数据,将该第二数据分为N个数据,并根据该N个数据计算得到Μ个纠删 码,并在将该Ν个数据写入该Ν个数据条带,将该Μ个纠删码写入该Μ个校验条带后,删除 该L镜像条带内存储的该第一数据,以及该对应关系。
[0083]因此,在本发明实施例的一种优选的实现方式中,该协议服务器接收到协议客户 端发送的,读取该第一数据条带的数据读取指令时,可以先确定是否存在该第一数据条带 与该L个镜像条带的对应关系,若存在该第一数据条带与该L个镜像条带的对应关系,则根 据该对应关系,读取该第一数据条带对应的任一镜像条带内存储的该第一数据,并将该第 一数据返回至该协议客户端,若不存在该第一数据条带与该L个镜像条带的对应关系,则 读取该第一数据条带内存储的数据,并将该第一数据条带内存储的数据返回至该协议客户 端,从而保证了数据读取的正确性。
[0084] 另外,在步骤S203之后,以及该协议服务器接收到上述第二数据之前,若该协议 服务器接收到用于更新该第一条带数据的第三数据,此时,该协议服务器可以根据该对应 关系将该第三数据写入该L个镜像条带内,直接覆盖该第一数据,从而保证了在存在第一 数据条带与镜像条带的对应关系时,该镜像条带内存储的数据始终为协议服务器写入的最 新的数据。
[0085] 值得说明的是,协议客户端将用于更新第一数据条带内存储的数据的第一数据发 送至协议服务器后,可能并不能感知到该协议服务器将该第一数据写入了该L个镜像条 带,因此,该协议客户端在需要读取该第一数据时,向该协议服务器发送的数据读取指令中 的读取地址,仍然是第一数据条带的地址。
[0086] 下面说明第一条带中包括的N个数据条带以及L个镜像条带在分布式存储系统中 各存储节点上的分布关系。
[0087] 在本发明实施例一种可能的实现方式中,目的分条的N个数据条带以及Μ个校验 条带分别处于Κ个不同的存储节点,其中,N+M=Κ,此时,所述Κ个存储节点中,可允许Μ个 存储节点发生故障,该L个镜像条带可以处于该Κ个存储节点中的至少两个存储节点上。
[0088] 值的说明的是,在本发明实施例的一种可能的实现方式中,目的分条中包括的镜 像条带的数目L可以大于或等于该目的分条中校验条带的数目,也就是说,若该目的分条 包括Μ个校验条带,此时,该目的分条中包括的镜像条带的数目L可以大于或等于Μ,例如L =Μ+1,这样,对于Ν+Μ的保护方式,其允许发生故障的存储节点的数量为Μ,对于Μ+1个镜 像条带,其允许发生故障的存储节点的数量也为Μ。如图3所示,目的分条包括数据条带1 至数据条带4共四个数据条带以及一个校验条带,其中,数据条带1至数据条带4分别处于 存储节点1至存储节点4上,校验条带处于存储节点5上,此时,在保证能正确读取到整个 目的分条存储的数据的前提下,允许存储节点1至存储节点5中可以有一个存储节点发生 故障,图3所示还示出了镜像条带1和镜像条带2两个镜像条带,由于镜像条带1和镜像条 带2分别处于存储节点1和存储节点5上,因此,在保证能正确读取到整个目的分条存储的 数据的前提下,同样允许存储节点1至存储节点5中可以有一个存储节点发生故障。
[0089] 上述只是举例说明,在具体实施过程中,镜像条带的分布可以有其他的方式,例 如,该L个镜像条带也可以处于该Κ个存储节点以外的其他存储节点上。本发明对此不做 限定。
[0090] 下面说明本发明实施例在存储节点发生故障时,对于数据的保护。
[0091] 具体地,协议服务器根据该对应关系读取该第一数据条带对应的任一镜像条带内 存储的该第一数据,具体包括:若该第一数据条带对应的该L个镜像条带中的第一镜像条 带所处的存储节点发生故障,则根据该对应关系读取该第一数据条带对应的该L个镜像条 带中的第二镜像条带内存储的该第一数据。
[0092] 这样,由于L个镜像条带处于至少两个存储节点上,因此,所述L个镜像条带内存 储的所述第一数据互为备份,在某一
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1