CN114880165A - 数据恢复方法及相关装置 - Google Patents

数据恢复方法及相关装置 Download PDF

Info

Publication number
CN114880165A
CN114880165A CN202210343229.XA CN202210343229A CN114880165A CN 114880165 A CN114880165 A CN 114880165A CN 202210343229 A CN202210343229 A CN 202210343229A CN 114880165 A CN114880165 A CN 114880165A
Authority
CN
China
Prior art keywords
data
node
storage
management node
recovered
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
Application number
CN202210343229.XA
Other languages
English (en)
Inventor
邓胜良
易曌平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Unisinsight Technology Co Ltd
Original Assignee
Chongqing Unisinsight Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Unisinsight Technology Co Ltd filed Critical Chongqing Unisinsight Technology Co Ltd
Priority to CN202210343229.XA priority Critical patent/CN114880165A/zh
Publication of CN114880165A publication Critical patent/CN114880165A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的一种数据恢复方法及相关装置,涉及分布式存储技术领域。客户端接收每个存储节点针对各自的写数据请求返回的响应消息;若存在表征写入失败的响应消息,且表征写入失败的响应消息的数量小于预设值,客户端则向管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使管理节点记录每条待恢复数据信息;若管理节点记录失败,客户端则将每条待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点将每条待恢复数据信息上报至管理节点,并在上报成功后使管理节点根据每条待恢复数据信息恢复对应的写入失败的数据块,进而保障存储前后数据的一致性。

Description

数据恢复方法及相关装置
技术领域
本发明涉及分布式存储技术领域,具体而言,涉及一种数据恢复方法及相关装置。
背景技术
分布式存储是指客户端将待存储数据拆分为多个数据块,通过纠删码算法对多个数据块进行编码,得到冗余的校验块,再将各个数据块和校验块分别存储在不同的存储节点上,来实现对待存储数据的存储,当数据块和校验块中存在存储失败的数据时,可以通过已存储成功的数据恢复存储失败的数据。
假设客户端将待存储数据拆分为n个数据块,通过对n个数据块进行编码得到m个校验块,在将n个数据块和m个校验块存储至对应的存储节点的过程中,若存储成功的数据块和校验块的总和大于n,且小于n+m时,客户端需要将所有存储失败的数据块和/或校验块的相关信息上报给管理节点进行记录,以便后续根据存储成功的数据块和/或校验块对存储失败的数据块和/或校验块进行恢复。
若客户端发送存储失败的数据块和/或校验块的相关信息时,管理节点发生故障而进行主备切换的过程中,或网络出现波动,此时,管理节点不能准确地、完整地记录存储失败的数据块和/或校验块的相关信息,后续也就无法对数据进行恢复,进而无法保障存储前后数据的一致性。
发明内容
为克服现有技术的不足,保障存储前后数据的一致性,本发明实施例提供了一种数据恢复方法及相关装置。
本发明实施例提供的技术方案如下:
第一方面,本发明实施例提供了一种应用于分布式存储系统中的客户端的数据恢复方法,所述分布式存储系统还包括管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点,以使所述目标存储节点将每条所述待恢复数据信息上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
可选地,所述数据块包括第一数据块和第二数据块,所述第二数据块是对所述第一数据块进行纠删编码得到的校验数据,所述将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点的步骤之前还包括:
根据所述存储节点的数量、所述第一数据块的数量和所述第二数据块的数量,计算所述目标存储节点的待选数量;
将存储空间使用率最小的待选数量个所述存储节点作为所述目标存储节点。
第二方面,本发明实施例提供了一种应用于分布式存储系统的多个存储节点中的目标存储节点的数据恢复方法,所述分布式存储系统还包括客户端和管理节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收所述客户端发送的每个写入失败的数据块对应的待恢复数据信息,所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时发送至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
将每条所述待恢复数据信息进行保存,以上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
可选地,所述管理节点处于在线状态,所述目标存储节点记录有每条所述待恢复数据信息的保存时间,所述方法还包括:
接收所述管理节点发送的上报数量;
将保存时间最早的上报数量个所述待恢复数据信息发送至所述管理节点。
可选地,所述管理节点处于离线状态,所述方法还包括:
当所述管理节点从离线状态恢复为在线状态时,将所有所述待恢复数据信息均发送至所述管理节点。
第三方面,本发明实施例提供了一种应用于分布式存储系统中的管理节点的数据恢复方法,所述分布式存储系统还包括客户端和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收所述多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息,所述目标存储节点发送的所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时,保存至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
根据每条所述待恢复数据信息,将对应的写入失败的数据块进行恢复。
可选地,所述方法还包括:
获取CPU占用率、CPU负载以及所述存储节点的数量;
根据所述待恢复数据信息的总数量、CPU占用率、CPU负载以及所述存储节点的数量,计算上报数量,所述上报数量用于表征所述目标存储节点能上报的所述待恢复数据信息的最大数量;
将所述上报数量发送至每个所述存储节点,以使每个所述存储节点在作为目标存储节点时,根据所述上报数量发送本地保存的所述待恢复数据信息至所述管理节点。
第四方面,本发明实施例提供了一种应用于分布式存储系统中的客户端的数据恢复装置,所述分布式存储系统还包括管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第一接收模块,用于接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
第一发送模块,用于若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
所述第一发送模块,还用于若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点,以使所述目标存储节点将每条所述待恢复数据信息上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
第五方面,本发明实施例提供了一种应用于分布式存储系统的多个存储节点中的目标存储节点,所述分布式存储系统还包括客户端和管理节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第二接收模块,用于接收所述客户端发送的每个写入失败的数据块对应的待恢复数据信息,所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时发送至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
存储模块,用于将每条所述待恢复数据信息进行保存,以上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
第六方面,本发明实施例提供了一种应用于分布式存储系统中的管理节点,所述分布式存储系统还包括客户端和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第三接收模块,用于接收所述多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息,所述目标存储节点发送的所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时,保存至所述目标存储点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
恢复模块,用于根据每条所述待恢复数据信息,将对应的写入失败的数据块进行恢复。
第七方面,本发明实施例提供了一种分布式存储系统,所述分布式存储系统包括客户端、管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接;
所述客户端用于向所述多个存储节点发送写数据请求;
每个所述存储节点用于接收所述客户端发送的写数据请求,并写入各自的所述写数据请求中的数据块,其中,每个所述存储节点接收的所述写数据请求不同;
所述客户端,还用于接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
所述客户端,还用于若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
所述客户端,还用于若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点;
所述目标存储节点,用于将每条所述待恢复数据信息上报至所述管理节点;
所述管理节点,用于在所述目标存储节点上报成功后,根据每条所述恢复数据信息恢复对应的写入失败的数据块。
第八方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的数据恢复方法,或者实现如第二方面所述的数据恢复方法,或者实现如第三方面所述的数据恢复方法。
第九方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据恢复方法,或者实现如第二方面所述的数据恢复方法,或者实现如第三方面所述的数据恢复方法。
相较于现有技术,本发明实施例提供的技术方案中,客户端在管理节点未成功记录写入失败的数据块对应的待恢复数据信息时,将写入失败的数据块对应的待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点后续上报写入失败的数据块对应的待恢复数据信息至管理节点,并在上报成功后使管理节点根据每条待恢复数据信息,恢复对应的每个写入失败的数据块,避免了因管理节点发生异常或网络异常导致的无法准确、完整地记录写入失败的数据块对应的待恢复数据信息,使每个写入失败的数据块都能得到恢复,进而保障了存储前后数据的一致性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的分布式存储系统的一种结构示意图;
图2为本发明实施例提供的计算机设备的一种结构示意框图;
图3为本发明实施例提供的数据恢复方法的一种流程示意图;
图4为本发明实施例提供的目标存储节点确定方法的一种流程示意图;
图5为本发明实施例提供的数据恢复方法的另一种流程示意图;
图6为本发明实施例提供的待恢复数据信息上报方法的一种流程示意图;
图7为本发明实施例提供的数据恢复方法的再一种流程示意图;
图8为本发明实施例提供的待恢复数据信息上报数量确定方法的一种流程示意图;
图9为本发明实施例提供的应用于客户端的数据恢复装置的一种方框示意图;
图10为本发明实施例提供的应用于目标存储节点的数据恢复装置的一种方框示意图;
图11为本发明实施例提供的应用于管理节点的数据恢复装置的一种方框示意图。
图标:100-计算机设备;110-存储器;120-处理器;200-应用于客户端的数据恢复装置;201-第一接收模块;202-第一发送模块;203-第一确定模块;300-应用于目标存储节点的数据恢复装置;301-第二接收模块;302-存储模块;303-第二发送模块;400-应用于管理节点的数据恢复装置;401-第三接收模块;402-恢复模块;403-第二确定模块;404-第三发送模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
为了克服在因管理节点发生故障而进行主备切换的过程中,或网络波动时段内,客户端发送的存储失败的数据块和/或校验块的相关信息不能被管理节点准确地、完整地记录,而导致的后续无法对这些存储失败的数据块和/或校验块进行恢复,通常的做法是周期性对分布式存储系统中各个存储节点存储的数据块和/或校验块都进行扫描,需要消耗大量的资源。
有鉴于此,本发明实施例提供了一种数据恢复方法及相关装置,以在保障存储前后数据一致性的前提下,减少所耗费的资源,下面将进行详细描述。
请参照图1,图1为本发明实施例提供的分布式存储系统的一种结构示意图,该分布式存储系统包括客户端、多个存储节点和管理节点。客户端与管理节点通信连接,客户端与多个存储节点通信连接,管理节点与多个存储节点通信连接。
客户端(Client)可以与上层应用或外部主机交互,可以接收上层应用或外部主机的数据,通过纠删码算法对接收的数据进行编码,得到冗余的校验块,通过向存储节点发送写数据请求,将各个数据块和校验块分发至不同存储节点以进行存储,通过向存储节点发送读数据请求,以将存储的数据从存储节点读出。客户端还可以用于将存储失败的数据块和/或校验块的相关信息发送给管理节点进行记录,特别地,当管理节点未成功记录存储失败的数据块和/或校验块的相关信息时,客户端还用于将存储失败的数据块和/或校验块的相关信息保存至多个存储节点中的目标存储节点。客户端可以是服务器、个人计算机(Personal Computer,以下简称PC)、笔记本电脑等,客户端也可以是一个设备上的一个或多个程序模块,或者一个设备上运行的虚拟机或容器,客户端还可以是多个设备组成的集群,例如可以是分布在多台设备上的多个程序模块的统称。
存储节点接收读数据请求和/或写数据请求,以读取客户端存储的数据,和/或存储来自客户端的数据块和/或校验块。当任意一个存储节点在被确定为目标存储节点时,还用于保存客户端发送的存储失败的数据块和/或校验块的相关信息,并将存储失败的数据块和/或校验块的相关信息上报至管理节点。存储节点可以是服务器、PC、笔记本电脑等。存储节点可以是物理存储节点,也可以是物理存储节点划分得到的逻辑存储节点。
管理节点可以用于接收客户端和/或目标存储节点发送的存储失败的数据块和/或校验块的相关信息,并根据相关信息对每个存储失败的数据块和/或校验块进行恢复。管理节点可以是服务器、PC、笔记本电脑等,管理节点也可以是一个设备上的一个或多个程序模块,或者一个设备上运行的虚拟机或容器,管理节点还可以是多个设备组成的集群,例如可以是分布在多台设备上的多个程序模块的统称。
图2示出了本发明实施例提供的计算机设备100的一种结构示意框图,计算机设备100可以是图1中的客户端,或者是存储节点,或者是管理节点,该计算机设备100可以包括存储器110和处理器120。
其中,处理器120可以是一个通用的中央处理器(Central Processing Unit,CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制下述方法实施例提供的应用于客户端的数据恢复方法,或者应用于目标存储节点的数据恢复方法,或者应用于管理节点的数据恢复方法的程序执行的集成电路。
存储器110可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmabler-Only MEMory,EEPROM)、只读光盘(CompactdiscRead-Only MEMory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器110可以是独立存在,通过通信总线与处理器120相连接。存储器110也可以和处理器120集成在一起。其中,存储器110用于存储执行本申请方案的机器可执行指令。处理器120用于执行存储器110中存储的机器可执行指令,以实现下述应用于客户端的数据恢复方法,或者应用于目标存储节点的数据恢复方法,或者应用于管理节点的数据恢复方法的实施例。
由于本发明实施例提供的计算机设备100是下述的方法实施例提供的应用于客户端的数据恢复方法,或者应用于目标存储节点的数据恢复方法,或者应用于管理节点的数据恢复方法的另一种实现形式,因此其所能获得的技术效果可参考下述方法实施例,在此不再赘述。
请参照图3,图3为本发明实施例提供的数据恢复方法的一种流程示意图,其执行主体为图1中的客户端,该方法包括步骤S101、S102和S103。
S101,接收每个存储节点针对各自的写数据请求返回的响应消息。
其中,每条响应消息用于表征每个存储节点是否成功写入各自的写数据请求中的数据块。写数据请求是由客户端发送给存储节点,并且客户端向每个存储节点发送的写数据请求都是不同的。
每个存储节点都需要写入各自接收的写数据请求中的数据块,并且无论是否成功写入数据块,客户端都能收到对应的响应消息,在一种情况下,存储节点向客户端返回写入失败或者写入成功的响应消息,在另一种情况下,存储节点出现故障或者网络出现故障,导致存储节点在预设时长内未返回响应消息,此时,客户端会收到超时的响应消息,客户端根据超时的响应消息确定该存储节点写入失败。由此,客户端可以根据表征写入成功的响应消息的数量和表征写入失败的响应消息的数量,确定写入成功的数据块的数量和写入失败的数据块的数量。
S102,若存在表征写入失败的响应消息,且表征写入失败的响应消息的数量小于预设值,则向管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使管理节点记录每条待恢复数据信息。
其中,写入失败的数据块的数量与表征写入失败的响应消息的数量相同。预设值是指写入失败的数据块的上限值,当写入失败的数据块的数量大于预设值时,意味着写入失败的数据块是不能被恢复的,原因在于分布式存储系统通常使用纠删码(Erasure Code,以下简称:EC)技术来实现数据存储,即将需要存储的数据划分成n个数据块,再对n个数据块进行纠删编码得到m个用于数据恢复处理的校验块。预设值的大小一般与校验块的数量m相同,当写入失败的数据块的总数量不大于m时,通过写入成功的数据块和校验块进行EC反编码,就能恢复写入失败的数据,反之,当写入失败的数据块的总数量大于m时,则无法通过写入成功的数据块和校验块恢复写入失败的数据。
每个写入失败的数据块对应的待恢复数据信息包括数据块索引和写入位置,写入位置包括写入的存储节点的地址以及存储节点中的相应磁盘的编号。客户端根据接收的每条响应消息判定写入失败的数据块的总数量小于预设值,则需要将每个写入失败的数据块对应的待恢复数据信息发送给管理节点进行记录,以使管理节点根据记录的待恢复数据信息恢复每个写入失败的数据块。
S103,若管理节点记录失败,则将每条待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点将每条待恢复数据信息上报至管理节点,并在上报成功后使管理节点恢复每条待恢复数据信息对应的写入失败的数据块。
其中,目标存储节点是客户端在判定管理节点未能成功记录待恢复数据信息时,根据分布式存储系统的纠删配置情况和当前处于在线状态的各存储节点的存储空间使用情况,从多个存储节点中确定出的。客户端可以通过设置响应时间区间,根据响应时间区间内是否接收到管理节点返回的针对待恢复数据信息记录情况的消息,判断管理节点是否成功记录待恢复数据信息。若网络出现波动或管理节点自身出现故障需要进行主备切换,则管理节点可能无法成功记录待恢复数据信息。
客户端在判定管理节点记录失败时,将每条待恢复数据信息发送给目标存储节点进行存储,作为一种实现方式,目标存储节点可以将每条待恢复数据信息存入本地的leveldb数据库,格式可以入下表:
结构键 KSBLK@块名称
键值 status-disk_id-dn_ip
上表中,KSBLK@块名称为写入失败的数据块的索引,status表征该待恢复数据信息是否被上报,dn_ip为写入失败的存储节点的地址,disk_id为写入失败的磁盘的编号,作为另一种实现方式,目标存储节点也可以将每条待恢复数据信息存储在特定的数据块服务器。
当网络恢复正常或管理节点的主备切换完成后,目标存储节点再将本地存储的每条待恢复数据信息发送给管理节点进行记录,进而使管理节点根据记录的每条待恢复数据信息,恢复对应的每个写入失败的数据块。
上述实施例提供的方法,其有益效果在于,客户端在管理节点未成功记录写入失败的数据块对应的待恢复数据信息时,将写入失败的数据块对应的待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点后续上报写入失败的数据块对应的待恢复数据信息至管理节点,以使管理节点根据每条待恢复数据信息,恢复对应的每个写入失败的数据块,避免了因管理节点发生异常或者网络异常导致的无法准确、完整地记录写入失败的数据块对应的待恢复数据信息,使每个写入失败的数据块都能得到恢复,进而保障了存储前后数据的一致性。
在图3的基础上,本发明实施例还提供了确定目标存储节点的一种可能的实现方式,请参照图4,图4为本发明实施例提供的目标存储节点确定方法的一种流程示意图,该方法包括步骤S110和S111。
S110,根据存储节点的数量、第一数据块的数量和第二数据块的数量,计算目标存储节点的待选数量;
其中,数据块包括第一数据块和第二数据块,第二数据块是对第一数据块进行纠删编码得到的校验数据,即校验块,第一数据块是由客户端将需要存储的数据进行划分得到的。
存储节点的数量、第一数据块的数量、第二数据块的数量以及目标存储节点的待选数量满足下述公式:
Figure BDA0003575651140000131
式中,m为第一数据块的数量,n为第二数据块的数量,N为存储节点的数量,M为目标存储节点的待选数量。
例如,N为5,m为2,n为4时,根据上述公式计算出目标存储节点的待选数量M的值为3。
S111,将存储空间使用率最小的待选数量个存储节点作为目标存储节点。
可选地,将所有的存储节点按照存储空间使用率从小到大进行排序,从序列的起点开始,将满足待选数量的若干个存储节点作为目标存储节点。
例如,存储节点1、存储节点2、存储节点3、存储节点4和存储节点5的存储空间使用率分别为30%、20%、32%、35%和15%,按照存储空间使用率从小到大进行排序,结果为存储节点5、存储节点2、存储节点3、存储节点1、存储节点4,待选数量为3,则将存储空间使用率最小的3个存储节点,即存储节点5、存储节点2和存储节点3作为目标存储节点。
需要注意地是,步骤S201和步骤S202中的存储节点是处于在线状态的,即可以与客户端和管理节点进行正常通信。
请参照图5,图5为本发明实施例提供的数据恢复方法的另一种流程示意图,其执行主体为图1中的多个存储节点中的目标存储节点,该方法包括步骤S201和S202。
S201,接收客户端发送的每个写入失败的数据块对应的待恢复数据信息。
其中,待恢复数据信息是客户端在管理节点记录待恢复数据信息失败时发送至目标存储节点的,写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条响应消息是每个存储节点针对各自的写数据请求生成并返回至客户端的。
S202,将每条待恢复数据信息进行保存,以上报至管理节点,并在上报成功后使管理节点恢复每条待恢复数据信息对应的写入失败的数据块。
其中,目标存储节点完成待恢复数据信息的本地存储后,会根据管理节点是否处于在线状态,选择上报方式,使得管理节点根据记录的每条待恢复数据信息,恢复对应的每个写入失败的数据块。
当管理节点处于在线状态时,为了避免因大量上报待恢复数据信息使管理节点作业压力过大,影响自身业务的性能,对此,本发明实施例提供了上报待恢复数据信息的一种可能的实现方式,请参照图6,图6为本发明实施例提供的待恢复数据信息上报方法的一种流程示意图,该方法包括步骤S210和步骤S211。
S210,接收管理节点发送的上报数量。
其中,目标存储节点接收到管理节点返回的响应消息中包括有上报数量,即当前时刻目标存储节点可以向管理节点发送的待恢复数据信息的最大数量。
例如,上报数量为40,意味着当前时刻目标存储节点最多可以向管理节点发送40条待恢复数据信息。
S211,将保存时间最早的上报数量个待恢复数据信息发送至管理节点。
其中,目标存储节点记录有每条待恢复数据保存至本地leveldb数据库的时间,即保存时间。
可选地,目标存储节点将每条待恢复数据信息按照记录时间先后进行排序,从序列起点开始将满足上报数量的若干条待恢复数据信息发送至管理节点。
例如,上报数量为40,若序列的长度大于40,则将序列的前40个待恢复数据信息发送至管理节点,若序列长度不大于40,则将序列中的所有待恢复数据信息发送至管理节点。
目标存储节点完成当前时刻的上报后,再次向管理节点发送请求消息,确定下一时刻待恢复数据信息的上报数量。
需要注意的是,为了进一步减小管理节点的作业压力,目标存储节点在上报待恢复数据信息时,会根据每条待恢复数据信息的上报状态,将上报状态为未上报的待恢复数据信息发送给管理节点,上报状态为已上报的待恢复数据信息则不再进行重复上报。
当管理节点处于离线状态时,意味着目标存储节点无法与管理节点进行通信。此时,目标存储节点需要等待与管理节点重新进行通信。并且,管理节点掉线时可能正在对一些待恢复数据信息对应的写入失败的数据块进行恢复,而“掉线事件”会使得这些写入失败的数据块的恢复规程被异常终止。对此,本发明实施例提供了上报待恢复数据信息的下述另一种可能的实现方式:
当管理节点从离线状态恢复为在线状态时,将所有待恢复数据信息均发送至管理节点。
其中,当管理节点重新处于在线状态时,目标存储节点会将本地存储的所有已上报的和未上报的待恢复数据信息,在当前时刻全部上报至管理节点,以使管理节点找出恢复过程被异常终止的数据块,从而保障数据的一致性。
请参照图7,图7为本发明实施例提供的数据恢复方法的再一种流程示意图,其执行主体为图1中的管理节点,该方法包括步骤S301和S302。
S301,接收多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息。
其中,目标存储节点发送的待恢复数据信息是客户端在管理节点记录待恢复数据信息失败时,保存至目标存储节点的,写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条响应消息是每个存储节点针对各自的写数据请求生成并返回至客户端的。
S302,根据每条待恢复数据信息,将对应的写入失败的数据块进行恢复。
其中,管理节点将每条待恢复数据信息,按照记录时间先后生成一恢复数据列表,按照恢复数据列表,依次根据每条待恢复数据信息包括的写入失败的数据块的索引、写入失败的存储节点的地址以及写入失败的磁盘的编号,恢复每个写入失败的数据块。并且,管理节点每恢复完一个写入失败的数据块,均会向写入失败的存储节点发送删除坏块信息,使其删除之前写入的不完整的数据块。
为了避免管理节点在进行数据恢复时作业压力过大,导致对自身业务的性能影响过大,本发明实施例对目标存储节点单次发送的待恢复数据信息的数量进行限制。请参照图8,图8为本发明实施例提供的待恢复数据信息上报数量确定方法的一种流程示意图,该方法包括步骤S310、S311和步骤S312。
S310,获取CPU占用率、CPU负载以及存储节点的数量。
其中,管理节点的CPU占用率和负载可以反映其作业压力和资源使用情况。存储节点的数量则反映了当前时刻能同时向管理节点发送待恢复数据信息的目标存储节点的最大数量。
例如,管理节点获取到当前时刻与其进行通信的存储节点的数量为5,则意味着当前时刻最多有5个存储节点作为目标存储节点向管理节点发送待恢复数据信息。
S311,根据待恢复数据信息的总数量、CPU占用率、CPU负载以及存储节点的数量,计算上报数量。
其中,上报数量用于表征目标存储节点能上报的待恢复数据信息的最大数量,待恢复数据信息的总数量是指当前时刻已经被管理节点记录并加入恢复数据列表的待恢复数据信息的数量。
在当前时刻,待恢复数据信息的总数量、CPU占用率、存储节点的数量以及上报数量满足下述公式:
Figure BDA0003575651140000171
式中,q为当前时刻待恢复数据信息的总数量,qmax为预设的待恢复数据信息的总数量的最大值,u为当前时刻CPU的实际占用率,umax为预设的CPU的最大占用率,N为当前时刻处于在线状态的存储节点的数量,K为上报数量,p为预设权重系数。
由于管理节点中CPU的数量可能为多个,所以利用当前时刻CPU的平均负载和CPU的数量对上述公式进行修正,得到下述用于计算上报数量的公式:
Figure BDA0003575651140000181
式中,a为CPU的平均负载,n为CPU的数量。
例如,p为0.75,umax为50,qmax为1024,n为12,a为12,u为30,q为1,N为5时,根据上述公式得到的上报数量K为40。
S312,将上报数量发送至每个存储节点,以使每个存储节点在作为目标存储节点时,根据上报数量发送本地保存的待恢复数据信息至管理节点。
其中,管理节点可以周期性的计算上报数量,并发送给每个存储节点,使得存储节点在作为目标存储节点时,按照上报数量对本地leveldb数据库保存的待恢复数据信息进行上报处理。
可选地,管理节点也可以在接收到目标存储节点发送的请求消息后,将当前时刻所处的周期内计算的上报数量写入响应消息中,发送给目标存储节点。
为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种应用于客户端的数据恢复装置200,一种应用于目标存储节点的数据恢复装置300和一种应用于管理节点的数据恢复装置400的实现方式。请参照图9、图10和图11,图9示出了本发明实施例提供的应用于客户端的数据恢复装置200的一种方框示意图,图10示出了本发明实施例提供的应用于目标存储节点的数据恢复装置300的一种方框示意图,图11示出了本发明实施例提供的应用于管理节点的数据恢复装置400的一种方框示意图。需要说明的是,本发明实施例提供的应用于客户端的数据恢复装置200,应用于目标存储节点的数据恢复装置300和应用于管理节点的数据恢复装置400的基本原理及产生的技术效果和上述实施例相同,为简要描述,本发明实施例部分未提及指出。
应用于客户端的数据恢复装置200包括第一接收模块201、第一发送模块202和第一确定模块203。
第一接收模块201,用于接收每个存储节点针对各自的写数据请求返回的响应消息,其中,每条响应消息用于表征每个存储节点是否成功写入各自的写数据请求中的数据块。
第一发送模块202,用于若存在表征写入失败的响应消息,且表征写入失败的响应消息的数量小于预设值,则向管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使管理节点记录每条待恢复数据信息。
第一发送模块202,还用于若管理节点记录失败,则将每条待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点将每条待恢复数据信息上报至管理节点,并在上报成功后使管理节点恢复每条待恢复数据信息对应的写入失败的数据块。
第一确定模块203,用于根据存储节点的数量、第一数据块的数量和第二数据块的数量,计算目标存储节点的待选数量,其中,数据块包括第一数据块和第二数据块,第二数据块是对第一数据块进行纠删编码得到的校验数据;将存储空间使用率最小的待选数量个存储节点作为目标存储节点。
应用于目标存储节点的数据恢复装置300包括第二接收模块301、存储模块302和第二发送模块303。
第二接收模块301,用于接收客户端发送的每个写入失败的数据块对应的待恢复数据信息,待恢复数据信息是客户端在管理节点记录待恢复数据信息失败时发送至目标存储节点的,写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条响应消息是每个存储节点针对各自的写数据请求生成并返回至客户端的。
存储模块302,用于将每条待恢复数据信息进行保存,以上报至管理节点,并在上报成功后使管理节点恢复每条待恢复数据信息对应的写入失败的数据块。
当管理节点处于在线状态时,第二接收模块301,还用于接收管理节点发送的上报数量。第二发送模块303,用于将保存时间最早的上报数量个待恢复数据信息发送至管理节点,其中,目标存储节点记录有每个待恢复数据信息的保存时间。
当管理节点处于离线状态时,第二发送模块303,用于当管理节点从离线状态恢复为在线状态时,将所有待恢复数据信息均发送至管理节点。
应用于管理节点的数据恢复装置400包括第三接收模块401、恢复模块402、第二确定模块403和第三发送模块404。
第三接收模块401,用于接收多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息,目标存储节点发送的待恢复数据信息是客户端在管理节点记录待恢复数据信息失败时,保存至目标存储节点的,写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条响应消息是每个存储节点针对各自的写数据请求生成并返回至客户端的。
恢复模块402,用于根据每条待恢复数据信息,将对应的写入失败的数据块进行恢复。
第二确定模块403,用于获取CPU占用率、CPU负载以及存储节点的数量;根据待恢复数据信息的总数量、CPU占用率、CPU负载以及存储节点的数量,计算上报数量,上报数量用于表征目标存储节点能上报的待恢复数据信息的最大数量;
第三发送模块404,用于将上报数量发送至每个存储节点,以使每个存储节点在作为目标存储节点时,根据上报数量发送本地保存的待恢复数据信息至管理节点。
本发明实施例还提供一种包含计算机可执行指令的可读存储介质,计算机可执行指令在被执行时可以用于执行前述的方法实施例提供的应用于客户端的数据恢复方法,或者应用于目标存储节点的数据恢复方法,或者应用于管理节点的数据恢复方法中的相关操作。
综上,本发明实施例一种数据恢复方法及相关装置,客户端接收每个存储节点针对各自的写数据请求返回的响应消息,其中,每条响应消息用于表征每个存储节点是否成功写入各自的写数据请求中的数据块;若存在表征写入失败的响应消息,且表征写入失败的响应消息的数量小于预设值,客户端则向管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使管理节点记录每条待恢复数据信息;若管理节点记录失败,客户端则将每条待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点将每条待恢复数据信息上报至管理节点,并在上报成功后使管理节点恢复每条待恢复数据信息对应的写入失败的数据块。由于客户端在管理节点未成功记录写入失败的数据块对应的待恢复数据信息时,将写入失败的数据块对应的待恢复数据信息保存至多个存储节点中的目标存储节点,以使目标存储节点后续上报写入失败的数据块对应的待恢复数据信息至管理节点,以使管理节点根据每条待恢复数据信息,恢复对应的每个写入失败的数据块,避免了因管理节点发生异常或网络异常导致的无法准确、完整地记录写入失败的数据块对应的待恢复数据信息,使每个写入失败的数据块都能得到恢复,进而保障了存储前后数据的一致性。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种数据恢复方法,其特征在于,应用于分布式存储系统中的客户端,所述分布式存储系统还包括管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点,以使所述目标存储节点将每条所述待恢复数据信息上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
2.如权利要求1所述的方法,其特征在于,所述数据块包括第一数据块和第二数据块,所述第二数据块是对所述第一数据块进行纠删编码得到的校验数据,所述将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点的步骤之前还包括:
根据所述存储节点的数量、所述第一数据块的数量和所述第二数据块的数量,计算所述目标存储节点的待选数量;
将存储空间使用率最小的待选数量个所述存储节点作为所述目标存储节点。
3.一种数据恢复方法,其特征在于,应用于分布式存储系统的多个存储节点中的目标存储节点,所述分布式存储系统还包括客户端和管理节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收所述客户端发送的每个写入失败的数据块对应的待恢复数据信息,所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时发送至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
将每条所述待恢复数据信息进行保存,以上报至所述管理节点,并在上报成功后使所述管理节点根据每条所述待恢复数据信息恢复对应的写入失败的数据块。
4.如权利要求3所述的方法,其特征在于,所述管理节点处于在线状态,所述目标存储节点记录有每条所述待恢复数据信息的保存时间,所述方法还包括:
接收所述管理节点发送的上报数量;
将保存时间最早的上报数量个所述待恢复数据信息发送至所述管理节点。
5.如权利要求3所述的方法,其特征在于,所述管理节点处于离线状态,所述方法还包括:
当所述管理节点从离线状态恢复为在线状态时,将所有所述待恢复数据信息均发送至所述管理节点。
6.一种数据恢复方法,其特征在于,应用于分布式存储系统中的管理节点,所述分布式存储系统还包括客户端和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述方法包括:
接收所述多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息,所述目标存储节点发送的所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时,保存至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
根据每条所述待恢复数据信息,将对应的写入失败的数据块进行恢复。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
获取CPU占用率、CPU负载以及所述存储节点的数量;
根据所述待恢复数据信息的总数量、CPU占用率、CPU负载以及所述存储节点的数量,计算上报数量,所述上报数量用于表征所述目标存储节点能上报的所述待恢复数据信息的最大数量;
将所述上报数量发送至每个所述存储节点,以使每个所述存储节点在作为目标存储节点时,根据所述上报数量发送本地保存的所述待恢复数据信息至所述管理节点。
8.一种数据恢复装置,其特征在于,应用于分布式存储系统中的客户端,所述分布式存储系统还包括管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第一接收模块,用于接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
第一发送模块,用于若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
所述第一发送模块,还用于若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点,以使所述目标存储节点将每条所述待恢复数据信息上报至所述管理节点,并在上报成功后使所述管理节点恢复每条所述待恢复数据信息对应的写入失败的数据块。
9.一种数据恢复装置,其特征在于,应用于分布式存储系统的多个存储节点中的目标存储节点,所述分布式存储系统还包括客户端和管理节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第二接收模块,用于接收所述客户端发送的每个写入失败的数据块对应的待恢复数据信息,所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时发送至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
存储模块,用于将每条所述待恢复数据信息进行保存,以上报至所述管理节点,并在上报成功后使所述管理节点恢复每条所述待恢复数据信息对应的写入失败的数据块。
10.一种数据恢复装置,其特征在于,应用于分布式存储系统中的管理节点,所述分布式存储系统还包括客户端和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接,所述客户端向所述多个存储节点发送写数据请求,其中,每个所述存储节点需写入各自接收的所述写数据请求中的数据块,所述装置包括:
第三接收模块,用于接收所述多个存储节点中的目标存储节点发送的每个写入失败的数据块对应的待恢复数据信息,所述目标存储节点发送的所述待恢复数据信息是所述客户端在所述管理节点记录所述待恢复数据信息失败时,保存至所述目标存储节点的,所述写入失败的数据块的数量与表征写入失败的响应消息的数量相同,每条所述响应消息是每个所述存储节点针对各自的所述写数据请求生成并返回至所述客户端的;
恢复模块,用于根据每条所述待恢复数据信息,将对应的写入失败的数据块进行恢复。
11.一种分布式存储系统,其特征在于,所述分布式存储系统包括客户端、管理节点和多个存储节点,所述客户端与所述管理节点通信连接,所述客户端与所述多个存储节点通信连接,所述管理节点与所述多个存储节点通信连接;
所述客户端用于向所述多个存储节点发送写数据请求;
每个所述存储节点用于接收所述客户端发送的写数据请求,并写入各自的所述写数据请求中的数据块,其中,每个所述存储节点接收的所述写数据请求不同;
所述客户端,还用于接收每个所述存储节点针对各自的所述写数据请求返回的响应消息,其中,每条所述响应消息用于表征每个所述存储节点是否成功写入各自的所述写数据请求中的数据块;
所述客户端,还用于若存在表征写入失败的响应消息,且所述表征写入失败的响应消息的数量小于预设值,则向所述管理节点发送每个写入失败的数据块对应的待恢复数据信息,以使所述管理节点记录每条所述待恢复数据信息;
所述客户端,还用于若所述管理节点记录失败,则将每条所述待恢复数据信息保存至所述多个存储节点中的目标存储节点;
所述目标存储节点,用于将每条所述待恢复数据信息上报至所述管理节点;
所述管理节点,用于在所述目标存储节点上报成功后,根据每条所述恢复数据信息恢复对应的写入失败的数据块。
12.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-2中任一项所述的数据恢复方法,或者实现如权利要求3-5中任一项所述的数据恢复方法,或者实现如权利要求6-7中任一项所述的数据恢复方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-2中任一项所述的数据恢复方法,或者实现如权利要求3-5中任一项所述的数据恢复方法,或者实现如权利要求6-7中任一项所述的数据恢复方法。
CN202210343229.XA 2022-03-31 2022-03-31 数据恢复方法及相关装置 Pending CN114880165A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210343229.XA CN114880165A (zh) 2022-03-31 2022-03-31 数据恢复方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210343229.XA CN114880165A (zh) 2022-03-31 2022-03-31 数据恢复方法及相关装置

Publications (1)

Publication Number Publication Date
CN114880165A true CN114880165A (zh) 2022-08-09

Family

ID=82669665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210343229.XA Pending CN114880165A (zh) 2022-03-31 2022-03-31 数据恢复方法及相关装置

Country Status (1)

Country Link
CN (1) CN114880165A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037104A1 (zh) * 2022-08-19 2024-02-22 重庆紫光华山智安科技有限公司 数据存储方法、子系统、分布式存储系统及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024037104A1 (zh) * 2022-08-19 2024-02-22 重庆紫光华山智安科技有限公司 数据存储方法、子系统、分布式存储系统及存储介质

Similar Documents

Publication Publication Date Title
US10013325B1 (en) Providing resiliency to a raid group of storage devices
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
US20060080574A1 (en) Redundant data storage reconfiguration
CN107506266B (zh) 一种数据恢复方法及系统
CN112988683A (zh) 数据处理方法、装置、电子设备及存储介质
EP2723017A1 (en) Method, apparatus and system for implementing distributed auto-incrementing counting
CN108701005A (zh) 数据更新技术
US11809295B2 (en) Node mode adjustment method for when storage cluster BBU fails and related component
CN109167690A (zh) 一种分布式系统中节点服务的恢复方法、装置及相关设备
CN114064374A (zh) 一种基于分布式块存储的故障检测方法和系统
CN114968668A (zh) 数据处理方法、装置、数据接入端及存储介质
CN114880165A (zh) 数据恢复方法及相关装置
CN111857603B (zh) 数据处理方法及相关装置
EP4027243A1 (en) Data recovery method and related device
CN111488124A (zh) 一种数据更新方法、装置、电子设备及存储介质
CN111522883B (zh) 对象数据的备份方法、装置、设备及存储介质
CN107045426B (zh) 一种多副本读取方法和系统
CN115878381A (zh) 基于srm盘的数据恢复方法及装置、存储介质、电子装置
CN109634531A (zh) 一种raid 5磁盘阵列监控方法、装置、设备及介质
CN115470041A (zh) 一种数据灾备管理方法及装置
CN114518973A (zh) 分布式集群节点宕机重启恢复方法
CN116107797A (zh) 数据存储方法及装置、电子设备和存储介质
CN112162909A (zh) 一种硬盘故障处理方法、装置、设备及机器可读存储介质
CN112527557A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN110389863A (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