CN111078119B - 一种数据重建方法、***、装置及计算机可读存储介质 - Google Patents

一种数据重建方法、***、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN111078119B
CN111078119B CN201811215841.9A CN201811215841A CN111078119B CN 111078119 B CN111078119 B CN 111078119B CN 201811215841 A CN201811215841 A CN 201811215841A CN 111078119 B CN111078119 B CN 111078119B
Authority
CN
China
Prior art keywords
data reconstruction
data
reconstruction
file
disk
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
Application number
CN201811215841.9A
Other languages
English (en)
Other versions
CN111078119A (zh
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201811215841.9A priority Critical patent/CN111078119B/zh
Publication of CN111078119A publication Critical patent/CN111078119A/zh
Application granted granted Critical
Publication of CN111078119B publication Critical patent/CN111078119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据重建方法,应用在新GlusterFS中,任务中心通过心跳连接确定出故障磁盘,再根据该故障磁盘的文件分布信息确定出待重建文件列表,并将包含待重建文件列表和计算出的目标替换磁盘的数据重建任务下发给文件***,文件***将为其创建一个数据重建协程,并在确定出存在有可用的数据重建源后将数据重建源复制至目标替换磁盘上,并在复制完成后上报重建完成信号,以使副本组管理模块根据该重建完成信号修改重建文件的路由信息。为新GlusterFS提供了一种真正的数据重建方法,拓展了该新GlusterFS的功能和适用场景。本申请还同时公开了一种数据重建***、装置及计算机可读存储介质,具有上述有益效果。

Description

一种数据重建方法、***、装置及计算机可读存储介质
技术领域
本申请涉及GlusterFS应用技术领域,特别涉及一种应用在新GlusterFS下的数据重建方法、***、装置及计算机可读存储介质。
背景技术
为了适应信息化时代成***式增长的数据量,分布式存储***以其易拓展、更适合存储海量数据的特性替代了原先使用的中心化存储***,其中,GlusterFS作为一种开源的分布式存储***已被广泛使用在各个领域。
原生版GlusterFS中,采用了元数据和实际数据不分离的存储方式,并基于固定的拓扑结构使得在进行数据迁移时只能以副本组为最小迁移单位,在将存储于原副本组中的文件副本转移至组成方式的新副本组中,换句话说,当使用原生版GlusterFS对数据以多副本的方式进行高冗余度保存时,每个副本组必须均以相同个数的副本组成,在副本数为3的副本组中,每个副本组由3个副本组成,而为了防止因单节点故障导致一次性多个副本不可用的情况出现,每个副本通常置于不同的物理磁盘上。也就是说每个副本组由3个副本磁盘组成,当副本组A因全局***进行数据分布感知确定其需要进行迁移时,其目的副本组B必须也是一个3副本的副本组,即实现一个3对3的数据迁移。
但在多数实际情况下,并不会出现组成一个副本组中的所有副本磁盘均出现已存储数据大小占总大小超过阈值的情况,也就是在原生版GlusterFS中,受限于其结构,大多数进行数据迁移的情况往往是由于其中的1个出现此种情况就对整个副本组的文件副本进行搬迁,不仅使得搬迁数据量巨大,传输时间较长,迁移效率低下。
本申请应用的新GlusterFS是一种区别于原生版GlusterFS的GlusterFS,其采用了区别于原生版GlusterFS的新架构,使得其在实际数据与元数据分离的情况下,借助由虚拟化技术虚拟出的虚拟节点直接实现对每个副本磁盘的管理,副本组如何组成、由哪几个副本磁盘组成均是在逻辑层面进行的设置,不再存在固定的副本组构成方式的限制,也由此实现了可基于副本组为最小迁移单位的数据迁移操作,相较于原生版GlusterFS,拥有更灵活的文件副本管理方式、副本组构成方式、更少的数据迁移量和更短的迁移耗时。
进一步的,原生版GlusterFS受限于上述给出的固定架构,并没有提供当某个文件副本所在磁盘损坏时进行数据重建的方法,因为相比从正常单容量超阈值的磁盘转移部分文件部分至另一正常磁盘的数据迁移场景,数据重建则建立在某一数据磁盘故障且不可用的场景下,在原生版GlusterFS固定的副本组构成情况下,存在一个故障磁盘的副本组为了保持要求的数据冗余度,只能将该复制组上的数据全部迁移至不存在故障磁盘的副本组中,但原复制组中将由于该故障磁盘的存在导致剩余的正常数据磁盘也无法使用(故障磁盘的存在导致其不满足数据迁移对目的复制组的要求),因此原生版GlusterFS中实际并不存在数据重建过程,只能算作变向的数据迁移。
新GlusterFS由于架构上的改变,使得在此架构上实现真正的数据重建成为可能,因此,如何为基于新架构得到的新GlusterFS提供一种可真正实现数据重建的方法,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据重建方法,应用在新GlusterFS中,首先由任务中心通过心跳连接确定出故障磁盘,再根据该故障磁盘的文件分布信息确定出待重建文件列表,并根据在缺失该故障磁盘后重新进行的全局容量感知确定待重建文件重建的目标替换磁盘,并将包含这两部分的数据重建任务下发给文件***,文件***将为其创建一个数据重建协程,并在确定出存在有可用的数据重建源后执行数据重建操作,将数据重建源复制至目标替换磁盘上,并在复制完成后向副本组管理模块上报重建完成信号,以使该副本组管理模块根据该重建完成信号修改重建文件的路由信息。本申请通过上述技术方案为新GlusterFS提供了一种真正的数据重建方法,可在新架构的支持下实现以副本为粒度进行数据重建,拓展了该新GlusterFS的功能和适用场景。
本申请的另一目的在于提供了一种数据重建***、装置及计算机可读存储介质。
为实现上述目的,本申请提供一种数据重建方法,应用在新GlusterFS中,该数据重建方法包括:
任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据所述故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
所述任务中心将包含有所述待重建文件列表和所述目标替换磁盘的数据重建任务下发至文件***;
所述文件***为接收到的数据重建任务创建一个数据重建协程;
所述数据重建协程判断是否存在与所述待重建文件列表对应的可用的数据重建源;
若是,则所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息。
可选的,所述文件***为接收到的数据重建任务创建一个数据重建协程,包括:
当所述任务中心在同一时刻批量下发多个数据重建任务时,所述文件***为接收到的每个数据重建任务分别创建一个数据重建协程。
可选的,所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号,包括:
每个所述数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
每个所述数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各所述数据分片复制至所述目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向所述副本组管理模块上报所述重建完成信号。
可选的,在所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息之后,还包括:
所述文件***回收返回了所述重建完成信号的数据重建协程所占用的***资源。
可选的,在所述数据重建协程将所述数据重建源复制至所述目标替换磁盘之前,还包括:
所述文件***在所述目标替换磁盘上创建所述数据重建源的目录项,并将所述目录项的状态属性设置为故障状态,直至所述数据重建源被完全复制至所述目标替换磁盘才将所述状态属性修改为可用状态。
为实现上述目的,本申请还提供了一种数据重建***,应用于新GlusterFS,该数据重建***包括:
故障磁盘及重建信息确定单元,用于任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据所述故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
数据重建任务下发单元,用于所述任务中心将包含有所述待重建文件列表和所述目标替换磁盘的数据重建任务下发至文件***;
数据重建协程创建单元,用以所述文件***为接收到的数据重建任务创建一个数据重建协程;
可用数据重建源存在判定单元,用于所述数据重建协程判断是否存在与所述待重建文件列表对应的可用的数据重建源;
数据重建单元,用于当存在与所述待重建文件列表对应的可用的数据重建源时,所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
路由信息更新单元,用于所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息。
可选的,所述数据重建协程创建单元包括:
协程批量创建子单元,用于当所述任务中心在同一时刻批量下发多个数据重建任务时,所述文件***为接收到的每个数据重建任务分别创建一个数据重建协程。
可选的,所述数据重建单元包括:
数据拆分及协程子任务分配子单元,用于每个所述数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
多协程子任务并行处理子单元,用于每个所述数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各所述数据分片复制至所述目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向所述副本组管理模块上报所述重建完成信号。
可选的,该数据重建***还包括:
资源回收单元,用于在所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息之后,所述文件***回收返回了所述重建完成信号的数据重建协程所占用的***资源。
可选的,该数据重建***还包括:
目录项及状态设置单元,用于在所述数据重建协程将所述数据重建源复制至所述目标替换磁盘之前,所述文件***在所述目标替换磁盘上创建所述数据重建源的目录项,并将所述目录项的状态属性设置为故障状态,直至所述数据重建源被完全复制至所述目标替换磁盘才将所述状态属性修改为可用状态。
为实现上述目的,本申请还提供了一种数据重建装置,该装置包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的数据重建方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的数据重建方法的步骤。
显然,本申请所提供的一种应用在新GlusterFS中的数据重建方法,首先由任务中心通过心跳连接确定出故障磁盘,再根据该故障磁盘的文件分布信息确定出待重建文件列表,并根据在缺失该故障磁盘后重新进行的全局容量感知确定待重建文件重建的目标替换磁盘,并将包含这两部分的数据重建任务下发给文件***,文件***将为其创建一个数据重建协程,并在确定出存在有可用的数据重建源后执行数据重建操作,将数据重建源复制至目标替换磁盘上,并在复制完成后向副本组管理模块上报重建完成信号,以使该副本组管理模块根据该重建完成信号修改重建文件的路由信息。本申请通过上述技术方案为新GlusterFS提供了一种真正的数据重建方法,可在新架构的支持下实现以副本为粒度进行数据重建,拓展了该新GlusterFS的功能和适用场景。
本申请同时还提供了一种应用在新GlusterFS中的数据重建***、装置及计算机可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请所提供的技术方案所应用的基础背景的架构示意图;
图2为本申请实施例提供的一种数据重建方法的流程图;
图3为本申请实施例提供的另一种数据重建方法的流程图;
图4为本申请实施例提供的一种数据重建方法***的结构框图。
具体实施方式
本申请的核心是提供一种应用在新GlusterFS中的数据重建方法,首先由任务中心通过心跳连接确定出故障磁盘,再根据该故障磁盘的文件分布信息确定出待重建文件列表,并根据在缺失该故障磁盘后重新进行的全局容量感知确定待重建文件重建的目标替换磁盘,并将包含这两部分的数据重建任务下发给文件***,文件***将为其创建一个数据重建协程,并在确定出存在有可用的数据重建源后执行数据重建操作,将数据重建源复制至目标替换磁盘上,并在复制完成后向副本组管理模块上报重建完成信号,以使该副本组管理模块根据该重建完成信号修改重建文件的路由信息。本申请通过上述技术方案为新GlusterFS提供了一种真正的数据重建方法,可在新架构的支持下实现以副本为粒度进行数据重建,拓展了该新GlusterFS的功能和适用场景。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了方便理解本申请的具体应用场景,此处将对新GlusterFS的具体架构进行说明:
请参见图1所示的新GlusterFS架构示意图,如图1所示,新GlusterFS具有分离的两个命名空间,其中一个是目录命名空间,存储实际数据的元数据,并形成用户可见的层次视图结构,以方便管理;另一个是数据命名空间,存储实际数据,也就是具有一定大小、经解析后存在实际意义的二进制代码,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系,以便在用户视图对可见的目录项进行相应的操作时,可通过该映射关系找到位于数据命名空间中的实际数据,并使得该实际数据以不可见的方式参与进具体的操作中来。区别于元数据与实际数据不分离的原生版GlusterFS,新GlusterFS的这种架构使得其拥有中心化的元数据管理中心,可实现更灵活、受限制更少的信息变更操作,因为在原生版GlusterFS中,由于元数据与实际数据不分离,想要单独对元数据进行变更是十分困难的。
在此基础上,新GlusterFS不再使用固定的物理节点作为副本组的管理节点,而是使用借助虚拟化技术得到的虚拟节点,因为在上层不分离的元数据和实际数据的架构下,原先每个副本组的管理节点的信息变更和进行数据迁移时都十分困难,且限制颇多,因为每个副本组的管理节点下有哪几个副本磁盘都是固定的,且只能管理这些固定的副本磁盘,因此在变更时相当于在一个相同的空白副本组中进行数据重建操作。而虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据搬迁等信息均可以建立在逻辑层面,通过重设这部分信息可实现动态、灵活的切换,使得构成的新GlusterFS具有更大的灵活性,更科学的操作方式和更高的效率。
实施例一
以下结合图2,图2为本申请实施例提供的一种数据重建方法的流程图,包括如下步骤:
S101:任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
任务中心与所有保存有文件副本的磁盘建立有心跳连接,若磁盘处于正常的工作状态,会定期与任务中心交换心跳包,该心跳包将在每个磁盘不可用之前每隔预设周期发送,任务中心根据接收到心跳包判断对应的磁盘处于正常运行状态,一旦长时间没有接收到一个磁盘发来的心跳包,将判定对应的磁盘为故障磁盘。
故障磁盘虽然可能无法被访问,但借助新GlusterFS中单独存储于目录命名空间中的元数据信息可以确定出该故障磁盘的文件分布信息,根据该文件分布信息将能够确定由各待重建文件组成的待重建文件列表。而目标替换磁盘的确认则是在排除该故障磁盘的存在后,由任务中心重新通过全局容量感知确定出增加这部分待重建文件的大小后容量仍不会超过阈值(还有可能需要重新计算全局阈值)的磁盘上。
S102:任务中心将包含有待重建文件列表和目标替换磁盘的数据重建任务下发至文件***;
在S101的基础上,本步骤旨在由任务中心将包含有待重建文件列表和目标替换磁盘的数据重建任务下发至文件***,以便在文件***的控制下完成数据重建操作。
S103:文件***为接收到的数据重建任务创建一个数据重建协程;
在S102的基础上,本步骤首先由文件***为接收到的数据重建任务创建一个具体来执行数据重建操作的数据重建协程。
为了方便理解本申请所描述的协程的含义,此处将分别对进程、线程以及协程的概念进行解释:
对任何文件操作***来说,线程是最小的执行单元,进程是最小的资源管理单元,无论进程还是线程,都是由操作***所管理的。在开启一个应用程序时,相应产生的即是进程,也是我们能够在windows的任务管理器中看到的,线程包含于进程,一个进程可以包含多个线程,多线程的存在是试图进行“并行”操作以提升处理效率,当只有一个CPU核心时,一个进程下的多个线程会***作***频繁切换逐一使用,以营造出一种伪并行的处理方式,实际上只不过是相同任务切换了执行者而已;而当CPU核心数与线程数相同的时,就可以真正的同时由每个CPU核心并行处理不同的线程上的任务,但往往处理设备的CPU核心数会远少于线程数,因此此种情况并不常见。
由于线程间的切换受操作***管理,每次线程间的切换都需要消耗CPU一定的开销来完成,并消耗一定的时间,切换频率越高就越明显。而协程则不同,协程包含与线程,一个线程可以包含多个协程,且最重要的是协程的切换、增加或删减都由当前协程按预设设定好的程序来执行,即当前协程可根据实际情况增加、删减以及展示挂起甚至切换至其它协程或子协程中,而非像线程一样受操作***管理,每个协程或协程下的协程子任务将受到上级协程的管理,并可通过并行处理的方式来加速任务的执行,相比于受操作***管理并频繁切换的线程,位于唯一线程中的多个协程或一组由协程和协程子任务组成的协程组无需频繁的进行切换,能够尽可能的减少对操作***、CPU带来的压力和管理消耗掉的开销。
具体的,协程具有如下优势:1.避免了原先消耗在线程切换上所花费的开销;2.无需加锁,协程就是一种单线程模式,在串行方式下无需添加锁;3.具有高并发、高扩展性的特点;4.协程能保留上次调用的状态,重新进入时候继续上次退出地方。
因此,即使在管理的副本磁盘数量巨大、***环境复杂的情况下,也可以利用协程的上述优势对并发出现的多个数据重建任务以并行的方式进行高效率的处理,整体耗时更短,使得整个***在更多的时间内保持在一个稳定的运行状态(即每个文件更长时间内保持在高冗余度状态)。
S104:数据重建协程判断是否存在与待重建文件列表对应的可用的数据重建源;
在S103的基础上,每个数据重建协程在具体开始执行数据重建操作之前,还需要具备一个必要的因素,即存在一个可用的数据重建源,以后续使用该数据重建源进行数据重建操作,而不是随便找一个可用的文件副本进行数据重建操作,这是为了防止数据存储过程中因各种可能存在的影响因素导致一个原始文件的多个不同副本最终存在差异的现象出现。
一种简单的判断是否有可用的数据重建源的方式为:比对位于待重建文件列表中的每个待重建文件所在的副本组中其它磁盘上存储的文件副本是否一致,若一致,则可判定文件副本未出现错误,均为可用的数据重建源,因为分别存储于不同磁盘上的每个文件副本同时发生相同的错误的几率可以忽略不计;若不一致,在没有仲裁文件副本或其它参考信息时,无法判断出哪个文件副本发生了错误,也就没有办法确定出可用的数据重建源。在存在一个设定为拥有更高可靠性的仲裁文件副本时,将判断与仲裁文件副本相同的文件部分为可用数据重建源。在极端情况下,可能会存在每个文件副本均与仲裁文件部分不相同的情况,通常情况下也将认为不存在可用的数据重建源,若能够在采用各式手段确定出仲裁文件副本是可靠的时(例如采用异常发生率更低的存储介质),也可直接将仲裁文件副本作为可用的数据重建源。
在实际情况下,起仲裁作用的不一定会是完成的文件副本,处于精简考虑,也可能存储的是正确文件副本的唯一特征值,在此情况下,也无法直接从仲裁节点中得到可用的数据重建源。
具体如何判断是否存在可用的数据重建源可根据实际情况灵活的选择。
S105:数据重建协程将数据重建源复制至目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
本步骤建立在S104的判断结果为存在可用的数据重建源的基础上,将在数据重建协程的控制下将数据重建源复制至目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号。
S106:副本组管理模块根据重建完成信号使用目标替换磁盘更新待重建文件列表中各数据文件的路由信息;
在S105的基础上,副本组管理模块将在收到数据重建协程返回的重建完成信号后,将对应的数据重建任务中的待重建文件的路由信息进行更新,即将位于各待重建列表中的文件副本的路由信息由发生故障的磁盘更新为目标替换磁盘,以使得该副本也在包含其的副本组中的相应信息进行改变,同时也将用于原始文件修改后的同步操作。
进一步的,在每个数据重建任务被执行完后,还可以对原先创建出来的数据重建协程所占用的***资源进行回收,以根据后续的数据重建任务或其它任务进重新分配。
S107:上报无可用的数据重建源。
本步骤建立在S104的判断结果为不存在可用的数据重建源的基础上,因此不满足执行数据重建任务的必要前提条件,将上报无可用的数据重建源的信息,以使接收到该信息的管理人员进行针对性的处理。
基于上述技术方案,本申请实施例提供的一种应用在新GlusterFS中的数据重建方法,首先由任务中心通过心跳连接确定出故障磁盘,再根据该故障磁盘的文件分布信息确定出待重建文件列表,并根据在缺失该故障磁盘后重新进行的全局容量感知确定待重建文件重建的目标替换磁盘,并将包含这两部分的数据重建任务下发给文件***,文件***将为其创建一个数据重建协程,并在确定出存在有可用的数据重建源后执行数据重建操作,将数据重建源复制至目标替换磁盘上,并在复制完成后向副本组管理模块上报重建完成信号,以使该副本组管理模块根据该重建完成信号修改重建文件的路由信息。本申请通过上述技术方案为新GlusterFS提供了一种真正的数据重建方法,可在新架构的支持下实现以副本为粒度进行数据重建,拓展了该新GlusterFS的功能和适用场景。
实施例二
以下结合图3,图3为本申请实施例提供的另一种数据重建方法的流程图,本实施例在实施例一的基础上,主要针对的是多盘并发数据重建任务的场景,即文件***在同一时刻接收到任务中心批量发来的多个数据重建任务时,提供了一种如何以更高效率、整体耗时更短的方式完成多个数据重建任务的方法,本实施例默认每个数据重建任务均存在可用的数据重建源,具体实施步骤包括:
S201:任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
S202:任务中心将包含有待重建文件列表和目标替换磁盘的数据重建任务下发至文件***;
S203:当任务中心在同一时刻批量下发多个数据重建任务时,文件***为接收到的每个数据重建任务分别创建一个数据重建协程;
即文件***分别为每个接收到的数据重建任务创建一个专属的数据重建协程,使得每个数据重建协程只需要负责自己承载的数据重建任务即可,借助协程高并发的特性,可通过并行的处理方式更快速的完成多数据重建任务。
S204:每个数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各数据分片分配给相应数量的协程子任务;
在S203的基础上,本步骤旨在通过创建协程子任务的方式来进一步加快每个数据重建任务的处理速度,创建多个协程子任务的目的是想通过每个协程子任务同时处理一部分数据重建任务的方式来加快处理速度,相比于一个人处理100份文件,使用100个人分别处理其中的一份文件,后者明显拥有更快的处理速度。
具体的,如何将一个完整的数据重建任务(或称位于待重建文件列表中的所有待重建文件)进行拆分并分配给不同的协程子任务,大体有两种分配方式,其一,以固定的数据分片大小将待重建列表中的所有待重建文件拆分为多个相同大小的数据分片,并使用相同数量的协程子任务来分别处理其中的每个数据分片,当然,并非说一定要在分成100个数据分片的情况下,创建100个协程子任务来分别承载其中的一个数据分片,也可以创建50个协程子任务分别承载其中的两个数据分片的方式来实现;其二,以固定的协程子任务数将待重建列表中的所有待重建文件进行拆分,假定最多只能创建10个协程子任务的情况,那么分给每个协程子任务的数据重建任务只能是完整数据重建任务的1/10。这两种方式本质上相差不大,是不同应用场景下可能存在的两种拆分和任务分配方式,都能够实现并行处理的效果,具体选择哪种可根据实际应用场景灵活的选择。
S205:每个数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各数据分片复制至目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向副本组管理模块上报重建完成信号;
在S204的基础上,本步骤旨在以并行的方式执行数据重建操作,即每个数据重建协程控制隶属于自身的各协程子任务以并行的方式同时执行数据重建操作,由于不同的分配方式,以及在实际情况下不同协程子任务的处理速度有可能存在差异,因此只有在数据重建协程在判断隶属于自身的所有协程子任务均完成数据重建操作后才能向副本组管理模块上报重建完成信号。该重建完成信号即意味着与该数据重建协程对应的数据重建任务执行完毕。
具体的,判断每个协程子任务是否执行完毕的方式可以通过附加状态标记的方式,该状态标记将在协程子任务处于不同的状态时变更为相同的状态,以便于数据重建协程判断众多协程子任务的任务执行情况,并决定是否返回重建完成信号。
S206:副本组管理模块根据重建完成信号使用目标替换磁盘更新待重建文件列表中各数据文件的路由信息;
S207:文件***回收返回了重建完成信号的数据重建协程所占用的***资源。
本实施例提供的技术方法是在完成数据重建操作后才对路由信息进行更换,也存在一种当判定存在可用的数据重建源后(即一定会进行数据重建操作,且默认成功)就对路由信息进行更换的实现方式,此种方式对于用户来讲,响应速度更快,但实际上在真正完成数据重建操作前,仅实现了目录项的更换,实际数据还未真正完成。
在本申请以实施例二为基础的另一实施例中,还提供了另一种更新路由信息的方法:
在数据重建协程将数据重建源复制至目标替换磁盘之前,文件***在目标替换磁盘上创建数据重建源的目录项,并将目录项的状态属性设置为故障状态,直至数据重建源被完全复制至目标替换磁盘才将状态属性修改为可用状态。
在本申请以实施例二为基础的另一实施例中,还提供了一种具体的数据拆分方法:
每个数据重建协程以预设数据分片大小将完整的数据重建任务(或称位于待重建文件列表中的所有待重建文件)进行拆分,并将拆分得到的各数据分片分配给相应数量的协程子任务。
在***剩余资源充足的情况下,此种方式可在预设数据分片大小足够小的情况下,得到最快的任务执行和处理速度。
在本申请以实施例二为基础的另一实施例中,还提供了一种基于重建标记判断隶属于自身的各协程子任务是否完成对应的数据重建任务的方法:
当隶属于一个数据重建协程中的所有协程子任务的重建状态标记均表现为重建完成标记时,数据重建协程向副本组管理模块上报重建完成信号。
其中,该重建状态标记具体包括重建进行标记和重建完成标记,重建进行标记表示对应的协程子任务正在执行其负责的部分数据重建任务,重建完成标记则表示对应的协程子任务已经完成了其负责的部分数据重建任务。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子和相应的实施例,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图4,图4为本申请实施例提供的一种数据重建***的结构框图,该应用于新GlusterFS下的数据重建***可以包括:
故障磁盘及重建信息确定单元100,用于任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
数据重建任务下发单元200,用于任务中心将包含有待重建文件列表和目标替换磁盘的数据重建任务下发至文件***;
数据重建协程创建单元300,用以文件***为接收到的数据重建任务创建一个数据重建协程;
可用数据重建源存在判定单元400,用于数据重建协程判断是否存在与待重建文件列表对应的可用的数据重建源;
数据重建单元500,用于当存在与待重建文件列表对应的可用的数据重建源时,数据重建协程将数据重建源复制至目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
路由信息更新单元600,用于副本组管理模块根据重建完成信号使用目标替换磁盘更新待重建文件列表中各数据文件的路由信息。
其中,数据重建协程创建单元300可以包括:
协程批量创建子单元,用于当任务中心在同一时刻批量下发多个数据重建任务时,文件***为接收到的每个数据重建任务分别创建一个数据重建协程。
其中,数据重建单元500可以包括:
数据拆分及协程子任务分配子单元,用于每个数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各数据分片分配给相应数量的协程子任务;
多协程子任务并行处理子单元,用于每个数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各数据分片复制至目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向副本组管理模块上报重建完成信号。
进一步的,该数据重建***还可以包括:
资源回收单元,用于在副本组管理模块根据重建完成信号使用目标替换磁盘更新待重建文件列表中各数据文件的路由信息之后,文件***回收返回了重建完成信号的数据重建协程所占用的***资源。
更进一步的,该数据重建***还可以包括:
目录项及状态设置单元,用于在数据重建协程将数据重建源复制至目标替换磁盘之前,文件***在目标替换磁盘上创建数据重建源的目录项,并将目录项的状态属性设置为故障状态,直至数据重建源被完全复制至目标替换磁盘才将状态属性修改为可用状态。
基于上述实施例,本申请还提供了一种数据重建装置,该装置可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该装置还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,且各个实施例间为递进关系,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,可参见对应的方法部分说明。以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种数据重建方法,其特征在于,应用于新GlusterFS,所述新GlusterFS具有用于存储实际数据的元数据的目录命名空间和用于存储实际数据的数据命名空间,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系;所述新GlusterFS还使用虚拟化技术得到虚拟节点,所述虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据迁移操作均建立在逻辑层面,包括:
任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据所述故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
所述任务中心将包含有所述待重建文件列表和所述目标替换磁盘的数据重建任务下发至文件***;
所述文件***为接收到的数据重建任务创建一个数据重建协程;
所述数据重建协程判断是否存在与所述待重建文件列表对应的可用的数据重建源;
若是,则所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息。
2.根据权利要求1所述的数据重建方法,其特征在于,所述文件***为接收到的数据重建任务创建一个数据重建协程,包括:
当所述任务中心在同一时刻批量下发多个数据重建任务时,所述文件***为接收到的每个数据重建任务分别创建一个数据重建协程。
3.根据权利要求2所述的数据重建方法,其特征在于,所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号,包括:
每个所述数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
每个所述数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各所述数据分片复制至所述目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向所述副本组管理模块上报所述重建完成信号。
4.根据权利1至3任一项所述的数据重建方法,其特征在于,在所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息之后,还包括:
所述文件***回收返回了所述重建完成信号的数据重建协程所占用的***资源。
5.根据权利要求4所述的数据重建方法,其特征在于,在所述数据重建协程将所述数据重建源复制至所述目标替换磁盘之前,还包括:
所述文件***在所述目标替换磁盘上创建所述数据重建源的目录项,并将所述目录项的状态属性设置为故障状态,直至所述数据重建源被完全复制至所述目标替换磁盘才将所述状态属性修改为可用状态。
6.一种数据重建***,其特征在于,应用于新GlusterFS,所述新GlusterFS具有用于存储实际数据的元数据的目录命名空间和用于存储实际数据的数据命名空间,各存储于数据命名空间中的实际数据与各存储于目录命名空间中的元数据之间存在唯一的映射关系;所述新GlusterFS还使用虚拟化技术得到虚拟节点,所述虚拟节点同时与所有副本磁盘建立数据连接,副本组的组成和路由信息的变更以及数据迁移操作均建立在逻辑层面,包括:
故障磁盘及重建信息确定单元,用于任务中心通过与各磁盘之间的心跳连接确定存在的故障磁盘,并根据所述故障磁盘的文件分布信息确定待重建文件列表,且计算得到目标替换磁盘;
数据重建任务下发单元,用于所述任务中心将包含有所述待重建文件列表和所述目标替换磁盘的数据重建任务下发至文件***;
数据重建协程创建单元,用于所述文件***为接收到的数据重建任务创建一个数据重建协程;
可用数据重建源存在判定单元,用于所述数据重建协程判断是否存在与所述待重建文件列表对应的可用的数据重建源;
数据重建单元,用于当存在与所述待重建文件列表对应的可用的数据重建源时,所述数据重建协程将所述数据重建源复制至所述目标替换磁盘,并在复制完成后,向副本组管理模块上报重建完成信号;
路由信息更新单元,用于所述副本组管理模块根据所述重建完成信号使用所述目标替换磁盘更新所述待重建文件列表中各数据文件的路由信息。
7.根据权利要求6所述的数据重建***,其特征在于,所述数据重建协程创建单元包括:
协程批量创建子单元,用于当所述任务中心在同一时刻批量下发多个数据重建任务时,所述文件***为接收到的每个数据重建任务分别创建一个数据重建协程。
8.根据权利要求7所述的数据重建***,其特征在于,所述数据重建单元包括:
数据拆分及协程子任务分配子单元,用于每个所述数据重建协程分别将各自对应的数据重建源拆分为多个数据分片,并将各所述数据分片分配给相应数量的协程子任务;
多协程子任务并行处理子单元,用于每个所述数据重建协程控制隶属于自身的各协程子任务以并行的方式同时将各所述数据分片复制至所述目标替换磁盘,并在隶属于自身的所有协程子任务均完成复制操作后向所述副本组管理模块上报所述重建完成信号。
9.一种数据重建装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的数据重建方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据重建方法的步骤。
CN201811215841.9A 2018-10-18 2018-10-18 一种数据重建方法、***、装置及计算机可读存储介质 Active CN111078119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811215841.9A CN111078119B (zh) 2018-10-18 2018-10-18 一种数据重建方法、***、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811215841.9A CN111078119B (zh) 2018-10-18 2018-10-18 一种数据重建方法、***、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111078119A CN111078119A (zh) 2020-04-28
CN111078119B true CN111078119B (zh) 2024-02-23

Family

ID=70309145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811215841.9A Active CN111078119B (zh) 2018-10-18 2018-10-18 一种数据重建方法、***、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111078119B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112184198B (zh) * 2020-09-22 2024-05-28 浙江网商银行股份有限公司 批量业务处理***、方法及装置
CN113687798A (zh) * 2021-10-26 2021-11-23 苏州浪潮智能科技有限公司 一种控制数据重构的方法、装置、设备及可读介质
CN117032844B (zh) * 2023-10-07 2024-01-09 北京集度科技有限公司 一种协程链路追踪装置、方法及智能车辆

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193746A (zh) * 2010-03-11 2011-09-21 Lsi公司 在分布式数据布局环境中优化冗余恢复的***和方法
WO2015057509A1 (en) * 2013-10-18 2015-04-23 Solidfire, Inc. Incremental block level backup
CN107734026A (zh) * 2017-10-11 2018-02-23 郑州云海信息技术有限公司 一种网络附加存储集群的设计方法、装置及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10432697B2 (en) * 2016-07-26 2019-10-01 Salesforce.Com, Inc. Method and system for re-deploying metadata and associated data from a source organization to a destination organization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193746A (zh) * 2010-03-11 2011-09-21 Lsi公司 在分布式数据布局环境中优化冗余恢复的***和方法
WO2015057509A1 (en) * 2013-10-18 2015-04-23 Solidfire, Inc. Incremental block level backup
CN107734026A (zh) * 2017-10-11 2018-02-23 郑州云海信息技术有限公司 一种网络附加存储集群的设计方法、装置及设备

Also Published As

Publication number Publication date
CN111078119A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
US10896102B2 (en) Implementing secure communication in a distributed computing system
CN109074306B (zh) 分布式存储***中的混合垃圾收集
EP2784675B1 (en) Method, device and system for data reconstruction
CN102594849B (zh) 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
EP2834755B1 (en) Platform for continuous graph update and computation
US9244717B2 (en) Method and system for visualizing linked clone trees
CN111078628B (zh) 一种多盘并发数据迁移方法、***、装置及可读存储介质
CN111078119B (zh) 一种数据重建方法、***、装置及计算机可读存储介质
CN109558215A (zh) 虚拟机的备份方法、恢复方法、装置及备份服务器集群
CN109992206B (zh) 数据分布存储方法及相关装置
CN111078121A (zh) 一种分布式存储***数据迁移方法、***、及相关组件
US11113155B1 (en) Archiving and restoration of distributed database log records
US11055185B2 (en) Method and system for global snapshots of distributed storage
US11314459B2 (en) Distributed metadata management in a distributed storage system
CN111897558A (zh) 容器集群管理***Kubernetes升级方法和装置
CN108319596A (zh) 一种数据库的扩容方法和装置
US10824641B1 (en) Deterministic query-based replication
CN114090179A (zh) 有状态服务的迁移方法、装置及服务器
US20230376357A1 (en) Scaling virtualization resource units of applications
US10592493B1 (en) Spot-instanced bulk data uploading
CN111400098B (zh) 一种副本管理方法、装置、电子设备及存储介质
CN108574719A (zh) 一种云主机创建方法及装置
CN109254871A (zh) 一种高效的虚拟机数据在线去冗余方法
CN111414276B (zh) Vnf的数据容灾方法及装置、vnf节点及存储介质
CN110928943A (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