CN110896408B - 一种数据处理方法及服务器集群 - Google Patents
一种数据处理方法及服务器集群 Download PDFInfo
- Publication number
- CN110896408B CN110896408B CN201811070641.9A CN201811070641A CN110896408B CN 110896408 B CN110896408 B CN 110896408B CN 201811070641 A CN201811070641 A CN 201811070641A CN 110896408 B CN110896408 B CN 110896408B
- Authority
- CN
- China
- Prior art keywords
- target
- target object
- fragment
- data processing
- server cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据处理方法及服务器集群,涉及存储技术领域,能够提高本地存储设备与服务器集群之间传输资源的利用率。该方法包括:服务器集群中的处理模块接收本地存储设备发送的数据处理请求,该数据处理请求包括目标对象的标识和目标分片的标识;响应于数据处理请求,根据目标对象的标识,读取目标对象;在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象;存储更新后的目标对象。
Description
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种数据处理方法及服务器集群。
背景技术
将本地存储设备的数据备份存储于公有云存储系统中,能够降低成本、提高数据的可靠性,是目前和未来对数据保护的趋势。
存储于公有云存储系统的备份数据由若干个对象(container)组成,每个对象包括多个分片以及每个分片的哈希(hash)值。现有技术中,在本地存储设备需要在某一对象中写入新的分片(或删除某一分片)时,本地存储设备需要从公有云存储系统的服务器集群中获取该对象的所有分片,并在获取到的所有分片中,添加新的分片(或删除分片),以得到更新后的对象,之后,本地存储设备再向服务器集群发送更新后的对象所包括的所有分片。
但是,本地存储设备与服务器集群之间传输对象包括的所有分片,会使得传输资源的开销较大。此外,本地存储设备与服务器集群之间的传输链路一般为广域网传输链路,其带宽较小,因此,本地存储设备与服务器集群之间传输对象包括的所有分片,导致传输资源的有效利用率较低。
发明内容
本申请提供一种数据处理方法及服务器集群,能够解决本地存储设备与服务器集群之间传输资源的利用率低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理方法,该数据处理方法由服务器集群中的处理模块执行。具体的,该数据处理方法为:处理模块接收本地存储设备发送的包括目标对象的标识和目标分片的标识的数据处理请求,该数据处理请求用于请求处理目标对象中的目标分片;响应于数据处理请求,处理模块根据目标对象的标识,读取目标对象,并在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象;进一步地,处理模块存储更新后的目标对象。
本申请中,本地存储设备只需向服务器集群发送包括目标对象的标识和目标分片的标识的数据处理请求即可,服务器集群中的处理模块可根据请求在目标对象中处理目标分片,这样,无需在本地存储设备与服务器集群之间传输对象所包括的所有分片,有效的提高了本地存储设备与服务器集群之间传输资源的利用率。
此外,服务器集群中的处理模块直接在目标对象中处理目标分片,有效的提高了处理目标分片的效率。本申请提供的数据处理方法对服务器集群的功能进行了改善,可在传统的公有云存储系统的架构上,实现无缝扩展,易于实现。
可选的,在本申请的一种可能的实现方式中,若上述数据处理请求具体用于请求在目标对象中写入目标分片,则该数据处理请求还包括目标分片。相应的,上述“处理模块在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象”的方法为:处理模块在目标对象中写入目标分片,以获取写入目标分片后的目标对象。
可选的,在本申请的另一种可能的实现方式中,在上述数据处理请求具体用于请求删除目标分片的场景中,上述“处理模块在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象”的方法为:处理模块根据目标分片的标识,在目标对象中获取目标分片,并删除目标分片,以获取删除目标分片后的目标对象。
可选的,在本申请的另一种可能的实现方式中,目标对象所包括的分片具有引用计数。相应的,在上述数据处理请求具体用于请求删除目标分片的场景中,处理模块除了删除目标分片外,还删除目标对象中引用计数为零的其他分片,有效的减少了存储空间的浪费。
上述处理模块可以由服务器集群中的某一服务器实现,也可以为服务器集群中的某一服务器中的一个功能模块,还可以由服务器集群中的至少两个服务器实现。在处理模块由服务器集群中的至少两个服务器实现的情况下,可以将处理模块视为包括多个子模块的模块,不同的子模块位于不同的服务器上。
第二方面,提供一种服务器集群,该服务器集群包括至少两个服务器。其中,至少两个服务器包括至少一个处理器和至少一个存储器。至少一个存储器,用于存储计算机指令,当至少一个处理器执行所述计算机指令时,至少一个处理器执行如上述第一方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
可选的,在本申请的一种可能的实现方式中,本申请中的服务器集群包括一个处理器、第一存储器和第二存储器,该处理器部署于服务器集群中的某一服务器上。处理器与第一存储器以及第二存储器可以部署于同一服务器上,也可以部署于不同的服务器上。当然,第一存储器与第二存储器也可以部署于同一服务器上,也可以部署于不同的服务器上。
若处理器、第一存储器以及第二存储器位于同一服务器,则处理器、第一存储器以及第二存储器之间的通信流程使得该服务器实现上述第一方面所述的数据处理方法。
可选的,在本申请的另一种可能的实现方式中,本申请中的服务器集群包括第一处理器和第二处理器,第一处理器和第二处理器分别部署于不同的服务器中。相应的,第一处理器用于接收本地存储设备发送的数据处理请求。第二处理器用于响应于第一处理器接收到的数据处理请求,根据目标对象的标识,读取目标对象;在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象。
可选的,在本申请的另一种可能的实现方式中,本申请中的服务器集群包括第一处理器、第二处理器和第三处理器,第一处理器、第二处理器和第三处理器分别部署于不同的服务器中。相应的,第一处理器用于接收本地存储设备发送的数据处理请求。第二处理器用于响应于第一处理器接收到的数据处理请求,根据目标对象的标识,读取目标对象。第三处理器用于在目标对象中处理目标分片的标识所指示的目标分片,以获取更新后的目标对象。
本申请中第二方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
第三方面,提供一种数据处理方法,该数据处理方法由服务器集群中的处理模块执行。具体的,处理模块接收本地存储设备发送的数据恢复请求,该数据恢复请求包括备份副本的标识和待恢复区间;响应于数据恢复请求,处理模块根据备份副本的标识和待恢复区间,确定与备份副本对应的目标对象的标识和该目标对象所包含的至少一个分片的标识,这里的至少一个分片存储于待恢复区间;之后,处理模块根据至少一个分片的标识和目标对象的标识,从目标对象中依次读出所述至少一个分片中的每个分片,该处理模块将读取出的分片进行合并,并向本地存储设备发送合并后的分片。这样,服务器集群与本地存储设备之间只需传输依次合并后的分片即可,与现有技术相比,本申请提供的数据处理方法中服务器集群与本地存储设备之间无需传输每个分片,有效的提高了恢复的效率。
可选的,在本申请的一种可能的实现方式中,处理模块还接收本地存储设备发送的包括备份副本的标识的元数据获取请求。响应于元数据获取请求,处理模块获取与备份副本的标识对应的元数据。备份副本的元数据包括该备份副本中每一分片的哈希值以及每一分片所归属的对象的标识。
第四方面,提供一种服务器集群,该服务器集群包括至少两个服务器。其中,至少两个服务器包括至少一个处理器和至少一个存储器。至少一个存储器,用于存储计算机指令,当至少一个处理器执行所述计算机指令时,至少一个处理器执行如上述第三方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
可选的,在本申请的一种可能的实现方式中,本申请中的服务器集群包括一个处理器和一个存储器,该处理器和存储器部署于服务器集群中的某一服务器上。
可选的,在本申请的另一种可能的实现方式中,本申请中的服务器集群包括第一处理器和第二处理器,第一处理器和第二处理器分别部署于不同的服务器中。相应的,第一处理器用于接收本地存储设备发送的数据恢复请求。第二处理器用于响应于第一处理器接收到的数据恢复请求,根据备份副本的标识和待恢复区间,确定与备份副本对应的目标对象的标识和该目标对象所包含的至少一个分片的标识,这里的至少一个分片存储于待恢复区间;根据至少一个分片的标识和目标对象的标识,从目标对象中依次读出所述至少一个分片中的每个分片,将读取出的分片进行合并,并通过上述通信接口向本地存储设备发送合并后的分片。
可选的,在本申请的另一种可能的实现方式中,本申请中的服务器集群包括第一处理器、第二处理器以及第三处理器,第一处理器、第二处理器以及第三处理器分别部署于不同的服务器中。相应的,第一处理器用于接收本地存储设备发送的数据恢复请求。第二处理器用于响应于第一处理器接收到的数据恢复请求,根据备份副本的标识和待恢复区间,确定与备份副本对应的目标对象的标识和该目标对象所包含的至少一个分片的标识,这里的至少一个分片存储于待恢复区间。第三处理器用于根据至少一个分片的标识和目标对象的标识,从目标对象中依次读出所述至少一个分片中的每个分片,将读取出的分片进行合并,并通过上述通信接口向本地存储设备发送合并后的分片。
本申请中第四方面及其各种实现方式的具体描述,可以参考第三方面及其各种实现方式中的详细描述;并且,第四方面及其各种实现方式的有益效果,可以参考第三方面及其各种实现方式中的有益效果分析,此处不再赘述。
第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在上述第二方面所述的至少一个处理器或上述第四方面所述的至少一个处理器上运行时,使得所述至少一个处理器执行如上述第一方面、第三方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
第六方面,提供一种包含指令的计算机程序产品,该计算机程序产品包括计算机指令,当上述第二方面所述的至少一个处理器或上述第四方面所述的至少一个处理器执行计算机指令时,所述至少一个处理器执行如上述第一方面、第三方面及其任意一种可能的实现方式中任意之一所述的数据处理方法。
在本申请中,上述服务器集群和服务器的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第五方面到第六方面及其各种实现方式的具体描述,可以参考第一方面、第三方面及其各种实现方式中的详细描述;并且,第五方面到第六方面及其各种实现方式的有益效果,可以参考第一方面、第三方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为现有技术中存储系统的结构示意图;
图2为本发明实施例中存储系统的结构示意图;
图3为本发明实施例提供的数据处理方法的流程示意图一;
图4为本发明实施例提供的数据处理方法的流程示意图二;
图5为本发明实施例提供的数据处理方法的流程示意图三;
图6为本发明实施例提供的数据处理方法的流程示意图四。
具体实施方式
本发明实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于限定特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
企业数据中心中,作为主存的本地存储设备所存储的数据需要备份到公有云中,能够降低成本、提升可靠性,是目前和未来对数据保护的趋势。
图1示出了现有技术中企业数据中心与公有云组成的存储系统。如图1所示,企业数据中心与公有云通过广域网连接,企业数据中心中的数据备份存储于公有云中。
公有云包括服务器集群,该服务器集群包括多个服务器。服务器集群中存储有多份备份数据,每份备份数据均由若干个对象组成,每个对象包括多个分片以及每个分片的哈希值。每份备份数据的元数据以备份副本的形式存在,每一备份副本均包括与该备份副本对应的备份数据中每个分片的哈希值以及每个分片所归属的对象的标识,如对象的ID。图1示出了N个对象和M个备份副本,M和M均为大于或等于2的整数,每个对象包括多个分片,每个备份副本均包括与该备份副本对应的备份数据中每个分片的哈希值以及每个分片所归属的对象的标识,如备份副本1中包括分片1的哈希值以及对象1的标识“对象1”。
企业数据中心包括本地存储设备,该本地存储设备的控制器包括备份模块、删除&碎片整理模块、恢复模块、分片/索引计算模块以及索引管理模块。
备份模块用于读取存储于该存储设备的存储介质的数据,并将读取到的数据备份存储于服务器集群。具体的,备份模块可以包括数据追加子模块、第一对象复写子模块以及第一对象读子模块。数据追加子模块用于向已经存在的对象中追加写入新的数据,即写入新的分片。第一对象复写子模块用于向服务器集群中写入更新后的对象(即写入新的分片后的对象),以覆盖原对象。第一对象读子模块用于读取待处理对象。
删除&碎片整理模块用于在删除备份副本(或删除备份副本中的部分数据)的情况下,删除相应的对象(或删除和清理对象中的某些分片),以减少备份占用的存储空间。具体的,删除&碎片整理模块可以包括数据整理子模块、第二对象复写子模块以及第二对象读子模块。数据整理子模块用于删除待处理对象中引用计数为0的分片。第二对象复写子模块用于向服务器集群中写入更新后的对象(即删除分片后的对象),以覆盖原对象。第二对象读子模块用于读取待处理对象。
恢复模块用于在发起恢复任务的情况下,从服务器集群中读取对应的分片,并将读取到的分片聚合。该恢复模块包括第三对象读子模块,该第三对象子模块用于在发起恢复任务的情况下,读取相应的分片。
分片/索引计算模块用于将待备份数据按照某种规格分片(一般变长分片为数KB到十几KB),然后对每个分片计算索引值(通常为选定某种强hash函数进行计算)。
索引管理模块用于存储稀疏索引、强索引以及索引的查询。
越来越多的存储厂商会将备份能力内置到存储设备中,从而减少对独立备份服务器的依赖,减少了存储的整体部署和成本。这种方式即基于存储的混合云备份。基于存储的混合云备份中,企业数据中心到公有云之间的备份链路一般都是广域网,带宽较小(一般在几十到几百Mbps),但需要备份的数据很多(一般都是数十TB至更多)。为了提升传输效率,基于重删的加速传输往往会用到基于存储的混合云备份中,即在基于存储的混合云备份中实现数据追加、数据删除以及数据恢复。
现结合上述图1,对传统的数据追加以及数据删除进行简单描述。
传统的数据追加方法为:在需要将新的分片写入第一对象中的情况下,第一对象读子模块向服务器集群发送包括第一对象的标识的写数据处理请求;响应于该写数据处理请求,服务器集群读取第一对象,并向第一对象读子模块发送第一对象的所有分片;第一对象读子模块在接收到服务器集群发送的第一对象的所有分片后,向数据追加子模块发送该第一对象的所有分片;数据追加子模块在获取到的第一对象中的所有分片中写入新的分片,以生成更新后的第一对象;第一对象复写子模块向服务器集群发送更新后的第一对象,以便于服务器集群采用更新后的第一对象覆盖原来的第一对象。
服务器集群与本地存储设备之间需要传输对象的所有分片以及更新后的对象,传输资源的有效利用率较低,而且在写入新的分片的过程中,存在写放大的问题。
传统的数据删除方法为:在需要删除第一对象中的某一分片(如第一分片)的情况下,数据整理子模块向服务器集群发送包括第一对象的标识的数据删除请求;响应于该数据删除请求,服务器集群读取第一对象,并向数据整理子模块发送第一对象的所有分片;数据整理子模块在接收到第一对象的所有分片后,删除第一分片,并将引用计数为0的其他分片删除,以获取更新后的第一对象;第二对象复写子模块向服务器集群发送更新后的第一对象,以便于服务器集群采用更新后的第一对象覆盖原来的第一对象。
服务器集群与本地存储设备之间需要传输对象的所有分片以及更新后的对象,占用的传输带宽较大,传输资源的有效利用率较低,而且在删除分片的过程中,也存在写放大的问题。
可以看出,传统的方案中,在数据追加和数据删除的方法中,均存在传输资源的有效利用率低、写放大的问题。
数据备份的场景中,常常还会存在数据恢复。传统的数据恢复方法为:在需要恢复某一备份副本中的某些分片的情况下,恢复模块向服务器集群发送包括第一备份副本的标识的数据恢复请求;响应于该数据恢复请求,服务器集群获取并向恢复模块发送第一备份副本所对应的对象(如第一对象)的标识以及该对象中每一分片的哈希值;恢复模块根据获取到的分片的哈希值以及第一对象的标识,从服务器集群存储的第一对象中依次获取待恢复的分片。
服务器集群与本地存储设备之间需要传输每一待恢复的分片,在待恢复的分片的数量较大的情况下,传输次数较多,数据恢复的效率较低。
鉴于此,本发明实施例提供了一种数据处理方法及服务器集群。在服务器集群中设置数据追加、数据删除等功能,利用云内的高速网络,在服务器集群内部进行对象的传输,以实现数据的追加和/或删除。这样,服务器集群与本地存储设备之间只需传输有效的分片即可,无需在传输整个对象包括的所有分片,提高了传输资源的有效利用率。
此外,服务器集群中也可设置数据恢复功能,这样,在服务器集群内部实现数据的恢复,无需再多次传输分片,有效的提高了数据恢复的效率。
以下,结合附图,对本发明实施例提供的技术方案进行示例性说明。
如图2所示,是本发明实施例提供的一种存储系统的架构示意图。在图2中,该存储系统可以包括企业数据中心和公有云,企业数据中心与公有云通过广域网连接。
公有云包括服务器集群,该服务器集群包括多个服务器。服务器集群中存储有多份备份数据,每份备份数据均由若干个对象组成,每个对象包括多个分片以及每个分片的哈希值。每份备份数据的元数据以备份副本的形式存在,每一备份副本均包括与该备份副本对应的备份数据中每个分片的哈希值以及每个分片所归属的对象的标识,如对象的ID。
服务器集群中部署有处理模块(也可以称为处理进程/处理线程),该处理模块可以实现上述图1所示的备份模块、删除&碎片整理模块、恢复模块的功能。
示例性的,该处理模块用于:接收本地存储设备发送的包括目标对象的标识和目标分片的标识的数据处理请求(S300);响应于数据处理请求,根据目标对象的标识,读取目标对象(S301);在目标对象中处理目标分片,以获取更新后的目标对象(S302);存储更新后的目标对象(S303)。这里,在目标对象中处理目标分片可以为在目标对象中写入目标分片或者删除目标对象中的目标分片。
此外,处理模块还用于:接收本地存储设备发送的包括备份副本的标识和待恢复区间的数据恢复请求(S603);响应于数据恢复请求,根据备份副本的标识和待恢复区间,确定与备份副本对应的目标对象的标识和该目标对象所包含的至少一个分片的标识(S604);从目标对象中依次读出至少一个分片中的每个分片,并将读取出的分片进行合并(S605);向本地存储设备发送合并后的分片(S606)。
处理模块可以由服务器集群中的某一服务器实现,也可以为服务器集群中的某一服务器中的一个功能模块,还可以由服务器集群中的至少两个服务器实现(这种情况下,处理模块可包括多个子模块,不同的子模块位于不同的服务器上),本发明实施例对此不作具体限定。
需要说明的是,该处理模块不具备持久化数据的功能,该处理模块是无状态的。在部署有该处理模块的服务器断电或者发生故障的情况下,该处理模块中的数据会丢失。
企业数据中心包括本地存储设备,该本地存储设备的控制器依旧包括备份模块、删除&碎片整理模块、恢复模块、分片/索引计算模块以及索引管理模块。其中,本发明实施例中的备份模块、删除&碎片整理模块、恢复模块均包括与服务器集群中的处理模块进行通信的接口。在服务器集群中的处理模块出现故障的情况下,数据追加、数据删除或数据恢复的功能切换至本地存储设备实现。
本发明实施例提供的存储系统(如图2所示)是对服务器集群的功能进行了改善,可在图1示出的现有的存储系统的架构上进行修改,实现了现有的存储系统与本发明提供的存储系统的无缝扩展,易于实现。
需要说明的是,本发明实施例提供的数据处理方法可以应用于基于存储的混合云备份场景,也可以应用于松耦合的备份软件混合备份的场景,本发明实施例对此不作具体限定。
以下,结合图2,对本发明实施例提供的数据处理方法进行说明。
具体的,如图3所示,本发明实施例提供的数据处理方法包括:
S300、本地存储设备向服务器集群发送包括目标对象的标识和目标分片的标识的数据处理请求。
该数据处理请求用于请求处理目标对象中的目标分片。
具体的,该数据处理请求用于请求在目标对象中写入目标分片,或者用于请求删除目标对象中的目标分片。
这里,目标对象的标识可以为目标对象的ID,也可以为目标对象的名称,还可以为其他能够唯一指示目标对象的标识,本发明实施例对此不作具体限定。目标分片的标识可以为目标分片的哈希值,还可以为其他能够唯一指示目标分片的标识,本发明实施例对此不作具体限定。
相应的,服务器集群中的处理模块接收该数据处理请求。
S301、服务器集群中的处理模块根据目标对象的标识,读取目标对象。
从上面描述可知,服务器集群存储有多份备份数据,每份备份数据均由若干个对象组成。因此,服务器集群包括多个对象。处理模块在接收到本地存储设备发送的数据处理请求后,根据该数据处理请求中的目标对象的标识,选择目标对象,并读取目标对象,即读取目标对象中的所有分片。
S302、处理模块在目标对象中处理目标分片,以获取更新后的目标对象。
具体的,若数据处理请求用于请求在目标对象中写入目标分片,则处理模块在读取到的目标对象中,写入目标分片,以获取写入目标分片后的目标对象。相比于处理模块在S301中读取的目标对象,该写入目标分片后的目标对象为更新后的目标对象。
若数据处理请求用于请求删除目标对象中的目标分片,则处理模块在读取到目标对象后,根据目标分片的标识,从目标对象中选取出目标分片,并删除该目标分片,以获取删除目标分片后的目标对象。相比于处理模块在S301中读取的目标对象,该删除目标分片后的目标对象为更新后的目标对象。
S303、处理模块存储更新后的目标对象。
具体的,处理模块将更新后的目标对象存储于服务器集群中用于存储数据的服务器中。
S304、处理模块向本地存储设备发送数据处理响应,以表示处理模块已成功处理目标分片。
从S300~S304可以看出,本地存储设备只需向服务器集群发送包括目标对象的标识和目标分片的标识的数据处理请求即可,服务器集群中的处理模块可根据请求在目标对象中处理目标分片,这样,无需在本地存储设备与服务器集群之间传输对象所包括的所有分片,有效的提高了本地存储设备与服务器集群之间传输资源的利用率。
为了便于理解,现在针对数据追加、数据删除对本发明实施例提供的数据处理方法进行说明。
具体的,如图4所示,对于数据追加,本发明实施例提供的数据处理方法包括:
S401、本地存储设备的备份模块在生成目标分片后,分片/索引计算模块计算该目标分片的索引。
具体的,备份模块在生成目标分片后,向分片/索引计算模块发送该目标分片。分片/索引计算模块可以采用预设的hash函数计算该目标分片的索引。分片/索引计算模块向备份模块发送计算出的目标分片的索引。
S402、备份模块通过索引管理模块查询S400计算出的目标分片的索引是否已经存在。
索引管理模块用于存储稀疏索引、强索引以及索引的查询。备份模块在获取到目标分片的索引后,通过索引管理模块查询该目标分片的索引是否已经存在。
若目标分片的索引已经存在,则说明服务器集群中已经存储有目标分片。若目标分片的索引不存在,则说明服务器集群中还未存储目标分片。在目标分片的索引不存在的情况下,索引管理模块选取存在剩余存储空间的对象,并向备份模块发送该对象的标识,以便于备份模块请求在该对象中写入目标分片。本发明实施例以索引管理模块选取的对象为目标对象为例进行说明。
S403、在备份模块确定目标分片的索引不存在的情况下,备份模块向服务器集群中的处理模块发送第一数据处理请求,以请求在目标对象中写入目标分片。
从上面描述可知,在备份模块确定目标分片的索引不存在的情况下,该备份模块可获取到目标对象的标识,进而,备份模块向服务器集群中的处理模块发送包括目标对象的标识和目标分片的标识的第一数据处理请求。
S404、处理模块根据目标对象的标识,读取目标对象。
S404可以参考上述S301,此处不再进行详细赘述。
S405、处理模块在目标对象中写入目标分片,以获取写入目标分片后的目标对象。
S406、处理模块存储写入目标分片后的目标对象。
S407、处理模块向备份模块发送数据处理响应,该数据处理响应表示处理模块已成功写入目标分片。
服务器集群与本地存储设备之间无需再传输对象的所有分片即可实现在对象中写入新的分片,提高了传输资源的有效利用率。
具体的,如图5所示,对于数据删除,本发明实施例提供的数据处理方法包括:
S501、在确定删除目标对象中的目标分片时,本地存储设备的删除/碎片整理模块向服务器集群中的处理模块发送第二数据处理请求,以请求删除目标对象中的目标分片。
该第二数据处理请求包括目标对象的标识和目标分片的标识。
S502、处理模块根据目标对象的标识,读取目标对象。
S502可以参考上述S301,此处不再进行详细赘述。
S503、处理模块根据目标分片的标识,在目标对象中获取目标分片。
S504、处理模块删除目标对象中的目标分片,以获取更新后的目标对象。
可选的,处理模块删除目标对象中的目标分片,以获取删除目标分片后的目标对象,即删除目标分片后的目标对象为更新后的目标对象。
可选的,处理模块删除目标对象中的目标分片,还删除目标对象中引用计数为0的其他分片,以获取删除目标分片和引用计数为0的其他分片后的目标对象,即删除目标分片和引用计数为0的其他分片后的目标对象为更新后的目标对象。
S505、处理模块向删除/碎片整理模块发送数据处理响应,该数据处理响应表示处理模块已成功删除目标分片。
服务器集群与本地存储设备之间无需再传输对象的所有分片即可实现删除对象中的部分分片,提高了传输资源的有效利用率。
除了数据追加和数据删除外,本发明实施例提供的数据处理方法还是用于数据恢复的场景。
具体的,如图6所示,对于数据恢复,本发明实施例提供的数据处理方法包括:
S600、本地存储设备中的恢复模块向服务器集群中的处理模块发送包括备份副本的标识的元数据获取请求。
S601、响应于元数据获取请求,处理模块获取与备份副本的标识对应的元数据。
结合上面描述可知,元数据包括与该备份副本对应的备份数据中每个分片的哈希值以及每个分片所归属的对象的标识。
S602、处理模块向恢复模块发送元数据获取响应,该元数据获取响应用于表示处理模块已成功获取与备份副本的标识对应的元数据。
S603、恢复模块向处理模块发送包括备份副本的标识和待恢复区间的数据恢复请求。
S604、响应于数据恢复请求,处理模块根据备份副本的标识和待恢复区间,确定与备份副本对应的目标对象的标识和该目标对象所包含的至少一个分片的标识。
这里的至少一个分片存储于待恢复区间。
由于处理模块在S601已经获取到与备份副本的标识对应的元数据,因此,处理模块在接收到数据恢复请求后,能够根据备份副本的标识,确定出与该备份副本对应的目标对象,进一步地,处理模块能够根据待恢复区间确定出目标对象中的至少一个分片。
S605、处理模块根据至少一个分片的标识和目标对象的标识,从目标对象中依次读出至少一个分片中的每个分片。
S606、处理模块将读取出的分片进行合并,并向恢复模块发送合并后的分片。
相比于现有技术,本实施例中的服务器集群与本地存储设备之间无需再传输与备份副本的标识对应的元数据,有效的降低了对传输资源的占用。在数据恢复过程中,处理模块可读取待恢复的每一分片,并将读取到的分片进行合并,这样,服务器集群与本地存储设备之间无需传输多个分片,有效的提高了数据恢复的效率。
上述主要从方法的角度对本发明实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例还提供一种服务器集群,该服务器集群可以应用于上文提供的存储系统。具体的,服务器集群包括至少两个服务器,参考图2示出的公有云中服务器集群的连接方式可知,本发明实施例中的至少两个服务器中的任意两个服务器相互连接。
本发明实施例提供的至少两个服务器包括至少一个处理器和至少一个存储器。至少一个存储器用于存储计算机指令。当至少一个处理器执行所述计算机指令时,至少一个处理器执行上述方法实施例所示的方法流程中处理模块执行的各个步骤。
可选的,在至少两个服务器包括一个处理器和一个存储器的情况下,该处理器和存储器位于同一服务器中,该服务器执行上述数据处理方法。
可选的,在至少两个服务器包括至少两个处理器的情况下,至少两个处理器可以位于服务器集群中的同一服务器中,也可以为位于服务器集群的不同服务器中,本发明实施例对此不做具体限定。
本发明另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在上述至少一个处理器上运行时,该至少一个处理器执行上述方法实施例所示的方法流程中服务器集群的处理模块执行的各个步骤。
在本发明的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当上述至少一个处理器执行该计算机指令时,至少一个处理器执行上述方法实施例所示的方法流程中处理模块执行的各个步骤。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据终端。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘solid state disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何在本发明实施例揭露的技术范围内的变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以所述权利要求的保护范围为准。
Claims (4)
1.一种数据处理方法,其特征在于,应用于服务器集群,所述数据处理方法由所述服务器集群中的处理模块执行,所述数据处理方法包括:
接收本地存储设备发送的数据处理请求,所述数据处理请求包括目标对象的标识和目标分片的标识,所述数据处理请求用于请求处理所述目标对象中的所述目标分片;
响应于所述数据处理请求,根据所述目标对象的标识,读取所述目标对象;
在所述目标对象中处理所述目标分片的标识所指示的所述目标分片,以获取更新后的目标对象;
存储所述更新后的目标对象;
所述数据处理请求用于请求删除所述目标分片;
在所述数据处理请求用于请求删除所述目标分片时,所述在所述目标对象中处理所述目标分片的标识所指示的所述目标分片,以获取更新后的目标对象,具体包括:
根据所述目标分片的标识,在所述目标对象中获取所述目标分片;
删除所述目标分片,以获取删除所述目标分片后的目标对象。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理请求还用于请求在所述目标对象中写入所述目标分片,所述数据处理请求还包括所述目标分片;
所述在所述目标对象中处理所述目标分片的标识所指示的所述目标分片,以获取更新后的所述目标对象,具体包括:
在所述目标对象中写入所述目标分片,以获取写入所述目标分片后的目标对象。
3.根据权利要求1所述的数据处理方法,其特征在于,所述目标对象所包括的分片具有引用计数,所述数据处理方法还包括:
删除所述目标对象中引用计数为零的其他分片。
4.一种服务器集群,所述服务器集群包括至少两个服务器,其特征在于,所述至少两个服务器包括至少一个处理器和至少一个存储器;所述至少一个存储器,用于存储计算机指令,当所述至少一个处理器执行所述计算机指令时,所述至少一个处理器执行如权利要求1-3中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070641.9A CN110896408B (zh) | 2018-09-13 | 2018-09-13 | 一种数据处理方法及服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811070641.9A CN110896408B (zh) | 2018-09-13 | 2018-09-13 | 一种数据处理方法及服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110896408A CN110896408A (zh) | 2020-03-20 |
CN110896408B true CN110896408B (zh) | 2021-08-13 |
Family
ID=69785409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811070641.9A Active CN110896408B (zh) | 2018-09-13 | 2018-09-13 | 一种数据处理方法及服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110896408B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153149B (zh) * | 2020-09-27 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种服务器连接方法、系统、电子设备及存储介质 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870829A (zh) * | 2016-09-24 | 2018-04-03 | 华为技术有限公司 | 一种分布式数据恢复方法、服务器、相关设备及系统 |
CN108228102A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 节点间数据迁移方法、装置、计算设备及计算机存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771481A (zh) * | 2008-11-07 | 2010-07-07 | 华为终端有限公司 | 一种更新业务指南的方法和设备 |
US9170882B2 (en) * | 2010-12-22 | 2015-10-27 | Cleversafe, Inc. | Retrieving data segments from a dispersed storage network |
CN105677250B (zh) * | 2016-01-04 | 2019-07-12 | 北京百度网讯科技有限公司 | 对象存储系统中的对象数据的更新方法和更新装置 |
CN107786638B (zh) * | 2017-09-27 | 2020-04-14 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
-
2018
- 2018-09-13 CN CN201811070641.9A patent/CN110896408B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870829A (zh) * | 2016-09-24 | 2018-04-03 | 华为技术有限公司 | 一种分布式数据恢复方法、服务器、相关设备及系统 |
CN108228102A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 节点间数据迁移方法、装置、计算设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110896408A (zh) | 2020-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11733871B2 (en) | Tier-optimized write scheme | |
US9507800B2 (en) | Data management in distributed file systems | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
US9575974B2 (en) | Distributed file system gateway | |
US9298707B1 (en) | Efficient data storage and retrieval for backup systems | |
US20150324371A1 (en) | Data Processing Method and Device in Distributed File Storage System | |
US20120005307A1 (en) | Storage virtualization | |
US9612760B2 (en) | Modular block-allocator for data storage systems | |
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
US20110225130A1 (en) | Storage device, and program and method for controlling storage device | |
CN113485636B (zh) | 一种数据访问方法、装置和系统 | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
US9003151B2 (en) | Methods and systems for data cleanup using physical image of files on storage devices | |
US20180107404A1 (en) | Garbage collection system and process | |
CN109302448A (zh) | 一种数据处理方法及装置 | |
CN109445687A (zh) | 一种数据存储方法以及协议服务器 | |
CN110896408B (zh) | 一种数据处理方法及服务器集群 | |
US11449256B2 (en) | Method for accelerating image storing and retrieving differential latency storage devices based on access rates | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
EP3449372B1 (en) | Fault-tolerant enterprise object storage system for small objects | |
US20140214775A1 (en) | Scalable data deduplication | |
US20180307437A1 (en) | Backup control method and backup control device | |
US10719556B2 (en) | Information processing apparatus and computer-readable storage medium storing information processing program | |
US9003152B2 (en) | Methods and systems for data cleanup using physical image of files on storage devices | |
CN107203559B (zh) | 一种划分数据条带的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |