数据存储控制方法、数据存储方法、数据获取方法及装置制造方法及图纸

技术编号:14536707 阅读:122 留言:0更新日期:2017-02-02 22:26
本发明专利技术公开了一种数据存储控制方法、数据存储、数据获取方法及装置。本发明专利技术中,在数据存储过程中,EC组内的主节点接收客户端发送的数据存储权限请求后,为客户端的数据存储权限请求分配操作时序标识,客户端向EC组内的成员节点发送第二数据存储请求,数据存储请求中携带有该操作时序标识以及所述待存储的数据对应的分片。在数据获取过程中,客户端根据接收到的第一数据获取请求,为请求获取的数据确定所在的EC组以及该EC分组内的成员节点,从确定出的EC组内的成员节点获取数据,从EC组内的所有成员节点获取操作时序标识并进行比较,若EC组内的成员节点的操作时序标识相同,则返回获取到的数据。本发明专利技术可减少主节点的开销。

Data storage control method, data storage method, data acquisition method and device

The invention discloses a data storage control method, data storage, data acquisition method and device. In the invention, in the process of data storage, data storage access master node in EC group receiving the client sends request, request distribution operation timing identification for data storage access client, the client requests to the members of the EC group in the second data storage node, slice data storage request carries the operation timing marks and the corresponding data to be stored. In the data acquisition process, the client according to the first received data acquisition request, the EC group and the EC group member nodes to determine the request for access to data, get data from member nodes in EC group determined the access operation timing identification from all member nodes in EC group were compared. If the member nodes in EC group the operation sequence identification is the same, it returns the data obtained. The invention can reduce the cost of the main node.

【技术实现步骤摘要】

本专利技术涉及数据存储
,尤其涉及一种数据存储控制方法、数据存储、数据获取方法及装置。
技术介绍
分布式存储系统常采用分布式哈希表(DistributedHashTable,简称DHT)算法将集群内的存储资源进行划分。整个分布式集群的哈希空间从0~232-1,这个整数空间被等分成N个分区,每个分区包含的哈希值范围相等。每一个数据都以Key标识下发到分布式存储系统进行存储,每个Key经过哈希计算得到一个哈希值,该哈希值会映射到哈希空间的某个分区上。如图1所示,4个物理节点提供的哈希空间被等分为20个分区,从P0~P19,物理节点与虚拟节点的对应关系如图所示。数据标识key的取值为k1,该k1经过哈希计算后被映射到P0分区。A~T代表的是虚拟节点,每个分区中的数据存储在对应的虚拟节点上。比如,映射到P0分区的数据存储在A节点上,映射到P1分区的数据存储到B节点上。分布式存储系统中可采用ErasureCode方式进行数据冗余存储,一个ErasureCode组(即EC组)对应着集群中的一个分区。一个EC组内的成员节点中包括主节点和普通节点,主节点可对多个客户端或者系统前后台请求并发进行控制。在写数据流程中,客户端将数据对象发送到主节点,主节点根据系统采用的EC算法将数据对象切分成数据分片,计算校验分片,然后由主节点将产生的数据分片和校验分片发送到EC组内的其他节点进行存储。如图2所示,标识为key=k1的数据ABCDEFGHI映射到P0分区,P0分区对应的EC组中的主节点OSD1将其拆分成3个分片ABC、DEF、GHI,根据EC算法(如里德·所罗门算法)计算出校验分片YXY、QGC,并将这3个数据分片和2个校验分片分别存储于该EC组中的所有成员节点(OSD1~OSD5)中。在读数据流程中,客户端将读数据请求发送至主节点,主节点向EC组内的其他节点获取需要的数据分片,并向客户端返回读取成功的数据。上述读数据流程中,由主节点对客户端发送的数据进行分片和分发,上述读数据流程中,由主节点向EC组成员获取数据,导致数据流量集中在主节点,主节点开销过大。
技术实现思路
本专利技术实施例提供了一种数据存储控制方法及装置。本专利技术实施例提供的数据存储控制方法,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,该方法包括:EC组内的主节点接收客户端发送的数据存储权限请求;所述主节点根据所述数据存储权限请求,为所述客户端的数据存储权限请求分配操作时序标识,所述操作时序标识被所述客户端用于向所述EC组内的成员节点发送数据存储请求;所述主节点向所述客户端返回数据存储权限响应,所述响应中携带有分配的操作时序标识。可选地,所述EC组内的主节点接收客户端发送的数据存储权限请求之后、根据所述数据存储权限请求之前,还包括:针对所述数据存储权限请求所对应的数据标识,所述主节点确定是否有相同数据标识的数据存储操作还未完成;若有,则将当前接收到的所述数据存储权限请求挂起,并在所述还未完成的数据存储操作完成后,解除所述数据存储权限请求解除挂起。可选地,所述EC组内的主节点接收客户端发送的数据存储权限请求之后、根据所述数据存储权限请求之前,还包括:所述主节点确定所述EC组对应的分区是否可用;若不可用,则所述主节点向所述客户端返回数据存储权限分配失败的响应。可选地,所述主节点向所述客户端返回数据存储权限响应之后,还包括:所述主节点接收所述客户端发送的数据存储操作完成通知,所述数据存储操作完成通知是所述客户端根据所述操作时序标识向所述EC组内的成员节点发送数据存储请求后,确认所述EC组内的成员节点完成数据存储操作之后发送的。可选地,所述操作时序标识为操作时序编号,操作时序编号按照分配的先后顺序递增。本专利技术实施例提供的主节点设备,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,其特征在于,包括:第一接收模块,用于接收客户端发送的数据存储权限请求;分配模块,用于根据所述数据存储权限请求,为所述客户端的数据存储权限请求分配操作时序标识,所述操作时序标识被所述客户端用于向所述EC组内的成员节点发送数据存储请求;发送模块,用于向所述客户端返回数据存储权限响应,所述响应中携带有分配的操作时序标识。可选地,所述分配模块还用于:在接收客户端发送的数据存储权限请求之后、针对所述数据存储权限请求所对应的数据标识,确定是否有相同数据标识的数据存储操作还未完成;若有,则将当前接收到的所述数据存储权限请求挂起,并在所述还未完成的数据存储操作完成后,解除所述数据存储权限请求解除挂起。可选地,所述分配模块还用于:在接收客户端发送的数据存储权限请求之后、根据所述数据存储权限请求之前,确定所述EC组对应的分区是否可用;若不可用,则向所述客户端返回数据存储权限分配失败的响应。可选地,还包括:第二接收模块,用于在向所述客户端返回数据存储权限响应之后,接收所述客户端发送的数据存储操作完成通知,所述数据存储操作完成通知是所述客户端根据所述操作时序标识向所述EC组内的成员节点发送数据存储请求后,确认所述EC组内的成员节点完成数据存储操作之后发送的。可选地,还包括数据恢复模块,用于:接收客户端设备发送的数据获取请求,所述数据获取请求中携带有请求获取的数据的标识以及数据恢复指示;根据所述数据恢复指示对所在EC组内的成员节点的进行数据恢复;在数据恢复成功后,获取请求获取的数据;返回数据恢复成功响应,所述数据恢复成功响应中携带有获取到的数据。可选地,所述操作时序标识为操作时序序列号,操作时序序列号按照分配的先后顺序递增。本专利技术实施例提供的用于通信的装置,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,该装置包括:该装置包括:收发器、处理器和存储器;所述存储器,用于存储计算机程序指令;所述处理器,耦合到所述存储器,用于读取所述存储器存储的计算机程序指令,并执行上述数据存储控制方法。本专利技术的上述实施例中,EC组内的主节点接收客户端发送的数据存储权限请求后,为所述客户端的数据存储权限请求分配操作时序标识,并向客户端返回数据存储权限响应,所述响应中携带有分配的操作时序标识。由于操作时序标识被客户端用于向EC组内的成员节点发送数据存储请求,从而一方面由主节点同一对数据存储进行管理,另一方面使得客户端可以直接将数据存储于该EC组内的成员节点,与现有技术相比,避免了将数据发送给主节点的过程,从而可以减少主节点的开销。本专利技术实施例提供了一种数据存储方法及装置。本专利技术实施例提供的数据存储方法,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,该方法包括:客户端根据接收到的第一数据存储请求,为请求存储的数据确定对应的EC组;所述客户端向所述EC组内的主节点发送数据存储权限请求,接收所述主节点返回的数据存储权限响应,本文档来自技高网
...

【技术保护点】
一种数据存储控制方法,应用于采用Erasure Code存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,其特征在于,该方法包括:EC组内的主节点接收客户端发送的数据存储权限请求;所述主节点根据所述数据存储权限请求,为所述客户端的数据存储权限请求分配操作时序标识,所述操作时序标识被所述客户端用于向所述EC组内的成员节点发送数据存储请求;所述主节点向所述客户端返回数据存储权限响应,所述响应中携带有分配的操作时序标识。

【技术特征摘要】
1.一种数据存储控制方法,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,其特征在于,该方法包括:EC组内的主节点接收客户端发送的数据存储权限请求;所述主节点根据所述数据存储权限请求,为所述客户端的数据存储权限请求分配操作时序标识,所述操作时序标识被所述客户端用于向所述EC组内的成员节点发送数据存储请求;所述主节点向所述客户端返回数据存储权限响应,所述响应中携带有分配的操作时序标识。2.如权利要求1所述的方法,其特征在于,所述EC组内的主节点接收客户端发送的数据存储权限请求之后、根据所述数据存储权限请求之前,还包括:针对所述数据存储权限请求所对应的数据标识,所述主节点确定是否有相同数据标识的数据存储操作还未完成;若有,则将当前接收到的所述数据存储权限请求挂起,并在所述还未完成的数据存储操作完成后,解除所述数据存储权限请求解除挂起。3.如权利要求1所述的方法,其特征在于,所述EC组内的主节点接收客户端发送的数据存储权限请求之后、根据所述数据存储权限请求之前,还包括:所述主节点确定所述EC组对应的分区是否可用;若不可用,则所述主节点向所述客户端返回数据存储权限分配失败的响应。4.如权利要求1所述的方法,其特征在于,所述主节点向所述客户端返回数据存储权限响应之后,还包括:所述主节点接收所述客户端发送的数据存储操作完成通知,所述数据存储操作完成通知是所述客户端根据所述操作时序标识向所述EC组内的成员节点发送数据存储请求后,确认所述EC组内的成员节点完成数据存储操作之后发送的。5.如权利要求1至4中任一项所述的方法,其特征在于,所述操作时序标识为操作时序编号,操作时序编号按照分配的先后顺序递增。6.一种数据存储方法,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,其特征在于,该方法包括:客户端根据接收到的第一数据存储请求,为请求存储的数据确定对应的EC组;所述客户端向所述EC组内的主节点发送数据存储权限请求,接收所述主节点返回的数据存储权限响应,所述响应中携带有为所述客户端的数据获取权限请求分配的操作时序标识;所述客户端向所述EC组内的成员节点发送第二数据存储请求,所述数据存储请求中携带有所述操作时序标识以及所述待存储的数据对应的分片。7.如权利要求6所述的方法,其特征在于,所述第二数据存储请求中携带的分片包括数据分片或校验分片;所述客户端向所述EC组内的成员节点发送第二数据存储请求之前,还包括:所述客户端对所述待存储的数据进行分片,并根据所得到的数据分片计算得到校验分片。8.如权利要求6所述的方法,其特征在于,所述客户端为待存储的数据确定对应的EC组,包括:所述客户端根据请求存储的数据的标识,确定与该标识对应的分区,并根据确定出的分区确定对应的EC组。9.如权利要求6所述的方法,其特征在于,所述客户端向所述EC组内的成员节点发送第二数据存储请求之后,还包括:所述客户端接收所述EC组内的成员节点根据第二数据存储请求返回的数据存储操作完成通知;所述客户端接收到所述EC组内的所有成员节点返回的数据存储操作完成通知后,向所述EC组内的主节点发送数据存储操作完成通知。10.一种数据获取方法,其特征在于,包括:客户端根据接收到的第一数据获取请求,为请求获取的数据确定所在的EC组以及该EC分组内的成员节点;所述客户端从确定出的EC组内的成员节点获取数据;所述客户端从所述EC组内的所有成员节点获取操作时序标识,并进行比较,若所述EC组内的成员节点的操作时序标识相同,则返回与所述第一数据获取请求对应的响应,所述响应中携带有获取到的数据。11.如权利要求10所述的方法,其特征在于,若所述EC组内的成员节点的操作时序标识不相同,则还包括:所述客户端向所述EC组内的主节点发送数据获取请求,所述数据获取请求中携带有请求获取的数据的标识以及数据恢复指示,所述数据恢复请求用于触发所述主节点对所在EC组内的成员节点的进行数据恢复以及在数据恢复成功后返回所请求获取的数据;所述客户端接收主节点返回的数据恢复成功响应,所述数据恢复成功响应中携带有获取到的数据;所述客户端返回与所述第一数据获取请求对应的响应,所述响应中携带有获取到的数据。12.如权利要求11所述的方法,其特征在于,所述客户端向所述EC组内的主节点发送数据恢复请求,包括:所述客户端根据可恢复的分片的最大数量,以及所述EC组内的成员节点的操作时序标识中,分配时间在后且相同的成员节点的数量,判断是否满足恢复条件;若满足恢复条件,则所述客户端向所述EC组内的主节点发送数据恢复请求;若不满足恢复条件,则所述方法还包括:所述客户端返回与所述第一数据获取请求对应的数据获取请求失败响应。13.一种客户端设备,应用于采用ErasureCode存储机制的分布式存储系统,所述分布式存储系统的存储空间被划分为多个分区,一个分区对应一个EC组,一个EC组内包含主节点,其特征在于,包括:第一确定模块,用于根据接收到的第一数据存储请求,为请求存储的数据确定对应的EC组;权限获取模块,用于向所述EC组内的主节点发送数据存储权限请求,接收所述主节点返回的数据存储权限响应,所述响应中携带有为所述客户端的数据存储权限请求分配的操作时序标识;数据存储请求模块,用于向所述EC组内的成员节点发送第二数据存储请求,所述数据存储请求中携带有所述操作时序标识以及所述待存储的数据对应的分片。14.如权利要求13所述的设备,其特征在于,所述第二...

【专利技术属性】
技术研发人员:曹立勋施威特
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1