CN107943617B - 数据的修复方法、装置及服务器集群 - Google Patents
数据的修复方法、装置及服务器集群 Download PDFInfo
- Publication number
- CN107943617B CN107943617B CN201711147022.0A CN201711147022A CN107943617B CN 107943617 B CN107943617 B CN 107943617B CN 201711147022 A CN201711147022 A CN 201711147022A CN 107943617 B CN107943617 B CN 107943617B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- repair
- backup
- fault
- 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
-
- 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/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据的修复方法、装置及服务器集群,涉及数据处理技术领域,其目的在于实现提高超融合存储***中的用户数据安全性。本发明的方法包括:当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,数据修复任务包含故障数据的待修复信息;修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知,以便备份节点根据待修复信息向修复节点发送故障数据对应的备份数据;修复节点获取备份节点发送的备份数据,并根据备份数据对故障节点中的故障数据进行数据修复。本发明应用于在超融合存储***下,使用备份数据对故障数据进行数据修复过程中。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据的修复方法、装置及服务器集群。
背景技术
随着互联网技术的日益发展,人们在使用互联网的过程中产生了大量的数据,为了能够对这些数据便捷的存储、处理,基于超融合架构(Hyper-convergedInfrastructure,HCI)构建的超融合存储***应运而生。在超融合架构下的每一个物理服务器(x86服务器)都不仅仅具备计算、网络、存储和服务器虚拟化等资源和技术,而且还包括云管理软件、数据重构、多副本、快照技术等元素,同时多个物理服务器可以通过网络聚合起来,实现模块化的无缝横向扩展,形成统一的资源池。超融合存储***具体是指基于超融合架构构建的一种分布式存储***,在超融合存储***下,保证用户数据的安全尤为重要。
为了防止由于物理服务器发生故障而导致用户数据丢失或者受损,在存储用户数据的同时,需要对该用户数据进行冗余备份。当用户数据丢失时,可以通过对应的备份数据对丢失或者受损的用户数据进行修复,以确保用户的数据安全;因此,如何对故障物理服务器中的丢失或者受损数据进行修复是目前亟需解决的问题。
发明内容
有鉴于此,本发明提供的一种数据的修复方法、装置及服务器集群,主要目的在于在超融合存储***中,当物理服务器出现故障导致用户数据丢失或者受损时,通过对应的备份数据对丢失或者受损的用户数据进行修复,以便能够实现提高超融合存储***中的用户数据安全性。
为了达到上述效果,本发明主要提供如下技术方案:
第一方面,本发明提供了一种数据的修复方法,该方法包括:
当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
所述修复节点获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复。
可选的,在所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知之前,所述方法还包括:
所述修复节点调用预设构建函数构建修复工作集;所述修复工作集用于对所述故障数据进行修复,并记录所述故障数据的修复进度。
可选的,所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知包括:
判断所述备份节点是否为多个备份节点;
若为一个备份节点,则向所述备份节点发送携带有所述数据修复任务的数据修复通知;
若为多个备份节点,则分别获取每个备份节点的带宽占用率;
根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知。
可选的,所述修复节点获取所述备份节点发送的所述备份数据包括:
若为一个备份节点,则接收所述备份节点根据所述待修复信息发送的备份数据;
若为多个备份节点,则分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的备份数据。
可选的,在根据所述备份数据对所述故障节点中的故障数据进行数据修复之前,所述方法还包括:
根据所述修复节点的带宽占用率,判断是否满足对所述故障数据进行整体修复的条件;
若满足,则将所述数据修复任务添加至所述修复工作集中;
若不满足,则将所述数据修复任务根据所述带宽占用率划分为至少两个数据修复子任务,将所述至少两个数据修复子任务添加至所述修复工作集中。
可选的,若对所述故障数据进行整体修复,根据所述备份数据对所述故障节点中的故障数据进行数据修复包括:
在所述修复工作集中,将所述故障数据的存储地址与所述备份数据的存储地址进行匹配;
匹配成功后,使用所述备份数据替换所述故障数据。
可选的,若不对所述故障数据进行整体修复,根据所述备份数据对所述故障节点中的故障数据进行数据修复包括:
在所述修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
根据所述预置数据量大小,确定所述数据修复子任务对应的故障数据的第一存储地址,以及所述故障数据对应的备份数据的第二存储地址;
使用第二存储地址对应的数据替换第一存储地址对应的数据。
可选的,所述方法还包括:
根据数据修复任务或至少两个数据修复子任务的完成进度,对所述修复工作集的修复进度进行更新。
可选的,在根据所述备份数据对所述故障节点中的故障数据进行数据修复之后,所述方法还包括:
所述修复节点接收修复进度查询指令;
从所述修复工作集中获取当前修复进度,并将所述当前修复进度进行输出显示。
可选的,在修复节点生成数据修复任务之前,所述方法还包括:
基于状态检测程序对所述节点的状态进行检测;
若确定所述节点出现故障,则所述修复节点创建并启动数据修复进程,所述数据修复进程用于触发生成所述数据修复任务。
可选的,所述故障节点与所述修复节点可以为同一节点。
第二方面,本发明提供了一种数据的修复装置,该装置包括:
生成单元,用于当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息;
发送单元,用于所述修复节点向故障节点对应的备份节点发送携带有所述生成单元生成的所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
获取单元,用于所述修复节点获取所述备份节点根据所述发送单元发送的所述数据修复通知发送的所述备份数据;
修复单元,用于所述修复节点根据所述获取单元获取的所述备份数据对所述故障节点中的故障数据进行数据修复。
可选的,所述装置还包括:
构建单元,用于在所述修复节点通过所述发送单元向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知之前,所述修复节点调用预设构建函数构建修复工作集;所述修复工作集用于对所述故障数据进行修复,并记录所述故障数据的修复进度。
可选的,所述发送单元包括:
判断模块,用于判断所述备份节点是否为多个备份节点;
第一发送模块,用于当所述判断模块判断所述备份节点为一个备份节点时,向所述备份节点发送携带有所述数据修复任务的数据修复通知;
获取模块,用于当所述判断模块判断所述备份节点为多个备份节点时,分别获取每个备份节点的带宽占用率;
第一确定模块,用于根据所述获取模块获取的所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
第二发送模块,用于分别向所述每个备份节点发送携带有所述第一确定模块确定的可修复故障数据的数据量及对应的存储地址的数据修复通知。
可选的,所述获取单元包括:
第一接收模块,用于当所述备份节点为一个备份节点时,接收所述备份节点根据所述待修复信息发送的备份数据;
第二接收模块,用于当所述备份节点为多个备份节点时,分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的备份数据。
可选的,所述装置还包括:
判断单元,用于在所述修复单元根据所述备份数据对所述故障节点中的故障数据进行数据修复之前,根据所述修复节点的带宽占用率,判断是否满足对所述故障数据进行整体修复的条件;
第一添加单元,用于当所述判断单元判断满足对所述故障数据进行整体修复的条件时,将所述数据修复任务添加至所述修复工作集中;
第二添加单元,用于当所述判断单元判断不满足对所述故障数据进行整体修复的条件时,将所述数据修复任务根据所述带宽占用率划分为至少两个数据修复子任务,将所述至少两个数据修复子任务添加至所述修复工作集中。
可选的,所述修复单元包括:
匹配模块,用于当对所述故障数据进行整体修复时,在所述修复工作集中,将所述故障数据的存储地址与所述备份数据的存储地址进行匹配;
第一替换模块,用于当所述匹配模块匹配成功后,使用所述备份数据替换所述故障数据。
可选的,所述修复单元还包括:
第二确定模块,用于当不对所述故障数据进行整体修复时,在所述修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
第三确定模块,用于根据所述第二确定模块确定的所述预置数据量大小,确定所述数据修复子任务对应的故障数据的第一存储地址,以及所述故障数据对应的备份数据的第二存储地址;
第二替换模块,用于使用所述第三确定模块确定的第二存储地址对应的数据替换第一存储地址对应的数据。
可选的,所述装置还包括:
更新单元,用于根据所述修复单元对数据修复任务或至少两个数据修复子任务的完成进度,对所述修复工作集的修复进度进行更新。
可选的,所述装置还包括:
接收单元,用于在所述修复单元根据所述备份数据对所述故障数据进行数据修复之后,所述修复节点接收修复进度查询指令;
输出单元,用于在所述接收单元接收到所述修复进度查询指令后,从所述修复工作集中获取当前修复进度,并将所述当前修复进度进行输出显示。
可选的,所述装置还包括:
检测单元,用于在所述修复节点通过所述生成单元生成数据修复任务之前,基于状态检测程序对所述节点的状态进行检测;
创建单元,用于当确定所述节点出现故障时,所述修复节点创建并启动数据修复进程,所述数据修复进程用于触发生成所述数据修复任务。
可选的,所述故障节点与所述修复节点可以为同一节点。
第三方面,本发明提供了一种服务器集群,该服务器集群包括:
处理器,被配置为当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
所述修复节点获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复;
存储器,被配置为存储所述处理器的可执行指令;
总线,被配置为耦接所述处理器及所述存储器。
可选的,所述处理器还被配置为:
在所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知之前,所述修复节点调用预设构建函数构建修复工作集;所述修复工作集用于对所述故障数据进行修复,并记录所述故障数据的修复进度。
可选的,所述处理器还被配置为:
判断所述备份节点是否为多个备份节点;
若为一个备份节点,则向所述备份节点发送携带有所述数据修复任务的数据修复通知;
若为多个备份节点,则分别获取每个备份节点的带宽占用率;
根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知。
可选的,所述处理器还被配置为:
若为一个备份节点,则接收所述备份节点根据所述待修复信息发送的备份数据;
若为多个备份节点,则分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的备份数据。
可选的,所述处理器还被配置为:
在所述修复节点根据所述备份数据对所述故障节点中的故障数据进行数据修复之前,根据所述修复节点的带宽占用率,判断是否满足对所述故障数据进行整体修复的条件;
若满足,则将所述数据修复任务添加至所述修复工作集中;
若不满足,则将所述数据修复任务根据所述带宽占用率划分为至少两个数据修复子任务,将所述至少两个数据修复子任务添加至所述修复工作集中。
可选的,所述处理器还被配置为:
若对所述故障数据进行整体修复,则在所述修复工作集中,将所述故障数据的存储地址与所述备份数据的存储地址进行匹配;
匹配成功后,使用所述备份数据替换所述故障数据。
可选的,所述处理器还被配置为:
若不对所述故障数据进行整体修复,则在所述修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
根据所述预置数据量大小,确定所述数据修复子任务对应的故障数据的第一存储地址,以及所述故障数据对应的备份数据的第二存储地址;
使用第二存储地址对应的数据替换第一存储地址对应的数据。
可选的,所述处理器还被配置为:
根据数据修复任务或至少两个数据修复子任务的完成进度,对所述修复工作集的修复进度进行更新。
可选的,所述处理器还被配置为:
在根据所述备份数据对所述故障节点中的故障数据进行数据修复之后,所述修复节点接收修复进度查询指令;
从所述修复工作集中获取当前修复进度,并将所述当前修复进度进行输出显示。
可选的,所述处理器还被配置为:
在修复节点生成数据修复任务之前,基于状态检测程序对所述节点的状态进行检测;
若确定所述节点出现故障,则所述修复节点创建并启动数据修复进程,所述数据修复进程用于触发生成所述数据修复任务。
可选的,所述故障节点与所述修复节点可以为同一节点。
第四方面,本发明提供了一种数据的修复***,该***包括:修复节点、故障节点以及备份节点,
所述修复节点,用于当确定存储数据的节点出现故障时,生成数据修复任务,向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,其中,所述数据修复任务包含故障数据的待修复信息;
所述备份节点,用于接收所述修复节点发送的所述数据修复通知,并根据所述待修复信息将所述故障数据对应的备份数据发送至所述修复节点;
所述修复节点,还用于获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复。
可选的,所述***还包括:
所述修复节点,还用于判断所述备份节点是否为多个备份节点;
若为多个备份节点,则分别获取每个备份节点的带宽占用率,根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知;其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
所述备份节点,还用于接收所述修复节点发送的数据修复通知,并根据所述数据修复通知中携带的可修复故障数据的数据量及对应的存储地址向所述修复节点发送故障数据对应的备份数据;
所述修复节点,还用于分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的故障数据对应的备份数据。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的数据的修复方法、装置及服务器集群,首先,当确定存储数据的节点出现故障时,修复节点生成数据修复任务,其中,数据修复任务包含故障数据的待修复信息;然后,修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知,以便备份节点根据待修复信息向修复节点发送故障数据对应的备份数据;最后,修复节点获取备份节点发送的备份数据,并根据备份数据对故障节点中的故障数据进行数据修复。本发明能够实现修复节点通过在故障节点对应的备份节点保存的备份数据,对故障节点中由于故障导致丢失或者受损的故障数据进行数据修复,从而实现了提高超融合存储***中的用户数据安全性的效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据的修复方法流程图;
图2示出了本发明实施例提供的一种超融合架构示意图;
图3示出了本发明实施例提供的另一种数据的修复方法流程图;
图4示出了本发明实施例提供的一种在当前节点对故障数据进行数据修复的修复流程图;
图5示出了本发明实施例提供的一种当前节点与多个备份节点进行信息交互的流程图;
图6示出了本发明实施例提供的一种数据的修复装置的组成框图;
图7示出了本发明实施例提供的另一种数据的修复装置的组成框图;
图8示出了本发明实施例提供的一种服务器集群的实体架构示意图;
图9示出了本发明实施例提供的一种数据的修复***的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据的修复方法,如图1所示,该方法通过修复节点使用备份节点中的备份数据对故障节点中的故障数据进行修复,以便提高超融合存储***中的用户数据安全性,该方法包括:
101、当确定存储数据的节点出现故障时,修复节点生成数据修复任务。
其中,节点为超融合架构下的服务器集群中的物理服务器(x86服务器),超融合架构下的服务器集群中的每一个物理服务器都不仅仅具备计算、网络、存储和服务器虚拟化等资源和技术,而且还包括云管理软件、数据重构、多副本、快照技术等元素,同时多个物理服务器可以通过网络聚合起来,实现模块化的无缝横向扩展,形成统一的资源池,超融合架构示意图具体可以如图2所示,图2仅为示例性的举例,本发明实施例对超融合架构中包含的物理服务器数量、物理服务器具备的功能等不作限定。
在本发明实施例中,当确定存储数据的节点出现故障时,修复节点生成对应的数据修复任务,数据修复任务包含故障数据的待修复信息,待修复信息中包含故障数据的存储地址以及故障数据的数据量大小。由于将用户数据存储于节点中时,是基于数据库中的元数据进行存储的,因此当确定节点出现故障时,修复节点能够根据故障节点的数据库中的元数据信息迅速确定故障数据的待修复信息,即故障数据在故障节点的存储地址以及故障数据的数据量大小,根据故障数据的待修复信息生成对应的数据修复任务。需要说明的是,当存储用户数据的节点出现故障,只是导致部分用户数据丢失或者受损时,数据修复过程只是针对故障数据对应存储地址的用户数据进行修复,不影响对故障节点的其他存储地址的用户数据的读取、存储。同时,在本发明实施例中,是对超融合框架下服务器集群中的所有物理服务器进行故障检测,将出现故障的物理服务器确定为故障节点,所述故障节点并非指超融合架构下某个特定的物理服务器,而是指超融合框架下出现故障的任意一物理服务器。
需要说明的是,故障节点和修复节点为超融合架构下服务器集群中的不同物理服务器,当故障节点中存储的数据发生故障时,修复节点远程控制故障节点,通过备份节点中的备份数据,对故障节点中的故障数据进行修复。但是在实际应用过程中,故障节点和修复节点可以为超融合架构下服务器集群中的同一物理服务器,即当确定服务器集群中的某一节点中存储的数据发生故障时,该故障节点可以通过备份节点中的备份数据对自身的故障数据进行修复,以下实施例均以故障节点和修复节点为服务器集群中的同一物理服务器进行举例说明,但不仅限于此。
102、修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知。
其中,在基于超融合架构构建的超融合存储***中,为了保证存储的用户数据的安全性,在将用户数据存储于节点中时,会同步对该用户数据进行冗余备份,并将备份数据存储于该节点对应的备份节点中。
在本发明实施中,在步骤101确定故障节点中存储的数据出现故障后,修复节点(即故障节点)生成对应的数据修复任务后,修复节点(即故障节点)向故障节点对应的备份节点发送携带有前述生成的数据修复任务的数据修复通知,以便备份节点根据数据修复任务中包含的故障数据的待修复信息向修复节点(即故障节点)发送对应的备份数据。
需要进行说明的是,故障节点对应的备份节点可以为一个备份节点也可以为多个备份节点,即对用户数据进行冗余备份的时候可以保存一份备份数据也可以保留多份备份数据。在超融合存储***下保存备份数据份数的备份节点越多,代表该超融合存储***的容错等级越高,即当只存在一个备份节点保存某节点的备份数据时,该超融合存储***最多允许该节点和对应的这个备份节点中一个节点出现故障,若两个节点都出现故障,则不能保证用户数据的安全性;当存在三个节点保存某节点的备份数据时,该超融合存储***最多可以允许该节点和对应的三个备份节点中三个节点出现故障,若四个节点都出现故障,则不能保证用户数据的安全性。与此同时,保存备份数据份数的备份节点越多,也代表着由备份数据占用的存储空间越多。因此,在实际应用过程中,根据实际需求确定在超融合存储***中备份节点的数量,本发明实施例中对此不作具体限定。
103、修复节点获取备份节点发送的备份数据,并根据备份数据对故障节点中的故障数据进行数据修复。
在本发明实施例中,在步骤102中修复节点(即故障节点)向备份节点发送数据修复通知后,修复节点(即故障节点)获取备份节点根据故障数据的待修复信息发送的备份数据,并根据备份数据对故障节点(即修复节点)中的故障数据进行数据修复。
本发明实施例提供的一种数据的修复方法,首先,当确定存储数据的节点出现故障时,修复节点生成数据修复任务,其中,数据修复任务包含故障数据的待修复信息;然后,修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知,以便备份节点根据待修复信息向修复节点发送故障数据对应的备份数据;最后,修复节点获取备份节点发送的备份数据,并根据备份数据对故障节点中的故障数据进行数据修复。本发明实施例能够实现修复节点通过在故障节点对应的备份节点保存的备份数据,对故障节点中由于故障导致丢失或者受损的故障数据进行数据修复,从而实现了提高超融合存储***中的用户数据安全性的效果。
以下为了更加详细地说明,本发明实施例提供了另一种数据的修复方法,特别是向备份节点发送数据修复通知的具体方法以及根据备份数据对故障数据进行数据修复的具体方法,具体如图3所示,该方法包括:
201、当确定存储数据的节点出现故障时,修复节点生成数据修复任务。
其中,关于步骤201、当确定存储数据的节点出现故障时,修复节点生成数据修复任务,可以参考图1中相关部分的描述,本发明实施例此处将不再赘述。
202、修复节点调用预设构建函数构建修复工作集。
其中,修复工作集用于对故障数据进行修复,并记录故障数据的修复进度。
在本发明实施例中,在步骤201确定故障节点(即修复节点)中存储的数据出现故障,修复节点(即故障节点)生成数据修复任务后,在修复节点(即故障节点)中调用预设的构建函数构建修复工作集,以便后续在该修复工作集中通过备份数据对故障数据进行修复,以及记录对故障数据修复的修复进度。
203、修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知。
在本发明实施例中,当备份节点为一个备份节点或者为多个备份节点时,修复节点(即故障节点)发送的数据修复通知中包含的内容并不相同。以下将对当备份节点为一个备份节点或者为多个备份节点时,修复节点(即故障节点)发送携带有不同内容的数据修复通知的方法进行详细说明。
(1)判断当前节点对应的备份节点是否为多个备份节点。
在修复节点(即故障节点)向故障节点(即修复节点)对应的备份节点发送携带有数据修复任务的数据修复通知之前,先要判断故障节点(即修复节点)对应的备份节点是一个备份节点还是多个备份节点,即判断在该超融合存储***下有几个节点保存有故障数据对应的备份数据。
(2)故障节点(即修复节点)对应的备份节点为一个备份节点。
若在该超融合存储***中只有一个节点保存有故障数据对应的备份数据,则修复节点(即故障节点)直接向该备份节点发送携带有全部故障数据的待修复信息的数据修复通知,即向该备份节点发送的数据修复通知中包含全部故障数据的数据量大小以及全部故障数据的存储地址的待修复信息,以便该备份节点根据接收到的数据修复通知中携带的待修复信息向修复节点(即故障节点)发送对应的备份数据。
(3)故障节点(即修复节点)对应的备份节点为多个备份节点。
若经过判断确定故障节点(即修复节点)对应的备份节点为多个备份节点,即在该超融合存储***中有过个节点保存有故障数据对应的备份数据,则首先,修复节点(即故障节点)分别获取每个备份节点的当前带宽占用率;然后,根据每个节点的当前带宽占用率确定每个备份节点可修复的故障数据的数据量,其中,每个备份节点的当前带宽占用率与对应可修复的故障数据的数据量成反比,不同的备份节点修复不同存储地址的故障数据;最后,修复节点(即故障节点)分别向每个备份节点发送携带有该备份节点可修复的故障数据的数据量大小以及可修复的故障数据的存储地址的数据修复通知,以便每个备份节点分别根据接收到的数据修复通知中携带的信息向修复节点(即故障节点)发送对应的备份数据。
例如,经过判断确定故障节点(即修复节点)对应的备份节点有三个,为备份节点A、备份节点B与备份节点C。分别获取三个备份节点的当前带宽占用率为备份节点A的当前带宽占用率为40%、备份节点B的当前带宽占用率为60%以及备份节点C的当前带宽占用率为80%,并且故障节点(即修复节点)中的故障数据的数据量大小为30KB、故障数据的存储地址为0-30719。需要进行说明的是,上述实施例提及的故障数据的数据量大小以及对应的存储地址仅为便于表达,在实际应用过程中,故障数据的数据量大小可以为任意数值以及对应的存储地址可以为任何地址。根据三个备份节点的当前带宽占用率确定每个备份节点可修复的故障数据的数据量大小以及对应的可修复的故障数据的存储地址,即备份节点A可修复的故障数据的数据量大小为15KB,对应的存储地址为0-15359、备份节点B可修复的故障数据的数据量大小为10KB,对应的存储地址为15360-25559,以及备份节点C可修复的故障数据的数据量大小为5KB,对应的存储地址为25600-30719。最后,修复节点(即故障节点)向备份节点A发送携带有可修复的故障数据的数据量大小为15KB,对应的存储地址为0-15359的数据修复通知、向备份节点B发送可修复的故障数据的数据量大小为10KB,对应的存储地址为15360-25559的数据修复通知,以及向备份节点C发送可修复的故障数据的数据量大小为5KB,对应的存储地址为25600-30719的数据修复通知,以便三个备份节点分别根据接收到的数据修复通知中携带的信息向修复节点(即故障节点)发送对应的备份数据。
204、修复节点获取备份节点发送的备份数据。
在本发明实施例中,若故障节点(即修复节点)对应的备份节点为一个备份节点,则修复节点(即故障节点)接收该备份节点根据接收到的数据修复通知中携带的待修复信息发送的备份数据。
若故障节点(即修复节点)对应的备份节点为多个备份节点,则修复节点(即故障节点)分别接收每个备份节点根据接收到的数据修复通知中携带的可修复的故障数据的数据量大小以及对应的可修复的故障数据的存储地址发送的备份数据。
205、根据修复节点的带宽占用率,判断是否满足对故障数据进行整体修复的条件。
在本发明实施例中,在经过步骤204获取到备份节点发送的备份数据后,判断修复节点(即故障节点)的当前带宽占用率是否满足对故障数据进行整体修复的条件,即根据修复节点(即故障节点)的当前带宽占用率以及故障数据的数据量大小判断当前节点是否满足一次性将故障数据修复完毕。若修复节点(即故障节点)满足对故障数据进行整体修复的条件,则执行步骤206a;若修复节点(即故障节点)不满足对故障数据进行整体修复的条件,则执行步骤206b。
需要进行说明的是,在修复节点(即故障节点)的当前带宽占用率较高时,可以将数据修复任务进行划分为多个数据修复子任务,对故障数据进行多次修复,从而不影响对修复节点(即故障节点)的其他存储地址的用户数据的读取、存储。在实际应用过程中,可以根据修复节点(即故障节点)的当前带宽占用率确定将数据修复任务实际划分为几个数据修复子任务,即可以当当前带宽占用率越高时,对应划分的数据修复子任务的个数越多。具体将数据修复任务划分为几个数据修复子任务,在本发明实施例中不进行限定。
步骤204与步骤205中均获取带宽占用率,不同点在于:步骤204中获取的是备份节点的带宽占用率,其目的在于修复节点(即故障节点)根据备份节点的带宽占用率,确保备份节点在上传备份数据的前提下,同时能维持备份节点自身的带宽利用。步骤205中获取的是修复节点(即故障节点)自身的带宽占用率,其目的在于,修复节点(即故障节点)在对故障数据进行修复的前提下,不影响修复节点(即故障节点)中其他消耗带宽进程的正常使用。
206a、将生成的数据修复任务直接添加至修复工作集中,根据备份数据对故障节点中的故障数据进行数据修复。
在本发明实施例中,若经过步骤205判断修复节点(即故障节点)满足对故障数据进行整体修复的条件,确定对故障数据进行整体修复后,修复节点(即故障节点)在修复工作集中,将故障数据的存储地址与前述步骤从备份节点获取的备份数据的存储地址进行匹配,在匹配成功之后,修复节点(即故障节点)使用备份数据替换故障节点(即修复节点)中的故障数据,完成对故障数据的修复操作。
206b、将数据修复任务根据修复节点的当前带宽占用率划分为至少两个数据修复子任务,并且将经过划分操作生成的至少两个数据修复子任务添加至修复工作集中,根据备份数据对故障节点中的故障数据进行数据修复。
在本发明实施例中,若经过步骤205判断修复节点(即故障节点)不满足对故障数据进行整体修复的条件,确定不对故障数据进行整体修复后,首先,修复节点(即故障节点)在修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小,即执行一次数据修复子任务需要修复的故障数据的数据量大小;然后,根据确定的预置数据量大小,确定执行的这一次数据修复子任务对应需要修复的故障数据的第一存储地址,以及确定需要修复的故障数据对应的备份数据的第二存储地址;最后,修复节点(即故障节点)使用第二存储地址对应的备份数据替换第一存储地址对应的故障节点(即修复节点)中的故障数据。
例如,修复节点(即故障节点)接收到对应的备份节点发送的备份数据的数据量大小为30KB以及对应的存储地址为0-30719,需要进行说明的是,前述举例中的故障数据的数据量大小以及对应的存储地址仅为便于表达,在实际应用过程中,故障数据的数据量大小可以为任意数值以及对应的存储地址可以为任何地址。经过上述步骤205判断确定修复节点(即故障节点)不满足对故障数据进行整体修复的条件后,将数据修复任务根据修复节点(即故障节点)的当前带宽占用率划分为三个数据修复子任务,分别为数据修复子任务a需要修复存储地址为0-10239的10KB故障数据、数据修复子任务b需要修复存储地址为10240-20479的10KB故障数据以及数据修复子任务c需要修复存储地址为20480-30719的10KB故障数据,并且将三个数据修复子任务添加至修复工作集中。在执行修复子任务a时,首先,在修复工作集中确定执行数据修复子任务a对应的预置数据量大小为10KB;然后,根据预置数据量大小,确定执行数据修复子任务a对应需要修复的故障数据的第一存储地址为0-10239,以及确定需要修复的故障数据对应的备份数据的第二存储地址为0-10239;最后,修复节点(即故障节点)使用第二存储地址对应的备份数据替换第一存储地址对应的故障节点(即修复节点)中的故障数据。使用相同的办法执行数据修复子任务b以及数据修复子任务c。
需要进行说明的是,在执行修复子任务的过程中,可以根据修复节点(即故障节点)的当前带宽占用率对后续的数据修复子任务的内容进行调整,从而能够更好的实现在对故障数据修复过程中,不影响对修复节点(即故障节点)的其他存储地址的用户数据的读取、存储。
207、根据数据修复任务或至少两个数据修复子任务的完成进度,对修复工作集的修复进度进行更新。
在本发明实施例中,在执行步骤206a或步骤206b修复节点(即故障节点)对故障节点(即修复节点)中的故障数据进行修复过程中,修复节点(即故障节点)将数据修复任务或者数据修复子任务的完成进度,实时更新在修复工作集中,以便后续工作人员查看故障节点(即修复节点)中的故障数据的修复进度。
208、修复节点接收修复进度查询指令,从修复工作集中获取当前修复进度,并将当前修复进度进行输出显示。
在本发明实时例中,当修复节点(即故障节点)接收到查询故障数据的修复进度查询指令后,从修复工作集中获取修复故障节点(即修复节点)中的故障数据的当前修复进度,并将查找到的当前修复进度进行输出显示。
进一步的,在本发明实施例的另一种实现方式中,还可以在步骤201之前,在服务器集群中的所有节点中添加状态检测程序,基于状态检测程序对节点的状态进行检测,若状态检测程序确定存储数据的节点出现故障,则修复节点(即故障节点)创建并启动数据修复进程,该数据修复进程用于触发生成数据修复任务,只有在启动数据修复进程后,才能生成数据修复任务,执行图3所示的流程,直到故障数据成功修复。
对于本发明实施例,在故障节点(即修复节点)中存储的数据出现故障后,修复节点(即故障节点)对故障节点(即修复节点)中的故障数据进行数据修复的具体修复流程可以如图4所示,但不仅限于此:基于状态监测程序对节点的状态进行检测,当确定存储数据的节点出现故障后,修复节点(即故障节点)创建并启动数据修复进程,数据修复进程用于触发生成数据修复任务,在生成数据修复任务后,在修复节点(即故障节点)中调用预设的构建函数构建修复工作集。与此同时,将数据修复任务发送至修复节点(即故障节点)中的自动化模块中,以便与备份节点进行信息交互。自动化模块将携带有数据修复任务的数据修复通知发送至备份节点,然后备份节点根据数据修复通知中携带的待修复信息向修复节点(即故障节点)发送对应的备份数据。
上述实施例均是以故障节点和修复节点为同一物理服务器为例进行的说明,以下以故障节点与修复节点为不同物理服务器为例进行说明。示例性的,当备份节点为多个备份节点时,修复节点向多个备份节点发送数据修复通知以及多个备份节点向修复节点发送备份数据的具体流程可以如图5所示,备份节点具体为几个备份节点在本发明实施例中不进行限定。在修复节点接收到备份节点发送的备份数据后,根据修复节点的当前带宽占用率判断修复节点是否满足对故障数据进行整体修复的条件,若满足,则直接将数据修复任务添加至修复工作集中,修复节点根据数据修复任务使用备份数据对故障节点中的故障数据进行修复,完成对故障节点中的故障数据的修复操作;若不满足,则根据修复节点的当前带宽占用率将数据修复任务划分为至少两个数据修复子任务,并将至少两个数据修复子任务添加至修复工作集中,修复节点根据数据修复子任务使用备份数据对故障节点中的故障数据进行修复,完成对故障节点中的故障数据的修复操作。在执行数据修复任务或者数据修复子任务对故障数据进行修复的过程中,将数据修复任务或者数据修复子任务的完成进度,实时更新在修复工作集中,以便当修复节点接收到修复进度查询指令后,从修复工作集中获取当前的修复进度,并将查找到的当前修复进度进行输出显示。
进一步的,作为对上述图1及图3所示方法的实现,本发明另一实施例还提供了一种数据的修复装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于实现提高超融合存储***中的用户数据安全性的效果,具体如图6所示,该装置包括:
生成单元61,用于当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,数据修复任务包含故障数据的待修复信息;
发送单元62,用于修复节点向故障节点对应的备份节点发送携带有生成单元61生成的数据修复任务的数据修复通知,以便备份节点根据待修复信息向修复节点发送故障数据对应的备份数据;
获取单元63,用于修复节点获取备份节点根据发送单元62发送的数据修复通知发送的备份数据;
修复单元64,用于修复节点根据获取单元63获取的备份数据对故障节点中的故障数据进行数据修复。
进一步的,如图7所示,该装置还包括:
构建单元65,用于在修复节点通过发送单元62向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知之前,修复节点调用预设构建函数构建修复工作集;修复工作集用于对故障数据进行修复,并记录故障数据的修复进度。
进一步的,如图7所示,发送单元62包括:
判断模块621,用于判断备份节点是否为多个备份节点;
第一发送模块622,用于当判断模块621判断备份节点为一个备份节点时,向备份节点发送携带有数据修复任务的数据修复通知;
获取模块623,用于当判断模块621判断备份节点为多个备份节点时,分别获取每个备份节点的带宽占用率;
第一确定模块624,用于根据获取模块623获取的每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
第二发送模块625,用于分别向每个备份节点发送携带有第一确定模块624确定的可修复故障数据的数据量及对应的存储地址的数据修复通知。
进一步的,如图7所示,获取单元63包括:
第一接收模块631,用于当备份节点为一个备份节点时,接收备份节点根据待修复信息发送的备份数据;
第二接收模块632,用于当备份节点为多个备份节点时,分别接收每个备份节点根据可修复故障数据的数据量及对应的存储地址发送的备份数据。
进一步的,如图7所示,该装置还包括:
判断单元66,用于在修复单元64根据备份数据对故障节点中的故障数据进行数据修复之前,根据修复节点的带宽占用率,判断是否满足对故障数据进行整体修复的条件;
第一添加单元67,用于当判断单元66判断满足对故障数据进行整体修复的条件时,将数据修复任务添加至修复工作集中;
第二添加单元68,用于当判断单元66判断不满足对故障数据进行整体修复的条件时,将数据修复任务根据带宽占用率划分为至少两个数据修复子任务,将至少两个数据修复子任务添加至修复工作集中。
进一步的,如图7所示,修复单元64包括:
匹配模块641,用于当对故障数据进行整体修复时,在修复工作集中,将故障数据的存储地址与备份数据的存储地址进行匹配;
第一替换模块642,用于当匹配模块641匹配成功后,使用备份数据替换故障数据。
进一步的,如图7所示,修复单元64还包括:
第二确定模块643,用于当不对故障数据进行整体修复时,在修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
第三确定模块644,用于根据第二确定模块643确定的预置数据量大小,确定数据修复子任务对应的故障数据的第一存储地址,以及故障数据对应的备份数据的第二存储地址;
第二替换模块645,用于使用第三确定模块644确定的第二存储地址对应的数据替换第一存储地址对应的数据。
进一步的,如图7所示,该装置还包括:
更新单元69,用于根据修复单元64对数据修复任务或至少两个数据修复子任务的完成进度,对修复工作集的修复进度进行更新。
进一步的,如图7所示,该装置还包括:
接收单元610,用于在修复单元64根据备份数据对故障数据进行数据修复之后,修复节点接收修复进度查询指令;
输出单元611,用于在接收单元610接收到修复进度查询指令后,从修复工作集中获取当前修复进度,并将当前修复进度进行输出显示。
进一步的,如图7所示,该装置还包括:
检测单元612,用于在修复节点通过生成单元61生成数据修复任务之前,基于状态检测程序对节点的状态进行检测;
创建单元613,用于当确定节点出现故障时,修复节点创建并启动数据修复进程,数据修复进程用于触发生成数据修复任务。
进一步的,如图7所示,故障节点与修复节点可以为同一节点。
本发明实施例还提供一种服务器集群,如图8所示,包括:
处理器81,被配置为当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
所述修复节点获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复;
存储器83,被配置为存储所述处理器81的可执行指令;
总线82,被配置为耦接所述处理器81及所述存储器83。
进一步的,如图8所示,所述处理器81还被配置为:
在所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知之前,所述修复节点调用预设构建函数构建修复工作集;所述修复工作集用于对所述故障数据进行修复,并记录所述故障数据的修复进度。
进一步的,如图8所示,所述处理器81还被配置为:
判断所述备份节点是否为多个备份节点;
若为一个备份节点,则向所述备份节点发送携带有所述数据修复任务的数据修复通知;
若为多个备份节点,则分别获取每个备份节点的带宽占用率;
根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知。
进一步的,如图8所示,所述处理器81还被配置为:
若为一个备份节点,则接收所述备份节点根据所述待修复信息发送的备份数据;
若为多个备份节点,则分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的备份数据。
进一步的,如图8所示,所述处理器81还被配置为:
在所述修复节点根据所述备份数据对所述故障节点中的故障数据进行数据修复之前,根据所述修复节点的带宽占用率,判断是否满足对所述故障数据进行整体修复的条件;
若满足,则将所述数据修复任务添加至所述修复工作集中;
若不满足,则将所述数据修复任务根据所述带宽占用率划分为至少两个数据修复子任务,将所述至少两个数据修复子任务添加至所述修复工作集中。
进一步的,如图8所示,所述处理器81还被配置为:
若对所述故障数据进行整体修复,则在所述修复工作集中,将所述故障数据的存储地址与所述备份数据的存储地址进行匹配;
匹配成功后,使用所述备份数据替换所述故障数据。
进一步的,如图8所示,所述处理器81还被配置为:
若不对所述故障数据进行整体修复,则在所述修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
根据所述预置数据量大小,确定所述数据修复子任务对应的故障数据的第一存储地址,以及所述故障数据对应的备份数据的第二存储地址;
使用第二存储地址对应的数据替换第一存储地址对应的数据。
进一步的,如图8所示,所述处理器81还被配置为:
根据数据修复任务或至少两个数据修复子任务的完成进度,对所述修复工作集的修复进度进行更新。
进一步的,如图8所示,所述处理器81还被配置为:
在根据所述备份数据对所述故障节点中的故障数据进行数据修复之后,所述修复节点接收修复进度查询指令;
从所述修复工作集中获取当前修复进度,并将所述当前修复进度进行输出显示。
进一步的,如图8所示,所述处理器81还被配置为:
在修复节点生成数据修复任务之前,基于状态检测程序对所述节点的状态进行检测;
若确定所述节点出现故障,则所述修复节点创建并启动数据修复进程,所述数据修复进程用于触发生成所述数据修复任务。
进一步的,如图8所示,所述故障节点与所述修复节点可以为同一节点。
进一步的,作为对上述方法的实现以及上述装置的应用,本发明实施例还提供一种数据的修复***,如图9所示,该***包括:修复节点91、故障节点92以及备份节点93,
所述修复节点91,用于当确定存储数据的节点出现故障时,生成数据修复任务,向故障节点92对应的备份节点93发送携带有所述数据修复任务的数据修复通知,其中,所述数据修复任务包含故障数据的待修复信息;
所述备份节点93,用于接收所述修复节点91发送的所述数据修复通知,并根据所述待修复信息将所述故障数据对应的备份数据发送至所述修复节点91;
所述修复节点91,还用于获取所述备份节点93发送的所述备份数据,并根据所述备份数据对所述故障节点92中的故障数据进行数据修复。
可选的,所述***还包括:
所述修复节点91,还用于判断所述备份节点93是否为多个备份节点93;
若为多个备份节点93,则分别获取每个备份节点93的带宽占用率,根据所述每个备份节点93的带宽占用率确定每个备份节点93可修复故障数据的数据量,分别向所述每个备份节点93发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知;其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点93修复不同存储地址的故障数据;
所述备份节点93,还用于接收所述修复节点91发送的数据修复通知,并根据所述数据修复通知中携带的可修复故障数据的数据量及对应的存储地址向所述修复节点91发送故障数据对应的备份数据;
所述修复节点91,还用于分别接收所述每个备份节点93根据所述可修复故障数据的数据量及对应的存储地址发送的故障数据对应的备份数据。
本发明实施例提供的一种数据的修复装置及服务器集群,首先,当确定存储数据的节点出现故障时,修复节点生成数据修复任务,其中,数据修复任务包含故障数据的待修复信息;然后,修复节点向故障节点对应的备份节点发送携带有数据修复任务的数据修复通知,以便备份节点根据待修复信息向修复节点发送故障数据对应的备份数据;最后,修复节点获取备份节点发送的备份数据,并根据备份数据对故障节点中的故障数据进行数据修复。本发明实施例能够实现修复节点通过在故障节点对应的备份节点保存的备份数据,对故障节点中由于故障导致丢失或者受损的故障数据进行数据修复,从而实现了提高超融合存储***中的用户数据安全性的效果;同时,当备份节点为多个备份节点时,可以根据多个备份节点的当前带宽占用率,向不同备份节点发送不同的修复数据任务,使多个备份节点同时向修复节点发送备份数据,从而提高了修复故障数据的修复速度;以及,可以在修复节点的当前带宽占用率较高时,对数据修复任务进行划分,从而对故障数据进行多次修复操作,进而从而不影响对修复节点的其他存储地址的用户数据的读取、存储。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据的修复方法、装置及服务器集群中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (12)
1.一种数据的修复方法,其特征在于,包括:
当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息,所述待修复信息中包含故障数据的存储地址以及故障数据的数据量大小;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
所述修复节点获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知包括:
判断所述备份节点是否为多个备份节点;
若为一个备份节点,则向所述备份节点发送携带有所述数据修复任务的数据修复通知;
若为多个备份节点,则分别获取每个备份节点的带宽占用率;
根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知。
2.根据权利要求1所述的方法,其特征在于,在所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知之前,所述方法还包括:
所述修复节点调用预设构建函数构建修复工作集;所述修复工作集用于对所述故障数据进行修复,并记录所述故障数据的修复进度。
3.根据权利要求2所述的方法,其特征在于,所述修复节点获取所述备份节点发送的所述备份数据包括:
若为一个备份节点,则接收所述备份节点根据所述待修复信息发送的备份数据;
若为多个备份节点,则分别接收所述每个备份节点根据所述可修复故障数据的数据量及对应的存储地址发送的备份数据。
4.根据权利要求3所述的方法,其特征在于,在根据所述备份数据对所述故障节点中的故障数据进行数据修复之前,所述方法还包括:
根据所述修复节点的带宽占用率,判断是否满足对所述故障数据进行整体修复的条件;
若满足,则将所述数据修复任务添加至所述修复工作集中;
若不满足,则将所述数据修复任务根据所述带宽占用率划分为至少两个数据修复子任务,将所述至少两个数据修复子任务添加至所述修复工作集中。
5.根据权利要求4所述的方法,其特征在于,若对所述故障数据进行整体修复,根据所述备份数据对所述故障节点中的故障数据进行数据修复包括:
在所述修复工作集中,将所述故障数据的存储地址与所述备份数据的存储地址进行匹配;
匹配成功后,使用所述备份数据替换所述故障数据。
6.根据权利要求4所述的方法,其特征在于,若不对所述故障数据进行整体修复,根据所述备份数据对所述故障节点中的故障数据进行数据修复包括:
在所述修复工作集中,确定执行一次数据修复子任务对应的预置数据量大小;
根据所述预置数据量大小,确定所述数据修复子任务对应的故障数据的第一存储地址,以及所述故障数据对应的备份数据的第二存储地址;
使用第二存储地址对应的数据替换第一存储地址对应的数据。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
根据数据修复任务或至少两个数据修复子任务的完成进度,对所述修复工作集的修复进度进行更新。
8.根据权利要求7所述的方法,其特征在于,在根据所述备份数据对所述故障节点中的故障数据进行数据修复之后,所述方法还包括:
所述修复节点接收修复进度查询指令;
从所述修复工作集中获取当前修复进度,并将所述当前修复进度进行输出显示。
9.根据权利要求1所述的方法,其特征在于,在修复节点生成数据修复任务之前,所述方法还包括:
基于状态检测程序对所述节点的状态进行检测;
若确定所述节点出现故障,则所述修复节点创建并启动数据修复进程,所述数据修复进程用于触发生成所述数据修复任务。
10.根据权利要求1所述的方法,其特征在于,所述故障节点与所述修复节点可以为同一节点。
11.一种数据的修复装置,其特征在于,包括:
生成单元,用于当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息,所述待修复信息中包含故障数据的存储地址以及故障数据的数据量大小;
发送单元,用于所述修复节点向故障节点对应的备份节点发送携带有所述生成单元生成的所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
获取单元,用于所述修复节点获取所述备份节点根据所述发送单元发送的所述数据修复通知发送的所述备份数据;
修复单元,用于根据所述获取单元获取的所述备份数据对所述故障节点中的故障数据进行数据修复;
所述发送单元包括:
判断模块,用于判断所述备份节点是否为多个备份节点;
第一发送模块,用于当所述判断模块判断所述备份节点为一个备份节点时,向所述备份节点发送携带有所述数据修复任务的数据修复通知;
获取模块,用于当所述判断模块判断所述备份节点为多个备份节点时,分别获取每个备份节点的带宽占用率;
第一确定模块,用于根据所述获取模块获取的所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
第二发送模块,用于分别向所述每个备份节点发送携带有所述第一确定模块确定的可修复故障数据的数据量及对应的存储地址的数据修复通知。
12.一种服务器集群,其特征在于,包括:
处理器,被配置为当确定存储数据的节点出现故障时,修复节点生成数据修复任务;其中,所述数据修复任务包含故障数据的待修复信息,所述待修复信息中包含故障数据的存储地址以及故障数据的数据量大小;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知,以便所述备份节点根据所述待修复信息向所述修复节点发送所述故障数据对应的备份数据;
所述修复节点获取所述备份节点发送的所述备份数据,并根据所述备份数据对所述故障节点中的故障数据进行数据修复;
所述修复节点向故障节点对应的备份节点发送携带有所述数据修复任务的数据修复通知包括:
判断所述备份节点是否为多个备份节点;
若为一个备份节点,则向所述备份节点发送携带有所述数据修复任务的数据修复通知;
若为多个备份节点,则分别获取每个备份节点的带宽占用率;
根据所述每个备份节点的带宽占用率确定每个备份节点可修复故障数据的数据量,其中,带宽占用率与可修复故障数据的数据量成反比,不同备份节点修复不同存储地址的故障数据;
分别向所述每个备份节点发送携带有可修复故障数据的数据量及对应的存储地址的数据修复通知;
存储器,被配置为存储所述处理器的可执行指令;
总线,被配置为耦接所述处理器及所述存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147022.0A CN107943617B (zh) | 2017-11-17 | 2017-11-17 | 数据的修复方法、装置及服务器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147022.0A CN107943617B (zh) | 2017-11-17 | 2017-11-17 | 数据的修复方法、装置及服务器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943617A CN107943617A (zh) | 2018-04-20 |
CN107943617B true CN107943617B (zh) | 2021-06-29 |
Family
ID=61931741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711147022.0A Active CN107943617B (zh) | 2017-11-17 | 2017-11-17 | 数据的修复方法、装置及服务器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943617B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385200B (zh) * | 2020-03-04 | 2022-03-04 | 中国人民解放军国防科技大学 | 用于数据块修复的控制方法和装置 |
CN112637293B (zh) * | 2020-12-14 | 2023-03-24 | 北京爱奇艺科技有限公司 | 数据修复***、方法、装置、电子设备及存储介质 |
CN115150415B (zh) * | 2022-06-30 | 2024-04-19 | 联想(北京)有限公司 | 一种控制方法、装置、电子设备及存储介质 |
CN116594571B (zh) * | 2023-07-11 | 2023-09-29 | 苏州浪潮智能科技有限公司 | 一种存储故障修复方法、***、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591750A (zh) * | 2011-12-31 | 2012-07-18 | 曙光信息产业股份有限公司 | 集群***的恢复方法 |
CN104461771A (zh) * | 2014-11-03 | 2015-03-25 | 北京百度网讯科技有限公司 | 数据备份处理方法和装置 |
CN104714858A (zh) * | 2013-12-13 | 2015-06-17 | ***通信集团公司 | 数据备份方法及装置、数据恢复方法及装置 |
US9069729B2 (en) * | 2006-05-02 | 2015-06-30 | Red Hat, Inc. | Method and system for providing high availability to distributed computer applications |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170262345A1 (en) * | 2016-03-12 | 2017-09-14 | Jenlong Wang | Backup, Archive and Disaster Recovery Solution with Distributed Storage over Multiple Clouds |
-
2017
- 2017-11-17 CN CN201711147022.0A patent/CN107943617B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069729B2 (en) * | 2006-05-02 | 2015-06-30 | Red Hat, Inc. | Method and system for providing high availability to distributed computer applications |
CN102591750A (zh) * | 2011-12-31 | 2012-07-18 | 曙光信息产业股份有限公司 | 集群***的恢复方法 |
CN104714858A (zh) * | 2013-12-13 | 2015-06-17 | ***通信集团公司 | 数据备份方法及装置、数据恢复方法及装置 |
CN104461771A (zh) * | 2014-11-03 | 2015-03-25 | 北京百度网讯科技有限公司 | 数据备份处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107943617A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11475353B2 (en) | Automated application reliability management using adaptable machine learning models | |
CN107943617B (zh) | 数据的修复方法、装置及服务器集群 | |
US11368506B2 (en) | Fault handling for computer nodes in stream computing system | |
US9251231B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
CN107660289B (zh) | 自动网络控制 | |
US8495635B2 (en) | Mechanism to enable and ensure failover integrity and high availability of batch processing | |
US20160092317A1 (en) | Stream-processing data | |
CN105871603A (zh) | 一种基于内存数据网格的实时流式数据处理失效恢复***及方法 | |
CN115562911B (zh) | 虚拟机数据备份方法及装置、***、电子设备、存储介质 | |
CN111831485A (zh) | 数据恢复方法、装置、电子设备及介质 | |
CN113360579A (zh) | 数据库高可用处理方法、装置、电子设备及存储介质 | |
CN114816820A (zh) | chproxy集群故障修复方法、装置、设备及存储介质 | |
CN105607968B (zh) | 一种增量备份方法及设备 | |
CN104484167A (zh) | 任务处理方法及装置 | |
CN105446818B (zh) | 一种业务处理的方法、相关装置以及*** | |
CN108241543B (zh) | 业务操作断点执行的方法、业务服务器及*** | |
CN111552494B (zh) | 一种容器组的管理方法、设备、***及介质 | |
CN109710377B (zh) | 一种从故障的分布式存储里恢复kvm虚拟机的方法 | |
CN110875832B (zh) | 异常业务监控方法、装置、***及计算机可读存储介质 | |
US8798982B2 (en) | Information processing device, information processing method, and program | |
CN111737043A (zh) | 数据库容灾方法、设备、服务器和存储介质 | |
CN110618884A (zh) | 故障监控方法、虚拟化的网络功能模块管理器和存储介质 | |
CN114996955A (zh) | 一种云原生混沌工程实验的靶场环境构建方法及装置 | |
CN110086660B (zh) | 一种数据处理方法及装置 | |
CN114371939A (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 |