CN111367712A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN111367712A CN111367712A CN201811604928.5A CN201811604928A CN111367712A CN 111367712 A CN111367712 A CN 111367712A CN 201811604928 A CN201811604928 A CN 201811604928A CN 111367712 A CN111367712 A CN 111367712A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- storage node
- node
- storage nodes
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法及装置,涉及存储技术领域,解决了在重构多个故障节点的分片数据的情况下,导致集群内部网络带宽消耗,故障恢复时间较长的问题。具体方案为:第一存储节点接收第二存储节点发送的第一数据恢复请求,并根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据,向第二存储节点发送第一数据恢复响应。其中,第一数据恢复请求包括第一分条的标识和第一分片数据的标识,第一分片数据为故障的第二存储节点存储的第一分条包括的分片数据;第一分条的重构数据包括故障的存储节点存储的第一分条包括的分片数据;第一数据恢复响应包括第一分片数据。本申请实施例用于恢复分片数据的过程。
Description
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种数据处理方法及装置。
背景技术
在分布式存储系统中,为了保证数据的安全性,可以采用数据冗余模式来存储数据。常见的数据冗余模式包括多副本和纠删码(erasure coding,EC)。EC冗余模式是指将原始数据等分成N个数据分片,根据EC算法和N个数据分片,生成M个校验分片,并将N+M个分片数据分别存储到集群中的N+M个存储节点上。当N+M个存储节点中出现多个存储节点故障,数据重构节点需要针对每个故障的存储节点执行EC反编码,重构出剩余的M个分片数据,将各分片数据反馈给对应故障的存储节点。因此,在重构多个故障的存储节点的分片数据的情况下,导致集群内部网络带宽消耗,故障恢复时间较长。
发明内容
本申请实施例提供一种数据处理方法及装置,解决了在重构多个故障节点的分片数据的情况下,导致集群内部网络带宽消耗,故障恢复时间较长的问题。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供了一种数据处理方法,该方法可应用于分布式存储系统中的第一存储节点,或者该方法可应用于可以支持第一存储节点实现该方法的通信装置,例如该通信装置包括芯片系统,分布式存储系统包括K个存储节点,K个存储节点用于存储R个分条对应的数据,R个分条中每个分条包括K个分片数据,K个分片数据中每个分片数据存储到K个存储节点中的一个存储节点上,其中,K为大于或等于3的整数,R为大于或等于1的整数,所述方法包括:第一存储节点接收到第二存储节点发送的第一数据恢复请求后,根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据,并向第二存储节点发送第一数据恢复响应,第一数据恢复响应包括第一分片数据。其中,第一数据恢复请求包括第一分条的标识和第一分片数据的标识,第一存储节点和第二存储节点为K个存储节点中任意两个存储节点,第一分条为R个分条中任意一个分条,第一分片数据为故障的第二存储节点存储的第一分条包括的分片数据;第一分条的重构数据包括K个存储节点中故障的存储节点存储的第一分条包括的分片数据。
本申请实施例提供的数据处理方法,不需要重复的读取其他分片数据以及重复地进行EC反编码计算,可以从缓存中获取需要恢复的分片数据,从而,有效地降低了集群内部网络带宽消耗,减少了磁盘读写和CPU占用,缩短故障恢复时间。
结合第一方面,在一种可能的实现方式中,第一存储节点根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据,包括:第一存储节点根据第一分条的标识从缓存的至少一个分条的重构数据中确定第一分条的重构数据;第一存储节点根据第一分片数据的标识从第一分条的重构数据中确定第一分片数据。
结合第一方面或上述可能的实现方式,在另一种可能的实现方式中,在第一存储节点接收第二存储节点发送的第一数据恢复请求之前,方法还包括:第一存储节点接收到第三存储节点发送的第二数据恢复请求之后,根据第一分条的标识获取第一分条包括的N个分片数据,并根据N个分片数据重构M个分片数据。其中,第二数据恢复请求包括第一分条的标识和第二分片数据的标识,第三存储节点为K个存储节点中除第一存储节点和第二存储节点之外的任意一个存储节点,第二分片数据为故障的第三存储节点存储的第一分条包括的分片数据;N个分片数据为K个存储节点中正常的N个存储节点存储的数据;2≤N≤K,1≤M≤K,N+M=K,N大于或等于M;第一存储节点生成M个分片数据,从M个分片数据中确定第二分片数据,向第三存储节点发送第二数据恢复响应,第二数据恢复响应包括第二分片数据;同时,第一存储节点缓存第一分条的重构数据,第一分条的重构数据包括A个分片数据,A个分片数据为K个存储节点中故障的A个存储节点存储的数据,1≤A≤M。
结合上述可能的实现方式,在另一种可能的实现方式中,在第一存储节点接收第三存储节点发送的第二数据恢复请求之前,方法还包括:第一存储节点接收集群管理节点发送的第一指示,第一指示用于指示K个存储节点中正常的K-A个存储节点和故障的A个存储节点,故障的A个存储节点包括第二存储节点和第三存储节点;第一存储节点缓存第一分条的重构数据,包括:第一存储节点根据第一指示缓存第一分条的重构数据。
从而,由于采用了分区数据缓存算法,不需要缓存所有重构出的M个分片数据,只需要根据存储节点的分区视图,缓存分区视图中存储节点的状态为故障的存储节点对应的分片数据,当该存储节点的状态变为正常时,再删除缓存中对应的分片数据,大大降低了缓存分片数据的内存占用量。
结合上述可能的实现方式,在另一种可能的实现方式中,在第一存储节点向第三存储节点发送第二数据恢复响应之后,方法还包括:第一存储节点接收集群管理节点发送的第二指示,第二指示用于指示K个存储节点中正常的K-A+1个存储节点和故障的A-1个存储节点,正常的K-A+1个存储节点包括第三存储节点;第一存储节点删除缓存中第一分条的重构数据包括的第二分片数据。
结合上述可能的实现方式,在另一种可能的实现方式中,在第一存储节点向第二存储节点发送第一数据恢复响应之后,方法还包括:第一存储节点接收集群管理节点发送的第三指示,第三指示用于指示K个存储节点中正常的K-A+2个存储节点和故障的A-2个存储节点,正常的K-A+2个存储节点包括第二存储节点;第一存储节点删除缓存中第一分条的重构数据包括的第一分片数据。
第二方面,本申请实施例还提供了一种数据处理装置,用于实现上述第一方面描述的方法。数据处理装置为分布式存储系统包括的第一存储节点或支持第一存储节点实现该第一方面描述的方法的通信装置,例如该通信装置包括芯片系统。分布式存储系统包括K个存储节点,K个存储节点用于存储R个分条对应的数据,R个分条中每个分条包括K个分片数据,K个分片数据中每个分片数据存储到K个存储节点中的一个存储节点上,其中,K为大于或等于3的整数,R为大于或等于1的整数。例如,该数据处理装置包括:接收单元、处理单元和发送单元。所述接收单元,用于接收第二存储节点发送的第一数据恢复请求,第一数据恢复请求包括第一分条的标识和第一分片数据的标识,第一存储节点和第二存储节点为K个存储节点中任意两个存储节点,第一分条为R个分条中任意一个分条,第一分片数据为故障的第二存储节点存储的第一分条包括的分片数据。所述处理单元,用于根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据,第一分条的重构数据包括K个存储节点中故障的存储节点存储的第一分条包括的分片数据。所述发送单元,用于向第二存储节点发送第一数据恢复响应,第一数据恢复响应包括第一分片数据。
可选地,对于数据处理方法的详细解释可以同第一方面中相应的描述,这里不再赘述。
需要说明的是,上述第二方面的功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。例如,收发器,用于完成接收单元和发送单元的功能,处理器,用于完成处理单元的功能,存储器,用于处理器处理本申请实施例的方法的程序指令。处理器、收发器和存储器通过总线连接并完成相互间的通信。具体的,可以参考第一方面所述的方法中的第一存储节点的行为的功能。
第三方面,本申请实施例还提供了一种通信装置,用于实现上述第一方面描述的方法。所述通信装置为第一存储节点或支持第一存储节点实现该第一方面描述的方法的通信装置,例如该通信装置包括芯片系统。例如所述通信装置包括处理器,用于实现上述第一方面描述的方法的功能。所述通信装置还可以包括存储器,用于存储程序指令和数据。所述存储器与所述处理器耦合,所述处理器可以调用并执行所述存储器中存储的程序指令,用于实现上述第一方面描述的方法中的功能。所述通信装置还可以包括通信接口,所述通信接口用于该通信装置与其它设备进行通信。示例性地,若所述通信装置为第一存储节点,该其它设备为第二存储节点。
可选地,对于数据处理方法的详细解释可以同第一方面中相应的描述,这里不再赘述。
第四方面,本申请实施例还提供了一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在通信装置中运行时,使得通信装置执行上述第一方面所述的方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在通信装置中运行时,使得通信装置执行上述第一方面所述的方法。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中第一存储节点的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
另外,上述任意方面的设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请实施例中,第一存储节点的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请实施例类似,属于本申请权利要求及其等同技术的范围之内。
附图说明
图1为本申请实施例提供的一种分布式存储系统的简化示例图;
图2为本申请实施例提供的一种分区划分示例图;
图3为本申请实施例提供的一种存储节点查找过程示例图;
图4为本申请实施例提供的另一种分区划分示例图;
图5为现有技术提供的一种数据恢复过程示例图;
图6为本申请实施例提供的一种数据处理方法的流程图;
图7为本申请实施例提供的另一种数据处理方法的流程图;
图8为本申请实施例提供的又一种数据处理方法的流程图;
图9为本申请实施例提供的一种数据恢复过程示例图;
图10为本申请实施例提供的一种数据处理装置的组成示例图;
图11为本申请实施例提供的一种通信装置的组成示例图。
具体实施方式
本申请说明书和权利要求书中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
在大数据环境下,掌握越多的数据,数据蕴含的价值也就越大。目前,企业用户、数据中心基础设施等主要通过云存储技术来存储海量的数据,例如,分布式存储系统。
分布式存储系统,是一种易于扩展的存储系统,各个存储节点地位均等,不限定系统中存储节点的位置与数量,可以任意扩展,可以将数据分散存储在多台独立的存储节点上,实现负载均衡的效果。相对于传统的网络存储系统采用集中的存储服务器存放所有数据,提高了系统的可靠性、可用性和存取效率。
示例的,图1为本申请实施例提供的一种分布式存储系统的简化示例图。如图1所示,该系统架构可以包括:S个存储节点、一个集群管理节点和一个应用节点,S个存储节点中每个存储节点包括X个存储介质。S个存储节点可以称为一个集群。其中,S为大于或等于3的整数,X为大于或等于1的整数。
集群管理节点用于管理元数据、存储节点的地址、存储节点的状态和存储节点的负载。元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data aboutdata),主要是描述数据属性(property)的信息,用于支持指示存储位置、历史数据、资源查找和文件记录等功能。存储节点的地址可以是存储节点在分布式存储系统中的互联网协议(internet protocol,IP)地址。存储节点的状态包括工作状态和故障状态。
应用节点存储有应用软件,用于产生数据,将数据写入存储节点或访问存储节点读取数据。应用节点和集群管理节点可以是集成于同一个设备上的不同的逻辑节点,也可以是分布于不同位置的设备,可以通过网络连接,也可以直接连接,本申请实施例对此不作限定,只要是实现应用节点和集群管理节点的功能都可以。
存储节点包括的存储介质,用于存储数据。本申请实施例所述的存储节点也可称为存储服务器。每个存储节点可以是集成于同一个设备上的不同的逻辑节点,也可以是分布于不同位置的设备,本申请实施例对此不作限定,只要是实现分布式存储系统的存储功能都可以。存储介质是指存储数据的载体。比如软盘、光盘、DVD、硬盘、闪存、安全数码卡(Secure Digital Memory Card,SD)卡、多媒体(Mutimedia Card,MMC)卡、记忆棒(MemoryStick)等。目前最流行的存储介质是基于闪存(Nand flash)的磁盘。
在存储海量的数据同时,还需要保证海量的数据的可靠性。现有的保证数据可靠性的冗余模式主要包括多副本(Multi-Replica)和纠删码(erasure coding,EC)。
EC冗余模式是指将原始数据进行等分,得到N个数据分片,然后利用N个数据分片通过EC算法生成M个校验分片,再将N个数据分片和M个校验分片分别存储到集群中的K个存储节点上。集群至少包括K个存储节点,例如K≤S。N个数据分片和M个校验分片组成K个分片数据。其中,K=N+M,K为大于或等于3的整数,2≤N≤K,1≤M≤K,N大于或等于M。例如,N=2,M=1,K=3。或者,N=4,M=2,K=6。或者,N=6,M=3,K=9。读取时只需获取少量分片信息并结合简单异或计算即可得到原始数据。这种方式极大的提高了磁盘空间利用率,利用硬件设备加速计算过程,对于性能的损耗也可以控制在一定范围内。
在系统工作之前,集群管理节点还可以根据分区划分算法将所有存储节点包括的存储介质按照EC冗余模式进行哈希打散,得到多个分区。所有的存储节点都需要周期性的向集群管理节点上报心跳,以便集群管理节点获知所有存储节点的状态。可以将用于存储分条对应的数据的存储节点的状态称为分区视图。集群管理节点可以将分区视图推送给应用节点,应用节点可以根据分区视图将数据写入存储节点或访问存储节点读取数据。
例如,可以将所述S个存储节点包括的S*X个存储介质分为P个分区,P个分区中每个分区包括K个存储介质。K个存储介质是在S个存储节点中选择不同的K个存储节点,再从不同的K个存储节点的每个存储节点中选择一个存储介质得到的。可以将从K个存储节点的每个存储节点中选择的K个存储介质称为分区。可以理解的,每个分区包括的K个存储介质属于K个不同的存储节点。“P个分区中每个分区包括K个存储介质”也可以描述为“P个分区中每个分区包括K个存储节点”。每个分区包括的存储介质也是不同的。每个分区包括的K个存储介质用于存储至少一个分条(stripe)对应的数据。一个分条包括N个数据分片和M个校验分片,数据分片为用户数据,校验分片为该分条中用户数据的校验数据。K个存储介质中N个存储介质用于存储N个数据分片,K个存储介质中M个存储介质用于存储M个校验分片。其中,S为大于或等于3的整数,X为大于或等于1的整数,P为大于或等于1的整数。例如,分布式存储系统包括8个存储节点,每个存储节点包括6个存储介质,即S=8,X=6。或者,分布式存储系统包括6个存储节点,每个存储节点包括6个存储介质,即S=6,X=6。
下面举例说明一种分区划分算法,本申请适用的分区划分算法包括但不唯一包括本示例算法。
如图2所示,将整个哈希值空间组成一个环,可以预先将哈希值空间等分成P个分区(partition)。如图2所示,将哈希空间等分为20个分区,从P0-P19,每个分区包含的哈希值范围相等。在键值(Key Value,KV)存储中,键值经过哈希计算后,哈希值会映射到该哈希空间的某个分区上。例如,键值0经过哈希计算后被映射到了P3分区。因此,键值0对应的数据就会被存储到分区P3上。对于一个有S个存储节点的集群,系统维护一张映射表。该映射表保存每个分区到存储节点的映射关系,即指定某个分区上的数据由哪个存储节点来持久化。
例如,将图2中的20个分区指派到5个存储节点上。以EC2+2为例,首先根据预设的哈希打散粒度,在哈希空间放置存储节点对应的虚拟存储节点,再计算键值的哈希值得到分区号,在哈希环上以该分区为起点,顺时针方向的4个虚拟存储节点作为键值的分片数据的存储节点,得到每个分区的映射表。
假设键值0的数据以EC2+2的冗余方式持久化,如图3所示,描述了键值0的数据存储节点的查找过程,首先键值0通过哈希计算出哈希值,根据哈希值得到对应的分区号P3,根据映射表找到该分区数据的虚拟存储节点,从而找到键值0的数据对应的存储节点。
从上述方法可知,一个存储节点可以属于不同的分区,但是每个分区包括的存储节点的个数相同。因此,可以根据分布式存储系统包括的存储节点的个数、存储介质的个数和EC冗余模式划分分区。
示例的,假设分布式存储系统包括8个存储节点,每个存储节点包括6个存储介质,即S=8,X=6。EC冗余模式为4个数据分片及2个校验分片,即N=4,M=2。根据EC的冗余模式对分布式存储系统进行分区划分,即从8个存储节点中选择不同的6个存储节点,再从不同的6个存储节点的每个存储节点中选择一个存储介质,将从6个存储节点的每个存储节点中选择的存储介质确定为一个分区,从而,可以得到八个分区。八个分区中每个分区包括6个存储介质。假设对8个存储节点按照1至8进行编码,每个存储节点包括的6个存储介质按照1至6进行编码。存储节点1中的存储介质1可以记为1-1,存储节点1中的存储介质2可以记为1-2,存储节点1中的存储介质3可以记为1-3,存储节点1中的存储介质4可以记为1-4,存储节点1中的存储介质5可以记为1-5,存储节点1中的存储介质6可以记为1-6。同理,存储节点2中的存储介质1可以记为2-1,存储节点2中的存储介质2可以记为2-2,存储节点2中的存储介质3可以记为2-3,存储节点2中的存储介质4可以记为2-4,存储节点2中的存储介质5可以记为2-5,存储节点2中的存储介质6可以记为2-6。其他存储节点中的存储介质同样可以按照上述编码方式表示,本申请实施例在此不再赘述。
如图4所示,分区一包括存储介质1-1、存储介质2-1、存储介质3-1、存储介质4-1、存储介质5-1和存储介质6-1。分区二包括存储介质2-2、存储介质3-2、存储介质4-2、存储介质5-2、存储介质6-2和存储介质7-2。分区三包括存储介质3-3、存储介质4-3、存储介质5-3、存储介质6-3、存储介质7-3和存储介质8-3。分区四包括存储介质4-4、存储介质5-4、存储介质6-4、存储介质7-4、存储介质8-4和存储介质1-2。分区五包括存储介质5-5、存储介质6-5、存储介质7-5、存储介质8-5、存储介质1-3和存储介质2-3。分区六包括存储介质6-6、存储介质7-6、存储介质8-6、存储介质1-4、存储介质2-4和存储介质3-4。分区七包括存储介质1-5、存储介质2-5、存储介质3-5、存储介质4-5、存储介质7-1和存储介质8-1。分区八包括存储介质1-6、存储介质2-6、存储介质3-6、存储介质4-6、存储介质5-6和存储介质8-2。
需要说明的是,上述分区的划分方式只是示例性说明,本申请实施例对此不作限定,实际应用中还可以有其他方式的划分。但是,在划分分区时需要保证同一个分区包括的存储介质属于不同的存储节点。如果分布式存储系统中存在剩余的存储介质不够组成一个满分区时,可以选择已经分配到其他的分区的存储介质与剩余的存储介质组成分区,即不同的分区可以包括相同的存储介质(同一个存储节点中的同一个存储介质)。需要注意的是,在选择已经分配到其他的分区的存储介质时,需要在分布式存储系统中除了包括剩余的存储介质的存储节点之外的其他存储节点中选择负载最小的存储介质。
此外,在分布式存储系统中的某个存储节点故障后,故障的存储节点可以向数据重构节点发送数据恢复请求。所述故障的存储节点和所述数据重构节点属于同一个分区。数据重构节点可以是该分区中的主存储节点,主存储节点可以是分区中的任意一个存储节点,主存储节点存储分区中其他备存储节点的存储的分条的信息,例如,分条的标识和分条包括的分片数据的标识。故障的存储节点可以是该分区中的备存储节点。数据重构节点接收到数据恢复请求后,可以根据数据恢复请求从该分区上任意N个正常的存储节点上读取N个分片数据,根据N个分片数据进行EC反编码计算,重构出剩余的M个分片数据,并向故障的存储节点反馈对应的分片数据,从而完成数据恢复。需要说明的是,M个分片数据包括故障的存储节点存储的分片数据,其中,N个分片数据属于同一个分条,N个分片数据可以包括数据分片和校验分片中至少一种,M个分片数据可以包括数据分片和校验分片中至少一种。N个分片数据和M个分片数据组成一个分条。
但是,当集群中出现多个存储节点故障,造成分条上多个分片数据损坏时,数据重构节点需要分别重构出各个故障的存储节点存储的分片数据,返回给对应的故障的存储节点。
图5为现有技术提供的一种数据恢复过程示例图。如图5所示,假设存储节点1至存储节点9属于第一分区。存储节点1为主存储节点,存储节点2至存储节点9为备存储节点。存储节点1至存储节点9存储第一分条包括分片数据1至分片数据9,9个分片数据中每个分片数据存储到9个存储节点中的一个存储节点上。例如,存储节点1存储分片数据1,存储节点2存储分片数据2,存储节点3存储分片数据3,以此类推,存储节点9存储分片数据9。9个分片数据包括6个数据分片和3个校验分片。若存储节点7至存储节点9故障,在第一时刻,存储节点7向存储节点1发送数据恢复请求,存储节点1从本地读取分片数据1,以及分别从存储节点2至存储节点6中读取分片数据2至分片数据6,存储节点1利用分片数据1至分片数据6进行EC反编码计算,重构出剩余的3个分片数据,即分片数据7至分片数据9,存储节点1向存储节点7反馈分片数据7。在第二时刻,存储节点8向存储节点1发送数据恢复请求,存储节点1从本地读取分片数据1,以及分别从存储节点2至存储节点7中读取任意6个分片数据,例如,读取分片数据2至分片数据6,存储节点1利用任意6个分片数据进行EC反编码计算,重构出剩余的3个分片数据,3个分片数据包括分片数据8,存储节点1向存储节点8反馈分片数据8。同理,存储节点9可以向存储节点1发送数据恢复请求,存储节点1可以分别从存储节点1至存储节点8中读取任意6个分片数据,例如,读取分片数据2至分片数据6,存储节点1利用任意6个分片数据进行EC反编码计算,重构出剩余的3个分片数据,3个分片数据包括分片数据9,存储节点1向存储节点9反馈分片数据9。
在这种情况下,数据重构节点需要重复地去读取其他存储节点的分片数据,需要多次进行EC反编码计算,造成集群内部网络带宽消耗,磁盘和CPU的浪费,故障恢复时间增长。以EC冗余模式为N+M情况下,M个分片数据故障,由于每次恢复分片数据时,集群内网络传输量为N,需要读盘N次,进行1次EC反编码计算,因此,恢复M个分片数据,集群内网络传输量为N×M,需要读盘N×M次,进行M次EC反编码计算。
为了解决上述问题,本申请实施例提供一种数据处理方法,其基本原理是:第一存储节点接收到第二存储节点发送的第一数据恢复请求后,根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据,并向第二存储节点发送第一数据恢复响应,第一数据恢复响应包括第一分片数据。其中,第一数据恢复请求包括第一分条的标识和第一分片数据的标识,第一存储节点和第二存储节点为K个存储节点中任意两个存储节点,第一分条为R个分条中任意一个分条,第一分片数据为故障的第二存储节点存储的第一分条包括的分片数据;第一分条的重构数据包括K个存储节点中故障的存储节点存储的第一分条包括的分片数据。本申请实施例提供的数据处理方法,不需要重复的读取其他分片数据以及重复地进行EC反编码计算,可以从缓存中获取需要恢复的分片数据,从而,有效地降低了集群内部网络带宽消耗,减少了磁盘读写和CPU占用,缩短故障恢复时间。同样恢复M个分片数据,集群内网络传输量为N-1+M,需要读盘N次,进行1次EC反编码计算。
下面将结合附图对本申请实施例的实施方式进行详细描述。
以第一存储节点、第二存储节点和第三存储节点为例对本申请实施例提供的数据处理方法进行说明。假设第一存储节点为正常的存储节点。第二存储节点和第三存储节点均为故障的存储节点。第一存储节点可以为主存储节点。第二存储节点和第三存储节点均可以为备存储节点。第一存储节点和第二存储节点为K个存储节点中任意两个存储节点。第三存储节点为K个存储节点中除第一存储节点和第二存储节点之外的任意一个存储节点。K个存储节点属于第一分区。可理解的,第一分区包括K个存储节点中的K个存储介质。K个存储介质用于存储第一分区的R个分条对应的数据,R个分条中每个分条包括K个分片数据。图6为本申请实施例提供的一种数据处理方法的流程图,如图6所示,该方法可以包括:
S601、第二存储节点向第一存储节点发送第一数据恢复请求。
第一数据恢复请求包括第一分条的标识和第一分片数据的标识。第一分条可以为R个分条中任意一个分条,第一分片数据为故障的第二存储节点存储的第一分条包括的分片数据。第一数据恢复请求还可以包括第二存储节点的IP地址、端口号和第二存储节点的标识。IP地址用于指示第二存储节点在网络中的地址。端口号用于指示第一分片数据在第二存储节点存储的位置,例如第二存储节点中的哪个存储介质。第二存储节点的标识用于标识第二存储节点,是第二存储节点在集群中的唯一标识。
S602、第一存储节点接收第二存储节点发送的第一数据恢复请求。
S603、第一存储节点根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据。
由于第一存储节点可以存储第一分区的R个分条对应的数据,第一存储节点可以预先存储至少一个分条的重构数据,因此,第一存储节点可以根据第一分条的标识先从缓存的至少一个分条的重构数据中确定第一分条的重构数据,然后,根据第一分片数据的标识从第一分条的重构数据中确定第一分片数据。其中,第一分条的重构数据可以包括K个存储节点中故障的存储节点存储的第一分条包括的分片数据。
S604、第一存储节点向第二存储节点发送第一数据恢复响应。
第一存储节点可以根据第二存储节点的IP地址向第二存储节点发送第一数据恢复响应,第一数据恢复响应包括第一分片数据。
S605、第二存储节点接收第一存储节点发送的第一数据恢复响应。
第一数据恢复响应还可以包括端口号,以便于第二存储节点接收到第一分片数据后,将第一分片数据存储到第二存储节点上对应端口号的存储介质上。
进一步的,在第一存储节点接收第二存储节点发送的第一数据恢复请求,即S601之前,第一存储节点需要生成并存储第一分条的重构数据,如图7所示,方法还可以包括以下步骤。
S701、第三存储节点向第一存储节点发送第二数据恢复请求。
第二数据恢复请求包括第一分条的标识和第二分片数据的标识,第二分片数据为故障的第三存储节点存储的第一分条包括的分片数据。第二数据恢复请求还可以包括第三存储节点的IP地址、端口号和第三存储节点的标识。其他解释可以参考S601的阐述,本申请实施例在此不再赘述。
S702、第一存储节点接收第三存储节点发送的第二数据恢复请求。
S703、第一存储节点根据第一分条的标识获取第一分条包括的N个分片数据。
第一存储节点可以从第一分区的K个存储节点中其他正常的N个存储节点上获取第一分条包括的N个分片数据。需要说明的是,N个分片数据既可以均是数据分片也可以均是校验分片,也可以既包括数据分片又包括校验分片,本申请实施例对此不作限定。
S704、第一存储节点根据N个分片数据重构M个分片数据。
第一存储节点可以根据N个分片数据进行EC反编码计算,重构出第一分条的剩余的M个分片数据。需要说明的是,M个分片数据既可以均是数据分片也可以均是校验分片,也可以既包括数据分片又包括校验分片,本申请实施例对此不作限定。在本申请实施例中,N个分片数据和重构的M个分片数据组成了第一分条。EC反编码计算的具体方法可以参考现有技术,本申请实施例在此不再赘述。
S705、第一存储节点向第三存储节点发送第二数据恢复响应。
第一存储节点可以根据第三存储节点的IP地址向第三存储节点发送第二数据恢复响应,第二数据恢复响应包括第二分片数据。第二数据恢复响应还可以包括端口号,以便于第三存储节点接收到第二分片数据后,将第二分片数据存储到第三存储节点上对应端口号的存储介质上。
S706、第三存储节点接收第一存储节点发送的第二数据恢复响应。
S707、第一存储节点缓存第一分条的重构数据。
第一分条的重构数据可以包括A个分片数据,A个分片数据为K个存储节点中故障的A个存储节点存储的数据,1≤A≤M。例如,当A=M时,表示K个存储节点中存在M个存储节点故障。
需要说明的是,在第一存储节点接收第三存储节点发送的第二数据恢复请求,即S701之前,第一存储节点可以接收集群管理节点发送的第一分区的分区视图,第一分区的分区视图指示了第一分区中故障的存储节点。如图7所示,方法还可以包括以下步骤。
S708、集群管理节点向第一存储节点发送第一指示。
第一指示用于指示K个存储节点中正常的K-A个存储节点和故障的A个存储节点,故障的A个存储节点包括第二存储节点和第三存储节点,当然,故障的A个存储节点还可以包括其他的存储节点。在下文中,本申请实施例所述的指示K个存储节点中正常的存储节点和故障的存储节点的指示信息可以是指分区视图。
S709、第一存储节点接收集群管理节点发送的第一指示。
第一存储节点可以根据第一指示缓存第一分条的重构数据。
需要说明的是,本申请实施例提供的数据处理方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,示例的,如S705和S707之间的前后顺序可以互换,即第一存储节点可以先缓存第一分条的重构数据,再向第三存储节点发送第二数据恢复响应,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
此外,为了减少缓存的分片数据占用内存空间,可在故障的存储节点恢复数据后,删除缓存中对应的数据。例如,在第一存储节点向第三存储节点发送第二数据恢复响应,即S705之后,如图8所示,方法还可以包括以下步骤。
S801、集群管理节点向第一存储节点发送第二指示。
第三存储节点接收到第二分片数据后,将第二分片数据存储到第三存储节点上对应端口号的存储介质上,数据恢复成功后,可以向集群管理节点上报心跳,即第三存储节点的状态,第三存储节点的状态为正常状态。集群管理节点需要向第一存储节点发送第二指示,使第一存储节点获知第三存储节点的状态。第二指示用于指示K个存储节点中正常的K-A+1个存储节点和故障的A-1个存储节点,正常的K-A+1个存储节点包括第三存储节点。
需要说明的是,集群管理节点还可以向应用节点发送第二指示,使应用节点也获知K个存储节点中每个存储节点的状态,以便于应用节点根据存储节点的状态写入或读取数据。
S802、第一存储节点接收集群管理节点发送的第二指示。
S803、第一存储节点删除缓存中第一分条的重构数据包括的第二分片数据。
第一存储节点接收到第二指示后,确定第三存储节点为正常的存储节点后,删除缓存中第一分条的重构数据包括的第二分片数据。
同理,在第一存储节点向第二存储节点发送第一数据恢复响应,即S604之后,方法还包括:
S804、集群管理节点向第一存储节点发送第三指示。
第一存储节点接收到第一分片数据后,将第一分片数据存储到第二存储节点上对应端口号的存储介质上,数据恢复成功后,可以向集群管理节点上报心跳,即第二存储节点的状态,第二存储节点的状态为正常状态。集群管理节点需要向第一存储节点发送第三指示,使第一存储节点获知第二存储节点的状态。第三指示用于指示K个存储节点中正常的K-A+2个存储节点和故障的A-2个存储节点,正常的K-A+2个存储节点包括第二存储节点。
需要说明的是,集群管理节点还可以向应用节点发送第三指示,使应用节点也获知K个存储节点中每个存储节点的状态,以便于应用节点根据存储节点的状态写入或读取数据。
S805、第一存储节点接收集群管理节点发送的第三指示。
S806、第一存储节点删除缓存中第一分条的重构数据包括的第一分片数据。
第一存储节点接收到第三指示后,确定第二存储节点为正常的存储节点后,删除缓存中第一分条的重构数据包括的第一分片数据。
从而,由于采用了分区数据缓存算法,不需要缓存所有重构出的M个分片数据,只需要根据存储节点的分区视图,缓存分区视图中存储节点的状态为故障的存储节点对应的分片数据,当该存储节点的状态变为正常时,再删除缓存中对应的分片数据,大大降低了缓存分片数据的内存占用量。
本申请实施例提供的数据处理方法,不需要重复的读取其他分片数据和EC反编码计算,是从缓存中获取需要恢复的分片数据,有效地降低了集群内部网络带宽消耗,减少了磁盘读写和CPU占用,缩短故障恢复时间。同样,恢复M个分片数据,集群内网络传输量为N-1+M,需要读盘N次,进行1次EC反编码计算。
图9为本申请实施例提供的一种数据恢复过程示例图。如图9所示,假设存储节点1至存储节点9属于第一分区。存储节点1为主存储节点,存储节点2至存储节点9为备存储节点。存储节点1至存储节点9存储第一分条包括分片数据1至分片数据9,9个分片数据中每个分片数据存储到9个存储节点中的一个存储节点上。例如,存储节点1存储分片数据1,存储节点2存储分片数据2,存储节点3存储分片数据3,以此类推,存储节点9存储分片数据9。9个分片数据包括6个数据分片和3个校验分片。若存储节点7至存储节点9故障,在第一时刻,存储节点7向存储节点1发送数据恢复请求,存储节点1从本地读取分片数据1,以及分别从存储节点2至存储节点6中读取分片数据2至分片数据6,存储节点1利用分片数据1至分片数据6进行EC反编码计算,重构出剩余的3个分片数据,即分片数据7至分片数据9,存储节点1向存储节点7反馈分片数据7。同时,存储节点1缓存分片数据7至分片数据9。在第二时刻,存储节点8向存储节点1发送数据恢复请求,存储节点1从缓存中读取分片数据8,存储节点1向存储节点8反馈分片数据8。同理,存储节点9向存储节点1发送数据恢复请求,存储节点1从缓存中读取分片数据9,存储节点1向存储节点8反馈分片数据9。
上述本申请提供的实施例中,分别从第一存储节点、第二存储节点、第三存储节点,集群管理节点之间交互的角度对本申请实施例提供的方法进行了介绍。可以理解的是,各个网元,例如第一存储节点为了实现上述本申请实施例提供的方法中的各功能,第一存储节点包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对第一存储节点进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出了上述和实施例中涉及的数据处理装置的一种可能的组成示意图,该数据处理装置能执行本申请各方法实施例中任一方法实施例中第一存储节点所执行的步骤。如图10所示,所述数据处理装置为第一存储节点或支持第一存储节点实现实施例中提供的方法的通信装置,例如该通信装置可以是芯片系统。该数据处理装置可以包括:接收单元1001、处理单元1002和发送单元1003。
其中,接收单元1001,用于支持数据处理装置执行本申请实施例中描述的方法。例如,接收单元1001,用于执行或用于支持数据处理装置执行图6所示的数据处理方法中的S602,用于执行或用于支持数据处理装置执行图7所示的数据处理方法中的S602、S709、S702,用于执行或用于支持数据处理装置执行图8所示的数据处理方法中的S602、S709、S702、S802、S805。
处理单元1002,用于执行或用于支持数据处理装置执行图6所示的数据处理方法中的S603,用于执行或用于支持数据处理装置执行图7所示的数据处理方法中的S603、S703、S704,用于执行或用于支持数据处理装置执行图8所示的参数配置方法中的S603、S703、S704、S803、S806。
发送单元1003,用于执行或用于支持数据处理装置执行图6所示的数据处理方法中的S604,用于执行或用于支持数据处理装置执行图7所示的数据处理方法中的S604、S705。
在本申请实施例中,进一步的,如图10所示,该数据处理装置还可以包括:存储单元1004。
存储单元1004,用于缓存分条的重构数据,例如用于支持数据处理装置执行图7所示的方法中的S707。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例提供的数据处理装置,用于执行上述任意实施例的方法,因此可以达到与上述实施例的方法相同的效果。
如图11所示为本申请实施例提供的通信装置1100,用于实现上述方法中第一存储节点的功能。该通信装置1100可以是第一存储节点,也可以是第一存储节点中的装置。其中,该通信装置1100可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
通信装置1100包括至少一个处理器1101,用于实现本申请实施例提供的方法中第一存储节点的功能。示例性地,处理器1101可以用于根据第一分条的标识和第一分片数据的标识从缓存的第一分条的重构数据中获取第一分片数据等等,具体参见方法示例中的详细描述,此处不做赘述。
通信装置1100还可以包括至少一个存储器1102,用于存储程序指令和/或数据。存储器1102和处理器1101耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1101可能和存储器1102协同操作。处理器1101可能执行存储器1102中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
通信装置1100还可以包括通信接口1103,用于通过传输介质和其它设备进行通信,从而用于通信装置1100中的装置可以和其它设备进行通信。示例性地,若通信装置为第一存储节点,该其它设备为第二存储节点。处理器1101利用通信接口1103收发数据,并用于实现图6~图8对应的实施例中所述的第一存储节点所执行的方法。
本申请实施例中不限定上述通信接口1103、处理器1101以及存储器1102之间的具体连接介质。本申请实施例在图11中以通信接口1103、处理器1101以及存储器1102之间通过总线1104连接,总线在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据处理方法,其特征在于,所述数据处理方法应用于分布式存储系统,所述分布式存储系统包括K个存储节点,所述K个存储节点用于存储R个分条对应的数据,所述R个分条中每个分条包括K个分片数据,所述K个分片数据中每个分片数据存储到所述K个存储节点中的一个存储节点上,其中,K为大于或等于3的整数,R为大于或等于1的整数,所述方法包括:
第一存储节点接收第二存储节点发送的第一数据恢复请求,所述第一数据恢复请求包括第一分条的标识和第一分片数据的标识,所述第一存储节点和所述第二存储节点为所述K个存储节点中任意两个存储节点,所述第一分条为所述R个分条中任意一个分条,所述第一分片数据为故障的所述第二存储节点存储的所述第一分条包括的分片数据;
所述第一存储节点根据所述第一分条的标识和所述第一分片数据的标识从缓存的所述第一分条的重构数据中获取所述第一分片数据,所述第一分条的重构数据包括所述K个存储节点中故障的存储节点存储的所述第一分条包括的分片数据;
所述第一存储节点向所述第二存储节点发送第一数据恢复响应,所述第一数据恢复响应包括所述第一分片数据。
2.根据权利要求1所述的方法,其特征在于,所述第一存储节点根据所述第一分条的标识和所述第一分片数据的标识从缓存的所述第一分条的重构数据中获取所述第一分片数据,包括:
所述第一存储节点根据所述第一分条的标识从缓存的至少一个分条的重构数据中确定所述第一分条的重构数据;
所述第一存储节点根据所述第一分片数据的标识从所述第一分条的重构数据中确定所述第一分片数据。
3.根据权利要求1或2所述的方法,其特征在于,在所述第一存储节点接收第二存储节点发送的第一数据恢复请求之前,所述方法还包括:
所述第一存储节点接收第三存储节点发送的第二数据恢复请求,所述第二数据恢复请求包括所述第一分条的标识和第二分片数据的标识,所述第三存储节点为所述K个存储节点中除所述第一存储节点和所述第二存储节点之外的任意一个存储节点,所述第二分片数据为故障的所述第三存储节点存储的所述第一分条包括的分片数据;
所述第一存储节点根据所述第一分条的标识获取所述第一分条包括的N个分片数据,所述N个分片数据为所述K个存储节点中正常的N个存储节点存储的数据;
所述第一存储节点根据所述N个分片数据重构M个分片数据,2≤N≤K,1≤M≤K,N+M=K,N大于或等于M;
所述第一存储节点向所述第三存储节点发送第二数据恢复响应,所述第二数据恢复响应包括所述第二分片数据;
所述第一存储节点缓存所述第一分条的重构数据,所述第一分条的重构数据包括A个分片数据,所述A个分片数据为所述K个存储节点中故障的A个存储节点存储的数据,1≤A≤M。
4.根据权利要求3所述的方法,其特征在于,在所述第一存储节点接收第三存储节点发送的第二数据恢复请求之前,所述方法还包括:
所述第一存储节点接收集群管理节点发送的第一指示,所述第一指示用于指示所述K个存储节点中正常的K-A个存储节点和故障的A个存储节点,所述故障的A个存储节点包括所述第二存储节点和所述第三存储节点;
所述第一存储节点缓存所述第一分条的重构数据,包括:
所述第一存储节点根据第一指示缓存所述第一分条的重构数据。
5.根据权利要求3或4所述的方法,其特征在于,在所述第一存储节点向所述第三存储节点发送第二数据恢复响应之后,所述方法还包括:
所述第一存储节点接收集群管理节点发送的第二指示,所述第二指示用于指示所述K个存储节点中正常的K-A+1个存储节点和故障的A-1个存储节点,所述正常的K-A+1个存储节点包括所述第三存储节点;
所述第一存储节点删除所述缓存中所述第一分条的重构数据包括的所述第二分片数据。
6.根据权利要求5所述的方法,其特征在于,在所述第一存储节点向所述第二存储节点发送第一数据恢复响应之后,所述方法还包括:
所述第一存储节点接收所述集群管理节点发送的第三指示,所述第三指示用于指示所述K个存储节点中正常的K-A+2个存储节点和故障的A-2个存储节点,所述正常的K-A+2个存储节点包括所述第二存储节点;
所述第一存储节点删除所述缓存中所述第一分条的重构数据包括的所述第一分片数据。
7.一种数据处理装置,其特征在于,所述数据处理装置属于分布式存储系统,所述分布式存储系统包括K个存储节点,所述K个存储节点用于存储R个分条对应的数据,所述R个分条中每个分条包括K个分片数据,所述K个分片数据中每个分片数据存储到所述K个存储节点中的一个存储节点上,其中,K为大于或等于3的整数,R为大于或等于1的整数,所述装置包括:
接收单元,用于接收第二存储节点发送的第一数据恢复请求,所述第一数据恢复请求包括第一分条的标识和第一分片数据的标识,所述第一存储节点和所述第二存储节点为所述K个存储节点中任意两个存储节点,所述第一分条为所述R个分条中任意一个分条,所述第一分片数据为故障的所述第二存储节点存储的所述第一分条包括的分片数据;
处理单元,用于根据所述第一分条的标识和所述第一分片数据的标识从缓存的所述第一分条的重构数据中获取所述第一分片数据,所述第一分条的重构数据包括所述K个存储节点中故障的存储节点存储的所述第一分条包括的分片数据;
发送单元,用于向所述第二存储节点发送第一数据恢复响应,所述第一数据恢复响应包括所述第一分片数据。
8.根据权利要求7所述的装置,其特征在于,所述处理单元,用于:
根据所述第一分条的标识从缓存的至少一个分条的重构数据中确定所述第一分条的重构数据;
根据所述第一分片数据的标识从所述第一分条的重构数据中确定所述第一分片数据。
9.根据权利要求7或8所述的装置,其特征在于,
所述接收单元,还用于接收第三存储节点发送的第二数据恢复请求,所述第二数据恢复请求包括所述第一分条的标识和第二分片数据的标识,所述第三存储节点为所述K个存储节点中除所述第一存储节点和所述第二存储节点之外的任意一个存储节点,所述第二分片数据为故障的所述第三存储节点存储的所述第一分条包括的分片数据;
所述处理单元,还用于根据所述第一分条的标识获取所述第一分条包括的N个分片数据,所述N个分片数据为所述K个存储节点中正常的N个存储节点存储的数据;
所述处理单元,还用于根据所述N个分片数据重构M个分片数据,2≤N≤K,1≤M≤K,N+M=K,N大于或等于M;
所述发送单元,还用于向所述第三存储节点发送第二数据恢复响应,所述第二数据恢复响应包括所述第二分片数据;
所述装置还包括存储单元,所述存储单元,用于:
缓存所述第一分条的重构数据,所述第一分条的重构数据包括A个分片数据,所述A个分片数据为所述K个存储节点中故障的A个存储节点存储的数据,1≤A≤M。
10.根据权利要求9所述的装置,其特征在于,
所述接收单元,还用于接收集群管理节点发送的第一指示,所述第一指示用于指示所述K个存储节点中正常的K-A个存储节点和故障的A个存储节点,所述故障的A个存储节点包括所述第二存储节点和所述第三存储节点;
所述存储单元,用于:
根据第一指示缓存所述第一分条的重构数据。
11.根据权利要求9或10所述的装置,其特征在于,
所述接收单元,还用于接收集群管理节点发送的第二指示,所述第二指示用于指示所述K个存储节点中正常的K-A+1个存储节点和故障的A-1个存储节点,所述正常的K-A+1个存储节点包括所述第三存储节点;
所述处理单元,还用于删除所述缓存中所述第一分条的重构数据包括的所述第二分片数据。
12.根据权利要求11所述的装置,其特征在于,
所述接收单元,还用于接收所述集群管理节点发送的第三指示,所述第三指示用于指示所述K个存储节点中正常的K-A+2个存储节点和故障的A-2个存储节点,所述正常的K-A+2个存储节点包括所述第二存储节点;
所述处理单元,还用于删除所述缓存中所述第一分条的重构数据包括的所述第一分片数据。
13.一种通信装置,其特征在于,包括:至少一个处理器、存储器、总线和收发器,其中,所述存储器用于存储计算机程序,使得所述计算机程序被所述至少一个处理器执行时实现如权利要求1-6中任一项所述的数据处理方法。
14.一种计算机可读存储介质,其特征在于,包括:计算机软件指令;
当所述计算机软件指令在计算机中运行时,使得所述计算机执行如权利要求1-6中任一项所述的数据处理方法。
15.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在计算机中运行时,使得所述计算机执行如权利要求1-6中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604928.5A CN111367712A (zh) | 2018-12-26 | 2018-12-26 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604928.5A CN111367712A (zh) | 2018-12-26 | 2018-12-26 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111367712A true CN111367712A (zh) | 2020-07-03 |
Family
ID=71209573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811604928.5A Pending CN111367712A (zh) | 2018-12-26 | 2018-12-26 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367712A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681791A (zh) * | 2012-04-13 | 2012-09-19 | 华中科技大学 | 一种集群存储系统的节能存储方法 |
CN103914402A (zh) * | 2014-04-17 | 2014-07-09 | 华中科技大学 | 一种基于纠删码缓存的重构优化方法 |
US20160041887A1 (en) * | 2014-08-07 | 2016-02-11 | Pure Storage, Inc. | Error Recovery in a Storage Cluster |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN107885612A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 数据处理方法和系统及装置 |
CN107943421A (zh) * | 2017-11-30 | 2018-04-20 | 成都华为技术有限公司 | 一种基于分布式存储系统的分区划分方法及装置 |
CN108934187A (zh) * | 2017-03-29 | 2018-12-04 | 华为技术有限公司 | 分布式存储系统的访问方法和相关装置和相关系统 |
-
2018
- 2018-12-26 CN CN201811604928.5A patent/CN111367712A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681791A (zh) * | 2012-04-13 | 2012-09-19 | 华中科技大学 | 一种集群存储系统的节能存储方法 |
CN103914402A (zh) * | 2014-04-17 | 2014-07-09 | 华中科技大学 | 一种基于纠删码缓存的重构优化方法 |
US20160041887A1 (en) * | 2014-08-07 | 2016-02-11 | Pure Storage, Inc. | Error Recovery in a Storage Cluster |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN107885612A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 数据处理方法和系统及装置 |
CN108934187A (zh) * | 2017-03-29 | 2018-12-04 | 华为技术有限公司 | 分布式存储系统的访问方法和相关装置和相关系统 |
CN107943421A (zh) * | 2017-11-30 | 2018-04-20 | 成都华为技术有限公司 | 一种基于分布式存储系统的分区划分方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943421B (zh) | 一种基于分布式存储系统的分区划分方法及装置 | |
CN107422983B (zh) | 用于租户感知存储共享平台的方法和装置 | |
US10331641B2 (en) | Hash database configuration method and apparatus | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US9411685B2 (en) | Parity chunk operating method and data server apparatus for supporting the same in distributed raid system | |
US11301177B2 (en) | Data structure storage and data management | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
CN109582213B (zh) | 数据重构方法及装置、数据存储系统 | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
CN113672175A (zh) | 分布式对象存储方法、装置和设备及计算机存储介质 | |
CN110134338B (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
CN113901024A (zh) | 数据存储系统、数据存储方法、可读介质和电子设备 | |
CN111949210A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
WO2021213281A1 (zh) | 数据读取方法和系统 | |
US20210278983A1 (en) | Node Capacity Expansion Method in Storage System and Storage System | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
CN109840051B (zh) | 一种存储系统的数据存储方法及装置 | |
US11775194B2 (en) | Data storage method and apparatus in distributed storage system, and computer program product | |
CN112748849A (zh) | 用于存储数据的方法、设备和计算机程序产品 | |
US20190347165A1 (en) | Apparatus and method for recovering distributed file system | |
EP4170499A1 (en) | Data storage method, storage system, storage device, and storage medium |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |