分布式存储系统中的数据处理方法及设备、客户端与流程

文档序号:11545407阅读:335来源:国知局
分布式存储系统中的数据处理方法及设备、客户端与流程
本发明实施例涉及信息存储技术,尤其涉及一种分布式存储系统中的数据处理方法及设备、客户端。

背景技术:
基于分布式哈希表(DistributedHashTable,简称DHT)重叠网的分布式存储系统中,每个存储节点被赋予一个全局唯一的键值(Key),由DHT描述;所有存储节点的键值形成一个封闭的、被切分了的空间环;每个存储节点负责存储的数据空间为在该存储节点的键值的顺时针或逆时针方向的一个分区。客户端可以根据待存储/读取数据的键值,在DHT中查询到该键值所在的分区和对应的主存储节点,完成数据的存储/读取。为保证数据的高可靠性,基于DHT重叠网的分布式存储系统中采用多副本存储策略,即一份数据存储多个副本,每个数据副本位于不同的存储节点。例如:在确定数据的主存储节点后,在顺时针或逆时针方向,顺序选择相应数目的存储节点,分别存储一个数据副本。然而,由于上述系统中存储节点的备份关系复杂,使得一个存储节点可能会存储多份不同的数据副本,导致了一个存储节点加入或者离开系统,受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系,从而增加了系统维护和调度的难度。

技术实现要素:
本发明提供一种分布式存储系统中的数据处理方法及设备、客户端,用以降低系统维护和调度的难度。一方面提供了一种分布式存储系统中的数据处理方法,包括:客户端根据数据的特征信息,获得所述数据的哈希值;所述客户端根据预先创建的分区表和所述数据的哈希值,确定与所述数据的哈希值对应的至少两个存储节点,所述至少两个存储节点对应不同的DHT重叠网;所述客户端将所述数据分别写入所述至少两个存储节点。另一方面提供了一种客户端,包括:获得单元,用于根据数据的特征信息,获得所述数据的哈希值;确定单元,用于根据预先创建的分区表和所述数据的哈希值,确定与所述数据的哈希值对应的至少两个存储节点,所述至少两个存储节点对应不同的DHT重叠网;处理单元,用于将所述数据分别写入所述至少两个存储节点。另一方面提供了一种分布式存储系统中的数据处理设备,包括:确定单元,用于根据所述分布式存储系统中的数据副本个数,确定哈希值对应的至少两个存储节点,其中,所述哈希值对应的至少两个存储节点的个数等于所述分布式存储系统中的数据副本个数,所述哈希值对应的至少两个存储节点对应不同的DHT重叠网,所述不同的DHT重叠网的分区一致;创建单元,用于根据所述哈希值和所述哈希值对应的至少两个存储节点的配置信息,创建分区表,以供客户端根据数据的特征信息,获得所述数据的哈希值,以及根据所述分区表和所述数据的哈希值,确定与所述数据的哈希值对应的至少两个存储节点,并将所述数据分别写入所述至少两个存储节点,所述至少两个存储节点对应不同的DHT重叠网。由上述技术方案可知,本发明实施例客户端根据数据的特征信息,获得上述数据的哈希值,并通过根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网,使得上述客户端能够将上述数据分别写入上述至少两个存储节点,由于系统中上述至少两个存储节点上只存储一份数据副本,其备份关系简单,能够避免现有技术中由于系统中存储节点的备份关系复杂使得一个存储节点可能会存储多份不同的数据副本而导致的一个存储节点加入或者离开系统受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系的问题,从而降低了系统维护和调度的难度。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明一实施例提供的分布式存储系统中的数据处理方法的流程示意图;图2为本发明另一实施例提供的分布式存储系统中的数据处理方法的流程示意图;图3为图1和图2对应的实施例提供的分布式存储系统中的数据处理方法中涉及的分区表的示意图;图4为图1和图2对应的实施例提供的分布式存储系统中的数据处理方法中涉及的分布式存储系统;图5为本发明另一实施例提供的客户端的结构示意图;图6为本发明另一实施例提供的分布式存储系统中的数据处理设备的结构示意图;图7为本发明另一实施例提供的分布式存储系统中的数据处理设备的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明一实施例提供的分布式存储系统中的数据处理方法的流程示意图,如图1所示,本实施例的分布式存储系统中的数据处理方法可以包括:101、客户端根据数据的特征信息,获得上述数据的哈希值;特征信息可以包括以下内容,例如:数据的文件名字、数据的摘要信息或者数据的内容的等任何与该数据相关且能够标识该数据的信息。在101之前,本实施例还可以进一步包括创建上述分区表的步骤。例如:可以根据上述分布式存储系统中的数据副本个数,确定每一个哈希值对应的至少两个存储节点,其中,上述哈希值对应的至少两个存储节点的个数等于上述分布式存储系统中的数据副本个数,上述哈希值对应的至少两个存储节点对应不同的DHT重叠网,上述不同的DHT重叠网的分区一致;然后,根据上述哈希值和上述哈希值对应的至少两个存储节点的配置信息,创建上述分区表。需要说明的是:本实施例中,创建了上述分区表之后,可以将该分区表存储在网络中,以使得客户端和上述不同的DHT重叠网对应的每一个存储节点共享上述分区表,或者还可以将该分区表直接分发至客户端,以及上述不同的DHT重叠网对应的每一个存储节点,以使得客户端和上述不同的DHT重叠网对应的每一个存储节点获得上述分区表。本实施例中,上述不同的DHT重叠网对应的存储节点获得上述分区表之后,可以根据上述分区表,获得与本存储节点的配置信息对应的哈希值,并确定该哈希值对应的其他存储节点,即其他存储节点为本存储节点的备份存储节点;然后,上述不同的DHT重叠网对应的存储节点则可以根据本存储节点的数据和上述其他存储节点的数据,完成初始化操作。其中,存储节点的配置信息可以包括但不限于IP地址、通信端口和存储空间中的至少一项。例如:本存储节点可以与备份存储节点进行通信,并根据本存储节点的数据和备份存储节点的数据,检查二者是否同步,如果数据同步,本存储节点则完成初始化操作,如果数据不同步,本存储节点则进行数据同步,以完成初始化操作。可选地,本实施例中,为了保证可靠性的要求,在创建分区表的过程中,不同重叠网的同一个哈希值可以对应不同的存储服务器上的存储节点,用以保证同一个哈希值对应的至少两个存储节点在物理上是隔离的。在具体实现时,还可以进一步考虑更多的隔离因素,例如:机架隔离、网络隔离或供电隔离等。102、上述客户端根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网;可选地,在102中,上述至少两个存储节点可以位于不同存储服务器上,从而提高了数据处理的可靠性。103、上述客户端将上述数据分别写入上述至少两个存储节点。需要说明的是,在本发明实施例中,DHT重叠网具备以下特性:每个存储节点被赋予一个全局唯一的键值(Key),由DHT描述;所有存储节点的键值形成一个封闭的、被切分了的空间环;每个存储节点负责存储的数据空间为在该存储节点的键值的顺时针或逆时针方向的一个分区。本实施例中,客户端根据数据的特征信息,获得上述数据的哈希值,并通过根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网,使得上述客户端能够将上述数据分别写入上述至少两个存储节点,由于系统中上述至少两个存储节点上只存储一份数据副本,其备份关系简单,能够避免现有技术中由于系统中存储节点的备份关系复杂使得一个存储节点可能会存储多份不同的数据副本而导致的一个存储节点加入或者离开系统受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系的问题,从而降低了系统维护和调度的难度。图2为本发明另一实施例提供的分布式存储系统中的数据处理方法的流程示意图,在上述图1对应的实施例的基础之上,如图2所示,本实施例的分布式存储系统中的数据处理方法还可以进一步包括:201、上述客户端根据上述数据的特征信息,获得上述数据的哈希值;202、上述客户端根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网;类似地,在202中,上述至少两个存储节点可以位于不同存储服务器上,从而提高了数据处理的可靠性。203、上述客户端选择上述至少两个存储节点中的一个存储节点,并读取选择的上述存储节点中写入的上述数据。本实施例中,客户端根据数据的特征信息,获得上述数据的哈希值,并通过根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网,使得上述客户端能够选择上述至少两个存储节点中的一个存储节点,并读取选择的上述存储节点中写入的上述数据,由于系统中上述至少两个存储节点上只存储一份数据副本,其备份关系简单,能够避免现有技术中由于系统中存储节点的备份关系复杂使得一个存储节点可能会存储多份不同的数据副本而导致的一个存储节点加入或者离开系统受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系的问题,从而降低了系统维护和调度的难度。为使得本发明实施例提供的方法更加清楚,下面将以三个数据副本的分布式存储系统作为举例。举例来说,根据上述分布式存储系统中的数据副本个数3,确定哈希值对应的至少两个存储节点,其中,上述哈希值对应的至少两个存储节点的个数3等于上述分布式存储系统中的数据副本个数3,上述哈希值对应的至少两个存储节点对应不同的DHT重叠网,即DHT重叠网1、DHT重叠网2和DHT重叠网3,上述不同的DHT重叠网的分区一致,例如:可以采用均匀分区,空间被分成N等分,或者还可以采用非均匀分区,本实施例对此不进行限定;然后,根据上述哈希值和上述哈希值对应的至少两个存储节点的配置信息,创建上述分区表,如图3所示。所创建的分区表需要持久化保存,例如:将所创建的分区表存储在硬盘中。上述创建的分区表可以分发到所有的存储节点,以及分发到所有的客户端。存储节点获得上述分区表之后,进行初始化操作,详细内容可以参见图1对应的实施例中的相关内容,此处不再赘述。假设数据1需要存储到上述三个数据副本的分布式存储系统,客户端则可以根据获得的预先创建的分区表和待写入的数据1的哈希值,确定与数据1的哈希值对应的三个存储节点,例如:存储节点1、存储节点4和存储节点7,三个存储节点对应三个不同的DHT重叠网,即DHT重叠网1、DHT重叠网2和DHT重叠网3。为了提高数据处理的可靠性,存储节点1、存储节点4和存储节点7三个存储节点可以位于不同存储服务器,即存储服务器1、存储服务器2和存储服务器3,上,如图4所示;最后,客户端则可以将上述数据1分别写入存储节点1、存储节点4和存储节点7三个存储节点。类似地,客户端则可以根据预先创建的分区表和待写入的数据1的哈希值,确定与数据1的哈希值对应的三个存储节点,例如:存储节点1、存储节点4和存储节点7,三个存储节点对应三个不同的DHT重叠网,即DHT重叠网1、DHT重叠网2和DHT重叠网3;最后客户端则可以选择存储节点1、存储节点4和存储节点7三个存储节点中的任意一个存储节点,并读取选择的存储节点中写入的上述数据1。需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。图5为本发明另一实施例提供的客户端的结构示意图,如图5所示,本实施例的客户端可以包括获得单元51、确定单元52和处理单元53。其中,获得单元51用于根据数据的特征信息,获得上述数据的哈希值;确定单元52用于根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网;处理单元53用于将上述数据分别写入上述至少两个存储节点。上述图1和图2对应的实施例中客户端的功能均可以由本实施例提供的客户端实现。进一步地,本实施例中,获得单元51还可以进一步用于根据上述数据的特征信息,获得上述数据的哈希值;确定单元52还可以进一步用于根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网;处理单元53还可以进一步用于选择上述至少两个存储节点中的一个存储节点,并读取选择的上述存储节点中写入的上述数据。本实施例中,客户端通过获得单元根据数据的特征信息,获得上述数据的哈希值,并通过确定单元根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网,使得上处理单元能够选择上述至少两个存储节点中的一个存储节点,并读取选择的上述存储节点中写入的上述数据,或者还能够选择上述至少两个存储节点中的一个存储节点,并读取选择的上述存储节点中写入的上述数据,由于系统中上述至少两个存储节点上只存储一份数据副本,其备份关系简单,能够避免现有技术中由于系统中存储节点的备份关系复杂使得一个存储节点可能会存储多份不同的数据副本而导致的一个存储节点加入或者离开系统受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系的问题,从而降低了系统维护和调度的难度。图6为本发明另一实施例提供的分布式存储系统中的数据处理设备的结构示意图,如图6所示,本实施例的分布式存储系统中的数据处理设备可以包括确定单元61和创建单元62。其中,确定单元61根据上述分布式存储系统中的数据副本个数,确定哈希值对应的至少两个存储节点,其中,上述哈希值对应的至少两个存储节点的个数等于上述分布式存储系统中的数据副本个数,上述哈希值对应的至少两个存储节点对应不同的DHT重叠网,上述不同的DHT重叠网的分区一致;创建单元62根据上述哈希值和上述哈希值对应的至少两个存储节点的配置信息,创建分区表,以供客户端根据数据的特征信息,获得上述数据的哈希值,以及根据上述分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,并将上述数据分别写入上述至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网。可选地,如图7所示,本实施例提供的分布式存储系统中的数据处理设备还可以进一步包括发送单元71,用于可以向上述客户端和上述不同的DHT重叠网对应的存储节点发送上述分区表,以使得上述不同的DHT重叠网对应的存储节点根据上述分区表,获得与本存储节点的配置信息对应的哈希值,并确定该哈希值对应的其他存储节点,以及根据本存储节点的数据和上述其他存储节点的数据,完成初始化操作。可选地,确定单元61确定的哈希值对应的至少两个存储节点可以位于不同存储服务器上,从而提高了数据处理的可靠性。本实施例中,通过确定单元根据分布式存储系统中的数据副本个数,确定哈希值对应的至少两个存储节点,并由创建单元根据上述哈希值和上述哈希值对应的至少两个存储节点的配置信息,创建分区表,使得客户端根据数据的特征信息,获得上述数据的哈希值,并通过根据预先创建的分区表和上述数据的哈希值,确定与上述数据的哈希值对应的至少两个存储节点,上述至少两个存储节点对应不同的DHT重叠网,使得上述客户端能够将上述数据分别写入上述至少两个存储节点,由于系统中上述至少两个存储节点上只存储一份数据副本,其备份关系简单,能够避免现有技术中由于系统中存储节点的备份关系复杂使得一个存储节点可能会存储多份不同的数据副本而导致的一个存储节点加入或者离开系统受到影响的存储节点可能包括该存储节点顺时针方向的顺序两个存储节点和逆时针方向的顺序两个存储节点的备份关系的问题,从而降低了系统维护和调度的难度。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1